{"version":3,"file":"vendor.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAuD;AACsB;AAChC;AACe;AAC0D;AAC7D;AACkB;AAClB;;AAEjB;AACE;AACA;AAC1C;AACA;AACA,gCAAgC,iDAAe;AAC/C;AACA;AACA;AACA,iCAAiC,eAAe;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,sDAAM,oCAAoC,mDAAG;AAC/D;AACA;AACA;AACA,+DAA+D;AAC/D,uCAAuC,gEAAyB,GAAG,iDAAiD,oCAAoC;;AAExJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,wBAAwB,yDAAc;AACtC,gCAAgC,yDAAc;;AAE9C;AACA,yCAAyC,aAAa,yCAAyC,uBAAuB,iBAAiB,GAAG;AAC1I;AACA;AACA,4CAA4C,sDAAoB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,4BAA4B,0BAA0B;AACtD;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,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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,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,gBAAgB,yDAAuB,eAAe,yDAAuB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,8BAA8B,sDAAe,eAAe,sDAAe,uBAAuB,sDAAe,CAAC,mDAAa,GAAG,sDAAe;AACtM,kCAAkC,gEAAyB,GAAG,4CAA4C,+BAA+B;AACzI;AACA,MAAM,gCAAgC,MAAM,iDAAM,wBAAwB,GAAG;AAC7E,MAAM,gCAAgC,MAAM,iDAAM,gCAAgC,GAAG;AACrF,MAAM,MAAM,mDAAM,EAAE;AACpB,MAAM;AACN;AACA,cAAc,iDAAU,GAAG,8CAAO,IAAI,qDAAM;AAC5C,IAAI,8CAAO,IAAI,qDAAM;AACrB;;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,sBAAsB,QAAQ,GAAG,QAAQ;AACzC;AACA;AACA;AACA,kBAAkB,QAAQ,EAAE,KAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gDAAS;AACxB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,YAAY,0DAAwB,0BAA0B,wDAAsB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB,yFAAuD;AACvE;AACA;AACA;AACA,uFAAuF,mBAAmB;AAC1G;AACA,SAAS;AACT;AACA;AACA,iDAAiD,4BAA4B,sDAAe,eAAe,sDAAe,uBAAuB,sD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A;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;AACA;AACA;AACA;AACwD;AAC0Q;AACnQ;AACyD;AACrB;AACvC;AACkB;AAC/B;AAC2B;AAC5B;AACmD;;AAEjG;AACA;AACA;AACwC;AACe;AACb;AACc;AACV;AACW;;AAEzD;AACA;AAC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IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA;AACA;AACA,qCAAqC,SAAS;AAC9C,iDAAiD;AACjD,IAAI,wDAAiB;AACrB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB,yEAAyE,6DAAsB;AACpH;AACA,qEAAqE;AACrE,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,+DAAwB;AAC5B;AACA,qEAAqE;AACrE,IAAI,uDAAgB;AACpB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB;AACA,8DAA8D;AAC9D,IAAI,qEAA8B;AAClC,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,mEAA4B;AAChC,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,yCAAO;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE,yCAAyC,gEAAyB,GAAG,mDAAmD,sCAAsC;;AAE9J;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F,MAAM,KAAK,MAAM;AAC3G;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,cAAc,GAAG,qBAAqB;AACrE,uCAAuC,cAAc,GAAG,gBAAgB;AACxE;AACA;AACA;AACA,uCAAuC,yBAAyB;AAChE,+CAA+C,oBAAoB;AACnE;AACA;AACA;AACA;AACA,+BAA+B,cAAc,GAAG,cAAc;AAC9D,uCAAuC,cAAc,GAAG,SAAS;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,cAAc,GAAG,aAAa,GAAG,cAAc;AACtE,+BAA+B,cAAc,GAAG,SAAS,GAAG,SAAS;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4EAAoB;AAC/C,qBAAqB,sEAAc;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,kCAAkC,uDAAY;AAC9C;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0EAAe;AACvB;AACA,gFAAgF,KAAK;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;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,iCAAiC;AACjC;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,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2BAA2B;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,yDAAyD,sEAAU,sBAAsB,sEAAU;AACnG;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,YAAY,yEAAS,yBAAyB,yEAAS;AACvD;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,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,aAAa;AACb;AACA;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mFAAmB;AAClC;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,iBAAiB,mFAAmB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mFAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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;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,6DAA6D,kCAAkC,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,yBAAyB,+DAAwB,CAAC,6EAA0B,GAAG,+DAAwB,CAAC,iDAAa;AACrU,qCAAqC,+DAAwB,GAAG,6KAA6K;AAC7O,QAAQ,wDAAiB,gEAAgE,uBAAuB,+DAA+D,sBAAsB;AACrM,MAAM;AACN,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,kUAAkU,aAAa,kDAAkD,wCAAwC,gEAAyB;AACrd,YAAY,6EAAmB;AAC/B;AACA,yBAAyB,qEAAW;AACpC;AACA;AACA,YAAY,kEAA2B,GAAG;AAC1C,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,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,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,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,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,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,kBAAkB,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AAClD,IAAI,iDAAU,uBAAuB,qDAAU;AAC/C,QAAQ,oDAAS;AACjB;AACA,QAAQ,6EAAmB;AAC3B,QAAQ,iDAAM;AACd;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uDAAY;AACxC;AACA;AACA,QAAQ,0EAAe;AACvB,gFAAgF,KAAK;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;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,SAAS;AACT;AACA;AACA,YAAY,yEAAS;AACrB;AACA;AACA;AACA;AACA,aAAa;AACb;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,8BAA8B,2EAAe;AAC7C;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,8BAA8B,0EAAc;AAC5C;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,YAAY,wDAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,uCAAuC,+DAAwB,sBAAsB,+DAAwB,CAAC,6EAA0B,GAAG,+DAAwB,CAAC,qDAAiB;AAC5P,0CAA0C,+DAAwB,GAAG,kJAAkJ;AACvN,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,oFAAoF;AAC3F,QAAQ,wDAAiB,+EAA+E,6BAA6B,sEAAsE,uBAAuB,kFAAkF,8BAA8B;AAClV,MAAM;AACN,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,oFAAoF,aAAa,sBAAsB,6CAA6C,gEAAyB;AAChN;AACA,YAAY,6EAAmB;AAC/B;AACA,yBAAyB,qEAAW;AACpC;AACA;AACA,YAAY,kEAA2B,2GAA2G;AAClJ,QAAQ,6DAAsB;AAC9B,QAAQ,0DAAmB;AAC3B,OAAO,oBAAoB;AAC3B,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,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,8DAAe;AACnB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;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,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,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,uBAAuB,iDAAU,GAAG,iDAAU;AAC9C,QAAQ,6EAAmB;AAC3B,QAAQ,qDAAU;AAClB;;AAEA;AACA,gCAAgC,sCAAsC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA,YAAY,yBAAyB;AACrC;AACA,YAAY,WAAW;AACvB;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD,kCAAkC,8DAAuB,GAAG,oBAAoB;AAChF,kCAAkC,8DAAuB,GAAG;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA,iEAAiE;AACjE,uCAAuC,8DAAuB,GAAG,yBAAyB;AAC1F,uCAAuC,8DAAuB,GAAG,WAAW,yDAAY,kBAAkB;;AAE1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,4EAA4E,sBAAsB;AAClG;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,8CAA8C,+DAAwB,CAAC,sDAAkB;AAC9K,iDAAiD,+DAAwB,GAAG,uIAAuI;AACnN,8BAA8B,iDAAU,GAAG,iDAAU,uBAAuB,sDAAW;AACvF;;AAEA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C,8BAA8B,uDAAY;AAC1C;AACA,QAAQ,0EAAe;AACvB;AACA;AACA;AACA,6CAA6C,YAAY;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,yDAAyD;AACzD,mCAAmC,+DAAwB,GAAG,mEAAmE,kFAAkF,aAAa,sDAAsD,+vBAA+vB;AACrhC,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,4BAA4B,QAAQ,oDAAc,EAAE,oDAAc,sBAAsB,iDAAW,8BAA8B,oBAAoB;AAC5J,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,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,gBAAgB,iDAAU,GAAG,iDAAU;AACvC;;AAEA;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,uDAAuD;AACvD,mCAAmC,gEAAyB,GAAG,6CAA6C,gCAAgC;;AAE5I;AACA;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,SAAS;AACT;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,qCAAqC,+DAAwB,gBAAgB,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB;AACtO,wCAAwC,+DAAwB,GAAG,mFAAmF,kBAAkB;AACxK,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,qBAAqB,iDAAU,GAAG,iDAAU,qCAAqC,qDAAU,EAAE,oDAAS;AACtG;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,2CAA2C,+DAAwB,CAAC,2DAAuB;AAC1K,8CAA8C,+DAAwB,GAAG,oFAAoF,sCAAsC;AACnM,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,2BAA2B,iDAAU,GAAG,iDAAU,uBAAuB,2DAAgB;AACzF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD,gCAAgC,8DAAuB,GAAG,kBAAkB;AAC5E,gCAAgC,8DAAuB,GAAG,WAAW,yDAAY,IAAI;;AAErF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8BAA8B;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4CAA4C;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,sBAAsB,oEAAI;AAC1B;AACA,QAAQ,0EAAe;AACvB;AACA;AACA;AACA,gFAAgF,KAAK;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;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,SAAS;AACT;AACA;AACA;AACA,mEAAmE,sDAAM;AACzE,gDAAgD,+CAAS;AACzD,sBAAsB,sDAAM,kDAAkD,sDAAM;AACpF;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,iCAAiC,4CAAK;AACtC;AACA,uBAAuB;AACvB;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,SAAS;AACT;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;AACA;AACA;AACA;AACA,mDAAmD,8DAAuB;AAC1E,gCAAgC,+DAAwB,GAAG,kBAAkB;;AAE7E;AACA;AACA;AACA,8BAA8B,yDAAc;;AAE5C;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,iBAAiB;AACjB;AACA;AACA,iCAAiC,0EAAc,4CAA4C,2EAAe;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iCAAiC,qEAAS;AAC1C;AACA;AACA;AACA,iCAAiC,oEAAQ;AACzC;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;AACA,iEAAiE,oCAAoC,sDAAe;AACpH,wCAAwC,gEAAyB,GAAG,kDAAkD,qCAAqC;AAC3J,oBAAoB,iDAAU,GAAG,8CAAO,IAAI,qDAAM;AAClD,IAAI,iDAAU;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;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,iCAAiC;AAC5D;AACA;AACA;AACA;AACA,2BAA2B,iCAAiC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iCAAiC;AAC5D;AACA;AACA;AACA;AACA,2BAA2B,0CAA0C;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0CAA0C;AACrE;AACA;AACA,2BAA2B;AAC3B,8BAA8B;AAC9B,+BAA+B;AAC/B,+BAA+B;AAC/B,0BAA0B;AAC1B,8BAA8B;AAC9B,8BAA8B;AAC9B,4BAA4B;AAC5B,2BAA2B;AAC3B,4BAA4B;AAC5B,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,eAAe;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;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,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA,2BAA2B,uDAAY,IAAI;AAC3C;AACA;AACA;AACA,0BAA0B,uDAAY,IAAI;AAC1C;AACA;AACA;AACA;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA;AACA,sBAAsB,oEAAI;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0CAA0C;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0CAA0C;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iCAAiC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,oCAAoC;AACpC,mEAAmE;AACnE,oDAAoD;AACpD;AACA;AACA,8CAA8C,+BAA+B;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,sEAAU;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sEAAU;AACxC;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,YAAY,mFAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;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,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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AAC1F,uCAAuC,8DAAuB,GAAG,WAAW,yDAAY,EAAE,uEAAW,0CAA0C;;AAE/I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,6CAA6C;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,6CAA6C;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,6CAA6C;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,6CAA6C;AACxE;AACA;AACA,2BAA2B;AAC3B,8BAA8B;AAC9B,+BAA+B;AAC/B,+BAA+B;AAC/B,0BAA0B;AAC1B,8BAA8B;AAC9B,8BAA8B;AAC9B,4BAA4B;AAC5B,2BAA2B;AAC3B,4BAA4B;AAC5B,8BAA8B;AAC9B,2BAA2B;AAC3B;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,IAAI;AAC3C;AACA;AACA;AACA,0BAA0B,uDAAY,IAAI;AAC1C,sBAAsB,oEAAI;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,oCAAoC;AACpC,mEAAmE;AACnE,oDAAoD;AACpD;AACA;AACA,8CAA8C,+BAA+B;AAC7E;AACA;AACA;AACA;AACA;AACA;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,6CAA6C;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,WAAW;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,8BAA8B,sEAAU;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,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;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,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;A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QAAQ,6EAAmB;AAC3B,QAAQ,4DAAiB;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,uEAAuE;AACvE,0CAA0C,8DAAuB,GAAG,4BAA4B;AAChG,0CAA0C,8DAAuB,GAAG,WAAW,yDAAY,EAAE,uEAAW,0CAA0C;;AAElJ;AACA;AACA;AACA;AACA;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,gCAAgC,uDAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0EAAe;AACvB;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;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,0BAA0B,KAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAU;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,eAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AA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CV,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;AACA,gBAAgB,iDAAU,GAAG,iDAAU,uBAAuB,qDAAU;AACxE,QAAQ,oDAAS;AACjB,QAAQ,iDAAM;AACd,QAAQ,6EAAmB;AAC3B;;AAEA;AACA;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,QAAQ,0EAAe;AACvB;AACA;AACA;AACA;AACA,uBAAuB,6BAA6B;AACpD;AACA;AACA;AACA;AACA;AACA;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;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,KAAK;AAC/B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,8CAA8C;AACpG;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,iEAAiE,oCAAoC,+DAAwB,CAAC,6EAA0B,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,qDAAiB;AACjP,uCAAuC,+DAAwB,GAAG,8JAA8J;AAChO,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,gFAAgF;AACvF,QAAQ,wDAAiB,wEAAwE,6BAA6B;AAC9H,MAAM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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,uCAAuC;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0CAA0C;AACrE;AACA;AACA,8BAA8B;AAC9B,qCAAqC;AACrC;AACA;AACA;AACA;AACA,2BAA2B,wCAAwC;AACnE;AACA;AACA;AACA,uCAAuC,2CAA2C,uCAAuC;AACzH;AACA;AACA,iCAAiC;AACjC,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA,iCAAiC,uDAAY;AAC7C;AACA;AACA;AACA,4CAA4C,uCAAuC;AACnF;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA,4CAA4C,uCAAuC;AACnF;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA,uBAAuB,oEAAI,GAAG;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB,yBAAyB;AACzB;AACA,iCAAiC,+CAAY;AAC7C;AACA,gCAAgC,uDAAY;AAC5C;AACA,QAAQ,0EAAe;AACvB;AACA,6EAA6E,KAAK;AAClF;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yCAAyC;AAChE;AACA;AACA;AACA,qCAAqC;AACrC,6BAA6B;AAC7B,6BAA6B;AAC7B,wBAAwB;AACxB,4BAA4B;AAC5B,4BAA4B;AAC5B,0BAA0B;AAC1B,yBAAyB;AACzB,0BAA0B;AAC1B,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yCAAyC;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,uBAAuB,yCAAyC;AAChE;AACA;AACA,qCAAqC;AACrC,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0CAA0C;AACjE;AACA;AACA,YAAY,uEAAuE;AACnF;AACA;AACA,YAAY,uCAAuC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0CAA0C;AACjE;AACA;AACA,YAAY,sBAAsB;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,mBAAmB;AACnB;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,mFAAmF,wCAAwC;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,4BAA4B,eAAe;AAC3C;AACA;AACA,kDAAkD,UAAU;AAC5D;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,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,+BAA+B,eAAe,GAAG,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA,4CAA4C,eAAe,GAAG,WAAW;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4CAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mFAAmB;AACnD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,oBAAoB,mFAAmB;AACvC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,wBAAwB,oBAAoB,GAAG,sBAAsB;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,qDAAI;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,2CAA2C,aAAa,SAAS,UAAU;AAC3E;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,4EAA4E,cAAc;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA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A;AACA;AACA,kDAAkD;AAClD,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACuE;AACoB;AAC5B;AACiB;AACrB;AACM;AAClB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,+BAA+B;AACnG;AACA,kCAAkC,uDAAY;AAC9C;AACA;AACA;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA,yEAAyE,+BAA+B;AACxG;AACA,mCAAmC,uDAAY;AAC/C;AACA;AACA;AACA,mCAAmC,uDAAY;AAC/C;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uDAAY;AAC1C;AACA,oEAAoE,+BAA+B;AACnG;AACA;AACA;AACA,iCAAiC,uDAAY;AAC7C;AACA,oEAAoE,+BAA+B;AACnG;AACA,iCAAiC,uDAAY;AAC7C;AACA;AACA;AACA,iCAAiC,uDAAY;AAC7C;AACA,6EAA6E,+BAA+B;AAC5G;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA;AACA,gCAAgC;AAChC,6BAA6B;AAC7B;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA;AACA,gCAAgC;AAChC,6BAA6B;AAC7B;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA;AACA,gCAAgC;AAChC,6BAA6B;AAC7B;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA,qGAAqG,+BAA+B;AACpI;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA,uEAAuE,+BAA+B;AACtG;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA,8BAA8B,uDAAY;AAC1C;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA,6EAA6E,8DAAuB;AACpG,6CAA6C,+DAAwB,GAAG,yCAAyC,sbAAsb,aAAa,wmBAAwmB;AAC5pC,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,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,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,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,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,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,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,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,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,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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iDAAe,GAAG;AAC5C;AACA;AACA;AACA;AACA,iDAAiD,yDAAS;AAC1D;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,uEAAuE,uCAAuC,sDAAe,CAAC,iDAAa;AAC3I,2CAA2C,gEAAyB,GAAG,qDAAqD,wCAAwC;AACpK,uBAAuB,iDAAU,GAAG,iDAAU,uBAAuB,iDAAM;AAC3E;;AAEA;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;AACA;AACA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;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;AACA;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;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;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;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;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;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;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE,2CAA2C,gEAAyB,GAAG,iEAAiE;;AAExI;AACA,6CAA6C,2CAA2C;AACxF;AACA,4BAA4B,kCAAkC;AAC9D;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,+CAA+C,+DAAwB,CAAC,sDAAkB;AACjL,kDAAkD,+DAAwB,GAAG,4FAA4F;AACzK,+BAA+B,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AAC/D,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,yCAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE,wCAAwC,gEAAyB,GAAG,kDAAkD,qCAAqC;AAC3J,oBAAoB,iDAAU,GAAG,iDAAU;AAC3C;;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;AACA,mCAAmC,uDAAY;AAC/C;AACA;AACA;;AAEA;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,4BAA4B,eAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,8DAAuB;AACpG,6CAA6C,+DAAwB,GAAG,0CAA0C,kEAA2B,GAAG;;AAEhJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,8DAAuB;AAC9G,kDAAkD,+DAAwB,GAAG,8CAA8C,45DAA45D,aAAa,wEAAiC,GAAG;AACxkE,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,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,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,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,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,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,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,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,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;;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,4BAA4B,eAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,8DAAuB;AACxF,uCAAuC,+DAAwB,GAAG,oCAAoC,kEAA2B,GAAG;;AAEpI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,8DAAuB;AACpH,qDAAqD,+DAAwB,GAAG,iDAAiD,oIAAoI,aAAa,wEAAiC,GAAG;AACtT,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;;AAEA;AACA;AACA,mBAAmB,+BAA+B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,yCAAyC,+DAAwB;AAC5I,4CAA4C,+DAAwB,GAAG,oKAAoK;AAC3O,QAAQ,4DAAqB,WAAW,sDAAW;AACnD,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,aAAa,wEAAiC,qFAAqF,wCAAwC;AAClL,iDAAU;AACV,IAAI,2DAAY,CAAC,sDAAW,IAAI,eAAe;AAC/C,IAAI,iDAAU,gBAAgB,sDAAW;AACzC;AACA,yBAAyB,iDAAU,GAAG,iDAAU;AAChD;;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,qEAAqE,sCAAsC,+DAAwB,wBAAwB,+DAAwB;AACnL,yCAAyC,+DAAwB,GAAG,sJAAsJ;AAC1N,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,aAAa,gEAAyB,0BAA0B,wEAAiC,kFAAkF,wCAAwC;AAClO,iDAAU;AACV,IAAI,2DAAY,2BAA2B,eAAe;AAC1D,IAAI,iDAAU;AACd;AACA,sBAAsB,iDAAU,GAAG,iDAAU;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,EAAE,sEAAc;AAChE;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,2BAA2B,kBAAkB,EAAE,gBAAgB,EAAE,iBAAiB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA,kCAAkC,MAAM;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mFAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sEAAc;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,wEAAwE,KAAK;AAC7E;AACA;AACA;AACA;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,8DAA8D,QAAQ;AACtE;AACA;AACA;AACA,uDAAuD,+BAA+B,sDAAe,CAAC,iDAAa;AACnH,mCAAmC,gEAAyB,GAAG,6CAA6C,gCAAgC;AAC5I,eAAe,iDAAU,GAAG,iDAAU,uBAAuB,iDAAM;AACnE;;AAEA;AACA;AACA;AACA,oCAAoC,oEAAgB;AACpD;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;AACA,2EAA2E;AAC3E,6CAA6C,gEAAyB,GAAG,uDAAuD,0CAA0C;;AAE1K;AACA,4CAA4C,2CAA2C;AACvF;AACA,qBAAqB,+BAA+B;AACpD;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,iDAAiD,+DAAwB,CAAC,sDAAkB;AACvL,oDAAoD,+DAAwB,GAAG,gGAAgG;AAC/K,iCAAiC,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AACjE,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA,4CAA4C,2CAA2C;AACvF;AACA,4BAA4B,+BAA+B;AAC3D;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA,sBAAsB,qBAAqB,KAAK;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,iDAAiD,+DAAwB,CAAC,sDAAkB;AACvL,oDAAoD,+DAAwB,GAAG,gGAAgG;AAC/K,iCAAiC,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AACjE,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;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;;AAEA;AACA;AACA,oBAAoB;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;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,gBAAgB,wBAAwB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qDAAqD,8DAAuB;AAC5E,iCAAiC,+DAAwB,GAAG,mBAAmB;;AAE/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ,mFAAmB;AAC3B,mBAAmB,qDAAU;AAC7B;AACA;;AAEA;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,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,0BAA0B,qBAAqB;AAC/C;AACA;AACA,qDAAqD,eAAe;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,oDAAoD,kBAAkB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,wCAAwC,+DAAwB,CAAC,uEAAmB,GAAG,+DAAwB,0BAA0B,+DAAwB,CAAC,6EAA0B,GAAG,+DAAwB,CAAC,iD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AAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;;AAEA;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,yBAAyB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACpB;AACA;AACA,0BAA0B,0BAA0B;AACpD;AACA;AACA;AACA,sCAAsC,6BAA6B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wDAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,SAAS;AAC9C;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA,gCAAgC,yGAAqD;AACrF,6BAA6B,sGAAkD;AAC/E;AACA;AACA,eAAe,gBAAgB;AAC/B,eAAe,eAAe;AAC9B,aAAa,eAAe;AAC5B,YAAY,gBAAgB;AAC5B,aAAa,gBAAgB;AAC7B,cAAc,mBAAmB;AACjC,aAAa;AACb;AACA;AACA;AACA,6EAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2EAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,SAAS,qBAAqB;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,4BAA4B,yDAAK;AACjC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,oBAAoB;AACnC,iBAAiB,iBAAiB;AAClC;AACA,4BAA4B;AAC5B,eAAe,oEAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,eAAe,oEAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,eAAe;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sCAAsC;AACrE;AACA;AACA;AACA;AACA,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,SAAS;AACT;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,aAAa;AACb;AACA;AACA;AACA;AACA,0BAA0B,oBAAoB;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,qCAAqC,gBAAgB;AACrD;AACA;AACA,sCAAsC,iBAAiB;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,eAAe,mFAAmB;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,gCAAgC,oDAAa,wEAAwE,oDAAG;AACxH;AACA;AACA,aAAa,GAAG,yDAAS;AACzB;AACA;AACA,aAAa;AACb,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,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,iCAAiC,+DAAwB,wBAAwB,+DAAwB,gBAAgB,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,sEAAkB,GAAG,+DAAwB,CAAC,6EAA0B,GAAG,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,wBAAwB,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,CAAC,oDAAgB;AAC3f,oCAAoC,+DAAwB,GAAG,gIAAgI;AAC/L,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4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;AACA;AACA;AACA,8BAA8B;AAC9B,mCAAmC,wBAAwB,gBAAgB,YAAY;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,EAAE;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,wCAAwC,+DAAwB;AACzI,2CAA2C,+DAAwB,GAAG,oFAAoF,wEAAiC,oFAAoF,wCAAwC;AACvT,wBAAwB,iDAAU,GAAG,iDAAU;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6GAA6G,8DAAuB;AACpI,6DAA6D,+DAAwB,GAAG,yDAAyD,kHAAkH,aAAa,wEAAiC,GAAG;AACpT,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;;AAEA;AACA,uDAAuD,0CAA0C;AACjG;AACA;AACA;AACA;AACA;AA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+FAA+F,wEAAiC,yFAAyF,wCAAwC;AAC5U,6BAA6B,iDAAU,GAAG,iDAAU;AACpD;;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,qEAAqE,8DAAuB;AAC5F,yCAAyC,+DAAwB,GAAG,2BAA2B;;AAE/F;AACA,kEAAkE,8CAA8C;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,oCAAoC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uCAAuC;AACpE;AACA;AACA,mGAAmG,8DAAuB;AAC1H,wDAAwD,+DAAwB,GAAG,oDAAoD,8tBAA8tB,aAAa,wEAAiC,GAAG;AACt5B,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,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,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,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;;AAEA;AACA,mEAAmE,2BAA2B;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,4CAA4C,+DAAwB,wBAAwB,+DAAwB,qBAAqB,+DAAwB,CAAC,sEAAkB,GAAG,+DAAwB,CAAC,oDAAS;AAC1S,+CAA+C,+DAAwB,GAAG,4FAA4F,4BAA4B,aAAa,gEAAyB,0BAA0B,wEAAiC,wFAAwF,wCAAwC;AACna,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,4BAA4B,iDAAU,GAAG,8CAAO,IAAI,qDAAM,CAAC,oDAAS;AACpE,IAAI,iDAAU;AACd;AACA,QAAQ,sEAAW;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,8DAAuB;AAClH,oDAAoD,+DAAwB,GAAG,kIAAkI;AACjN,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,aAAa,wEAAiC,GAAG;AACxD,iDAAU;AACV,IAAI,8DAAe;AACnB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,wCAAwC,+DAAwB,wBAAwB,+DAAwB;AACzL,2CAA2C,+DAAwB,GAAG,oFAAoF,gEAAyB,uBAAuB,wEAAiC,oFAAoF,wCAAwC;AACvW,wBAAwB,iDAAU,GAAG,iDAAU;AAC/C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6GAA6G,8DAAuB;AACpI,6DAA6D,+DAAwB,GAAG,yDAAyD,kHAAkH,aAAa,wEAAiC,GAAG;AACpT,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;;AAEA;AACA,uDAAuD,iCAAiC;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,iDAAiD,+DAAwB;AACpK,oDAAoD,+DAAwB,GAAG,4GAA4G,wEAAiC,6FAA6F,wCAAwC;AACjW,iCAAiC,iDAAU,GAAG,iDAAU;AACxD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2HAA2H,8DAAuB;AAClJ,oEAAoE,+DAAwB,GAAG,gEAAgE,oIAAoI,aAAa,wEAAiC,GAAG;AACpV,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;;AAEA;AACA,wDAAwD,iCAAiC;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yGAAyG,wDAAwD,+DAAwB;AACzL,2DAA2D,+DAAwB,GAAG,2HAA2H,wEAAiC,oGAAoG,wCAAwC;AAC9X,wCAAwC,iDAAU,GAAG,iDAAU;AAC/D;;AAEA;AACA,wDAAwD,6BAA6B;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,8CAA8C,+DAAwB;AAC3J,iDAAiD,+DAAwB,GAAG,qGAAqG,sUAAsU,aAAa,wEAAiC,0FAA0F,wCAAwC;AACvqB,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,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,8BAA8B,iDAAU,GAAG,iDAAU;AACrD;;AAEA;AACA,mEAAmE,6BAA6B;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F,mDAAmD,+DAAwB;AAC1K,sDAAsD,+DAAwB,GAAG,iHAAiH,wEAAiC,+FAA+F,wCAAwC;AAC1W,mCAAmC,iDAAU,GAAG,iDAAU;AAC1D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qGAAqG,8DAAuB;AAC5H,yDAAyD,+DAAwB,GAAG,qDAAqD,kGAAkG,aAAa,wEAAiC,GAAG;AAC5R,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;;AAEA;AACA,gEAAgE,4BAA4B;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,6CAA6C,+DAAwB;AACxJ,gDAAgD,+DAAwB,GAAG,oGAAoG,wEAAiC,yFAAyF,wCAAwC;AACjV,6BAA6B,iDAAU,GAAG,iDAAU;AACpD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6GAA6G,8DAAuB;AACpI,6DAA6D,+DAAwB,GAAG,yDAAyD,4FAA4F,aAAa,wEAAiC,GAAG;AAC9R,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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,iDAAiD,+DAAwB;AACpK,oDAAoD,+DAAwB,GAAG,6GAA6G,wEAAiC,6FAA6F,wCAAwC;AAClW,iCAAiC,iDAAU,GAAG,iDAAU;AACxD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+GAA+G,8DAAuB;AACtI,8DAA8D,+DAAwB,GAAG,0DAA0D,gLAAgL,aAAa,wEAAiC,GAAG;AACpX,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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,kDAAkD,+DAAwB;AACvK,qDAAqD,+DAAwB,GAAG,+GAA+G,wEAAiC,8FAA8F,wCAAwC;AACtW,kCAAkC,iDAAU,GAAG,iDAAU;AACzD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uGAAuG,8DAAuB;AAC9H,0DAA0D,+DAAwB,GAAG,sDAAsD,0EAA0E,aAAa,wEAAiC,GAAG;AACtQ,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;;AAEA;AACA;AACA;AACA,qBAAqB,gDAAgD;AACrE,UAAU,eAAe,gDAAgD;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,8CAA8C,+DAAwB;AAC3J,iDAAiD,+DAAwB,GAAG,sGAAsG,wEAAiC,0FAA0F,wCAAwC;AACrV,8BAA8B,iDAAU,GAAG,iDAAU;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qGAAqG,8DAAuB;AAC5H,yDAAyD,+DAAwB,GAAG,qDAAqD,gNAAgN,aAAa,wEAAiC,GAAG;AAC1Y,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,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,6CAA6C,+DAAwB;AACxJ,gDAAgD,+DAAwB,GAAG,oGAAoG,wEAAiC,yFAAyF,wCAAwC;AACjV,6BAA6B,iDAAU,GAAG,iDAAU;AACpD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,8DAAuB;AAC5G,iDAAiD,+DAAwB,GAAG,6CAA6C,oHAAoH,aAAa,wEAAiC,GAAG;AAC9R,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;;AAEA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,qCAAqC,+DAAwB;AAChI,wCAAwC,+DAAwB,GAAG,wEAAwE,wEAAiC,iFAAiF,wCAAwC;AACrS,qBAAqB,iDAAU,GAAG,iDAAU;AAC5C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,8DAAuB;AACtG,8CAA8C,+DAAwB,GAAG,0CAA0C,8XAA8X,aAAa,wEAAiC,GAAG;AACliB,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,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;;AAEA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,kCAAkC,+DAAwB;AACvH,qCAAqC,+DAAwB,GAAG,uEAAuE,wEAAiC,8EAA8E,wCAAwC;AAC9R,kBAAkB,iDAAU,GAAG,iDAAU;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yGAAyG,8DAAuB;AAChI,2DAA2D,+DAAwB,GAAG,uDAAuD,kBAAkB,aAAa,wEAAiC,GAAG;AAChN,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,cAAc;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,+CAA+C,+DAAwB;AAC9J,kDAAkD,+DAAwB,GAAG,mGAAmG,wEAAiC,2FAA2F,wCAAwC;AACpV,+BAA+B,iDAAU,GAAG,iDAAU;AACtD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,8DAAuB;AAC9G,kDAAkD,+DAAwB,GAAG,8CAA8C,oCAAoC,aAAa,wEAAiC,GAAG;AAChN,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,sCAAsC,+DAAwB;AACnI,yCAAyC,+DAAwB,GAAG,gFAAgF,wEAAiC,kFAAkF,wCAAwC;AAC/S,sBAAsB,iDAAU,GAAG,iDAAU;AAC7C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,8DAAuB;AAClG,4CAA4C,+DAAwB,GAAG,wCAAwC,gJAAgJ,aAAa,wEAAiC,GAAG;AAChT,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;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,4CAA4C;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,gCAAgC,+DAAwB,wBAAwB,+DAAwB;AACjK,mCAAmC,+DAAwB,GAAG,+FAA+F,gEAAyB,0BAA0B,wEAAiC,4EAA4E,wCAAwC;AACrW,gBAAgB,iDAAU,GAAG,iDAAU;AACvC;AACA;;AAEA;AACA;AACA,mBAAmB,4BAA4B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,wCAAwC,+DAAwB;AACzI,2CAA2C,+DAAwB,GAAG,mFAAmF,kIAAkI,aAAa,wEAAiC,oFAAoF,wCAAwC;AACrc,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,wBAAwB,iDAAU,GAAG,iDAAU;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,6CAA6C,+DAAwB;AACxJ,gDAAgD,+DAAwB,GAAG,8FAA8F,wJAAwJ,aAAa,wEAAiC,yFAAyF,wCAAwC;AAChf,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oD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AAU;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;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA,wCAAwC,wBAAwB;AAChE;AACA;AACA,2CAA2C,EAAE;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,yCAAyC,+DAAwB;AAC5I,4CAA4C,+DAAwB,GAAG,2FAA2F,wEAAiC,qFAAqF,wCAAwC;AAChU,yBAAyB,iDAAU,GAAG,iDAAU;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,8DAAuB;AAChH,mDAAmD,+DAAwB,GAAG,+CAA+C,oFAAoF,aAAa,wEAAiC,GAAG;AAClQ,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;;AAEA;AACA;AACA,m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,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;;AAEA;AACA;AACA,mBAAmB,4BAA4B;AAC/C;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA,yCAAyC,wBAAwB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,EAAE;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,iCAAiC,+DAAwB;AACpH,oCAAoC,+DAAwB,GAAG,qEAAqE,wEAAiC,6EAA6E,wCAAwC;AAC1R,iBAAiB,iDAAU,GAAG,iDAAU;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,8DAAuB;AACxG,+CAA+C,+DAAwB,GAAG,2CAA2C,0KAA0K,aAAa,wEAAiC,GAAG;AAChV,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,oDAA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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,iCAAiC,+DAAwB,wBAAwB,+DAAwB;AACpK,oCAAoC,+DAAwB,GAAG,sEAAsE,gEAAyB,uBAAuB,wEAAiC,6EAA6E,wCAAwC;AAC3U,iBAAiB,iDAAU,GAAG,iDAAU;AACxC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F,8DAAuB;AACtH,sDAAsD,+DAAwB,GAAG,kDAAkD,4FAA4F,aAAa,wEAAiC,GAAG;AAChR,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;;AAEA;AACA;AACA,mBAAmB,mCAAmC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,0CAA0C,+DAAwB;AAC/I,6CAA6C,+DAAwB,GAAG,8FAA8F,wEAAiC,sFAAsF,wCAAwC;AACrU,0BAA0B,iDAAU,GAAG,iDAAU;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6GAA6G,8DAAuB;AACpI,6DAA6D,+DAAwB,GAAG,yDAAyD,oIAAoI,aAAa,wEAAiC,GAAG;AACtU,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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,iDAAiD,+DAAwB;AACpK,oDAAoD,+DAAwB,GAAG,6GAA6G,wEAAiC,6FAA6F,wCAAwC;AAClW,iCAAiC,iDAAU,GAAG,iDAAU;AACxD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,8DAAuB;AAChH,mDAAmD,+DAAwB,GAAG,+CAA+C,sUAAsU,aAAa,wEAAiC,GAAG;AACpf,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,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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,uCAAuC,+DAAwB;AACtI,0CAA0C,+DAAwB,GAAG,wFAAwF,wEAAiC,mFAAmF,wCAAwC;AACzT,uBAAuB,iDAAU,GAAG,iDAAU;AAC9C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,8DAAuB;AAC9G,kDAAkD,+DAAwB,GAAG,8CAA8C,kGAAkG,aAAa,wEAAiC,GAAG;AAC9Q,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;;AAEA;AACA;AACA;AACA,8CAA8C,mCAAmC;AACjF;AACA,iBAAiB,4BAA4B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,sCAAsC,+DAAwB;AACnI,yCAAyC,+DAAwB,GAAG,sFAAsF,wEAAiC,kFAAkF,wCAAwC;AACrT,sBAAsB,iDAAU,GAAG,iDAAU;AAC7C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F,8DAAuB;AACtH,sDAAsD,+DAAwB,GAAG,kDAAkD,4FAA4F,aAAa,wEAAiC,GAAG;AAChR,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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,0CAA0C,+DAAwB;AAC/I,6CAA6C,+DAAwB,GAAG,+FAA+F,wEAAiC,sFAAsF,wCAAwC;AACtU,0BAA0B,iDAAU,GAAG,iDAAU;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iGAAiG,8DAAuB;AACxH,uDAAuD,+DAAwB,GAAG,mDAAmD,gLAAgL,aAAa,wEAAiC,GAAG;AACtW,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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,2CAA2C,+DAAwB;AAClJ,8CAA8C,+DAAwB,GAAG,iGAAiG,wEAAiC,uFAAuF,wCAAwC;AAC1U,2BAA2B,iDAAU,GAAG,iDAAU;AAClD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,8DAAuB;AAC9G,kDAAkD,+DAAwB,GAAG,8CAA8C,gNAAgN,aAAa,wEAAiC,GAAG;AAC5X,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,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,sCAAsC,+DAAwB;AACnI,yCAAyC,+DAAwB,GAAG,sFAAsF,wEAAiC,kFAAkF,wCAAwC;AACrT,sBAAsB,iDAAU,GAAG,iDAAU;AAC7C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,8DAAuB;AAC5G,iDAAiD,+DAAwB,GAAG,6CAA6C,sgBAAsgB,aAAa,wEAAiC,GAAG;AAChrB,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,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,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;;AAEA;AACA;AACA,mBAAmB,mCAAmC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,qCAAqC,+DAAwB,wBAAwB,+DAAwB;AAChL,wCAAwC,+DAAwB,GAAG,8EAA8E,0BAA0B,aAAa,gEAAyB,0BAA0B,wEAAiC,iFAAiF,wCAAwC;AACrY,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,qBAAqB,iDAAU,GAAG,iDAAU;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,8DAAuB;AACpG,6CAA6C,+DAAwB,GAAG,oHAAoH;AAC5L,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,aAAa,wEAAiC,GAAG;AACxD,iDAAU;AACV,IAAI,8DAAe;AACnB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;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,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,iCAAiC,+DAAwB,wBAAwB,+DAAwB;AACpK,oCAAoC,+DAAwB,GAAG,sEAAsE,gEAAyB,uBAAuB,wEAAiC,6EAA6E,wCAAwC;AAC3U,iBAAiB,iDAAU,GAAG,iDAAU;AACxC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F,8DAAuB;AACtH,sDAAsD,+DAAwB,GAAG,kDAAkD,4FAA4F,aAAa,wEAAiC,GAAG;AAChR,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;;AAEA;AACA;AACA,mBAAmB,mCAAmC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,0CAA0C,+DAAwB;AAC/I,6CAA6C,+DAAwB,GAAG,8FAA8F,wEAAiC,sFAAsF,wCAAwC;AACrU,0BAA0B,iDAAU,GAAG,iDAAU;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,4DAA4D,2CAA2C,sDAAsD,0FAA0F,mEAA4B,iEAAiE;AACpV,+CAA+C,gEAAyB,GAAG,yDAAyD,4CAA4C;;AAEhL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,4CAA4C,uDAAuD,4FAA4F,mEAA4B,mEAAmE;AAC3V,gDAAgD,gEAAyB,GAAG,2EAA2E;;AAEvJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,0BAA0B,WAAW;AACrC;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,mCAAmC,uDAAY;AAC/C;AACA;AACA,QAAQ,2EAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8DAAU;AACtC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA,eAAe,wDAAS;AACxB;AACA;AACA,qEAAqE,sCAAsC,+DAAwB,wBAAwB,+DAAwB,gBAAgB,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,sEAAkB,GAAG,+DAAwB,CAAC,6EAA0B,GAAG,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,6BAA6B,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,CAAC,oDAAgB;AAC/gB,yCAAyC,+DAAwB,GAAG,wEAAwE,oEAAoE,aAAa,oCAAoC,4CAA4C,gEAAyB;AACtU;AACA;AACA,cAAc,sEAAsE;AACpF;AACA,YAAY,6EAAmB;AAC/B;AACA,yBAAyB,qEAAW;AACpC;AACA;AACA,YAAY,wEAAiC,wMAAwM;AACrP,QAAQ,uDAAgB;AACxB,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,qGAAqG,uCAAuC;AACrK,QAAQ,0DAAmB;AAC3B,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,iGAAiG,8BAA8B;AACxJ,QAAQ,0DAAmB;AAC3B,MAAM;AACN,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,2EAA2E,iFAA4B,yCAAyC;AACvJ,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,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,sBAAsB,iDAAU,GAAG,iDAAU;AAC7C;AACA,QAAQ,qDAAU;AAClB,QAAQ,sEAAW;AACnB,QAAQ,6EAAmB;AAC3B,QAAQ,iDAAM;AACd;AACA,QAAQ,4DAAiB;AACzB,QAAQ,oDAAS;AACjB;;AAEA;AACA;AACA;AACA,mBAAmB,yDAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA,mFAAmF,6CAA6C,sDAAe,4BAA4B,sDAAe,UAAU,sDAAe,CAAC,iDAAa;AACjO,iDAAiD,gEAAyB,GAAG,2DAA2D,8CAA8C;AACtL,6BAA6B,iDAAU,GAAG,8CAAO,IAAI,qDAAM;AAC3D,IAAI,8CAAO,IAAI,qDAAM;AACrB,IAAI,iDAAU,yDAAyD,iDAAM;AAC7E;;AAEA;AACA;AACA,4BAA4B,oCAAoC;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,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,qCAAqC,+DAAwB;AAChI,wCAAwC,+DAAwB,GAAG,4EAA4E,kHAAkH,aAAa,gEAAyB,IAAI,wCAAwC,IAAI,qEAAqE,IAAI,wEAAiC,iFAAiF,wCAAwC;AAC1jB,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,qBAAqB,iDAAU,GAAG,iDAAU;AAC5C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,iDAAiD,+DAAwB,wBAAwB,+DAAwB,CAAC,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,iDAAU,GAAG,iDAAU;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mGAAmG,qDAAqD,+DAAwB;AAChL,wDAAwD,+DAAwB,GAAG,qHAAqH,wEAAiC,iGAAiG,wCAAwC;AAClX,qCAAqC,iDAAU,GAAG,iDAAU;AAC5D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F,mDAAmD,+DAAwB;AAC1K,sDAAsD,+DAAwB,GAAG,gHAAgH,wEAAiC,+FAA+F,wCAAwC;AACzW,mCAAmC,iDAAU,GAAG,iDAAU;AAC1D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,kDAAkD,+DAAwB;AACvK,qDAAqD,+DAAwB,GAAG,8GAA8G,wEAAiC,8FAA8F,wCAAwC;AACrW,kCAAkC,iDAAU,GAAG,iDAAU;AACzD;;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,2EAAe;AACvB;AACA;AACA,4BAA4B,6DAAS,UAAU,8EAA0B;AACzE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,iCAAiC,8EAA0B;AAC3D;AACA;AACA,mEAAmE,qCAAqC,+DAAwB,wBAAwB,+DAAwB,gBAAgB,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,sEAAkB,GAAG,+DAAwB,CAAC,6EAA0B,GAAG,+DAAwB,C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;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;AACA,SAAS;AACT;AACA;AACA;AACA,8BAA8B,iCAAiC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,gDAAgD,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,oDAAgB;AACxQ,mDAAmD,+DAAwB,GAAG,mGAAmG,mEAAmE;AACpP,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,gCAAgC,iDAAU,GAAG,iDAAU,uBAAuB,qDAAU;AACxF,QAAQ,iDAAM;AACd,QAAQ,oDAAS;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD,kCAAkC,8DAAuB,GAAG,oBAAoB;AAChF,kCAAkC,8DAAuB,GAAG;;AAE5D;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,gBAAgB,gBAAgB;AAChC;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,gBAAgB,SAAS,QAAQ,UAAU,WAAW,YAAY;AAC1G,uBAAuB,mBAAmB;AAC1C,gDAAgD,SAAS,QAAQ,eAAe;AAChF,8DAA8D,aAAa;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,aAAa;AACb,SAAS;AACT;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,aAAa;AACb;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kBAAkB;AAChD;AACA;AACA,oCAAoC,0CAAI;AACxC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,aAAa;AACvC;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,mEAAmE,qCAAqC,sDAAe,CAAC,iDAAa;AACrI,yCAAyC,gEAAyB,GAAG,mDAAmD,sCAAsC;AAC9J,qBAAqB,iDAAU,GAAG,iDAAU,uBAAuB,iDAAM;AACzE;;AAEA;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,wCAAwC,+DAAwB,sBAAsB,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,iDAAa;AAClP,2CAA2C,+DAAwB,GAAG,6EAA6E,wBAAwB,aAAa,kBAAkB,mFAAmF,oBAAoB;AACjT,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,wBAAwB,iDAAU,GAAG,iDAAU,2CAA2C,qDAAU,EAAE,iDAAM;AAC5G;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE,wCAAwC,8DAAuB,GAAG,0BAA0B;AAC5F,wCAAwC,8DAAuB,GAAG,iCAAiC;AACnG,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qDAAiB,EAAE,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AAC1F,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,mDAAQ;AACtB;AACA;AACA;AACA,0BAA0B,yDAAY;AACtC,aAAa;AACb,KAAK,iBAAiB;AACtB,eAAe,mDAAmD,gEAAyB,oBAAoB,4BAA4B,8BAA8B,yBAAyB,QAAQ,yDAAY,IAAI,yBAAyB,gCAAgC,IAAI;AACvR,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qDAAiB,EAAE,IAAI,MAAM,iDAAa,EAAE,IAAI,MAAM,oDAAgB,EAAE,IAAI,IAAI;AACtH,kBAAkB,gDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,mDAAQ;AACtB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB;AACtB,eAAe,mDAAmD,gEAAyB,iBAAiB,yFAAyF,IAAI;AACzM,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,qDAAU;AACxB,KAAK,iBAAiB,UAAU,MAAM,iDAAa,EAAE,IAAI,UAAU;AACnE,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,0BAA0B,IAAI,MAAM,qDAAiB,EAAE,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AACxH,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,mDAAQ;AACtB;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB;AACtB,eAAe,mDAAmD,gEAAyB,uBAAuB,yEAAyE,IAAI;;AAE/L;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;AACA;AACA;AACA,CAAC,oBAAoB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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AC,wBAAwB;;AAEzB;AACA;AACA;AACA,+BAA+B;;AAE/B;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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,CAAC;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,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qCAAqC;AACjD;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,YAAY,qCAAqC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kEAAO;AAC9B;AACA;AACA;AACA,yBAAyB;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,qCAAqC,oBAAoB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,sBAAsB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E;AAC1E;AACA;AACA;AACA;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,aAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0BAA0B;AAC3D;AACA;AACA;AACA;AACA,YAAY,uCAAuC;AACnD,YAAY,uCAAuC;AACnD,WAAW,kEAAO,gCAAgC,kEAAO;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,kEAAO;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,kBAAkB,kEAAO;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,sBAAsB,UAAU;AAChC,uBAAuB,UAAU;AACjC,sBAAsB,UAAU;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAU;AAChC,qBAAqB,UAAU;AAC/B,wBAAwB,UAAU;AAClC;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qEAAU;AACpC;AACA;AACA;AACA;AACA;AACA,eAAe,uEAAY;AAC3B;AACA;AACA,wCAAwC,uEAAY;AACpD;AACA;AACA,gBAAgB,+GAA+G;AAC/H;AACA;AACA;AACA;AACA,0BAA0B,+EAAoB;AAC9C,yBAAyB,8EAAmB;AAC5C;AACA;AACA,6BAA6B,qEAAU;AACvC;AACA,gDAAgD,qEAAU;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,EAAE,mBAAmB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;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,uBAAuB,8EAAmB;AAC1C,qBAAqB,4EAAgB;AACrC,sBAAsB,2EAAe;AACrC,eAAe,0EAAc;AAC7B;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,uBAAuB,IAAI,8EAAmB,sBAAsB;AAC1G;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;AACA,mEAAmE;AACnE,yCAAyC,gEAAyB,GAAG,mDAAmD,sCAAsC;;AAE9J;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oEAAQ;AAClC;AACA;AACA;AACA;AACA;AACA,eAAe,qEAAU;AACzB;AACA;AACA,wCAAwC,qEAAU;AAClD;AACA;AACA,gBAAgB,+GAA+G;AAC/H;AACA;AACA;AACA;AACA,0BAA0B,6EAAiB;AAC3C,yBAAyB,4EAAgB;AACzC;AACA;AACA,6BAA6B,oEAAQ;AACrC;AACA,gDAAgD,oEAAQ;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,EAAE,mBAAmB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,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,0BAA0B,6EAAiB;AAC3C,eAAe,sEAAU;AACzB;AACA;AACA,qBAAqB,4EAAgB;AACrC,sBAAsB,2EAAe;AACrC,eAAe,0EAAc;AAC7B;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,uBAAuB,IAAI,4EAAgB,sBAAsB;AACpG;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;AACA,iEAAiE;AACjE,wCAAwC,gEAAyB,GAAG,kDAAkD,qCAAqC;;AAE3J;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;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kEAAO;AACjC;AACA;AACA;AACA;AACA;AACA,eAAe,qEAAS;AACxB;AACA;AACA,wCAAwC,qEAAS;AACjD;AACA;AACA,gBAAgB,6IAA6I;AAC7J;AACA;AACA;AACA,+BAA+B,2EAAe;AAC9C,8BAA8B,kEAAO;AACrC,8BAA8B,0EAAc;AAC5C,6BAA6B,kEAAO;AACpC;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,2BAA2B,QAAQ,EAAE,mBAAmB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;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,eAAe,0EAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,2CAA2C,EAAE,sBAAsB;AACrF;AACA,0BAA0B;AAC1B;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,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,yCAAyC;AAC5F;AACA;AACA;AACA,mBAAmB,oEAAS;AAC5B;AACA;AACA,mBAAmB,oEAAS;AAC5B;AACA;AACA;AACA;AACA,mDAAmD,kCAAkC;AACrF;AACA;AACA,+DAA+D,mCAAmC,sDAAe,CAAC,sEAAkB;AACpI,uCAAuC,gEAAyB,GAAG,iDAAiD,oCAAoC;AACxJ,mBAAmB,kDAAU,GAAG,kDAAU,uBAAuB,sEAAW;AAC5E;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qEAAS;AACnC;AACA;AACA;AACA;AACA;AACA,eAAe,oEAAQ;AACvB;AACA;AACA,wCAAwC,oEAAQ;AAChD;AACA;AACA,gBAAgB,+GAA+G;AAC/H;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,2BAA2B,QAAQ,EAAE,mBAAmB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;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,sBAAsB,2EAAe;AACrC,eAAe,0EAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB,EAAE,kBAAkB;AAC3D;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,mDAAmD,yCAAyC;AAC5F;AACA;AACA;AACA,mBAAmB,oEAAS;AAC5B;AACA;AACA,mBAAmB,oEAAS;AAC5B;AACA;AACA;AACA;AACA,6DAA6D,kCAAkC,sDAAe,CAAC,sEAAkB;AACjI,sCAAsC,gEAAyB,GAAG,gDAAgD,mCAAmC;AACrJ,kBAAkB,kDAAU,GAAG,kDAAU,uBAAuB,sEAAW;AAC3E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4CAA4C;;AAE7C;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,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA,2DAA2D,iCAAiC,sDAAe,CAAC,mDAAe;AAC3H,qCAAqC,gEAAyB,GAAG,+CAA+C,kCAAkC;AAClJ,iBAAiB,kDAAU,GAAG,kDAAU,uBAAuB,mDAAQ;AACvE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,iCAAiC;AACtG;AACA;AACA;AACA,+DAA+D,mCAAmC,sDAAe,CAAC,sEAAkB;AACpI,uCAAuC,gEAAyB,GAAG,iDAAiD,oCAAoC;AACxJ,mBAAmB,kDAAU,GAAG,kDAAU,uBAAuB,sEAAW;AAC5E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,uCAAuC,uDAAY;AACnD,6BAA6B,uDAAY;AACzC,6BAA6B,uDAAY;AACzC,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,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,sDAAsD,sBAAsB;AAC5E;AACA;AACA;AACA;AACA,qCAAqC,oEAAS;AAC9C;AACA;AACA;AACA,qCAAqC,oEAAS;AAC9C;AACA;AACA;AACA;AACA,sDAAsD,WAAW;AACjE;AACA,8DAA8D,sBAAsB;AACpF;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oFAAoF,6BAA6B;AACjH,gEAAgE,6BAA6B;AAC7F;AACA;AACA,kBAAkB,kBAAkB;AACpC,kBAAkB;AAClB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,oFAAmB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oEAAS;AACnC,2BAA2B,oEAAS;AACpC;AACA;AACA,eAAe,oEAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,eAAe;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,qFAAqF,8CAA8C,+DAAwB,kBAAkB,+DAAwB,CAAC,sEAAkB,GAAG,+DAAwB,oBAAoB,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB;AACjZ,iDAAiD,+DAAwB,GAAG,wKAAwK;AACpP,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,oaAAoa,aAAa,0JAA0J,aAAa,kEAA2B,m2BAAm2B;AACz+C,QAAQ,wDAAiB,uFAAuF,oEAA6B;AAC7I,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,MAAM;AACN,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,4BAA4B,QAAQ,qDAAc,EAAE,kDAAW,EAAE,qDAAc,iBAAiB,8DAAuB,YAAY,wCAAwC;AAClL,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU,gBAAgB,sDAAW;AACzC;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU,gBAAgB,sDAAW;AACzC;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,kDAAU;AACV,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,0DAAW;AACf,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,0DAAW;AACf,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,0DAAW;AACf,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,0DAAW;AACf,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,8BAA8B,kDAAU,GAAG,kDAAU;AACrD,QAAQ,sEAAW;AACnB;AACA,QAAQ,4DAAiB;AACzB,QAAQ,qDAAU;AAClB,QAAQ,oDAAS;AACjB;;AAEA;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,kHAAkH,yBAAyB;AAC3I;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE,2CAA2C,gEAAyB,GAAG,qDAAqD,wCAAwC;;AAEpK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uDAAY;AAChD,mCAAmC,uDAAY;AAC/C,mCAAmC,uDAAY;AAC/C;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;AACA;AACA;AACA;AACA,kBAAkB,OAAO,IAAI,wBAAwB;AACrD;AACA;AACA;AACA,gDAAgD,kEAAO,YAAY,kEAAO;AAC1E;AACA;AACA;AACA;AACA;AACA,6DAA6D,kCAAkC,+DAAwB,kBAAkB,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,CAAC,sEAAkB,GAAG,+DAAwB;AACzT,qCAAqC,+DAAwB,GAAG,2IAA2I;AAC3M,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,0PAA0P,aAAa,8GAA8G,aAAa,kEAA2B,gqCAAgqC;AAChlD,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,QAAQ,uDAAgB;AACxB,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB;AACzB,QAAQ,4DAAqB;AAC7B,QAAQ,oDAAa;AACrB,QAAQ,0DAAmB;AAC3B,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,MAAM;AACN,QAAQ,yDAAkB;AAC1B,QAAQ,wDAAiB,8BAA8B,6DAAsB;AAC7E,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB,0FAA0F,6DAAsB;AACzI,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,wDAAiB,8BAA8B,6DAAsB;AAC7E,QAAQ,uDAAgB;AACxB,QAAQ,gEAAyB;AACjC,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,eAAe,0FAAoC,EAAE,kDAAW,EAAE,8DAAuB,qBAAqB;AACrH,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU,gBAAgB,sDAAW;AACzC;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,kDAAU;AACV,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,kDAAU;AACd;AACA,kBAAkB,kDAAU,GAAG,kDAAU;AACzC,QAAQ,4DAAiB;AACzB,QAAQ,8EAAmB;AAC3B,QAAQ,sEAAW;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,8CAA8C,EAAE,cAAc;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,oCAAoC,sDAAe;AACpH,wCAAwC,gEAAyB,GAAG,kDAAkD,qCAAqC;AAC3J,oBAAoB,kDAAU,GAAG,kDAAU;AAC3C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,6DAA6D;AAC3E;AACA;AACA;AACA;AACA,kEAAkE,kEAAO;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,0CAA0C,kEAAO;AACjD;AACA;AACA,+DAA+D,mCAAmC,sDAAe;AACjH,uCAAuC,gEAAyB,GAAG,iDAAiD,oCAAoC;AACxJ,mBAAmB,kDAAU,GAAG,kDAAU;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,4BAA4B;AACvF;AACA;AACA,yCAAyC,mDAAmD;AAC5F;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA,+BAA+B,gBAAgB;AAC/C;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,wCAAwC,+DAAwB,CAAC,sDAAkB;AAC5J,2CAA2C,+DAAwB,GAAG,iFAAiF;AACvJ,wBAAwB,kDAAU,GAAG,kDAAU,uBAAuB,sDAAW;AACjF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,4BAA4B;AACvF;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA,+BAA+B,wBAAwB;AACvD;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,6CAA6C,+DAAwB,CAAC,sDAAkB;AAC3K,gDAAgD,+DAAwB,GAAG,2FAA2F;AACtK,6BAA6B,kDAAU,GAAG,kDAAU,uBAAuB,sDAAW;AACtF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,4BAA4B;AACvF;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA,+BAA+B,wBAAwB;AACvD;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,4CAA4C,+DAAwB,CAAC,sDAAkB;AACxK,+CAA+C,+DAAwB,GAAG,yFAAyF;AACnK,4BAA4B,kDAAU,GAAG,kDAAU,uBAAuB,sDAAW;AACrF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,4BAA4B;AACvF;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA,+BAA+B,wBAAwB;AACvD;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,8CAA8C,+DAAwB,CAAC,sDAAkB;AAC9K,iDAAiD,+DAAwB,GAAG,6FAA6F;AACzK,8BAA8B,kDAAU,GAAG,kDAAU,uBAAuB,sDAAW;AACvF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,4BAA4B;AACvF;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA,+BAA+B,wBAAwB;AACvD;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,+CAA+C,+DAAwB,CAAC,sDAAkB;AACjL,kDAAkD,+DAAwB,GAAG,+FAA+F;AAC5K,+BAA+B,kDAAU,GAAG,kDAAU,uBAAuB,sDAAW;AACxF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,4BAA4B;AACvF;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA,+BAA+B,wBAAwB;AACvD;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,kDAAkD,+DAAwB,CAAC,sDAAkB;AAC1L,qDAAqD,+DAAwB,GAAG,qGAAqG;AACrL,kCAAkC,kDAAU,GAAG,kDAAU,uBAAuB,sDAAW;AAC3F;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,4BAA4B;AACvF;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA,+BAA+B,OAAO;AACtC;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,+CAA+C,+DAAwB,CAAC,sDAAkB;AACjL,kDAAkD,+DAAwB,GAAG,+FAA+F;AAC5K,+BAA+B,kDAAU,GAAG,kDAAU,uBAAuB,sDAAW;AACxF;;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;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;;AAEA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC,0BAA0B,uDAAY;AACtC,oCAAoC,uDAAY;AAChD,0CAA0C,uDAAY;AACtD;AACA;AACA,yDAAyD;AACzD,oCAAoC,gEAAyB,GAAG,mDAAmD;;AAEnH;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,IAAI;AACJ;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,2BAA2B,0CAA0C;AACrE;AACA;AACA;AACA;AACA,2BAA2B,8CAA8C;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oCAAoC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sCAAsC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iCAAiC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yCAAyC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,oCAAoC;AAChF;AACA,oCAAoC,uDAAY;AAChD;AACA;AACA,4CAA4C,kCAAkC;AAC9E;AACA,4BAA4B,uDAAY;AACxC;AACA;AACA,4CAA4C,oCAAoC;AAChF;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA,4CAA4C,oCAAoC;AAChF;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA,4CAA4C,oCAAoC;AAChF;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,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,uBAAuB,iCAAiC;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,qEAAqE,oEAAS;AAC9E,YAAY,oEAAS;AACrB,2FAA2F,oEAAS;AACpG;AACA;AACA,8BAA8B,oEAAS;AACvC,+BAA+B,oEAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0CAA0C;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iCAAiC;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;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,8BAA8B,uEAAU;AACxC;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA,YAAY,kEAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,MAAM;AACvE;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,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,oEAAS;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oEAAS;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,6BAA6B,yBAAyB;AACtD;AACA;AACA;AACA;AACA;AACA,YAAY,6EAAY;AACxB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wDAAS;AACtB;AACA;AACA;AACA,gFAAgF,cAAc,MAAM,aAAa;AACjH;AACA;AACA,kFAAkF,sBAAsB,MAAM,kBAAkB;AAChI;AACA;AACA;AACA,aAAa,wDAAS;AACtB;AACA;AACA;AACA,6FAA6F,gBAAgB;AAC7G;AACA;AACA;AACA;AACA,4GAA4G,gBAAgB;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,6CAA6C,oEAAS,0CAA0C,oEAAS;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mFAAmF,6CAA6C,+DAAwB,kBAAkB,+DAAwB,CAAC,qDAAiB,GAAG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AAI,kDAAU;AACd,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,6BAA6B,kDAAU,GAAG,+CAAO,IAAI,uDAAQ;AAC7D,IAAI,kDAAU;AACd,QAAQ,qDAAU;AAClB;AACA,QAAQ,oDAAS;AACjB,QAAQ,4DAAiB;AACzB,QAAQ,iDAAM;AACd;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,uIAAuI,EAAE;AACzI;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wCAAwC;AACxD;AACA;AACA;AACA,aAAa,gFAAmB;AAChC;AACA;AACA;AACA,sGAAsG,mCAAmC;AACzI;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA,aAAa,gFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD,+BAA+B,mBAAmB;AAClD,iCAAiC,mBAAmB;AACpD;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,SAAS;AAC7C;AACA,mCAAmC,SAAS;AAC5C;AACA,qCAAqC,SAAS;AAC9C;AACA,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE,yCAAyC,gEAAyB,GAAG,mDAAmD,sCAAsC;;AAE9J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,aAAa;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,SAAS,cAAc;AACvB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gDAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,6CAAU;AAC1C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kDAAkD;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,mCAAmC,yDAAc;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;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,qCAAqC,uDAAY;AACjD,8BAA8B,uDAAY;AAC1C,gCAAgC,uDAAY;AAC5C;AACA;AACA,8BAA8B,0CAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,eAAe;AACxC,iDAAiD,gBAAgB,IAAI;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,sBAAsB,oDAAG;AACzB;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oDAAa,CAAC,yCAAE,SAAS,+CAAQ,IAAI,0DAAuB,QAAQ,oDAAG,uBAAuB,qDAAI,gBAAgB,0DAAS,iBAAiB,oDAAG;AAC/J,SAAS;AACT;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,0CAA0C,+DAAwB,0BAA0B,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,iDAAa;AACxS,6CAA6C,+DAAwB,GAAG,2JAA2J;AACnO,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,gSAAgS,aAAa,gGAAgG,aAAa,gEAAyB;AACtc;AACA;AACA,aAAa,IAAI,kEAA2B,wKAAwK;AACpN,QAAQ,6DAAsB;AAC9B,QAAQ,0DAAmB;AAC3B,QAAQ,uDAAgB;AACxB,MAAM;AACN,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,wDAAiB;AACzB,OAAO,eAAe,qDAAc,qBAAqB;AACzD,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,kDAAU;AACV,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,0DAAW;AACf,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,0BAA0B,kDAAU,GAAG,+CAAO,IAAI,qDAAM;AACxD,IAAI,kDAAU,+BAA+B,qDAAU;AACvD,QAAQ,oDAAS;AACjB,QAAQ,iDAAM;AACd;;AAEA;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,+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,mBAAmB,MAAM;AACzB;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oEAAS;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,sCAAsC,+DAAwB,kBAAkB,+DAAwB,sBAAsB,+DAAwB,CAAC,sEAAkB,GAAG,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,CAAC,oDAAgB;AAC9U,yCAAyC,+DAAwB,GAAG,gIAAgI;AACpM,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,kFAAkF;AACzF,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,0GAA0G,aAAa,sDAAsD,aAAa,kEAA2B,yaAAya;AACjpB,QAAQ,uDAAgB;AACxB,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,0GAA0G,kCAAkC,+GAA+G,kCAAkC;AACtT,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,MAAM;AACN,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB,8BAA8B,6DAAsB;AAC7E,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,4BAA4B,iCAAiC,0FAAoC,UAAU,kDAAW,EAAE,8DAAuB,IAAI,wCAAwC;AAClM,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU,gBAAgB,sDAAW;AACzC;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,kDAAU;AACV,IAAI,wDAAS,4BAA4B,eAAe;AACxD,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,wDAAS,WAAW,cAAc;AACtC,IAAI,kDAAU,gBAAgB,qDAAU;AACxC;AACA,kDAAU;AACV,IAAI,0DAAW;AACf,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,sBAAsB,kDAAU,GAAG,kDAAU;AAC7C;AACA,QAAQ,sEAAW;AACnB,QAAQ,4DAAiB;AACzB,QAAQ,oDAAS;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,uCAAuC,uDAAY;AACnD,oCAAoC,uDAAY;AAChD,oCAAoC,uDAAY;AAChD,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,uDAAuD,8BAA8B;AACrF;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,mBAAmB,MAAM;AACzB;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA,wCAAwC,OAAO;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,qEAAqE,iCAAiC;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,oCAAoC,+DAAwB,kBAAkB,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,CAAC,sEAAkB,GAAG,+DAAwB,sBAAsB,+DAAwB,CAAC,oDAAgB;AACxU,uCAAuC,+DAAwB,GAAG,0HAA0H;AAC5L,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,iFAAiF;AACxF,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,wTAAwT,aAAa,0KAA0K,aAAa,kEAA2B,kMAAkM,0jCAA0jC;AACtyD,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,qHAAqH,2CAA2C;AACzL,QAAQ,0DAAmB;AAC3B,QAAQ,wDAAiB;AACzB,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,wGAAwG,kCAAkC,6GAA6G,kCAAkC,uHAAuH,mCAAmC;AAC5c,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,4BAA4B,yBAAyB,kDAAW,EAAE,qDAAc,oDAAoD,wCAAwC;AACnL,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU,gBAAgB,sDAAW;AACzC;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU,gBAAgB,sDAAW;AACzC;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU,gBAAgB,sDAAW;AACzC;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,kDAAU;AACV,IAAI,wDAAS,4BAA4B,eAAe;AACxD,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,wDAAS,WAAW,cAAc;AACtC,IAAI,kDAAU,gBAAgB,qDAAU;AACxC;AACA,kDAAU;AACV,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,0DAAW;AACf,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,0DAAW;AACf,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,0DAAW;AACf,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,0DAAW;AACf,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,oBAAoB,kDAAU,GAAG,kDAAU;AAC3C,QAAQ,4DAAiB;AACzB,QAAQ,sEAAW;AACnB;AACA,QAAQ,oDAAS;AACjB;;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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,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,iEAAiE,oCAAoC,sDAAe,sBAAsB,sDAAe,CAAC,iDAAa;AACvK,wCAAwC,gEAAyB,GAAG,kDAAkD,qCAAqC;AAC3J,oBAAoB,kDAAU,GAAG,kDAAU,2CAA2C,iDAAM;AAC5F;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,4BAA4B;AACvF;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA,+BAA+B,OAAO;AACtC;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,kDAAkD,+DAAwB,CAAC,sDAAkB;AAC1L,qDAAqD,+DAAwB,GAAG,qGAAqG;AACrL,kCAAkC,kDAAU,GAAG,kDAAU,uBAAuB,sDAAW;AAC3F;;AAEA;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,6DAA6D,2BAA2B;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;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,2BAA2B,qCAAqC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD,wCAAwC,0CAA0C;AAClF;AACA;AACA;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,wBAAwB;AACnD;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA,uCAAuC,0CAA0C;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,gCAAgC;AAC3D;AACA;AACA;AACA;AACA,4CAA4C,2BAA2B;AACvE;AACA,oCAAoC,uDAAY;AAChD;AACA;AACA,4CAA4C,yBAAyB;AACrE;AACA,4BAA4B,uDAAY;AACxC;AACA;AACA,4CAA4C,2BAA2B;AACvE,wCAAwC,0CAA0C;AAClF;AACA,wCAAwC,uDAAY;AACpD;AACA;AACA,4CAA4C,2BAA2B;AACvE;AACA,+BAA+B,uDAAY;AAC3C;AACA,uBAAuB,qEAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2EAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA,oCAAoC,kEAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6BAA6B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6BAA6B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,oEAAS;AAC9E,YAAY,oEAAS;AACrB,2FAA2F,oEAAS;AACpG;AACA;AACA,8BAA8B,oEAAS;AACvC,+BAA+B,oEAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iCAAiC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,UAAU;AACtF,yEAAyE,KAAK;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,MAAM;AAC9E,yCAAyC,sDAAS;AAClD;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;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;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,oEAAS;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iEAAsB;AACnC;AACA;AACA;AACA,0CAA0C,2CAAI;AAC9C;AACA,sCAAsC;AACtC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,4BAA4B;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,4DAA4D,oEAAS;AACrE;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;AACA;AACA;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,yBAAyB;AACtD;AACA;AACA;AACA;AACA;AACA,YAAY,6EAAY;AACxB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;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,aAAa,iEAAsB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,UAAU;AAChE;AACA;AACA,aAAa,wDAAS;AACtB;AACA;AACA;AACA,gFAAgF,gBAAgB,MAAM,eAAe;AACrH;AACA;AACA,kFAAkF,wBAAwB,MAAM,oBAAoB;AACpI;AACA;AACA;AACA,aAAa,wDAAS;AACtB;AACA;AACA;AACA,6FAA6F,kBAAkB;AAC/G;AACA;AACA;AACA;AACA,4GAA4G,kBAAkB;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oEAAS,oBAAoB;AAChE;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,oEAAS,0CAA0C,oEAAS;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,iEAAiE,oCAAoC,+DAAwB,kBAAkB,+DAAwB,sBAAsB,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,qBAAqB,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,mDAAe,GAAG,+DAAwB,qBAAqB,+DAAwB,wBAAwB,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,oBAAoB,+DAAwB;AAClqB,uCAAuC,+DAAwB,GAAG,yIAAyI;AAC3M,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,yDAAyD;AAChE,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,gFAAgF;AACvF,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,q9BAAq9B,aAAa,sIAAsI,2CAA2C,gEAAyB;AAC/rC;AACA;AACA;AACA;AACA,YAAY,8EAAmB;AAC/B;AACA;AACA,yBAAyB,sEAAW;AACpC;AACA,aAAa;AACb;AACA;AACA;AACA,YAAY,kEAA2B,4CAA4C,aAAa;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2iCAA2iC,2DAA2D;AAC5mC,QAAQ,gEAAyB;AACjC,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,MAAM;AACN,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,4BAA4B,4CAA4C,kDAAW,0CAA0C,kFAA4B,0EAA0E,wCAAwC;AAClR,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,0DAAW;AACf,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,kDAAU;AACV,IAAI,2DAAY,0BAA0B,eAAe;AACzD,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,2DAAY,+BAA+B,eAAe;AAC9D,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,2DAAY,8BAA8B,eAAe;AAC7D,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,2DAAY,gCAAgC,eAAe;AAC/D,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,2DAAY,iCAAiC,eAAe;AAChE,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,2DAAY,oCAAoC,eAAe;AACnE,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,2DAAY,iCAAiC,eAAe;AAChE,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,2DAAY,oCAAoC,eAAe;AACnE,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,wDAAS,wBAAwB,eAAe;AACpD,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,wDAAS,sBAAsB,eAAe;AAClD,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,wDAAS,+BAA+B,eAAe;AAC3D,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,0DAAW;AACf,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,0DAAW;AACf,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,oBAAoB,kDAAU,GAAG,+CAAO,KAAK,uDAAQ;AACrD,IAAI,kDAAU;AACd;AACA,QAAQ,qDAAU;AAClB;AACA,QAAQ,oDAAS;AACjB,QAAQ,4DAAiB;AACzB,QAAQ,iDAAM;AACd,QAAQ,mDAAQ;AAChB;AACA;AACA,QAAQ,8EAAmB;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sBAAsB;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,QAAQ,2EAAe;AACvB;AACA;AACA;AACA,yBAAyB,kEAAO;AAChC;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA,yBAAyB,oEAAS;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;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,uBAAuB;AACvB;AACA;AACA;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,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,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,qBAAqB;AACzE;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,wDAAwD,OAAO,EAAE,gCAAgC,EAAE,OAAO;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;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,4BAA4B,4BAA4B;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,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD,0DAA0D,qCAAqC;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,QAAQ;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,6DAA6D,6BAA6B;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,4BAA4B;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qEAAI,GAAG;AACvC;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA;AACA,iCAAiC,uCAAuC;AACxE;AACA;AACA;AACA;AACA;AACA,2BAA2B,gCAAgC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,+BAA+B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,4BAA4B;AACjD;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA,qBAAqB,4BAA4B;AACjD;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA,qBAAqB,4BAA4B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY,IAAI;AAC3C;AACA;AACA;AACA,qBAAqB,4BAA4B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uDAAY,IAAI;AAC1C;AACA;AACA,gCAAgC;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,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;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,2CAA2C,sDAAS;AACpD;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,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,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,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;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,wBAAwB,+BAA+B;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,YAAY,6EAAY;AACxB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6EAAY;AACxB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc,uBAAuB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E;AAC7E;AACA;AACA,uCAAuC;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,wBAAwB,oFAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,yCAAyC;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wDAAS;AACtB;AACA;AACA;AACA,gFAAgF,gBAAgB,MAAM,eAAe;AACrH;AACA;AACA;AACA,aAAa,wDAAS;AACtB;AACA;AACA;AACA,6FAA6F,kBAAkB;AAC/G;AACA;AACA;AACA;AACA;AACA,iCAAiC,kEAAO;AACxC;AACA;AACA;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA,SAAS,IAAI,0BAA0B;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,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,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;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,2DAA2D,QAAQ;AACnE,2DAA2D,QAAQ;AACnE;AACA,oDAAoD,KAAK;AACzD,oDAAoD,KAAK;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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CA;AACA;AACA;AACA,2BAA2B,kCAAkC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,4CAA4C;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA;AACA;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA;AACA;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA,oDAAoD,4CAA4C;AAChG;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA,mBAAmB,oEAAS;AAC5B;AACA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA,mBAAmB,oEAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kCAAkC;AAC7D;AACA;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA,iCAAiC,uCAAuC;AACxE;AACA;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,iCAAiC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mCAAmC;AAC9D;AACA;AACA;AACA;AACA,2BAA2B,kCAAkC;AAC7D;AACA;AACA;AACA;AACA,4CAA4C,6BAA6B;AACzE;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA,4CAA4C,6BAA6B;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY,IAAI;AAC3C;AACA;AACA,4CAA4C,6BAA6B;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uDAAY,IAAI;AAC1C;AACA;AACA;AACA,4CAA4C,6BAA6B;AACzE;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA,4CAA4C,6BAA6B;AACzE;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA;AACA,wBAAwB,qEAAI;AAC5B,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2EAAe;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,kCAAkC;AAClC,mEAAmE;AACnE,oCAAoC;AACpC;AACA;AACA,8CAA8C,IAAI,eAAe;AACjE;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,uBAAuB,mCAAmC;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;AACA;AACA;AACA;AACA,+EAA+E,cAAc;AAC7F;AACA;AACA,gFAAgF,SAAS;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,mDAAmD,6EAAY;AAC/D;AACA;AACA;AACA,aAAa;AACb;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,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,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,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;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,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,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oCAAoC;AACpD,wBAAwB,wEAAW;AACnC;AACA;AACA;AACA,4BAA4B,2EAAc;AAC1C;AACA;AACA,4BAA4B,yEAAY;AACxC;AACA;AACA;AACA,wBAAwB,uEAAU;AAClC,gCAAgC;AAChC;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,+BAA+B,2CAA2C;AAC1E;AACA;AACA;AACA,8BAA8B,wCAAwC;AACtE;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,aAAa,wDAAS;AACtB;AACA;AACA;AACA,gFAAgF,gBAAgB,MAAM,eAAe;AACrH;AACA;AACA;AACA,aAAa,wDAAS;AACtB;AACA;AACA;AACA,6FAA6F,kBAAkB;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,gDAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6EAAY;AACxB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6EAAY,+BAA+B,6EAAY;AACnE;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;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,gFAAgF,cAAc;AAC9F;AACA;AACA;AACA,qEAAqE,sCAAsC,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,CAAC,wEAAmB,GAAG,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,mDAAe,GAAG,+DAAwB,iBAAiB,+DAAwB,wBAAwB,+DAAwB;AACliB,yCAAyC,+DAAwB,GAAG,+IAA+I;AACnN,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,2DAA2D;AAClE,QAAQ,yDAAkB,UAAU,2DAAgB;AACpD,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,kFAAkF;AACzF,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,i3CAAi3C,aAAa,4FAA4F,6CAA6C,gEAAyB;AACnjD,cAAc,SAAS,8DAAiB,eAAe,yDAAU,4CAA4C;AAC7G,cAAc,SAAS,0DAAa,eAAe,yDAAU,4CAA4C;AACzG,cAAc,SAAS,uEAAU,eAAe,yDAAU,+BAA+B;AACzF,YAAY,8EAAmB;AAC/B;AACA;AACA;AACA,yBAAyB,sEAAW;AACpC;AACA;AACA,YAAY,kEAA2B,8CAA8C,aAAa;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,qmCAAqmC,6DAA6D;AACxqC,QAAQ,gEAAyB;AACjC,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,uGAAuG,uCAAuC;AACvK,QAAQ,0DAAmB;AAC3B,QAAQ,4DAAqB;AAC7B,QAAQ,uDAAgB;AACxB,QAAQ,0DAAmB;AAC3B,QAAQ,gEAAyB;AACjC,QAAQ,wDAAiB,+EAA+E,oEAA6B;AACrI,MAAM;AACN,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB,8CAA8C,6DAAsB;AAC7F,QAAQ,yDAAkB;AAC1B,OAAO,4BAA4B,kEAAkE,0FAAoC,wDAAwD,wCAAwC;AACzO,kDAAU;AACV,IAAI,wDAAS,gBAAgB,MAAM,2DAAgB,gBAAgB;AACnE,IAAI,kDAAU,gBAAgB,2DAAgB;AAC9C;AACA,kDAAU;AACV,IAAI,wDAAS,oBAAoB,cAAc;AAC/C,IAAI,kDAAU,gBAAgB,sDAAW;AACzC;AACA,kDAAU;AACV,IAAI,wDAAS,mBAAmB,cAAc;AAC9C,IAAI,kDAAU,gBAAgB,qDAAU;AACxC;AACA,kDAAU;AACV,IAAI,2DAAY,0BAA0B,eAAe;AACzD,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,2DAAY,+BAA+B,eAAe;AAC9D,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,2DAAY,8BAA8B,eAAe;AAC7D,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,2DAAY,gCAAgC,eAAe;AAC/D,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,2DAAY,iCAAiC,eAAe;AAChE,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,2DAAY,oCAAoC,eAAe;AACnE,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,2DAAY,iCAAiC,eAAe;AAChE,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,2DAAY,oCAAoC,eAAe;AACnE,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,kDAAU;AACV,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,0DAAW;AACf,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,8CAA8C,kDAAU,GAAG,+CAAO,IAAI,uDAAQ,KAAK,+CAAO,IAAI,qDAAM;AACpG,IAAI,kDAAU,uBAAuB,iDAAM;AAC3C,QAAQ,8EAAmB;AAC3B,QAAQ,4DAAiB;AACzB,QAAQ,wEAAY;AACpB,QAAQ,qDAAU;AAClB,QAAQ,oDAAS;AACjB,QAAQ,mDAAQ;AAChB;AACA;AACA;;AAEA;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,mCAAmC,eAAe,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,sBAAsB,GAAG,oBAAoB;AAC1I;AACA,+DAA+D,6BAA6B;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qEAAI,GAAG;AACvC;AACA;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA;AACA;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA;AACA;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA,oDAAoD,4CAA4C;AAChG;AACA;AACA;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA;AACA;AACA,2BAA2B,iCAAiC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,6BAA6B;AAClD;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA,qBAAqB,6BAA6B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY,IAAI;AAC3C;AACA;AACA;AACA,qBAAqB,6BAA6B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uDAAY,IAAI;AAC1C;AACA;AACA;AACA;AACA,qBAAqB,6BAA6B;AAClD;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA;AACA,qBAAqB,6BAA6B;AAClD;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA;AACA,wBAAwB,qEAAI;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oEAAS;AAC7B,oBAAoB,oEAAS;AAC7B,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2EAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,+BAA+B;AACtD;AACA;AACA,oBAAoB,oEAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,+BAA+B;AACtD;AACA;AACA,oBAAoB,oEAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qCAAqC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,mEAAmE;AACnE,oCAAoC;AACpC;AACA;AACA,8CAA8C,IAAI,eAAe;AACjE;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,+EAA+E,cAAc;AAC7F;AACA;AACA;AACA,gFAAgF,SAAS;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,mDAAmD,6EAAY;AAC/D;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,yCAAyC,sDAAS;AAClD;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,gBAAgB,kBAAkB;AAClC,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,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;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,gBAAgB,WAAW;AAC3B;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,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,2CAA2C;AAC1E;AACA;AACA;AACA,8BAA8B,wCAAwC;AACtE;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,aAAa,wDAAS;AACtB;AACA;AACA;AACA,6FAA6F,kBAAkB;AAC/G;AACA;AACA;AACA,aAAa,wDAAS;AACtB;AACA;AACA;AACA;AACA,+GAA+G,iBAAiB;AAChI;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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6EAAY,+BAA+B,6EAAY;AACnE;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,cAAc;AAC9F;AACA;AACA;AACA,qEAAqE,sCAAsC,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,CAAC,wEAAmB,GAAG,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,mDAAe,GAAG,+DAAwB,iBAAiB,+DAAwB,CAAC,sEAAkB,GAAG,+DAAwB;AAChiB,yCAAyC,+DAAwB,GAAG,uHAAuH;AAC3L,QAAQ,yDAAkB,UAAU,2DAAgB;AACpD,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,kFAAkF;AACzF,QAAQ,yDAAkB;AAC1B,OAA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G;AACA;AACA;AACA;AACA;AACA,2BAA2B,sCAAsC;AACjE;AACA;AACA;AACA;AACA,2BAA2B,yCAAyC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,gDAAgD;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yCAAyC;AACpE;AACA;AACA;AACA;AACA,2BAA2B,mCAAmC;AAC9D;AACA;AACA;AACA;AACA;AACA,2BAA2B,uCAAuC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,iCAAiC;AAC7E;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA,4CAA4C,iCAAiC;AAC7E;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA,4CAA4C,iCAAiC;AAC7E;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA,4CAA4C,iCAAiC;AAC7E;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA,4CAA4C,iCAAiC;AAC7E;AACA,0BAA0B,uDAAY;AACtC;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,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,+CAAY;AAC7C;AACA;AACA;AACA,QAAQ,2EAAe;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,sBAAsB,oEAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gCAAgC;AACvD;AACA;AACA;AACA,6BAA6B,uCAAuC;AACpE;AACA,kCAAkC,uCAAuC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uCAAuC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sCAAsC;AAC7D;AACA;AACA,kCAAkC;AAClC,mEAAmE;AACnE,oCAAoC;AACpC;AACA;AACA,8CAA8C,IAAI,eAAe;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mCAAmC;AAC1D;AACA;AACA;AACA;AACA;AACA,oBAAoB,oEAAS;AAC7B,2BAA2B,kEAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mCAAmC;AAC1D;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,uBAAuB,sCAAsC;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,+EAA+E,cAAc;AAC7F;AACA;AACA;AACA,gFAAgF,SAAS;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,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oDAAG;AACrB;AACA;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,wCAAwC,iCAAiC;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,0CAA0C,6EAAY;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6EAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,6EAAY,iCAAiC,6EAAY;AAC3G;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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,SAAS;AACT;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,gBAAgB,kBAAkB;AAClC;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,gBAAgB,4BAA4B;AAC5C;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oDAAoD,EAAE,mDAAmD,EAAE,wGAAwG;AACrO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wDAAS;AACtB;AACA;AACA;AACA,6FAA6F,kBAAkB;AAC/G;AACA;AACA;AACA,aAAa,wDAAS;AACtB;AACA;AACA;AACA,gFAAgF,iBAAiB;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,oCAAoC;AACpF,2BAA2B,2CAA2C;AACtE,0BAA0B;AAC1B,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kEAAO;AACnB;AACA;AACA,qBAAqB,oEAAS;AAC9B,6BAA6B,oEAAS;AACtC,8BAA8B,oEAAS;AACvC;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,cAAc;AAC9F;AACA;AACA;AACA,6EAA6E,0CAA0C,+DAAwB,CAAC,wEAAmB,GAAG,+DAAwB,CAAC,sEAAkB,GAAG,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,iBAAiB,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,iBAAiB,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,wBAAwB,+DAAwB,CAAC,oDAAgB;AAC/jB,6CAA6C,+DAAwB,GAAG,2JAA2J;AACnO,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB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CnB,QAAQ,4DAAiB;AACzB;AACA,QAAQ,iDAAM;AACd,QAAQ,qDAAU,WAAW,8EAAmB;AAChD;AACA,QAAQ,oDAAS;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,kDAAkD,+DAAwB,CAAC,sDAAkB;AAC1L,qDAAqD,+DAAwB,GAAG,6FAA6F;AAC7K,kCAAkC,kDAAU,GAAG,kDAAU,uBAAuB,sDAAW;AAC3F;;AAEA;AACA;AACA;AACA;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,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;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,YAAY,kEAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D,uCAAuC,gEAAyB,GAAG,iDAAiD,oCAAoC;;AAExJ;AACA;AACA;AACA;AACA;AACA,YAAY,qCAAqC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,0BAA0B;AAC3E;AACA;AACA;AACA;AACA;AACA,0CAA0C,yCAAyC;AACnF;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,qBAAqB,6BAA6B;AAClD;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA;AACA,qBAAqB,6BAA6B;AAClD;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA,0BAA0B,uDAAY,IAAI;AAC1C;AACA;AACA;AACA,2BAA2B,uDAAY,IAAI;AAC3C;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;AACA,wCAAwC,4CAAK;AAC7C,sBAAsB,uDAAM,uCAAuC,oDAAG;AACtE;AACA,SAAS;AACT;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,SAAS;AACT;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,gBAAgB,kBAAkB;AAClC,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,0CAA0C,+CAAY;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,2CAA2C;AAC9F;AACA;AACA;AACA,oDAAoD;AACpD;AACA,iDAAiD,wCAAwC;AACzF;AACA,aAAa;AACb,oBAAoB,yCAAyC;AAC7D;AACA,yEAAyE,gDAAS,qEAAqE,gDAAS;AAChK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,0CAA0C,+DAAwB,CAAC,wEAAmB,GAAG,+DAAwB,oBAAoB,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,8DAAG;AAC3U,6CAA6C,+DAAwB,GAAG,4JAA4J;AACpO,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,+DAA+D;AACtE,QAAQ,yDAAkB,UAAU,2DAAgB;AACpD,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,YAAY,4JAA4J,aAAa,kFAAkF,gNAAgN;AAC9d,QAAQ,gEAAyB;AACjC,QAAQ,wDAAiB,kFAAkF,oEAA6B;AACxI,OAAO,4BAA4B,mEAAmE,oBAAoB;AAC1H,kDAAU;AACV,IAAI,wDAAS,gBAAgB,MAAM,2DAAgB,iBAAiB;AACpE,IAAI,kDAAU,gBAAgB,2DAAgB;AAC9C;AACA,kDAAU;AACV,IAAI,wDAAS,sBAAsB,eAAe;AAClD,IAAI,kDAAU,gBAAgB,sDAAW;AACzC;AACA,kDAAU;AACV,IAAI,2DAAY,oCAAoC,eAAe;AACnE,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,kDAAU,gBAAgB,oDAAS;AACvC;AACA,kDAAU;AACV,IAAI,8DAAe;AACnB,IAAI,kDAAU,gBAAgB,oDAAS;AACvC;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU,gBAAgB,qDAAU;AACxC;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,0BAA0B,kDAAU,GAAG,+CAAO,IAAI,uDAAQ,KAAK,+CAAO,IAAI,qDAAM,CAAC,8DAAG;AACpF,IAAI,kDAAU,uBAAuB,wEAAY;AACjD;AACA,QAAQ,4DAAiB;AACzB,QAAQ,iDAAM;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2EAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE,wCAAwC,+DAAwB,GAAG,4IAA4I;AAC/M,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,aAAa,gEAAyB,qJAAqJ;AAClM,QAAQ,6DAAsB;AAC9B,QAAQ,0DAAmB;AAC3B,QAAQ,wDAAiB;AACzB,MAAM;AACN,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,eAAe,kDAAW,8CAA8C;AAC/E,kDAAU;AACV,IAAI,8DAAe;AACnB,IAAI,kDAAU,gBAAgB,oDAAS;AACvC;AACA,qBAAqB,kDAAU,GAAG,kDAAU;AAC5C;;AAEA;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,aAAa;AACb;AACA;AACA,YAAY,gDAAS;AACrB,YAAY,gDAAS,yFAAyF;AAC9G;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,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC,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;;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,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA,mDAAmD,YAAY,oEAAS;AACxE;AACA;AACA,gBAAgB,MAAM;AACtB,gBAAgB,WAAW;AAC3B,YAAY,kEAAO;AACnB;AACA;AACA,kCAAkC,oEAAS;AAC3C;AACA;AACA;AACA,mFAAmF,6CAA6C,+DAAwB,oBAAoB,+DAAwB,sBAAsB,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,iDAAa;AACzV,gDAAgD,+DAAwB,GAAG,6FAA6F,oFAAoF,aAAa,wEAAiC,GAAG;AAC7S,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,6BAA6B,kDAAU,GAAG,kDAAU;AACpD;AACA,QAAQ,qDAAU;AAClB,QAAQ,oDAAS;AACjB,QAAQ,iDAAM;AACd;;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,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA,gBAAgB,MAAM;AACtB;AACA,mDAAmD,OAAO,oEAAS;AACnE;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,WAAW;AAC3B,YAAY,kEAAO;AACnB;AACA;AACA,kCAAkC,oEAAS;AAC3C;AACA;AACA;AACA,uFAAuF,+CAA+C,+DAAwB,oBAAoB,+DAAwB,sBAAsB,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,iDAAa;AAC/V,kDAAkD,+DAAwB,GAAG,iGAAiG,oFAAoF,aAAa,wEAAiC,GAAG;AACnT,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,+BAA+B,kDAAU,GAAG,kDAAU;AACtD;AACA,QAAQ,qDAAU;AAClB,QAAQ,oDAAS;AACjB,QAAQ,iDAAM;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oCAAoC;AACxE;AACA,wCAAwC,uDAAY;AACpD;AACA;AACA,oCAAoC,oCAAoC;AACxE;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS,GAAG,gDAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,2DAA2D,mBAAmB,OAAO,mBAAmB;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,8CAA8C,+DAAwB,8BAA8B,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB;AAC9V,iDAAiD,+DAAwB,GAAG,+FAA+F,oGAAoG,aAAa,8FAA8F;AAC1X,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,8BAA8B,kDAAU,GAAG,+CAAO,IAAI,uDAAQ;AAC9D,IAAI,kDAAU;AACd,QAAQ,4DAAiB;AACzB,QAAQ,qDAAU;AAClB,QAAQ,oDAAS;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,iBAAiB;AACjB,iBAAiB;AACjB,gBAAgB;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,2EAA2E,MAAM,aAAa,+BAA+B;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,0CAA0C,gBAAgB;AAC1D;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA,wBAAwB,gCAAgC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,yBAAyB,+DAAwB,CAAC,2DAAuB,GAAG,+DAAwB,CAAC,sDAAkB,GAAG,+DAAwB,CAAC,0DAAsB;AACpN,4BAA4B,+DAAwB,GAAG,qEAAqE,4EAA4E,aAAa,kEAA2B,GAAG;AACnP,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU,gBAAgB,sDAAW;AACzC,IAAI,kDAAU,uBAAuB,sDAAW;AAChD;AACA,SAAS,kDAAU,GAAG,kDAAU,uBAAuB,2DAAgB;AACvE,QAAQ,sDAAW;AACnB,QAAQ,0DAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,uCAAuC,uDAAY;AACnD,6BAA6B,uDAAY;AACzC,6BAA6B,uDAAY;AACzC;AACA,iCAAiC,+CAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,8BAA8B;AAC9E;AACA;AACA;AACA;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,gBAAgB,2BAA2B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kBAAkB,SAAS,GAAG,UAAU;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6BAA6B;AACjD;AACA;AACA,6BAA6B;AAC7B,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,yDAAyD,gCAAgC,+DAAwB,kBAAkB,+DAAwB,CAAC,sEAAkB,GAAG,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB;AAC/X,mCAAmC,+DAAwB,GAAG,2EAA2E,wYAAwY,aAAa,oHAAoH,aAAa,kEAA2B,i1BAAi1B;AAC3gD,QAAQ,wDAAiB,wEAAwE,oEAA6B;AAC9H,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,MAAM;AACN,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,eAAe,kDAAW,UAAU,0FAAoC,EAAE,8DAAuB,EAAE,qDAAc,qBAAqB;AAC7I,kDAAU;AAC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iGAAiG,wCAAwC;AACzI;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;AACA,uEAAuE;AACvE,2CAA2C,gEAAyB,GAAG,qDAAqD,wCAAwC;;AAEpK;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,gBAAgB,qIAAqI;AACrJ;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,sEAAsE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,+BAA+B,sDAAe,CAAC,sEAAkB;AACxH,mCAAmC,gEAAyB,GAAG,6CAA6C,gCAAgC;AAC5I,eAAe,kDAAU,GAAG,kDAAU,uBAAuB,sEAAW;AACxE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uGAAuG;AACvH;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,wEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,iCAAiC,sDAAe,CAAC,sEAAkB;AAC9H,qCAAqC,gEAAyB,GAAG,+CAA+C,kCAAkC;AAClJ,iBAAiB,kDAAU,GAAG,kDAAU,uBAAuB,sEAAW;AAC1E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uGAAuG;AACvH;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,wEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,iCAAiC,sDAAe,CAAC,sEAAkB;AAC9H,qCAAqC,gEAAyB,GAAG,+CAA+C,kCAAkC;AAClJ,iBAAiB,kDAAU,GAAG,kDAAU,uBAAuB,sEAAW;AAC1E;;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,gBAAgB,iGAAiG;AACjH;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,wEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,sCAAsC,sDAAe,CAAC,sEAAkB;AAC7I,0CAA0C,gEAAyB,GAAG,oDAAoD,uCAAuC;AACjK,sBAAsB,kDAAU,GAAG,kDAAU,uBAAuB,sEAAW;AAC/E;;AAEA;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,gBAAgB,mDAAmD;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sDAAsD;AAC9E;AACA;AACA,wBAAwB,oEAAoE;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,mCAAmC,sDAAe,CAAC,sEAAkB;AACpI,uCAAuC,gEAAyB,GAAG,iDAAiD,oCAAoC;AACxJ,mBAAmB,kDAAU,GAAG,kDAAU,uBAAuB,sEAAW;AAC5E;;AAEA,6BAA6B;AAC7B,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,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,0DAA0D,UAAU;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,eAAe;AACvD,uBAAuB;AACvB;AACA;AACA;AACA,aAAa;AACb;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,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;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,6BAA6B;AACnD;AACA;AACA;AACA;AACA;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,qBAAqB,6BAA6B;AAClD;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,SAAS;AACT;AACA;AACA;AACA;AACA,iEAAiE,oCAAoC,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,mDAAe,GAAG,+DAAwB,wBAAwB,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,iDAAa;AAC/T,uCAAuC,+DAAwB,GAAG,iHAAiH;AACnL,QAAQ,yDAAkB;AAC1B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,gFAAgF;AACvF,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,0FAA0F,aAAa,4BAA4B,aAAa,kEAA2B,0XAA0X;AACxjB,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB,oDAAoD,6DAAsB;AACnG,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,wCAAwC,qDAAc,EAAE,0FAAoC,EAAE,qDAAc,qBAAqB;AACxI,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,oDAAK;AACT,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,qDAAM;AACV,IAAI,kDAAU,gBAAgB,uDAAY;AAC1C;AACA,kDAAU;AACV,IAAI,wDAAS,4BAA4B,cAAc;AACvD,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,0DAAW;AACf,IAAI,kDAAU;AACd,IAAI,kDAAU;AACd;AACA,kDAAU;AACV,IAAI,0DAAW;AACf,IAAI,kDAAU;AACd;AACA,oBAAoB,kDAAU,GAAG,kDAAU,uBAAuB,qDAAU;AAC5E,QAAQ,mDAAQ;AAChB;AACA,QAAQ,oDAAS;AACjB,QAAQ,iDAAM;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,sBAAsB,aAAa,IAAI;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,iBAAiB,oEAAS;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,CAAC,8BAA8B;AAC/B;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,8BAA8B;AAC9B,gCAAgC;AAChC,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,0BAA0B;AAC1B;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,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;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;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,aAAa;AACb;AACA;AACA;AACA,gBAAgB,k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vB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAS;AAC3B,kCAAkC,cAAc;AAChD,SAAS;AACT,kBAAkB,oDAAS;AAC3B,+BAA+B,eAAe;AAC9C,SAAS;AACT,kBAAkB,oDAAS;AAC3B,iCAAiC,eAAe;AAChD,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA,iCAAiC,yEAA8B;AAC/D;AACA;AACA,sBAAsB,SAAS,8DAAiB,eAAe,yDAAU,4CAA4C;AACrH,sBAAsB,SAAS,0DAAa,eAAe,yDAAU,4CAA4C;AACjH,sBAAsB,SAAS,uEAAU,eAAe,yDAAU,+BAA+B;AACjG,oBAAoB,8EAAmB;AACvC;AACA;AACA;AACA,iCAAiC,sEAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;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,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,iDAAa,EAAE,I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mB;AACvC;AACA,iCAAiC,sEAAW;AAC5C;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;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;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,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,iDAAa,EAAE,IAAI,MAAM,8EAA0B,EAAE,IAAI,MAAM,4DAAwB,EAAE,IAAI,MAAM,wEAAmB,EAAE,IAAI,MAAM,qDAAiB,EAAE,IAAI,MAAM,oDAAgB,EAAE,IAAI,MAAM,mDAAe,EAAE,IAAI,qBAAqB,IAAI,MAAM,sEAAkB,EAAE,IAAI;AAC7S,sBAAsB,mDAAQ;AAC9B,aAAa;AACb,sBAAsB,iDAAM;AAC5B;AACA,aAAa,GAAG,IAAI,IAAI;AACxB,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,iDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,oDAAS;AAC3B,kCAAkC,MAAM,2DAAgB,iBAAiB;AACzE,SAAS;AACT,kBAAkB,oDAAS;AAC3B,sCAAsC,eAAe;AACrD,SAAS;AACT,kBAAkB,oDAAS;AAC3B,qCAAqC,cAAc;AACnD,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,iCAAiC,yEAA8B;AAC/D;AACA;AACA,oBAAoB,8EAAmB;AACvC;AACA,sBAAsB,SAAS,sEAAW,oCAAoC;AAC9E,sBAAsB,SAAS,8DAAiB,eAAe,yDAAU,gDAAgD;AACzH,sBAAsB,SAAS,0DAAa,eAAe,yDAAU,gDAAgD;AACrH,sBAAsB,SAAS,uEAAU,eAAe,yDAAU;AAClE;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;;AAEA;AACA;AACA,2CAA2C,WAAW;AACtD;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,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;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,wEAAmB,EAAE,IAAI,MAAM,sEAAkB,EAAE,IAAI,MAAM,4DAAwB,EAAE,IAAI,qBAAqB,IAAI,MAAM,iDAAa,EAAE,IAAI,MAAM,qDAAiB,EAAE,IAAI;AAChN,sBAAsB,iDAAM;AAC5B;A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CA;AACA,aAAa;AACb;AACA;AACA,0CAA0C,kBAAkB;AAC5D;AACA,wBAAwB,WAAW;AACnC;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qDAAiB,EAAE,IAAI,MAAM,mDAAe,EAAE,IAAI,4BAA4B,IAAI,MAAM,oDAAgB,EAAE,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AACjL,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAS;AAC3B,8CAA8C,cAAc;AAC5D,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA,iCAAiC,yEAA8B;AAC/D;AACA;AACA,oBAAoB,8EAAmB;AACvC;AACA,iCAAiC,sEAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,eAAe,yBAAyB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,0BAA0B;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,eAAe,4BAA4B;AAC3C;AACA;AA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B,2DAAoB;AACvC,IAAI,wDAAiB;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,CAAC,oBAAoB;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sBAAsB;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,qCAAqC,QAAQ;AAC7C;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,8BAA8B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,u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C;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,0BAA0B,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AAC1D,IAAI,iDAAU,uBAAuB,iDAAM,EAAE,qDAAU,EAAE,6EAAmB;AAC5E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,kCAAkC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD;AACA;AACA;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD;AACA;AACA;;AAEA;AACA,2DAA2D,iCAAiC;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,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA,2BAA2B,8CAAY;AACvC,QAAQ,0EAAe;AACvB;AACA,kEAAkE,KAAK;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,8CAA8C,oDAAI;AAClD;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,oDAAI;AAClD;AACA;AACA,qBAAqB;AACrB;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,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;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,wBAAwB,mCAAmC;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,kCAAkC,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,6EAA0B,GAAG,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,CAAC,iDAAa;AACxU,qCAAqC,+DAAwB,GAAG,mIAAmI;AACnM,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,uDAAuD;AAC9D,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,8EAA8E;AACrF,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,4OAA4O,aAAa,kCAAkC,wCAAwC,gEAAyB;AAC/W,YAAY,6EAAmB;AAC/B;AACA;AACA,6BAA6B,6EAAmB;AAChD,aAAa;AACb;AACA,yBAAyB,qEAAW;AACpC;AACA;AACA,iFAAiF,YAAY;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gZAAgZ,yDAAyD;AAC/c,QAAQ,6DAAsB;AAC9B,QAAQ,qEAA8B;AACtC,QAAQ,uDAAgB;AACxB,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,QAAQ,mEAA4B;AACpC,MAAM;AACN,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,4BAA4B,oCAAoC,oDAAc,EAAE,iDAAW,2BAA2B,6DAAuB,4BAA4B,4BAA4B;AAC5M,YAAY,4DAAO;AACnB,gBAAgB,0DAAK,OAAO,0DAAK,GAAG,YAAY;AAChD,gBAAgB,+DAAU,eAAe,0DAAK,GAAG,cAAc,GAAG,4DAAO;AACzE;AACA,YAAY,4DAAO;AACnB,gBAAgB,0DAAK,OAAO,0DAAK,GAAG,8BAA8B;AAClE,gBAAgB,+DAAU,eAAe,0DAAK,GAAG,iCAAiC,GAAG,4DAAO;AAC5F;AACA,aAAa;AACb,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,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,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,8DAAe,4BAA4B,oBAAoB;AACnE,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA,iDAAU;AACV,IAAI,wDAAS,2BAA2B,eAAe;AACvD,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,kBAAkB,iDAAU,GAAG,iDAAU,uBAAuB,qDAAU;AAC1E,QAAQ,oDAAS;AACjB,QAAQ,6EAAmB;AAC3B,QAAQ,4DAAiB;AACzB,QAAQ,iDAAM;AACd;;AAEA;AACA;AACA,mBAAmB,wBAAwB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,sDAAM;AACjD;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,8DAAuB;AACxF,uCAAuC,+DAAwB,GAAG,gFAAgF;AAClJ,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,SAAS;AACT,iDAAU;AACV,IAAI,wDAAS,4BAA4B,eAAe;AACxD,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,wDAAS,2BAA2B,eAAe;AACvD,IAAI,iDAAU;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E,6CAA6C,gEAAyB,GAAG,uDAAuD,0CAA0C;AAC1K;;AAEA,kFAAkF,sDAAW;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,wBAAwB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6CAA6C;AAC9E;AACA;AACA,eAAe,cAAc;AAC7B,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,YAAY;AACjC,qBAAqB;AACrB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,gBAAgB;AAChB;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,6BAA6B,0CAAO;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4CAAK;AAC5B;AACA,QAAQ,4CAAK,qDAAqD,oDAAG,sEAAsE,sDAAM;AACjJ;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,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;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;AACA,yDAAyD,gCAAgC,sDAAe,CAAC,mEAA+B,GAAG,sDAAe;AAC1J,oCAAoC,gEAAyB,GAAG,8CAA8C,iCAAiC;AAC/I,gBAAgB,iDAAU,GAAG,8CAAO,IAAI,qDAAM;AAC9C,IAAI,iDAAU,uBAAuB,mEAAwB;AAC7D;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,cAAc,0DAAS,sBAAsB,oDAAG,SAAS,YAAY,KAAK,oDAAG,IAAI,cAAc;AAC/F;AACA;AACA;AACA;AACA,KAAK;AACL;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,uCAAuC;AACvC;AACA,iCAAiC,8CAAY;AAC7C,oCAAoC,8CAAY;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oDAAG;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,GAAG,0DAAS;AACzB,8BAA8B,oCAAoC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA,iBAAiB,mDAAmD;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mCAAmC,oDAAG;AACtC;AACA;AACA;AACA;AACA,aAAa,GAAG,0DAAS;AACzB,8BAA8B,oCAAoC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;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,6BAA6B,oEAAM;AACnC;AACA;AACA,+BAA+B,2BAA2B;AAC1D;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,+BAA+B;AAC/B;AACA;AACA,SAAS;AACT;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;AACA,iEAAiE,oCAAoC,sDAAe,CAAC,iDAAa;AAClI,wCAAwC,gEAAyB,GAAG,kDAAkD,qCAAqC;AAC3J,oBAAoB,iDAAU,GAAG,iDAAU,uBAAuB,iDAAM;AACxE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,8CAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,yCAAE;AACjC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,+BAA+B,4CAAK;AACpC;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,wCAAwC,+DAAwB,CAAC,+EAAyB,MAAM,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB;AAC1R,2CAA2C,+DAAwB,GAAG,iKAAiK;AACvO,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,0BAA0B;AAC7C,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,wBAAwB,iDAAU,GAAG,8CAAO,IAAI,mDAAI;AACpD,IAAI,iDAAU,uBAAuB,+EAAkB;AACvD,QAAQ,qDAAU;AAClB,QAAQ,oDAAS;AACjB;AACA;;AAEA;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,SAAS;AACT;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;AACA;AACA;AACA;AACA,6EAA6E,0CAA0C,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,qBAAqB,+DAAwB,CAAC,iDAAa;AACvP,6CAA6C,+DAAwB,GAAG,2JAA2J;AACnO,QAAQ,wDAAiB,oFAAoF,4BAA4B;AACzI,MAAM;AACN,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,sBAAsB,wLAAwL;AACjO,QAAQ,6DAAsB;AAC9B,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,eAAe,iDAAW,EAAE,6DAAuB,qBAAqB;AAC/E,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU,gBAAgB,sDAAW;AACzC;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,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,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,0BAA0B,iDAAU,GAAG,iDAAU,uBAAuB,qDAAU,qBAAqB,iDAAM;AAC7G;;AAEA;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,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,iEAAiE,oCAAoC,sDAAe,qBAAqB,sDAAe,CAAC,iDAAa;AACtK,wCAAwC,gEAAyB,GAAG,kDAAkD,qCAAqC;AAC3J,oBAAoB,iDAAU,GAAG,iDAAU;AAC3C,QAAQ,iDAAM;AACd;;AAEA;AACA,2DAA2D,iCAAiC;AAC5F;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;AACA;AACA;AACA;AACA,sCAAsC,8CAAY;AAClD,2BAA2B,8CAAY;AACvC,QAAQ,0EAAe;AACvB;AACA;AACA,0BAA0B,KAAK;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,gBAAgB,0EAAS;AACzB;AACA;AACA,SAAS;AACT,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,0BAA0B,kCAAkC;AAC5D,eAAe,wBAAwB;AACvC,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kCAAkC;AAC5D,eAAe,qBAAqB;AACpC,eAAe,QAAQ;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,aAAa,oFAAmB;AAChC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;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,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,6DAA6D,kCAAkC,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,qBAAqB,+DAAwB,qBAAqB,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,6EAA0B;AAC9W,qCAAqC,+DAAwB,GAAG,mIAAmI;AACnM,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,uDAAuD;AAC9D,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,+EAA+E;AACtF,QAAQ,wDAAiB,gEAAgE,gCAAgC,+DAA+D,+BAA+B;AACvN,MAAM;AACN,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,gQAAgQ,aAAa,wPAAwP,wCAAwC,gEAAyB;AACzlB;AACA;AACA,YAAY,6EAAmB;AAC/B;AACA,yBAAyB,qEAAW;AACpC;AACA;AACA,YAAY,kEAA2B,sEAAsE,YAAY;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,osBAAosB,yDAAyD;AACnwB,QAAQ,6DAAsB;AAC9B,QAAQ,qEAA8B;AACtC,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,mEAA4B;AACpC,MAAM;AACN,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,4BAA4B,oCAAoC,iDAAW,mJAAmJ,6DAAuB,EAAE,oDAAc,yBAAyB,+EAAyB,IAAI,oBAAoB;AACtV,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,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,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,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,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,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,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,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,wDAAS,4BAA4B,eAAe;AACxD,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY,4BAA4B,eAAe;AAC3D,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;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,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,kBAAkB,iDAAU,GAAG,iDAAU,uBAAuB,qDAAU;AAC1E,QAAQ,oDAAS;AACjB;AACA;AACA,QAAQ,iDAAM;AACd,QAAQ,6EAAmB;AAC3B;;AAEA,gFAAgF,oEAAM;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,gDAAgD,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,wBAAwB,+DAAwB,CAAC,6EAA0B,GAAG,+DAAwB,CAAC,iDAAa;AAC9W,mDAAmD,+DAAwB,GAAG,yLAAyL;AACvQ,QAAQ,wDAAiB,8EAA8E,uBAAuB;AAC9H,MAAM;AACN,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,kBAAkB,sDAAsD,gEAAyB;AACpH,YAAY,6EAAmB;AAC/B;AACA,yBAAyB,qEAAW;AACpC;AACA;AACA,YAAY,wEAAiC,GAAG;AAChD,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,gCAAgC,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AAChE,IAAI,iDAAU,uBAAuB,qDAAU;AAC/C,QAAQ,oDAAS;AACjB;AACA,QAAQ,6EAAmB;AAC3B,QAAQ,iDAAM;AACd;;AAEA,gFAAgF,oEAAM;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,gDAAgD,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,wBAAwB,+DAAwB,CAAC,6EAA0B,GAAG,+DAAwB,CAAC,iDAAa;AAC9W,mDAAmD,+DAAwB,GAAG,yLAAyL;AACvQ,QAAQ,wDAAiB,8EAA8E,uBAAuB;AAC9H,MAAM;AACN,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,kBAAkB,sDAAsD,gEAAyB;AACpH,YAAY,6EAAmB;AAC/B;AACA,yBAAyB,qEAAW;AACpC;AACA;AACA,YAAY,wEAAiC,GAAG;AAChD,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,gCAAgC,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AAChE,IAAI,iDAAU,uBAAuB,qDAAU;AAC/C,QAAQ,oDAAS;AACjB;AACA,QAAQ,6EAAmB;AAC3B,QAAQ,iDAAM;AACd;;AAEA,0EAA0E,oEAAM;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,6CAA6C,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,wBAAwB,+DAAwB,CAAC,6EAA0B,GAAG,+DAAwB,CAAC,iDAAa;AACrW,gDAAgD,+DAAwB,GAAG,gLAAgL;AAC3P,QAAQ,wDAAiB,2EAA2E,uBAAuB;AAC3H,MAAM;AACN,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,kBAAkB,mDAAmD,gEAAyB;AACjH,YAAY,6EAAmB;AAC/B;AACA,yBAAyB,qEAAW;AACpC;AACA;AACA,YAAY,wEAAiC,GAAG;AAChD,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,6BAA6B,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AAC7D,IAAI,iDAAU,uBAAuB,qDAAU;AAC/C,QAAQ,oDAAS;AACjB;AACA,QAAQ,6EAAmB;AAC3B,QAAQ,iDAAM;AACd;;AAEA,8EAA8E,oEAAM;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,+CAA+C,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,wBAAwB,+DAAwB,CAAC,6EAA0B,GAAG,+DAAwB,CAAC,iDAAa;AAC3W,kDAAkD,+DAAwB,GAAG,sLAAsL;AACnQ,QAAQ,wDAAiB,6EAA6E,uBAAuB;AAC7H,MAAM;AACN,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,kBAAkB,qDAAqD,gEAAyB;AACnH,YAAY,6EAAmB;AAC/B;AACA,yBAAyB,qEAAW;AACpC;AACA;AACA,YAAY,wEAAiC,GAAG;AAChD,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,+BAA+B,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AAC/D,IAAI,iDAAU,uBAAuB,qDAAU;AAC/C,QAAQ,oDAAS;AACjB;AACA,QAAQ,6EAAmB;AAC3B,QAAQ,iDAAM;AACd;;AAEA;AACA;AACA,mBAAmB,kCAAkC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E,6CAA6C,gEAAyB,GAAG,uDAAuD,0CAA0C;AAC1K;;AAEA,oFAAoF,sDAAW;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,wBAAwB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0CAAO;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4CAAK,sCAAsC,oDAAG,0CAA0C,sDAAM;AACrH;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,oDAAI;AACtB;AACA;AACA;AACA,QAAQ,sDAAK;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;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;AACA,yDAAyD,gCAAgC,sDAAe,CAAC,mEAA+B,GAAG,sDAAe;AAC1J,oCAAoC,gEAAyB,GAAG,8CAA8C,iCAAiC;AAC/I,gBAAgB,iDAAU,GAAG,8CAAO,IAAI,qDAAM;AAC9C,IAAI,iDAAU,uBAAuB,mEAAwB;AAC7D;AACA;;AAEA;AACA;AACA,kCAAkC,kCAAkC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,2CAA2C,+DAAwB,CAAC,2DAAuB,GAAG,+DAAwB;AACrM,8CAA8C,+DAAwB,GAAG,+EAA+E;AACxJ,2BAA2B,iDAAU,GAAG,iDAAU,uBAAuB,2DAAgB;AACzF;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,2EAAiB;AACxC;AACA,4CAA4C,2BAA2B,sCAAsC,0DAA0D,mEAA4B,iCAAiC;AACpO,8BAA8B,+DAAwB,GAAG,0BAA0B,wHAAwH,aAAa,wEAAiC,GAAG;AAC5P,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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,6CAA6C,+DAAwB,CAAC,6EAA0B;AACnL,gDAAgD,+DAAwB,GAAG,gMAAgM,gEAAyB;AACpS;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,wEAAiC,GAAG;AAChD,4DAA4D,iDAAU,GAAG,iDAAU,uBAAuB,6EAAmB;AAC7H;;AAEA;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,0CAA0C,+DAAwB,CAAC,6EAA0B;AAC1K,6CAA6C,+DAAwB,GAAG,6GAA6G,gEAAyB;AAC9M;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,wEAAiC,sFAAsF,oBAAoB;AACvJ,sDAAsD,iDAAU,GAAG,iDAAU,uBAAuB,6EAAmB;AACvH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD,kCAAkC,8DAAuB,GAAG,oBAAoB;AAChF,kCAAkC,8DAAuB,GAAG,WAAW,yDAAY,GAAG,yDAAY,GAAG;;AAErG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wCAAwC;AACxE;AACA,oDAAoD,sCAAsC;AAC1F;AACA;AACA;AACA;AACA,YAAY,WAAW;AACvB,YAAY,gBAAgB;AAC5B,YAAY,eAAe;AAC3B,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD,kCAAkC,8DAAuB,GAAG,oBAAoB;AAChF,kCAAkC,8DAAuB,GAAG,+EAA+E;;AAE3I;AACA;AACA,kCAAkC,kCAAkC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,2CAA2C,+DAAwB,CAAC,2DAAuB,GAAG,+DAAwB;AACrM,8CAA8C,+DAAwB,GAAG,+EAA+E;AACxJ,2BAA2B,iDAAU,GAAG,iDAAU,uBAAuB,2DAAgB;AACzF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wCAAwC;AACxE;AACA,oBAAoB,sCAAsC;AAC1D;AACA;AACA;AACA;AACA,YAAY,WAAW;AACvB,YAAY,gBAAgB;AAC5B,YAAY,eAAe;AAC3B,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD,kCAAkC,8DAAuB,GAAG,oBAAoB;AAChF,kCAAkC,8DAAuB,GAAG,6EAA6E,4EAAe,IAAI;;AAE5J;AACA,gCAAgC,wCAAwC;AACxE;AACA;AACA;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA,YAAY,yBAAyB;AACrC,YAAY,WAAW;AACvB;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD,mCAAmC,8DAAuB,GAAG,qBAAqB;AAClF,mCAAmC,8DAAuB,GAAG,uCAAuC;AACpG,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qDAAiB,EAAE,IAAI,IAAI;AACjE,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA;AACA;AACA,iCAAiC,6EAAmB;AACpD;AACA,qBAAqB;AACrB;AACA,iCAAiC,qEAAW;AAC5C;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,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,iDAAa,EAAE,IAAI,MAAM,qDAAiB,EAAE,IAAI,MAAM,6EAA0B;AACtH,sBAAsB,mDAAQ;AAC9B,aAAa,GAAG,IAAI,IAAI;AACxB,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,oBAAoB,4DAAO;AAC3B,wBAAwB,0DAAK,OAAO,0DAAK,GAAG,YAAY;AACxD,wBAAwB,+DAAU,eAAe,0DAAK,GAAG,cAAc,GAAG,4DAAO;AACjF;AACA,oBAAoB,4DAAO;AAC3B,wBAAwB,0DAAK,OAAO,0DAAK,GAAG,8BAA8B;AAC1E,wBAAwB,+DAAU,eAAe,0DAAK,GAAG,iCAAiC,GAAG,4DAAO;AACpG;AACA;AACA;AACA;AACA,oBAAoB,6EAAmB;AACvC;AACA;AACA,qCAAqC,6EAAmB;AACxD,qBAAqB;AACrB;AACA,iCAAiC,qEAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6FAA6F,QAAQ;AACrG;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qDAAiB,EAAE,IAAI,MAAM,oDAAgB,EAAE,IAAI,MAAM,6EAA0B,EAAE,IAAI,MAAM,4DAAwB,EAAE,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AAChM,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,0DAAe;AACjC,8CAA8C,oBAAoB;AAClE,SAAS;AACT,kBAAkB,uDAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,oDAAS;AAC3B,6CAA6C,eAAe;AAC5D,SAAS,GAAG,IAAI;;AAEhB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,qDAAU;AACxB,KAAK,iBAAiB;AACtB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,qDAAU;AACxB,KAAK,iBAAiB,UAAU,MAAM,mEAA+B,EAAE,IAAI;AAC3E,sBAAsB,iDAAM;AAC5B;AACA,aAAa,GAAG,IAAI,UAAU;AAC9B,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,qDAAU;AACxB,KAAK,iBAAiB,UAAU,MAAM,iDAAa,EAAE,IAAI,UAAU;AACnE,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,+EAAyB;AAC/D,sBAAsB,+CAAI;AAC1B,aAAa,GAAG,IAAI,MAAM,qDAAiB,EAAE,IAAI,MAAM,oDAAgB,EAAE,IAAI,yBAAyB,IAAI,IAAI;AAC9G,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,qBAAqB;AACvD;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qDAAiB,EAAE,IAAI,yBAAyB,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AACvH,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,kBAAkB,uDAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,qDAAU;AACxB,KAAK,iBAAiB,UAAU,yBAAyB,IAAI,MAAM,iDAAa,EAAE,IAAI,UAAU;AAChG,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA;AACA;AACA,oBAAoB,6EAAmB;AACvC;AACA,iCAAiC,qEAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,2CAA2C,QAAQ;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qDAAiB,EAAE,IAAI,MAAM,oDAAgB,EAAE,IAAI,yBAAyB,IAAI,yBAAyB,IAAI,MAAM,iDAAa,EAAE,IAAI,MAAM,6EAA0B,EAAE,IAAI,IAAI;AACtN,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,kBAAkB,uDAAY;AAC9B;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,kBAAkB,uDAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAS;AAC3B,8CAA8C,eAAe;AAC7D,SAAS;AACT,kBAAkB,uDAAY;AAC9B,8CAA8C,eAAe;AAC7D,SAAS;AACT,kBAAkB,uDAAY;AAC9B;AACA,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,oBAAoB,6EAAmB;AACvC;AACA,iCAAiC,qEAAW;AAC5C;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qDAAiB,EAAE,IAAI,MAAM,oDAAgB,EAAE,IAAI;AACzF,sBAAsB,mDAAQ;AAC9B,aAAa,GAAG,IAAI,MAAM,6EAA0B,EAAE,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AACvF,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT;AACA;AACA;AACA;AACA,kBAAkB,uDAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,oBAAoB,6EAAmB;AACvC;AACA,iCAAiC,qEAAW;AAC5C;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qDAAiB,EAAE,IAAI,MAAM,oDAAgB,EAAE,IAAI;AACzF,sBAAsB,mDAAQ;AAC9B,aAAa,GAAG,IAAI,MAAM,6EAA0B,EAAE,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AACvF,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT;AACA;AACA;AACA;AACA,kBAAkB,uDAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,oBAAoB,6EAAmB;AACvC;AACA,iCAAiC,qEAAW;AAC5C;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qDAAiB,EAAE,IAAI,MAAM,oDAAgB,EAAE,IAAI;AACzF,sBAAsB,mDAAQ;AAC9B,aAAa,GAAG,IAAI,MAAM,6EAA0B,EAAE,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AACvF,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT;AACA;AACA;AACA;AACA,kBAAkB,uDAAY;AAC9B;AACA,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,oBAAoB,6EAAmB;AACvC;AACA,iCAAiC,qEAAW;AAC5C;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qDAAiB,EAAE,IAAI,MAAM,oDAAgB,EAAE,IAAI;AACzF,sBAAsB,mDAAQ;AAC9B,aAAa,GAAG,IAAI,MAAM,6EAA0B,EAAE,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AACvF,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT;AACA;AACA;AACA;AACA,kBAAkB,uDAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,qDAAU;AACxB,KAAK,iBAAiB;AACtB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,qDAAU;AACxB,KAAK,iBAAiB,UAAU,MAAM,mEAA+B,EAAE,IAAI;AAC3E,sBAAsB,iDAAM;AAC5B;AACA,aAAa,GAAG,IAAI,UAAU;AAC9B,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,2DAAuB,EAAE,IAAI,8BAA8B,IAAI,UAAU;;AAE/G,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA;AACA,qCAAqC,yDAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,6EAA0B,EAAE,IAAI,UAAU;AAChF,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA;AACA,qCAAqC,yDAAU;AAC/C;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,6EAA0B,EAAE,IAAI,UAAU;AAChF,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,mDAAQ;AACtB;AACA;AACA,6CAA6C,yDAAY;AACzD,0BAA0B,yDAAY;AACtC,aAAa;AACb,KAAK,iBAAiB;AACtB,eAAe,mDAAmD,gEAAyB,iBAAiB,4BAA4B,uFAAuF,yBAAyB,QAAQ,yDAAY,IAAI,yBAAyB,qFAAqF,yDAAY,MAAM,IAAI;AACpZ,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,mDAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB;AACtB,eAAe,mDAAmD,gEAAyB,iBAAiB,yQAAyQ,IAAI;AACzX,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,2DAAuB,EAAE,IAAI,8BAA8B,IAAI,UAAU;AAC/G,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,mDAAQ;AACtB;AACA;AACA;AACA;AACA,wCAAwC,4EAAe;AACvD;AACA,aAAa;AACb,KAAK,iBAAiB;AACtB,eAAe,mDAAmD,gEAAyB,iBAAiB,4BAA4B,6NAA6N,yBAAyB,sBAAsB,4EAAe,IAAI,yBAAyB,qRAAqR,IAAI;AACztB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,mDAAQ;AACtB;AACA;AACA,aAAa;AACb,KAAK,iBAAiB;AACtB,eAAe,mDAAmD,gEAAyB,kBAAkB,uCAAuC,IAAI;;;AAGxJ;AACA;AACA;;AAEkwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/+HlwB;AACA;AACA;AACA;AACwD;AACkU;AACtN;AACpG;AACJ;AACY;AAC2B;AACtB;AACH;AAClC;AACe;AACE;AACf;AACc;AACf;AACkB;;AAE3D;AACA,gCAAgC,SAAS;AACzC;AACA;AACA;AACA;AACA,gCAAgC,SAAS;AACzC,mDAAmD;AACnD,IAAI,wDAAiB;AACrB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB,oBAAoB,6DAAsB;AAC/D;AACA,+DAA+D;AAC/D,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,+DAAwB;AAC5B;AACA,oCAAoC,SAAS;AAC7C,iDAAiD;AACjD,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,IAAI,wDAAiB,YAAY,6DAAsB;AACvD,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA,mEAAmE;AACnE,iBAAiB,8DAAuB;AACxC,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,qGAAqG,2DAAoB,QAAQ,sBAAsB,2DAAoB,UAAU,gBAAgB,2DAAoB,KAAK,wDAAwD;AAC3S,IAAI,0DAAmB;AACvB,EAAE;AACF,0BAA0B,2DAAoB;AAC9C,oBAAoB,2DAAoB;AACxC,IAAI,wDAAiB;AACrB;AACA;AACA,6DAA6D;AAC7D,IAAI,wDAAiB;AACrB,EAAE;AACF,yBAAyB,2DAAoB;AAC7C,oBAAoB,2DAAoB;AACxC,IAAI,wDAAiB,oBAAoB,6DAAsB;AAC/D;AACA,yEAAyE;AACzE,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,EAAE;AACF,yBAAyB,2DAAoB;AAC7C,oBAAoB,2DAAoB;AACxC,IAAI,uDAAgB;AACpB,IAAI,+DAAwB;AAC5B;AACA,gCAAgC,SAAS;AACzC,2DAA2D;AAC3D,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,EAAE;AACF;AACA;AACA,oBAAoB,2DAAoB;AACxC,IAAI,wDAAiB;AACrB,IAAI,wDAAiB,iNAAiN,6DAAsB;AAC5P,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA,6CAA6C;AAC7C,IAAI,wDAAiB;AACrB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB;AACA;AACA,kEAAkE;AAClE,IAAI,wDAAiB;AACrB,EAAE;AACF,yBAAyB,2DAAoB;AAC7C,oBAAoB,2DAAoB;AACxC,IAAI,wDAAiB,oBAAoB,6DAAsB;AAC/D;AACA,8EAA8E;AAC9E,IAAI,oDAAa;AACjB,EAAE;AACF,yBAAyB,2DAAoB;AAC7C,IAAI,+DAAwB;AAC5B;AACA,gEAAgE;AAChE,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,EAAE;AACF,oBAAoB,2DAAoB;AACxC;AACA;AACA,oBAAoB,2DAAoB;AACxC,IAAI,wDAAiB;AACrB,IAAI,yDAAkB;AACtB,IAAI,wDAAiB,YAAY,6DAAsB;AACvD,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA;AACA,kEAAkE;AAClE,IAAI,wDAAiB;AACrB,EAAE;AACF,yBAAyB,2DAAoB;AAC7C,oBAAoB,2DAAoB;AACxC,IAAI,wDAAiB,oBAAoB,6DAAsB;AAC/D;AACA,8EAA8E;AAC9E,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,EAAE;AACF,yBAAyB,2DAAoB;AAC7C,oBAAoB,2DAAoB;AACxC,IAAI,uDAAgB;AACpB,IAAI,+DAAwB;AAC5B;AACA,gEAAgE;AAChE,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,EAAE;AACF,oBAAoB,2DAAoB;AACxC;AACA;AACA,oBAAoB,2DAAoB;AACxC,IAAI,wDAAiB;AACrB,IAAI,wDAAiB,sKAAsK,6DAAsB;AACjN,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA,2DAA2D;AAC3D,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,EAAE;AACF;AACA,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA,6CAA6C;AAC7C,IAAI,wDAAiB;AACrB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB;AACA,iEAAiE;AACjE,iBAAiB,8DAAuB;AACxC,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,2GAA2G,2DAAoB,QAAQ,gBAAgB,2DAAoB,IAAI,mCAAmC;AACvO,IAAI,0DAAmB;AACvB;AACA,iDAAiD;AACjD,iBAAiB,8DAAuB;AACxC,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,2FAA2F,2DAAoB,QAAQ,gBAAgB,2DAAoB,IAAI,mCAAmC;AACvN,IAAI,0DAAmB;AACvB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,yDAAkB;AACtB;AACA;AACA;AACA;AACA,0DAA0D;AAC1D,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,yFAAyF,2DAAoB,OAAO,eAAe,2DAAoB,IAAI,mCAAmC,kGAAkG,iCAAiC;AACtV,IAAI,uDAAgB;AACpB,IAAI,0DAAmB;AACvB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,yDAAkB;AACtB,IAAI,yDAAkB;AACtB;AACA,0DAA0D;AAC1D,IAAI,uDAAgB;AACpB;AACA;AACA,6BAA6B,SAAS;AACtC,mEAAmE;AACnE,IAAI,wDAAiB;AACrB,EAAE;AACF,oBAAoB,2DAAoB;AACxC,IAAI,wDAAiB,oBAAoB,6DAAsB;AAC/D;AACA;AACA,qFAAqF;AACrF,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,EAAE;AACF,oBAAoB,2DAAoB;AACxC,IAAI,uDAAgB;AACpB,IAAI,+DAAwB;AAC5B;AACA,uEAAuE;AACvE,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,EAAE;AACF,oBAAoB,2DAAoB;AACxC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB,oDAAoD,6DAAsB;AAC/F,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA;AACA,mEAAmE;AACnE,IAAI,wDAAiB;AACrB,EAAE;AACF,oBAAoB,2DAAoB;AACxC,IAAI,wDAAiB,oBAAoB,6DAAsB;AAC/D;AACA,iEAAiE;AACjE,iBAAiB,8DAAuB;AACxC,IAAI,wDAAiB;AACrB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,gHAAgH,2DAAoB,QAAQ,gBAAgB,2DAAoB,IAAI,oCAAoC;AAC7O,IAAI,0DAAmB;AACvB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA,iEAAiE;AACjE,iBAAiB,8DAAuB;AACxC,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,2GAA2G,2DAAoB,QAAQ,gBAAgB,2DAAoB,IAAI,4BAA4B;AAChO,IAAI,0DAAmB;AACvB;AACA;AACA,6BAA6B,SAAS;AACtC,sDAAsD;AACtD,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,qFAAqF,2DAAoB,OAAO,eAAe,2DAAoB,IAAI,mCAAmC;AAC/M,IAAI,uDAAgB;AACpB,IAAI,0DAAmB;AACvB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,yDAAkB;AACtB,IAAI,wDAAiB,8BAA8B,6DAAsB;AACzE,IAAI,yDAAkB;AACtB;AACA;AACA,+DAA+D;AAC/D,IAAI,wDAAiB;AACrB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB,oBAAoB,6DAAsB;AAC/D;AACA;AACA,iFAAiF;AACjF,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,EAAE;AACF,oBAAoB,2DAAoB;AACxC,IAAI,uDAAgB;AACpB,IAAI,+DAAwB;AAC5B;AACA,mEAAmE;AACnE,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,EAAE;AACF,oBAAoB,2DAAoB;AACxC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB,oDAAoD,6DAAsB;AAC/F,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA;AACA,+DAA+D;AAC/D,IAAI,wDAAiB;AACrB,EAAE;AACF,oBAAoB,2DAAoB;AACxC,IAAI,wDAAiB,oBAAoB,6DAAsB;AAC/D;AACA,6DAA6D;AAC7D,iBAAiB,8DAAuB;AACxC,IAAI,wDAAiB;AACrB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,4GAA4G,2DAAoB,QAAQ,gBAAgB,2DAAoB,IAAI,oCAAoC;AACzO,IAAI,0DAAmB;AACvB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA,6DAA6D;AAC7D,iBAAiB,8DAAuB;AACxC,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,uGAAuG,2DAAoB,QAAQ,gBAAgB,2DAAoB,IAAI,4BAA4B;AAC5N,IAAI,0DAAmB;AACvB;AACA;AACA,qDAAqD;AACrD,IAAI,wDAAiB;AACrB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB,oBAAoB,6DAAsB;AAC/D;AACA,iEAAiE;AACjE,IAAI,oDAAa;AACjB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,+DAAwB;AAC5B;AACA,+EAA+E;AAC/E,iBAAiB,8DAAuB;AACxC,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,6GAA6G,2CAA2C;AAC7K,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,+HAA+H,2DAAoB,QAAQ,gBAAgB,2DAAoB,KAAK,qCAAqC,oHAAoH,2DAAoB,QAAQ,gBAAgB,2DAAoB,KAAK,iCAAiC,gHAAgH,2DAAoB,QAAQ,gBAAgB,2DAAoB,KAAK,sCAAsC,0GAA0G,2DAAoB,QAAQ,gBAAgB,2DAAoB,KAAK,iCAAiC,wGAAwG,2DAAoB,QAAQ,gBAAgB,2DAAoB,KAAK,mCAAmC;AACnlC,IAAI,0DAAmB;AACvB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,yDAAkB;AACtB;AACA,6BAA6B,SAAS;AACtC,+EAA+E;AAC/E,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB,YAAY,6DAAsB;AACvD,IAAI,uDAAgB;AACpB,IAAI,gEAAyB;AAC7B;AACA;AACA,+EAA+E;AAC/E,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB,YAAY,6DAAsB;AACvD,IAAI,uDAAgB;AACpB,IAAI,wDAAiB,oBAAoB,6DAAsB;AAC/D;AACA;AACA,mEAAmE;AACnE,IAAI,wDAAiB;AACrB,EAAE;AACF,oBAAoB,2DAAoB;AACxC,IAAI,wDAAiB,oBAAoB,6DAAsB;AAC/D;AACA;AACA,qFAAqF;AACrF,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,EAAE;AACF,oBAAoB,2DAAoB;AACxC,IAAI,uDAAgB;AACpB,IAAI,+DAAwB;AAC5B;AACA,uEAAuE;AACvE,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,EAAE;AACF,oBAAoB,2DAAoB;AACxC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB,oDAAoD,6DAAsB;AAC/F,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA;AACA,mEAAmE;AACnE,IAAI,wDAAiB;AACrB,EAAE;AACF,oBAAoB,2DAAoB;AACxC,IAAI,wDAAiB,oBAAoB,6DAAsB;AAC/D;AACA,iEAAiE;AACjE,iBAAiB,8DAAuB;AACxC,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,gHAAgH,2DAAoB,QAAQ,gBAAgB,2DAAoB,IAAI,oCAAoC;AAC7O,IAAI,0DAAmB;AACvB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA,iEAAiE;AACjE,iBAAiB,8DAAuB;AACxC,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,2GAA2G,2DAAoB,QAAQ,gBAAgB,2DAAoB,IAAI,4BAA4B;AAChO,IAAI,0DAAmB;AACvB;AACA,yDAAyD;AACzD,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,gGAAgG,2DAAoB,OAAO,eAAe,2DAAoB,IAAI,iCAAiC;AACxN,IAAI,uDAAgB;AACpB,IAAI,0DAAmB;AACvB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,yDAAkB;AACtB,IAAI,yDAAkB;AACtB;AACA,yDAAyD;AACzD,IAAI,uDAAgB;AACpB;AACA;AACA,kEAAkE;AAClE,IAAI,wDAAiB;AACrB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB,oBAAoB,6DAAsB;AAC/D;AACA;AACA,wEAAwE;AACxE,IAAI,wDAAiB;AACrB,EAAE;AACF,oBAAoB,2DAAoB;AACxC,IAAI,wDAAiB,oBAAoB,6DAAsB;AAC/D;AACA,oFAAoF;AACpF,IAAI,oDAAa;AACjB,EAAE;AACF,oBAAoB,2DAAoB;AACxC,IAAI,+DAAwB;AAC5B;AACA,sEAAsE;AACtE,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB,oGAAoG,oEAA6B;AACtJ,IAAI,uDAAgB;AACpB,IAAI,0DAAmB;AACvB,EAAE;AACF,iBAAiB,yDAAkB;AACnC,oBAAoB,2DAAoB;AACxC,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA;AACA,oFAAoF;AACpF,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,EAAE;AACF,oBAAoB,2DAAoB;AACxC,IAAI,uDAAgB;AACpB,IAAI,+DAAwB;AAC5B;AACA,sEAAsE;AACtE,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,EAAE;AACF,oBAAoB,2DAAoB;AACxC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB,oDAAoD,6DAAsB;AAC/F,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA;AACA,kEAAkE;AAClE,IAAI,wDAAiB;AACrB,EAAE;AACF,oBAAoB,2DAAoB;AACxC,IAAI,wDAAiB,oBAAoB,6DAAsB;AAC/D;AACA,gEAAgE;AAChE,iBAAiB,8DAAuB;AACxC,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,+GAA+G,2DAAoB,QAAQ,gBAAgB,2DAAoB,IAAI,oCAAoC;AAC5O,IAAI,0DAAmB;AACvB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA,gEAAgE;AAChE,iBAAiB,8DAAuB;AACxC,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,0GAA0G,2DAAoB,QAAQ,gBAAgB,2DAAoB,IAAI,4BAA4B;AAC/N,IAAI,0DAAmB;AACvB;AACA;AACA,iEAAiE;AACjE,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,gGAAgG,2DAAoB,OAAO,eAAe,2DAAoB,IAAI,mCAAmC;AAC1N,IAAI,uDAAgB;AACpB,IAAI,0DAAmB;AACvB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,yDAAkB;AACtB,IAAI,wDAAiB,8BAA8B,6DAAsB;AACzE,IAAI,yDAAkB;AACtB;AACA;AACA,0EAA0E;AAC1E,IAAI,wDAAiB;AACrB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB,oBAAoB,6DAAsB;AAC/D;AACA,6FAA6F;AAC7F,IAAI,uDAAgB;AACpB,EAAE;AACF,uBAAuB,2DAAoB;AAC3C,IAAI,yDAAkB;AACtB;AACA,uFAAuF;AACvF,IAAI,qEAA8B;AAClC,IAAI,wDAAiB;AACrB,IAAI,mEAA4B;AAChC,EAAE;AACF;AACA,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA,4GAA4G;AAC5G,IAAI,qEAA8B;AAClC,IAAI,oDAAa;AACjB,IAAI,mEAA4B;AAChC,EAAE;AACF,uBAAuB,2DAAoB;AAC3C,IAAI,uDAAgB;AACpB,IAAI,gEAAyB;AAC7B;AACA;AACA,qCAAqC,SAAS;AAC9C,+FAA+F;AAC/F,IAAI,wDAAiB;AACrB,EAAE;AACF,uBAAuB,2DAAoB;AAC3C,IAAI,wDAAiB,oBAAoB,6DAAsB;AAC/D;AACA,6FAA6F;AAC7F,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,EAAE;AACF,uBAAuB,2DAAoB;AAC3C,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA,wFAAwF;AACxF,IAAI,qEAA8B;AAClC,IAAI,wDAAiB;AACrB,IAAI,mEAA4B;AAChC,EAAE;AACF;AACA,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA,4HAA4H;AAC5H,IAAI,qEAA8B;AAClC,IAAI,oDAAa;AACjB,IAAI,mEAA4B;AAChC,EAAE;AACF,uBAAuB,2DAAoB;AAC3C,yBAAyB,2DAAoB;AAC7C,oBAAoB,2DAAoB;AACxC,IAAI,uDAAgB;AACpB,IAAI,gEAAyB;AAC7B;AACA;AACA,yCAAyC,SAAS;AAClD,+GAA+G;AAC/G,IAAI,wDAAiB;AACrB,EAAE;AACF,uBAAuB,2DAAoB;AAC3C,yBAAyB,2DAAoB;AAC7C,IAAI,wDAAiB,oBAAoB,6DAAsB;AAC/D;AACA,6GAA6G;AAC7G,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,EAAE;AACF,uBAAuB,2DAAoB;AAC3C,IAAI,yDAAkB;AACtB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA,sGAAsG;AACtG,IAAI,qEAA8B;AAClC,IAAI,wDAAiB;AACrB,IAAI,mEAA4B;AAChC,EAAE;AACF;AACA,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA,uFAAuF;AACvF,IAAI,wDAAiB;AACrB,EAAE;AACF,oBAAoB,2DAAoB;AACxC,IAAI,wDAAiB;AACrB;AACA;AACA,6FAA6F;AAC7F,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,EAAE;AACF,oBAAoB,2DAAoB;AACxC,IAAI,uDAAgB;AACpB,IAAI,+DAAwB;AAC5B;AACA,+EAA+E;AAC/E,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,EAAE;AACF,oBAAoB,2DAAoB;AACxC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB,oDAAoD,6DAAsB;AAC/F,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA;AACA,wFAAwF;AACxF,IAAI,qEAA8B;AAClC,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,IAAI,mEAA4B;AAChC,EAAE;AACF,oBAAoB,2DAAoB;AACxC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB,oBAAoB,6DAAsB;AAC/D;AACA,wEAAwE;AACxE,iBAAiB,8DAAuB;AACxC,IAAI,wDAAiB;AACrB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,IAAI,wDAAiB,wGAAwG,oEAA6B;AAC1J,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,wHAAwH,2DAAoB,QAAQ,gBAAgB,2DAAoB,IAAI,oCAAoC,mHAAmH,2DAAoB,QAAQ,aAAa,yDAAkB,KAAK,gBAAgB,2DAAoB,IAAI,2CAA2C;AAC3f,IAAI,0DAAmB;AACvB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,EAAE;AACF,iBAAiB,yDAAkB;AACnC,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB,+JAA+J,6DAAsB;AAC1M,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA,gFAAgF;AAChF,iBAAiB,8DAAuB;AACxC,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,0HAA0H,2DAAoB,QAAQ,gBAAgB,2DAAoB,IAAI,4BAA4B;AAC/O,IAAI,0DAAmB;AACvB;AACA;AACA;AACA;AACA,qDAAqD;AACrD,IAAI,wDAAiB;AACrB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB,oBAAoB,6DAAsB;AAC/D;AACA,iEAAiE;AACjE,IAAI,oDAAa;AACjB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,gEAAyB;AAC7B;AACA,0DAA0D;AAC1D,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,yFAAyF,2DAAoB,OAAO,eAAe,2DAAoB,IAAI,mCAAmC;AACnN,IAAI,uDAAgB;AACpB,IAAI,0DAAmB;AACvB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,yDAAkB;AACtB,IAAI,yDAAkB;AACtB;AACA,6BAA6B,SAAS;AACtC,wEAAwE;AACxE,iBAAiB,8DAAuB;AACxC,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,IAAI,0DAAmB;AACvB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,wGAAwG,2DAAoB,QAAQ,gBAAgB,2DAAoB,KAAK,8DAA8D,iIAAiI,2DAAoB,QAAQ,gBAAgB,2DAAoB,KAAK,uCAAuC,qIAAqI,2DAAoB,QAAQ,gBAAgB,2DAAoB,KAAK,uCAAuC,yHAAyH,2DAAoB,QAAQ,gBAAgB,2DAAoB,KAAK,iCAAiC;AAC77B,IAAI,0DAAmB;AACvB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB,kHAAkH,6DAAsB;AAC7J;AACA;AACA,mEAAmE;AACnE,IAAI,wDAAiB;AACrB,EAAE;AACF,oBAAoB,2DAAoB;AACxC,IAAI,wDAAiB,oBAAoB,6DAAsB;AAC/D;AACA,kFAAkF;AAClF,iBAAiB,8DAAuB;AACxC,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,qJAAqJ,2DAAoB,QAAQ,gBAAgB,2DAAoB,KAAK,uCAAuC,kIAAkI,2DAAoB,QAAQ,gBAAgB,2DAAoB,KAAK,oCAAoC,gIAAgI,2DAAoB,QAAQ,gBAAgB,2DAAoB,KAAK,uCAAuC,gJAAgJ,2DAAoB,QAAQ,gBAAgB,2DAAoB,KAAK,2CAA2C,8HAA8H,2DAAoB,QAAQ,gBAAgB,2DAAoB,KAAK,yCAAyC,kIAAkI,2DAAoB,QAAQ,gBAAgB,2DAAoB,KAAK,2CAA2C;AAC38C,IAAI,0DAAmB;AACvB,EAAE;AACF,oBAAoB,2DAAoB;AACxC,IAAI,yDAAkB;AACtB,IAAI,wDAAiB;AACrB;AACA;AACA,mEAAmE;AACnE,IAAI,wDAAiB;AACrB,EAAE;AACF,oBAAoB,2DAAoB;AACxC,IAAI,wDAAiB,oBAAoB,6DAAsB;AAC/D;AACA;AACA,qFAAqF;AACrF,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,EAAE;AACF,oBAAoB,2DAAoB;AACxC,IAAI,uDAAgB;AACpB,IAAI,+DAAwB;AAC5B;AACA,uEAAuE;AACvE,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,EAAE;AACF,oBAAoB,2DAAoB;AACxC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB,oDAAoD,6DAAsB;AAC/F,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA,iEAAiE;AACjE,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA;AACA,6DAA6D;AAC7D,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,+DAAwB;AAC5B;AACA,6DAA6D;AAC7D,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,4FAA4F,2DAAoB,OAAO,eAAe,2DAAoB,IAAI,iCAAiC;AACpN,IAAI,uDAAgB;AACpB,IAAI,0DAAmB;AACvB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,yDAAkB;AACtB;AACA,6DAA6D;AAC7D,IAAI,uDAAgB;AACpB;AACA,2EAA2E;AAC3E,iBAAiB,8DAAuB;AACxC,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,IAAI,0DAAmB;AACvB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,2GAA2G,2DAAoB,QAAQ,gBAAgB,2DAAoB,KAAK,8DAA8D,gHAAgH,2DAAoB,QAAQ,gBAAgB,2DAAoB,KAAK,uCAAuC,4HAA4H,2DAAoB,QAAQ,gBAAgB,2DAAoB,KAAK,iCAAiC;AACjsB,IAAI,0DAAmB;AACvB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB,kHAAkH,6DAAsB;AAC7J;AACA;AACA,sEAAsE;AACtE,IAAI,wDAAiB;AACrB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB,oBAAoB,6DAAsB;AAC/D;AACA,0EAA0E;AAC1E,iBAAiB,8DAAuB;AACxC,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,oIAAoI,2DAAoB,QAAQ,gBAAgB,2DAAoB,KAAK,kDAAkD,+GAA+G,2DAAoB,QAAQ,gBAAgB,2DAAoB,KAAK,uCAAuC;AAC3e,IAAI,0DAAmB;AACvB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,mGAAmG,2DAAoB,QAAQ,gBAAgB,2DAAoB,KAAK,kCAAkC,kHAAkH,iCAAiC;AAClX,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,EAAE;AACF,IAAI,2DAAoB;AACxB,iBAAiB,yDAAkB;AACnC,oBAAoB,2DAAoB;AACxC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB,gQAAgQ,6DAAsB;AAC3S,IAAI,uDAAgB;AACpB,IAAI,gEAAyB;AAC7B;AACA;AACA,sEAAsE;AACtE,IAAI,wDAAiB;AACrB,EAAE;AACF,oBAAoB,2DAAoB;AACxC,IAAI,wDAAiB,oBAAoB,6DAAsB;AAC/D;AACA;AACA,wFAAwF;AACxF,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,EAAE;AACF,oBAAoB,2DAAoB;AACxC,IAAI,uDAAgB;AACpB,IAAI,+DAAwB;AAC5B;AACA,0EAA0E;AAC1E,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,EAAE;AACF,oBAAoB,2DAAoB;AACxC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB,oDAAoD,6DAAsB;AAC/F,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA,6BAA6B,SAAS;AACtC,oEAAoE;AACpE,iBAAiB,8DAAuB;AACxC,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,iHAAiH,2DAAoB,QAAQ,gBAAgB,2DAAoB,IAAI,uCAAuC,sHAAsH,2DAAoB,QAAQ,gBAAgB,2DAAoB,IAAI,yCAAyC,gHAAgH,2DAAoB,QAAQ,gBAAgB,2DAAoB,IAAI,yCAAyC,oHAAoH,2DAAoB,QAAQ,gBAAgB,2DAAoB,IAAI,2CAA2C,wIAAwI,2DAAoB,QAAQ,gBAAgB,2DAAoB,IAAI,kDAAkD;AAClpC,IAAI,0DAAmB;AACvB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,yDAAkB;AACtB,IAAI,wDAAiB,qfAAqf,6DAAsB;AAChiB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA;AACA,sDAAsD;AACtD,IAAI,wDAAiB;AACrB;AACA;AACA,oEAAoE;AACpE,IAAI,wDAAiB;AACrB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB,oBAAoB,6DAAsB;AAC/D;AACA,gFAAgF;AAChF,IAAI,oDAAa;AACjB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,gEAAyB;AAC7B;AACA,kEAAkE;AAClE,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA;AACA,oEAAoE;AACpE,IAAI,wDAAiB;AACrB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,oBAAoB,2DAAoB;AACxC,IAAI,wDAAiB,oBAAoB,6DAAsB;AAC/D;AACA,gFAAgF;AAChF,IAAI,oDAAa;AACjB,EAAE;AACF,oBAAoB,2DAAoB;AACxC;AACA;AACA,oBAAoB,2DAAoB;AACxC,IAAI,+DAAwB;AAC5B;AACA,kEAAkE;AAClE,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA,2EAA2E,SAAS;AACpF,oDAAoD;AACpD,iBAAiB,8DAAuB;AACxC,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB,iFAAiF,oEAA6B;AACnI,IAAI,wDAAiB,iFAAiF,oEAA6B;AACnI,IAAI,0DAAmB;AACvB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,2FAA2F,oBAAoB,2DAAoB,QAAQ,sCAAsC,oCAAoC,gBAAgB,2DAAoB,IAAI,qDAAqD;AACvU,IAAI,0DAAmB;AACvB,EAAE;AACF;AACA;AACA,gBAAgB,yDAAkB;AAClC,gBAAgB,yDAAkB;AAClC,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB,YAAY,6DAAsB;AACvD,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,yDAAkB;AACtB;AACA;AAC+D;AACqF;AACgD;AACrJ;;AAE/C;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,gBAAgB,QAAQ;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,CAAC;AACD;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,8DAAM;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,mBAAmB;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,qBAAqB,wBAAwB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,8DAAM;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAU;AAChC,uBAAuB,UAAU;AACjC,sBAAsB,UAAU;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAU;AAChC,qBAAqB,UAAU;AAC/B,wBAAwB,UAAU;AAClC;AACA;AACA;;AAEA;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;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E,WAAW,6DAA6D;AACxE,WAAW;AACX;AACA,+CAA+C,qBAAqB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,yCAAyC,+DAAwB,CAAC,sDAAkB;AAC/J,4CAA4C,+DAAwB,GAAG,yQAAyQ;AAChV,yBAAyB,iDAAU,GAAG,iDAAU,uBAAuB,sDAAW;AAClF;;AAEA;AACA;AACA;AACA;AACA;AACA,yDAAyD,gCAAgC;AACzF,qDAAqD,4BAA4B;AACjF,gEAAgE,uCAAuC;AACvG,yDAAyD,uBAAuB;AAChF,wDAAwD,+BAA+B;AACvF;AACA;AACA;AACA,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA,2BAA2B,YAAY;AACvC;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,WAAW,qDAAqD;AAChE,WAAW,6DAA6D;AACxE,WAAW;AACX;AACA,+CAA+C,qBAAqB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,8CAA8C,+DAAwB,CAAC,sDAAkB;AAC9K,iDAAiD,+DAAwB,GAAG,uSAAuS;AACnX,8BAA8B,iDAAU,GAAG,iDAAU,uBAAuB,sDAAW;AACvF;;AAEA;AACA;AACA;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D,uCAAuC,gEAAyB,GAAG,iDAAiD,oCAAoC;;AAExJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4CAA4C;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mCAAmC;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;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,aAAa;AACb;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,kCAAkC,gEAAyB,GAAG,4CAA4C,+BAA+B;;AAEzI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,uBAAuB;AAClE;AACA;AACA,2CAA2C,uCAAuC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,uBAAuB;AAClE;AACA;AACA,2CAA2C,uCAAuC;AAClF;AACA;AACA;AACA;AACA,uEAAuE,uCAAuC,sDAAe;AAC7H,2CAA2C,gEAAyB,GAAG,qDAAqD,wCAAwC;AACpK,uBAAuB,iDAAU,GAAG,iDAAU;AAC9C;;AAEA;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,kCAAkC,0EAAc;AAChD;AACA;AACA,uCAAuC,wEAAY;AACnD;AACA;AACA,6BAA6B,sEAAU;AACvC;AACA;AACA,6BAA6B,uEAAW;AACxC;AACA;AACA,6BAA6B,oEAAQ;AACrC;AACA;AACA,6BAA6B,wEAAY;AACzC,gCAAgC,iEAAiE;AACjG;AACA;AACA,6BAA6B,0EAAc;AAC3C,gCAAgC,iEAAiE;AACjG;AACA;AACA,6BAA6B,0EAAc;AAC3C,gCAAgC,gEAAgE;AAChG;AACA;AACA,6BAA6B,2EAAe;AAC5C,gCAAgC,gEAAgE;AAChG;AACA;AACA,6BAA6B,qEAAS;AACtC;AACA;AACA;AACA,6BAA6B,oEAAQ;AACrC;AACA;AACA;AACA,6BAA6B,uEAAW;AACxC;AACA;AACA,6BAA6B,0EAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4BAA4B;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,iEAAiE,oCAAoC,sDAAe,wBAAwB,sDAAe;AAC3J,wCAAwC,gEAAyB,GAAG,kDAAkD,qCAAqC;AAC3J,oBAAoB,iDAAU,GAAG,iDAAU;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA,qDAAqD,gCAAgC;AACrF,iDAAiD,4BAA4B;AAC7E,4DAA4D,uCAAuC;AACnG,qDAAqD,uBAAuB;AAC5E,qDAAqD,uBAAuB;AAC5E,oDAAoD,+BAA+B;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,0CAA0C,+DAAwB,CAAC,sDAAkB;AAClK,6CAA6C,+DAAwB,GAAG,4WAA4W;AACpb,0BAA0B,iDAAU,GAAG,iDAAU,uBAAuB,sDAAW;AACnF;;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;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,oCAAoC,+DAAwB,CAAC,qDAAiB;AAC/I,uCAAuC,+DAAwB,GAAG,yFAAyF;AAC3J,oBAAoB,iDAAU,GAAG,iDAAU,uBAAuB,qDAAU;AAC5E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,2BAA2B,uDAAY;AACvC,8BAA8B,uDAAY;AAC1C,8BAA8B,uDAAY;AAC1C;AACA;AACA;AACA;AACA;AACA,kCAAkC,2CAAK,qCAAqC,mDAAG;AAC/E;AACA;AACA,QAAQ,yDAAS,kCAAkC,oDAAI,KAAK,mDAAG;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,sDAAsD,EAAE,kDAAkD;AAC5H;AACA;AACA,YAAY,yEAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yEAAS;AACrB;AACA;AACA,YAAY,yEAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,gDAAS,4CAA4C,0DAAS,OAAO,oDAAG,gCAAgC,oDAAG;AACjJ;AACA,aAAa;AACb,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,kCAAkC;AACrE,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F,QAAQ;AAClG,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,gCAAgC,+DAAwB,eAAe,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,oBAAoB,+DAAwB,wBAAwB,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,oDAAgB;AAC/Y,mCAAmC,+DAAwB,GAAG,qGAAqG;AACnK,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;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CA;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,SAAS;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,oCAAoC,gCAAgC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA,2BAA2B,+BAA+B;AAC1D;AACA,gCAAgC,uDAAY;AAC5C;AACA;AACA;AACA;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;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;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,sCAAsC,0CAAO;AAC7C;AACA;AACA;AACA;AACA,QAAQ,2EAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mFAAmB;AAC/B;AACA;AACA;AACA,6EAA6E,mBAAmB;AAChG,mDAAmD,MAAM;AACzD,iBAAiB;AACjB;AACA;AACA;AACA,2CAA2C,YAAY;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AAClC,wCAAwC;AACxC,gCAAgC;AAChC,oCAAoC;AACpC,mEAAmE;AACnE;AACA;AACA,8CAA8C,eAAe;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oCAAoC;AAC5D;AACA;AACA;AACA;AACA,6EAA6E,mBAAmB;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qCAAqC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,KAAK;AAC/B;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iCAAiC;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,WAAW;AAC/B;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,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4EAAY;AACxB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,4EAAY,iBAAiB,4EAAY;AACnE;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,aAAa,mFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,sCAAsC,2CAAK;AAC3C;AACA;AACA;AACA;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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,iCAAiC;AACjC,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,wCAAwC,+DAAwB,CAAC,6EAA0B,GAAG,+DAAwB,eAAe,+DAAwB,CAAC,uEAAmB,GAAG,+DAAwB,oBAAoB,+DAAwB,qBAAqB,+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IAAI,wDAAS,gBAAgB,MAAM,2DAAgB,gBAAgB;AACnE,IAAI,iDAAU,gBAAgB,2DAAgB;AAC9C;AACA,iDAAU;AACV,IAAI,wDAAS,oBAAoB,cAAc;AAC/C,IAAI,iDAAU,gBAAgB,sDAAW;AACzC;AACA,iDAAU;AACV,IAAI,wDAAS,uBAAuB,cAAc;AAClD,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,wDAAS,kBAAkB,eAAe;AAC9C,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,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,kDAAkD,iDAAU,GAAG,8CAAO,KAAK,uDAAQ,KAAK,8CAAO,KAAK,qDAAM;AAC1G,IAAI,iDAAU,uBAAuB,6EAAmB;AACxD;AACA,QAAQ,uEAAY;AACpB;AACA;AACA;AACA,QAAQ,iDAAM;AACd,QAAQ,4DAAiB;AACzB,QAAQ,oDAAS;AACjB,QAAQ,qDAAU;AAClB;;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8DAAiB;AAC9B,iBAAiB,yDAAU;AAC3B;AACA;AACA,6DAA6D,2BAA2B;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,SAAS;AACzC;AACA;AACA,6CAA6C,gCAAgC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B,sBAAsB;AACtB;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,uCAAuC,6BAA6B;AACpE,mBAAmB,yBAAyB;AAC5C,mBAAmB,0BAA0B;AAC7C,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,cAAc;AACd;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,oCAAoC,4BAA4B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA,mCAAmC,uDAAY;AAC/C;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA,gCAAgC,uDAAY;AAC5C;AACA;AACA;AACA;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,sCAAsC,0CAAO;AAC7C,gCAAgC,0CAAO;AACvC,qCAAqC,0CAAO;AAC5C,wBAAwB,+CAAY;AACpC;AACA;AACA;AACA,QAAQ,2EAAe;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,gBAAgB,WAAW;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,wCAAwC,+BAA+B;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,wCAAwC;AACxC,gCAAgC;AAChC,oCAAoC;AACpC,mEAAmE;AACnE;AACA;AACA,8CAA8C,eAAe;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gCAAgC;AACxD;AACA;AACA;AACA,6EAA6E,mBAAmB;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,iCAAiC;AACtE;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,6EAA6E,mBAAmB;AAChG,mDAAmD,MAAM;AACzD,iBAAiB;AACjB;AACA;AACA;AACA,2CAA2C,YAAY;AACvD;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,SAAS,GAAG,mDAAG;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,mCAAmC,0DAAS,sDAAsD,6DAAY;AAC9G,kEAAkE,oDAAG;AACrE;AACA;AACA;AACA,SAAS,GAAG,uDAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,yBAAyB,mDAAG;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oEAAoE,mDAAG;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,6DAA6D,mDAAG;AAChE;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,uBAAuB,2CAAK;AAC5B,6CAA6C,2DAAU;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yCAAE;AACrB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA;AACA,kCAAkC,KAAK;AACvC;AACA;AACA,SAAS;AACT,sBAAsB,2CAAK;AAC3B,kBAAkB,uDAAM;AACxB;AACA;AACA;AACA;AACA,wDAAwD,oDAAG;AAC3D;AACA;AACA;AACA,SAAS;AACT;AACA,sBAAsB,2CAAK,qEAAqE,uDAAM;AACtG,kBAAkB,oDAAG;AACrB;AACA;AACA,SAAS,GAAG,mDAAG;AACf;AACA;AACA,SAAS;AACT,0DAA0D,uDAAM,oBAAoB,oDAAG,gCAAgC,mDAAG;AAC1H;AACA;AACA,+BAA+B,UAAU;AACzC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iCAAiC;AAC/D;AACA,YAAY,yEAAS;AACrB;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,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,oDAAoD,EAAE,kDAAkD,EAAE;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B;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,6CAA6C,mBAAmB;AAChE;AACA,+BAA+B,4CAA4C;AAC3E;AACA;AACA;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA,+BAA+B,kCAAkC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,2BAA2B;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,mBAAmB,mBAAmB;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,8BAA8B,qEAAS,sBAAsB,oEAAQ;AACrE;AACA;AACA;AACA,kCAAkC,0EAAc;AAChD;AACA;AACA,uCAAuC,wEAAY;AACnD;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,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA,6CAA6C,4EAAY,iBAAiB,4EAAY;AACtF;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACjC,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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,aAAa,mFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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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,0CAA0C,iDAAU,GAAG,8CAAO,KAAK,uDAAQ,KAAK,8CAAO,KAAK,qDAAM;AAClG,IAAI,iDAAU,uBAAuB,qDAAU;AAC/C,QAAQ,6EAAmB;AAC3B,QAAQ,uEAAY;AACpB;AACA;AACA;AACA;AACA,QAAQ,iDAAM;AACd,QAAQ,4DAAiB;AACzB,QAAQ,oDAAS;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,uBAAuB;AAC3E,oDAAoD,uBAAuB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,yCAAyC,+DAAwB,CAAC,sDAAkB;AAC/J,4CAA4C,+DAAwB,GAAG,mIAAmI;AAC1M,yBAAyB,iDAAU,GAAG,iDAAU,uBAAuB,sDAAW;AAClF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8DAAiB;AAC9B,iBAAiB,yDAAU;AAC3B;AACA;AACA,iEAAiE,sBAAsB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,uBAAuB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,sBAAsB;AACtF;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA;AACA,gCAAgC,uDAAY;AAC5C;AACA;AACA,2BAA2B,sBAAsB;AACjD;AACA,mCAAmC,uDAAY;AAC/C;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA,2BAA2B,uBAAuB;AAClD;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;AACA,gCAAgC,SAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uDAAY;AAC7C,iCAAiC,uDAAY;AAC7C,sCAAsC,uDAAY;AAClD,sCAAsC,uDAAY;AAClD,yCAAyC,+CAAY;AACrD;AACA,gCAAgC;AAChC;AACA;AACA;AACA,QAAQ,2EAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mFAAmB;AAChD;AACA,iEAAiE,aAAa;AAC9E,mDAAmD,MAAM;AACzD,iBAAiB;AACjB;AACA;AACA;AACA,2CAA2C,YAAY;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,gBAAgB,WAAW;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,kCAAkC;AAClC,wCAAwC;AACxC,gCAAgC;AAChC,oCAAoC;AACpC,mEAAmE;AACnE;AACA;AACA,8CAA8C,eAAe;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA,6EAA6E,mBAAmB;AAChG;AACA;AACA;AACA;AACA,qCAAqC,4BAA4B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,0BAA0B;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAW;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,4CAA4C,qEAAS,sBAAsB,oEAAQ;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0EAAc,sBAAsB,2EAAe;AACrF;AACA;AACA,uCAAuC,wEAAY,sBAAsB,0EAAc;AACvF;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,kCAAkC,KAAK;AACvC;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,8BAA8B,iCAAiC;AAC/D;AACA,YAAY,yEAAS;AACrB;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,uBAAuB,uBAAuB;AAC9C;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,oDAAoD,EAAE,kDAAkD,EAAE,2DAA2D;AACvL;AACA;AACA;AACA;AACA;AACA,kBAAkB,mDAAmD,EAAE,iDAAiD,EAAE,kDAAkD;AAC5K;AACA;AACA;AACA;AACA;AACA,kBAAkB,iDAAiD;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACjC,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,2BAA2B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU;AAClC,2BAA2B,UAAU;AACrC;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,oDAAG;AACzL,0BAA0B,yCAAyC;AACnE;AACA,yCAAyC,UAAU;AACnD;AACA;AACA;AACA;AACA,mCAAmC,kCAAkC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,sCAAsC,2CAAK,0FAA0F,0DAAS,4DAA4D,0DAAS;AACnN,kBAAkB,uDAAM;AACxB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,kBAAkB,oDAAG;AACrB;AACA;AACA;AACA,iEAAiE,0DAAS,OAAO,+CAAQ,UAAU,oDAAI,KAAK,0DAAS;AACrH;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB,2CAAK,8BAA8B,0DAAS,OAAO,+CAAQ,UAAU,oDAAI,KAAK,0DAAS,0DAA0D,oDAAG,6DAA6D,uDAAM;AACvO;AACA,SAAS;AACT;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA,YAAY,mFAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,YAAY,mFAAmB;AAC/B;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,aAAa,wDAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4EAAY;AACxB,YAAY,4EAAY;AACxB,YAAY,4EAAY;AACxB;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,mDAAmD,sEAAU;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,iBAAiB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAoB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;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,mCAAmC,2CAA2C;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,mBAAmB;AAChE;AACA;AACA,uBAAuB,uBAAuB,WAAW,uBAAuB;AAChF;AACA;AACA,+BAA+B,4CAA4C;AAC3E;AACA;AACA;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA,+BAA+B,kCAAkC;AACjE;AACA;AACA;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,mBAAmB,EAAE,QAAQ;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,wCAAwC,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,6EAA0B,GAAG,+DAAwB,CAAC,uEAAmB,GAAG,+DAAwB,oBAAoB,+DAAwB,qBAAqB,+DAAwB,wBAAwB,+DAAwB,eAAe,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB;AACplB,2CAA2C,+DAAwB,GAAG,qJAAqJ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CA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,4CAA4C,+DAAwB,CAAC,sDAAkB;AACxK,+CAA+C,+DAAwB,GAAG,8IAA8I;AACxN,4BAA4B,iDAAU,GAAG,iDAAU,uBAAuB,sDAAW;AACrF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,+BAA+B;AAC/B;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA,aAAa,8DAAiB;AAC9B;AACA,iBAAiB,yDAAU;AAC3B;AACA;AACA,gEAAgE,8BAA8B;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;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,SAAS;AACzC;AACA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,+BAA+B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oCAAoC;AAChE;AACA,oBAAoB,QAAQ;AAC5B,sBAAsB,QAAQ;AAC9B;AACA;AACA;AACA;AACA,6CAA6C,mCAAmC;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B,sBAAsB;AACtB;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,uCAAuC,6BAA6B;AACpE,mBAAmB,yBAAyB;AAC5C,mBAAmB,0BAA0B;AAC7C,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,mDAAmD,mDAAG;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gCAAgC,uDAAY;AAC5C;AACA;AACA;AACA,2BAA2B,8BAA8B;AACzD;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA,2BAA2B,uDAAY,IAAI;AAC3C;AACA;AACA;AACA,0BAA0B,uDAAY,IAAI;AAC1C;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,6BAA6B;AAC7B;AACA;AACA,sCAAsC,0CAAO;AAC7C,2CAA2C,+CAAY;AACvD,QAAQ,2EAAe;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,gBAAgB,4EAAY;AAC5B;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4EAAY;AACxB,YAAY,4EAAY;AACxB,YAAY,4EAAY;AACxB;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,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;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,wBAAwB,mCAAmC;AAC3D;AACA;AACA;AACA,6EAA6E,mBAAmB;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,oCAAoC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,wCAAwC;AACxC,gCAAgC;AAChC,oCAAoC;AACpC,mEAAmE;AACnE;AACA;AACA,8CAA8C,eAAe;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,kCAAkC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,iDAAiD;AACnE;AACA;AACA;AACA,YAAY,mFAAmB;AAC/B;AACA;AACA;AACA,6EAA6E,mBAAmB;AAChG,mDAAmD,MAAM;AACzD,iBAAiB;AACjB;AACA;AACA;AACA,2CAA2C,YAAY;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,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,oBAAoB;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;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;AACA;AACA;AACA,6DAA6D,0EAAc,sBAAsB,wEAAY;AAC7G,2DAA2D,sEAAU,sBAAsB,uEAAW;AACtG,0DAA0D,0EAAc;AACxE;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,sBAAsB,KAAK;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,kCAAkC,KAAK;AACvC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iCAAiC;AAC/D;AACA,YAAY,yEAAS;AACrB;AACA;AACA,YAAY,0EAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,+BAA+B;AACtD;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;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,iBAAiB;AACjB;AACA,SAAS;AACT;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,oEAAoE,oDAAG;AACvE;AACA;AACA;AACA,SAAS,yBAAyB,2DAAU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,mBAAmB,yCAAE;AACrB,SAAS;AACT;AACA;AACA;AACA,8CAA8C;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,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sCAAsC;AACzE;AACA;AACA;AACA;AACA,+BAA+B,sCAAsC;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,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,uCAAuC,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,6EAA0B,GAAG,+DAAwB,CAAC,uEAAmB,GAAG,+DAAwB,eAAe,+DAAwB,oBAAoB,+DAAwB,qBAAqB,+DAAwB,wBAAwB,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,CAAC,0DAAsB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB;AACnoB,0CAA0C,+DAAwB,GAAG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B,MAAM,yDAAkB;AACrD,OAAO,YAAY,0KAA0K,qFAAqF,oBAAoB;AACtS,iDAAU;AACV,IAAI,2DAAY,gCAAgC,eAAe;AAC/D,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY,kCAAkC,eAAe;AACjE,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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,oBAAoB,SAAS,aAAa,eAAe;AACxG,+BAA+B;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,KAAK;AACL;;AAEA;AACA;AACA,wEAAwE,sCAAsC;AAC9G;AACA;AACA;AACA;AACA;AACA;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,mBAAmB;AAC1C;AACA,8CAA8C,MAAM;AACpD,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,kBAAkB,kDAAkD;AACpE;AACA;AACA;AACA;AAC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AACA;AACA,yEAAyE,wCAAwC,+DAAwB,CAAC,sDAAkB;AAC5J,2CAA2C,+DAAwB,GAAG,mIAAmI;AACzM,wBAAwB,iDAAU,GAAG,iDAAU,uBAAuB,sDAAW;AACjF;;AAEA;AACA;AACA,iCAAiC;AACjC;AACA,4BAA4B,yCAAE;AAC9B;AACA;AACA;AACA,iEAAiE,sBAAsB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA,8BAA8B,uDAAY;AAC1C;AACA;AACA;AACA,gCAAgC,uDAAY;AAC5C;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA,2BAA2B,sBAAsB;AACjD;AACA,+BAA+B,uDAAY;AAC3C;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,4CAA4C,0BAA0B;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oIAAoI,uBAAuB;AAC3J,mHAAmH,6DAA6D,wCAAwC,wDAAwD;AAChR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oEAAI,GAAG;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,oEAAI,GAAG;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,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,kCAAkC;AAClC,wCAAwC;AACxC,gCAAgC;AAChC,oCAAoC;AACpC,mEAAmE;AACnE;AACA;AACA,8CAA8C;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,aAAa;AAC9E,mDAAmD,MAAM;AACzD,iBAAiB;AACjB;AACA;AACA;AACA,2CAA2C,YAAY;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,kCAAkC,KAAK;AACvC;AACA;AACA,SAAS;AACT;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;AACA;AACA;AACA;AACA;AACA,gBAAgB,4EAAY;AAC5B;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4EAAY;AACxB;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;AACA;AACA,uBAAuB,uBAAuB;AAC9C;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,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA,YAAY,8DAAM;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,gBAAgB,WAAW;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,kBAAkB,oDAAoD,EAAE,kDAAkD,EAAE,2DAA2D;AACvL;AACA;AACA;AACA;AACA;AACA,kBAAkB,mDAAmD,EAAE,iDAAiD,EAAE,kDAAkD;AAC5K;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,mBAAmB,8DAAM;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,iCAAiC;AACjC,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4EAAY;AAChC;AACA;AACA,qBAAqB;AACrB;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,SAAS;AACT,kBAAkB,oDAAG;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA,YAAY,mFAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;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,4BAA4B,mBAAmB,EAAE,oBAAoB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,wCAAwC,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,uEAAmB,GAAG,+DAAwB,qBAAqB,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,CAAC,6EAA0B,GAAG,+DAAwB;AACjd,2CAA2C,+DAAwB,GAAG,qJAAqJ;AAC3N,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAq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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,kDAAkD,iDAAU,GAAG,8CAAO,IAAI,uDAAQ,KAAK,8CAAO,IAAI,qDAAM;AACxG,IAAI,iDAAU,uBAAuB,qDAAU;AAC/C,QAAQ,uEAAY;AACpB;AACA,QAAQ,oDAAS;AACjB,QAAQ,iDAAM;AACd,QAAQ,4DAAiB;AACzB,QAAQ,6EAAmB;AAC3B;;AAEA;AACA;AACA,mCAAmC;AACnC,qCAAqC;AACrC;AACA,8BAA8B,yCAAE;AAChC;AACA;AACA;AACA,oEAAoE,kCAAkC;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,sCAAsC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oEAAI,GAAG;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uIAAuI,mCAAmC;AAC1K,sHAAsH,gEAAgE,2CAA2C,2DAA2D;AAC5R;AACA;AACA;AACA;AACA;AACA;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,QAAQ;AAC5B,sBAAsB,QAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA,2BAA2B,mCAAmC;AAC9D;AACA;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA,2BAA2B,mCAAmC;AAC9D;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA,8BAA8B,uDAAY;AAC1C;AACA;AACA;AACA,gCAAgC,uDAAY;AAC5C;AACA;AACA,2BAA2B,kCAAkC;AAC7D;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA,gCAAgC,uDAAY;AAC5C;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,oEAAI;AAC7B,kCAAkC,oEAAI;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,oEAAoE,0EAAc;AAClF;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AAClC,wCAAwC;AACxC,gCAAgC;AAChC,oCAAoC;AACpC,mEAAmE;AACnE;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,wDAAwD;AAC3H;AACA;AACA,kDAAkD;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,eAAe,GAAG,YAAY,UAAU,mBAAmB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,aAAa;AAC9E,mDAAmD,MAAM;AACzD,iBAAiB;AACjB;AACA;AACA;AACA,2CAA2C,YAAY;AACvD;AACA;AACA,gBAAgB,WAAW;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,kCAAkC,KAAK;AACvC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0EAAU;AACtB;AACA;AACA,YAAY,0EAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,UAAU,oCAAoC;AACpI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,mCAAmC;AAC1D;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,gBAAgB,4EAAY;AAC5B;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,YAAY,4EAAY;AACxB;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,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,sBAAsB,YAAY;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,kBAAkB,mDAAmD,EAAE,iDAAiD,EAAE,kDAAkD;AAC5K;AACA;AACA;AACA;AACA;AACA,kBAAkB,qDAAqD;AACvE;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,iCAAiC;AACjC,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4EAAY;AAChC;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oDAAG;AACrB,sDAAsD,2CAAK;AAC3D;AACA;AACA,SAAS;AACT,kBAAkB,uDAAM;AACxB;AACA,kBAAkB,uDAAM;AACxB,oJAAoJ,uDAAM,6FAA6F,uDAAM,kGAAkG,uDAAM,0GAA0G,uDAAM;AACrd;AACA;AACA,YAAY,mFAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;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,mCAAmC,YAAY;AAC/C;AACA;AACA;AACA;AACA;AACA,+BAA+B,YAAY;AAC3C;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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ACA;AACA;AACA,mFAAmF,6CAA6C,+DAAwB,CAAC,6EAA0B;AACnL,gDAAgD,+DAAwB,GAAG,+YAA+Y,gEAAyB;AACnf;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,wEAAiC,GAAG;AAChD,4DAA4D,iDAAU,GAAG,iDAAU,uBAAuB,6EAAmB;AAC7H;;AAEA;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,0CAA0C,+DAAwB,CAAC,6EAA0B;AAC1K,6CAA6C,+DAAwB,GAAG,mSAAmS,gEAAyB;AACpY;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,wEAAiC,sFAAsF,oBAAoB;AACvJ,sDAAsD,iDAAU,GAAG,iDAAU,uBAAuB,6EAAmB;AACvH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,0EAA0E,sCAAsC;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,SAAS;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,+BAA+B,uCAAuC,8CAA8C;AACpH;AACA;AACA,6DAA6D,kCAAkC,+DAAwB;AACvH,qCAAqC,+DAAwB,GAAG,+EAA+E,+FAA+F;AAC9O,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,kBAAkB,iDAAU,GAAG,iDAAU;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,uCAAuC,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,iDAAa;AACjM,0CAA0C,+DAAwB,GAAG,4EAA4E,qCAAqC,aAAa,kEAA2B,GAAG;AACjO,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,uBAAuB,iDAAU,GAAG,iDAAU,uBAAuB,qDAAU;AAC/E,QAAQ,iDAAM;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,oCAAoC;AACpC,qCAAqC;AACrC,qCAAqC;AACrC,qCAAqC;AACrC,kCAAkC;AAClC,yCAAyC;AACzC;AACA;AACA;AACA,2EAA2E;AAC3E,4CAA4C,8DAAuB,GAAG,8BAA8B;AACpG,4CAA4C,8DAAuB,GAAG;;AAEtE;AACA;AACA;AACA;AACA;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,qEAAqE,sCAAsC,+DAAwB;AACnI,yCAAyC,+DAAwB,GAAG,8JAA8J;AAClO,QAAQ,wDAAiB,0EAA0E,6BAA6B;AAChI,MAAM;AACN,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,sGAAsG;AACzH,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,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,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,sBAAsB,iDAAU,GAAG,iDAAU;AAC7C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,2CAA2C,+DAAwB,CAAC,2DAAuB;AAC1K,8CAA8C,+DAAwB,GAAG,oFAAoF,sCAAsC;AACnM,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,2BAA2B,iDAAU,GAAG,iDAAU,uBAAuB,2DAAgB;AACzF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,UAAU,OAAO;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,UAAU,OAAO;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE,wCAAwC,+DAAwB,GAAG,oCAAoC,0DAA0D;AACjK,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,uDAAY;AAClD;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,iCAAiC,iBAAiB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uDAAM;AAC5B;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,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,2DAA2D,iCAAiC,+DAAwB,CAAC,gFAAwB;AAC7I,oCAAoC,+DAAwB,GAAG,wFAAwF,gFAAgF,aAAa,0CAA0C,aAAa,wEAAiC,EAAE,kEAA2B,GAAG;AAC5W,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,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iBAAiB,iDAAU,GAAG,iDAAU,uBAAuB,gFAAiB;AAChF;;AAEA;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,SAAS;AACT;AACA;AACA;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;AACA;AACA;AACA;AACA;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,iEAAiE,oCAAoC,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,CAAC,oDAAgB;AACxR,uCAAuC,+DAAwB,GAAG,6HAA6H;AAC/L,QAAQ,wDAAiB,0EAA0E,yCAAyC;AAC5I,OAAO,YAAY,0IAA0I,aAAa,0CAA0C,aAAa,wEAAiC,EAAE,kEAA2B,GAAG;AAClS,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU,gBAAgB,gFAAiB;AAC/C;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,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,oBAAoB,iDAAU,GAAG,iDAAU,uBAAuB,qDAAU,EAAE,iDAAM,EAAE,4DAAiB,EAAE,oDAAS;AAClH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD,kCAAkC,8DAAuB,GAAG,oBAAoB;AAChF,kCAAkC,8DAAuB,GAAG,WAAW,0DAAY,EAAE,wDAAW,EAAE,sEAAW,EAAE,8EAAkB,0BAA0B,wEAAY,GAAG,0DAAY,EAAE,wDAAW,EAAE,sEAAW,EAAE,8EAAkB,0BAA0B,wEAAY,GAAG;;AAE7Q;AACA;AACA;AACA,qCAAqC,0DAA0D;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mGAAmG,qDAAqD,+DAAwB;AAChL,wDAAwD,+DAAwB,GAAG,6GAA6G,4DAA4D,aAAa,kEAA2B,GAAG;AACvS,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,qCAAqC,iDAAU,GAAG,iDAAU;AAC5D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE,yCAAyC,8DAAuB,GAAG,2BAA2B;AAC9F,yCAAyC,8DAAuB,GAAG,yBAAyB,6EAAc,4BAA4B;;AAEtI;AACA;AACA;AACA,qCAAqC,oCAAoC;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,qEAAqE,sCAAsC,+DAAwB;AACnI,yCAAyC,+DAAwB,GAAG,0FAA0F,wDAAwD,aAAa,kEAA2B,GAAG;AACjQ,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,sBAAsB,iDAAU,GAAG,iDAAU;AAC7C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,mCAAmC;AACnC,qCAAqC;AACrC,qCAAqC;AACrC;AACA;AACA;AACA,mEAAmE;AACnE,wCAAwC,8DAAuB,GAAG,0BAA0B;AAC5F,wCAAwC,8DAAuB,GAAG,mDAAmD;;AAErH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gEAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,0CAA0C;AAC1C,mCAAmC;AACnC,qCAAqC;AACrC,qCAAqC;AACrC,2CAA2C;AAC3C,yCAAyC;AACzC;AACA;AACA;AACA,2DAA2D;AAC3D,oCAAoC,8DAAuB,GAAG,sBAAsB;AACpF,oCAAoC,8DAAuB,GAAG,cAAc,wCAAwC,sDAAsD;;AAE1K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,mCAAmC;AACnC,oCAAoC;AACpC,qCAAqC;AACrC,qCAAqC;AACrC;AACA;AACA;AACA,mEAAmE;AACnE,wCAAwC,8DAAuB,GAAG,0BAA0B;AAC5F,wCAAwC,8DAAuB,GAAG,mDAAmD;;AAErH;AACA;AACA;AACA;AACA;AACA,aAAa,gEAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,iCAAiC;AACjC,mCAAmC;AACnC,yCAAyC;AACzC,kCAAkC;AAClC,yCAAyC;AACzC,qCAAqC;AACrC,qCAAqC;AACrC,qCAAqC;AACrC;AACA;AACA;AACA,iEAAiE;AACjE,uCAAuC,8DAAuB,GAAG,yBAAyB;AAC1F,uCAAuC,8DAAuB,GAAG,cAAc,wCAAwC,sDAAsD;;AAE7K;AACA,gCAAgC,wCAAwC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kBAAkB;AAC9B;AACA;AACA,YAAY,yBAAyB;AACrC;AACA,YAAY,WAAW;AACvB;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D,qCAAqC,8DAAuB,GAAG,uBAAuB;AACtF,qCAAqC,8DAAuB,GAAG,2GAA2G;AAC1K,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;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,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,6EAA0B,EAAE,IAAI,MAAM,oDAAgB,EAAE,IAAI,IAAI;AACtG,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAS;AAC3B,8BAA8B,cAAc;AAC5C,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,sDAAkB,EAAE,IAAI,UAAU;AACxE,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,sDAAkB,EAAE,IAAI,UAAU;AACxE,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,sDAAkB,EAAE,IAAI,UAAU;AACxE,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,sDAAkB,EAAE,IAAI,UAAU;AACxE,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,sDAAkB,EAAE,IAAI,UAAU;AACxE,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,qDAAU;AACxB,KAAK,iBAAiB,YAAY,UAAU;AAC5C,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,qDAAU;AACxB,KAAK,iBAAiB,YAAY,UAAU;AAC5C,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,qDAAU;AACxB,KAAK,iBAAiB,UAAU,mBAAmB,IAAI,UAAU;AACjE,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,qDAAU;AACxB,KAAK,iBAAiB,UAAU,4BAA4B,IAAI,wBAAwB,IAAI,UAAU;AACtG,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,sDAAkB,EAAE,IAAI,UAAU;AACxE,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qDAAiB,EAAE,IAAI,UAAU;AACvE,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,oGAAoG,eAAe;AACnH;AACA;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,qBAAqB;AACrB;AACA,kFAAkF,oBAAoB;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,gEAAgE,iBAAiB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,kFAAkF,0BAA0B;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,mBAAmB,IAAI,MAAM,qDAAiB,EAAE,IAAI,wBAAwB,IAAI,4BAA4B,IAAI,MAAM,4DAAwB,EAAE,IAAI,MAAM,iDAAa,EAAE,IAAI,MAAM,oDAAgB,EAAE,IAAI,IAAI;AAC7O,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,uDAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,oDAAS;AAC3B,gCAAgC,cAAc;AAC9C,SAAS;AACT,kBAAkB,oDAAS;AAC3B,6BAA6B,cAAc;AAC3C,SAAS;AACT,kBAAkB,oDAAS;AAC3B,yCAAyC,eAAe;AACxD,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6EAAmB;AACvC;AACA,iCAAiC,qEAAW;AAC5C;AACA,qBAAqB;AACrB;AACA;AACA,qCAAqC,yDAAU;AAC/C,qBAAqB;AACrB;AACA,iCAAiC,sEAAU;AAC3C,qCAAqC,yDAAU;AAC/C;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;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,qBAAqB;AACrB;AACA;AACA,4BAA4B,2BAA2B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,6EAA0B,EAAE,IAAI,mBAAmB,IAAI,MAAM,uEAAmB,EAAE,IAAI,wBAAwB,IAAI,yBAAyB,IAAI,4BAA4B,IAAI,MAAM,iDAAa,EAAE,IAAI,MAAM,4DAAwB,EAAE,IAAI,MAAM,oDAAgB,EAAE,IAAI,MAAM,qDAAiB,EAAE,IAAI;AAC3U,sBAAsB,mDAAQ;AAC9B,aAAa;AACb,sBAAsB,iDAAM;AAC5B;AACA,aAAa,GAAG,IAAI,IAAI;AACxB,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,iDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,uDAAY;AAC9B,4CAA4C,eAAe;AAC3D,SAAS;AACT,kBAAkB,uDAAY;AAC9B,8CAA8C,eAAe;AAC7D,SAAS;AACT,kBAAkB,uDAAY;AAC9B,8CAA8C,eAAe;AAC7D,SAAS;AACT,kBAAkB,uDAAY;AAC9B,8CAA8C,eAAe;AAC7D,SAAS;AACT,kBAAkB,uDAAY;AAC9B,6CAA6C,eAAe;AAC5D,SAAS;AACT,kBAAkB,uDAAY;AAC9B,kDAAkD,eAAe;AACjE,SAAS;AACT,kBAAkB,oDAAS;AAC3B,kCAAkC,MAAM,2DAAgB,gBAAgB;AACxE,SAAS;AACT,kBAAkB,oDAAS;AAC3B,sCAAsC,cAAc;AACpD,SAAS;AACT,kBAAkB,oDAAS;AAC3B,yCAAyC,cAAc;AACvD,SAAS;AACT,kBAAkB,oDAAS;AAC3B,oCAAoC,eAAe;AACnD,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6EAAmB;AACvC;AACA,iCAAiC,qEAAW;AAC5C;AACA,qBAAqB;AACrB;AACA,mEAAmE,yDAAU;AAC7E,qBAAqB;AACrB;AACA,iCAAiC,sEAAU,eAAe,yDAAU;AACpE;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;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,qBAAqB;AACrB;AACA;AACA,4BAA4B,2BAA2B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qDAAiB,EAAE,IAAI,MAAM,6EAA0B,EAAE,IAAI,MAAM,uEAAmB,EAAE,IAAI,wBAAwB,IAAI,yBAAyB,IAAI,4BAA4B,IAAI,mBAAmB,IAAI,MAAM,iDAAa,EAAE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CA;;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,iEAAiE,qCAAqC;AACtG,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,qCAAqC;AACtG;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;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,qBAAqB;AACrB;AACA;AACA,4BAA4B,2BAA2B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qDAAiB,EAAE,IAAI,MAAM,6EAA0B,EAAE,IAAI,MAAM,uEAAmB,EAAE,IAAI,wBAAwB,IAAI,yBAAyB,IAAI,4BAA4B,IAAI,mBAAmB,IAAI,MAAM,iDAAa,EAAE,IAAI,MAAM,oDAAgB,EAAE,IAAI,MAAM,4DAAwB,EAAE,IAAI;AAC3U,sBAAsB,mDAAQ;AAC9B,aAAa;AACb,sBAAsB,iDAAM;AAC5B;AACA,aAAa,GAAG,IAAI,IAAI;AACxB,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAA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;;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;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,2DAA2D;AAC3D;AACA;AACA;AACA,yBAAyB;AACzB;AACA,kEAAkE,OAAO;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,qBAAqB;AACrB;AACA;AACA,4BAA4B,2BAA2B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qDAAiB,EAAE,IAAI,MAAM,6EAA0B,EAAE,IAAI,MAAM,uEAAmB,EAAE,IAAI,mBAAmB,IAAI,wBAAwB,IAAI,yBAAyB,IAAI,4BAA4B,IAAI,MAAM,4DAAwB,EAAE,IAAI,MAAM,0DAAsB,EAAE,IAAI,MAAM,oDAAgB,EAAE,IAAI,MAAM,iDAAa,EAAE,IAAI;AAC7W,sBAAsB,mDAAQ;AAC9B,aAAa;AACb,sBAAsB,iDAAM;AAC5B;AACA,aAAa,GAAG,IAAI,IAAI;AACxB,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACv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B,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6EAAmB;AACvC;AACA,iCAAiC,qEAAW;AAC5C;AACA,qBAAqB;AACrB;AACA;AACA,iCAAiC,8DAAiB;AAClD,qCAAqC,yDAAU;AAC/C,qBAAqB;AACrB;AACA,iCAAiC,sEAAU;AAC3C,qCAAqC,yDAAU;AAC/C,qBAAqB;AACrB;AACA;AACA,qCAAqC,yDAAU;AAC/C;AACA;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;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;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,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0BAA0B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,gCAAgC,2BAA2B;AAC3D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,6EAA0B,EAAE,IAAI,MAAM,uEAAmB,EAAE,IAAI,wBAAwB,IAAI,yBAAyB,IAAI,4BAA4B,IAAI,mBAAmB,IAAI,MAAM,iDAAa,EAAE,IAAI,MAAM,4DAAwB,EAAE,IAAI,MAAM,oDAAgB,EAAE,IAAI,MAAM,qDAAiB,EAAE,IAAI;AAC3U,sBAAsB,iDAAM;AAC5B;AACA,aAAa,GAAG,IAAI,IAAI;AACxB,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,oDAAS;AAC3B,+BAA+B,eAAe;AAC9C,SAAS;AACT,kBAAkB,0DAAe;AACjC;AACA,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,sDAAkB,EAAE,IAAI,UAAU;AACxE,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6EAAmB;AACvC;AACA,iCAAiC,qEAAW;AAC5C;AACA,qBAAqB;AACrB;AACA;AACA,iCAAiC,8DAAiB;AAClD,qCAAqC,yDAAU;AAC/C,qBAAqB;AACrB;AACA,iCAAiC,sEAAU;AAC3C,qCAAqC,yDAAU;AAC/C,qBAAqB;AACrB;AACA,iCAAiC,iFAAkB;AACnD,qCAAqC,yDAAU;AAC/C,qBAAqB;AACrB;AACA,iCAAiC,kFAAmB;AACpD,qCAAqC,yDAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,yDAAyD,uBAAuB;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,yBAAyB;AACzB;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,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,4BAA4B,2BAA2B;AACvD;AACA;AACA;AACA;AACA;AACA,iCAAiC,yEAA8B;AAC/D,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qDAAiB,EAAE,IAAI,MAAM,uEAAmB,EAAE,IAAI,yBAAyB,IAAI,MAAM,oDAAgB,EAAE,IAAI,MAAM,iDAAa,EAAE,IAAI,MAAM,4DAAwB,EAAE,IAAI,MAAM,6EAA0B,EAAE,IAAI;AACxP,sBAAsB,mDAAQ;AAC9B,aAAa;AACb,sBAAsB,iDAAM;AAC5B;AACA,aAAa,GAAG,IAAI,IAAI;AACxB,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;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DAAoD,cAAc;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;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,qBAAqB;AACrB;AACA;AACA;AACA;AACA;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,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,4BAA4B,2BAA2B;AACvD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qDAAiB,EAAE,IAAI,MAAM,uEAAmB,EAAE,IAAI,MAAM,oDAAgB,EAAE,IAAI,yBAAyB,IAAI,MAAM,iDAAa,EAAE,IAAI,MAAM,6EAA0B,EAAE,IAAI,MAAM,4DAAwB,EAAE,IAAI;AACxP,sBAAsB,mDAAQ;AAC9B,aAAa;AACb,sBAAsB,iDAAM;AAC5B;AACA,aAAa,GAAG,IAAI,IAAI;AACxB,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,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mB,KAAK;AACxE;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,qBAAqB;AACrB;AACA;AACA,qFAAqF,SAAS;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wEAAwE,6EAAmB;AAC3F;AACA;AACA;AACA;AACA,iFAAiF,4CAA4C,sDAAe,CAAC,qEAAW,GAAG,sDAAe,CAAC,wEAAqB,MAAM,sDAAe,CAAC,6DAAG;AACzN,gDAAgD,gEAAyB,GAAG,0DAA0D,6CAA6C;AACnL,4BAA4B,iDAAU;AACtC,IAAI,8CAAO,IAAI,qDAAM,CAAC,qEAAW;AACjC,IAAI,8CAAO,IAAI,uDAAQ;AACvB,IAAI,8CAAO,IAAI,uDAAQ,KAAK,8CAAO,IAAI,qDAAM,CAAC,6DAAG;AACjD,IAAI,iDAAU,+BAA+B,wEAAc;AAC3D;;AAEA;AACA;AACA;AACA,gEAAgE,6EAAiB;AACjF;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,yEAAyE,wCAAwC,+DAAwB,CAAC,qEAAgB,GAAG,+DAAwB;AACrL,2CAA2C,+DAAwB,GAAG,uHAAuH;AAC7L,QAAQ,yDAAkB;AAC1B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,Y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A;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU,QAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gBAAgB;;AAE1C,kEAAkE,oBAAoB,sEAAsE,oBAAoB;AAChL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0CAAO;AACrC;AACA;AACA,mEAAmE;AACnE,yCAAyC,gEAAyB,GAAG,mDAAmD,sCAAsC;;AAE9J;AACA,yBAAyB,oCAAoC;AAC7D;AACA,+BAA+B,4EAAgB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,yEAAc;AAC5D,iDAAiD,mEAAQ;AACzD;AACA;AACA,iBAAiB,KAAK,0EAAe;AACrC;AACA;AACA,uCAAuC,4EAAiB;AACxD,wCAAwC,4EAAiB;AACzD,KAAK;AACL,0EAA0E,SAAS,QAAQ,0EAAe,EAAE;AAC5G;AACA;AACA,2DAA2D,yBAAyB;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;AACA;AACA;AACA,wEAAwE,wBAAwB;AAChG;AACA;AACA;AACA;AACA;AACA,uIAAuI,yBAAyB;AAChK;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA,gFAAgF,yBAAyB;AACzG;AACA,2BAA2B,uDAAY;AACvC;AACA,gGAAgG,yBAAyB;AACzH;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA,gFAAgF,yBAAyB;AACzG;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA;AACA,+BAA+B,kDAAe;AAC9C;AACA;AACA;AACA,iCAAiC,0CAAO;AACxC;AACA;AACA;AACA,iCAAiC,0CAAO;AACxC,qCAAqC,0CAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sEAAO,GAAG,KAAK;AAC5C;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA,0BAA0B,2EAAY;AACtC;AACA;AACA;AACA,aAAa;AACb,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,oCAAoC,2EAAY,8BAA8B,6CAA6C;AAC3H;AACA,0CAA0C,uEAAY;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA,QAAQ,2EAAe;AACvB;AACA;AACA,oBAAoB,0CAAG;AACvB;AACA;AACA,oDAAoD,yBAAyB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,+EAAoB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,uBAAuB;AAChF;AACA;AACA,YAAY,oDAAS;AACrB,mCAAmC,iEAAM;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oGAAoG,wBAAwB;AAC5H;AACA;AACA;AACA,uCAAuC,qBAAqB;AAC5D;AACA;AACA;AACA;AACA;AACA,YAAY,oDAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oDAAS;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,oFAAoF,0BAA0B;AAC9G;AACA;AACA,gDAAgD,+EAAgB;AAChE;AACA;AACA,6DAA6D,KAAK;AAClE;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,qDAAI;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,6BAA6B;AACrE;AACA,eAAe,eAAe;AAC9B,eAAe,KAAK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,+DAA+D;AAClG;AACA;AACA,mCAAmC,mFAAmF;AACtH;AACA;AACA,oCAAoC,iFAAiF;AACrH;AACA;AACA,mCAAmC,sCAAsC;AACzE;AACA;AACA,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,kBAAkB;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,eAAe,eAAe;AAC9B;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,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,gCAAgC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,+BAA+B;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sEAAO;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,aAAa,mFAAmB;AAChC;AACA;AACA;AACA;AACA,4BAA4B,2EAAY,6CAA6C,6CAA6C;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iEAAM;AACtB,yBAAyB,oEAAS;AAClC;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb,gBAAgB,iEAAM;AACtB,yBAAyB,oEAAS;AAClC;AACA;AACA;AACA,6HAA6H,+BAA+B;AAC5J;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,YAAY,sEAAO;AACnB,YAAY,qEAAM,CAAC,8EAAe;AAClC,YAAY,qEAAM,CAAC,0EAAW,kBAAkB,+BAA+B;AAC/E,YAAY,qEAAM,CAAC,qEAAU;AAC7B,YAAY,wEAAS;AACrB,YAAY,4EAAa;AACzB,YAAY,2EAAY;AACxB,YAAY,yEAAU;AACtB;AACA;AACA,gCAAgC,0EAAW;AAC3C;AACA,sBAAsB,6EAAkB;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,qEAAU,GAAG,8BAA8B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gDAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,0BAA0B,gDAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,sBAAsB,gDAAS;AAC/B,kBAAkB,oDAAG,oBAAoB,uDAAM;AAC/C,QAAQ,oDAAG;AACX;AACA,sBAAsB,gDAAS;AAC/B,kBAAkB,uDAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,mDAAmD,4BAA4B;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,SAAS;AACT;AACA;AACA,6DAA6D,kCAAkC,+DAAwB,CAAC,yEAAoB,GAAG,+DAAwB,CAAC,6EAA0B,GAAG,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB;AACvW,qCAAqC,+DAAwB,GAAG,mIAAmI;AACnM,QAAQ,4DAAqB,WAAW,8EAAgB;AACxD,QAAQ,4DAAqB,WAAW,8EAAgB,KAAK,qDAAU;AACvE,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,uDAAuD;AAC9D,QAAQ,yDAAkB,SAAS,2DAAgB;AACnD,QAAQ,yDAAkB,SAAS,2DAAgB;AACnD,QAAQ,yDAAkB,SAAS,qDAAU;AAC7C,QAAQ,yDAAkB,SAAS,8EAAgB;AACnD,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,+EAA+E;AACtF,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,4RAA4R,aAAa,8EAA8E,aAAa,gEAAyB;AAChb;AACA;AACA;AACA,yBAAyB,6EAAmB;AAC5C;AACA,aAAa;AACb;AACA,yBAAyB,qEAAW;AACpC;AACA,aAAa;AACb;AACA,yBAAyB,6DAAiB;AAC1C,6BAA6B,yDAAU;AACvC;AACA,aAAa;AACb;AACA,yBAAyB,sEAAU;AACnC,6BAA6B,yDAAU;AACvC;AACA,YAAY,kEAA2B,uEAAuE,YAAY;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,YAAY;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6/DAA6/D,iEAA0B,qEAAqE,yDAAyD;AAC3pE,QAAQ,6DAAsB;AAC9B,QAAQ,gEAAyB;AACjC,QAAQ,0DAAmB;AAC3B,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,gEAAyB;AACjC,MAAM;AACN,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,4BAA4B,oCAAoC,iDAAW,EAAE,8EAAuB,EAAE,yFAAkC,EAAE,oFAA6B,seAAse,8CAA8C,+BAA+B,8BAA8B,yCAAyC,gCAAgC,iCAAiC,eAAe,8CAA8C,8BAA8B,+BAA+B,iCAAiC,eAAe,IAAI;AACvhC,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,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BAA8B;AAC1I,QAAQ,oDAAa;AACrB,QAAQ,0DAAmB;AAC3B,MAAM;AACN,QAAQ,uDAAgB;AACxB,QAAQ,gEAAyB;AACjC,QAAQ,uDAAgB;AACxB,QAAQ,+DAAwB;AAChC,OAAO,4BAA4B,QAAQ,mFAA8B,2BAA2B,kFAA6B,EAAE,4EAAsB,IAAI,oBAAoB;AACjL,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,6BAA6B,iDAAU,GAAG,iDAAU,uBAAuB,qEAAS;AACpF;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F,kFAAoB;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA,cAAc,6BAA6B;AAC3C,cAAc,8BAA8B;AAC5C,cAAc,8BAA8B;AAC5C,cAAc,8BAA8B;AAC5C,cAAc,8BAA8B;AAC5C,cAAc,8BAA8B;AAC5C,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,SAAS;AACT,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,SAAS;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,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,yEAAyE,wCAAwC,+DAAwB,sBAAsB,+DAAwB,CAAC,yEAAoB,GAAG,+DAAwB,6BA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AAc,eAAe;AAC1C,IAAI,iDAAU,gBAAgB,qDAAU;AACxC;AACA,iDAAU;AACV,IAAI,wDAAS,cAAc,oDAAoD;AAC/E,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,wDAAS,qBAAqB,eAAe;AACjD,IAAI,iDAAU,gBAAgB,qDAAU;AACxC;AACA,sDAAsD,iDAAU,GAAG,8CAAO,IAAI,mDAAI;AAClF,IAAI,iDAAU;AACd,QAAQ,yEAAa;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sGAAsG,kFAAoB;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA,cAAc,wEAAwE;AACtF,cAAc,+GAA+G;AAC7H,cAAc,oEAAoE;AAClF;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,cAAc,2HAA2H;AACzI,cAAc,6DAA6D;AAC3E,cAAc,sGAAsG;AACpH,cAAc,wHAAwH;AACtI,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,SAAS;AACT,yDAAyD,OAAO;AAChE;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,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,iFAAiF,4CAA4C,+DAAwB,sBAAsB,+DAAwB,CAAC,yEAAoB,GAAG,+DAAwB,6BAA6B,+DAAwB;AACxS,+CAA+C,+DAAwB,GAAG,0KAA0K;AACpP,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,YAAY,cAAc,aAAa,4BAA4B,aAAa,gEAAyB,IAAI,SAAS,kFAAoB,eAAe,yDAAU,qCAAqC,IAAI,wEAAiC,4aAA4a;AAChqB,QAAQ,wDAAiB,oFAAoF,oEAA6B;AAC1I,QAAQ,wDAAiB,oFAAoF,oEAA6B;AAC1I,OAAO,gDAAgD,4EAAsB,qBAAqB;AAClG,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,wDAAS,sBAAsB,cAAc;AACjD,IAAI,iDAAU,gBAAgB,sDAAW;AACzC;AACA,iDAAU;AACV,IAAI,wDAAS,oBAAoB,cAAc;AAC/C,IAAI,iDAAU,gBAAgB,sDAAW;AACzC;AACA,iDAAU;AACV,IAAI,wDAAS,cAAc,eAAe;AAC1C,IAAI,iDAAU,gBAAgB,qDAAU;AACxC;AACA,iDAAU;AACV,IAAI,wDAAS,cAAc,sDAAsD;AACjF,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,wDAAS,uBAAuB,eAAe;AACnD,IAAI,iDAAU,gBAAgB,qDAAU;AACxC;AACA,0DAA0D,iDAAU,GAAG,8CAAO,IAAI,mDAAI;AACtF,IAAI,iDAAU;AACd,QAAQ,yEAAa;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yGAAyG,kFAAoB;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,OAAO;AAChE;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,kCAAkC,qDAAI;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,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,mFAAmF,6CAA6C,+DAAwB,sBAAsB,+DAAwB,6BAA6B,+DAAwB,CAAC,yEAAoB,GAAG,+DAAwB,CAAC,iDAAa;AACzT,gDAAgD,+DAAwB,GAAG,8IAA8I;AACzN,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB,WAAW,qDAAU;AAC/C,QAAQ,yDAAkB,WAAW,gFAAoB;AACzD,QAAQ,yDAAkB,WAAW,qDAAU;AAC/C,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,YAAY,sJAAsJ,aAAa,gEAAyB,IAAI,SAAS,kFAAoB,eAAe,yDAAU,sCAAsC,IAAI,wEAAiC,ucAAuc;AAC3xB,QAAQ,wDAAiB,qFAAqF,oEAA6B;AAC3I,QAAQ,wDAAiB,qFAAqF,oEAA6B;AAC3I,OAAO,eAAe,g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AAY;AAC1C;;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;;AAEA;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,iEAAiE,8DAAuB;AACxF,uCAAuC,+DAAwB,GAAG,yBAAyB;;AAE3F;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,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,iDAAiD,+DAAwB,CAAC,oFAA6B,GAAG,+DAAwB,sBAAsB,+DAAwB,6BAA6B,+DAAwB;AAChU,oDAAoD,+DAAwB,GAAG,0HAA0H,wEAAiC,GAAG;AAC7O,iCAAiC,iDAAU,GAAG,8CAAO,IAAI,mDAAI;AAC7D,IAAI,iDAAU,uBAAuB,oFAAsB;AAC3D;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F,mDAAmD,+DAAwB,CAAC,oFAA6B,GAAG,+DAAwB,sBAAsB,+DAAwB,6BAA6B,+DAAwB;AACtU,sDAAsD,+DAAwB,GAAG,8HAA8H,wEAAiC,GAAG;AACnP,mCAAmC,iDAAU,GAAG,8CAAO,IAAI,mDAAI;AAC/D,IAAI,iDAAU,uBAAuB,oFAAsB;AAC3D;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,kDAAkD,+DAAwB,CAAC,oFAA6B,GAAG,+DAAwB,sBAAsB,+DAAwB,6BAA6B,+DAAwB;AACnU,qDAAqD,+DAAwB,GAAG,4HAA4H,wEAAiC,GAAG;AAChP,kCAAkC,iDAAU,GAAG,8CAAO,IAAI,mDAAI;AAC9D,IAAI,iDAAU,uBAAuB,oFAAsB;AAC3D;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iGAAiG,oDAAoD,+DAAwB,CAAC,oFAA6B,GAAG,+DAAwB,sBAAsB,+DAAwB,6BAA6B,+DAAwB;AACzU,uDAAuD,+DAAwB,GAAG,gIAAgI,wEAAiC,GAAG;AACtP,oCAAoC,iDAAU,GAAG,8CAAO,IAAI,mDAAI;AAChE,IAAI,iDAAU,uBAAuB,oFAAsB;AAC3D;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,4CAA4C,+DAAwB,CAAC,oFAA6B,GAAG,+DAAwB,sBAAsB,+DAAwB,6BAA6B,+DAAwB;AACjT,+CAA+C,+DAAwB,GAAG,sHAAsH,wEAAiC,GAAG;AACpO,4BAA4B,iDAAU,GAAG,8CAAO,IAAI,mDAAI;AACxD,IAAI,iDAAU,uBAAuB,oFAAsB;AAC3D;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,4CAA4C,+DAAwB,CAAC,oFAA6B,GAAG,+DAAwB,sBAAsB,+DAAwB,6BAA6B,+DAAwB;AACjT,+CAA+C,+DAAwB,GAAG,gHAAgH,wEAAiC,GAAG;AAC9N,4BAA4B,iDAAU,GAAG,8CAAO,IAAI,mDAAI;AACxD,IAAI,iDAAU,uBAAuB,oFAAsB;AAC3D;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,4CAA4C,+DAAwB,CAAC,oFAA6B,GAAG,+DAAwB,sBAAsB,+DAAwB,6BAA6B,+DAAwB;AACjT,+CAA+C,+DAAwB,GAAG,gHAAgH,wEAAiC,GAAG;AAC9N,4BAA4B,iDAAU,GAAG,8CAAO,IAAI,mDAAI;AACxD,IAAI,iDAAU,uBAAuB,oFAAsB;AAC3D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F,mDAAmD,+DAAwB,CAAC,oFAA6B,GAAG,+DAAwB,sBAAsB,+DAAwB,6BAA6B,+DAAwB;AACtU,sDAAsD,+DAAwB,GAAG,8HAA8H,wEAAiC,GAAG;AACnP,mCAAmC,iDAAU,GAAG,8CAAO,IAAI,mDAAI;AAC/D,IAAI,iDAAU,uBAAuB,oFAAsB;AAC3D;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;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,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,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,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,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,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,6CAA6C,+DAAwB,CAAC,6EAA0B;AACnL,gDAAgD,+DAAwB,GAAG,oGAAoG,gEAAyB;AACxM;AACA;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,wEAAiC,GAAG;AAChD,4DAA4D,iDAAU,GAAG,iDAAU,uBAAuB,6EAAmB;AAC7H;;AAEA;AACA;AACA;AACA,mBAAmB,8BAA8B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,0CAA0C,+DAAwB,CAAC,6EAA0B;AAC1K,6CAA6C,+DAAwB,GAAG,kFAAkF,gEAAyB;AACnL;AACA;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,wEAAiC,sFAAsF,oBAAoB;AACvJ,sDAAsD,iDAAU,GAAG,iDAAU,uBAAuB,6EAAmB;AACvH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,yEAAyE,wCAAwC,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,iDAAa;AACpM,2CAA2C,+DAAwB,GAAG,+EAA+E;AACrJ,wBAAwB,iDAAU,GAAG,iDAAU,uBAAuB,qDAAU;AAChF,QAAQ,iDAAM;AACd;;AAEA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oDAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,uCAAuC,+DAAwB,CAAC,oFAA6B,GAAG,+DAAwB,sBAAsB,+DAAwB,6BAA6B,+DAAwB;AAClS,0CAA0C,+DAAwB,GAAG,4GAA4G,wEAAiC,GAAG;AACrN,uBAAuB,iDAAU,GAAG,8CAAO,IAAI,mDAAI;AACnD,IAAI,iDAAU,uBAAuB,oFAAsB;AAC3D;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,iDAAiD,+DAAwB,CAAC,oFAA6B,GAAG,+DAAwB,sBAAsB,+DAAwB,6BAA6B,+DAAwB;AAChU,oDAAoD,+DAAwB,GAAG,0HAA0H,wEAAiC,GAAG;AAC7O,iCAAiC,iDAAU,GAAG,8CAAO,IAAI,mDAAI;AAC7D,IAAI,iDAAU,uBAAuB,oFAAsB;AAC3D;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,wCAAwC;AACxE;AACA;AACA,6BAA6B;AAC7B,mCAAmC;AACnC,qCAAqC;AACrC,mCAAmC;AACnC,0CAA0C;AAC1C,0BAA0B;AAC1B,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA,YAAY,yBAAyB;AACrC;AACA,YAAY,WAAW;AACvB;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD,kCAAkC,8DAAuB,GAAG,oBAAoB;AAChF,kCAAkC,8DAAuB,GAAG;AAC5D,YAAY,yDAAY;AACxB,YAAY,uDAAW;AACvB,YAAY,+DAAmB;AAC/B;AACA,YAAY,yEAAY;AACxB,YAAY,6EAAiB;AAC7B,YAAY,wEAAY;AACxB,YAAY,+EAAe;AAC3B,YAAY,gFAAoB;AAChC,YAAY,0EAAc;AAC1B,YAAY,2EAAa;AACzB,YAAY,yEAAa;AACzB,WAAW,2EAAa;AACxB,QAAQ,yEAAY;AACpB,QAAQ,uDAAW;AACnB,QAAQ,+DAAmB,GAAG;AAC9B,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,8DAA8D,0BAA0B;AACxF,gFAAgF,0BAA0B;AAC1G;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qEAAgB,EAAE,IAAI,iCAAiC,IAAI,IAAI;AACrG,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAS;AAC3B,iCAAiC,cAAc;AAC/C,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,qDAAqD,6BAA6B;AAClF;AACA;AACA;AACA;AACA;AACA,yDAAyD,0BAA0B;AACnF;AACA;AACA;AACA;AACA;AACA,uDAAuD,wBAAwB;AAC/E;AACA;AACA;AACA;AACA;AACA,wDAAwD,yBAAyB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,0BAA0B;AACxF;AACA,oEAAoE,0BAA0B;AAC9F;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qEAAgB,EAAE,IAAI,iCAAiC,IAAI,IAAI;AACrG,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAS;AAC3B,iCAAiC,MAAM,qDAAU,gBAAgB;AACjE,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,kCAAkC;AACpG;AACA;AACA;AACA;;AAEA;AACA,kEAAkE,4BAA4B;AAC9F;AACA;AACA;AACA;;AAEA;AACA,mEAAmE,6BAA6B;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,uCAAuC;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,0BAA0B;AACxF;AACA,mBAAmB;AACnB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qEAAgB,EAAE,IAAI,iCAAiC,IAAI,IAAI;AACrG,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAS;AAC3B,kCAAkC,MAAM,qDAAU,gBAAgB;AAClE,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,qDAAU;AACxB,KAAK,iBAAiB,YAAY,UAAU;AAC5C,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6EAAmB;AACpD;AACA,qBAAqB;AACrB;AACA,iCAAiC,qEAAW;AAC5C;AACA,qBAAqB;AACrB;AACA,iCAAiC,6DAAiB;AAClD,qCAAqC,yDAAU;AAC/C;AACA,qBAAqB;AACrB;AACA,iCAAiC,sEAAU;AAC3C,qCAAqC,yDAAU;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;;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;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,yEAAoB,EAAE,IAAI,MAAM,6EAA0B,EAAE,IAAI,MAAM,4DAAwB,EAAE,IAAI,MAAM,iDAAa,EAAE,IAAI,MAAM,qDAAiB,EAAE,IAAI,0BAA0B,IAAI,IAAI;AAClO,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B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AyrD,yBAAyB,QAAQ,yDAAY;AAC92D,QAAQ,uDAAW;AACnB,QAAQ,+DAAmB;AAC3B;AACA,QAAQ,yEAAY;AACpB,QAAQ,6EAAiB;AACzB,QAAQ,wEAAY;AACpB,QAAQ,+EAAe;AACvB,QAAQ,gFAAoB;AAC5B,QAAQ,0EAAc;AACtB,QAAQ,2EAAa;AACrB,QAAQ,yEAAa,IAAI,yBAAyB,w3CAAw3C,2EAAa;AACv7C,QAAQ,yEAAY;AACpB,QAAQ,uDAAW;AACnB,QAAQ,+DAAmB,4HAA4H,IAAI;;;AAG3J;AACA;AACA;;AAEw3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxqPx3D;AACA;AACA;AACA;AACwD;AACmH;AACvH;AACyB;AACrC;AACe;AACjB;AACS;AACiC;AACpB;;AAE5D;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,SAAS;AACT;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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,iGAAiG;AACjG;AACA;AACA,6GAA6G;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sEAAoB,GAAG,QAAQ,6DAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6DAAa;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,2DAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,8DAAuB;AAC1E,gCAAgC,+DAAwB,GAAG,0FAA0F;AACrJ,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,YAAY,8GAA8G;AACjI,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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iEAAiE,8BAA8B;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oDAAS;AACpC,QAAQ,0EAAe;AACvB;AACA;AACA;AACA;AACA;AACA,gHAAgH,0CAA0C;AAC1J;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0CAA0C;AACtE,uBAAuB,wCAAwC;AAC/D;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,uBAAuB,gCAAgC;AACvD;AACA,qEAAqE,0CAA0C;AAC/G,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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AI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA;AACA,gDAAgD;AAChD,IAAI,wDAAiB;AACrB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;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,0BAA0B,2CAAK,CAAC,wCAAE;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,yDAAc,UAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;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,0FAA0F,MAAM,KAAK,MAAM;;AAE3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE,yCAAyC,+DAAwB,GAAG,uKAAuK;AAC3O,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,gBAAgB,iFAAiF,oBAAoB;AACxI,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,oDAAK;AACT,IAAI,iDAAU;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,iCAAiC,uDAAY;AAC7C,+BAA+B,uDAAY;AAC3C,yBAAyB,uDAAY;AACrC,2BAA2B,uDAAY;AACvC,yBAAyB,uDAAY;AACrC,2BAA2B,uDAAY;AACvC,4BAA4B,uDAAY;AACxC,8BAA8B,uDAAY;AAC1C;AACA;AACA,+DAA+D;AAC/D,uCAAuC,gEAAyB,GAAG,iDAAiD,oCAAoC;;AAExJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA,6EAA6E;AAC7E,8CAA8C,gEAAyB,GAAG,wDAAwD,2CAA2C;;AAE7K;AACA;AACA;AACA,8BAA8B,yDAAc;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,iDAAiD,4BAA4B,sDAAe;AAC5F,gCAAgC,gEAAyB,GAAG,0CAA0C,6BAA6B;AACnI,YAAY,iDAAU,GAAG,8CAAO,IAAI,uDAAQ,KAAK,8CAAO,IAAI,qDAAM;AAClE,IAAI,iDAAU;AACd;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;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;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,yBAAyB,yDAAc;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,kCAAkC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kHAAkH;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E;AAC5E;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,qCAAqC,+DAAwB,oBAAoB,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB;AAC1O,wCAAwC,+DAAwB,GAAG,qQAAqQ,8CAA8C;AACtX,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,qBAAqB,iDAAU,GAAG,8CAAO,IAAI,uDAAQ,KAAK,8CAAO,IAAI,qDAAM,iBAAiB,8CAAO,IAAI,uDAAQ;AAC/G,IAAI,iDAAU,+BAA+B,qDAAU;AACvD,QAAQ,oDAAS;AACjB;;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;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;AACA;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,gBAAgB,aAAa;AAC7B;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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,SAAS;AACT;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;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;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;;AAEA;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,yCAAO;AACxC,8DAA8D,0DAAS,gDAAgD,qDAAI;AAC3H;AACA;AACA,kCAAkC,cAAc;AAChD;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,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,4BAA4B,0BAA0B;AACtD;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA;AACA,gBAAgB,mBAAmB;AACnC,4BAA4B,kEAAkE;AAC9F;AACA;AACA,gBAAgB,mBAAmB;AACnC,4BAA4B,gEAAgE;AAC5F;AACA;AACA,4BAA4B,4BAA4B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,qDAAqD,8BAA8B,sDAAe,CAAC,iDAAa;AAChH,kCAAkC,gEAAyB,GAAG,4CAA4C,+BAA+B;AACzI,cAAc,iDAAU,GAAG,iDAAU,uBAAuB,iDAAM;AAClE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;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;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,iEAAiE;AAC3G,4BAA4B,yEAAyE;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD,oCAAoC,gEAAyB,GAAG,8CAA8C,iCAAiC;;AAE/I;AACA;AACA;AACA;AACA;AACA,2BAA2B,yCAAO;AAClC,8BAA8B,yCAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iDAAiD;AAChF;AACA;AACA,+BAA+B,sBAAsB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE,0CAA0C,gEAAyB,GAAG,+DAA+D;;AAErI;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,2BAA2B,yCAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,iBAAiB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,+BAA+B;AAC1E;AACA;AACA;AACA;AACA;AACA,2CAA2C,gCAAgC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,qCAAqC,gEAAyB,GAAG,+CAA+C,kCAAkC;;AAElJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yCAAO;AACnC;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE,2CAA2C,gEAAyB,GAAG,qDAAqD,wCAAwC;;AAEpK;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;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,mCAAmC;AACnC;AACA,aAAa;AACb;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;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,iDAAiD,mBAAmB;AACpE;AACA;AACA;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA,qDAAqD,mEAAmE;AACxH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,oCAAoC,sDAAe,CAAC,iDAAa,GAAG,sDAAe,oBAAoB,sDAAe,uBAAuB,sDAAe,wBAAwB,sDAAe,iBAAiB,sDAAe,kBAAkB,sDAAe,aAAa,sDAAe,eAAe,sDAAe,CAAC,4DAAwB,GAAG,sDAAe,CAAC,8EAA0B,GAAG,sDAAe;AACvd,wCAAwC,gEAAyB,GAAG,kDAAkD,qCAAqC;AAC3J,oBAAoB,iDAAU,GAAG,8CAAO,KAAK,uDAAQ;AACrD,IAAI,iDAAU,uBAAuB,iDAAM;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4DAAiB;AACzB,QAAQ,8EAAmB;AAC3B;AACA;;AAEA;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,0BAA0B;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,gCAAgC,wCAAwC;AACxE;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,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;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;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;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,2CAA2C,2CAA2C;AACtF;AACA;AACA,aAAa;AACb;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,mCAAmC,sDAAe,oBAAoB,sDAAe,2BAA2B,sDAAe;AAC9L,uCAAuC,gEAAyB,GAAG,iDAAiD,oCAAoC;AACxJ,mBAAmB,iDAAU,GAAG,iDAAU;AAC1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC,gCAAgC,uDAAY;AAC5C;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,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,wCAAwC;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,yCAAyC,wCAAwC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,wCAAwC;AACjF;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,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,4BAA4B,OAAO;AACnC;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,2CAA2C,gEAAgE;AAC3G;AACA;AACA,aAAa;AACb;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,uCAAuC,sDAAe,oBAAoB,sDAAe,2BAA2B,sDAAe;AAC1M,2CAA2C,gEAAyB,GAAG,qDAAqD,wCAAwC;AACpK,uBAAuB,iDAAU,GAAG,iDAAU;AAC9C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sCAAsC;AACrD,gBAAgB,uCAAuC;AACvD,kBAAkB,uCAAuC;AACzD,mBAAmB;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,2CAA2C,2CAAK,iCAAiC,qDAAI,uCAAuC,sDAAK,KAAK,qDAAI;AAC1I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,KAAK;AACrC,+BAA+B,IAAI;AACnC,iCAAiC,MAAM;AACvC,kCAAkC,OAAO;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,uEAAuE,uCAAuC,+DAAwB,CAAC,8EAAyB,GAAG,+DAAwB,oBAAoB,+DAAwB,wBAAwB,+DAAwB;AACvR,0CAA0C,+DAAwB,GAAG,iKAAiK;AACtO,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,SAAS;AACT,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,GAAG,iDAAU,uBAAuB,8EAAkB;AACvF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC,uDAAY;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA,qCAAqC;AACrC;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,uCAAuC;AACvC;AACA,qCAAqC;AACrC;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oFAAoF,gCAAgC;AACpH;AACA;AACA;AACA;AACA,yBAAyB;AACzB,sBAAsB;AACtB,sBAAsB,6IAA6I;AACnK,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,WAAW;AAChD,iCAAiC,sBAAsB;AACvD,0BAA0B,mDAAmD;AAC7E;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,wCAAwC,+DAAwB,CAAC,sDAAkB;AAC5J,2CAA2C,+DAAwB,GAAG,6EAA6E;AACnJ,wBAAwB,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AACxD,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,mBAAmB;AACnB,mBAAmB;AACnB,wBAAwB;AACxB,mBAAmB;AACnB,sBAAsB;AACtB,mBAAmB,wCAAwC;AAC3D;AACA;AACA;AACA,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,OAAO,aAAa;AACpD;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,0BAA0B,sBAAsB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,+CAA+C,+DAAwB,CAAC,sDAAkB;AACjL,kDAAkD,+DAAwB,GAAG,2FAA2F;AACxK,+BAA+B,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AAC/D,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA;AACA;AACA,2DAA2D,wCAAwC;AACnG;AACA;AACA,mBAAmB;AACnB,mBAAmB;AACnB,mBAAmB;AACnB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mGAAmG,qDAAqD,+DAAwB,CAAC,sDAAkB;AACnM,wDAAwD,+DAAwB,GAAG,uGAAuG;AAC1L,qCAAqC,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AACrE,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA,wEAAwE,qCAAqC;AAC7G;AACA;AACA;AACA;AACA,uBAAuB,2BAA2B,yCAAyC;AAC3F,yHAAyH;AACzH,yDAAyD,kCAAkC;AAC3F,sBAAsB;AACtB,sBAAsB;AACtB,oBAAoB;AACpB,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,wCAAwC,+DAAwB,CAAC,sDAAkB;AAC5J,2CAA2C,+DAAwB,GAAG,6EAA6E;AACnJ,wBAAwB,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AACxD,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,mBAAmB;AACnB,mBAAmB;AACnB,wBAAwB;AACxB;AACA;AACA;AACA,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,0BAA0B,qCAAqC,0CAA0C,GAAG;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,+CAA+C,+DAAwB,CAAC,sDAAkB;AACjL,kDAAkD,+DAAwB,GAAG,2FAA2F;AACxK,+BAA+B,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AAC/D,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA;AACA,oCAAoC,gCAAgC;AACpE;AACA;AACA,8BAA8B,0CAA0C;AACxE;AACA;AACA,oBAAoB,8CAA8C,kCAAkC;AACpG,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,cAAc,GAAG,aAAa;AACrD;AACA;AACA;AACA;AACA,uBAAuB,cAAc,GAAG,aAAa;AACrD;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,0CAA0C,+DAAwB,CAAC,sDAAkB;AAClK,6CAA6C,+DAAwB,GAAG,iFAAiF;AACzJ,0BAA0B,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AAC1D,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA;AACA,oCAAoC,gCAAgC;AACpE;AACA;AACA,8BAA8B,0CAA0C;AACxE;AACA;AACA,oBAAoB,8CAA8C,kCAAkC;AACpG,yBAAyB;AACzB;AACA;AACA,yCAAyC,wCAAwC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,cAAc,GAAG,aAAa;AACrD;AACA;AACA;AACA;AACA,uBAAuB,cAAc,GAAG,aAAa;AACrD;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,0CAA0C,+DAAwB,CAAC,sDAAkB;AAClK,6CAA6C,+DAAwB,GAAG,iFAAiF;AACzJ,0BAA0B,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AAC1D,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oCAAoC,oCAAoC;AAC7F,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,6BAA6B,8BAA8B,IAAI,gCAAgC;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,8CAA8C,+DAAwB,CAAC,sDAAkB;AAC9K,iDAAiD,+DAAwB,GAAG,yFAAyF;AACrK,8BAA8B,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AAC9D,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;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,6FAA6F,6BAA6B;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;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,mCAAmC,oDAAS;AAC5C;AACA;AACA;AACA,uCAAuC,oDAAS;AAChD;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,8DAAuB;AAC9E,kCAAkC,+DAAwB,GAAG,8FAA8F;AAC3J,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,YAAY,iiBAAiiB;AACpjB,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,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,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,4BAA4B,oBAAoB;AACnE,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA,iDAAU;AACV,IAAI,2DAAY,4BAA4B,eAAe;AAC3D,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,8DAAe;AACnB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;;AAEA;AACA,uDAAuD,oCAAoC;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,8CAA8C,+DAAwB,CAAC,sDAAkB;AAC9K,iDAAiD,+DAAwB,GAAG,yFAAyF;AACrK,8BAA8B,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AAC9D,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA;AACA,mBAAmB,oCAAoC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,8CAA8C,+DAAwB,CAAC,sDAAkB;AAC9K,iDAAiD,+DAAwB,GAAG,yFAAyF;AACrK,8BAA8B,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AAC9D,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA;AACA;AACA,kBAAkB,YAAY,IAAI,SAAS,GAAG,SAAS;AACvD;AACA;AACA,kBAAkB,YAAY,WAAW,UAAU;AACnD;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA,iDAAiD;AACjD,gCAAgC,gEAAyB,GAAG,0CAA0C,6BAA6B;AACnI,YAAY,iDAAU,GAAG,iDAAU;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,uBAAuB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,qCAAqC;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,kCAAkC,+DAAwB,oBAAoB,+DAAwB;AACnK,qCAAqC,+DAAwB,GAAG,wIAAwI;AACxM,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,YAAY,oKAAoK,aAAa,gEAAyB;AAC7N;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,wEAAiC,8EAA8E,oBAAoB;AAC/I,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,2DAAY,0BAA0B,eAAe;AACzD,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY,iCAAiC,eAAe;AAChE,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY,uCAAuC,eAAe;AACtE,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY,iCAAiC,eAAe;AAChE,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY,0BAA0B,eAAe;AACzD,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY,gCAAgC,eAAe;AAC/D,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY,gCAAgC,eAAe;AAC/D,IAAI,iDAAU;AACd;AACA,sCAAsC,iDAAU,GAAG,8CAAO,IAAI,uDAAQ,KAAK,8CAAO,IAAI,mDAAI,KAAK,8CAAO,IAAI,uDAAQ,KAAK,8CAAO,IAAI,uDAAQ;AAC1I,IAAI,iDAAU;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,8BAA8B;AACtF;AACA,cAAc,sBAAsB,gBAAgB,wBAAwB;AAC5E,eAAe,6BAA6B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8GAA8G,IAAI;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,wCAAwC;AACjG;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC,gBAAgB,kBAAkB;AAClC;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,QAAQ;AACR;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,qEAAqE,sCAAsC,+DAAwB,oBAAoB,+DAAwB;AAC/K,yCAAyC,+DAAwB,GAAG,qJAAqJ;AACzN,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,YAAY,wCAAwC,aAAa,gEAAyB;AACjG;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,wEAAiC,kFAAkF,oBAAoB;AACnJ,iDAAU;AACV,IAAI,8DAAe,0BAA0B,oBAAoB;AACjE,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA,iDAAU;AACV,IAAI,8DAAe,0BAA0B,oBAAoB;AACjE,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA,iDAAU;AACV,IAAI,8DAAe;AACnB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,8CAA8C,iDAAU,GAAG,8CAAO,IAAI,uDAAQ,KAAK,8CAAO,IAAI,mDAAI,KAAK,8CAAO,IAAI,uDAAQ,KAAK,8CAAO,IAAI,uDAAQ;AAClJ,IAAI,iDAAU;AACd;;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,KAAK,gCAAgC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mEAAO,aAAa,iCAAiC;AACtF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yCAAyC;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc,kBAAkB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,uCAAuC,+DAAwB,oBAAoB,+DAAwB;AAClL,0CAA0C,+DAAwB,GAAG,wJAAwJ;AAC7N,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,aAAa,gEAAyB;AAC7C;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,wEAAiC,mFAAmF,oBAAoB;AACpJ,iDAAU;AACV,IAAI,8DAAe;AACnB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA,gDAAgD,iDAAU,GAAG,8CAAO,IAAI,uDAAQ,KAAK,8CAAO,IAAI,mDAAI,KAAK,8CAAO,IAAI,uDAAQ,KAAK,8CAAO,IAAI,uDAAQ;AACpJ,IAAI,iDAAU;AACd;;AAEA;AACA,gFAAgF,gCAAgC;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iCAAiC;AAC1D,uBAAuB,gCAAgC;AACvD;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,mBAAmB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,0CAA0C,+DAAwB,CAAC,sDAAkB;AAClK,6CAA6C,+DAAwB,GAAG,2FAA2F,uDAAuD;AAC1N,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,0BAA0B,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AAC1D,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA,+BAA+B,mFAAmB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,kBAAkB,OAAO,WAAW;AACjF,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,OAAO,WAAW,cAAc,YAAY,kBAAkB,kBAAkB,cAAc,cAAc;AACzJ,iDAAiD,WAAW;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA;AACA,iCAAiC,gDAAS,wBAAwB,0DAAS;AAC3E;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,wCAAwC,sDAAe,CAAC,iDAAa,GAAG,sDAAe,CAAC,4DAAwB;AACzL,4CAA4C,gEAAyB,GAAG,sDAAsD,yCAAyC;AACvK,wBAAwB,iDAAU,GAAG,iDAAU,uBAAuB,iDAAM,EAAE,4DAAiB;AAC/F;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sEAAsE;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,IAAI;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,SAAS;AACT;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,EAAE,EAAE,EAAE;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;AACA;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;AACA;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;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,cAAc;AACd;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;AACA,SAAS;AACT;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,mBAAmB;AACnB,kBAAkB;AAClB,iBAAiB;AACjB;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,WAAW,YAAY;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,2DAA2D,sCAAsC;AACjG;AACA,SAAS;AACT;AACA;;AAEA;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;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,aAAa;AACb;AACA;AACA,iDAAiD,oBAAoB;AACrE;AACA,aAAa;AACb;AACA;AACA;AACA,+CAA+C,oBAAoB;AACnE;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,iDAAiD,8DAAuB;AACxE,+BAA+B,+DAAwB,GAAG,2BAA2B,2GAA2G,aAAa,0CAA0C,aAAa,kEAA2B,GAAG;AAClS,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,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;;AAEA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;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,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oDAAS;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D,uCAAuC,gEAAyB,GAAG,yDAAyD;;AAE5H;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA;AACA,qCAAqC,qDAAI;AACzC;AACA;AACA;AACA;AACA,iFAAiF,4CAA4C,sDAAe,CAAC,iDAAa;AAC1J,gDAAgD,gEAAyB,GAAG,0DAA0D,6CAA6C;AACnL,4BAA4B,iDAAU,GAAG,iDAAU,uBAAuB,iDAAM;AAChF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,6CAA6C,+DAAwB,CAAC,sDAAkB;AAC3K,gDAAgD,+DAAwB,GAAG,uFAAuF;AAClK,6BAA6B,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AAC7D,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,WAAW;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,iBAAiB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;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,mEAAmE;AACnE,yCAAyC,gEAAyB,GAAG,mDAAmD,sCAAsC;;AAE9J;AACA;AACA,mBAAmB,oCAAoC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yCAAO;AAClC;AACA;AACA;AACA;AACA;AACA,eAAe,2BAA2B;AAC1C;AACA;AACA;AACA;AACA;AACA,yDAAyD,gCAAgC,sDAAe;AACxG,oCAAoC,gEAAyB,GAAG,8CAA8C,iCAAiC;AAC/I,gBAAgB,iDAAU;AAC1B,IAAI,8CAAO,IAAI,uDAAQ;AACvB,IAAI,iDAAU;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,sBAAsB;AACtB,kBAAkB;AAClB,mBAAmB;AACnB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,IAAI;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,yCAAyC,+DAAwB,CAAC,sDAAkB;AAC/J,4CAA4C,+DAAwB,GAAG,2EAA2E;AAClJ,yBAAyB,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AACzD,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA;AACA;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,uCAAuC,oBAAoB;AAC3D;AACA;AACA;AACA,gBAAgB,wDAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD,iCAAiC,gEAAyB,GAAG,2CAA2C,8BAA8B;;AAEtI;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,qCAAqC,gEAAyB,GAAG,+CAA+C,kCAAkC;;AAElJ;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;AACA,iEAAiE;AACjE,wCAAwC,gEAAyB,GAAG,kDAAkD,qCAAqC;;AAE3J;AACA;AACA;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;AACA,uDAAuD;AACvD,mCAAmC,gEAAyB,GAAG,6CAA6C,gCAAgC;;AAE5I;AACA;AACA;AACA;AACA,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;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,8BAA8B;AACjF;AACA;AACA,qBAAqB;AACrB,wBAAwB;AACxB,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,2CAA2C,+DAAwB,CAAC,sDAAkB;AACrK,8CAA8C,+DAAwB,GAAG,6FAA6F,wBAAwB;AAC9L,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,2BAA2B,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AAC3D,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yCAAO;AAClC;AACA,iCAAiC,+CAAY;AAC7C,sCAAsC,+CAAY;AAClD,oCAAoC,+CAAY;AAChD;AACA;AACA;AACA;AACA,6BAA6B,yBAAyB;AACtD;AACA;AACA,4BAA4B,gDAAS,oBAAoB,oDAAG,IAAI,UAAU,cAAc;AACxF;AACA;AACA,iBAAiB;AACjB,8CAA8C,qEAAoB,6CAA6C,uDAAM,qDAAqD,oDAAG;AAC7K;AACA,0CAA0C,uDAAM;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,wBAAwB;AACzC;AACA;AACA;AACA,4BAA4B,SAAS;AACrC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,+CAAY;AAC1D;AACA;AACA;AACA,4CAA4C,+CAAY;AACxD;AACA;AACA;AACA;AACA;AACA,iEAAiE,oCAAoC,sDAAe,CAAC,iDAAa;AAClI,wCAAwC,gEAAyB,GAAG,kDAAkD,qCAAqC;AAC3J,oBAAoB,iDAAU,GAAG,iDAAU,uBAAuB,iDAAM;AACxE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,+CAAY,UAAU;AAC5D,8BAA8B,yCAAO;AACrC;AACA,2DAA2D,6DAAY;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD,oCAAoC,gEAAyB,GAAG,8CAA8C,iCAAiC;;AAE/I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,UAAU;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;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;AACA,SAAS;AACT;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0CAAG;AACX,kBAAkB,qDAAI;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,yEAAyE;AACzE,4CAA4C,gEAAyB,GAAG,sDAAsD,yCAAyC;;AAEvK;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,mBAAmB,oCAAoC;AACvD;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,+BAA+B,2CAA2C;AAC1E,8BAA8B,wCAAwC;AACtE;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,SAAS;AACT;AACA;AACA,mEAAmE,qCAAqC,sDAAe,CAAC,wEAAmB,GAAG,sDAAe,CAAC,oDAAgB,GAAG,sDAAe,CAAC,iDAAa,GAAG,sDAAe,qBAAqB,sDAAe,CAAC,8EAA0B;AAC/R,yCAAyC,gEAAyB,GAAG,mDAAmD,sCAAsC;AAC9J,qBAAqB,iDAAU,GAAG,iDAAU,uBAAuB,wEAAY;AAC/E,QAAQ,oDAAS;AACjB,QAAQ,iDAAM;AACd;AACA,QAAQ,8EAAmB;AAC3B;;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,YAAY,wBAAwB;AACpC,YAAY,2BAA2B;AACvC,YAAY,YAAY;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,YAAY,4BAA4B;AACxC;AACA;AACA;AACA,aAAa;AACb;;AAEA;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,qCAAqC,WAAW,iBAAiB;AACjE;AACA;AACA,mEAAmE;AACnE,yCAAyC,gEAAyB,GAAG,mDAAmD,sCAAsC;;AAE9J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,MAAM;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,+DAAoB;AACrE;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;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,6DAA6D,kCAAkC,sDAAe,CAAC,oEAAmB;AAClI,sCAAsC,gEAAyB,GAAG,gDAAgD,mCAAmC;AACrJ,kBAAkB,iDAAU,GAAG,iDAAU,uBAAuB,oEAAY;AAC5E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,qCAAqC,gEAAyB,GAAG,+CAA+C,kCAAkC;;AAElJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE,2CAA2C,gEAAyB,GAAG,qDAAqD,wCAAwC;;AAEpK;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,4BAA4B;AAC9C;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,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uDAAY;AAChD,gCAAgC,uDAAY;AAC5C,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,aAAa,8BAA8B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI,mBAAmB;AAChC;AACA,qBAAqB,YAAY;AACjC,sBAAsB,aAAa;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE,wCAAwC,gEAAyB,GAAG,kDAAkD,qCAAqC;;AAE3J;AACA;AACA;AACA;AACA;AACA,2BAA2B,yCAAO;AAClC;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,kCAAkC,gEAAyB,GAAG,+CAA+C;;AAE7G;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,6BAA6B;AAC7B;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;;AAEA;AACA;AACA;AACA,uHAAuH,+BAA+B;AACtJ;AACA,4FAA4F;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,+CAA+C,+DAAwB,CAAC,sDAAkB;AACjL,kDAAkD,+DAAwB,GAAG,2FAA2F;AACxK,+BAA+B,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AAC/D,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA;AACA;AACA,kBAAkB,0BAA0B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,2CAA2C,+DAAwB,CAAC,sDAAkB;AACrK,8CAA8C,+DAAwB,GAAG,mFAAmF;AAC5J,2BAA2B,iDAAU,GAAG,iDAAU,uBAAuB,sDAAW;AACpF;;AAEA;AACA,mBAAmB,wDAAW;AAC9B;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB,0CAA0C,MAAM;AAChD;AACA;AACA;AACA,qHAAqH,uDAAM,IAAI,OAAO;AACtI;AACA,sHAAsH,uDAAM,IAAI,UAAU;AAC1I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,0BAA0B;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,iCAAiC;AACjC,8BAA8B;AAC9B;AACA;AACA;AACA,+CAA+C,wBAAwB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;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,oCAAoC,wBAAwB;AAC5D;AACA;AACA;AACA,kCAAkC,sBAAsB;AACxD;AACA;AACA;AACA,4DAA4D,qBAAqB;AACjF;AACA;AACA,yCAAyC;AACzC,mCAAmC;AACnC,qCAAqC;AACrC,2DAA2D;AAC3D,2CAA2C;AAC3C,yCAAyC;AACzC;AACA;AACA;AACA;AACA,4DAA4D,6BAA6B;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,+BAA+B;AACnE;AACA;AACA;AACA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iCAAiC;AAC5D;AACA;AACA;AACA;AACA;AACA,4FAA4F,0BAA0B;AACtH;AACA;AACA;AACA;AACA;AACA,yFAAyF,yBAAyB;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,wBAAwB;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uDAAY;AAC5C;AACA,sEAAsE,qBAAqB;AAC3F;AACA;AACA,8BAA8B,uDAAY;AAC1C;AACA;AACA,oFAAoF,6BAA6B;AACjH;AACA;AACA;AACA,yEAAyE,sBAAsB;AAC/F;AACA;AACA,8BAA8B,uDAAY;AAC1C;AACA;AACA,uCAAuC,iCAAiC;AACxE;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,2BAA2B,qCAAqC;AAChE;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA,2BAA2B,qCAAqC;AAChE;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA,2BAA2B,qCAAqC;AAChE;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA,2BAA2B,qCAAqC;AAChE;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA,2BAA2B,qCAAqC;AAChE;AACA,uBAAuB,uDAAY;AACnC;AACA,qEAAqE,6BAA6B;AAClG;AACA,6BAA6B,uDAAY;AACzC;AACA,6DAA6D,6BAA6B;AAC1F;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,sCAAsC,uDAAY;AAClD;AACA;AACA,2BAA2B,2BAA2B;AACtD;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2EAAe;AACvB,+EAA+E,KAAK;AACpF;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,yIAAyI,gCAAgC,QAAQ,gCAAgC;AACjN;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,qBAAqB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,sBAAsB;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,6BAA6B;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,+BAA+B;AAC/C,gBAAgB,eAAe;AAC/B;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;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,YAAY,oDAAS;AACrB,yEAAyE,mBAAmB;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oDAAS;AACrB,0EAA0E,mBAAmB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,+BAA+B;AACtD;AACA;AACA;AACA,YAAY,oDAAS;AACrB,4EAA4E,mBAAmB;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,+BAA+B;AAC3F;AACA;AACA,YAAY,oDAAS;AACrB,6EAA6E,mBAAmB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,OAAO,IAAI,KAAK;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,wDAAwD,wBAAwB;AAChF;AACA;AACA;AACA;AACA,0EAA0E,yCAAyC;AACnH,sFAAsF,2CAA2C;AACjI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,wBAAwB;AAClF;AACA;AACA;AACA;AACA,0EAA0E,yCAAyC;AACnH,sFAAsF,2CAA2C;AACjI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,wCAAwC;AAC7F;AACA,qGAAqG,gCAAgC;AACrI;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,wCAAwC;AAC7F;AACA,qGAAqG,gCAAgC;AACrI;AACA,eAAe,QAAQ;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,YAAY,yEAAS;AACrB;AACA;AACA,6CAA6C,0EAAU;AACvD;AACA;AACA,YAAY,0EAAU;AACtB;AACA;AACA,YAAY,yEAAS;AACrB;AACA;AACA,YAAY,yEAAS;AACrB,4EAA4E,YAAY;AACxF;AACA,YAAY,yEAAS;AACrB,2EAA2E,qDAAI;AAC/E;AACA,YAAY,0EAAU;AACtB;AACA;AACA;AACA,aAAa,oBAAoB;AACjC;AACA,YAAY,yEAAS;AACrB,sCAAsC,qDAAI;AAC1C;AACA,YAAY,yEAAS;AACrB;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,yEAAyE,qCAAqC;AAC9G;AACA;AACA,yCAAyC,yCAAyC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,SAAS;AAC/D;AACA,qDAAqD,KAAK,mCAAmC,YAAY;AACzG;AACA;AACA;AACA,yDAAyD,qCAAqC;AAC9F;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,qCAAqC;AACrF;AACA,eAAe,WAAW,2BAA2B,yCAAyC;AAC9F;AACA;AACA;AACA,6CAA6C,sDAAS;AACtD;AACA,6EAA6E,GAAG;AAChF,wBAAwB,sDAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,mBAAmB;AAClC,eAAe,WAAW,2BAA2B,yCAAyC;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gCAAgC;AACxD;AACA,gBAAgB,SAAS;AACzB;AACA,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA,gDAAgD,wBAAwB;AACxE;AACA;AACA;AACA;AACA;AACA,sDAAsD,iCAAiC;AACvF,uBAAuB,wBAAwB;AAC/C;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,0BAA0B;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA,QAAQ;AACR;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI;AACjC;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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,2DAA2D,cAAc;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,qDAAI;AACzF;AACA;AACA,+EAA+E,kBAAkB;AACjG;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,2BAA2B;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,QAAQ;AACvB,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,cAAc;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,eAAe;AAChE;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,cAAc,yCAAyC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,yCAAyC;AAChF;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,0BAA0B,yCAAyC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;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,gCAAgC;AACpE;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;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,yBAAyB,wDAAS;AAClC,8CAA8C,OAAO;AACrD;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,aAAa;AACb;AACA;AACA;AACA;AACA,YAAY,2CAAK,sBAAsB,oDAAG;AAC1C;AACA,aAAa,0BAA0B,oDAAG,YAAY,0FAA0F,2BAA2B,oDAAG;AAC9K;AACA,aAAa,4BAA4B,oDAAG;AAC5C;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8BAA8B;AAC9C;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,gDAAgD,cAAc;AAC9D,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,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;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;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;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,oDAAG;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,GAAG,uDAAM,2BAA2B,0DAAS;AACtD;AACA,QAAQ,0DAAS,cAAc,uDAAM,sCAAsC,uDAAM;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,YAAY,wDAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,qDAAI;AAC1C;AACA;AACA;AACA;AACA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Aa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc;AACpB;AACA;AACA;AACA;AACA,0FAA0F,eAAe,KAAK,kCAAkC;AAChJ;AACA;AACA;AACA,gJAAgJ,gBAAgB;AAChK,MAAM,cAAc;AACpB;AACA;AACA;AACA;AACA,2FAA2F,eAAe,KAAK,kCAAkC;AACjJ;AACA;AACA;AACA,sKAAsK,gB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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,cAAc;AACvB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kDAAe;AAC3C,4BAA4B,oDAAiB;AAC7C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qDAAqD;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;;AAEA;AACA,sCAAsC,uBAAuB;AAC7D;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,+FAA+F,MAAM;AACrG;AACA;AACA,mCAAmC,YAAY,wCAAwC,OAAO;AAC9F;AACA;AACA;AACA;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,yCAAO;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,iBAAiB;AACjB;AACA,SAAS;AACT,sEAAsE,KAAK;AAC3E;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,mBAAmB,eAAe;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gDAAS,8CAA8C,oDAAG,2BAA2B,uDAAM,qCAAqC,oDAAG;AACtK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,uDAAM,kCAAkC,uDAAM;AAClG;AACA;AACA;AACA,SAAS,GAAG,oDAAG;AACf;AACA,sDAAsD,uDAAM;AAC5D;AACA,sDAAsD,uDAAM;AAC5D;AACA;AACA,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uDAAM;AACxB;AACA,4BAA4B,gBAAgB;AAC5C;AACA,SAAS;AACT;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,SAAS;AACT;AACA;AACA,mDAAmD,uDAAM,yCAAyC,sDAAK;AACvG;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,cAAc;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,gBAAgB,0BAA0B;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,mCAAmC,2CAAK;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA;AACA;AACA,cAAc,2BAA2B;AACzC;AACA;AA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AI,wDAAS,YAAY,cAAc;AACvC,IAAI,iDAAU,gBAAgB,qDAAU;AACxC;AACA,iDAAU;AACV,IAAI,2DAAY,CAAC,iFAAqB;AACtC,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA,gBAAgB,iDAAU,GAAG,8CAAO,IAAI,qDAAM;AAC9C,IAAI,iDAAU;AACd;AACA;AACA;AACA,QAAQ,iDAAM;AACd,QAAQ,oDAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8EAAmB;AAC3B;AACA,QAAQ,4DAAiB;AACzB;AACA;AACA;;AAEA;AACA,8FAA8F,qBAAqB;AACnH,cAAc,sBAAsB,mBAAmB,6BAA6B;AACpF,qCAAqC,kCAAkC;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;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,iBAAiB,qDAAqD;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,uCAAuC,+DAAwB,iBAAiB,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB;AACnO,0CAA0C,+DAAwB,GAAG,iFAAiF,wHAAwH,aAAa,kEAA2B,GAAG;AACzT,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,uBAAuB,iDAAU,GAAG,iDAAU;AAC9C,QAAQ,4DAAiB;AACzB;AACA;;AAEA;AACA;AACA,mBAAmB,wBAAwB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,qCAAqC,+DAAwB,iBAAiB,+DAAwB,CAAC,4DAAwB;AAClM,wCAAwC,+DAAwB,GAAG,iFAAiF,wEAAiC,GAAG;AACxL,qBAAqB,iDAAU,GAAG,iDAAU,sCAAsC,4DAAiB;AACnG;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,uDAAY;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,+CAAY;AAC7C;AACA,+BAA+B,2CAAK,6BAA6B,oDAAG,uBAAuB,cAAc,uCAAuC,oDAAG,uBAAuB,eAAe;AACzL;AACA;AACA,uGAAuG,2CAA2C;AAClJ;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;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;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,yCAAyC,+DAAwB;AAC5I,4CAA4C,+DAAwB,GAAG,2FAA2F,wLAAwL,aAAa,sDAAsD,qDAAqD,kEAA2B,GAAG;AAChf,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,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,yBAAyB,iDAAU,GAAG,iDAAU;AAChD;;AAEA;AACA;AACA;AACA,+BAA+B,gEAAgE;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,mBAAmB,oCAAoC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,uDAAY;AACvD;AACA;AACA;AACA;AACA;AACA,iCAAiC,+CAAY;AAC7C;AACA,+BAA+B,2CAAK,4BAA4B,oDAAG,uBAAuB,cAAc,sCAAsC,oDAAG,uBAAuB,eAAe;AACvL;AACA;AACA;AACA,uBAAuB,oCAAoC;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,uCAAuC,+DAAwB;AACtI,0CAA0C,+DAAwB,GAAG,uFAAuF,wJAAwJ,aAAa,oDAAoD,wCAAwC;AAC7Z,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,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,uBAAuB,iDAAU,GAAG,iDAAU;AAC9C;;AAEA;AACA;AACA;AACA,uBAAuB,4EAAiB;AACxC;AACA,4CAA4C,2BAA2B,sCAAsC,0DAA0D,mEAA4B,iCAAiC;AACpO,8BAA8B,+DAAwB,GAAG,0BAA0B,wgFAAwgF,aAAa,wEAAiC,GAAG;AAC5oF,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,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,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,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,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,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,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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,6CAA6C,+DAAwB,CAAC,8EAA0B;AACnL,gDAAgD,+DAAwB,GAAG,kGAAkG,gEAAyB;AACtM;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,wEAAiC,GAAG;AAChD,4DAA4D,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AAC7H;;AAEA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,0CAA0C,+DAAwB,CAAC,8EAA0B;AAC1K,6CAA6C,+DAAwB,GAAG,gFAAgF,gEAAyB;AACjL;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,wEAAiC,sFAAsF,oBAAoB;AACvJ,sDAAsD,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AACvH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,qCAAqC,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB;AACtL,wCAAwC,+DAAwB,GAAG,sJAAsJ;AACzN,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,wKAAwK,wkBAAwkB;AACnwB,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,4BAA4B,QAAQ,qDAAc,EAAE,kDAAW,6CAA6C,qDAAc,EAAE,qDAAc,IAAI,oBAAoB;AACzK,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,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,qBAAqB,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AACtF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sCAAsC,WAAW;AACjD;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,SAAS;AACT;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;;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,qEAAqE;AACrE,yCAAyC,+DAAwB,GAAG,mFAAmF,oCAAoC,gRAAgR;AAC3c,QAAQ,wDAAiB;AACzB,MAAM;AACN,QAAQ,wDAAiB;AACzB,OAAO,4BAA4B,QAAQ,kDAAW,EAAE,sDAAe,EAAE,0DAAmB,2BAA2B,8DAAuB,IAAI,oBAAoB;AACtK,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;;AAEA;AACA;AACA;AACA,CAAC,IAAI,GAAG;AACR;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,8DAAuB;AAC1F,wCAAwC,+DAAwB,GAAG,oCAAoC,gBAAgB;AACvH,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;;AAEA;AACA,kCAAkC,2BAA2B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,wDAAwD;AAC9D,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,uFAA2B;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uFAA2B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,wEAAwE,oCAAoC;AAC5G;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,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,6EAA6E,8DAAuB;AACpG,6CAA6C,+DAAwB,GAAG,oHAAoH;AAC5L,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,sFAAsF;AAC7F,QAAQ,yDAAkB;AAC1B,SAAS;AACT,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,8DAAe;AACnB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;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;AACA;AACA;AACA,2EAA2E,8DAAuB;AAClG,4CAA4C,+DAAwB,GAAG,wCAAwC,8JAA8J,aAAa,wEAAiC,GAAG;AAC9T,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,IAAI,iDAAU;AACd;;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;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,6CAA6C,+DAAwB,iBAAiB,+DAAwB,CAAC,8EAA0B;AAC5N,gDAAgD,+DAAwB,GAAG,6FAA6F,4DAA4D,aAAa,wEAAiC,iXAAiX;AACnoB,QAAQ,4DAAqB;AAC7B,QAAQ,uDAAgB;AACxB,QAAQ,0DAAmB;AAC3B,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,4BAA4B,oCAAoC,oFAA8B,4CAA4C,kGAA4C,IAAI,oBAAoB;AACrN,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,6BAA6B,iDAAU,GAAG,iDAAU;AACpD,QAAQ,8EAAmB;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA,kCAAkC,yCAAO;AACzC;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,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;AACA;AACA,8DAA8D,mFAAmB;AACjF,kFAAkF,4BAA4B;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,uCAAuC,+DAAwB,CAAC,8DAAiB,MAAM,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB;AAC7R,0CAA0C,+DAAwB,GAAG,yJAAyJ;AAC9N,QAAQ,4DAAqB,WAAW,sEAAU;AAClD,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,YAAY,wEAAwE,aAAa,kEAA2B,GAAG;AACtI,iDAAU;AACV,IAAI,2DAAY,CAAC,sEAAU,IAAI,cAAc;AAC7C,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,uBAAuB,iDAAU,GAAG,8CAAO,IAAI,mDAAI,KAAK,8CAAO,IAAI,qDAAM,CAAC,8DAAiB;AAC3F,IAAI,iDAAU,8BAA8B,iDAAM;AAClD,QAAQ,qDAAU;AAClB,QAAQ,oDAAS;AACjB;;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;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,YAAY,yEAAS;AACrB;AACA;AACA;AACA;AACA;AACA,qFAAqF,8DAAuB;AAC5G,iDAAiD,+DAAwB,GAAG,4HAA4H;AACxM,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,YAAY,gGAAgG,aAAa,wEAAiC,EAAE,kEAA2B,GAAG;AACjM,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,2DAAY,yBAAyB,eAAe;AACxD,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;;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,mFAAmF,6CAA6C,+DAAwB;AACxJ,gDAAgD,+DAAwB,GAAG,0KAA0K;AACrP,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,gCAAgC,aAAa,wEAAiC,+MAA+M;AAChT,QAAQ,6DAAsB;AAC9B,QAAQ,0DAAmB;AAC3B,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,6GAA6G,uBAAuB,gIAAgI,sCAAsC;AACnU,QAAQ,0DAAmB;AAC3B,MAAM;AACN,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,4BAA4B,wCAAwC,oBAAoB;AAC/F,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,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,6BAA6B,iDAAU,GAAG,iDAAU;AACpD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,oDAAoD;AACpD;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,yEAAyE,8DAAuB;AAChG,2CAA2C,+DAAwB,GAAG,uCAAuC,0DAA0D,aAAa,wEAAiC,GAAG;AACxN,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;;AAEA;AACA;AACA,mBAAmB,oCAAoC;AACvD;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,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,4CAA4C,+DAAwB,iBAAiB,+DAAwB,CAAC,8EAA0B;AACzN,+CAA+C,+DAAwB,GAAG,2FAA2F,4DAA4D,aAAa,wEAAiC,+RAA+R;AAC9iB,QAAQ,4DAAqB;AAC7B,QAAQ,uDAAgB;AACxB,QAAQ,0DAAmB;AAC3B,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,2CAA2C,6EAAuB,EAAE,iEAA2B,4CAA4C,4DAAsB,EAAE,oDAAc,qBAAqB;AAC7M,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,4BAA4B,iDAAU,GAAG,iDAAU;AACnD,QAAQ,8EAAmB;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA,kBAAkB,eAAe;AACjC;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;AACA,uFAAuF,+CAA+C,+DAAwB,CAAC,8EAA0B;AACzL,kDAAkD,+DAAwB,GAAG,yJAAyJ;AACtO,QAAQ,yDAAkB;AAC1B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,2FAA2F;AAClG,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,kGAAkG,aAAa,4CAA4C,6+BAA6+B;AAC3pC,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,eAAe,kDAAW,EAAE,qFAA4B,yCAAyC;AACxG,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,wDAAS,eAAe,eAAe;AAC3C,IAAI,iDAAU,gBAAgB,qFAAqB;AACnD;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,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,+BAA+B,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AAChG;;AAEA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA,6FAA6F,kDAAkD,+DAAwB,iBAAiB,+DAAwB,mBAAmB,+DAAwB,CAAC,8EAA0B;AACtR,qDAAqD,+DAAwB,GAAG,uGAAuG,4GAA4G,aAAa,wEAAiC,0NAA0N;AAC3iB,QAAQ,4DAAqB;AAC7B,QAAQ,uDAAgB;AACxB,QAAQ,0DAAmB;AAC3B,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,2CAA2C,qFAA4B,2CAA2C;AACzH,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,kCAAkC,iDAAU,GAAG,iDAAU;AACzD;AACA,QAAQ,8EAAmB;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,0DAA0D;AACxE,cAAc;AACd;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,0DAA0D;AACxE,cAAc;AACd;AACA,6BAA6B;AAC7B;AACA;AACA,2EAA2E,8DAAuB;AAClG,4CAA4C,+DAAwB,GAAG,iHAAiH;AACxL,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,oCAAoC,aAAa,wEAAiC,GAAG;AACxG,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;;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,mFAAmF,6CAA6C,+DAAwB,iBAAiB,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,CAAC,4DAAwB;AAChR,gDAAgD,+DAAwB,GAAG,8FAA8F,wEAAiC,qVAAqV;AAC/hB,QAAQ,4DAAqB;AAC7B,QAAQ,uDAAgB;AACxB,QAAQ,0DAAmB;AAC3B,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB,qGAAqG,6DAAsB;AACpJ,OAAO,2CAA2C,qFAA4B,+DAA+D;AAC7I,6BAA6B,iDAAU,GAAG,iDAAU;AACpD,QAAQ,8EAAmB;AAC3B,QAAQ,4DAAiB;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;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,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;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,qEAAqE,8DAAuB;AAC5F,yCAAyC,+DAAwB,GAAG,qCAAqC,0QAA0Q,aAAa,wEAAiC,GAAG;AACpa,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,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;;AAEA;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,6EAA6E,0CAA0C,+DAAwB,iBAAiB,+DAAwB,CAAC,8EAA0B;AACnN,6CAA6C,+DAAwB,GAAG,uFAAuF,gCAAgC,aAAa,wEAAiC,kYAAkY;AAC/mB,QAAQ,4DAAqB;AAC7B,QAAQ,uDAAgB;AACxB,QAAQ,0DAAmB;AAC3B,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,2CAA2C,oFAA0B,4CAA4C,kGAAwC,qBAAqB;AACrL,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,0BAA0B,iDAAU,GAAG,iDAAU;AACjD,QAAQ,8EAAmB;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE,uCAAuC,+DAAwB,GAAG,+EAA+E,wEAAwE,sPAAsP;AAC/c,QAAQ,wDAAiB;AACzB,MAAM;AACN,QAAQ,wDAAiB;AACzB,OAAO,eAAe,kDAAW,EAAE,qDAAc,qBAAqB;AACtE,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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,mCAAmC,+DAAwB,CAAC,8EAA0B;AACrJ,sCAAsC,+DAAwB,GAAG,gJAAgJ;AACjN,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,oCAAoC,kNAAkN;AACzQ,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,eAAe,kDAAW,EAAE,8DAAuB,qBAAqB;AAC/E,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,mBAAmB,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AACpF;;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,qFAAqF,8CAA8C,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,iBAAiB,+DAAwB;AAC7R,iDAAiD,+DAAwB,GAAG,mGAAmG,0FAA0F;AACzQ,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,8BAA8B,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AAC9D,IAAI,iDAAU,uBAAuB,qDAAU;AAC/C,QAAQ,oDAAS;AACjB;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,+EAA+E,2CAA2C,+DAAwB,CAAC,2DAAuB;AAC1K,8CAA8C,+DAAwB,GAAG,oFAAoF,sCAAsC;AACnM,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,2BAA2B,iDAAU,GAAG,iDAAU,uBAAuB,2DAAgB;AACzF;;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,mDAAmD,6BAA6B,sDAAe;AAC/F,iCAAiC,gEAAyB,GAAG,2CAA2C,8BAA8B;AACtI,aAAa,iDAAU,GAAG,iDAAU;AACpC;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,uCAAuC,+DAAwB,cAAc,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,qBAAqB,+DAAwB,aAAa,+DAAwB,qBAAqB,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB;AAC7a,0CAA0C,+DAAwB,GAAG,4JAA4J;AACjO,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,kUAAkU,aAAa,gEAAyB;AAC3X;AACA;AACA;AACA,aAAa,IAAI,kEAA2B,GAAG;AAC/C,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,iDAAU;AACV,IAAI,oDAAK;AACT,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,GAAG,8CAAO,IAAI,uDAAQ,KAAK,8CAAO,IAAI,qDAAM;AAC7E,IAAI,iDAAU;AACd,QAAQ,qDAAU;AAClB;AACA;AACA;AACA,QAAQ,oDAAS;AACjB,QAAQ,iDAAM;AACd;;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,qDAAqD,mBAAmB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,0EAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,sCAAsC,+DAAwB,aAAa,+DAAwB;AACxK,yCAAyC,+DAAwB,GAAG,yJAAyJ;AAC7N,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,sNAAsN,aAAa,kEAA2B,GAAG;AACpR,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,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,sBAAsB,iDAAU,GAAG,iDAAU;AAC7C;AACA;;AAEA,wBAAwB;AACxB;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;AACA,iEAAiE,oCAAoC,+DAAwB,CAAC,sEAAmB;AACjJ,wCAAwC,0DAAmB,GAAG,uDAAuD;AACrH,oBAAoB,iDAAU,GAAG,iDAAU,uBAAuB,sEAAW;AAC7E;;AAEA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,SAAS;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,0BAA0B,uDAAM;AAChC,qCAAqC,uDAAM,2BAA2B,oDAAG,6BAA6B,oDAAG,mBAAmB,0DAAS,uBAAuB,uDAAM,iCAAiC,oDAAG,gBAAgB,4DAAW;AACjO;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,eAAe,oDAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,iCAAi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AoB;AAC7J,kEAAkE,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AACnI;;AAEA;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;AACA,mEAAmE;AACnE,wCAAwC,8DAAuB,GAAG,0BAA0B;AAC5F,wCAAwC,8DAAuB,GAAG,gCAAgC,0DAAY;AAC9G,QAAQ,gEAAmB;AAC3B,QAAQ,wDAAW;AACnB,QAAQ,kFAAkB;AAC1B,QAAQ,kFAAkB;AAC1B,QAAQ,yEAAY;AACpB,QAAQ,iFAAgB;AACxB,QAAQ,uEAAW,iBAAiB;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0EAAU;AACtB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,oBAAoB,2BAA2B;AAC/C;AACA;AACA;AACA;AACA;AACA,qEAAqE,8DAAuB;AAC5F,yCAAyC,+DAAwB,GAAG,qCAAqC,oCAAoC,aAAa,kEAA2B,GAAG;AACxL,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,0CAA0C,+DAAwB,CAAC,2DAAuB,GAAG,+DAAwB,CAAC,mEAA+B;AAClO,6CAA6C,+DAAwB,GAAG,wFAAwF,wEAAiC,GAAG;AACpM,0BAA0B,iDAAU,GAAG,iDAAU,uBAAuB,2DAAgB;AACxF,QAAQ,mEAAwB;AAChC;;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,6DAA6D;AAC7D,qCAAqC,8DAAuB,GAAG,uBAAuB;AACtF,qCAAqC,8DAAuB,GAAG,qDAAqD;;AAEpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,sCAAsC,+DAAwB,CAAC,oFAA8B,GAAG,+DAAwB,CAAC,oDAAgB;AAC9M,yCAAyC,+DAAwB,GAAG,yEAAyE;AAC7I,sBAAsB,iDAAU,GAAG,iDAAU,uBAAuB,oFAAuB;AAC3F,QAAQ,oDAAS;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uEAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,6CAA6C,+DAAwB,CAAC,qFAA4B;AACrL,gDAAgD,+DAAwB,GAAG,mFAAmF;AAC9J,6BAA6B,iDAAU,GAAG,iDAAU,uBAAuB,qFAAqB;AAChG;;AAEA;AACA;AACA;AACA,6BAA6B,iIAAiI;AAC9J;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,yEAAyE;;AAEzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uDAAY;AAC1C;AACA;AACA,oCAAoC;AACpC,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qDAAI;AACpC;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,2DAA2D,iCAAiC,+DAAwB,uBAAuB,+DAAwB,qBAAqB,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,mBAAmB,+DAAwB,aAAa,+DAAwB;AACxd,oCAAoC,+DAAwB,GAAG,+HAA+H;AAC9L,QAAQ,wDAAiB,yEAAyE,+BAA+B,sEAAsE,0BAA0B,kFAAkF,wBAAwB,sFAAsF,6BAA6B,8FAA8F,4CAA4C,wFAAwF,4CAA4C,gGAAgG,wCAAwC,4FAA4F,wCAAwC,oFAAoF,yCAAyC,kFAAkF,wCAAwC;AAC/sC,MAAM;AACN,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,8FAA8F,aAAa,0BAA0B,aAAa,gEAAyB;AAC9L;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa,IAAI,kEAA2B,6dAA6d;AACzgB,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,4BAA4B,QAAQ,kDAAW,EAAE,8DAAuB,wJAAwJ,iFAA4B,IAAI,oBAAoB;AAC3R,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,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,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iBAAiB,iDAAU,GAAG,8CAAO,IAAI,uDAAQ,KAAK,8CAAO,IAAI,qDAAM;AACvE,IAAI,iDAAU;AACd;AACA,QAAQ,qDAAU;AAClB,QAAQ,oDAAS;AACjB,QAAQ,iDAAM;AACd,QAAQ,8EAAmB;AAC3B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,8DAAuB;AAChG,2CAA2C,+DAAwB,GAAG,6BAA6B;;AAEnG;AACA,yFAAyF,qBAAqB;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;A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xB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB,YAAY,6DAAsB;AAC3D,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,mCAAmC,kDAAW,EAAE,qDAAc,EAAE,qDAAc,yCAAyC;AAC9H,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,+BAA+B,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AAChG,QAAQ,4DAAiB;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,IAAI;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA,kCAAkC,sEAAU;AAC5C;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;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,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,sCAAsC,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,uBAAuB,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,qBAAqB,+DAAwB,CAAC,4DAAwB;AACvV,yCAAyC,+DAAwB,GAAG,wHAAwH;AAC5L,QAAQ,yDAAkB,CAAC,oFAAuB;AAClD,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,aAAa,wEAAiC,mTAAmT;AACxW,QAAQ,4DAAqB;AAC7B,QAAQ,oDAAa;AACrB,QAAQ,uDAAgB;AACxB,QAAQ,oDAAa;AACrB,QAAQ,0DAAmB;AAC3B,MAAM;AACN,QAAQ,wDAAiB,YAAY,6DAAsB;AAC3D,QAAQ,uDAAgB;AACxB,QAAQ,gEAAyB;AACjC,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB,iRAAiR,6DAAsB;AAChU,QAAQ,uDAAgB;AACxB,QAAQ,gEAAyB;AACjC,OAAO,eAAe,qDAAc,EAAE,oFAA8B,2CAA2C,yFAAoC,qBAAqB;AACxK,iDAAU;AACV,IAAI,wDAAS,CAAC,oFAAuB,IAAI,eAAe;AACxD,IAAI,iDAAU,gBAAgB,oFAAuB;AACrD;AACA,sBAAsB,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AACvF;AACA,QAAQ,iDAAM;AACd;AACA,QAAQ,4DAAiB;AACzB;;AAEA;AACA,+FAA+F,qBAAqB;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,qCAAqC,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB;AAC1O,wCAAwC,+DAAwB,GAAG,4IAA4I;AAC/M,QAAQ,yDAAkB;AAC1B,OAAO,aAAa,wEAAiC,gFAAgF;AACrI,QAAQ,oDAAa;AACrB,MAAM;AACN,QAAQ,gEAAyB;AACjC,OAAO,wCAAwC;AAC/C,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,qBAAqB,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AACtF,QAAQ,4DAAiB;AACzB;AACA;;AAEA;AACA,yEAAyE,qBAAqB;AAC9F;AACA;AACA;AACA;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;AACR;AACA;AACA;AACA,+BAA+B,sBAAsB,GAAG,sBAAsB,GAAG,2BAA2B;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,iCAAiC,sDAAsD;AACvF;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,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,0CAA0C,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,uBAAuB,+DAAwB;AACxS,6CAA6C,+DAAwB,GAAG,4JAA4J;AACpO,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,wBAAwB,aAAa,wEAAiC,qTAAqT;AAC9Y,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,8GAA8G,oCAAoC;AAC3K,QAAQ,0DAAmB;AAC3B,QAAQ,uDAAgB;AACxB,MAAM;AACN,oBAAoB,yDAAkB;AACtC,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,eAAe,qFAA4B,kDAAkD,0EAAsB,yCAAyC;AACnK,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,GAAG,iDAAU,uBAAuB,8EAAmB;AAC3F,QAAQ,4DAAiB;AACzB;AACA;AACA;;AAEA;AACA,IAAI,0DAAY;AAChB,IAAI,yEAAY;AAChB,IAAI,uEAAW;AACf,IAAI,+EAAe;AACnB,IAAI,8EAAkB;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,qDAAqD;AACrD,iCAAiC,8DAAuB,GAAG,mBAAmB;AAC9E,iCAAiC,8DAAuB,GAAG,mCAAmC;;AAE9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,uCAAuC,+DAAwB,iBAAiB,+DAAwB,oBAAoB,+DAAwB,CAAC,8EAA0B;AACtP,0CAA0C,+DAAwB,GAAG,4JAA4J;AACjO,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,oTAAoT,gnCAAgnC;AACv7C,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,eAAe,kDAAW,EAAE,qDAAc,wBAAwB,qDAAc,4BAA4B,8DAAuB,iDAAiD;AAC3L,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,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,uBAAuB,iDAAU,GAAG,iDAAU;AAC9C;AACA,QAAQ,8EAAmB;AAC3B;;AAEA;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,IAAI,QAAQ;AACpE,4CAA4C,uDAAM,IAAI,MAAM;AAC5D;AACA;AACA,SAAS;AACT,4CAA4C,uDAAM,IAAI,MAAM;AAC5D;AACA;AACA,SAAS;AACT,4CAA4C,uDAAM,IAAI,MAAM;AAC5D;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,sCAAsC,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB;AAChL,yCAAyC,+DAAwB,GAAG,+EAA+E,oBAAoB,aAAa,gDAAgD;AACpO,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,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,sBAAsB,iDAAU,GAAG,iDAAU,uBAAuB,qDAAU;AAC9E;AACA;;AAEA,wBAAwB,OAAO;AAC/B,0BAA0B,eAAe;AACzC,0BAA0B,eAAe;AACzC,0BAA0B,QAAQ;AAClC,uBAAuB,eAAe;AACtC,6CAA6C,OAAO;AACpD;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,2DAA2D,cAAc;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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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ACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,wDAAS,aAAa,cAAc;AACxC,IAAI,iDAAU,gBAAgB,qDAAU;AACxC;AACA,iDAAU;AACV,IAAI,wDAAS,eAAe,oBAAoB,sDAAW,EAAE;AAC7D,IAAI,iDAAU,gBAAgB,sDAAW;AACzC;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,sBAAsB,iDAAU,GAAG,iDAAU;AAC7C;AACA,QAAQ,8EAAmB;AAC3B;AACA;;AAEA;AACA;AACA,yBAAyB,8CAA8C;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,YAAY,SAAS,gBAAgB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,6BAA6B,8BAA8B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,oCAAoC,sDAAe;AACpH,wCAAwC,gEAAyB,GAAG,kDAAkD,qCAAqC;AAC3J,oBAAoB,iDAAU,GAAG,iDAAU;AAC3C;;AAEA;AACA;AACA,iCAAiC,yBAAyB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,sCAAsC,+DAAwB,sBAAsB,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,qBAAqB,+DAAwB;AACpR,yCAAyC,+DAAwB,GAAG,6HAA6H;AACjM,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB,WAAW,sDAAW;AAChD,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,kFAAkF;AACzF,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,wLAAwL,aAAa,gEAAyB;AACjP;AACA;AACA,YAAY,kEAA2B,83BAA83B;AACr6B,qBAAqB,8DAAuB;AAC5C,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,6EAA6E,2DAAoB,QAAQ,YAAY,yDAAkB,KAAK,YAAY,yDAAkB,KAAK,sCAAsC,8FAA8F,2CAA2C;AACvX,QAAQ,uDAAgB;AACxB,QAAQ,0DAAmB;AAC3B,QAAQ,wDAAiB,8EAA8E,oEAA6B;AACpI,QAAQ,wDAAiB,8EAA8E,oEAA6B;AACpI,MAAM;AACN,QAAQ,wDAAiB,YAAY,6DAAsB;AAC3D,QAAQ,yDAAkB;AAC1B,OAAO,4BAA4B,QAAQ,qDAAc,EAAE,8DAAuB,gCAAgC,kDAAW,6LAA6L,oBAAoB;AAC9U,iDAAU;AACV,IAAI,0DAAW;AACf,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;AACd;AACA,iDAAU;AACV,IAAI,wDAAS,aAAa,cAAc;AACxC,IAAI,iDAAU,gBAAgB,qDAAU;AACxC;AACA,iDAAU;AACV,IAAI,wDAAS,eAAe,oBAAoB,sDAAW,EAAE;AAC7D,IAAI,iDAAU,gBAAgB,sDAAW;AACzC;AACA,sBAAsB,iDAAU,GAAG,iDAAU;AAC7C,QAAQ,8EAAmB;AAC3B;AACA;AACA;;AAEA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B,wBAAwB,WAAW;AACnC;AACA,0BAA0B,mBAAmB;AAC7C;AACA;AACA,sBAAsB,mBAAmB;AACzC,yBAAyB,WAAW;AACpC;AACA;AACA,2BAA2B,WAAW;AACtC,uBAAuB,WAAW;AAClC,oBAAoB,mBAAmB;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,+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,6BAA6B,0EAAc;AAC3C;AACA;AACA;AACA;AACA;AACA,6BAA6B,0EAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sEAAU;AACvC;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA,mCAAmC,KAAK;AACxC;AACA;AACA;AACA;AACA,uBAAuB,KAAK;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,gBAAgB,sCAAsC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,eAAe;AAC/B;AACA,uDAAuD,IAAI;AAC3D;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;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;AACA;AACA;AACA,2CAA2C,mBAAmB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;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,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,+CAAY;AAClD,4BAA4B,2CAAK;AACjC,4BAA4B,2CAAK;AACjC,2BAA2B,2CAAK;AAChC,qDAAqD,oDAAG,IAAI,mBAAmB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,GAAG,uDAAM,IAAI,mBAAmB,uCAAuC,0DAAS,sDAAsD,oDAAG,0BAA0B,qEAAqE,IAAI,oDAAG,mCAAmC,oDAAG,yBAAyB,0DAAS,2BAA2B,oDAAG,cAAc,0DAAS,kBAAkB,oDAAG;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ACA;AACA;AACA;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,0DAAS,6BAA6B,oDAAG,yBAAyB,oDAAG,IAAI,OAAO;AACvK;AACA;AACA,CAAC;AACD;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,SAAS;AACT;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,0BAA0B,kBAAkB;AAC5C;AACA;AACA;AACA,SAAS;AACT,4CAA4C,uDAAM;AAClD;AACA,4CAA4C,uDAAM;AAClD;AACA,sEAAsE,KAAK;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,yEAAyE,wCAAwC,+DAAwB,CAAC,8EAAyB,MAAM,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,yBAAyB,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,CAAC,8EAA0B;AACvZ,2CAA2C,+DAAwB,GAAG,+JAA+J;AACrO,QAAQ,wDAAiB,4EAA4E,uBAAuB;AAC5H,MAAM;AACN,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,wCAAwC;AAC3D,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,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,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,wBAAwB,iDAAU,GAAG,8CAAO,IAAI,mDAAI;AACpD,IAAI,iDAAU,uBAAuB,8EAAkB;AACvD,QAAQ,qDAAU;AAClB;AACA,QAAQ,iDAAM;AACd,QAAQ,4DAAiB;AACzB,QAAQ,8EAAmB;AAC3B;;AAEA;AACA,0EAA0E,wBAAwB;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,wBAAwB;AACnD;AACA,mCAAmC,uDAAY;AAC/C;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,oCAAoC,4EAAY;AAChD;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,mFAAmF,6CAA6C,+DAAwB,oBAAoB,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,iDAAa;AAC3S,gDAAgD,+DAAwB,GAAG,8KAA8K;AACzP,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,gBAAgB,aAAa,oCAAoC,aAAa,kEAA2B,GAAG;AAC/H,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,6BAA6B,iDAAU,GAAG,iDAAU;AACpD,QAAQ,qDAAU;AAClB,QAAQ,oDAAS;AACjB,QAAQ,iDAAM;AACd;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,cAAc;AACnB;AACA;AACA,+CAA+C;AAC/C;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,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE,2EAA2E;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,+CAA+C,+DAAwB,oBAAo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,QAAQ,wDAAiB;AACzB,OAAO,4BAA4B,sCAAsC,kDAAW,EAAE,qFAA4B,qCAAqC,oBAAoB;AAC3K,iDAAU;AACV,IAAI,0DAAW;AACf,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,0BAA0B,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AAC3F;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iGAAiG,oDAAoD,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB;AAC3O,uDAAuD,+DAAwB,GAAG,wGAAwG,8BAA8B;AACxN,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,oCAAoC,iDAAU,GAAG,iDAAU,uBAAuB,qDAAU;AAC5F,QAAQ,oDAAS;AACjB;;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,wBAAwB;AACxB,wBAAwB,oEAAI;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,cAAc,GAAG,MAAM;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,OAAO;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,6CAA6C,+DAAwB,CAAC,8E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AAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,+BAA+B,iDAAU,GAAG,iDAAU;AACtD,QAAQ,8EAAmB;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uEAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,kDAAkD,+DAAwB,CAAC,qFAA4B;AACpM,qDAAqD,+DAAwB,GAAG,mGAAmG,sDAAsD;AACzO,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,kCAAkC,iDAAU,GAAG,iDAAU,uBAAuB,qFAAqB;AACrG;;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,+DAA+D;AAC/D,sCAAsC,8DAAuB,GAAG,wBAAwB;AACxF,sCAAsC,8DAAuB,GAAG,qDAAqD;;AAErH;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,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,cAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,iBAAiB;AACrD;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,qEAAqE,sCAAsC,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,oDAAgB;AAC1O,yCAAyC,+DAAwB,GAAG,4HAA4H;AAChM,QAAQ,yDAAkB;AAC1B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,kFAAkF;AACzF,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,sNAAsN,aAAa,8DAA8D,aAAa,kEAA2B,2qBAA2qB;AACvgC,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,QAAQ,wDAAiB;AACzB,MAAM;AACN,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,eAAe,qDAAc,EAAE,kDAAW,EAAE,qDAAc,qBAAqB;AACtF,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,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,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;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;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,wDAAS,kBAAkB,eAAe;AAC9C,IAAI,iDAAU,gBAAgB,qDAAU;AACxC;AACA,sBAAsB,iDAAU,GAAG,iDAAU,uBAAuB,qDAAU;AAC9E,QAAQ,iDAAM;AACd,QAAQ,oDAAS;AACjB;;AAEA;AACA;AACA,iDAAiD,2CAA2C;AAC5F;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,6BAA6B,8BAA8B;AAC3D;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,2CAA2C;AAC1E,8BAA8B;AAC9B,aAAa;AACb;AACA,+GAA+G,QAAQ;AACvH;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,2EAA2E,yCAAyC,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,qBAAqB,+DAAwB,CAAC,wEAAmB,GAAG,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,4DAAwB;AAC5Y,4CAA4C,+DAA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;AAC7B,QAAQ,wDAAiB,4GAA4G,gCAAgC;AACrK,QAAQ,0DAAmB;AAC3B,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,2DAA2D;AAClE,0BAA0B,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AAC3F;AACA,QAAQ,oDAAS;AACjB;;AAEA;AACA;AACA;AACA,yBAAyB,8CAA8C;AACvE;AACA;AACA,8CAA8C,oCAAoC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,6BAA6B,8BAA8B;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,6EAA6E,0CAA0C,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,qBAAqB,+DAAwB,CAAC,4DAAwB;AAC3Q,6CAA6C,+DAAwB,GAAG,uFAAuF,wEAAiC,6IAA6I;AAC7U,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,4GAA4G,4BAA4B;AACjK,QAAQ,0DAAmB;AAC3B,MAAM;AACN,QAAQ,wDAAiB;AACzB,OAAO,2DAA2D;AAClE,0BAA0B,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AAC3F;AACA,QAAQ,4DAAiB;AACzB;;AAEA;AACA;AACA;AACA,kCAAkC,8CAA8C;AAChF;AACA,8CAA8C,oCAAoC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,6BAA6B,8BAA8B;AAC3D;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,8CAA8C,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,CAAC,qDAAiB;AACnO,iDAAiD,+DAAwB,GAAG,8FAA8F,sFAAsF,aAAa,wCAAwC,aAAa,wEAAiC,yTAAyT;AAC5pB,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,0HAA0H,0CAA0C,+GAA+G,0BAA0B,2GAA2G,wBAAwB;AACzc,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,MAAM;AACN,QAAQ,wDAAiB;AACzB,OAAO,4BAA4B,yEAAyE,kDAAW,uDAAuD,oBAAoB;AAClM,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,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,8BAA8B,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AAC/F,QAAQ,qDAAU;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+CAAY;AACpC;AACA,8BAA8B,oEAAQ;AACtC;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,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,6EAA6E,0CAA0C,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,iDAAa;AACtP,6CAA6C,+DAAwB,GAAG,2FAA2F,uEAAuE;AAC1O,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,0BAA0B,iDAAU,GAAG,iDAAU,uBAAuB,qDAAU;AAClF,QAAQ,oDAAS;AACjB,QAAQ,iDAAM;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,qDAAI;AACtC;AACA;AACA,uFAAuF,+CAA+C,+DAAwB,qBAAqB,+DAAwB,CAAC,iDAAa;AACzN,kDAAkD,+DAAwB,GAAG,gLAAgL;AAC7P,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,oHAAoH;AAC3H,QAAQ,6DAAsB;AAC9B,QAAQ,0DAAmB;AAC3B,OAAO,oBAAoB;AAC3B,iDAAU;AACV,IAAI,8DAAe,4BAA4B,mBAAmB;AAClE,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA,+BAA+B,iDAAU,GAAG,iDAAU;AACtD,QAAQ,iDAAM;AACd;;AAEA;AACA;AACA;AACA,yBAAyB,8CAA8C;AACvE;AACA;AACA,8CAA8C,oCAAoC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,6BAA6B,8BAA8B;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,+EAA+E,2CAA2C,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,qBAAqB,+DAAwB,CAAC,4DAAwB;AAC9Q,8CAA8C,+DAAwB,GAAG,yFAAyF,wEAAiC,8IAA8I;AACjV,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,6GAA6G,4BAA4B;AAClK,QAAQ,0DAAmB;AAC3B,MAAM;AACN,QAAQ,wDAAiB;AACzB,OAAO,2DAA2D;AAClE,2BAA2B,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AAC5F;AACA,QAAQ,4DAAiB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D,sCAAsC,8DAAuB,GAAG,wBAAwB;AACxF,sCAAsC,8DAAuB,GAAG,WAAW,0DAAY,sBAAsB;;AAE7G;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;AACA,uDAAuD;AACvD,kCAAkC,8DAAuB,GAAG,oBAAoB;AAChF,kCAAkC,8DAAuB,GAAG,mCAAmC;;AAE/F;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,qCAAqC;AACtF;AACA;AACA,yBAAyB;AACzB,sBAAsB;AACtB,sBAAsB;AACtB,oBAAoB;AACpB,mBAAmB;AACnB;AACA;AACA,6BAA6B,uCAAuC;AACpE,+BAA+B,yCAAyC;AACxE,+BAA+B,yCAAyC;AACxE,6BAA6B,uCAAuC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,yCAAyC,+DAAwB,oBAAoB,+DAAwB;AACxL,4CAA4C,+DAAwB,GAAG,8JAA8J;AACrO,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,aAAa,gEAAyB;AAC7C;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,wEAAiC,qFAAqF,oBAAoB;AACtJ,iDAAU;AACV,IAAI,2DAAY,0BAA0B,eAAe;AACzD,IAAI,iDAAU;AACd;AACA,oDAAoD,iDAAU,GAAG,8CAAO,IAAI,uDAAQ,KAAK,8CAAO,IAAI,mDAAI,KAAK,8CAAO,IAAI,uDAAQ,KAAK,8CAAO,IAAI,uDAAQ;AACxJ,IAAI,iDAAU;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,sBAAsB;AACtB,sBAAsB;AACtB,oBAAoB;AACpB,mBAAmB;AACnB;AACA;AACA,qDAAqD,wBAAwB;AAC7E,iCAAiC,wBAAwB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,kCAAkC;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,0CAA0C,+DAAwB,oBAAoB,+DAAwB;AAC3L,6CAA6C,+DAAwB,GAAG,iKAAiK;AACzO,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,YAAY,gCAAgC,aAAa,gEAAyB;AACzF;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,wEAAiC,sFAAsF,oBAAoB;AACvJ,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY,0BAA0B,eAAe;AACzD,IAAI,iDAAU;AACd;AACA,sDAAsD,iDAAU,GAAG,8CAAO,IAAI,uDAAQ,KAAK,8CAAO,IAAI,mDAAI,KAAK,8CAAO,IAAI,uDAAQ,KAAK,8CAAO,IAAI,uDAAQ;AAC1J,IAAI,iDAAU;AACd;;AAEA;AACA;AACA;AACA,8BAA8B,0CAA0C;AACxE;AACA,4CAA4C,gCAAgC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,kCAAkC;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;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,aAAa;AACb;AACA;AACA;AACA,0BAA0B,sEAAU;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,6CAA6C,+DAAwB,oBAAoB,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,iDAAa;AAC3S,gDAAgD,+DAAwB,GAAG,8KAA8K;AACzP,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,0DAA0D;AAC7E,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,6BAA6B,iDAAU,GAAG,iDAAU;AACpD,QAAQ,qDAAU;AAClB,QAAQ,oDAAS;AACjB,QAAQ,iDAAM;AACd;;AAEA;AACA;AACA,sBAAsB,oBAAoB;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,6BAA6B;AAC7B;AACA;AACA;AACA,2BAA2B;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,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,SAAS;AACT;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,+BAA+B;AAC/B;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;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,SAAS;AACT;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,yCAAyC,8BAA8B;AACvE;AACA,aAAa;AACb;AACA,sDAAsD,2CAA2C;AACjG,yDAAyD,oGAAoG;AAC7J,aAAa;AACb;AACA;AACA;AACA,mEAAmE,qCAAqC,+DAAwB,kBAAkB,+DAAwB,iBAAiB,+DAAwB,6BAA6B,+DAAwB,eAAe,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,oBAAoB,+DAAwB,oBAAoB,+DAAwB,wBAAwB,+DAAwB,qBAAqB,+DAAwB;AAC5pB,wCAAwC,+DAAwB,GAAG,iFAAiF,onBAAonB,aAAa,kEAA2B,6iJAA6iJ;AAC71K,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,4BAA4B,QAAQ,kDAAW,uBAAuB,qDAAc,uCAAuC,qDAAc,EAAE,qDAAc,kDAAkD,8DAAuB,EAAE,iFAA4B,IAAI,oBAAoB;AAC/R,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,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;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,qBAAqB,iDAAU,GAAG,iDAAU;AAC5C;AACA;AACA;AACA,QAAQ,8EAAmB;AAC3B,QAAQ,iDAAM;AACd,QAAQ,oDAAS;AACjB,QAAQ,qDAAU;AAClB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,gCAAgC,+DAAwB,eAAe,+DAAwB,aAAa,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB;AACnP,mCAAmC,+DAAwB,GAAG,uIAAuI;AACrM,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,8LAA8L,aAAa,kEAA2B,2oCAA2oC;AACp4C,QAAQ,qEAA8B;AACtC,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,mEAA4B;AACpC,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB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;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAS;AACrB;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;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,aAAa;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA,oBAAoB,UAAU;AAC9B;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;AACA,uEAAuE,8DAAuB;AAC9F,0CAA0C,+DAAwB,GAAG,sCAAsC,wEAAwE;AACnL,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,0CAA0C,qDAAqD,wFAAwF,mEAA4B,+DAA+D;AAC7U,6CAA6C,+DAAwB,GAAG,0CAA0C,wEAAiC,GAAG;;AAEtJ;AACA;AACA,qDAAqD,iCAAiC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,2CAA2C,+DAAwB,iBAAiB,+DAAwB;AAC3L,8CAA8C,+DAAwB,GAAG,6FAA6F,8DAA8D,aAAa,wEAAiC,GAAG;AACrR,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,2BAA2B,iDAAU,GAAG,iDAAU;AAClD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,iCAAiC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4BAA4B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,2CAA2C,+DAAwB,iBAAiB,+DAAwB;AAC3L,8CAA8C,+DAAwB,GAAG,6FAA6F,kEAAkE,aAAa,wEAAiC,GAAG;AACzR,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,2BAA2B,iDAAU,GAAG,iDAAU;AAClD;;AAEA;AACA;AACA,+CAA+C,iCAAiC;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4BAA4B;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,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA;AACA,qEAAqE,uEAAW;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,yCAAyC,+DAAwB,iBAAiB,+DAAwB,2BAA2B,+DAAwB,CAAC,4DAAwB;AACjQ,4CAA4C,+DAAwB,GAAG,yFAAyF,gEAAgE,aAAa,wEAAiC,GAAG;AACjR,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,yBAAyB,iDAAU,GAAG,iDAAU;AAChD;AACA,QAAQ,4DAAiB;AACzB;;AAEA;AACA;AACA,0CAA0C,mEAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,wCAAwC,gDAAgD;AACxF,WAAW,oEAAQ;AACnB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,kBAAkB,YAAY;AAC9B;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,oBAAoB,YAAY;AAChC,gBAAgB,QAAQ;AACxB;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,iBAAiB,qDAAqD;AACtE;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,yEAAyE,wCAAwC,+DAAwB,iBAAiB,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB;AACtO,2CAA2C,+DAAwB,GAAG,uFAAuF,gGAAgG,aAAa,wEAAiC,GAAG;AAC9S,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,wBAAwB,iDAAU,GAAG,iDAAU,sCAAsC,4DAAiB;AACtG;;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,gCAAgC,wCAAwC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,aAAa;AACzB;AACA;AACA,YAAY,yBAAyB;AACrC;AACA,YAAY,WAAW;AACvB;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD,gCAAgC,8DAAuB,GAAG,kBAAkB;AAC5E,gCAAgC,8DAAuB,GAAG;AAC1D,YAAY,0DAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAkB;AAC9B;AACA,YAAY;;AAEZ,0DAA0D,yFAAwB;AAClF;AACA,sDAAsD,qCAAqC,gDAAgD,8EAA8E,mEAA4B,qDAAqD;AAC1S,wCAAwC,+DAAwB,GAAG,6EAA6E,wEAAiC,iFAAiF,oBAAoB;;AAEtR;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,sDAAsD;AACxI;AACA,sDAAsD,UAAU,UAAU;AAC1E,mCAAmC,WAAW,MAAM;AACpD;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,2FAA0B;AACxF;AACA;AACA;AACA;AACA,uEAAuE,uCAAuC,+DAAwB,CAAC,sDAAkB;AACzJ,0CAA0C,+DAAwB,GAAG,sFAAsF,wEAAiC,GAAG;AAC/L,uBAAuB,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AACvD,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,wBAAwB;AAC9F;AACA;AACA;AACA,8DAA8D,aAAa,GAAG,eAAe;AAC7F;AACA;AACA;AACA,8DAA8D,aAAa,GAAG,eAAe;AAC7F;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,sBAAsB,cAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oBAAoB;AACjD,oCAAoC,yBAAyB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B;AACpD;AACA;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,wBAAwB;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,wBAAwB;AACjG;AACA,8CAA8C,mFAAkB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8GAA8G,wBAAwB;AACtI;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,cAAc,oBAAoB;AAClC;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;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,SAAS;AACT;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,6CAA6C,qDAAI;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,qDAAqD,yBAAyB;AAC9E,SAAS;AACT;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,oEAAoE,qDAAI;AACxE;AACA,yCAAyC,sDAAK;AAC9C;AACA;AACA,SAAS,MAAM;AACf;AACA;AACA,uDAAuD,+BAA+B,+DAAwB,cAAc,+DAAwB,kBAAkB,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,qDAAiB;AACzP,kCAAkC,+DAAwB,GAAG,+HAA+H;AAC5L,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,YAAY,sCAAsC,aAAa,wEAAiC,2EAA2E,oBAAoB;AACtM,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,2DAAY,uBAAuB,eAAe;AACtD,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY,yBAAyB,eAAe;AACxD,IAAI,iDAAU;AACd;AACA,eAAe,iDAAU,GAAG,iDAAU;AACtC;AACA,QAAQ,iDAAM;AACd,QAAQ,qDAAU;AAClB;;AAEA;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D;AACA,gBAAgB,gCAAgC;AAChD,yBAAyB,wBAAwB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,oEAAM;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,sCAAsC,+DAAwB,cAAc,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,CAAC,iDAAa;AACtU,yCAAyC,+DAAwB,GAAG,yJAAyJ;AAC7N,QAAQ,wDAAiB,0EAA0E,6BAA6B;AAChI,MAAM;AACN,QAAQ,yDAAkB;AAC1B,OAAO,aAAa,wEAAiC,GAAG;AACxD,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,sBAAsB,iDAAU,GAAG,iDAAU;AAC7C,QAAQ,qDAAU;AAClB,QAAQ,oDAAS;AACjB,QAAQ,8EAAmB;AAC3B,QAAQ,iDAAM;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wCAAwC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wBAAwB;AACpC;AACA;AACA,YAAY,yBAAyB;AACrC;AACA,YAAY,WAAW;AACvB;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,+BAA+B,8DAAuB,GAAG,iBAAiB;AAC1E,+BAA+B,8DAAuB,GAAG;;AAEzD;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,WAAW,mEAAO,aAAa,8BAA8B;AAC7D;AACA;AACA,2EAA2E,0BAA0B;AACrG;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,+EAAS;AACjB,YAAY,kEAAM;AAClB;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,2DAA2D,iCAAiC,+DAAwB,gBAAgB,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,CAAC,iDAAa;AAChO,oCAAoC,+DAAwB,GAAG,qIAAqI;AACpM,QAAQ,4DAAqB,WAAW,4EAAU;AAClD,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,YAAY,sRAAsR,4EAA4E,oBAAoB;AACzY,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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;AACb,KAAK,iBAAiB,UAAU,MAAM,sDAAkB,EAAE,IAAI,UAAU;AACxE,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA,+BAA+B,iEAAsB;AACrD;AACA;AACA;AACA,oBAAoB,8EAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC,sEAAW;AAC5C;AACA,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;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA2B,wBAAwB,aAAa,IAAI,WAAW,IAAI;;AAEnF;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,iCAAiC,EAAE,YAAY,UAAU;;AAEzD;AACA,gCAAgC,EAAE,YAAY,eAAe;;AAE7D;AACA,iDAAiD,EAAE,YAAY,oBAAoB;;AAEnF;AACA,6CAA6C,EAAE,YAAY,gBAAgB;;AAE3E;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA2B,EAAE,YAAY,eAAe;;AAExD;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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AkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,0DAAe;AACjC;AACA,SAAS;AACT,kBAAkB,0DAAe;AACjC;AACA,SAAS;AACT,kBAAkB,0DAAe;AACjC;AACA,SAAS;AACT,kBAAkB,0DAAe;AACjC;AACA,SAAS;AACT,kBAAkB,0DAAe;AACjC;AACA,SAAS;AACT,kBAAkB,0DAAe;AACjC;AACA,SAAS;AACT,kBAAkB,0DAAe;AACjC;AACA,SAAS;AACT,kBAAkB,oDAAS;AAC3B,qCAAqC,eAAe;AACpD,SAAS;AACT,kBAAkB,oDAAS;AAC3B,+BAA+B,eAAe;AAC9C,SAAS;AACT,kBAAkB,oDAAS;AAC3B,iCAAiC,cAAc;AAC/C,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,KAAK,iBAAiB,UAAU;AAChC,sBAAsB,iDAAM;AAC5B;AACA,aAAa,GAAG,IAAI,sBAAsB,IAAI,iCAAiC,IAAI,sBAAsB,IAAI,qBAAqB,IAAI,MAAM,iDAAa,EAAE,IAAI,MAAM,oDAAgB,EAAE,IAAI,yBAAyB,IAAI,qBAAqB,IAAI,mBAAmB,IAAI,6BAA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B,UAAU,MAAM,8EAA0B,EAAE,IAAI,UAAU;AAChF,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,8EAA0B,EAAE,IAAI,yBAAyB,IAAI,IAAI;AACvG,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,YAAY,IAAI;AACtC,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;;;;AAIhB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;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,aAAa;AACb,KAAK,iBAAiB,UAAU,qBAAqB,IAAI,MAAM,8EAA0B,EAAE,IAAI,IAAI;AACnG,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU;AAChC,sBAAsB,+CAAI;AAC1B,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vB,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,uDAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,uDAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,uDAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,uDAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,uDAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,uDAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,uDAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,uDAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,uDAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,uDAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;;AAEhB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA,iCAAiC,yEAA8B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,8EAA0B,EAAE,IAAI,2BAA2B,IAAI,MAAM,4DAAwB,EAAE,IAAI,yBAAyB,IAAI,UAAU;AAChL,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA,iCAAiC,yEAA8B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AA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kB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAS;AAC3B,+BAA+B,cAAc;AAC7C,SAAS;AACT,kBAAkB,oDAAS;AAC3B,iCAAiC,oBAAoB,sDAAW,EAAE;AAClE,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;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,6BAA6B;AAC7B;AACA,0EAA0E,qBAAqB;AAC/F;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,mEAAmE,qBAAqB;AACxF;AACA;AACA,+FAA+F,yBAAyB;AACxH;AACA;AACA;AACA,2DAA2D,eAAe;AAC1E;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;A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SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;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,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,8EAA0B,EAAE,IAAI,IAAI;AAC1E,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;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,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,8EAA0B,EAAE,IAAI,IAAI;AAC1E,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAA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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;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,+DAA+D,wCAAwC;AACvG,kCAAkC,wCAAwC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,yBAAyB,wBAAwB;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;AACA,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,qDAAqD,yBAAyB,wBAAwB;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,sBAAsB,IAAI,qBAAqB,IAAI,iCAAiC,IAAI,mBAAmB,IAAI,MAAM,8EAA0B,EAAE,IAAI,MAAM,iDAAa,EAAE,IAAI,MAAM,oDAAgB,EAAE,IAAI,MAAM,qDAAiB,EAAE,IAAI,wBAAwB,IAAI,wBAAwB,IAAI,4BAA4B,IAAI,yBAAyB,IAAI,yBAAyB,IAAI,IAAI;AAC7Z,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,2DAA2D,iDAAiD;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,kBAAkB;AACtE;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,mBAAmB,IAAI,iBAAiB,IAAI,MAAM,8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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,cAAc,GAAG,qBAAqB;AACrE,uCAAuC,cAAc,GAAG,gBAAgB;AACxE;AACA;AACA;AACA,uCAAuC,yBAAyB;AAChE,+CAA+C,oBAAoB;AACnE;AACA;AACA;AACA,+BAA+B,cAAc,GAAG,cAAc;AAC9D,uCAAuC,cAAc,GAAG,SAAS;AACjE;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;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,mCAAmC,qCAAqC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,wCAAwC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sCAAsC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,gCAAgC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,gCAAgC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;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,YAAY,0BAA0B;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,QAAQ,oDAAS;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,WAAW;AACpE;AACA;AACA;AACA;AACA,mEAAmE,sBAAsB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,QAAQ;AACzD;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8BAA8B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,wDAAwD,oBAAoB;AAC5E;AACA;AACA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA,wDAAwD,KAAK;AAC7D;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;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,yCAAyC,+DAAwB,CAAC,sDAAkB;AAC/J,4CAA4C,+DAAwB,GAAG,iFAAiF;AACxJ,yBAAyB,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AACzD,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,sBAAsB;AAChF;AACA;AACA;AACA;AACA;AACA,gFAAgF,sBAAsB;AACtG;AACA;AACA,4BAA4B;AAC5B,2BAA2B;AAC3B,2BAA2B;AAC3B,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA,2DAA2D,gCAAgC;AAC3F;AACA;AACA;AACA;AACA,2DAA2D,gCAAgC;AAC3F;AACA;AACA;AACA;AACA,wDAAwD,gCAAgC;AACxF;AACA;AACA;AACA;AACA;AACA,2BAA2B,gCAAgC;AAC3D;AACA;AACA;AACA;AACA,qEAAqE,8BAA8B;AACnG;AACA;AACA;AACA,mFAAmF,yBAAyB;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY,IAAI;AAC3C;AACA;AACA;AACA,0BAA0B,uDAAY,IAAI;AAC1C;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA,iCAAiC,8CAAY;AAC7C;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;AA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AAe;AAC1D,IAAI,iDAAU;AACd;;AAEA;AACA;AACA;AACA,2DAA2D,yBAAyB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oEAAI,GAAG;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,4BAA4B;AACpG;AACA;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,WAAW;AAC/B;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,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,QAAQ;AACR;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,aAAa;AACb;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,+BAA+B;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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mFAAmB;AAChC;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;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,0DAAS,OAAO,+CAAQ,WAAW,0DAAS,MAAM,0DAAS,CAAC,4CAAK;AACpK;AACA;AACA;AACA;AACA,aAAa;AACb;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,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,qCAAqC,oEAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,6DAA6D,kCAAkC,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,CAAC,mDAAe,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,CAAC,qDAAiB;AACnX,qCAAqC,+DAAwB,GAAG,2GAA2G;AAC3K,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AA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A2C,oEAAI,GAAG;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,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,aAAa,4DAA4D;AAC3H;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,iBAAiB;AACjB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0EAAU;AACtB;AACA;AACA;AACA,qDAAqD,oDAAI;AACzD;AACA,aAAa;AACb;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,+BAA+B,eAAe,IAAI,cAAc;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,0BAA0B;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,0BAA0B,mDAAmD;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,aAAa,mFAAmB;AAChC;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,qCAAqC,oEAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,uEAAuE,uCAAuC,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,CAAC,mDAAe,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,CAAC,qDAAiB;AAClY,0CAA0C,+DAAwB,GAAG,0HAA0H;AAC/L,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,YAAY,gBAAgB,6CAA6C,gEAAyB;AACzG,YAAY,8EAAmB;AAC/B,cAAc,SAAS,sEAAW,iCAAiC;AACnE,cAAc,sBAAsB,6DAAiB,eAAe,yDAAU,gCAAgC;AAC9G,cAAc,SAAS,sEAAU,eAAe,yDAAU;AAC1D,YAAY,wEAAiC,EAAE,kEAA2B,8CAA8C,aAAa;AACrI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,usBAAusB,8DAA8D;AAC3wB,QAAQ,qEAA8B;AACtC,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB;AACzB,QAAQ,4DAAqB;AAC7B,QAAQ,uDAAgB;AACxB,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,wFAAwF,oDAAoD,uFAAuF,iDAAiD,6FAA6F,oDAAoD;AAC9b,QAAQ,0DAAmB;AAC3B,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,yFAAyF,oDAAoD,wFAAwF,iDAAiD,8FAA8F,oDAAoD;AACjc,QAAQ,0DAAmB;AAC3B,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,6FAA6F,6BAA6B;AACnJ,QAAQ,0DAAmB;AAC3B,QAAQ,mEAA4B;AACpC,MAAM;AACN,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,wDAAiB,8BAA8B,6DAAsB;AAC7E,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,wDAAiB;AACzB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,wDAAiB;AACzB,QAAQ,yDAAkB;AAC1B,OAAO,4BAA4B,+CAA+C,yFAAoC,EAAE,kDAAW,wBAAwB,8EAAyB,EAAE,iFAA4B,IAAI,oBAAoB;AAC1O,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,wDAAS,sBAAsB,cAAc;AACjD,IAAI,iDAAU,gBAAgB,qDAAU;AACxC;AACA,iDAAU;AACV,IAAI,wDAAS,oBAAoB,cAAc;AAC/C,IAAI,iDAAU,gBAAgB,qDAAU;AACxC;AACA,gDAAgD,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AACjH,QAAQ,mDAAQ;AAChB,QAAQ,oDAAS;AACjB,QAAQ,iDAAM;AACd,QAAQ,4DAAiB;AACzB,QAAQ,qDAAU;AAClB;;AAEA;AACA;AACA;AACA,2DAA2D,yBAAyB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oEAAI,GAAG;AACvC;AACA,qEAAqE,yBAAyB;AAC9F;AACA;AACA;AACA,mFAAmF,yBAAyB;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY,IAAI;AAC3C;AACA;AACA;AACA,0BAA0B,uDAAY,IAAI;AAC1C;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA,yCAAyC,8CAAY;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4EAAY;AAC5B;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4EAAY;AAC5B;AACA;AACA;AACA,iBAAiB;AACjB;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;AACA;AACA;AACA;AACA;AACA;AACA;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,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,kBAAkB,qDAAI;AACtB,0BAA0B,KAAK;AAC/B;AACA,SAAS;AACT,yCAAyC,qDAAS;AAClD,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,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,aAAa;AACb;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;AACA;AACA,6DAA6D,kCAAkC,+D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U;AAClB,QAAQ,iDAAM;AACd;;AAEA;AACA;AACA,uFAAuF,2BAA2B;AAClH;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,2BAA2B,2BAA2B;AACtD;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,iBAAiB;AACjB;AACA,gBAAgB,mFAAmB;AACnC,0CAA0C,+CAAS;AACnD,2BAA2B,6DAAY;AACvC;AACA;AACA,qCAAqC,+CAAS;AAC9C;AACA,SAAS;AACT,yCAAyC,qDAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,mBAAmB;AAC7D;AACA;AACA,gCAAgC,oDAAI;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,kCAAkC,mBAAmB;AACrD;AACA;AACA,sCAAsC,aAAa;AACnD;AACA;AACA;AACA;AACA;AACA,4BAA4B,4EAAY,wBAAwB,4EAAY;AAC5E;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,YAAY,4EAAY;AACxB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,YAAY,4EAAY;AACxB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iEAAiE,oCAAoC,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,CAAC,mDAAe,GAAG,+DAAwB,CAAC,8DAAG;AAClW,uCAAuC,+DAAwB,GAAG,wJAAwJ;AAC1N,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,sCAAsC,aAAa,4BAA4B,aAAa,gEAAyB;AACxI,yBAAyB,6DAAiB;AAC1C,6BAA6B,yDAAU;AACvC;AACA,aAAa;AACb,yBAAyB,sEAAU;AACnC,6BAA6B,yDAAU;AACvC,aAAa,IAAI,kEAA2B,GAAG;AAC/C,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,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,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,0CAA0C,iDAAU,GAAG,8CAAO,IAAI,uDAAQ,KAAK,8CAAO,IAAI,qDAAM,CAAC,8DAAG;AACpG,IAAI,iDAAU,uBAAuB,oDAAS;AAC9C,QAAQ,qDAAU;AAClB,QAAQ,iDAAM;AACd,QAAQ,4DAAiB;AACzB,QAAQ,mDAAQ;AAChB;;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;;AAEA;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,YAAY,6BAA6B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,UAAU,aAAa,UAAU;AACvE;AACA,0BAA0B,YAAY,EAAE,cAAc;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;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,qCAAqC,UAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wCAAwC;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,iCAAiC;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oEAAI,GAAG;AACvC;AACA,6EAA6E,iCAAiC;AAC9G;AACA;AACA;AACA,2FAA2F,iCAAiC;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kCAAkC;AAC7D;AACA;AACA;AACA;AACA,2BAA2B,kCAAkC;AAC7D;AACA;AACA;AACA;AACA,2BAA2B,wCAAwC;AACnE;AACA;AACA;AACA;AACA,2BAA2B,oCAAoC;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,2BAA2B,gCAAgC;AAC3D;AACA;AACA;AACA,wEAAwE,iCAAiC;AACzG;AACA,+BAA+B,uDAAY;AAC3C;AACA,gFAAgF,iCAAiC;AACjH;AACA,2BAA2B,uDAAY;AACvC;AACA,4EAA4E,iCAAiC;AAC7G;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,kBAAkB,kDAAkD;AACpE,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,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA;AACA,gBAAgB,4EAAY;AAC5B;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4EAAY;AAC5B;AACA;AACA;AACA,iBAAiB;AACjB;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,QAAQ,0EAAe;AACvB;AACA;AACA;AACA;AACA,uBAAuB,gCAAgC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mCAAmC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mCAAmC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mCAAmC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,KAAK;AAC/B;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yCAAyC,qDAAS;AAClD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,+BAA+B;AACnD,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;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,cAAc,oDAAoD;AAClE;AACA;AACA;AACA;AACA,oBAAoB,WAAW;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,2CAA2C,SAAS,EAAE,MAAM,EAAE,SAAS;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,aAAa,wDAAS;AACtB;AACA;AACA;AACA,gFAAgF,cAAc,MAAM,aAAa;AACjH;AACA;AACA;AACA,YAAY,wDAAS;AACrB,8FAA8F,uBAAuB;AACrH;AACA;AACA;AACA,0BAA0B,sBAAsB;AAChD;AACA;AACA;AACA;AACA;AACA,oBAAoB,wDAAS;AAC7B;AACA,4CAA4C,MAAM,eAAe,uBAAuB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,0CAA0C,+DAAwB,CAAC,sEAAkB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,CAAC,mDAAe,GAAG,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,CAAC,qDAAiB;AACzb,6CAA6C,+DAAwB,GAAG,mIAAmI;AAC3M,QAAQ,yDAAkB;AAC1B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,sFAAsF;AAC7F,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,gfAAgf,aAAa,8DAA8D,gDAAgD,gEAAyB;AACvpB,YAAY,8EAAmB;AAC/B,cAAc,SAAS,sEAAW,oCAAoC;AACtE,cAAc,SAAS,6DAAiB,e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iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yGAAyG,wDAAwD,+DAAwB,CAAC,8EAA0B;AACpN,2DAA2D,+DAAwB,GAAG,wGAAwG,gEAAyB;AACvN;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,wEAAiC,oGAAoG,oBAAoB;AACrK,kFAAkF,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AACnJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gCAAgC;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,yBAAyB,UAAU,WAAW,WAAW,YAAY;AACrE;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;;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,gBAAgB,2BAA2B;AAC3C;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,UAAU,OAAO;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C,UAAU,OAAO;AACjB;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,UAAU,OAAO;AACjB;AACA;AACA;AACA;AACA,CAAC;;AAED;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oEAAoE,2BAA2B;AAC5G;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,SAAS;AACT;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,SAAS;AACT;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,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4BAA4B;AAC5C;AACA;AACA,iCAAiC,2BAA2B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,6CAA6C;AAC7D;AACA;AACA,iCAAiC,2BAA2B;AAC5D;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA,iCAAiC,+BAA+B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,2DAA2D;AAC3D,qCAAqC,gEAAyB,GAAG,+CAA+C,kCAAkC;;AAElJ;AACA;AACA;AACA;AACA,kEAAkE,gCAAgC;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oEAAI,GAAG;AACvC;AACA,4EAA4E,gCAAgC;AAC5G;AACA;AACA;AACA,0FAA0F,gCAAgC;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,6BAA6B;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kCAAkC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY,IAAI;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uDAAY,IAAI;AAC1C;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,uCAAuC,0BAA0B;AACjE,iBAAiB;AACjB;AACA,gBAAgB,4EAAY;AAC5B;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4EAAY;AAC5B;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,QAAQ,0EAAe;AACvB;AACA;AACA;AACA;AACA;AACA,uBAAuB,kCAAkC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kCAAkC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kCAAkC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,6BAA6B;AACnG;AACA;AACA,sCAAsC;AACtC;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,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,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,+BAA+B;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,uCAAuC,yEAAS;AAChD;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU;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,gBAAgB,wDAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,yCAAyC,+DAAwB,kBAAkB,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,mDAAe,GAAG,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,CAAC,8DAAG;AAC3Z,4CAA4C,+DAAwB,GAAG,gIAAgI;AACvM,QAAQ,yDAAkB;AAC1B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,qFAAqF;AAC5F,QAAQ,wDAAiB,6EAA6E,kCAAkC,8EAA8E,kCAAkC;AACxP,MAAM;AACN,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,sYAAsY,aAAa,8DAA8D,+CAA+C,gEAAyB;AAC5iB;AACA;AACA;AACA,yBAAyB,6DAAiB;AAC1C,6BAA6B,yDAAU;AACvC,aAAa;AACb;AACA;AACA,yBAAyB,yDAAa;AACtC,6BAA6B,yDAAU;AACvC,aAAa;AACb;AACA,yBAAyB,sEAAU;AACnC,6BAA6B,yDAAU;AACvC;AACA,YAAY,kEAA2B,2TAA2T;AAClW,QAAQ,uDAAgB;AACxB,MAAM;AACN,QAAQ,wDAAiB,mIAAmI,6DAAsB;AAClL,QAAQ,yDAAkB;AAC1B,OAAO,eAAe,yFAAoC,qBAAqB;AAC/E,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,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,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,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;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,wDAAS,YAAY,cAAc;AACvC,IAAI,iDAAU,gBAAgB,qDAAU;AACxC;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,oDAAoD,iDAAU,GAAG,8CAAO,IAAI,uDAAQ,KAAK,8CAAO,IAAI,qDAAM,CAAC,8DAAG;AAC9G,IAAI,iDAAU;AACd,QAAQ,oDAAS;AACjB,QAAQ,qDAAU;AAClB,QAAQ,iDAAM;AACd,QAAQ,mDAAQ;AAChB,QAAQ,4DAAiB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE,0CAA0C,+DAAwB,GAAG,iIAAiI;AACtM,QAAQ,yDAAkB;AAC1B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,mFAAmF;AAC1F,QAAQ,wDAAiB;AACzB,OAAO,YAAY,4IAA4I,aAAa,kEAA2B,gaAAga;AACvmB,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB,+EAA+E,oEAA6B;AACrI,MAAM;AACN,QAAQ,wDAAiB;AACzB,OAAO,eAAe,qDAAc,EAAE,qDAAc,EAAE,sDAAe,EAAE,0DAAmB,EAAE,8DAAuB,qBAAqB;AACxI,iDAAU;AACV,IAAI,0DAAW;AACf,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,2DAAY;AAChB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE,yCAAyC,8DAAuB,GAAG,2BAA2B;AAC9F,yCAAyC,8DAAuB,GAAG,WAAW,0DAAY,EAAE,2EAAe,EAAE,wEAAY,EAAE,8EAAkB,GAAG,2EAAe;AAC/J,QAAQ,wEAAY;AACpB,QAAQ,8EAAkB,GAAG;;AAE7B;AACA;AACA;AACA,6BAA6B,4EAAiB;AAC9C;AACA,kDAAkD,iCAAiC,4CAA4C,sEAAsE,mEAA4B,6CAA6C;AAC9Q,oCAAoC,+DAAwB,GAAG,gCAAgC,0EAA0E,aAAa,wEAAiC,GAAG;AAC1N,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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F,mDAAmD,+DAAwB,CAAC,8EAA0B;AACrM,sDAAsD,+DAAwB,GAAG,0GAA0G,gEAAyB;AACpN;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,wEAAiC,GAAG;AAChD,wEAAwE,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AACzI;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,gDAAgD,+DAAwB,CAAC,8EAA0B;AAC5L,mDAAmD,+DAAwB,GAAG,wFAAwF,gEAAyB;AAC/L;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,wEAAiC,4FAA4F,oBAAoB;AAC7J,kEAAkE,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AACnI;;AAEA;AACA,gCAAgC,wCAAwC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA,YAAY,yBAAyB;AACrC,YAAY,0BAA0B;AACtC;AACA,YAAY,WAAW;AACvB;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD,kCAAkC,8DAAuB,GAAG,oBAAoB;AAChF,kCAAkC,8DAAuB,GAAG,WAAW,0DAAY,yBAAyB;;AAE5G;AACA;AACA;AACA,kCAAkC,4EAAiB;AACnD;AACA,uDAAuD,sCAAsC,iDAAiD,gFAAgF,mEAA4B,uDAAuD;AACjT,yCAAyC,+DAAwB,GAAG,qCAAqC,oEAAoE,aAAa,wEAAiC,GAAG;AAC9N,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yGAAyG,wDAAwD,+DAAwB,CAAC,8EAA0B;AACpN,2DAA2D,+DAAwB,GAAG,+GAA+G,gEAAyB;AAC9N;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,wEAAiC,GAAG;AAChD,kFAAkF,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AACnJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mGAAmG,qDAAqD,+DAAwB,CAAC,8EAA0B;AAC3M,wDAAwD,+DAAwB,GAAG,kGAAkG,gEAAyB;AAC9M;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,wEAAiC,iGAAiG,oBAAoB;AAClK,4EAA4E,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AAC7I;;AAEA;AACA,gCAAgC,wCAAwC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA,YAAY,yBAAyB;AACrC,YAAY,0BAA0B;AACtC;AACA,YAAY,WAAW;AACvB;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE,uCAAuC,8DAAuB,GAAG,yBAAyB;AAC1F,uCAAuC,8DAAuB,GAAG,WAAW,0DAAY,yBAAyB;;AAEjH;AACA;AACA;AACA,uBAAuB,4EAAiB;AACxC;AACA,4CAA4C,2BAA2B,sCAAsC,0DAA0D,mEAA4B,iCAAiC;AACpO,8BAA8B,+DAAwB,GAAG,0BAA0B,sBAAsB,aAAa,wEAAiC,GAAG;AAC1J,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F,mDAAmD,+DAAwB,CAAC,8EAA0B;AACrM,sDAAsD,+DAAwB,GAAG,0GAA0G,gEAAyB;AACpN;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,wEAAiC,GAAG;AAChD,wEAAwE,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AACzI;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,gDAAgD,+DAAwB,CAAC,8EAA0B;AAC5L,mDAAmD,+DAAwB,GAAG,wFAAwF,gEAAyB;AAC/L;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,wEAAiC,4FAA4F,oBAAoB;AAC7J,kEAAkE,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AACnI;;AAEA;AACA,gCAAgC,wCAAwC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA,YAAY,yBAAyB;AACrC;AACA,YAAY,WAAW;AACvB;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD,kCAAkC,8DAAuB,GAAG,oBAAoB;AAChF,kCAAkC,8DAAuB,GAAG,WAAW,0DAAY,EAAE,wEAAY,EAAE,8EAAkB,IAAI;;AAEzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+GAA+G,2DAA2D,+DAAwB,CAAC,8EAA0B;AAC7N,8DAA8D,+DAAwB,GAAG,0HAA0H,gEAAyB;AAC5O;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,wEAAiC,GAAG;AAChD,wFAAwF,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AACzJ;;AAEA;AACA,gCAAgC,wCAAwC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uBAAuB;AACnC;AACA;AACA,YAAY,yBAAyB;AACrC;AACA,YAAY,WAAW;AACvB;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE,0CAA0C,8DAAuB,GAAG,4BAA4B;AAChG,0CAA0C,8DAAuB,GAAG,WAAW,0DAAY,EAAE,wEAAY,IAAI;;AAE7G;AACA,gCAAgC,wCAAwC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC;AACA;AACA,YAAY,yBAAyB;AACrC;AACA,YAAY,WAAW;AACvB;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE,yCAAyC,8DAAuB,GAAG,2BAA2B;AAC9F,yCAAyC,8DAAuB,GAAG,WAAW,0DAAY,EAAE,wEAAY,IAAI;;AAE5G;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4EAAoB;AAC/C,wBAAwB,sEAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qEAAqE,4BAA4B;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,iDAAiD,+DAAwB,CAAC,sDAAkB;AACvL,oDAAoD,+DAAwB,GAAG,2FAA2F;AAC1K,iCAAiC,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AACjE,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA,qEAAqE,4BAA4B;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,iDAAiD,+DAAwB,CAAC,sDAAkB;AACvL,oDAAoD,+DAAwB,GAAG,2FAA2F;AAC1K,iCAAiC,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AACjE,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oEAAI,GAAG;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,yEAAyE,4BAA4B;AACrG;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA,uEAAuE,4BAA4B;AACnG;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA,8BAA8B,uDAAY;AAC1C;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,mBAAmB;AAC9D,qBAAqB;AACrB;AACA,oBAAoB,4EAAY;AAChC;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,oBAAoB,4EAAY;AAChC;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4EAAY;AAC5B;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0EAAe;AACvB;AACA;AACA;AACA;AACA,uBAAuB,4BAA4B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4BAA4B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4BAA4B;AACnD;AACA;AACA;AACA;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,2EAA2E,KAAK;AAChF;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,qCAAqC,oEAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;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,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,0BAA0B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,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,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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,mCAAmC,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,mDAAe,GAAG,+DAAwB,CAAC,qDAAiB;AACtX,sCAAsC,+DAAwB,GAAG,sIAAsI;AACvM,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,wDAAwD;AAC/D,QAAQ,yDAAkB;AAC1B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,+EAA+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;AAC7E,6CAA6C,+DAAwB,GAAG,wLAAwL;AAChQ,QAAQ,yDAAkB;AAC1B,OAAO,qFAAqF,oBAAoB;AAChH,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD,kCAAkC,8DAAuB,GAAG,oBAAoB;AAChF,kCAAkC,8DAAuB,GAAG;;AAE5D;AACA,gCAAgC,wCAAwC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA;AACA,YAAY,yBAAyB;AACrC;AACA,YAAY,WAAW;AACvB;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD,mCAAmC,8DAAuB,GAAG,qBAAqB;AAClF,mCAAmC,8DAAuB,GAAG,WAAW,0DAAY,EAAE,wEAAY,iBAAiB,wEAAY,GAAG;;AAElI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,6BAA6B,uDAAY;AACzC,iCAAiC,8CAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4EAAY;AAC5B;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,2DAA2D,8DAAuB;AAClF,oCAAoC,+DAAwB,GAAG,0EAA0E;AACzI,QAAQ,yDAAkB;AAC1B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,6EAA6E;AACpF,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,wIAAwI,aAAa,oDAAoD;AAC5N,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,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,wDAAS,YAAY,cAAc;AACvC,IAAI,iDAAU,gBAAgB,qDAAU;AACxC;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,2BAA2B;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oEAAI,GAAG;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,gCAAgC;AAChC,0BAA0B;AAC1B,0BAA0B;AAC1B,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,mBAAmB;AAC9D,qBAAqB;AACrB;AACA,oBAAoB,4EAAY;AAChC;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,oBAAoB,4EAAY;AAChC;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,QAAQ,0EAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6BAA6B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6BAA6B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6BAA6B;AACpD;AACA;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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,qCAAqC,oEAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,yCAAyC,qDAAS;AAClD,YAAY,mFAAmB;AAC/B,sCAAsC,+CAAS;AAC/C,uBAAuB,6DAAY;AACnC;AACA;AACA;AACA;AACA;AACA,2EAA2E,KAAK;AAChF;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,mBAAmB;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,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,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;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,mBAAmB;AACxE;AACA;AACA,sCAAsC,aAAa;AACnD;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,iEAAiE,oCAAoC,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,mDAAe,GAAG,+DAAwB,CAAC,qDAAiB;AACzX,uCAAuC,+DAAwB,GAAG,wIAAwI;AAC1M,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,0NAA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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E,6CAA6C,gEAAyB,GAAG,uDAAuD,0CAA0C;;AAE1K;AACA;AACA;AACA,qCAAqC,4EAAgB;AACrD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC,4EAAgB;AACpD;;AAEA;AACA;AACA;AACA,mCAAmC,4EAAgB;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,4DAA4D,OAAO;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oEAAU;AAClC;AACA;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,kBAAkB,wEAAa;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,aAAa;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;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,8CAA8C,OAAO,2DAA2D,OAAO;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F,wBAAwB;AACpH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAK,GAAG,MAAM,EAAE,KAAK,GAAG,MAAM,EAAE,SAAS,GAAG,SAAS;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS,GAAG,SAAS;AAClC;AACA,WAAW,KAAK,EAAE,qBAAqB;AACvC;AACA;;AAEA;AACA;AACA;AACA,sFAAsF,8EAAmB;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F,mDAAmD,sDAAe,CAAC,sEAAW,GAAG,sDAAe,CAAC,yEAAqB,MAAM,sDAAe,CAAC,8DAAG,MAAM,sDAAe;AACnQ,uDAAuD,gEAAyB,GAAG,iEAAiE,oDAAoD;AACxM,mCAAmC,iDAAU;AAC7C,IAAI,8CAAO,IAAI,qDAAM,CAAC,sEAAW;AACjC,IAAI,8CAAO,IAAI,uDAAQ;AACvB,IAAI,8CAAO,IAAI,uDAAQ,KAAK,8CAAO,IAAI,qDAAM,CAAC,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A;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,wBAAwB,kDAAe,GAAG;AAC1C;AACA;AACA;AACA;AACA,gCAAgC,0CAAO;AACvC;AACA;AACA,QAAQ,0EAAe;AACvB,+EAA+E,KAAK;AACpF;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;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,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,gEAAgE,KAAK;AACrE,iEAAiE,KAAK;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,0EAA0E;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,sEAAsE,qBAAqB,MAAM;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,IAAI;AACzD,sDAAsD,KAAK;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,kGAAkG,gBAAgB;AAClH;AACA;AACA;AACA,6EAA6E,2EAA2E;AACxJ;AACA;AACA;AACA;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,wBAAwB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT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AACxC;AACA,oDAAoD,iDAAU,GAAG,iDAAU,uBAAuB,qDAAU;AAC5G,QAAQ,iDAAM;AACd,QAAQ,oDAAS;AACjB,QAAQ,4DAAiB;AACzB,QAAQ,8EAAmB;AAC3B;;AAEA;AACA;AACA;AACA,oFAAoF,8EAAmB;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,kDAAkD,sDAAe,CAAC,sEAAW,GAAG,sDAAe,CAAC,yEAAqB,MAAM,sDAAe,CAAC,8DAAG,MAAM,sDAAe;AAChQ,sDAAsD,gEAAyB,GAAG,gEAAgE,mDAAmD;AACrM,kCAAkC,iDAAU;AAC5C,IAAI,8CAAO,IAAI,qDAAM,CAAC,sEAAW;AACjC,IAAI,8CAAO,IAAI,uDAAQ;AACvB,IAAI,8CAAO,IAAI,uDAAQ,KAAK,8CAAO,IAAI,qDAAM,CAAC,8DAAG;AACjD,IAAI,8CAAO,IAAI,uDAAQ,KAAK,8CAAO,IAAI,qDAAM;AAC7C,IAAI,iDAAU,+BAA+B,yEAAc;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wBAAwB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,6BAA6B;AACvD,8BAA8B,kCAAkC;AAChE;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE,0CAA0C,gEAAyB,GAAG,oDAAoD,uCAAuC;;AAEjK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,WAAW;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,gBAAgB,+BAA+B;AAC/C;AACA,0BAA0B;AAC1B;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,wBAAwB,oEAAI;AAC5B;AACA;AACA;AACA,QAAQ,0EAAe;AACvB,+EAA+E,KAAK;AACpF;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;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,yBAAyB;AACzB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,oDAAI;AAC1C;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,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,qCAAqC,sBAAsB,GAAG,sBAAsB,GAAG,cAAc;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,0EAA0E;AACvJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,wCAAwC,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,uBAAuB,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,CAAC,iDAAa;AACzY,2CAA2C,+DAAwB,GAAG,oJAAoJ;AAC1N,QAAQ,wDAAiB,gFAAgF,mCAAmC,qEAAqE,8BAA8B;AAC/O,MAAM;AACN,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,4KAA4K,aAAa,gGAAgG,8CAA8C,gEAAyB;AACnX;AACA;AACA,yBAAyB,6DAAiB;AAC1C,6BAA6B,yDAAU;AACvC,aAAa;AACb,yBAAyB,sEAAU;AACnC,6BAA6B,yDAAU;AACvC,aAAa;AACb;AACA;AACA;AACA,yBAAyB,8EAAmB;AAC5C;AACA,aAAa;AACb;AACA,yBAAyB,sEAAW;AACpC;AACA;AACA,YAAY,kEAA2B,4CAA4C,aAAa;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,saAAsa,+DAA+D;AAC3e,QAAQ,gEAAyB;AACjC,QAAQ,4DAAqB;AA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Q,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,+DAAwB;AAChC,OAAO,oBAAoB;AAC3B,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,wDAAS,WAAW,MAAM,qDAAU,iBAAiB;AACzD,IAAI,iDAAU,gBAAgB,qDAAU;AACxC;AACA,wCAAwC,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AACzG;;AAEA;AACA;AACA,oEAAoE,kCAAkC;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA;AACA,oCAAoC,uDAAY;AAChD;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD;AACA,mCAAmC;AACnC;AACA,iCAAiC,8CAAY;AAC7C;AACA;AACA,QAAQ,0EAAe;AACvB,oFAAoF,KAAK;AACzF;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yEAAS;AACrB;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,iBAAiB;AACjB,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,6EAA6E;AAC/G;AACA;AACA;AACA;AACA,wDAAwD;AACxD,2CAA2C,sBAAsB;AACjE,4CAA4C,uBAAuB,GAAG;AACtE;AACA;AACA;AACA;AACA;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,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,+EAA+E,2CAA2C,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,0BAA0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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA;AACA,wCAAwC,0CAA0C;AAClF;AACA,oCAAoC,uDAAY;AAChD;AACA;AACA;AACA;AACA,oCAAoC,uDAAY;AAChD;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,mCAAmC;AACnC;AACA;AACA;AACA,iCAAiC,8CAAY;AAC7C;AACA;AACA;AACA,QAAQ,0EAAe;AACvB,oFAAoF,KAAK;AACzF;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,gCAAgC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gCAAgC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gCAAgC;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,iCAAiC,UAAU;AAC3C;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,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,YAAY,uEAAO;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,SAAS;AACT;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uEAAW;AACzC;AACA;AACA;AACA,8BAA8B,oEAAQ;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,6EAA6E;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uEAAO;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,kCAAkC,oDAAI;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,iCAAiC;AACjC,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;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,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,oBAAoB,uEAAO;AAC3B;AACA,uCAAuC,uEAAO;AAC9C;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AAC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ACf,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;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,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,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,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,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;A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qBAAqB;AACzD,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU,gBAAgB,kDAAe;AAC7C;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wCAAwC;AACxE;AACA;AACA;AACA;AACA,iEAAiE;AACjE,uCAAuC,8DAAuB,GAAG,yBAAyB;AAC1F,uCAAuC,8DAAuB,GAAG;AACjE;AACA;AACA,YAAY,0DAAY;AACxB,YAAY,uEAAW;AACvB,YAAY,2EAAe;AAC3B,YAAY;;AAEZ;AACA,kEAAkE,2BAA2B;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sCAAsC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sCAAsC;AAC7D;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,iEAAiE,oCAAoC,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,qDAAiB;AAC3L,uCAAuC,+DAAwB,GAAG,oJAAoJ;AACtN,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,oCAAoC;AACvD,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,oBAAoB,iDAAU,GAAG,iDAAU,uBAAuB,oDAAS;AAC3E,QAAQ,qDAAU;AAClB;;AAEA;AACA,gCAAgC,wCAAwC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iBAAiB;AAC7B;AACA;AACA,YAAY,yBAAyB;AACrC;AACA,YAAY,WAAW;AACvB;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,oCAAoC,8DAAuB,GAAG,sBAAsB;AACpF,oCAAoC,8DAAuB,GAAG,WAAW,0DAAY,IAAI;;AAEzF;AACA,qEAAqE,2BAA2B;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0EAAe;AACvB;AACA;AACA;AACA,uBAAuB,yCAAyC;AAChE;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,uEAAuE,uCAAuC,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,qDAAiB;AACpM,0CAA0C,+DAAwB,GAAG,6JAA6J;AAClO,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,gBAAgB;AACnC,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,uBAAuB,iDAAU,GAAG,iDAAU,uBAAuB,oDAAS,EAAE,qDAAU;AAC1F;;AAEA;AACA,gCAAgC,wCAAwC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA,YAAY,yBAAyB;AACrC;AACA,YAAY,WAAW;AACvB;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE,uCAAuC,8DAAuB,GAAG,yBAAyB;AAC1F,uCAAuC,8DAAuB,GAAG,WAAW,0DAAY,IAAI;;AAE5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,WAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,oCAAoC,+DAAwB,GAAG,mIAAmI;AAClM,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,gBAAgB,qGAAqG;AACxI,QAAQ,6DAAsB;AAC9B,QAAQ,0DAAmB;AAC3B,OAAO,oBAAoB;AAC3B,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD,mCAAmC,+DAAwB,GAAG,gIAAgI;AAC9L,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,gBAAgB,oGAAoG;AACvI,QAAQ,6DAAsB;AAC9B,QAAQ,0DAAmB;AAC3B,OAAO,oBAAoB;AAC3B,iDAAU;AACV,IAAI,oDAAK;AACT,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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,iCAAiC,8CAAY;AAC7C;AACA,QAAQ,0EAAe;AACvB,6EAA6E,KAAK;AAClF;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;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,gDAAgD,qEAAyB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,mFAAmB;AACjF,qEAAqE,4BAA4B;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;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CJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD,kCAAkC,8DAAuB,GAAG,oBAAoB;AAChF,kCAAkC,8DAAuB,GAAG,WAAW,0DAAY,oMAAoM;AACvR,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,sDAAkB;AACxD,sBAAsB,mDAAQ;AAC9B,aAAa,GAAG,IAAI,UAAU;;AAE9B,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,oBAAoB,8EAAmB;AACvC,sBAAsB,SAAS,sEAAW,4BAA4B;AACtE,sBAAsB,sBAAsB,6DAAiB,eAAe,yDAAU,2BAA2B;AACjH,sBAAsB,SAAS,sEAAU,eAAe,yDAAU;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,wCAAwC;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,KAAK,iBAAiB,UAAU,MAAM,8EAA0B,EAAE,IAAI,MAAM,mDAAe,EAAE,IAAI,MAAM,oDAAgB,EAAE,IAAI,MAAM,iDAAa,EAAE,IAAI,MAAM,4DAAwB,EAAE,IAAI,MAAM,qDAAiB,EAAE,IAAI,IAAI;AAC3N,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAk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AAChC;AACA;AACA;AACA,0BAA0B,0DAAY,EAAE,wEAAY;AACpD,aAAa;AACb,KAAK,iBAAiB;AACtB,eAAe,mDAAmD,gEAAyB,mBAAmB,4BAA4B,sDAAsD,yBAAyB,QAAQ,0DAAY,EAAE,wEAAY,kBAAkB,yBAAyB,2BAA2B,wEAAY,2EAA2E,IAAI;AAC5Z,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,qDAAU;AACxB,KAAK,iBAAiB;AACtB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qDAAiB,EAAE,IAAI,MAAM,oDAAgB,EAAE,IAAI,MAAM,8EAA0B,EAAE,IAAI,IAAI;AACnI,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAS;AAC3B,qCAAqC,eAAe;AACpD,SAAS;AACT,kBAAkB,oDAAS;AAC3B,iCAAiC,MAAM,qDAAU,iBAAiB;AAClE,SAAS;AACT,kBAAkB,oDAAS;AAC3B,kCAAkC,MAAM,qDAAU,iBAAiB;AACnE,SAAS;AACT,kBAAkB,oDAAS;AAC3B,2CAA2C,eAAe;AAC1D,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6DAAiB;AAClD,qCAAqC,yDAAU;AAC/C,qBAAqB;AACrB;AACA,iCAAiC,sEAAU;AAC3C,qCAAqC,yDAAU;AAC/C,qBAAqB;AACrB;AACA;AACA,iCAAiC,8EAAmB;AACpD;AACA,qBAAqB;AACrB;AACA,iCAAiC,sEAAW;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,mDAAmD,gDAAgD;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gCAAgC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gCAAgC;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qDAAiB,EAA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/C,qBAAqB;AACrB;AACA,iCAAiC,sEAAU;AAC3C,qCAAqC,yDAAU;AAC/C,qBAAqB;AACrB;AACA;AACA;AACA,iCAAiC,8EAAmB;AACpD;AACA,qBAAqB;AACrB;AACA,iCAAiC,sEAAW;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,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qDAAiB,EAAE,IAAI,8BAA8B,IAAI,MAAM,8EAA0B,EAAE,IAAI,MAAM,4DAAwB,EAAE,IAAI,MAAM,oDAAgB,EAAE,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AAClO,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBA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;AACA;AACA;AACA,8BAA8B,SAAS,EAAE,cAAc;AACvD;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC,QAAQ,0EAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,kCAAkC,gEAAyB,GAAG,+DAA+D,cAAc;AAC3I;AACA;AACA;AACA,+BAA+B,sDAAe,CAAC,oDAAS;AACxD,MAAM,WAAW,sBAAsB;AACvC,8BAA8B,oEAAkB,GAAG,0CAA0C,0BAA0B,0DAAQ,CAAC,oDAAS,KAAK,0CAA0C;AACxL,cAAc,iDAAU,GAAG,iDAAU;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,sBAAsB,IAAI;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,uBAAuB,aAAa,wBAAwB;AAC5D,uBAAuB,+BAA+B,MAAM;AAC5D,uBAAuB,kCAAkC,GAAG;AAC5D,uBAAuB,iCAAiC,IAAI;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,kCAAkC,sDAAe,CAAC,oDAAS;AACxH,sCAAsC,gEAAyB,GAAG,gDAAgD,mCAAmC;AACrJ,kBAAkB,iDAAU,GAAG,8CAAO,IAAI,qDAAM,CAAC,oDAAS;AAC1D,IAAI,iDAAU;AACd;;AAEA;AACA;AACA;AACA;AACA,qCAAqC,8BAA8B;AACnE;AACA;AACA;AACA;AACA,YAAY,mBAAmB;AAC/B,YAAY,uCAAuC;AACnD,YAAY,8BAA8B;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,+CAA+C,2BAA2B,+DAAwB;AAClG,+BAA+B,0DAAmB,GAAG,+CAA+C;AACpG,WAAW,iDAAU,GAAG,iDAAU;AAClC;;AAEA;AACA;AACA,uCAAuC,8BAA8B;AACrE;AACA;AACA;AACA;AACA,aAAa,4BAA4B;AACzC,aAAa,iCAAiC;AAC9C,aAAa,4BAA4B;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,mDAAmD,6BAA6B,+DAAwB;AACxG,iCAAiC,0DAAmB,GAAG,mDAAmD;AAC1G,aAAa,iDAAU,GAAG,iDAAU;AACpC;;AAEA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wCAAwC;AACxE;AACA;AACA;AACA;AACA,mDAAmD;AACnD,gCAAgC,8DAAuB,GAAG,kBAAkB;AAC5E,gCAAgC,8DAAuB,GAAG;AAC1D,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,qDAAU;AACxB;AACA;AACA;AACA,uBAAuB,oDAAS;AAChC,aAAa;AACb,KAAK,iBAAiB,YAAY,UAAU;AAC5C,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,qDAAU;AACxB,KAAK,iBAAiB,UAAU;AAChC,sBAAsB,iDAAM;AAC5B,uBAAuB,oDAAS;AAChC,aAAa,GAAG,IAAI,UAAU;AAC9B,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,+CAAI;AAClB;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,mBAAmB,IAAI,UAAU;AACjE,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,+CAAI;AAClB;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,mBAAmB,IAAI,UAAU;AACjE,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,mDAAQ;AACtB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB;AACtB,eAAe,mDAAmD,gEAAyB,eAAe,uEAAuE,IAAI;;AAErL;AACA;AACA;;AAE4f;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpgB9c;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,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;;;;;;;;;;;;;;;;;;;AChkBmB;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA2B,uCAAI;AAC/B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA2B,uCAAI;AAC/B;;AAEA;AACA;AACA;AACA;;AAEA,4BAA4B;;AAE5B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,0BAA0B,wBAAwB;AAClD;AA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A;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;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;;;;;;;;;;;;;;;;;AC/BzK;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,iBAAiB,uDAAG;AACpB,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,iBAAiB,uDAAe;AAChC;;AAEA;AACA;;AAEe;AACf;AACA;AACA;AACA,sBAAsB,oEAAc;AACpC;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,IAAI,yDAAiB;AACrB,IAAI,uDAAe;AACnB;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACxP0D;;AAE3C,gDAAgD;AAC/D;AACA,2BAA2B,qDAAc;AACzC;;AAEA,oBAAoB,s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G,IAAI,UAAU;;AAE9B;AACA;AACA;;AAEoF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5LpF;AACA;AACA;AACA;AAC+C;AAC4J;AACtG;AACF;AACpD;AACJ;AACiB;AACZ;;AAEhD;AACA;AACA;AACwC;AACe;AACb;;AAE1C,mEAAmE;AACnE,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,gEAAyB;AAC7B;AACA,4DAA4D;AAC5D,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,gEAAyB;AAC7B,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA;AACA,mDAAmD;AACnD,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,gEAAyB;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;;AAEA;AACA,0DAA0D,wBAAwB;AAClF;AACA;AACA;AACA;AACA;AACA,oCAAoC,2CAA2C;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;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,6DAA6D,oEAAI,GAAG;AACpE;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,8DAA8D,sBAAsB;AACpF;AACA;AACA;AACA;AACA,+CAA+C,oEAAI,GAAG;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,iCAAiC,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,iDAAa;AAC3N,oCAAoC,+DAAwB,GAAG,oIAAoI;AACnM,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,cAAc;AACjC,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,iBAAiB,iDAAU,GAAG,iDAAU,uBAAuB,qDAAU,EAAE,oDAAS,EAAE,iDAAM;AAC5F;;AAEA;AACA;AACA;AACA,uBAAuB,2EAAiB;AACxC;AACA,4CAA4C,2BAA2B,sCAAsC,0DAA0D,mEAA4B,iCAAiC;AACpO,8BAA8B,+DAAwB,GAAG,0BAA0B,sBAAsB,aAAa,wEAAiC,GAAG;AAC1J,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,6CAA6C,+DAAwB,CAAC,6EAA0B;AACnL,gDAAgD,+DAAwB,GAAG,oJAAoJ,gEAAyB;AACxP;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,wEAAiC,GAAG;AAChD,4DAA4D,iDAAU,GAAG,iDAAU,uBAAuB,6EAAmB;AAC7H;;AAEA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,0CAA0C,+DAAwB,CAAC,6EAA0B;AAC1K,6CAA6C,+DAAwB,GAAG,mHAAmH,gEAAyB;AACpN;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,wEAAiC,sFAAsF,oBAAoB;AACvJ,sDAAsD,iDAAU,GAAG,iDAAU,uBAAuB,6EAAmB;AACvH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E,4CAA4C,8DAAuB,GAAG,8BAA8B;AACpG,4CAA4C,8DAAuB,GAAG;;AAEtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,4CAAU,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;;AAEA;AACA;AACA,kEAAkE,gCAAgC;AAClG;AACA;AACA;AACA;AACA,sEAAsE,gCAAgC;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uDAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oEAAI,GAAG;AACnC;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,YAAY;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oEAAI,GAAG;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4EAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wDAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,yCAAyC,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,CAAC,6EAA0B;AACpT,4CAA4C,+DAAwB,GAAG,wJAAwJ;AAC/N,QAAQ,4DAAqB,WAAW,sEAAU;AAClD,QAAQ,4DAAqB,WAAW,qDAAS;AACjD,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,qFAAqF;AAC5F,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,8GAA8G,aAAa,kCAAkC,+CAA+C,gEAAyB;AACxP,YAAY,6EAAmB;AAC/B;AACA,yBAAyB,qEAAW;AACpC;AACA;AACA,+EAA+E,YAAY;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+PAA+P,gEAAgE;AACrU,QAAQ,6DAAsB;AAC9B,QAAQ,gEAAyB;AACjC,QAAQ,0DA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AkB;AACtB;AACA;AACA,iDAAiD;AACjD,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,+DAAwB;AAC5B;AACA;AACA,iDAAiD;AACjD,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA,iDAAiD;AACjD,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,0EAA0E,2DAAoB,OAAO,eAAe,2DAAoB,IAAI,uCAAuC;AACxM,IAAI,uDAAgB;AACpB,IAAI,0DAAmB;AACvB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;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;AACA;AACA;AACA,CAAC,gDAAgD;;AAEjD;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;AACA,6DAA6D;AAC7D,sCAAsC,gEAAyB,GAAG,gDAAgD,mCAAmC;AACrJ,kBAAkB,iDAAU,GAAG,iDAAU;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,2CAA2C,+DAAwB,CAAC,sDAAkB;AACrK,8CAA8C,+DAAwB,GAAG,+EAA+E;AACxJ,2BAA2B,iDAAU,GAAG,iDAAU,uBAAuB,sDAAW;AACpF;;AAEA;AACA;AACA,oCAAoC,4BAA4B;AAChE;AACA,gFAAgF,0CAA0C;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,6CAA6C,+DAAwB,CAAC,sDAAkB;AAC3K,gDAAgD,+DAAwB,GAAG,mFAAmF;AAC9J,6BAA6B,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AAC7D,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,SAAS;AAC1C;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,0EAAc,gBAAgB,2EAAe;AACjG;AACA;AACA;AACA,kDAAkD,wEAAY,gBAAgB,0EAAc;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,uEAAW,gBAAgB,yEAAa;AACvF,gBAAgB,qEAAS,gBAAgB,oEAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,cAAc,GAAG,qBAAqB;AACrE,uCAAuC,cAAc,GAAG,gBAAgB;AACxE;AACA;AACA;AACA,uCAAuC,yBAAyB;AAChE,+CAA+C,oBAAoB;AACnE;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;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;AACA;AACA;AACA,6BAA6B,WAAW;AACxC;AACA,oFAAoF,wBAAwB;AAC5G;AACA;AACA;AACA;AACA,2BAA2B,wBAAwB;AACnD;AACA;AACA;AACA;AACA,2BAA2B,wBAAwB;AACnD;AACA;AACA;AACA,wEAAwE,wBAAwB;AAChG;AACA;AACA;AACA,sEAAsE,wBAAwB;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA,iCAAiC,8CAAY,UAAU;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,wBAAwB;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;AACA;AACA;AACA;AACA;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,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,aAAa;AACb;AACA;AACA;AACA;AA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CA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,6BAA6B;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,QAAQ,0EAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4BAA4B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wBAAwB;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,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,8EAA8E;AAC9E;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,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,SAAS;AACT;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,SAAS;AACT;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,iEAAiE,oCAAoC,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,mBAAmB,+DAAwB,CAAC,8EAA0B;AAChP,uCAAuC,+DAAwB,GAAG,yIAAyI;AAC3M,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,yDAAyD;AAChE,QAAQ,yDAAkB;AAC1B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,iFAAiF;AACxF,QAAQ,wDAAiB,wEAAwE,sCAAsC,mEAAmE,gCAAgC,iEAAiE,+BAA+B,6EAA6E,wCAAwC;AAC/b,MAAM;AACN,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,8IAA8I,aAAa,4BAA4B,0CAA0C,gEAAyB;AAC7Q;AACA,YAAY,8EAAmB;AAC/B;AACA,yBAAyB,sEAAW;AACpC;AACA;AACA,YAAY,kEAA2B,kaAAka;AACzc,QAAQ,6DAAsB;AAC9B,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,eAAe,iDAAW,EAAE,oDAAc,4CAA4C;AAC7F,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,IAAI,iDAAU;AACd;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,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,2DAAY,kCAAkC,eAAe;AACjE,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,8DAAe,0BAA0B,mBAAmB;AAChE,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA,iDAAU;AACV,IAAI,8DAAe;AACnB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,oBAAoB,iDAAU,GAAG,iDAAU,uBAAuB,qDAAU;AAC5E;AACA,QAAQ,8EAAmB;AAC3B;;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,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,wCAAwC,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,4DAAwB;AAC3P,2CAA2C,+DAAwB,GAAG,qJAAqJ;AAC3N,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,gQAAgQ,aAAa,8DAA8D,iQAAiQ;AAC/lB,QAAQ,6DAAsB;AAC9B,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,eAAe,iDAAW,qBAAqB;AACtD,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,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;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,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,wBAAwB,iDAAU,GAAG,iDAAU,uBAAuB,qDAAU;AAChF,QAAQ,oDAAS;AACjB,QAAQ,4DAAiB;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uDAAY;AAC5C;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,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,uCAAuC;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,gBAAgB,mCAAmC;AACnD;AACA;AACA;AACA;AACA,SAAS;AACT,YAAY,wDAAS;AACrB;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,kCAAkC,sDAAe,CAAC,iDAAa;AAC5H,sCAAsC,gEAAyB,GAAG,gDAAgD,mCAAmC;AACrJ,kBAAkB,iDAAU,GAAG,iDAAU,uBAAuB,iDAAM;AACtE;;AAEA,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA,kDAAkD,yCAAE,iBAAiB,sDAAK,OAAO,0DAAS;AAC1F;AACA;AACA,UAAU,0DAAS,0BAA0B,oDAAG,IAAI,cAAc;AAClE;AACA;AACA;AACA;AACA,CAAC;AACD;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,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,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;AACA;AACA;AACA;AACA,wDAAwD,oDAAG,mBAAmB,uDAAM,+CAA+C,oDAAG,wDAAwD,oDAAG,8DAA8D,0DAAS,kDAAkD,0DAAS,iDAAiD,oCAAoC;AACxZ;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,SAAS;AACT;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,uEAAuE,uCAAuC,+DAAwB,CAAC,8EAAyB,MAAM,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,mBAAmB,+DAAwB,CAAC,8EAA0B;AACjT,0CAA0C,+DAAwB,GAAG,mJAAmJ;AACxN,QAAQ,wDAAiB,2EAA2E,2BAA2B,0EAA0E,yBAAyB,4EAA4E,0BAA0B,gFAAgF,+BAA+B;AACvb,MAAM;AACN,QAAQ,yDAAkB;AAC1B,QAAQ,wDAAiB;AACzB,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,4CAA4C,iIAAiI;AAChM,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,0EAA0E,8BAA8B;AACjI,QAAQ,0DAAmB;AAC3B,QAAQ,uDAAgB;AACxB,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,0EAA0E,0BAA0B;AAC7H,QAAQ,0DAAmB;AAC3B,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,oBAAoB;AAC3B,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,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,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,uBAAuB,iDAAU,GAAG,8CAAO,IAAI,mDAAI;AACnD,IAAI,iDAAU,uBAAuB,8EAAkB;AACvD,QAAQ,qDAAU;AAClB;AACA,QAAQ,8EAAmB;AAC3B;;AAEA;AACA,6DAA6D,2BAA2B;AACxF;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,kBAAkB,cAAc;AAChC;AACA,KAAK;AACL;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;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,iEAAiE,oCAAoC,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,mBAAmB,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB;AACvT,uCAAuC,+DAAwB,GAAG,yIAAyI;AAC3M,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,yDAAyD;AAChE,QAAQ,yDAAkB;AAC1B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,iFAAiF;AACxF,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,4BAA4B,aAAa,8BAA8B,0CAA0C,gEAAyB;AAC7J;AACA,YAAY,8EAAmB;AAC/B;AACA,yBAAyB,sEAAW;AACpC;AACA;AACA,YAAY,kEAA2B,4PAA4P;AACnS,QAAQ,6DAAsB;AAC9B,QAAQ,0DAAmB;AAC3B,QAAQ,wDAAiB;AACzB,MAAM;AACN,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,eAAe,oDAAc,EAAE,iDAAW,wBAAwB,8EAAyB,qBAAqB;AACvH,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,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;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC,IAAI,iDAAU,uBAAuB,oDAAS;AAC9C;AACA,iDAAU;AACV,IAAI,8DAAe;AACnB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA,oBAAoB,iDAAU,GAAG,8CAAO,IAAI,uDAAQ,KAAK,8CAAO,IAAI,mDAAI,KAAK,8CAAO,IAAI,qDAAM;AAC9F,IAAI,iDAAU,uBAAuB,qDAAU;AAC/C;AACA,QAAQ,8EAAmB;AAC3B,QAAQ,oDAAS;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,iBAAiB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,sCAAsC,+DAAwB,CAAC,sDAAkB;AACtJ,yCAAyC,+DAAwB,GAAG,qEAAqE;AACzI,sBAAsB,iDAAU,GAAG,iDAAU,uBAAuB,sDAAW;AAC/E;;AAEA;AACA;AACA;AACA;AACA,sEAAsE,yCAAyC;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,oCAAoC,+DAAwB,CAAC,sDAAkB;AAChJ,uCAAuC,+DAAwB,GAAG,iEAAiE;AACnI,oBAAoB,iDAAU,GAAG,iDAAU,uBAAuB,sDAAW;AAC7E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,uBAAuB;AACxE;AACA;AACA;AACA;AACA,+BAA+B,oDAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE,0CAA0C,+DAAwB,GAAG,mJAAmJ;AACxN,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,YAAY,sJAAsJ,kHAAkH,oBAAoB;AAC/S,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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B,4EAAgB;AAC1C;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,UAAU,uCAAuC;AACjD,UAAU;AACV;AACA;AACA;AACA;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;AACA;AACA,KAAK;AACL;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,yBAAyB,uEAAW;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,cAAc,qCAAqC;AACnD,aAAa,iEAAsB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,cAAc,wCAAwC;AACtD;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,wBAAwB,uEAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0EAAc,EAAE,2EAAe;AAChE,iCAAiC,wEAAY,EAAE,0EAAc;AAC7D;AACA,iCAAiC,2EAAe,EAAE,0EAAc;AAChE,iCAAiC,0EAAc,EAAE,wEAAY;AAC7D;AACA,iBAAiB,qEAAS;AAC1B;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;AACA;AACA;AACA,6DAA6D,kCAAkC,sDAAe,CAAC,8EAA0B,GAAG,sDAAe,CAAC,iDAAa;AACzK,sCAAsC,gEAAyB,GAAG,gDAAgD,mCAAmC;AACrJ,kBAAkB,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AACnF,QAAQ,iDAAM;AACd;;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;;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;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,yCAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;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,cAAc,qBAAqB;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,aAAa,mFAAmB;AAChC;AACA;AACA;AACA,qCAAqC,8BAA8B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,wDAAwD;AACnG;AACA;AACA,2CAA2C,uDAAuD;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,YAAY,4EAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,qBAAqB;AAChE;AACA;AACA,2CAA2C,oBAAoB;AAC/D;AACA;AACA;AACA;AACA,kDAAkD,oBAAoB;AACtE;AACA;AACA,yDAAyD,gCAAgC,sDAAe,CAAC,iDAAa;AACtH,oCAAoC,gEAAyB,GAAG,8CAA8C,iCAAiC;AAC/I,gBAAgB,iDAAU,GAAG,iDAAU,uBAAuB,iDAAM;AACpE;;AAEA;AACA;AACA;AACA,6BAA6B,4KAA4K;AACzM;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,2FAA2F,iBAAiB;;AAE5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8CAAY;AACpC;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iGAAiG,oDAAoD,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,iBAAiB,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,iDAAa;AAC7T,uDAAuD,+DAAwB,GAAG,gMAAgM;AAClR,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,cAAc,mKAAmK;AACpM,QAAQ,uDAAgB;AACxB,MAAM;AACN,QAAQ,wDAAiB;AACzB,OAAO,eAAe,oDAAc,qBAAqB;AACzD,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,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,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,oCAAoC,iDAAU,GAAG,iDAAU,uBAAuB,qDAAU;AAC5F;AACA,QAAQ,oDAAS;AACjB,QAAQ,iDAAM;AACd;;AAEA;AACA,6DAA6D,2BAA2B;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,2BAA2B;AAC7F;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA;AACA,4BAA4B,uDAAY;AACxC;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA;AACA,wBAAwB,oDAAS;AACjC;AACA,iCAAiC,8CAAY;AAC7C;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,qDAAI;AAC1C;AACA;AACA;AACA,iDAAiD,8CAAY;AAC7D;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;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;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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,GAAG,mDAAmD;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,UAAU,gBAAgB;AAC1F,YAAY,4EAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD,oCAAoC,gEAAyB,GAAG,8CAA8C,iCAAiC;;AAE/I,4BAA4B;AAC5B;AACA,2DAA2D,yBAAyB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,UAAU,kCAAkC;AAC5C,UAAU,yCAAyC;AACnD,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qCAAqC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;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,QAAQ,0EAAe;AACvB,oFAAoF,KAAK;AACzF;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;AACA;AACA;AACA;AACA;AACA;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,qDAAI;AACvC,mCAAmC,+BAA+B;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,6DAA6D,kCAAkC,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,iEAAuB,GAAG,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB;AAC7Q,qCAAqC,+DAAwB,GAAG,mIAAmI;AACnM,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,+EAA+E;AACtF,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AA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AAI,uDAAQ;AACpE,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS,0EAAc;AACvB,SAAS,2EAAe;AACxB,SAAS,wEAAY;AACrB,SAAS,0EAAc;AACvB,SAAS,qEAAS;AAClB,SAAS,oEAAQ;AACjB,SAAS,sEAAU;AACnB,SAAS,sEAAU;AACnB,oCAAoC;AACpC,YAAY,0EAAc;AAC1B,YAAY,2EAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,qCAAqC,uDAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4EAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,iCAAiC,sDAAe,CAAC,8EAA0B,GAAG,sDAAe,CAAC,iDAAa,GAAG,sDAAe,CAAC,4DAAwB;AACjN,qCAAqC,gEAAyB,GAAG,+CAA+C,kCAAkC;AAClJ,iBAAiB,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AAClF,QAAQ,iDAAM;AACd,QAAQ,4DAAiB;AACzB;;AAEA;AACA;AACA,4DAA4D,0BAA0B;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,UAAU,mBAAmB,IAAI,mBAAmB,IAAI;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,2BAA2B,6BAA6B;AACxD;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,qCAAqC,uDAAY;AACjD;AACA,6EAA6E,KAAK;AAClF;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iCAAiC;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,yEAAyE,gCAAgC,oDAAoD,iCAAiC;AAC9L;AACA,yCAAyC,gCAAgC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,sBAAsB;AAChE;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,qBAAqB;AACrB;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,+DAA+D,mCAAmC,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB;AACzQ,sCAAsC,+DAAwB,GAAG,sIAAsI;AACvM,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,gFAAgF;AACvF,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,4LAA4L,aAAa,8DAA8D,yCAAyC,gEAAyB;AAC5V,YAAY,8EAAmB;AAC/B;AACA;AACA,yBAAyB,sEAAW;AACpC;AACA;AACA,YAAY,kEAA2B,6CAA6C,aAAa;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,0bAA0b,0DAA0D;AAC1f,QAAQ,gEAAyB;AACjC,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,MAAM;AACN,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,4BAA4B,iEAAiE,oDAAc,EAAE,iDAAW,EAAE,sFAA2B,IAAI,oBAAoB;AACpL,iDAAU;AACV,IAAI,0DAAW;AACf,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;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,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,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,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,2DAAY,iCAAiC,eAAe;AAChE,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY,kCAAkC,eAAe;AACjE,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY,sCAAsC,eAAe;AACrE,IAAI,iDAAU;AACd;AACA,mBAAmB,iDAAU,GAAG,iDAAU,uBAAuB,oDAAS;AAC1E,QAAQ,qDAAU;AAClB,QAAQ,8EAAmB;AAC3B;AACA;;AAEA;AACA;AACA;AACA,8BAA8B,4EAAiB;AAC/C;AACA,mDAAmD,kCAAkC,6CAA6C,wEAAwE,mEAA4B,+CAA+C;AACrR,qCAAqC,+DAAwB,GAAG,iCAAiC,sBAAsB,aAAa,wEAAiC,GAAG;AACxK,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;;AAEA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,iDAAiD,+DAAwB,CAAC,8EAA0B;AAC/L,oDAAoD,+DAAwB,GAAG,0FAA0F,gEAAyB;AAClM;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,wEAAiC,6FAA6F,oBAAoB;AAC9J,oEAAoE,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AACrI;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iGAAiG,oDAAoD,+DAAwB,CAAC,8EAA0B;AACxM,uDAAuD,+DAAwB,GAAG,4GAA4G,gEAAyB;AACvN;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,wEAAiC,GAAG;AAChD,0EAA0E,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AAC3I;;AAEA;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,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,mCAAmC;AACnC,2BAA2B;AAC3B,2BAA2B;AAC3B,sBAAsB;AACtB,0BAA0B;AAC1B,0BAA0B;AAC1B,wBAAwB;AACxB,uBAAuB;AACvB,wBAAwB;AACxB,0BAA0B;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,UAAU;AAC3C;AACA;AACA,sBAAsB,eAAe;AACrC;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;AA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C/D,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ,0DAAK,GAAG,iDAAiD;AACjE,QAAQ,4DAAO,IAAI,SAAS,aAAa,0DAAK,GAAG,WAAW,OAAO,GAAG;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0DAAK,GAAG,+BAA+B,OAAO,GAAG;AACzD,QAAQ,4DAAO,IAAI,SAAS,aAAa,0DAAK,GAAG,+BAA+B;AAChF;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mEAAmE,iCAAiC;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,8BAA8B;AACzD;AACA;AACA;AACA;AACA,2BAA2B,8BAA8B;AACzD;AACA;AACA;AACA;AACA,2BAA2B,iCAAiC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mCAAmC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iCAAiC;AAC5D;AACA,kCAAkC,uDAAY;AAC9C;AACA;AACA,2BAA2B,iCAAiC;AAC5D;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA,2BAA2B,iCAAiC;AAC5D;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA,2BAA2B,iCAAiC;AAC5D;AACA,4BAA4B,uDAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uDAAY;AAC5C,iCAAiC,8CAAY;AAC7C;AACA,QAAQ,0EAAe;AACvB;AACA;AACA;AACA;AACA,uBAAuB,oCAAoC;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,2EAA2E,KAAK,OAAO,uCAAuC;AAC9H;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,8CAA8C,sEAAU,mBAAmB,sEAAU;AACrF;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;AACA;AACA,uBAAuB,oCAAoC;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,+BAA+B,qDAAI;AACnC;AACA;AACA;AACA;AACA,SAAS;AACT;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,6EAA6E,0CAA0C,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,CAAC,iEAAuB;AAC/V,6CAA6C,+DAAwB,GAAG,2JAA2J;AACnO,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,+DAA+D;AACtE,QAAQ,yDAAkB;AAC1B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,uFAAuF;AAC9F,QAAQ,wDAAiB,sEAAsE,+BAA+B,yEAAyE,gCAAgC;AACvO,MAAM;AACN,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,kKAAkK,aAAa,4FAA4F,gDAAgD,gEAAyB;AACvW,YAAY,8EAAmB;AAC/B;AACA,yBAAyB,sEAAW;AACpC;AACA;AACA,idAAid;AACjd,QAAQ,6DAAsB;AAC9B,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,mFAAmF,mCAAmC;AAC/I,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,4DAAqB;AAC7B,QAAQ,uDAAgB;AACxB,QAAQ,0DAAmB;AAC3B,QAAQ,4DAAqB;AAC7B,QAAQ,0DAAmB;AAC3B,QAAQ,0DAAmB;AAC3B,MAAM;AACN,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,OAAO,eAAe,iDAAW,EAAE,6DAAuB,EAAE,oDAAc,qBAAqB;AAC/F,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,oDAAK;AACT,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,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,2DAAY,iCAAiC,eAAe;AAChE,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,wDAAS,cAAc,cAAc;AACzC,IAAI,iDAAU,gBAAgB,qDAAU;AACxC;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,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,0DAAW;AACf,IAAI,iDAAU;AACd,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,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,0BAA0B,iDAAU,GAAG,iDAAU,uBAAuB,oDAAS;AACjF,QAAQ,qDAAU;AAClB,QAAQ,iDAAM;AACd,QAAQ,8EAAmB;AAC3B,QAAQ,iEAAgB;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,mFAAmB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;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;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kHAAkH,+BAA+B;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;;AAEA;AACA;AACA,4FAA4F,6BAA6B;AACzH;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,+BAA+B,iDAAe;AAC9C,6BAA6B,iDAAe;AAC5C,2BAA2B,yCAAO;AAClC,0BAA0B,yCAAO;AACjC;AACA;AACA;AACA;AACA,+EAA+E,KAAK;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;AACA,SAAS;AACT;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;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,2DAA2D,uBAAuB;AAClF;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,2DAA2D,kBAAkB;AAC7E;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,+BAA+B;AACnD;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,wBAAwB,MAAM;AAC9B;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,wBAAwB,MAAM;AAC9B;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,oBAAoB,cAAc;AAClC,oBAAoB,MAAM,8BAA8B,iCAAiC;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,4BAA4B;AACnE,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,4BAA4B;AAChE,aAAa;AACb;AACA,2BAA2B,2BAA2B;AACtD,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,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,0DAA0D;AACnH;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,iFAAiF,4CAA4C,sDAAe,CAAC,iDAAa,GAAG,sDAAe,CAAC,oDAAgB,GAAG,sDAAe,CAAC,8EAA0B;AAC1O,gDAAgD,gEAAyB,GAAG,0DAA0D,6CAA6C;AACnL,4BAA4B,iDAAU,GAAG,iDAAU,uBAAuB,iDAAM;AAChF,QAAQ,oDAAS;AACjB,QAAQ,8EAAmB;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,0BAA0B;AACtG;AACA;AACA;AACA;AACA,+EAA+E,0BAA0B;AACzG;AACA;AACA;AACA;AACA,sHAAsH,wCAAwC,uFAAuF,+BAA+B;AACpR;AACA;AACA;AACA;AACA;AACA,gHAAgH,wCAAwC,iFAAiF,6BAA6B;AACtQ;AACA;AACA;AACA;AACA,wBAAwB,8CAAY;AACpC,6DAA6D,KAAK;AAClE;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,YAAY;AAChF;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA,uBAAuB,aAAa;AACpC;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,6EAA6E,0CAA0C,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB;AAC9R,6CAA6C,+DAAwB,GAAG,4JAA4J;AACpO,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,oJAAoJ,aAAa,kEAA2B,8TAA8T;AAC7gB,QAAQ,6DAAsB;AAC9B,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,QAAQ,wDAAiB;AACzB,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,4BAA4B,QAAQ,iDAAW,iCAAiC,oDAAc,qCAAqC,oBAAoB;AAC9J,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,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,0DAAW;AACf,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,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,0BAA0B,iDAAU,GAAG,iDAAU,uBAAuB,qDAAU;AAClF,QAAQ,oDAAS;AACjB,QAAQ,8EAAmB;AAC3B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,6BAA6B;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,0BAA0B;AACnF;AACA;AACA;AACA;AACA,qGAAqG,0BAA0B;AAC/H;AACA;AACA;AACA;AACA,2FAA2F,+BAA+B;AAC1H;AACA;AACA;AACA;AACA,yFAAyF,6BAA6B;AACtH;AACA;AACA;AACA;AACA,mGAAmG,0BAA0B;AAC7H;AACA;AACA;AACA;AACA,kJAAkJ,mCAAmC;AACrL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,6BAA6B;AACjH;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA,kFAAkF,6BAA6B;AAC/G;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA,wBAAwB,8CAAY;AACpC;AACA;AACA;AACA;AACA,QAAQ,0EAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,8BAA8B;AAClF;AACA;AACA;AACA;AACA;AACA,kBAAkB,cAAc,KAAK,iBAAiB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4EAAY;AACxB;AACA;AACA,YAAY,4EAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,6DAA6D,KAAK;AAClE;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;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ACf,IAAI,iDAAU;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,gDAAgD,+DAAwB;AACjK,mDAAmD,+DAAwB,GAAG,8KAA8K;AAC5P,QAAQ,yDAAkB;AAC1B,OAAO,mHAAmH;AAC1H,QAAQ,6DAAsB;AAC9B,QAAQ,0DAAmB;AAC3B,OAAO,oBAAoB;AAC3B,iDAAU;AACV,IAAI,0DAAW;AACf,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,gCAAgC,iDAAU,GAAG,iDAAU;AACvD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wCAAwC;AACxE;AACA;AACA;AACA;AACA,uDAAuD;AACvD,kCAAkC,8DAAuB,GAAG,oBAAoB;AAChF,kCAAkC,8DAAuB,GAAG,WAAW,yDAAY,IAAI;;AAEvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wCAAwC;AACxE;AACA;AACA;AACA;AACA,mDAAmD;AACnD,gCAAgC,8DAAuB,GAAG,kBAAkB;AAC5E,gCAAgC,8DAAuB,GAAG,WAAW,yDAAY,IAAI;;AAErF;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,eAAe;AAClD;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA,qEAAqE,sCAAsC,+DAAwB,iBAAiB,+DAAwB,CAAC,qDAAiB,GAAG,+D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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wCAAwC;AACxE;AACA;AACA;AACA,+BAA+B;AAC/B,mCAAmC;AACnC,sCAAsC;AACtC,0CAA0C;AAC1C,uCAAuC;AACvC;AACA;AACA;AACA,2DAA2D;AAC3D,oCAAoC,8DAAuB,GAAG,sBAAsB;AACpF,oCAAoC,8DAAuB,GAAG,WAAW,yDAAY,IAAI;;AAEzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wCAAwC;AACxE;AACA;AACA;AACA,+BAA+B;AAC/B,mCAAmC;AACnC;AACA;AACA;AACA,2DAA2D;AAC3D,oCAAoC,8DAAuB,GAAG,sBAAsB;AACpF,oCAAoC,8DAAuB,GAAG;AAC9D,YAAY,yDAAY;AACxB,YAAY,2EAAe;AAC3B,YAAY;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0EAAe;AACvB;AACA;AACA,SAAS;AACT;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,eAAe;AAChD;AACA;AACA,sBAAsB,oBAAoB;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,yCAAyC,iBAAiB;AAC1D;AACA;AACA,uCAAuC,eAAe;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,uEAAuE,uCAAuC,+DAAwB,kBAAkB,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,CAAC,iDAAa;AACpP,0CAA0C,+DAAwB,GAAG,iIAAiI;AACtM,QAAQ,yDAAkB;AAC1B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,mFAAmF;AAC1F,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,0NAA0N,aAAa,kEAA2B,o0BAAo0B;AACzlC,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,wEAAwE,uBAAuB;AACxH,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,MAAM;AACN,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,eAAe,iDAAW,EAAE,6DAAuB,EAAE,oDAAc,qBAAqB;AAC/F,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,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU,gBAAgB,sDAAW;AACzC;AACA,iDAAU;AACV,IAAI,wDAAS,eAAe,cAAc;AAC1C,IAAI,iDAAU,gBAAgB,qDAAU;AACxC;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,GAAG,iDAAU;AAC9C,QAAQ,8EAAmB;AAC3B,QAAQ,iDAAM;AACd;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;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,uEAAuE,uCAAuC,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,kBAAkB,+DAAwB,CAAC,qDAAiB;AACvR,0CAA0C,+DAAwB,GAAG,iFAAiF,0QAA0Q,uTAAuT;AACvtB,QAAQ,wDAAiB;AACzB,MAAM;AACN,QAAQ,wDAAiB;AACzB,OAAO,eAAe,oDAAc,wBAAwB,oDAAc,EAAE,oDAAc,qBAAqB;AAC/G,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,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU,gBAAgB,sDAAW;AACzC;AACA,uBAAuB,iDAAU,GAAG,iDAAU,uBAAuB,oDAAS;AAC9E,QAAQ,iDAAM;AACd;AACA,QAAQ,qDAAU;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wCAAwC;AACxE;AACA;AACA;AACA;AACA,yDAAyD;AACzD,mCAAmC,8DAAuB,GAAG,qBAAqB;AAClF,mCAAmC,8DAAuB,GAAG,WAAW,yDAAY,EAAE,mFAAiB,IAAI;;AAE3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,+BAA+B,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB;AACpK,kCAAkC,+DAAwB,GAAG,yIAAyI;AACtM,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,0GAA0G,sYAAsY;AACngB,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,eAAe,iDAAW,EAAE,6DAAuB,EAAE,oDAAc,qBAAqB;AAC/F,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,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,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,eAAe,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AAChF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wCAAwC;AACxE;AACA;AACA;AACA,+BAA+B;AAC/B,kCAAkC;AAClC,iCAAiC;AACjC,+BAA+B;AAC/B;AACA;AACA;AACA,2DAA2D;AAC3D,oCAAoC,8DAAuB,GAAG,sBAAsB;AACpF,oCAAoC,8DAAuB,GAAG,WAAW,yDAAY,EAAE,8EAAkB,IAAI;;AAE7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qDAAqD;AACpE;AACA,eAAe,sDAAsD;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,kDAAkD,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB;AACrO,qDAAqD,+DAAwB,GAAG,uGAAuG,kDAAkD;AACzO,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,kCAAkC,iDAAU,GAAG,iDAAU,uBAAuB,qDAAU;AAC1F,QAAQ,oDAAS;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wCAAwC;AACxE;AACA;AACA;AACA,iCAAiC;AACjC,qCAAqC;AACrC,2CAA2C;AAC3C,yCAAyC;AACzC;AACA;AACA;AACA,+DAA+D;AAC/D,sCAAsC,8DAAuB,GAAG,wBAAwB;AACxF,sCAAsC,8DAAuB,GAAG,WAAW,yDAAY,IAAI;;AAE3F;AACA;AACA;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,iDAAiD,SAAS;AAC1D;AACA;AACA,0BAA0B,0DAA0D;AACpF,0BAA0B,0DAA0D;AACpF,kBAAkB,UAAU,EAAE,SAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,KAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,UAAU;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,SAAS;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gEAAgE,8BAA8B;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;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,uBAAuB,4BAA4B;AACnD;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yEAAS;AACrB;AACA;AACA,YAAY,yEAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AA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CAAkC,8DAAuB,GAAG,+LAA+L;AAC3P,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,qDAAU;AACxB,KAAK,iBAAiB,YAAY,UAAU;AAC5C,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,sDAAkB,EAAE,IAAI,UAAU;AACxE,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,sDAAkB;AACxD,sBAAsB,mDAAQ;AAC9B,aAAa,GAAG,IAAI,UAAU;AAC9B,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,oBAAoB,4DAAO;AAC3B,wBAAwB,0DAAK,aAAa,0DAAK,GAAG,iBAAiB;AACnE,wBAAwB,+DAAU;AAClC,4BAA4B,0DAAK,GAAG,iDAAiD;AACrF,4BAA4B,4DAAO,MAAM,0DAAK,GAAG,QAAQ,2DAAU,EAAE;AACrE;AACA,wBAAwB,+DAAU;AAClC,4BAA4B,0DAAK,GAAG,4BAA4B,2DAAU,EAAE;AAC5E,4BAA4B,4DAAO,MAAM,0DAAK,GAAG,4BAA4B;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F,OAAO;AACjG;AACA;AACA;AACA,gCAAgC,4GAA4G;AAC5I;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;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SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,oBAAoB,4DAAO;AAC3B,wBAAwB,0DAAK,WAAW,0DAAK,GAAG,YAAY;AAC5D,wBAAwB,+DAAU;AAClC,4BAA4B,0DAAK,GAAG,YAAY;AAChD,4BAA4B,4DAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8EAAmB;AACvC;AACA,iCAAiC,sEAAW;AAC5C;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,2DAA2D,cAAc;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,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,8EAA0B,EAAE,IAAI,MAAM,oDAAgB,EAAE,IAAI,MAAM,qDAAiB,EAAE,IAAI,uBAAuB,IAAI,qBAAqB,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AAChN,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB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8D;AAC9D,IAAI,wDAAiB;AACrB,EAAE;AACF,oBAAoB,2DAAoB;AACxC,IAAI,wDAAiB;AACrB;AACA,4BAA4B,SAAS;AACrC;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;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;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA,iBAAiB,0EAAc;AAC/B,iBAAiB,wEAAY;AAC7B;AACA;AACA,iBAAiB,2EAAe;AAChC,iBAAiB,0EAAc;AAC/B;AACA;AACA,iBAAiB,qEAAS;AAC1B;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,wCAAwC,gEAAyB,GAAG,kDAAkD,qCAAqC;;AAE3J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,iDAAiD,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB;AAC7P,oDAAoD,+DAAwB,GAAG,qGAAqG,gBAAgB,aAAa,kEAA2B,GAAG;AAC/O,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iCAAiC,iDAAU,GAAG,iDAAU,uBAAuB,qDAAU;AACzF,QAAQ,oDAAS;AACjB;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,4BAA4B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,wCAAwC,+DAAwB,CAAC,sDAAkB;AAC5J,2CAA2C,+DAAwB,GAAG,iFAAiF;AACvJ,wBAAwB,iDAAU,GAAG,iDAAU,uBAAuB,sDAAW;AACjF;;AAEA;AACA;AACA;AACA,kBAAkB,4BAA4B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,0CAA0C,+DAAwB,CAAC,sDAAkB;AAClK,6CAA6C,+DAAwB,GAAG,qFAAqF;AAC7J,0BAA0B,iDAAU,GAAG,iDAAU,uBAAuB,sDAAW;AACnF;;AAEA;AACA;AACA;AACA,kBAAkB,4BAA4B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,0CAA0C,+DAAwB,CAAC,sDAAkB;AAClK,6CAA6C,+DAAwB,GAAG,qFAAqF;AAC7J,0BAA0B,iDAAU,GAAG,iDAAU,uBAAuB,sDAAW;AACnF;;AAEA;AACA;AACA;AACA,kBAAkB,4BAA4B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,0CAA0C,+DAAwB,CAAC,sDAAkB;AAClK,6CAA6C,+DAAwB,GAAG,qFAAqF;AAC7J,0BAA0B,iDAAU,GAAG,iDAAU,uBAAuB,sDAAW;AACnF;;AAEA;AACA,gEAAgE,yCAAyC;AACzG;AACA;AACA;AACA;AACA,uBAAuB,6BAA6B,yCAAyC;AAC7F,6DAA6D,kCAAkC;AAC/F,uBAAuB;AACvB,sBAAsB;AACtB,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,wCAAwC,+DAAwB,CAAC,sDAAkB;AAC5J,2CAA2C,+DAAwB,GAAG,iFAAiF;AACvJ,wBAAwB,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AACxD,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA,iCAAiC,yCAAO;AACxC,8DAA8D,yDAAS,gDAAgD,oDAAI;AAC3H;AACA;AACA,kCAAkC,cAAc;AAChD;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qDAAS,GAAG;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,4BAA4B,2BAA2B;AACvD;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA;AACA,gBAAgB,mBAAmB;AACnC,4BAA4B,qEAAqE;AACjG;AACA;AACA,gBAAgB,mBAAmB;AACnC,4BAA4B,mEAAmE;AAC/F;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,qDAAqD,8BAA8B,sDAAe,CAAC,iDAAa;AAChH,kCAAkC,gEAAyB,GAAG,4CAA4C,+BAA+B;AACzI,cAAc,iDAAU,GAAG,iDAAU,uBAAuB,iDAAM;AAClE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uDAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA;AACA;AACA,4BAA4B,gCAAgC;AAC5D;AACA;AACA;AACA;AACA;AACA,4BAA4B,gCAAgC;AAC5D;AACA;AACA;AACA;AACA;AACA,6CAA6C,8BAA8B;AAC3E;AACA,gCAAgC,uDAAY;AAC5C;AACA;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA,8BAA8B,uDAAY;AAC1C;AACA;AACA;AACA;AACA,kCAAkC,uDAAY;AAC9C;AACA;AACA,2BAA2B,yCAAyC;AACpE;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA,2BAA2B,yCAAyC;AACpE;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA,2BAA2B,yCAAyC;AACpE;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA,2BAA2B,yCAAyC;AACpE;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA,2BAA2B,yCAAyC;AACpE;AACA,uBAAuB,uDAAY;AACnC;AACA;AACA,QAAQ,0EAAe;AACvB;AACA;AACA;AACA;AACA,uBAAuB,sCAAsC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA,wDAAwD;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,uBAAuB,sCAAsC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yEAAS;AACrB,4EAA4E,YAAY;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,sCAAsC;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,yCAAyC;AAC1F;AACA,eAAe,WAAW,6BAA6B,yCAAyC;AAChG;AACA;AACA;AACA,6CAA6C,qDAAS;AACtD;AACA,6EAA6E;AAC7E,wBAAwB,qDAAS;AACjC;AACA;AACA;AACA;AACA,gEAAgE,yCAAyC;AACzG;AACA;AACA,2CAA2C,yCAAyC;AACpF;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,qCAAqC;AAC/F;AACA,eAAe,QAAQ;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,aAAa,4EAAY;AACzB;AACA;AACA;AACA,gBAAgB,wCAAwC;AACxD;AACA;AACA;AACA,gCAAgC;AAChC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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,sDAAkB,EAAE,IAAI,UAAU;AACxE,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,sDAAkB,EAAE,IAAI,UAAU;AACxE,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,sDAAkB;AACxD,sBAAsB,mDAAQ;AAC9B,aAAa,GAAG,IAAI,UAAU;AAC9B,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,qDAAU;AACxB,KAAK,iBAAiB,UAAU,MAAM,iDAAa,EAAE,IAAI,UAAU;AACnE,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA,iCAAiC,yEAA8B;AAC/D;AACA;AACA;AACA;AACA;AACA,oBAAoB,6EAAmB;AACvC;AACA,iCAAiC,qEAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,qDAAqD;AAC9F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA,+CAA+C,mBAAmB,mBAAmB,gBAAgB;AACrG;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yCAAyC,gCAAgC;AACzE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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AI,2DAAY;AAChB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA,0BAA0B,iDAAU,GAAG,iDAAU,uBAAuB,qDAAU,EAAE,iDAAM;AAC1F;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,+DAA+D,6BAA6B;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,cAAc,2CAA2C;AACzD,cAAc,6BAA6B;AAC3C,cAAc,iDAAiD;AAC/D,cAAc,iDAAiD;AAC/D,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA,+BAA+B,gDAAa;AAC5C,iCAAiC,0CAAO;AACxC,iCAAiC,+CAAY;AAC7C;AACA,QAAQ,0EAAe;AACvB,kEAAkE,0DAAS;AAC3E;AACA,4CAA4C,mDAAG,kCAAkC,mDAAG;AACpF;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS,KAAK,sDAAK;AACnB,4CAA4C,mDAAG;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,SAAS,GAAG,sDAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,mCAAmC;AACxG;AACA;AACA,gCAAgC;AAChC,sBAAsB;AACtB,sBAAsB;AACtB;AACA,uEAAuE,mCAAmC;AAC1G;AACA;AACA,YAAY,wDAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,KAAK;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F,UAAU;AACtG;AACA;AACA;AACA;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e,iDAAW,EAAE,oDAAc,EAAE,6DAAuB,qBAAqB;AAC/F,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,0DAAW;AACf,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,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;;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;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qEAAqE,mCAAmC;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,cAAc,8CAA8C;AAC5D,cAAc,mCAAmC;AACjD,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,qCAAqC;AAC1G;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,iCAAiC,+CAAY;AAC7C;AACA,QAAQ,0EAAe;AACvB,6EAA6E,KAAK;AAClF;AACA;AACA,SAAS;AACT;AACA;AACA,8DAA8D,qCAAqC;AACnG;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,UAAU;AACrF;AACA,wEAAwE,WAAW;AACnF;AACA;AACA;AACA;AACA;AACA,0GAA0G,gCAAgC;AAC1I;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,cAAc;AACnG;AACA,kFAAkF,eAAe;AACjG;AACA;AACA;AACA;AACA;AACA,+GAA+G,sCAAsC;AACrJ;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,kBAAkB;AACtF;AACA,iEAAiE,mBAAmB;AACpF;AACA;AACA;AACA;AACA;AACA,yEAAyE,qCAAqC;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,iBAAiB;AAChG;AACA,4EAA4E,iBAAiB;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,0EAA0E;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,UAAU;AAClF,kFAAkF,cAAc;AAChG,iEAAiE,kBAAkB;AACnF,wEAAwE,gBAAgB;AACxF;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,SAAS;AAC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ACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,cAAc,+CAA+C;AAC7D;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,wCAAwC,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,iEAAuB,GAAG,+DAAwB,CAAC,6EAA0B;AACpW,2CAA2C,+DAAwB,GAAG,6HAA6H;AACnM,QAAQ,yDAAkB,SAAS,2DAAgB;AACnD,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,oFAAoF;AAC3F,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,0MAA0M,aAAa,gEAAyB;AACnQ,YAAY,6EAAmB;AAC/B;AACA,yBAAyB,qEAAW;AACpC;AACA;AACA,wDAAwD,YAAY;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6YAA6Y,+DAA+D;AACld,QAAQ,gEAAyB;AACjC,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB;AACzB,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,gEAAyB;AACjC,QAAQ,0DAAmB;AA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CA,iCAAiC,iDAAU,GAAG,iDAAU,uBAAuB,qDAAU;AACzF,QAAQ,oDAAS;AACjB,QAAQ,mEAAwB;AAChC;;AAEA;AACA;AACA;AACA;AACA,qFAAqF,8CAA8C;AACnI;AACA;AACA;AACA;AACA;AACA,YAAY,6CAA6C;AACzD;AACA;AACA,YAAY,yBAAyB;AACrC;AACA,YAAY,uBAAuB;AACnC;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,yDAAc;AACjD;AACA;AACA,mBAAmB,+BAA+B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,eAAe,sBAAsB;AACrC;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,qBAAqB,EAAE,kBAAkB;AACtE;AACA;AACA;AACA;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,yDAAc;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,sCAAsC,sDAAe,CAAC,mEAA+B,GAAG,sDAAe,CAAC,mDAAe,GAAG,sDAAe;AAC9M,0CAA0C,gEAAyB,GAAG,oDAAoD,uCAAuC;AACjK,sBAAsB,iDAAU,GAAG,8CAAO,IAAI,qDAAM,2BAA2B,8CAAO,IAAI,uDAAQ;AAClG,IAAI,iDAAU,uBAAuB,mEAAwB;AAC7D,QAAQ,mDAAQ;AAChB,QAAQ,qDAAU;AAClB;;AAEA;AACA;AACA;AACA;AACA,yGAAyG,2EAAiB;AAC1H;AACA;AACA;AACA;AACA;AACA,mFAAmF,6CAA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AAsC,0DAA0D,mEAA4B,iCAAiC;AACpO,8BAA8B,+DAAwB,GAAG,0BAA0B,gPAAgP,aAAa,wEAAiC,GAAG;AACpX,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;;AAEA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,0CAA0C,+DAAwB,CAAC,6EAA0B;AAC1K,6CAA6C,+DAAwB,GAAG,qFAAqF,gEAAyB;AACtL;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,wEAAiC,sFAAsF,oBAAoB;AACvJ,sDAAsD,iDAAU,GAAG,iDAAU,uBAAuB,6EAAmB;AACvH;;AAEA;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,+BAA+B,iDAAiD;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE,0CAA0C,gEAAyB,GAAG,+DAA+D;;AAErI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,8DAAuB;AAChG,2CAA2C,+DAAwB,GAAG,6BAA6B;;AAEnG;AACA,yFAAyF,wBAAwB;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,4CAA4C,+DAAwB,CAAC,6EAA0B,GAAG,+DAAwB,uBAAuB,+DAAwB,CAAC,4DAAwB;AACnR,+CAA+C,+DAAwB,GAAG,2FAA2F,wEAAiC,wVAAwV;AAC9hB,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,kFAAkF,2DAA2D;AACtK,QAAQ,uDAAgB;AACxB,QAAQ,0DAAmB;AAC3B,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,kFAAkF,6EAA6E;AACxL,QAAQ,uDAAgB;AACxB,QAAQ,0DAAmB;AAC3B,MAAM;AACN,QAAQ,yDAAkB;AAC1B,QAAQ,wDAAiB;AACzB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,wDAAiB;AACzB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,OAAO,wCAAwC;AAC/C,4BAA4B,iDAAU,GAAG,iDAAU,uBAAuB,6EAAmB;AAC7F;AACA,QAAQ,4DAAiB;AACzB;;AAEA;AACA,yEAAyE,wBAAwB;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,gCAAgC;AAC1G;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,kFAAkF,cAAc;AAChG,0BAA0B,gBAAgB;AAC1C,0BAA0B,kBAAkB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sBAAsB,GAAG,sBAAsB,GAAG,2BAA2B;AAC5G;AACA;AACA;AACA;AACA;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;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,iCAAiC,sDAAsD;AACvF;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,uBAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,0CAA0C,+DAAwB,CAAC,6EAA0B,GAAG,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB;AACzP,6CAA6C,+DAAwB,GAAG,yIAAyI;AACjN,QAAQ,yDAAkB;AAC1B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,sFAAsF;AAC7F,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,wBAAwB,aAAa,wEAAiC,wNAAwN;AACjT,oBAAoB,8DAAuB;AAC3C,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,8GAA8G,2DAAoB,OAAO,YAAY,yDAAkB,KAAK,yCAAyC;AAC9O,QAAQ,0DAAmB;AAC3B,QAAQ,oDAAa;AACrB,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,gEAAyB;AACjC,OAAO,eAAe,oFAA4B,yCAAyC;AAC3F,iDAAU;AACV,IAAI,wDAAS,mBAAmB,cAAc;AAC9C,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,GAAG,iDAAU,uBAAuB,6EAAmB;AAC3F,QAAQ,4DAAiB;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,sBAAsB;AACtB,kBAAkB;AAClB,mBAAmB;AACnB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,yCAAyC,+DAAwB,CAAC,sDAAkB;AAC/J,4CAA4C,+DAAwB,GAAG,+EAA+E;AACtJ,yBAAyB,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AACzD,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,mCAAmC,iBAAiB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,uBAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,+CAA+C,+DAAwB,CAAC,6EAA0B,GAAG,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB;AACxQ,kDAAkD,+DAAwB,GAAG,+KAA+K;AAC5P,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,4BAA4B,aAAa,wEAAiC,6mBAA6mB;AAC1sB,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,6FAA6F,oCAAoC;AAC1J,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB,YAAY,6DAAsB;AAC3D,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,eAAe,iDAAW,EAAE,oDAAc,EAAE,oDAAc,yCAAyC;AAC1G,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,+BAA+B,iDAAU,GAAG,iDAAU,uBAAuB,6EAAmB;AAChG,QAAQ,4DAAiB;AACzB;AACA;;AAEA;AACA,oFAAoF,wBAAwB;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,4CAA4C,+DAAwB,CAAC,6EAA0B,GAAG,+DAAwB,uBAAuB,+DAAwB,CAAC,4DAAwB;AACnR,+CAA+C,+DAAwB,GAAG,2FAA2F,wEAAiC,uVAAuV;AAC7hB,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,kFAAkF,sFAAsF;AACjM,QAAQ,uDAAgB;AACxB,QAAQ,0DAAmB;AAC3B,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,kFAAkF,yFAAyF;AACpM,QAAQ,uDAAgB;AACxB,QAAQ,0DAAmB;AAC3B,MAAM;AACN,QAAQ,yDAAkB;AAC1B,QAAQ,wDAAiB;AACzB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,wDAAiB;AACzB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,OAAO,wCAAwC;AAC/C,4BAA4B,iDAAU,GAAG,iDAAU,uBAAuB,6EAAmB;AAC7F;AACA,QAAQ,4DAAiB;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sEAAU;AAC5C;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;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,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,sCAAsC,+DAAwB,CAAC,6EAA0B,GAAG,+DAAwB,uBAAuB,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,4DAAwB;AAC1S,yCAAyC,+DAAwB,GAAG,4HAA4H;AAChM,QAAQ,yDAAkB,CAAC,mFAAuB;AAClD,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,aAAa,wEAAiC,iPAAiP;AACtS,QAAQ,4DAAqB;AAC7B,QAAQ,oDAAa;AACrB,QAAQ,uDAAgB;AACxB,QAAQ,oDAAa;AACrB,QAAQ,0DAAmB;AAC3B,MAAM;AACN,QAAQ,wDAAiB,YAAY,6DAAsB;AAC3D,QAAQ,uDAAgB;AACxB,QAAQ,gEAAyB;AACjC,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB,wOAAwO,6DAAsB;AACvR,QAAQ,uDAAgB;AACxB,QAAQ,gEAAyB;AACjC,OAAO,eAAe,oDAAc,EAAE,mFAA8B,EAAE,yFAAoC,qBAAqB;AAC/H,iDAAU;AACV,IAAI,wDAAS,CAAC,mFAAuB,IAAI,cAAc;AACvD,IAAI,iDAAU,gBAAgB,mFAAuB;AACrD;AACA,sBAAsB,iDAAU,GAAG,iDAAU,uBAAuB,6EAAmB;AACvF;AACA,QAAQ,iDAAM;AACd,QAAQ,4DAAiB;AACzB;;AAEA;AACA,+FAA+F,wBAAwB;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,qCAAqC,+DAAwB,CAAC,6EAA0B,GAAG,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB;AAC1O,wCAAwC,+DAAwB,GAAG,gJAAgJ;AACnN,QAAQ,yDAAkB;AAC1B,OAAO,aAAa,wEAAiC,gFAAgF;AACrI,QAAQ,oDAAa;AACrB,MAAM;AACN,QAAQ,gEAAyB;AACjC,OAAO,wCAAwC;AAC/C,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,qBAAqB,iDAAU,GAAG,iDAAU,uBAAuB,6EAAmB;AACtF,QAAQ,4DAAiB;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,wBAAwB;AACvG;AACA;AACA,8BAA8B,uDAAY;AAC1C;AACA;AACA;AACA,0FAA0F,sBAAsB;AAChH;AACA,kCAAkC,uDAAY;AAC9C;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,yDAAyD,gCAAgC;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,sEAAsE,KAAK;AAC3E;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,YAAY,0EAAU;AACtB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,2BAA2B;AAClE;AACA;AACA,uCAAuC,kCAAkC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0CAA0C;AAC7E;AACA;AACA;AACA,2DAA2D,iCAAiC,+DAAwB,uBAAuB,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,6EAA0B;AAC3O,oCA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AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,sDAAkB;AACxD,sBAAsB,mDAAQ;AAC9B,aAAa,GAAG,IAAI,UAAU;AAC9B,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA,iCAAiC,yEAA8B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sDAAsD;AAClF,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yCAAyC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sDAAsD;AACtF;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,6EAA0B,EAAE,IAAI,MAAM,4DAAwB,EAAE,IAAI,2BAA2B,IAAI,IAAI;AAC7I,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA,iCAAiC,yEAA8B;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,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,6EAA0B,EAAE,IAAI,2BAA2B,IAAI,MAAM,4DAAwB,EAAE,IAAI,UAAU;AACnJ,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,uBAAuB,uCAAuC;AAC9D,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,UAAU,kBAAkB;AAC5B;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,6EAA0B,EAAE,IAAI,2BAA2B,IAAI,MAAM,iDAAa,EAAE,IAAI,MAAM,4DAAwB,EAAE,IAAI,IAAI;AACtK,kBAAkB,oDAAS;AAC3B,mBAAmB,mFAAuB,IAAI,cAAc;AAC5D,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA,iCAAiC,yEAA8B;AAC/D;AACA,6BAA6B,kBAAkB,IAAI,aAAa,kBAAkB,UAAU,kBAAkB;AAC9G,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,6EAA0B,EAAE,IAAI,MAAM,4DAAwB,EAAE,IAAI,2BAA2B,IAAI,IAAI;AAC7I,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA;AACA,oBAAoB,6EAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;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,aAAa;AACb,KAAK,iBAAiB,UAAU,2BAA2B,IAAI,MAAM,qDAAiB,EAAE,IAAI,MAAM,6EAA0B,EAAE,IAAI,IAAI;AACtI,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,oDAAS;AAC3B,mBAAmB,iFAAqB,IAAI,cAAc;AAC1D,SAAS;AACT,kBAAkB,uDAAY;AAC9B,6CAA6C,eAAe;AAC5D,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA;AACA,qCAAqC,yDAAU;AAC/C;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,6EAA0B,EAAE,IAAI,UAAU;AAChF,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,mDAAQ;AACtB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB;AACtB,eAAe,mDAAmD,gEAAyB,gBAAgB,6QAA6Q,yDAAY;AACpY,QAAQ,gFAAoB;AAC5B,QAAQ,iFAAkB;AAC1B,QAAQ,wEAAY;AACpB,QAAQ,8EAAkB,iQAAiQ,IAAI;;;AAG/R;AACA;AACA;;AAEuW;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5xDvW;AACA;AACA;AACA;AACwD;AAC+D;AAC1D;AACT;AACQ;;AAE5D;AACA;AACA;AACwC;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mFAAmF,6CAA6C,+DAAwB,CAAC,sDAAkB;AAC3K,gDAAgD,+DAAwB,GAAG,6EAA6E;AACxJ,6BAA6B,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AAC7D,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qBAAqB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E;AAC/E,8CAA8C,+DAAwB,GAAG,oFAAoF,4DAA4D,sFAAsF,oBAAoB;AACnU,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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,+DAA+D,4BAA4B;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;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,+CAA+C;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,eAAe,gEAAO;AACtB;AACA;AACA,eAAe,kEAAS;AACxB;AACA;AACA,QAAQ,kEAAM;AACd;AACA;AACA,mEAAmE,qCAAqC,+DAAwB,CAAC,qDAAiB;AAClJ,wCAAwC,+DAAwB,GAAG,6IAA6I;AAChN,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,YAAY,sgBAAsgB,wGAAwG;AACjoB,QAAQ,6DAAsB;AAC9B,QAAQ,4DAAqB;AAC7B,QAAQ,0DAAmB;AAC3B,QAAQ,0DAAmB;AAC3B,OAAO,oBAAoB;AAC3B,iDAAU;AACV,I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BAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,uDAAY;AAC9B,iDAAiD,eAAe;AAChE,SAAS;AACT,kBAAkB,uDAAY;AAC9B,+CAA+C,eAAe;AAC9D,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,mDAAQ;AACtB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB;AACtB,eAAe,mDAAmD,gEAAyB,oBAAoB,+KAA+K,IAAI;;AAElS;AACA;AACA;;AAEsH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7btH;AACA;AACA;AACA;AACwD;AAC6L;AAC7C;AAC1E;AAChF;AACH;AAC4B;AACX;AACb;;AAE/C;AACA;AACA;AACwC;AACM;AACJ;AACe;;AAEzD;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,YAAY,6BAA6B;AACzC,YAAY,6BAA6B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,uBAAuB,EAAE,wBAAwB,EAAE,wBAAwB;AACzF;AACA;AACA;AACA,cAAc,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB;AACpE;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,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,mFAAmB;AAC5B;AACA;AACA;AACA;AACA;AACA,qDAAqD,OAAO,IAAI,GAAG;AACnE;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,KAAK;AACL;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,eAAe,uEAAS;AACxB;AACA;AACA,eAAe,mEAAK;AACpB;AACA;AACA,eAAe,4EAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,wCAAwC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oEAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB;AACxC;AACA,gCAAgC,qBAAqB;AACrD,+BAA+B,oBAAoB;AACnD,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,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,eAAe,+EAAiB;AAChC;AACA;AACA;AACA;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD,iCAAiC,gEAAyB,GAAG,2CAA2C,8BAA8B;;AAEtI;AACA;AACA;AACA,8MAA8M,6BAA6B;AAC3O;AACA;AACA;AACA,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ;AACA;AACA;AACA,kBAAkB,yDAAc;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sFAAsF;AACtG;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,0BAA0B,aAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,+BAA+B,sDAAe,cAAc,sDAAe;AAClI,mCAAmC,gEAAyB,GAAG,6CAA6C,gCAAgC;AAC5I,eAAe,iDAAU,GAAG,8CAAO,IAAI,qDAAM,UAAU,8CAAO,IAAI,uDAAQ;AAC1E,IAAI,iDAAU;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kFAAkF;AAClG;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,6DAA6D,kCAAkC,sDAAe,cAAc,sDAAe;AAC3I,sCAAsC,gEAAyB,GAAG,gDAAgD,mCAAmC;AACrJ,kBAAkB,iDAAU,GAAG,8CAAO,IAAI,qDAAM,UAAU,8CAAO,IAAI,uDAAQ;AAC7E,IAAI,iDAAU;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA;AACA,gCAAgC,+CAAS;AACzC,sBAAsB,yDAAS;AAC/B;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,gCAAgC,sDAAe,cAAc,sDAAe,CAAC,iDAAa;AACnJ,oCAAoC,gEAAyB,GAAG,8CAA8C,iCAAiC;AAC/I,gBAAgB,iDAAU,GAAG,iDAAU,mCAAmC,iDAAM;AAChF;;AAEA;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,oDAAoD,+CAAS,mBAAmB,yDAAS;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,2CAAK;AACrC,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,iEAAiE,oCAAoC,sDAAe,cAAc,sDAAe,CAAC,iDAAa;AAC/J,wCAAwC,gEAAyB,GAAG,kDAAkD,qCAAqC;AAC3J,oBAAoB,iDAAU,GAAG,iDAAU,mCAAmC,iDAAM;AACpF;;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,iBAAiB,cAAc,MAAM,GAAG,WAAW,6BAA6B;AAChF,eAAe,cAAc,MAAM,GAAG,SAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,cAAc,UAAU,GAAG,MAAM,KAAK;AACvD,eAAe,cAAc,UAAU,GAAG,IAAI;AAC9C;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oBAAoB,MAAM,IAAI;AAC/C,eAAe,oBAAoB,IAAI;AACvC;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,gEAAgE,KAAK;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0DAAK;AACjB,YAAY,4DAAO,IAAI,SAAS,aAAa,0DAAK;AAClD;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,+DAA+D,mCAAmC,sDAAe,CAAC,iEAAuB;AACzI,uCAAuC,gEAAyB,GAAG,iDAAiD,oCAAoC;AACxJ,mBAAmB,iDAAU,GAAG,iDAAU,uBAAuB,iEAAgB;AACjF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA,0DAA0D,wBAAwB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0BAA0B;AACjE;AACA;AACA;AACA;AACA,2BAA2B,oCAAoC;AAC/D;AACA,6BAA6B;AAC7B;AACA;AACA,2BAA2B,yCAAyC;AACpE;AACA,2BAA2B;AAC3B;AACA;AACA,2BAA2B,oCAAoC;AAC/D;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,YAAY;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,YAAY;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oCAAoC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA,uCAAuC,uDAAY;AACnD;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA,kCAAkC,uDAAY;AAC9C;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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,0CAAI;AAC9C;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,0CAA0C,eAAe;AACzD,yCAAyC,cAAc;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA,gBAAgB,0BAA0B;AAC1C;AACA;AACA,gBAAgB,4EAAY;AAC5B,gEAAgE,yBAAyB;AACzF;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,SAAS;AACT;AACA;AACA,kCAAkC,4EAAY;AAC9C;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,2DAA2D,iCAAiC,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,gBAAgB,+DAAwB,cAAc,+DAAwB,mBAAmB,+DAAwB,iBAAiB,+DAAwB,qBAAqB,+DAAwB,oBAAoB,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,iDAAa;AACtd,oCAAoC,+DAAwB,GAAG,wGAAwG;AACvK,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB,CAAC,iFAAqB;AAChD,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,YAAY,sPAAsP,aAAa,4GAA4G,wCAAwC,gEAAyB,mGAAmG,kEAA2B,6NAA6N;AAC9xB,QAAQ,6DAAsB;AAC9B,QAAQ,4DAAqB;AAC7B,QAAQ,0DAAmB;AAC3B,QAAQ,wDAAiB;AACzB,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,sFAAsF,wBAAwB;AACvI,QAAQ,0DAAmB;AAC3B,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,eAAe,qDAAc,EAAE,8DAAuB,EAAE,kDAAW,EAAE,iFAA4B,qBAAqB;AAC7H,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,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,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,wDAAS,gBAAgB,cAAc;AAC3C,IAAI,iDAAU,gBAAgB,qDAAU;AACxC;AACA,iDAAU;AACV,IAAI,wDAAS,CAAC,iFAAqB,IAAI,cAAc;AACrD,IAAI,iDAAU,gBAAgB,iFAAqB;AACnD;AACA,iBAAiB,iDAAU,GAAG,iDAAU,uBAAuB,qDAAU;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oDAAS;AACjB,QAAQ,iDAAM;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,uBAAuB;AAC9F;AACA;AACA;AACA;AACA;AACA,YAAY,+BAA+B;AAC3C;AACA;AACA,YAAY,yBAAyB;AACrC;AACA,YAAY,uBAAuB;AACnC;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yDAAc;AAC1C;AACA;AACA,mBAAmB,uBAAuB;AAC1C;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,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,iBAAiB,8BAA8B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,qBAAqB;AACrB,gBAAgB,mBAAmB;AACnC;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,eAAe,mBAAmB;AAClC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC,eAAe,GAAG;AAClB,iBAAiB;AACjB;AACA;AACA;AACA,6EAA6E,sDAAW;AACxF;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,iBAAiB;AACjB;AACA;AACA,2CAA2C,sDAAW;AACtD,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,+BAA+B,sDAAe,CAAC,yDAAqB,GAAG,sDAAe,CAAC,mEAA+B,GAAG,sDAAe,CAAC,mDAAe,GAAG,sDAAe;AACjO,mCAAmC,gEAAyB,GAAG,6CAA6C,gCAAgC;AAC5I,eAAe,iDAAU,GAAG,8CAAO,IAAI,qDAAM,oBAAoB,8CAAO,IAAI,uDAAQ;AACpF,IAAI,iDAAU,uBAAuB,yDAAc;AACnD,QAAQ,mEAAwB;AAChC,QAAQ,mDAAQ;AAChB,QAAQ,qDAAU;AAClB;;AAEA;AACA;AACA,gCAAgC,wCAAwC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,cAAc;AAC1B;AACA;AACA,YAAY,yBAAyB;AACrC;AACA,YAAY,WAAW;A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AI,+DAAwB;AAC5B;AACA,yDAAyD;AACzD,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,+DAAwB;AAC5B;AACA,4DAA4D;AAC5D,IAAI,uDAAgB;AACpB,EAAE;AACF;AACA;AACA,mBAAmB,2DAAoB;AACvC,IAAI,yDAAkB;AACtB,IAAI,yDAAkB;AACtB,IAAI,wDAAiB;AACrB;AACA;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;AACA,8BAA8B,iDAAiD;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oDAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,eAAe,OAAO,eAAe,GAAG,yCAAyC;AAC1H;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iCAAiC;AAC5D;AACA;AACA;AACA;AACA;AACA,2BAA2B,8BAA8B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0EAAe;AACvB,gFAAgF,KAAK;AACrF;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,8DAAuB;AACpF,qCAAqC,+DAAwB,GAAG,oGAAoG;AACpK,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,8IAA8I,aAAa,kEAA2B,GAAG;AAC5M,iDAAU;AACV,IAAI,0DAAW;AACf,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,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;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,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;;AAEA;AACA,gEAAgE,8BAA8B;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;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,SAAS;AACT;AACA;AACA;AACA;AACA;AA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yB,GAAG,+CAA+C,kCAAkC;;AAElJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,0EAAc,SAAS,0EAAc,GAAG,2EAAe;AAC7H;AACA;AACA;AACA,sEAAsE,wEAAY,SAAS,2EAAe,GAAG,0EAAc;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oBAAoB;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,gCAAgC,oDAAI;AACpC;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,iEAAiE,oCAAoC,sDAAe,CAAC,iDAAa;AAClI,wCAAwC,gEAAyB,GAAG,kDAAkD,qCAAqC;AAC3J,oBAAoB,iDAAU,GAAG,iDAAU,uBAAuB,iDAAM;AACxE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oCAAoC;AAC3D,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE,0CAA0C,+DAAwB,GAAG,qEAAqE,0BAA0B,kFAAkF,oBAAoB;AAC1Q,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;;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;AACA;;AAEA;AACA;AACA,mBAAmB,0DAA0D;AAC7E,kBAAkB;AAClB,CAAC;AACD;AACA,4DAA4D,0BAA0B;AACtF;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,yBAAyB,uDAAY;AACrC;AACA,oDAAoD,yCAAO;AAC3D,iCAAiC,8CAAY;AAC7C,QAAQ,0EAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,oCAAoC;AACpC;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;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,yBAAyB,0EAAc;AACvC;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB,2EAAe;AACxC;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB,oEAAQ;AACjC;AACA;AACA,yBAAyB,uEAAW;AACpC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA,mCAAmC,2CAAK;AACxC;AACA,0CAA0C,0DAAU,OAAO,sDAAM,oEAAoE,kBAAkB;AACvJ;AACA;AACA;AACA;AACA,iEAAiE,iBAAiB,kBAAkB;AACpG;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,KAAK;AAC3E,YAAY,mFAAmB;AAC/B,qEAAqE,gDAAS;AAC9E,sBAAsB,sDAAM,yBAAyB,sDAAM,qFAAqF,sDAAM;AACtJ;AACA;AACA;AACA,iBAAiB;AACjB,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,uCAAuC,sCAAsC;AAC7E;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,YAAY,mFAAmB;AAC/B;AACA;AACA;AACA,oCAAoC,oDAAI;AACxC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,wEAAY;AACrC;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB,0EAAc;AACvC;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB,uEAAW;AACpC;AACA;AACA,yBAAyB,oEAAQ;AACjC;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,kBAAkB,0DAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,0DAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,yBAAyB;AACxG;AACA;AACA;AACA;AACA;AACA,iFAAiF,0BAA0B;AAC3G;AACA;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,SAAS;AACT;AACA;AACA;AACA;AACA,uDAAuD,QAAQ;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,QAAQ;AAChE;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,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,mCAAmC,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,CAAC,wEAAmB,GAAG,+DAAwB,kBAAkB,+DAAwB,qBAAqB,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,4DAAwB;AACjd,sCAAsC,+DAAwB,GAAG,sIAAsI;AACvM,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,wDAAwD;AAC/D,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB,SAAS,2DAAgB;AACnD,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,+EAA+E;AACtF,QAAQ,wDAAiB,uEAAuE,6BAA6B,8EAA8E,gCAAgC;AAC3O,MAAM;AACN,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,0HAA0H,aAAa,8BAA8B,yCAAyC,gEAAyB;AAC1P;AACA;AACA,YAAY,8EAAmB;AAC/B;AACA,yBAAyB,sEAAW;AACpC;AACA;AACA,YAAY,kEAA2B,4CAA4C,YAAY;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,8pBAA8pB,0DAA0D;AAC9tB,QAAQ,gEAAyB;AACjC,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB,2EAA2E,oEAA6B;AACjI,QAAQ,gEAAyB;AACjC,QAAQ,wDAAiB;AACzB,MAAM;AACN,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,4BAA4B,2CAA2C,qDAAc,4BAA4B,kDAAW,EAAE,iFAA4B,IAAI,oBAAoB;AACzL,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,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,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,8DAAe;AACnB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA,iDAAU;AACV,IAAI,wDAAS,qBAAqB,eAAe;AACjD,IAAI,iDAAU,gBAAgB,qDAAU;AACxC;AACA,iDAAU;AACV,IAAI,wDAAS,oBAAoB,cAAc;AAC/C,IAAI,iDAAU,gBAAgB,sDAAW;AACzC;AACA,iDAAU;AACV,IAAI,wDAAS,mBAAmB,eAAe;AAC/C,IAAI,iDAAU,gBAAgB,iFAAqB;AACnD;AACA,iDAAU;AACV,IAAI,wDAAS,gBAAgB,MAAM,2DAAgB,gBAAgB;AACnE,IAAI,iDAAU,gBAAgB,2DAAgB;AAC9C;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU;AACd,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,mBAAmB,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AACpF,QAAQ,wEAAY;AACpB;AACA;AACA,QAAQ,qDAAU;AAClB,QAAQ,iDAAM;AACd,QAAQ,oDAAS;AACjB,QAAQ,4DAAiB;AACzB;;AAEA;AACA;AACA,8DAA8D,8BAA8B;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,8BAA8B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,6CAA6C;AACxE;AACA;AACA,2BAA2B;AAC3B,8BAA8B;AAC9B,+BAA+B;AAC/B,+BAA+B;AAC/B,0BAA0B;AAC1B,8BAA8B;AAC9B,8BAA8B;AAC9B,4BAA4B;AAC5B,2BAA2B;AAC3B,4BAA4B;AAC5B,8BAA8B;AAC9B,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA,kCAAkC,uDAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,8BAA8B;AACtF;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,8BAA8B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;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,2EAA2E;AAC3E,4CAA4C,+DAAwB,GAAG,iIAAiI;AACxM,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB,SAAS,qDAAU;AAC7C,QAAQ,yDAAkB,SAAS,qDAAU;AAC7C,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,YAAY,0UAA0U,aAAa,8EAA8E,+CAA+C,gEAAyB,IAAI,4CAA4C,yDAAU,kCAAkC,IAAI,wEAAiC,koBAAkoB;AACnwC,QAAQ,wDAAiB,kFAAkF,oEAA6B;AACxI,QAAQ,wDAAiB,kFAAkF,oEAA6B;AACxI,OAAO,eAAe,6EAAsB,EAAE,qDAAc,EAAE,qDAAc,qBAAqB;AACjG,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;AACd,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,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,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,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,wDAAS,sBAAsB,cAAc;AACjD,IAAI,iDAAU,gBAAgB,sDAAW;AACzC;AACA,iDAAU;AACV,IAAI,wDAAS,oBAAoB,cAAc;AAC/C,IAAI,iDAAU,gBAAgB,sDAAW;AACzC;AACA,iDAAU;AACV,IAAI,wDAAS,oBAAoB,MAAM,qDAAU,iBAAiB;AAClE,IAAI,iDAAU,gBAAgB,qDAAU;AACxC;AACA,iDAAU;AACV,IAAI,wDAAS,qBAAqB,MAAM,qDAAU,iBAAiB;AACnE,IAAI,iDAAU,gBAAgB,qDAAU;AACxC;AACA,oDAAoD,iDAAU,GAAG,iDAAU;AAC3E;;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;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,qFAAqF,8CAA8C,+DAAwB,CAAC,8EAA0B;AACtL,iDAAiD,+DAAwB,GAAG,wKAAwK;AACpP,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,mEAAmE;AAC1E,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,YAAY,4EAA4E,oDAAoD,gEAAyB,EAAE,8EAAmB,IAAI,4CAA4C,yDAAU,uCAAuC,IAAI,wEAAiC,qoCAAqoC;AAC58C,QAAQ,wDAAiB,sFAAsF,oEAA6B;AAC5I,QAAQ,wDAAiB,sFAAsF,oEAA6B;AAC5I,OAAO,eAAe,kFAA2B,EAAE,qDAAc,EAAE,6EAAsB,EAAE,qDAAc,EAAE,qDAAc,qBAAqB;AAC9I,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,wDAAS,sBAAsB,cAAc;AACjD,IAAI,iDAAU,gBAAgB,sDAAW;AACzC;AACA,iDAAU;AACV,IAAI,wDAAS,oBAAoB,cAAc;AAC/C,IAAI,iDAAU,gBAAgB,sDAAW;AACzC;AACA,iDAAU;AACV,IAAI,8DAAe,CAAC,yDAAU;AAC9B,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA,iDAAU;AACV,IAAI,wDAAS,yBAAyB,eAAe;AACrD,IAAI,iDAAU,gBAAgB,kFAAoB;AAClD;AACA,iDAAU;AACV,IAAI,wDAAS,0BAA0B,eAAe;AACtD,IAAI,iDAAU,gBAAgB,kFAAoB;AAClD;AACA,8DAA8D,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AAC/H;;AAEA;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,mFAAmF;AACnF,gDAAgD,+DAAwB,GAAG,6IAA6I;AACxN,QAAQ,yDAAkB;AAC1B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,YAAY,4GAA4G,aAAa,wBAAwB,ghBAAghB;AACprB,QAAQ,wDAAiB;AACzB,MAAM;AACN,QAAQ,wDAAiB;AACzB,OAAO,eAAe,qDAAc,EAAE,6EAAsB,qBAAqB;AACjF,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,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;;AAEA;AACA;AACA,iEAAiE,8BAA8B;AAC/F;AACA;AACA;AACA;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,6CAA6C;AACxE;AACA;AACA,2BAA2B;AAC3B,8BAA8B;AAC9B,+BAA+B;AAC/B,+BAA+B;AAC/B,0BAA0B;AAC1B,8BAA8B;AAC9B,8BAA8B;AAC9B,4BAA4B;AAC5B,2BAA2B;AAC3B,4BAA4B;AAC5B,8BAA8B;AAC9B,2BAA2B;AAC3B;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,8BAA8B;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,iCAAiC;AACjC,mCAAmC;AACnC;AACA;AACA,8CAA8C,+BAA+B;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,8BAA8B;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,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;AAC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AC9B,8BAA8B;AAC9B,4BAA4B;AAC5B,2BAA2B;AAC3B,4BAA4B;AAC5B,8BAA8B;AAC9B,2BAA2B;AAC3B;AACA;AACA;AACA,kDAAkD,eAAe;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA,wDAAwD,8BAA8B;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,8BAA8B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,8BAA8B;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,qFAAqF;AACrF,iDAAiD,+DAAwB,GAAG,gJAAgJ;AAC5N,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,QAAQ,yDAA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8IAA8I;AACpW,QAAQ,wDAAiB,oFAAoF,oEAA6B;AAC1I,OAAO,oBAAoB;AAC3B,iDAAU;AACV,IAAI,wDAAS,sBAAsB,cAAc;AACjD,IAAI,iDAAU,gBAAgB,sDAAW;AACzC;AACA,iDAAU;AACV,IAAI,wDAAS,oBAAoB,cAAc;AAC/C,IAAI,iDAAU,gBAAgB,sDAAW;AACzC;AACA,iDAAU;AACV,IAAI,wDAAS,gBAAgB,eAAe;AAC5C,IAAI,iDAAU,gBAAgB,qDAAU;AACxC;AACA,0DAA0D,iDAAU,GAAG,iDAAU;AACjF;;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,6DAA6D;AAC7D,sCAAsC,gEAAyB,GAAG,gDAAgD,mCAAmC;;AAErJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uDAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kCAAkC,0BAA0B;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,2CAA2C,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,mBAAmB,+DAAwB;AACtR,8CAA8C,+DAAwB,GAAG,iJAAiJ;AAC1N,QAAQ,wDAAiB,+EAA+E,6BAA6B;AACrI,OAAO,YAAY,4DAA4D,aAAa,gCAAgC,iDAAiD,gEAAy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I;AACtR,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,kBAAkB,uDAAY;AAC9B;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,kBAAkB,uDAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,0DAAe;AACjC;AACA,SAAS;AACT,kBAAkB,oDAAS;AAC3B,uCAAuC,eAAe;AACtD,SAAS;AACT,kBAAkB,oDAAS;AAC3B,sCAAsC,cAAc;AACpD,SAAS;AACT,kBAAkB,oDAAS;AAC3B,qCAAqC,eAAe;AACpD,SAAS;AACT,kBAAkB,oDAAS;AAC3B,kCAAkC,MAAM,2DAAgB,gBAAgB;AACxE,SAAS;AACT,kBAAkB,uDAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,uDAAY;AAC9B;AACA,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,8BAA8B,4CAA4C,yDAAU,kCAAkC;AACtH;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;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,YAA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IAAI,uDAAQ;AAC9D,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;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,6FAA6F,iCAAiC;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;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,mCAAmC,oDAAS;AAC5C;AACA;AACA;AACA,uCAAuC,oDAAS;AAChD;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,8DAAuB;AAC9E,kCAAkC,+DAAwB,GAAG,8FAA8F;AAC3J,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,YAAY,6bAA6b,aAAa,kEAA2B,GAAG;AAC3f,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,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,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,8DAAe,4BAA4B,oBAAoB;AACnE,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA,iDAAU;AACV,IAAI,2DAAY,4BAA4B,eAAe;AAC3D,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,8DAAe;AACnB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;;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,0BAA0B,2CAAK,CAAC,wCAAE;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,yDAAc,UAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uDAAuD,wCAAwC;AAC/F;AACA;AACA,oBAAoB;AACpB,oBAAoB;AACpB,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,8CAA8C,+DAAwB,CAAC,sDAAkB;AAC9K,iDAAiD,+DAAwB,GAAG,6FAA6F;AACzK,8BAA8B,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AAC9D,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA;AACA,mBAAmB,wCAAwC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,8CAA8C,+DAAwB,CAAC,sDAAkB;AAC9K,iDAAiD,+DAAwB,GAAG,6FAA6F;AACzK,8BAA8B,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AAC9D,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE,2CAA2C,gEAAyB,GAAG,qDAAqD,wCAAwC;;AAEpK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,6BAA6B;AAClF;AACA,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,yCAAyC;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,kCAAkC,+DAAwB,oBAAoB,+DAAwB;AACnK,qCAAqC,+DAAwB,GAAG,4IAA4I;AAC5M,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,YAAY,sKAAsK,aAAa,gEAAyB;AAC/N;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,wEAAiC,8EAA8E,oBAAoB;AAC/I,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,2DAAY,0BAA0B,eAAe;AACzD,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY,0BAA0B,eAAe;AACzD,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY,gCAAgC,eAAe;AAC/D,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY,gCAAgC,eAAe;AAC/D,IAAI,iDAAU;AACd;AACA,sCAAsC,iDAAU,GAAG,8CAAO,IAAI,uDAAQ,KAAK,8CAAO,IAAI,mDAAI,KAAK,8CAAO,IAAI,uDAAQ;AAClH,IAAI,iDAAU;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,kCAAkC;AAC1F;AACA,cAAc,0BAA0B,mBAAmB,4BAA4B;AACvF;AACA;AACA,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ;AACA;AACA,yDAAyD,4CAA4C;AACrG;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC,gBAAgB,kBAAkB;AAClC;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,QAAQ;AACR;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,qEAAqE,sCAAsC,+DAAwB,oBAAoB,+DAAwB;AAC/K,yCAAyC,+DAAwB,GAAG,yJAAyJ;AAC7N,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,YAAY,kEAAkE,aAAa,gEAAyB;AAC3H;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,wEAAiC,kFAAkF,oBAAoB;AACnJ,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,8DAAe,0BAA0B,oBAAoB;AACjE,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA,iDAAU;AACV,IAAI,8DAAe,0BAA0B,oBAAoB;AACjE,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA,iDAAU;AACV,IAAI,8DAAe;AACnB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,8CAA8C,iDAAU,GAAG,8CAAO,IAAI,uDAAQ,KAAK,8CAAO,IAAI,mDAAI,KAAK,8CAAO,IAAI,uDAAQ;AAC1H,IAAI,iDAAU;AACd;;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,KAAK,gCAAgC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mEAAO,aAAa,iCAAiC;AACtF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,6CAA6C;AAClF;AACA,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,uCAAuC,+DAAwB,oBAAoB,+DAAwB;AAClL,0CAA0C,+DAAwB,GAAG,4JAA4J;AACjO,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,aAAa,gEAAyB;AAC7C;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,wEAAiC,mFAAmF,oBAAoB;AACpJ,iDAAU;AACV,IAAI,8DAAe;AACnB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA,gDAAgD,iDAAU,GAAG,8CAAO,IAAI,uDAAQ,KAAK,8CAAO,IAAI,mDAAI,KAAK,8CAAO,IAAI,uDAAQ;AAC5H,IAAI,iDAAU;AACd;;AAEA,+BAA+B,mFAAmB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,kBAAkB,OAAO,WAAW;AACjF,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,OAAO,WAAW,cAAc,YAAY,kBAAkB,kBAAkB,cAAc,cAAc;AACzJ,iDAAiD,WAAW;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA,gBAAgB,+CAAS,wBAAwB,0DAAS;AAC1D;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,wCAAwC,sDAAe,CAAC,iDAAa,GAAG,sDAAe,CAAC,4DAAwB;AACzL,4CAA4C,gEAAyB,GAAG,sDAAsD,yCAAyC;AACvK,wBAAwB,iDAAU,GAAG,iDAAU,uBAAuB,iDAAM,EAAE,4DAAiB;AAC/F;;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,6BAA6B,qDAAI;AACjC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sCAAsC;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;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,yBAAyB;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,gBAAgB,mDAAY;AAC5B;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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uDAAY;AAC9C,8BAA8B,uDAAY;AAC1C,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kDAAe;AAC3C;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,mBAAmB;AACnB,kBAAkB;AAClB;AACA;AACA;AACA,iBAAiB;AACjB;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,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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,gDAAgD,+CAAY;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;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;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA;AACA;AACA,iCAAiC,0CAAO;AACxC,8DAA8D,0DAAS,gDAAgD,qDAAI;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,yBAAyB;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,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,cAAc;AACtC;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,4BAA4B,gCAAgC;AAC5D;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA,4BAA4B,8CAA8C;AAC1E;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oCAAoC;AAChE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,8BAA8B,sDAAe,CAAC,iDAAa;AAChH,kCAAkC,gEAAyB,GAAG,4CAA4C,+BAA+B;AACzI,cAAc,iDAAU,GAAG,iDAAU,uBAAuB,iDAAM;AAClE;;AAEA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;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,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA;AACA,qCAAqC,qDAAI;AACzC;AACA;AACA;AACA;AACA,iFAAiF,4CAA4C,sDAAe,CAAC,iDAAa;AAC1J,gDAAgD,gEAAyB,GAAG,0DAA0D,6CAA6C;AACnL,4BAA4B,iDAAU,GAAG,iDAAU,uBAAuB,iDAAM;AAChF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,6CAA6C,+DAAwB,CAAC,sDAAkB;AAC3K,gDAAgD,+DAAwB,GAAG,2FAA2F;AACtK,6BAA6B,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AAC7D,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,WAAW;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,iBAAiB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,wCAAwC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0CAAO;AAClC;AACA;AACA;AACA;AACA,eAAe,2BAA2B;AAC1C;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD,oCAAoC,gEAAyB,GAAG,mDAAmD;;AAEnH;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,sBAAsB;AACtB,kBAAkB;AAClB,mBAAmB;AACnB,wBAAwB;AACxB;AACA,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,yCAAyC,+DAAwB,CAAC,sDAAkB;AAC/J,4CAA4C,+DAAwB,GAAG,mFAAmF;AAC1J,yBAAyB,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AACzD,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0CAAO;AAClC,8BAA8B,0CAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iDAAiD;AAChF;AACA;AACA,+BAA+B,sBAAsB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE,0CAA0C,gEAAyB,GAAG,+DAA+D;;AAErI;AACA;AACA;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,uCAAuC,oBAAoB;AAC3D;AACA;AACA;AACA,gBAAgB,wDAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD,iCAAiC,gEAAyB,GAAG,2CAA2C,8BAA8B;;AAEtI;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,qCAAqC,gEAAyB,GAAG,+CAA+C,kCAAkC;;AAElJ;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;AACA,iEAAiE;AACjE,wCAAwC,gEAAyB,GAAG,kDAAkD,qCAAqC;;AAE3J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C,+BAA+B,uDAAY;AAC3C,iCAAiC,uDAAY;AAC7C;AACA;AACA;AACA,gBAAgB,wDAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD,mCAAmC,gEAAyB,GAAG,6CAA6C,gCAAgC;;AAE5I;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oDAAS;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,kCAAkC;AACrF;AACA;AACA,qBAAqB;AACrB,wBAAwB;AACxB,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,2CAA2C,+DAAwB,CAAC,sDAAkB,MAAM,+DAAwB;AACnM,8CAA8C,+DAAwB,GAAG,iGAAiG,wBAAwB;AAClM,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,2BAA2B,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AAC3D,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0CAAO;AAClC;AACA,iCAAiC,+CAAY;AAC7C,sCAAsC,+CAAY;AAClD,oCAAoC,+CAAY;AAChD;AACA;AACA;AACA;AACA,6BAA6B,yBAAyB;AACtD;AACA;AACA,4BAA4B,+CAAS,oBAAoB,oDAAG,IAAI,UAAU,cAAc;AACxF;AACA;AACA,iBAAiB;AACjB,8CAA8C,qEAAoB,6CAA6C,uDAAM,qDAAqD,oDAAG;AAC7K;AACA,0CAA0C,uDAAM;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,wBAAwB;AACzC;AACA;AACA;AACA,4BAA4B,SAAS;AACrC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,+CAAY;AAC1D;AACA;AACA;AACA,4CAA4C,+CAAY;AACxD;AACA;AACA;AACA;AACA;AACA,iEAAiE,oCAAoC,sDAAe,CAAC,iDAAa;AAClI,wCAAwC,gEAAyB,GAAG,kDAAkD,qCAAqC;AAC3J,oBAAoB,iDAAU,GAAG,iDAAU,uBAAuB,iDAAM;AACxE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,+CAAY,UAAU;AAC5D,8BAA8B,0CAAO;AACrC;AACA,2DAA2D,6DAAY;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD,oCAAoC,gEAAyB,GAAG,8CAA8C,iCAAiC;;AAE/I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,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;AACA,+DAA+D;AAC/D,uCAAuC,gEAAyB,GAAG,iDAAiD,oCAAoC;;AAExJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,UAAU;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;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;AACA,SAAS;AACT;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0CAAG;AACX,kBAAkB,qDAAI;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,yEAAyE;AACzE,4CAA4C,gEAAyB,GAAG,sDAAsD,yCAAyC;;AAEvK;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,mBAAmB,wCAAwC;AAC3D;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,+BAA+B,2CAA2C;AAC1E,8BAA8B,wCAAwC;AACtE;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,SAAS;AACT;AACA;AACA,mEAAmE,qCAAqC,sDAAe,CAAC,wEAAmB,GAAG,sDAAe,CAAC,oDAAgB,GAAG,sDAAe,CAAC,iDAAa,GAAG,sDAAe,qBAAqB,sDAAe,CAAC,8EAA0B;AAC/R,yCAAyC,gEAAyB,GAAG,mDAAmD,sCAAsC;AAC9J,qBAAqB,iDAAU,GAAG,iDAAU,uBAAuB,wEAAY;AAC/E,QAAQ,oDAAS;AACjB,QAAQ,iDAAM;AACd;AACA,QAAQ,8EAAmB;AAC3B;;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,YAAY,wBAAwB;AACpC,YAAY,2BAA2B;AACvC,YAAY,YAAY;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,YAAY,4BAA4B;AACxC;AACA;AACA;AACA,aAAa;AACb;;AAEA;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,qCAAqC,WAAW,iBAAiB;AACjE;AACA;AACA,mEAAmE;AACnE,yCAAyC,gEAAyB,GAAG,mDAAmD,sCAAsC;;AAE9J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,MAAM;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,iDAAiD,+DAAoB;AACrE;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;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,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA,6DAA6D,kCAAkC,sDAAe,CAAC,oEAAmB;AAClI,sCAAsC,gEAAyB,GAAG,gDAAgD,mCAAmC;AACrJ,kBAAkB,iDAAU,GAAG,iDAAU,uBAAuB,oEAAY;AAC5E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,qCAAqC,gEAAyB,GAAG,+CAA+C,kCAAkC;;AAElJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE,2CAA2C,gEAAyB,GAAG,qDAAqD,wCAAwC;;AAEpK;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,4BAA4B;AAC9C;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,iDAAiD;AACjD,gCAAgC,gEAAyB,GAAG,0CAA0C,6BAA6B;;AAEnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,gCAAgC,sCAAsC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,6BAA6B,sDAAe;AAC/F,iCAAiC,gEAAyB,GAAG,2CAA2C,8BAA8B;AACtI,aAAa,iDAAU,GAAG,iDAAU;AACpC;;AAEA;AACA;AACA,oCAAoC,sCAAsC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA,iCAAiC;AACjC;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;AACA;AACA;AACA;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,qCAAqC,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB;AACzN,wCAAwC,+DAAwB,GAAG,sRAAsR,6YAA6Y;AACtuB,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,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,qBAAqB,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AACrD,IAAI,iDAAU,uBAAuB,qDAAU;AAC/C,QAAQ,oDAAS;AACjB;AACA;;AAEA;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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,SAAS;AACT;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;;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,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;AACA;AACA;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;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0CAAO;AAClC;AACA;AACA;AACA;AACA,4CAA4C,yCAAyC;AACrF;AACA;AACA;AACA,gDAAgD,kCAAkC;AAClF;AACA;AACA;AACA;AACA,gDAAgD,mCAAmC;AACnF;AACA;AACA;AACA,mEAAmE;AACnE,yCAAyC,gEAAyB,GAAG,mDAAmD,sCAAsC;;AAE9J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0CAAO;AACnC;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE,2CAA2C,gEAAyB,GAAG,qDAAqD,wCAAwC;;AAEpK;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,2BAA2B,0CAAO;AAClC;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,+BAA+B,2CAAK;AACpC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,+CAA+C;AAC/D,sCAAsC,sEAAU;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,qCAAqC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,yBAAyB;AACvD,uDAAuD,6BAA6B;AACpF;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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,+DAA+D;AAC/D,uCAAuC,gEAAyB,GAAG,iDAAiD,oCAAoC;;AAExJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;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,mCAAmC;AACnC;AACA,aAAa;AACb;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;AAC5C;AACA;AACA;AACA;AACA,SAAS,GAAG,0DAAS;AACrB;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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sEAAU;AAC3B;AACA;AACA;AACA,iBAAiB,qEAAS;AAC1B;AACA;AACA;AACA;AACA;AACA,iBAAiB,0EAAc;AAC/B;AACA;AACA;AACA;AACA;AACA,iBAAiB,wEAAY;AAC7B;AACA;AACA;AACA;AACA;AACA,iBAAiB,2EAAe;AAChC;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,0EAAc;AAC/B;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,yEAAa;AAC9B;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,iBAAiB,sEAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;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,iDAAiD,mBAAmB;AACpE;AACA;AACA;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA,qDAAqD,uBAAuB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,oCAAoC,sDAAe,CAAC,iDAAa,GAAG,sDAAe,oBAAoB,sDAAe,uBAAuB,sDAAe,wBAAwB,sDAAe,aAAa,sDAAe,eAAe,sDAAe,CAAC,8EAA0B,GAAG,sDAAe,sBAAsB,sDAAe,oBAAoB,sDAAe,CAAC,4DAAwB,GAAG,sDAAe;AAC9d,wCAAwC,gEAAyB,GAAG,kDAAkD,qCAAqC;AAC3J,oBAAoB,iDAAU,GAAG,8CAAO,KAAK,uDAAQ;AACrD,IAAI,iDAAU,uBAAuB,iDAAM;AAC3C;AACA;AACA;AACA;AACA;AACA,QAAQ,8EAAmB;AAC3B;AACA;AACA,QAAQ,4DAAiB;AACzB;AACA;;AAEA;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,mCAAmC,WAAW;AAC9C;AACA;AACA,kBAAkB,YAAY,IAAI,SAAS,GAAG,SAAS;AACvD;AACA;AACA,iDAAiD;AACjD,gCAAgC,gEAAyB,GAAG,0CAA0C,6BAA6B;AACnI,YAAY,iDAAU,GAAG,iDAAU;AACnC;;AAEA;AACA;AACA;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,aAAa,8BAA8B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE,wCAAwC,gEAAyB,GAAG,kDAAkD,qCAAqC;;AAE3J;AACA;AACA;AACA;AACA;AACA,2BAA2B,0CAAO;AAClC;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,kCAAkC,gEAAyB,GAAG,+CAA+C;;AAE7G;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;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAS;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E,6CAA6C,gEAAyB,GAAG,uDAAuD,0CAA0C;;AAE1K;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E;AAC7E,8CAA8C,gEAAyB,GAAG,wDAAwD,2CAA2C;;AAE7K;AACA;AACA,mBAAmB,wDAAW;AAC9B;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB,8CAA8C,MAAM;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,yBAAyB;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;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,oCAAoC,4BAA4B;AAChE;AACA;AACA;AACA,kCAAkC,0BAA0B;AAC5D;AACA;AACA;AACA,gEAAgE,yBAAyB;AACzF;AACA;AACA,yCAAyC;AACzC,mCAAmC;AACnC,qCAAqC;AACrC,2DAA2D;AAC3D,2CAA2C;AAC3C,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,mCAAmC;AACvE;AACA;AACA;AACA;AACA,2BAA2B,mCAAmC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qCAAqC;AAChE;AACA;AACA;AACA;AACA;AACA,gGAAgG,8BAA8B;AAC9H;AACA;AACA;AACA;AACA;AACA,yFAAyF,6BAA6B;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,4BAA4B;AAClG;AACA;AACA;AACA;AACA;AACA,mCAAmC,uDAAY;AAC/C;AACA;AACA;AACA;AACA,gCAAgC,uDAAY;AAC5C;AACA,0EAA0E,yBAAyB;AACnG;AACA;AACA,8BAA8B,uDAAY;AAC1C;AACA,6EAA6E,0BAA0B;AACvG;AACA;AACA,8BAA8B,uDAAY;AAC1C;AACA;AACA;AACA,mCAAmC,uDAAY;AAC/C;AACA;AACA,2BAA2B,yCAAyC;AACpE;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA,2BAA2B,yCAAyC;AACpE;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA,2BAA2B,yCAAyC;AACpE;AACA,wBAAwB,uDAAY;AACpC;AACA;AACA,2BAA2B,yCAAyC;AACpE;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA,2BAA2B,yCAAyC;AACpE;AACA,uBAAuB,uDAAY;AACnC;AACA,qEAAqE,iCAAiC;AACtG;AACA,6BAA6B,uDAAY;AACzC;AACA,6DAA6D,iCAAiC;AAC9F;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA,gCAAgC,uDAAY;AAC5C;AACA;AACA;AACA,iCAAiC,uDAAY;AAC7C;AACA;AACA;AACA,0CAA0C,uDAAY;AACtD;AACA;AACA;AACA,sCAAsC,uDAAY;AAClD;AACA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA,gCAAgC,uDAAY;AAC5C;AACA;AACA;AACA;AACA,iCAAiC,uDAAY;AAC7C;AACA;AACA;AACA,+BAA+B,uDAAY;AAC3C;AACA;AACA;AACA,iCAAiC,uDAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD;AACA;AACA;AACA,2BAA2B,oDAAS;AACpC,0BAA0B,oDAAS;AACnC;AACA;AACA;AACA,SAAS;AACT,wBAAwB,8DAAM;AAC9B;AACA;AACA;AACA;AACA,iCAAiC,+CAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2EAAe;AACvB,iEAAiE,KAAK;AACtE;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB,4EAAY;AAC5B;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,+BAA+B,2CAAK;AACpC;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;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,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA,iCAAiC,4EAAY;AAC7C;AACA;AACA;AACA;AACA,2CAA2C,8BAA8B;AACzE,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,wCAAwC,8BAA8B;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mDAAY;AACxB,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,yBAAyB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,0BAA0B;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,gBAAgB,+BAA+B;AAC/C,gBAAgB,eAAe;AAC/B;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;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,yEAAyE,mBAAmB;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,4BAA4B,8DAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,wDAAS;AACpD,4EAA4E,sBAAsB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO,IAAI,KAAK;AACpC;AACA;AACA,gCAAgC,mDAAY;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,6CAA6C,0EAAU;AACvD;AACA;AACA,YAAY,0EAAU;AACtB;AACA;AACA,YAAY,yEAAS;AACrB;AACA;AACA,YAAY,yEAAS;AACrB,4EAA4E,YAAY;AACxF;AACA,YAAY,yEAAS;AACrB,2EAA2E,qDAAI;AAC/E;AACA,YAAY,0EAAU;AACtB;AACA;AACA;AACA,aAAa,oBAAoB;AACjC;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,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,yEAAyE,yCAAyC;AAClH;AACA;AACA,2CAA2C,yCAAyC;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,0BAA0B;AAC7E,SAAS;AACT;AACA;AACA,yDAAyD,yCAAyC;AAClG;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,yCAAyC;AACzF;AACA,eAAe,WAAW,6BAA6B,yCAAyC;AAChG;AACA;AACA;AACA,6CAA6C,sDAAS;AACtD;AACA,6EAA6E,GAAG;AAChF,wBAAwB,sDAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,gCAAgC;AAC5F,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,mBAAmB;AAClC,eAAe,WAAW,6BAA6B,yCAAyC;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,wCAAwC;AAClE;AACA,gBAAgB,SAAS;AACzB;AACA,sBAAsB,wCAAwC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA,gDAAgD,4BAA4B;AAC5E;AACA;AACA;AACA;AACA;AACA,4DAA4D,iCAAiC;AAC7F,uBAAuB,4BAA4B;AACnD;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,8BAA8B;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,+BAA+B,IAAI;AACnC;AACA;AACA;AACA,QAAQ;AACR;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI;AACjC;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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;AACA;AACA;AACA;AACA;AACA,YAAY,4EAAY;AACxB,2DAA2D,cAAc;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,qDAAI;AACzF;AACA;AACA;AACA,+EAA+E,SAAS;AACxF;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,QAAQ;AACvB,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,cAAc;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,eAAe;AAChE;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,cAAc,yCAAyC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,wBAAwB;AAC/D;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA,SAAS;AACT;AACA,0BAA0B,wBAAwB;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,oCAAoC,gCAAgC;AACpE;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,yBAAyB,wDAAS;AAClC,8CAA8C,OAAO;AACrD;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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,+BAA+B,2CAAK,sBAAsB,oDAAG,YAAY,uEAAuE,4BAA4B,oDAAG;AAC/K;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,8BAA8B;AAC5C;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,gBAAgB,4EAAY;AAC5B;AACA,wDAAwD,cAAc;AACtE;AACA,iBAAiB;AACjB;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,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;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;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uDAAM;AACxB;AACA;AACA;AACA,wFAAwF,uDAAM,uCAAuC,0DAAS,gDAAgD,qDAAI;AAClM;AACA;AACA;AACA,4CAA4C,oDAAG;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,GAAG,uDAAM,2BAA2B,0DAAS;AACtD;AACA,QAAQ,0DAAS,cAAc,uDAAM,sCAAsC,uDAAM;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,YAAY,4EAAY;AACxB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,YAAY,wDAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,qDAAI;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kCAAkC;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,kCAAkC,oBAAoB;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,iEAAiE,oCAAoC,+DAAwB,yBAAyB,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,6BAA6B,+DAAwB,eAAe,+DAAwB,iBAAiB,+DAAwB,cAAc,+DAAwB,qBAAqB,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,gBAAgB,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,qBAAqB,+DAAwB,oBAAoB,+DAAwB,yBAAyB,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,wBAAwB,+DAAwB,qBAAqB,+DAAwB,qBAAqB,+DAAwB,eAAe,+DAAwB,wBAAwB,+DAAwB,sBAAsB,+DAAwB,wBAAwB,+DAAwB,oBAAoB,+DAAwB,CAAC,8EAA0B;AACpnC,uCAAuC,+DAAwB,GAAG,yIAAyI;AAC3M,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,yDAAyD;AAChE,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,iFAAiF;AACxF,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,2tBAA2tB,aAAa,4nBAA4nB,0CAA0C,gEAAyB;AAC17C;AACA,YAAY,8EAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,sEAAW;AACpC;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,6BAA6B,yDAAU;AACvC,aAAa;AACb;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,kEAA2B,4CAA4C,YAAY;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,YAAY;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,YAAY;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,g4HAAg4H,2DAA2D;AACj8H,QAAQ,gEAAyB;AACjC,QAAQ,wDAAiB;AACzB,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,MAAM;AACN,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,4BAA4B,oCAAoC,kDAAW,oHAAoH,8EAAyB,4EAA4E,wCAAwC;AACnV,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,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;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,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,IA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ACd;AACA,iDAAU;AACV,IAAI,wDAAS,aAAa,eAAe;AACzC,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA,iDAAU;AACV,IAAI,wDAAS,eAAe,cAAc;AAC1C,IAAI,iDAAU,gBAAgB,qDAAU;AACxC;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,0CAA0C,iDAAU,GAAG,iDAAU;AACjE,QAAQ,qDAAU;AAClB;AACA;AACA;AACA;AACA;AACA,QAAQ,oDAAS;AACjB;AACA,QAAQ,iDAAM;AACd;AACA;AACA;AACA,QAAQ,4DAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8EAAmB;AAC3B;;AAEA;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;AACA;AACA;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qDAAqD;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC,uBAAuB;AAC7D;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,+FAA+F,MAAM;AACrG;AACA;AACA,mCAAmC,YAAY,wCAAwC,OAAO;AAC9F;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,iCAAiC,+CAAY;AAC7C,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,+BAA+B,2CAAK;AACpC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT,sEAAsE,KAAK;AAC3E;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,mCAAmC,+CAAS,8CAA8C,oDAAG,2BAA2B,uDAAM,qCAAqC,oDAAG;AACtK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,uCAAuC,2CAAK,CAAC,+CAAS,oDAAoD,+CAAS,6DAA6D,uDAAM,6BAA6B,oDAAG,qDAAqD,oDAAG;AAC9Q;AACA,uCAAuC,+CAAS,oDAAoD,uDAAM;AAC1G;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,uCAAuC,+CAAS,qDAAqD,uDAAM,8BAA8B,yEAAa,sBAAsB,uEAAW;AACvL,kDAAkD,yEAAa;AAC/D;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,uDAAM,kCAAkC,uDAAM;AAClG;AACA;AACA;AACA,SAAS,GAAG,oDAAG;AACf;AACA,sDAAsD,uDAAM;AAC5D;AACA,sDAAsD,uDAAM;AAC5D;AACA;AACA,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,2CAAK;AACpB,kBAAkB,uDAAM;AACxB,kBAAkB,oDAAG,wCAAwC,uDAAM;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mDAAmD,uDAAM,yCAAyC,sDAAK;AACvG;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,cAAc;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,0BAA0B;AAC1C;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,qBAAqB;AACrB,SAAS;AACT;AACA;AACA;AACA;AACA,cAAc,2BAA2B;AACzC;AACA;AACA;AACA,yCAAyC,cAAc;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oDAAS;AAC5C;AACA;AACA;AACA,iDAAiD,oBAAoB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,6BAA6B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,0BAA0B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sBAAsB;AAC5C;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,yDAAyD,gCAAgC,+DAAwB,0BAA0B,+DAAwB,6BAA6B,+DAAwB,kBAAkB,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,qBAAqB,+DAAwB,iBAAiB,+DAAwB,eAAe,+DAAwB,yBAAyB,+DAAwB,qBAAqB,+DAAwB,wBAAwB,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,yBAAyB,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,cAAc,+DAAwB;AACnyB,mCAAmC,+DAAwB,GAAG,8GAA8G;AAC5K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AAK;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,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,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,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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,6CAA6C,+DAAwB,CAAC,8EAA0B;AACnL,gDAAgD,+DAAwB,GAAG,sGAAsG,gEAAyB;AAC1M;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,wEAAiC,GAAG;AAChD,4DAA4D,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AAC7H;;AAEA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,0CAA0C,+DAAwB,CAAC,8EAA0B;AAC1K,6CAA6C,+DAAwB,GAAG,oFAAoF,gEAAyB;AACrL;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,wEAAiC,sFAAsF,oBAAoB;AACvJ,sDAAsD,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AACvH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,qCAAqC,+DAAwB,CAAC,8EAA0B;AAC3J,wCAAwC,+DAAwB,GAAG,0JAA0J;AAC7N,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,oHAAoH,kZAAkZ;AACzhB,QAAQ,wDAAiB;AACzB,MAAM;AACN,QAAQ,wDAAiB;AACzB,OAAO,4BAA4B,QAAQ,qDAAc,+CAA+C,oBAAoB;AAC5H,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,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,qBAAqB,iDAAU,GAAG,iDAAU,uBAAuB,8EAAmB;AACtF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uFAA2B;AACnC;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,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,sCAAsC,+DAAwB;AACnI,yCAAyC,+DAAwB,GAAG,uFAAuF,oCAAoC,gRAAgR;AAC/c,QAAQ,wDAAiB;AACzB,MAAM;AACN,QAAQ,wDAAiB;AACzB,OAAO,4BAA4B,QAAQ,kDAAW,EAAE,sDAAe,EAAE,0DAAmB,2BAA2B,8DAAuB,IAAI,oBAAoB;AACtK,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,sBAAsB,iDAAU,GAAG,iDAAU;AAC7C;;AAEA;AACA;AACA;AACA,CAAC,IAAI,GAAG;AACR;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,8DAAuB;AAC1F,wCAAwC,+DAAwB,GAAG,oCAAoC,gBAAgB;AACvH,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;;AAEA;AACA,kCAAkC,2BAA2B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,wDAAwD;AAC9D,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,uFAA2B;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uFAA2B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,wEAAwE,wCAAwC;AAChH;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,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,6EAA6E,8DAAuB;AACpG,6CAA6C,+DAAwB,GAAG,oHAAoH;AAC5L,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,sFAAsF;AAC7F,QAAQ,yDAAkB;AAC1B,SAAS;AACT,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,8DAAe;AACnB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;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;AACA;AACA;AACA,2EAA2E,8DAAuB;AAClG,4CAA4C,+DAAwB,GAAG,wCAAwC,8JAA8J,aAAa,wEAAiC,GAAG;AAC9T,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,IAAI,iDAAU;AACd;;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;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,mFAAmF,6CAA6C,+DAAwB,iBAAiB,+DAAwB,CAAC,8EAA0B;AAC5N,gDAAgD,+DAAwB,GAAG,iGAAiG,4DAA4D,aAAa,wEAAiC,uUAAuU;AAC7lB,QAAQ,4DAAqB;AAC7B,QAAQ,uDAAgB;AACxB,QAAQ,0DAAmB;AAC3B,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,4BAA4B,oCAAoC,oFAA8B,8CAA8C,oBAAoB;AACvK,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,6BAA6B,iDAAU,GAAG,iDAAU;AACpD,QAAQ,8EAAmB;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA,kCAAkC,0CAAO;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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;AACA,uEAAuE,uCAAuC,+DAAwB,CAAC,8DAAiB,MAAM,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB;AAC7R,0CAA0C,+DAAwB,GAAG,iFAAiF,4CAA4C,aAAa,kEAA2B,GAAG;AAC7O,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,uBAAuB,iDAAU,GAAG,8CAAO,IAAI,mDAAI,KAAK,8CAAO,IAAI,qDAAM,CAAC,8DAAiB;AAC3F,IAAI,iDAAU,8BAA8B,iDAAM;AAClD,QAAQ,qDAAU;AAClB,QAAQ,oDAAS;AACjB;;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;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,YAAY,yEAAS;AACrB;AACA;AACA;AACA;AACA;AACA,qFAAqF,8DAAuB;AAC5G,iDAAiD,+DAAwB,GAAG,4HAA4H;AACxM,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,YAAY,gGAAgG,aAAa,wEAAiC,EAAE,kEAA2B,GAAG;AACjM,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,2DAAY,yBAAyB,eAAe;AACxD,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;;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,mFAAmF,6CAA6C,+DAAwB;AACxJ,gDAAgD,+DAAwB,GAAG,8KAA8K;AACzP,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,gCAAgC,aAAa,wEAAiC,+MAA+M;AAChT,QAAQ,6DAAsB;AAC9B,QAAQ,0DAAmB;AAC3B,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,iHAAiH,uBAAuB,oIAAoI,sCAAsC;AAC3U,QAAQ,0DAAmB;AAC3B,MAAM;AACN,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,4BAA4B,wCAAwC,oBAAoB;AAC/F,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,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,6BAA6B,iDAAU,GAAG,iDAAU;AACpD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,oDAAoD;AACpD;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,yEAAyE,8DAAuB;AAChG,2CAA2C,+DAAwB,GAAG,uCAAuC,0DAA0D,aAAa,wEAAiC,GAAG;AACxN,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;;AAEA;AACA;AACA,mBAAmB,wCAAwC;AAC3D;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,kBAAkB;AAClB;AACA;AACA;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AAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,kCAAkC,iDAAU,GAAG,iDAAU;AACzD;AACA,QAAQ,8EAAmB;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,0DAA0D;AACxE,cAAc;AACd;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,0DAA0D;AACxE,cAAc;AACd;AACA,6BAA6B;AAC7B;AACA;AACA,2EAA2E,8DAAuB;AAClG,4CAA4C,+DAAwB,GAAG,iHAAiH;AACxL,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,oCAAoC,aAAa,wEAAiC,GAAG;AACxG,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;;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,mFAAmF,6CAA6C,+DAAwB,iBAAiB,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,CAAC,4DAAwB;AAChR,gDAAgD,+DAAwB,GAAG,kGAAkG,wEAAiC,4SAA4S;AAC1f,QAAQ,4DAAqB;AAC7B,QAAQ,uDAAgB;AACxB,QAAQ,0DAAmB;AAC3B,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB,qEAAqE,6DAAsB;AACpH,OAAO,2CAA2C,qFAA4B,2CAA2C;AACzH,6BAA6B,iDAAU,GAAG,iDAAU;AACpD,QAAQ,8EAAmB;AAC3B,QAAQ,4DAAiB;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;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,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;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,qEAAqE,8DAAuB;AAC5F,yCAAyC,+DAAwB,GAAG,qCAAqC,0QAA0Q,aAAa,wEAAiC,GAAG;AACpa,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,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,oDAA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AA8B,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AAC9D,IAAI,iDAAU,uBAAuB,qDAAU;AAC/C,QAAQ,oDAAS;AACjB;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,+EAA+E,2CAA2C,+DAAwB,CAAC,2DAAuB;AAC1K,8CAA8C,+DAAwB,GAAG,oFAAoF,sCAAsC;AACnM,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,2BAA2B,iDAAU,GAAG,iDAAU,uBAAuB,2DAAgB;AACzF;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,uCAAuC,+DAAwB,cAAc,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,qBAAqB,+DAAwB,aAAa,+DAAwB,qBAAqB,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,iDAAa;AAClZ,0CAA0C,+DAAwB,GAAG,gKAAgK;AACrO,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,4QAA4Q,aAAa,gEAAyB;AACrU;AACA;AACA;AACA,aAAa,IAAI,kEAA2B,GAAG;AAC/C,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,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,GAAG,iDAAU;AAC9C,QAAQ,qDAAU;AAClB;AACA;AACA;AACA,QAAQ,oDAAS;AACjB,QAAQ,iDAAM;AACd;;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,qDAAqD,mBAAmB;AACxE;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;AACA,qEAAqE,sCAAsC,+DAAwB,aAAa,+DAAwB;AACxK,yCAAyC,+DAAwB,GAAG,6JAA6J;AACjO,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,sOAAsO,aAAa,kEAA2B,GAAG;AACpS,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,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,sBAAsB,iDAAU,GAAG,iDAAU;AAC7C;AACA;;AAEA,wBAAwB;AACxB;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;AACA,iEAAiE,oCAAoC,+DAAwB,CAAC,sEAAmB;AACjJ,wCAAwC,0DAAmB,GAAG,uDAAuD;AACrH,oBAAoB,iDAAU,GAAG,iDAAU,uBAAuB,sEAAW;AAC7E;;AAEA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,SAAS;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,0BAA0B,uDAAM;AAChC,qCAAqC,uDAAM,2BAA2B,oDAAG,6BAA6B,oDAAG,mBAAmB,0DAAS,uBAAuB,uDAAM,iCAAiC,oDAAG,gBAAgB,4DAAW;AACjO;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,eAAe,oDAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,iCAAiC,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,yBAAyB,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,4DAAwB;AAChU,oCAAoC,+DAAwB,GAAG,yHAAyH;AACxL,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,sDAAsD;AACzE,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iBAAiB,iDAAU,GAAG,iDAAU,uBAAuB,qDAAU;AACzE,QAAQ,oDAAS;AACjB;AACA,QAAQ,iDAAM;AACd,QAAQ,4DAAiB;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;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD,kCAAkC,8DAAuB,GAAG,oBAAoB;AAChF,kCAAkC,8DAAuB,GAAG,WAAW,0DAAY,GAAG,2EAAe,GAAG;;AAExG;AACA;AACA;AACA;AACA;AACA,6CAA6C,wCAAwC;AACrF,kDAAkD,wCAAwC;AAC1F;AACA;AACA,gCAAgC;AAChC;AACA,6FAA6F,kDAAkD,+DAAwB,CAAC,8EAA0B;AAClM,qDAAqD,+DAAwB,GAAG,4GAA4G,gEAAyB;AACrN;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,wEAAiC,8FAA8F,oBAAoB;AAC/J,sEAAs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ACT,IAAI,iDAAU;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,0CAA0C,+DAAwB,CAAC,2DAAuB,GAAG,+DAAwB,CAAC,mEAA+B;AAClO,6CAA6C,+DAAwB,GAAG,wFAAwF,wEAAiC,GAAG;AACpM,0BAA0B,iDAAU,GAAG,iDAAU,uBAAuB,2DAAgB;AACxF,QAAQ,mEAAwB;AAChC;;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,6DAA6D;AAC7D,qCAAqC,8DAAuB,GAAG,uBAAuB;AACtF,qCAAqC,8DAAuB,GAAG,qDAAqD;;AAEpH;AACA;AACA;AACA,6BAA6B,4GAA4G;AACzI;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,yEAAyE;;AAEzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uDAAY;AAC1C;AACA;AACA;AACA,oCAAoC;AACpC,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,YAAY,0EAAU;AACtB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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DAAY;AAChB,IAAI,yEAAY;AAChB,IAAI,uEAAW;AACf,IAAI,+EAAe;AACnB,IAAI,8EAAkB;AACtB;AACA,IAAI,wEAAY;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,qDAAqD;AACrD,iCAAiC,8DAAuB,GAAG,mBAAmB;AAC9E,iCAAiC,8DAAuB,GAAG,mCAAmC;;AAE9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;;AAErD;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,IAAI,QAAQ;AACpE,4CAA4C,uDAAM,IAAI,MAAM;AAC5D;AACA;AACA,SAAS;AACT,4CAA4C,uDAAM,IAAI,MAAM;AAC5D;AACA;AACA,SAAS;AACT,4CAA4C,uDAAM,IAAI,MAAM;AAC5D;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,sCAAsC,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB;AAChL,yCAAyC,+DAAwB,GAAG,+EAA+E,oBAAoB,aAAa,gDAAgD;AACpO,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,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,sBAAsB,iDAAU,GAAG,iDAAU,uBAAuB,qDAAU;AAC9E;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B,wBAAwB,WAAW;AACnC;AACA,0BAA0B,mBAAmB;AAC7C;AACA;AACA,sBAAsB,mBAAmB;AACzC,yBAAyB,WAAW;AACpC;AACA;AACA,2BAA2B,WAAW;AACtC,uBAAuB,WAAW;AAClC,oBAAoB,mBAAmB;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,+BAA+B,oDAAS;AACxC,gCAAgC,+CAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sEAAU;AACvC;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA,mCAAmC,KAAK;AACxC;AACA;AACA;AACA;AACA,uBAAuB,KAAK;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,gBAAgB,sCAAsC;AACtD;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,2CAA2C,mBAAmB;AAC9D;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,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,+CAAY;AAClD,4BAA4B,2CAAK;AACjC,4BAA4B,2CAAK;AACjC,2BAA2B,2CAAK;AAChC,qDAAqD,oDAAG,IAAI,mBAAmB;AAC/E;AACA;AACA;AACA;AACA;AACA,SAAS,GAAG,uDAAM,IAAI,mBAAmB,uCAAuC,0DAAS,sDAAsD,oDAAG,0BAA0B,qEAAqE,IAAI,oDAAG,mCAAmC,oDAAG,yBAAyB,0DAAS,2BAA2B,oDAAG,cAAc,0DAAS,kBAAkB,oDAAG;AAC1Y;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0DAAS,eAAe,0DAAS,cAAc,oDAAG,IAAI,YAAY,oBAAoB,uBAAuB,OAAO,YAAY;AACtJ;AACA,eAAe,wCAAE,gBAAgB,0BAA0B;AAC3D;AACA,sBAAsB,wDAAwD;AAC9E;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,4CAA4C;AACvD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,6DAA6D,kCAAkC,+DAAwB,sBAAsB,+DAAwB,mBAAmB,+DAAwB,kBAAkB,+DAAwB,wBAAwB,+DAAwB,eAAe,+DAAwB,oBAAoB,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,CAAC,4DAAwB;AAC5c,qCAAqC,+DAAwB,GAAG,0HAA0H;AAC1L,QAAQ,yDAAkB;AAC1B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,8EAA8E;AACrF,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,gXAAgX,aAAa,kEAA2B,k9FAAk9F;AAC73G,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,4BAA4B,QAAQ,qDAAc,uBAAuB,kDAAW,6CAA6C,8EAAyB,4BAA4B,qDAAc,EAAE,qDAAc,uIAAuI,oBAAoB;AACtX,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,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;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA,kBAAkB,iDAAU,GAAG,iDAAU;AACzC;AACA;AACA;AACA;AACA;AACA,QAAQ,8EAAmB;AAC3B,QAAQ,4DAAiB;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;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,0DAAS,6BAA6B,oDAAG,yBAAyB,oDAAG,IAAI,OAAO;AACvK;AACA;AACA,CAAC;AACD;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;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,SAAS;AACT;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,kDAAkD,0DAAS;AACtO,0BAA0B,kBAAkB;AAC5C;AACA;AACA;AACA,SAAS;AACT,4CAA4C,uDAAM;AAClD;AACA,4CAA4C,uDAAM;AAClD;AACA,sEAAsE,KAAK;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,yEAAyE,wCAAwC,+DAAwB,CAAC,8EAAyB,MAAM,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,yBAAyB,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,4DAAwB,GAAG,+DAAwB,CAAC,8EAA0B;AACvZ,2CAA2C,+DAAwB,GAAG,mKAAmK;AACzO,QAAQ,wDAAiB,4EAA4E,uBAAuB;AAC5H,MAAM;AACN,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,wCAAwC;AAC3D,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,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,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,wBAAwB,iDAAU,GAAG,8CAAO,IAAI,mDAAI;AACpD,IAAI,iDAAU,uBAAuB,8EAAkB;AACvD,QAAQ,qDAAU;AAClB;AACA,QAAQ,iDAAM;AACd,QAAQ,4DAAiB;AACzB,QAAQ,8EAAmB;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,sCAAsC,+DAAwB,iBAAiB,+DAAwB,sBAAsB,+DAAwB,CAAC,8EAA0B;AACrP,yCAAyC,+DAAwB,GAAG,kFAAkF,oCAAoC,iOAAiO;AAC3Z,oBAAoB,8DAAuB;AAC3C,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,uEAAuE,2DAAoB,OAAO,YAAY,yDAAkB,KAAK,YAAY,yDAAkB,KAAK,8BAA8B;AAC/N,QAAQ,uDAAgB;AACxB,QAAQ,0DAAmB;AAC3B,QAAQ,wDAAiB,8EAA8E,oEAA6B;AACpI,MAAM;AACN,QAAQ,wDAAiB,YAAY,6DAAsB;AAC3D,QAAQ,yDAAkB;AAC1B,OAAO,4BAA4B,QAAQ,qDAAc,kCAAkC,oBAAoB;AAC/G,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,sBAAsB,iDAAU,GAAG,iDAAU;AAC7C;AACA,QAAQ,8EAAmB;AAC3B;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,cAAc;AACnB;AACA;AACA,+CAA+C;AAC/C;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,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE,2EAA2E;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,+CAA+C,+DAAwB,oBAAoB,+DAAwB,iBAAiB,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,CAAC,4DAAwB;AAClU,kDAAkD,+DAAwB,GAAG,qGAAqG,kEAAkE,aAAa,gBAAgB,aAAa,gEAAyB,4rBAA4rB;AACn/B,QAAQ,4DAAqB;AAC7B,QAAQ,wD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iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,2BAA2B,iDAAU,GAAG,8CAAO,IAAI,mDAAI;AACvD,IAAI,iDAAU,uBAAuB,8EAAkB;AACvD,QAAQ,qDAAU;AAClB,QAAQ,iDAAM;AACd;AACA;AACA;AACA;AACA,QAAQ,oDAAS;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE,uCAAuC,8DAAuB,GAAG,yBAAyB;AAC1F,uCAAuC,8DAAuB,GAAG;;AAEjE;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,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;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,0BAA0B,cAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,iBAAiB;AACrD;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,qEAAqE,sCAAsC,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,oDAAgB;AA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ACA;AACA,IAAI,0DAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD,kCAAkC,8DAAuB,GAAG,oBAAoB;AAChF,kCAAkC,8DAAuB,GAAG,mCAAmC;;AAE/F;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,yCAAyC;AAC9F;AACA;AACA,yBAAyB;AACzB,sBAAsB;AACtB,sBAAsB;AACtB,oBAAoB;AACpB,mBAAmB;AACnB;AACA;AACA,+BAA+B,2CAA2C;AAC1E,iCAAiC,6CAA6C;AAC9E,iCAAiC,6CAA6C;AAC9E,+BAA+B,2CAA2C;AAC1E;AACA,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,yCAAyC,+DAAwB,oBAAoB,+DAAwB;AACxL,4CAA4C,+DAAwB,GAAG,kKAAkK;AACzO,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,aAAa,gEAAyB;AAC7C;AACA;AACA,6BAA6B,yDAAU;AACvC;AACA,YAAY,wEAAiC,qFAAqF,oBAAoB;AACtJ,iDAAU;AACV,IAAI,2DAAY,0BAA0B,eAAe;AACzD,IAAI,iDAAU;AACd;AACA,oDAAoD,iDAAU,GAAG,8CAAO,IAAI,uDAAQ,KAAK,8CAAO,IAAI,mDAAI,KAAK,8CAAO,IAAI,uDAAQ;AAChI,IAAI,iDAAU;AACd;;AAEA;AACA,sBAAsB,oBAAoB;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,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,SAAS;AACT;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,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;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,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,UAAU;AACV;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,mEAAmE,qCAAqC,+DAAwB,6BAA6B,+DAAwB,eAAe,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,oBAAoB,+DAAwB,qBAAqB,+DAAwB,qBAAqB,+DAAwB,sBAAsB,+DAAwB;AACxkB,wCAAwC,+DAAwB,GAAG,qFAAqF,4XAA4X,aAAa,kEAA2B,wlEAAwlE;AACppF,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,4BAA4B,QAAQ,kDAAW,EAAE,8DAAuB,EAAE,qDAAc,uBAAuB,qDAAc,uCAAuC,qDAAc,IAAI,uBAAuB,0BAA0B,oBAAoB;AAClQ,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,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,qBAAqB,iDAAU,GAAG,iDAAU;AAC5C;AACA,QAAQ,8EAAmB;AAC3B,QAAQ,iDAAM;AACd,QAAQ,oDAAS;AACjB,QAAQ,qDAAU;AAClB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,gCAAgC,+DAAwB,eAAe,+DAAwB;AACxJ,mCAAmC,+DAAwB,GAAG,2IAA2I;AACzM,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,sPAAsP,utCAAutC;AACh+C,QAAQ,qEAA8B;AACtC,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,mEAA4B;AACpC,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,4BAA4B,QAAQ,sDAAe,EAAE,0DAAmB,EAAE,kDAAW,EAAE,qDAAc,EAAE,qDAAc,EAAE,8DAAuB,sBAAsB,oFAA8B,EAAE,4DAAsB,EAAE,iEAA2B,EAAE,oFAA0B,EAAE,yEAAmC,EAAE,6DAAsB,EAAE,iEAA2B,IAAI,uBAAuB,6CAA6C,oBAAoB;AAChd,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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DAAY;AAChB,IAAI,gEAAmB;AACvB,IAAI,wDAAW;AACf;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,mDAAmD;AACnD,gCAAgC,8DAAuB,GAAG,kBAAkB;AAC5E,gCAAgC,8DAAuB,GAAG,mCAAmC;;AAE7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,mCAAmC,+DAAwB;AAC1H,sCAAsC,+DAAwB,GAAG,8IAA8I;AAC/M,QAAQ,wDAAiB;AACzB,OAAO,YAAY,sBAAsB,wJAAwJ;AACjM,QAAQ,wDAAiB;AACzB,MAAM;AACN,QAAQ,wDAAiB;AACzB,OAAO,eAAe,kDAAW,EAAE,8DAAuB,qBAAqB;AAC/E,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,mBAAmB,iDAAU,GAAG,iDAAU;AAC1C;;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,+BAA+B,2CAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA,gDAAgD,aAAa;AAC7D;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,uCAAuC,6CAAU;AACjD,4BAA4B,qDAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,4CAA4C;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,8DAAuB;AAC9F,0CAA0C,+DAAwB,GAAG,sCAAsC,gGAAgG;AAC3M,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;;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,2DAA2D,0CAA0C,qDAAqD,wFAAwF,mEAA4B,+DAA+D;AAC7U,6CAA6C,+DAAwB,GAAG,0CAA0C,wEAAiC,GAAG;;AAEtJ;AACA;AACA,qDAAqD,qCAAqC;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;AACA;AACA,+EAA+E,2CAA2C,+DAAwB;AAClJ,8CAA8C,+DAAwB,GAAG,iGAAiG,kEAAkE,yDAAyD,wEAAiC,GAAG;AACzU,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,2BAA2B,iDAAU,GAAG,iDAAU;AAClD;;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;;AAEA;AACA;AACA,kCAAkC,qCAAqC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4BAA4B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,2CAA2C,+DAAwB;AAClJ,8CAA8C,+DAAwB,GAAG,iGAAiG,sEAAsE,yDAAyD,wEAAiC,GAAG;AAC7U,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,2BAA2B,iDAAU,GAAG,iDAAU;AAClD;;AAEA;AACA;AACA,+CAA+C,qCAAqC;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4BAA4B;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,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,yCAAyC,+DAAwB;AAC5I,4CAA4C,+DAAwB,GAAG,6FAA6F,oEAAoE,uDAAuD,wEAAiC,GAAG;AACnU,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,yBAAyB,iDAAU,GAAG,iDAAU;AAChD;;AAEA;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,YAAY,0EAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,yBAAyB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mEAAO,UAAU,uBAAuB;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,qBAAqB;AACrB;AACA,mBAAmB,mEAAO,UAAU,mBAAmB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uEAAW;AAC1B;AACA;AACA,uEAAuE,8DAAuB;AAC9F,0CAA0C,+DAAwB,GAAG,sCAAsC,wDAAwD,aAAa,kEAA2B,GAAG;AAC9M,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,0DAA0D;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE,gBAAgB,+BAA+B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,0BAA0B,kBAAkB,kCAAkC;AAC5F,oBAAoB,4BAA4B,oCAAoC,8BAA8B;AAClH;AACA;AACA;AACA;AACA;AACA,8BAA8B,8DAAM;AACpC,8BAA8B,8DAAM;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8DAAM;AACpC,8BAA8B,8DAAM;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,4CAA4C,+DAAwB;AACrJ,+CAA+C,+DAAwB,GAAG,mGAAmG,iFAAiF,0DAA0D,wEAAiC,GAAG;AAC5V,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,4BAA4B,iDAAU,GAAG,iDAAU;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8DAA8D;AAC9E,4CAA4C,oEAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yCAAyC;AACzD;AACA;AACA;AACA;AACA;AACA,8BAA8B,2BAA2B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,0BAA0B,kBAAkB,kCAAkC;AAC5F,oBAAoB,4BAA4B,oCAAoC,8BAA8B;AAClH;AACA;AACA;AACA;AACA;AACA,wBAAwB,8DAAM;AAC9B,wBAAwB,8DAAM;AAC9B,8BAA8B,8DAAM;AACpC,8BAA8B,8DAAM;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8DAAM;AACpC,8BAA8B,8DAAM;AACpC;AACA;AACA;AACA;AACA;AACA,wBAAwB,8DAAM;AAC9B,wBAAwB,8DAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,uCAAuC,+DAAwB;AACtI,0CAA0C,+DAAwB,GAAG,yFAAyF,gGAAgG,qDAAqD,wEAAiC,GAAG;AACvV,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,uBAAuB,iDAAU,GAAG,iDAAU;AAC9C;;AAEA;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,6BAA6B,8DAAM;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,qEAAqE,sCAAsC,+DAAwB;AACnI,yCAAyC,+DAAwB,GAAG,uFAAuF,4FAA4F,aAAa,0CAA0C,oDAAoD,kEAA2B,GAAG;AAChY,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;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,IAAI,iDAAU;AACd;AACA,sBAAsB,iDAAU,GAAG,iDAAU;AAC7C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,cAAc;AACxC,SAAS;AACT;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,0BAA0B,oBAAoB;AAC9C,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,uDAAY;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;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,8DAAM;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,8DAAM;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,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,sCAAsC,+DAAwB;AACnI,yCAAyC,+DAAwB,GAAG,uFAAuF,sGAAsG,aAAa,4CAA4C,yCAAyC;AACnW,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,sBAAsB,iDAAU,GAAG,iDAAU;AAC7C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kBAAkB;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,oCAAoC,KAAK;AACzC,mCAAmC,IAAI;AACvC,qCAAqC,MAAM;AAC3C,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,+GAA+G,gDAAgD;AAC/J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,mCAAmC,+DAAwB,CAAC,8EAAyB,GAAG,+DAAwB,oBAAoB,+DAAwB,CAAC,4DAAwB;AACpP,sCAAsC,+DAAwB,GAAG,6JAA6J;AAC9N,QAAQ,yDAAkB;AAC1B,SAAS;AACT,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,mBAAmB,iDAAU,GAAG,iDAAU,uBAAuB,8EAAkB;AACnF;AACA,QAAQ,4DAAiB;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,6EAA6E;AAC7E,6CAA6C,+DAAwB,GAAG,4LAA4L;AACpQ,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,gBAAgB,qFAAqF,oBAAoB;AAC5I,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,oDAAK;AACT,IAAI,iDAAU;AACd;;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,gCAAgC,wCAAwC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iBAAiB;AAC7B;AACA;AACA,YAAY,yBAAyB;AACrC;AACA,YAAY,WAAW;AACvB;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,oCAAoC,8DAAuB,GAAG,sBAAsB;AACpF,oCAAoC,8DAAuB,GAAG;AAC9D,YAAY,0DAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAkB;AAC9B;AACA,YAAY;;AAEZ,0DAA0D,yFAAwB;AAClF;AACA,sDAAsD,qCAAqC,gDAAgD,8EAA8E,mEAA4B,qDAAqD;AAC1S,wCAAwC,+DAAwB,GAAG,iFAAiF,wEAAiC,iFAAiF,oBAAoB;;AAE1R;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,wBAAwB;AACxB;AACA,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ;AACA,8DAA8D,2FAA0B;AACxF;AACA;AACA;AACA;AACA,uEAAuE,uCAAuC,+DAAwB,CAAC,sDAAkB;AACzJ,0CAA0C,+DAAwB,GAAG,0FAA0F,wEAAiC,GAAG;AACnM,uBAAuB,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AACvD,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,wBAAwB;AAC9F;AACA;AACA;AACA,8DAA8D,aAAa,GAAG,eAAe;AAC7F;AACA;AACA;AACA,8DAA8D,aAAa,GAAG,eAAe;AAC7F;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,sBAAsB,cAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oBAAoB;AACjD,oCAAoC,yBAAyB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B;AACpD;AACA;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,wBAAwB;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,4BAA4B;AACzG;AACA,8CAA8C,mFAAkB;AAChE;AACA;AACA;AACA;AACA;AACA,2BAA2B,oDAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,oBAAoB;AAClC;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;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,SAAS;AACT;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,qDAAqD,yBAAyB;AAC9E;AACA,oDAAoD,qDAAI;AACxD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,qDAAI;AACrD;AACA;AACA,uDAAuD,+BAA+B,+DAAwB,cAAc,+DAAwB,kBAAkB,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,qDAAiB;AACzP,kCAAkC,+DAAwB,GAAG,mIAAmI;AAChM,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,YAAY,sBAAsB,aAAa,wEAAiC,2EAA2E,oBAAoB;AACtL,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,8DAAe;AACnB,IAAI,iDAAU,gBAAgB,oDAAS;AACvC;AACA,iDAAU;AACV,IAAI,2DAAY,uBAAuB,eAAe;AACtD,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY,yBAAyB,eAAe;AACxD,IAAI,iDAAU;AACd;AACA,eAAe,iDAAU,GAAG,iDAAU;AACtC;AACA,QAAQ,iDAAM;AACd,QAAQ,qDAAU;AAClB;;AAEA;AACA;AACA;AACA,wBAAwB,6CAA6C;AACrE;AACA,kBAAkB,wCAAwC;AAC1D,yBAAyB,4BAA4B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,oEAAM;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,sCAAsC,+DAAwB,cAAc,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,8EAA0B,GAAG,+DAAwB,CAAC,iDAAa;AACtU,yCAAyC,+DAAwB,GAAG,6JAA6J;AACjO,QAAQ,wDAAiB,0EAA0E,6BAA6B;AAChI,MAAM;AACN,QAAQ,yDAAkB;AAC1B,OAAO,aAAa,wEAAiC,GAAG;AACxD,iDAAU;AACV,IAAI,2DAAY;AAChB,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,sBAAsB,iDAAU,GAAG,iDAAU;AAC7C,QAAQ,qDAAU;AAClB,QAAQ,oDAAS;AACjB,QAAQ,8EAAmB;AAC3B,QAAQ,iDAAM;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wCAAwC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4BAA4B;AACxC;AACA;AACA,YAAY,yBAAyB;AACrC;AACA,YAAY,WAAW;AACvB;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,+BAA+B,8DAAuB,GAAG,iBAAiB;AAC1E,+BAA+B,8DAAuB,GAAG;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,mBAAmB;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,KAAK;AACL;AACA;AACA;AACA;AACA,WAAW,mEAAO,aAAa,8BAA8B;AAC7D;AACA;AACA,+EAA+E,8BAA8B;AAC7G;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,oDAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mDAAY;AACtC,yDAAyD,qDAAI;AAC7D;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AAC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CA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;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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BAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;;AAEhB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA,iCAAiC,yEAA8B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,8EAA0B,EAAE,IAAI,2BAA2B,IAAI,MAAM,4DAAwB,EAAE,IAAI,UAAU;AACnJ,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA,iCAAiC,yEAA8B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,8EAA0B,EAAE,IAAI,2BAA2B,IAAI,MAAM,4DAAwB,EAAE,IAAI,UAAU;AACnJ,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA,iCAAiC,yEAA8B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sDAAsD;AAClF,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yCAAyC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sDAAsD;AACtF;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,8EAA0B,EAAE,IAAI,MAAM,4DAAwB,EAAE,IAAI,2BAA2B,IAAI,IAAI;AAC7I,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,uBAAuB,uCAAuC;AAC9D,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,cAAc,uBAAuB;AACrC;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,8EAA0B,EAAE,IAAI,2BAA2B,IAAI,MAAM,iDAAa,EAAE,IAAI,MAAM,4DAAwB,EAAE,IAAI,IAAI;AACtK,kBAAkB,oDAAS;AAC3B,mBAAmB,oFAAuB,IAAI,cAAc;AAC5D,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA,iCAAiC,yEAA8B;AAC/D;AACA,6BAA6B,yBAAyB,oBAAoB,uBAAuB,UAAU,GAAG,aAAa,4BAA4B;AACvJ,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,8EAA0B,EAAE,IAAI,MAAM,4DAAwB,EAAE,IAAI,2BAA2B,IAAI,IAAI;AAC7I,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA,iCAAiC,yEAA8B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,8EAA0B,EAAE,IAAI,MAAM,4DAAwB,EAAE,IAAI,2BAA2B,IAAI,IAAI;AAC7I,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,mDAAQ;AACtB;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB;AACtB,eAAe,mDAAmD,gEAAyB,gBAAgB,wNAAwN,0DAAY;AAC/U,QAAQ,yEAAY;AACpB,QAAQ,uEAAW;AACnB,QAAQ,+EAAe;AACvB,QAAQ,8EAAkB,gBAAgB,wEAAY,4MAA4M,IAAI;AACtQ,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qDAAiB,EAAE,IAAI,0BAA0B,IAAI,IAAI;AAC/F,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;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,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,6BAA6B;AAC7B;AACA,0EAA0E,qBAAqB;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,mEAAmE,qBAAqB;AACxF;AACA;AACA,+FAA+F,yBAAyB;AACxH;AACA;AACA;AACA,2DAA2D,eAAe;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,0EAA0E,qBAAqB;AAC/F;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,KAAK,iBAAiB,UAAU,0BAA0B,IAAI,uBAAuB,IAAI,sBAAsB,IAAI,4BAA4B,IAAI,mBAAmB,IAAI,wBAAwB,IAAI,MAAM,8EAA0B,EAAE,IAAI,MAAM,4DAAwB,EAAE,IAAI,IAAI;AACpR,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,uDAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,8EAAyB;AAC/D,sBAAsB,+CAAI;AAC1B,aAAa,GAAG,IAAI,MAAM,qDAAiB,EAAE,IAAI,6BAA6B,IAAI,MAAM,iDAAa,EAAE,IAAI,MAAM,4DAAwB,EAAE,IAAI,MAAM,8EAA0B,EAAE,IAAI,IAAI;AACzL,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,uDAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA;AACA,wBAAwB,mDAAmD;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,qBAAqB,IAAI,0BAA0B,IAAI,MAAM,8EAA0B,EAAE,IAAI,IAAI;AACjI,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;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,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU;AAChC,sBAAsB,mDAAQ;AAC9B,aAAa,GAAG,IAAI,qBAAqB,IAAI,MAAM,8EAA0B,EAAE,IAAI,MAAM,4DAAwB,EAAE,IAAI,IAAI;AAC3H,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,YAAY,IAAI;AACtC,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,YAAY,IAAI;AACtC,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;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,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,8EAA0B,EAAE,IAAI,IAAI;AAC1E,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;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,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,8EAA0B,EAAE,IAAI,IAAI;AAC1E,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;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,aAAa;AACb,KAAK,iBAAiB,YAAY,IAAI;AACtC,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;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,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,8EAA0B,EAAE,IAAI,IAAI;AAC1E,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1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AC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,iDAAiD,qBAAqB,wBAAwB;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,wCAAwC;AAC1E;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,+CAA+C,yBAAyB,wBAAwB;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,yBAAyB,wBAAwB;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,iCAAiC,IAAI,mBAAmB,IAAI,MAAM,8EAA0B,EAAE,IAAI,MAAM,iDAAa,EAAE,IAAI,MAAM,oDAAgB,EAAE,IAAI,MAAM,qDAAiB,EAAE,IAAI,wBAAwB,IAAI,yBAAyB,IAAI,yBAAyB,IAAI,0BAA0B,IAAI,wBAAwB,IAAI,IAAI;AACxW,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG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,sCAAsC;;AAE9J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,YAAY,EAAE,wCAAwC,EAAE,MAAM;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE,0CAA0C,gEAAyB,GAAG,oDAAoD,uCAAuC;;AAEjK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yCAAO;AAClC;AACA;AACA;AACA;AACA;AACA,mFAAmF;AACnF,iDAAiD,gEAAyB,GAAG,2DAA2D,8CAA8C;;AAEtL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,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,uCAAuC;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,mCAAmC,4BAA4B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,4BAA4B;AACjF;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8HAA8H,8DAAM;AACpI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,UAAU;AAChC,uBAAuB,UAAU;AACjC,sBAAsB,UAAU;AAChC;AACA;AACA;;AAEA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,YAAY;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,gBAAgB,OAAO;AACvB;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;AACA;AACA,2BAA2B;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yCAAO;AAClC,yBAAyB,yCAAO;AAChC,0BAA0B,yCAAO;AACjC,2BAA2B,yCAAO;AAClC,4BAA4B,yCAAO;AACnC;AACA;AACA,aAAa,wEAAY;AACzB,aAAa,0EAAc;AAC3B,aAAa,0EAAc;AAC3B;AACA;AACA,aAAa;AACb,aAAa,2EAAe;AAC5B;AACA;AACA,aAAa;AACb,aAAa,qEAAS;AACtB,aAAa,oEAAQ;AACrB,aAAa,sEAAU;AACvB,aAAa,sEAAU;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,mBAAmB;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,kBAAkB,6FAA6F;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,oCAAoC,sDAAe,CAAC,6EAA0B;AAC/I,wCAAwC,gEAAyB,GAAG,kDAAkD,qCAAqC;AAC3J,oBAAoB,iDAAU,GAAG,iDAAU,uBAAuB,6EAAmB;AACrF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yCAAO;AAClC;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA,qEAAqE;AACrE,0CAA0C,gEAAyB,GAAG,oDAAoD,uCAAuC;;AAEjK;AACA,mFAAmF,+BAA+B;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,QAAQ,KAAK,gBAAgB;AAC5G;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,0BAA0B,mBAAmB;AAC7C,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0BAA0B;AAChD,sBAAsB,oBAAoB;AAC1C,sBAAsB;AACtB;AACA,aAAa;AACb,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,wCAAwC,+DAAwB,CAAC,sDAAkB;AAC5J,2CAA2C,+DAAwB,GAAG,iFAAiF;AACvJ,wBAAwB,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AACxD,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,kDAAkD,+DAAwB,CAAC,sDAAkB;AAC1L,qDAAqD,+DAAwB,GAAG,qGAAqG;AACrL,kCAAkC,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AAClE,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE,yCAAyC,gEAAyB,GAAG,mDAAmD,sCAAsC;;AAE9J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE,0CAA0C,gEAAyB,GAAG,oDAAoD,uCAAuC;;AAEjK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yCAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA,+DAA+D;AAC/D,uCAAuC,gEAAyB,GAAG,iDAAiD,oCAAoC;;AAExJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,yEAAyE;AACzE,4CAA4C,gEAAyB,GAAG,sDAAsD,yCAAyC;;AAEvK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,6EAAmB;AACvB;AACA,iBAAiB,qEAAW;AAC5B;AACA,KAAK;AACL;AACA;AACA,qBAAqB,yDAAU;AAC/B,KAAK;AACL;AACA;AACA,qBAAqB,yDAAU;AAC/B;AACA;AACA;AACA;AACA,6DAA6D,2BAA2B;AACxF;AACA;AACA,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ;AACA;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,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA,4BAA4B,uDAAY;AACxC;AACA,6EAA6E,8BAA8B;AAC3G;AACA;AACA,iCAAiC,uDAAY;AAC7C;AACA,+DAA+D,8BAA8B;AAC7F;AACA,4BAA4B,uDAAY;AACxC;AACA;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD;AACA,uFAAuF,8BAA8B;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uDAAY;AACxC;AACA,gGAAgG,8BAA8B;AAC9H;AACA,+BAA+B,uDAAY;AAC3C;AACA,iEAAiE,8BAA8B;AAC/F;AACA;AACA,2BAA2B,uDAAY;AACvC;AACA,iEAAiE,8BAA8B;AAC/F;AACA;AACA,8BAA8B,uDAAY;AAC1C;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA,iCAAiC,uDAAY;AAC7C;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA,mCAAmC,uDAAY;AAC/C;AACA;AACA;AACA,gCAAgC,uDAAY;AAC5C;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA,gCAAgC,uDAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,sBAAsB,mBAAmB;AACzC,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;AACA,2BAA2B,8BAA8B;AACzD;AACA,8BAA8B,wCAAE;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gIAAgI,4BAA4B;AAC5J,+GAA+G,gDAAgD,wCAAwC,+CAA+C;AACtP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iDAAe;AACvC;AACA;AACA,iCAAiC,8CAAY;AAC7C;AACA,QAAQ,2EAAe;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,uBAAuB,8BAA8B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,8BAA8B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6BAA6B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4BAA4B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,0BAA0B,yBAAyB;AACnD,iCAAiC,iBAAiB;AAClD,mCAAmC,iBAAiB;AACpD;AACA;AACA;AACA;AACA,gBAAgB,4EAAY;AAC5B;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mFAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kBAAkB,mBAAmB;AACrC,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA,kCAAkC,wCAAwC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iCAAiC;AACxD;AACA;AACA;AACA,wBAAwB,KAAK;AAC7B,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iCAAiC;AACxD;AACA;AACA;AACA,wBAAwB,KAAK;AAC7B,wBAAwB,QAAQ;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,2CAA2C;AAC3C;AACA;AACA;AACA;AACA,kCAAkC,4EAAY;AAC9C;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4EAAY;AAC5B;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,0CAA0C,4EAAY;AACtD,oCAAoC,4EAAY,qBAAqB,4EAAY;AACjF,uCAAuC,4EAAY;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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AM;AACd,QAAQ,oDAAS;AACjB;AACA,QAAQ,6EAAmB;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,8CAAY;AACzD;AACA;AACA;AACA;AACA;AACA,8BAA8B,wCAAE;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,eAAe,8DAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uDAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,2DAAU;AAC5B;AACA,mBAAmB,wCAAK;AACxB,SAAS,GAAG,oDAAG;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,SAAS;AACT,kBAAkB,yDAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,sCAAsC;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,wDAAwD;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yEAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,iBAAiB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,MAAM;AACtE;AACA,wBAAwB,MAAM;AAC9B;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,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,iCAAiC,+DAAwB,qBAAqB,+DAAwB,CAAC,iDAAa;AAC/K,oCAAoC,+DAAwB,GAAG,iFAAiF,2IAA2I,aAAa,wCAAwC,aAAa,kEAA2B,GAAG;AAC3X,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,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iBAAiB,iDAAU,GAAG,iDAAU;AACxC,QAAQ,iDAAM;AACd;;AAEA;AACA;AACA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kGAAkG,iBAAiB;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,gBAAgB,eAAe;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,mCAAmC,+DAAwB,qBAAqB,+DAAwB,CAAC,4DAAwB;AAChM,sCAAsC,+DAAwB,GAAG,iFAAiF,4GAA4G,aAAa,kEAA2B,GAAG;AACzS,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,mBAAmB,iDAAU,GAAG,iDAAU;AAC1C,QAAQ,4DAAiB;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,2CAA2C;AACnH;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,uDAAY;AAClD,iCAAiC,8CAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,4CAA4C;AAC3F;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,4CAA4C;AAC3F;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,+BAA+B,4CAAK,4BAA4B,oDAAG,uBAAuB,cAAc,sCAAsC,oDAAG,uBAAuB,eAAe;AACvL;AACA;AACA;AACA,uFAAuF,iBAAiB;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,+BAA+B,kBAAkB,yBAAyB,eAAe;AACrJ,+BAA+B;AAC/B;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,mBAAmB,yBAAyB;AAC5C,mCAAmC,iBAAiB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA,gBAAgB,0EAA0E;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,kCAAkC,+DAAwB;AACvH,qCAAqC,+DAAwB,GAAG,mFAAmF,gIAAgI,aAAa,0CAA0C,aAAa,kEAA2B,GAAG;AACrX,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,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,kBAAkB,iDAAU,GAAG,iDAAU;AACzC;;AAEA;AACA;AACA,mBAAmB,4BAA4B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,uDAAY;AAClD,iCAAiC,8CAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,iBAAiB;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,0BAA0B;AAC1F;AACA;AACA;AACA,YAAY,yEAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;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,6DAA6D,kCAAkC,+DAAwB;AACvH,qCAAqC,+DAAwB,GAAG,qJAAqJ;AACrN,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,mJAAmJ,aAAa,0CAA0C,aAAa,kEAA2B,GAAG;AACxQ,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,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,kBAAkB,iDAAU,GAAG,iDAAU;AACzC;;AAEA;AACA;AACA,sEAAsE,gDAAgD;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gCAAgC;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4CAA4C,wCAAwC;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,wCAAwC;AACnF,uBAAuB,wCAAwC;AAC/D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iDAAiD,wCAAwC;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4CAA4C,wCAAwC;AACpF,oBAAoB,wCAAwC;AAC5D;AACA;AACA;;AAEA;AACA,UAAU,mFAAmB;AAC7B;AACA;AACA;AACA;AACA;AACA,qDAAqD,OAAO,IAAI,GAAG;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,iBAAiB;AACzF;AACA;AACA;AACA,iBAAiB;AACjB;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;;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,UAAU,mFAAmB;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,gCAAgC,mFAAmB;AACnD;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,wEAAwE;AAClF;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8DAAM;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,aAAa,yCAAyC;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,eAAe,8DAAM;AACrB;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,iEAAiE,oCAAoC,+DAAwB,CAAC,4DAAwB;AACtJ,uCAAuC,+DAAwB,GAAG,kJAAkJ;AACpN,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,yJAAyJ;AAChK,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,eAAe,kDAAW,EAAE,8DAAuB,yCAAyC;AACnG,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,oBAAoB,iDAAU,GAAG,iDAAU,uBAAuB,4DAAiB;AACnF;;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,qCAAqC,cAAc;AACnD,oCAAoC,aAAa;AACjD;AACA;AACA,6EAA6E;AAC7E,6CAA6C,+DAAwB,GAAG,+BAA+B;;AAEvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,8BAA8B;AAC5C,cAAc,wBAAwB,kEAAkE,MAAM,gEAAgE;AAC9K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,gBAAgB;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,6DAA6D,kCAAkC,sDAAe,CAAC,mEAA+B;AAC9I,sCAAsC,gEAAyB,GAAG,gDAAgD,mCAAmC;AACrJ,kBAAkB,iDAAU,GAAG,iDAAU,uBAAuB,mEAAwB;AACxF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,oCAAoC,+DAAwB,CAAC,4DAAwB;AACtJ,uCAAuC,+DAAwB,GAAG,kJAAkJ;AACpN,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,OAAO,oSAAoS;AAC3S,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,eAAe,kDAAW,EAAE,8DAAuB,yCAAyC;AACnG,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,oBAAoB,iDAAU,GAAG,iDAAU,uBAAuB,4DAAiB;AACnF;;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,6DAA6D,kCAAkC,sDAAe,CAAC,mEAA+B;AAC9I,sCAAsC,gEAAyB,GAAG,gDAAgD,mCAAmC;AACrJ,kBAAkB,iDAAU,GAAG,iDAAU,uBAAuB,mEAAwB;AACxF;;AAEA;AACA;AACA;AACA,mBAAmB,8BAA8B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,iCAAiC;AAC7E,wDAAwD,qCAAqC;AAC7F,kEAAkE,qCAAqC;AACvG;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,4CAA4C,+DAAwB,CAAC,sDAAkB;AACxK,+CAA+C,+DAAwB,GAAG,yFAAyF;AACnK,4BAA4B,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AAC5D,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA;AACA;AACA,mBAAmB,8BAA8B;AACjD;AACA;AACA;AACA,4CAA4C,iCAAiC;AAC7E,wDAAwD,qCAAqC;AAC7F,kEAAkE,qCAAqC;AACvG;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,4CAA4C,+DAAwB,CAAC,sDAAkB;AACxK,+CAA+C,+DAAwB,GAAG,yFAAyF;AACnK,4BAA4B,iDAAU,GAAG,8CAAO,IAAI,uDAAQ;AAC5D,IAAI,iDAAU,uBAAuB,sDAAW;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8BAA8B;AACjD;AACA,mCAAmC,wCAAwC;AAC3E,iBAAiB,wCAAwC;AACzD,iBAAiB,wCAAwC;AACzD,oBAAoB,wCAAwC;AAC5D,gBAAgB,wCAAwC;AACxD,mBAAmB,wCAAwC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,8BAA8B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,8BAA8B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,8BAA8B;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,cAAc,2BAA2B;AACzC;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,eAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iCAAiC;AAClD,2CAA2C,kBAAkB;AAC7D;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,oBAAoB,wBAAwB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,wEAAwE;AAC1H;AACA;AACA;AACA;AACA,YAAY,4EAAY;AACxB,qDAAqD,4CAA4C;AACjG;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,gEAAS;AACtC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,mDAAmD,2BAA2B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,uEAAuE,uCAAuC,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,qBAAqB,+DAAwB,mBAAmB,+DAAwB;AACpT,0CAA0C,+DAAwB,GAAG,iKAAiK;AACtO,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,mFAAmF;AAC1F,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,4HAA4H,aAAa,gEAAyB;AACrL;AACA;AACA,aAAa;AACb,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,2DAAY,8BAA8B,eAAe;AAC7D,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,2DAAY,8BAA8B,eAAe;AAC7D,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd;AACA,uBAAuB,iDAAU,GAAG,iDAAU,uBAAuB,qDAAU;AAC/E,QAAQ,iDAAM;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,yDAAyD,8DAAuB;AAChF,mCAAmC,+DAAwB,GAAG,+BAA+B,sDAAsD;AACnJ,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,8DAAM;AAC/C;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,wCAAE,CAAC,8DAAM;AACvD;AACA,iCAAiC,8DAAM;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yEAAS;AACrB;AACA;AACA;AACA,YAAY,0EAAU;AACtB;AACA;AACA;AACA;AACA,iFAAiF,4CAA4C,+DAAwB,sBAAsB,+DAAwB;AACnM,+CAA+C,+DAAwB,GAAG,mGAAmG,sGAAsG,aAAa,wEAAiC,EAAE,kEAA2B,GAAG;AACjW,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,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,4BAA4B,iDAAU,GAAG,8CAAO,IAAI,uDAAQ,KAAK,8CAAO,IAAI,mDAAI;AAChF,IAAI,iDAAU;AACd;AACA;;AAEA;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,kBAAkB,uDAAM,IAAI,OAAO,4BAA4B,oDAAG,IAAI,QAAQ;AAC9E;AACA;AACA;AACA,SAAS,GAAG,uDAAM,IAAI,QAAQ,cAAc,0DAAS,MAAM,wCAAE,SAAS,sDAAK,OAAO,0DAAS;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,4CAA4C,+DAAwB,sBAAsB,+DAAwB,8BAA8B,+DAAwB,CAAC,4DAAwB;AAClR,+CAA+C,+DAAwB,GAAG,sKAAsK;AAChP,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,4CAA4C;AAC/D,iDAAU;AACV,IAAI,0DAAW;AACf,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,4BAA4B,iDAAU,GAAG,iDAAU;AACnD;AACA,QAAQ,4DAAiB;AACzB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,wEAAwE;AAClF;AACA,qDAAqD;AACrD;AACA;AACA;AACA,sCAAsC,8DAAM;AAC5C,YAAY,8DAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,8DAAM;AAClD,YAAY,8DAAM;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,aAAa,yCAAyC;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qDAAI;AACtB;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,kDAAkD,8DAAM,iCAAiC,8DAAM;AAC/F;AACA,KAAK;AACL;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,8DAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,8DAAM,+CAA+C,8DAAM;AACpH;AACA,gDAAgD,wCAAE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yEAAS;AACrB;AACA;AACA;AACA,YAAY,0EAAU;AACtB;AACA;AACA;AACA;AACA,+EAA+E,2CAA2C,+DAAwB;AAClJ,8CAA8C,+DAAwB,GAAG,iGAAiG,0HAA0H,aAAa,wEAAiC,EAAE,kEAA2B,GAAG;AAClX,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,IAAI,iDAAU;AACd;AACA,2BAA2B,iDAAU,GAAG,iDAAU;AAClD;;AAEA,0CAA0C,iBAAiB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC,YAAY,0EAAU;AACtB;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,aAAa;AACb;AACA,sBAAsB,uDAAM,IAAI,OAAO;AACvC,8BAA8B,QAAQ;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,+CAA+C,gCAAgC;AAC/E;AACA;AACA,+BAA+B;AAC/B,gBAAgB,+CAA+C;AAC/D;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,uCAAuC;AACvC,gBAAgB,2CAA2C;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;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,yEAAyE,wCAAwC,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,sBAAsB,+DAAwB,qBAAqB,+DAAwB,oBAAoB,+DAAwB,yBAAyB,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB;AAC1Z,2CAA2C,+DAAwB,GAAG,mFAAmF,0VAA0V,aAAa,kEAA2B,GAAG;AAC9hB,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,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,IAAI,iDAAU;AACd;AACA,wBAAwB,iDAAU,GAAG,iDAAU,uBAAuB,qDAAU;AAChF;AACA;AACA;AACA;AACA,QAAQ,oDAAS;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,8CAAY;AAC7C;AACA;AACA;AACA,kBAAkB,uDAAM;AACxB;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,uFAAuF,+CAA+C,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,qBAAqB,+DAAwB,oBAAoB,+DAAwB,CAAC,oDAAgB;AACrT,kDAAkD,+DAAwB,GAAG,iGAAiG,sGAAsG,aAAa,kEAA2B,GAAG;AAC/T,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,+BAA+B,iDAAU,GAAG,iDAAU,uBAAuB,qDAAU;AACvF;AACA;AACA,QAAQ,oDAAS;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oEAAI,GAAG;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uDAAY;AAChD;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sDAAsD;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,oCAAoC,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,oDAAgB,GAAG,+DAAwB,CAAC,4DAAwB;AAC/O,uCAAuC,+DAAwB,GAAG,wIAAwI;AAC1M,QAAQ,yDAAkB;AAC1B,OAAO,YAAY,4HAA4H,aAAa,sCAAsC,8NAA8N;AACha,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,iFAAiF,kCAAkC;AAC5I,QAAQ,0DAAmB;AAC3B,QAAQ,4DAAqB;AAC7B,QAAQ,oDAAa;AACrB,QAAQ,0DAAmB;AAC3B,MAAM;AACN,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,+DAAwB;AAChC,OAAO,oBAAoB;AAC3B,iDAAU;AACV,IAAI,0DAAW;AACf,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;AACd;AACA,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd;AACA,iDAAU;AACV,IAAI,qDAAM;AACV,IAAI,iDAAU,gBAAgB,uDAAY;AAC1C;AACA,oBAAoB,iDAAU,GAAG,iDAAU,uBAAuB,qDAAU;AAC5E,QAAQ,oDAAS;AACjB,QAAQ,4DAAiB;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wCAAwC;AACxE;AACA;AACA;AACA,2DAA2D;AAC3D,oCAAoC,8DAAuB,GAAG,sBAAsB;AACpF,oCAAoC,8DAAuB,GAAG;;AAE9D;AACA;AACA;AACA,wHAAwH,gDAAgD;AACxK,wCAAwC,+CAA+C;AACvF,6BAA6B,kCAAkC;AAC/D,gBAAgB,wCAAwC,kCAAkC,wCAAwC;AAClI;AACA;AACA;AACA;AACA;AACA,iCAAiC,8CAAY;AAC7C;AACA;AACA;AACA;AACA,mEAAmE,wCAAwC;AAC3G,2BAA2B,wCAAwC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,8CAA8C,+DAAwB;AAC3J,iDAAiD,+DAAwB,GAAG,uGAAuG,8BAA8B;AACjN,iDAAU;AACV,IAAI,oDAAK;AACT,IAAI,iDAAU;AACd,IAAI,iDAAU;AACd;AACA,8BAA8B,iDAAU,GAAG,iDAAU;AACrD;;AAEA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oEAAI;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iCAAiC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wDAAS;AACtB;AACA;AACA;AACA,qIAAqI,qBAAqB;AAC1J;AACA;AACA;AACA,mJAAmJ,qBAAqB;AACxK;AACA;AACA,6MAA6M,qBAAqB;AAClO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,oCAAoC,+DAAwB;AAC7H,uCAAuC,+DAAwB,GAAG,mFAAmF,6IAA6I,aAAa,kEAA2B,GAAG;AAC7U,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,oBAAoB,iDAAU,GAAG,iDAAU;AAC3C;;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,uDAAuD;AACvD,kCAAkC,8DAAuB,GAAG,oBAAoB;AAChF,kCAAkC,8DAAuB,GAAG;AAC5D,YAAY,0DAAY;AACxB;AACA,YAAY,yEAAY;AACxB,YAAY;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wCAAwC;AACxE;AACA;AACA;AACA,2DAA2D;AAC3D,oCAAoC,8DAAuB,GAAG,sBAAsB;AACpF,oCAAoC,8DAAuB,GAAG,2BAA2B;AACzF,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,qDAAU;AACxB,KAAK,iBAAiB,YAAY,UAAU;AAC5C,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,qDAAU;AACxB,KAAK,iBAAiB,YAAY,UAAU;AAC5C,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,qDAAU;AACxB,KAAK,iBAAiB,YAAY,UAAU;AAC5C,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,qDAAU;AACxB,KAAK,iBAAiB,UAAU,MAAM,6EAA0B,EAAE,IAAI,UAAU;AAChF,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,qDAAU;AACxB,KAAK,iBAAiB,YAAY,UAAU;AAC5C,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,sDAAkB;AACxD,sBAAsB,mDAAQ;AAC9B,aAAa,GAAG,IAAI,UAAU;AAC9B,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,sDAAkB;AACxD,sBAAsB,mDAAQ;AAC9B,aAAa,GAAG,IAAI,UAAU;AAC9B,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,qDAAU;AACxB,KAAK,iBAAiB;AACtB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,qDAAU;AACxB,KAAK,iBAAiB;AACtB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,qDAAU;AACxB,KAAK,iBAAiB,YAAY,UAAU;AAC5C,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,qDAAU;AACxB,KAAK,iBAAiB,YAAY,UAAU;AAC5C,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA,iCAAiC,0EAA+B;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,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qDAAiB,EAAE,IAAI,MAAM,4DAAwB,EAAE,IAAI,0BAA0B,IAAI,yBAAyB,IAAI,2BAA2B,IAAI,wBAAwB,IAAI,6BAA6B,IAAI,MAAM,iDAAa,EAAE,IAAI,MAAM,oDAAgB,EAAE,IAAI,qCAAqC,IAAI,MAAM,6EAA0B,EAAE,IAAI,IAAI;AAChY,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,iDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,sDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAS;AAC3B,wCAAwC,MAAM,2DAAgB,gBAAgB;AAC9E,SAAS;AACT,kBAAkB,uDAAY;AAC9B,4CAA4C,eAAe;AAC3D,SAAS;AACT,kBAAkB,uDAAY;AAC9B,sDAAsD,eAAe;AACrE,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,oBAAoB,6DAAO;AAC3B,wBAAwB,gEAAU;AAClC,4BAA4B,2DAAK,GAAG,WAAW;AAC/C,4BAA4B,6DAAO,iBAAiB,2DAAK,GAAG,aAAa;AACzE;AACA,wBAAwB,gEAAU;AAClC,4BAA4B,2DAAK,GAAG,aAAa;AACjD,4BAA4B,6DAAO,iBAAiB,2DAAK,GAAG,WAAW;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,mBAAmB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,kCAAkC;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,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,0BAA0B,IAAI,kCAAkC,IAAI,2BAA2B,IAAI,6BAA6B,IAAI,yBAAyB,IAAI,2BAA2B,IAAI,q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A;AACA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ,iDAAQ;AAChB;;AAEA;AACA,gBAAgB,mBAAmB;;AAEnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,sEAAmB;AAClC;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2BAA2B,mDAAU;AACrC;AACA;AACA;AACA,+BAA+B,sCAAG;AAClC;AACA;AACA;AACA;AACA,2BAA2B,+DAAU;;AAErC;AACA;;AAEA;AACA,yBAAyB,+DAAqB,UAAU,wBAAwB;AAChF;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEA,oCAAoC,gDAAO;AAC3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B,0DAAW;AACvC,yBAAyB,+DAAS;;AAElC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,gDAAO;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0BAA0B,+DAAU;;AAEpC,wBAAwB,oBAAoB;AAC5C,0BAA0B,iDAAQ;AAClC;AACA;AACA;AACA;;AAEA;;AAEA;AACA,6BAA6B,0EAAoB;AACjD,wBAAwB,+DAAU;AAClC,wBAAwB,+DAAU;AAClC;;AAEA,6BAA6B,mEAAkB;AAC/C;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;;AAEjB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,sCAAG;AAC3B,qBAAqB,mEAAkB;AACvC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA,yCAAyC,0CAAO;AAChD;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,aAAa,sDAAS;AACtB,yCAAyC,UAAU;AACnD;;AAEA,4BAA4B,sDAAS;;AAErC,uBAAuB,mDAAU,GAAG;AACpC;AACA;;AAEA,0DAAiB;AACjB;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,iEAAe,OAAO,EAAC;;;;;;;;;;;;;;;;;;ACpVe;AACW;;AAEjD;;AAEO,qBAAqB,+CAAQ;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,wBAAwB,kBAAkB;AAC1C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,wBAAwB,kBAAkB;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA,0DAAiB;AACjB;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjHoC;AACC;AACY;AACN;;AAE5C;AACA;AACA;;AAEO,uBAAuB,0CAAK;AACnC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,QAAQ,+DAAU;AAClB;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,YAAY,4DAAO;AACnB,0EAA0E,GAAG;;AAE7E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,YAAY,4DAAO;AACnB;AACA;;AAEA,YAAY,4DAAO;AACnB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,wBAAwB,mBAAmB;AAC3C,gBAAgB,4DAAO;AACvB;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD,yBAAyB,YAAY;AACrC,0BAA0B,8BAA8B;AACxD,yBAAyB,8BAA8B;AACvD,0BAA0B,+BAA+B;AACzD,yBAAyB,uCAAuC;AAChE,0BAA0B,uCAAuC;AACjE,yBAAyB,wCAAwC;AACjE,0BAA0B,wCAAwC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,iBAAiB;AACjB;AACA;AACA,4BAA4B;AAC5B,iBAAiB;AACjB;AACA;AACA,4BAA4B;AAC5B,iBAAiB;AACjB;AACA,4BAA4B;AAC5B,iBAAiB;AACjB;AACA,4BAA4B;AAC5B,iBAAiB;AACjB;AACA,4BAA4B;AAC5B,iBAAiB;AACjB;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,iBAAiB;AACjB;AACA,4BAA4B;AAC5B,iBAAiB;AACjB;AACA,4BAA4B;AAC5B,iBAAiB;AACjB;AACA,4BAA4B;AAC5B,iBAAiB;AACjB;AACA,4BAA4B;AAC5B,iBAAiB;AACjB;AACA,4BAA4B;AAC5B,iBAAiB;AACjB;AACA,4BAA4B;AAC5B,iBAAiB;AACjB,aAAa;AACb;AACA,SAAS;AACT;;;AAGA;AACA;AACA;;AAEA;AACA,eAAe,4DAAO;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;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;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,QAAQ;AAChC;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;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,qBAAqB;AAC7C,mCAAmC,4DAAO;AAC1C;AACA,cAAc;AACd;;AAEA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,0BAA0B,+CAAQ;AACzC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;AChvBkC;AACgB;;AAE3C;AACP;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;;AAEA,wBAAwB,kCAAkC;AAC1D;;AAEA;AACA,2CAA2C,gCAAgC;AAC3E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;;AAEA,gCAAgC,yCAAyC;AACzE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEO,6BAA6B,2CAAM;AAC1C;AACA;;AAEA,QAAQ,+DAAU;AAClB;AACA;AACA,0BAA0B,qCAAqC;AAC/D,0BAA0B,qCAAqC;AAC/D,0BAA0B,qCAAqC;AAC/D,0BAA0B;AAC1B;AACA,SAAS;AACT;AACA;;;;;;;;;;;;;;;;;;;ACtGiD;AACX;;AAEtC;;AAEO,yBAAyB,+CAAQ;AACxC;AACA;;AAEA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;;AAEA,0BAA0B,oBAAoB;AAC9C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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CAAkC;AACzD,uBAAuB,kCAAkC;AACzD,uBAAuB,kCAAkC;AACzD,uBAAuB,kCAAkC;AACzD,uBAAuB,kCAAkC;AACzD,0BAA0B,kCAAkC;AAC5D,0BAA0B,kCAAkC;AAC5D,0BAA0B,kCAAkC;AAC5D,0BAA0B,kCAAkC;AAC5D,yBAAyB,qBAAqB;AAC9C;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8FAA8F,YAAY,qCAAqC,UAAU;AACzJ;;AAEA;;AAEA;AACA;AACA,4FAA4F,WAAW,+CAA+C,WAAW,OAAO,SAAS;AACjL;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,UAAU;AACzC;AACA;;AAEA;;AAEA;;AAEA,+BAA+B,UAAU;AACzC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACxKsC;;AAEtC;;AAEO,oBAAoB,+CAAQ;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;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wBAAwB,kBAAkB;AAC1C;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;AC3GgC;;AAEhC;;AAEO,mBAAmB,yCAAK;AAC/B;AACA;;AAEA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACtBsB;;AAEtB;;AAEO,uBAAuB,0CAAK;AACnC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,uCAAuC;AACvC;AACA;;AAEA;AACA,+BAA+B,gDAAO;;AAEtC;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,sCAAsC,UAAU,+BAA+B,UAAU;AACzF;AACA;;AAEA,0DAAiB;AACjB;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;AC5DiC;AACA;AACiB;AACjB;AACiB;AACf;;AAQjB;;AAOJ;;AAEe;AACE;;AAEzB;AACP,YAAY,2CAAM;;AAElB,YAAY,2CAAM;AAClB,oBAAoB,4DAAc;;AAElC,YAAY,2CAAM;AAClB,oBAAoB,4DAAc;;AAElC,aAAa,6CAAO;AACpB,cAAc,8CAAQ;AACtB,cAAc,8CAAQ;AACtB,cAAc,8CAAQ;AACtB,iBAAiB,gDAAU;;AAE3B,cAAc,0CAAQ;AACtB,cAAc,0CAAQ;AACtB,gBAAgB,4CAAU;AAC1B,gBAAgB,4CAAU;;AAE1B,aAAa,6CAAO;;AAEpB,UAAU,uCAAI;AACd,WAAW,yCAAK;AAChB;;;;;;;;;;;;;;;;;;;;;ACjDsC;;AAEtC;;AAEO,sBAAsB,+CAAQ;AACrC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,wBAAwB,kBAAkB;AAC1C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,oBAAoB;AAC1C;AACA;;AAEA;AACA;;AAEA,sBAAsB,sBAAsB;AAC5C;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,YAAY;AACpC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;AC3LsC;AACM;;AAE5C;AACA;;AAEO,sBAAsB,+CAAQ;AACrC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,wBAAwB,kBAAkB;AAC1C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,aAAa,4DAAO;AACpB;AACA;AACA;;AAEA;AACA;;AAEA,wBAAwB,oBAAoB;AAC5C;AACA,gCAAgC,mCAAmC;AACnE;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACnFO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClBqC;;AAEiC;AACD;AACI;AACW;AAC7B;AACW;AACA;AACc;AACX;AACM;AACX;AACW;AACe;AACX;AACP;AACkB;AACH;AACtC;AACmB;AACS;AACJ;AACN;AACe;AACG;AACb;AACG;AACC;AACA;AACgB;AACnC;AACiB;AAChB;AACS;AACI;AACF;AACA;AACI;AAC1B;AAC4B;AACT;AACQ;AACH;AACD;AACG;AACa;AACP;AACC;AACR;AACW;AACG;AACA;AACP;AACG;AACM;AAC/B;AAC0B;AACnB;AACa;AACS;AACrB;AACJ;AACQ;AACA;AACe;AACI;AACnB;AACY;AACF;AACX;;;;;;;;;;;;;;;;;;;;ACtEN;AACb;;AAEC;;AAElD;AACA;AACA;AACA,kBAAkB,wDAAS;;AAE3B,wBAAwB,YAAY;AACpC;AACA,gBAAgB,iDAAQ;AACxB;AACA;AACA;;AAEA,uBAAuB,wDAAS;AAChC,KAAK;;AAEL;AACA;AACA,kBAAkB,wDAAS;;AAE3B,wBAAwB,YAAY;AACpC;AACA,gBAAgB,iDAAQ;AACxB;AACA;AACA;;AAEA,uBAAuB,wDAAS;AAChC,KAAK;;AAEL;AACA;AACA;;AAEA,wBAAwB,YAAY;AACpC;AACA,gBAAgB,iDAAQ;AACxB;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;;AAEA,YAAY,gEAAY;AACxB;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA,wBAAwB,YAAY;AACpC;AACA,kCAAkC,gDAAO;AACzC;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA,sBAAsB,gEAAY;AAClC;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;;AAEA,wBAAwB,YAAY;AACpC;AACA,kCAAkC,gDAAO;AACzC;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iEAAe,UAAU;;;;;;;;;;;;;;;;ACjGY;;AAErC,gCAAgC,0CAAK;AACrC;AACA;;AAEA;AACA;;AAEA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,iEAAe,iBAAiB;;;;;;;;;;;;;;;;;ACtBM;;AAE0D;;AAEhG,+BAA+B,0CAAK;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,wBAAwB,4BAA4B;AACpD;AACA;;AAEA,gBAAgB,iDAAQ;AACxB;AACA,cAAc,oBAAoB,gDAAO;AACzC;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA,+BAA+B,mDAAU,oCAAoC,mDAAU;AACvF,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA,gBAAgB,+CAA+C;AAC/D;AACA;AACA;;AAEA,8BAA8B,iDAAQ,oBAAoB,gDAAO;AACjE;AACA;AACA;AACA;;AAEA,wBAAwB,yBAAyB;AACjD;AACA;AACA;;AAEA,kCAAkC,iDAAQ,YAAY,gDAAO;AAC7D;AACA;AACA,cAAc;AACd,oBAAoB,gDAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,mCAAmC;AACnD;AACA;;AAEA,wBAAwB,mBAAmB;AAC3C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,WAAW;AACnC;AACA;AACA;;AAEA,gBAAgB,gDAAO;AACvB;AACA,cAAc;AACd;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB,gDAAO;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iEAAe,gBAAgB;;;;;;;;;;;;;;;;;AClIW;AACH;AACC;AACH;;;;;;;;;;;;;;;;;;;;;;;ACHuC;;AAEA;;AAE9B;AACqB;;AAEnE,gCAAgC,+DAAc;;AAE9C;AACA,gBAAgB,mBAAmB;AACnC;;AAEA;AACA;AACA,4CAA4C,gDAAC,GAAG,gDAAC;;AAEjD,mDAAmD,+DAAU;AAC7D,8BAA8B,mDAAW;;AAEzC,8BAA8B,+DAAc;AAC5C;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA,uBAAuB,yDAAgB;AACvC,uBAAuB,yDAAgB;;AAEvC,+BAA+B,+DAAc;AAC7C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,0DAAiB;AACjB,cAAc,kEAA0B;AACxC,CAAC;;AAED,gFAAsC,CAAC,2CAAG;;AAE1C,iEAAe,iBAAiB;;;;;;;;;;;;;;;;;;;;ACjD4C;;AAEzB;;AAEF;;AAEjD,8BAA8B,+DAAc;AAC5C;AACA;AACA,+BAA+B,+DAAc;AAC7C,mBAAmB,mDAAW,EAAE,mDAAW;AAC3C;AACA;;AAEA;AACA,+BAA+B,+DAAc;AAC7C;AACA;AACA;AACA;;AAEA,0DAAiB;AACjB;AACA,CAAC;;AAED,gFAAsC,CAAC,8CAAM;;AAE7C,iEAAe,eAAe;;;;;;;;;;;;;;;;;;;AC3B4B;;AAEA;;AAES;;AAEnE,4BAA4B,+DAAc;AAC1C;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,yDAAgB;AACrC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,0DAAiB;AACjB,cAAc,kEAA0B;AACxC,CAAC;;AAED,gFAAsC;;AAEtC,iEAAe,aAAa;;;;;;;;;;;;;;;;;;;ACnC8B;;AAEpB;;AAEW;;AAEjD,8BAA8B,+DAAc;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0DAAiB;AACjB;AACA;AACA,CAAC;;AAED,gFAAsC,CAAC,8CAAM;;AAE7C,iEAAe,eAAe;;;;;;;;;;;;;;;;;;;;ACxB8C;;AAEA;;AAE3B;;AAEjD,2BAA2B,+DAAc;AACzC;AACA,+BAA+B,+DAAc;AAC7C,mBAAmB,mDAAW,EAAE,mDAAW;AAC3C;AACA;;AAEA;AACA,+BAA+B,+DAAc;AAC7C;AACA;AACA;AACA;;AAEA,0DAAiB;AACjB;AACA,cAAc,kEAA0B;AACxC,CAAC;;AAED,gFAAsC,CAAC,2CAAG;;AAE1C,iEAAe,YAAY;;;;;;;;;;;;;;;;;;;;;;AC3BsC;AACA;AACQ;;;;;;;;;;;;;;;;;ACFpC;;AAErC,wBAAwB,0CAAK;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iEAAe,SAAS;;;;;;;;;;;;;;;;AC9ByB;;AAEjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,8DAAc;AAC7B;AACA;;AAEA,iEAAe,SAAS;;;;;;;;;;;;;;;;ACda;;AAErC,4BAA4B,0CAAK;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,aAAa;;;;;;;;;;;;;;;;ACZS;;AAEtB;AACf,sBAAsB,mBAAmB;AACzC;AACA;AACA,uBAAuB,mDAAS;AAChC;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACTiD;AACA;;AAER;AACS;AACI;;AAEJ;;AAElD,wBAAwB,8DAAS;AACjC;AACA;AACA,+CAA+C;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA,sBAAsB,4CAAI;AAC1B,wBAAwB,0DAAe;AACvC,UAAU,mBAAmB,8CAAM;AACnC,wBAAwB,4DAAiB;AACzC,UAAU;AACV,wBAAwB,qDAAW;AACnC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,8BAA8B,0BAA0B;AACxD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wCAAwC,qBAAqB;AAC7D;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;;AAEd;AACA,8BAA8B,4CAAI;AAClC;AACA;;AAEA;;AAEA,8BAA8B,4CAAI;AAClC;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA,4CAA4C;AAC5C,0BAA0B,8DAAS;AACnC;AACA;;AAEA;AACA;;AAEA;AACA,uCAAuC,4CAAI;AAC3C;;AAEA;AACA;AACA;AACA;;AAEA,iEAAe,SAAS,EAAC;;;;;;;;;;;;;;;;;;;;;ACrImD;AACvB;;AAEe;;AAEpE,0BAA0B,gEAAW;AACrC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,YAAY,mDAAU;AACtB;AACA;;AAEA,0BAA0B,+DAAU;AACpC;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;;AAET;AACA;AACA,wBAAwB,mDAAU;AAClC;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yCAAyC,+DAAY;AACrD;;AAEA;AACA,2BAA2B,yDAAS;AACpC;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,YAAY,+CAAM;AAClB;;AAEA,yBAAyB,yDAAS;AAClC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,6CAAI;AAC9B;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA,iEAAe,WAAW;;;;;;;;;;;;;;;;;;ACjIiC;AACf;;AAEH;;AAEzC,gCAAgC,qDAAW;;AAE3C;AACA,mCAAmC,iDAAc;AACjD;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kDAAkD,UAAU;AAC5D;AACA,mCAAmC,+DAAY;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iEAAe,iBAAiB;;;;;;;;;;;;;;;;;;AC9B0B;AACjB;;AAEC;;AAE1C,8BAA8B,qDAAW;;AAEzC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,mDAAU,4BAA4B,mEAAa;;AAEnD,iEAAe,eAAe;;;;;;;;;;;;;;;;;AClB6B;AACzB;;AAElC,oCAAoC,0CAAK;AACzC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,sDAAsD,KAAK,wDAAS,OAAO,wDAAS;;AAEpF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iEAAe,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;AChCuB;;AAEnC;;AAE4B;AACC;AACR;AACe;;AAER;;AAEE;AACgB;;AAEtE,uBAAuB,0DAAgB;;AAEvC;AACA;AACA;AACA;;AAEA;AACA,eAAe,4CAAG;AAClB;;AAEA;AACA,eAAe,8DAAa;AAC5B;;AAEA;AACA,eAAe,0DAAS;AACxB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,yCAAyC;AACzD,gBAAgB,oBAAoB;AACpC;AACA;AACA;;AAEA;AACA;AACA,0CAA0C,mDAAW;AACrD,wCAAwC,kDAAU;AAClD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,YAAY,mDAAU;AACtB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC,qDAAM;AACxC,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,mDAAmD,gDAAC,GAAG,gDAAC;AACxD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;;AAEA;AACA;AACA;;AAEA,YAAY,kEAAY;AACxB;AACA;AACA;;AAEA;AACA;;AAEA,0BAA0B,qBAAqB;AAC/C;AACA;AACA,+BAA+B,gDAAO;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA,+BAA+B,+DAAU;AACzC;AACA;AACA;;AAEA,0DAAiB;AACjB;AACA,cAAc,2CAAG;AACjB;AACA,CAAC;;AAED,iEAAe,QAAQ;;;;;;;;;;;;;;;;;;;AC/LiC;AACgD;;AAEjB;AAC1B;;AAE7D,uBAAuB,+CAAY;AACnC;AACA;;AAEA,2BAA2B,0CAAO;AAClC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA;AACA;;AAEA,uCAAuC,qDAAM,GAAG,mDAAI;AACpD,wCAAwC,kDAAG,GAAG,qDAAM;;AAEpD,iCAAiC,kDAAU;AAC3C;AACA,qCAAqC,kDAAG;;AAExC;AACA,yCAAyC,qDAAM;AAC/C;AACA,cAAc;AACd,gDAAgD,oDAAK,GAAG,mDAAI;AAC5D;AACA,UAAU,8BAA8B,qDAAM;AAC9C,iCAAiC,qDAAM;AACvC,gCAAgC,qDAAM;AACtC,UAAU,8BAA8B,mDAAW;AACnD;AACA,iDAAiD,qDAAM,GAAG,kDAAG;AAC7D,cAAc;AACd,gDAAgD,mDAAI,GAAG,oDAAK;AAC5D;AACA,UAAU,8BAA8B,mDAAW;AACnD;AACA;AACA,mCAAmC,sCAAG;AACtC;AACA;AACA;AACA,kBAAkB;AAClB,mCAAmC,sCAAG;AACtC;AACA;AACA;AACA;AACA,cAAc;AACd,oCAAoC,qDAAM;AAC1C;AACA,mCAAmC,sCAAG;AACtC;AACA;AACA;AACA,kBAAkB;AAClB,mCAAmC,sCAAG;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iCAAiC,gDAAC,GAAG,gDAAC;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0DAAiB;AACjB,cAAc,mDAAW;AACzB,YAAY,mDAAU;AACtB,aAAa,mDAAU;AACvB,WAAW,oDAAK;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,cAAc,8CAAM;AACpB,eAAe,kEAA0B;AACzC,KAAK;AACL;AACA,CAAC;;AAED,iEAAe,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;AChI0C;;AAE9B;;AAE8B;;AAEF;;AAEd;;AAEW;AACf;;AAE4B;AACyB;;AAElG;;AAEA,kBAAkB,+CAAY;AAC9B;AACA;;AAEA;AACA,sCAAsC,oDAAK;AAC3C,yBAAyB,uDAAc;AACvC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,oDAAW;AAC3C;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA,6BAA6B,kDAAQ;AACrC,gBAAgB,mDAAU;AAC1B;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,4BAA4B,2BAA2B;AACvD;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,eAAe;AAC/B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,+DAAU;AACpD;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B,gDAAO;AACrC;;AAEA;;AAEA,uCAAuC,kEAAkB;AACzD;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;;AAEA;AACA,YAAY,yDAAgB;;AAE5B;AACA;AACA;AACA;AACA;;AAEA;;AAEA,YAAY,uEAAkB;AAC9B,+DAA+D,uBAAuB,EAAE,mDAAU;AAClG;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA,0BAA0B,kEAAkB;;AAE5C,eAAe,yDAAgB;AAC/B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iDAAiD,yDAAiB;AAClE;;AAEA,aAAa,gDAAO;AACpB,8BAA8B,gEAAK;AACnC;;AAEA;AACA;;AAEA;AACA,gBAAgB,0BAA0B;AAC1C;AACA,8BAA8B,mDAAI;AAClC,4BAA4B,kDAAG;AAC/B;;AAEA;AACA,+CAA+C,sDAAc;AAC7D;AACA;AACA,cAAc;AACd;AACA,gCAAgC,qDAAM;AACtC;AACA,UAAU;AACV;AACA;;AAEA;AACA,gCAAgC,qDAAM;AACtC;AACA,sCAAsC,oDAAK;AAC3C;AACA,kBAAkB;AAClB;AACA;AACA,mDAAmD,sDAAc;AACjE,cAAc;AACd;AACA,6BAA6B,sDAAc;AAC3C,kBAAkB;AAClB,6BAA6B,sDAAc;AAC3C,sCAAsC,oDAAK;AAC3C;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,wCAAK;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mDAAU,gBAAgB,kEAAgB;AAC1C,mDAAU,gBAAgB,0DAAS;;AAEnC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,kBAAkB,EAAE;AACpB,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA,iEAAe,GAAG;;;;;;;;;;;;;;;ACvSlB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,KAAK;AACL,oCAAoC;AACpC;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;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,CAAC;;AAED;AACA;AACA;AACA;AACA,CAAC;;AAEM,+BAA+B;AACtC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;ACzUqE;AACpB;AACjB;AACoB;;AAEP;;AAEgB;AACvB;;AAEvC,2BAA2B,4EAAgB;AAC3C;AACA,gBAAgB,yCAAyC;AACzD,gBAAgB,oBAAoB;AACpC;AACA;AACA,yBAAyB,8DAAU;AACnC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B,8DAAa;AACvC;AACA;AACA;AACA,oEAAoE;AACpE,aAAa;AACb;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,0DAAe;AAClC;;AAEA,eAAe,iDAAO;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,YAAY,gDAAO;AACnB;AACA;;AAEA;AACA,2BAA2B,KAAK,wDAAS,OAAO,wDAAS;;AAEzD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,YAAY;AACpC;AACA,gBAAgB,gDAAO;AACvB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;;;;;;;;ACtHoB;;AAEW;AACC;AAClB;;AAEyB;;AAEL;AACQ;;AAEtE,sBAAsB,sEAAW;AACjC;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,+BAA+B;AAC/C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,gCAAgC,mDAAU,GAAG;;AAE7C,iBAAiB,gDAAO;AACxB,oBAAoB,gDAAO;AAC3B;AACA,kBAAkB;AAClB;AACA,4BAA4B,+DAAK,gCAAgC,yDAAiB;AAClF;AACA;;AAEA,8BAA8B,+CAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,qBAAqB;AAC7C;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC;AACtC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,0DAAiB;AACjB;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,0CAA0C,IAAI;AAC9C,6CAA6C,IAAI;AACjD,0CAA0C,IAAI;AAC9C,8CAA8C,IAAI;AAClD,4CAA4C,IAAI;AAChD,0CAA0C,IAAI;AAC9C,6CAA6C,IAAI;AACjD;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,cAAc,wDAAgB;AAC9B,cAAc,oDAAK;AACnB,oBAAoB,oDAAK;AACzB;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA,cAAc,wDAAgB;AAC9B,cAAc,qDAAM;AACpB,oBAAoB,oDAAK;AACzB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;;AAED,mDAAU,oBAAoB,kEAAgB;;AAE9C,iEAAe,OAAO;;;;;;;;;;;;;;;;ACnPW;;AAEjC,8BAA8B,iDAAO;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,eAAe;;;;;;;;;;;;;;;;;;;;ACrC6B;AAC7B;;AAEoC;;AAEP;AAC8B;;AAEzF,0BAA0B,qEAAY;AACtC;AACA,wBAAwB,wDAAS;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,eAAe,+CAAM;AACrB;;AAEA;AACA;AACA;AACA,wCAAwC,kEAA0B;AAClE;AACA;AACA,sBAAsB,kEAA0B;AAChD,kBAAkB,8CAAM;AACxB;;AAEA;AACA;AACA,oBAAoB,uDAAc;AAClC;AACA;AACA;;AAEA,2BAA2B,mDAAU;AACrC;AACA;AACA;AACA,8BAA8B,kEAA0B;AACxD;AACA;AACA,SAAS;AACT;AACA,sBAAsB,qDAAM;AAC5B;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,YAAY,mDAAU;AACtB;AACA;;AAEA;;AAEA,0BAA0B,+CAAM;AAChC;;AAEA;;AAEA;AACA;;AAEA;AACA,gBAAgB,WAAW,WAAW;AACtC;;AAEA,+BAA+B,0BAA0B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC,+BAA+B;AACjE;AACA;AACA;AACA;AACA,uCAAuC,uDAAc;AACrD;;AAEA,oBAAoB,mDAAU;AAC9B;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,0DAAiB;AACjB;AACA,kBAAkB,EAAE;AACpB,KAAK;AACL;AACA,kBAAkB,EAAE;AACpB;AACA,CAAC;;AAED,iEAAe,WAAW;;;;;;;;;;;;;;;;;;;;;;;AC1IyD;;AAElC;AACA;;AAED;AACN;;AAE1C,qBAAqB,8DAAS;AAC9B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,+DAAU;AAC7C,2BAA2B,+DAAW,KAAK,+DAAW;AACtD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,kBAAkB;AAClB,aAAa;AACb,SAAS;AACT,4BAA4B,+DAAW,KAAK,+DAAW;AACvD;AACA;AACA,wBAAwB,+DAAK,gCAAgC,yDAAiB;AAC9E;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;AACA;AACA;;AAEA,4BAA4B,mDAAU,GAAG;AACzC;AACA,kBAAkB,qDAAM;AACxB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA,iEAAe,MAAM;;;;;;;;;;;;;;;;;;;;;;;AC1E+B;AACN;AAChB;AACuB;AAClB;;AAE2B;AACuC;;AAErG,0BAA0B,0DAAgB;AAC1C;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,yCAAyC;AACzD,gBAAgB,oBAAoB;AACpC;;AAEA,4BAA4B,mDAAU;AACtC;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA,YAAY,mDAAU;AACtB;AACA;;AAEA,2BAA2B,+CAAM;A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,iCAAiC,sDAAc;AACnG;AACA,4BAA4B,mDAAI;AAChC,0BAA0B,kDAAG;AAC7B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0DAAiB;AACjB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,0CAA0C,IAAI;AAC9C,4CAA4C,IAAI;AAChD,4CAA4C,IAAI;AAChD,2CAA2C,IAAI;AAC/C,6CAA6C,IAAI;AACjD;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;;AAED,mDAAU,wBAAwB,kEAAgB;AAClD,mDAAU,wBAAwB,0DAAS;;AAE3C,iEAAe,WAAW;;;;;;;;;;;;;;;;;;;;;;;;AChP6C;AACF;;AAE1B;AACqB;;AAEjB;AACQ;;AAEX;;AAE8B;AACiD;;AAE3H,+BAA+B,+CAAY;AAC3C;AACA;;AAEA;AACA;AACA;;AAEA;AACA,sBAAsB;AACtB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qDAAqD,mDAAU,IAAI;AACnE;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,yCAAyC,iDAAQ;AACjD;AACA;AACA;AACA;;AAEA,4BAA4B,2BAA2B;AACvD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,iDAAQ;AAChC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,2BAA2B;AACvD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,qDAAM;AAC/C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,oCAAoC,4DAAmB;AACvD;;AAEA;AACA,kBAAkB,wDAAS;AAC3B,kBAAkB,wDAAS;;AAE3B,wBAAwB,gCAAgC;AACxD;AACA;AACA;AACA;;AAEA,8BAA8B,6BAA6B;AAC3D;AACA;AACA;AACA;AACA,4BAA4B,gDAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB;AACjB;;AAEA;AACA,gBAAgB,iCAAiC;AACjD;;AAEA;AACA,4BAA4B,wBAAwB;AACpD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,8DAA8D,0DAAiB;AAC/E;AACA;AACA,8DAA8D,0DAAiB;AAC/E;AACA;;AAEA,uCAAuC,wDAAS,mBAAmB,wDAAS;AAC5E;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,0BAA0B;AAC1C;AACA,qCAAqC,uDAAe;AACpD,sCAAsC,wDAAgB;AACtD;;AAEA,YAAY,iDAAQ,cAAc,iDAAQ;AAC1C,2BAA2B;AAC3B,UAAU,sBAAsB,gDAAO;AACvC;AACA;AACA,oBAAoB,0EAAoB,0BAA0B,oDAAK;;AAEvE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,oBAAoB;;AAElC;AACA;AACA;AACA;AACA,UAAU;AACV,6BAA6B;AAC7B,+BAA+B,YAAY;AAC3C,+BAA+B,aAAa;AAC5C;;AAEA,6BAA6B,yEAAmB;AAChD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iDAAiD;;AAEjD;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB;AACjB;;AAEA;AACA,gBAAgB,+BAA+B;;AAE/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,gDAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,wBAAwB;;AAExB;AACA,aAAa,gDAAO;AACpB,kDAAkD,+DAAW,YAAY;AACzE;;AAEA;AACA;AACA,2BAA2B,mDAAU,GAAG;AACxC,YAAY,+DAAW;AACvB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B,KAAK,wDAAS,OAAO,wDAAS;;AAE7D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,oCAAoC;;AAExD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gDAAgD,6CAAI;AACpD,0BAA0B,qBAAqB;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,sCAAG;AACtB;;AAEA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,mEAAe;AACrC;;AAEA,+BAA+B,wBAAwB;AACvD;AACA;;AAEA,iCAAiC,oBAAoB;AACrD,mCAAmC,wBAAwB;AAC3D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA,+BAA+B,wBAAwB;AACvD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,2CAA2C,wEAA8B;AACzE;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0DAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,iEAAe,gBAAgB,EAAC;;;;;;;;;;;;;;;;;;;;AC3hB0B;AACb;;AAEN;;AAEvC,6BAA6B,+CAAY;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0BAA0B,+DAAU;AACpC;AACA,SAAS;;AAET;AACA;AACA;AACA,6BAA6B,kEAAkB;AAC/C,YAAY,yDAAgB;;AAE5B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,4BAA4B;;AAE5C,wBAAwB,mBAAmB;AAC3C;AACA;;AAEA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA,sBAAsB;AACtB,gCAAgC,cAAc;;AAE9C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,iEAAe,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvFiD;;AAEZ;;AAE9B;AACW;AACW;AACE;AACvB;AACqB;AACtB;AACO;AACH;AACa;AACa;AACd;AACS;AACpB;AACK;AACI;AACwB;;AAE+B;AAGrD;;AAEP;;AAGyG;;AAEhI;AACK;;AAE3B,qBAAqB,iDAAQ,EAAE,qDAAK,EAAE,iDAAC,EAAE,iDAAC;;AAE1C;AACA;AACA;AACA;;AAEA,oBAAoB,2CAAK;AACzB,gEAAgE;AAChE;;AAEA;AACA;AACA,gCAAgC,oDAAY;AAC5C;;AAEA;;AAEA,wBAAwB,oDAAU,GAAG;AACrC,gCAAgC,oDAAU,GAAG;AAC7C;AACA;;AAEA;AACA;;AAEA;AACA,QAAQ,6DAAuB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,kDAAQ;AAChB;;AAEA;AACA;AACA;;AAEA,wBAAwB,mBAAmB;AAC3C,8CAA8C;AAC9C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,uBAAuB,oDAAU,GAAG;AACpC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU,wCAAwC,8CAAI;AACtD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA,eAAe,8DAAc;AAC7B;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,0BAA0B,oBAAoB;AAC9C;AACA,2BAA2B,qDAAS;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,qDAAS;AAChC;AACA;;AAEA;AACA,mBAAmB,yDAAa;AAChC;;AAEA;AACA;AACA;AACA;;AAEA,YAAY,oDAAU;AACtB;AACA,UAAU;AACV;AACA,gBAAgB,kDAAQ;AACxB;AACA;AACA,cAAc;AACd;AACA;;AAEA,qCAAqC,8CAAK;AAC1C;AACA,cAAc,8BAA8B,4CAAG,yBAAyB,+CAAM;AAC9E,sEAAsE;AACtE,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B,qBAAqB;AAC/C;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,yCAAyC;AACzD;;AAEA,YAAY,oDAAU;AACtB;AACA;AACA;AACA;AACA,UAAU,mBAAmB,iDAAO;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,YAAY,qDAAW,SAAS,wBAAwB;AACxD;AACA;AACA,YAAY,qDAAW,SAAS,0BAA0B;AAC1D;;AAEA;AACA;;AAEA,2BAA2B,uEAAmB;AAC9C;AACA,aAAa;;AAEb;AACA;;AAEA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA,8BAA8B,kDAAS;AACvC;AACA;AACA;AACA;;AAEA,qBAAqB,+CAAM;AAC3B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4BAA4B,oDAAU,GAAG;AACzC;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA,2BAA2B,oDAAU,GAAG;AACxC;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA,yCAAyC,uEAAmB;AAC5D;;AAEA;AACA;AACA;AACA,iCAAiC,8DAAQ;AACzC;AACA;;AAEA;AACA;AACA,yCAAyC;AACzC;AACA,sCAAsC,oEAAa;AACnD;AACA;;AAEA;AACA;AACA,0CAA0C;AAC1C;AACA,uCAAuC,qEAAc;AACrD;AACA;;AAEA;AACA;AACA;AACA,yCAAyC;AACzC,0CAA0C;AAC1C,+GAA+G,mDAAU,EAAE,6CAAI,EAAE,iDAAQ;AACzI,mGAAmG,mDAAU,EAAE,6CAAI,EAAE,iDAAQ;AAC7H;;AAEA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,WAAW,4BAA4B;AACvD;;AAEA;AACA;AACA,UAAU;AACV,0BAA0B,wDAAO;AACjC;;AAEA;AACA;;AAEA;AACA,mBAAmB,gEAAa;AAChC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B,8CAAW;AACrC;AACA;;AAEA,QAAQ,mDAAgB;;AAExB;AACA,6BAA6B,sDAAM;AACnC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,eAAe,oDAAU;AACzB;AACA,iCAAiC,6DAAa;AAC9C,mCAAmC,8DAAc;AACjD,SAAS;AACT;;AAEA;AACA;;AAEA,yBAAyB,iFAA8B;;AAEvD;AACA;;AAEA;AACA,gBAAgB,aAAa,SAAS;AACtC;;AAEA,wBAAwB,iBAAiB;AACzC;AACA;AACA,gCAAgC,+CAAY;AAC5C;;AAEA,sCAAsC,kDAAS;AAC/C,oBAAoB,oDAAU,GAAG,gCAAgC;AACjE;;AAEA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,qDAAY;AACxC;;AAEA;AACA,4BAA4B,+CAAM;AAClC;;AAEA;AACA,4BAA4B,mDAAU;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,oEAAQ;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B,wBAAwB;AAClD;AACA;AACA;AACA;AACA;;AAEA,2BAA2B;AAC3B,qBAAqB,qDAAY;AACjC;AACA;AACA;;AAEA;AACA;AACA,0BAA0B,wBAAwB;AAClD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,QAAQ,oDAAU;AAClB;AACA,cAAc,mDAAU;AACxB;AACA,SAAS;;AAET;AACA,YAAY,oDAAU,YAAY,gCAAgC;AAClE;;AAEA,yBAAyB,+DAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,wDAAe;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iDAAQ,IAAI;AACrC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,+BAA+B;AAC/B,mDAAmD,mDAAU;AAC7D;;AAEA;AACA;AACA;;AAEA;AACA,gDAAgD,6CAAI;AACpD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA,oCAAoC,mDAAU,EAAE,6CAAI,EAAE,iDAAQ;AAC9D,6CAA6C,mDAAU;AACvD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B,mDAAU,IAAI,+DAA+D;AAC1G;AACA;AACA;;AAEA;AACA,cAAc,wCAAwC;;AAEtD;AACA;AACA;;AAEA;AACA;;AAEA,wCAAwC,6CAAI,IAAI,sCAAsC;AACtF;AACA;AACA,UAAU;AACV;AACA;;AAEA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,6CAAI;AAC7B;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,iDAAQ;AACjC;AACA;AACA,aAAa;AACb;AACA;AACA,UAAU;AACV,mCAAmC,iDAAQ;AAC3C;;AAEA;AACA;AACA,wCAAwC,6CAAI,IAAI,sCAAsC;AACtF;AACA,6BAA6B,iDAAQ,IAAI,sCAAsC;AAC/E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B,yBAAyB;AACvD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0CAA0C;AAC1C,eAAe,wDAAc,kBAAkB,6DAAoB;AACnE;;AAEA;AACA,sBAAsB,yDAAe;AACrC;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B,+CAA+C,mDAAU;AACzD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qDAAqD,6CAAI;AACzD;AACA;;AAEA;AACA,iCAAiC,iDAAQ;AACzC;AACA;AACA;AACA;AACA,iBAAiB,EAAE,yDAAgB;AACnC;AACA,UAAU;AACV;AACA;AACA,mEAAmE,mDAAU;AAC7E;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,6CAAI;AACjC;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;;AAEA;AACA,2CAA2C,iDAAQ;AACnD,iBAAiB,EAAE,yDAAgB;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,4BAA4B,0DAAgB;AAC5C;AACA;;AAEA;AACA;AACA,oBAAoB,0BAA0B,EAAE,uDAAa;AAC7D;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,uBAAuB,uDAAa;;AAEpC;AACA,kBAAkB,+CAAK;AACvB,iBAAiB,+CAAK;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,uDAAa;AACpC;AACA,iCAAiC,sDAAY;AAC7C,0BAA0B,gEAAc;AACxC;AACA;AACA;;AAEA,mBAAmB,wCAAK;AACxB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,2EAA2E,gEAAY;AACvF,SAAS;;AAET;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,+BAA+B,oDAAU,GAAG;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,wBAAwB,+BAA+B;AACvD;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,YAAY;AACpC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA,6EAA6E;;AAE7E;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oFAAoF,sEAAsB;AAC1G;;AAEA;AACA,0DAA0D,sEAAsB;AAChF;;AAEA;AACA;;AAEA;AACA;AACA,YAAY,oDAAU;AACtB;AACA,aAAa;AACb;AACA;;AAEA;AACA,gBAAgB,yEAAyE;AACzF;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,+CAA+C,oDAAU,GAAG;AAC5D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV,YAAY,sDAAY;AACxB;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,6BAA6B,wDAAe;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,wBAAwB,uBAAuB;AAC/C;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,WAAW,yBAAyB,oCAAoC,cAAc,6CAA6C;;AAEnJ;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA,uDAAuD,qDAAY;AACnE;AACA;AACA;;AAEA;;AAEA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,gBAAgB,2CAA2C;;AAE3D;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAA6B,6BAA6B;AAC1D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qCAAqC,6CAAO,GAAG;AAC/C;AACA;AACA;;AAEA,+BAA+B,yBAAyB;AACxD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,gEAAU,OAAO,6DAAQ;;AAEpD,yCAAyC,8DAAY,GAAG,yDAAQ;;AAEhE,qCAAqC,qBAAqB;AAC1D;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,0DAAY;AACvC,iBAAiB;AACjB;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA,4BAA4B,0EAAgC;AAC5D;;AAEA,wBAAwB,wBAAwB;AAChD;AACA,0BAA0B,qDAAK;AAC/B;AACA,cAAc;AACd;AACA;;AAEA,iBAAiB,iDAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,6CAA6C;AAC7D;AACA;;AAEA,YAAY,iDAAO,uBAAuB,4CAAG,EAAE,8CAAK,EAAE,+CAAM;AAC5D;AACA;AACA,aAAa;AACb,UAAU;AACV;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA,uHAAuH,wDAAe,EAAE,wDAAe;AACvJ;;AAEA;AACA,QAAQ,sDAAY;AACpB;AACA,SAAS;;AAET;AACA,YAAY,oDAAU;AACtB;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA,gCAAgC,oDAAU;AAC1C,uBAAuB,oDAAU,GAAG;;AAEpC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,QAAQ,sDAAY;AACpB;AACA,cAAc,mDAAU;AACxB;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,YAAY,sDAAY;AACxB;AACA,aAAa;AACb;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,sBAAsB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B,qBAAqB;AAC/C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kDAAkD;AAClD;;AAEA;AACA,4CAA4C;AAC5C,uBAAuB,oDAAU,GAAG;AACpC;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C,0BAA0B,kBAAkB;AAC5C,yBAAyB;AACzB,aAAa;AACb;AACA;;AAEA;;AAEA;AACA;;AAEA,sBAAsB,yBAAyB;AAC/C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2BAA2B,oDAAU,GAAG;AACxC,+CAA+C,oDAAU,GAAG;AAC5D,gCAAgC,oDAAU,GAAG;;AAE7C;AACA;;AAEA,oBAAoB,kBAAkB;AACtC;;AAEA,4BAA4B,oDAAU;AACtC,cAAc,UAAU;AACxB;AACA;AACA,cAAc,0BAA0B;AACxC;AACA;AACA;;AAEA;AACA,oBAAoB,oDAAU,GAAG;AACjC;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;;;AAGA;AACA;;AAEA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,qCAAqC,sDAAY;AACjD,2CAA2C,YAAY;AACvD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,0CAA0C,sDAAY;AACtD;AACA;AACA;;AAEA,oBAAoB,YAAY;AAChC,+BAA+B,8CAAI;AACnC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,kBAAkB;AAC1C;AACA;;AAEA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,aAAa,iDAAO;AACpB;AACA;AACA,gBAAgB,iDAAO;AACvB;AACA,mCAAmC,iDAAO;AAC1C;AACA;AACA;AACA;AACA,kBAAkB,0BAA0B,kDAAQ;AACpD,wBAAwB,kDAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;;AAEA,2DAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA,KAAK;AACL,oBAAoB;AACpB;AACA,cAAc,+CAAM;AACpB;AACA;AACA;AACA,SAAS;AACT,kBAAkB;AAClB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,iBAAiB;AACjB,gBAAgB;AAChB,aAAa;AACb,aAAa;AACb,aAAa;AACb,gBAAgB;AAChB;AACA;AACA,CAAC;;AAED,iEAAe,KAAK,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACh0D6B;;AAElD,gBAAgB,uEAAe;;AAE/B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;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;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AA0BE;;;;;;;;;;;;;;;;;;;;AC1HgD;;AAEN;AACoC;AAC/B;;AAEjD,+BAA+B,6DAAW;AAC1C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,aAAa,MAAM,YAAY;AAC/C;AACA;;AAEA;AACA;AACA,UAAU,+BAA+B,mDAAI;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,iCAAiC,oDAAY;AAC7C;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,gBAAgB,sBAAsB,sBAAsB;AAC5D;AACA;AACA;;AAEA;AACA,8BAA8B,qDAAM;AACpC,6BAA6B,qDAAM;AACnC,gCAAgC,kDAAG;AACnC;AACA,cAAc;AACd,gCAAgC,qDAAM;AACtC;AACA;AACA,UAAU;AACV,4BAA4B,qDAAM;AAClC,6BAA6B,mDAAI;AACjC,kCAAkC,oDAAK;AACvC;AACA,cAAc;AACd,kCAAkC,mDAAI;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0DAAiB;AACjB;AACA,CAAC;;AAED,iEAAe,gBAAgB,EAAC;;;;;;;;;;;;;;;;;;;;;;;AChG4C;;AAEpB;AACL;;AAEE;AACQ;;AAE7D,wBAAwB,+CAAY;AACpC;AACA;;AAEA;AACA,0CAA0C,+CAAY;;AAEtD;;AAEA;AACA,+BAA+B,0DAAgB;AAC/C,gBAAgB,mDAAU,GAAG,oBAAoB,6BAA6B;AAC9E;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA,+BAA+B,gDAAC,GAAG,gDAAC;AACpC,8BAA8B,+DAAU;AACxC;;AAEA;AACA,0BAA0B,+DAAU;AACpC,UAAU;AACV,0BAA0B,+DAAU;AACpC;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gDAAC,GAAG,gDAAC;AACpC;;AAEA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,wBAAwB,yDAAS;AACjC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,0DAAiB;AACjB,WAAW,oDAAK;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,iEAAe,SAAS;;;;;;;;;;;;;;;;;;;ACpIsB;AACH;;AAEe;;AAE4B;;AAEtF;;AAEA,yBAAyB,4DAAQ;AACjC;AACA,+BAA+B,mDAAU,GAAG,mBAAmB,qBAAqB;AACpF;;AAEA;;AAEA;AACA;AACA;;AAEA,4BAA4B,sDAAY;;AAExC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,uDAAc;AACpC;;AAEA;AACA;AACA;;AAEA,wBAAwB,iBAAiB;AACzC;AACA;AACA,oBAAoB,gDAAO;AAC3B;AACA;AACA;AACA;;AAEA,gBAAgB,gDAAO;AACvB;AACA,cAAc;AACd;AACA;;AAEA,gBAAgB,gDAAO;AACvB;AACA;AACA;;AAEA,aAAa,gDAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,wBAAwB,iBAAiB;AACzC;AACA,mBAAmB,uDAAc;AACjC;AACA;AACA,sCAAsC,0CAA0C;AAChF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,kEAA0B;AACvC;AACA;;;AAGA,0DAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,iEAAe,UAAU;;;;;;;;;;;;;;;;;;;;;ACzGyB;AACU;;AAEzB;;AAEY;;AAEC;AACa;;AAE7D,2BAA2B,8DAAU;AACrC;AACA,gBAAgB,WAAW,uBAAuB,UAAU;AAC5D;AACA;;AAEA;AACA;AACA,2CAA2C,qDAAM;AACjD;;AAEA;;AAEA,iCAAiC,sCAAG;AACpC,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,eAAe,kEAA+B;AAC9C;AACA;;AAEA,0DAAiB;AACjB;AACA;AACA,KAAK;AACL;AACA,kBAAkB,qDAAM;AACxB,KAAK;AACL;AACA,cAAc,2CAAG;AACjB;AACA,CAAC;;AAED,mDAAU,yBAAyB,kEAAgB;;;AAGnD,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;;AClDgB;;AAE5C,kCAAkC,uDAAY;AAC9C;AACA;;AAEA;AACA;AACA;;AAEA,iEAAe,mBAAmB;;;;;;;;;;;;;;;;;;;ACVwB;;AAEJ;;AAEY;;AAEC;;AAEnE;;AAEA,2BAA2B,+CAAY;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,wCAAK;AACzB,oBAAoB,wCAAK;AACzB;AACA;AACA,oCAAoC,wCAAK;AACzC,wBAAwB,wCAAK;AAC7B,wBAAwB,wCAAK;AAC7B,wBAAwB,wCAAK;AAC7B;AACA,2BAA2B,sCAAG;AAC9B,UAAU;AACV;AACA,oBAAoB,wCAAK;AACzB,oBAAoB,wCAAK;AACzB;AACA;AACA,oCAAoC,wCAAK;AACzC,wBAAwB,wCAAK;AAC7B,wBAAwB,wCAAK;AAC7B,wBAAwB,wCAAK;AAC7B;AACA,2BAA2B,sCAAG;AAC9B;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,UAAU;AACV;AACA;AACA;;AAEA;AACA,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0BAA0B,yBAAyB;AACnD,6BAA6B,yDAAS;AACtC;AACA;;AAEA,YAAY,yDAAgB;AAC5B;AACA;AACA;AACA;;AAEA,0DAAiB;AACjB;AACA,cAAc,8CAAM;AACpB,eAAe,kEAA0B;AACzC,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED,iEAAe,YAAY;;;;;;;;;;;;;;;;;;ACnIiB;;AAEI;AACyB;;AAEzE;AACA;AACA;AACA;;AAEA,mCAAmC,0CAAK;AACxC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,8DAAoB;AAC3C;AACA,qBAAqB,gDAAO;AAC5B;;AAEA,YAAY,gDAAO;AACnB;AACA,0BAA0B,+CAAM;AAChC,UAAU,SAAS,iDAAQ;AAC3B,0BAA0B,+CAAM;AAChC,UAAU,yBAAyB,qDAAM;AACzC;AACA,0BAA0B,+CAAM;AAChC;;AAEA;AACA;;AAEA;AACA;;AAEA,aAAa,gDAAO;AACpB;AACA;;AAEA;AACA;AACA;;AAEA,YAAY,gDAAO;AACnB;AACA;AACA,UAAU,SAAS,iDAAQ;AAC3B;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA,iBAAiB;AACjB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0BAA0B,cAAc;AACxC;AACA,gBAAgB,iDAAQ;AACxB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0BAA0B,cAAc;AACxC;AACA,gBAAgB,iDAAQ;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,oBAAoB;;;;;;;;;;;;;;;;ACjIS;;AAE5C,8BAA8B,uDAAY;AAC1C;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iEAAe,eAAe;;;;;;;;;;;;;;;;;;;;;;ACX6B;;AAER;AACG;AACT;;AAEQ;;AAEC;AAC2D;;AAEjH,0BAA0B,+CAAY;AACtC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,qBAAqB,WAAW,wBAAwB;AACxE;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB,gBAAgB,EAAE,oDAAY;;AAE9C,wBAAwB,mBAAmB;AAC3C;;AAEA;AACA;AACA;;AAEA;;AAEA,iBAAiB,mDAAU;AAC3B;AACA;;AAEA,qBAAqB,mDAAU;AAC/B;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY,4BAA4B;;AAErD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,QAAQ,mDAAW;AACnB;AACA;AACA;AACA;AACA,SAAS,IAAI,6FAA6F;AAC1G;;AAEA;AACA,8BAA8B,mDAAU,GAAG;AAC3C;;AAEA;;AAEA;;AAEA,gCAAgC,uDAAa;AAC7C;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,mBAAmB;AACnC,uBAAuB,mDAAU,GAAG;AACpC;;AAEA;AACA,kCAAkC,oDAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA,+BAA+B,sDAAa;AAC5C;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,0CAAO,OAAO,mDAAU;AACxD;AACA,aAAa;;AAEb;;AAEA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B;;AAE1B,wBAAwB,mBAAmB;AAC3C;AACA;AACA,0BAA0B,qDAAM;AAChC;;AAEA,8BAA8B,mDAAI;AAClC;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,4BAA4B;AAC5C;AACA;AACA;;AAEA,0BAA0B,uBAAuB;AACjD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,0BAA0B,aAAa;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA,qBAAqB,mDAAU;;AAE/B,4BAA4B,+DAAU;AACtC,4BAA4B,+DAAU;AACtC,4BAA4B,+DAAU;AACtC,4BAA4B,+DAAU;;AAEtC;AACA;AACA,4BAA4B,mDAAU;AACtC;AACA;;AAEA;AACA,gBAAgB,4BAA4B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,aAAa;AACvC;AACA;AACA;AACA;;AAEA,4BAA4B,+DAAU;AACtC,4BAA4B,+DAAU;AACtC,4BAA4B,+DAAU;AACtC,4BAA4B,+DAAU;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA,0BAA0B,aAAa;AACvC;AACA;AACA;AACA;;AAEA,0DAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qDAAM;AACrB,kBAAkB,qDAAM;AACxB;AACA;AACA,CAAC;;AAED,mDAAU,wBAAwB,+DAAa;;AAE/C,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;;;;;;;ACzQ+B;;AAEJ;AACM;;AAEb;AACc;;AAE7D,4BAA4B,+CAAY;AACxC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uBAAuB,sCAAG;;AAE1B;AACA,6BAA6B,sCAAG;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,oEAAoB;AACzC;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;A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qDAAM;AACjC,4BAA4B,qDAAM;AAClC;AACA;AACA;AACA,qBAAqB;AACrB,4BAA4B,uDAAc;AAC1C,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB,uDAAc;AACnC,qCAAqC,2DAAY;AACjD,0BAA0B,uDAAc;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,eAAe,gDAAS;AACxB;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,uDAAc;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,+CAAY;AACvC,kBAAkB,uDAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uDAAc;AAClC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8BAA8B,+CAAY;AAC1C,kBAAkB,uDAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uDAAc;AAClC,SAAS;;AAET;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,sDAAc;;AAEhD;AACA,uBAAuB,wCAAK;AAC5B;AACA,4BAA4B,qDAAM;AAClC,0BAA0B,qDAAM;AAChC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mDAAU,yBAAyB,kEAAgB;AACnD,mDAAU,yBAAyB,0DAAS;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,eAAe,QAAQ;AACvB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA,i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,2BAA2B,qDAAM;AACjC,4BAA4B,qDAAM;AAClC;AACA;AACA;AACA,qBAAqB;AACrB,4BAA4B,uDAAc;AAC1C,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,mDAAU,GAAG,mBAAmB;;AAEvD,aAAa,gDAAO;AACpB,+BAA+B,+DAAK,wBAAwB,yDAAiB;AAC7E;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,2BAA2B,+CAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uDAAc;AAClC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,qBAAqB;AACrC;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,4BAA4B,2BAA2B;AACvD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oCAAoC,sCAAG;AACvC;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,iBAAiB;AACjC;;AAEA;AACA,gCAAgC,6CAAK,GAAG,kDAAG;AAC3C,gCAAgC,6CAAK,GAAG,qDAAM;;AAE9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,+CAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uDAAc;AACvC,aAAa;AACb,qBAAqB,uDAAc;AACnC,SAAS;AACT;;AAEA;AACA;;AAEA;AACA,iCAAiC;AACjC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,uBAAuB,+DAAS;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC,sDAAc;AACnD,oCAAoC,mDAAI;AACxC;;AAEA;AACA;AACA,gCAAgC,qDAAM;AACtC,cAAc;AACd;AACA,gCAAgC,kDAAG;AACnC;;AAEA;AACA,2BAA2B,wCAAK;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,oDAAK;AACzB,cAAc,wDAAgB;AAC9B,cAAc,qDAAM;AACpB;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA,kBAAkB,6CAAK;AACvB,gBAAgB,mDAAU;AAC1B,iBAAiB,mDAAU;AAC3B;AACA,kBAAkB,8CAAM;AACxB,mBAAmB,kEAA0B;AAC7C;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,gBAAgB,+DAAgB;AAChC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA,mDAAU,sBAAsB,kEAAgB;AAChD,mDAAU,sBAAsB,0DAAS;;AAEzC,iEAAe,SAAS,EAAC;;;;;;;;;;;;;;;;;;;ACtUiC;;AAEhB;;AAE4B;;AAEtE,0BAA0B,+CAAY;AACtC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gDAAgD,YAAY;AAC5D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb,gCAAgC,gDAAO;AACvC;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA,gBAAgB,kBAAkB;AAClC,cAAc,6BAA6B;;AAE3C,YAAY,mDAAU;AACtB;AACA;;AAEA,qBAAqB,oEAAoB;AACzC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0DAAiB;AACjB;AACA,CAAC;;AAED,iEAAe,WAAW;;;;;;;;;;;;;;;;;;;ACrFgC;;AAEjB;;AAEG;;AAEF;;AAE1C,4BAA4B,qDAAW;AACvC;AACA;AACA;AACA;;AAEA,YAAY,mDAAU;AACtB;AACA;;AAEA,mCAAmC,iDAAc;AACjD;AACA,0BAA0B,yDAAS;AACnC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;;AAET;;AAEA;AACA;AACA;;AAEA,iEAAe,aAAa;;;;;;;;;;;;;;;;;;ACpC+B;;AAEvB;AACU;;AAE9C;AACA;AACA;AACA,gBAAgB,+BAA+B;;AAE/C,oCAAoC,gDAAC,GAAG,gDAAC;AACzC,gCAAgC,gDAAC,GAAG,gDAAC;AACrC;AACA;;AAEA;AACA;;AAEA,0BAA0B,qBAAqB;AAC/C;;AAEA;AACA,sCAAsC,+DAAU;AAChD;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,wCAAwC,6CAAI;AAC5C,UAAU,2BAA2B,6CAAI;AACzC;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,uBAAuB,+DAAU;;AAEjC;AACA;;AAEA;AACA;;AAEA,iEAAe,aAAa;;;;;;;;;;;;;;;;;;ACrDa;AACK;AACJ;;AAE1C,8BAA8B,qDAAW;AACzC;AACA;AACA;AACA;;AAEA,mDAAU,4BAA4B,wDAAa;;AAEnD,iEAAe,eAAe;;;;;;;;;;;;;;;;;;;ACZ4B;;AAED;AACL;AACb;;AAEvC;AACA;AACA;AACA,uCAAuC;AACvC;AACA,6BAA6B,kEAAkB;AAC/C;AACA,iCAAiC,kEAAa;AAC9C;AACA,aAAa;AACb,gBAAgB,kEAAY;AAC5B;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA,0BAA0B,qBAAqB;AAC/C;AACA,yCAAyC,gDAAO;AAChD;AACA;AACA;AACA;AACA;;AAEA,iEAAe,kBAAkB;;;;;;;;;;;;;;;;;;;AClCgB;;AAEd;AACgB;AACZ;;AAEvC;AACA;AACA,gBAAgB,wBAAwB;AACxC;AACA;AACA;;AAEA;;AAEA,+BAA+B,wBAAwB;AACvD;AACA;AACA;AACA;;AAEA,kCAAkC,sBAAsB;AACxD;AACA;AACA;AACA,kBAAkB,qDAAqD,mDAAW;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA,4BAA4B,4CAAI,oBAAoB,mDAAW;AAC/D,KAAK;;AAEL;AACA,2BAA2B,wCAAK;AAChC;AACA,mCAAmC,wDAAS;AAC5C;;AAEA,wBAAwB,sBAAsB;AAC9C;;AAEA,yBAAyB,gDAAO;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iEAAe,cAAc;;;;;;;;;;;;;;;;;ACvFK;AACK;;AAEvC;AACA;AACA;AACA;;AAEA,yCAAyC,gDAAO;AAChD,4BAA4B,uCAAI;AAChC;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA,iEAAe,SAAS;;;;;;;;;;;;;;;;;ACtBmB;AACP;;AAEpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iDAAiD,oDAAW;AAC5D,gBAAgB,oDAAW,yBAAyB,oDAAW;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;;AAEA,gBAAgB,gDAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA,iEAAe,aAAa;;;;;;;;;;;;;;;;ACpDoC;;AAEhE;AACA;AACA,sCAAsC,uDAAe;AACrD,KAAK;;AAEL;AACA,sCAAsC,uDAAe;AACrD;AACA;;AAEA,iEAAe,mBAAmB;;;;;;;;;;;;;;;;;ACZmD;AACzC;;AAE5C;AACA;AACA;AACA,YAAY,oDAAY;AACxB;AACA;AACA,KAAK;;AAEL;AACA;AACA,YAAY,oDAAY;AACxB;AACA;AACA,KAAK;;AAEL;AACA;AACA,YAAY,mDAAW;AACvB;AACA;AACA,KAAK;;AAEL;AACA;AACA,YAAY,oDAAY;AACxB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qDAAY;AACjC;AACA;AACA;AACA;AACA;;AAEA,iEAAe,gBAAgB;;;;;;;;;;;;;;;;;ACjDuC;AACjC;;AAErC,wBAAwB,4EAAgB;AACxC;AACA,eAAe,mDAAS;AACxB;AACA;;AAEA,iEAAe,SAAS;;;;;;;;;;;;;;;;ACTmC;;AAE3D,wBAAwB,sEAAW;AACnC;AACA,gBAAgB,+BAA+B;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA,iEAAe,SAAS;;;;;;;;;;;;;;;ACtCT;AACf;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;ACLuD;;AAET;AACG;AACA;;AAEjD;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,0CAAK;AAClC;AACA;;AAEA;AACA,uBAAuB,mDAAU;AACjC;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA,0BAA0B,mBAAmB;AAC7C;AACA;;AAEA,2BAA2B,gDAAC,6BAA6B,gDAAC;AAC1D,6BAA6B,0DAAU;AACvC;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA,eAAe,iEAAiB;AAChC;;AAEA;AACA;AACA;;AAEA;AACA,8BAA8B,yBAAyB;AACvD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iEAAe,cAAc,EAAC;;;;;;;;;;;;;;;;;;;;ACnEO;AACkB;;AAET;AACG;;AAEjD,uBAAuB,0CAAK;AAC5B;AACA;;AAEA;AACA,uBAAuB,mDAAU,GAAG;AACpC;;AAEA;AACA,uBAAuB,uDAAS;AAChC;AACA;;AAEA;AACA;AACA,kEAAkE,gDAAC,0BAA0B,gDAAC;AAC9F;AACA;AACA,uBAAuB,iEAAiB;AACxC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,uBAAuB;AACvC;AACA,8BAA8B,yBAAyB;AACvD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B,mBAAmB;AACjD;;AAEA,iCAAiC,gDAAC,2CAA2C,gDAAC;AAC9E;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iEAAe,QAAQ;;;;;;;;;;;;;;;ACrFR;AACf;AACA,sBAAsB,yBAAyB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACZqC;AACkB;;AAET;AAC0C;;AAExF,4BAA4B,0CAAK;AACjC;AACA;;AAEA;AACA,uBAAuB,mDAAU,GAAG;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,sDAAa;AACrB;;AAEA;AACA,YAAY,uDAAS;AACrB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,0BAA0B,EAAE,sDAAa;AACzD,uBAAuB,sDAAa;;AAEpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B;AAC5B,0BAA0B;AAC1B;;AAEA;AACA;;AAEA,mBAAmB,iEAAiB;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B,yBAAyB;AACvD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0BAA0B,mBAAmB;AAC7C;AACA;AACA,2BAA2B,gDAAC,6BAA6B,gDAAC,iBAAiB,gDAAO;AAClF;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAK,iBAAiB,OAAO,oBAAoB;AACjE;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,gDAAC;AACtB;AACA;AACA;AACA,qBAAqB,gDAAC;AACtB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iEAAe,aAAa;;;;;;;;;;;;;;;;;;;;;AC7LmC;AACpB;AACI;;AAEL;AACY;AAC4B;;AAElF,mBAAmB,6CAAU;AAC7B;AACA;;AAEA;;AAEA;;AAEA,2BAA2B,+CAAY;;AAEvC,kCAAkC,wDAAc,GAAG;AACnD;;AAEA;AACA;AACA;;AAEA;AACA;AACA,YAAY,iDAAQ;AACpB,2BAA2B,mDAAU,GAAG;AACxC;AACA,0BAA0B,kDAAG;AAC7B,aAAa;AACb;;AAEA,qBAAqB,mDAAgB;AACrC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,sBAAsB;AAClD;AACA;;AAEA,4BAA4B,wBAAwB;AACpD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,6CAAI;AAChB;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA,wBAAwB,+CAAM;AAC9B;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B,sCAAG;;AAEjC,0BAA0B,cAAc;AACxC;AACA,2DAA2D,gDAAC,GAAG,gDAAC;AAChE;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8BAA8B,cAAc;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,mDAAW;AACtC,0BAA0B,oDAAS;AACnC;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA,0DAAiB;AACjB;AACA;AACA;AACA,eAAe,mDAAI;AACnB,KAAK;AACL;AACA,CAAC;;AAED,iEAAe,IAAI,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;AC9NgD;;AAE7B;AACe;AACM;;AAED;AACN;;AAEU;AACsD;;AAErH;;AAEA,uBAAuB,+CAAY;AACnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,qBAAqB,WAAW,wBAAwB;AACxE;AACA;AACA;;AAEA,+BAA+B,wBAAwB;AACvD;AACA;AACA,oBAAoB,uBAAuB,EAAE,oDAAY;AACzD;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,gDAAO;AACvB;AACA,cAAc;AACd;AACA;;AAEA;AACA,sDAAsD,mDAAW;AACjE,oDAAoD,qDAAM;AAC1D;AACA;;AAEA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;;AAEA,wBAAwB,yBAAyB;AACjD;AACA;;AAEA,qBAAqB,mDAAU;AAC/B;AACA;;AAEA,0DAA0D,uCAAI;AAC9D;AACA,8BAA8B,gDAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,QAAQ,mDAAW;AACnB;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI,6FAA6F;AAC1G;;AAEA;AACA,+BAA+B,mDAAU,GAAG,mBAAmB,qBAAqB;AACpF;;AAEA;;AAEA;AACA;AACA;;AAEA,4BAA4B,oDAAU;AACtC;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,sCAAsC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sCAAG;AAC9B;AACA;AACA;AACA;AACA;AACA,sBAAsB,uDAAc;;AAEpC;;AAEA;AACA;;AAEA;AACA,2BAA2B,wCAAK;AAChC;AACA;AACA;;AAEA,wBAAwB,WAAW;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,+CAA+C,mDAAW;AAC1D;AACA,kDAAkD,oDAAK;AACvD;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,wBAAwB,6CAAI;AAC5B;AACA;AACA;AACA;AACA;AACA,uBAAuB,8CAAK;;AAE5B;;AAEA,wBAAwB,WAAW;AACnC;;AAEA;AACA,uBAAuB,8CAAK;AAC5B;AACA;AACA,mBAAmB,8CAAK;AACxB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,WAAW;AACnC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,wBAAwB,6CAAI;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,iBAAiB;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,oDAAK;;AAE3C,sCAAsC,oDAAK;AAC3C,2CAA2C,qDAAM;AACjD;AACA;AACA,iCAAiC,sCAAG;AACpC,cAAc;AACd,2CAA2C,qDAAM;AACjD;AACA;AACA,iCAAiC,sCAAG;AACpC;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,WAAW,YAAY,WAAW;AAClD;AACA;;AAEA;;AAEA;;AAEA,wBAAwB,WAAW;AACnC;AACA,oBAAoB,gBAAgB;AACpC;AACA,qEAAqE;;AAErE;AACA,0CAA0C,yDAAS;AACnD;AACA;AACA;AACA,qBAAqB;AACrB;AACA,8BAA8B,8CAAM;AACpC;AACA;AACA,iBAAiB;;AAEjB,+CAA+C,mDAAW;AAC1D;AACA;AACA;AACA,qCAAqC,wCAAK;AAC1C;;AAEA;AACA;AACA;AACA,8CAA8C,oDAAK;AACnD,kCAAkC,wCAAK;AACvC;AACA,qCAAqC,wCAAK;AAC1C;AACA;;AAEA;AACA;AACA;AACA,iEAAiE,8CAAM;AACvE;AACA;AACA,kCAAkC;AAClC;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,sBAAsB;AACtB,kCAAkC,wCAAK;AACvC;AACA,qCAAqC,wCAAK;AAC1C;AACA;;AAEA;AACA;AACA;AACA,iEAAiE,8CAAM;AACvE;AACA;AACA,kCAAkC;AAClC;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,YAAY,6CAAI;AAChB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC,+DAAkB;AACxD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,kBAAkB,iBAAiB;AACnD;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,wCAAK;AAC1B;AACA;AACA;AACA;;AAEA;AACA;;AAEA,0DAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,mBAAmB;AACnB;AACA;AACA,CAAC;;AAED,mDAAU,qBAAqB,+DAAa;;AAE5C;;AAEA,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;AC5eoD;;AAEN;;AAEV;;AAEwB;AACrB;;AAE2D;AACT;;AAEjH,yBAAyB,+CAAY;AACrC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8BAA8B,oDAAW;AACzC;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA,oCAAoC,qDAAM,wBAAwB,kDAAU;AAC5E;AACA,mCAAmC,sDAAa;AAChD;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;;AAGA,6BAA6B,0CAAO,YAAY,mDAAU,GAAG;AAC7D,uBAAuB,qDAAM;AAC7B;AACA;AACA,0BAA0B,8CAAM;AAChC;AACA;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,WAAW,uBAAuB,UAAU;AAC5D;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2CAA2C,qDAAM;AACjD;AACA;AACA,iCAAiC,sCAAG;AACpC,cAAc,oCAAoC,kDAAU;AAC5D;AACA;AACA,iCAAiC,sCAAG;AACpC,cAAc;AACd;AACA;AACA;AACA;AACA,wCAAwC,oDAAK;AAC7C,kBAAkB;AAClB;AACA,wCAAwC,mDAAI;AAC5C;AACA,iCAAiC,sCAAG;AACpC;AACA;AACA;;AAEA;AACA,gBAAgB,kBAAkB;;AAElC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,+DAAU;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,+DAAU;AACpD;;AAEA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,kDAAkD,mDAAU;AAC5D;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;;AAET;;AAEA,YAA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;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8CAAI,4BAA4B,6BAA6B;AAClF,4CAA4C;AAC5C,+CAA+C;AAC/C,oCAAoC;;AAEpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B,qBAAqB;AAC/C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,8BAA8B;AAC3D;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,4DAAQ;AACrC;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC,wEAAa;AAClD;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,kEAAW;AAC3C;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,8DAAS;AACvC;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,+DAAS;AACvC;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;;AAEA,mCAAmC,2EAAc;AACjD;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,+DAAS;AACnC;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,6EAAgB;AAC1C;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,uEAAY;AACtC;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,mCAAmC,yEAAc;AACjD;AACA;AACA;AACA;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;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA,iDAAiD,4DAAS;;AAE1D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4CAA4C,QAAQ;AACpD,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B,yBAAyB;AACnD;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,WAAW;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA,kDAAkD,oDAAW,WAAW,oDAAW,yBAAyB,oDAAW;AACvH;AACA;AACA,0BAA0B,gDAAQ;AAClC;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA,gBAAgB,mDAAU;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,gDAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA,QAAQ,+CAAM;AACd;;AAEA;AACA;AACA;;AAEA,6BAA6B,uBAAuB;AACpD;AACA,iCAAiC,0BAA0B;AAC3D;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA,iBAAiB;AACjB;;AAEA;AACA;AACA;;AAEA,wBAAwB,mBAAmB;AAC3C;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,mDAAU;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,iBAAiB;AACzC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gDAAC,sBAAsB,gDAAC;AAC/C,uBAAuB,gDAAC,sBAAsB,gDAAC;AAC/C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,gBAAgB,8CAAK,wBAAwB,8CAAK;AAClD;AACA;AACA;AACA,0DAA0D,mDAAI;AAC9D;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,8CAAK,wBAAwB,8CAAK;AAClD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,2DAA2D,oDAAK;AAChE;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,gBAAgB,8CAAK,wBAAwB,8CAAK;AAClD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yDAAyD,kDAAG;AAC5D;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,8CAAK,oBAAoB,8DAAe,MAAM,8CAAK,sBAAsB,8DAAe;AACxG;AACA;AACA;AACA,4DAA4D,qDAAM;AAClE;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wBAAwB,kBAAkB;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,iBAAiB;AAC7C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;;AAEA;AACA,gCAAgC,iBAAiB;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA,gCAAgC,qBAAqB;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,iBAAiB;AACzC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,wBAAwB,kBAAkB;AAC1C;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,QAAQ;AACxB;AACA;;AAEA,0BAA0B,mBAAmB;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,oBAAoB;AAClD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wBAAwB,WAAW;AACnC;AACA,8BAA8B,gDAAO;AACrC;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,iBAAiB;AACzC;AACA;;AAEA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,wBAAwB,iBAAiB;AACzC;;AAEA;AACA;AACA;AACA;;AAEA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wBAAwB,eAAe;AACvC;;AAEA,4BAA4B,eAAe;AAC3C;;AAEA;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,0BAA0B,oBAAoB;AAC9C;AACA;;AAEA;AACA;;AAEA;AACA;AACA,0BAA0B,oBAAoB;AAC9C,iCAAiC,kEAAkB;AACnD;AACA;;AAEA;AACA;AACA,0BAA0B,oBAAoB;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,cAAc,mCAAmC;AACjD;AACA,yBAAyB,oDAAK;AAC9B;AACA;;AAEA,wCAAwC,8DAAc;AACtD;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;;AAET;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAoC,mBAAmB;AACvD;AACA,qCAAqC,gDAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA,wBAAwB,mBAAmB;AAC3C;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,wBAAwB,mBAAmB;AAC3C;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC,kDAAG,iBAAiB,oDAAK;AAC7D;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iCAAiC,kDAAG;AACpC;AACA;AACA,8BAA8B,mDAAU;;AAExC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA,sBAAsB,sCAAG;AACzB;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6FAA6F,gDAAO;AACpG;;AAEA;;AAEA,0DAAiB;AACjB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,oDAAK;AACpB;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;;;ACh/BoC;AAC3B;;AAErC,8BAA8B,0CAAK;;AAEnC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA,0BAA0B,uBAAuB;AACjD;AACA,qBAAqB,wEAAkB;;AAEvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,iEAAe,eAAe;;;;;;;;;;;;;;;;;;;;;ACvCa;AACqB;AACI;;AAEzB;;AAED;AACS;;AAEnD;;AAEA,gCAAgC,sDAAY;AAC5C;AACA,yCAAyC,iEAAqB;AAC9D;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA,iCAAiC,mDAAW;AAC5C,uBAAuB,uDAAoB;AAC3C,iCAAiC;AACjC,UAAU;AACV,uBAAuB,mDAAgB;AACvC,iCAAiC;AACjC;;AAEA;;AAEA;AAC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;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,gBAAgB,wBAAwB;AACxC;AACA;;AAEA;AACA,YAAY,mDAAU;AACtB,qBAAqB,sDAAS;AAC9B,qBAAqB,sDAAS;AAC9B,sBAAsB,sDAAS;AAC/B,oBAAoB,sDAAS;AAC7B,aAAa;AACb;;AAEA,gBAAgB,0BAA0B,EAAE,sDAAa;;AAEzD,uBAAuB,mDAAU,GAAG;AACpC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gBAAgB,qDAAY;AAC5B,sBAAsB,kDAAU;AAChC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,qDAAY;;AAEnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET,yBAAyB,oDAAY;AACrC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV,mCAAmC,qDAAY;AAC/C;AACA;AACA,YAAY,iDAAQ;AACpB;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,uCAAuC;AACvD,gBAAgB,4BAA4B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,sBAAsB,sDAAa;AACnC;;AAEA;AACA;AACA;;AAEA,2BAA2B,mDAAU;AACrC,4BAA4B,mDAAU;;AAEtC,YAAY,mDAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,8CAAM;AAC/B;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,oDAAW;AAC3B;;AAEA;AACA;AACA,yBAAyB,kDAAU;;AAEnC;AACA;AACA;;AAEA;AACA,gBAAgB,wBAAwB;AACxC;AACA,+DAA+D,wCAAK;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,yBAAyB,8CAAM;AAC/B;AACA;AACA;;AAEA;AACA,oBAAoB,wDAAe;;AAEnC,sBAAsB,wBAAwB;;AAE9C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6BAA6B,8CAAM;AACnC;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa,EAAE,wDAAgB;AAC/B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,oDAAY;AACrC;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,kDAAU;AACnC;AACA;AACA;;AAEA;AACA,gBAAgB,8CAA8C;AAC9D;AACA;AACA;AACA;AACA;;AAEA;;AAEA,yDAAyD,wCAAK;;AAE9D,uDAAuD,wCAAK;;AAE5D;;AAEA,qBAAqB,8CAAM;AAC3B;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,8BAA8B,WAAW;AACzD;AACA;AACA;;AAEA;AACA,8BAA8B,8CAAK;;AAEnC,QAAQ,sDAAa;AACrB;AACA,SAAS;AACT,QAAQ,sDAAa;AACrB;AACA,SAAS;;AAET;;AAEA,+BAA+B,8CAAK;AACpC,QAAQ,sDAAa;AACrB;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA,QAAQ,sDAAa;AACrB;AACA,SAAS;AACT,QAAQ,sDAAa;AACrB;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,0BAA0B,mDAAU;AACpC,wBAAwB,mDAAU;;AAElC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;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;;;;;;ACdiD;AACE;AACP;;AAE5C;;AAEA;AACA;AACA;AACA;;AAEA,0DAA0D,4CAAI,GAAG,mDAAW;AAC5E;;AAEA;AACA,mBAAmB,wEAA8B;AACjD;;AAEA;AACA,YAAY,4DAAmB;AAC/B;AACA;AACA;AACA;;AAEA,oBAAoB,+CAA+C;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;;AAEe;AACf,YAAY,WAAW;AACvB;AACA;;AAEA;AACA;AACA;AACA,8BAA8B,mDAAW;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;AC1Ge;AACf;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACN6E;;AAE7E;;AAEe,iDAAiD;AAChE;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa,gDAAO;AACpB;AACA,gBAAgB,mDAAU;AAC1B;AACA;AACA,wCAAwC,uDAAc;AACtD;AACA,cAAc,SAAS,iDAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACnCuC;;AAExB;AACf;;AAEA;AACA,sBAAsB,qBAAqB;AAC3C;AACA,YAAY,gDAAO;AACnB;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;ACd6C;AACP;;AAEvB;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,sDAAS,cAAc,+CAAM;AAC7C;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACjBsC;;AAEvB;AACf;AACA;AACA;;AAEA,gBAAgB,+CAAM;AACtB;AACA;;;;;;;;;;;;;;;ACTe;AACf;;AAEA;AACA;;;;;;;;;;;;;;;;ACJuC;;AAExB;AACf,WAAW,gDAAO;AAClB;;;;;;;;;;;;;;;;;ACJoD;;AAEN;;AAE/B;AACf;AACA;;AAEA,sCAAsC,+DAAgB,OAAO,mDAAI;AACjE;;;;;;;;;;;;;;;;ACTuC;;AAExB;AACf;AACA,QAAQ,gDAAO;AACf;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACZe;AACf;AACA;;;;;;;;;;;;;;;;;;;;ACF8C;AACF;AACO;;AAEK;;AAEhB;;AAExC,6BAA6B,4DAAQ;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,mEAAe;AAC/C;;AAEA,+BAA+B,0BAA0B;AACzD;AACA;AACA;;AAEA,qCAAqC,8BAA8B;AACnE,6BAA6B,wEAA8B;AAC3D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,kBAAkB,SAAS,iDAAQ;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA,4BAA4B,kBAAkB;AAC9C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,+BAA+B,0BAA0B;AACzD;AACA;;AAEA;AACA;AACA,sCAAsC,yBAAyB;AAC/D;;AAEA;AACA,4CAA4C,0DAAgB;AAC5D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,cAAc;;;;;;;;;;;;;;;;;;;ACrG6B;;AAEhB;;AAEwB;;AAEC;;AAEnE,+BAA+B,+CAAY;AAC3C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,QAAQ,cAAc,QAAQ,eAAe;AAC7D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,qBAAqB,oEAAoB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET,QAAQ,yDAAgB;AACxB;AACA;AACA;;AAEA,0DAAiB;AACjB;AACA,cAAc,8CAAM;AACpB,eAAe,kEAA0B;AACzC;AACA,CAAC;;AAED,iEAAe,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjE0B;AACM;AACY;AACjB;AACsB;AACnB;AACM;AACN;AACE;AACX;AACJ;AACa;AACN;AACA;AACkB;AACA;AAClB;AACM;AACJ;AACA;AACA;AACX;AACyB;AACV;AACe;AACA;AACf;AACb;AACiB;AACG;AACA;AACY;AAChC;;AAEhB;;;;;;;;;;;;;;;;;AClCC;;AAElB;AACf,uBAAuB,qDAAO;;AAE9B,sBAAsB,yBAAyB;AAC/C;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACXkD;;AAEnC;AACf;AACA,+BAA+B,+DAAoB;AACnD;AACA;AACA;AACA;;AAEA,oBAAoB,0BAA0B;AAC9C;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;ACfgD;AACL;;AAE3C;AACA,uBAAuB,+DAAK;AAC5B;AACA,eAAe,6CAAK;AACpB;;AAEA,WAAW,6CAAK;AAChB;;AAEA,iEAAe,aAAa,EAAC;;;;;;;;;;;;;;;;ACZd;AACf;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACLO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACtC4B;AACA;;AAEpB;AACf,WAAW,sDAAQ,YAAY,sDAAQ;AACvC;;;;;;;;;;;;;;;ACLA;;AAEA;AACA;AACA;AACA;;AAEA,wBAAwB,yBAAyB;AACjD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEe;AACf;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;AC7FuC;;AAEvC;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;;AAEA;AACA;AACA,cAAc,SAAS,wDAAU;AACjC;AACA,cAAc;AACd;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEe;AACf;;AAEA,oBAAoB,YAAY;AAChC;AACA;;AAEA;AACA;;;;;;;;;;;;;;;ACjDe;AACf;AACA;;;;;;;;;;;;;;;;;ACFmD;;AAEnD,eAAe,+DAAe;AAC9B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACxCmC;AACF;AACE;AACI;;AAEvC;;AAEA;AACA;AACA;;AAEe;AACf,wBAAwB,sDAAQ;;AAEhC,QAAQ,qDAAO;AACf;AACA;;AAEA,0BAA0B,0BAA0B;AACpD;AACA;AACA;;AAEA;AACA,MAAM,SAAS,sDAAQ;AACvB;AACA,mCAAmC,wDAAU;AAC7C;AACA;AACA;;;;;;;;;;;;;;;AC7Be;AACf,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACPgD;;AAEhD;A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AG,EAAE,qDAAM;AACjG,kEAAkE,qDAAM,GAAG,kDAAG;AAC9E;AACA,kBAAkB;AAClB;AACA,kEAAkE,mDAAI,GAAG,oDAAK;AAC9E,sBAAsB;AACtB,kEAAkE,qDAAM,GAAG,kDAAG;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,8CAA8C,gEAAU;AACxD;AACA,aAAa;AACb;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+CAA+C,WAAW;AAC1D,wBAAwB,gDAAO;AAC/B;AACA;;AAEA;AACA;AACA;;AAEA,qCAAqC,mEAAc;AACnD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,0DAAS;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA,gBAAgB,yDAAgB;AAChC;;AAEA,gDAAgD,gEAAU;AAC1D;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,eAAe;AAC/B;;AAEA;AACA,mCAAmC,mEAAkB;AACrD;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gDAAgD,gEAAU;AAC1D;AACA,SAAS;;AAET,wBAAwB,6CAAI;;AAE5B,0BAA0B,wBAAwB;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA,+DAA+D,mDAAI;AACnE;AACA;AACA;AACA,wBAAwB,4CAAG;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,qCAAqC,gEAAS;AAC9C;AACA;AACA;;AAEA,6BAA6B,mEAAkB;AAC/C;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,YAAY,gDAAO;AACnB,kCAAkC,oDAAW;AAC7C;AACA,uCAAuC,wBAAwB;AAC/D,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA,sBAAsB,iDAAO;AAC7B;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gBAAgB,sDAAsD;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,4CAA4C,WAAW;AACvD,8BAA8B,8CAAK;AACnC,yBAAyB,gDAAO;AAChC;AACA;AACA,6CAA6C,wEAAkB;;AAE/D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,yBAAyB;AACzC;AACA;AACA,kCAAkC,oDAAK,GAAG,qDAAM;AAChD;AACA;AACA,6CAA6C;AAC7C;AACA;;AAEA,wBAAwB,WAAW;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,4CAAG;AAC9B;AACA;AACA;AACA,UAAU;AACV,2BAA2B,4CAAG;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;;AAEA,0BAA0B,qBAAqB;AAC/C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,+CAA+C,mDAAI;AACnD,cAAc;AACd;AACA,+CAA+C,oDAAK;AACpD;;AAEA;AACA,UAAU;AACV;;AAEA;AACA;AACA,+CAA+C,qDAAM;AACrD,cAAc;AACd;AACA,+CAA+C,kDAAG;AAClD;;AAEA,2BAA2B,4CAAG;AAC9B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0BAA0B,aAAa;AACvC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,qBAAqB;AACnD;AACA,uCAAuC,4CAAG;AAC1C;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,iBAAiB;AACjC;AACA;;AAEA;AACA;AACA,+CAA+C,oDAAK,GAAG,mDAAI;AAC3D;AACA,cAAc;AACd;AACA,gDAAgD,kDAAG,GAAG,qDAAM;AAC5D;;AAEA;AACA;AACA;;AAEA;AACA,0BAA0B,yBAAyB;AACnD;AACA;AACA;;AAEA,gBAAgB,gDAAO;AACvB;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,gDAAC,GAAG,gDAAC;;AAEpC;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,oDAAW;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,oDAAoD;AACpD,6BAA6B,uBAAuB;AACpD;AACA;AACA;AACA,aAAa;;AAEb;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iDAAiD,gDAAC,GAAG,gDAAC;AACtD;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,oBAAoB;AACpC;AACA;AACA,uCAAuC,gDAAC,GAAG,gDAAC;AAC5C;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,qBAAqB;AAC/C;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,2CAA2C,gDAAO,sEAAsE,gDAAO;AAC/H;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uBAAuB,mDAAU;AACjC,uBAAuB,mDAAU;AACjC,UAAU;AACV,uBAAuB,mDAAU;AACjC,uBAAuB,mDAAU;AACjC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,oBAAoB;AACpC;AACA;;AAEA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA,gCAAgC,gDAAC,GAAG,gDAAC;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,+CAA+C;AAC/D;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,mDAAU;;AAEhC;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0DAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,oDAAK;AACpB;AACA,KAAK;AACL;AACA;AACA,kBAAkB,qDAAM;AACxB,KAAK;AACL;AACA,eAAe,sDAAO;AACtB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,sDAAO;AACtB;AACA;AACA;AACA,KAAK;AACL;AACA,mBAAmB,sDAAO;AAC1B,mBAAmB,mDAAI;AACvB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,oDAAK;AACpB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,CAAC;;AAED,iEAAe,IAAI,EAAC;;;;;;;;;;;;;;;;;;;;;ACl7BsC;;AAEf;AACnB;;AAEqC;AACa;;AAE1E,yBAAyB,sDAAY;AACrC;AACA;;AAEA,8BAA8B,mDAAU;AACxC,+BAA+B,mDAAU;AACzC;;AAEA;AACA;AACA,gBAAgB,6BAA6B;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,gDAAC;AACnC,kCAAkC,gDAAC;AACnC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,iCAAiC,4CAAG;AACpC,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,+BAA+B,kEAAkB;AACjD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yBAAyB,uDAAc;AACvC;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA,0DAAiB;AACjB,WAAW,mDAAI;AACf,YAAY,kDAAG;AACf,cAAc;AACd,eAAe;AACf;AACA,eAAe,oDAAK;AACpB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,iEAAe,UAAU;;;;;;;;;;;;;;;;;;;AC/HkC;;AAE/B;;AAEgE;AACd;;AAE9E,kBAAkB,0CAAK;AACvB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,YAAY,gDAAO;AACnB;AACA;AACA;;AAEA,YAAY,gDAAO;AACnB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA2B,gDAAO;AAClC;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,qBAAqB,gDAAC;AACtB;AACA;AACA;;AAEA,qBAAqB,gDAAC;AACtB;AACA;AACA;;AA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CtmB8B;;AAEd;AAC2B;;AAEvE,2BAA2B,0CAAK;AAChC;AACA;;AAEA;;AAEA,uBAAuB,mDAAU,GAAG;AACpC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,qBAAqB;AAC7C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;;AAEA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;;AAEA;AACA,0BAA0B,+DAAU;AACpC;AACA,qBAAqB,uDAAc;AACnC,SAAS;AACT;;AAEA;AACA;AACA,6BAA6B,sEAAqB;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,SAAS,gDAAO;AAC1B;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,cAAc;AACpC;AACA,uBAAuB,uDAAc;AACrC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,YAAY;AACpC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,2CAA2C;AAC3C;AACA;;AAEA;AACA,2CAA2C;AAC3C;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,oDAAK;AAChC;AACA,iBAAiB;AACjB;AACA,2BAA2B,oDAAK;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA,iBAAiB,gDAAO;AACxB,2CAA2C,uDAAc;AACzD;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,yDAAS;AACrC;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;;;AC5S5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;ACb2D;;AAEhB;AACI;;AAE/C;AACA;;AAEA,6BAA6B,0CAAK;;AAElC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,0BAA0B,+DAAY;;AAEtC;AACA;AACA;AACA;AACA;;AAEA;AACA,gDAAgD,gDAAC,EAAE,gDAAC;;AAEpD,YAAY,6CAAI;AAChB,wDAAwD,gDAAC,EAAE,gDAAC;AAC5D;;AAEA,8BAA8B,+DAAY;AAC1C;AACA,yDAAyD,gDAAC,EAAE,gDAAC;AAC7D;;AAEA;AACA;;AAEA;;AAEA;AACA,qCAAqC,gBAAgB;AACrD;AACA;AACA;AACA,UAAU;AACV,iDAAiD,gDAAC,CAAC,gDAAC;AACpD,0EAA0E,gDAAC,EAAE,gDAAC;AAC9E;;AAEA;AACA,0BAA0B,mBAAmB;AAC7C;AACA;AACA;AACA,kCAAkC,sBAAsB;AACxD;;AAEA,gBAAgB,6CAAI;AACpB;;AAEA;AACA,kCAAkC,+DAAY;AAC9C;AACA;;AAEA;AACA,qCAAqC,yBAAyB;AAC9D;;AAEA,YAAY,6CAAI;AAChB,8BAA8B,+DAAY;AAC1C;AACA;AACA;;AAEA,YAAY,6CAAI;AAChB,8BAA8B,+DAAY;AAC1C;AACA;AACA;AACA,UAAU;AACV,iDAAiD,gDAAC,EAAE,gDAAC;;AAErD,YAAY,6CAAI;AAChB,8BAA8B,+DAAY;AAC1C;AACA,yDAAyD,gDAAC,EAAE,gDAAC;AAC7D;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,mDAAmD,8CAAK,YAAY,8CAAK;AACzE;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,qBAAqB,gDAAC;AACtB,qBAAqB,gDAAC;AACtB;AACA;AACA;;AAEA;AACA,2CAA2C,gDAAC,EAAE,gDAAC;AAC/C,UAAU;AACV;AACA,uDAAuD,gDAAC;AACxD,uDAAuD,gDAAC;AACxD;;AAEA;AACA,+CAA+C,gDAAC,EAAE,gDAAC;AACnD;AACA,cAAc;AACd;AACA,6BAA6B,gDAAC;AAC9B,6BAA6B,gDAAC;AAC9B;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iCAAiC,+DAAU;AAC3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,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B,2BAA2B;AAC3C;AACA,6CAA6C;AAC7C,mBAAmB,qDAAM;AACzB;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA,qCAAqC,qDAAM;;AAE3C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,kCAAkC,mDAAS;AAC3C;AACA;AACA;AACA;;AAEA,2EAA2E,oBAAoB;AAC/F;;AAEA,uEAAuE,oBAAoB;AAC3F;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAiC,4CAAG;AACpC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAA6B,qDAAM;AACnC;AACA;;AAEA,2BAA2B,qDAAM;AACjC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,mDAAM;AACvB,iBAAiB,mDAAM;AACvB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,wFAAwF;AACxF;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA,0DAAiB;AACjB,UAAU,mDAAI;AACd;AACA,qBAAqB,wDAAgB;AACrC,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED,iEAAe,gBAAgB,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;AC75BN;AACe;AACJ;AACU;;AAEuC;AACT;;AAEzB;AACpB;;AAEgJ;AACzB;;AAEvJ;;AAEA,4BAA4B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C;AAC9B,+BAA+B,gDAAC;AAChC,kCAAkC,qDAAM;AACxC,oCAAoC,oDAAK;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,gEAAgE;AAChF,gBAAgB,2CAA2C;AAC3D;AACA;;AAEA;AACA;;AAEA,mCAAmC,wBAAwB;AAC3D;AACA;AACA;AACA;;AAEA,kCAAkC,0BAA0B;AAC5D;AACA;AACA;;AAEA,yCAAyC,4CAAG;AAC5C;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,oDAAK,cAAc,qDAAM;AAC/C;AACA,UAAU,mBAAmB,qDAAM;AACnC;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,gFAAgF;AAChG,wBAAwB,8CAAK;AAC7B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,qBAAqB;AAC/C;AACA;AACA;AACA;;AAEA;AACA,qCAAqC,8CAAK;AAC1C;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,0DAAiB;AACjB;AACA;AACA;AACA;AACA,CAAC;;AAED,iEAAe,YAAY;;;;;;;;;;;;;;;;AC5JiB;;AAE5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oDAAK;AACxB;AACA,SAAS;AACT;AACA,mBAAmB,oDAAK;AACxB;AACA,SAAS;AACT;AACA,mBAAmB,oDAAK;AACxB;AACA,UAAU;AACV,KAAK;AACL;AACA;AACA;AACA;AACA,mBAAmB,oDAAK;AACxB;AACA,SAAS;AACT;AACA,mBAAmB,oDAAK;AACxB;AACA,SAAS;AACT;AACA,mBAAmB,oDAAK;AACxB;AACA,UAAU;AACV,KAAK;AACL;AACA;AACA;AACA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ACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,qBAAqB;;AAErC;AACA,iBAAiB,mDAAU;AAC3B,iBAAiB,mDAAU;AAC3B;AACA;;AAEA;AACA,gBAAgB,6BAA6B;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU,WAAW;;AAErB,QAAQ,gDAAO;AACf;AACA;;AAEA,SAAS,gDAAO;AAChB;AACA,MAAM;AACN;AACA;;AAEA,SAAS,gDAAO;AAChB;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,8CAAK,iBAAiB,gEAAiB;AACnE;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,0DAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oDAAK;AACpB,KAAK;AACL;AACA;AACA,CAAC;;AAED,iEAAe,eAAe,EAAC;;;;;;;;;;;;;;;;;;;ACrY6C;;AAEjC;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,YAAY,+CAAM;AAClB;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,+DAAW;AACtC;;AAEA,wBAAwB,mBAAmB;AAC3C,6BAA6B,yDAAS;AACtC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA,qEAAqE;;AAErE,eAAe,4CAAG;AAClB;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA,iEAAe,cAAc;;;;;;;;;;;;;;;;;;;;;;;;ACpF+C;;AAEhC;AACjB;AACE;;AAEgB;AACG;;AAEhD;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,gBAAgB,kBAAkB,MAAM,mBAAmB;AAC3D;AACA;AACA;AACA,gDAAgD,+DAAU;AAC1D;AACA,SAAS;;AAET,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,6CAAI;;AAEjC;AACA,yBAAyB,kDAAG;AAC5B,wBAAwB,yEAA+B;AACvD,cAAc;AACd,wBAAwB,oEAAoB;AAC5C;;AAEA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,gCAAgC,+DAAW;AAC3C,gCAAgC,+DAAW;;AAE3C,wBAAwB,mBAAmB;AAC3C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,+CAAM;AAClB;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;;AAEA,gCAAgC,uBAAuB;AACvD;AACA;AACA,mCAAmC,+DAAW;AAC9C,qCAAqC,kDAAG;AACxC,yCAAyC,+DAAW;AACpD,kBAAkB;AAClB,qCAAqC,yDAAS;AAC9C,0CAA0C,yBAAyB;AACnE;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAiD,kDAAG;AACpD;AACA;AACA,2BAA2B,4CAAG;;AAE9B;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA,0CAA0C,4CAAG,mBAAmB,4CAAG;AACnE;;AAEA;AACA,sBAAsB,8CAAK;AAC3B;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iEAAe,qBAAqB;;;;;;;;;;;;;;;;;;;;;;ACpKsB;;AAEnB;AACN;AACU;AACnB;;AAE4G;AACX;;AAEzH;AACA;;AAEA,mBAAmB,oDAAU;AAC7B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC,4BAA4B,4CAAG;AAC/B;AACA;AACA;AACA;;AAEA,gBAAgB,gDAAO;AACvB,qCAAqC,oDAAW;AAChD;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA,qDAAqD,qDAAM;AAC3D;;AAEA,iCAAiC,iDAAO,OAAO,mDAAU,GAAG;AAC5D;;AAEA,uCAAuC,qDAAM,KAAK,gDAAO;AACzD,sCAAsC,qDAAM;AAC5C;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,+BAA+B,sDAAY,CAAC,mDAAU,GAAG;AACzD;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,8BAA8B,4CAAG;AACjC;AACA;AACA;;AAEA;AACA,gBAAgB,qCAAqC;AACrD;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB,gDAAO,aAAa,mDAAI,EAAE,oDAAK;AAC/C,iCAAiC,mDAAI;AACrC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,iCAAiC,qDAAM;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,mDAAmD,sDAAO;AAC1D;AACA;AACA;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,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEA;AACA,yBAAyB,oEAAoB;AAC7C;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb,YAAY,yDAAgB;AAC5B;AACA;AACA;;AAEA;AACA;;AAEA,4BAA4B,yDAAU;AACtC;AACA;AACA;;AAEA;AACA;;AAEA,4BAA4B,yDAAU;AACtC;AACA;AACA;;AAEA;AACA;;AAEA,uBAAuB,yDAAU;AACjC;;AAEA;AACA;;AAEA;AACA,qBAAqB,qDAAY;AACjC,kBAAkB,gDAAO;AACzB;AACA,SAAS;AACT;AACA;;AAEA,0DAAiB;AACjB;AACA;AACA,cAAc,qDAAM;AACpB,KAAK;AACL;AACA,kBAAkB,qDAAM;AACxB;AACA,eAAe,qDAAM;AACrB,gBAAgB,qDAAM;AACtB,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,cAAc,kDAAG;AACjB;AACA,CAAC;;AAED,iEAAe,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjRO;AACW;AACb;;AAEwD;AACsB;;AAElD;AACJ;AACA;AACd;AACF;AACuB;;AAEvD,sCAAsC,gEAAiB;;AAEvD,0BAA0B,6CAAI;;AAE9B;AACA,8BAA8B;AAC9B;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,0BAA0B,8CAAK,oBAAoB,8DAAe;AAClE;;AAEA;AACA;AACA,gBAAgB,yCAAyC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,0BAA0B,iBAAiB;AAC3C;AACA,+BAA+B,8CAAK,MAAM,8DAAe;AACzD;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AA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AACA;AACA;;AAEA,2BAA2B,eAAe;AAC1C;AACA,gCAAgC,gDAAO;AACvC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,iCAAiC;AACjD;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,eAAe;AAC/B;AACA,oBAAoB,mDAAU;AAC9B,kBAAkB,mDAAU;;AAE5B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,6CAAI;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB,+DAAQ;AAC3B;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4CAAG;AAClC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0DAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mDAAU;AAC1B,KAAK;AACL;AACA,eAAe,oDAAK;AACpB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;;AAED,mDAAU,sBAAsB,gEAAc;AAC9C,qBAAqB,sFAA2C;AAChE,iBAAiB,kFAAuC;AACxD,WAAW,qEAA2B;AACtC,iBAAiB,2EAAiC;AAClD,qBAAqB,+EAAqC;AAC1D,CAAC;;AAED,iEAAe,SAAS;;;;;;;;;;;;;;;;;;;;;;;;AC1MoD;;AAErB;AACZ;AACA;AACjB;AACF;;AAEmC;AACiD;;AAE5G,gCAAgC,sDAAY;AAC5C;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,mBAAmB,yBAAyB;AAC5D;AACA;AACA,+BAA+B,4CAAG;;AAElC,wBAAwB,mBAAmB;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,cAAc;AACzC;AACA;AACA,cAAc;AACd;AACA;;AAEA,oBAAoB,8CAAK,QAAQ,8DAAe;;AAEhD,gCAAgC,gDAAO;AACvC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,eAAe,4CAAG;AAClB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,iCAAiC;AACjD;;AAEA;AACA;;AAEA;AACA,qCAAqC,kDAAG;AACxC,+BAA+B,4CAAG;AAClC;AACA;;AAEA;AACA,kCAAkC,gDAAO;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gDAAgD,+DAAU;AAC1D;AACA,SAAS;;AAET,wBAAwB,sBAAsB;AAC9C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,yBAAyB,yEAA+B;AACxD;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,mDAAU;AAC9B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wBAAwB,mDAAU;AAClC;AACA;;AAEA,mBAAmB,6CAAI;AACvB;;AAEA;AACA;AACA;AACA;;AAEA,mBAAmB,+DAAQ;AAC3B;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,0DAAiB;AACjB;AACA;AACA,gBAAgB,mDAAU;AAC1B,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD,mDAAU,8BAA8B,gEAAc;;AAEtD,iEAAe,iBAAiB;;;;;;;;;;;;;;;;;;AClOiB;AACqB;;AAE/B;;AAEvC,mCAAmC,yDAAe;AAClD;AACA;;AAEA;AACA;A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;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mDAAU;AAC5B,0BAA0B,mDAAU;AACpC,gBAAgB,4CAAG;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4CAAG;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mDAAU;AAC5B;AACA,kBAAkB,mDAAU;AAC5B;AACA,mBAAmB,+CAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8BAA8B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4CAAG;AAClB;AACA;;AAEA,0DAAiB;AACjB;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACO;AACP;AACA;;AAEA,QAAQ,mDAAU;AAClB;AACA,SAAS;AACT;;AAEA;AACA;AACA,gBAAgB,4CAAG;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,4CAAG;AAClB;AACA;;AAEO,8BAA8B,0CAAK;AAC1C;AACA;AACA;AACA;AACA,mBAAmB,+CAAQ;AAC3B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,uBAAuB,0CAAK;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,+DAAW;;AAE9B;AACA,oBAAoB,+DAAW;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,uBAAuB,0CAAK;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,uBAAuB,0CAAK;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACxOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;;;;;;;;;;;;;;;;;;ACZmB;;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;AAC7C;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,0BAA0B,+CAAM;AAChC,uBAAuB,+CAAM;;AAE7B,wBAAwB,iBAAiB;AACzC;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA,0DAAiB;AACjB;AACA;AACA;AACA;AACA,CAAC;;AAEM,qBAAqB,0CAAK;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAoC,sDAAe;;AAEnD;AACA;AACA;;AAEA;AACA;;AAEA,eAAe,sDAAe;AAC9B;;AAEA;AACA;;AAEA,kCAAkC,gDAAQ;AAC1C,iCAAiC,gDAAQ;;AAEzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kCAAkC,6CAAK;AACvC,QAAQ,0CAAE;AACV,kCAAkC,6CAAK;AACvC,QAAQ,0CAAE;AACV;;AAEA;AACA;AACA;AACA;;AAEA,QAAQ,2CAAG;AACX,QAAQ,2CAAG;AACX;;AAEA;AACA;AACA;AACA;;AAEA;AACA,YAAY,iDAAQ,0CAA0C,iDAAS;;AAEvE;;AAEA;AACA;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0BAA0B,mDAAU,GAAG;AACvC;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AChUiC;;AAOX;;AAIJ;;AAID;;AAIc;;AAIV;;AAErB,cAAc,+DAAO;;AAEd,yBAAyB,yCAAK;AACrC;AACA;;AAEA,oBAAoB,6CAAK;;AAEzB,uBAAuB,sEAAgB;AACvC;AACA;AACA,SAAS;;AAET;AACA,2BAA2B,wDAAO;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,wBAAwB,iBAAiB;AACzC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,6BAA6B,+DAAQ;AACrC,wBAAwB,gDAAO;AAC/B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;;AAEA;AACA,wBAAwB,0BAA0B;AAClD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B,6CAAK;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,0DAAiB;AACjB;AACA;AACA,CAAC;;AAED,4BAA4B,0CAAK;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gEAAgE,6CAAI;AACpE;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC,8DAAW,GAAG,yDAAM;AAC1D;;AAEA,wBAAwB,kBAAkB;AAC1C,4BAA4B,qBAAqB;AACjD,wDAAwD,0DAAmB;AAC3E;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,uBAAuB,0DAAmB;AAC1C;AACA,yBAAyB,+DAAQ;AACjC,wBAAwB,+DAAQ;;AAEhC;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;AC7WiC;;AAUX;;AAEoB;;AAEV;;AAE8B;;AAE9D;AACA,eAAe,0EAAuB;AACtC,YAAY,+DAAO;;AAEnB;AACA,qBAAqB,8CAAK,WAAW,8CAAK;AAC1C;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEO,wBAAwB,yCAAK;AACpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,4BAA4B,mEAAQ;AACpC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,0DAAiB;AACjB;AACA;AACA;AACA;AACA,CAAC;;AAEM,uBAAuB,0CAAK;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,mDAAU,GAAG;AACpC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,sDAAc;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oBAAoB,YAAY;AAChC,wBAAwB,YAAY;AACpC;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,eAAe,mDAAU;AACzB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;;AAEO,wBAAwB,0CAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uBAAuB,mDAAU,GAAG;AACpC;;AAEA;AACA;AACA,QAAQ,iDAAQ;AAChB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,+CAA+C,eAAe;AAC9D;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0DAAiB;AACjB;AACA;AACA,CAAC;;AAEM,uBAAuB,0CAAK;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,wBAAwB,kBAAkB;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,gDAAO;;AAExB,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wBAAwB,kBAAkB;AAC1C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,0DAAiB;AACjB;AACA,CAAC;;;;;;;;;;;;;;;;;;ACzckB;;AAID;;AAElB;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,uBAAuB,0CAAK;AACnC;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA,QAAQ,mDAAU;AAClB;AACA;AACA;AACA,sBAAsB,MAAM,KAAK;AACjC,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mBAAmB,8CAAK;AACxB,mBAAmB,8CAAK;AACxB;AACA;;AAEA;AACA;AACA;AAC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CA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,sDAAa;;AAElC;AACA;AACA;AACA,UAAU;AACV;AACA,gBAAgB,uDAAc;AAC9B,gBAAgB,uDAAc;AAC9B;;AAEA,0BAA0B,gEAAO;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8CAA8C,sDAAe;AAC7D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,kDAAa;AAC/B;;AAEA;AACA;AACA;;AAEA,2BAA2B,2CAAM;AACjC;AACA;AACA;AACA;;AAEA,0CAA0C,8BAA8B;AACxE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,mBAAmB,2CAAM;AACzB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,iDAAQ;AACpB;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,+BAA+B,qDAAW;AAC1C;;AAEA;AACA;AACA,6CAA6C,iDAAS;;AAEtD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAY,mDAAU;AACtB,YAAY,mDAAU;;AAEtB,oCAAoC,8CAAK;;AAEzC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iDAAiD,8CAAW;;AAE5D;AACA;AACA;;AAEA;AACA,yCAAyC,kBAAkB;AAC3D;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA,2CAA2C,yDAAQ;AACnD;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET,gCAAgC,8CAAK;AACrC,mCAAmC,8CAAK;;AAExC,iDAAiD,8CAAK;AACtD,+CAA+C,8CAAK;AACpD,8CAA8C,8CAAK;AACnD,wCAAwC,8CAAK;;AAE7C;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,iBAAiB;AACzC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,mDAAU,GAAG;AACzB,YAAY,mDAAU,GAAG;;AAEzB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,wDAAW;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,gEAAO;;AAEhC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,4CAAG;;AAEnC;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,eAAe,4CAAG;AAClB;;AAEA;AACA,wCAAwC,kBAAkB;AAC1D;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gCAAgC,gEAAO;AACvC;AACA;AACA;;AAEA;;AAEA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,uDAAc;AACtC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA,6CAA6C,kBAAkB;AAC/D;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,wDAAe;AACnC;AACA;AACA,qBAAqB,mDAAU;;AAE/B;AACA,6CAA6C,kBAAkB;AAC/D;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA,0DAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,yDAAgB;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,GAAG,EAAC;;;;;;;;;;;;;;;;;;;AC74BA;;AAIY;;AAQd;;AAEjB;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAW,qDAAa;AACxB;;AAEO,wBAAwB,4DAAU;AACzC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,QAAQ,iDAAQ;;AAEhB,QAAQ,0CAAE,qCAAqC,6CAAK;;AAEpD;;AAEA;AACA;;AAEA,+BAA+B,6CAAK;AACpC,QAAQ,0CAAE;AACV;;AAEA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,2CAAG;AACX;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,uBAAuB,mDAAU,GAAG;AACpC;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,4CAAO;AACxB;AACA;AACA;AACA,iBAAiB,8CAAS;AAC1B;AACA;AACA;AACA,iBAAiB,+CAAU;AAC3B;AACA;AACA;AACA,iBAAiB,8CAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0DAAiB;AACjB;AACA;AACA,CAAC;;;AAGD,wDAAgB;AAChB;AACA;;;;;;;;;;;;;;;;;;;;;;;;ACtKsB;;AAIA;;AAMJ;;AAElB;;AAEA;;AAEO,yBAAyB,mDAAU;AAC1C;AACA;AACA;AACA;;AAEA;;AAEA,yBAAyB,mDAAW;;AAEpC;AACA;AACA,mDAAmD,6CAAK;AACxD,aAAa;AACb;AACA,mDAAmD,6CAAK;AACxD,aAAa;AACb,UAAU;AACV;AACA,8CAA8C,6CAAK;AACnD,aAAa;AACb;AACA,8CAA8C,6CAAK;AACnD,aAAa;AACb;;AAEA;AACA;AACA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEO,4BAA4B,mDAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;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;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEO,6BAA6B,mDAAU;AAC9C;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;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;;AAEO,uBAAuB,mDAAU;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO,mBAAmB,0CAAK;AAC/B;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8BAA8B,sDAAa;AAC3C,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEO,sBAAsB,mDAAU;AACvC;AACA;;AAEA;;AAEA,uBAAuB,4DAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC/ZsB;;AAKJ;;AAElB;;AAEA;AACA;AACA;;AAEO,wBAAwB,0CAAK;AACpC;AACA;AACA;;AAEA,0BAA0B,6CAAK;AAC/B;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uCAAuC,2CAAG;AAC1C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yBAAyB,2CAAG;AAC5B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC7GsB;;AAEtB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEO,yBAAyB,0CAAK;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kDAAkD,cAAc;AAChE;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kDAAkD,cAAc;AAChE;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,kDAAkD,cAAc;AAChE;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA,8CAA8C,UAAU;AACxD;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,0BAA0B,cAAc;AACxC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACpKA;;AAQsB;;AAaJ;;AAKJ;;AAOO;;AAIE;;AAID;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,0CAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,0CAAS;AACnC;AACA;AACA;;AAEA;AACA,4BAA4B,2CAAU;AACtC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA,SAAS;;AAET,oCAAoC,6CAAK;AACzC,2CAA2C,6CAAK;AAChD,oCAAoC,6CAAK;AACzC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,uDAAsB;AACxC,SAAS;AACT;AACA;;AAEA,+BAA+B,0CAAS;AACxC;AACA;AACA;;AAEA;AACA,sBAAsB;AACtB,2BAA2B;AAC3B;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,mDAAU;AAClC;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,0CAAK;AAC7B;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,qDAAa;;AAErC;AACA;AACA;AACA,yBAAyB,+CAAO;AAChC;AACA;AACA;AACA,SAAS;;AAET;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO,uBAAuB,mDAAU;AACxC;AACA;AACA;AACA;;AAEA;;AAEA,6BAA6B,0DAAkB;AAC/C;AACA,6BAA6B,qDAAa;;AAE1C;AACA,YAAY,iDAAQ;AACpB,YAAY,+CAAO;;AAEnB;AACA;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA,QAAQ,iDAAQ;;AAEhB,gCAAgC,qDAAa;AAC7C,QAAQ,iDAAS;AACjB,QAAQ,+CAAO;;AAEf;AACA,6BAA6B,kDAAU;AACvC,0BAA0B,+CAAO;;AAEjC,6BAA6B,sDAAc;AAC3C;AACA;AACA;AACA,aAAa;AACb;;AAEA,6BAA6B,oDAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,gDAAQ;AAC/D;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,aAAa;;AAEb,uBAAuB,4CAAI;AAC3B;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA,YAAY,0CAAE;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,mDAAU,GAAG;AACpC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,mDAAW;;AAE/B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,8DAA8D;;AAE9D;AACA;AACA;AACA;;AAEA;AACA;;AAEA,QAAQ,2CAAG;;AAEX;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,iEAAiE;;AAEjE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE,kEAAkE;AAClE;AACA,aAAa;AACb;AACA;AACA,2DAA2D;AAC3D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;;AAEA,0DAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,wDAAgB;AAChB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACvsBsB;;AAWJ;;AAII;;AAEtB;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA,oBAAoB,4DAAoB;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,MAAM;AACN;;AAEA,6CAA6C,cAAc;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACO,wBAAwB,0CAAK;AACpC;AACA;AACA;;AAEA,uBAAuB,4DAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA,yBAAyB,2CAAG;AAC5B;;AAEA;AACA;AACA;AACA,wBAAwB,2CAAG;AAC3B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEO,oBAAoB,0CAAK;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA,uCAAuC,6CAAK;AAC5C;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,2CAAG;;AAE1B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,2CAAG;AAC5B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,mDAAW;AAChC;AACA;AACA;;AAEA,WAAW,cAAc;AACzB;AACA;AACA;;AAEO,yBAAyB,mDAAU;AAC1C;AACA;AACA;AACA;;AAEA,wBAAwB,4DAAoB;AAC5C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET,mCAAmC,6CAAK;AACxC,QAAQ,0CAAE,eAAe,qDAAa;;AAEtC,kCAAkC,6CAAK;AACvC,QAAQ,0CAAE,eAAe,qDAAa;;AAEtC,oCAAoC,6CAAK;AACzC,QAAQ,0CAAE,UAAU,qDAAa;;AAEjC;AACA,wCAAwC,6CAAK;AAC7C,YAAY,0CAAE,UAAU,qDAAa;AACrC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,YAAY,0CAAE,UAAU,qDAAa;AACrC;;AAEA;AACA;AACA,aAAa;;AAEb;AACA,qCAAqC,6CAAK;AAC1C,QAAQ,0CAAE,UAAU,qDAAa;;AAEjC;AACA;AACA,uCAAuC,6CAAK;;AAE5C;AACA;AACA,aAAa;AACb;;AAEA;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;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA,QAAQ,2CAAG,eAAe,qDAAa;AACvC,QAAQ,2CAAG,eAAe,qDAAa;;AAEvC,QAAQ,2CAAG,UAAU,qDAAa;;AAElC;AACA,YAAY,2CAAG,UAAU,qDAAa;AACtC;;AAEA;AACA,YAAY,2CAAG,UAAU,qDAAa;AACtC;;AAEA,QAAQ,2CAAG,UAAU,qDAAa;;AAElC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,6CAAI;AACnB;AACA,SAAS;AACT;;AAEA;AACA,2DAA2D,UAAU;AACrE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,eAAe,cAAc;AAC7B;AACA;AACA;;AAEA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,8CAA8C;AAC9C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB,2CAAG;AAC5B;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,4BAA4B;AAClD;AACA;AACA;;AAEA,sBAAsB,sBAAsB;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,wCAAI;AACjC,4BAA4B,wCAAI;AAChC,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnrBmB;;AAEnB;;AAEA;;AAEO;;AAEA;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,KAAK;;AAEL;AACA;;AAEO;AACP;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;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,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qEAAqE,gBAAgB;;AAErF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,+CAA+C;AAC/C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP,uBAAuB,gDAAO;;AAE9B;AACA;AACA,KAAK;AACL;;AAEO;AACP;AACA;;AAEA,kBAAkB,mDAAU;AAC5B;AACA,MAAM,uCAAuC,mDAAU;AACvD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iDAAiD,sBAAsB;AACvE;AACA,kDAAkD,gBAAgB;;AAElE;AACA;AACA,KAAK;AACL;;AAEO;AACP;AACA;;AAEO;AACP,uBAAuB,gDAAO;;AAE9B;AACA;AACA,KAAK;AACL;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,MAAM;AACN;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEA,wBAAwB;AACxB,8CAA8C;AAC9C;AACA;AACA,MAAM,mDAAmD;AACzD;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;;AAEA,gBAAgB,QAAQ;AACxB;;AAEA;AACA;AACA;;AAEA,oFAAoF;AACpF;;AAEA;AACA;;AAEO;AACP;AACA;;AAEO;;AAEP;;;;;;;;;;;;;;;;;;;ACzbmB;;AAIY;;AAOd;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAW,qDAAa;AACxB;;AAEA;AACA;AACA;AACA;AACA;;AAEO,0BAA0B,4DAAU;AAC3C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,QAAQ,iDAAQ;;AAEhB;AACA,QAAQ,0CAAE;;AAEV;;AAEA;;AAEA;;AAEA;AACA,QAAQ,0CAAE;AACV;;AAEA;AACA;AACA,YAAY,2CAAG;AACf;;AAEA;AACA,YAAY,2CAAG;AACf;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,uBAAuB,mDAAU,GAAG;AACpC;;AAEA;AACA;AACA,+BAA+B,6BAA6B;AAC5D;;AAEA;AACA;AACA;;AAEA,YAAY,mDAAU;AACtB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,qDAAgB;AACjC;AACA;AACA;AACA;AACA,iBAAiB,sDAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0DAAiB;AACjB;AACA;AACA,CAAC;;AAED,wDAAgB;AAChB;AACA;;;;;;;;;;;;;;;;;;;ACrIoD;AACmB;;;;;;;;;;;;;;;;;;ACD3B;AACP;AAIhB;;AAEd,qCAAqC,qDAAU;AACtD;AACA;;AAEA,QAAQ,8CAAM;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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CP,oBAAoB,kCAAkC;AACtD;AACA;AACA;;AAEO;AACP,0BAA0B,+DAAe;AACzC;AACA;AACA;;AAEA,2BAA2B,0BAA0B;AACrD;AACA;;AAEA;AACA,4BAA4B,kBAAkB;AAC9C,gCAAgC,OAAO;AACvC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;;AAEA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEA,sBAAsB,QAAQ;AAC9B;AACA;;AAEA;AACA;;AAEO;AACP;;AAEA,oBAAoB,cAAc;AAClC,wBAAwB,cAAc;AACtC;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;;AAEA,sBAAsB,yCAAyC;AAC/D;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,aAAa;AAC/B;AACA;;AAEA;AACA;;AAEA,kCAAkC,UAAU;AAC5C,wDAAwD,oDAAY;AACpE;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,iCAAiC;AAC5D;;AAEA,+BAA+B,6BAA6B;AAC5D;AACA;AACA;;AAEA,sCAAsC,oCAAoC;AAC1E;AACA;AACA,uEAAuE,iDAAS;AAChF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;;AAEA,oBAAoB,kBAAkB;AACtC,eAAe,8EAAiB;AAChC;AACA;;AAEA;AACA;;AAEO;AACP;AACA,YAAY,mFAAmC;AAC/C,6BAA6B,mFAAmC;;AAEhE;AACA,iCAAiC,4EAA4B;AAC7D;AACA,UAAU;AACV;AACA;;AAEA;AACA,MAAM;;AAEN,8BAA8B,4EAA4B;AAC1D;AACA;;AAEA;AACA;;AAEO;AACP;AACA;;AAEA,oBAAoB,kBAAkB;AACtC,eAAe,8EAAiB;AAChC;AACA;;AAEA;AACA;;AAEA;AACO;AACP,uBAAuB,iDAAS;AAChC;AACA;;AAEA;AACA;AACA;;AAEA,8BAA8B,iDAAS;;AAEvC,oBAAoB,0BAA0B;AAC9C;AACA;;AAEA;AACA;;AAEO;AACP,0BAA0B,iDAAS;AACnC;AACA;AACA;AACA,sBAAsB,oDAAY;AAClC;;AAEA,2BAA2B,oDAAY;;AAEvC;AACA;;AAEO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEA,oBAAoB,kCAAkC;AACtD;;AAEA,wBAAwB,aAAa;AACrC;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;;AAEA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;;AAEA;;AAEA,uCAAuC,wBAAwB;AAC/D;AACA;;AAEA;;AAEA,uCAAuC,mBAAmB;AAC1D;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,yBAAyB;AAC/C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEA,oBAAoB,oBAAoB;AACxC,wBAAwB,cAAc;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,oBAAoB,mBAAmB;AACvC,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,qBAAqB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,0BAA0B;AACrD,kCAAkC,6BAA6B;AAC/D,sCAAsC,+BAA+B;AACrE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB,mBAAmB;AACnC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA,mBAAmB,+DAAW;AAC9B;;AAEA,eAAe,6DAAU;AACzB;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,4EAA4B;AACzD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wCAAwC,oDAAY;AACpD;;AAEA,mCAAmC,oDAAY;AAC/C;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,uEAAuE,oDAAY;AACnF;;AAEA;AACA;;;;;;;;;;;;;;;;;AC9rBqC;;AAE9B,8BAA8B,0CAAK;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AChDO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;ACxwCiD;;AAElD;;AAEA;AACA;AACA;AACA,YAAY,+DAAU;AACtB,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,eAAe,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClBE;;AAQd;;AAEW;AACoB;AACjB;;AAEqB;;AAEtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,0CAAK;AAC1B,iDAAiD,wDAAmB;AACpE;;AAEA,uBAAuB,mDAAU,GAAG;AACpC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ,iDAAQ;AAChB;;AAEA;AACA,gBAAgB,mBAAmB;;AAEnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,sEAAmB;AAClC;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,yBAAyB,+DAAU;;AAEnC;AACA;AACA,yBAAyB,+DAAU;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,+DAAS;AACjC,gBAAgB,+DAAU;AAC1B,gBAAgB,+DAAS;AACzB;;AAEA,oBAAoB,gEAAU;;AAE9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,+DAAU;;AAEnC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,uBAAuB,+DAAc;AACrC;AACA;AACA,aAAa;AACb;AACA,SAAS;;AAET;;AAEA,wBAAwB,oBAAoB;AAC5C;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA,gCAAgC,kEAAW;AAC3C;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,sEAAsE,KAAK,6BAA6B,QAAQ;AAChH;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEA;AACA,uBAAuB,+DAAc;AACrC;AACA;AACA,aAAa;AACb;AACA,SAAS;;AAET,0BAA0B,qBAAqB;AAC/C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,wBAAwB,sCAAG;AAC3B,2BAA2B,mEAAkB;AAC7C;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA,uBAAuB,8CAAM;;AAE7B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,0DAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;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8B,sDAAc;AAC5C;AACA,cAAc,qCAAqC,sDAAc;AACjE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6EAA6E,sDAAc;AAC3F;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0DAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,kBAAkB;AAClB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT,gBAAgB;AAChB;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;;AAED,iEAAe,UAAU;;;;;;;;;;;;;;;ACvMzB;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,0BAA0B,wCAAwC,0DAA0D,wDAAwD;AACpL;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,sFAAsF,wDAAwD;AAC9I;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,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AA8C;AACrD;AACA,mDAAmD,6EAAgB;AACnE;AACA;AACA;;;;;;;;;;;;;;;;;;;AChD4D;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,uBAAuB,oCAAoC;AAC3D;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,qDAAqD,uCAAuC;AAC5F,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,wBAAwB,iDAAS;AACjC;AACA,aAAa;AACb;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;;;;;;;;;;;;;;;;;;;;;;;;;ACjLA;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;AACJ;AACrC;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,WAAW,kDAAO;AAClB,yBAAyB,kDAAO;AAChC,yBAAyB,kDAAO;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChDqD;AACG;AACH;AACG;AACL;AACG;;;;;;;;;;;;;;;;;;ACLF;AACb;;AAExB;AACf,sBAAsB,uBAAuB;AAC7C;AACA;AACA;AACA,0BAA0B,wDAAU;AACpC,YAAY,+DAAgB;AAC5B;AACA;AACA;;;;;;;;;;;;;;;;ACXe;AACf;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACXe;AACf;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;ACX6C;;AAE9B;AACf,IAAI,2DAAa;AACjB;;;;;;;;;;;;;;;ACLe;AACf;;AAEA,sBAAsB,uBAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACfoD;;AAErC;AACf;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,+DAAe;AACpE;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACdsC;AACc;;AAErC;AACf;AACA,2BAA2B,uDAAK;AAChC;;AAEA,0BAA0B,uBAAuB;AACjD;AACA;AACA;AACA;AACA,YAAY,+DAAgB;AAC5B;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AClB6C;AACa;;AAE3C;AACf,IAAI,2DAAa,CAAC,kEAAmB;AACrC;;;;;;;;;;;;;;;;ACLoD;;AAErC;AACf,6CAA6C,+DAAe;AAC5D;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;ACV6C;;AAE9B;AACf,IAAI,2DAAa;AACjB;;;;;;;;;;;;;;;;;ACJ6C;AACa;;AAE3C;AACf,IAAI,2DAAa,CAAC,kEAAmB;AACrC;;;;;;;;;;;;;;;;ACL2C;;AAE5B;AACf,WAAW,0DAAY;AACvB;;;;;;;;;;;;;;;;;ACJoD;AACP;;AAE7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA,sBAAsB,uBAAuB;AAC7C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEe;AACf;AACA;AACA;;AAEA,sBAAsB,qBAAqB;AAC3C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CZ7B;;AAEA,iEAAe,QAAQ;;;;;;;;;;;;;;;;;;;ACFkB;AACP;AACW;AACX;;AAElC,mBAAmB,uDAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,8DAAU;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;;AAEA,gCAAgC,iDAAQ;;AAExC;AACA;AACA;;AAEA,gBAAgB,iDAAO;AACvB;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,iDAAO;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,IAAI;;;;;;;;;;;;;;;;;;;;;;;AChHO;AACa;AACiB;AACE;AACA;AACG;AAChB;;AAE7C;AACA,sBAAsB,oBAAoB;AAC1C;AACA,oBAAoB,mDAAU;;AAE9B;;AAEA;AACA;AACA;;AAEA,uBAAuB,6CAAI;;AAE3B;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,UAAU,iDAAa;AACrC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA4B,kEAAc;AAC1C;AACA;AACA;AACA,UAAU,yBAAyB,kEAAc;AACjD;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,uBAAuB,iDAAa;AACpC;AACA,4BAA4B,iDAAc;;AAE1C;AACA;AACA;AACA;;AAEA;AACA;AACA;;A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CjB;;AAEA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA,iEAAe,OAAO,EAAC;;;;;;;;;;;;;;;;;AC1NY;;AAEnC,uBAAuB,kDAAQ;AAC/B;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;;AChCT;AACf;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,qBAAqB;AACzC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;;AAE7C;AACA;AACA;;AAEA,iEAAe,mBAAmB,EAAC;;;;;;;;;;;;;;;;ACbpB;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;AACA;AACA;AACA;AACA;;AAEe;AACf,kDAAkD,0BAA0B,0BAA0B,+BAA+B,6BAA6B;AAClK;;;;;;;;;;;;;;;ACRA;;AAEe;AACf;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACR4B;;AAE5B,yBAAyB,8CAAK;AAC9B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,cAAc;AACxC;;AAEA;;AAEA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sDAAsD,cAAc;AACpE;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,6BAA6B;AAC7B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,8BAA8B,cAAc;AAC5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA,kDAAkD,UAAU;AAC5D;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iEAAe,UAAU;;;;;;;;;;;;;;;AC7HzB;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;;;;;;;;;;;;;;;;;ACF8B;;AAEf;AACf;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,qDAAG;AAC3B;;AAEA;AACA;AACA,2BAA2B,qDAAG;AAC9B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;ACxCkC;;AAElC,uBAAuB,+CAAK;AAC5B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B,SAAS;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;;AAEA,iEAAe,QAAQ;;;;;;;;;;;;;;;;;ACxFvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;ACVkC;;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;;;;;;;;;;;;;;;;;;;;;;;;;AChGQ;AACE;AACC;AAC4E;;AAEnH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,+CAAU;AAChC;AACA;;AAEA,uCAAuC;AACvC;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2BAA2B,qDAAK;;AAEhC,QAAQ,iDAAW;;AAEnB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,iDAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,eAAe,iDAAW;AAC1B;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA,QAAQ,iDAAW;;AAEnB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,iDAAc;AACtC,gBAAgB,YAAY,EAAE,iDAAa;;AAE3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,iDAAgB;AACtC;AACA;;AAEA,iCAAiC,iDAAY;AAC7C,0BAA0B,uDAAK;AAC/B;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iEAAe,OAAO,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjKwC;;AAEtC;AACG;AACA;AACC;;AAEiC;AACF;AACL;AACQ;AAChB;AACe;;AAEjC;AACM;AACJ;;AAEgC;AACP;AACC;AACa;;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvBoB;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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A;;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;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,qEAAe;AACvC,cAAc;AACd,wBAAwB,qEAAe;AACvC;;AAEA;AACA;AACA,gBAAgB,oEAAe,oCAAoC,oEAAe;AAClF;AACA;AACA,6BAA6B,sDAAS;AACtC;AACA,mBAAmB,oEAAe,2CAA2C,oEAAe;AAC5F;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,kDAAG;AACzB,yBAAyB,6CAAI;AAC7B,sDAAsD,sDAAS;AAC/D;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,2CAAO;AACrB,cAAc,2CAAO;;AAErB,oBAAoB,YAAY;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,OAAO,EAAC;;;;;;;;;;;;;;;;;;;;AC1K0B;AACI;AACZ;;;AAGzC,mBAAmB,kEAAa,CAAC,2DAAY;AAC7C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,iDAAO;AAC/B,gCAAgC,iDAAK;AACrC,iCAAiC,iDAAK;;AAEtC;AACA;;AAEA;AACA,YAAY,iDAAO;AACnB;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iEAAe,IAAI,EAAC;;;;;;;;;;;;;;;;AC9CL;AACf;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACN8C;;AAE/B;AACf;AACA;AACA;;AAEA,0BAA0B,uDAAc;AACxC;AACA;;AAEA,eAAe,uDAAc;AAC7B;;;;;;;;;;;;;;;;;;;ACZiD;AACd;AACL;AACF;;AAE5B,6BAA6B,2DAAY;AACzC,yBAAyB,oDAAW;AACpC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iDAAiD,yDAAgB;;AAEjE;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0BAA0B,qDAAY;AACtC,qDAAqD,yDAAgB;AACrE;;AAEA,iDAAiD,qDAAY;;AAE7D;AACA,qDAAqD,yDAAgB;AACrE;;AAEA;AACA;AACA;;AAEA;AACA,4BAA4B,qDAAY,YAAY,mDAAU;;AAE9D,iDAAiD,sDAAa;;AAE9D;AACA;AACA;;AAEA;AACA,uBAAuB,sDAAQ;;AAE/B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA,iEAAe,cAAc,EAAC;;;;;;;;;;;;;;;;;;;;;;;ACpF0C;AACA;AACJ;;;;;;;;;;;;;;;;;;;;ACFnB;AACA;AACA;AACf;;;AAGlC;;AAEA,2BAA2B,gEAAW,CAAC,2DAAY;AACnD;AACA;;AAEA,2BAA2B,2DAAY;AACvC;AACA;AACA,qBAAqB,iDAAO;AAC5B,SAAS;;AAET;AACA;;AAEA;AACA,YAAY,iDAAO;AACnB;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;;;;;;ACrCW;AACI;AACM;AACD;;AAEhD,uBAAuB,2DAAY;AACnC;AACA;AACA;;AAEA,4BAA4B;AAC5B;;AAEA,yBAAyB,oDAAU;AACnC;AACA;AACA,kBAAkB,iDAAY;AAC9B;;AAEA;AACA,YAAY,iDAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,0BAA0B,oBAAoB;AAC9C,wBAAwB,6DAAmB;AAC3C;;AAEA;AACA;;AAEA;AACA,4BAA4B,sDAAY;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;;;;AC7DuB;AACT;AACJ;;;AAGlC;;AAEA,6BAA6B,+DAAU,CAAC,iDAAQ;AAChD,4BAA4B;AAC5B;;AAEA,wCAAwC,uDAAK;AAC7C,oCAAoC,uDAAK;AACzC;AACA;;AAEA,iEAAe,cAAc,EAAC;;;;;;;;;;;;;;;;;;;;AChBiB;AACT;AACJ;AACA;;;AAGlC,6BAA6B,+DAAU,CAAC,iDAAQ;AAChD,4BAA4B;AAC5B;;AAEA,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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;;;;;;;;;;;;;;;;;ACntGH;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;;;;;;;;;;;;;;;;;;;;ACjES;AACS;AACN;;AAErC;;AAEA,yBAAyB,+CAAK;AAC9B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B,mDAAS;AACvC,eAAe,uDAAS;AACxB;AACA;;AAEA,iEAAe,UAAU,EAAC;;;;;;;;;;;;;;;;;;;ACrBY;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;;;;;;;;;;;;;;;;;;;AChViC;AACA;AACF;;AAEjC,uBAAuB,kDAAQ;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B,cAAc;AACxC,YAAY,iDAAM;AAClB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA,kCAAkC,uBAAuB;AACzD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;;AAEA;AACA,6BAA6B,iDAAI;AACjC,6BAA6B,iDAAI;AACjC,6BAA6B,iDAAI;AACjC,6BAA6B,iDAAI;AACjC;AACA;AACA;;AAEA,iEAAe,QAAQ;;;;;;;;;;;;;;;;AC1EW;;AAElC,uBAAuB,+CAAK;AAC5B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B,cAAc;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,0BAA0B,cAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,QAAQ;;;;;;;;;;;;;;;;;;;;AC9CY;AACA;AACA;AACD;AACD;;AAEjC;AACA;AACA;;AAEA,6BAA6B,+CAAK;;AAElC;AACA;;AAEA;AACA;;AAEA;AACA;AACA,wBAAwB,kDAAQ;AAChC;AACA;;AAEA;AACA;AACA,0BAA0B,2BAA2B;AACrD;AACA;AACA;AACA;;AAEA;AACA,qFAAqF;AACrF;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,0BAA0B,qBAAqB;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,uBAAuB;AACjD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B,+BAA+B;AAC7D;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,QAAQ,iDAAM;AACd;AACA;;AAEA;AACA;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,iDAAM;AACtB,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA,wCAAwC,kDAAQ;AAChD,4BAA4B,iDAAI;AAChC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,8BAA8B,uBAAuB;AACrD;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4DAA4D,cAAc;AAC1E;AACA;AACA,4DAA4D,cAAc;AAC1E;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iEAAe,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpMyB;AACF;AACN;AACE;AACA;AACE;AACA;AACE;AACJ;;;;;;;;;;;;;;;;;;;;;;;ACRN;AACV;AACF;AACc;AACE;AACK;AACjB;;;AAGlC;;AAEA,kBAAkB,6DAAS,CAAC,8DAAU,CAAC,iEAAY,CAAC,gDAAO;AAC3D;AACA;AACA;;AAEA,+BAA+B,qDAAW,gBAAgB;AAC1D;;AAEA;;AAEA,aAAa,iDAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yBAAyB,uCAAI;AAC7B;;AAEA;AACA;;AAEA,4BAA4B,wBAAwB;AACpD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iEAAe,GAAG,EAAC;;;;;;;;;;;;;;;;;;;;;;AC1D6B;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;;;;;;;;;;;;;;;;;;;;;;;AC9CQ;AACQ;AACA;AACE;AACc;AACW;AACb;AACe;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,+BAA+B,UAAU;AACzC;AACA;AACA;;AAEA,qBAAqB,8CAAK;;AAE1B;AACA,8BAA8B;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,sEAAiB;AACjD,UAAU;AACV;AACA,gCAAgC,8DAAU;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,qBAAqB;AACrC,gBAAgB,oDAAoD;AACpE,gCAAgC,uDAAK;AACrC,kCAAkC,uDAAK;AACvC,yBAAyB,sDAAI;AAC7B,yBAAyB,kEAAU;AACnC;;AAEA;AACA;;AAEA;AACA,wCAAwC,kEAAU;AAClD,YAAY,yEAAgB;AAC5B;AACA;;AAEA,+BAA+B,0BAA0B;AACzD;AACA;AACA;AACA;AACA;AACA,2BAA2B,sDAAI;AAC/B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,6BAA6B,kEAAU;AACvC,8BAA8B,+DAAe;AAC7C;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,oBAAoB;AACpC,gBAAgB,6BAA6B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,uBAAuB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9LyC;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;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;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,kBAAkB;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,eAAe;;AAE/B;AACA,6CAA6C,4CAAI;AACjD,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,eAAe,wEAAa;AAC5B;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oCAAoC,4CAAI;AACxC;;AAEA;AACA;;AAEA;AACA,eAAe,mEAAU,UAAU,+DAAW;AAC9C;;AAEA;AACA,eAAe,mEAAU;AACzB;;AAEA;AACA,eAAe,mEAAU;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA,eAAe,wEAAa;AAC5B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gDAAgD;AAChD;AACA;AACA,uBAAuB,MAAM,IAAI,IAAI;AACrC;;AAEA;AACA;AACA;AACA;;AAEA,iEAAe,IAAI,EAAC;;;;;;;;;;;;;;;;;;;;;;;AChXM;AACuB;AACY;AAC1B;AACuB;AACR;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,6CAAI;;AAE3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA,4CAA4C,gBAAgB;AAC5D;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wBAAwB,YAAY;AACpC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,uBAAuB,iDAAa;AACpC;AACA;AACA;AACA;;AAEA,gBAAgB,iDAAO;AACvB;AACA;;AAEA,gBAAgB,iDAAO;AACvB;AACA;AACA,UAAU;AACV,mCAAmC,4CAAI;AACvC;;AAEA;AACA;;AAEA;AACA,eAAe,wEAAa;AAC5B;AACA;AACA;;AAEA;AACA,gBAAgB,sBAAsB;;AAEtC,qCAAqC,kDAAK;AAC1C,8BAA8B,wDAAW;AACzC;;AAEA,4BAA4B,sBAAsB;AAClD;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,oBAAoB;;AAEpC,oDAAoD,iDAAI;AACxD;;AAEA;AACA;AACA;AACA,yBAAyB,iDAAa;AACtC;;AAEA,oBAAoB,iDAAO;AAC3B;AACA;AACA,cAAc;AACd,qCAAqC,4CAAI;AACzC;AACA;;AAEA;AACA;;AAEA;AACA,eAAe,wEAAa;AAC5B;AACA;AACA;;AAEA;AACA,yBAAyB,kBAAkB,GAAG,qBA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BAAqB;AACjF,+CAA+C,+BAA+B,2BAA2B;AACzG;;AAEA,0BAA0B,+CAAK;AAC/B;AACA;;AAEA,0BAA0B,kDAAQ;AAClC,uCAAuC;AACvC;;AAEA,qCAAqC;AACrC;AACA;AACA;;AAEA,yBAAyB,gDAAS;AAClC,yBAAyB,8CAAO;AAChC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,0DAA0D,oDAAa;;AAEvE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,uDAAuD,yBAAyB;AAChF,mDAAmD,kDAAkD,iBAAiB;;AAEtH;AACA;AACA;;AAEA;;AAEA,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;;;;ACrF3B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7BkD;AACgB;AACD;AACb;AACW;AACnB;AACmB;AACQ;AACR;AACE;AACnB;AACa;AACF;AACb;AACe;AACf;AACI;AACoB;AACT;AACM;AACJ;AACI;AACF;AACI;AACJ;;AAE9B;AACF;;;;;;;;;;;;;;;;AC3BhB;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/Be;AACf;AACA;AACA,0BAA0B,yBAAyB;AACnD;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACPA;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;;;;;;;;;;;;;;;ACJe;AACf;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACT4D;;AAE7C;AACf,YAAY,0BAA0B,EAAE,2DAAa;AACrD;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACRwC;;AAExC;;AAEA;AACA;AACA;AACA,eAAe,6DAAW;AAC1B;;AAEA;AACA,eAAe,wDAAM;AACrB;;AAEA;AACA;;AAEA;AACA,eAAe,6DAAW;AAC1B;;AAEA;AACA;;AAEe;AACf;AACA,eAAe,6DAAW;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;ACvC6C;AACb;;AAEhC;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA,gBAAgB,gBAAgB;;AAEhC,YAAY,oDAAO;AACnB;AACA;;AAEA,YAAY,oDAAO;AACnB;AACA;;AAEA,MAAM;AACN,qBAAqB,2DAAa;;AAElC;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;AC9Be;AACf;AACA;AACA;;AAEA,sBAAsB,0BAA0B;AAChD;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACX0C;;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,QAAQ,oDAAO,WAAW;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACde,4BAA4B;AAC3C;AACA;;;;;;;;;;;;;;;;ACFgC;;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;;;;;;;;;;;;;;;ACtCA;AACA;AACA;;AAEA,iEAAe,GAAG,EAAC;;;;;;;;;;;;;;;;ACJJ;AACf;AACA;;;;;;;;;;;;;;;;ACFyC;;AAE1B;AACf,qBAAqB,kDAAU;AAC/B;;;;;;;;;;;;;;;;ACJA;AACA;AACA;AACA;;AAEA;AACA;;AAEe;AACf;AACA;AACA;;;;;;;;;;;;;;;ACXe,0CAA0C;AACzD;AACA;AACA,0BAA0B,yBAAyB;AACnD;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACPgC;;AAEjB;AACf,WAAW,oDAAO;AAClB;;;;;;;;;;;;;;;;;ACJqE;AACrE;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACO;AACP,mBAAmB,sDAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qDAAS;AACpC;AACA,YAAY,2DAAe;AAC3B;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACO;AACP,mBAAmB,sDAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,WAAW,OAAO,YAAY;AACxF,iBAAiB;AACjB;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxCiC;AACY;AACa;AACN;AACF;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oDAAK,CAAC,4DAAa;AACnD,4BAA4B,oEAAiB;AAC7C,8BAA8B;AAC9B;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACO,uCAAuC,0BAA0B;AACxE,YAAY,iBAAiB;AAC7B,UAAU,gBAAgB;AAC1B,YAAY,oBAAoB;AAChC;AACA,yCAAyC,4DAAa;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,yBAAyB,OAAO;AAChC;AACA;AACA;AACA,yCAAyC,QAAQ,cAAc,yCAAc;AAC7E;AACA;AACA;AACA;AACA,yEAAyE,gBAAgB,OAAO;AAChG;AACA;AACA,yCAAyC,QAAQ,cAAc,yCAAc;AAC7E;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,kDAAkD,yBAAyB;AAClF,YAAY,iBAAiB;AAC7B,YAAY,mCAAmC;AAC/C,+BAA+B,gBAAgB,IAAI,mBAAmB;AACtE;AACA;AACA,mCAAmC,IAAI,oCAAoC,cAAc,yCAAc;AACvG;AACA;AACA;AACA;AACA,KAAK;AACL;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACO;AACP;AACA;AACA;AACA,yBAAyB;AACzB,iCAAiC,0DAAkB;AACnD;AACA,SAAS;AACT;AACA,2FAA2F,UAAU,IAAI,YAAY;AACrH;AACA,2BAA2B,gBAAgB,8BAA8B;AACzE;AACO;AACP,UAAU,WAAW;AACrB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP,aAAa;AACb;;;;;;;;;;;;;;;;;;AClL8C;AACvC;AACP,WAAW,4DAAM;AACjB;AACO;AACP,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACtBuD;AACnB;AACpC;AACA;AACA;AACO,qCAAqC,yBAAyB;AACrE;AACA,YAAY,gDAAgD;AAC5D;AACA,IAAI,iDAAU,OAAO,QAAQ;AAC7B,IAAI,oEAAwB,OAAO,kCAAkC;AACrE;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AChBA;AACA,aAAa;AACb;AACO;AACP,MAAM,yDAAyD;AAC/D,MAAM;AACN;AACO;AACP,MAAM,0DAA0D;AAChE,MAAM;AACN;AACO;AACP,MAAM,2DAA2D;AACjE,MAAM;AACN;AACO;AACP,MAAM,4DAA4D;AAClE,MAAM;AACN;AACO;AACP,MAAM,qDAAqD;AAC3D,MAAM;AACN;;;;;;;;;;;;;;;;;;;;;;;ACtBA;AACA;AACA;AACO;AACP;AACA;AACA,gBAAgB,iDAAiD,GAAG;AACpE;AACA;AACA;AACA;AACO;AACP;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACO;AACP;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACO;AACP;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;;;;;;;;;;;;;;;;;ACrDO;AACA;;;;;;;;;;;;;;;;;;ACDsC;AAC7C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,gCAAgC,EAAE,sDAAU;AAC5C;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,gCAAgC,EAAE,sDAAU;AAC5C;;;;;;;;;;;;;;;;;;;;;;;;ACtC2L;AAC1I;AACM;AACL;AACG;AACE;AACX;AAC5C;AACA;AACO;AACP;AACA;AACA,oBAAoB,qDAAI;AACxB,0BAA0B,qDAAI;AAC9B;AACA,wBAAwB,mEAAa,CAAC,iEAAa,EAAE,iEAAe,EAAE,8DAAY,EAAE,oEAAkB;AACtG;AACA,oBAAoB,mEAAa,CAAC,+DAAa,EAAE,qEAAmB,EAAE,gEAAc,EAAE,qEAAmB;AACzG;AACA,wBAAwB,qDAAI;AAC5B;AACA;AACA,wBAAwB,wDAAgB,CAAC,6DAAkB,kBAAkB,EAAE,2CAAI,IAAI,aAAa;AACpG;AACA;AACA,wBAAwB,wDAAgB,CAAC,6DAAkB,kBAAkB,EAAE,6CAAM,IAAI,aAAa;AACtG;AACA;AACA,wBAAwB,wDAAgB,CAAC,6DAAkB,kBAAkB,EAAE,gDAAS,IAAI,aAAa;AACzG;AACA;AACA;AACA,oBAAoB,mEAAa,CAAC,0DAAQ;AAC1C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,wBAAwB,8DAAsB;AAC9C;AACA;AACA;;;;;;;;;;;;;;;;;;AC/CO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACO;AACP;AACA,2BAA2B;AAC3B;;;;;;;;;;;;;;;;;;;;;AClB2C;AACK;AACwB;AAChB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,KAAK;AACL;AACA;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,UAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,wBAAwB,QAAQ,eAAe,YAAY,eAAe,WAAW,iBAAiB;AACrI;AACA,qBAAqB,mCAAmC;AACxD;AACA,OAAO,iJAAiJ;AACxJ,+BAA+B;AAC/B;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA,uCAAuC;AACvC;AACA,WAAW,sBAAsB;AACjC;AACA;AACA,qBAAqB,qCAAqC;AAC1D;AACA,KAAK;AACL;AACA;AACA;AACA,qBAAqB,0CAA0C;AAC/D;AACA,KAAK;AACL,YAAY;AACZ;AACA,2BAA2B,qDAAM,GAAG,iCAAiC;AACrE;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8DAAU,GAAG,4DAA4D;AACxF,yCAAyC,wCAAwC,mDAAW;AAC5F;AACA,+BAA+B,oCAAoC;AACnE,qCAAqC,4DAA4D,oDAAY;AAC7G;AACA,uEAAuE,oDAAY;AACnF;AACA,mBAAmB,oDAAY;AAC/B,oBAAoB,mDAAU,CAAC,uDAAc,YAAY,oDAAY,sBAAsB,2BAA2B;AACtH,yBAAyB,wDAAe;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oDAAY;AAClC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA,qBAAqB,WAAW;AAChC;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+BAA+B,wBAAwB,SAAS,cAAc;AAC9E;AACA;AACA;AACA;AACA,cAAc,8CAA8C,yBAAyB,UAAU,IAAI;AACnG,cAAc,8CAA8C,yBAAyB,UAAU,IAAI;AACnG,cAAc,8CAA8C,yBAAyB,UAAU,IAAI;AACnG,cAAc,8CAA8C,yBAAyB,UAAU,IAAI;AACnG,cAAc,8CAA8C,yBAAyB,UAAU,IAAI;AACnG,cAAc,8CAA8C,yBAAyB,UAAU;AAC/F;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,wCAAwC;AAC7D;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,+BAA+B,OAAO,eAAe,SAAS,eAAe,WAAW,eAAe,WAAW,eAAe,YAAY,iBAAiB;AAC9J;AACA;AACA,qBAAqB,qCAAqC;AAC1D;AACA,KAAK;AACL;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,wBAAwB,QAAQ,eAAe,WAAW,cAAc;AACvG,qBAAqB;AACrB,2CAA2C,wBAAwB,uFAAuF;AAC1J,mBAAmB;AACnB;AACA;AACA;AACA,uCAAuC,uCAAuC,yBAAyB;AACvG;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,qBAAqB,oCAAoC;AACzD;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,qBAAqB,oCAAoC;AACzD;AACA;AACA,OAAO;AACiB;;;;;;;;;;;;;;;;;;;;;;AC7RS;AACiB;AAC3C;AACP;AACA;AACA,YAAY,kCAAkC;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,0BAA0B,mCAAmC;AAC7D,0BAA0B,uDAAuD;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mEAAoB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACO;AACP,YAAY,wBAAwB,2BAA2B,yCAAc;AAC7E;AACA,YAAY,iBAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP,YAAY,WAAW;AACvB;AACA,sBAAsB,mEAAoB;AAC1C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,oCAAoC,QAAQ;AAC5C;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACtHqC;AAC9B;AACP,YAAY,QAAQ;AACpB;AACA;AACA,IAAI,kDAAU;AACd;;;;;;;;;;;;;;;;;;;;;;;;;;;ACNqE;AACH;AACY;AAC5B;AACJ;AAC9C;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACO;AACP,mBAAmB,sDAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,YAAY,EAAE,YAAY;AAC1E;AACA;AACA,6CAA6C,MAAM,aAAa,YAAY;AAC5E;AACA;AACA;AACA;AACA,4CAA4C,UAAU,EAAE,6BAA6B;AACrF;AACA;AACA,2BAA2B,qDAAS;AACpC;AACA;AACA,gBAAgB,2DAAe;AAC/B;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACO;AACP,mBAAmB,sDAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,MAAM,WAAW,YAAY;AAC5E;AACA;AACA;AACA,KAAK;AACL;AACA;AACO;AACP,WAAW,qEAAY;AACvB;AACO;AACP;AACA;AACA;AACA,2BAA2B,+DAAuB;AAClD,2BAA2B,+DAAuB;AAClD,6CAA6C,qEAAY;AACzD;AACO;AACP;AACA,2BAA2B,iFAA+B;AAC1D,+CAA+C,wEAAsB,6BAA6B,mDAAO;AACzG,SAAS,mDAAO;AAChB;AACO;AACP,wCAAwC,iFAA+B;AACvE,mDAAmD,6DAAW;AAC9D;AACA,QAAQ,qEAAY;AACpB;AACA;AACA,qBAAqB,mEAAiB;AACtC;AACA;AACO;AACP;AACA,2BAA2B,kFAAgC;AAC3D,mDAAmD,8DAAY;AAC/D,QAAQ,mDAAO;AACf,QAAQ,2DAAc;AACtB;AACA,yCAAyC,8DAAY;AACrD,QAAQ,qEAAY;AACpB;AACA;AACA,qBAAqB,oEAAkB;AACvC;AACA;;;;;;;;;;;;;;;;;;;;;ACrGoE;AACT;AACwC;AACnG;AACA;AACA;AACA,WAAW,0DAAkB;AAC7B;AACA;AACA,mCAAmC,oBAAoB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gCAAgC,IAAI,UAAU,cAAc,IAAI,gBAAgB;AACtG;AACA,mEAAmE;AACnE;AACA;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA;AACA;AACA,2CAA2C,iEAAc;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,8DAAW;AAC5C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,8BAA8B,qDAAc;AAC5C,6BAA6B,iDAAU;AACvC;AACA;AACA;AACA,cAAc,yBAAyB;AACvC,oCAAoC,kDAAW;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,mCAAmC,KAAK,+BAA+B;AAC5H,wBAAwB,oDAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD,0BAA0B,aAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,YAAY,gCAAgC;AAC5C;AACA;AACA;AACA;AACA;AACA,+CAA+C,6CAA6C;AAC5F;AACA;AACA;AACA,uCAAuC,8CAAO,UAAU,SAAS;AACjE;AACA,QAAQ,kDAAW;AACnB;AACA;AACA;AACA,YAAY,iDAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,yBAAyB;AACnC,6CAA6C,kDAAW;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,iCAAiC,0DAAkB;AACnD;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc,IAAI,gBAAgB;AACnE;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AC3KoD;AACqB;AACzB;AAChD;AACA,YAAY,oBAAoB;AAChC;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;AACO;AACP,YAAY,UAAU;AACtB;AACA,QAAQ,iEAAkB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iDAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qDAAc;AAChC;AACA;AACO,qBAAqB,aAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,aAAa;AAClC;AACA;AACA;AACA,YAAY,8CAAO,UAAU,MAAM;AACnC,yBAAyB,aAAa;AACtC,wBAAwB,iEAAkB,GAAG,sCAAsC;AACnF;AACA;AACA,YAAY,iDAAU;AACtB;AACA;AACA,YAAY,iEAAkB,GAAG,YAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACrGA;AACA;AACA;AACA,4BAA4B,KAAK,eAAe,MAAM,IAAI,MAAM;AAChE,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,kBAAkB;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,iBAAiB;AACjB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,GAAG;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,gBAAgB,uBAAuB;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;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;ACxL+D;AACE;AACK;AACtB;AACoC;AAC0B;AAC9G;AACA;AACA,YAAY,oCAAoC;AAChD;AACA,gCAAgC,OAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,OAAO;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,WAAW;AACvB,YAAY,qBAAqB;AACjC;AACA;AACA;AACA,2BAA2B,WAAW;AACtC;AACA,KAAK;AACL,qCAAqC,QAAQ;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,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,aAAa;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oEAAiB,yCAAyC,oDAAK,CAAC,4DAAa;AACjG,oBAAoB,wDAAS;AAC7B;AACA,0BAA0B,iEAAU;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,4DAAa;AAC7C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,KAAK;AACrB,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA,gCAAgC,4DAAa;AAC7C;AACA;AACA;AACA;AACA,wCAAwC,iEAAU;AAClD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,WAAW,8DAAQ,CAAC,mEAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP,YAAY,wBAAwB,gBAAgB;AACpD,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6DAA6D,UAAU,sEAA2B,EAAE,EAAE,mEAAwB;AAC9H;AACO;AACP,6DAA6D,UAAU,uEAA4B,EAAE,EAAE,oEAAyB;AAChI;AACO;AACP;AACA,WAAW,sEAAa;AACxB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrQuH;AAChC;AACxC;AACX;AACE;AACW;AACG;AAC8G;AAC5D;AACyB;AACvC;AAC9B;AACkH;AAC9C;AAC5D;AACnB;AACgB;AAC0C;AACsD;AAChH;AAC6B;AACxB;AACH;AACqB;AACC;AACL;AAClE;AACqC;AACE;AACD;AACF;AACG;AACJ;AACD;AACM;AACN;AACC;AACG;AACL;AAC+D;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvCzC;AACV;AACtC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,qBAAqB;AACrB;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,UAAU,yBAAyB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2BAA2B;AACvD,sBAAsB,aAAa;AACnC;AACA;AACA,4BAA4B,mBAAmB;AAC/C,sBAAsB,aAAa;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uDAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,8DAA8D;AACjG;AACA;AACA;AACA,KAAK;AACL,6BAA6B,mBAAmB,iEAAc,2BAA2B;AACzF;AACA;AACO;AACP,UAAU,kBAAkB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,wBAAwB,mBAAmB;AAC3C,kBAAkB,aAAa;AAC/B;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACO,0BAA0B,cAAc,IAAI;AACnD;AACA,qBAAqB,yBAAyB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,0BAA0B,QAAQ;AACzC,YAAY,iBAAiB;AAC7B;AACA,YAAY,gBAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA,0BAA0B,YAAY;AACtC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,UAAU,yBAAyB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,wCAAwC;AACxC,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,UAAU,yBAAyB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;ACzO+C;AAC/C;AACA;AACA;AACO;AACP;AACA,oDAAoD;AACpD,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,KAAK,IAAI,QAAQ;AAC1C;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,QAAQ;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,iBAAiB,4DAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA;AACA,yBAAyB,+CAA+C,iCAAiC;AACzG,oFAAoF;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,cAAc,SAAS,wBAAwB;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;;;;AClKsD;AACO;AACtB;AAChC,0BAA0B,wDAAS;AACnC;AACP,eAAe,qDAAM;AACrB;AACA;AACA;AACA,wBAAwB,8BAA8B;AACtD;AACA,2BAA2B,iEAAmB;AAC9C;AACA,8BAA8B,iDAAU,6DAA6D,8BAA8B;AACnI;AACA,2BAA2B,iEAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA,yCAAyC,6DAAe;AACxD;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB,uBAAuB,kEAAoB;AAC3C;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;;;AC9BsD;AACO;AAC7D;AACO,6BAA6B,wDAAS;AACtC;AACP,eAAe,qDAAM;AACrB;AACA;AACA,qBAAqB,cAAc;AACnC,wBAAwB;AACxB,SAAS;AACT;AACA;AACA;AACA,gCAAgC,+DAAiB;AACjD,uBAAuB,kEAAoB;AAC3C;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;;;;ACnBqE;AACR;AACf;AACvC,2BAA2B,wDAAS;AAC3C;AACA,mBAAmB,YAAY;AAC/B,cAAc,YAAY;AAC1B,eAAe,YAAY;AAC3B,eAAe,aAAa;AAC5B,cAAc,aAAa;AAC3B,mBAAmB,aAAa;AAChC,mBAAmB,cAAc;AACjC,mBAAmB,cAAc;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,YAAY,2DAA2D;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,YAAY,+BAA+B;AAC3C;AACA;AACA,iCAAiC,4DAAa;AAC9C;AACA;AACA;AACA;AACA;AACA,qCAAqC,0DAAkB,oBAAoB,2DAA2D;AACtI,wBAAwB,QAAQ,EAAE,0DAAkB,6BAA6B,6DAA6D;AAC9I,wCAAwC,eAAe,OAAO;AAC9D;AACA;AACA,wCAAwC,eAAe,eAAe;AACtE;AACA;AACA;AACA;AACA;AACA,gCAAgC,mEAAoB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,8CAA8C;AACrE;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,mCAAmC,gCAAgC;AAC1E,eAAe,qDAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;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,yCAAyC,4DAAa;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,oCAAoC;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iDAAiD,4DAAa;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA,2BAA2B,kEAAoB,aAAa,+DAAiB;AAC7E;AACA,uBAAuB,iEAAmB;AAC1C;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;;ACtOsD;AACO;AACtD;AACP,uBAAuB;AACvB,eAAe,qDAAM;AACrB,iBAAiB,wDAAS;AAC1B;AACA;AACA,wBAAwB,MAAM;AAC9B;AACA;AACA;AACA;AACA,2BAA2B,iEAAmB;AAC9C;AACA;AACA;AACA,qCAAqC,6DAAe;AACpD,iBAAiB;AACjB,uBAAuB,kEAAoB;AAC3C;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;;ACvBsD;AACO;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,4BAA4B,qDAAM;AACzC,aAAa,wDAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,iBAAiB;AACzD,iDAAiD,+DAAiB;AAClE;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,mBAAmB,kEAAoB;AACvC;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;AC1CoF;AACpC;AACc;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,0DAAW;AACjE,4BAA4B,0DAAW;AACvC;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAW;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,2DAAY;AAC3C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACO;AACP,qBAAqB,uEAAwB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,WAAW,mEAA+B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,gEAAgE,4BAA4B;AACnG,sBAAsB,2DAAY;AAClC;AACA;;;;;;;;;;;;;;;;;;;;;;ACzJkG;AACjD;AACjD;AACA;AACA;AACA;AACO;AACP,YAAY,+BAA+B;AAC3C;AACA;AACA,oBAAoB,cAAc;AAClC;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,OAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,2CAA2C,0DAAW;AACtD;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,CAAC,0DAAW,kBAAkB,0DAAW,GAAG;AAC5F;AACA;AACA,KAAK;AACL,WAAW,gEAAc;AACzB;AACO;AACP;AACA;AACA,kCAAkC,0DAAW;AAC7C;AACA,gDAAgD,CAAC,0DAAW,kBAAkB,0DAAW,GAAG;AAC5F;AACA;AACA,KAAK;AACL,WAAW,+DAAa;AACxB;AACyC;;;;;;;;;;;;;;;;AC/DlC;AACP;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFmD;AAC4B;AACvC;AACjC;AACP;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,wCAAwC;AACxC;AACA;AACA;AACA,KAAK;AACL;AACA,yBAAyB,cAAc,IAAI,SAAS;AACpD;AACA;AACA,gCAAgC,0BAA0B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mDAAI;AAC5B;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP,sBAAsB,4DAAa,CAAC,qDAAY;AAChD,sBAAsB,4DAAa,CAAC,qDAAY;AAChD;AACA;AACO;AACP;AACA,uBAAuB,4DAAa,mBAAmB,2DAAY;AACnE;AACA;AACA;AACA;AACA;AACO;AACP,mCAAmC,4DAAa;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,YAAY,iBAAiB;AAC7B,YAAY,uBAAuB;AACnC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,6BAA6B,sBAAsB,+BAA+B;AAClF;AACA;AACA;AACA;AACO;AACP;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,WAAW;AACvC;AACA,SAAS;AACT;AACA,gDAAgD,WAAW;AAC3D;AACA;AACA,oCAAoC,QAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,qBAAqB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mEAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,mEAAoB;AACtD;AACA;AACA,qBAAqB;AACrB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,+BAA+B;AAC9D,yBAAyB,sBAAsB,+BAA+B;AAC9E;AACA,yDAAyD;AACzD;AACA;AACO;AACP;AACA,gBAAgB,yCAAyC;AACzD;AACA;AACA;;;;;;;;;;;;;;;;ACjNA;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;;;;;;;;;;;;;;;;;;;;AC3F0D;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;;AAEA;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;;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;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,0BAA0B,sBAAsB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oDAAoD,WAAW;;AAE/D;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA,iEAAe,aAAa,EAAC;;;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;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;;;;;;;;;;;;;;;;;;;AC1gD+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;;;;;;;;;;;;;;;;AChB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A;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;AACA;AACA;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxNqB;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA2B,uCAAI;AAC/B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA2B,uCAAI;AAC/B;;AAEA;AACA;AACA;AACA;;AAEA,4BAA4B;;AAE5B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,0BAA0B,wBAAwB;AAClD;AACA;AACA,0BAA0B,qBAAqB;AAC/C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,yBAAyB,uCAAI;AAC7B;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGe;AACf,qBAAqB,uCAAI,oBAAoB,uCAAI;AACjD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACjJ8B;AACwH;;AAEtJ;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,+CAA+C,mEAAoB,yBAAyB,iEAAkB,QAAQ,6DAAc;AACpI;;AAEA;AACA;;AAEA,4DAA4D,6DAAc,eAAe,oDAAK;AAC9F;;AAEA,oCAAoC,8DAAe;AACnD;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA,mEAAmE,EAAE,GAAG,iEAAkB,YAAY,EAAE,GAAG,mE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N;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;AA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,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,UAAU;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY,gBAAgB;AAC5B;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO,MAAM,KAAK,EAAE,KAAK,EAAE,KAAK;AAC3C,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,OAAO,EAAE,KAAK,EAAE,KAAK;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,kBAAkB;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,aAAa;AACxB,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,QAAQ;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ,IAAI;AACvB,WAAW,QAAQ,IAAI;AACvB,WAAW,OAAO;AAClB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B;;AAE1B;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;;AAED;AACA,UAAU;AACV,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;;AAED;AACA,UAAU;AACV,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;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;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA,4BAA4B,8BAA8B;;AAE1D;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA,gBAAgB;;AAEhB;AACA;AACA,eAAe,QAAQ;AACvB,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,YAAY;AAC3B,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,YAAY;AAC3B,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,YAAY;AAC3B,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,YAAY;AAC3B,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,YAAY;AAC3B,iBAAiB;AACjB;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kCAAkC;;AAElC,qCAAqC;AACrC;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,sCAAsC;;AAEtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,OAAO;AACxB;AACA,oCAAoC;;AAEpC;AACA;AACA;AACA,iBAAiB;AACjB;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,GAAG;AACpB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb,UAAU;AACV;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,4BAA4B,cAAc;AAC1C,2BAA2B,cAAc;AACzC,2BAA2B,gCAAgC;AAC3D,yBAAyB,gCAAgC;AACzD;AACA,yBAAyB,4BAA4B;AACrD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB;AACA;AACA;AACA,4BAA4B,gCAAgC;;AAE5D;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,mBAAmB;AAClC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,eAAe,YAAY;AAC3B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,mBAAmB;AAClC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,mGAAmG,IAAI;AACvG;;AAEA,IAAI,IAA0C;AAC9C,IAAI,mCAAO;AACX;AACA,KAAK;AAAA,kGAAC;AACN,EAAE,KAAK,EAIN;;AAED,CAAC;;;;;;;;;;;;;;;;;;ACllFD;AACA;AACA;AACA;AACkD;AACA;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,aAAa,mEAAmB,UAAU,mEAAmB;AAC7D,oCAAoC,wEAAwB,cAAc,wEAAwB;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACkB;;;;;;;;;;;;;;;;ACzEnB;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AClBA;AACA;AACA;AACA;AACkD;AACQ;AACR;AAClD;AACA;AACA;AACA;AACA;AACA,8BAA8B,mEAAmB;AACjD;AACA;AACA;AACA;AACA;AACA,oCAAoC,wEAAwB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iGAA6C;AAC/D;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACqB;;;;;;;;;;;;;;;;;;;ACvDtB;AACA;AACA;AACA;AACiC;AACC;AACU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,OAAO,mEAAsB,KAAK;AACjE,yCAAyC,OAAO,mEAAsB,KAAK;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2CAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,kEAAkE,kDAAkD,wDAAwD;AAC5K;AACA,cAAc,2CAAgB,GAAG;AACjC,eAAe,2CAAgB,GAAG;AAClC,gBAAgB,2CAAgB,GAAG;AACnC,mBAAmB,2CAAgB,GAAG;AACtC;AACA;AACA;;;;;;;;;;;;;;;;;;;AC1DA;AACA;AACA;AACA;AAC0D;AACV;AACE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAmB;AAC/B,kBAAkB,iGAA6C;AAC/D;AACA;AACA;AACA,0BAA0B,wEAAyB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,6FAAyC;AAC3D;AACA;AACA;AACA,CAAC;AACkB;;;;;;;;;;;;;;;;;;;ACrEnB;AACA;AACA;AACA;AACkD;AACC;AAC5C;AACP;AACA;AACA;AACA;AACA;AACA,CAAC,4BAA4B;AAC7B;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mEAAmB;AAChC,+DAA+D,gEAAc;AAC7E;AACA;AACA,oCAAoC,gEAAc;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,CAAC;AACiB;;;;;;;;;;;;;;;;;;ACxGlB;AACA;AACA;AACA;AAC4E;AAC9B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,4EAA4E;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gDAAgD;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,sBAAsB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,4BAA4B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA,sBAAsB,+GAAkD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,+GAAkD;AACpE;AACA;AACA;AACA,kBAAkB,iHAAoD;AACtE;AACA;AACA;AACA;AACA,sBAAsB,oHAAuD;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,2CAA2C,yEAA2B;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACmB;;;;;;;;;;;;;;;;;;;;ACrJpB;AACA;AACA;AACA;AACkD;AACmC;AACnC;AACZ;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,yEAAyB;AAC9C;AACA;AACA,sBAAsB,0DAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gEAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,0DAAY;AAC1C;AACA;AACA;AACA,8BAA8B,iEAAmB;AACjD;AACA;AACA;AACA;AACA;AACA,0BAA0B,0DAAY;AACtC;AACA;AACA;AACA;AACA,0BAA0B,iEAAmB;AAC7C;AACA;AACA;AACA;AACA;AACA,6CAA6C,2DAAa;AAC1D,0BAA0B,+DAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA,gCAAgC,0DAAY;AAC5C;AACA,uCAAuC,iEAAmB,yCAAyC,8DAAgB;AACnH;AACA,+CAA+C,0DAAY;AAC3D;AACA;AACA;AACA,iDAAiD,iEAAmB,0BAA0B,mEAAmB;AACjH;AACA,mDAAmD,iEAAmB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,0DAAY;AAC7B,yBAAyB,0DAAY;AACrC;AACA;AACA,iBAAiB,+DAAiB;AAClC,yBAAyB,iEAAmB;AAC5C;AACA;AACA,iBAAiB,iEAAmB;AACpC,yBAAyB,iEAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mEAAqB,mCAAmC,0DAAY;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpOnC;AACA;AACA;AACA;AACiC;AACuB;AACI;AACQ;AAC1B;AACN;AACU;AACV;AACE;AACY;AACA;AACF;AACF;AACF;AACQ;AACE;AACU;AACX;AACuB;AAC9B;AACoC;AAChC;AACkC;AAC5B;AACI;AACA;AAC6E;AACvF;AACc;AAChE;AACA,IAAImiB,iBAAiB,GAAG,0CAA0C;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIC,aAAa,GAAG;EAChBC,QAAQ,EAAE,UAAU;EACpBC,KAAK,EAAE,OAAO;EACdC,cAAc,EAAE;AACpB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,IAAIC,oBAAoB,GAAG,aAAe,YAAY;EAClD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,SAASA,oBAAoBA,CAACC,aAAa,EAAE;IACzC;IACA,IAAI,CAACC,oBAAoB,GAAG,IAAI;IAChC,IAAI,CAACC,qBAAqB,GAAG,IAAI;IACjC,IAAI,CAACC,qBAAqB,GAAG,IAAI;IACjC;IACA,IAAI,CAACC,MAAM,GAAG5B,kEAAkB,CAACwB,aAAa,CAAC;IAC/C,IAAI,CAACK,MAAM,GAAG,IAAI,CAACD,MAAM,CAACE,MAAM,CAACD,MAAM;IACvC,IAAI,CAACE,QAAQ,GAAG,IAAI,CAACH,MAAM,CAACI,IAAI,CAACD,QAAQ;IACzC,IAAI,CAACE,QAAQ,GAAG,IAAI,CAACL,MAAM,CAACM,KAAK,CAACC,sBAAsB;IACxD,IAAI,CAACC,gBAAgB,GAAG,IAAI,CAACC,6BAA6B,CAAC,IAAI,CAACT,MAAM,CAACE,MAAM,CAACQ,SAAS,EAAE,IAAI,CAACP,QAAQ,CAAC;IACvGd,yGA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ACA;AACO;AACP;AACA;AACA;AACA,CAAC,sCAAsC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,gFAAgF,OAAO,EAAE,SAAS;AAClG,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,6EAA6E,OAAO,EAAE,SAAS;AAC/F,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,iEAAiE,OAAO,EAAE,SAAS;AACnF,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,sCAAsC,qEAAwB;AAC9D;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uDAAuD,sEAAyB;AAChF;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iHAAoD;AACtE;AACA;AACA,kBAAkB,iHAAoD;AACtE;AACA;AACA,kBAAkB,oHAAuD;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iDAAS;AAClC,yBAAyB,oEAAsB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4CAAiB;AAChC;AACA,mBAAmB,8CAAmB;AACtC;AACA;AACA;AACA;AACA,8BAA8B,kFAAmC;AACjE,6CAA6C,gGAAiD;AAC9F;AACA;AACA;AACA;AACA,6BAA6B,mFAAoC;AACjE,kCAAkC,mHAAsD;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACoB;;;;;;;;;;;;;;;;;;;;;;AC9LrB;AACA;AACA;AACA;AACiC;AACjC;AACA;AACA;AACwC;AACW;AAC0B;AAC9B;AACF;AAC7C;AACA;AACA;AACA;AACA,eAAe,4CAAiB;AAChC;AACA,mBAAmB,8CAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,yHAA4D;AACtF;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,kBAAkB,yHAA4D;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iDAAS;AAC5B;AACA;AACA,yBAAyB,sEAAyB;AAClD;AACA,qEAAqE,4DAAc;AACnF;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC2B;;;;;;;;;;;;;;;;;;;;AC5EK;AACQ;AACgD;AAC5C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4CAAiB;AAChC;AACA,mBAAmB,8CAAmB;AACtC,6BAA6B,iDAAS;AACtC,6BAA6B,oEAAsB;AACnD,iDAAiD,6EAA+B;AAChF;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4CAAiB;AAChC;AACA,mBAAmB,8CAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,yBAAyB;AACzB,+BAA+B,sEAAyB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC2B;;;;;;;;;;;;;;;;ACxF5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC+B;;;;;;;;;;;;;;;;;;ACdhC;AACA;AACA;AACA;AACmD;AACN;AAC7C;AACA;AACA;AACA;AACA;AACA,yBAAyB,qEAAwB;AACjD;AACA;AACA,qCAAqC,wEAAwB,cAAc,wEAAwB;AACnG;AACA;AACA,CAAC;AACyB;;;;;;;;;;;;;;;;AClB1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC2B;;;;;;;;;;;;;;;;;;;;;;AChB5B;AACA;AACA;AACA;AACiC;AACuE;AAC1C;AACZ;AACS;AACN;AACrD;AACA;AACA;AACA;AACA,IAAI,4CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,mEAAqB,SAAS,yEAA2B;AAClF,4BAA4B,mEAAqB,SAAS,6EAA+B;AACzF,uBAAuB,mEAAqB,SAAS,kEAAoB;AACzE,2BAA2B,mEAAqB,SAAS,uEAAyB;AAClF;AACA;AACA;AACA;AACA;AACA,6BAA6B,yEAA2B,EAAE,6EAA+B,EAAE,kEAAoB,EAAE,uEAAyB;AAC1I,2DAA2D,oFAAoF;AAC/I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mEAAqB,uBAAuB,mEAAqB;AAClG;AACA;AACA,mCAAmC,mEAAqB,qCAAqC,mEAAqB;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,kDAAkD;AAClD,4DAA4D,mEAAqB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,+EAA8B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,wBAAwB,mFAAqC;AAC7D,wBAAwB,iFAAmC;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,kGAAkG,8DAAgB;AAClH;AACA;AACA;AACA;AACA;AACA,0DAA0D,uEAAoB;AAC9E;AACA;AACA;AACA,8BAA8B,yFAAqC;AACnE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,6EAA+B;AAC1G,iDAAiD,kEAAoB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,8EAAgC;AACrG,qEAAqE,4EAA8B;AACnG,qEAAqE,8EAAgC;AACrG,qEAAqE,gFAAkC;AACvG;AACA;AACA,kDAAkD;AAClD;AACA;AACA,uCAAuC,mEAAqB;AAC5D;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,+EAA8B;AACpD,oBAAoB,sFAAwC,GAAG,yEAA2B,eAAe,yEAA2B;AACpI;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,0EAA4B;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,+EAA8B;AACpD,mCAAmC,yEAA2B;AAC9D;AACA;AACA,CAAC,CAAC,2DAAc;AACK;;;;;;;;;;;;;;;;;;ACzPrB;AACA;AACA;AACA;AAC6E;AAC9B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iFAAmC;AACrD;AACA;AACA;AACA,kBAAkB,oHAAuD;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,iDAAiD,OAAO;AACxD;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,wBAAwB,eAAe;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,CAAC;AACyB;;;;;;;;;;;;;;;;;;AC1G1B;AACA;AACA;AACA;AACiC;AAC1B;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,4CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACoB;;;;;;;;;;;;;;;;;;;;ACpCrB;AACA;AACA;AACA;AACiC;AACO;AACW;AAC5C;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,4CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mEAAmB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mEAAmB;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,CAAC,CAAC,iDAAS;AACgB;;;;;;;;;;;;;;;;;;;AC5L3B;AACA;AACA;AACA;AACiC;AACmB;AACpD;AACO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,4CAAiB;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,6DAAe;AACmB;;;;;;;;;;;;;;;;;;;ACjLpC;AACA;AACA;AACA;AACiC;AACW;AACrC;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI,4CAAiB;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,CAAC,CAAC,qDAAW;AAC2B;;;;;;;;;;;;;;;;;;;AC/CxC;AACA;AACA;AACA;AACiC;AACO;AACjC;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI,4CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,iDAAS;AACY;;;;;;;;;;;;;;;;;;;;;;;AClCvB;AACiC;AACa;AACoB;AACoC;AAC/F;AACP,eAAe,uEAAsB;AACrC,oBAAoB,uEAAsB;AAC1C,YAAY,uEAAsB;AAClC,eAAe,uEAAsB;AACrC,aAAa,uEAAsB;AACnC,mBAAmB,uEAAsB;AACzC,oBAAoB,uEAAsB;AAC1C,gBAAgB,uEAAsB;AACtC;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4BAA4B;AACtB;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oDAAoD;AACrD,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,4CAAiB;AACrB;AACA,sCAAsC,uEAAsB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iGAAgD;AACvE,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,uBAAuB,4FAA2C;AAClE,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,+CAA+C,mEAAkB;AACjE,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,gBAAgB,uEAAsB;AACtC;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,gBAAgB,uEAAsB;AACtC;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,gBAAgB,uEAAsB;AACtC;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC,CAAC,uDAAc;AAChB,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;;;;;ACrIS;AACiC;AACpB;AACY;AAC1D;AACA,IAAI,4CAAiB;AACrB;AACA;AACA,sCAAsC,uEAAsB;AAC5D,oBAAoB,uEAAsB;AAC1C,oBAAoB,uEAAsB;AAC1C,oBAAoB,uEAAsB;AAC1C,oBAAoB,uEAAsB;AAC1C,oBAAoB,uEAAsB;AAC1C,oBAAoB,uEAAsB;AAC1C,yBAAyB,yGAAwD,wBAAwB,uEAAsB;AAC/H,yBAAyB,2GAA0D,wBAAwB,uEAAsB;AACjI,yBAAyB,sGAAqD,wBAAwB,uEAAsB;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,uDAAc;AAChB,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;;;;;;AC7BK;AACa;AACgC;AACT;AAC9D;AACP,eAAe,uEAAsB;AACrC,gBAAgB,uEAAsB;AACtC,sBAAsB,uEAAsB;AAC5C,iBAAiB,uEAAsB;AACvC,mBAAmB,uEAAsB;AACzC,uBAAuB,uEAAsB;AAC7C,iBAAiB,uEAAsB;AACvC,uBAAuB,uEAAsB;AAC7C,cAAc,uEAAsB;AACpC,uBAAuB,uEAAsB;AAC7C,2BAA2B,uEAAsB;AACjD,SAAS,uEAAsB;AAC/B;AACA;AACA,IAAI,4CAAiB;AACrB;AACA,iCAAiC,uEAAsB;AACvD;AACA;AACA;AACA,8BAA8B,mEAAkB;AAChD;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,+CAA+C,mEAAkB;AACjE,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,sDAAsD,2GAAqD;AAC3G,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC,CAAC,uDAAc;AAChB,iEAAe,SAAS,EAAC;;;;;;;;;;;;;;;;;;;;;ACnHlB;AACA;AACA;AACA;AACA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;;;;;;;;;;;;;;;;;;;;ACnB0B;AACiC;AACsB;AACwC;AAC7E;AACnD;AACA;AACA;AACA,uBAAuB,yEAAyB;AAChD;AACA,6BAA6B;AAC7B,eAAe,uEAAsB,CAAC,+DAAc;AACpD,eAAe,uEAAsB,CAAC,iEAAgB;AACtD,oBAAoB,wGAAuD;AAC3E;AACA;AACA;AACA,mBAAmB,uEAAsB,CAAC,iEAAgB;AAC1D;AACA;AACA;AACA;AACA,QAAQ,iFAAgC;AACxC;AACA;AACA;AACA,mBAAmB,uEAAsB,CAAC,+DAAc;AACxD,QAAQ,mFAAkC;AAC1C;AACA;AACA;AACA,mCAAmC,wGAAuD;AAC1F,SAAS;AACT;AACA,4BAA4B,wGAAuD;AACnF,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,8BAA8B,uEAAsB,CAAC,+DAAc;AACnE,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,2CAAgB,GAAG,gBAAgB,uBAAuB;AACzE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD,iEAAe,cAAc,EAAC;;;;;;;;;;;;;;;;;;;;;AChFG;AACS;AACqB;AAC7B;AACE;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,2CAAgB,GAAG,KAAK,mEAAqB,cAAc,gEAAc;AAC1G;AACA;AACA,eAAe;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,kDAAkD,0CAA0C;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,qDAAY;AAC3C;AACA,wEAAwE,iBAAiB;AACzF;AACA;AACA,2BAA2B,iDAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kDAAS;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;AACD,iEAAe,gBAAgB,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;AC1I6C;AAC1B;AACN;AACoB;AAC1D;AACP,cAAc,sEAAyB;AACvC;AACA,QAAQ,gFAAuB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,mEAAkB;AAC3D;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,wEAAwB;AACnC;AACO,iDAAiD,YAAY,kEAAiB;AAC9E,+CAA+C;AACtD;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oBAAoB;AAC/C;AACA;AACA;AACA,KAAK;AACL;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA,KAAK;AACL;AACA,2BAA2B,oBAAoB;AAC/C;AACA;AACA,KAAK;AACL;AACA,2BAA2B,wBAAwB;AACnD;AACA;AACA,KAAK;AACL;AACA,2BAA2B,gBAAgB;AAC3C;AACA;AACA,KAAK;AACL;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA,KAAK;AACL;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA,KAAK;AACL;AACA,2BAA2B,eAAe;AAC1C;AACA;AACA,KAAK;AACL;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA,KAAK;AACL;AACA,2BAA2B,kCAAkC;AAC7D;AACA;AACA,KAAK;AACL;AACA,2BAA2B,wBAAwB;AACnD;AACA;AACA,KAAK;AACL;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA,KAAK;AACL;AACA,2BAA2B,mCAAmC;AAC9D;AACA;AACA,KAAK;AACL;AACA,2BAA2B,aAAa;AACxC;AACA;AACA,KAAK;AACL;AACA,2BAA2B,aAAa;AACxC;AACA;AACA,KAAK;AACL;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA,KAAK;AACL;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA,KAAK;AACL;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA,KAAK;AACL;AACA,2BAA2B,gBAAgB;AAC3C;AACA;AACA,KAAK;AACL;AACA;AACA,2BAA2B,iCAAiC;AAC5D;AACA;AACA,KAAK;AACL;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA,KAAK;AACL;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA,KAAK;AACL;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA,KAAK;AACL;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA,KAAK;AACL;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA,KAAK;AACL;AACA,2BAA2B,6BAA6B;AACxD;AACA;AACA,KAAK;AACL;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;AACoB;AACrB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kDAAkD;AACnD;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gDAAgD;AAC1C;AACP;AACA;AACA;AACA,CAAC,kDAAkD;AAC5C;AACP;AACA;AACA;AACA;AACA,CAAC,wCAAwC;AAClC;AACA;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4BAA4B;AAC7B;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;;;;;;;;;;;;;;;;AC3QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACvC;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,+BAA+B;AAC/B;AACA,+BAA+B;AAC/B,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,GAAG;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,EAAE;AACpE;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,oCAAoC,sEAAsE;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACsB;;;;;;;;;;;;;;;;;;;;;;;;AC5JvB;AACA;AACA;AACA;AACiC;AACgD;AACJ;AACtC;AACY;AACA;AACX;AACmB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,6GAAgD;AAClE;AACA;AACA;AACA;AACA,iGAAiG;AACjG,mCAAmC,4DAAqB;AACxD,YAAY,kEAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,2CAAgB,GAAG,aAAa;AAC/D;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,+DAAiB,EAAE,wEAA0B,EAAE,iEAAmB,EAAE,8DAAgB;AACrG,sBAAsB,8GAAiD;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2CAAgB,GAAG;AAC1C;AACA;AACA;AACA;AACA;AACA,4BAA4B,8DAAgB;AAC5C;AACA,QAAQ,yEAA2B;AACnC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qHAAwD;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAmB,wEAAwE,yEAA2B;AACtI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yEAAyB;AACzC,gBAAgB,qDAAa;AAC7B;AACA;AACA;AACA,eAAe,wEAAwB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,yEAA2B;AACtF,YAAY,kEAAkB;AAC9B;AACA;AACA;AACA,oBAAoB,qDAAa;AACjC,wBAAwB,+EAAiC;AACzD;AACA;AACA;AACA,8BAA8B,wEAAwB;AACtD;AACA;AACA;AACA;AACA,kBAAkB,2FAAuC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kEAAkB;AAChD,kBAAkB,qHAAwD;AAC1E;AACA,eAAe,kEAAkB,kCAAkC,yEAAyB;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,yEAA2B;AACxF;AACA;AACA,CAAC;AACuB;;;;;;;;;;;;;;;;;ACrLS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,2CAAgB,GAAG,sBAAsB,2IAA2I;AACnM;AACA;AACA,CAAC;AACwB;;;;;;;;;;;;;;;;AC1BzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACsB;;;;;;;;;;;;;;;;ACpBvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACoB;;;;;;;;;;;;;;;;;;ACpCrB;AACA;AACA;AACA;AAC4C;AACA;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6DAAmB;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,gCAAgC,kEAAwB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;;;;;;;;;;;;;;;;;;;;AC9DtB;AACA;AACA;AACA;AACuE;AAChC;AACK;AACA;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,+CAA+C,0DAAmB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,wDAAgB,qBAAqB,8DAAsB;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,wDAAgB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,8DAAsB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,+BAA+B,GAAG;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,6DAAmB;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,0CAA0C,6EAAqC;AAC/E,sCAAsC,iEAAyB;AAC/D,sCAAsC,wEAAgC;AACtE,sCAAsC,oEAA4B;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iEAAuB;AACtC;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACmB;;;;;;;;;;;;;;;;;;;;ACpQuC;AACrB;AAC6B;AAC3B;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,6BAA6B,yEAA2B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,+DAAuB;AACjD;AACA;AACA;AACA,oBAAoB,+DAAuB;AAC3C;AACA;AACA;AACA,2BAA2B,kGAA8C;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+DAAwB;AACpD;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4FAAwC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+DAAwB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kGAA8C;AACzE;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kGAAkG,6BAA6B,GAAG;AAClI;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,uBAAuB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,+DAAwB;AACpC,kBAAkB,+GAA2D;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,iFAAmC;AACpF;AACA,8BAA8B,+DAAwB;AACtD,iDAAiD,yEAA2B;AAC5E;AACA,gEAAgE,yEAA2B;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACsB;;;;;;;;;;;;;;;;;;;;;;;;AChTY;AAC8H;AACjG;AACjB;;AAEP;AACE;AACD;;AAEzC,yDAAyD;AACzD,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,+DAAwB;AAC5B;AACA,yDAAyD;AACzD,iBAAiB,8DAAuB;AACxC,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,qFAAqF,oBAAoB,2DAAoB,QAAQ,uCAAuC,eAAe,2DAAoB,IAAI,6CAA6C;AACrR,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,EAAE;AACF;AACA;AACA,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,+DAAwB;AAC5B;AACA,yDAAyD;AACzD,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,gEAAyB;AAC7B;AACA,wDAAwD;AACxD,iBAAiB,8DAAuB;AACxC,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,+EAA+E,2DAAoB,QAAQ,gBAAgB,2DAAoB,IAAI,mCAAmC;AAC3M,IAAI,uDAAgB;AACpB,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,+DAAwB;AAC5B;AACA,wDAAwD;AACxD,iBAAiB,8DAAuB;AACxC,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,wGAAwG,2DAAoB,QAAQ,gBAAgB,2DAAoB,IAAI,sCAAsC,yGAAyG,2DAAoB,QAAQ,gBAAgB,2DAAoB,IAAI,4CAA4C;AAChc,IAAI,0DAAmB;AACvB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA,wDAAwD;AACxD,iBAAiB,8DAAuB;AACxC,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,qFAAqF,oBAAoB,2DAAoB,QAAQ,wCAAwC,gBAAgB,2DAAoB,IAAI,+CAA+C;AACzR,IAAI,uDAAgB;AACpB,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,EAAE;AACF;AACA,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,+DAAwB;AAC5B;AACA,wDAAwD;AACxD,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,+DAAwB;AAC5B;AACA,4BAA4B,SAAS;AACrC;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,2DAA2D;AAC3D,qCAAqC,0DAAmB,GAAG,8DAA8D;;AAEzH;AACA,aAAa,6DAAiB;AAC9B,iBAAiB,yDAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,qCAAqC;AACrC;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,mCAAmC,uDAAY;AAC/C,4BAA4B,uDAAY;AACxC,8BAA8B,uDAAY;AAC1C,+BAA+B,uDAAY;AAC3C,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,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,iCAAiC;AACjC;AACA;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;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,yBAAyB;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,SAAS;AACT;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,uCAAuC,+DAAwB;AACtI,0CAA0C,+DAAwB,GAAG,0IAA0I;AAC/M,QAAQ,wDAAiB,mEAAmE,yBAAyB;AACrH,OAAO,YAAY,sFAAsF,aAAa,kLAAkL,aAAa,gEAAyB,oYAAoY,mLAAmL,qzBAAqzB;AAC1rD,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,wEAAwE,yBAAyB,yFAAyF,6BAA6B;AAChP,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,iFAAiF,oCAAoC;AAC9I,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,0DAAmB;AAC3B,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB;AACzB,QAAQ,oDAAa;AACrB,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,MAAM;AACN,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB,YAAY,6DAAsB;AAC3D,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB,YAAY,yDAAkB;AACvD,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,OAAO,4BAA4B,+BAA+B,iDAAW,EAAE,oDAAc,EAAE,oDAAc,EAAE,gEAA2B,EAAE,2DAAsB,EAAE,mDAAc,IAAI,uBAAuB,0BAA0B,qDAAqD,kBAAkB,WAAW,kBAAkB,oBAAoB,4EAA4E,qBAAqB,yBAAyB,WAAW,iBAAiB,gBAAgB,gBAAgB,uBAAuB,gBAAgB,sBAAsB,eAAe,sBAAsB,kBAAkB,gHAAgH,yBAAyB,iBAAiB,mBAAmB,cAAc,WAAW,kBAAkB,WAAW,aAAa,gBAAgB,0IAA0I,gBAAgB,uBAAuB,uIAAuI,qBAAqB,sHAAsH,2BAA2B,8HAA8H,iBAAiB,cAAc,kBAAkB,sBAAsB,WAAW,YAAY,UAAU,MAAM,gBAAgB,SAAS,qBAAqB,kBAAkB,eAAe,yBAAyB,qIAAqI,kBAAkB,QAAQ,QAAQ,WAAW,eAAe,mBAAmB,uBAAuB,8BAA8B,aAAa,iLAAiL,0BAA0B,kGAAkG,yBAAyB,kCAAkC,kBAAkB,gBAAgB,WAAW,aAAa,sBAAsB,kBAAkB,gBAAgB,gBAAgB,6BAA6B,0DAA0D,UAAU,gBAAgB,cAAc,SAAS,0DAA0D,iBAAiB,eAAe,gBAAgB,uEAAuE,6BAA6B,kBAAkB,aAAa,kGAAkG,SAAS,WAAW,mBAAmB,wGAAwG,UAAU,oDAAoD,yBAAyB,wFAAwF,SAAS,mBAAmB,WAAW,YAAY,gBAAgB,UAAU,kBAAkB,UAAU,6PAA6P,qBAAqB,yBAAyB,+HAA+H,uBAAuB,iHAAiH,kBAAkB,iBAAiB,sBAAsB,yBAAyB,sBAAsB,qBAAqB,iBAAiB,eAAe,SAAS,WAAW,wHAAwH,uBAAuB,aAAa,cAAc,kBAAkB,QAAQ,OAAO,WAAW,YAAY,gBAAgB,yBAAyB,kBAAkB,eAAe,uHAAuH,uBAAuB,aAAa,kBAAkB,mBAAmB,qBAAqB,kCAAkC,6BAA6B,QAAQ,SAAS,UAAU,WAAW,gBAAgB,mBAAmB,kBAAkB,yBAAyB,qBAAqB,kBAAkB,kCAAkC,iIAAiI,kBAAkB,gRAAgR,yBAAyB,yIAAyI,sBAAsB,+HAA+H,aAAa,kCAAkC,kCAAkC,gIAAgI,0CAA0C,kCAAkC,mBAAmB,+BAA+B,IAAI,8BAA8B,uBAAuB,IAAI,8BAA8B,wBAAwB;AACr7L;AACA,MAAM;AACN;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,oDAAK;AACT;AACA,iDAAU;AACV,IAAI,qDAAM;AACV;AACA,iDAAU;AACV,IAAI,qDAAM;AACV;AACA,iDAAU;AACV,IAAI,qDAAM;AACV;AACA,iDAAU;AACV,IAAI,qDAAM;AACV;AACA,iDAAU;AACV,IAAI,qDAAM;AACV;AACA,iDAAU;AACV,IAAI,qDAAM;AACV;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB;;AAEA;AACA;AACA;AACA,gCAAgC,uDAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,wCAAwC,+DAAwB,CAAC,qDAAiB;AAC3J,2CAA2C,+DAAwB,GAAG,yIAAyI;AAC/M,QAAQ,wDAAiB,4EAA4E,4CAA4C,SAAS,+DAAwB;AAClL,OAAO,aAAa,gCAAgC;AACpD;AACA,MAAM,MAAM,qDAAU;AACtB;AACA,iDAAU;AACV,IAAI,qDAAM;AACV;AACA,iDAAU;AACV,IAAI,2DAAY;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF;AACrF,iDAAiD,8DAAuB,GAAG,mCAAmC;AAC9G,iDAAiD,8DAAuB,GAAG,wCAAwC,yDAAY,EAAE,uDAAW,IAAI;AAChJ,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,+CAAI;AAClB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB;AACtB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,yTAAyT,cAAc,gFAAgF,mBAAmB,8EAA8E,WAAW,6CAA6C,mGAAmG,uDAAuD,kCAAkC,gEAAgE,sCAAsC,qBAAqB,wdAAwd,mMAAmM,6EAA6E,+gBAA+gB,cAAc,gSAAgS,WAAW,+HAA+H,0CAA0C;AAChkF;AACA,iCAAiC,yEAA8B;AAC/D,gDAAgD,kBAAkB,WAAW,kBAAkB,oBAAoB,oCAAoC,qBAAqB,yBAAyB,WAAW,iBAAiB,gBAAgB,gBAAgB,uBAAuB,gBAAgB,sBAAsB,eAAe,sBAAsB,kBAAkB,mDAAmD,yBAAyB,iBAAiB,mBAAmB,cAAc,WAAW,kBAAkB,WAAW,aAAa,gBAAgB,wDAAwD,gBAAgB,uBAAuB,qDAAqD,qBAAqB,yDAAyD,2BAA2B,iEAAiE,iBAAiB,cAAc,kBAAkB,sBAAsB,WAAW,YAAY,UAAU,MAAM,gBAAgB,SAAS,qBAAqB,kBAAkB,eAAe,yBAAyB,wEAAwE,kBAAkB,QAAQ,QAAQ,WAAW,eAAe,mBAAmB,uBAAuB,8BAA8B,aAAa,+FAA+F,0BAA0B,qCAAqC,yBAAyB,eAAe,kBAAkB,gBAAgB,WAAW,aAAa,sBAAsB,kBAAkB,gBAAgB,gBAAgB,6BAA6B,kBAAkB,UAAU,gBAAgB,cAAc,SAAS,kBAAkB,iBAAiB,eAAe,gBAAgB,+BAA+B,6BAA6B,kBAAkB,aAAa,qCAAqC,SAAS,WAAW,mBAAmB,2CAA2C,UAAU,iCAAiC,yBAAyB,gDAAgD,SAAS,mBAAmB,WAAW,YAAY,gBAAgB,UAAU,kBAAkB,UAAU,kIAAkI,qBAAqB,yBAAyB,kEAAkE,uBAAuB,oDAAoD,kBAAkB,iBAAiB,sBAAsB,yBAAyB,sBAAsB,qBAAqB,iBAAiB,eAAe,SAAS,WAAW,2DAA2D,uBAAuB,aAAa,cAAc,kBAAkB,QAAQ,OAAO,WAAW,YAAY,gBAAgB,yBAAyB,kBAAkB,eAAe,0DAA0D,uBAAuB,aAAa,kBAAkB,mBAAmB,qBAAqB,kCAAkC,6BAA6B,QAAQ,SAAS,UAAU,WAAW,gBAAgB,mBAAmB,kBAAkB,yBAAyB,qBAAqB,kBAAkB,kCAAkC,oEAAoE,kBAAkB,oJAAoJ,yBAAyB,4EAA4E,sBAAsB,kEAAkE,aAAa,kCAAkC,kCAAkC,mEAAmE,0CAA0C,kCAAkC,mBAAmB,+BAA+B,IAAI,8BAA8B,uBAAuB,IAAI,8BAA8B;AACnkI,aAAa;AACb,KAAK,iBAAiB,UAAU,sBAAsB,IAAI,IAAI;AAC9D,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,iDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,iDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,iDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,iDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,iDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,iDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT;AACA;AACA,kBAAkB,uDAAY;AAC9B;AACA,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qDAAiB,EAAE,IAAI,IAAI;AACjE,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,uDAAY;AAC9B;AACA,SAAS,GAAG,IAAI;AAChB,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,mDAAQ;AACtB;AACA,0BAA0B,yDAAY,EAAE,uDAAW;AACnD;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB;AACtB,eAAe,mDAAmD,gEAAyB,gCAAgC,4BAA4B,uEAAuE,yBAAyB,QAAQ,yDAAY,EAAE,uDAAW,IAAI,yBAAyB,kCAAkC,IAAI;;AAE3V;AACA;AACA;;AAEuJ;;;;;;;;;;;;;;;;;AC5mBvJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wBAAwB;AAC5C;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,iEAAe,UAAU,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClIqG;AAC3E;AACsC;;AAE1F;AACA;AACA;AACA,+BAA+B;AAC/B,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;;AAEA;AACA;AACA,wDAAwD,iEAAU;AAClE,0BAA0B;AAC1B,oBAAoB;AACpB;AACA;;AAEA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA,qCAAqC,yEAA0B;AAC/D,kBAAkB,kEAAW,+CAA+C,0DAAW;AACvF;AACA;AACA;AACA,qDAAqD,iEAAkB;AACvE,0BAA0B,mEAAoB;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA;;AAEA;AACA,SAAS,MAAM;AACf,4BAA4B;AAC5B,wCAAwC;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA,mFAAmF;AACnF;AACA;AACA;AACA,gBAAgB,yEAA0B,UAAU;AACpD;AACA,MAAM,+BAA+B,mEAAoB;AACzD;AACA;;AAEA;AACA,0CAA0C,6BAA6B,QAAQ;AAC/E,6BAA6B;AAC7B,4CAA4C;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;;AAEA;AACA,eAAe;;AAEf;AACA;AACA,8CAA8C;;AAE9C;AACA;AACA;AACA,sCAAsC,yEAA0B;AAChE,kBAAkB,kEAAW,+CAA+C,0DAAW;AACvF;AACA;AACA;AACA,sDAAsD,iEAAkB;AACxE,0BAA0B,mEAAoB;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,gBAAgB,yEAA0B,UAAU;AACpD;AACA,MAAM,+BAA+B,mEAAoB;AACzD;AACA;;AAEA;AACA,0CAA0C,6BAA6B,QAAQ;AAC/E;AACA,iDAAiD;AACjD,sCAAsC;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sDAAsD,4DAAa;AACnE;AACA,iCAAiC,8DAAO,yBAAyB;AACjE;AACA,IAAI;AACJ,YAAY,gEAAS;AACrB,yBAAyB;AACzB;AACA;AACA;AACA,mBAAmB,gBAAgB,mEAAoB;AACvD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB,4DAAa;AAClC,iCAAiC,8DAAO,uBAAuB;AAC/D;AACA,IAAI;AACJ,YAAY,gEAAS;AACrB,yBAAyB;AACzB;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,iEAAU;AACjE,wBAAwB;AACxB,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE,kBAAkB;AAClB;AACA;;AAEA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA,wDAAwD;AACxD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA,mDAAmD;AACnD;AACA;AACA,oBAAoB,6DAAc;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,2DAAY,8DAA8D;AAC/F;AACA,oCAAoC;AACpC;AACA;AACA;AACA,oBAAoB,mEAAoB;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA,QAAQ,+DAAQ;AAChB,sBAAsB;AACtB;AACA;AACA;AACA,sDAAsD,iEAAU;AAChE,wBAAwB;AACxB,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,4DAAa;AAC9C,gCAAgC,+DAAQ,0BAA0B;AAClE,oBAAoB;AACpB;AACA;;AAEA,+BAA+B;;AAE/B;AACA;AACA;AACA,mCAAmC,4DAAa,+BAA+B,2DAAY,IAAI;AAC/F;AACA,mCAAmC,YAAY;AAC/C,cAAc,+DAAQ;AACtB,0BAA0B,+DAAQ,kDAAkD,YAAY;AAChG,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,kBAAkB,+BAA+B,mEAAoB;AACrE;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,mCAAmC,2DAAY;AACjE;AACA;;AAEA;AACA;AACA,yEAAyE;AACzE;AACA,oBAAoB;AACpB;AACA;AACA,0EAA0E,8DAAO;AACjF,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iEAAiE;AACjE,+CAA+C;;AAE/C;AACA;AACA;AACA;AACA;AACA,kDAAkD,6DAAc;AAChE,oCAAoC,QAAQ;AAC5C,UAAU,OAAO,4DAAa;AAC9B,aAAa,4DAAa;AAC1B,iCAAiC,oEAAiB,uCAAuC,oDAAK;AAC9F;AACA,UAAU,8DAAO,oBAAoB;AACrC;AACA;AACA;AACA;;AAEA,iBAAiB,iEAAkB;AACnC,qFAAqF,iEAAU;AAC/F;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,WAAW,wBAAwB,oCAAoC;AACvE;AACA;AACA,oBAAoB,6DAAc;AAClC,0CAA0C,UAAU,SAAS,QAAQ,4DAAa;AAClF,qCAAqC,oEAAiB;AACtD;AACA,yDAAyD,oDAAK;AAC9D;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,yCAAyC;AACzC;AACA,QAAQ,+BAA+B,mEAAoB;AAC3D;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,mEAAY;AACvE,qBAAqB;AACrB,oBAAoB;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,kEAAkE;AAClE;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,KAAK;AACL,uBAAuB;AACvB,oBAAoB;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,KAAK;AACL,eAAe,SAAS;AACxB;;AAEA,kBAAkB,mBAAmB;AACrC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ,QAAQ;AACR;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA,0BAA0B,qBAAqB;AAC/C;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,0CAA0C,oBAAoB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB;;AAEzB;AACA,oBAAoB,4BAA4B;AAChD;AACA,sBAAsB,mBAAmB;AACzC,UAAU;AACV,gDAAgD,+BAA+B;AAC/E;;AAEA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA;AACA,8EAA8E,WAAW;AACzF;AACA,sBAAsB;AACtB;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,oCAAoC,eAAe;AACnD,wCAAwC,UAAU;AAClD,UAAU,8DAAO,2BAA2B;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA,4CAA4C;AAC5C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,qBAAqB;AACzC,QAAQ,0CAA0C;AAClD;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;;AAEhC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAE+X;;;;;;;;;;;;;;;;;;ACltBpV;AACO;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,qDAAM;AACnB,sCAAsC;AACtC,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC;AACjC;AACA,YAAY;AACZ,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA,8DAA8D;AAC9D,WAAW;AACX;AACA;;AAEA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,cAAc;AACd;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA,sBAAsB;AACtB,sDAAsD,aAAa,sBAAsB;AACzF;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0CAA0C,gCAAgC;AAC1E;;AAEA;AACA,mCAAmC;AACnC,yCAAyC,wCAAwC;;AAEjF;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,gEAAS;AACxB,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;;AAEsB;;;;;;;;;;;;;;;;;;;;;AC3J8B;AACgC;AACvB;AACnB;;AAE1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,sDAAsD,OAAO,0DAAW;;AAExE;AACA;AACA;;AAEA;AACA,YAAY;AACZ;;AAEA;AACA,uCAAuC;AACvC;AACA;;AAEA,8DAA8D;;AAE9D;AACA;AACA,2EAA2E;AAC3E;AACA,4BAA4B;AAC5B;AACA;AACA;;AAEA;AACA,mBAAmB;AACnB,gDAAgD;AAChD;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,qCAAqC;AACrC;;AAEA;AACA,aAAa;AACb;AACA;AACA,8CAA8C,yEAA0B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,CAAC,wDAAS;;AAEX;;AAEA,+DAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,6DAAc;AACrE;;AAEA;AACA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA,gDAAgD;AAChD,8GAA8G;AAC9G,kCAAkC;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,QAAQ;AACnC;AACA;AACA,wCAAwC;AACxC;AACA;AACA,2CAA2C;AAC3C,0GAA0G;AAC1G,iCAAiC;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,qDAAM;AACnB;AACA;;AAEA;AACA,kEAAkE;AAClE,OAAO;;AAEP;AACA;AACA;AACA,GAAG;AACH;;AAEA,oBAAoB,kEAAc;AAClC;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,uBAAuB,4DAAa;AACpC,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,mBAAmB;AACnB,oBAAoB;AACpB;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;AACA,gCAAgC;AAChC,8BAA8B,wCAAwC;AACtE;AACA,qBAAqB,yEAA0B,mCAAmC;AAClF;AACA;AACA;;AAEA;AACA,iDAAiD;AACjD;AACA;AACA,SAAS,kEAAoB,aAAa,+DAAiB,8BAA8B,iBAAiB;AAC1G;;AAEgC;;;;;;;;;;;;;;;;;;;;;;;;;AC1MS;AACO;AACM;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,6BAA6B;AAC7B;AACA;AACA;AACA;;AAEA,8BAA8B;;AAE9B;AACA,UAAU;AACV;AACA,0BAA0B,OAAO;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,4BAA4B;AAC9C;AACA;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,0DAAO;AACxB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,8BAA8B;AAC9B,iEAAiE,uBAAuB;AACxF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;;AAE1B;;AAEA;AACA;AACA;AACA,uCAAuC,sBAAsB,iBAAiB;;AAE9E;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA,6BAA6B,cAAc;AAC3C,MAAM;AACN;AACA;;AAEA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,uCAAuC,kBAAkB,YAAY;AACrE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,MAAM;AACN;AACA;AACA,iBAAiB;AACjB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA,MAAM;AACN;AACA;AACA,GAAG;AACH,oBAAoB,0DAAiB;AACrC;;AAEA,0BAA0B,2DAAkB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB,qCAAqC;;AAErC;;AAEA;AACA;AACA,IAAI;AACJ;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB,+BAA+B;AAC/B;AACA;AACA,oBAAoB,uBAAuB;AAC3C,QAAQ;AACR,UAAU;AACV,GAAG;AACH;AACA;;AAEA;AACA;AACA,gDAAgD,+BAA+B;AAC/E;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA,kBAAkB,mBAAmB;AACrC;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;;AAEA;AACA,sEAAsE,kCAAkC;AACxG;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,wDAAS;AAC9B,0BAA0B,wDAAS;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,aAAa,qDAAM;AACnB;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEiF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtctC;AACmB;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,qDAAM;AACzB;AACA,8BAA8B,aAAa;AAC3C;AACA;AACA,sBAAsB;AACtB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,WAAW;AACX;AACA;AACA,KAAK;;AAEL;AACA,GAAG;AACH;AACA;;AAEA;AACA,wBAAwB;AACxB;AACA,qCAAqC;AACrC;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA,eAAe;AACf,sCAAsC,8CAA8C;AACpF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA,8CAA8C,QAAQ;AACtD,YAAY;AACZ;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,mEAAY;AACrG,qBAAqB;AACrB;AACA;AACA,6CAA6C,8DAAO;AACpD;AACA,QAAQ;AACR;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8FAA8F;AAC9F;AACA;AACA;AACA,GAAG;AACH;;AAEgM;;;;;;;;;;;;;;;;;;;AC/KpJ;AACD;;AAE3C;;AAEA;;AAEA;AACA;AACA,2BAA2B;AAC3B;AACA,kBAAkB,sBAAsB;AACxC;AACA,uCAAuC;AACvC,sCAAsC;AACtC,gDAAgD;AAChD,wCAAwC;AACxC,mCAAmC,WAAW,eAAe,OAAO;AACpE,WAAW;AACX;AACA,aAAa;AACb,cAAc;AACd,cAAc;AACd,eAAe;AACf;AACA;;AAEA;AACA;AACA,0BAA0B;AAC1B;AACA;;AAEA;AACA,sBAAsB;AACtB,uBAAuB;AACvB,uBAAuB;AACvB,2CAA2C;AAC3C;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,aAAa,qDAAM,EAAE,QAAQ,yCAAyC;AACtE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oDAAO;AACtB;AACA,6DAA6D;AAC7D;AACA,oBAAoB,6CAAI;AACxB;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE,MAAM;AACN;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA;;AAEkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvGE;;AAEpC;AACA,mBAAmB;AACnB;AACA,QAAQ;;AAER;AACA,4BAA4B,wBAAwB;;AAEpD,sCAAsC;;AAEtC;AACA,sBAAsB,kCAAkC;AACxD,UAAU;AACV;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;;AAEA;AACA,iDAAiD;AACjD;AACA,QAAQ,0BAA0B;;AAElC;AACA;AACA,oBAAoB;AACpB;AACA;;AAEA,sCAAsC,QAAQ;;AAE9C;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA,cAAc;AACd;AACA;AACA;AACA,mBAAmB;AACnB;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB,oBAAoB;AAC1D,MAAM;AACN;;AAEA,2BAA2B,cAAc,oBAAoB,cAAc,oBAAoB,eAAe;;AAE9G;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,UAAU;AACrC;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,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS,0BAA0B,OAAO;AAC1C;AACA;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB,sCAAsC;AACtC;AACA,mBAAmB,yBAAyB,UAAU;AACtD;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB;AACpB,gDAAgD;AAChD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qDAAqD;AACrD,kBAAkB,yBAAyB;AAC3C,MAAM,6CAA6C;AACnD;AACA;;AAEA;AACA;AACA,kDAAkD;;AAElD;AACA;AACA,iDAAiD;;AAEjD;AACA;AACA,kDAAkD;;AAElD;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yBAAyB,yBAAyB;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB,0BAA0B;AAC1B,oCAAoC;AACpC,+BAA+B;AAC/B;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qDAAqD;;AAErD,+DAA+D;;AAE/D;AACA;AACA;AACA,+DAA+D,oBAAoB;AACnF;;AAEA;AACA;AACA;AACA,gBAAgB;AAChB,+BAA+B;AAC/B;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA,qBAAqB;AACrB;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,mCAAmC;AACnC,8BAA8B;AAC9B,qBAAqB;AACrB;AACA;AACA;;AAEA;;AAEA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA,sCAAsC;AACtC;AACA,mCAAmC;AACnC;AACA,gCAAgC;AAChC,oBAAoB,cAAc,OAAO,gCAAgC;AACzE,IAAI;AACJ,uBAAuB,6CAA6C;AACpE,yBAAyB,mBAAmB;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA,0BAA0B;AAC1B;AACA,mBAAmB;AACnB,MAAM;AACN;AACA,MAAM;AACN;AACA,qBAAqB;AACrB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,eAAe;AACf,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC,MAAM;AACN,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC,MAAM,uBAAuB;AAC7B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA,eAAe;AACf;AACA;;AAEA;AACA;AACA;AACA,gBAAgB;AAChB,8BAA8B;AAC9B,kBAAkB,cAAc;AAChC,MAAM,sBAAsB;AAC5B;AACA;;AAEA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,+BAA+B;AAC/B;AACA,8BAA8B,mCAAmC;AACjE;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,QAAQ;;AAErC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B;AAC5B,cAAc;AACd,4BAA4B;AAC5B,0BAA0B;AAC1B;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,6DAA6D,oBAAoB;AACrH,qCAAqC,mEAAmE,uBAAuB;AAC/H;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA,0BAA0B;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI,6FAA6F;AACjG;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,2BAA2B,cAAc,OAAO;AAChD;AACA,MAAM;AACN;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B,QAAQ;AAClC,MAAM;AACN,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,UAAU,oBAAoB,QAAQ,oBAAoB,eAAe,oBAAoB,cAAc,oBAAoB,eAAe;;AAE3K;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD;;AAEhD;AACA;AACA,6CAA6C;;AAE7C;AACA;AACA;AACA,qDAAqD;;AAErD;AACA;AACA;AACA;AACA,uDAAuD;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA,oDAAoD;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW,OAAO;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC;;AAElC;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA,eAAe,gBAAgB,cAAc;;AAE7C;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC,MAAM;AACN,QAAQ;;AAER;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;;AAEnC;AACA,kBAAkB,kBAAkB;AACpC,MAAM;AACN,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA,+BAA+B,WAAW;AAC1C,MAAM,0DAA0D;AAChE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8BAA8B;AAC9B,0FAA0F,QAAQ;AAClG,MAAM;AACN,QAAQ;AACR;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,iBAAiB;AACnC,MAAM;AACN;AACA;;AAEA;AACA,gDAAgD;AAChD;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,yBAAyB;AAC3C;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,SAAS,oBAAoB,QAAQ,oBAAoB,WAAW,oBAAoB,eAAe,oBAAoB,aAAa;;AAEvK;AACA,iDAAiD;AACjD;AACA,+CAA+C;;AAE/C;AACA,kDAAkD;AAClD;AACA,sDAAsD;AACtD;AACA,oDAAoD;;AAEpD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,YAAY,oBAAoB,eAAe,oBAAoB,gBAAgB,oBAAoB,eAAe,oBAAoB,cAAc,oBAAoB,YAAY,oBAAoB,gBAAgB,oBAAoB,kBAAkB,oBAAoB,aAAa,oBAAoB,WAAW,oBAAoB,WAAW,oBAAoB,WAAW;;AAE7Z;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;;AAElD;AACA;AACA,oDAAoD;;AAEpD;AACA;AACA;AACA,gDAAgD;;AAEhD;AACA;AACA,0DAA0D;;AAE1D;AACA;AACA;AACA,gDAAgD;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qDAAqD;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oDAAoD;;AAEpD;AACA;AACA;AACA,mDAAmD;;AAEnD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,wCAAwC;AACxC;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA,sBAAsB,QAAQ;AAC9B;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA,kDAAkD;;AAElD,gEAAgE;;AAEhE;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,oCAAoC;AACpC;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,iDAAiD;;AAEjD;AACA;AACA;AACA,qDAAqD;;AAErD;AACA;AACA,uDAAuD;;AAEvD;AACA;AACA;AACA,kDAAkD;;AAElD;AACA;AACA,gDAAgD;;AAEhD;AACA;AACA,gDAAgD;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;;AAEhD;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B,sBAAsB,SAAS,OAAO,0DAA0D;AAChG;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,kBAAkB,uBAAuB,OAAO;AAChD;AACA,MAAM,yHAAyH,qBAAqB;AACpJ,yCAAyC,sBAAsB;AAC/D;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM,0CAA0C,oBAAoB;AACpE;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,oBAAoB;;AAEpB;AACA;;AAEA;AACA;AACA;;AAEA,+BAA+B,eAAe,oBAAoB,aAAa;;AAE/E;AACA,wCAAwC;AACxC;AACA;;AAEA,uDAAuD;;AAEvD,qEAAqE;;AAErE,oDAAoD;;AAEpD;AACA;AACA;;AAEA;AACA,6BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA,+CAA+C;AAC/C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAED;AACA,iCAAiC,QAAQ;AACzC,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,iBAAiB,oBAAoB,gBAAgB,oBAAoB,cAAc;;AAEpH;AACA;AACA,6BAA6B;AAC7B;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,sBAAsB;AACxC,MAAM,4BAA4B;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,gBAAgB;AACtC,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,sBAAsB;AACxC;AACA,qDAAqD;AACrD;AACA;;AAEA;AACA,kBAAkB,sBAAsB;AACxC,MAAM,gBAAgB,uBAAuB;AAC7C,QAAQ,qCAAqC;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ,+CAA+C,4BAA4B;;AAEnF,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,2BAA2B;AAC7C,MAAM,mCAAmC;AACzC;AACA;AACA;AACA;;AAEA;AACA,6CAA6C,mCAAmC;AAChF;AACA;AACA;AACA;AACA,8BAA8B,UAAU;AACxC,UAAU;AACV;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA,qBAAqB,mDAAmD;AACxE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC,QAAQ,qCAAqC;AAC7C;AACA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C,QAAQ;AACR;AACA,GAAG;AACH;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD,8BAA8B;AAC9B;;AAEA,+BAA+B,QAAQ;;AAEvC,gDAAgD;;AAEhD,iDAAiD;;AAEjD,iDAAiD;;AAEjD;;AAEA;AACA;AACA,OAAO;AACP;AACA,yCAAyC;AACzC;;AAEA;AACA;AACA,OAAO;AACP;AACA,yCAAyC;AACzC;;AAEA;AACA;AACA,SAAS;AACT;AACA,QAAQ,QAAQ;AAChB;AACA,QAAQ,QAAQ;AAChB;AACA,QAAQ,QAAQ;AAChB,0BAA0B;AAC1B,QAAQ;AACR,WAAW;AACX;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,KAAK;AAC9B,WAAW;AACX;AACA,oBAAoB,MAAM;AAC1B,UAAU;AACV;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,4BAA4B;AAC5B;AACA;;AAEA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,IAAI;AACJ;AACA,mCAAmC;AACnC,iDAAiD;AACjD,cAAc;AACd,KAAK;AACL;AACA,2CAA2C;AAC3C,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,uBAAuB;AAC1C;AACA;AACA,gCAAgC,SAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB;AACpB;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gCAAgC,gCAAgC,sBAAsB;;AAEtF;AACA;AACA,sDAAsD,yCAAyC;AAC/F,MAAM;AACN,uBAAuB;AACvB;AACA,0CAA0C;AAC1C;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+CAA+C;AAC/C;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;;AAEA,SAAS,uBAAuB;AAChC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB;AACrB;AACA;AACA,sBAAsB;AACtB,yCAAyC;AACzC,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,iBAAiB;AACnD;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA,+DAA+D;AAC/D,sCAAsC;AACtC;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,0BAA0B;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,6BAA6B,YAAY,oBAAoB,gBAAgB,oBAAoB,WAAW,oBAAoB,WAAW,oBAAoB,eAAe;;AAE9K;AACA;AACA,kDAAkD;;AAElD;AACA;AACA;AACA,qDAAqD;;AAErD;AACA;AACA,gDAAgD;;AAEhD;AACA;AACA;AACA,gDAAgD;;AAEhD;AACA;AACA,oDAAoD;;AAEpD;AACA;AACA;AACA,8BAA8B,gCAAgC;AAC9D;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qCAAqC;AACrC,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,kBAAkB,wBAAwB;AAC1C,MAAM,iDAAiD;AACvD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B;AAC9B,kBAAkB,kBAAkB,OAAO,2CAA2C;AACtF;AACA;;AAEA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,kBAAkB,kBAAkB;AACpC;AACA,mBAAmB;AACnB,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,yDAAyD;;AAEjG;AACA,0BAA0B;AAC1B,sBAAsB;AACtB,qCAAqC;;AAErC;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,+BAA+B,cAAc;;AAE7C;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;;AAEA;AACA;AACA,wCAAwC,iEAAiE;AACzG;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB,OAAO;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC,MAAM,2BAA2B;AACjC;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,oBAAoB,uDAAe;AACnC,oBAAoB,uDAAe;;AAEnC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;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,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,eAAe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;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;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;;AAEA;AACA,oBAAoB;AACpB,2BAA2B;AAC3B,GAAG;;AAEH;AACA;AACA,gDAAgD;AAChD;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yDAAyD,sBAAsB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2DAA2D,wBAAwB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B;AACA,qCAAqC;AACrC;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB;;AAEhB;AACA;;AAEA;AACA,oCAAoC;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2CAA2C;AAC3C;AACA;AACA,6CAA6C;AAC7C,aAAa;AACb;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA,2CAA2C,QAAQ;AACnD,MAAM,mCAAmC;AACzC;;AAEA;AACA,+CAA+C,oBAAoB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB;AACnB,6BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,OAAO,oBAAoB,eAAe;;AAEvE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,yBAAyB,gBAAgB,kBAAkB,OAAO;AAClE;AACA,yBAAyB,kBAAkB,oBAAoB,SAAS;AACxE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,iBAAiB;AACjB;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,oCAAoC;AACpC,2CAA2C;AAC3C;AACA;AACA;AACA,uBAAuB;AACvB,MAAM;AACN;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB,mBAAmB;AAC5C,2BAA2B;AAC3B;AACA,mBAAmB;AACnB,yBAAyB;AACzB;AACA,sCAAsC;AACtC,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,uEAAuE,iCAAiC;AACxG,IAAI;AACJ;AACA,yCAAyC;AACzC,gDAAgD;AAChD,uBAAuB;AACvB;AACA;AACA;AACA,cAAc,oBAAoB;AAClC,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8BAA8B,YAAY;AAC1C;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,oBAAoB;AACpB;AACA,gBAAgB;AAChB;AACA,kBAAkB,kBAAkB;AACpC,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,oBAAoB,uBAAuB;AAC3C,QAAQ;AACR,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,eAAe,OAAO;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,QAAQ,OAAO;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B,QAAQ;AAClC;AACA,qCAAqC,QAAQ;AAC7C,QAAQ;AACR,aAAa;AACb;AACA;AACA;;AAEA;AACA,mBAAmB,gBAAgB,sBAAsB;AACzD;AACA,QAAQ;AACR;AACA;;AAEA;AACA,mBAAmB,gBAAgB,sBAAsB;AACzD;AACA,QAAQ;AACR;AACA;;AAEA;AACA,wCAAwC,gBAAgB,sBAAsB;AAC9E;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA,mBAAmB,gBAAgB,sBAAsB;AACzD;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA,+CAA+C;AAC/C,eAAe,mBAAmB;AAClC,YAAY,2BAA2B;AACvC;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,6BAA6B,QAAQ;AACvD;AACA,4DAA4D;AAC5D;AACA;AACA;AACA,iDAAiD;AACjD;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;;AAEA;AACA,8BAA8B,YAAY;AAC1C;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,UAAU;AACV;AACA,yBAAyB;AACzB;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,oDAAoD,OAAO;AAC3D;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kCAAkC;AAClC,+BAA+B;AAC/B;AACA;;AAEA;AACA;AACA,0BAA0B;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA,gCAAgC;AAChC,oDAAoD;AACpD;AACA;AACA,qCAAqC,SAAS;AAC9C;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB,gBAAgB;AAClC,2BAA2B;AAC3B;AACA;;AAEA;AACA;AACA;AACA,eAAe,6BAA6B;AAC5C;AACA;AACA;AACA;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;;AAEA,iBAAiB;;AAEjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,6CAA6C,YAAY;AACzD,2EAA2E;AAC3E,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,QAAQ;AACd;AACA,MAAM,QAAQ;AACd;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,yBAAyB;AACzB,aAAa;AACb;AACA;AACA,sBAAsB,sBAAsB;AAC5C;AACA;AACA;AACA,UAAU;AACV,cAAc;AACd,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gCAAgC;AACtD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEiJ;;;;;;;;;;;;;;;;;;;;;;;;;ACr5GnD;AAC/B;;AAE/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,QAAQ,YAAY;AAC9B,cAAc;AACd,YAAY;AACZ,IAAI;AACJ;AACA,mDAAmD,wBAAwB;AAC3E;AACA;;AAEA;AACA;AACA;AACA,cAAc,UAAU;AACxB,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA,cAAc,UAAU;AACxB,4BAA4B,cAAc;AAC1C;AACA;;AAEA;AACA;AACA,0BAA0B;AAC1B,8BAA8B;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,wCAAwC;AAC5E,kCAAkC,wCAAwC;AAC1E,8BAA8B,qBAAqB;AACnD,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,uBAAuB,wDAAS;AAChC;AACA,UAAU,YAAY,wDAAS;AAC/B;AACA;AACA,eAAe,mEAAY;AAC3B,iBAAiB;AACjB,oBAAoB;AACpB;AACA;AACA;;AAEA;AACA,gBAAgB,6DAAc;AAC9B,oCAAoC,QAAQ;AAC5C,MAAM,UAAU,4DAAa;;AAE7B,cAAc,oEAAiB;AAC/B,oCAAoC,oDAAK;;AAEzC;AACA,oBAAoB,uBAAuB,SAAS,sCAAsC;AAC1F;;AAEA;AACA,qEAAqE,SAAS;AAC9E,kBAAkB,+DAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E;AAC/E;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA,mBAAmB,6DAAc;AACjC;AACA;AACA;AACA,gDAAgD,sBAAsB;AACtE,YAAY,OAAO,4DAAa;AAChC;AACA;AACA;AACA,2BAA2B,4DAAa;AACxC;AACA,yEAAyE,oDAAK;AAC9E;AACA;AACA,0BAA0B;AAC1B,4DAA4D;AAC5D,SAAS;AACT,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,eAAe;AACnD,SAAS,+DAAQ,iCAAiC;AAClD,oBAAoB;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,6DAA6D;AACrH,kBAAkB;AAClB,qBAAqB;AACrB;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oEAAiB;AACjC,sCAAsC,oDAAK,CAAC,4DAAa;AACzD,gBAAgB,wDAAS;AACzB;AACA,0BAA0B,iEAAU;AACpC;AACA;;AAEA;AACA;AACA;AACA,0EAA0E,OAAO;AACjF;AACA;AACA;AACA;AACA,8EAA8E;AAC9E;AACA;AACA;AACA,qDAAqD,6DAAc,GAAG,4DAAa;AACnF,MAAM;AACN;AACA;AACA;AACA;AACA,cAAc,oEAAiB;AAC/B,oCAAoC,oDAAK,YAAY,6DAAc,GAAG,4DAAa,WAAW,6DAAc;AAC5G,0DAA0D,6DAAc,GAAG,4DAAa,WAAW,6DAAc;AACjH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,6DAA6D;AACrH,kBAAkB;AAClB;AACA,2BAA2B;AAC3B;AACA,uCAAuC;;AAEvC;AACA;AACA,kBAAkB,4DAAa;AAC/B,sBAAsB,oDAAK,CAAC,4DAAa,uBAAuB,4DAAa;AAC7E;AACA;AACA,iCAAiC,oEAAiB;AAClD;AACA;AACA;AACA;AACA;AACA;;AAEkH;;;;;;;;;;;;;;;;;;;;;;;;;;AC3PlD;AACkB;;AAElF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,UAAU,oBAAoB,SAAS,oBAAoB,SAAS,oBAAoB,OAAO,oBAAoB,UAAU,oBAAoB,QAAQ,oBAAoB,UAAU;;AAElN;AACA;AACA,8CAA8C;;AAE9C;AACA;AACA,4CAA4C;;AAE5C;AACA;AACA,4CAA4C;;AAE5C;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,mBAAmB;AACrC,MAAM,gDAAgD;AACtD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wCAAwC,0DAAW;;AAEnD;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;;AAEA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA,wEAAwE,0DAAW;AACnF;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;;AAEf,mCAAmC,YAAY;AAC/C;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,+BAA+B,WAAW;;AAE1C;AACA;AACA;AACA,mDAAmD;;AAEnD;AACA;AACA,uCAAuC;AACvC;AACA;AACA;;AAEA;AACA,wCAAwC,0DAAW;;AAEnD;AACA,mBAAmB,0DAAW;AAC9B;AACA,mBAAmB;AACnB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY;AACZ;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,mBAAmB;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,uDAAuD;AACvD;AACA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;;AAEA;AACA,eAAe,oDAAK,CAAC,4DAAa;AAClC;;AAEA;AACA;AACA;;AAEA;AACA,YAAY;AACZ;;AAEA,kEAAkE;;AAElE;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wCAAwC,0DAAW;;AAEnD,mBAAmB,0DAAW;AAC9B;AACA;AACA,mCAAmC;AACnC,MAAM;AACN;AACA;AACA;;AAEA,uDAAuD,QAAQ;;AAE/D,oDAAoD;;AAEpD,oDAAoD;;AAEpD,oDAAoD;;AAEpD,iEAAiE;;AAEjE;AACA,CAAC;;AAED;;AAEA;AACA,wBAAwB,aAAa;AACrC,mCAAmC;AACnC;;AAEA;;AAEA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,0CAA0C,wCAAwC;AAClF;AACA;AACA;AACA,mBAAmB;AACnB,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB;AACzB;AACA,wBAAwB,8DAAW,oBAAoB,oEAAiB,KAAK;AAC7E;AACA,uDAAuD,mBAAmB,gBAAgB;AAC1F;AACA;;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;;AAEA;AACA;AACA;;AAEA,6BAA6B,aAAa,oBAAoB,iBAAiB,oBAAoB,mBAAmB,oBAAoB,cAAc,oBAAoB,qBAAqB;;AAEjM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS,2DAAY;AACrB,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iIAAiI,wDAAS;AAClJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB;AACnB;AACA,MAAM;AACN,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC,CAAC,4DAAS;;AAEX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,gEAAgE;AAClG,gCAAgC;AAChC,GAAG;;AAEH;AACA,4CAA4C,4DAA4D;AACxG,gCAAgC;AAChC,GAAG;;AAEH;AACA,kCAAkC,mCAAmC;AACrE,qDAAqD;AACrD,GAAG;;AAEH;AACA,4BAA4B,UAAU;AACtC,sCAAsC;AACtC,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,UAAU,oBAAoB,YAAY,oBAAoB,OAAO;;AAElG;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,gCAAgC,OAAO;AACzD;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,QAAQ;;AAEjD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gCAAgC;AAC5D,gBAAgB,mBAAmB,gCAAgC,GAAG,kBAAkB;AACxF;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;;AAEA;AACA;AACA,iCAAiC;AACjC;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;AACA,oBAAoB,6BAA6B,SAAS;AAC1D;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,2BAA2B;AAC7C,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,0BAA0B,yDAAyD,oBAAoB;AACvG,yDAAyD;AACzD;AACA,QAAQ;AACR;AACA,iCAAiC;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,wBAAwB;AACxB;AACA;AACA;AACA;AACA,qBAAqB,4DAAa;AAClC,MAAM;AACN;AACA,MAAM;AACN,8BAA8B;AAC9B,MAAM;AACN,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC;AACnC,0CAA0C,6BAA6B;AACvE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wDAAwD;;AAExD;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;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iDAAiD;;AAEjD;AACA;AACA,2DAA2D;;AAEmE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5mCf;AAC3D;AACA;AACS;AACX;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,oBAAoB,oBAAoB;AACxC,QAAQ,yBAAyB;AACjC;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,gBAAgB,oBAAoB;AACxD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA,yBAAyB;AACzB;AACA;AACA,oBAAoB,iDAAiD,OAAO;AAC5E,sBAAsB,oEAAoE,SAAS;AACnG;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC,MAAM,0BAA0B;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA,IAAI;AACJ,sDAAsD;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C,8BAA8B,kBAAkB;AAChD;AACA,uBAAuB;AACvB;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA,sCAAsC,OAAO,OAAO;;AAEpD,6BAA6B,cAAc;AAC3C;AACA;AACA,uBAAuB;AACvB,wDAAwD;AACxD,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;AACA,8CAA8C,mDAAmD;AACjG;AACA;AACA;AACA,wBAAwB,aAAa;AACrC;AACA,cAAc;AACd;AACA,cAAc,oCAAoC,sDAAsD;AACxG;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0BAA0B;AAC7D,mBAAmB,oCAAoC,sCAAsC;AAC7F;AACA;;AAEA;;AAEA;AACA;AACA;AACA,oBAAoB,sCAAsC;AAC1D,MAAM,6DAA6D;AACnE,mBAAmB;;AAEnB;AACA;;AAEA;AACA;AACA,oBAAoB,wBAAwB;AAC5C;AACA,sBAAsB,gBAAgB,SAAS;AAC/C;AACA,sBAAsB,wBAAwB;AAC9C;AACA,4CAA4C;AAC5C;AACA;AACA,sBAAsB,0BAA0B;AAChD;AACA;AACA,sCAAsC;AACtC;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA,uBAAuB;AACvB,6BAA6B,oBAAoB;AACjD;AACA,qBAAqB;AACrB;AACA;AACA,oBAAoB,wBAAwB;AAC5C;AACA;AACA,UAAU;AACV;AACA,mBAAmB,sBAAsB,uDAAuD;AAChG;AACA;;AAEA;AACA,wBAAwB;AACxB;AACA,kBAAkB,mBAAmB,OAAO;AAC5C;AACA;;AAEA;;AAEA;AACA;AACA,qGAAqG,mBAAmB;AACxH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA,iCAAiC;AACjC,iCAAiC;AACjC;AACA,MAAM;AACN;AACA;AACA,kBAAkB;AAClB;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,cAAc,WAAW;AACzB,cAAc,WAAW;AACzB,eAAe;AACf;AACA;AACA,MAAM,mBAAmB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,gCAAgC;AAChC,KAAK;AACL;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,gCAAgC;AAChC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,kBAAkB,sCAAsC,wCAAwC;AAChG,oCAAoC;AACpC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,kBAAkB,sCAAsC,wCAAwC;AAChG,oCAAoC;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;;AAEA,cAAc,wDAAS;;AAEvB;AACA,+BAA+B,OAAO;AACtC,MAAM,iDAAiD;AACvD;AACA;;AAEA;AACA,2BAA2B,OAAO,OAAO;AACzC;AACA,qDAAqD;AACrD;AACA;AACA;;AAEA;AACA;AACA,4BAA4B,OAAO,OAAO,kDAAkD;AAC5F;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA,mDAAmD,OAAO;AAC1D;AACA,mDAAmD;AACnD;AACA,uDAAuD,QAAQ;AAC/D;AACA,uDAAuD;AACvD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,6CAA6C,eAAe,KAAK;AACjE;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO,OAAO;AAClC;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,kBAAkB;AACtC,MAAM;AACN,QAAQ;AACR;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4DAA4D,oCAAoC;AAChG;AACA;AACA;AACA;AACA;AACA,iBAAiB,6DAAc;AAC/B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,WAAW,oEAAqB;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,6BAA6B,mBAAmB;AAChD;AACA,qEAAqE,kBAAkB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,kCAAkC;AAClC,6CAA6C;AAC7C,mBAAmB;AACnB;AACA;AACA;AACA,2CAA2C;AAC3C,mBAAmB;AACnB;AACA;AACA;AACA;AACA,sCAAsC,4DAAa;AACnD;;AAEA;AACA,eAAe,oDAAK,CAAC,4DAAa;AAClC;;AAEA;AACA,wCAAwC,0DAAW;;AAEnD;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA,mEAAmE,0DAAW;AAC9E;AACA;AACA,eAAe;AACf;;AAEA;AACA,yBAAyB,oDAAK,CAAC,4DAAa;AAC5C;;AAEA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC,QAAQ;AACR;;AAEA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV,MAAM;AACN;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV,MAAM;AACN;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,kEAAkE;;AAElE;AACA,CAAC,CAAC,wDAAS;;AAEX;;AAEA,+DAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM,OAAO,6DAAc;AAC3B;;AAEA;AACA,qDAAqD;AACrD;AACA;AACA,eAAe,6DAAe,4BAA4B,sBAAsB;AAChF,GAAG;AACH,SAAS,kEAAoB;AAC7B;;AAEA;AACA;AACA;;AAEA,2DAA2D,eAAe;AAC1E;AACA,SAAS,YAAY;AACrB,MAAM,iDAAiD;AACvD,0BAA0B,QAAQ;AAClC,MAAM,wCAAwC;AAC9C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,4BAA4B,OAAO;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,SAAS;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB,4DAAa;AAClC;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI,wBAAwB,4DAAa;AACzC,gBAAgB,mEAAoB;AACpC,IAAI,wBAAwB,4DAAa;AACzC,gBAAgB,mEAAoB;AACpC;AACA;AACA,MAAM;AACN;AACA;;AAEA;;AAEA;;AAEA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wBAAwB;AAC5C;AACA;AACA;AACA,2BAA2B,iDAAiD,oDAAK;AACjF;AACA;AACA,IAAI;AACJ,8EAA8E,oDAAK;AACnF,IAAI;AACJ;AACA;AACA;AACA;;AAEA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC,UAAU;AACV;AACA;AACA;AACA,oBAAoB,qBAAqB,SAAS;AAClD,oBAAoB,qBAAqB;AACzC,8BAA8B,UAAU,6DAAc;AACtD;AACA;AACA,kCAAkC,aAAa,SAAS;AACxD,mCAAmC,4DAAa;AAChD;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA,eAAe,4DAAS;AACxB;AACA;;AAEA,OAAO,gDAAgD,qBAAqB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,mBAAmB;AACzC;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA,YAAY;AACZ;AACA;AACA,wBAAwB,wBAAwB;AAChD,YAAY;AACZ;AACA,mBAAmB,4DAAa;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA,iCAAiC,mBAAmB;AACpD;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA,YAAY;AACZ;AACA;AACA,qBAAqB,4DAAa;AAClC;AACA;AACA;AACA;;AAEA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kBAAkB;AACpD;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV,8BAA8B,WAAW,OAAO;AAChD;AACA;AACA;AACA;AACA;AACA,8DAA8D,kCAAkC;AAChG;AACA;AACA;AACA;AACA;AACA;;AAEA,0CAA0C,4DAAa;AACvD,+BAA+B,cAAc,SAAS;AACtD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA,sBAAsB,cAAc;AACpC;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,uEAAuE;AACvE,kFAAkF;AAClF,qFAAqF;AACrF,iFAAiF;AACjF,kFAAkF;;AAElF,sBAAsB,cAAc;AACpC;AACA;AACA,mBAAmB,oDAAK;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,oBAAoB,kEAAc;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA,uCAAuC;AACvC,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD,6DAAc;AAC9D;AACA,yCAAyC;AACzC;AACA,uBAAuB;AACvB;AACA,gDAAgD,6DAAc;AAC9D,MAAM;AACN;AACA,mBAAmB,SAAS,6DAAc;AAC1C,0BAA0B,SAAS,6DAAc;AACjD,aAAa,SAAS,6DAAc;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA,UAAU;AACV,uBAAuB,oDAAK;AAC5B,KAAK;AACL,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA;AACA,kBAAkB,SAAS,4BAA4B,4DAAa;AACpE;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA,kDAAkD;;AAElD;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,aAAa;AACb;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,sBAAsB;AACtB;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC,4DAAa,KAAK;AAC1D;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS,wBAAwB;AACjC,MAAM,oDAAoD;AAC1D;;AAEA;AACA,mCAAmC,wCAAwC;AAC3E,mBAAmB;AACnB;AACA;;AAEA;;AAEA,uBAAuB,wDAAS;;AAEhC;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA,qDAAqD,UAAU;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,mBAAmB;AACnB,wCAAwC;AACxC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,aAAa;;AAEb;AACA;AACA;AACA,kBAAkB,gBAAgB,OAAO;AACzC,oBAAoB,2BAA2B;AAC/C;AACA;AACA;AACA,sBAAsB,wBAAwB,OAAO;AACrD;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB,SAAS;AACnD,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,kBAAkB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW;AACnC,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,oCAAoC,iBAAiB;AACrD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;;AAEN,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,0DAA0D;AAC1D,kCAAkC;AAClC;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC,MAAM;AACN,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,SAAS,OAAO;AAClC;AACA;AACA,MAAM;AACN,6CAA6C,iBAAiB;AAC9D;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,SAAS,OAAO;AAClC;;AAEA;AACA;;AAEA,6CAA6C,iBAAiB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,2DAA2D;AAC3D,mCAAmC;AACnC;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,iBAAiB;AAC1C;AACA,wEAAwE;AACxE,wBAAwB;AACxB;AACA,4BAA4B,kBAAkB;AAC9C;AACA,gFAAgF;AAChF,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qFAAqF;AACrF;AACA;AACA,0CAA0C;AAC1C;AACA,gCAAgC,YAAY,6DAAc;AAC1D,6BAA6B,mBAAmB;AAChD,gCAAgC,kBAAkB;AAClD;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,UAAU;AACV,gCAAgC;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;;AAEA;AACA,GAAG;AACH;;AAEA,uBAAuB,qCAAqC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,MAAM;AACN,sDAAsD;AACtD;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA,mCAAmC;AACnC,mCAAmC;AACnC;AACA,sBAAsB,4BAA4B;AAClD,UAAU;AACV;AACA,+BAA+B,mBAAmB;AAClD;AACA,+BAA+B;AAC/B,2CAA2C,kBAAkB;AAC7D,qDAAqD;AACrD,uFAAuF,mCAAmC;AAC1H;AACA;AACA,8CAA8C,8CAA8C;AAC5F;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,iDAAiD;AACjD;AACA;AACA;AACA,UAAU;AACV;AACA,cAAc;AACd,SAAS;AACT;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,6CAA6C,gCAAgC;AAC7E,sBAAsB,kBAAkB;AACxC,UAAU;AACV,YAAY;AACZ,kCAAkC,kBAAkB,oBAAoB;AACxE,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH,kBAAkB,0BAA0B;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,0BAA0B;AAC5C;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA,MAAM;;AAEN;AACA,6BAA6B;AAC7B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C,0BAA0B;;AAEtE;AACA;AACA,kDAAkD,0BAA0B;;AAE5E;AACA;AACA,8CAA8C,0BAA0B;;AAExE;AACA;AACA;AACA,kBAAkB;AAClB,iEAAiE,UAAU;AAC3E;AACA,gCAAgC;AAChC;AACA;AACA,IAAI;AACJ,uDAAuD;AACvD;AACA,qEAAqE,0BAA0B;AAC/F;AACA,kCAAkC;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,wBAAwB;AACxB;AACA;AACA,qCAAqC,oEAAqB;AAC1D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2BAA2B,OAAO;AAClC;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,oBAAoB;AAC/C;AACA;AACA;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,QAAQ;AACR,+CAA+C;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA,gBAAgB,wDAAS;;AAEzB;AACA;AACA,qCAAqC;AACrC,uCAAuC;AACvC,uBAAuB;AACvB,qDAAqD;;AAErD,mBAAmB,qDAAM;AACzB;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,gDAAgD,wBAAwB;AACxE,OAAO;;AAEP;AACA,qDAAqD,+EAA+E;AACpI,gDAAgD,yBAAyB;AACzE,qDAAqD;AACrD,OAAO;;AAEP;AACA;AACA,6CAA6C;AAC7C,OAAO;;AAEP;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,gEAAgE;AAChE;;AAEA;AACA;AACA,gEAAgE;;AAEhE;AACA;AACA,8CAA8C,cAAc,0CAA0C;;AAEtG;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,kBAAkB;AACpE;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,eAAe;AACf;AACA;AACA;AACA,kBAAkB,gBAAgB,aAAa,OAAO;AACtD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA,gCAAgC,wCAAwC;AACxE,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,8CAA8C,iBAAiB;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;;AAEA;AACA;AACA,kBAAkB,OAAO,OAAO;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,+DAAiB;AACxC;AACA;AACA,SAAS,kEAAoB;AAC7B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;;AAE7D,aAAa,qDAAM;AACnB;;AAEA;AACA;AACA;AACA;AACA,8BAA8B,aAAa;AAC3C;AACA;AACA,2BAA2B;AAC3B,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA,gDAAgD;AAChD,OAAO;;AAEP;;AAEA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA,GAAG;AACH;;AAE6xB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtnEjtB;;AAE5E;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;;AAEA,sCAAsC;AACtC,+BAA+B;AAC/B,gCAAgC;;AAEhC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yCAAyC;AACzC;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,gBAAgB,WAAW;AACnD,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,wBAAwB;AAC1C;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,wBAAwB;AAC1C;AACA,uBAAuB;AACvB;AACA,wCAAwC;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wBAAwB;AACpD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;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;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA;AACA,gDAAgD,yBAAyB;AACzE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB,wBAAwB;AAC7D,MAAM,2BAA2B;AACjC;;AAEA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA;AACA,4FAA4F,QAAQ;AACpG;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,qBAAqB;AACrB,0BAA0B,aAAa;AACvC,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,0BAA0B,aAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B;AAC1B;AACA;;AAEA;AACA;;AAEA;AACA;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;;AAEA,2BAA2B,UAAU,oBAAoB,eAAe;;AAExE;AACA,8CAA8C;;AAE9C;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0BAA0B;;AAE1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+CAA+C;;AAE/C;AACA;AACA;AACA;AACA,6CAA6C;;AAE7C;AACA;AACA;AACA,iDAAiD;;AAEjD;AACA;AACA;AACA;AACA,+CAA+C;;AAE/C;AACA;AACA;AACA;AACA,iDAAiD;;AAEjD;AACA;AACA;AACA;AACA;AACA,6CAA6C;;AAE7C;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,eAAe;AACf;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAoC;;AAEpC;AACA;AACA,4CAA4C;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,qBAAqB,2DAAY,IAAI;AACrC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC;AACtC;AACA;;AAEA;AACA,gFAAgF;;AAEhF;AACA,4DAA4D,0DAAW;AACvE,gBAAgB,oDAAK;AACrB;AACA,MAAM;AACN,8DAA8D,0DAAW;AACzE,gBAAgB,oDAAK;AACrB;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,gBAAgB;AAChB,2BAA2B;AAC3B,0BAA0B;AAC1B;AACA;;AAEA;AACA;AACA,QAAQ;AACR,+CAA+C,6DAAc;AAC7D;;AAEA;AACA,CAAC;;AAED;;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,QAAQ;;AAER;AACA;AACA,QAAQ;AACR;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gFAAgF;AAChF;AACA;;AAEA;AACA,gBAAgB;AAChB;AACA,2BAA2B;AAC3B,0BAA0B;AAC1B;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA,iCAAiC,6DAAc;AAC/C;;AAEA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,QAAQ;AACR,oFAAoF;AACpF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,eAAe,6DAAc;AAC7B,yCAAyC,YAAY;AACrD,MAAM;AACN;AACA,eAAe,4DAAa;AAC5B;AACA,MAAM;AACN;AACA;AACA,cAAc,6DAAc;AAC5B,6CAA6C,cAAc;AAC3D,MAAM;AACN;AACA,cAAc,4DAAa;AAC3B;AACA,MAAM;AACN;AACA;;AAEA;AACA,6CAA6C,oDAAK;AAClD;AACA;;AAEA,sDAAsD,+BAA+B;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB,uCAAuC,6BAA6B;AACpE;;AAEA,2BAA2B,QAAQ;;AAEnC;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,2BAA2B,4BAA4B;AACvD,MAAM;AACN,6CAA6C;AAC7C;AACA;;AAEA,oBAAoB,+BAA+B;AACnD;AACA;AACA;AACA;AACA,gBAAgB,6DAAc;AAC9B,oCAAoC,QAAQ;AAC5C;AACA;AACA;AACA,UAAU;AACV;AACA,cAAc,4DAAa;AAC3B;;AAEA;AACA,qEAAqE,oDAAK;AAC1E;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,oDAAK,CAAC,4DAAa;AAC7D;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,eAAe;AACf;AACA;AACA,MAAM;;AAEN;AACA,MAAM;;AAEN;AACA,6CAA6C,oDAAK,CAAC,4DAAa;AAChE;;AAEA,iCAAiC,+BAA+B;AAChE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,8CAA8C,UAAU;AACxD;AACA,oCAAoC;AACpC;AACA;AACA,yBAAyB;AACzB;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,+BAA+B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6CAA6C,6DAAc,UAAU,6DAAc;AACnF,kEAAkE,OAAO;AACzE,aAAa,4DAAa;AAC1B;AACA,YAAY,4DAAa;AACzB;AACA,iDAAiD,oDAAK;AACtD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,qDAAqD;AACrD,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,uDAAuD,0DAAW;AAClE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E;;AAE1E;AACA,MAAM,6BAA6B,QAAQ;AAC3C;AACA,iEAAiE;AACjE,uBAAuB;AACvB;AACA;AACA,MAAM,+BAA+B,UAAU;AAC/C;AACA,uEAAuE;AACvE,iDAAiD;AACjD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,kBAAkB,qBAAqB,OAAO;AAC9C,qBAAqB,sDAAsD;AAC3E,6BAA6B,QAAQ;AACrC;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,yBAAyB;AAC3C;AACA,8BAA8B;AAC9B,0BAA0B;AAC1B;AACA;AACA,SAAS,iEAAkB;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,oDAAK;AACzB,2EAA2E;AAC3E;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,4DAA4D;AAC5D;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,oDAAK;AACzB;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,4DAA4D;AAC5D;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;;AAEA,sBAAsB,kBAAkB;AACxC;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;;AAEA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,GAAG;;AAEH,iCAAiC,wBAAwB;AACzD,+BAA+B,wBAAwB;AACvD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,wBAAwB,uDAAQ;AAChC;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,sCAAsC;AACtC,MAAM;AACN;AACA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA,wBAAwB,oBAAoB;AAC5C;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,UAAU;AACV,wBAAwB,6DAA6D;AACrF;AACA;AACA;AACA,GAAG;AACH,iCAAiC,gEAAgE;AACjG;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA,8CAA8C,0DAAW;AACzD,MAAM;AACN;AACA,sBAAsB,wBAAwB,OAAO;AACrD,UAAU;AACV;AACA;AACA;AACA;AACA,gCAAgC,6DAAc;AAC9C,+BAA+B,oDAAK;AACpC;AACA,sCAAsC,UAAU,SAAS;AACzD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0DAAW;;AAE7C,mCAAmC;;AAEnC;AACA;AACA,0CAA0C;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0DAAW;;AAE7C;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC,oDAAK,CAAC,4DAAa;AACvD;;AAEA;AACA;AACA;AACA,gCAAgC,0DAAW;AAC3C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,YAAY;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA,gBAAgB,6DAAc;AAC9B,8BAA8B,SAAS;AACvC,MAAM,cAAc,4DAAa;AACjC;;AAEA,6BAA6B,SAAS;;AAEtC,+CAA+C;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA,4DAA4D;AAC5D;AACA,iBAAiB;AACjB;AACA,kBAAkB,oDAAK;AACvB;AACA,MAAM;AACN;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,WAAW;AAChC,mDAAmD,iBAAiB;AACpE;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,2CAA2C,oBAAoB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F,4DAAa;AACzG;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD,sBAAsB,oDAAK;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oDAAK;AAC7B;AACA,IAAI;AACJ,wBAAwB,oDAAK;AAC7B;AACA;;AAEA,OAAO,+FAA+F;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uCAAuC;AACvC,cAAc,gBAAgB,iBAAiB,OAAO;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,yBAAyB,SAAS;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB,0DAA0D,4DAAa;AACvE;;AAEA;AACA;AACA;AACA,MAAM;;AAEN;AACA,oCAAoC,oBAAoB;AACxD;AACA,wBAAwB,6DAA6D;AACrF;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,oDAAK;AACpC,wBAAwB,0DAAW;AACnC,UAAU,oDAAK;AACf;AACA;;AAEA;AACA,wEAAwE;AACxE;AACA;AACA,gHAAgH;;AAEhH;AACA;AACA;AACA,wDAAwD;AACxD;AACA;;AAEA;AACA,sDAAsD,QAAQ;AAC9D;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA,gBAAgB;;AAEhB,qCAAqC;AACrC,8BAA8B;AAC9B;AACA,gCAAgC,gBAAgB;AAChD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uDAAuD,4DAAa;AACpE,sBAAsB,qCAAqC;AAC3D;;AAEA;AACA;AACA,kCAAkC,6DAAc;AAChD,wBAAwB;AACxB;;AAEA;;AAEA;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA,oBAAoB;AACpB;AACA;AACA;;AAEA;AACA,kBAAkB,WAAW,OAAO;AACpC;AACA;;AAEA;AACA,wBAAwB;AACxB;AACA;AACA,MAAM;AACN;AACA;AACA,wBAAwB,yEAAyE,6DAAc;AAC/G;AACA;AACA;;AAEA;AACA;AACA,wEAAwE;AACxE;AACA;AACA;;AAEA;AACA,sBAAsB,yBAAyB;AAC/C,MAAM,kDAAkD;AACxD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA,MAAM;;AAEN;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,OAAO;AACxD;AACA,2CAA2C;AAC3C,wCAAwC;AACxC,uCAAuC;AACvC;AACA;AACA;AACA;;AAEA;AACA,4CAA4C;AAC5C;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;;AAEN,gCAAgC,QAAQ;AACxC;AACA;AACA,mBAAmB;AACnB,sBAAsB,2BAA2B;AACjD;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C;AACA;AACA,UAAU;AACV,gCAAgC,oDAAK;AACrC;AACA;AACA;;AAEA;AACA,0CAA0C,UAAU;AACpD;AACA,0CAA0C;AAC1C;AACA,qBAAqB;AACrB,gCAAgC;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,6DAAc;AAChF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yCAAyC,oDAAK,CAAC,4DAAa;AAC5D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oBAAoB;AACtC;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,kBAAkB,oCAAoC;AACtD;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAE8O;;;;;;;;;;;;;;;;;;;;;;;;AC9pDpJ;AACN;AAClC;;AAElD;;AAEA;AACA;AACA;AACA,sCAAsC,GAAG;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB;AACvB;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT,kDAAkD;AAClD;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,MAAM;AACN;AACA,6CAA6C;AAC7C;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oEAAoE,iBAAiB;AACrF,0BAA0B;AAC1B;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,KAAK,wBAAwB,6BAA6B;AAChF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA,2CAA2C;AAC3C,mBAAmB;AACnB,gCAAgC;AAChC;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA,qBAAqB;AACrB,qBAAqB;AACrB;AACA,gBAAgB;AAChB;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA,SAAS,KAAK;AACd,gBAAgB,mDAAmD;AACnE,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA,uCAAuC;AACvC,kCAAkC;AAClC;AACA;;AAEA;AACA,uCAAuC,oBAAoB;AAC3D;AACA;AACA,uBAAuB,yBAAyB;AAChD,gCAAgC;;AAEhC;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oDAAoD,OAAO;AAC3D;AACA,+BAA+B;AAC/B,oCAAoC;AACpC,WAAW;;AAEX,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,0EAA0E;AACnI;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,0CAA0C;AAC1C,0DAA0D,QAAQ;AAClE;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA,mCAAmC;AACnC;AACA,QAAQ,QAAQ;AAChB;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,2BAA2B;AAC3B;AACA,iBAAiB;AACjB;AACA;AACA,8DAA8D;AAC9D,uEAAuE;AACvE,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yIAAyI;AACzI;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA,sCAAsC;AACtC;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA,mBAAmB;AACnB,MAAM;AACN;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,gBAAgB;AAChB;AACA;AACA;AACA,sBAAsB,WAAW;AACjC,QAAQ,mBAAmB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,qBAAqB;;AAErB;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,MAAM;AACN;AACA,iCAAiC,MAAM;AACvC,+DAA+D,QAAQ;AACvE,2BAA2B;AAC3B,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,uEAAuE;AACvE;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA,UAAU;AACV;;AAEA;AACA,0BAA0B;AAC1B;AACA,UAAU;AACV;;AAEA;AACA;AACA,4BAA4B;AAC5B,4BAA4B;AAC5B;AACA;AACA,IAAI;AACJ,8BAA8B;AAC9B,wCAAwC;AACxC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,sBAAsB;AACtB,kCAAkC,mBAAmB;AACrD;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA,iCAAiC;AACjC,sCAAsC;AACtC,aAAa;AACb,sBAAsB,kBAAkB;AACxC;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,GAAG;AACH;;AAEA;AACA;AACA,kDAAkD;AAClD,uBAAuB;AACvB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,QAAQ,oBAAoB,WAAW,oBAAoB,cAAc,oBAAoB,eAAe,oBAAoB,aAAa,oBAAoB,aAAa,oBAAoB,gBAAgB,oBAAoB,YAAY,oBAAoB,oBAAoB;;AAErT;AACA;AACA,+DAA+D;AAC/D,2DAA2D;AAC3D,2DAA2D;AAC3D,oEAAoE;;AAEpE;AACA;AACA;AACA;AACA,uDAAuD;;AAEvD;AACA;AACA;AACA,uDAAuD;;AAEvD;AACA;AACA;AACA,kBAAkB,0BAA0B,OAAO;AACnD;AACA;;AAEA;AACA;AACA,8CAA8C;;AAE9C;AACA;AACA,qCAAqC;AACrC,kBAAkB,0BAA0B;AAC5C,MAAM;AACN;;AAEA;AACA,yCAAyC,0BAA0B;AACnE;AACA,wBAAwB;AACxB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,oDAAoD;AACpD;AACA;AACA,qFAAqF;AACrF;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR,oDAAoD;AACpD;AACA;AACA,uFAAuF;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ,uBAAuB,wBAAwB;AAC/C,gCAAgC,eAAe;AAC/C,oDAAoD;AACpD;AACA,4DAA4D,0BAA0B;AACtF,kCAAkC,cAAc;AAChD,uDAAuD;AACvD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC,KAAK;AACzC;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,KAAK,oBAAoB,mBAAmB;AACnE;;AAEA;AACA,uBAAuB,MAAM;AAC7B;AACA,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B,0BAA0B;AACxD;AACA;AACA,uDAAuD;AACvD;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA,yBAAyB;AACzB;AACA,0BAA0B,QAAQ;AAClC;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA,8DAA8D,uBAAuB;AACrF;AACA;AACA;AACA,gBAAgB;AAChB;AACA,4BAA4B,0GAA0G;AACtI;AACA;AACA;AACA,YAAY;AACZ;AACA,iEAAiE;AACjE;AACA,wEAAwE;AACxE,YAAY;AACZ,IAAI;AACJ;AACA,YAAY;AACZ;AACA,6DAA6D;AAC7D;AACA,4DAA4D;AAC5D,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,MAAM,QAAQ;;AAEd;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;;AAEV;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,4BAA4B,4BAA4B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA,kEAAkE;AAClE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0BAA0B;AACxD;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,MAAM;AACtD;AACA;AACA,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;;AAEA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA,yBAAyB,qBAAqB,qBAAqB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B,0BAA0B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E;AAC9E,eAAe;AACf;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B,MAAM;AACrC;AACA,8BAA8B;AAC9B;AACA;;AAEA,+CAA+C;;AAE/C,uDAAuD;;AAEvD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,mBAAmB;AACnB,yBAAyB;AACzB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+BAA+B,WAAW;;AAE1C;AACA;AACA;;AAEA,+DAA+D,QAAQ;;AAEvE;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,mDAAmD;;AAEnD;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+BAA+B,QAAQ;;AAEvC,gDAAgD;;AAEhD;AACA,+BAA+B;AAC/B;AACA;;AAEA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ,OAAO,uEAAwB;AACvC;AACA;;AAEA;AACA,0EAA0E;AAC1E,YAAY;AACZ;;AAEA,qEAAqE;;AAErE;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,uCAAuC;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB,oBAAoB;AACpB,oBAAoB,kBAAkB,OAAO;AAC7C;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;;AAEA;AACA;AACA;;AAEA,+BAA+B,QAAQ,oBAAoB,WAAW,oBAAoB,YAAY;;AAEtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,4BAA4B;AAC5B,KAAK;;AAEL;AACA;AACA,kBAAkB;AAClB,oCAAoC;AACpC,MAAM;AACN,WAAW,uEAAwB;AACnC;AACA,+DAA+D;AAC/D,kDAAkD;AAClD,sCAAsC;AACtC;;AAEA;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;;AAEA;AACA;;AAEA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA,gBAAgB;AAChB,8CAA8C;AAC9C,gDAAgD;AAChD,WAAW,gCAAgC,2BAA2B,6DAAc;AACpF;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gDAAgD;;AAEhD,kDAAkD;;AAElD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU,kDAAkD,wDAAS;AACrE;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA,uFAAuF,yEAAyE;AAChK;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,iCAAiC;AACjC;;AAEA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,wBAAwB;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,4DAAa,wDAAwD;AAC/G;AACA;AACA,gEAAgE;;AAEhE;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,MAAM;AACN,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B;;AAE9B;AACA;AACA,YAAY;AACZ,mDAAmD;AACnD,wCAAwC;AACxC,oCAAoC;AACpC,gCAAgC;AAChC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;;AAEA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6DAA6D;AAC7D;;AAEA;AACA;AACA;AACA,6DAA6D;AAC7D;;AAEA,mDAAmD;;AAEnD;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+BAA+B,WAAW;;AAE1C;AACA;AACA,yDAAyD;AACzD,YAAY;AACZ;;AAEA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B,GAAG,oBAAoB,sBAAsB;AAC5E;AACA;;AAEA;AACA,YAAY;AACZ;;AAEA;AACA,+BAA+B;AAC/B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;;AAEA,mDAAmD;;AAEnD;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+BAA+B,WAAW,oBAAoB,oBAAoB;;AAElF,qEAAqE,QAAQ;AAC7E,iFAAiF;AACjF,mDAAmD;AACnD,2DAA2D;;AAE3D;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA,oBAAoB;AACpB;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,eAAe;AAC/B,kDAAkD;AAClD;;AAEA;AACA,kBAAkB;AAClB;AACA;;AAEA;;AAEA;AACA,+BAA+B;;AAE/B;;AAEA,kBAAkB,sBAAsB;AACxC;AACA,kBAAkB;AAClB;AACA,QAAQ;;AAER;AACA;AACA,yBAAyB;AACzB;AACA,UAAU;AACV,6BAA6B;AAC7B,kCAAkC,uCAAuC;AACzE,qCAAqC;AACrC;AACA;;AAEA;AACA;;AAEA;AACA;AACA,yDAAyD;;AAEzD;AACA,kBAAkB,wBAAwB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN,QAAQ;AACR;AACA,MAAM;AACN,QAAQ;AACR;AACA;AACA;AACA,oBAAoB,qBAAqB,OAAO;AAChD,QAAQ;AACR,sBAAsB,sBAAsB,SAAS;AACrD,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA,2FAA2F;AAC3F;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B;AAC9B,kBAAkB,cAAc,OAAO,gCAAgC;AACvE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB;AACtB,sBAAsB,SAAS,OAAO;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,wDAAwD;AACrF,4DAA4D,WAAW;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,4EAA4E,OAAO;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA,mBAAmB;AACnB;AACA;AACA,kBAAkB,yBAAyB,8BAA8B;AACzE,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2BAA2B,8BAA8B;AACzD;AACA;AACA;AACA,mDAAmD;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C;;AAE9C;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACA;AACA;;AAEA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,sCAAsC;AACtC;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA,6BAA6B;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,0BAA0B,sBAAsB,SAAS;AACzD,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;;AAEA,sBAAsB,qBAAqB,SAAS,gCAAgC;AACpF;AACA,QAAQ;;AAER;AACA;AACA;AACA,yEAAyE;AACzE,wBAAwB,qBAAqB,SAAS,8BAA8B;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6EAA6E,mBAAmB;AAChG;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT,8BAA8B;AAC9B;AACA;AACA,UAAU;AACV;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B,iCAAiC;AAC5D;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA,MAAM;AACN,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,+CAA+C;AAC/C,kDAAkD,yEAA0B;AAC5E;AACA;AACA,sBAAsB,4DAAa;AACnC;AACA,IAAI;AACJ;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oCAAoC;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,0DAA0D,4DAAa;AACvE;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA,+BAA+B;AAC/B,6BAA6B;AAC7B;AACA;AACA;AACA,MAAM;AACN;AACA,6CAA6C;AAC7C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA,iBAAiB;AACjB,uBAAuB;AACvB;AACA;;AAEA;AACA;AACA,4CAA4C,2BAA2B;AACvE;AACA;;AAEA;AACA;AACA,8BAA8B,0BAA0B;AACxD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,OAAO;AACP;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,4DAAa;AAClC;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA,gEAAgE,iCAAiC;AACjG,OAAO,oEAAqB;AAC5B;;AAEA;AACA,8DAA8D;AAC9D;AACA;;AAEA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iEAAkB;AACrC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,4DAAa;AAClC;AACA;AACA,MAAM;AACN;AACA,mCAAmC,4DAAa,KAAK;AACrD;AACA,MAAM;AACN;AACA,kCAAkC;AAClC;AACA,yFAAyF;AACzF,UAAU,yEAA0B;AACpC,+BAA+B,4DAAa;AAC5C,QAAQ;AACR;AACA;AACA;AACA,+BAA+B,4DAAa;AAC5C,QAAQ;AACR;AACA;AACA;AACA,IAAI,wBAAwB,4DAAa;AACzC,2BAA2B,4DAAa;AACxC,IAAI;AACJ;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,8GAA8G;AAC9G,SAAS;AACT;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU,OAAO;AACjB;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,SAAS;AACT;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,4DAAa,4CAA4C;AAC9E,8CAA8C;AAC9C;AACA;;AAEA;AACA;AACA,iCAAiC,4DAAa;AAC9C,QAAQ;AACR;AACA;AACA;AACA,gCAAgC,2DAAY,GAAG,6DAAc,cAAc,iEAAkB;AAC7F;AACA;AACA;AACA;;AAEA;AACA,wCAAwC,4DAAa,KAAK;AAC1D;AACA;AACA;AACA;AACA,oCAAoC;AACpC,gBAAgB;AAChB,+DAA+D;AAC/D;AACA;AACA;AACA,mBAAmB;AACnB,WAAW;AACX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4CAA4C;AACzE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB,uBAAuB;AACvB,sBAAsB;AACtB,wBAAwB;AACxB;AACA;;AAEA;AACA;AACA,gEAAgE;AAChE;AACA,IAAI,oEAAoE;AACxE;AACA,IAAI,qCAAqC;AACzC;AACA,IAAI,uBAAuB;AAC3B;AACA,IAAI,uBAAuB;AAC3B;AACA,IAAI,uBAAuB;AAC3B;AACA,IAAI,uBAAuB;AAC3B;AACA,IAAI;AACJ,uEAAuE;AACvE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,0CAA0C;AACvD;AACA,QAAQ,WAAW,mDAAmD;AACtE;AACA;AACA;AACA;AACA,6BAA6B,kBAAkB;AAC/C;AACA,4CAA4C,gBAAgB;AAC5D,gCAAgC;AAChC;AACA;AACA;AACA,6CAA6C,mEAAoB;AACjE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,wBAAwB;AACxB,WAAW;AACX;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,MAAM;AACN,cAAc;AACd;AACA,IAAI;AACJ,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,kCAAkC;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA,mCAAmC,4DAAa;AAChD;AACA,gBAAgB;AAChB,MAAM;AACN,8CAA8C,kDAAkD;AAChG,6DAA6D,wCAAwC;AACrG;AACA;AACA,MAAM;AACN;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,4DAAa;AACnD;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,kDAAkD;AAC3G;AACA,mBAAmB,iEAAkB;AACrC;AACA,oDAAoD,wCAAwC;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,2CAA2C;AAC/F,2CAA2C,+CAA+C;AAC1F;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,wCAAwC;AAC5F,KAAK;AACL;;AAEA;;AAEA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,iCAAiC,8BAA8B;AAC/D;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,aAAa;AACb,MAAM;AACN;AACA;AACA,0DAA0D,uCAAuC,KAAK;AACtG;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA,uEAAuE;AACvE;AACA;;AAEA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,sBAAsB,OAAO;AAC/C,oBAAoB,uBAAuB,SAAS;AACpD;AACA;AACA;AACA,+BAA+B;AAC/B,IAAI;AACJ;AACA;AACA,+BAA+B;AAC/B,IAAI;AACJ;AACA;AACA;AACA,oBAAoB,uBAAuB,SAAS;AACpD,MAAM,4DAAa,qBAAqB,QAAQ;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2DAA2D,uEAAwB;AACnF;AACA,0DAA0D,cAAc;;AAExE;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;;AAEN,qEAAqE,kBAAkB;AACvF;;AAEA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,wDAAwD,sCAAsC;AAC9F,kBAAkB,kBAAkB,oDAAK,CAAC,4DAAa,gEAAgE,0DAAW;AAClI,qEAAqE,sCAAsC;AAC3G;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,uBAAuB,uEAAwB;AAC/C;AACA;AACA;AACA,qBAAqB;AACrB,OAAO;AACP;AACA,IAAI;AACJ,wDAAwD,iBAAiB;AACzE;AACA,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA,mFAAmF,mEAAoB;AACvG;AACA;AACA;AACA;AACA;AACA,8EAA8E,QAAQ;AACtF;AACA,KAAK;AACL;AACA;AACA;AACA,IAAI,OAAO;AACX,YAAY,4DAAa;AACzB;AACA;AACA,gDAAgD;AAChD;AACA,iDAAiD;AACjD;AACA;AACA;AACA;;AAEA,kDAAkD,mBAAmB;AACrE;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,mBAAmB;AACnB;AACA;AACA,QAAQ;AACR,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,kBAAkB,SAAS,GAAG,4DAAa;AAC3C;;AAEA,+BAA+B,QAAQ;AACvC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gCAAgC,WAAW;AAC3C,MAAM,4BAA4B,4DAAa;AAC/C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,QAAQ,2CAA2C,4DAAa;AAChE;AACA;;AAEA;AACA,oBAAoB;AACpB;AACA,6DAA6D,6DAAc;AAC3E;AACA;;AAEA;AACA;AACA,wBAAwB;AACxB;AACA,MAAM;AACN,qEAAqE,6DAAc;AACnF;AACA;;AAEA;AACA;AACA,MAAM,YAAY,oDAAK;AACvB;AACA,MAAM,YAAY,oDAAK;AACvB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,MAAM,+BAA+B,uBAAuB,4CAA4C,wBAAwB;AAChI;AACA,cAAc,gBAAgB,iBAAiB,OAAO;AACtD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA,QAAQ;AACR,aAAa;AACb;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA,4CAA4C;AAC5C,cAAc,4DAAa;AAC3B,iBAAiB;AACjB;AACA,aAAa,oDAAK;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oCAAoC;AACpC,kCAAkC;AAClC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sBAAsB,OAAO;AACnD;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,0FAA0F;AAC1F,UAAU;AACV;AACA,UAAU;AACV,KAAK;AACL;AACA;AACA;AACA,yBAAyB,+DAA+D;AACxF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,MAAM,oDAAoD,0BAA0B,iBAAiB;AACrG;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,iBAAiB,OAAO;AAC9C,sCAAsC,wBAAwB;AAC9D;AACA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA2B,oDAAoD;AAC/E;;AAEA;AACA,0CAA0C;AAC1C,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6BAA6B;AAC7B;AACA;AACA,mCAAmC,sFAAsF;AACzH;AACA;AACA;AACA;;AAEA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;;AAEA;AACA,0CAA0C,4BAA4B;AACtE;AACA;AACA;AACA,qEAAqE;AACrE,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,+CAA+C;AAC/C;AACA;AACA;;AAEA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,2CAA2C;;AAE3C;AACA,oBAAoB,2BAA2B,OAAO;AACtD;AACA,QAAQ,QAAQ;AAChB;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA;AACA,qGAAqG;AACrG,6FAA6F;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,IAAI;AACJ,YAAY;AACZ,IAAI,OAAO;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,oBAAoB;AACpB;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kFAAkF,wDAAwD;AAC1I;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,iDAAiD,cAAc;;AAEtF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,wCAAwC;AACxC,QAAQ,8EAA8E,uCAAuC;AAC7H,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA,wBAAwB;AACxB,gCAAgC;AAChC,gCAAgC,kBAAkB;AAClD,MAAM;AACN;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,wCAAwC;AAC9F;AACA;AACA,KAAK;AACL,IAAI,uDAAuD,wBAAwB;AACnF;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;;AAEA;AACA;AACA,uEAAuE;;AAEvE,qDAAqD,wBAAwB;AAC7E;AACA;AACA;;AAEA;AACA,uBAAuB,4DAAa;AACpC;AACA,yDAAyD,mDAAmD;AAC5G,QAAQ;AACR;AACA;AACA;;AAEA,8BAA8B,QAAQ;;AAEtC;AACA;AACA;AACA;;AAEA;AACA,sBAAsB;AACtB;AACA;AACA,+CAA+C;AAC/C,iHAAiH;AACjH,QAAQ,SAAS;AACjB;;AAEA,+BAA+B,OAAO;AACtC;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB;AACvB;AACA,6BAA6B;AAC7B;AACA;;AAEA;AACA,sBAAsB;AACtB;AACA,6BAA6B,yEAA0B;AACvD,8BAA8B,4DAAa;AAC3C;AACA;AACA;AACA;;AAEA;AACA,sBAAsB;AACtB;AACA,qBAAqB,4DAAa,IAAI;;AAEtC;AACA,+BAA+B,OAAO;AACtC;AACA,QAAQ,yEAA0B;AAClC;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA,0BAA0B,mEAAoB;AAC9C;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA,gDAAgD,6BAA6B;AAC7E;AACA;;AAEA;AACA;AACA,sDAAsD,6BAA6B;AACnF;;AAEA;AACA;AACA,sDAAsD,6BAA6B;AACnF;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,mEAAoB;AAChD;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,OAAO;AACtC;AACA;AACA;AACA,QAAQ,sBAAsB,mEAAoB;AAClD,aAAa,yEAA0B;AACvC,QAAQ,sBAAsB,mEAAoB;AAClD;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD,qDAAqD;AACrD;AACA,oBAAoB;;AAEpB;AACA,cAAc;;AAEd;AACA,0BAA0B;AAC1B;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2BAA2B,4DAAa;AACxC,MAAM,kBAAkB;AACxB;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;AACA,QAAQ;AACR,+CAA+C;AAC/C,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,wCAAwC;AACxC;AACA;AACA,mCAAmC,yBAAyB,qCAAqC;AACjG;AACA;;AAEA;AACA;;AAEA;AACA,MAAM;;AAEN;AACA,8CAA8C;;AAE9C;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,4DAAa;AACpF;AACA;AACA,+BAA+B,6DAAc;AAC7C;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA;;AAEA,yCAAyC;;AAEzC;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,yCAAyC;AACtI;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,0CAA0C;AAC3G;AACA,yBAAyB;AACzB;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iDAAiD,8BAA8B;AACnG;;AAEA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA,gDAAgD;AAChD,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,yCAAyC,gBAAgB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B;AACA;AACA,oBAAoB;AACpB,2CAA2C,gBAAgB;AAC3D;AACA;AACA;AACA,6BAA6B;AAC7B,qBAAqB;AACrB,WAAW;AACX,GAAG;AACH;;AAEA;AACA;AACA,kDAAkD,2BAA2B,0DAAW,IAAI,KAAK;AACjG,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA,yFAAyF;AACzF,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB;AACnB,yBAAyB;;AAEzB;AACA;AACA,+DAA+D,4DAAa,0BAA0B;AACtG,6CAA6C,mEAAoB;AACjE,IAAI;AACJ;AACA;AACA,QAAQ,yCAAyC,mEAAoB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;AACA,sCAAsC;AACtC,GAAG;AACH;;AAEA,mEAAmE;;AAEnE;AACA;AACA;;AAEA,yBAAyB;;AAEzB;AACA,mBAAmB;AACnB;AACA,iBAAiB;AACjB;AACA;AACA,oDAAoD,mBAAmB;AACvE,IAAI;AACJ;AACA;AACA;AACA;AACA,iDAAiD,2BAA2B,0DAAW,UAAU;AACjG;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA,0BAA0B,gEAAS;AACnC,2BAA2B;;AAE3B;AACA,cAAc;;AAEd;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN,iCAAiC;;AAEjC;AACA,gBAAgB,yEAA0B;AAC1C;AACA,wBAAwB,4DAAa;AACrC,IAAI;AACJ;AACA,iGAAiG,qBAAqB;AACtH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wCAAwC;AAChD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,SAAS;AAC5D;AACA;AACA;AACA,wDAAwD,2CAA2C,KAAK;AACxG;AACA;AACA;AACA,wCAAwC;AACxC,KAAK;AACL;AACA;;AAEA;AACA,iCAAiC;;AAEjC;AACA,gBAAgB;AAChB,qBAAqB,qBAAqB;AAC1C,uBAAuB,mBAAmB;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAiD;;AAEjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,wDAAwD;;AAExD;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB;AACA,0CAA0C;AAC1C;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;;AAEA,6BAA6B,QAAQ,oBAAoB,WAAW;;AAEpE;AACA;AACA;;AAEA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8CAA8C;;AAE9C,gDAAgD;;AAEhD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;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;AACA;;AAEA;AACA,kBAAkB,uBAAuB;AACzC;AACA;AACA,QAAQ;AACR;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;;AAEA;AACA;AACA,kBAAkB,uBAAuB;AACzC;AACA,qDAAqD;AACrD,iCAAiC;AACjC;;AAEA;AACA,MAAM;AACN;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,uBAAuB;AACvB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,2EAA2E;;AAE3E,qBAAqB;AACrB,iFAAiF;AACjF;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,GAAG;;AAEH;AACA,kBAAkB,kBAAkB,OAAO,2CAA2C;;AAEtF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;;AAEA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA,qCAAqC,wBAAwB,OAAO;AACpE;AACA;AACA,SAAS;AACT;AACA;AACA,kBAAkB;AAClB,qCAAqC;AACrC;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,sBAAsB,qCAAqC,0BAA0B,SAAS;AAC9F,sBAAsB,oBAAoB,SAAS;AACnD,iCAAiC;AACjC;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;;AAEA;AACA,uBAAuB;AACvB,qBAAqB;;AAErB;AACA,kBAAkB,0BAA0B,UAAU;AACtD,sCAAsC;AACtC;AACA;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB;AACvB;AACA;AACA,uDAAuD;AACvD,kBAAkB,uBAAuB;AACzC,MAAM,yCAAyC;AAC/C,oBAAoB,4BAA4B;AAChD,MAAM;AACN;AACA,+DAA+D;AAC/D;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uBAAuB;AACvB,+DAA+D;AAC/D;AACA,kBAAkB,uBAAuB;AACzC;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;;AAEA;AACA,sBAAsB;AACtB;AACA,kBAAkB,yBAAyB;AAC3C;AACA,2BAA2B;AAC3B,6CAA6C;AAC7C,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA,qDAAqD;AACrD,kBAAkB,yBAAyB;AAC3C,MAAM,6CAA6C;AACnD;AACA;;AAEA;AACA;AACA,kBAAkB,yBAAyB;AAC3C;AACA,0BAA0B;AAC1B;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,sBAAsB,mBAAmB,OAAO;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA,qDAAqD;AACrD;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,kBAAkB,yBAAyB,OAAO;;AAElD;AACA;AACA;AACA,oBAAoB,uBAAuB,YAAY,+BAA+B;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uBAAuB,YAAY;AACzD;AACA;AACA;AACA,6BAA6B,6BAA6B;AAC1D;AACA,4DAA4D;AAC5D;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kCAAkC;AAClC;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA,oBAAoB;AACpB,mCAAmC;AACnC;AACA,sBAAsB,2BAA2B;AACjD,QAAQ;AACR;AACA,kBAAkB,qBAAqB,UAAU;AACjD,MAAM;;AAEN;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,kBAAkB;AACpC,MAAM,wBAAwB;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,GAAG;AACH;AACA,kBAAkB,mBAAmB,OAAO;AAC5C,4BAA4B;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wBAAwB;AAC1C;AACA,gCAAgC,oBAAoB,oBAAoB;AACxE;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0DAA0D;AAC1D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,GAAG;AACH;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,4BAA4B;AAC5B,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,6BAA6B,SAAS,oBAAoB,SAAS,oBAAoB,gBAAgB;;AAEvG;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA,kCAAkC;AAClC;AACA,8BAA8B;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,0DAA0D;AAC1D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,gEAAgE,mBAAmB;AACnF,QAAQ;AACR,wCAAwC,4DAAa;AACrD,QAAQ;AACR;AACA,QAAQ;AACR,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA,0CAA0C,oBAAoB;AAC9D;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,+BAA+B;AACnD;AACA,8BAA8B;AAC9B;AACA,sBAAsB,iCAAiC;AACvD;AACA,gCAAgC;AAChC;AACA,IAAI;AACJ,sBAAsB,+BAA+B;AACrD;AACA,+BAA+B;AAC/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD,kBAAkB,+BAA+B;AACjD;AACA,8DAA8D;AAC9D;AACA;AACA,iBAAiB,kBAAkB,sBAAsB;AACzD;AACA,8DAA8D;AAC9D;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uCAAuC,QAAQ;AACvE;AACA,kCAAkC,2DAA2D;AAC7F;AACA;AACA;AACA;AACA;;AAEA,QAAQ,0BAA0B,MAAM;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;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,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC;AACtC,iBAAiB;AACjB;AACA,UAAU;AACV;AACA,qDAAqD;AACrD;AACA;AACA,UAAU;AACV;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mEAAmE,kCAAkC;AAC/H,IAAI;AACJ;AACA;AACA;;AAEA;AACA,uDAAuD,qCAAqC;AAC5F;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B;AAC5B,QAAQ;AACR,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA,MAAM;AACN;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,yDAAyD;AAChG;AACA;AACA;AACA;AACA,oCAAoC,yDAAyD;AAC7F;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;;AAEmL;;;;;;;;;;;;;;;;AC14KnL;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB;AACpB;AACA;;AAEA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mCAAmC,gCAAgC;AACnE;AACA;;AAEA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAA6B,UAAU,oBAAoB,UAAU;;AAErE;AACA;AACA;;AAEA;AACA,0CAA0C;AAC1C;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uBAAuB,QAAQ;AAC/B,QAAQ,8CAA8C;AACtD;;AAEA;AACA,2BAA2B,SAAS;AACpC,QAAQ,8CAA8C;AACtD;;AAEA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA,QAAQ;AACR;;AAEA,gDAAgD;;AAEhD,+CAA+C;;AAE/C;;AAEA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;;AAEA;AACA,0CAA0C;AAC1C;AACA,yBAAyB;AACzB,2BAA2B;AAC3B;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;;;AChNQ;AACqC;AAClE,8BAA8B,6CAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kFAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC/B0C;AACnC,8BAA8B,mDAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACpB2C;AACN;AACgB;AAC9C;AACP;AACA;AACA;AACA;AACA,CAAC,4CAA4C;AACtC;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kDAAE;AACzB;AACA,uBAAuB,kEAAU;AACjC;AACA,uBAAuB,wDAAK;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACvEuD;AACJ;AACmB;AAC1B;AACV;AAC3B;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B,qBAAqB,gEAAY;AACjC;AACA;AACA;AACA;AACA,qCAAqC,iFAA4C;AACjF;AACA;AACA;AACA,YAAY,iFAA4C;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iFAA4C;AAC5D;AACA;AACA;AACA,gBAAgB,oEAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA,KAAK,0DAAiB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yDAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,mDAAc;AACpC;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACzGkC;AACuB;AAClD;AACP;AACA,mBAAmB;AACnB;AACA,YAAY,iFAA4C;AACxD;AACA;AACA;AACA,YAAY,sEAAe;AAC3B;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;ACd0C;AACnC,8BAA8B,mDAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACXoC;AACM;AACI;AACc;AACa;AACb;AACrD,4BAA4B,6CAAO;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,sBAAsB,kFAAuB;AAC7C;AACA;AACA,2BAA2B,6DAAkB;AAC7C;AACA;AACA;AACA,+BAA+B,qEAAmB;AAClD;AACA;AACA,4CAA4C,qEAAmB;AAC/D;AACA;AACA,4BAA4B,+BAA+B;AAC3D;AACA;AACA;AACA;AACA,4BAA4B,+BAA+B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,mDAAK;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;;;;;;;;;;;;;;;;ACtGO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;ACT0C;AACA;AACI;AAC2B;AACb;AACyB;AAC9E,gCAAgC,mDAAU;AACjD;AACA;AACA;AACA;AACA;AACO,sBAAsB,mDAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,uEAAkB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kFAAuB;AAC7C;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA,4BAA4B,SAAS;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kFAAuB;AAC7C;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kFAAuB;AAC7C;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kFAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kFAAuB;AAC7C;AACA;AACA;AACA,mBAAmB,6DAAkB;AACrC;AACA;AACA;AACA,mBAAmB,6DAAkB;AACrC;AACA;AACA;AACA,uBAAuB,qEAAmB;AAC1C;AACA;AACA;AACA,+BAA+B,mDAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA,mBAAmB,6DAAkB;AACrC;AACA;AACA;;;;;;;;;;;;;;;;;AC9I8C;AACvC,kCAAkC,uDAAY;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACxB+C;AACK;AACN;AACuC;AACnD;AACuB;AAClD,yBAAyB,uDAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,4CAAa;AAChD;AACA;AACA;AACA,uCAAuC,4CAAa;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,uEAAkB,MAAM;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,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,4CAAa;AAChD;AACA,oBAAoB,4DAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC,iBAAiB,iFAA4C;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC,oBAAoB,wCAAwC,EAAE,2CAAM;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sEAAe;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sEAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA,qBAAqB,iFAA4C;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iFAA4C;AAC5D;AACA;AACA;AACA,gBAAgB,sEAAe;AAC/B;AACA;AACA;AACA;AACA,aAAa,iFAA4C;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iFAA4C;AAC5D;AACA;AACA;AACA;AACA;AACA,gBAAgB,sEAAe;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AC5NyC;AACE;AACI;AACkB;AAC1D;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mEAAmE;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAiC;AACjE;AACA;AACA;AACA;AACA,YAAY,4DAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,0EAAmB;AACzD;AACA;AACA,YAAY,sDAAO;AACnB;AACA;AACA;AACA;AACA,oBAAoB,wDAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA,yCAAyC,0EAAmB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0EAAmB;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,cAAc,mBAAmB;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,CAAC;AACD;AACA,oEAAoE,0EAAmB;AACvF;;;;;;;;;;;;;;;;ACvIA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;;;;;;;AChB0C;AACA;AACO;AAC1C,oCAAoC,mDAAU;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,qCAAqC,mDAAU;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,oCAAoC,mDAAU;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,qCAAqC,mDAAU;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,0BAA0B,mDAAU;AACpC;AACA;AACA,WAAW,8DAAW;AACtB;;;;;;;;;;;;;;;;;;;;;;ACrE+C;AACJ;AACA;AACI;AACyB;AACjE,oCAAoC,mDAAU;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,uDAAY;AAC5D;AACA;AACA;AACA;AACA,6BAA6B,6DAAkB;AAC/C;AACA;AACA;AACA;AACA;AACA,eAAe,6DAAmB;AAClC;AACA;AACO;AACP;AACA;AACA,oBAAoB,aAAa;AACjC,qBAAqB,0BAA0B;AAC/C,oBAAoB,6BAA6B;AACjD,uBAAuB,6BAA6B;AACpD,sBAAsB,oCAAoC;AAC1D,uBAAuB,qDAAqD;AAC5E,sBAAsB,oCAAoC;AAC1D,mBAAmB,iCAAiC;AACpD,oBAAoB;AACpB;AACA,CAAC;AACD,oCAAoC,uDAAiB;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,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mDAAU;AAC3C;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;AC/HkD;AACR;AACW;AACS;AACtB;AACxC;AACO;AACP;AACA;AACA,QAAQ,8DAAW;AACnB;AACA;AACA;AACA;AACA;AACA,oCAAoC,sDAAO;AAC3C;AACA;AACA,WAAW,qDAAS;AACpB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO,sCAAsC,6DAAe;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,SAAS;AACrC;AACA,yBAAyB,0EAAiB;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;;;;;;;;;;;;;;;;;;ACvF0B;AACyB;AAC5C;AACP,WAAW,+DAAS,GAAG,uCAAE;AACzB;;;;;;;;;;;;;;;;;;;ACJ2C;AACb;AACE;AACzB;AACP,eAAe,mDAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,2CAAI,UAAU,6CAAK;AAClD;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;;AChB2C;AACpC,kBAAkB,mDAAU;AAC5B;AACP;AACA;AACA;AACA,eAAe,mDAAU;AACzB;;;;;;;;;;;;;;;;;;;;;ACP2C;AACD;AACH;AACK;AACd;AACvB;AACP;AACA;AACA,YAAY,sDAAO;AACnB;AACA;AACA,YAAY,wDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,sDAAO;AAClD,oDAAoD,mDAAG;AACvD;AACA;AACA;AACA;AACA,eAAe,mDAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC,2BAA2B,2CAAI;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,qGAAqG;AACrG;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;;;AC3D2C;AACO;AACC;AAC5C;AACP;AACA,6BAA6B,mDAAU;AACvC;AACA;AACA,mBAAmB,mDAAU,CAAC,8DAAW;AACzC;AACA;AACA,eAAe,+DAAS;AACxB;AACA;;;;;;;;;;;;;;;;;;;ACb2C;AACiB;AACD;AACpD;AACP;AACA,mBAAmB,mDAAU,CAAC,wEAAgB;AAC9C;AACA;AACA,eAAe,uEAAa;AAC5B;AACA;;;;;;;;;;;;;;;;;;;;ACV2C;AACD;AACM;AACT;AACvC;AACO;AACP,QAAQ,4DAAU;AAClB;AACA;AACA;AACA;AACA,0DAA0D,mDAAG,SAAS,sDAAO;AAC7E;AACA,eAAe,mDAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,SAAS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC5D2C;AACA;AACG;AACvC,0CAA0C,mDAAK;AACtD,SAAS,0DAAS;AAClB;AACA;AACA;AACA,oBAAoB,mDAAK;AACzB;AACA,eAAe,mDAAU;AACzB,8DAA8D,gCAAgC;AAC9F;AACA,KAAK;AACL;AACA;AACA,YAAY,8BAA8B;AAC1C;AACA,oBAAoB,0CAA0C;AAC9D;;;;;;;;;;;;;;;;;;;;ACnB2C;AACO;AACD;AACT;AACjC;AACP;AACA;AACA;AACA,QAAQ,8DAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,mDAAU;AAC9F;AACA;AACA,WAAW,6DAAQ,aAAa,qDAAS;AACzC;;;;;;;;;;;;;;;;;;;ACrBkD;AACV;AACmB;AACpD;AACP;AACA,QAAQ,8DAAW;AACnB;AACA,eAAe,uEAAa;AAC5B;AACA;AACA,eAAe,qDAAS;AACxB;AACA;;;;;;;;;;;;;;;;;ACZ2C;AACpC;AACP;AACA,mBAAmB,mDAAU;AAC7B;AACA;AACA,mBAAmB,mDAAU,iDAAiD,mBAAmB;AACjG;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;;;;;;;;;;;;;;;;;;;;ACX2C;AACA;AACG;AACI;AAC3C;AACP;AACA,QAAQ,0DAAS;AACjB;AACA;AACA,aAAa,8DAAW;AACxB;AACA;AACA,SAAS,8DAAW;AACpB,oBAAoB,mDAAK;AACzB;AACA,eAAe,mDAAU;AACzB,oBAAoB,0DAAS;AAC7B;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA,YAAY,4BAA4B;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACnCwC;AACE;AACC;AACkC;AACoB;AAC1F;AACP;AACA;AACA;AACA;AACA,WAAW,qDAAS;AACpB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO,4BAA4B,mDAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sDAAO;AACnB;AACA;AACA,8BAA8B,+DAAe;AAC7C,oDAAoD,+DAAe;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;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,KAAK,+DAAe;AACpB;AACA;AACA;AACA;AACA;AACA,mCAAmC,+BAA+B,IAAI;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kEAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,+DAAe;AACpB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,+DAAc,sBAAsB,kEAAqB;AACxE;AACA;;;;;;;;;;;;;;;;;ACnMiG;AAC1F;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kEAAqB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA,sCAAsC,+DAAc,eAAe,kEAAqB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,6BAA6B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC5D2C;AACX;AACY;AACrC,yCAAyC,mDAAK;AACrD,WAAW,6CAAK,OAAO,wDAAK;AAC5B;;;;;;;;;;;;;;;;;ACL2C;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,mDAAU;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mDAAU;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,+CAA+C;AAC/D;AACA;AACA;AACA;AACA,qCAAqC,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC5E2C;AACA;AACO;AAC3C;AACP;AACA,oBAAoB,mDAAK;AACzB,QAAQ,8DAAW;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,mCAAmC,mDAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA,iCAAiC;AACjC,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gEAAgE;AAC5E;AACA;AACA;AACA,uGAAuG,qBAAqB;AAC5H;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC;AACA;;;;;;;;;;;;;;;;;AC3IiG;AAC1F;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kEAAqB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,kEAAqB;AAC7D;AACA,sCAAsC,+DAAc;AACpD;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACzCsC;AAC/B;AACP,WAAW,mDAAQ;AACnB;;;;;;;;;;;;;;;;;ACHsC;AAC/B;AACP,WAAW,mDAAQ;AACnB;;;;;;;;;;;;;;;;;;ACH2C;AACA;AACpC,2CAA2C,mDAAK;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,mDAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACrD2C;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,mDAAU;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AC5B2C;AACH;AACG;AACI;AACxC,kCAAkC,mDAAK;AAC9C,0BAA0B,oDAAM;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,mDAAU;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kEAAuB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sEAA2B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACjF2C;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,mDAAU;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACpD2C;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mDAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACnC2C;AACI;AACxC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mDAAU;AAC1C;AACA;AACA,qBAAqB,uDAAY;AACjC;AACA;;;;;;;;;;;;;;;;;;;;;;AClBgD;AACd;AACJ;AACoB;AACJ;AACF;AACrC;AACP;AACA,+CAA+C,+CAAM,sCAAsC,oDAAQ,EAAE,2CAAI,uBAAuB,+DAAc,iBAAiB,2DAAY,WAAW,wDAAU;AAChM;;;;;;;;;;;;;;;;;;;;;;ACTgD;AACd;AACI;AACQ;AACI;AACN;AACrC;AACP;AACA,+CAA+C,+CAAM,sCAAsC,oDAAQ,EAAE,mDAAQ,uBAAuB,+DAAc,iBAAiB,2DAAY,WAAW,wDAAU;AACpM;;;;;;;;;;;;;;;;;;ACT2C;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mDAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACpCsC;AACM;AACrC;AACP,WAAW,mDAAQ,CAAC,oDAAQ;AAC5B;;;;;;;;;;;;;;;;;;;;;;ACJ4B;AACc;AACuD;AAC1F;AACP;AACA,0DAA0D,sDAAI,qBAAqB,yCAAG;AACtF;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,iCAAiC,kEAAqB;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,oCAAoC,kEAAqB;AACzD;AACA;AACA,kCAAkC,+DAAc;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;AACO;;;;;;;;;;;;;;;;;;AClF+E;AAC/E;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,8FAA+B;AACjF;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACjC2C;AACI;AACxC;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,kCAAkC,mDAAU;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4BAA4B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kEAAuB;AACpD;AACA;AACA,6BAA6B,mEAAwB;AACrD;AACA;AACA;AACA,6BAA6B,sEAA2B;AACxD;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AChD2C;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mDAAU;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC3BkC;AACA;AAC3B;AACP;AACA,QAAQ,+CAAM;AACd,QAAQ,+CAAM,CAAC,8CAAG;AAClB;AACA;;;;;;;;;;;;;;;;;ACP2C;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mDAAU;AAC3C;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AClD2C;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,mDAAU;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC/B2C;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mDAAU;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;;;;;;;;;;;;;;;;;;;ACxDwC;AACF;AACD;AACrC;AACA,eAAe,6CAAO;AACtB;AACO;AACP,uBAAuB,mDAAQ,GAAG,qDAAS;AAC3C;;;;;;;;;;;;;;;;;ACRiD;AAC1C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gHAAgH;AAC/I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,yDAAa;AACvC;AACA;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;;;;;;;;;;;;;;;;ACvD2C;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mDAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACvB2C;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,mDAAU;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;;;;;;;;;;;;;;;;;;ACrC8C;AACI;AAC3C;AACP;AACA,QAAQ,8DAAW;AACnB;AACA,2BAA2B,0DAAM;AACjC;AACA;AACA,2BAA2B,0DAAM;AACjC;AACA;;;;;;;;;;;;;;;;;;;ACX4B;AACc;AACuD;AAC1F;AACP;AACA,2DAA2D,sDAAI,qBAAqB,yCAAG;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kEAAqB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kEAAqB;AACzD;AACA;AACA,iCAAiC,+DAAc;AAC/C;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACnEwC;AACjC;AACP,4BAA4B,qDAAS,0CAA0C,qDAAS;AACxF;;;;;;;;;;;;;;;;;;;ACH2C;AAC+B;AAC9B;AACrC;AACP;AACA;AACA,mBAAmB,wDAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kFAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mDAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACzC2C;AAC+B;AAC9B;AACrC;AACP;AACA;AACA,mBAAmB,wDAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kFAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mDAAU;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,4BAA4B,WAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACxDiG;AAC1F;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,+DAAc,oBAAoB,kEAAqB;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kEAAqB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC7B2C;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,mDAAU;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;;;;;;;;;;;;;;;;;;;AC5C2C;AACP;AACY;AACzC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mDAAU;AACtC;AACA;AACA,wBAAwB,4CAAI;AAC5B,yBAAyB,4CAAI;AAC7B,4BAA4B,4CAAI;AAChC,kCAAkC,4CAAI;AACtC,wCAAwC,4CAAI;AAC5C,YAAY,4DAAU;AACtB;AACA;AACA;AACA;AACA;AACA,mDAAmD,4CAAI;AACvD,qDAAqD,4CAAI;AACzD,2DAA2D,4CAAI;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;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACnEiG;AAC1F;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,kEAAqB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,+DAAc,eAAe,kEAAqB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC/E2C;AACA;AACQ;AAC5C,4CAA4C,mDAAK,WAAW,4DAAqB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,mDAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,kBAAkB;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,aAAa;AACzB;AACA;;;;;;;;;;;;;;;;;;ACvEgD;AACL;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,mDAAU;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,eAAe,wDAAU;AACzB;;;;;;;;;;;;;;;;;;AC3C2C;AACI;AACxC;AACP,eAAe,mDAAU;AACzB,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;;;AClB2C;AACI;AACkB;AAC1D;AACP;AACA;AACA;AACA,eAAe,mDAAU;AACzB,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,6BAA6B,sDAAe;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;;;AC3C2C;AACI;AACwB;AAChE;AACP,eAAe,mDAAU;AACzB,wBAAwB,uDAAY;AACpC;AACA,qCAAqC,0DAAiB;AACtD;AACA,8BAA8B,4DAA4D;AAC1F,6BAA6B,2DAA2D;AACxF,6BAA6B,2DAA2D;AACxF,aAAa;AACb,SAAS;AACT;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;;AChB2C;AACI;AACxC;AACP,eAAe,mDAAU;AACzB,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA,SAAS;AACT;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;;;;;;;;ACf0D;AACN;AACJ;AACM;AACY;AACpB;AACI;AACF;AACzC;AACP;AACA,YAAY,8EAAmB;AAC/B,mBAAmB,uEAAkB;AACrC;AACA,iBAAiB,0DAAS;AAC1B,mBAAmB,iEAAe;AAClC;AACA,iBAAiB,8DAAW;AAC5B,mBAAmB,6DAAa;AAChC;AACA,iBAAiB,4DAAU;AAC3B,mBAAmB,mEAAgB;AACnC;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACxB+C;AACxC,qBAAqB,uDAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACR4C;AACrC,mCAAmC,qDAAW;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACxBkD;AAC3C,sCAAsC,2DAAc;AAC3D;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACvB8C;AACF;AACrC,yBAAyB,qDAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,mEAAsB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAwB;AACpC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACzBkD;AAC3C,4BAA4B,2DAAc;AACjD;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACvBkC;AAC3B,0BAA0B,2CAAM;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;;;;;;;;;;;;;;;;;AC9EyC;AAClC,6BAA6B,iDAAS;AAC7C,uCAAuC,qDAAa;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC5C4C;AACrC,0BAA0B,qDAAW;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;;;;;;;;;;;;;;;;;AC3BkD;AAC3C,6BAA6B,2DAAc;AAClD;;;;;;;;;;;;;;;;;;;ACF8D;AACM;AAC7D,oCAAoC,6EAAuB,CAAC,uEAAoB;AAChF;;;;;;;;;;;;;;;;;;;ACHmC;AACM;AACzC,0BAA0B,yDAAa,CAAC,mDAAU;AAClD;;;;;;;;;;;;;;;;;;;ACHqC;AACM;AAC3C,2BAA2B,2DAAc,CAAC,qDAAW;AACrD;;;;;;;;;;;;;;;;;;;ACHqC;AACM;AAC3C,2BAA2B,2DAAc,CAAC,qDAAW;AACrD;;;;;;;;;;;;;;;;;;ACHA;AACP;AACA;AACA;AACA;AACA;AACO;AACA;;;;;;;;;;;;;;;;ACPA;;;;;;;;;;;;;;;;;ACAA;AACP;AACA;AACO;;;;;;;;;;;;;;;;ACHP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;;;;;;;;;;;;;;;;ACVP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;;;;;;;;;;;;;;;;;ACVP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACO;AACP;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;;;;;;;;;;;;;;;;ACVP;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,EAAE,0BAA0B,MAAM,IAAI,eAAe,gBAAgB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;;;;;;;;;;;;;;;;;ACboC;AACpC;AACP;AACA,gBAAgB,iCAAiC;AACjD;AACA;AACA;AACA,uDAAuD,mDAAU;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACfO;AACP,uBAAuB,YAAY;AACnC;;;;;;;;;;;;;;;;ACFO;AACP;AACA;;;;;;;;;;;;;;;;ACFO;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAA;AACP;AACA;;;;;;;;;;;;;;;;ACFO;AACP;AACA;;;;;;;;;;;;;;;;;ACFuE;AAChE;AACP,iCAAiC,0DAAiB;AAClD;;;;;;;;;;;;;;;;;ACHiE;AAC1D;AACP,iCAAiC,sDAAe;AAChD;;;;;;;;;;;;;;;;;ACHoC;AAC7B;AACP,YAAY,iDAAO;AACnB;;;;;;;;;;;;;;;;ACHO;AACP;AACA;;;;;;;;;;;;;;;;;ACF2C;AACpC;AACP,oCAAoC,mDAAU;AAC9C;;;;;;;;;;;;;;;;ACHO;AACP;AACA;;;;;;;;;;;;;;;;ACFO;AACP;AACA;;;;;;;;;;;;;;;;ACFO;;;;;;;;;;;;;;;;ACAA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACPsC;AAC/B;AACP;AACA;AACO;AACP;AACA,eAAe,+CAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;ACdsD;AACI;AACE;AACI;AACpB;AACJ;AACF;AAC2B;AACM;AAChE;AACP,kCAAkC,0DAAiB;AACnD,eAAe,6EAAqB;AACpC;AACA,aAAa,yDAAW;AACxB,eAAe,mEAAgB;AAC/B;AACA,aAAa,qDAAS;AACtB,eAAe,uEAAkB;AACjC;AACA,uCAAuC,sDAAe;AACtD,eAAe,yEAAmB;AAClC;AACA;AACA,sBAAsB,mDAAQ,qCAAqC,OAAO;AAC1E,oCAAoC,OAAO;AAC3C;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC5BO;AACP,wCAAwC,+BAA+B;AACvE;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACLiE;AAC1D;AACP,8BAA8B,sDAAe;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;;;;;;;;;;;;;;;;AC7BuE;AAChE;AACP,oBAAoB,0DAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACToD;AAC7C;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,oBAAoB,6DAAe;AACnC;AACA;;;;;;;;;;;;;;;;;;;ACVqD;AACT;AACD;AACpC,kGAAkG,6DAAe;AACxH;AACA;AACA;AACA,0BAA0B,mDAAU;AACpC;AACA;AACA,WAAW,yDAAW;AACtB;;;;;;;;;;;;;;;;;;;ACX2C;AACiC;AACvB;AAC9C;AACP;AACA,sCAAsC,mDAAU;AAChD;AACA;AACA,2BAA2B,8DAAkB;AAC7C,kCAAkC,8DAAkB;AACpD;AACA;AACA;AACA,mBAAmB,mDAAU,CAAC,4CAAa;AAC3C;AACA,eAAe,mDAAU;AACzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChBA;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,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,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,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,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,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,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,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,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,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;AACA;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;AACA;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6CAA6C;AAC7C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9OA;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,WAAW,kBAAkB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,UAAU;AAC3B,+BAA+B,gBAAgB;AAC/C;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF;AACzF,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC;AACA;AACA;AACA;AACA,IAAI;AACJ;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,4CAA4C,+BAA+B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oBAAoB;AACjC,aAAa,mBAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD,2BAA2B,gBAAgB;AAC3C;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,aAAa,YAAY;AACzB,2BAA2B,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,+BAA+B;AACxD;AACA;AACA,sCAAsC,+BAA+B;AACrE;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,WAAW,kCAAkC;AAC7C;AACA;AACA,WAAW,uBAAuB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,yBAAyB,aAAa;AACtC;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,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,aAAa,mCAAmC;AAChD,aAAa,sCAAsC;AACnD,aAAa,wCAAwC;AACrD,aAAa,qCAAqC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wBAAwB;AACrC,aAAa,yBAAyB;AACtC,aAAa,2BAA2B;AACxC,aAAa,0BAA0B;AACvC;AACA;;AAEA;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,uEAAuE,WAAW;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC,qCAAqC,YAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iCAAiC;AACrD,oBAAoB,qCAAqC;AACzD,oBAAoB,iCAAiC;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,OAAO;AACP;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,aAAa,aAAa,QAAQ,GAAG;AACrC,iBAAiB,OAAO;AACxB,aAAa,aAAa,MAAM,EAAE;AAClC;AACA,OAAO,UAAU,mCAAmC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;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,aAAa;AACb;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,QAAQ,UAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;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;AACA,8BAA8B,YAAY;AAC1C,oCAAoC,YAAY;AAChD;AACA;AACA,4CAA4C,YAAY;AACxD,kDAAkD,YAAY;AAC9D;AACA;AACA;AACA,IAAI;AACJ;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,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,qDAAqD;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;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,YAAY;AAC/C;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA,mCAAmC,YAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,UAAU,+BAA+B;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,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,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;AACA;AACA;AACA;AACA;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;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;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;AACA;AACA,MAAMod,UAAU,CAAC;AAEjBA,UAAU,CAACpqC,IAAI,YAAAqqC,mBAAAtiE,CAAA;EAAA,YAAAA,CAAA,IAAwFqiE,UAAU;AAAA,CAAkD;AACnKA,UAAU,CAACjC,IAAI,kBA1FkF7wC,8DAAE;EAAA98B,IAAA,EA0FK4vE,UAAU;EAAA/B,YAAA,GAAiBiB,GAAG;EAAAf,OAAA,GAAae,GAAG;AAAA,EAAI;AAC1Jc,UAAU,CAAC5B,IAAI,kBA3FkFlxC,8DAAE,IA2FkB;AACrH;EAAA,QAAAI,SAAA,oBAAAA,SAAA,KA5FiGJ,+DAAE,CA4FR8yC,UAAU,EAAc,CAAC;IACxG5vE,IAAI,EAAE6yD,mDAAQ;IACd9tD,IAAI,EAAE,CAAC;MACCgpE,OAAO,EAAE,CAACe,GAAG,CAAC;MACdjB,YAAY,EAAE,CAACiB,GAAG;IACtB,CAAC;EACT,CAAC,CAAC;AAAA;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;AC9LwC;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kDAAO;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEmB;;;;;;;;;;;;;;;;;;;;;;;AC5BwB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,MAAM;AACrC;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,MAAM;AACxD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,qDAAU;AAC7C;;AAEA;AACA;AACA;AACA;A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;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMsb,uBAAuB,GAAG,IAAIthB,yDAAc,CAAC,eAAe,CAAC;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5cA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,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;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,kBAAkB;AAClB,yBAAyB;AACzB,uBAAuB;AACvB;AACA;AACA;AACA;AACA,uBAAuB;AACvB,oBAAoB;AACpB;AACA,kBAAkB;AAClB;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA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,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAAC,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,KAAK,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAAC,GAAG,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAAC,GAAG,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,KAAK,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAAC,GAAG,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAAC,MAAM,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAA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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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMob,OAAO,CAAC;EACVv6G,WAAWA,CAACw6G,cAAc,EAAErd,SAAS,EAAEC,QAAQ,EAAE;IAC7C,IAAI,CAACod,cAAc,GAAGA,cAAc;IACpC,IAAI,CAACrd,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACqd,QAAQ,GAAG,IAAI;IACpB,IAAI,CAACC,aAAa,GAAG,IAAI;IACzB,IAAI,CAAC/c,OAAO,GAAG,IAAI;EACvB;EACA;AACJ;AACA;AACA;EACI,IAAI2c,OAAOA,CAACA,OAAO,EAAE;IACjB,IAAI,CAACG,QAAQ,GAAGH,OAAO;IACvB,IAAI,CAACI,aAAa,GAAG,IAAI;EAC7B;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,IAAIC,YAAYA,CAAC71G,EAAE,EAAE;IACjB,IAAI,CAAC,OAAOyxB,SAAS,KAAK,WAAW,IAAIA,SAAS,KAAKzxB,EAAE,IAAI,IAAI,IAAI,OAAOA,EAAE,KAAK,UAAU,EAAE;MAC3F;MACA,IAAImgC,OAAO,IAAIA,OAAO,CAACC,IAAI,EAAE;QACzBD,OAAO,CAACC,IAAI,CAAC,4CAA4C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AACxC;AACA,SAASs5E,WAAWA,CAACzhH,IAAI,EAAE;EACvB,OAAOA,IAAI,CAAC,MAAM,CAAC,IAAI,OAAOA,IAAI;AACtC;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM8hH,IAAI,CAAC;EACPn7G,WAAWA,CAACw6G,cAAc,EAAElwC,WAAW,EAAE;IACrC,IAAI,CAACkwC,cAAc,GAAGA,cAAc;IACpC,IAAI,CAACY,QAAQ,GAAG,IAAIC,WAAW,CAAC,CAAC;IACjC,IAAI,CAACC,gBAAgB,GAAG,IAAI;IAC5B,IAAI,CAACC,gBAAgB,GAAG,IAAI;IAC5B,IAAI,CAACC,YAAY,GAAG,IAAI;IACxB,IAAI,CAACC,YAAY,GAAG,IAAI;IACxB,IAAI,CAACH,gBAAgB,GAAGhxC,WAAW;EACvC;EACA;AACJ;AACA;EACI,IAAIoxC,IAAIA,CAACC,SAAS,E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QAAQ,EAAE;MAC3B,MAAMm+G,wBAAwB,CAACyB,aAAa,EAAE5/G,KAAK,CAAC;IACxD;IACA,OAAOA,KAAK,CAACzD,WAAW,CAAC,CAAC;EAC9B;AACJ;AACAqjH,aAAa,CAACziF,IAAI,YAAA0iF,sBAAA36G,CAAA;EAAA,YAAAA,CAAA,IAAwF06G,aAAa;AAAA,CAA8C;AACrKA,aAAa,CAACT,KAAK,kBAnmIgF1qF,0DAAE;EAAAv3B,IAAA;EAAAvF,IAAA,EAmmIGioH,aAAa;EAAAP,IAAA;AAAA,EAAsB;AAC3I;EAAA,QAAAxqF,SAAA,oBAAAA,SAAA,KApmImGJ,+DAAE,CAomIVmrF,aAAa,EAAc,CAAC;IAC3GjoH,IAAI,EAAEmnG,+CAAI;IACVpiG,IAAI,EAAE,CAAC;MAAEQ,IAAI,EAAE;IAAY,CAAC;EAChC,CAAC,CAAC;AAAA;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM4iH,0BAA0B,GAAG,IAAI11D,yDAAc,CAAC,4BAA4B,CAAC;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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AAIC,WAAW,GAAGH,UAAU,CAACG,WAAW;IACxC,OAAOA,WAAW,EAAE;MAChB,MAAMj5B,UAAU,GAAGi5B,WAAW,CAACj5B,UAAU;MACzC,IAAIA,UAAU,EAAE;QACZ;QACA;QACA,MAAMhyF,MAAM,GAAGgyF,UAAU,CAAC24B,cAAc,CAACxmH,MAAM,CAAC,IAAI6tF,UAAU,CAAChwD,aAAa,CAAC,UAAU79B,MAAM,IAAI,CAAC;QAClG,IAAInE,MAAM,EAAE;UACR,OAAOA,MAAM;QACjB;MACJ;MACAirH,WAAW,GAAGH,UAAU,CAACI,QAAQ,CAAC,CAAC;IACvC;EACJ;EACA,OAAO,IAAI;AACf;AACA;AACA;AACA;AACA,MAAMC,oBAAoB,CAAC;EACvB;AACJ;AACA;EACI3B,SAASA,CAACt6G,MAAM,EAAE,CAAE;EACpB;AACJ;AACA;EACIu6G,iBAAiBA,CAAA,EAAG;IAChB,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;EACjB;EACA;AACJ;AACA;EACII,gBAAgBA,CAACh/C,QAAQ,EAAE,CAAE;EAC7B;AACJ;AACA;EACIi/C,cAAcA,CAAC1qD,MAAM,EAAE,CAAE;EACzB;AACJ;AACA;EACI8qD,2BAA2BA,CAACC,iBAAiB,EAAE,CAAE;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMiB,UAAU,CAAC;;AAGjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACr1KA;AACA;AACA;AACA;AACA;;AAEsC;AACoD;AACtD;AACsD;AACpD;AACkB;;AAExD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMa,WAAW,CAAC;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CAACe,KAAK,CAAC;cAC7B;YACJ;QACR;MACJ,CAAC,CAAC;MACF,IAAI,CAACQ,SAAS,GAAG,IAAI,CAACD,OAAO,GAAG,IAAI;IACxC;EACJ;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMS,gBAAgB,CAAC;EACnBpqH,WAAWA,CAACo8B,YAAY,EAAE;IACtB,IAAI,CAACA,YAAY,GAAGA,YAAY;EACpC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMiuF,WAAW,CAAC;EACdrqH,WAAWA,CAAA,EAAG;IACV,IAAI,CAAC84B,GAAG,GAAG,IAAIuD,GAAG,CAAC,CAAC;EACxB;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACIn5B,GAAGA,CAACyX,KAAK,EAAEjZ,KAAK,EAAE;IACd,IAAI,CAACo3B,GAAG,CAAC51B,GAAG,CAACyX,KAAK,EAAEjZ,KAAK,CAAC;IAC1B,OAAO,IAAI;EACf;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;EACI2b,GAAGA,CAAC1C,KAAK,EAAE;IACP,IAAI,CAAC,IAAI,CAACme,GAAG,CAAC0N,GAAG,CAAC7rB,KAAK,CAAC,EAAE;MACtB,IAAI,CAACme,GAAG,CAAC51B,GAAG,CAACyX,KAAK,EAAEA,KAAK,CAACyhB,YAAY,CAAC,CAAC,CAAC;IAC7C;IACA,OAAO,IAAI,CAACtD,GAAG,CAACzb,GAAG,CAAC1C,KAAK,CAAC;EAC9B;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;EACIuhC,MAAMA,CAACvhC,KAAK,EAAE;IACV,IAAI,CAACme,GAAG,CAACojB,MAAM,CAACvhC,KAAK,CAAC;IACtB,OAAO,IAAI;EACf;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;EACI6rB,GAAGA,CAAC7rB,KAAK,EAAE;IACP,OAAO,IAAI,CAACme,GAAG,CAAC0N,GAAG,CAAC7rB,KAAK,CAAC;EAC9B;EACA;AACJ;AACA;EACIwY,IAAIA,CAAA,EAAG;IACH,OAAO,IAAI,CAAC2F,GAAG,CAAC3F,IAAI,CAAC,CAAC;EAC1B;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASm3F,aAAaA,CAAC/5G,MAAM,EAAE;EAC3B,QAAQA,MAAM;IACV,KAAK,QAAQ;IACb,KAAK,KAAK;IACV,KAAK,MAAM;IACX,KAAK,SAAS;IACd,KAAK,OAAO;MACR,OAAO,KAAK;IAChB;MACI,OAAO,IAAI;EACnB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,SAASg6G,aAAaA,CAAC7oH,KAAK,EAAE;EAC1B,OAAO,OAAO5I,WAAW,KAAK,WAAW,IAAI4I,KAAK,YAAY5I,WAAW;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,SAASuG,MAAMA,CAACqC,KAAK,EAAE;EACnB,OAAO,OAAOtI,IAAI,KAAK,WAAW,IAAIsI,KAAK,YAAYtI,IAAI;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,SAASoxH,UAAUA,CAAC9oH,KAAK,EAAE;EACvB,OAAO,OAAO+oH,QAAQ,KAAK,WAAW,IAAI/oH,KAAK,YAAY+oH,QAAQ;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,iBAAiBA,CAAChpH,KAAK,EAAE;EAC9B,OAAO,OAAOipH,eAAe,KAAK,WAAW,IAAIjpH,KAAK,YAAYipH,eAAe;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,WAAW,CAAC;EACd5qH,WAAWA,CAACuQ,MAAM,EAAE0kB,GAAG,EAAE41F,KAAK,EAAEC,MAAM,EAAE;IACpC,IAAI,CAAC71F,GAAG,GAAGA,GAAG;IACd;AACR;AACA;AACA;AACA;AACA;AACA;IACQ,IAAI,CAACzN,IAAI,GAAG,IAAI;IAChB;AACR;AACA;AACA;AACA;AACA;IACQ,IAAI,CAACujG,cAAc,GAAG,KAAK;IAC3B;AACR;AACA;IACQ,IAAI,CAACC,eAAe,GAAG,KAAK;IAC5B;AACR;AACA;AACA;AACA;AACA;IACQ,IAAI,CAAC/oG,YAAY,GAAG,MAAM;IAC1B,IAAI,CAAC1R,MAAM,GAAGA,MAAM,CAACtS,WAAW,CAAC,CAAC;IAClC;IACA;IACA,IAAI2J,OAAO;IACX;IACA;IACA,IAAI0iH,aAAa,CAAC,IAAI,CAAC/5G,MAAM,CAAC,IAAI,CAAC,CAACu6G,MAAM,EAAE;MACxC;MACA,IAAI,CAACtjG,IAAI,GAAIqjG,KAAK,KAAK3uF,SAAS,GAAI2uF,KAAK,GAAG,IAAI;MAChDjjH,OAAO,GAAGkjH,MAAM;IACpB,CAAC,MACI;MACD;MACAljH,OAAO,GAAGijH,KAAK;IACnB;IACA;IACA,IAAIjjH,OAAO,EAAE;MACT;MACA,IAAI,CAACmjH,cAAc,GAAG,CAAC,CAACnjH,OAAO,CAACmjH,cAAc;MAC9C,IAAI,CAACC,eAAe,GAAG,CAAC,CAACpjH,OAAO,CAACojH,eAAe;MAChD;MACA,IAAI,CAAC,CAACpjH,OAAO,CAACqa,YAAY,EAAE;QACxB,IAAI,CAACA,YAAY,GAAGra,OAAO,CAACqa,YAAY;MAC5C;MACA;MACA,IAAI,CAAC,CAACra,OAAO,CAAC+/G,OAAO,EAAE;QACnB,IAAI,CAACA,OAAO,GAAG//G,OAAO,CAAC+/G,OAAO;MAClC;MACA,IAAI,CAAC,CAAC//G,OAAO,CAACi8B,OAAO,EAAE;QACnB,IAAI,CAACA,OAAO,GAAGj8B,OAAO,CAACi8B,OAAO;MAClC;MACA,IAAI,CAAC,CAACj8B,OAAO,CAACsB,MAAM,EAAE;QAClB,IAAI,CAACA,MAAM,GAAGtB,OAAO,CAACsB,MAAM;MAChC;IACJ;IACA;IACA,IAAI,CAAC,IAAI,CAACy+G,OAAO,EAAE;MACf,IAAI,CAACA,OAAO,GAAG,IAAID,WAAW,CAAC,CAAC;IACpC;IACA;IACA,IAAI,CAAC,IAAI,CAAC7jF,OAAO,EAAE;MACf,IAAI,CAACA,OAAO,GAAG,IAAIwmF,WAAW,CAAC,CAAC;IACpC;IACA;IACA,IAAI,CAAC,IAAI,CAACnhH,MAAM,EAAE;MACd,IAAI,CAACA,MAAM,GAAG,IAAIwgH,UAAU,CAAC,CAAC;MAC9B,IAAI,CAACuB,aAAa,GAAGh2F,GAAG;IAC5B,CAAC,MACI;MACD;MACA,MAAM/rB,MAAM,GAAG,IAAI,CAACA,MAAM,CAACzL,QAAQ,CAAC,CAAC;MACrC,IAAIyL,MAAM,CAAC7O,MAAM,KAAK,CAAC,EAAE;QACrB;QACA,IAAI,CAAC4wH,aAAa,GAAGh2F,GAAG;MAC5B,CAAC,MACI;QACD;QACA,MAAMi2F,IAAI,GAAGj2F,GAAG,CAAC75B,OAAO,CAAC,GAAG,CAAC;QAC7B;QACA;QACA;QACA;QACA;QACA;QACA;QACA,MAAM+vH,GAAG,GAAGD,IAAI,KAAK,CAAC,CAAC,GAAG,GAAG,GAAIA,IAAI,GAAGj2F,GAAG,CAAC56B,MAAM,GAAG,CAAC,GAAG,GAAG,GAAG,EAAG;QAClE,IAAI,CAAC4wH,aAAa,GAAGh2F,GAAG,GAAGk2F,GAAG,GAAGjiH,MAAM;MAC3C;IACJ;EACJ;EACA;AACJ;AACA;AACA;EACIkiH,aAAaA,CAAA,EAAG;IACZ;IACA,IAAI,IAAI,CAAC5jG,IAAI,KAAK,IAAI,EAAE;MACpB,OAAO,IAAI;IACf;IACA;IACA;IACA,IAAI+iG,aAAa,CAAC,IAAI,CAAC/iG,IAAI,CAAC,IAAInoB,MAAM,CAAC,IAAI,CAACmoB,IAAI,CAAC,IAAIgjG,UAAU,CAAC,IAAI,CAAChjG,IAAI,CAAC,IACtEkjG,iBAAiB,CAAC,IAAI,CAACljG,IAAI,CAAC,IAAI,OAAO,IAAI,CAACA,IAAI,KAAK,QAAQ,EAAE;MAC/D,OAAO,IAAI,CAACA,IAAI;IACpB;IACA;IACA,IAAI,IAAI,CAACA,IAAI,YAAYkiG,UAAU,EAAE;MACjC,OAAO,IAAI,CAACliG,IAAI,CAAC/pB,QAAQ,CAAC,CAAC;IAC/B;IACA;IACA,IAAI,OAAO,IAAI,CAAC+pB,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,CAACA,IAAI,KAAK,SAAS,IAC/DrsB,KAAK,CAACZ,OAAO,CAAC,IAAI,CAACitB,IAAI,CAAC,EAAE;MAC1B,OAAOhB,IAAI,CAACC,SAAS,CAAC,IAAI,CAACe,IAAI,CAAC;IACpC;IACA;IACA,OAAO,IAAI,CAACA,IAAI,CAAC/pB,QAAQ,CAAC,CAAC;EAC/B;EACA;AACJ;AACA;AACA;AACA;AACA;EACI4tH,uBAAuBA,CAAA,EAAG;IACtB;IACA,IAAI,IAAI,CAAC7jG,IAAI,KAAK,IAAI,EAAE;MACpB,OAAO,IAAI;IACf;IACA;IACA,IAAIgjG,UAAU,CAAC,IAAI,CAAChjG,IAAI,CAAC,EAAE;MACvB,OAAO,IAAI;IACf;IACA;IACA;IACA,IAAInoB,MAAM,CAAC,IAAI,CAACmoB,IAAI,CAAC,EAAE;MACnB,OAAO,IAAI,CAACA,IAAI,CAACnuB,IAAI,IAAI,IAAI;IACjC;IACA;IACA,IAAIkxH,aAAa,CAAC,IAAI,CAAC/iG,IAAI,CAAC,EAAE;MAC1B,OAAO,IAAI;IACf;IACA;IACA;IACA,IAAI,OAAO,IAAI,CAACA,IAAI,KAAK,QAAQ,EAAE;MAC/B,OAAO,YAAY;IACvB;IACA;IACA,IAAI,IAAI,CAACA,IAAI,YAAYkiG,UAAU,EAAE;MACjC,OAAO,iDAAiD;IAC5D;IACA;IACA,IAAI,OAAO,IAAI,CAACliG,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,CAACA,IAAI,KAAK,QAAQ,IAC9D,OAAO,IAAI,CAACA,IAAI,KAAK,SAAS,EAAE;MAChC,OAAO,kBAAkB;IAC7B;IACA;IACA,OAAO,IAAI;EACf;EACAzQ,KAAKA,CAACsxG,MAAM,GAAG,CAAC,CAAC,EAAE;IACf,IAAI7lG,EAAE;IACN;IACA;IACA,MAAMjS,MAAM,GAAG83G,MAAM,CAAC93G,MAAM,IAAI,IAAI,CAACA,MAAM;IAC3C,MAAM0kB,GAAG,GAAGozF,MAAM,CAACpzF,GAAG,IAAI,IAAI,CAACA,GAAG;IAClC,MAAMhT,YAAY,GAAGomG,MAAM,CAACpmG,YAAY,IAAI,IAAI,CAACA,YAAY;IAC7D;IACA;IACA;IACA;IACA,MAAMuF,IAAI,GAAI6gG,MAAM,CAAC7gG,IAAI,KAAK0U,SAAS,GAAImsF,MAAM,CAAC7gG,IAAI,GAAG,IAAI,CAACA,IAAI;IAClE;IACA;IACA,MAAMwjG,eAAe,GAAI3C,MAAM,CAAC2C,eAAe,KAAK9uF,SAAS,GAAImsF,MAAM,CAAC2C,eAAe,GAAG,IAAI,CAACA,eAAe;IAC9G,MAAMD,cAAc,GAAI1C,MAAM,CAAC0C,cAAc,KAAK7uF,SAAS,GAAImsF,MAAM,CAAC0C,cAAc,GAAG,IAAI,CAACA,cAAc;IAC1G;IACA;IACA,IAAIpD,OAAO,GAAGU,MAAM,CAACV,OAAO,IAAI,IAAI,CAACA,OAAO;IAC5C,IAAIz+G,MAAM,GAAGm/G,MAAM,CAACn/G,MAAM,IAAI,IAAI,CAACA,MAAM;IACzC;IACA,MAAM26B,OAAO,GAAG,CAACrhB,EAAE,GAAG6lG,MAAM,CAACxkF,OAAO,MAAM,IAAI,IAAIrhB,EAAE,KAAK,KAAK,CAAC,GAAGA,EAAE,GAAG,IAAI,CAACqhB,OAAO;IACnF;IACA,IAAIwkF,MAAM,CAACiD,UAAU,KAAKpvF,SAAS,EAAE;MACjC;MACAyrF,OAAO,GACHpqH,MAAM,CAAC41B,IAAI,CAACk1F,MAAM,CAACiD,UAAU,CAAC,CACzBpoC,MAAM,CAAC,CAACykC,OAAO,EAAE/oH,IAAI,KAAK+oH,OAAO,CAACzkH,GAAG,CAACtE,IAAI,EAAEypH,MAAM,CAACiD,UAAU,CAAC1sH,IAAI,CAAC,CAAC,EAAE+oH,OAAO,CAAC;IAC3F;IACA;IACA,IAAIU,MAAM,CAACkD,SAAS,EAAE;MAClB;MACAriH,MAAM,GAAG3L,MAAM,CAAC41B,IAAI,CAACk1F,MAAM,CAACkD,SAAS,CAAC,CACjCroC,MAAM,CAAC,CAACh6E,MAAM,EAAEkgH,KAAK,KAAKlgH,MAAM,CAAChG,GAAG,CAACkmH,KAAK,EAAEf,MAAM,CAACkD,SAAS,CAACnC,KAAK,CAAC,CAAC,EAAElgH,MAAM,CAAC;IACtF;IACA;IACA,OAAO,IAAI0hH,WAAW,CAACr6G,MAAM,EAAE0kB,GAAG,EAAEzN,IAAI,EAAE;MACtCte,MAAM;MACNy+G,OAAO;MACP9jF,OAAO;MACPknF,cAAc;MACd9oG,YAAY;MACZ+oG;IACJ,CAAC,CAAC;EACN;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIQ,aAAa;AACjB,CAAC,UAAUA,aAAa,EAAE;EACtB;AACJ;AACA;EACIA,aAAa,CAACA,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;EACjD;AACJ;AACA;EACIA,aAAa,CAACA,aAAa,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,gBAAgB;EACrE;AACJ;AACA;EACIA,aAAa,CAACA,aAAa,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,gBAAgB;EACrE;AACJ;AACA;EACIA,aAAa,CAACA,aAAa,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,GAAG,kBAAkB;EACzE;AACJ;AACA;EACIA,aAAa,CAACA,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU;EACzD;AACJ;AACA;EACIA,aAAa,CAACA,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;AACrD,CAAC,EAAEA,aAAa,KAAKA,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC;AACzC;AACA;AACA;AACA;AACA;AACA,MAAMC,gBAAgB,CAAC;EACnB;AACJ;AACA;AACA;AACA;AACA;EACIzrH,WAAWA,CAAC+4C,IAAI,EAAE2yE,aAAa,GAAG,GAAG,CAAC,UAAUC,iBAAiB,GAAG,IAAI,EAAE;IACtE;IACA;IACA,IAAI,CAAChE,OAAO,GAAG5uE,IAAI,CAAC4uE,OAAO,IAAI,IAAID,WAAW,CAAC,CAAC;IAChD,IAAI,CAACpyF,MAAM,GAAGyjB,IAAI,CAACzjB,MAAM,KAAK4G,SAAS,GAAG6c,IAAI,CAACzjB,MAAM,GAAGo2F,aAAa;IACrE,IAAI,CAACE,UAAU,GAAG7yE,IAAI,CAAC6yE,UAAU,IAAID,iBAAiB;IACtD,IAAI,CAAC12F,GAAG,GAAG8jB,IAAI,CAAC9jB,GAAG,IAAI,IAAI;IAC3B;IACA,IAAI,CAAC42F,EAAE,GAAG,IAAI,CAACv2F,MAAM,IAAI,GAAG,IAAI,IAAI,CAACA,MAAM,GAAG,GAAG;EACrD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMw2F,kBAAkB,SAASL,gBAAgB,CAAC;EAC9C;AACJ;AACA;EACIzrH,WAAWA,CAAC+4C,IAAI,GAAG,CAAC,CAAC,EAAE;IACnB,KAAK,CAACA,IAAI,CAAC;IACX,IAAI,CAAC1/C,IAAI,GAAGmyH,aAAa,CAACO,cAAc;EAC5C;EACA;AACJ;AACA;AACA;EACIh1G,KAAKA,CAACsxG,MAAM,GAAG,CAAC,CAAC,EAAE;IACf;IACA;IACA,OAAO,IAAIyD,kBAAkB,CAAC;MAC1BnE,OAAO,EAAEU,MAAM,CAACV,OAAO,IAAI,IAAI,CAACA,OAAO;MACvCryF,MAAM,EAAE+yF,MAAM,CAAC/yF,MAAM,KAAK4G,SAAS,GAAGmsF,MAAM,CAAC/yF,MAAM,GAAG,IAAI,CAACA,MAAM;MACjEs2F,UAAU,EAAEvD,MAAM,CAACuD,UAAU,IAAI,IAAI,CAACA,UAAU;MAChD32F,GAAG,EAAEozF,MAAM,CAACpzF,GAAG,IAAI,IAAI,CAACA,GAAG,IAAIiH;IACnC,CAAC,CAAC;EACN;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM8vF,YAAY,SAASP,gBAAgB,CAAC;EACxC;AACJ;AACA;EACIzrH,WAAWA,CAAC+4C,IAAI,GAAG,CAAC,CAAC,EAAE;IACnB,KAAK,CAACA,IAAI,CAAC;IACX,IAAI,CAAC1/C,IAAI,GAAGmyH,aAAa,CAACS,QAAQ;IAClC,IAAI,CAACzkG,IAAI,GAAGuxB,IAAI,CAACvxB,IAAI,KAAK0U,SAAS,GAAG6c,IAAI,CAACvxB,IAAI,GAAG,IAAI;EAC1D;EACAzQ,KAAKA,CAACsxG,MAAM,GAAG,CAAC,CAAC,EAAE;IACf,OAAO,IAAI2D,YAAY,CAAC;MACpBxkG,IAAI,EAAG6gG,MAAM,CAAC7gG,IAAI,KAAK0U,SAAS,GAAImsF,MAAM,CAAC7gG,IAAI,GAAG,IAAI,CAACA,IAAI;MAC3DmgG,OAAO,EAAEU,MAAM,CAACV,OAAO,IAAI,IAAI,CAACA,OAAO;MACvCryF,MAAM,EAAG+yF,MAAM,CAAC/yF,MAAM,KAAK4G,SAAS,GAAImsF,MAAM,CAAC/yF,MAAM,GAAG,IAAI,CAACA,MAAM;MACnEs2F,UAAU,EAAEvD,MAAM,CAACuD,UAAU,IAAI,IAAI,CAACA,UAAU;MAChD32F,GAAG,EAAEozF,MAAM,CAACpzF,GAAG,IAAI,IAAI,CAACA,GAAG,IAAIiH;IACnC,CAAC,CAAC;EACN;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMgwF,iBAAiB,SAAST,gBAAgB,CAAC;EAC7CzrH,WAAWA,CAAC+4C,IAAI,EAAE;IACd;IACA,KAAK,CAACA,IAAI,EAAE,CAAC,EAAE,eAAe,CAAC;IAC/B,IAAI,CAACn6C,IAAI,GAAG,mBAAmB;IAC/B;AACR;AACA;IACQ,IAAI,CAACitH,EAAE,GAAG,KAAK;IACf;IACA;IACA;IACA,IAAI,IAAI,CAACv2F,MAAM,IAAI,GAAG,IAAI,IAAI,CAACA,MAAM,GAAG,GAAG,EAAE;MACzC,IAAI,CAACyD,OAAO,GAAG,mCAAmCggB,IAAI,CAAC9jB,GAAG,IAAI,eAAe,EAAE;IACnF,CAAC,MACI;MACD,IAAI,CAAC8D,OAAO,GAAG,6BAA6BggB,IAAI,CAAC9jB,GAAG,IAAI,eAAe,KAAK8jB,IAAI,CAACzjB,MAAM,IAAIyjB,IAAI,CAAC6yE,UAAU,EAAE;IAChH;IACA,IAAI,CAAChsH,KAAK,GAAGm5C,IAAI,CAACn5C,KAAK,IAAI,IAAI;EACnC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASusH,OAAOA,CAACvkH,OAAO,EAAE4f,IAAI,EAAE;EAC5B,OAAO;IACHA,IAAI;IACJmgG,OAAO,EAAE//G,OAAO,CAAC+/G,OAAO;IACxB9jF,OAAO,EAAEj8B,OAAO,CAACi8B,OAAO;IACxB89B,OAAO,EAAE/5D,OAAO,CAAC+5D,OAAO;IACxBz4D,MAAM,EAAEtB,OAAO,CAACsB,MAAM;IACtB6hH,cAAc,EAAEnjH,OAAO,CAACmjH,cAAc;IACtC9oG,YAAY,EAAEra,OAAO,CAACqa,YAAY;IAClC+oG,eAAe,EAAEpjH,OAAO,CAACojH;EAC7B,CAAC;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMoB,UAAU,CAAC;EACbpsH,WAAWA,CAAC6iE,OAAO,EAAE;IACjB,IAAI,CAACA,OAAO,GAAGA,OAAO;EAC1B;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI7jD,OAAOA,CAAC28E,KAAK,EAAE1mE,GAAG,EAAErtB,OAAO,GAAG,CAAC,CAAC,EAAE;IAC9B,IAAIykH,GAAG;IACP;IACA,IAAI1wB,KAAK,YAAYivB,WAAW,EAAE;MAC9B;MACA;MACAyB,GAAG,GAAG1wB,KAAK;IACf,CAAC,MACI;MACD;MACA;MACA;MACA;MACA,IAAIgsB,OAAO,GAAGzrF,SAAS;MACvB,IAAIt0B,OAAO,CAAC+/G,OAAO,YAAYD,WAAW,EAAE;QACxCC,OAAO,GAAG//G,OAAO,CAAC+/G,OAAO;MAC7B,CAAC,MACI;QACDA,OAAO,GAAG,IAAID,WAAW,CAAC9/G,OAAO,CAAC+/G,OAAO,CAAC;MAC9C;MACA;MACA,IAAIz+G,MAAM,GAAGgzB,SAAS;MACtB,IAAI,CAAC,CAACt0B,OAAO,CAACsB,MAAM,EAAE;QACl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6C,sCAAsC;AACnF,8CAA8C,sCAAsC;AACpF;AACA;AACA;AACA,+BAA+B;AAC/B,aAAa;AACb,gDAAgD,qEAAqE;AACrH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA,qBAAqB,qBAAqB;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,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,KAAK;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,kEAAkE,0BAA0B;AAC5F;AACA,wBAAwB,uBAAuB;AAC/C;AACA,8DAA8D,kBAAkB;AAChF,yBAAyB,SAAS,EAAE,UAAU;AAC9C;AACA,0DAA0D,QAAQ,EAAE,UAAU,EAAE,MAAM;AACtF,gBAAgB,QAAQ,EAAE,UAAU,EAAE,MAAM,KAAK,QAAQ;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,MAAM;AAC9D;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA,2BAA2B,KAAK,EAAE,yBAAyB;AAC3D;AACA;AACA,gEAAgE,YAAY;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,wBAAwB,yBAAyB;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,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;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,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;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,wBAAwB,wBAAwB;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8CAA8C;AAC/C;AACA;AACA;AACA;AACA,CAAC,0DAA0D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;AAC3C;AACA;AACA;AACA;AACA;AACA,CAAC,gEAAgE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,+BAA+B,2BAA2B;AAC1D,qCAAqC,iCAAiC;AACtE;AACA;AACA;AACA,6BAA6B,yBAAyB;AACtD,wCAAwC,oCAAoC;AAC5E;AACA,CAAC;;AAED;AACA;AACA;AACA;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,IAAI;AAC3C;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA,wBAAwB,oBAAoB;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,kBAAkB,qBAAqB;AACvC;AACA;AACA,kBAAkB,WAAW;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,oBAAoB,UAAU;AAC9B;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,mBAAmB;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,6CAA6C,QAAQ;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;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,eAAe;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,4CAA4C,eAAe;AAC3D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,gBAAgB;AAC7E;AACA;AACA;AACA;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,8DAA8D;AACjF;AACA;AACA,8DAA8D,IAAI,EAAE,0BAA0B;AAC9F,iBAAiB,EAAE,eAAe,IAAI,SAAS,IAAI,qBAAqB;AACxE;AACA;AACA;AACA,6BAA6B,aAAa;AAC1C,6BAA6B,aAAa,IAAI,uDAAuD,aAAa,aAAa;AAC/H;AACA;AACA,uCAAuC,QAAQ,IAAI,SAAS,sBAAsB,QAAQ;AAC1F;AACA;AACA,gCAAgC,QAAQ,IAAI,qBAAqB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,IAAI,EAAE,0BAA0B;AAC5F;AACA,iBAAiB,EAAE,SAAS,IAAI,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA,wBAAwB,QAAQ;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,gBAAgB,eAAe;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,CAAC,wBAAwB;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,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;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;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;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,CAAC,sCAAsC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wCAAwC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,uBAAuB,EAAE,oBAAoB,EAAE,UAAU;AACpF;AACA;AACA,2BAA2B,UAAU,EAAE,eAAe,EAAE,wBAAwB;AAChF;AACA;AACA;AACA,+BAA+B,UAAU,EAAE,oBAAoB,EAAE,SAAS;AAC1E,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,4BAA4B,eAAe,EAAE,iGAAiG;AAC9I;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,SAAS;AACxF;AACA,eAAe,YAAY;AAC3B;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU,GAAG,YAAY;AACjD,8CAA8C,uCAAuC,GAAG,2BAA2B;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,WAAW;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,KAAK;AACtC;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B,sBAAsB;AAChD;AACA,6BAA6B,yBAAyB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD,4BAA4B,wBAAwB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,sBAAsB;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,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,WAAW;AAC/D,kEAAkE,eAAe;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,8CAA8C;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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,6HAA6H,MAAM;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO,EAAE,qBAAqB;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,kBAAkB,kEAAkE;AACpF;AACA;AACA,mBAAmB,yEAAyE;AAC5F;AACA;AACA;AACA;AACA,sBAAsB,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BAA6B;AAC7B,mCAAmC;AACnC,yCAAyC;AACzC,sCAAsC;AACtC,iCAAiC;AACjC,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,8BAA8B;AAC9B,oCAAoC;AACpC,+BAA+B;AAC/B,4BAA4B;AAC5B,yCAAyC;AACzC,kCAAkC;AAClC,yCAAyC;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;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,oDAAoD,UAAU;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0CAA0C;AAC1E;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,aAAa;AACb;AACA,0BAA0B;AAC1B,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sCAAsC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;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,mBAAmB;AACxD;AACA;AACA;AACA,0CAA0C,cAAc;AACxD;AACA;AACA;AACA,gDAAgD,KAAK;AACrD,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,MAAM;AAC3C;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,WAAW;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,4BAA4B,WAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mCAAmC;AAC3D,+BAA+B;AAC/B;AACA,8BAA8B,EAAE,kCAAkC;AAClE;AACA;AACA;AACA;AACA;AACA;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,MAAM;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD,8BAA8B;AAC9B;AACA,6BAA6B,EAAE,qCAAqC;AACpE;AACA;AACA;AACA;AACA;AACA;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,aAAa;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,aAAa;AACjE;AACA;AACA;AACA;AACA,2BAA2B,OAAO;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,yBAAyB;AACzB;AACA,8BAA8B,uEAAuE;AACrG;AACA,SAAS;AACT,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;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,wBAAwB,SAAS;AACjC;AACA,KAAK;AACL;AACA,gCAAgC,KAAK;AACrC;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,sBAAsB,EAAE,KAAK;AAC3C;AACA;AACA,cAAc,sBAAsB,EAAE,KAAK,GAAG,MAAM;AACpD;AACA;AACA;AACA,qCAAqC,SAAS,GAAG,YAAY,QAAQ,SAAS,GAAG,KAAK;AACtF;AACA;AACA,wBAAwB,KAAK,GAAG,MAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,+BAA+B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,wBAAwB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC,sDAAsD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,UAAU;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,4FAA4F,UAAU;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA,uBAAuB,+DAA+D;AACtF;AACA;AACA,uBAAuB,sDAAsD;AAC7E;AACA;AACA,uBAAuB,kDAAkD;AACzE;AACA;AACA,uBAAuB,kDAAkD;AACzE;AACA;AACA,uBAAuB,sDAAsD;AAC7E;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8GAA8G,UAAU,IAAI,gBAAgB;AAC5I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yGAAyG,WAAW,IAAI,iBAAiB;AACzI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,8DAA8D,IAAI,EAAE,0BAA0B;AAC9F,iBAAiB,EAAE,0BAA0B,IAAI,SAAS,IAAI,oBAAoB;AAClF;AACA;AACA;AACA,iBAAiB,GAAG,cAAc,EAAE,UAAU,GAAG,cAAc;AAC/D;AACA;AACA,iBAAiB,GAAG,SAAS;AAC7B;AACA;AACA,iBAAiB,GAAG,SAAS;AAC7B;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,4BAA4B,WAAW,GAAG,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS,EAAE,SAAS;AAC3C;AACA;AACA,mBAAmB,SAAS,EAAE,SAAS,GAAG,qBAAqB,IAAI,SAAS;AAC5E;AACA;AACA;AACA;AACA;AACA,uBAAuB,uCAAuC;AAC9D;AACA;AACA,6DAA6D,KAAK,IAAI,YAAY;AAClF;AACA;AACA;AACA,4BAA4B,iBAAiB,KAAK,YAAY;AAC9D;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,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C;AACA;AACA;AACA,iBAAiB;AACjB,kBAAkB;AAClB,kBAAkB;AAClB,gBAAgB;AAChB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,iBAAiB,gBAAgB,GAAG,iBAAiB,EAAE,gEAAgE;AAChL,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;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,EAAE,0BAA0B,IAAI,SAAS;AAC7E;AACA,qCAAqC,IAAI,+CAA+C;AACxF,SAAS;AACT,gCAAgC;AAChC;AACA;AACA;AACA,8CAA8C,OAAO;AACrD,gDAAgD;AAChD;AACA,yDAAyD,oBAAoB;AAC7E;AACA;AACA;AACA;AACA,+CAA+C,OAAO;AACtD,gDAAgD;AAChD;AACA,yDAAyD,oBAAoB;AAC7E;AACA;AACA;AACA,kDAAkD,EAAE,WAAW;AAC/D;AACA,8CAA8C;AAC9C;AACA;AACA,0CAA0C,eAAe;AACzD;AACA;AACA;AACA;AACA;AACA,+EAA+E,IAAI;AACnF,uCAAuC,EAAE,cAAc,IAAI,QAAQ,IAAI,UAAU;AACjF,8CAA8C;AAC9C;AACA;AACA,0CAA0C,eAAe;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,UAAU;AAClD,cAAc,wBAAwB,EAAE,QAAQ,EAAE,QAAQ,EAAE,wBAAwB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,aAAa;AACjC,kBAAkB,WAAW,EAAE,sDAAsD;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,iBAAiB;AACvE,KAAK;AACL;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,+CAA+C;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,wBAAwB,IAAI,GAAG,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,+BAA+B,EAAE,MAAM;AACrD;AACA;AACA,wDAAwD;AACxD;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,uBAAuB,iBAAiB,qBAAqB;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;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,+BAA+B,gCAAgC;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,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uBAAuB;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;;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,0EAA0E,kBAAkB,mGAAmG;AAC/L;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,kBAAkB,wGAAwG;AACpM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,kBAAkB,sCAAsC;AAC9H;AACA;AACA;AACA,sEAAsE,kBAAkB,kFAAkF;AAC1K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,qCAAqC,WAAW;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,MAAM,MAAM,IAAI;AACrD;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,MAAM;;AAEtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA,wCAAwC,cAAc,GAAG,UAAU,GAAG,SAAS;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,0CAA0C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU,IAAI,WAAW,GAAG,6BAA6B,KAAK,UAAU;AAChG;AACA;AACA;AACA,iDAAiD,kBAAkB;AACnE,kBAAkB,yBAAyB,IAAI,gBAAgB,EAAE,QAAQ;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,MAAM,EAAE,UAAU,KAAK,UAAU;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sBAAsB;AACxD;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,oFAAoF,4DAA4D,QAAQ,YAAY;AACpK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,UAAU;AACzC;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD,2BAA2B,oEAAoE;AAC/F,2BAA2B,uEAAuE;AAClG;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,kCAAkC,+BAA+B;AACjE;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,oCAAoC,UAAU;AAC9C;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,2BAA2B;AAC/D;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA,2BAA2B,mEAAmE;AAC9F,2BAA2B,gEAAgE;AAC3F;AACA;AACA;AACA,SAAS;AACT;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,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,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,IAAI,EAAE;AACN,CAAC;AACD;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;AACA;AACA;AACA;AACA;AACA;AACA;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,EAAE,eAAe,kBAAkB,UAAU;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,KAAK;AAC5B;AACA,uFAAuF;AACvF,8EAA8E;AAC9E,2BAA2B,+DAA+D;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;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,0CAA0C,kBAAkB;AAC5D,2CAA2C,KAAK,GAAG,GAAG;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,eAAe;AACnF;AACA;AACA,2EAA2E,SAAS;AACpF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yGAAyG;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,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,8BAA8B,kDAAkD;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iFAAiF;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,qBAAqB,6CAA6C;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,+DAA+D;AAC9F;AACA,+BAA+B,wDAAwD;AACvF;AACA,+BAA+B,2DAA2D;AAC1F;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,SAAS,EAAE,aAAa,GAAG,MAAM,OAAO,YAAY;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,aAAa,KAAK,cAAc;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;AACA;AACA;AACA;AACA;AACA,0DAA0D,aAAa;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,wBAAwB,iBAAiB;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,8DAA8D,aAAa;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,iBAAiB;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,CAAC,gDAAgD;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;;AAEA;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,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA,8FAA8F,KAAK;AACnG;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU,GAAG,gBAAgB;AAC/C;AACA;AACA;AACA;AACA;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sBAAsB;AACvB;AACA;AACA,yDAAyD,IAAI;AAC7D;AACA;AACA;AACA;AACA,2DAA2D,IAAI;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,aAAa;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,cAAc;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iGAAiG,SAAS;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,MAAM,0BAA0B,SAAS;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,6BAA6B,aAAa,aAAa;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F,+BAA+B;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,gBAAgB;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;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,yBAAyB;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,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;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gCAAgC;AAChE,oCAAoC,iCAAiC;AACrE;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,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,SAAS;AACT;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,uDAAuD,aAAa;AACpE;AACA;AACA;AACA;AACA,iBAAiB;AACjB,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,YAAY,EAAE,WAAW;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,sCAAsC,WAAW;AACjD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,WAAW;AACjD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,4DAA4D,+BAA+B,KAAK,IAAI,KAAK;AACzG,6CAA6C,gCAAgC,OAAO,GAAG;AACvF,8DAA8D,gCAAgC,OAAO,GAAG;AACxG;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;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;AACA;AACA;AACA;AACA,0BAA0B,EAAE,EAAE,cAAc,QAAQ,KAAK,UAAU;AACnE;AACA,kCAAkC,KAAK;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,kBAAkB,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,OAAO;AACtF,KAAK;AACL;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE,EAAE,eAAe;AAC9B,WAAW,EAAE,EAAE,WAAW,EAAE,eAAe,IAAI,GAAG,EAAE,WAAW,EAAE,eAAe;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;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,KAAK;AACL;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,gBAAgB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mDAAmD;AACnE;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4BAA4B;AAC5C,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,aAAa;AACtE;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,qCAAqC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qCAAqC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,4CAA4C;AAChF;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA,CAAC,8BAA8B;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,mDAAmD,0BAA0B;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,IAAI;AAC5E;AACA,oCAAoC,OAAO;AAC3C;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,SAAS,YAAY,UAAU,iBAAiB,WAAW;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,iBAAiB;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,SAAS;AACT;AACA;AACA,gBAAgB,gCAAgC;AAChD;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,SAAS;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,qCAAqC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,qBAAqB;AACpD;AACA;AACA;AACA,0CAA0C,aAAa;AACvD;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uHAAuH,GAAG;AAC1H;AACA,mCAAmC,sCAAsC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uDAAuD;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,YAAY;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,MAAM,EAAE,IAAI,sDAAsD,YAAY;AAClI;AACA;AACA;AACA;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,kBAAkB;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,CAAC,8CAA8C;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,8CAA8C;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,0BAA0B,MAAM,GAAG,gBAAgB,GAAG,mBAAmB;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,uCAAuC,0BAA0B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,SAAS;AACzD;AACA;AACA,uDAAuD,IAAI;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,yBAAyB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,yBAAyB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,gDAAgD,UAAU;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,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,YAAY;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,WAAW;AACnE;AACA;AACA;AACA,2CAA2C,UAAU;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,aAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,YAAY;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;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,+CAA+C;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,sCAAsC;AACtC,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,YAAY;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;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,2DAA2D,8BAA8B;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oGAAoG,MAAM;AAC1G;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,kEAAkE;AAC/E;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,KAAK;AACzC;AACA;AACA,8BAA8B,UAAU,yBAAyB,gBAAgB;AACjF;AACA;AACA,sCAAsC,UAAU,MAAM,MAAM,6CAA6C;AACzG;AACA;AACA;AACA;AACA;AACA,CAAC,wDAAwD;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,yCAAyC;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,iDAAiD,4BAA4B,EAAE,IAAI;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,SAAS;AACjC;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,MAAM;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,SAAS;AACT;AACA;AACA,gCAAgC;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sBAAsB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;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,iDAAiD;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,uDAAuD;AACvD;AACA,yDAAyD,IAAI;AAC7D,2DAA2D,sBAAsB;AACjF,uFAAuF;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,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;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA,2GAA2G;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2GAA2G;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2DAA2D;AAC9E,yCAAyC;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,8GAA8G;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8GAA8G;AAC9G;AACA;AACA;AACA;AACA,0GAA0G;AAC1G;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,2DAA2D,IAAI;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;AACA;AACA;AACA;AACA;AACA;AACA,4IAA4I,uBAAuB;AACnK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,SAAS;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uHAAuH,qBAAqB;AAC5I;AACA;AACA,sDAAsD,SAAS;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,iBAAiB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,IAAI;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;;AAEA;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,qCAAqC,SAAS;AAC9C,yCAAyC,SAAS,EAAE,GAAG;AACvD;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,yBAAyB;AACvE,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;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;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,IAAI;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;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,aAAa;AACb,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,KAAK;AAC3D,+BAA+B,cAAc;AAC7C,yBAAyB,KAAK;AAC9B;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,uDAAuD,KAAK;AAC5D,+BAA+B,cAAc;AAC7C,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,QAAQ,0EAA0E;AAC9I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,iBAAiB,GAAG,IAAI;AAC9F;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;;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;;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,yEAAyE,SAAS,6DAA6D,WAAW,KAAK,kBAAkB;AACjL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,SAAS,6DAA6D,WAAW,KAAK,kBAAkB;AACzK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,EAAE;AACnC;AACA;AACA;AACA;AACA;AACA,yFAAyF,SAAS;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,EAAE;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,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iCAAiC,EAAE;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,iCAAiC,EAAE;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,gFAAgF,MAAM,UAAU,UAAU;AAC1G;AACA;AACA;AACA,sEAAsE,UAAU;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,iCAAiC,EAAE;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,KAAK;AACL;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oDAAoD;AACrD;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;AACA,kBAAkB,wBAAwB;AAC1C,gBAAgB,sBAAsB;AACtC,aAAa,sBAAsB;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,kBAAkB;AAClB,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,6CAA6C,2BAA2B,2BAA2B,gCAAgC;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC;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,SAAS;AACT,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,WAAW;AACvD;AACA;AACA;AACA;AACA;AACA,yCAAyC,KAAK,YAAY,YAAY;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CAAC,0BAA0B;AAC3B;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,oBAAoB;AACpB;AACA;AACA,0BAA0B;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,wCAAwC,GAAG;AAC3C;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,MAAM,EAAE,OAAO,EAAE,MAAM;AACzD;AACA,2BAA2B,oBAAoB;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,IAAI,EAAE,0BAA0B;AAC9F,yBAAyB,EAAE,0BAA0B,IAAI,SAAS,IAAI,oBAAoB;AAC1F;AACA;AACA;AACA;AACA;AACA,eAAe,4BAA4B,EAAE,qDAAqD,EAAE,4BAA4B;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,EAAE,4DAA4D;AAC/E;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,SAAS;AAC/E,2EAA2E,SAAS;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,SAAS;AAC/E,uDAAuD,SAAS;AAChE;AACA;AACA;AACA;AACA;AACA,iCAAiC,UAAU,GAAG,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,IAAI;AAC9B,qEAAqE,KAAK,GAAG,YAAY;AACzF,0CAA0C,IAAI;AAC9C;AACA;AACA;AACA,iCAAiC,IAAI,KAAK;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,KAAK,GAAG,GAAG;AAC7B;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,oCAAoC;AACpC,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,kFAAkF,SAAS;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,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;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iCAAiC;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,0EAA0E,KAAK;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,oBAAoB,oDAAoD;AACxE;AACA;AACA;AACA,oBAAoB,4CAA4C,gBAAgB,GAAG;AACnF;AACA;AACA,oBAAoB,sDAAsD;AAC1E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,aAAa,4BAA4B,YAAY;AAC1E;AACA;AACA;AACA,iBAAiB,GAAG,kCAAkC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4BAA4B,EAAE,qDAAqD,EAAE,4BAA4B;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAY,6BAA6B;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,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,YAAY,qCAAqC;AACjD;AACA,qDAAqD,OAAO,iBAAiB,KAAK;AAClF,4CAA4C,2CAA2C;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF;AACnF;AACA,kEAAkE,KAAK;AACvE;AACA,4EAA4E,IAAI;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD,4BAA4B,eAAe;AAC3C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,OAAO,EAAE,8BAA8B,IAAI,aAAa;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4CAA4C;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,wBAAwB,EAAE,IAAI;AACjG;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,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;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;AACA;AACA,iBAAiB;AACjB;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,gBAAgB,OAAO,qBAAqB,OAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,cAAc;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,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sBAAsB,KAAK;AAC9D;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,uCAAuC,OAAO;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA,mEAAmE,OAAO;AAC1E;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;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,+BAA+B,iBAAiB,EAAE,mEAAmE,GAAG,cAAc;AACtI,gCAAgC,YAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,MAAM;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,aAAa;AACzD,8DAA8D,YAAY;AAC1E;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA,yEAAyE;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,kBAAkB,uBAAuB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,OAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,OAAO;AAChC;AACA,4CAA4C,6BAA6B;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,gBAAgB,cAAc;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,wBAAwB,mBAAmB;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,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;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,wBAAwB,mBAAmB;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,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,kBAAkB,GAAG,QAAQ,GAAG,cAAc,GAAG,MAAM;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,KAAK;AAC7C;AACA;AACA;AACA,gBAAgB,0BAA0B;AAC1C;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,iEAAiE;AACxI;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,YAAY,0CAA0C;AACtD;AACA;AACA,YAAY,0BAA0B;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,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,MAAM,oCAAoC,mBAAmB;AAC3F;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,2BAA2B;AAC3F;AACA;AACA;AACA;AACA;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,uBAAuB,iBAAiB,EAAE,6BAA6B;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,YAAY,4EAA4E;AACxF;AACA;AACA,8FAA8F,0CAA0C,cAAc,8BAA8B;AACpL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,qEAAqE,kDAAkD,oDAAoD;AACvL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,eAAe;AAC/C,cAAc;AACd;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kCAAkC;AACxC;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;AACA;AACA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mBAAmB;AAChD,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA,qBAAqB,OAAO;AAC5B;AACA,sBAAsB,OAAO;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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,IAAI;AACrE;AACA,+CAA+C,iBAAiB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,YAAY,wBAAwB,KAAK,MAAM,KAAK,kBAAkB;AACrG,YAAY,sCAAsC;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,gDAAgD,yDAAyD;AACzG;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,yCAAyC;AACzC;AACA;AACA,yCAAyC;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,2CAA2C,KAAK;AAChD;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,sCAAsC,KAAK;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uBAAuB;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wCAAwC;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,sCAAsC,mEAAmE;AACzG;AACA;AACA;AACA,kCAAkC,4EAA4E;AAC9G;AACA;AACA,kCAAkC,yEAAyE;AAC3G;AACA;AACA,kCAAkC,qFAAqF;AACvH;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,6CAA6C,KAAK;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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,KAAK,GAAG,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8EAA8E;AAC1G;AACA;AACA,4BAA4B,iEAAiE;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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yBAAyB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB,yBAAyB;AACzC;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,0BAA0B;AAC1C;AACA,iEAAiE,wDAAwD;AACzH,6EAA6E;AAC7E,gDAAgD,YAAY;AAC5D;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,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,gCAAgC,gBAAgB;AAChD,kCAAkC,kBAAkB;AACpD,gCAAgC,gBAAgB;AAChD,mCAAmC,mBAAmB;AACtD;AACA,yCAAyC,aAAa,iMAAiM;AACvP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,yCAAyC,aAAa,qRAAqR,+EAA+E,4QAA4Q;AACtqB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E;AAC7E,+EAA+E;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,wFAAwF;AAC7G;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,+GAA+G;AAC/G,4EAA4E;AAC5E,8EAA8E;AAC9E;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0BAA0B;AACtC,yCAAyC,2EAA2E;AACpH;AACA;AACA;AACA;AACA,6WAA6W;AAC7W;AACA;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,0CAA0C;AACrG;AACA;AACA,yEAAyE,SAAS,IAAI,OAAO;AAC7F;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,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,MAAM,GAAG,2BAA2B;AACxG;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI;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,2CAA2C;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kKAAkK,IAAI;AACxL;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;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,0EAA0E,2BAA2B;AACrG;AACA,6GAA6G,yBAAyB,EAAE,QAAQ;AAChJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2BAA2B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,mCAAmC;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,UAAU,SAAS,yCAAyC;AACnJ;AACA;AACA;AACA,oFAAoF,UAAU,SAAS,yCAAyC;AAChJ;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,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,iBAAiB;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,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;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;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,qBAAqB;AACzF,kFAAkF,8BAA8B,sEAAsE,8BAA8B,iBAAiB,iBAAiB;AACtP;AACA,aAAa;AACb,qDAAqD,kCAAkC;AACvF,wEAAwE;AACxE;AACA,qEAAqE,oCAAoC;AACzG;AACA;AACA,qEAAqE,gCAAgC;AACrG;AACA;AACA;AACA,SAAS;AACT,uCAAuC;AACvC;AACA;AACA;AACA;AACA,SAAS;AACT,yCAAyC,sCAAsC;AAC/E;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA,gBAAgB,8BAA8B;AAC9C;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA,SAAS;AACT;AACA,oDAAoD,kBAAkB;AACtE;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,EAAE,0BAA0B,IAAI,SAAS;AAC7E;AACA,qCAAqC,IAAI,+CAA+C;AACxF,SAAS;AACT,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,2CAA2C,OAAO,KAAK;AACzG;AACA,yDAAyD,2CAA2C,OAAO,IAAI;AAC/G,yDAAyD,4CAA4C,OAAO,IAAI;AAChH;AACA;AACA;AACA,8CAA8C,8BAA8B,EAAE,WAAW,GAAG;AAC5F;AACA;AACA,4BAA4B,EAAE,oBAAoB,IAAI,cAAc,IAAI,sDAAsD,IAAI,cAAc;AAChJ,8CAA8C,sCAAsC;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;AACA;AACA;AACA,gDAAgD,YAAY;AAC5D;AACA;AACA;AACA;AACA,mFAAmF,GAAG;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,IAAI;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,8BAA8B;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD;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,wBAAwB,IAAI;AAC5B;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,8CAA8C,gBAAgB;AAC9D;AACA;AACA;AACA,qEAAqE,yBAAyB;AAC9F;AACA;AACA,qEAAqE,qBAAqB;AAC1F;AACA;AACA;AACA,iEAAiE,sBAAsB;AACvF,kCAAkC,gBAAgB,GAAG,iBAAiB,EAAE,gEAAgE;AACxI;AACA,aAAa;AACb;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA,SAAS;AACT,uCAAuC,yCAAyC;AAChF,4CAA4C,2EAA2E;AACvH;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA,gBAAgB,8BAA8B;AAC9C;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA,SAAS;AACT;AACA,qDAAqD,kBAAkB;AACvE;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,EAAE,0BAA0B,IAAI,SAAS;AAC7E;AACA,qCAAqC,IAAI,+CAA+C;AACxF,SAAS;AACT,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,OAAO;AACjC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,OAAO;AAClC,0BAA0B,OAAO;AACjC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,EAAE,WAAW;AACtC,aAAa;AACb;AACA;AACA,4EAA4E,IAAI;AAChF;AACA,8CAA8C,mCAAmC,EAAE,oBAAoB,IAAI,cAAc,IAAI,OAAO,GAAG;AACvI;AACA;AACA;AACA;AACA;AACA;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,UAAU;AAC1D;AACA;AACA;AACA;AACA,mFAAmF,GAAG;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,IAAI;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,SAAS;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,8BAA8B;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,mBAAmB;AAC1D;AACA;AACA;AACA;AACA;AACA,2CAA2C,mBAAmB;AAC9D;AACA;AACA,2CAA2C,mBAAmB;AAC9D;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8BAA8B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA,0DAA0D,kBAAkB;AAC5E;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,kDAAkD,kBAAkB;AACpE;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,yBAAyB;AAC3E;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;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,kBAAkB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,iBAAiB;AACjE;AACA;AACA;AACA;AACA,mFAAmF,GAAG;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,8BAA8B;AAC3F;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,mCAAmC,iBAAiB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2BAA2B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,8BAA8B;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,IAAI,EAAE,0BAA0B;AACzF;AACA;AACA;AACA;AACA;AACA,iBAAiB,EAAE,IAAI,IAAI,SAAS,IAAI,iBAAiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,QAAQ;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B,2DAA2D,KAAK,IAAI,eAAe;AACnF;AACA,uBAAuB,KAAK,EAAE,MAAM;AACpC;AACA;AACA,mBAAmB,KAAK,EAAE,MAAM,GAAG,SAAS,IAAI,IAAI;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,yCAAyC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,aAAa;AACxE,oFAAoF,GAAG,GAAG,IAAI;AAC9F;AACA;AACA;AACA,2DAA2D,aAAa;AACxE,uEAAuE,GAAG,GAAG,IAAI;AACjF;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,wCAAwC;AACxC;AACA;AACA,mCAAmC;AACnC;AACA,gFAAgF,qBAAqB;AACrG;AACA;AACA;AACA,4GAA4G;AAC5G;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;AACA;AACA;AACA;AACA,qEAAqE,mDAAmD;AACxH;AACA;AACA;AACA;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,0DAA0D,IAAI;AAC9D;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sCAAsC;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,mCAAmC;AACnD;AACA;AACA,gBAAgB,gDAAgD;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;AACA;AACA;AACA,gEAAgE,UAAU;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,2CAA2C,4BAA4B;AACvE;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;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;;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,iBAAiB;AACjB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gDAAgD;AACvE;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;;AAEA;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;;AAEA;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;;AAEA;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;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEq8G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC30rBr8G;AACA;AACA;AACA;AACA;;AAE2E;AACpC;;AAEvC;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA,kBAAkB,WAAW;AAC7B;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,iDAAiD,yCAAyC;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,eAAe;AAC1C,0BAA0B,SAAS,EAAE,8BAA8B;AACnE;AACA,0BAA0B,aAAa,iBAAiB,4BAA4B,GAAG,SAAS;AAChG;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,kBAAkB,IAAI,MAAM;AAC7E,sGAAsG,MAAM,EAAE,QAAQ;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,0BAA0B;AACnG;AACA,0DAA0D,wBAAwB;AAClF;AACA;AACA;AACA,kDAAkD,aAAa;AAC/D,6EAA6E,0BAA0B,OAAO,gBAAgB;AAC9H;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,IAAI;AAC5C,mDAAmD,UAAU,EAAE,YAAY,EAAE,QAAQ;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,gBAAgB;AACnG;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,QAAQ,UAAU,MAAM;AAC7E;AACA;AACA;AACA;AACA;AACA,8CAA8C,6BAA6B,UAAU,sBAAsB;AAC3G;;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,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,iEAAiE,SAAS;AAC1E,0GAA0G,SAAS;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;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,+BAA+B;AAC5E,4CAA4C,8BAA8B;AAC1E;AACA,mDAAmD,yCAAyC;AAC5F,iDAAiD,uCAAuC;;AAExF;AACA;AACA;AACA;AACA;AACA;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,kCAAkC;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B;;AAEA;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,CAAC,0DAA0D;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,CAAC,oDAAoD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,iBAAiB;AAC3E;AACA;AACA,QAAQ,4CAA4C;AACpD;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,+BAA+B,IAAI,oCAAoC;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,+BAA+B,IAAI,qCAAqC;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kDAAkD;;AAEnD;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,8BAA8B;AAC3E,4CAA4C,8BAA8B;AAC1E,6CAA6C,+BAA+B;AAC5E,4CAA4C,8BAA8B;AAC1E,gDAAgD,8BAA8B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,2CAA2C;;AAE1F;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,UAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,UAAU;AACtC;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,iBAAiB;AACjD;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;;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;;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;;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,4CAA4C,OAAO,2CAA2C,WAAW;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,OAAO,KAAK,OAAO,IAAI,MAAM;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,qBAAqB;AACzB;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,mCAAmC,+BAA+B;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,oCAAoC;AAC9E,kFAAkF;AAClF;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,CAAC,kDAAkD;AACnD;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;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,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,cAAc,gBAAgB;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mCAAmC;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,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,SAAS;AAC1E;AACA;AACA;AACA,gBAAgB,8FAA8F;AAC9G;AACA;AACA;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,qBAAqB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AAChC;AACA,6BAA6B,SAAS;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;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;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,yBAAyB,mCAAmC,YAAY,gCAAgC;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,0BAA0B;AAChH;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACxC,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;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,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,cAAc;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;;AAEA;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,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,WAAW;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,WAAW;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,WAAW;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,0EAA0E;;AAElJ;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;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,iCAAiC,WAAW;AAC5C;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,QAAQ,kCAAkC;AAC1C,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,MAAM,mCAAmC;AACzC,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,sBAAsB,8HAA8H;AACrO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,sBAAsB,8DAA8D;AAC/J;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,sBAAsB,4HAA4H;AAC7N;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,6DAA6D;;AAEnJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sCAAsC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8CAA8C;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,aAAa;AACjE,6BAA6B,cAAc,GAAG;AAC9C,uBAAuB;AACvB;AACA,8BAA8B,cAAc;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E;AAC/E;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,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;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,oBAAoB,UAAU;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,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;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,kDAAkD;AAClD;AACA,sEAAsE,GAAG;AACzE;AACA;AACA;AACA;AACA,gFAAgF,GAAG;AACnF;AACA;AACA;AACA;AACA,yFAAyF,GAAG,6BAA6B,GAAG;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,mBAAmB;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,aAAa;AACb;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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA,iEAAiE;AACjE;AACA;AACA,uCAAuC,KAAK,sBAAsB,KAAK;AACvE,mBAAmB,KAAK,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;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,6CAA6C,mDAAmD;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gHAAgH,OAAO;AACvH;;AAEA,2DAA2D,OAAO;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB;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,oBAAoB,EAAE,kBAAkB;AACxC;AACA,cAAc,kBAAkB,EAAE,iCAAiC,GAAG,QAAQ,KAAK,+BAA+B;AAClH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,OAAO;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;;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,wBAAwB,gBAAgB;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;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,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;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,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,IAAI,EAAE;AACN,CAAC;AACD;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;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,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,2CAA2C;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,KAAK,UAAU,YAAY;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,OAAO;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,cAAc;AACd;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;AACA;AACA;AACA,0DAA0D;AAC1D;AACA,gBAAgB;AAChB;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uIAAuI;AACvI;AACA;AACA;AACA;AACA;AACA,6DAA6D,KAAK;AAClE;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,oBAAoB;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,yFAAyF,eAAe;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,+EAA+E;AAC/E,KAAK;AACL;AACA,8CAA8C;AAC9C,KAAK;AACL,4BAA4B;AAC5B,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,UAAU;AACV;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,kCAAkC;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,mCAAmC;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,0DAA0D,iCAAiC;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,yCAAyC;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD,iCAAiC;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,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA,8EAA8E,eAAe;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,SAAS;AAC7E;AACA;AACA;AACA;AACA,6EAA6E,cAAc;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,KAAK;AAChE,2BAA2B,cAAc;AACzC,qBAAqB,KAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,KAAK;AACjE,2BAA2B,cAAc;AACzC;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,uBAAuB;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,gCAAgC,6BAA6B;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,wBAAwB,6BAA6B;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,0CAA0C,uBAAuB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,6BAA6B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS,aAAa,uEAAuE;AAChH;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;AACA;AACA;AACA,kBAAkB,gDAAgD;AAClE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,yBAAyB,KAAK;AAC9B;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,gHAAgH,YAAY;AAC5H;AACA;AACA;AACA,sCAAsC,SAAS;AAC/C,yHAAyH,MAAM,KAAK,SAAS,qBAAqB,UAAU;AAC5K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA,uBAAuB,eAAe,EAAE,UAAU;AAClD,uBAAuB,4DAA4D,EAAE,UAAU;AAC/F;AACA,aAAa;AACb;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;;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,CAAC,kDAAkD;;AAEnD;AACA;AACA;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;;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,yBAAyB;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,4CAA4C,qBAAqB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA,oCAAoC,mBAAmB;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,8EAA8E,gBAAgB;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,kCAAkC;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,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,uBAAuB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,qBAAqB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;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,sCAAsC,iBAAiB;AACvD;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;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,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,yBAAyB;;AAE/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,gBAAgB;AAC/D,4CAA4C,eAAe,IAAI,mBAAmB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;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;;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,sEAAsE,MAAM,eAAe;AAC3F;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA,8CAA8C,iCAAiC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,qCAAqC;AACnF;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,aAAa;AACb;AACA,QAAQ;AACR,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,UAAU;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,UAAU;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,4BAA4B,sBAAsB;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,SAAS;AACT;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,iBAAiB;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,4BAA4B,aAAa;AACzC,uBAAuB,qDAAqD;AAC5E;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,uCAAuC,wBAAwB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,4CAA4C,6BAA6B;AACzE;AACA;AACA;AACA,0CAA0C,wBAAwB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,uBAAuB,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,uBAAuB;AAC3N;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;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,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;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,oBAAoB,qBAAqB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,sBAAsB;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,wBAAwB,uBAAuB;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,qDAAqD;AACrD;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA,kCAAkC,MAAM,GAAG,yBAAyB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;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,wBAAwB,SAAS;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,0DAA0D,iBAAiB,wBAAwB,WAAW;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,SAAS,wCAAwC,YAAY;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;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;AACA;AACA;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,SAAS;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,mCAAmC,gBAAgB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,YAAY;AAChF,0EAA0E,qBAAqB;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,sBAAsB;AAC9C;AACA;AACA,oGAAoG,iBAAiB;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,KAAK;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,qBAAqB;AAC1E,8CAA8C,uBAAuB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,qBAAqB;AAC1E;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;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,qDAAqD,qBAAqB;AAC1E,8CAA8C,uBAAuB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;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,+BAA+B,4BAA4B;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,oBAAoB,mCAAmC;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,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;;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,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF;AACtF;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;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,iBAAiB;AAC3F;AACA;AACA;AACA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,kBAAkB;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,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qCAAqC;AACrE,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,kBAAkB;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mHAAmH,iBAAiB,KAAK,gBAAgB;AACzJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,UAAU;AAC9C;AACA;AACA;AACA,oCAAoC,MAAM;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,cAAc;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,YAAY,cAAc;AAC1B;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,2CAA2C;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oDAAoD;AACtF;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oCAAoC;AACjE;AACA;AACA;AACA;AACA,gHAAgH;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,sCAAsC;AACxE;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,qBAAqB;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,8CAA8C,QAAQ;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;;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;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;AACA;AACA,4BAA4B,iBAAiB;AAC7C;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI;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,4BAA4B,IAAI,GAAG,IAAI;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,4BAA4B,IAAI,GAAG,IAAI,GAAG,IAAI;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,4BAA4B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;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,4BAA4B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;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;AACA;AACA;AACA,4BAA4B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;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,mBAAmB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD,4BAA4B,mBAAmB;AAC/C;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;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;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;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,oDAAoD;AAC7G,4FAA4F,UAAU;AACtG;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,oDAAoD;AAC7G,sFAAsF,UAAU;AAChG;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,2CAA2C,mDAAmD;AAC9F;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;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,4DAA4D,eAAe;AAC3E,IAAI,gBAAgB,iBAAiB,gBAAgB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,MAAM,GAAG,6BAA6B;AACxE,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,wEAAwE;AAC9E,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,6BAA6B;AACpF,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,0BAA0B,kCAAkC,MAAM,GAAG,6BAA6B;AACpH,KAAK;AACL;AACA;AACA,qCAAqC,gBAAgB,0BAA0B;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,SAAS;AACtG;AACA;AACA;AACA;AACA,gDAAgD,gBAAgB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,kBAAkB;AAC/E;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,QAAQ;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,0BAA0B,OAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,qDAAqD;AAC5D,OAAO;AACP;AACA;AACA;AACA;AACA,2EAA2E,WAAW,EAAE,UAAU;AAClG;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,yBAAyB;AAChF;AACA;AACA;AACA;AACA;AACA,gCAAgC,0BAA0B;AAC1D;AACA;AACA;AACA,0CAA0C,0BAA0B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,QAAQ,iBAAiB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uCAAuC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,qBAAqB;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;;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;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,SAAS;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,4BAA4B,uCAAuC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,wBAAwB;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,iDAAiD,UAAU;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,cAAc;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,oBAAoB,KAAK;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,8BAA8B,QAAQ;AACtC,iCAAiC,QAAQ;AACzC;AACA,qCAAqC,QAAQ;AAC7C;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AAC7C,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,yBAAyB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,cAAc,sBAAsB,mCAAmC;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACpD;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,iBAAiB,IAAI;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,uBAAuB,IAAI;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,uBAAuB,IAAI,GAAG,IAAI;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,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI;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,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;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,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;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,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD,4BAA4B,mBAAmB;AAC/C;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,0BAA0B,eAAe;AACzC;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc,KAAK;AACtC,sCAAsC;AACtC;AACA,mBAAmB,cAAc,KAAK;AACtC,sCAAsC;AACtC;AACA,mBAAmB,cAAc,KAAK;AACtC,sCAAsC;AACtC;AACA,mBAAmB,cAAc,KAAK;AACtC,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc,KAAK;AACtC,sCAAsC;AACtC;AACA,mBAAmB,cAAc,KAAK;AACtC,sCAAsC;AACtC;AACA,mBAAmB,cAAc,KAAK;AACtC,sCAAsC;AACtC;AACA,mBAAmB,cAAc,KAAK;AACtC,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,cAAc,yBAAyB,cAAc;AAC5E;AACA;AACA;AACA;AACA,uBAAuB,cAAc,yBAAyB,cAAc;AAC5E;AACA;AACA;AACA,uBAAuB,cAAc,yBAAyB,cAAc;AAC5E;AACA;AACA;AACA,uBAAuB,cAAc,yBAAyB,cAAc;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACf;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,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;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,kBAAkB;AAClB,kBAAkB;AAClB,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;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,oDAAoD,OAAO;AAC3D;AACA,yBAAyB,UAAU;AACnC;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAQ;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,uCAAuC,QAAQ;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,oDAAoD,mDAAmD;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,kBAAkB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,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;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,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,WAAW;AAC7C;AACA;AACA,kCAAkC,WAAW;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;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,IAAI;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI;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;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI;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,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI;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,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;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,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;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,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;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,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC9D;AACA;AACA;AACA;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,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;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,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACnF;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;AACA,uBAAuB,IAAI;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,uBAAuB,IAAI,GAAG,IAAI;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,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI;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,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;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,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;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,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;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,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACtF;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,sBAAsB,IAAI;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,sBAAsB,MAAM,QAAQ,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAM,QAAQ,MAAM,QAAQ,IAAI;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,IAAI;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB,gBAAgB;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,sBAAsB,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,IAAI;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB,gBAAgB,gBAAgB;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,sBAAsB,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ;AAC9E,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB,gBAAgB,gBAAgB,gBAAgB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;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,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ;AAC5F,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB,gBAAgB,gBAAgB,gBAAgB;AACtF,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,sBAAsB,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ;AAC5F,uBAAuB,MAAM,QAAQ,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB,gBAAgB,gBAAgB,gBAAgB;AACtF,SAAS,gBAAgB;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,kBAAkB,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ;AACxF,mBAAmB,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,IAAI;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB,gBAAgB,gBAAgB,gBAAgB;AACvF,UAAU,gBAAgB,gBAAgB,gBAAgB;AAC1D;AACA;AACA;AACA;AACA,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI;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,6BAA6B,IAAI,GAAG,IAAI;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,6BAA6B,IAAI,GAAG,IAAI,GAAG,IAAI;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,6BAA6B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;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,6BAA6B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;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,6BAA6B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,cAAc;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uvBAAuvB,EAAE,GAAG,EAAE,QAAQ,GAAG,MAAM,EAAE,oBAAoB,2HAA2H;;AAEh6B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,OAAO;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,0CAA0C;AAC3C;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;;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,CAAC,4CAA4C;AAC7C;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;;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,4BAA4B,mCAAmC;AAC/D;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,QAAQ;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;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,0BAA0B;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,oBAAoB,2BAA2B;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,0IAA0I,OAAO;AACjJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,aAAa;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,QAAQ;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F,OAAO;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,wBAAwB;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;;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;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;AACA;AACA;AACA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA;AACA;AACA,4BAA4B,MAAM,eAAe,2CAA2C,GAAG,qBAAqB,EAAE;AACtH;AACA,mDAAmD,MAAM,GAAG;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,IAAI;AACrC;AACA;AACA;AACA,mDAAmD,eAAe;AAClE,iCAAiC,IAAI,8BAA8B,SAAS,KAAK,MAAM;AACvF;AACA,wCAAwC,IAAI;AAC5C;AACA,wCAAwC,IAAI;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA,qFAAqF;AACrF;AACA;AACA;AACA,mCAAmC,iBAAiB,IAAI,EAAE,uBAAuB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,OAAO,kCAAkC,QAAQ;AAClF;AACA,iCAAiC,IAAI,8BAA8B,uBAAuB,MAAM,uBAAuB;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,QAAQ,8BAA8B,KAAK;AAC3E;AACA;AACA;AACA;AACA,gCAAgC,QAAQ,8BAA8B,KAAK;AAC3E;AACA;AACA;AACA,gCAAgC,QAAQ,+BAA+B,MAAM;AAC7E;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,wBAAwB;AAC5C;AACA;AACA;AACA,uCAAuC,eAAe;AACtD;AACA;AACA;AACA,0CAA0C,gBAAgB;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uBAAuB,EAAE,YAAY;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA,0BAA0B;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,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,QAAQ;AACtF;AACA,wJAAwJ,MAAM,GAAG,0BAA0B;AAC3L;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,GAAG;AACtB;AACA,8HAA8H,GAAG;AACjI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kGAAkG,QAAQ;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,4CAA4C;AAC5C,qCAAqC;AACrC,oCAAoC;AACpC,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;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,oBAAoB,oBAAoB;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,OAAO,IAAI,WAAW,EAAE,OAAO;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,uHAAuH,QAAQ;AAC/H;AACA;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,iBAAiB,EAAE,OAAO;AACpE,iDAAiD,OAAO,aAAa,iBAAiB,EAAE,OAAO;AAC/F;AACA;AACA;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,mBAAmB;AACvC;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA,sCAAsC,SAAS;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,KAAK;AACL;AACA;AACA,sBAAsB,mBAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,8CAA8C,KAAK;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,eAAe,aAAa,SAAS;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,yFAAyF,eAAe;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,4BAA4B;AAC5B;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,8BAA8B;AAC9B,qCAAqC,aAAa;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;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,6EAA6E,QAAQ;AACrF;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;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,qDAAqD,MAAM,EAAE,kBAAkB,EAAE,IAAI;AACrF,KAAK;AACL;AACA,uEAAuE;AACvE;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,OAAO,YAAY,IAAI;AAC5F;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,GAAG,MAAM;AACvB;AACA;AACA,SAAS,MAAM,GAAG,MAAM,SAAS,MAAM,GAAG,MAAM;AAChD;AACA;AACA;AACA,SAAS,MAAM,EAAE,MAAM,QAAQ,MAAM,EAAE,MAAM;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,kBAAkB,iBAAiB,KAAK,eAAe;AACvD;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,GAAG,MAAM;AACvB;AACA;AACA,SAAS,MAAM,GAAG,MAAM,SAAS,MAAM,GAAG,MAAM;AAChD;AACA;AACA;AACA,SAAS,MAAM,EAAE,MAAM,QAAQ,MAAM,EAAE,MAAM;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,iCAAiC,iBAAiB,wBAAwB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;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,wBAAwB,SAAS;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,qCAAqC,2BAA2B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;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,OAAO;AACP;AACA,KAAK;AACL;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,qBAAqB;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;;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;;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;;AAEA;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;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;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,kBAAkB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,6CAA6C;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,eAAe;AACtD;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qDAAqD;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,0DAA0D,GAAG;AAC7D;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,sCAAsC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,uCAAuC;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uCAAuC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,+CAA+C;AACxE;AACA;AACA;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,kCAAkC;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,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,uBAAuB;AAC/E;AACA;AACA,gFAAgF;AAChF;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,IAAI,IAAI,iBAAiB,KAAK,qBAAqB;AAC9G;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,wBAAwB;AAC5E;AACA;AACA,cAAc,wCAAwC;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;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,iBAAiB;AACrC;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,yBAAyB;AACzE,uEAAuE,KAAK,sBAAsB,UAAU;AAC5G;AACA;AACA;AACA;AACA;AACA,wCAAwC,+BAA+B;AACvE;AACA;AACA;AACA;AACA,8BAA8B,8BAA8B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+BAA+B;AACvE;AACA;AACA;AACA;AACA,8BAA8B,8BAA8B;AAC5D,8BAA8B,8BAA8B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+BAA+B;AACvE;AACA;AACA;AACA;AACA,8BAA8B,8BAA8B;AAC5D,8BAA8B,8BAA8B;AAC5D,8BAA8B,8BAA8B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+BAA+B;AACvE;AACA;AACA;AACA;AACA,8BAA8B,8BAA8B;AAC5D,8BAA8B,8BAA8B;AAC5D,8BAA8B,8BAA8B;AAC5D,8BAA8B,8BAA8B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+BAA+B;AACvE;AACA;AACA;AACA;AACA,gDAAgD,+BAA+B;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yCAAO;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,uCAAuC,oDAAoD;AAC3F,sCAAsC,8CAAY;AAClD;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,4BAA4B,mBAAmB,GAAG,sBAAsB,OAAO;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,IAAI;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,kDAAkD;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,6DAA6D,mBAAmB;AAChF;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,MAAM;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB;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,wBAAwB,uBAAuB;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,qHAAqH,gBAAgB;AACrI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;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,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,kCAAkC;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,2BAA2B;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;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,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,QAAQ;AACzD,wBAAwB,uBAAuB;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,kDAAkD;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,wCAAwC,8BAA8B;AACtE;AACA,qDAAqD,8DAA8D;AACnH,gFAAgF,gBAAgB;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qDAAqD,8DAA8D;AACnH,gFAAgF,gBAAgB;AAChG;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,8DAA8D;AACnH;AACA,sEAAsE,gBAAgB;AACtF;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB,4BAA4B,qBAAqB;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;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,6CAA6C,wBAAwB,4BAA4B,8BAA8B;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yBAAyB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,MAAM,EAAE,yBAAyB,OAAO,+BAA+B;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,yBAAyB,4CAA4C,YAAY,MAAM,WAAW;AACtI,8CAA8C,yBAAyB,kCAAkC,YAAY,MAAM,WAAW;AACtI,oFAAoF,yBAAyB,+BAA+B,YAAY,MAAM,WAAW;AACzK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yBAAyB;AAC9D;AACA;AACA;AACA;AACA;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,UAAU,4BAA4B,qBAAqB;AAChH;AACA;AACA,gDAAgD,UAAU,4BAA4B,qBAAqB;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,KAAK;AACL;AACA;AACA;AACA;AACA;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,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yCAAyC,mBAAmB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,yDAAyD;AAC9G;AACA,iDAAiD,UAAU;AAC3D;AACA,sDAAsD,qBAAqB;AAC3E;AACA;AACA,oDAAoD,mCAAmC;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,UAAU;AAC/E,2DAA2D,wCAAwC,wYAAwY;AAC3e;AACA;AACA;AACA;AACA;AACA;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE,qDAAqD,mDAAmD;AACxG;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kCAAkC,KAAK;AACvC,yCAAyC,mDAAmD;AAC5F;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,mDAAmD;AACxG,gFAAgF,UAAU;AAC1F;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8DAA8D;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,MAAM;AAC3F,gCAAgC,wBAAwB;AACxD;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,wBAAwB,wBAAwB;AAChD;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,qDAAqD,6DAA6D;AAClH,gFAAgF,cAAc;AAC9F;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qDAAqD,6DAA6D;AAClH;AACA,kEAAkE,cAAc;AAChF;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,sBAAsB,kDAAkD;AAC5H;AACA;AACA;AACA;AACA,2DAA2D,YAAY;AACvE;AACA;AACA;AACA;AACA,qEAAqE,qBAAqB;AAC1F;AACA;AACA;AACA;AACA,uEAAuE,qBAAqB;AAC5F;AACA;AACA;AACA;AACA,8EAA8E,kBAAkB;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6BAA6B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0BAA0B;AACtC;AACA;AACA;AACA,oDAAoD,UAAU;AAC9D;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,iBAAiB;;AAEhG;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;;AAEA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,KAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,uBAAuB;AACtE;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,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,kCAAkC;AACjF,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE,iEAAiE,uFAAuF;AACxJ;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC,SAAS;AACT,kBAAkB;AAClB;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB,GAAG;AACxB,KAAK;AACL,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,6DAA6D;AACjE;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,cAAc,cAAc,EAAE,cAAc,EAAE,cAAc;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C,mDAAmD,uCAAuC;AAC1F;AACA;AACA;AACA,SAAS;AACT,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,YAAY;AACxB,YAAY,yBAAyB;AACrC,YAAY,YAAY;AACxB;AACA;AACA,kBAAkB,uCAAuC;AACzD,IAAI;AACJ;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,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yBAAyB;AACrC,YAAY,YAAY;AACxB;AACA;AACA,kBAAkB,iDAAiD;AACnE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B,YAAY,yBAAyB;AACrC,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA,kBAAkB,+CAA+C;AACjE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,mBAAmB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,yBAAyB;AACrC,YAAY,YAAY;AACxB;AACA;AACA,kBAAkB,+CAA+C;AACjE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6BAA6B;AACzC,YAAY,yBAAyB;AACrC,YAAY,YAAY;AACxB;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gEAAgE;;AAEjE;AACA;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,uBAAuB;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,gBAAgB,0BAA0B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB,2BAA2B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,oDAAoD,6DAA6D;AACjH;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC,SAAS;AACT,CAAC;AACD;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,SAAS;AACT;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,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,0BAA0B;AACxE,qCAAqC,WAAW;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAU;AAChC,oDAAoD,QAAQ;AAC5D;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,+BAA+B;AACnE,UAAU;AACV,QAAQ;AACR;AACA;AACA;AACA;AACA,wCAAwC,cAAc;AACtD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oHAAoH;AACtI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,yBAAyB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,yBAAyB;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;AACA,8BAA8B,0BAA0B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI;AACvB;AACA;AACA;AACA,uDAAuD;AACvD,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;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,0BAA0B;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,aAAa,sBAAsB,WAAW;AAC9C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uBAAuB;AAC7C;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb,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,aAAa;AACb;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,aAAa;AACb;AACA,+BAA+B,sDAAsD;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,uDAAuD,+CAA+C;AACtG;AACA;AACA;AACA,SAAS,iBAAiB,UAAU,cAAc,IAAI;AACtD,CAAC;AACD;AACA,yBAAyB,mBAAmB;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,qEAAqE;AACrE,+DAA+D,+DAA+D;AAC9H;AACA;AACA;AACA,SAAS,iBAAiB,YAAY;AACtC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,+CAA+C,8BAA8B;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,KAAK;AACnC;AACA;AACA;AACA;AACA;AACA,gFAAgF,iCAAiC;AACjH;AACA;AACA,oFAAoF,iCAAiC;AACrH;AACA;AACA,iBAAiB;AACjB,iDAAiD,0CAA0C;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,4CAA4C;AAC7F,6BAA6B,mCAAmC;AAChE;AACA;AACA;AACA;AACA;AACA,qDAAqD,kFAAkF;AACvI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,2CAA2C;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,eAAe;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,qDAAqD;AACrD,uDAAuD,+CAA+C;AACtG;AACA;AACA;AACA,SAAS,iBAAiB,UAAU,gBAAgB,IAAI;AACxD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,SAAS;AACT,sCAAsC,4CAAU;AAChD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,6BAA6B,4CAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,YAAY,2CAAO,kCAAkC,qDAAK;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,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,0DAA0D,yEAAyE;AACnI;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC,SAAS,iBAAiB,UAAU,cAAc,IAAI,gBAAgB,IAAI,oBAAoB,IAAI,kCAAkC,IAAI,6BAA6B,IAAI;AACzK,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,IAAI;AAC9C;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA;;AAEA;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,YAAY;AACZ;AACA,uCAAuC,MAAM;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,cAAc;AAC9D,uDAAuD,QAAQ;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,mBAAmB;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,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;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,SAAS;AACT;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,uBAAuB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,YAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8BAA8B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,iBAAiB;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,wCAAwC,4BAA4B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,iBAAiB;AAC7D;AACA;AACA;AACA;AACA;AACA,2CAA2C,iBAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA,uCAAuC,iBAAiB;AACxD;AACA;AACA;AACA;AACA;AACA,0CAA0C,iBAAiB;AAC3D;AACA;AACA;AACA;AACA;AACA,iDAAiD,iBAAiB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,sBAAsB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;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,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,+DAA+D,iBAAiB;AAChF;AACA;AACA,+CAA+C,iBAAiB;AAChE;AACA;AACA;AACA,2CAA2C,iBAAiB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,4BAA4B;AAC1D;AACA,oCAAoC,4BAA4B;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,iBAAiB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,gBAAgB;AACvE;AACA;AACA;AACA,WAAW;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,kBAAkB,6BAA6B;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;;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,qCAAqC,iBAAiB;AACtD;AACA;AACA;AACA;AACA;AACA,6CAA6C,iBAAiB;AAC9D;AACA;AACA;AACA;AACA;AACA,yCAAyC,iBAAiB;AAC1D;AACA;AACA;AACA;AACA;AACA,2CAA2C,iBAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA,0CAA0C,iBAAiB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,eAAe;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,iBAAiB;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,iDAAiD,iBAAiB;AAClE;AACA;AACA;AACA;AACA,6CAA6C,iBAAiB;AAC9D;AACA;AACA,+CAA+C,gBAAgB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,6BAA6B;AACvD,kBAAkB,uBAAuB;AACzC,QAAQ,uBAAuB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,sBAAsB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,SAAS,aAAa,kCAAkC;AACnH;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,oFAAoF;AACjI;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,0BAA0B,6BAA6B;AACvD,kBAAkB,uBAAuB;AACzC,QAAQ,uBAAuB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,sBAAsB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,GAAG;AAC1D;AACA;AACA;AACA;AACA;AACA,6CAA6C,oFAAoF;;AAEjI;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;AACA;AACA;AACA,MAAM,2CAA2C;AACjD,MAAM,wCAAwC;AAC9C,MAAM,wCAAwC;AAC9C,MAAM,4BAA4B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE,0DAA0D,yBAAyB;AACnF,0DAA0D;AAC1D;AACA;AACA;AACA,SAAS,iBAAiB,UAAU,sBAAsB,IAAI;AAC9D,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,uEAAuE;AAChH,yEAAyE,eAAe;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,uEAAuE;AAChH,yEAAyE,eAAe;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,uEAAuE,eAAe;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,wEAAwE;AACjH,0EAA0E,eAAe;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,sEAAsE;AAC/G,wEAAwE,eAAe;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,sEAAsE;AAC/G,wEAAwE,eAAe;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,kEAAkE;AAC3G,oEAAoE,eAAe;AACnF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAE2nQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpj4B3n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E;MAAEpgH,IAAI,EAAE88B,qDAAaimC;IAAC,CAAC,EAAE;MAAE/iE,IAAI,EAAE6iC,SAAS;MAAE61B,UAAU,EAAE,CAAC;QACzE14D,IAAI,EAAE0yD,mDAAQA;MAClB,CAAC,EAAE;QACC1yD,IAAI,EAAEqyD,iDAAM;QACZttD,IAAI,EAAE,CAACo2H,uBAAuB;MAClC,CAAC;IAAE,CAAC,CAAC;EACrB,CAAC;AAAA;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASa,iBAAiBA,CAAC3zH,KAAK,EAAE;EAC9B;EACA,OAAOA,KAAK,IAAI,IAAI,IAAIA,KAAK,CAACrH,MAAM,KAAK,CAAC;AAC9C;AACA,SAASi7H,cAAcA,CAAC5zH,KAAK,EAAE;EAC3B;EACA,OAAOA,KAAK,IAAI,IAAI,IAAI,OAAOA,KAAK,CAACrH,MAAM,KAAK,QAAQ;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,MAAMk7H,aAAa,GAAG,IAAIzpE,yDAAc,CAAC,cAAc,CAAC;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,MAAM0pE,mBAAmB,GAAG,IAAI1pE,yDAAc,CAAC,mBAAmB,CAAC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM2pE,YAAY,GAAG,oMAAoM;AACzN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,UAAU,CAAC;EACb;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,OAAOr5H,GAAGA,CAACA,GAAG,EAAE;IACZ,OAAOs5H,YAAY,CAACt5H,GAAG,CAAC;EAC5B;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,OAAOkG,GAAGA,CAACA,GAAG,EAAE;IACZ,OAAOqzH,YAAY,CAACrzH,GAAG,CAAC;EAC5B;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,OAAOszH,QAAQA,CAACC,OAAO,EAAE;IACrB,OAAOC,iBAAiB,CAACD,OAAO,CAAC;EACrC;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,OAAOE,YAAYA,CAACF,OAAO,EAAE;IACzB,OAAOG,qBAAqB,CAACH,OAAO,CAAC;EACzC;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,OAAOI,KAAKA,CAACJ,OAAO,EAAE;IAClB,OAAOK,cAAc,CAACL,OAAO,CAAC;EAClC;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,OAAOM,SAASA,CAACA,SAAS,EAAE;IACxB,OAAOC,kBAAkB,CAACD,SAAS,CAAC;EACxC;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,OAAOE,SAASA,CAACA,SAAS,EAAE;IACxB,OAAOC,kBAAkB,CAACD,SAAS,CAAC;EACxC;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,OAAOvjB,OAAOA,CAACA,OAAO,EAAE;IACpB,OAAOyjB,gBAAgB,CAACzjB,OAAO,CAAC;EACpC;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;EACI,OAAO0jB,aAAaA,CAACX,OAAO,EAAE;IAC1B,OAAOW,aAAa,CAACX,OAAO,CAAC;EACjC;EACA,OAAOY,OAAOA,CAACC,UAAU,EAAE;IACvB,OAAOD,OAAO,CAACC,UAAU,CAAC;EAC9B;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,OAAOC,YAAYA,CAACD,UAAU,EAAE;IAC5B,OAAOC,YAAY,CAACD,UAAU,CAAC;EACnC;AACJ;AACA;AACA;AACA;AACA;AACA,SAAShB,YAAYA,CAACt5H,GAAG,EAAE;EACvB,OAAQy5H,OAAO,IAAK;IAChB,IAAIT,iBAAiB,CAACS,OAAO,CAACp0H,KAAK,CAAC,IAAI2zH,iBAAiB,CAACh5H,GAAG,CAAC,EAAE;MAC5D,OAAO,IAAI,CAAC,CAAC;IACjB;IACA,MAAMqF,KAAK,GAAGw+B,UAAU,CAAC41F,OAAO,CAACp0H,KAAK,CAAC;IACvC;IACA;IACA,OAAO,CAAC22D,KAAK,CAAC32D,KAAK,CAAC,IAAIA,KAAK,GAAGrF,GAAG,GAAG;MAAE,KAAK,EAAE;QAAE,KAAK,EAAEA,GAAG;QAAE,QAAQ,EAAEy5H,OAAO,CAACp0H;MAAM;IAAE,C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AAG,IAAI,CAACuB,yBAAyB,GAAGuI,gBAAgB;EAChF;EACA;AACJ;AACA;EACI,IAAIjsH,MAAMA,CAAA,EAAG;IACT,OAAO,IAAI,CAACikH,OAAO;EACvB;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACI,IAAInB,KAAKA,CAAA,EAAG;IACR,OAAO,IAAI,CAACvjG,MAAM,KAAK2qG,KAAK;EAChC;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACI,IAAInH,OAAOA,CAAA,EAAG;IACV,OAAO,IAAI,CAACxjG,MAAM,KAAK4qG,OAAO;EAClC;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACI,IAAInH,OAAOA,CAAA,EAAG;IACV,OAAO,IAAI,CAACzjG,MAAM,IAAI6qG,OAAO;EACjC;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,IAAItkG,QAAQA,CAAA,EAAG;IACX,OAAO,IAAI,CAACvG,MAAM,KAAK8qG,QAAQ;EACnC;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,IAAI3sE,OAAOA,CAAA,EAAG;IACV,OAAO,IAAI,CAACn+B,MAAM,KAAK8qG,QAAQ;EACnC;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;EACI,IAAInH,KAAKA,CAAA,EAAG;IACR,OAAO,CAAC,IAAI,CAACD,QAAQ;EACzB;EACA;AACJ;AACA;AACA;AACA;AACA;EACI,IAAIG,SAASA,CAAA,EAAG;IACZ,OAAO,CAAC,IAAI,CAACD,OAAO;EACxB;EACA;AACJ;AACA;AACA;AACA;AACA;EACI,IAAI6E,QAAQA,CAAA,EAAG;IACX,OAAO,IAAI,CAACkE,SAAS,GAAG,IAAI,CAACA,SAAS,GAAI,IAAI,CAAClsH,MAAM,GAAG,IAAI,CAACA,MAAM,CAACgoH,QAAQ,GAAG,QAAS;EAC5F;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIX,aAAaA,CAACzG,UAAU,EAAE;IACtB,IAAI,CAACqB,cAAc,GAAGrB,UAAU;IAChC,IAAI,CAAC4C,oBAAoB,GAAGuH,iBAAiB,CAACnK,UAAU,CAAC;EAC7D;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI2G,kBAAkBA,CAAC3G,UAAU,EAAE;IAC3B,IAAI,CAACuB,mBAAmB,GAAGvB,UAAU;IACrC,IAAI,CAAC8C,yBAAyB,GAAGuH,sBAAsB,CAACrK,UAAU,CAAC;EACvE;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI2B,aAAaA,CAAC3B,UAAU,EAAE;IACtB,IAAI,CAACyG,aAAa,CAAC9E,aAAa,CAAC3B,UAAU,EAAE,IAAI,CAACqB,cAAc,CAAC,CAAC;EACtE;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIkK,kBAAkBA,CAACvL,UAAU,EAAE;IAC3B,IAAI,CAAC2G,kBAAkB,CAAChF,aAAa,CAAC3B,UAAU,EAAE,IAAI,CAACuB,mBAAmB,CAAC,CAAC;EAChF;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIQ,gBAAgBA,CAAC/B,UAAU,EAAE;IACzB,IAAI,CAACyG,aAAa,CAAC1E,gBAAgB,CAAC/B,UAAU,EAAE,IAAI,CAACqB,cAAc,CAAC,CAAC;EACzE;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACImK,qBAAqBA,CAACxL,UAAU,EAAE;IAC9B,IAAI,CAAC2G,kBAAkB,CAAC5E,gBAAgB,CAAC/B,UAAU,EAAE,IAAI,CAACuB,mBAAmB,CAAC,CAAC;EACnF;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;EACIE,YAAYA,CAAChB,SAAS,EAAE;IACpB,OAAOgB,YAAY,CAAC,IAAI,CAACJ,cAAc,EAAEZ,SAAS,CAAC;EACvD;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACIgL,iBAAiBA,CAAChL,SAAS,EAAE;IACzB,OAAOgB,YAAY,CAAC,IAAI,CAACF,mBAAmB,EAAEd,SAAS,CAAC;EAC5D;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;EACIiL,eAAeA,CAAA,EAAG;IACd,IAAI,CAACjL,SAAS,GAAG,IAAI;EACzB;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;EACIkL,oBAAoBA,CAAA,EAAG;IACnB,IAAI,CAAC5I,cAAc,GAAG,IAAI;EAC9B;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIwE,aAAaA,CAAClmH,IAAI,GAAG,CAAC,CAAC,EAAE;IACrB,IAAI,CAACkhH,OAAO,GAAG,IAAI;IACnB,IAAI,IAAI,CAACc,OAAO,IAAI,CAAChiH,IAAI,CAACuqH,QAAQ,EAAE;MAChC,IAAI,CAACvI,OAAO,CAACkE,aAAa,CAAClmH,IAAI,CAAC;IACpC;EACJ;EACA;AACJ;AACA;AACA;EACIwqH,gBAAgBA,CAAA,EAAG;IACf,IAAI,CAACtE,aAAa,CAAC;MAAEqE,QAAQ,EAAE;IAAK,CAAC,CAAC;IACtC,IAAI,CAACb,aAAa,CAAE5L,OAAO,IAAKA,OAAO,CAAC0M,gBAAgB,CAAC,CAAC,CAAC;EAC/D;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIC,eAAeA,CAACzqH,IAAI,GAAG,CAAC,CAAC,EAAE;IACvB,IAAI,CAACkhH,OAAO,GAAG,KAAK;IACpB,IAAI,CAAC+E,eAAe,GAAG,KAAK;IAC5B,IAAI,CAACyD,aAAa,CAAE5L,OAAO,IAAK;MAC5BA,OAAO,CAAC2M,eAAe,CAAC;QAAEF,QAAQ,EAAE;MAAK,CAAC,CAAC;IAC/C,CAAC,CAAC;IACF,IAAI,IAAI,CAACvI,OAAO,IAAI,CAAChiH,IAAI,CAACuqH,QAAQ,EAAE;MAChC,IAAI,CAACvI,OAAO,CAAC0I,cAAc,CAAC1qH,IAAI,CAAC;IACrC;EACJ;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACImmH,WAAWA,CAACnmH,IAAI,GAAG,CAAC,CAAC,EAAE;IACnB,IAAI,CAACghH,QAAQ,GAAG,KAAK;IACrB,IAAI,IAAI,CAACgB,OAAO,IAAI,CAAChiH,IAAI,CAACuqH,QAAQ,EAAE;MAChC,IAAI,CAACvI,OAAO,CAACmE,WAAW,CAACnmH,IAAI,CAAC;IAClC;EACJ;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI2qH,cAAcA,CAAC3qH,IAAI,GAAG,CAAC,CAAC,EAAE;IACtB,IAAI,CAACghH,QAAQ,GAAG,IAAI;IACpB,IAAI,CAAC8E,aAAa,GAAG,KAAK;IAC1B,IAAI,CAAC4D,aAAa,CAAE5L,OAAO,IAAK;MAC5BA,OAAO,CAAC6M,cAAc,CAAC;QAAEJ,QAAQ,EAAE;MAAK,CAAC,CAAC;IAC9C,CAAC,CAAC;IACF,IAAI,IAAI,CAACvI,OAAO,IAAI,CAAChiH,IAAI,CAACuqH,QAAQ,EAAE;MAChC,IAAI,CAACvI,OAAO,CAAC4I,eAAe,CAAC5qH,IAAI,CAAC;IACtC;EACJ;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI6qH,aAAaA,CAAC7qH,IAAI,GAAG,CAAC,CAAC,EAAE;IACrB,IAAI,CAACsd,MAAM,GAAG6qG,OAAO;IACrB,IAAInoH,IAAI,CAAC8qH,SAAS,KAAK,KAAK,EAAE;MAC1B,IAAI,CAAC1J,aAAa,CAAC34H,IAAI,CAAC,IAAI,CAAC60B,MAAM,CAAC;IACxC;IACA,IAAI,IAAI,CAAC0kG,OAAO,IAAI,CAAChiH,IAAI,CAACuqH,QAAQ,EAAE;MAChC,IAAI,CAACvI,OAAO,CAAC6I,aAAa,CAAC7qH,IAAI,CAAC;IACpC;EACJ;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACImwC,OAAOA,CAACnwC,IAAI,GAAG,CAAC,CAAC,EAAE;IACf;IACA;IACA,MAAM+qH,iBAAiB,GAAG,IAAI,CAACC,kBAAkB,CAAChrH,IAAI,CAACuqH,QAAQ,CAAC;IAChE,IAAI,CAACjtG,MAAM,GAAG8qG,QAAQ;IACtB,IAAI,CAACvnG,MAAM,GAAG,IAAI;IAClB,IAAI,CAAC6oG,aAAa,CAAE5L,OAAO,IAAK;MAC5BA,OAAO,CAAC3tE,OAAO,CAAC5qD,MAAM,CAACurB,MAAM,CAACvrB,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAE9Q,IAAI,CAAC,EAAE;QAAEuqH,QAAQ,EAAE;MAAK,CAAC,CAAC,CAAC;IAC/E,CAAC,CAAC;IACF,IAAI,CAACU,YAAY,CAAC,CAAC;IACnB,IAAIjrH,IAAI,CAAC8qH,SAAS,KAAK,KAAK,EAAE;MAC1B,IAAI,CAACzJ,YAAY,CAAC54H,IAAI,CAAC,IAAI,CAACiB,KAAK,CAAC;MAClC,IAAI,CAAC03H,aAAa,CAAC34H,IAAI,CAAC,IAAI,CAAC60B,MAAM,CAAC;IACxC;IACA,IAAI,CAAC4tG,gBAAgB,CAAC3lI,MAAM,CAACurB,MAAM,CAACvrB,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAE9Q,IAAI,CAAC,EAAE;MAAE+qH;IAAkB,CAAC,CAAC,CAAC;IACpF,IAAI,CAACjB,iBAAiB,CAACxzH,OAAO,CAAE60H,QAAQ,IAAKA,QAAQ,CAAC,IAAI,CAAC,CAAC;EAChE;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIzyD,MAAMA,CAAC14D,IAAI,GAAG,CAAC,CAAC,EAAE;IACd;IACA;IACA,MAAM+qH,iBAAiB,GAAG,IAAI,CAACC,kBAAkB,CAAChrH,IAAI,CAACuqH,QAAQ,CAAC;IAChE,IAAI,CAACjtG,MAAM,GAAG2qG,KAAK;IACnB,IAAI,CAACyB,aAAa,CAAE5L,OAAO,IAAK;MAC5BA,OAAO,CAACplD,MAAM,CAACnzE,MAAM,CAACurB,MAAM,CAACvrB,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAE9Q,IAAI,CAAC,EAAE;QAAEuqH,QAAQ,EAAE;MAAK,CAAC,CAAC,CAAC;IAC9E,CAAC,CAAC;IACF,IAAI,CAAC/E,sBAAsB,CAAC;MAAE+E,QAAQ,EAAE,IAAI;MAAEO,SAAS,EAAE9qH,IAAI,CAAC8qH;IAAU,CAAC,CAAC;IAC1E,IAAI,CAACI,gBAAgB,CAAC3lI,MAAM,CAACurB,MAAM,CAACvrB,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAE9Q,IAAI,CAAC,EAAE;MAAE+qH;IAAkB,CAAC,CAAC,CAAC;IACpF,IAAI,CAACjB,iBAAiB,CAACxzH,OAAO,CAAE60H,QAAQ,IAAKA,QAAQ,CAAC,KAAK,CAAC,CAAC;EACjE;EACAD,gBAAgBA,CAAClrH,IAAI,EAAE;IACnB,IAAI,IAAI,CAACgiH,OAAO,IAAI,CAAChiH,IAAI,CAACuqH,QAAQ,EAAE;MAChC,IAAI,CAACvI,OAAO,CAACwD,sBAAsB,CAACxlH,IAAI,CAAC;MACzC,IAAI,CAACA,IAAI,CAAC+qH,iBAAiB,EAAE;QACzB,IAAI,CAAC/I,OAAO,CAAC4I,eAAe,CAAC,CAAC;MAClC;MACA,IAAI,CAAC5I,OAAO,CAAC0I,cAAc,CAAC,CAAC;IACjC;EACJ;EACA;AACJ;AACA;EACIU,SAASA,CAACrtH,MAAM,EAAE;IACd,IAAI,CAACikH,OAAO,GAAGjkH,MAAM;EACzB;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIynH,sBAAsBA,CAACxlH,IAAI,GAAG,CAAC,CAAC,EAAE;IAC9B,IAAI,CAACqrH,iBAAiB,CAAC,CAAC;IACxB,IAAI,CAACJ,YAAY,CAAC,CAAC;IACnB,IAAI,IAAI,CAACxvE,OAAO,EAAE;MACd,IAAI,CAAC6vE,2BAA2B,CAAC,CAAC;MAClC,IAAI,CAACzqG,MAAM,GAAG,IAAI,CAAC0qG,aAAa,CAAC,CAAC;MAClC,IAAI,CAACjuG,MAAM,GAAG,IAAI,CAACkuG,gBAAgB,CAAC,CAAC;MACrC,IAAI,IAAI,CAACluG,MAAM,KAAK2qG,KAAK,IAAI,IAAI,CAAC3qG,MAAM,KAAK6qG,OAAO,EAAE;QAClD,IAAI,CAACsD,kBAAkB,CAACzrH,IAAI,CAAC8qH,SAAS,CAAC;MAC3C;IACJ;IACA,IAAI9qH,IAAI,CAAC8qH,SAAS,KAAK,KAAK,EAAE;MAC1B,IAAI,CAACzJ,YAAY,CAAC54H,IAAI,CAAC,IAAI,CAACiB,KAAK,CAAC;MAClC,IAAI,CAAC03H,aAAa,CAAC34H,IAAI,CAAC,IAAI,CAAC60B,MAAM,CAAC;IACxC;IACA,IAAI,IAAI,CAAC0kG,OAAO,IAAI,CAAChiH,IAAI,CAACuqH,QAAQ,EAAE;MAChC,IAAI,CAACvI,OAAO,CAACwD,sBAAsB,CAACxlH,IAAI,CAAC;IAC7C;EACJ;EACA;EACA0rH,mBAAmBA,CAAC1rH,IAAI,GAAG;IAAE8qH,SAAS,EAAE;EAAK,CAAC,EAAE;IAC5C,IAAI,CAACpB,aAAa,CAAEiC,IAAI,IAAKA,IAAI,CAACD,mBAAmB,CAAC1rH,IAAI,CAAC,CAAC;IAC5D,IAAI,CAACwlH,sBAAsB,CAAC;MAAE+E,QAAQ,EAAE,IAAI;MAAEO,SAAS,EAAE9qH,IAAI,CAAC8qH;IAAU,CAAC,CAAC;EAC9E;EACAO,iBAAiBA,CAAA,EAAG;IAChB,IAAI,CAAC/tG,MAAM,GAAG,IAAI,CAACsuG,oBAAoB,CAAC,CAAC,GAAGxD,QAAQ,GAAGH,KAAK;EAChE;EACAsD,aAAaA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACnM,SAAS,GAAG,IAAI,CAACA,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI;EACvD;EACAqM,kBAAkBA,CAACX,SAAS,EAAE;IAC1B,IAAI,IAAI,CAACpJ,cAAc,EAAE;MACrB,IAAI,CAACpkG,MAAM,GAAG6qG,OAAO;MACrB,IAAI,CAACyB,4BAA4B,GAAG,IAAI;MACxC,MAAM5K,GAAG,GAAGD,YAAY,CAAC,IAAI,CAAC2C,cAAc,CAAC,IAAI,CAAC,CAAC;MACnD,IAAI,CAACmK,4BAA4B,GAAG7M,GAAG,CAAChkE,SAAS,CAAEn6B,MAAM,IAAK;QAC1D,IAAI,CAAC+oG,4BAA4B,GAAG,KAAK;QACzC;QACA;QACA;QACA,IAAI,CAACkC,SAAS,CAACjrG,MAAM,EAAE;UAAEiqG;QAAU,CAAC,CAAC;MACzC,CAAC,CAAC;IACN;EACJ;EACAQ,2BAA2BA,CAAA,EAAG;IAC1B,IAAI,IAAI,CAACO,4BAA4B,EAAE;MACnC,IAAI,CAACA,4BAA4B,CAAC5vE,WAAW,CAAC,CAAC;MAC/C,IAAI,CAAC2tE,4BAA4B,GAAG,KAAK;IAC7C;EACJ;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIkC,SAASA,CAACjrG,MAAM,EAAE7gB,IAAI,GAAG,CAAC,CAAC,EAAE;IACzB,IAAI,CAAC6gB,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACkrG,qBAAqB,CAAC/rH,IAAI,CAAC8qH,SAAS,KAAK,KAAK,CAAC;EACxD;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIzlH,GAAGA,CAAC7G,IAAI,EAAE;IACN,OAAO6pH,KAAK,CAAC,IAAI,EAAE7pH,IAAI,EAAE,GAAG,CAAC;EACjC;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIsjH,QAAQA,CAAC/5G,SAAS,EAAEvJ,IAAI,EAAE;IACtB,MAAMs/G,OAAO,GAAGt/G,IAAI,GAAG,IAAI,CAAC6G,GAAG,CAAC7G,IAAI,CAAC,GAAG,IAAI;IAC5C,OAAOs/G,OAAO,IAAIA,OAAO,CAACj9F,MAAM,GAAGi9F,OAAO,CAACj9F,MAAM,CAAC9Y,SAAS,CAAC,GAAG,IAAI;EACvE;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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AG,IAAI,CAACxK,OAAO,IAAI,IAAI,CAACA,OAAO,CAACf,KAAK;IACtD,OAAO,CAACsJ,QAAQ,IAAI,CAAC,CAACiC,WAAW,IAAI,CAAC,IAAI,CAACxK,OAAO,CAACmK,iBAAiB,CAAC,CAAC;EAC1E;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMjD,WAAW,SAASS,eAAe,CAAC;EACtC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI3hI,WAAWA,CAACskI,SAAS,GAAG,IAAI,EAAE1D,eAAe,EAAElH,cAAc,EAAE;IAC3D,KAAK,CAACiH,cAAc,CAACC,eAAe,CAAC,EAAEG,mBAAmB,CAACrH,cAAc,EAAEkH,eAAe,CAAC,CAAC;IAC5F;AACR;AACA;AACA;AACA;AACA;IACQ,IAAI,CAACxkG,YAAY,GAAG,IAAI;IACxB;IACA,IAAI,CAACqoG,SAAS,GAAG,EAAE;IACnB;IACA,IAAI,CAAC5G,cAAc,GAAG,KAAK;IAC3B,IAAI,CAAC6G,eAAe,CAACJ,SAAS,CAAC;IAC/B,IAAI,CAACC,kBAAkB,CAAC3D,eAAe,CAAC;IACxC,IAAI,CAACoD,gBAAgB,CAAC,CAAC;IACvB,IAAI,CAACxG,sBAAsB,CAAC;MACxB+E,QAAQ,EAAE,I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,EAAE1iI,IAAI,CAAC;MAChC,IAAI,CAAC4hI,QAAQ,CAAC5hI,IAAI,CAAC,CAACw/H,QAAQ,CAAC18H,KAAK,CAAC9C,IAAI,CAAC,EAAE;QAAE2jI,QAAQ,EAAE,IAAI;QAAEO,SAAS,EAAEl7H,OAAO,CAACk7H;MAAU,CAAC,CAAC;IAC/F,CAAC,CAAC;IACF,IAAI,CAACtF,sBAAsB,CAAC51H,OAAO,CAAC;EACxC;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIi9H,UAAUA,CAACnjI,KAAK,EAAEkG,OAAO,GAAG,CAAC,CAAC,EAAE;IAC5B;IACA;IACA;IACA;IACA,IAAIlG,KAAK,IAAI,IAAI,CAAC,mCACd;IACJnE,MAAM,CAAC41B,IAAI,CAACzxB,KAAK,CAAC,CAAC4M,OAAO,CAAC1P,IAAI,IAAI;MAC/B,IAAI,IAAI,CAAC4hI,QAAQ,CAAC5hI,IAAI,CAAC,EAAE;QACrB,IAAI,CAAC4hI,QAAQ,CAAC5hI,IAAI,CAAC,CAACimI,UAAU,CAACnjI,KAAK,CAAC9C,IAAI,CAAC,EAAE;UAAE2jI,QAAQ,EAAE,IAAI;UAAEO,SAAS,EAAEl7H,OAAO,CAACk7H;QAAU,CAAC,CAAC;MACjG;IACJ,CAAC,CAAC;IACF,IAAI,CAACtF,sBAAsB,CAAC51H,OAAO,CAAC;EACxC;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIgxC,KAAKA,CAACl3C,KAAK,GAAG,CAAC,CAAC,EAAE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CAACA,QAAQ,CAAC2E,WAAW,CAAC,CAAC1xE,OAAO,EAAE;QACpC,OAAO,KAAK;MAChB;IACJ;IACA,OAAOl2D,MAAM,CAAC41B,IAAI,CAAC,IAAI,CAACqtG,QAAQ,CAAC,CAACnmI,MAAM,GAAG,CAAC,IAAI,IAAI,CAACwhC,QAAQ;EACjE;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMulG,SAAS,SAASO,eAAe,CAAC;EACpC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI3hI,WAAWA,CAACwgI,QAAQ,EAAEI,eAAe,EAAElH,cAAc,EAAE;IACnD,KAAK,CAACiH,cAAc,CAACC,eAAe,CAAC,EAAEG,mBAAmB,CAACrH,cAAc,EAAEkH,eAAe,CAAC,CAAC;IAC5F,IAAI,CAACJ,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACwD,gBAAgB,CAAC,CAAC;IACvB,IAAI,CAACO,kBAAkB,CAAC3D,eAAe,CAAC;IACxC,IAAI,CAACkE,cAAc,CAAC,CAAC;IACrB,IAAI,CAACtH,sBAAsB,CAAC;MACxB+E,QAAQ,EAAE,IAAI;MACd;MACA;MACA;MACA;MACAO,SAAS,EAAE,CAAC,CAAC,IAAI,CAACpJ;IACtB,CAAC,CAAC;EACN;EACA;AACJ;AACA;AACA;AACA;EACIgH,EAAEA,CAAC58H,KAAK,EAAE;IACN,OAAO,IAAI,CAAC08H,QAAQ,CAAC18H,KAAK,CAAC;EAC/B;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIrJ,IAAIA,CAACq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AC,MAAMt1H,OAAO,CAAC4G,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;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,MAAM0oI,OAAO,SAAS7N,SAAS,CAAC;EAC5B/5H,WAAWA,CAAC+V,MAAM,EAAE4gH,UAAU,EAAE0G,eAAe,EAAEkC,cAAc,EAAEhnC,kBAAkB,EAAE;IACjF,KAAK,CAAC,CAAC;IACP,IAAI,CAACA,kBAAkB,GAAGA,kBAAkB;IAC5C,IAAI,CAACu9B,OAAO,GAAG,IAAIoL,WAAW,CAAC,CAAC;IAChC;IACA,IAAI,CAAC2G,WAAW,GAAG,KAAK;IACxB;AACR;AACA;AACA;AACA;IACQ,IAAI,CAACxf,MAAM,GAAG,IAAIr8D,uDAAY,CAAC,CAAC;IAChC,IAAI,CAACguE,OAAO,GAAGjkH,MAAM;IACrB,IAAI,CAACujH,cAAc,CAAC3C,UAAU,CAAC;IAC/B,IAAI,CAAC6C,mBAAmB,CAAC6D,eAAe,CAAC;IACzC,IAAI,CAACpD,aAAa,GAAGqF,mBAAmB,CAAC,IAAI,EAAEC,cAAc,CAAC;EAClE;EACA;EACAxjE,WAAWA,CAAChJ,OAAO,EAAE;IACjB,IAAI,CAAC+0E,eAAe,CAAC,CAAC;IACtB,IAAI,CAAC,IAAI,CAACD,WAAW,IAAI,MAAM,IAAI90E,OAAO,EAAE;MACxC,IAAI,IAAI,CAAC80E,WAAW,EAAE;QAClB,IAAI,CAACE,UAAU,CAAC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AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;ACrnOA;AACA;AACA;AACA;AACA;;AAE+C;AACa;;AAE5D;AACA,uBAAuB,4DAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAM;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,gBAAgB;AAC7E;AACA;AACA;AACA;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,gEAAgE;AACnF;AACA;AACA,8DAA8D,IAAI,EAAE,0BAA0B;AAC9F,iBAAiB,EAAE,eAAe,IAAI,SAAS,IAAI,qBAAqB;AACxE;AACA;AACA;AACA,+BAA+B,aAAa;AAC5C,+BAA+B,aAAa,IAAI;AAChD;AACA,4BAA4B,aAAa,aAAa;AACtD;AACA;AACA,uCAAuC,QAAQ,IAAI,SAAS,sBAAsB,QAAQ;AAC1F;AACA;AACA,gCAAgC,QAAQ,IAAI,qBAAqB;AACjE;AACA;AACA,kCAAkC,aAAa,IAAI;AACnD;AACA,wBAAwB,aAAa,aAAa;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ;AACnC;AACA;AACA,4DAA4D,IAAI,EAAE,0BAA0B;AAC5F;AACA,iBAAiB,EAAE,SAAS,IAAI,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA,wBAAwB,QAAQ;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,WAAW,cAAc;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,CAAC,wBAAwB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yBAAyB;AAC7C,gBAAgB,iFAAiF;AACjG,2BAA2B,GAAG,iBAAiB,EAAE,YAAY;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,YAAY,6BAA6B;AACzC;AACA,iBAAiB;AACjB;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,YAAY,2BAA2B;AACvC;AACA,iBAAiB;AACjB;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,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,UAAU;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,6BAA6B;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,IAAI;AACrE;;AAEA;AACA;AACA,0CAA0C,+BAA+B;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,wBAAwB,2DAA2D;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sHAAsH,yBAAyB;AAC/I,wEAAwE,YAAY;AACpF;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,MAAM,IAAI;AAClD;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA,6BAA6B,aAAa;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6BAA6B;AACjD,2BAA2B,GAAG,qBAAqB,EAAE,oBAAoB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,YAAY;AACvD;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA,eAAe,iCAAiC,EAAE,eAAe;AACjE;AACA,eAAe,WAAW,GAAG,QAAQ,IAAI,aAAa,GAAG,cAAc;AACvE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAgB,UAAU,iBAAiB,KAAK,iBAAiB,WAAW,gBAAgB;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,yBAAyB;AAClC,SAAS,iBAAiB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,wBAAwB;AACjC,SAAS,iBAAiB;AAC1B;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,KAAK,cAAc,cAAc;AACpD;AACA;AACA,0CAA0C,IAAI,aAAa,OAAO;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,aAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,MAAM,YAAY;AAClC;AACA,gBAAgB,MAAM,MAAM;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,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEmf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACn3Bpb;AACkB;AAC7C;AACiM;AACE;AAC7J;AAC9B;AACY;AAClB;AACmB;AACZ;AACgC;AAChC;AACgB;AACoC;AAC5C;AACF;AACA;AACW;AACuB;AAC3C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAHA,MAAAzN,GAAA;AAAA,SAAA2hD,uCAAAjsE,EAAA,EAAAj6B,GAAA;EAAA,IAAAi6B,EAAA;IA6IuGxyC,4DAAE,eA+CquB,CAAC;IA/CxuBA,0DAAE,EA+CowB,CAAC;IA/CvwBA,0DAAE,CA+C8wB,CAAC;EAAA;EAAA,IAAAwyC,EAAA;IAAA,MAAAksE,cAAA,GAAAnmG,GAAA,CAAAv8B,EAAA;IAAA,MAAA2iI,MAAA,GA/CjxB3+G,2DAAE;IAAFA,wDAAE,OAAA2+G,MAAA,CAAA3iI,EA+C4jB,CAAC,YAAA2iI,MAAA,CAAAG,UAAD,CAAC;IA/C/jB9+G,yDAAE,eAAA2+G,MAAA,CAAArjF,SAAA,QA+C4mB,CAAC,oBAAAqjF,MAAA,CAAAI,uBAAA,CAAAL,cAAA,CAAD,CAAC;EAAA;AAAA;AAAA,MAAA3hD,GAAA;AAxLttB,IAAIiiD,4BAA4B,GAAG,CAAC;AACpC;AACA,MAAMC,4BAA4B,CAAC;EAC/Bp1I,WAAWA,CACX;EACA4sE,MAAM,EACN;EACAyoE,MAAM,EAAE;IACJ,IAAI,CAACzoE,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACyoE,MAAM,GAAGA,MAAM;EACxB;AACJ;AACA;AACA;AACA,MAAMC,yBAAyB,GAAGvB,0EAAkB,CAAC,MAAM,EAC1D,CAAC;AACF;AACA,MAAMwB,gCAAgC,GAAG,IAAIzpF,yDAAc,CAAC,kCAAkC,EAAE;EAC5FgG,UAAU,EAAE,MAAM;EAClB7yB,OAAO,EAAEu2G;AACb,CAAC,CAAC;AACF;AACA,SAASA,wCAAwCA,CAAA,EAAG;EAChD,OAAO;IAAEC,qBAAqB,EAAE;EAAM,CAAC;AAC3C;AACA;AACA,MAAMC,oBAAoB,SAASJ,yBAAyB,CAAC;EACzDt1I,WAAWA,CAACu4F,kBAAkB,EAAEl9B,WAAW,EAAE71D,QAAQ,EAAEkF,QAAQ,EAAE;IAC7D,KAAK,CAAC,CAAC;IACP,IAAI,CAAC6tF,kBAAkB,GAAGA,kBAAkB;IAC5C,IAAI,CAACl9B,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACs6E,oBAAoB,GAAGlpF,oDAAkB;IAC9C;IACA,IAAI,CAACmpF,SAAS,GAAG,KAAK;IACtB,IAAI,CAACC,OAAO,GAAG,KAAK;IACpB;IACA,IAAI,CAACC,WAAW,GAAG,IAAI;IACvB;IACA,IAAI,CAACC,cAAc,GAAG,IAAI/pF,uDAAY,CAAC,CAAC;IACxC;IACA,IAAI,CAACgqF,MAAM,GAAG,IAAIhqF,uDAAY,CAAC,CAAC;IAChC;IACA,IAAI,CAACiqF,MAAM,GAAG,IAAIjqF,uDAAY,CAAC,CAAC;IAChC;IACA,IAAI,CAACkqF,eAAe,GAAG,IAAIlqF,uDAAY,CAAC,CAAC;IACzC,IAAI,CAACipF,UAAU,GAAG,CAAC,CAAC;IACpB;IACA,IAAI,CAAC9iI,EAAE,GAAG,oBAAoBgjI,4BAA4B,EAAE,EAAE;IAC9D;IACA;IACA;IACA;IACA,IAAI,CAACgB,WAAW,GAAG,CAACzrI,QAAQ,KAAK,IAAI,IAAIA,QAAQ,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,QAAQ,CAACmhF,MAAM,KAAK,KAAK;IACjG,IAAI,CAACuqD,sBAAsB,GAAG,CAAC,CAAC5wI,QAAQ,CAACiwI,qBAAqB;EAClE;EACA;EACA,IAAIY,MAAMA,CAAA,EAAG;IACT,OAAO,IAAI,CAACR,OAAO,IAAI,IAAI,CAACD,SAAS;EACzC;EACA;AACJ;AACA;AACA;EACI,IAAIH,qBAAqBA,CAAA,EAAG;IACxB,OAAO,IAAI,CAACW,sBAAsB;EACtC;EACA,IAAIX,qBAAqBA,CAAC/zI,KAAK,EAAE;IAC7B,IAAI,CAAC00I,sBAAsB,GAAGloF,4EAAqB,CAACxsD,KAAK,CAAC;EAC9D;EACA;AACJ;AACA;AACA;EACI,IAAIq/C,SAASA,CAACr/C,KAAK,EAAE;IACjB,IAAIA,KAAK,IAAIA,KAAK,CAACrH,MAAM,EAAE;MACvB,IAAI,CAAC46I,UAAU,GAAGpB,wEAAiB,CAACnyI,KAAK,CAAC,CAACwhF,MAAM,CAAC,CAACniC,SAAS,EAAEgB,SAAS,KAAK;QACxEhB,SAAS,CAACgB,SAAS,CAAC,GAAG,IAAI;QAC3B,OAAOhB,SAAS;MACpB,CAAC,EAAE,CAAC,CAAC,CAAC;IACV,CAAC,MACI;MACD,IAAI,CAACk0F,UAAU,GAAG,CAAC,CAAC;IACxB;IACA,IAAI,CAACqB,qBAAqB,CAAC,IAAI,CAACrB,UAAU,CAAC;IAC3C,IAAI,CAAC55E,WAAW,CAACI,aAAa,CAAC1Z,SAAS,GAAG,EAAE;EACjD;EACA6Z,kBAAkBA,CAAA,EAAG;IACjB,IAAI,CAAC26E,WAAW,GAAG,IAAIxgF,yEAA0B,CAAC,IAAI,CAACnuD,OAAO,CAAC,CAAC0rD,QAAQ,CAAC,CAAC;IAC1E,IAAI,CAACqiF,oBAAoB,GAAG,IAAI,CAACY,WAAW,CAACzjF,MAAM,CAACE,SAAS,CAAClvD,KAAK,IAAI;MACnE,IAAI,IAAI,CAACuyI,MAAM,EAAE;QACb,IAAI,CAACH,eAAe,CAACz1I,IAAI,CAAC;UAAEmsE,MAAM,EAAE,IAAI;UAAEyoE,MAAM,EAAE,IAAI,CAACztI,OAAO,CAACurD,OAAO,CAAC,CAAC,CAACrvD,KAAK,CAAC,IAAI;QAAK,CAAC,CAAC;MAC9F;IACJ,CAAC,CAAC;IACF;IACA,IAAI,CAAC0yI,cAAc,CAAC,CAAC;EACzB;EACA9lF,WAAWA,CAAA,EAAG;IACV,IAAI,CAACilF,oBAAoB,CAAC1hF,WAAW,CAAC,CAAC;EAC3C;EACA;AACJ;AACA;AACA;EACIwiF,aAAaA,CAACt/C,SAAS,EAAE;IACrB,IAAI,IAAI,CAACu/C,KAAK,EAAE;MACZ,IAAI,CAACA,KAAK,CAACj7E,aAAa,CAAC07B,SAAS,GAAGA,SAAS;IAClD;EACJ;EACA;EACAw/C,aAAaA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACD,KAAK,GAAG,IAAI,CAACA,KAAK,CAACj7E,aAAa,CAAC07B,SAAS,GAAG,CAAC;EAC9D;EACA;EACAq/C,cAAcA,CAAA,EAAG;IACb,IAAI,CAACZ,SAAS,GAAG,CAAC,CAAC,IAAI,CAAChuI,OAAO,CAACvN,MAAM;IACtC,IAAI,CAACi8I,qBAAqB,CAAC,IAAI,CAACrB,UAAU,CAAC;IAC3C,IAAI,CAAC18C,kBAAkB,CAACwC,YAAY,CAAC,CAAC;EAC1C;EACA;EACA67C,gBAAgBA,CAACvB,MAAM,EAAE;IACrB,MAAM/5G,KAAK,GAAG,IAAI85G,4BAA4B,CAAC,IAAI,EAAEC,MAAM,CAAC;IAC5D,IAAI,CAACU,cAAc,CAACt1I,IAAI,CAAC66B,KAAK,CAAC;EACnC;EACA;EACA45G,uBAAuBA,CAAC2B,OAAO,EAAE;IAC7B,IAAI,IAAI,CAACplF,SAAS,EAAE;MAChB,OAAO,IAAI;IACf;IACA,MAAMqlF,eAAe,GAAGD,OAAO,GAAGA,OAAO,GAAG,GAAG,GAAG,EAAE;IACpD,OAAO,IAAI,CAACE,cAAc,GAAGD,eAAe,GAAG,IAAI,CAACC,cAAc,GAAGF,OAAO;EAChF;EACA;EACAP,qBAAqBA,CAACv1F,SAAS,EAAE;IAC7BA,SAAS,CAAC,IAAI,CAACi2F,aAAa,CAAC,GAAG,IAAI,CAACpB,SAAS;IAC9C70F,SAAS,CAAC,IAAI,CAACk2F,YAAY,CAAC,GAAG,CAAC,IAAI,CAACrB,SAAS;EAClD;AACJ;AACAF,oBAAoB,CAAC72G,IAAI,YAAAq4G,6BAAAtwI,CAAA;EAAA,YAAAA,CAAA,IAAwF8uI,oBAAoB,EAA9Bv/G,+DAAE,CAA8CA,4DAAoB,GAApEA,+DAAE,CAA+EA,qDAAa,GAA9FA,+DAAE,CAAyGo/G,gCAAgC,GAA3Ip/G,+DAAE,CAAsJg2B,2DAAW;AAAA,CAA4C;AACtTupF,oBAAoB,CAACr5E,IAAI,kBAD8ElmC,+DAAE;EAAA98B,IAAA,EACJq8I,oBAAoB;EAAAr6C,SAAA,WAAA87C,2BAAAxuE,EAAA,EAAAj6B,GAAA;IAAA,IAAAi6B,EAAA;MADlBxyC,yDAAE,CAC+bqzD,sDAAW;MAD5crzD,yDAAE,CAAA88D,GAAA;IAAA;IAAA,IAAAtqB,EAAA;MAAA,IAAA6yB,EAAA;MAAFrlE,4DAAE,CAAAqlE,EAAA,GAAFrlE,yDAAE,QAAAuY,GAAA,CAAAigD,QAAA,GAAA6M,EAAA,CAAAG,KAAA;MAAFxlE,4DAAE,CAAAqlE,EAAA,GAAFrlE,yDAAE,QAAAuY,GAAA,CAAAgoG,KAAA,GAAAl7C,EAAA,CAAAG,KAAA;IAAA;EAAA;EAAAn/B,MAAA;IAAA/K,SAAA;IAAAslF,cAAA;IAAAjB,WAAA;IAAAL,qBAAA;IAAA2B,UAAA;IAAAr2F,SAAA;EAAA;EAAA6kB,OAAA;IAAAmwE,cAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,eAAA;EAAA;EAAAx5E,QAAA,GAAFvmC,wEAAE;AAAA,EACumB;AAChtB;EAAA,QAAAI,SAAA,oBAAAA,SAAA,KAFuGJ,+DAAE,CAEdu/G,oBAAoB,EAAc,CAAC;IAClHr8I,IAAI,EAAEuyD,oDAASA;EACnB,CAAC,CAAC,EAAkB,YAAY;IAChC,OAAO,CAAC;MAAEvyD,IAAI,EAAE88B,4DAAoB+kE;IAAC,CAAC,EAAE;MAAE7hG,IAAI,EAAE88B,qDAAaimC;IAAC,CAAC,EAAE;MAAE/iE,IAAI,EAAE6iC,SAAS;MAAE61B,UAAU,EAAE,CAAC;QACjF14D,IAAI,EAAEqyD,iDAAM;QACZttD,IAAI,EAAE,CAACm3I,gCAAgC;MAC3C,CAAC;IAAE,CAAC,EAAE;MAAEl8I,IAAI,EAAE8yD,2DAAW0F;IAAC,CAAC,CAAC;EAC5C,CAAC,EAAkB;IAAE88B,QAAQ,EAAE,CAAC;MACpBt1F,IAAI,EAAEg5F,oDAAS;MACfj0F,IAAI,EAAE,CAACorF,sDAAW,EAAE;QAAEuT,MAAM,EAAE;MAAK,CAAC;IACxC,CAAC,CAAC;IAAE25C,KAAK,EAAE,CAAC;MACRr9I,IAAI,EAAEg5F,oDAAS;MACfj0F,IAAI,EAAE,CAAC,OAAO;IAClB,CAAC,CAAC;IAAEqzD,SAAS,EAAE,CAAC;MACZp4D,IAAI,EAAEwyD,gDAAK;MACXztD,IAAI,EAAE,CAAC,YAAY;IACvB,CAAC,CAAC;IAAE24I,cAAc,EAAE,CAAC;MACjB19I,IAAI,EAAEwyD,gDAAK;MACXztD,IAAI,EAAE,CAAC,iBAAiB;IAC5B,CAAC,CAAC;IAAE03I,WAAW,EAAE,CAAC;MACdz8I,IAAI,EAAEwyD,gDAAKA;IACf,CAAC,CAAC;IAAE4pF,qBAAqB,EAAE,CAAC;MACxBp8I,IAAI,EAAEwyD,gDAAKA;IACf,CAAC,CAAC;IAAEurF,UAAU,EAAE,CAAC;MACb/9I,IAAI,EAAEwyD,gDAAKA;IACf,CAAC,CAAC;IAAEkqF,cAAc,EAAE,CAAC;MACjB18I,IAAI,EAAE4yD,iDAAMA;IAChB,CAAC,CAAC;IAAE+pF,MAAM,EAAE,CAAC;MACT38I,IAAI,EAAE4yD,iDAAMA;IAChB,CAAC,CAAC;IAAEgqF,MAAM,EAAE,CAAC;MACT58I,IAAI,EAAE4yD,iDAAMA;IAChB,CAAC,CAAC;IAAEiqF,eAAe,EAAE,CAAC;MAClB78I,IAAI,EAAE4yD,iDAAMA;IAChB,CAAC,CAAC;IAAElL,SAAS,EAAE,CAAC;MACZ1nD,IAAI,EAAEwyD,gDAAK;MACXztD,IAAI,EAAE,CAAC,OAAO;IAClB,CAAC;EAAE,CAAC;AAAA;AAChB,MAAMi5I,eAAe,SAAS3B,oBAAoB,CAAC;EAC/C11I,WAAWA,CAAA,EAAG;IACV,KAAK,CAAC,GAAGvB,SAAS,CAAC;IACnB,IAAI,CAACu4I,aAAa,GAAG,0BAA0B;IAC/C,IAAI,CAACC,YAAY,GAAG,yBAAyB;EACjD;AACJ;AACAI,eAAe,CAACx4G,IAAI;EAAA,IAAAy4G,4BAAA;EAAA,gBAAAC,wBAAA3wI,CAAA;IAAA,QAAA0wI,4BAAA,KAAAA,4BAAA,GA9CmFnhH,mEAAE,CA8CGkhH,eAAe,IAAAzwI,CAAA,IAAfywI,eAAe;EAAA;AAAA,GAAqD;AAChLA,eAAe,CAACl8C,IAAI,kBA/CmFhlE,+DAAE;EAAA98B,IAAA,EA+CTg+I,eAAe;EAAA96E,SAAA;EAAAi7E,cAAA,WAAAC,+BAAA9uE,EAAA,EAAAj6B,GAAA,EAAAgpG,QAAA;IAAA,IAAA/uE,EAAA;MA/CRxyC,4DAAE,CAAAuhH,QAAA,EA+C0QzD,gEAAY;MA/CxR99G,4DAAE,CAAAuhH,QAAA,EA+CmVxD,6DAAS;IAAA;IAAA,IAAAvrE,EAAA;MAAA,IAAA6yB,EAAA;MA/C9VrlE,4DAAE,CAAAqlE,EAAA,GAAFrlE,yDAAE,QAAAuY,GAAA,CAAAkpG,YAAA,GAAAp8C,EAAA;MAAFrlE,4DAAE,CAAAqlE,EAAA,GAAFrlE,yDAAE,QAAAuY,GAAA,CAAA9mC,OAAA,GAAA4zF,EAAA;IAAA;EAAA;EAAAI,SAAA;EAAAp/B,MAAA;IAAAq7E,aAAA;EAAA;EAAAp7E,QAAA;EAAAC,QAAA,GAAFvmC,gEAAE,CA+C2I,CAAC;IAAE2yC,OAAO,EAAEkrE,+EAA2B;IAAEjrE,WAAW,EAAEsuE;EAAgB,CAAC,CAAC,GA/CrNlhH,wEAAE;EAAA4lE,kBAAA,EAAA7I,GAAA;EAAA8I,KAAA;EAAAC,IAAA;EAAAC,MAAA;EAAAvN,QAAA,WAAAmpD,yBAAAnvE,EAAA,EAAAj6B,GAAA;IAAA,IAAAi6B,EAAA;MAAFxyC,6DAAE;MAAFA,wDAAE,IAAAy+G,sCAAA,qBA+C8xB,CAAC;IAAA;EAAA;EAAAxV,UAAA,GAAksBrsC,oDAAU;EAAA9xD,MAAA;EAAA07D,aAAA;EAAAC,eAAA;AAAA,EAAyJ;AAC7uD;EAAA,QAAArmE,SAAA,oBAAAA,SAAA,KAhDuGJ,+DAAE,CAgDdkhH,eAAe,EAAc,CAAC;IAC7Gh+I,IAAI,EAAE64F,oDAAS;IACf9zF,IAAI,EAAE,CAAC;MAAEm6B,QAAQ,EAAE,kBAAkB;MAAEokE,aAAa,EAAExK,iEAAsB;MAAEyK,eAAe,EAAExK,yEAA8B;MAAE31B,QAAQ,EAAE,iBAAiB;MAAED,MAAM,EAAE,CAAC,eAAe,CAAC;MAAEv/B,IAAI,EAAE;QACjL,OAAO,EAAE;MACb,CAAC;MAAE+rC,SAAS,EAAE,CAAC;QAAEF,OAAO,EAAEkrE,+EAA2B;QAAEjrE,WAAW,EAAEsuE;MAAgB,CAAC,CAAC;MAAE1oD,QAAQ,EAAE,gWAAgW;MAAE1tD,MAAM,EAAE,CAAC,4pBAA4pB;IAAE,CAAC;EACxnC,CAAC,CAAC,QAAkB;IAAE22G,YAAY,EAAE,CAAC;MAC7Bv+I,IAAI,EAAEy6I,0DAAe;MACrB11I,IAAI,EAAE,CAAC61I,gEAAY,EAAE;QAAE+D,WAAW,EAAE;MAAK,CAAC;IAC9C,CAAC,CAAC;IAAEpwI,OAAO,EAAE,CAAC;MACVvO,IAAI,EAAEy6I,0DAAe;MACrB11I,IAAI,EAAE,CAAC81I,6DAAS,EAAE;QAAE8D,WAAW,EAAE;MAAK,CAAC;IAC3C,CAAC;EAAE,CAAC;AAAA;;AAEhB;AACA,MAAMC,gCAAgC,GAAG,IAAInsF,yDAAc,CAAC,kCAAkC,CAAC;AAC/F;AACA,SAASosF,wCAAwCA,CAACvjE,OAAO,EAAE;EACvD,OAAO,MAAMA,OAAO,CAAC0R,gBAAgB,CAACpS,UAAU,CAAC,CAAC;AACtD;AACA;AACA,MAAMkkE,iDAAiD,GAAG;EACtDrvE,OAAO,EAAEmvE,gCAAgC;EACzCruD,IAAI,EAAE,CAACxD,yDAAO,CAAC;EACfyD,UAAU,EAAEquD;AAChB,CAAC;AACD;AACA;AACA;AACA;AACA,MAAME,+BAA+B,GAAG;EACpCtvE,OAAO,EAAE0qD,6DAAiB;EAC1BzqD,WAAW,EAAEkpB,yDAAU,CAAC,MAAMomD,sBAAsB,CAAC;EACrDx7G,KAAK,EAAE;AACX,CAAC;AACD;AACA;AACA;AACA;AACA,SAASy7G,mCAAmCA,CAAA,EAAG;EAC3C,OAAOt9I,KAAK,CAAC,kEAAkE,GAC3E,4EAA4E,GAC5E,iEAAiE,CAAC;AAC1E;AACA;AACA,MAAMu9I,2BAA2B,CAAC;EAC9Bv4I,WAAWA,CAACo+B,QAAQ,EAAEupD,QAAQ,EAAEsJ,iBAAiB,EAAEunD,KAAK,EAAEjgD,kBAAkB,EAAEnkB,cAAc,EAAEhM,IAAI,EAAEqwE,UAAU,EAAEppF,SAAS,EAAEghB,cAAc,EAAEqoE,SAAS,EAAE;IAClJ,IAAI,CAACt6G,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACupD,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACsJ,iBAAiB,GAAGA,iBAAiB;IAC1C,IAAI,CAACunD,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACjgD,kBAAkB,GAAGA,kBAAkB;IAC5C,IAAI,CAACnwB,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACqwE,UAAU,GAAGA,UAAU;IAC5B,IAAI,CAACppF,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACghB,cAAc,GAAGA,cAAc;IACpC,IAAI,CAACqoE,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,mBAAmB,GAAG,KAAK;IAChC,IAAI,CAACC,qBAAqB,GAAG,KAAK;IAClC;IACA,IAAI,CAACC,sBAAsB,GAAG,KAAK;IACnC;IACA,IAAI,CAACC,qBAAqB,GAAGrsF,oDAAkB;IAC/C;AACR;AACA;AACA;AACA;IACQ,IAAI,CAACssF,mBAAmB,GAAG,IAAI;IAC/B;IACA,IAAI,CAACC,oBAAoB,GAAG,IAAIxsF,yCAAO,CAAC,CAAC;IACzC;AACR;AACA;AACA;IACQ,IAAI,CAACysF,kBAAkB,GAAG,MAAM;MAC5B;MACA;MACA;MACA,IAAI,CAACF,mBAAmB,GACpB,IAAI,CAAC1pF,SAAS,CAACqO,aAAa,KAAK,IAAI,CAACt/B,QAAQ,CAACq9B,aAAa,IAAI,IAAI,CAACy9E,SAAS;IACtF,CAAC;IACD;IACA,IAAI,CAACzU,SAAS,GAAG,MAAM,CAAE,CAAC;IAC1B;IACA,IAAI,CAAC0U,UAAU,GAAG,MAAM,CAAE,CAAC;IAC3B;AACR;AACA;AACA;AACA;AACA;AACA;IACQ,IAAI,CAAC/yE,QAAQ,GAAG,MAAM;IACtB;AACR;AACA;AACA;IACQ,IAAI,CAACgzE,qBAAqB,GAAG,KAAK;IAClC,IAAI,CAACC,gBAAgB,GAAG,KAAK;IAC7B;IACA,IAAI,CAACC,gBAAgB,GAAGv8E,4CAAK,CAAC,MAAM;MAChC,MAAMn1D,OAAO,GAAG,IAAI,CAAC2xI,YAAY,GAAG,IAAI,CAACA,YAAY,CAAC3xI,OAAO,GAAG,IAAI;MACpE,IAAIA,OAAO,EAAE;QACT,OAAOA,OAAO,CAACmrD,OAAO,CAAC/xD,IAAI,CAAC2xF,0DAAS,CAAC/qF,OAAO,CAAC,EAAEirF,0DAAS,CAAC,MAAM7iB,4CAAK,CAAC,GAAGpoE,OAAO,CAACkxB,GAAG,CAACu8G,MAAM,IAAIA,MAAM,CAACmE,iBAAiB,CAAC,CAAC,CAAC,CAAC;MAC/H;MACA;MACA;MACA,OAAO,IAAI,CAAChB,KAAK,CAACz9E,QAAQ,CAAC/5D,IAAI,CAAC+sD,qDAAI,CAAC,CAAC,CAAC,EAAE8kC,0DAAS,CAAC,MAAM,IAAI,CAACymD,gBAAgB,CAAC,CAAC;IACpF,CAAC,CAAC;IACF,IAAI,CAAC/iE,eAAe,GAAGnC,cAAc;EACzC;EACA;AACJ;AACA;AACA;EACI,IAAIqlE,oBAAoBA,CAAA,EAAG;IACvB,OAAO,IAAI,CAACb,qBAAqB;EACrC;EACA,IAAIa,oBAAoBA,CAAC/3I,KAAK,EAAE;IAC5B,IAAI,CAACk3I,qBAAqB,GAAG1qF,4EAAqB,CAACxsD,KAAK,CAAC;EAC7D;EACA+jE,eAAeA,CAAA,EAAG;IACd,MAAMppD,MAAM,GAAG,IAAI,CAACgoD,UAAU,CAAC,CAAC;IAChC,IAAI,OAAOhoD,MAAM,KAAK,WAAW,EAAE;MAC/B,IAAI,CAACm8H,KAAK,CAAC/+E,iBAAiB,CAAC,MAAMp9C,MAAM,CAAC8tC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC8uF,kBAAkB,CAAC,CAAC;IAChG;EACJ;EACAl9E,WAAWA,CAAChJ,OAAO,EAAE;IACjB,IAAIA,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,CAACyjB,iBAAiB,EAAE;MAC/C,IAAI,CAACkjE,qBAAqB,CAAC,IAAI,CAACljE,iBAAiB,CAAC;MAClD,IAAI,IAAI,CAAC0iE,SAAS,EAAE;QAChB,IAAI,CAACnnE,WAAW,CAACM,cAAc,CAAC,CAAC;MACrC;IACJ;EACJ;EACA3hB,WAAWA,CAAA,EAAG;IACV,MAAMr0C,MAAM,GAAG,IAAI,CAACgoD,UAAU,CAAC,CAAC;IAChC,IAAI,OAAOhoD,MAAM,KAAK,WAAW,EAAE;MAC/BA,MAAM,CAACm9C,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAACy/E,kBAAkB,CAAC;IAC/D;IACA,IAAI,CAACH,qBAAqB,CAAC7kF,WAAW,CAAC,CAAC;IACxC,IAAI,CAAC0kF,mBAAmB,GAAG,IAAI;IAC/B,IAAI,CAACgB,aAAa,CAAC,CAAC;IACpB,IAAI,CAACX,oBAAoB,CAAC/4E,QAAQ,CAAC,CAAC;EACxC;EACA;EACA,IAAIi5E,SAASA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACG,gBAAgB,IAAI,IAAI,CAACE,YAAY,CAAC3D,SAAS;EAC/D;EACA;EACAgE,SAASA,CAAA,EAAG;IACR,IAAI,CAAC7wD,cAAc,CAAC,CAAC;IACrB,IAAI,CAAC8wD,WAAW,CAAC,CAAC;EACtB;EACA;EACAC,UAAUA,CAAA,EAAG;IACT,IAAI,CAACC,WAAW,CAAC,CAAC;IAClB,IAAI,CAAC,IAAI,CAACV,gBAAgB,EAAE;MACxB;IACJ;IACA,IAAI,IAAI,CAACH,SAAS,EAAE;MAChB;MACA,IAAI,CAACK,YAAY,CAACtD,MAAM,CAACx1I,IAAI,CAAC,CAAC;IACnC;IACA,IAAI,CAAC84I,YAAY,CAAC1D,OAAO,GAAG,IAAI,CAACwD,gBAAgB,GAAG,KAAK;IACzD,IAAI,IAAI,CAACtnE,WAAW,IAAI,IAAI,CAACA,WAAW,CAACvX,WAAW,CAAC,CAAC,EAAE;MACpD,IAAI,CAACuX,WAAW,CAACvH,MAAM,CAAC,CAAC;MACzB,IAAI,CAACwvE,2BAA2B,CAAC/lF,WAAW,CAAC,CAAC;IAClD;IACA;IACA;IACA,IAAI,CAAC,IAAI,CAAC0kF,mBAAmB,EAAE;MAC3B;MACA;MACA;MACA;MACA,IAAI,CAACpgD,kBAAkB,CAAChI,aAAa,CAAC,CAAC;IAC3C;EACJ;EACA;AACJ;AACA;AACA;EACIle,cAAcA,CAAA,EAAG;IACb,IAAI,IAAI,CAACgnE,gBAAgB,EAAE;MACvB,IAAI,CAACtnE,WAAW,CAACM,cAAc,CAAC,CAAC;IACrC;EACJ;EACA;AACJ;AACA;AACA;EACI,IAAI4nE,mBAAmBA,CAAA,EAAG;IACtB,OAAOjqE,4CAAK,CAAC,IAAI,CAACspE,gBAAgB,EAAE,IAAI,CAACC,YAAY,CAAChD,WAAW,CAAC1jF,MAAM,CAAC7xD,IAAI,CAACmW,uDAAM,CAAC,MAAM,IAAI,CAACkiI,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAACL,oBAAoB,EAAE,IAAI,CAACkB,sBAAsB,CAAC,CAAC,EAAE,IAAI,CAACnoE,WAAW,GACxL,IAAI,CAACA,WAAW,CAAC6F,WAAW,CAAC,CAAC,CAAC52E,IAAI,CAACmW,uDAAM,CAAC,MAAM,IAAI,CAACkiI,gBAAgB,CAAC,CAAC,GACxE1sF,yCAAE,CAAC,CAAC,CAAC,CAAC3rD,IAAI;IAChB;IACA83B,oDAAG,CAACwC,KAAK,IAAKA,KAAK,YAAY64G,4EAAwB,GAAG74G,KAAK,GAAG,IAAK,CAAC,CAAC;EAC7E;EACA;EACA,IAAI6+G,YAAYA,CAAA,EAAG;IACf,IAAI,IAAI,CAACZ,YAAY,IAAI,IAAI,CAACA,YAAY,CAAChD,WAAW,EAAE;MACpD,OAAO,IAAI,CAACgD,YAAY,CAAChD,WAAW,CAAChhF,UAAU;IACnD;IACA,OAAO,IAAI;EACf;EACA;EACA2kF,sBAAsBA,CAAA,EAAG;IACrB,OAAOlqE,4CAAK,CAACuiB,gDAAS,CAAC,IAAI,CAACljC,SAAS,EAAE,OAAO,CAAC,EAAEkjC,gDAAS,CAAC,IAAI,CAACljC,SAAS,EAAE,UAAU,CAAC,EAAEkjC,gDAAS,CAAC,IAAI,CAACljC,SAAS,EAAE,UAAU,CAAC,CAAC,CAACruD,IAAI,CAACmW,uDAAM,CAACmkB,KAAK,IAAI;MAChJ;MACA;MACA,MAAM8+G,WAAW,GAAG9tF,sEAAe,CAAChxB,KAAK,CAAC;MAC1C,MAAM++G,SAAS,GAAG,IAAI,CAAC5B,UAAU,GAAG,IAAI,CAACA,UAAU,CAACp9E,WAAW,CAACI,aAAa,GAAG,IAAI;MACpF,MAAM6+E,YAAY,GAAG,IAAI,CAACpgE,WAAW,GAAG,IAAI,CAACA,WAAW,CAACsN,UAAU,CAAC/rB,aAAa,GAAG,IAAI;MACxF,OAAQ,IAAI,CAAC49E,gBAAgB,IACzBe,WAAW,KAAK,IAAI,CAACh8G,QAAQ,CAACq9B,aAAa;MAC3C;MACA;MACA;MACA;MACA,IAAI,CAACpM,SAAS,CAACqO,aAAa,KAAK,IAAI,CAACt/B,QAAQ,CAACq9B,aAAa,KAC3D,CAAC4+E,SAAS,IAAI,CAACA,SAAS,CAACj9G,QAAQ,CAACg9G,WAAW,CAAC,CAAC,KAC/C,CAACE,YAAY,IAAI,CAACA,YAAY,CAACl9G,QAAQ,CAACg9G,WAAW,CAAC,CAAC,IACtD,CAAC,CAAC,IAAI,CAACroE,WAAW,IAClB,CAAC,IAAI,CAACA,WAAW,CAAC4B,cAAc,CAACv2C,QAAQ,CAACg9G,WAAW,CAAC;IAC9D,CAAC,CAAC,CAAC;EACP;EACA;EACAzmB,UAAUA,CAACjyH,KAAK,EAAE;IACdpJ,OAAO,CAAC4G,OAAO,CAAC,CAAC,CAACC,IAAI,CAAC,MAAM,IAAI,CAACo7I,gBAAgB,CAAC74I,KAAK,CAAC,CAAC;EAC9D;EACA;EACAwxH,gBAAgBA,CAACpuH,EAAE,EAAE;IACjB,IAAI,CAAC2/H,SAAS,GAAG3/H,EAAE;EACvB;EACA;EACAmuH,iBAAiBA,CAACnuH,EAAE,EAAE;IAClB,IAAI,CAACq0I,UAAU,GAAGr0I,EAAE;EACxB;EACA;EACAquH,gBAAgBA,CAAC18D,UAAU,EAAE;IACzB,IAAI,CAACr4B,QAAQ,CAACq9B,aAAa,CAAC5/B,QAAQ,GAAG46B,UAAU;EACrD;EACA+jF,cAAcA,CAACl/G,KAAK,EAAE;IAClB,MAAMq5B,OAAO,GAAGr5B,KAAK,CAACq5B,OAAO;IAC7B,MAAM8lF,WAAW,GAAG7tF,sEAAc,CAACtxB,KAAK,CAAC;IACzC;IACA;IACA;IACA;IACA,IAAIq5B,OAAO,KAAKub,0DAAM,IAAI,CAACuqE,WAAW,EAAE;MACpCn/G,KAAK,CAAC+5B,cAAc,CAAC,CAAC;IAC1B;IACA,IAAI,IAAI,CAAC8kF,YAAY,IAAIxlF,OAAO,KAAK8/E,yDAAK,IAAI,IAAI,CAACyE,SAAS,IAAI,CAACuB,WAAW,EAAE;MAC1E,IAAI,CAACN,YAAY,CAACO,qBAAqB,CAAC,CAAC;MACzC,IAAI,CAACC,gBAAgB,CAAC,CAAC;MACvBr/G,KAAK,CAAC+5B,cAAc,CAAC,CAAC;IAC1B,CAAC,MACI,IAAI,IAAI,CAACkkF,YAAY,EAAE;MACxB,MAAMqB,cAAc,GAAG,IAAI,CAACrB,YAAY,CAAChD,WAAW,CAAChhF,UAAU;MAC/D,MAAMslF,UAAU,GAAGlmF,OAAO,KAAKtH,4DAAQ,IAAIsH,OAAO,KAAKrH,8DAAU;MACjE,IAAIqH,OAAO,KAAKpH,uDAAG,IAAKstF,UAAU,IAAI,CAACJ,WAAW,IAAI,IAAI,CAACvB,SAAU,EAAE;QACnE,IAAI,CAACK,YAAY,CAAChD,WAAW,CAAC7hF,SAAS,CAACp5B,KAAK,CAAC;MAClD,CAAC,MACI,IAAIu/G,UAAU,IAAI,IAAI,CAACC,QAAQ,CAAC,CAAC,EAAE;QACpC,IAAI,CAAClB,SAAS,CAAC,CAAC;MACpB;MACA,IAAIiB,UAAU,IAAI,IAAI,CAACtB,YAAY,CAAChD,WAAW,CAAChhF,UAAU,KAAKqlF,cAAc,EAAE;QAC3E,IAAI,CAACG,eAAe,CAAC,IAAI,CAACxB,YAAY,CAAChD,WAAW,CAACjhF,eAAe,IAAI,CAAC,CAAC;MAC5E;IACJ;EACJ;EACAs/D,YAAYA,CAACt5F,KAAK,EAAE;IAChB,IAAI57B,MAAM,GAAG47B,KAAK,CAAC57B,MAAM;IACzB,IAAIgC,KAAK,GAAGhC,MAAM,CAACgC,KAAK;IACxB;IACA,IAAIhC,MAAM,CAACrG,IAAI,KAAK,QAAQ,EAAE;MAC1BqI,KAAK,GAAGA,KAAK,IAAI,EAAE,GAAG,IAAI,GAAGw+B,UAAU,CAACx+B,KAAK,CAAC;IAClD;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,CAACs5I,cAAc,KAAKt5I,KAAK,EAAE;MAC/B,IAAI,CAACs5I,cAAc,GAAGt5I,KAAK;MAC3B,IAAI,CAAC+iI,SAAS,CAAC/iI,KAAK,CAAC;MACrB,IAAI,IAAI,CAACo5I,QAAQ,CAAC,CAAC,IAAI,IAAI,CAACzrF,SAAS,CAACqO,aAAa,KAAKpiC,KAAK,CAAC57B,MAAM,EAAE;QAClE,IAAI,CAACk6I,SAAS,CAAC,CAAC;MACpB;IACJ;EACJ;EACAqB,YAAYA,CAAA,EAAG;IACX,IAAI,CAAC,IAAI,CAAClC,mBAAmB,EAAE;MAC3B,IAAI,CAACA,mBAAmB,GAAG,IAAI;IACnC,CAAC,MACI,IAAI,IAAI,CAAC+B,QAAQ,CAAC,CAAC,EAAE;MACtB,IAAI,CAACE,cAAc,GAAG,IAAI,CAAC58G,QAAQ,CAACq9B,aAAa,CAAC/5D,KAAK;MACvD,IAAI,CAACqnF,cAAc,CAAC,CAAC;MACrB,IAAI,CAAC8wD,WAAW,CAAC,IAAI,CAAC;IAC1B;EACJ;EACAqB,YAAYA,CAAA,EAAG;IACX,IAAI,IAAI,CAACJ,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC5B,SAAS,EAAE;MACpC,IAAI,CAACU,SAAS,CAAC,CAAC;IACpB;EACJ;EACA;AACJ;AACA;AACA;AACA;AACA;EACIC,WAAWA,CAACsB,aAAa,GAAG,KAAK,EAAE;IAC/B,IAAI,IAAI,CAAC1C,UAAU,IAAI,IAAI,CAACA,UAAU,CAAC2C,UAAU,KAAK,MAAM,EAAE;MAC1D,IAAID,aAAa,EAAE;QACf,IAAI,CAAC1C,UAAU,CAAC4C,oBAAoB,CAAC,CAAC;MAC1C,CAAC,MACI;QACD,IAAI,CAAC5C,UAAU,CAAC2C,UAAU,GAAG,QAAQ;MACzC;MACA,IAAI,CAACvC,sBAAsB,GAAG,IAAI;IACtC;EACJ;EACA;EACAkB,WAAWA,CAAA,EAAG;IACV,IAAI,IAAI,CAAClB,sBAAsB,EAAE;MAC7B,IAAI,CAACJ,UAAU,CAAC2C,UAAU,GAAG,MAAM;MACnC,IAAI,CAACvC,sBAAsB,GAAG,KAAK;IACvC;EACJ;EACA;AACJ;AACA;AACA;EACIyC,0BAA0BA,CAAA,EAAG;IACzB,MAAMC,WAAW,GAAG,IAAI,CAAC/C,KAAK,CAACz9E,QAAQ,CAAC/5D,IAAI,CAAC+sD,qDAAI,CAAC,CAAC,CAAC,CAAC;IACrD,MAAMytF,aAAa,GAAG,IAAI,CAACjC,YAAY,CAAC3xI,OAAO,CAACmrD,OAAO,CAAC/xD,IAAI,CAAC6sD,oDAAG,CAAC,MAAM,IAAI,CAAC2oB,iBAAiB,CAACkF,mBAAmB,CAAC,CAAC,CAAC;IACpH;IACA;IACAx9E,sDAAK,CAAC,CAAC,CAAC,CAAC;IACT;IACA,OAAQ8xE,4CAAK,CAACurE,WAAW,EAAEC,aAAa,CAAC,CACpCx6I,IAAI;IACT;IACA;IACA6xF,0DAAS,CAAC,MAAM;MACZ;MACA;MACA;MACA,IAAI,CAAC2lD,KAAK,CAACtzE,GAAG,CAAC,MAAM;QACjB,MAAMu2E,OAAO,GAAG,IAAI,CAACvC,SAAS;QAC9B,IAAI,CAACyB,gBAAgB,CAAC,CAAC;QACvB,IAAI,CAACpB,YAAY,CAAC/C,cAAc,CAAC,CAAC;QAClC,IAAI,CAACj+C,kBAAkB,CAAChI,aAAa,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC2oD,SAAS,EAAE;UAChB,IAAI,CAACnnE,WAAW,CAACM,cAAc,CAAC,CAAC;UACjC;UACA;UACA;UACA;UACA,IAAIopE,OAAO,KAAK,IAAI,CAACvC,SAAS,EAAE;YAC5B,IAAI,CAACK,YAAY,CAACvD,MAAM,CAACv1I,IAAI,CAAC,CAAC;UACnC;QACJ;MACJ,CAAC,CAAC;MACF,OAAO,IAAI,CAACw5I,mBAAmB;IACnC,CAAC,CAAC;IACF;IACAlsF,qDAAI,CAAC,CAAC,CAAC;IACH;IAAA,CACCiF,SAAS,CAAC13B,KAAK,IAAI,IAAI,CAACogH,iBAAiB,CAACpgH,KAAK,CAAC,CAAC;EAC1D;EACA;EACAq+G,aAAaA,CAAA,EAAG;IACZ,IAAI,IAAI,CAAC5nE,WAAW,EAAE;MAClB,IAAI,CAAC+nE,UAAU,CAAC,CAAC;MACjB,IAAI,CAAC/nE,WAAW,CAACqF,OAAO,CAAC,CAAC;MAC1B,IAAI,CAACrF,WAAW,GAAG,IAAI;IAC3B;EACJ;EACAwoE,gBAAgBA,CAAC74I,KAAK,EAAE;IACpB,MAAMi6I,SAAS,GAAG,IAAI,CAACpC,YAAY,IAAI,IAAI,CAACA,YAAY,CAACzD,WAAW,GAC9D,IAAI,CAACyD,YAAY,CAACzD,WAAW,CAACp0I,KAAK,CAAC,GACpCA,KAAK;IACX;IACA;IACA,MAAMk6I,UAAU,GAAGD,SAAS,IAAI,IAAI,GAAGA,SAAS,GAAG,EAAE;IACrD;IACA;IACA,IAAI,IAAI,CAAClD,UAAU,EAAE;MACjB,IAAI,CAACA,UAAU,CAAC3O,QAAQ,CAACpoI,KAAK,GAAGk6I,UAAU;IAC/C,CAAC,MACI;MACD,IAAI,CAACx9G,QAAQ,CAACq9B,aAAa,CAAC/5D,KAAK,GAAGk6I,UAAU;IAClD;IACA,IAAI,CAACZ,cAAc,GAAGY,UAAU;EACpC;EACA;AACJ;AACA;AACA;AACA;EACIF,iBAAiBA,CAACpgH,KAAK,EAAE;IACrB,MAAMsxC,MAAM,GAAGtxC,KAAK,IAAIA,KAAK,CAACsxC,MAAM;IACpC,IAAIA,MAAM,EAAE;MACR,IAAI,CAACivE,4BAA4B,CAACjvE,MAAM,CAAC;MACzC,IAAI,CAAC2tE,gBAAgB,CAAC3tE,MAAM,CAAClrE,KAAK,CAAC;MACnC,IAAI,CAAC+iI,SAAS,CAAC73D,MAAM,CAAClrE,KAAK,CAAC;MAC5B,IAAI,CAAC63I,YAAY,CAAC3C,gBAAgB,CAAChqE,MAAM,CAAC;MAC1C,IAAI,CAACxuC,QAAQ,CAACq9B,aAAa,CAACzzC,KAAK,CAAC,CAAC;IACvC;IACA,IAAI,CAAC8xH,UAAU,CAAC,CAAC;EACrB;EACA;AACJ;AACA;EACI+B,4BAA4BA,CAAC/sI,IAAI,EAAE;IAC/B,IAAI,CAACyqI,YAAY,CAAC3xI,OAAO,CAAC0G,OAAO,CAAC+mI,MAAM,IAAI;MACxC,IAAIA,MAAM,KAAKvmI,IAAI,IAAIumI,MAAM,CAACppE,QAAQ,EAAE;QACpCopE,MAAM,CAAC/oE,QAAQ,CAAC,CAAC;MACrB;IACJ,CAAC,CAAC;EACN;EACAyc,cAAcA,CAAA,EAAG;IACb,IAAIvmE,EAAE;IACN,IAAI,CAAC,IAAI,CAAC+2H,YAAY,KAAK,OAAOhjH,SAAS,KAAK,WAAW,IAAIA,SAAS,CAAC,EAAE;MACvE,MAAM+hH,mCAAmC,CAAC,CAAC;IAC/C;IACA,IAAItmE,UAAU,GAAG,IAAI,CAACD,WAAW;IACjC,IAAI,CAACC,UAAU,EAAE;MACb,IAAI,CAAC8pE,OAAO,GAAG,IAAIhsE,gEAAc,CAAC,IAAI,CAACypE,YAAY,CAAC5qD,QAAQ,EAAE,IAAI,CAACsC,iBAAiB,EAAE;QAClF9+E,EAAE,EAAE,CAACqQ,EAAE,GAAG,IAAI,CAACi2H,UAAU,MAAM,IAAI,IAAIj2H,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,EAAE,CAACu5H,UAAU,CAAC;MAClF,CAAC,CAAC;MACF/pE,UAAU,GAAG,IAAI,CAAC2V,QAAQ,CAAC9wE,MAAM,CAAC,IAAI,CAACmlI,iBAAiB,CAAC,CAAC,CAAC;MAC3D,IAAI,CAACjqE,WAAW,GAAGC,UAAU;MAC7B;MACA;MACAA,UAAU,CAAC6F,aAAa,CAAC,CAAC,CAAC7kB,SAAS,CAAC13B,KAAK,IAAI;QAC1C;QACA;QACA,IAAKA,KAAK,CAACq5B,OAAO,KAAKub,0DAAM,IAAI,CAACtjB,sEAAc,CAACtxB,KAAK,CAAC,IAClDA,KAAK,CAACq5B,OAAO,KAAKtH,4DAAQ,IAAIT,sEAAc,CAACtxB,KAAK,EAAE,QAAQ,CAAE,EAAE;UACjE,IAAI,CAAC09G,oBAAoB,CAAC/3I,IAAI,CAAC,CAAC;UAChC,IAAI,CAAC05I,gBAAgB,CAAC,CAAC;UACvB;UACA;UACAr/G,KAAK,CAAC2gH,eAAe,CAAC,CAAC;UACvB3gH,KAAK,CAAC+5B,cAAc,CAAC,CAAC;QAC1B;MACJ,CAAC,CAAC;MACF,IAAI,CAACyjF,qBAAqB,GAAG,IAAI,CAACzoE,cAAc,CAACvd,MAAM,CAAC,CAAC,CAACE,SAAS,CAAC,MAAM;QACtE,IAAI,IAAI,CAACkmF,SAAS,IAAIlnE,UAAU,EAAE;UAC9BA,UAAU,CAACkG,UAAU,CAAC;YAAE/wD,KAAK,EAAE,IAAI,CAAC+0H,cAAc,CAAC;UAAE,CAAC,CAAC;QAC3D;MACJ,CAAC,CAAC;IACN,CAAC,MACI;MACD;MACA,IAAI,CAAC1lE,iBAAiB,CAAC2E,SAAS,CAAC,IAAI,CAACghE,oBAAoB,CAAC,CAAC,CAAC;MAC7DnqE,UAAU,CAACkG,UAAU,CAAC;QAAE/wD,KAAK,EAAE,IAAI,CAAC+0H,cAAc,CAAC;MAAE,CAAC,CAAC;IAC3D;IACA,IAAIlqE,UAAU,IAAI,CAACA,UAAU,CAACxX,WAAW,CAAC,CAAC,EAAE;MACzCwX,UAAU,CAACvB,MAAM,CAAC,IAAI,CAACqrE,OAAO,CAAC;MAC/B,IAAI,CAAC9B,2BAA2B,GAAG,IAAI,CAACsB,0BAA0B,CAAC,CAAC;IACxE;IACA,MAAMG,OAAO,GAAG,IAAI,CAACvC,SAAS;IAC9B,IAAI,CAACK,YAAY,CAAC/C,cAAc,CAAC,CAAC;IAClC,IAAI,CAAC+C,YAAY,CAAC1D,OAAO,GAAG,IAAI,CAACwD,gBAAgB,GAAG,IAAI;IACxD;IACA;IACA,IAAI,IAAI,CAACH,SAAS,IAAIuC,OAAO,KAAK,IAAI,CAACvC,SAAS,EAAE;MAC9C,IAAI,CAACK,YAAY,CAACvD,MAAM,CAACv1I,IAAI,CAAC,CAAC;IACnC;EACJ;EACAu7I,iBAAiBA,CAAA,EAAG;IAChB,IAAIx5H,EAAE;IACN,OAAO,IAAI2xD,+DAAa,CAAC;MACrBsC,gBAAgB,EAAE,IAAI,CAAC2lE,mBAAmB,CAAC,CAAC;MAC5ChoE,cAAc,EAAE,IAAI,CAACmC,eAAe,CAAC,CAAC;MACtCpvD,KAAK,EAAE,IAAI,CAAC+0H,cAAc,CAAC,CAAC;MAC5BvoF,SAAS,EAAE,IAAI,CAACyU,IAAI;MACpBiM,UAAU,EAAE,CAAC7xD,EAAE,GAAG,IAAI,CAACk2H,SAAS,MAAM,IAAI,IAAIl2H,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,EAAE,CAAC65H;IAC9E,CAAC,CAAC;EACN;EACAD,mBAAmBA,CAAA,EAAG;IAClB,MAAMnkE,QAAQ,GAAG,IAAI,CAAC0P,QAAQ,CACzBvhB,QAAQ,CAAC,CAAC,CACV4e,mBAAmB,CAAC,IAAI,CAACm3D,oBAAoB,CAAC,CAAC,CAAC,CAChD/9D,sBAAsB,CAAC,KAAK,CAAC,CAC7BI,QAAQ,CAAC,KAAK,CAAC;IACpB,IAAI,CAACk7D,qBAAqB,CAACzhE,QAAQ,CAAC;IACpC,IAAI,CAACzB,iBAAiB,GAAGyB,QAAQ;IACjC,OAAOA,QAAQ;EACnB;EACA;EACAyhE,qBAAqBA,CAACjjE,gBAAgB,EAAE;IACpC;IACA;IACA,MAAM6lE,cAAc,GAAG,CACnB;MAAE1nE,OAAO,EAAE,OAAO;MAAEC,OAAO,EAAE,QAAQ;MAAEC,QAAQ,EAAE,OAAO;MAAEC,QAAQ,EAAE;IAAM,CAAC,EAC3E;MAAEH,OAAO,EAAE,KAAK;MAAEC,OAAO,EAAE,QAAQ;MAAEC,QAAQ,EAAE,KAAK;MAAEC,QAAQ,EAAE;IAAM,CAAC,CAC1E;IACD;IACA;IACA;IACA,MAAMV,UAAU,GAAG,IAAI,CAACkoE,WAAW;IACnC,MAAMC,cAAc,GAAG,CACnB;MAAE5nE,OAAO,EAAE,OAAO;MAAEC,OAAO,EAAE,KAAK;MAAEC,QAAQ,EAAE,OAAO;MAAEC,QAAQ,EAAE,QAAQ;MAAEV;IAAW,CAAC,EACvF;MAAEO,OAAO,EAAE,KAAK;MAAEC,OAAO,EAAE,KAAK;MAAEC,QAAQ,EAAE,KAAK;MAAEC,QAAQ,EAAE,QAAQ;MAAEV;IAAW,CAAC,CACtF;IACD,IAAI+G,SAAS;IACb,IAAI,IAAI,CAAChV,QAAQ,KAAK,OAAO,EAAE;MAC3BgV,SAAS,GAAGohE,cAAc;IAC9B,CAAC,MACI,IAAI,IAAI,CAACp2E,QAAQ,KAAK,OAAO,EAAE;MAChCgV,SAAS,GAAGkhE,cAAc;IAC9B,CAAC,MACI;MACDlhE,SAAS,GAAG,CAAC,GAAGkhE,cAAc,EAAE,GAAGE,cAAc,CAAC;IACtD;IACA/lE,gBAAgB,CAACwH,aAAa,CAAC7C,SAAS,CAAC;EAC7C;EACA+gE,oBAAoBA,CAAA,EAAG;IACnB,IAAI,IAAI,CAACjiE,WAAW,EAAE;MAClB,OAAO,IAAI,CAACA,WAAW,CAACsN,UAAU;IACtC;IACA,OAAO,IAAI,CAACixD,UAAU,GAAG,IAAI,CAACA,UAAU,CAACgE,yBAAyB,CAAC,CAAC,GAAG,IAAI,CAACr+G,QAAQ;EACxF;EACA89G,cAAcA,CAAA,EAAG;IACb,OAAO,IAAI,CAAC3C,YAAY,CAACnC,UAAU,IAAI,IAAI,CAACsF,aAAa,CAAC,CAAC;EAC/D;EACA;EACAA,aAAaA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACP,oBAAoB,CAAC,CAAC,CAAC1gF,aAAa,CAACmY,qBAAqB,CAAC,CAAC,CAACzsD,KAAK;EAClF;EACA;AACJ;AACA;AACA;EACIwzH,gBAAgBA,CAAA,EAAG;IACf,MAAMpB,YAAY,GAAG,IAAI,CAACA,YAAY;IACtC,IAAIA,YAAY,CAAC9D,qBAAqB,EAAE;MACpC;MACA;MACA8D,YAAY,CAAChD,WAAW,CAACrhF,kBAAkB,CAAC,CAAC;IACjD,CAAC,MACI;MACDqkF,YAAY,CAAChD,WAAW,CAACjiF,aAAa,CAAC,CAAC,CAAC,CAAC;IAC9C;EACJ;EACA;EACAwmF,QAAQA,CAAA,EAAG;IACP,MAAMtsH,OAAO,GAAG,IAAI,CAAC4P,QAAQ,CAACq9B,aAAa;IAC3C,OAAO,CAACjtC,OAAO,CAACmuH,QAAQ,IAAI,CAACnuH,OAAO,CAACqN,QAAQ,IAAI,CAAC,IAAI,CAAC+8G,qBAAqB;EAChF;EACA;EACAv0E,UAAUA,CAAA,EAAG;IACT,IAAI7hD,EAAE;IACN,OAAO,CAAC,CAACA,EAAE,GAAG,IAAI,CAAC6sC,SAAS,MAAM,IAAI,IAAI7sC,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,EAAE,CAAC+1C,WAAW,KAAKl8C,MAAM;EAChG;EACA;EACA0+H,eAAeA,CAACj3I,KAAK,EAAE;IACnB;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAMy1I,YAAY,GAAG,IAAI,CAACA,YAAY;IACtC,MAAMqD,UAAU,GAAGxI,qFAA6B,CAACtwI,KAAK,EAAEy1I,YAAY,CAAC3xI,OAAO,EAAE2xI,YAAY,CAAC3B,YAAY,CAAC;IACxG,IAAI9zI,KAAK,KAAK,CAAC,IAAI84I,UAAU,KAAK,CAAC,EAAE;MACjC;MACA;MACA;MACArD,YAAY,CAAC9C,aAAa,CAAC,CAAC,CAAC;IACjC,CAAC,MACI,IAAI8C,YAAY,CAAC7C,KAAK,EAAE;MACzB,MAAMrB,MAAM,GAAGkE,YAAY,CAAC3xI,OAAO,CAACurD,OAAO,CAAC,CAAC,CAACrvD,KAAK,CAAC;MACpD,IAAIuxI,MAAM,EAAE;QACR,MAAM7mH,OAAO,GAAG6mH,MAAM,CAACwH,eAAe,CAAC,CAAC;QACxC,MAAMC,iBAAiB,GAAGzI,gFAAwB,CAAC7lH,OAAO,CAACuuH,SAAS,EAAEvuH,OAAO,CAACqpC,YAAY,EAAE0hF,YAAY,CAAC5C,aAAa,CAAC,CAAC,EAAE4C,YAAY,CAAC7C,KAAK,CAACj7E,aAAa,CAAC5D,YAAY,CAAC;QACxK0hF,YAAY,CAAC9C,aAAa,CAACqG,iBAAiB,CAAC;MACjD;IACJ;EACJ;AACJ;AACAvE,2BAA2B,CAAC15G,IAAI,YAAAm+G,oCAAAp2I,CAAA;EAAA,YAAAA,CAAA,IAAwF2xI,2BAA2B,EA5nB5CpiH,+DAAE,CA4nB4DA,qDAAa,GA5nB3EA,+DAAE,CA4nBsFi4B,yDAAY,GA5nBpGj4B,+DAAE,CA4nB+GA,2DAAmB,GA5nBpIA,+DAAE,CA4nB+IA,iDAAS,GA5nB1JA,+DAAE,CA4nBqKA,4DAAoB,GA5nB3LA,+DAAE,CA4nBsM8hH,gCAAgC,GA5nBxO9hH,+DAAE,CA4nBmP68D,8DAAmB,MA5nBxQ78D,+DAAE,CA4nBmSw+G,yEAAc,MA5nBnTx+G,+DAAE,CA4nB0Vs1B,qDAAQ,MA5nBpWt1B,+DAAE,CA4nB+Xq+G,kEAAgB,GA5nBjZr+G,+DAAE,CA4nB4Zo/G,gCAAgC;AAAA,CAA4D;AACjmBgD,2BAA2B,CAACl8E,IAAI,kBA7nBuElmC,+DAAE;EAAA98B,IAAA,EA6nBGk/I,2BAA2B;EAAA/7E,MAAA;IAAA+8E,YAAA;IAAAnzE,QAAA;IAAA8T,WAAA;IAAAk/D,qBAAA;IAAAK,oBAAA;EAAA;EAAA/8E,QAAA,GA7nBhCvmC,kEAAE;AAAA,EA6nB+X;AACxe;EAAA,QAAAI,SAAA,oBAAAA,SAAA,KA9nBuGJ,+DAAE,CA8nBdoiH,2BAA2B,EAAc,CAAC;IACzHl/I,IAAI,EAAEuyD,oDAASA;EACnB,CAAC,CAAC,EAAkB,YAAY;IAChC,OAAO,CAAC;MAAEvyD,IAAI,EAAE88B,qDAAaimC;IAAC,CAAC,EAAE;MAAE/iE,IAAI,EAAE+0D,yDAAYg4B;IAAC,CAAC,EAAE;MAAE/sF,IAAI,EAAE88B,2DAAmBszD;IAAC,CAAC,EAAE;MAAEpwF,IAAI,EAAE88B,iDAASglC;IAAC,CAAC,EAAE;MAAE9hE,IAAI,EAAE88B,4DAAoB+kE;IAAC,CAAC,EAAE;MAAE7hG,IAAI,EAAE6iC,SAAS;MAAE61B,UAAU,EAAE,CAAC;QAC7J14D,IAAI,EAAEqyD,iDAAM;QACZttD,IAAI,EAAE,CAAC65I,gCAAgC;MAC3C,CAAC;IAAE,CAAC,EAAE;MAAE5+I,IAAI,EAAE25F,8DAAmB;MAAEjhC,UAAU,EAAE,CAAC;QAC5C14D,IAAI,EAAE0yD,mDAAQA;MAClB,CAAC;IAAE,CAAC,EAAE;MAAE1yD,IAAI,EAAEq7I,uEAAe;MAAE3iF,UAAU,EAAE,CAAC;QACxC14D,IAAI,EAAE0yD,mDAAQA;MAClB,CAAC,EAAE;QACC1yD,IAAI,EAAEqyD,iDAAM;QACZttD,IAAI,EAAE,CAACu2I,yEAAc;MACzB,CAAC,EAAE;QACCt7I,IAAI,EAAE+mG,+CAAIA;MACd,CAAC;IAAE,CAAC,EAAE;MAAE/mG,IAAI,EAAE6iC,SAAS;MAAE61B,UAAU,EAAE,CAAC;QAClC14D,IAAI,EAAE0yD,mDAAQA;MAClB,CAAC,EAAE;QACC1yD,IAAI,EAAEqyD,iDAAM;QACZttD,IAAI,EAAE,CAACqtD,qDAAQ;MACnB,CAAC;IAAE,CAAC,EAAE;MAAEpyD,IAAI,EAAEm7I,kEAAgBnlE;IAAC,CAAC,EAAE;MAAEh2E,IAAI,EAAE6iC,SAAS;MAAE61B,UAAU,EAAE,CAAC;QAC9D14D,IAAI,EAAE0yD,mDAAQA;MAClB,CAAC,EAAE;QACC1yD,IAAI,EAAEqyD,iDAAM;QACZttD,IAAI,EAAE,CAACm3I,gCAAgC;MAC3C,CAAC;IAAE,CAAC,CAAC;EACrB,CAAC,EAAkB;IAAEgE,YAAY,EAAE,CAAC;MACxBlgJ,IAAI,EAAEwyD,gDAAK;MACXztD,IAAI,EAAE,CAAC,iBAAiB;IAC5B,CAAC,CAAC;IAAEgoE,QAAQ,EAAE,CAAC;MACX/sE,IAAI,EAAEwyD,gDAAK;MACXztD,IAAI,EAAE,CAAC,yBAAyB;IACpC,CAAC,CAAC;IAAE87E,WAAW,EAAE,CAAC;MACd7gF,IAAI,EAAEwyD,gDAAK;MACXztD,IAAI,EAAE,CAAC,4BAA4B;IACvC,CAAC,CAAC;IAAEg7I,qBAAqB,EAAE,CAAC;MACxB//I,IAAI,EAAEwyD,gDAAK;MACXztD,IAAI,EAAE,CAAC,cAAc;IACzB,CAAC,CAAC;IAAEq7I,oBAAoB,EAAE,CAAC;MACvBpgJ,IAAI,EAAEwyD,gDAAK;MACXztD,IAAI,EAAE,CAAC,yBAAyB;IACpC,CAAC;EAAE,CAAC;AAAA;AAChB,MAAMi6I,sBAAsB,SAASE,2BAA2B,CAAC;EAC7Dv4I,WAAWA,CAAA,EAAG;IACV,KAAK,CAAC,GAAGvB,SAAS,CAAC;IACnB,IAAI,CAAC89I,WAAW,GAAG,8BAA8B;EACrD;AACJ;AACAlE,sBAAsB,CAACx5G,IAAI;EAAA,IAAAq+G,mCAAA;EAAA,gBAAAC,+BAAAv2I,CAAA;IAAA,QAAAs2I,mCAAA,KAAAA,mCAAA,GA9qB4E/mH,mEAAE,CA8qBUkiH,sBAAsB,IAAAzxI,CAAA,IAAtByxI,sBAAsB;EAAA;AAAA,GAAqD;AAC9LA,sBAAsB,CAACh8E,IAAI,kBA/qB4ElmC,+DAAE;EAAA98B,IAAA,EA+qBFg/I,sBAAsB;EAAA97E,SAAA;EAAAq/B,SAAA;EAAApzB,QAAA;EAAAC,YAAA,WAAA20E,oCAAAz0E,EAAA,EAAAj6B,GAAA;IAAA,IAAAi6B,EAAA;MA/qBtBxyC,wDAAE,qBAAAknH,kDAAA;QAAA,OA+qBF3uG,GAAA,CAAAusG,YAAA,CAAa,CAAC;MAAA,oBAAAqC,+CAAA;QAAA,OAAd5uG,GAAA,CAAAyqG,UAAA,CAAW,CAAC;MAAA,qBAAAoE,gDAAAtpB,MAAA;QAAA,OAAZvlF,GAAA,CAAAkmF,YAAA,CAAAX,MAAmB,CAAC;MAAA,uBAAAupB,kDAAAvpB,MAAA;QAAA,OAApBvlF,GAAA,CAAA8rG,cAAA,CAAAvmB,MAAqB,CAAC;MAAA,qBAAAwpB,gDAAA;QAAA,OAAtB/uG,GAAA,CAAAwsG,YAAA,CAAa,CAAC;MAAA;IAAA;IAAA,IAAAvyE,EAAA;MA/qBdxyC,yDAAE,iBAAAuY,GAAA,CAAA0qG,qBAAA,UAAA1qG,GAAA,CAAA+qG,oBAAA,2CAAA/qG,GAAA,CAAA+qG,oBAAA,2CAAA/qG,GAAA,CAAAwqG,SAAA,IAAAxqG,GAAA,CAAAyrG,YAAA,GAAAzrG,GAAA,CAAAyrG,YAAA,CAAAhoI,EAAA,0BAAAu8B,GAAA,CAAA+qG,oBAAA,UAAA/qG,GAAA,CAAAwqG,SAAA,CAAAz7I,QAAA,iBAAAixC,GAAA,CAAA+qG,oBAAA,KAAA/qG,GAAA,CAAAwqG,SAAA,UAAAxqG,GAAA,CAAA6qG,YAAA,kBAAA7qG,GAAA,CAAA6qG,YAAA,CAAApnI,EAAA,mBAAAu8B,GAAA,CAAA+qG,oBAAA;IAAA;EAAA;EAAAh9E,QAAA;EAAAC,QAAA,GAAFvmC,gEAAE,CA+qBizB,CAACiiH,+BAA+B,CAAC,GA/qBp1BjiH,wEAAE;AAAA,EA+qBg6B;AACzgC;EAAA,QAAAI,SAAA,oBAAAA,SAAA,KAhrBuGJ,+DAAE,CAgrBdkiH,sBAAsB,EAAc,CAAC;IACpHh/I,IAAI,EAAEuyD,oDAAS;IACfxtD,IAAI,EAAE,CAAC;MACCm6B,QAAQ,EAAE,mDAAmD;MAC7D0E,IAAI,EAAE;QACF,OAAO,EAAE,0BAA0B;QACnC,qBAAqB,EAAE,uBAAuB;QAC9C,aAAa,EAAE,0CAA0C;QACzD,0BAA0B,EAAE,sCAAsC;QAClE,8BAA8B,EAAE,sDAAsD;QACtF,sBAAsB,EAAE,oDAAoD;QAC5E,kBAAkB,EAAE,gEAAgE;QACpF,sBAAsB,EAAE,yCAAyC;QACjE;QACA;QACA,WAAW,EAAE,gBAAgB;QAC7B,QAAQ,EAAE,cAAc;QACxB,SAAS,EAAE,sBAAsB;QACjC,WAAW,EAAE,wBAAwB;QACrC,SAAS,EAAE;MACf,CAAC;MACDw/B,QAAQ,EAAE,wBAAwB;MAClCuM,SAAS,EAAE,CAACovE,+BAA+B;IAC/C,CAAC;EACT,CAAC,CAAC;AAAA;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMsF,0BAA0B,CAAC;EAC7B19I,WAAWA,CACX;EACAwnF,UAAU,EAAE;IACR,IAAI,CAACA,UAAU,GAAGA,UAAU;EAChC;AACJ;AACAk2D,0BAA0B,CAAC7+G,IAAI,YAAA8+G,mCAAA/2I,CAAA;EAAA,YAAAA,CAAA,IAAwF82I,0BAA0B,EAztB1CvnH,+DAAE,CAytB0DA,qDAAa;AAAA,CAA4C;AAC5NunH,0BAA0B,CAACrhF,IAAI,kBA1tBwElmC,+DAAE;EAAA98B,IAAA,EA0tBEqkJ;AAA0B,EAAiB;AACtJ;EAAA,QAAAnnH,SAAA,oBAAAA,SAAA,KA3tBuGJ,+DAAE,CA2tBdunH,0BAA0B,EAAc,CAAC;IACxHrkJ,IAAI,EAAEuyD,oDAASA;EACnB,CAAC,CAAC,EAAkB,YAAY;IAAE,OAAO,CAAC;MAAEvyD,IAAI,EAAE88B,qDAAaimC;IAAC,CAAC,CAAC;EAAE,CAAC;AAAA;AAC7E;AACA;AACA;AACA;AACA,MAAMwhF,qBAAqB,SAASF,0BAA0B,CAAC;AAE/DE,qBAAqB,CAAC/+G,IAAI;EAAA,IAAAg/G,kCAAA;EAAA,gBAAAC,8BAAAl3I,CAAA;IAAA,QAAAi3I,kCAAA,KAAAA,kCAAA,GApuB6E1nH,mEAAE,CAouBSynH,qBAAqB,IAAAh3I,CAAA,IAArBg3I,qBAAqB;EAAA;AAAA,GAAqD;AAC5LA,qBAAqB,CAACvhF,IAAI,kBAruB6ElmC,+DAAE;EAAA98B,IAAA,EAquBHukJ,qBAAqB;EAAArhF,SAAA;EAAAE,QAAA;EAAAC,QAAA,GAruBpBvmC,wEAAE;AAAA,EAquBoI;AAC7O;EAAA,QAAAI,SAAA,oBAAAA,SAAA,KAtuBuGJ,+DAAE,CAsuBdynH,qBAAqB,EAAc,CAAC;IACnHvkJ,IAAI,EAAEuyD,oDAAS;IACfxtD,IAAI,EAAE,CAAC;MACCm6B,QAAQ,EAAE,yBAAyB;MACnCkkC,QAAQ,EAAE;IACd,CAAC;EACT,CAAC,CAAC;AAAA;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMshF,qBAAqB,CAAC;AAE5BA,qBAAqB,CAACl/G,IAAI,YAAAm/G,8BAAAp3I,CAAA;EAAA,YAAAA,CAAA,IAAwFm3I,qBAAqB;AAAA,CAAkD;AACzLA,qBAAqB,CAAC/2E,IAAI,kBAxvB6E7wC,8DAAE;EAAA98B,IAAA,EAwvBU0kJ,qBAAqB;EAAA72E,YAAA,GAAiBmwE,eAAe,EAAEgB,sBAAsB,EAAEuF,qBAAqB;EAAAz2E,OAAA,GAAa2iB,+DAAa,EAAEwqD,mEAAe,EAAEC,mEAAe,EAAErwB,yDAAY;EAAA98C,OAAA,GAAaiwE,eAAe,EACrTgB,sBAAsB,EACtBuF,qBAAqB,EACrBp+C,wEAAmB,EACnB80C,mEAAe,EACfC,mEAAe;AAAA,EAAI;AAC3BwJ,qBAAqB,CAAC12E,IAAI,kBA9vB6ElxC,8DAAE;EAAA6yC,SAAA,EA8vB4C,CAACmvE,iDAAiD,CAAC;EAAAhxE,OAAA,GAAY,CAAC2iB,+DAAa,EAAEwqD,mEAAe,EAAEC,mEAAe,EAAErwB,yDAAY,CAAC,EAAE1kB,wEAAmB,EAChS80C,mEAAe,EACfC,mEAAe;AAAA,EAAI;AAC3B;EAAA,QAAAh+G,SAAA,oBAAAA,SAAA,KAjwBuGJ,+DAAE,CAiwBd4nH,qBAAqB,EAAc,CAAC;IACnH1kJ,IAAI,EAAE6yD,mDAAQ;IACd9tD,IAAI,EAAE,CAAC;MACC+oE,OAAO,EAAE,CAAC2iB,+DAAa,EAAEwqD,mEAAe,EAAEC,mEAAe,EAAErwB,yDAAY,CAAC;MACxE98C,OAAO,EAAE,CACLiwE,eAAe,EACfgB,sBAAsB,EACtBuF,qBAAqB,EACrBp+C,wEAAmB,EACnB80C,mEAAe,EACfC,mEAAe,CAClB;MACDrtE,YAAY,EAAE,CAACmwE,eAAe,EAAEgB,sBAAsB,EAAEuF,qBAAqB,CAAC;MAC9E50E,SAAS,EAAE,CAACmvE,iDAAiD;IACjE,CAAC;EACT,CAAC,CAAC;AAAA;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC98BoC;AAC8K;AACnK;AACK;AACd;AACmB;AACX;AAC8C;AACpD;AAC8D;AACH;AACxD;AACA;AACkC;AACR;;AAErE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,MAAAllD,GAAA;AAAA,MAAAC,GAAA;AAAA,SAAAkrD,yCAAAz1E,EAAA,EAAAj6B,GAAA;EAAA,IAAAi6B,EAAA;IA0EkGxyC,uDAAE,4BAohDgvB,CAAC;EAAA;EAAA,IAAAwyC,EAAA;IAAA,MAAAmsE,MAAA,GAphDnvB3+G,2DAAE;IAAFA,wDAAE,UAAA2+G,MAAA,CAAA7oE,QAAA,0BAohDisB,CAAC,aAAA6oE,MAAA,CAAAj5G,QAAD,CAAC;EAAA;AAAA;AAAA,SAAAwiH,0BAAA11E,EAAA,EAAAj6B,GAAA;EAAA,IAAAi6B,EAAA;IAphDpsBxyC,4DAAE,aAohDy8B,CAAC;IAphD58BA,oDAAE,EAohD49B,CAAC;IAphD/9BA,0DAAE,CAohDm+B,CAAC;EAAA;EAAA,IAAAwyC,EAAA;IAAA,MAAA41E,MAAA,GAphDt+BpoH,2DAAE;IAAFA,uDAAE,EAohD49B,CAAC;IAphD/9BA,gEAAE,MAAAooH,MAAA,CAAAlY,KAAA,CAAA5jH,KAAA,KAohD49B,CAAC;EAAA;AAAA;AAAA,MAAAg8H,GAAA;AA7lDjkC,MAAM75B,OAAO,GAAG,IAAIlkB,kDAAO,CAAC,QAAQ,CAAC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMg+C,eAAe,CAAC;AAEtBA,eAAe,CAACC,cAAc,GAAG,6BAA6B;AAC9DD,eAAe,CAACE,kBAAkB,GAAG,6BAA6B;AAClEF,eAAe,CAACG,kBAAkB,GAAG,2BAA2B;AAChEH,eAAe,CAACI,WAAW,GAAG,6BAA6B;AAC3D;AACA,MAAMC,kBAAkB,CAAC;AAEzBA,kBAAkB,CAACC,OAAO,GAAG,OAAO;AACpCD,kBAAkB,CAACE,QAAQ,GAAG,OAAO;AACrCF,kBAAkB,CAACG,OAAO,GAAG,OAAO;;AAEpC;AACA,SAASC,8BAA8BA,CAAA,EAAG;EACtC,OAAO,IAAI;AACf;AACA;AACA,MAAMC,sBAAsB,GAAG,IAAItzF,yDAAc,CAAC,mBAAmB,EAAE;EACnEgG,UAAU,EAAE,MAAM;EAClB7yB,OAAO,EAAEkgH;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,MAAM5K,eAAe,CAAC;EAClBv0I,WAAWA,CAAC8mE,wBAAwB,EAAEu4E,aAAa,EAAEhwF,SAAS,EAAE;IAC5D,IAAI,CAACgwF,aAAa,GAAGA,aAAa;IAClC,IAAI,CAAChwF,SAAS,GAAGA,SAAS;IAC1B;IACA,IAAI,CAACiwF,oBAAoB,GAAG,KAAK;IACjC;IACA;IACAx4E,wBAAwB,CAACN,oCAAoC,CAAC,CAAC;IAC/D,IAAI,CAAC,IAAI,CAAC84E,oBAAoB,EAAE;MAC5B,IAAI,CAACA,oBAAoB,GAAG,IAAI;MAChC,IAAI,OAAO/oH,SAAS,KAAK,WAAW,IAAIA,SAAS,EAAE;QAC/C,IAAI,IAAI,CAACgpH,eAAe,CAAC,SAAS,CAAC,EAAE;UACjCC,sBAAsB,CAAC,IAAI,CAACnwF,SAAS,CAAC;QAC1C;QACA,IAAI,IAAI,CAACkwF,eAAe,CAAC,OAAO,CAAC,EAAE;UAC/BE,oBAAoB,CAAC,IAAI,CAACpwF,SAAS,CAAC;QACxC;QACA,IAAI,IAAI,CAACkwF,eAAe,CAAC,SAAS,CAAC,EAAE;UACjCG,qBAAqB,CAAC,CAAC;QAC3B;MACJ;IACJ;EACJ;EACA;EACAH,eAAeA,CAAC3gJ,IAAI,EAAE;IAClB,IAAI+wE,yEAAkB,CAAC,CAAC,EAAE;MACtB,OAAO,KAAK;IAChB;IACA,IAAI,OAAO,IAAI,CAAC0vE,aAAa,KAAK,SAAS,EAAE;MACzC,OAAO,IAAI,CAACA,aAAa;IAC7B;IACA,OAAO,CAAC,CAAC,IAAI,CAACA,aAAa,CAACzgJ,IAAI,CAAC;EACrC;AACJ;AACA21I,eAAe,CAAC11G,IAAI,YAAA8gH,wBAAA/4I,CAAA;EAAA,YAAAA,CAAA,IAAwF2tI,eAAe,EAAzBp+G,sDAAE,CAAyCg2B,uEAA2B,GAAtEh2B,sDAAE,CAAiFipH,sBAAsB,MAAzGjpH,sDAAE,CAAoIs1B,qDAAQ;AAAA,CAA2C;AAC3R8oF,eAAe,CAACvtE,IAAI,kBAD8E7wC,8DAAE;EAAA98B,IAAA,EACSk7I,eAAe;EAAAptE,OAAA,GAAY8B,yDAAU;EAAA7B,OAAA,GAAa6B,yDAAU;AAAA,EAAI;AAC7KsrE,eAAe,CAACltE,IAAI,kBAF8ElxC,8DAAE;EAAAgxC,OAAA,GAEoC,CAAC8B,yDAAU,CAAC,EAAEA,yDAAU;AAAA,EAAI;AACpK;EAAA,QAAA1yC,SAAA,oBAAAA,SAAA,KAHkGJ,+DAAE,CAGTo+G,eAAe,EAAc,CAAC;IAC7Gl7I,IAAI,EAAE6yD,mDAAQ;IACd9tD,IAAI,EAAE,CAAC;MACC+oE,OAAO,EAAE,CAAC8B,yDAAU,CAAC;MACrB7B,OAAO,EAAE,CAAC6B,yDAAU;IACxB,CAAC;EACT,CAAC,CAAC,EAAkB,YAAY;IAChC,OAAO,CAAC;MAAE5vE,IAAI,EAAE8yD,uEAA2B6Z;IAAC,CAAC,EAAE;MAAE3sE,IAAI,EAAE6iC,SAAS;MAAE61B,UAAU,EAAE,CAAC;QAC/D14D,IAAI,EAAE0yD,mDAAQA;MAClB,CAAC,EAAE;QACC1yD,IAAI,EAAEqyD,iDAAM;QACZttD,IAAI,EAAE,CAACghJ,sBAAsB;MACjC,CAAC;IAAE,CAAC,EAAE;MAAE/lJ,IAAI,EAAE8mE,QAAQ;MAAEpO,UAAU,EAAE,CAAC;QACjC14D,IAAI,EAAEqyD,iDAAM;QACZttD,IAAI,EAAE,CAACqtD,qDAAQ;MACnB,CAAC;IAAE,CAAC,CAAC;EACrB,CAAC;AAAA;AACL;AACA,SAAS+zF,sBAAsBA,CAACl7E,GAAG,EAAE;EACjC,IAAI,CAACA,GAAG,CAACs7E,OAAO,EAAE;IACd36G,OAAO,CAACC,IAAI,CAAC,2DAA2D,GACpE,6DAA6D,CAAC;EACtE;AACJ;AACA;AACA,SAASu6G,oBAAoBA,CAACn7E,GAAG,EAAE;EAC/B;EACA;EACA,IAAI,CAACA,GAAG,CAAC98C,IAAI,IAAI,OAAOmd,gBAAgB,KAAK,UAAU,EAAE;IACrD;EACJ;EACA,MAAMuhC,WAAW,GAAG5B,GAAG,CAACzT,aAAa,CAAC,KAAK,CAAC;EAC5CqV,WAAW,CAACnlB,SAAS,CAACtY,GAAG,CAAC,yBAAyB,CAAC;EACpD67B,GAAG,CAAC98C,IAAI,CAACwpC,WAAW,CAACkV,WAAW,CAAC;EACjC,MAAMI,aAAa,GAAG3hC,gBAAgB,CAACuhC,WAAW,CAAC;EACnD;EACA;EACA;EACA,IAAII,aAAa,IAAIA,aAAa,CAAC9f,OAAO,KAAK,MAAM,EAAE;IACnDvhB,OAAO,CAACC,IAAI,CAAC,4DAA4D,GACrE,2DAA2D,GAC3D,iEAAiE,CAAC;EAC1E;EACAghC,WAAW,CAACtuD,MAAM,CAAC,CAAC;AACxB;AACA;AACA,SAAS8nI,qBAAqBA,CAAA,EAAG;EAC7B,IAAI96B,OAAO,CAACi7B,IAAI,KAAK5B,sDAAc,EAAE;IACjCh5G,OAAO,CAACC,IAAI,CAAC,gCAAgC,GACzC0/E,OAAO,CAACi7B,IAAI,GACZ,mBAAmB,GACnB,2BAA2B,GAC3B5B,sDAAc,GACd,MAAM,GACN,iEAAiE,CAAC;EAC1E;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS6B,aAAaA,CAACt3B,IAAI,EAAE;EACzB,OAAO,cAAcA,IAAI,CAAC;IACtBxoH,WAAWA,CAAC,GAAG5B,IAAI,EAAE;MACjB,KAAK,CAAC,GAAGA,IAAI,CAAC;MACd,IAAI,CAACswE,SAAS,GAAG,KAAK;IAC1B;IACA,IAAI7yC,QAAQA,CAAA,EAAG;MACX,OAAO,IAAI,CAAC6yC,SAAS;IACzB;IACA,IAAI7yC,QAAQA,CAACn6B,KAAK,EAAE;MAChB,IAAI,CAACgtE,SAAS,GAAGxgB,4EAAqB,CAACxsD,KAAK,CAAC;IACjD;EACJ,CAAC;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASq+I,UAAUA,CAACv3B,IAAI,EAAEw3B,YAAY,EAAE;EACpC,OAAO,cAAcx3B,IAAI,CAAC;IACtBxoH,WAAWA,CAAC,GAAG5B,IAAI,EAAE;MACjB,KAAK,CAAC,GAAGA,IAAI,CAAC;MACd,IAAI,CAAC4hJ,YAAY,GAAGA,YAAY;MAChC;MACA,IAAI,CAACC,KAAK,GAAGD,YAAY;IAC7B;IACA,IAAIC,KAAKA,CAAA,EAAG;MACR,OAAO,IAAI,CAACC,MAAM;IACtB;IACA,IAAID,KAAKA,CAACv+I,KAAK,EAAE;MACb,MAAMy+I,YAAY,GAAGz+I,KAAK,IAAI,IAAI,CAACs+I,YAAY;MAC/C,IAAIG,YAAY,KAAK,IAAI,CAACD,MAAM,EAAE;QAC9B,IAAI,IAAI,CAACA,MAAM,EAAE;UACb,IAAI,CAAC7kF,WAAW,CAACI,aAAa,CAAC1a,SAAS,CAACnpC,MAAM,CAAC,OAAO,IAAI,CAACsoI,MAAM,EAAE,CAAC;QACzE;QACA,IAAIC,YAAY,EAAE;UACd,IAAI,CAAC9kF,WAAW,CAACI,aAAa,CAAC1a,SAAS,CAACtY,GAAG,CAAC,OAAO03G,YAAY,EAAE,CAAC;QACvE;QACA,IAAI,CAACD,MAAM,GAAGC,YAAY;MAC9B;IACJ;EACJ,CAAC;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASpM,kBAAkBA,CAACvrB,IAAI,EAAE;EAC9B,OAAO,cAAcA,IAAI,CAAC;IACtBxoH,WAAWA,CAAC,GAAG5B,IAAI,EAAE;MACjB,KAAK,CAAC,GAAGA,IAAI,CAAC;MACd,IAAI,CAACgiJ,cAAc,GAAG,KAAK;IAC/B;IACA;IACA,IAAIvI,aAAaA,CAAA,EAAG;MAChB,OAAO,IAAI,CAACuI,cAAc;IAC9B;IACA,IAAIvI,aAAaA,CAACn2I,KAAK,EAAE;MACrB,IAAI,CAAC0+I,cAAc,GAAGlyF,4EAAqB,CAACxsD,KAAK,CAAC;IACtD;EACJ,CAAC;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS2+I,aAAaA,CAAC73B,IAAI,EAAE83B,eAAe,GAAG,CAAC,EAAE;EAC9C,OAAO,cAAc93B,IAAI,CAAC;IACtBxoH,WAAWA,CAAC,GAAG5B,IAAI,EAAE;MACjB,KAAK,CAAC,GAAGA,IAAI,CAAC;MACd,IAAI,CAACmiJ,SAAS,GAAGD,eAAe;MAChC,IAAI,CAACA,eAAe,GAAGA,eAAe;IAC1C;IACA,IAAI9oF,QAAQA,CAAA,EAAG;MACX,OAAO,IAAI,CAAC37B,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC0kH,SAAS;IAC9C;IACA,IAAI/oF,QAAQA,CAAC91D,KAAK,EAAE;MAChB;MACA,IAAI,CAAC6+I,SAAS,GAAG7+I,KAAK,IAAI,IAAI,GAAG2rE,2EAAoB,CAAC3rE,KAAK,CAAC,GAAG,IAAI,CAAC4+I,eAAe;IACvF;EACJ,CAAC;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASE,eAAeA,CAACh4B,IAAI,EAAE;EAC3B,OAAO,cAAcA,IAAI,CAAC;IACtBxoH,WAAWA,CAAC,GAAG5B,IAAI,EAAE;MACjB,KAAK,CAAC,GAAGA,IAAI,CAAC;MACd;MACA;MACA;MACA;MACA;MACA,IAAI,CAACqiJ,YAAY,GAAG,IAAIj0F,yCAAO,CAAC,CAAC;MACjC;MACA,IAAI,CAACk0F,UAAU,GAAG,KAAK;IAC3B;IACA;IACAC,gBAAgBA,CAAA,EAAG;MACf,MAAMC,QAAQ,GAAG,IAAI,CAACF,UAAU;MAChC,MAAM3qI,MAAM,GAAG,IAAI,CAAC8qI,gBAAgB,IAAI,IAAI,CAACC,WAAW;MACxD,MAAMC,OAAO,GAAG,IAAI,CAACC,iBAAiB,IAAI,IAAI,CAACC,yBAAyB;MACxE,MAAMnrB,OAAO,GAAG,IAAI,CAACorB,SAAS,GAAG,IAAI,CAACA,SAAS,CAACprB,OAAO,GAAG,IAAI;MAC9D,MAAMqrB,QAAQ,GAAGJ,OAAO,CAACK,YAAY,CAACtrB,OAAO,EAAE//G,MAAM,CAAC;MACtD,IAAIorI,QAAQ,KAAKP,QAAQ,EAAE;QACvB,IAAI,CAACF,UAAU,GAAGS,QAAQ;QAC1B,IAAI,CAACV,YAAY,CAACx/I,IAAI,CAAC,CAAC;MAC5B;IACJ;EACJ,CAAC;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASogJ,gBAAgBA,CAAC74B,IAAI,EAAE;EAC5B,OAAO,cAAcA,IAAI,CAAC;IACtBxoH,WAAWA,CAAC,GAAG5B,IAAI,EAAE;MACjB,KAAK,CAAC,GAAGA,IAAI,CAAC;MACd;MACA,IAAI,CAACiqE,cAAc,GAAG,KAAK;MAC3B;AACZ;AACA;AACA;AACA;MACY,IAAI,CAACi5E,mBAAmB,GAAG,EAAE;MAC7B;AACZ;AACA;AACA;MACY,IAAI,CAACC,WAAW,GAAG,IAAIj0E,4CAAU,CAACk0E,UAAU,IAAI;QAC5C;QACA;QACA,IAAI,IAAI,CAACn5E,cAAc,EAAE;UACrB,IAAI,CAACo5E,iBAAiB,CAACD,UAAU,CAAC;QACtC,CAAC,MACI;UACD,IAAI,CAACF,mBAAmB,CAAC7mJ,IAAI,CAAC+mJ,UAAU,CAAC;QAC7C;MACJ,CAAC,CAAC;IACN;IACA;AACR;AACA;AACA;AACA;IACQE,gBAAgBA,CAAA,EAAG;MACf,IAAI,IAAI,CAACr5E,cAAc,KAAK,OAAO9xC,SAAS,KAAK,WAAW,IAAIA,SAAS,CAAC,EAAE;QACxE,MAAMv7B,KAAK,CAAC,4DAA4D,GACpE,6BAA6B,CAAC;MACtC;MACA,IAAI,CAACqtE,cAAc,GAAG,IAAI;MAC1B,IAAI,CAACi5E,mBAAmB,CAAChzI,OAAO,CAAC,IAAI,CAACmzI,iBAAiB,CAAC;MACxD,IAAI,CAACH,mBAAmB,GAAG,IAAI;IACnC;IACA;IACAG,iBAAiBA,CAACD,UAAU,EAAE;MAC1BA,UAAU,CAACvgJ,IAAI,CAAC,CAAC;MACjBugJ,UAAU,CAACvhF,QAAQ,CAAC,CAAC;IACzB;EACJ,CAAC;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM0hF,eAAe,GAAG,IAAI71F,yDAAc,CAAC,iBAAiB,EAAE;EAC1DgG,UAAU,EAAE,MAAM;EAClB7yB,OAAO,EAAE2iH;AACb,CAAC,CAAC;AACF;AACA,SAASA,uBAAuBA,CAAA,EAAG;EAC/B,OAAOr6E,qDAAM,CAACw4B,oDAAS,CAAC;AAC5B;AACA;AACA,MAAM8hD,WAAW,CAAC;EACd7hJ,WAAWA,CAAA,EAAG;IACV,IAAI,CAAC8hJ,cAAc,GAAG,IAAIt1F,yCAAO,CAAC,CAAC;IACnC;IACA,IAAI,CAACu1F,aAAa,GAAG,IAAI,CAACD,cAAc;EAC5C;EACA;AACJ;AACA;AACA;AACA;AACA;EACIE,kBAAkBA,CAACxqI,GAAG,EAAE;IACpB,OAAO,IAAI,CAACyqI,cAAc,CAACzqI,GAAG,CAAC,IAAI,IAAI,CAAC0qI,OAAO,CAAC1qI,GAAG,CAAC,GAAGA,GAAG,GAAG,IAAI;EACrE;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI2qI,WAAWA,CAACzgJ,KAAK,EAAE;IACf,IAAIA,KAAK,IAAI,IAAI,IAAK,IAAI,CAACugJ,cAAc,CAACvgJ,KAAK,CAAC,IAAI,IAAI,CAACwgJ,OAAO,CAACxgJ,KAAK,CAAE,EAAE;MACtE,OAAOA,KAAK;IAChB;IACA,OAAO,IAAI,CAACo3H,OAAO,CAAC,CAAC;EACzB;EACA;AACJ;AACA;AACA;EACIspB,SAASA,CAACl8C,MAAM,EAAE;IACd,IAAI,CAACA,MAAM,GAAGA,MAAM;IACpB,IAAI,CAAC47C,cAAc,CAAC7gJ,IAAI,CAAC,CAAC;EAC9B;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;EACIohJ,WAAWA,CAAC1mD,KAAK,EAAE2mD,MAAM,EAAE;IACvB,OAAQ,IAAI,CAACC,OAAO,CAAC5mD,KAAK,CAAC,GAAG,IAAI,CAAC4mD,OAAO,CAACD,MAAM,CAAC,IAC9C,IAAI,CAACn0C,QAAQ,CAACxS,KAAK,CAAC,GAAG,IAAI,CAACwS,QAAQ,CAACm0C,MAAM,CAAC,IAC5C,IAAI,CAACl0C,OAAO,CAACzS,KAAK,CAAC,GAAG,IAAI,CAACyS,OAAO,CAACk0C,MAAM,CAAC;EAClD;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;EACIE,QAAQA,CAAC7mD,KAAK,EAAE2mD,MAAM,EAAE;IACpB,IAAI3mD,KAAK,IAAI2mD,MAAM,EAAE;MACjB,IAAIG,UAAU,GAAG,IAAI,CAACP,OAAO,CAACvmD,KAAK,CAAC;MACpC,IAAI+mD,WAAW,GAAG,IAAI,CAACR,OAAO,CAACI,MAAM,CAAC;MACtC,IAAIG,UAAU,IAAIC,WAAW,EAAE;QAC3B,OAAO,CAAC,IAAI,CAACL,WAAW,CAAC1mD,KAAK,EAAE2mD,MAAM,CAAC;MAC3C;MACA,OAAOG,UAAU,IAAIC,WAAW;IACpC;IACA,OAAO/mD,KAAK,IAAI2mD,MAAM;EAC1B;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACIK,SAASA,CAACz9I,IAAI,EAAE7I,GAAG,EAAEkG,GAAG,EAAE;IACtB,IAAIlG,GAAG,IAAI,IAAI,CAACgmJ,WAAW,CAACn9I,IAAI,EAAE7I,GAAG,CAAC,GAAG,CAAC,EAAE;MACxC,OAAOA,GAAG;IACd;IACA,IAAIkG,GAAG,IAAI,IAAI,CAAC8/I,WAAW,CAACn9I,IAAI,EAAE3C,GAAG,CAAC,GAAG,CAAC,EAAE;MACxC,OAAOA,GAAG;IACd;IACA,OAAO2C,IAAI;EACf;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM09I,gBAAgB,GAAG,IAAI92F,yDAAc,CAAC,kBAAkB,CAAC;;AAE/D;AACA;AACA;AACA;AACA;AACA,MAAM+2F,cAAc,GAAG,oFAAoF;AAC3G;AACA,SAAS1oD,KAAKA,CAAC9/F,MAAM,EAAEyoJ,aAAa,EAAE;EAClC,MAAMC,WAAW,GAAG5nJ,KAAK,CAACd,MAAM,CAAC;EACjC,KAAK,IAAIF,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGE,MAAM,EAAEF,CAAC,EAAE,EAAE;IAC7B4oJ,WAAW,CAAC5oJ,CAAC,CAAC,GAAG2oJ,aAAa,CAAC3oJ,CAAC,CAAC;EACrC;EACA,OAAO4oJ,WAAW;AACtB;AACA;AACA,MAAMC,iBAAiB,SAASnB,WAAW,CAAC;EACxC7hJ,WAAWA,CAACijJ,aAAa;EACzB;AACJ;AACA;AACA;EACI3zF,SAAS,EAAE;IACP,KAAK,CAAC,CAAC;IACP;AACR;AACA;AACA;IACQ,IAAI,CAAC4zF,gBAAgB,GAAG,KAAK;IAC7B,KAAK,CAACd,SAAS,CAACa,aAAa,CAAC;EAClC;EACAV,OAAOA,CAACr9I,IAAI,EAAE;IACV,OAAOA,IAAI,CAAC+oG,WAAW,CAAC,CAAC;EAC7B;EACAE,QAAQA,CAACjpG,IAAI,EAAE;IACX,OAAOA,IAAI,CAACipG,QAAQ,CAAC,CAAC;EAC1B;EACAC,OAAOA,CAAClpG,IAAI,EAAE;IACV,OAAOA,IAAI,CAACkpG,OAAO,CAAC,CAAC;EACzB;EACA+0C,YAAYA,CAACj+I,IAAI,EAAE;IACf,OAAOA,IAAI,CAAC0pG,MAAM,CAAC,CAAC;EACxB;EACAw0C,aAAaA,CAACltH,KAAK,EAAE;IACjB,MAAMmtH,GAAG,GAAG,IAAIl4D,IAAI,CAAC+c,cAAc,CAAC,IAAI,CAAChC,MAAM,EAAE;MAAE2F,KAAK,EAAE31E,KAAK;MAAEotH,QAAQ,EAAE;IAAM,CAAC,CAAC;IACnF,OAAOnpD,KAAK,CAAC,EAAE,EAAEhgG,CAAC,IAAI,IAAI,CAACopJ,OAAO,CAACF,GAAG,EAAE,IAAI7zI,IAAI,CAAC,IAAI,EAAErV,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;EAClE;EACAqpJ,YAAYA,CAAA,EAAG;IACX,MAAMH,GAAG,GAAG,IAAIl4D,IAAI,CAAC+c,cAAc,CAAC,IAAI,CAAChC,MAAM,EAAE;MAAEu9C,GAAG,EAAE,SAAS;MAAEH,QAAQ,EAAE;IAAM,CAAC,CAAC;IACrF,OAAOnpD,KAAK,CAAC,EAAE,EAAEhgG,CAAC,IAAI,IAAI,CAACopJ,OAAO,CAACF,GAAG,EAAE,IAAI7zI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAErV,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EACtE;EACAupJ,iBAAiBA,CAACxtH,KAAK,EAAE;IACrB,MAAMmtH,GAAG,GAAG,IAAIl4D,IAAI,CAAC+c,cAAc,CAAC,IAAI,CAAChC,MAAM,EAAE;MAAEy9C,OAAO,EAAEztH,KAAK;MAAEotH,QAAQ,EAAE;IAAM,CAAC,CAAC;IACrF,OAAOnpD,KAAK,CAAC,CAAC,EAAEhgG,CAAC,IAAI,IAAI,CAACopJ,OAAO,CAACF,GAAG,EAAE,IAAI7zI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAErV,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EACrE;EACAypJ,WAAWA,CAAC1+I,IAAI,EAAE;IACd,MAAMm+I,GAAG,GAAG,IAAIl4D,IAAI,CAAC+c,cAAc,CAAC,IAAI,CAAChC,MAAM,EAAE;MAAE0F,IAAI,EAAE,SAAS;MAAE03C,QAAQ,EAAE;IAAM,CAAC,CAAC;IACtF,OAAO,IAAI,CAACC,OAAO,CAACF,GAAG,EAAEn+I,IAAI,CAAC;EAClC;EACA2+I,iBAAiBA,CAAA,EAAG;IAChB;IACA,OAAO,CAAC;EACZ;EACAC,iBAAiBA,CAAC5+I,IAAI,EAAE;IACpB,OAAO,IAAI,CAACkpG,OAAO,CAAC,IAAI,CAAC21C,uBAAuB,CAAC,IAAI,CAACxB,OAAO,CAACr9I,IAAI,CAAC,EAAE,IAAI,CAACipG,QAAQ,CAACjpG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;EACrG;EACA6R,KAAKA,CAAC7R,IAAI,EAAE;IACR,OAAO,IAAIsK,IAAI,CAACtK,IAAI,CAACyrG,OAAO,CAAC,CAAC,CAAC;EACnC;EACAhF,UAAUA,CAACC,IAAI,EAAEC,KAAK,EAAE3mG,IAAI,EAAE;IAC1B,IAAI,OAAOqxB,SAAS,KAAK,WAAW,IAAIA,SAAS,EAAE;MAC/C;MACA;MACA,IAAIs1E,KAAK,GAAG,CAAC,IAAIA,KAAK,GAAG,EAAE,EAAE;QACzB,MAAM7wG,KAAK,CAAC,wBAAwB6wG,KAAK,4CAA4C,CAAC;MAC1F;MACA,IAAI3mG,IAAI,GAAG,CAAC,EAAE;QACV,MAAMlK,KAAK,CAAC,iBAAiBkK,IAAI,mCAAmC,CAAC;MACzE;IACJ;IACA,IAAI3J,MAAM,GAAG,IAAI,CAACwoJ,uBAAuB,CAACn4C,IAAI,EAAEC,KAAK,EAAE3mG,IAAI,CAAC;IAC5D;IACA,IAAI3J,MAAM,CAAC4yG,QAAQ,CAAC,CAAC,IAAItC,KAAK,KAAK,OAAOt1E,SAAS,KAAK,WAAW,IAAIA,SAAS,CAAC,EAAE;MAC/E,MAAMv7B,KAAK,CAAC,iBAAiBkK,IAAI,2BAA2B2mG,KAAK,IAAI,CAAC;IAC1E;IACA,OAAOtwG,MAAM;EACjB;EACAi1G,KAAKA,CAAA,EAAG;IACJ,OAAO,IAAIhhG,IAAI,CAAC,CAAC;EACrB;EACA6hB,KAAKA,CAAC3vB,KAAK,EAAE;IACT;IACA;IACA,IAAI,OAAOA,KAAK,IAAI,QAAQ,EAAE;MAC1B,OAAO,IAAI8N,IAAI,CAAC9N,KAAK,CAAC;IAC1B;IACA,OAAOA,KAAK,GAAG,IAAI8N,IAAI,CAACA,IAAI,CAAC6hB,KAAK,CAAC3vB,KAAK,CAAC,CAAC,GAAG,IAAI;EACrD;EACAwoG,MAAMA,CAAChlG,IAAI,EAAE8+I,aAAa,EAAE;IACxB,IAAI,CAAC,IAAI,CAAC9B,OAAO,CAACh9I,IAAI,CAAC,EAAE;MACrB,MAAMlK,KAAK,CAAC,gDAAgD,CAAC;IACjE;IACA,MAAMqoJ,GAAG,GAAG,IAAIl4D,IAAI,CAAC+c,cAAc,CAAC,IAAI,CAAChC,MAAM,EAAE3oG,MAAM,CAACurB,MAAM,CAACvrB,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAEk7H,aAAa,CAAC,EAAE;MAAEV,QAAQ,EAAE;IAAM,CAAC,CAAC,CAAC;IACtH,OAAO,IAAI,CAACC,OAAO,CAACF,GAAG,EAAEn+I,IAAI,CAAC;EAClC;EACA++I,gBAAgBA,CAAC/+I,IAAI,EAAEg/I,KAAK,EAAE;IAC1B,OAAO,IAAI,CAACC,iBAAiB,CAACj/I,IAAI,EAAEg/I,KAAK,GAAG,EAAE,CAAC;EACnD;EACAC,iBAAiBA,CAACj/I,IAAI,EAAEkiG,MAAM,EAAE;IAC5B,IAAI0E,OAAO,GAAG,IAAI,CAACi4C,uBAAuB,CAAC,IAAI,CAACxB,OAAO,CAACr9I,IAAI,CAAC,EAAE,IAAI,CAACipG,QAAQ,CAACjpG,IAAI,CAAC,GAAGkiG,MAAM,EAAE,IAAI,CAACgH,OAAO,CAAClpG,IAAI,CAAC,CAAC;IAChH;IACA;IACA;IACA;IACA,IAAI,IAAI,CAACipG,QAAQ,CAACrC,OAAO,CAAC,IAAI,CAAE,CAAC,IAAI,CAACqC,QAAQ,CAACjpG,IAAI,CAAC,GAAGkiG,MAAM,IAAI,EAAE,GAAI,EAAE,IAAI,EAAE,EAAE;MAC7E0E,OAAO,GAAG,IAAI,CAACi4C,uBAAuB,CAAC,IAAI,CAACxB,OAAO,CAACz2C,OAAO,CAAC,EAAE,IAAI,CAACqC,QAAQ,CAACrC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5F;IACA,OAAOA,OAAO;EAClB;EACAs4C,eAAeA,CAACl/I,IAAI,EAAE6hG,IAAI,EAAE;IACxB,OAAO,IAAI,CAACg9C,uBAAuB,CAAC,IAAI,CAACxB,OAAO,CAACr9I,IAAI,CAAC,EAAE,IAAI,CAACipG,QAAQ,CAACjpG,IAAI,CAAC,EAAE,IAAI,CAACkpG,OAAO,CAAClpG,IAAI,CAAC,GAAG6hG,IAAI,CAAC;EAC3G;EACAs9C,SAASA,CAACn/I,IAAI,EAAE;IACZ,OAAO,CACHA,IAAI,CAAC8G,cAAc,CAAC,CAAC,EACrB,IAAI,CAACs4I,OAAO,CAACp/I,IAAI,CAAC+G,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,EACpC,IAAI,CAACq4I,OAAO,CAACp/I,IAAI,CAACgH,UAAU,CAAC,CAAC,CAAC,CAClC,CAACvR,IAAI,CAAC,GAAG,CAAC;EACf;EACA;AACJ;AACA;AACA;AACA;EACIwnJ,WAAWA,CAACzgJ,KAAK,EAAE;IACf,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC3B,IAAI,CAACA,KAAK,EAAE;QACR,OAAO,IAAI;MACf;MACA;MACA;MACA,IAAImhJ,cAAc,CAACtrI,IAAI,CAAC7V,KAAK,CAAC,EAAE;QAC5B,IAAIwD,IAAI,GAAG,IAAIsK,IAAI,CAAC9N,KAAK,CAAC;QAC1B,IAAI,IAAI,CAACwgJ,OAAO,CAACh9I,IAAI,CAAC,EAAE;UACpB,OAAOA,IAAI;QACf;MACJ;IACJ;IACA,OAAO,KAAK,CAACi9I,WAAW,CAACzgJ,KAAK,CAAC;EACnC;EACAugJ,cAAcA,CAACzqI,GAAG,EAAE;IAChB,OAAOA,GAAG,YAAYhI,IAAI;EAC9B;EACA0yI,OAAOA,CAACh9I,IAAI,EAAE;IACV,OAAO,CAACmzD,KAAK,CAACnzD,IAAI,CAACyrG,OAAO,CAAC,CAAC,CAAC;EACjC;EACAmoB,OAAOA,CAAA,EAAG;IACN,OAAO,IAAItpH,IAAI,CAAC+0I,GAAG,CAAC;EACxB;EACA;EACAR,uBAAuBA,CAACn4C,IAAI,EAAEC,KAAK,EAAE3mG,IAAI,EAAE;IACvC;IACA;IACA,MAAMysG,CAAC,GAAG,IAAIniG,IAAI,CAAC,CAAC;IACpBmiG,CAAC,CAAC5F,WAAW,CAACH,IAAI,EAAEC,KAAK,EAAE3mG,IAAI,CAAC;IAChCysG,CAAC,CAAC3F,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACtB,OAAO2F,CAAC;EACZ;EACA;AACJ;AACA;AACA;AACA;EACI2yC,OAAOA,CAAC79I,CAAC,EAAE;IACP,OAAO,CAAC,IAAI,GAAGA,CAAC,EAAEtK,KAAK,CAAC,CAAC,CAAC,CAAC;EAC/B;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIonJ,OAAOA,CAACF,GAAG,EAAEn+I,IAAI,EAAE;IACf;IACA;IACA,MAAMysG,CAAC,GAAG,IAAIniG,IAAI,CAAC,CAAC;IACpBmiG,CAAC,CAACM,cAAc,CAAC/sG,IAAI,CAAC+oG,WAAW,CAAC,CAAC,EAAE/oG,IAAI,CAACipG,QAAQ,CAAC,CAAC,EAAEjpG,IAAI,CAACkpG,OAAO,CAAC,CAAC,CAAC;IACrEuD,CAAC,CAACQ,WAAW,CAACjtG,IAAI,CAACmpG,QAAQ,CAAC,CAAC,EAAEnpG,IAAI,CAACqpG,UAAU,CAAC,CAAC,EAAErpG,IAAI,CAACupG,UAAU,CAAC,CAAC,EAAEvpG,IAAI,CAACwpG,eAAe,CAAC,CAAC,CAAC;IAC5F,OAAO20C,GAAG,CAACn5C,MAAM,CAACyH,CAAC,CAAC;EACxB;AACJ;AACAqxC,iBAAiB,CAACnkH,IAAI,YAAA2lH,0BAAA59I,CAAA;EAAA,YAAAA,CAAA,IAAwFo8I,iBAAiB,EA9jB7B7sH,sDAAE,CA8jB6CwrH,eAAe,MA9jB9DxrH,sDAAE,CA8jByFi4B,2DAAa;AAAA,CAA6C;AACvP40F,iBAAiB,CAACjkH,KAAK,kBA/jB2E5I,gEAAE;EAAAxb,KAAA,EA+jBcqoI,iBAAiB;EAAA/jH,OAAA,EAAjB+jH,iBAAiB,CAAAnkH;AAAA,EAAG;AACtI;EAAA,QAAAtI,SAAA,oBAAAA,SAAA,KAhkBkGJ,+DAAE,CAgkBT6sH,iBAAiB,EAAc,CAAC;IAC/G3pJ,IAAI,EAAEg9B,qDAAUA;EACpB,CAAC,CAAC,EAAkB,YAAY;IAChC,OAAO,CAAC;MAAEh9B,IAAI,EAAE6iC,SAAS;MAAE61B,UAAU,EAAE,CAAC;QACxB14D,IAAI,EAAE0yD,mDAAQA;MAClB,CAAC,EAAE;QACC1yD,IAAI,EAAEqyD,iDAAM;QACZttD,IAAI,EAAE,CAACujJ,eAAe;MAC1B,CAAC;IAAE,CAAC,EAAE;MAAEtoJ,IAAI,EAAE+0D,2DAAayD;IAAC,CAAC,CAAC;EAC9C,CAAC;AAAA;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM4yF,uBAAuB,GAAG;EAC5BpzH,KAAK,EAAE;IACHqzH,SAAS,EAAE;EACf,CAAC;EACDl+F,OAAO,EAAE;IACLk+F,SAAS,EAAE;MAAE94C,IAAI,EAAE,SAAS;MAAEC,KAAK,EAAE,SAAS;MAAE43C,GAAG,EAAE;IAAU,CAAC;IAChEkB,cAAc,EAAE;MAAE/4C,IAAI,EAAE,SAAS;MAAEC,KAAK,EAAE;IAAQ,CAAC;IACnD+4C,aAAa,EAAE;MAAEh5C,IAAI,EAAE,SAAS;MAAEC,KAAK,EAAE,MAAM;MAAE43C,GAAG,EAAE;IAAU,CAAC;IACjEoB,kBAAkB,EAAE;MAAEj5C,IAAI,EAAE,SAAS;MAAEC,KAAK,EAAE;IAAO;EACzD;AACJ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMi5C,gBAAgB,CAAC;AAEvBA,gBAAgB,CAACjmH,IAAI,YAAAkmH,yBAAAn+I,CAAA;EAAA,YAAAA,CAAA,IAAwFk+I,gBAAgB;AAAA,CAAkD;AAC/KA,gBAAgB,CAAC99E,IAAI,kBAxmB6E7wC,8DAAE;EAAA98B,IAAA,EAwmBUyrJ;AAAgB,EAAG;AACjIA,gBAAgB,CAACz9E,IAAI,kBAzmB6ElxC,8DAAE;EAAA6yC,SAAA,EAymBuC,CAAC;IAAEF,OAAO,EAAE+4E,WAAW;IAAEtiD,QAAQ,EAAEyjD;EAAkB,CAAC;AAAC,EAAG;AACrM;EAAA,QAAAzsH,SAAA,oBAAAA,SAAA,KA1mBkGJ,+DAAE,CA0mBT2uH,gBAAgB,EAAc,CAAC;IAC9GzrJ,IAAI,EAAE6yD,mDAAQ;IACd9tD,IAAI,EAAE,CAAC;MACC4qE,SAAS,EAAE,CAAC;QAAEF,OAAO,EAAE+4E,WAAW;QAAEtiD,QAAQ,EAAEyjD;MAAkB,CAAC;IACrE,CAAC;EACT,CAAC,CAAC;AAAA;AACV,MAAMgC,mBAAmB,CAAC;AAE1BA,mBAAmB,CAACnmH,IAAI,YAAAomH,4BAAAr+I,CAAA;EAAA,YAAAA,CAAA,IAAwFo+I,mBAAmB;AAAA,CAAkD;AACrLA,mBAAmB,CAACh+E,IAAI,kBAnnB0E7wC,8DAAE;EAAA98B,IAAA,EAmnBa2rJ,mBAAmB;EAAA79E,OAAA,GAAY29E,gBAAgB;AAAA,EAAI;AACpKE,mBAAmB,CAAC39E,IAAI,kBApnB0ElxC,8DAAE;EAAA6yC,SAAA,EAonB6C,CAAC;IAAEF,OAAO,EAAE85E,gBAAgB;IAAEzwB,QAAQ,EAAEsyB;EAAwB,CAAC,CAAC;EAAAt9E,OAAA,GAAY,CAAC29E,gBAAgB,CAAC;AAAA,EAAI;AACrP;EAAA,QAAAvuH,SAAA,oBAAAA,SAAA,KArnBkGJ,+DAAE,CAqnBT6uH,mBAAmB,EAAc,CAAC;IACjH3rJ,IAAI,EAAE6yD,mDAAQ;IACd9tD,IAAI,EAAE,CAAC;MACC+oE,OAAO,EAAE,CAAC29E,gBAAgB,CAAC;MAC3B97E,SAAS,EAAE,CAAC;QAAEF,OAAO,EAAE85E,gBAAgB;QAAEzwB,QAAQ,EAAEsyB;MAAwB,CAAC;IAChF,CAAC;EACT,CAAC,CAAC;AAAA;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMS,4BAA4B,CAAC;EAC/B9D,YAAYA,CAACtrB,OAAO,EAAEhnB,IAAI,EAAE;IACxB,OAAO,CAAC,EAAEgnB,OAAO,IAAIA,OAAO,CAACgD,OAAO,KAAKhD,OAAO,CAACmD,KAAK,IAAKnqB,IAAI,IAAIA,IAAI,CAAC2rB,SAAU,CAAC,CAAC;EACxF;AACJ;AACAyqB,4BAA4B,CAACrmH,IAAI,YAAAsmH,qCAAAv+I,CAAA;EAAA,YAAAA,CAAA,IAAwFs+I,4BAA4B;AAAA,CAAoD;AACzMA,4BAA4B,CAACnmH,KAAK,kBA3oBgE5I,gEAAE;EAAAxb,KAAA,EA2oByBuqI,4BAA4B;EAAAjmH,OAAA,EAA5BimH,4BAA4B,CAAArmH;AAAA,EAAG;AAC5J;EAAA,QAAAtI,SAAA,oBAAAA,SAAA,KA5oBkGJ,+DAAE,CA4oBT+uH,4BAA4B,EAAc,CAAC;IAC1H7rJ,IAAI,EAAEg9B,qDAAUA;EACpB,CAAC,CAAC;AAAA;AACV;AACA,MAAM+uH,iBAAiB,CAAC;EACpBhE,YAAYA,CAACtrB,OAAO,EAAEhnB,IAAI,EAAE;IACxB,OAAO,CAAC,EAAEgnB,OAAO,IAAIA,OAAO,CAACgD,OAAO,KAAKhD,OAAO,CAACoD,OAAO,IAAKpqB,IAAI,IAAIA,IAAI,CAAC2rB,SAAU,CAAC,CAAC;EAC1F;AACJ;AACA2qB,iBAAiB,CAACvmH,IAAI,YAAAwmH,0BAAAz+I,CAAA;EAAA,YAAAA,CAAA,IAAwFw+I,iBAAiB;AAAA,CAAoD;AACnLA,iBAAiB,CAACrmH,KAAK,kBAtpB2E5I,gEAAE;EAAAxb,KAAA,EAspBcyqI,iBAAiB;EAAAnmH,OAAA,EAAjBmmH,iBAAiB,CAAAvmH,IAAA;EAAAizB,UAAA,EAAc;AAAM,EAAG;AAC1J;EAAA,QAAAv7B,SAAA,oBAAAA,SAAA,KAvpBkGJ,+DAAE,CAupBTivH,iBAAiB,EAAc,CAAC;IAC/G/rJ,IAAI,EAAEg9B,qDAAU;IAChBj4B,IAAI,EAAE,CAAC;MAAE0zD,UAAU,EAAE;IAAO,CAAC;EACjC,CAAC,CAAC;AAAA;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMwzF,OAAO,CAAC;AAEdA,OAAO,CAACzmH,IAAI,YAAA0mH,gBAAA3+I,CAAA;EAAA,YAAAA,CAAA,IAAwF0+I,OAAO;AAAA,CAAmD;AAC9JA,OAAO,CAACjpF,IAAI,kBA3qBsFlmC,+DAAE;EAAA98B,IAAA,EA2qBZisJ,OAAO;EAAA/oF,SAAA;EAAAq/B,SAAA;AAAA,EAA0F;AACzL;EAAA,QAAArlE,SAAA,oBAAAA,SAAA,KA5qBkGJ,+DAAE,CA4qBTmvH,OAAO,EAAc,CAAC;IACrGjsJ,IAAI,EAAEuyD,oDAAS;IACfxtD,IAAI,EAAE,CAAC;MACCm6B,QAAQ,EAAE,uBAAuB;MACjC0E,IAAI,EAAE;QAAE,OAAO,EAAE;MAAW;IAChC,CAAC;EACT,CAAC,CAAC;AAAA;AACV;AACA;AACA;AACA;AACA,SAASuoH,QAAQA,CAACC,KAAK,EAAEj3H,OAAO,EAAEk3H,MAAM,GAAG,KAAK,EAAE;EAC9C;EACA;EACAD,KAAK,CAAC1yF,OAAO,CAAC/xD,IAAI,CAAC2xF,yDAAS,CAAC8yD,KAAK,CAAC,CAAC,CAACzyF,SAAS,CAAC,CAAC;IAAE34D;EAAO,CAAC,KAAK;IAC3DsrJ,QAAQ,CAACn3H,OAAO,EAAE,GAAGk3H,MAAM,SAAS,EAAE,KAAK,CAAC;IAC5CC,QAAQ,CAACn3H,OAAO,EAAE,GAAGk3H,MAAM,SAAS,EAAE,KAAK,CAAC;IAC5CC,QAAQ,CAACn3H,OAAO,EAAE,GAAGk3H,MAAM,aAAa,EAAE,KAAK,CAAC;IAChD,IAAIrrJ,MAAM,KAAK,CAAC,IAAIA,MAAM,KAAK,CAAC,EAAE;MAC9BsrJ,QAAQ,CAACn3H,OAAO,EAAE,GAAGk3H,MAAM,IAAIrrJ,MAAM,OAAO,EAAE,IAAI,CAAC;IACvD,CAAC,MACI,IAAIA,MAAM,GAAG,CAAC,EAAE;MACjBsrJ,QAAQ,CAACn3H,OAAO,EAAE,GAAGk3H,MAAM,aAAa,EAAE,IAAI,CAAC;IACnD;EACJ,CAAC,CAAC;AACN;AACA;AACA,SAASC,QAAQA,CAACn3H,OAAO,EAAEuzB,SAAS,EAAEs3B,KAAK,EAAE;EACzC7qD,OAAO,CAACitC,aAAa,CAAC1a,SAAS,CAAC4jB,MAAM,CAAC5iB,SAAS,EAAEs3B,KAAK,CAAC;AAC5D;AACA,MAAMusE,aAAa,CAAC;AAEpBA,aAAa,CAAC/mH,IAAI,YAAAgnH,sBAAAj/I,CAAA;EAAA,YAAAA,CAAA,IAAwFg/I,aAAa;AAAA,CAAkD;AACzKA,aAAa,CAAC5+E,IAAI,kBA7sBgF7wC,8DAAE;EAAA98B,IAAA,EA6sBOusJ,aAAa;EAAA1+E,YAAA,GAAiBo+E,OAAO;EAAAn+E,OAAA,GAAaotE,eAAe;EAAAntE,OAAA,GAAak+E,OAAO,EAAE/Q,eAAe;AAAA,EAAI;AACrNqR,aAAa,CAACv+E,IAAI,kBA9sBgFlxC,8DAAE;EAAAgxC,OAAA,GA8sBgC,CAACotE,eAAe,CAAC,EAAEA,eAAe;AAAA,EAAI;AAC1K;EAAA,QAAAh+G,SAAA,oBAAAA,SAAA,KA/sBkGJ,+DAAE,CA+sBTyvH,aAAa,EAAc,CAAC;IAC3GvsJ,IAAI,EAAE6yD,mDAAQ;IACd9tD,IAAI,EAAE,CAAC;MACC+oE,OAAO,EAAE,CAACotE,eAAe,CAAC;MAC1BntE,OAAO,EAAE,CAACk+E,OAAO,EAAE/Q,eAAe,CAAC;MACnCrtE,YAAY,EAAE,CAACo+E,OAAO;IAC1B,CAAC;EACT,CAAC,CAAC;AAAA;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMQ,SAAS,CAAC;EACZ9lJ,WAAWA,CAACq4G,SAAS,EACrB;EACA7pF,OAAO,EACP;EACAtT,MAAM,EAAE;IACJ,IAAI,CAACm9F,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAAC7pF,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACtT,MAAM,GAAGA,MAAM;IACpB;IACA,IAAI,CAAC4E,KAAK,GAAG,CAAC,CAAC;EACnB;EACA;EACAimI,OAAOA,CAAA,EAAG;IACN,IAAI,CAAC1tC,SAAS,CAAC2tC,aAAa,CAAC,IAAI,CAAC;EACtC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAMC,4BAA4B,GAAG;EACjCC,aAAa,EAAE,GAAG;EAClBC,YAAY,EAAE;AAClB,CAAC;AACD;AACA;AACA;AACA;AACA,MAAMC,wBAAwB,GAAG,GAAG;AACpC;AACA,MAAMC,mBAAmB,GAAGh6F,sFAA+B,CAAC;EAAE8S,OAAO,EAAE;AAAK,CAAC,CAAC;AAC9E;AACA,MAAMmnF,iBAAiB,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC;AACrD;AACA,MAAMC,eAAe,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,CAAC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,cAAc,CAAC;EACjBxmJ,WAAWA,CAACymJ,OAAO,EAAE/tF,OAAO,EAAE+9B,mBAAmB,EAAE/rF,QAAQ,EAAE;IACzD,IAAI,CAAC+7I,OAAO,GAAGA,OAAO;IACtB,IAAI,CAAC/tF,OAAO,GAAGA,OAAO;IACtB;IACA,IAAI,CAACguF,cAAc,GAAG,KAAK;IAC3B;IACA,IAAI,CAACC,cAAc,GAAG,IAAIxgH,GAAG,CAAC,CAAC;IAC/B;IACA,IAAI,CAACygH,0BAA0B,GAAG,KAAK;IACvC;IACA,IAAIl8I,QAAQ,CAACqvB,SAAS,EAAE;MACpB,IAAI,CAACy/C,iBAAiB,GAAGrrB,oEAAa,CAACsoC,mBAAmB,CAAC;IAC/D;EACJ;EACA;AACJ;AACA;AACA;AACA;AACA;EACIowD,YAAYA,CAAC9nE,CAAC,EAAEI,CAAC,EAAEjkE,MAAM,GAAG,CAAC,CAAC,EAAE;IAC5B,MAAMohE,aAAa,GAAI,IAAI,CAACH,cAAc,GACtC,IAAI,CAACA,cAAc,IAAI,IAAI,CAAC3C,iBAAiB,CAAC5F,qBAAqB,CAAC,CAAE;IAC1E,MAAMkzE,eAAe,GAAGvpJ,MAAM,CAACurB,MAAM,CAACvrB,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAEm9H,4BAA4B,CAAC,EAAE/qI,MAAM,CAAC0tB,SAAS,CAAC;IACxG,IAAI1tB,MAAM,CAAC6rI,QAAQ,EAAE;MACjBhoE,CAAC,GAAGzC,aAAa,CAAC10D,IAAI,GAAG00D,aAAa,CAACn1D,KAAK,GAAG,CAAC;MAChDg4D,CAAC,GAAG7C,aAAa,CAAC/L,GAAG,GAAG+L,aAAa,CAAC70D,MAAM,GAAG,CAAC;IACpD;IACA,MAAMu/H,MAAM,GAAG9rI,MAAM,CAAC8rI,MAAM,IAAIC,wBAAwB,CAACloE,CAAC,EAAEI,CAAC,EAAE7C,aAAa,CAAC;IAC7E,MAAMje,OAAO,GAAG0gB,CAAC,GAAGzC,aAAa,CAAC10D,IAAI;IACtC,MAAM02C,OAAO,GAAG6gB,CAAC,GAAG7C,aAAa,CAAC/L,GAAG;IACrC,MAAM9xC,QAAQ,GAAGqoH,eAAe,CAACZ,aAAa;IAC9C,MAAMgB,MAAM,GAAG7/H,QAAQ,CAACwpC,aAAa,CAAC,KAAK,CAAC;IAC5Cq2F,MAAM,CAACnmG,SAAS,CAACtY,GAAG,CAAC,oBAAoB,CAAC;IAC1Cy+G,MAAM,CAAChxH,KAAK,CAACtO,IAAI,GAAG,GAAGy2C,OAAO,GAAG2oF,MAAM,IAAI;IAC3CE,MAAM,CAAChxH,KAAK,CAACq6C,GAAG,GAAG,GAAGjS,OAAO,GAAG0oF,MAAM,IAAI;IAC1CE,MAAM,CAAChxH,KAAK,CAACzO,MAAM,GAAG,GAAGu/H,MAAM,GAAG,CAAC,IAAI;IACvCE,MAAM,CAAChxH,KAAK,CAAC/O,KAAK,GAAG,GAAG6/H,MAAM,GAAG,CAAC,IAAI;IACtC;IACA;IACA,IAAI9rI,MAAM,CAAC+kI,KAAK,IAAI,IAAI,EAAE;MACtBiH,MAAM,CAAChxH,KAAK,CAACiwC,eAAe,GAAGjrD,MAAM,CAAC+kI,KAAK;IAC/C;IACAiH,MAAM,CAAChxH,KAAK,CAACixH,kBAAkB,GAAG,GAAG1oH,QAAQ,IAAI;IACjD,IAAI,CAAC+6C,iBAAiB,CAACxoB,WAAW,CAACk2F,MAAM,CAAC;IAC1C;IACA;IACAE,yBAAyB,CAACF,MAAM,CAAC;IACjCA,MAAM,CAAChxH,KAAK,CAACh5B,SAAS,GAAG,UAAU;IACnC;IACA,MAAMmqJ,SAAS,GAAG,IAAIvB,SAAS,CAAC,IAAI,EAAEoB,MAAM,EAAEhsI,MAAM,CAAC;IACrDmsI,SAAS,CAACvnI,KAAK,GAAG,CAAC,CAAC;IACpB;IACA,IAAI,CAAC6mI,cAAc,CAACl+G,GAAG,CAAC4+G,SAAS,CAAC;IAClC,IAAI,CAACnsI,MAAM,CAACosI,UAAU,EAAE;MACpB,IAAI,CAACC,0BAA0B,GAAGF,SAAS;IAC/C;IACA;IACA;IACA,IAAI,CAACG,sBAAsB,CAAC,MAAM;MAC9B,MAAMC,2BAA2B,GAAGJ,SAAS,KAAK,IAAI,CAACE,0BAA0B;MACjFF,SAAS,CAACvnI,KAAK,GAAG,CAAC,CAAC;MACpB;MACA;MACA;MACA;MACA,IAAI,CAAC5E,MAAM,CAACosI,UAAU,KAAK,CAACG,2BAA2B,IAAI,CAAC,IAAI,CAACf,cAAc,CAAC,EAAE;QAC9EW,SAAS,CAACtB,OAAO,CAAC,CAAC;MACvB;IACJ,CAAC,EAAEtnH,QAAQ,CAAC;IACZ,OAAO4oH,SAAS;EACpB;EACA;EACArB,aAAaA,CAACqB,SAAS,EAAE;IACrB,MAAMK,SAAS,GAAG,IAAI,CAACf,cAAc,CAACzqG,MAAM,CAACmrG,SAAS,CAAC;IACvD,IAAIA,SAAS,KAAK,IAAI,CAACE,0BAA0B,EAAE;MAC/C,IAAI,CAACA,0BAA0B,GAAG,IAAI;IAC1C;IACA;IACA,IAAI,CAAC,IAAI,CAACZ,cAAc,CAACrtJ,IAAI,EAAE;MAC3B,IAAI,CAAC6iF,cAAc,GAAG,IAAI;IAC9B;IACA;IACA,IAAI,CAACurE,SAAS,EAAE;MACZ;IACJ;IACA,MAAMC,QAAQ,GAAGN,SAAS,CAAC74H,OAAO;IAClC,MAAMs4H,eAAe,GAAGvpJ,MAAM,CAACurB,MAAM,CAACvrB,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAEm9H,4BAA4B,CAAC,EAAEoB,SAAS,CAACnsI,MAAM,CAAC0tB,SAAS,CAAC;IAClH++G,QAAQ,CAACzxH,KAAK,CAACixH,kBAAkB,GAAG,GAAGL,eAAe,CAACX,YAAY,IAAI;IACvEwB,QAAQ,CAACzxH,KAAK,CAAC0xH,OAAO,GAAG,GAAG;IAC5BP,SAAS,CAACvnI,KAAK,GAAG,CAAC,CAAC;IACpB;IACA,IAAI,CAAC0nI,sBAAsB,CAAC,MAAM;MAC9BH,SAAS,CAACvnI,KAAK,GAAG,CAAC,CAAC;MACpB6nI,QAAQ,CAAC/vI,MAAM,CAAC,CAAC;IACrB,CAAC,EAAEkvI,eAAe,CAACX,YAAY,CAAC;EACpC;EACA;EACA0B,UAAUA,CAAA,EAAG;IACT,IAAI,CAAClB,cAAc,CAACr4I,OAAO,CAAC44I,MAAM,IAAIA,MAAM,CAACnB,OAAO,CAAC,CAAC,CAAC;EAC3D;EACA;EACA+B,uBAAuBA,CAAA,EAAG;IACtB,IAAI,CAACnB,cAAc,CAACr4I,OAAO,CAAC44I,MAAM,IAAI;MAClC,IAAI,CAACA,MAAM,CAAChsI,MAAM,CAACosI,UAAU,EAAE;QAC3BJ,MAAM,CAACnB,OAAO,CAAC,CAAC;MACpB;IACJ,CAAC,CAAC;EACN;EACA;EACAgC,kBAAkBA,CAACtxD,mBAAmB,EAAE;IACpC,MAAMjoE,OAAO,GAAG2/B,oEAAa,CAACsoC,mBAAmB,CAAC;IAClD,IAAI,CAACjoE,OAAO,IAAIA,OAAO,KAAK,IAAI,CAACw5H,eAAe,EAAE;MAC9C;IACJ;IACA;IACA,IAAI,CAACC,oBAAoB,CAAC,CAAC;IAC3B,IAAI,CAACD,eAAe,GAAGx5H,OAAO;IAC9B,IAAI,CAAC05H,eAAe,CAAC5B,iBAAiB,CAAC;EAC3C;EACA;AACJ;AACA;AACA;EACI6B,WAAWA,CAAC7sH,KAAK,EAAE;IACf,IAAIA,KAAK,CAACjiC,IAAI,KAAK,WAAW,EAAE;MAC5B,IAAI,CAACumE,YAAY,CAACtkC,KAAK,CAAC;IAC5B,CAAC,MACI,IAAIA,KAAK,CAACjiC,IAAI,KAAK,YAAY,EAAE;MAClC,IAAI,CAAC+uJ,aAAa,CAAC9sH,KAAK,CAAC;IAC7B,CAAC,MACI;MACD,IAAI,CAAC+sH,YAAY,CAAC,CAAC;IACvB;IACA;IACA;IACA;IACA,IAAI,CAAC,IAAI,CAACzB,0BAA0B,EAAE;MAClC,IAAI,CAACsB,eAAe,CAAC3B,eAAe,CAAC;MACrC,IAAI,CAACK,0BAA0B,GAAG,IAAI;IAC1C;EACJ;EACA;EACAhnF,YAAYA,CAACtkC,KAAK,EAAE;IAChB;IACA;IACA,MAAMgtH,eAAe,GAAGnqF,kFAA+B,CAAC7iC,KAAK,CAAC;IAC9D,MAAMitH,gBAAgB,GAAG,IAAI,CAACC,oBAAoB,IAC9Ch5I,IAAI,CAACke,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC86H,oBAAoB,GAAGpC,wBAAwB;IACrE,IAAI,CAAC,IAAI,CAACK,OAAO,CAACgC,cAAc,IAAI,CAACH,eAAe,IAAI,CAACC,gBAAgB,EAAE;MACvE,IAAI,CAAC7B,cAAc,GAAG,IAAI;MAC1B,IAAI,CAACG,YAAY,CAACvrH,KAAK,CAACotH,OAAO,EAAEptH,KAAK,CAACqtH,OAAO,EAAE,IAAI,CAAClC,OAAO,CAACmC,YAAY,CAAC;IAC9E;EACJ;EACA;EACAR,aAAaA,CAAC9sH,KAAK,EAAE;IACjB,IAAI,CAAC,IAAI,CAACmrH,OAAO,CAACgC,cAAc,IAAI,CAAClqF,mFAAgC,CAACjjC,KAAK,CAAC,EAAE;MAC1E;MACA;MACA;MACA,IAAI,CAACktH,oBAAoB,GAAGh5I,IAAI,CAACke,GAAG,CAAC,CAAC;MACtC,IAAI,CAACg5H,cAAc,GAAG,IAAI;MAC1B;MACA;MACA,MAAMjoF,OAAO,GAAGnjC,KAAK,CAACojC,cAAc;MACpC,KAAK,IAAIvkE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGskE,OAAO,CAACpkE,MAAM,EAAEF,CAAC,EAAE,EAAE;QACrC,IAAI,CAAC0sJ,YAAY,CAACpoF,OAAO,CAACtkE,CAAC,CAAC,CAACuuJ,OAAO,EAAEjqF,OAAO,CAACtkE,CAAC,CAAC,CAACwuJ,OAAO,EAAE,IAAI,CAAClC,OAAO,CAACmC,YAAY,CAAC;MACxF;IACJ;EACJ;EACA;EACAP,YAAYA,CAAA,EAAG;IACX,IAAI,CAAC,IAAI,CAAC3B,cAAc,EAAE;MACtB;IACJ;IACA,IAAI,CAACA,cAAc,GAAG,KAAK;IAC3B;IACA,IAAI,CAACC,cAAc,CAACr4I,OAAO,CAAC44I,MAAM,IAAI;MAClC;MACA;MACA,MAAMvwF,SAAS,GAAGuwF,MAAM,CAACpnI,KAAK,KAAK,CAAC,CAAC,iBAChConI,MAAM,CAAChsI,MAAM,CAAC2tI,oBAAoB,IAAI3B,MAAM,CAACpnI,KAAK,KAAK,CAAC,CAAC,eAAgB;MAC9E,IAAI,CAAConI,MAAM,CAAChsI,MAAM,CAACosI,UAAU,IAAI3wF,SAAS,EAAE;QACxCuwF,MAAM,CAACnB,OAAO,CAAC,CAAC;MACpB;IACJ,CAAC,CAAC;EACN;EACA;EACAyB,sBAAsBA,CAAC1iJ,EAAE,EAAE5G,KAAK,GAAG,CAAC,EAAE;IAClC,IAAI,CAACw6D,OAAO,CAACe,iBAAiB,CAAC,MAAMn7D,UAAU,CAACwG,EAAE,EAAE5G,KAAK,CAAC,CAAC;EAC/D;EACA;EACAgqJ,eAAeA,CAACY,UAAU,EAAE;IACxB,IAAI,CAACpwF,OAAO,CAACe,iBAAiB,CAAC,MAAM;MACjCqvF,UAAU,CAACx6I,OAAO,CAACjV,IAAI,IAAI;QACvB,IAAI,CAAC2uJ,eAAe,CAAC79F,gBAAgB,CAAC9wD,IAAI,EAAE,IAAI,EAAEgtJ,mBAAmB,CAAC;MAC1E,CAAC,CAAC;IACN,CAAC,CAAC;EACN;EACA;EACA4B,oBAAoBA,CAAA,EAAG;IACnB,IAAI,IAAI,CAACD,eAAe,EAAE;MACtB1B,iBAAiB,CAACh4I,OAAO,CAACjV,IAAI,IAAI;QAC9B,IAAI,CAAC2uJ,eAAe,CAACxuF,mBAAmB,CAACngE,IAAI,EAAE,IAAI,EAAEgtJ,mBAAmB,CAAC;MAC7E,CAAC,CAAC;MACF,IAAI,IAAI,CAACO,0BAA0B,EAAE;QACjCL,eAAe,CAACj4I,OAAO,CAACjV,IAAI,IAAI;UAC5B,IAAI,CAAC2uJ,eAAe,CAACxuF,mBAAmB,CAACngE,IAAI,EAAE,IAAI,EAAEgtJ,mBAAmB,CAAC;QAC7E,CAAC,CAAC;MACN;IACJ;EACJ;AACJ;AACA;AACA,SAASe,yBAAyBA,CAAC54H,OAAO,EAAE;EACxC;EACA;EACA;EACAnS,MAAM,CAACsoB,gBAAgB,CAACnW,OAAO,CAAC,CAACiT,gBAAgB,CAAC,SAAS,CAAC;AAChE;AACA;AACA;AACA;AACA,SAASwlH,wBAAwBA,CAACloE,CAAC,EAAEI,CAAC,EAAE8d,IAAI,EAAE;EAC1C,MAAM8rD,KAAK,GAAG3sJ,IAAI,CAACmG,GAAG,CAACnG,IAAI,CAAC6Y,GAAG,CAAC8pE,CAAC,GAAGke,IAAI,CAACr1E,IAAI,CAAC,EAAExrB,IAAI,CAAC6Y,GAAG,CAAC8pE,CAAC,GAAGke,IAAI,CAACnqB,KAAK,CAAC,CAAC;EACzE,MAAMk2E,KAAK,GAAG5sJ,IAAI,CAACmG,GAAG,CAACnG,IAAI,CAAC6Y,GAAG,CAACkqE,CAAC,GAAG8d,IAAI,CAAC1sB,GAAG,CAAC,EAAEn0E,IAAI,CAAC6Y,GAAG,CAACkqE,CAAC,GAAG8d,IAAI,CAACtqB,MAAM,CAAC,CAAC;EACzE,OAAOv2E,IAAI,CAAC6sJ,IAAI,CAACF,KAAK,GAAGA,KAAK,GAAGC,KAAK,GAAGA,KAAK,CAAC;AACnD;;AAEA;AACA,MAAME,yBAAyB,GAAG,IAAIp9F,yDAAc,CAAC,2BAA2B,CAAC;AACjF,MAAMq9F,SAAS,CAAC;EACZnpJ,WAAWA,CAACq7D,WAAW,EAAEiE,MAAM,EAAE50D,QAAQ,EAAE0+I,aAAa,EAAEC,cAAc,EAAE;IACtE,IAAI,CAAChuF,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACguF,cAAc,GAAGA,cAAc;IACpC;AACR;AACA;AACA;AACA;IACQ,IAAI,CAACrC,MAAM,GAAG,CAAC;IACf,IAAI,CAACt4E,SAAS,GAAG,KAAK;IACtB;IACA,IAAI,CAACrG,cAAc,GAAG,KAAK;IAC3B,IAAI,CAACihF,cAAc,GAAGF,aAAa,IAAI,CAAC,CAAC;IACzC,IAAI,CAACG,eAAe,GAAG,IAAI/C,cAAc,CAAC,IAAI,EAAElnF,MAAM,EAAEjE,WAAW,EAAE3wD,QAAQ,CAAC;EAClF;EACA;AACJ;AACA;AACA;EACI,IAAImxB,QAAQA,CAAA,EAAG;IACX,OAAO,IAAI,CAAC6yC,SAAS;EACzB;EACA,IAAI7yC,QAAQA,CAACn6B,KAAK,EAAE;IAChB,IAAIA,KAAK,EAAE;MACP,IAAI,CAAComJ,uBAAuB,CAAC,CAAC;IAClC;IACA,IAAI,CAACp5E,SAAS,GAAGhtE,KAAK;IACtB,IAAI,CAAC8nJ,4BAA4B,CAAC,CAAC;EACvC;EACA;AACJ;AACA;AACA;EACI,IAAIpuG,OAAOA,CAAA,EAAG;IACV,OAAO,IAAI,CAACquG,QAAQ,IAAI,IAAI,CAACpuF,WAAW,CAACI,aAAa;EAC1D;EACA,IAAIrgB,OAAOA,CAACA,OAAO,EAAE;IACjB,IAAI,CAACquG,QAAQ,GAAGruG,OAAO;IACvB,IAAI,CAACouG,4BAA4B,CAAC,CAAC;EACvC;EACAl4D,QAAQA,CAAA,EAAG;IACP,IAAI,CAACjpB,cAAc,GAAG,IAAI;IAC1B,IAAI,CAACmhF,4BAA4B,CAAC,CAAC;EACvC;EACA94F,WAAWA,CAAA,EAAG;IACV,IAAI,CAAC64F,eAAe,CAACtB,oBAAoB,CAAC,CAAC;EAC/C;EACA;EACAJ,UAAUA,CAAA,EAAG;IACT,IAAI,CAAC0B,eAAe,CAAC1B,UAAU,CAAC,CAAC;EACrC;EACA;EACAC,uBAAuBA,CAAA,EAAG;IACtB,IAAI,CAACyB,eAAe,CAACzB,uBAAuB,CAAC,CAAC;EAClD;EACA;AACJ;AACA;AACA;EACI,IAAIc,YAAYA,CAAA,EAAG;IACf,OAAO;MACH7B,QAAQ,EAAE,IAAI,CAACA,QAAQ;MACvBC,MAAM,EAAE,IAAI,CAACA,MAAM;MACnB/G,KAAK,EAAE,IAAI,CAACA,KAAK;MACjBr3G,SAAS,EAAErrC,MAAM,CAACurB,MAAM,CAACvrB,MAAM,CAACurB,MAAM,CAACvrB,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAACwgI,cAAc,CAAC1gH,SAAS,CAAC,EAAG,IAAI,CAACygH,cAAc,KAAK,gBAAgB,GAAG;QAAEnD,aAAa,EAAE,CAAC;QAAEC,YAAY,EAAE;MAAE,CAAC,GAAG,CAAC,CAAE,CAAC,EAAE,IAAI,CAACv9G,SAAS,CAAC;MAClMigH,oBAAoB,EAAE,IAAI,CAACS,cAAc,CAACT;IAC9C,CAAC;EACL;EACA;AACJ;AACA;AACA;EACI,IAAIJ,cAAcA,CAAA,EAAG;IACjB,OAAO,IAAI,CAAC5sH,QAAQ,IAAI,CAAC,CAAC,IAAI,CAACytH,cAAc,CAACztH,QAAQ;EAC1D;EACA;EACA2tH,4BAA4BA,CAAA,EAAG;IAC3B,IAAI,CAAC,IAAI,CAAC3tH,QAAQ,IAAI,IAAI,CAACwsC,cAAc,EAAE;MACvC,IAAI,CAACkhF,eAAe,CAACxB,kBAAkB,CAAC,IAAI,CAAC3sG,OAAO,CAAC;IACzD;EACJ;EACA;EACAsuG,MAAMA,CAACC,SAAS,EAAExqE,CAAC,GAAG,CAAC,EAAEjkE,MAAM,EAAE;IAC7B,IAAI,OAAOyuI,SAAS,KAAK,QAAQ,EAAE;MAC/B,OAAO,IAAI,CAACJ,eAAe,CAAC1C,YAAY,CAAC8C,SAAS,EAAExqE,CAAC,EAAE5hF,MAAM,CAACurB,MAAM,CAACvrB,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC8/H,YAAY,CAAC,EAAE1tI,MAAM,CAAC,CAAC;IACvH,CAAC,MACI;MACD,OAAO,IAAI,CAACquI,eAAe,CAAC1C,YAAY,CAAC,CAAC,EAAE,CAAC,EAAEtpJ,MAAM,CAACurB,MAAM,CAACvrB,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC8/H,YAAY,CAAC,EAAEe,SAAS,CAAC,CAAC;IAClH;EACJ;AACJ;AACAR,SAAS,CAACtqH,IAAI,YAAA+qH,kBAAAhjJ,CAAA;EAAA,YAAAA,CAAA,IAAwFuiJ,SAAS,EAnlCbhzH,+DAAE,CAmlC6BA,qDAAa,GAnlC5CA,+DAAE,CAmlCuDA,iDAAS,GAnlClEA,+DAAE,CAmlC6Ei4B,2DAAa,GAnlC5Fj4B,+DAAE,CAmlCuG+yH,yBAAyB,MAnlClI/yH,+DAAE,CAmlC6J+nH,wFAAqB;AAAA,CAA4D;AAClViL,SAAS,CAAC9sF,IAAI,kBAplCoFlmC,+DAAE;EAAA98B,IAAA,EAolCV8vJ,SAAS;EAAA5sF,SAAA;EAAAq/B,SAAA;EAAApzB,QAAA;EAAAC,YAAA,WAAAohF,uBAAAlhF,EAAA,EAAAj6B,GAAA;IAAA,IAAAi6B,EAAA;MAplCDxyC,yDAAE,yBAAAuY,GAAA,CAAAo7G,SAAA;IAAA;EAAA;EAAAttF,MAAA;IAAAyjF,KAAA;IAAA6J,SAAA;IAAA/C,QAAA;IAAAC,MAAA;IAAAp+G,SAAA;IAAA/M,QAAA;IAAAuf,OAAA;EAAA;EAAAqhB,QAAA;AAAA,EAolC8e;AACllB;EAAA,QAAAlmC,SAAA,oBAAAA,SAAA,KArlCkGJ,+DAAE,CAqlCTgzH,SAAS,EAAc,CAAC;IACvG9vJ,IAAI,EAAEuyD,oDAAS;IACfxtD,IAAI,EAAE,CAAC;MACCm6B,QAAQ,EAAE,2BAA2B;MACrCkkC,QAAQ,EAAE,WAAW;MACrBx/B,IAAI,EAAE;QACF,OAAO,EAAE,YAAY;QACrB,8BAA8B,EAAE;MACpC;IACJ,CAAC;EACT,CAAC,CAAC,EAAkB,YAAY;IAChC,OAAO,CAAC;MAAE5jC,IAAI,EAAE88B,qDAAaimC;IAAC,CAAC,EAAE;MAAE/iE,IAAI,EAAE88B,iDAASglC;IAAC,CAAC,EAAE;MAAE9hE,IAAI,EAAE+0D,2DAAayD;IAAC,CAAC,EAAE;MAAEx4D,IAAI,EAAE6iC,SAAS;MAAE61B,UAAU,EAAE,CAAC;QAC/F14D,IAAI,EAAE0yD,mDAAQA;MAClB,CAAC,EAAE;QACC1yD,IAAI,EAAEqyD,iDAAM;QACZttD,IAAI,EAAE,CAAC8qJ,yBAAyB;MACpC,CAAC;IAAE,CAAC,EAAE;MAAE7vJ,IAAI,EAAE6iC,SAAS;MAAE61B,UAAU,EAAE,CAAC;QAClC14D,IAAI,EAAE0yD,mDAAQA;MAClB,CAAC,EAAE;QACC1yD,IAAI,EAAEqyD,iDAAM;QACZttD,IAAI,EAAE,CAAC8/I,wFAAqB;MAChC,CAAC;IAAE,CAAC,CAAC;EACrB,CAAC,EAAkB;IAAE+B,KAAK,EAAE,CAAC;MACjB5mJ,IAAI,EAAEwyD,gDAAK;MACXztD,IAAI,EAAE,CAAC,gBAAgB;IAC3B,CAAC,CAAC;IAAE0rJ,SAAS,EAAE,CAAC;MACZzwJ,IAAI,EAAEwyD,gDAAK;MACXztD,IAAI,EAAE,CAAC,oBAAoB;IAC/B,CAAC,CAAC;IAAE2oJ,QAAQ,EAAE,CAAC;MACX1tJ,IAAI,EAAEwyD,gDAAK;MACXztD,IAAI,EAAE,CAAC,mBAAmB;IAC9B,CAAC,CAAC;IAAE4oJ,MAAM,EAAE,CAAC;MACT3tJ,IAAI,EAAEwyD,gDAAK;MACXztD,IAAI,EAAE,CAAC,iBAAiB;IAC5B,CAAC,CAAC;IAAEwqC,SAAS,EAAE,CAAC;MACZvvC,IAAI,EAAEwyD,gDAAK;MACXztD,IAAI,EAAE,CAAC,oBAAoB;IAC/B,CAAC,CAAC;IAAEy9B,QAAQ,EAAE,CAAC;MACXxiC,IAAI,EAAEwyD,gDAAK;MACXztD,IAAI,EAAE,CAAC,mBAAmB;IAC9B,CAAC,CAAC;IAAEg9C,OAAO,EAAE,CAAC;MACV/hD,IAAI,EAAEwyD,gDAAK;MACXztD,IAAI,EAAE,CAAC,kBAAkB;IAC7B,CAAC;EAAE,CAAC;AAAA;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM2rJ,eAAe,CAAC;AAEtBA,eAAe,CAAClrH,IAAI,YAAAmrH,wBAAApjJ,CAAA;EAAA,YAAAA,CAAA,IAAwFmjJ,eAAe;AAAA,CAAkD;AAC7KA,eAAe,CAAC/iF,IAAI,kBA5oC8E7wC,8DAAE;EAAA98B,IAAA,EA4oCS0wJ,eAAe;EAAA7iF,YAAA,GAAiBiiF,SAAS;EAAAhiF,OAAA,GAAaotE,eAAe;EAAAntE,OAAA,GAAa+hF,SAAS,EAAE5U,eAAe;AAAA,EAAI;AAC7NwV,eAAe,CAAC1iF,IAAI,kBA7oC8ElxC,8DAAE;EAAAgxC,OAAA,GA6oCoC,CAACotE,eAAe,CAAC,EAAEA,eAAe;AAAA,EAAI;AAC9K;EAAA,QAAAh+G,SAAA,oBAAAA,SAAA,KA9oCkGJ,+DAAE,CA8oCT4zH,eAAe,EAAc,CAAC;IAC7G1wJ,IAAI,EAAE6yD,mDAAQ;IACd9tD,IAAI,EAAE,CAAC;MACC+oE,OAAO,EAAE,CAACotE,eAAe,CAAC;MAC1BntE,OAAO,EAAE,CAAC+hF,SAAS,EAAE5U,eAAe,CAAC;MACrCrtE,YAAY,EAAE,CAACiiF,SAAS;IAC5B,CAAC;EACT,CAAC,CAAC;AAAA;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMc,iBAAiB,CAAC;EACpBjqJ,WAAWA,CAACqpJ,cAAc,EAAE;IACxB,IAAI,CAACA,cAAc,GAAGA,cAAc;IACpC;IACA,IAAI,CAACvpI,KAAK,GAAG,WAAW;IACxB;IACA,IAAI,CAAC+b,QAAQ,GAAG,KAAK;EACzB;AACJ;AACAouH,iBAAiB,CAACprH,IAAI,YAAAqrH,0BAAAtjJ,CAAA;EAAA,YAAAA,CAAA,IAAwFqjJ,iBAAiB,EAprC7B9zH,+DAAE,CAorC6C+nH,wFAAqB;AAAA,CAA4D;AAClO+L,iBAAiB,CAAC9uD,IAAI,kBArrC4EhlE,+DAAE;EAAA98B,IAAA,EAqrCF4wJ,iBAAiB;EAAA1tF,SAAA;EAAAq/B,SAAA;EAAApzB,QAAA;EAAAC,YAAA,WAAA0hF,+BAAAxhF,EAAA,EAAAj6B,GAAA;IAAA,IAAAi6B,EAAA;MArrCjBxyC,yDAAE,sCAAAuY,GAAA,CAAA5uB,KAAA,qDAAA4uB,GAAA,CAAA5uB,KAAA,gDAAA4uB,GAAA,CAAA7S,QAAA,6BAAA6S,GAAA,CAAA26G,cAAA;IAAA;EAAA;EAAA7sF,MAAA;IAAA18C,KAAA;IAAA+b,QAAA;EAAA;EAAAmgE,KAAA;EAAAC,IAAA;EAAAtN,QAAA,WAAAy7D,2BAAAzhF,EAAA,EAAAj6B,GAAA;EAAAzN,MAAA;EAAA07D,aAAA;EAAAC,eAAA;AAAA,EAqrCwlD;AAC5rD;EAAA,QAAArmE,SAAA,oBAAAA,SAAA,KAtrCkGJ,+DAAE,CAsrCT8zH,iBAAiB,EAAc,CAAC;IAC/G5wJ,IAAI,EAAE64F,oDAAS;IACf9zF,IAAI,EAAE,CAAC;MAAEu+F,aAAa,EAAExK,iEAAsB;MAAEyK,eAAe,EAAExK,yEAA8B;MAAE75D,QAAQ,EAAE,qBAAqB;MAAEo2D,QAAQ,EAAE,EAAE;MAAE1xD,IAAI,EAAE;QAC1I,OAAO,EAAE,qBAAqB;QAC9B,2CAA2C,EAAE,2BAA2B;QACxE,qCAAqC,EAAE,qBAAqB;QAC5D,sCAAsC,EAAE,UAAU;QAClD,iCAAiC,EAAE;MACvC,CAAC;MAAEgE,MAAM,EAAE,CAAC,whCAAwhC;IAAE,CAAC;EACnjC,CAAC,CAAC,EAAkB,YAAY;IAChC,OAAO,CAAC;MAAE5nC,IAAI,EAAE6iC,SAAS;MAAE61B,UAAU,EAAE,CAAC;QACxB14D,IAAI,EAAE0yD,mDAAQA;MAClB,CAAC,EAAE;QACC1yD,IAAI,EAAEqyD,iDAAM;QACZttD,IAAI,EAAE,CAAC8/I,wFAAqB;MAChC,CAAC;IAAE,CAAC,CAAC;EACrB,CAAC,EAAkB;IAAEp+H,KAAK,EAAE,CAAC;MACjBzmB,IAAI,EAAEwyD,gDAAKA;IACf,CAAC,CAAC;IAAEhwB,QAAQ,EAAE,CAAC;MACXxiC,IAAI,EAAEwyD,gDAAKA;IACf,CAAC;EAAE,CAAC;AAAA;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMw+F,uBAAuB,CAAC;AAE9BA,uBAAuB,CAACxrH,IAAI,YAAAyrH,gCAAA1jJ,CAAA;EAAA,YAAAA,CAAA,IAAwFyjJ,uBAAuB;AAAA,CAAkD;AAC7LA,uBAAuB,CAACrjF,IAAI,kBAttCsE7wC,8DAAE;EAAA98B,IAAA,EAstCiBgxJ,uBAAuB;EAAAnjF,YAAA,GAAiB+iF,iBAAiB;EAAA9iF,OAAA,GAAaotE,eAAe;EAAAntE,OAAA,GAAa6iF,iBAAiB;AAAA,EAAI;AAC5OI,uBAAuB,CAAChjF,IAAI,kBAvtCsElxC,8DAAE;EAAAgxC,OAAA,GAutCoD,CAACotE,eAAe,CAAC;AAAA,EAAI;AAC7K;EAAA,QAAAh+G,SAAA,oBAAAA,SAAA,KAxtCkGJ,+DAAE,CAwtCTk0H,uBAAuB,EAAc,CAAC;IACrHhxJ,IAAI,EAAE6yD,mDAAQ;IACd9tD,IAAI,EAAE,CAAC;MACC+oE,OAAO,EAAE,CAACotE,eAAe,CAAC;MAC1BntE,OAAO,EAAE,CAAC6iF,iBAAiB,CAAC;MAC5B/iF,YAAY,EAAE,CAAC+iF,iBAAiB;IACpC,CAAC;EACT,CAAC,CAAC;AAAA;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMjW,2BAA2B,GAAG,IAAIloF,yDAAc,CAAC,6BAA6B,CAAC;;AAErF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMy+F,qBAAqB,GAAGzK,aAAa,CAAC,MAAM,EACjD,CAAC;AACF;AACA,IAAI0K,wBAAwB,GAAG,CAAC;AAChC,MAAMC,gBAAgB,SAASF,qBAAqB,CAAC;EACjDvqJ,WAAWA,CAAC+V,MAAM,EAAE;IAChB,IAAIyM,EAAE;IACN,KAAK,CAAC,CAAC;IACP;IACA,IAAI,CAACkoI,QAAQ,GAAG,sBAAsBF,wBAAwB,EAAE,EAAE;IAClE,IAAI,CAACG,MAAM,GAAG,CAACnoI,EAAE,GAAGzM,MAAM,KAAK,IAAI,IAAIA,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,MAAM,CAACogI,WAAW,MAAM,IAAI,IAAI3zH,EAAE,KAAK,KAAK,CAAC,GAAGA,EAAE,GAAG,KAAK;EAClI;AACJ;AACAioI,gBAAgB,CAAC5rH,IAAI,YAAA+rH,yBAAAhkJ,CAAA;EAAA,YAAAA,CAAA,IAAwF6jJ,gBAAgB,EA9xC3Bt0H,+DAAE,CA8xC2C69G,2BAA2B;AAAA,CAA4D;AACtOyW,gBAAgB,CAACpuF,IAAI,kBA/xC6ElmC,+DAAE;EAAA98B,IAAA,EA+xCHoxJ,gBAAgB;EAAAjuF,MAAA;IAAA/5C,KAAA;EAAA;EAAAi6C,QAAA,GA/xCfvmC,wEAAE;AAAA,EA+xCiF;AACrL;EAAA,QAAAI,SAAA,oBAAAA,SAAA,KAhyCkGJ,+DAAE,CAgyCTs0H,gBAAgB,EAAc,CAAC;IAC9GpxJ,IAAI,EAAEuyD,oDAASA;EACnB,CAAC,CAAC,EAAkB,YAAY;IAChC,OAAO,CAAC;MAAEvyD,IAAI,EAAE6iC,SAAS;MAAE61B,UAAU,EAAE,CAAC;QACxB14D,IAAI,EAAEqyD,iDAAM;QACZttD,IAAI,EAAE,CAAC41I,2BAA2B;MACtC,CAAC,EAAE;QACC36I,IAAI,EAAE0yD,mDAAQA;MAClB,CAAC;IAAE,CAAC,CAAC;EACrB,CAAC,EAAkB;IAAEtpC,KAAK,EAAE,CAAC;MACjBppB,IAAI,EAAEwyD,gDAAKA;IACf,CAAC;EAAE,CAAC;AAAA;AAChB;AACA;AACA;AACA;AACA;AACA,MAAMooF,YAAY,GAAG,IAAInoF,yDAAc,CAAC,aAAa,CAAC;AACtD;AACA;AACA;AACA,MAAM++F,WAAW,SAASJ,gBAAgB,CAAC;AAE3CI,WAAW,CAAChsH,IAAI;EAAA,IAAAisH,wBAAA;EAAA,gBAAAC,oBAAAnkJ,CAAA;IAAA,QAAAkkJ,wBAAA,KAAAA,wBAAA,GAvzCkF30H,mEAAE,CAuzCI00H,WAAW,IAAAjkJ,CAAA,IAAXikJ,WAAW;EAAA;AAAA,GAAqD;AACxKA,WAAW,CAAC1vD,IAAI,kBAxzCkFhlE,+DAAE;EAAA98B,IAAA,EAwzCRwxJ,WAAW;EAAAtuF,SAAA;EAAAq/B,SAAA;EAAApzB,QAAA;EAAAC,YAAA,WAAAuiF,yBAAAriF,EAAA,EAAAj6B,GAAA;IAAA,IAAAi6B,EAAA;MAxzCLxyC,yDAAE,SAAAuY,GAAA,CAAAi8G,MAAA,oCAAAj8G,GAAA,CAAAi8G,MAAA,UAAAj8G,GAAA,CAAA7S,QAAA,CAAAp+B,QAAA,uBAAAixC,GAAA,CAAAi8G,MAAA,UAAAj8G,GAAA,CAAAg8G,QAAA;MAAFv0H,yDAAE,0BAAAuY,GAAA,CAAA7S,QAAA;IAAA;EAAA;EAAA2gC,MAAA;IAAA3gC,QAAA;EAAA;EAAA4gC,QAAA;EAAAC,QAAA,GAAFvmC,gEAAE,CAwzC4U,CAAC;IAAE2yC,OAAO,EAAEmrE,YAAY;IAAElrE,WAAW,EAAE8hF;EAAY,CAAC,CAAC,GAxzCnY10H,wEAAE;EAAA4lE,kBAAA,EAAA7I,GAAA;EAAA8I,KAAA;EAAAC,IAAA;EAAAC,MAAA;EAAAvN,QAAA,WAAAs8D,qBAAAtiF,EAAA,EAAAj6B,GAAA;IAAA,IAAAi6B,EAAA;MAAFxyC,6DAAE,CAAA88D,GAAA;MAAF98D,4DAAE,aAwzCuhB,CAAC;MAxzC1hBA,oDAAE,EAwzCmiB,CAAC;MAxzCtiBA,0DAAE,EAwzC4jB,CAAC;MAxzC/jBA,0DAAE,CAwzCmkB,CAAC;MAxzCtkBA,0DAAE,KAwzCkoB,CAAC;IAAA;IAAA,IAAAwyC,EAAA;MAxzCroBxyC,wDAAE,OAAAuY,GAAA,CAAAg8G,QAwzCshB,CAAC;MAxzCzhBv0H,uDAAE,EAwzCmiB,CAAC;MAxzCtiBA,gEAAE,KAAAuY,GAAA,CAAAjsB,KAAA,KAwzCmiB,CAAC;IAAA;EAAA;EAAAwe,MAAA;EAAA07D,aAAA;EAAAC,eAAA;AAAA,EAAuuB;AAC/2C;EAAA,QAAArmE,SAAA,oBAAAA,SAAA,KAzzCkGJ,+DAAE,CAyzCT00H,WAAW,EAAc,CAAC;IACzGxxJ,IAAI,EAAE64F,oDAAS;IACf9zF,IAAI,EAAE,CAAC;MAAEm6B,QAAQ,EAAE,cAAc;MAAEkkC,QAAQ,EAAE,aAAa;MAAEkgC,aAAa,EAAExK,iEAAsB;MAAEyK,eAAe,EAAExK,yEAA8B;MAAE51B,MAAM,EAAE,CAAC,UAAU,CAAC;MAAEv/B,IAAI,EAAE;QACpK,OAAO,EAAE,cAAc;QACvB,aAAa,EAAE,yBAAyB;QACxC,sBAAsB,EAAE,qCAAqC;QAC7D,wBAAwB,EAAE,0BAA0B;QACpD,+BAA+B,EAAE;MACrC,CAAC;MAAE+rC,SAAS,EAAE,CAAC;QAAEF,OAAO,EAAEmrE,YAAY;QAAElrE,WAAW,EAAE8hF;MAAY,CAAC,CAAC;MAAEl8D,QAAQ,EAAE,yLAAyL;MAAE1tD,MAAM,EAAE,CAAC,whBAAwhB;IAAE,CAAC;EAC1zB,CAAC,CAAC;AAAA;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIiqH,gBAAgB,GAAG,CAAC;AACxB;AACA,MAAM/W,wBAAwB,CAAC;EAC3Bn0I,WAAWA,CACX;EACA4sE,MAAM,EACN;EACAu+E,WAAW,GAAG,KAAK,EAAE;IACjB,IAAI,CAACv+E,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACu+E,WAAW,GAAGA,WAAW;EAClC;AACJ;AACA,MAAMC,cAAc,CAAC;EACjBprJ,WAAWA,CAACo+B,QAAQ,EAAEm6D,kBAAkB,EAAEyhC,OAAO,EAAEqM,KAAK,EAAE;IACtD,IAAI,CAACjoG,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACm6D,kBAAkB,GAAGA,kBAAkB;IAC5C,IAAI,CAACyhC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACqM,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACn6D,SAAS,GAAG,KAAK;IACtB,IAAI,CAACm/E,OAAO,GAAG,KAAK;IACpB,IAAI,CAAC38E,SAAS,GAAG,KAAK;IACtB,IAAI,CAAC48E,oBAAoB,GAAG,EAAE;IAC9B;IACA,IAAI,CAACn5I,EAAE,GAAG,cAAc+4I,gBAAgB,EAAE,EAAE;IAC5C;IACA;IACA,IAAI,CAAC1R,iBAAiB,GAAG,IAAIxtF,uDAAY,CAAC,CAAC;IAC3C;IACA,IAAI,CAACu/F,aAAa,GAAG,IAAI/+F,yCAAO,CAAC,CAAC;EACtC;EACA;EACA,IAAIg/F,QAAQA,CAAA,EAAG;IACX,OAAO,IAAI,CAACxxB,OAAO,IAAI,IAAI,CAACA,OAAO,CAACwxB,QAAQ;EAChD;EACA;EACA,IAAIv/E,QAAQA,CAAA,EAAG;IACX,OAAO,IAAI,CAACC,SAAS;EACzB;EACA;EACA,IAAIrwC,QAAQA,CAAA,EAAG;IACX,OAAQ,IAAI,CAACwqG,KAAK,IAAI,IAAI,CAACA,KAAK,CAACxqG,QAAQ,IAAK,IAAI,CAAC6yC,SAAS;EAChE;EACA,IAAI7yC,QAAQA,CAACn6B,KAAK,EAAE;IAChB,IAAI,CAACgtE,SAAS,GAAGxgB,4EAAqB,CAACxsD,KAAK,CAAC;EACjD;EACA;EACA,IAAIm2I,aAAaA,CAAA,EAAG;IAChB,OAAO,CAAC,EAAE,IAAI,CAAC7d,OAAO,IAAI,IAAI,CAACA,OAAO,CAAC6d,aAAa,CAAC;EACzD;EACA;AACJ;AACA;AACA;AACA;AACA;EACI,IAAI4T,MAAMA,CAAA,EAAG;IACT,OAAO,IAAI,CAACJ,OAAO;EACvB;EACA;AACJ;AACA;AACA;EACI,IAAIK,SAASA,CAAA,EAAG;IACZ;IACA,OAAO,CAAC,IAAI,CAAC7O,eAAe,CAAC,CAAC,CAAC/rF,WAAW,IAAI,EAAE,EAAErc,IAAI,CAAC,CAAC;EAC5D;EACA;EACA03B,MAAMA,CAAA,EAAG;IACL,IAAI,CAAC,IAAI,CAACD,SAAS,EAAE;MACjB,IAAI,CAACA,SAAS,GAAG,IAAI;MACrB,IAAI,CAACqsB,kBAAkB,CAACwC,YAAY,CAAC,CAAC;MACtC,IAAI,CAAC4wD,yBAAyB,CAAC,CAAC;IACpC;EACJ;EACA;EACAr/E,QAAQA,CAAA,EAAG;IACP,IAAI,IAAI,CAACJ,SAAS,EAAE;MAChB,IAAI,CAACA,SAAS,GAAG,KAAK;MACtB,IAAI,CAACqsB,kBAAkB,CAACwC,YAAY,CAAC,CAAC;MACtC,IAAI,CAAC4wD,yBAAyB,CAAC,CAAC;IACpC;EACJ;EACA;EACA3jI,KAAKA,CAACmuC,OAAO,EAAEvuD,OAAO,EAAE;IACpB;IACA;IACA,MAAM4mB,OAAO,GAAG,IAAI,CAACquH,eAAe,CAAC,CAAC;IACtC,IAAI,OAAOruH,OAAO,CAACxG,KAAK,KAAK,UAAU,EAAE;MACrCwG,OAAO,CAACxG,KAAK,CAACpgB,OAAO,CAAC;IAC1B;EACJ;EACA;AACJ;AACA;AACA;AACA;EACIquD,eAAeA,CAAA,EAAG;IACd,IAAI,CAAC,IAAI,CAACo1F,OAAO,EAAE;MACf,IAAI,CAACA,OAAO,GAAG,IAAI;MACnB,IAAI,CAAC9yD,kBAAkB,CAACwC,YAAY,CAAC,CAAC;IAC1C;EACJ;EACA;AACJ;AACA;AACA;AACA;EACI/kC,iBAAiBA,CAAA,EAAG;IAChB,IAAI,IAAI,CAACq1F,OAAO,EAAE;MACd,IAAI,CAACA,OAAO,GAAG,KAAK;MACpB,IAAI,CAAC9yD,kBAAkB,CAACwC,YAAY,CAAC,CAAC;IAC1C;EACJ;EACA;EACA/mC,QAAQA,CAAA,EAAG;IACP,OAAO,IAAI,CAAC03F,SAAS;EACzB;EACA;EACAlR,cAAcA,CAACl/G,KAAK,EAAE;IAClB,IAAI,CAACA,KAAK,CAACq5B,OAAO,KAAK8/E,yDAAK,IAAIn5G,KAAK,CAACq5B,OAAO,KAAKwpF,yDAAK,KAAK,CAACvxF,sEAAc,CAACtxB,KAAK,CAAC,EAAE;MAChF,IAAI,CAACo/G,qBAAqB,CAAC,CAAC;MAC5B;MACAp/G,KAAK,CAAC+5B,cAAc,CAAC,CAAC;IAC1B;EACJ;EACA;AACJ;AACA;AACA;EACIqlF,qBAAqBA,CAAA,EAAG;IACpB,IAAI,CAAC,IAAI,CAAC7+G,QAAQ,EAAE;MAChB,IAAI,CAACqwC,SAAS,GAAG,IAAI,CAACs/E,QAAQ,GAAG,CAAC,IAAI,CAACt/E,SAAS,GAAG,IAAI;MACvD,IAAI,CAACqsB,kBAAkB,CAACwC,YAAY,CAAC,CAAC;MACtC,IAAI,CAAC4wD,yBAAyB,CAAC,IAAI,CAAC;IACxC;EACJ;EACA;AACJ;AACA;AACA;AACA;AACA;EACIC,gBAAgBA,CAAA,EAAG;IACf,OAAO,IAAI,CAAC3/E,QAAQ,KAAK,IAAI,CAACu/E,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC;EAC1D;EACA;EACAK,YAAYA,CAAA,EAAG;IACX,OAAO,IAAI,CAAChwH,QAAQ,GAAG,IAAI,GAAG,GAAG;EACrC;EACA;EACAghH,eAAeA,CAAA,EAAG;IACd,OAAO,IAAI,CAACz+G,QAAQ,CAACq9B,aAAa;EACtC;EACAqwF,kBAAkBA,CAAA,EAAG;IACjB;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,CAAC5/E,SAAS,EAAE;MAChB,MAAMw/E,SAAS,GAAG,IAAI,CAACA,SAAS;MAChC,IAAIA,SAAS,KAAK,IAAI,CAACJ,oBAAoB,EAAE;QACzC,IAAI,CAACA,oBAAoB,GAAGI,SAAS;QACrC,IAAI,CAACH,aAAa,CAACtqJ,IAAI,CAAC,CAAC;MAC7B;IACJ;EACJ;EACAyvD,WAAWA,CAAA,EAAG;IACV,IAAI,CAAC66F,aAAa,CAACtrF,QAAQ,CAAC,CAAC;EACjC;EACA;EACA0rF,yBAAyBA,CAACR,WAAW,GAAG,KAAK,EAAE;IAC3C,IAAI,CAAC3R,iBAAiB,CAAC/4I,IAAI,CAAC,IAAI0zI,wBAAwB,CAAC,IAAI,EAAEgX,WAAW,CAAC,CAAC;EAChF;AACJ;AACAC,cAAc,CAACvsH,IAAI,YAAAktH,uBAAAnlJ,CAAA;EA9/C+EuvB,8DAAE;AAAA,CA8/C+E;AACnLi1H,cAAc,CAAC/uF,IAAI,kBA//C+ElmC,+DAAE;EAAA98B,IAAA,EA+/CL+xJ,cAAc;EAAA5uF,MAAA;IAAA96D,KAAA;IAAAyQ,EAAA;IAAA0pB,QAAA;EAAA;EAAA+pC,OAAA;IAAA4zE,iBAAA;EAAA;AAAA,EAAkI;AAC/O;EAAA,QAAAjjH,SAAA,oBAAAA,SAAA,KAhgDkGJ,+DAAE,CAggDTi1H,cAAc,EAAc,CAAC;IAC5G/xJ,IAAI,EAAEuyD,oDAASA;EACnB,CAAC,CAAC,EAAkB,YAAY;IAAE,OAAO,CAAC;MAAEvyD,IAAI,EAAE88B,qDAAaimC;IAAC,CAAC,EAAE;MAAE/iE,IAAI,EAAE88B,4DAAoB+kE;IAAC,CAAC,EAAE;MAAE7hG,IAAI,EAAE6iC;IAAU,CAAC,EAAE;MAAE7iC,IAAI,EAAEoxJ;IAAiB,CAAC,CAAC;EAAE,CAAC,EAAkB;IAAE/oJ,KAAK,EAAE,CAAC;MAC1KrI,IAAI,EAAEwyD,gDAAKA;IACf,CAAC,CAAC;IAAE15C,EAAE,EAAE,CAAC;MACL9Y,IAAI,EAAEwyD,gDAAKA;IACf,CAAC,CAAC;IAAEhwB,QAAQ,EAAE,CAAC;MACXxiC,IAAI,EAAEwyD,gDAAKA;IACf,CAAC,CAAC;IAAE2tF,iBAAiB,EAAE,CAAC;MACpBngJ,IAAI,EAAE4yD,iDAAMA;IAChB,CAAC;EAAE,CAAC;AAAA;AAChB;AACA;AACA;AACA,MAAMioF,SAAS,SAASkX,cAAc,CAAC;EACnCprJ,WAAWA,CAACwuB,OAAO,EAAEy9H,iBAAiB,EAAEl2I,MAAM,EAAEswH,KAAK,EAAE;IACnD,KAAK,CAAC73G,OAAO,EAAEy9H,iBAAiB,EAAEl2I,MAAM,EAAEswH,KAAK,CAAC;EACpD;AACJ;AACA6N,SAAS,CAACr1G,IAAI,YAAAqtH,kBAAAtlJ,CAAA;EAAA,YAAAA,CAAA,IAAwFstI,SAAS,EAnhDb/9G,+DAAE,CAmhD6BA,qDAAa,GAnhD5CA,+DAAE,CAmhDuDA,4DAAoB,GAnhD7EA,+DAAE,CAmhDwF69G,2BAA2B,MAnhDrH79G,+DAAE,CAmhDgJ89G,YAAY;AAAA,CAA4D;AAC5TC,SAAS,CAAC/4C,IAAI,kBAphDoFhlE,+DAAE;EAAA98B,IAAA,EAohDV66I,SAAS;EAAA33E,SAAA;EAAAq/B,SAAA,WAAwD,QAAQ;EAAApzB,QAAA;EAAAC,YAAA,WAAA0jF,uBAAAxjF,EAAA,EAAAj6B,GAAA;IAAA,IAAAi6B,EAAA;MAphDjExyC,wDAAE,mBAAAi2H,mCAAA;QAAA,OAohDV19G,GAAA,CAAAgsG,qBAAA,CAAsB,CAAC;MAAA,uBAAA2R,qCAAAp4B,MAAA;QAAA,OAAvBvlF,GAAA,CAAA8rG,cAAA,CAAAvmB,MAAqB,CAAC;MAAA;IAAA;IAAA,IAAAtrD,EAAA;MAphDdxyC,4DAAE,OAAAuY,GAAA,CAAAv8B,EAAA;MAAFgkB,yDAAE,aAAAuY,GAAA,CAAAm9G,YAAA,qBAAAn9G,GAAA,CAAAk9G,gBAAA,qBAAAl9G,GAAA,CAAA7S,QAAA,CAAAp+B,QAAA;MAAF04B,yDAAE,iBAAAuY,GAAA,CAAAu9B,QAAA,yBAAAv9B,GAAA,CAAA88G,QAAA,gBAAA98G,GAAA,CAAA+8G,MAAA,yBAAA/8G,GAAA,CAAA7S,QAAA;IAAA;EAAA;EAAA4gC,QAAA;EAAAC,QAAA,GAAFvmC,wEAAE;EAAA4lE,kBAAA,EAAA0iD,GAAA;EAAAziD,KAAA;EAAAC,IAAA;EAAAC,MAAA;EAAAvN,QAAA,WAAA49D,mBAAA5jF,EAAA,EAAAj6B,GAAA;IAAA,IAAAi6B,EAAA;MAAFxyC,6DAAE;MAAFA,wDAAE,IAAAioH,wCAAA,gCAohDgvB,CAAC;MAphDnvBjoH,4DAAE,aAohDoxB,CAAC;MAphDvxBA,0DAAE,EAohD6yB,CAAC;MAphDhzBA,0DAAE,CAohDozB,CAAC;MAphDvzBA,wDAAE,IAAAkoH,yBAAA,iBAohDm+B,CAAC;MAphDt+BloH,uDAAE,YAohDkoC,CAAC;IAAA;IAAA,IAAAwyC,EAAA;MAphDroCxyC,wDAAE,SAAAuY,GAAA,CAAA88G,QAohDsmB,CAAC;MAphDzmBr1H,uDAAE,EAohDs8B,CAAC;MAphDz8BA,wDAAE,SAAAuY,GAAA,CAAA23F,KAAA,IAAA33F,GAAA,CAAA23F,KAAA,CAAAskB,MAohDs8B,CAAC;MAphDz8Bx0H,uDAAE,EAohDikC,CAAC;MAphDpkCA,wDAAE,qBAAAuY,GAAA,CAAAmuG,eAAA,EAohDikC,CAAC,sBAAAnuG,GAAA,CAAA7S,QAAA,IAAA6S,GAAA,CAAAmpG,aAAD,CAAC;IAAA;EAAA;EAAAzY,UAAA,GAAo8C6qB,iBAAiB,EAA0FzV,iDAAO,EAA0E2U,SAAS;EAAAloH,MAAA;EAAA07D,aAAA;EAAAC,eAAA;AAAA,EAA6T;AAC5mG;EAAA,QAAArmE,SAAA,oBAAAA,SAAA,KArhDkGJ,+DAAE,CAqhDT+9G,SAAS,EAAc,CAAC;IACvG76I,IAAI,EAAE64F,oDAAS;IACf9zF,IAAI,EAAE,CAAC;MAAEm6B,QAAQ,EAAE,YAAY;MAAEkkC,QAAQ,EAAE,WAAW;MAAEx/B,IAAI,EAAE;QAClD,MAAM,EAAE,QAAQ;QAChB,iBAAiB,EAAE,gBAAgB;QACnC,sBAAsB,EAAE,UAAU;QAClC,6BAA6B,EAAE,UAAU;QACzC,oBAAoB,EAAE,QAAQ;QAC9B,MAAM,EAAE,IAAI;QACZ,sBAAsB,EAAE,oBAAoB;QAC5C,sBAAsB,EAAE,qBAAqB;QAC7C,6BAA6B,EAAE,UAAU;QACzC,SAAS,EAAE,yBAAyB;QACpC,WAAW,EAAE,wBAAwB;QACrC,OAAO,EAAE;MACb,CAAC;MAAE0/D,aAAa,EAAExK,iEAAsB;MAAEyK,eAAe,EAAExK,yEAA8B;MAAEzD,QAAQ,EAAE,qkBAAqkB;MAAE1tD,MAAM,EAAE,CAAC,61CAA61C;IAAE,CAAC;EACjiE,CAAC,CAAC,EAAkB,YAAY;IAChC,OAAO,CAAC;MAAE5nC,IAAI,EAAE88B,qDAAaimC;IAAC,CAAC,EAAE;MAAE/iE,IAAI,EAAE88B,4DAAoB+kE;IAAC,CAAC,EAAE;MAAE7hG,IAAI,EAAE6iC,SAAS;MAAE61B,UAAU,EAAE,CAAC;QACjF14D,IAAI,EAAE0yD,mDAAQA;MAClB,CAAC,EAAE;QACC1yD,IAAI,EAAEqyD,iDAAM;QACZttD,IAAI,EAAE,CAAC41I,2BAA2B;MACtC,CAAC;IAAE,CAAC,EAAE;MAAE36I,IAAI,EAAEwxJ,WAAW;MAAE94F,UAAU,EAAE,CAAC;QACpC14D,IAAI,EAAE0yD,mDAAQA;MAClB,CAAC,EAAE;QACC1yD,IAAI,EAAEqyD,iDAAM;QACZttD,IAAI,EAAE,CAAC61I,YAAY;MACvB,CAAC;IAAE,CAAC,CAAC;EACrB,CAAC;AAAA;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASG,6BAA6BA,CAACoY,WAAW,EAAE5kJ,OAAO,EAAEgwI,YAAY,EAAE;EACvE,IAAIA,YAAY,CAACv9I,MAAM,EAAE;IACrB,IAAIoyJ,YAAY,GAAG7kJ,OAAO,CAACurD,OAAO,CAAC,CAAC;IACpC,IAAIqhD,MAAM,GAAGojC,YAAY,CAACzkF,OAAO,CAAC,CAAC;IACnC,IAAIu5F,YAAY,GAAG,CAAC;IACpB,KAAK,IAAIvyJ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGqyJ,WAAW,GAAG,CAAC,EAAEryJ,CAAC,EAAE,EAAE;MACtC,IAAIsyJ,YAAY,CAACtyJ,CAAC,CAAC,CAACksI,KAAK,IAAIomB,YAAY,CAACtyJ,CAAC,CAAC,CAACksI,KAAK,KAAK7xB,MAAM,CAACk4C,YAAY,CAAC,EAAE;QACzEA,YAAY,EAAE;MAClB;IACJ;IACA,OAAOA,YAAY;EACvB;EACA,OAAO,CAAC;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASrY,wBAAwBA,CAACsY,YAAY,EAAEC,YAAY,EAAEC,qBAAqB,EAAEC,WAAW,EAAE;EAC9F,IAAIH,YAAY,GAAGE,qBAAqB,EAAE;IACtC,OAAOF,YAAY;EACvB;EACA,IAAIA,YAAY,GAAGC,YAAY,GAAGC,qBAAqB,GAAGC,WAAW,EAAE;IACnE,OAAO1wJ,IAAI,CAACmG,GAAG,CAAC,CAAC,EAAEoqJ,YAAY,GAAGG,WAAW,GAAGF,YAAY,CAAC;EACjE;EACA,OAAOC,qBAAqB;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMvY,eAAe,CAAC;AAEtBA,eAAe,CAACz1G,IAAI,YAAAkuH,wBAAAnmJ,CAAA;EAAA,YAAAA,CAAA,IAAwF0tI,eAAe;AAAA,CAAkD;AAC7KA,eAAe,CAACttE,IAAI,kBAnmD8E7wC,8DAAE;EAAA98B,IAAA,EAmmDSi7I,eAAe;EAAAptE,YAAA,GAAiBgtE,SAAS,EAAE2W,WAAW;EAAA1jF,OAAA,GAAa4iF,eAAe,EAAE7lC,yDAAY,EAAEqwB,eAAe,EAAE8V,uBAAuB;EAAAjjF,OAAA,GAAa8sE,SAAS,EAAE2W,WAAW;AAAA,EAAI;AAC9RvW,eAAe,CAACjtE,IAAI,kBApmD8ElxC,8DAAE;EAAAgxC,OAAA,GAomDoC,CAAC4iF,eAAe,EAAE7lC,yDAAY,EAAEqwB,eAAe,EAAE8V,uBAAuB,CAAC;AAAA,EAAI;AACrN;EAAA,QAAA9zH,SAAA,oBAAAA,SAAA,KArmDkGJ,+DAAE,CAqmDTm+G,eAAe,EAAc,CAAC;IAC7Gj7I,IAAI,EAAE6yD,mDAAQ;IACd9tD,IAAI,EAAE,CAAC;MACC+oE,OAAO,EAAE,CAAC4iF,eAAe,EAAE7lC,yDAAY,EAAEqwB,eAAe,EAAE8V,uBAAuB,CAAC;MAClFjjF,OAAO,EAAE,CAAC8sE,SAAS,EAAE2W,WAAW,CAAC;MACjC3jF,YAAY,EAAE,CAACgtE,SAAS,EAAE2W,WAAW;IACzC,CAAC;EACT,CAAC,CAAC;AAAA;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjuD6C;AACY;AACnB;AACS;AACX;AACqK;AACpI;AACP;AACb;AACW;AACqB;AACJ;AACrC;AACI;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AANA,MAAA53D,GAAA;AAAA,MAAAC,GAAA;AAAA,MAAAurD,GAAA;AAAA,SAAAwO,qCAAAtkF,EAAA,EAAAj6B,GAAA;EAAA,IAAAi6B,EAAA;IAyB2FxyC,qEAAE,EAqnB26F,CAAC;IArnB96FA,4DAAE,aAqnBy9F,CAAC;IArnB59FA,uDAAE,aAqnBqhG,CAAC,aAAD,CAAC,aAAD,CAAC;IArnBxhGA,0DAAE,CAqnBupG,CAAC;IArnB1pGA,4DAAE,aAqnBkuG,CAAC;IArnBruGA,uDAAE,aAqnB8xG,CAAC,aAAD,CAAC,aAAD,CAAC;IArnBjyGA,0DAAE,CAqnBg6G,CAAC;IArnBn6GA,mEAAE,CAqnBq7G,CAAC;EAAA;AAAA;AAAA,SAAAi3H,4BAAAzkF,EAAA,EAAAj6B,GAAA;EAAA,IAAAi6B,EAAA;IAAA,MAAA0kF,IAAA,GArnBx7Gl3H,8DAAE;IAAFA,4DAAE,aAqnBkoH,CAAC;IArnBroHA,wDAAE,+BAAAo3H,6DAAA;MAAFp3H,2DAAE,CAAAk3H,IAAA;MAAA,MAAAI,MAAA,GAAFt3H,2DAAE;MAAA,OAqnB+iHs3H,MAAA,CAAAC,gBAAA,CAAiB,CAAC;IAAA,CAAC,CAAC;IArnBrkHv3H,0DAAE,KAqnB0rH,CAAC;IArnB7rHA,0DAAE,CAqnBssH,CAAC;EAAA;EAAA,IAAAwyC,EAAA;IAAA,MAAAglF,MAAA,GArnBzsHx3H,2DAAE;IAAFA,wDAAE,8BAAAw3H,MAAA,CAAAC,UAAA,aAqnBioH,CAAC;EAAA;AAAA;AAAA,SAAAC,6CAAAllF,EAAA,EAAAj6B,GAAA;EAAA,IAAAi6B,EAAA;IArnBpoHxyC,qEAAE,EAqnB40J,CAAC;IArnB/0JA,0DAAE,KAqnB84J,CAAC;IArnBj5JA,4DAAE,UAqnBk6J,CAAC;IArnBr6JA,oDAAE,EAqnB07J,CAAC;IArnB77JA,0DAAE,CAqnBi8J,CAAC;IArnBp8JA,mEAAE,CAqnB49J,CAAC;EAAA;EAAA,IAAAwyC,EAAA;IAAA,MAAAmlF,OAAA,GArnB/9J33H,2DAAE;IAAFA,uDAAE,EAqnB07J,CAAC;IArnB77JA,+DAAE,CAAA23H,OAAA,CAAAhkB,QAAA,CAAAkkB,WAqnB07J,CAAC;EAAA;AAAA;AAAA,SAAAC,2CAAAtlF,EAAA,EAAAj6B,GAAA;EAAA,IAAAi6B,EAAA;IArnB77JxyC,0DAAE,gCAqnB+iK,CAAC;EAAA;AAAA;AAAA,SAAA+3H,qCAAAvlF,EAAA,EAAAj6B,GAAA;EAAA,IAAAi6B,EAAA;IArnBljKxyC,4DAAE,cAqnB61K,CAAC;IArnBh2KA,oDAAE,QAqnBm2K,CAAC;IArnBt2KA,0DAAE,CAqnB02K,CAAC;EAAA;AAAA;AAAA,SAAAg4H,8BAAAxlF,EAAA,EAAAj6B,GAAA;EAAA,IAAAi6B,EAAA;IAAA,MAAAylF,IAAA,GArnB72Kj4H,8DAAE;IAAFA,4DAAE,mBAqnBmrJ,CAAC;IArnBtrJA,wDAAE,+BAAAk4H,iEAAA;MAAFl4H,2DAAE,CAAAi4H,IAAA;MAAA,MAAAE,OAAA,GAAFn4H,2DAAE;MAAA,OAqnBolIm4H,OAAA,CAAAZ,gBAAA,CAAiB,CAAC;IAAA,CAAC,CAAC;IArnB1mIv3H,wDAAE,IAAA03H,4CAAA,0BAqnB49J,CAAC;IArnB/9J13H,wDAAE,IAAA83H,0CAAA,wBAqnB+iK,CAAC;IArnBljK93H,wDAAE,IAAA+3H,oCAAA,kBAqnB02K,CAAC;IArnB72K/3H,0DAAE,CAqnB43K,CAAC;EAAA;EAAA,IAAAwyC,EAAA;IAAA,MAAA4lF,MAAA,GArnB/3Kp4H,2DAAE;IAAFA,yDAAE,cAAAo4H,MAAA,CAAAzkB,QAAA,CAAA0kB,KAAA,KAAAD,MAAA,CAAAE,kBAAA,EAqnB23I,CAAC,yBAAAF,MAAA,CAAAzkB,QAAA,CAAA0kB,KAAA,KAAAD,MAAA,CAAAE,kBAAA,EAAD,CAAC,eAAAF,MAAA,CAAAtO,KAAA,YAAD,CAAC,aAAAsO,MAAA,CAAAtO,KAAA,UAAD,CAAC;IArnB93I9pH,wDAAE,8BAAAo4H,MAAA,CAAAX,UAAA,aAqnB+qI,CAAC,OAAAW,MAAA,CAAA7D,QAAD,CAAC,aAAA6D,MAAA,CAAAG,SAAA,EAAD,CAAC;IArnBlrIv4H,yDAAE,QAAAo4H,MAAA,CAAAzkB,QAAA,CAAA33H,EAqnB4vI,CAAC,cAAAo8I,MAAA,CAAAzkB,QAAA,CAAA33H,EAAD,CAAC;IArnB/vIgkB,uDAAE,EAqnBy0J,CAAC;IArnB50JA,wDAAE,sBAqnBy0J,CAAC;IArnB50JA,uDAAE,EAqnB+hK,CAAC;IArnBliKA,wDAAE,qBAqnB+hK,CAAC;IArnBliKA,uDAAE,EAqnB01K,CAAC;IArnB71KA,wDAAE,UAAAo4H,MAAA,CAAAI,kBAAA,IAAAJ,MAAA,CAAAzkB,QAAA,CAAAjU,QAAA,KAAA04B,MAAA,CAAAzkB,QAAA,CAAAjuG,QAqnB01K,CAAC;EAAA;AAAA;AAAA,SAAA+yH,6BAAAjmF,EAAA,EAAAj6B,GAAA;EAAA,IAAAi6B,EAAA;IArnB71KxyC,4DAAE,aAqnBq+K,CAAC;IArnBx+KA,0DAAE,KAqnB6hL,CAAC;IArnBhiLA,0DAAE,CAqnByiL,CAAC;EAAA;AAAA;AAAA,SAAA04H,6BAAAlmF,EAAA,EAAAj6B,GAAA;EAAA,IAAAi6B,EAAA;IArnB5iLxyC,4DAAE,aAqnBitL,CAAC;IArnBptLA,uDAAE,cAqnBw2L,CAAC;IArnB32LA,0DAAE,CAqnBk3L,CAAC;EAAA;EAAA,IAAAwyC,EAAA;IAAA,MAAAmmF,MAAA,GArnBr3L34H,2DAAE;IAAFA,uDAAE,EAqnBgzL,CAAC;IArnBnzLA,yDAAE,eAAA24H,MAAA,CAAA7O,KAAA,YAqnBgzL,CAAC,aAAA6O,MAAA,CAAA7O,KAAA,UAAD,CAAC;EAAA;AAAA;AAAA,SAAA8O,6BAAApmF,EAAA,EAAAj6B,GAAA;EAAA,IAAAi6B,EAAA;IArnBnzLxyC,4DAAE,SAqnB+iM,CAAC;IArnBljMA,0DAAE,KAqnBqmM,CAAC;IArnBxmMA,0DAAE,CAqnBinM,CAAC;EAAA;EAAA,IAAAwyC,EAAA;IAAA,MAAAqmF,MAAA,GArnBpnM74H,2DAAE;IAAFA,wDAAE,wBAAA64H,MAAA,CAAAC,wBAqnB8iM,CAAC;EAAA;AAAA;AAAA,SAAAC,mCAAAvmF,EAAA,EAAAj6B,GAAA;EAAA,IAAAi6B,EAAA;IArnBjjMxyC,4DAAE,aAqnBm6M,CAAC;IArnBt6MA,oDAAE,EAqnBg7M,CAAC;IArnBn7MA,0DAAE,CAqnBs7M,CAAC;EAAA;EAAA,IAAAwyC,EAAA;IAAA,MAAAwmF,OAAA,GArnBz7Mh5H,2DAAE;IAAFA,wDAAE,OAAAg5H,OAAA,CAAAC,YAqnB+4M,CAAC;IArnBl5Mj5H,uDAAE,EAqnBg7M,CAAC;IArnBn7MA,+DAAE,CAAAg5H,OAAA,CAAAE,SAqnBg7M,CAAC;EAAA;AAAA;AAAA,SAAAC,6BAAA3mF,EAAA,EAAAj6B,GAAA;EAAA,IAAAi6B,EAAA;IArnBn7MxyC,4DAAE,aAqnBuvM,CAAC;IArnB1vMA,wDAAE,IAAA+4H,kCAAA,iBAqnBs7M,CAAC;IArnBz7M/4H,0DAAE,KAqnB8/M,CAAC;IArnBjgNA,uDAAE,aAqnBsjN,CAAC;IArnBzjNA,0DAAE,KAqnBwnN,CAAC;IArnB3nNA,0DAAE,CAqnBooN,CAAC;EAAA;EAAA,IAAAwyC,EAAA;IAAA,MAAA4mF,MAAA,GArnBvoNp5H,2DAAE;IAAFA,wDAAE,wBAAAo5H,MAAA,CAAAN,wBAqnBsvM,CAAC;IArnBzvM94H,uDAAE,EAqnBu3M,CAAC;IArnB13MA,wDAAE,SAAAo5H,MAAA,CAAAF,SAqnBu3M,CAAC;EAAA;AAAA;AAAA,MAAAG,GAAA;AAAA,MAAAC,GAAA;AAvoBr9M,IAAIC,cAAc,GAAG,CAAC;AACtB;AACA;AACA;AACA;AACA;AACA,MAAMC,SAAS,GAAG,IAAI7jG,yDAAc,CAAC,UAAU,CAAC;AAChD;AACA,MAAM8jG,QAAQ,CAAC;EACX5vJ,WAAWA,CAAC6vJ,QAAQ,EAAEroE,UAAU,EAAE;IAC9B,IAAI,CAACr1E,EAAE,GAAG,aAAau9I,cAAc,EAAE,EAAE;IACzC;IACA;IACA,IAAI,CAACG,QAAQ,EAAE;MACXroE,UAAU,CAAC/rB,aAAa,CAAC55B,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC;IAChE;EACJ;AACJ;AACA+tH,QAAQ,CAAC/wH,IAAI,YAAAixH,iBAAAlpJ,CAAA;EAAA,YAAAA,CAAA,IAAwFgpJ,QAAQ,EAAlBz5H,+DAAE,CAAkC,WAAW,GAA/CA,+DAAE,CAA2EA,qDAAa;AAAA,CAA4C;AACjOy5H,QAAQ,CAACvzF,IAAI,kBAD8ElmC,+DAAE;EAAA98B,IAAA,EACJu2J,QAAQ;EAAArzF,SAAA;EAAAq/B,SAAA,kBAAoF,MAAM;EAAApzB,QAAA;EAAAC,YAAA,WAAAsnF,sBAAApnF,EAAA,EAAAj6B,GAAA;IAAA,IAAAi6B,EAAA;MADhGxyC,yDAAE,OAAAuY,GAAA,CAAAv8B,EAAA;IAAA;EAAA;EAAAqqD,MAAA;IAAArqD,EAAA;EAAA;EAAAuqD,QAAA,GAAFvmC,gEAAE,CAC6K,CAAC;IAAE2yC,OAAO,EAAE6mF,SAAS;IAAE5mF,WAAW,EAAE6mF;EAAS,CAAC,CAAC;AAAA,EAAiB;AAC1U;EAAA,QAAAr5H,SAAA,oBAAAA,SAAA,KAF2FJ,+DAAE,CAEFy5H,QAAQ,EAAc,CAAC;IACtGv2J,IAAI,EAAEuyD,oDAAS;IACfxtD,IAAI,EAAE,CAAC;MACCm6B,QAAQ,EAAE,WAAW;MACrB0E,IAAI,EAAE;QACF,OAAO,EAAE,WAAW;QACpB,WAAW,EAAE,IAAI;QACjB,aAAa,EAAE;MACnB,CAAC;MACD+rC,SAAS,EAAE,CAAC;QAAEF,OAAO,EAAE6mF,SAAS;QAAE5mF,WAAW,EAAE6mF;MAAS,CAAC;IAC7D,CAAC;EACT,CAAC,CAAC,EAAkB,YAAY;IAChC,OAAO,CAAC;MAAEv2J,IAAI,EAAE6iC,SAAS;MAAE61B,UAAU,EAAE,CAAC;QACxB14D,IAAI,EAAEgnG,oDAAS;QACfjiG,IAAI,EAAE,CAAC,WAAW;MACtB,CAAC;IAAE,CAAC,EAAE;MAAE/E,IAAI,EAAE88B,qDAAaimC;IAAC,CAAC,CAAC;EAC9C,CAAC,EAAkB;IAAEjqD,EAAE,EAAE,CAAC;MACd9Y,IAAI,EAAEwyD,gDAAKA;IACf,CAAC;EAAE,CAAC;AAAA;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMmkG,sBAAsB,GAAG;EAC3B;EACAC,kBAAkB,EAAE70G,4DAAO,CAAC,oBAAoB,EAAE;EAC9C;EACAt7B,0DAAK,CAAC,OAAO,EAAEoW,0DAAK,CAAC;IAAE0xH,OAAO,EAAE,CAAC;IAAE1qJ,SAAS,EAAE;EAAiB,CAAC,CAAC,CAAC,EAClEgrC,+DAAU,CAAC,eAAe,EAAE,CACxBhS,0DAAK,CAAC;IAAE0xH,OAAO,EAAE,CAAC;IAAE1qJ,SAAS,EAAE;EAAmB,CAAC,CAAC,EACpDshC,4DAAO,CAAC,wCAAwC,CAAC,CACpD,CAAC,CACL;AACL,CAAC;;AAED;AACA,MAAM0xH,mBAAmB,CAAC;AAE1BA,mBAAmB,CAACrxH,IAAI,YAAAsxH,4BAAAvpJ,CAAA;EAAA,YAAAA,CAAA,IAAwFspJ,mBAAmB;AAAA,CAAmD;AACtLA,mBAAmB,CAAC7zF,IAAI,kBAjDmElmC,+DAAE;EAAA98B,IAAA,EAiDO62J;AAAmB,EAAiB;AACxI;EAAA,QAAA35H,SAAA,oBAAAA,SAAA,KAlD2FJ,+DAAE,CAkDF+5H,mBAAmB,EAAc,CAAC;IACjH72J,IAAI,EAAEuyD,oDAASA;EACnB,CAAC,CAAC;AAAA;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASwkG,uCAAuCA,CAAA,EAAG;EAC/C,OAAOp1J,KAAK,CAAC,8DAA8D,CAAC;AAChF;AACA;AACA,SAASq1J,kCAAkCA,CAACC,KAAK,EAAE;EAC/C,OAAOt1J,KAAK,CAAC,2CAA2Cs1J,KAAK,KAAK,CAAC;AACvE;AACA;AACA,SAASC,kCAAkCA,CAAA,EAAG;EAC1C,OAAOv1J,KAAK,CAAC,oDAAoD,CAAC;AACtE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIw1J,cAAc,GAAG,CAAC;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,SAAS,GAAG,IAAI3kG,yDAAc,CAAC,SAAS,CAAC;AAC/C;AACA,MAAM4kG,OAAO,CAAC;EACV1wJ,WAAWA,CAAA,EAAG;IACV;IACA,IAAI,CAACswJ,KAAK,GAAG,OAAO;IACpB;IACA,IAAI,CAACn+I,EAAE,GAAG,YAAYq+I,cAAc,EAAE,EAAE;EAC5C;AACJ;AACAE,OAAO,CAAC7xH,IAAI,YAAA8xH,gBAAA/pJ,CAAA;EAAA,YAAAA,CAAA,IAAwF8pJ,OAAO;AAAA,CAAmD;AAC9JA,OAAO,CAACr0F,IAAI,kBArG+ElmC,+DAAE;EAAA98B,IAAA,EAqGLq3J,OAAO;EAAAn0F,SAAA;EAAAq/B,SAAA;EAAApzB,QAAA;EAAAC,YAAA,WAAAmoF,qBAAAjoF,EAAA,EAAAj6B,GAAA;IAAA,IAAAi6B,EAAA;MArGJxyC,yDAAE,OAAAuY,GAAA,CAAAv8B,EAAA;MAAFgkB,yDAAE,4BAAAuY,GAAA,CAAA4hH,KAAA;IAAA;EAAA;EAAA9zF,MAAA;IAAA8zF,KAAA;IAAAn+I,EAAA;EAAA;EAAAuqD,QAAA,GAAFvmC,gEAAE,CAqG8N,CAAC;IAAE2yC,OAAO,EAAE2nF,SAAS;IAAE1nF,WAAW,EAAE2nF;EAAQ,CAAC,CAAC;AAAA,EAAiB;AAC1X;EAAA,QAAAn6H,SAAA,oBAAAA,SAAA,KAtG2FJ,+DAAE,CAsGFu6H,OAAO,EAAc,CAAC;IACrGr3J,IAAI,EAAEuyD,oDAAS;IACfxtD,IAAI,EAAE,CAAC;MACCm6B,QAAQ,EAAE,UAAU;MACpB0E,IAAI,EAAE;QACF,OAAO,EAAE,UAAU;QACnB,iCAAiC,EAAE,iBAAiB;QACpD,WAAW,EAAE,IAAI;QACjB;QACA,cAAc,EAAE;MACpB,CAAC;MACD+rC,SAAS,EAAE,CAAC;QAAEF,OAAO,EAAE2nF,SAAS;QAAE1nF,WAAW,EAAE2nF;MAAQ,CAAC;IAC5D,CAAC;EACT,CAAC,CAAC,QAAkB;IAAEJ,KAAK,EAAE,CAAC;MACtBj3J,IAAI,EAAEwyD,gDAAKA;IACf,CAAC,CAAC;IAAE15C,EAAE,EAAE,CAAC;MACL9Y,IAAI,EAAEwyD,gDAAKA;IACf,CAAC;EAAE,CAAC;AAAA;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMglG,QAAQ,CAAC;AAEfA,QAAQ,CAAChyH,IAAI,YAAAiyH,iBAAAlqJ,CAAA;EAAA,YAAAA,CAAA,IAAwFiqJ,QAAQ;AAAA,CAAmD;AAChKA,QAAQ,CAACx0F,IAAI,kBApI8ElmC,+DAAE;EAAA98B,IAAA,EAoIJw3J,QAAQ;EAAAt0F,SAAA;AAAA,EAAwC;AACzI;EAAA,QAAAhmC,SAAA,oBAAAA,SAAA,KArI2FJ,+DAAE,CAqIF06H,QAAQ,EAAc,CAAC;IACtGx3J,IAAI,EAAEuyD,oDAAS;IACfxtD,IAAI,EAAE,CAAC;MACCm6B,QAAQ,EAAE;IACd,CAAC;EACT,CAAC,CAAC;AAAA;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMw4H,cAAc,CAAC;AAErBA,cAAc,CAAClyH,IAAI,YAAAmyH,uBAAApqJ,CAAA;EAAA,YAAAA,CAAA,IAAwFmqJ,cAAc;AAAA,CAAmD;AAC5KA,cAAc,CAAC10F,IAAI,kBA5JwElmC,+DAAE;EAAA98B,IAAA,EA4JE03J,cAAc;EAAAx0F,SAAA;AAAA,EAA8C;AAC3J;EAAA,QAAAhmC,SAAA,oBAAAA,SAAA,KA7J2FJ,+DAAE,CA6JF46H,cAAc,EAAc,CAAC;IAC5G13J,IAAI,EAAEuyD,oDAAS;IACfxtD,IAAI,EAAE,CAAC;MACCm6B,QAAQ,EAAE;IACd,CAAC;EACT,CAAC,CAAC;AAAA;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM04H,UAAU,GAAG,IAAInlG,yDAAc,CAAC,WAAW,CAAC;AAClD;AACA,MAAMolG,SAAS,CAAC;AAEhBA,SAAS,CAACryH,IAAI,YAAAsyH,kBAAAvqJ,CAAA;EAAA,YAAAA,CAAA,IAAwFsqJ,SAAS;AAAA,CAAmD;AAClKA,SAAS,CAAC70F,IAAI,kBArL6ElmC,+DAAE;EAAA98B,IAAA,EAqLH63J,SAAS;EAAA30F,SAAA;EAAAG,QAAA,GArLRvmC,gEAAE,CAqL4C,CAAC;IAAE2yC,OAAO,EAAEmoF,UAAU;IAAEloF,WAAW,EAAEmoF;EAAU,CAAC,CAAC;AAAA,EAAiB;AAC3M;EAAA,QAAA36H,SAAA,oBAAAA,SAAA,KAtL2FJ,+DAAE,CAsLF+6H,SAAS,EAAc,CAAC;IACvG73J,IAAI,EAAEuyD,oDAAS;IACfxtD,IAAI,EAAE,CAAC;MACCm6B,QAAQ,EAAE,aAAa;MACvBywC,SAAS,EAAE,CAAC;QAAEF,OAAO,EAAEmoF,UAAU;QAAEloF,WAAW,EAAEmoF;MAAU,CAAC;IAC/D,CAAC;EACT,CAAC,CAAC;AAAA;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAME,UAAU,GAAG,IAAItlG,yDAAc,CAAC,WAAW,CAAC;AAClD;AACA,MAAMulG,SAAS,CAAC;AAEhBA,SAAS,CAACxyH,IAAI,YAAAyyH,kBAAA1qJ,CAAA;EAAA,YAAAA,CAAA,IAAwFyqJ,SAAS;AAAA,CAAmD;AAClKA,SAAS,CAACh1F,IAAI,kBA/M6ElmC,+DAAE;EAAA98B,IAAA,EA+MHg4J,SAAS;EAAA90F,SAAA;EAAAG,QAAA,GA/MRvmC,gEAAE,CA+M4C,CAAC;IAAE2yC,OAAO,EAAEsoF,UAAU;IAAEroF,WAAW,EAAEsoF;EAAU,CAAC,CAAC;AAAA,EAAiB;AAC3M;EAAA,QAAA96H,SAAA,oBAAAA,SAAA,KAhN2FJ,+DAAE,CAgNFk7H,SAAS,EAAc,CAAC;IACvGh4J,IAAI,EAAEuyD,oDAAS;IACfxtD,IAAI,EAAE,CAAC;MACCm6B,QAAQ,EAAE,aAAa;MACvBywC,SAAS,EAAE,CAAC;QAAEF,OAAO,EAAEsoF,UAAU;QAAEroF,WAAW,EAAEsoF;MAAU,CAAC;IAC/D,CAAC;EACT,CAAC,CAAC;AAAA;AAEV,IAAIlrE,YAAY,GAAG,CAAC;AACpB,MAAMorE,kBAAkB,GAAG,IAAI;AAC/B,MAAMC,iBAAiB,GAAG,CAAC;AAC3B;AACA;AACA;AACA;AACA,MAAMC,iBAAiB,GAAG1R,kEAAU,CAAC,MAAM;EACvC//I,WAAWA,CAACq7D,WAAW,EAAE;IACrB,IAAI,CAACA,WAAW,GAAGA,WAAW;EAClC;AACJ,CAAC,EAAE,SAAS,CAAC;AACb;AACA;AACA;AACA;AACA,MAAMq2F,8BAA8B,GAAG,IAAI5lG,yDAAc,CAAC,gCAAgC,CAAC;AAC3F;AACA;AACA;AACA;AACA;AACA,MAAM6oF,cAAc,GAAG,IAAI7oF,yDAAc,CAAC,cAAc,CAAC;AACzD;AACA,MAAMmxF,YAAY,SAASwU,iBAAiB,CAAC;EACzCzxJ,WAAWA,CAACwnF,UAAU,EAAE+Q,kBAAkB,EAAEnwB,IAAI,EAAEswE,SAAS,EAAEppF,SAAS,EAAEoJ,OAAO,EAAE2wF,cAAc,EAAE;IAC7F,KAAK,CAAC7hE,UAAU,CAAC;IACjB,IAAI,CAAC+Q,kBAAkB,GAAGA,kBAAkB;IAC5C,IAAI,CAACnwB,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACswE,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACppF,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACoJ,OAAO,GAAGA,OAAO;IACtB;AACR;AACA;AACA;IACQ,IAAI,CAACi5F,uCAAuC,GAAG,KAAK;IACpD;IACA,IAAI,CAACC,oCAAoC,GAAG,KAAK;IACjD,IAAI,CAACloG,UAAU,GAAG,IAAI8C,yCAAO,CAAC,CAAC;IAC/B;IACA,IAAI,CAACqlG,kBAAkB,GAAG,KAAK;IAC/B;IACA,IAAI,CAAC5C,wBAAwB,GAAG,EAAE;IAClC,IAAI,CAAC6C,UAAU,GAAG,EAAE;IACpB;IACA,IAAI,CAAC1C,YAAY,GAAG,YAAYjpE,YAAY,EAAE,EAAE;IAChD;IACA,IAAI,CAACukE,QAAQ,GAAG,wBAAwBvkE,YAAY,EAAE,EAAE;IACxD,IAAI,CAACi1D,UAAU,GAAG,IAAI,CAAC2W,0BAA0B,CAAC,CAAC;IACnD,IAAI,CAACC,kBAAkB,GAAG3I,cAAc,KAAK,gBAAgB;IAC7D;IACA,IAAI,CAACuE,UAAU,GAAGlV,SAAS,IAAIA,SAAS,CAACkV,UAAU,GAAGlV,SAAS,CAACkV,UAAU,GAAG,QAAQ;IACrF,IAAI,CAACqE,mBAAmB,GACpBvZ,SAAS,IAAIA,SAAS,CAACiW,kBAAkB,IAAI,IAAI,GAAGjW,SAAS,CAACiW,kBAAkB,GAAG,KAAK;EAChG;EACA;EACA,IAAIf,UAAUA,CAAA,EAAG;IACb,OAAO,IAAI,CAACsE,WAAW;EAC3B;EACA,IAAItE,UAAUA,CAAClsJ,KAAK,EAAE;IAClB,MAAM6kD,QAAQ,GAAG,IAAI,CAAC2rG,WAAW;IACjC,IAAI,CAACA,WAAW,GAAGxwJ,KAAK,IAAK,IAAI,CAACg3I,SAAS,IAAI,IAAI,CAACA,SAAS,CAACkV,UAAW,IAAI,QAAQ;IACrF,IAAI,IAAI,CAACsE,WAAW,KAAK,SAAS,IAAI3rG,QAAQ,KAAK7kD,KAAK,EAAE;MACtD,IAAI,CAACkwJ,oCAAoC,GAAG,IAAI;IACpD;EACJ;EACA;EACA,IAAIjD,kBAAkBA,CAAA,EAAG;IACrB,OAAO,IAAI,CAACsD,mBAAmB;EACnC;EACA,IAAItD,kBAAkBA,CAACjtJ,KAAK,EAAE;IAC1B,IAAI,CAACuwJ,mBAAmB,GAAG/jG,4EAAqB,CAACxsD,KAAK,CAAC;EAC3D;EACA;EACA+sJ,kBAAkBA,CAAA,EAAG;IACjB,OAAO,IAAI,CAACrT,UAAU,KAAK,QAAQ,IAAI,CAAC,IAAI,CAACyW,kBAAkB;EACnE;EACA;EACAM,cAAcA,CAAA,EAAG;IACb,OAAO,IAAI,CAAC/W,UAAU,KAAK,OAAO;EACtC;EACA;EACA,IAAIiU,SAASA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACyC,UAAU;EAC1B;EACA,IAAIzC,SAASA,CAAC3tJ,KAAK,EAAE;IACjB,IAAI,CAACowJ,UAAU,GAAGpwJ,KAAK;IACvB,IAAI,CAAC0wJ,aAAa,CAAC,CAAC;EACxB;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACI,IAAIhX,UAAUA,CAAA,EAAG;IACb,OAAO,IAAI,CAACwS,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC/T,WAAW,KAAK,OAAO,GAAG,MAAM,GAAG,IAAI,CAACA,WAAW;EACnG;EACA,IAAIuB,UAAUA,CAAC15I,KAAK,EAAE;IAClB,IAAIA,KAAK,KAAK,IAAI,CAACm4I,WAAW,EAAE;MAC5B,IAAI,CAACA,WAAW,GAAGn4I,KAAK,IAAI,IAAI,CAACqwJ,0BAA0B,CAAC,CAAC;MAC7D,IAAI,CAACx5D,kBAAkB,CAACwC,YAAY,CAAC,CAAC;IAC1C;EACJ;EACA,IAAI+uC,QAAQA,CAAA,EAAG;IACX;IACA;IACA,OAAO,IAAI,CAACuoB,yBAAyB,IAAI,IAAI,CAACC,iBAAiB,IAAI,IAAI,CAACC,cAAc;EAC1F;EACA,IAAIzoB,QAAQA,CAACpoI,KAAK,EAAE;IAChB,IAAI,CAAC2wJ,yBAAyB,GAAG3wJ,KAAK;EAC1C;EACA;AACJ;AACA;EACIq6I,UAAUA,CAAA,EAAG;IACT,OAAO,IAAI,CAACyW,iBAAiB,CAAC,CAAC,GAAG,IAAI,CAAC9H,QAAQ,GAAG,IAAI;EAC1D;EACA;AACJ;AACA;AACA;EACIjO,yBAAyBA,CAAA,EAAG;IACxB,OAAO,IAAI,CAACgW,uBAAuB,IAAI,IAAI,CAACp3F,WAAW;EAC3D;EACAO,kBAAkBA,CAAA,EAAG;IACjB,IAAI,CAAC82F,qBAAqB,CAAC,CAAC;IAC5B,MAAM58B,OAAO,GAAG,IAAI,CAACgU,QAAQ;IAC7B,IAAIhU,OAAO,CAAC68B,WAAW,EAAE;MACrB,IAAI,CAACt3F,WAAW,CAACI,aAAa,CAAC1a,SAAS,CAACtY,GAAG,CAAC,uBAAuBqtF,OAAO,CAAC68B,WAAW,EAAE,CAAC;IAC9F;IACA;IACA78B,OAAO,CAAC2qB,YAAY,CAACz/I,IAAI,CAAC2xF,yDAAS,CAAC,IAAI,CAAC,CAAC,CAAC3/B,SAAS,CAAC,MAAM;MACvD,IAAI,CAAC4/F,qBAAqB,CAAC,CAAC;MAC5B,IAAI,CAACC,mBAAmB,CAAC,CAAC;MAC1B,IAAI,CAACt6D,kBAAkB,CAACwC,YAAY,CAAC,CAAC;IAC1C,CAAC,CAAC;IACF;IACA,IAAI+6B,OAAO,CAACorB,SAAS,IAAIprB,OAAO,CAACorB,SAAS,CAAC7nB,YAAY,EAAE;MACrDvD,OAAO,CAACorB,SAAS,CAAC7nB,YAAY,CACzBr4H,IAAI,CAACitD,yDAAS,CAAC,IAAI,CAACvE,UAAU,CAAC,CAAC,CAChCsJ,SAAS,CAAC,MAAM,IAAI,CAACulC,kBAAkB,CAACwC,YAAY,CAAC,CAAC,CAAC;IAChE;IACA;IACA;IACA;IACA,IAAI,CAACriC,OAAO,CAACe,iBAAiB,CAAC,MAAM;MACjC,IAAI,CAACf,OAAO,CAACqC,QAAQ,CAAC/5D,IAAI,CAACitD,yDAAS,CAAC,IAAI,CAACvE,UAAU,CAAC,CAAC,CAACsJ,SAAS,CAAC,MAAM;QACnE,IAAI,IAAI,CAAC4+F,oCAAoC,EAAE;UAC3C,IAAI,CAAClE,gBAAgB,CAAC,CAAC;QAC3B;MACJ,CAAC,CAAC;IACN,CAAC,CAAC;IACF;IACA19E,2CAAK,CAAC,IAAI,CAAC8iF,eAAe,CAAC//F,OAAO,EAAE,IAAI,CAACggG,eAAe,CAAChgG,OAAO,CAAC,CAACC,SAAS,CAAC,MAAM;MAC9E,IAAI,CAAC4+F,oCAAoC,GAAG,IAAI;MAChD,IAAI,CAACr5D,kBAAkB,CAACwC,YAAY,CAAC,CAAC;IAC1C,CAAC,CAAC;IACF;IACA,IAAI,CAACi4D,aAAa,CAACjgG,OAAO,CAAC/xD,IAAI,CAAC2xF,yDAAS,CAAC,IAAI,CAAC,CAAC,CAAC3/B,SAAS,CAAC,MAAM;MAC7D,IAAI,CAACo/F,aAAa,CAAC,CAAC;MACpB,IAAI,CAAC75D,kBAAkB,CAACwC,YAAY,CAAC,CAAC;IAC1C,CAAC,CAAC;IACF;IACA,IAAI,CAACk4D,cAAc,CAAClgG,OAAO,CAAC/xD,IAAI,CAAC2xF,yDAAS,CAAC,IAAI,CAAC,CAAC,CAAC3/B,SAAS,CAAC,MAAM;MAC9D,IAAI,CAAC6/F,mBAAmB,CAAC,CAAC;MAC1B,IAAI,CAACt6D,kBAAkB,CAACwC,YAAY,CAAC,CAAC;IAC1C,CAAC,CAAC;IACF,IAAI,IAAI,CAAC3yB,IAAI,EAAE;MACX,IAAI,CAACA,IAAI,CAACtV,MAAM,CAAC9xD,IAAI,CAACitD,yDAAS,CAAC,IAAI,CAACvE,UAAU,CAAC,CAAC,CAACsJ,SAAS,CAAC,MAAM;QAC9D,IAAI,OAAOimB,qBAAqB,KAAK,UAAU,EAAE;UAC7C,IAAI,CAACvgB,OAAO,CAACe,iBAAiB,CAAC,MAAM;YACjCwf,qBAAqB,CAAC,MAAM,IAAI,CAACy0E,gBAAgB,CAAC,CAAC,CAAC;UACxD,CAAC,CAAC;QACN,CAAC,MACI;UACD,IAAI,CAACA,gBAAgB,CAAC,CAAC;QAC3B;MACJ,CAAC,CAAC;IACN;EACJ;EACAwF,qBAAqBA,CAAA,EAAG;IACpB,IAAI,CAACR,qBAAqB,CAAC,CAAC;IAC5B,IAAI,IAAI,CAACf,uCAAuC,EAAE;MAC9C,IAAI,CAACjE,gBAAgB,CAAC,CAAC;IAC3B;EACJ;EACAjoF,eAAeA,CAAA,EAAG;IACd;IACA,IAAI,CAACwpF,wBAAwB,GAAG,OAAO;IACvC,IAAI,CAAC12D,kBAAkB,CAAChI,aAAa,CAAC,CAAC;EAC3C;EACA7/B,WAAWA,CAAA,EAAG;IACV,IAAI,CAAChH,UAAU,CAACzoD,IAAI,CAAC,CAAC;IACtB,IAAI,CAACyoD,UAAU,CAACuW,QAAQ,CAAC,CAAC;EAC9B;EACA;EACAkzF,cAAcA,CAACx7H,IAAI,EAAE;IACjB,MAAMupH,SAAS,GAAG,IAAI,CAACpX,QAAQ,GAAG,IAAI,CAACA,QAAQ,CAACoX,SAAS,GAAG,IAAI;IAChE,OAAOA,SAAS,IAAIA,SAAS,CAACvpH,IAAI,CAAC;EACvC;EACAy7H,eAAeA,CAAA,EAAG;IACd,OAAO,CAAC,EAAG,IAAI,CAACtpB,QAAQ,IAAI,IAAI,CAACA,QAAQ,CAACkkB,WAAW,IAAK,IAAI,CAACqF,iBAAiB,CAAC;EACrF;EACA3E,SAASA,CAAA,EAAG;IACR,OAAO,CAAC,EAAE,IAAI,CAAC4E,oBAAoB,IAAI,IAAI,CAACC,iBAAiB,CAAC;EAClE;EACAC,iBAAiBA,CAAA,EAAG;IAChB,OAAQ,IAAI,CAACrB,cAAc,CAAC,CAAC,KACvB,IAAI,CAACroB,QAAQ,IAAI,IAAI,CAACA,QAAQ,CAAC2pB,gBAAgB,IAAK,IAAI,CAAChF,kBAAkB,CAAC,CAAC,CAAC;EACxF;EACAiF,uBAAuBA,CAAA,EAAG;IACtB;IACA,OAAS,IAAI,CAAC9F,UAAU,KAAK,QAAQ,IAAI,CAAC,IAAI,CAACc,SAAS,CAAC,CAAC,IACrD,IAAI,CAACA,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC8E,iBAAiB,CAAC,CAAE;EACvD;EACAhB,iBAAiBA,CAAA,EAAG;IAChB;IACA,OAAO,IAAI,CAAC9D,SAAS,CAAC,CAAC,IAAK,IAAI,CAACd,UAAU,KAAK,QAAQ,IAAI,IAAI,CAACwF,eAAe,CAAC,CAAE;EACvF;EACA;EACAO,qBAAqBA,CAAA,EAAG;IACpB,OAAO,IAAI,CAACV,cAAc,IAAI,IAAI,CAACA,cAAc,CAAC54J,MAAM,GAAG,CAAC,IAAI,IAAI,CAACyvI,QAAQ,CAAC4W,UAAU,GAClF,OAAO,GACP,MAAM;EAChB;EACA;EACArF,oBAAoBA,CAAA,EAAG;IACnB,IAAI,IAAI,CAACmX,iBAAiB,CAAC,CAAC,IAAI,IAAI,CAACL,cAAc,CAAC,CAAC,EAAE;MACnD;MACA;MACA,IAAI,IAAI,CAACH,kBAAkB,IAAI,IAAI,CAAC4B,MAAM,EAAE;QACxC,IAAI,CAAC/B,kBAAkB,GAAG,IAAI;QAC9Bt/D,+CAAS,CAAC,IAAI,CAACqhE,MAAM,CAACn4F,aAAa,EAAE,eAAe,CAAC,CAChDz6D,IAAI,CAAC+sD,oDAAI,CAAC,CAAC,CAAC,CAAC,CACbiF,SAAS,CAAC,MAAM;UACjB,IAAI,CAAC6+F,kBAAkB,GAAG,KAAK;QACnC,CAAC,CAAC;MACN;MACA,IAAI,CAACzW,UAAU,GAAG,QAAQ;MAC1B,IAAI,CAAC7iD,kBAAkB,CAACwC,YAAY,CAAC,CAAC;IAC1C;EACJ;EACA;AACJ;AACA;AACA;EACI63D,qBAAqBA,CAAA,EAAG;IACpB,IAAI,IAAI,CAAC9oB,QAAQ,CAACkkB,WAAW,IACzB,IAAI,CAACqF,iBAAiB,KACrB,OAAO98H,SAAS,KAAK,WAAW,IAAIA,SAAS,CAAC,EAAE;MACjD,MAAM65H,uCAAuC,CAAC,CAAC;IACnD;EACJ;EACA;EACAgC,aAAaA,CAAA,EAAG;IACZ,IAAI,CAACyB,cAAc,CAAC,CAAC;IACrB,IAAI,CAAChB,mBAAmB,CAAC,CAAC;EAC9B;EACA;AACJ;AACA;AACA;EACIgB,cAAcA,CAAA,EAAG;IACb,IAAI,IAAI,CAACb,aAAa,KAAK,OAAOz8H,SAAS,KAAK,WAAW,IAAIA,SAAS,CAAC,EAAE;MACvE,IAAIu9H,SAAS;MACb,IAAIC,OAAO;MACX,IAAI,CAACf,aAAa,CAAC1kJ,OAAO,CAAE0lJ,IAAI,IAAK;QACjC,IAAIA,IAAI,CAAC1D,KAAK,KAAK,OAAO,EAAE;UACxB,IAAIwD,SAAS,IAAI,IAAI,CAACzE,SAAS,EAAE;YAC7B,MAAMgB,kCAAkC,CAAC,OAAO,CAAC;UACrD;UACAyD,SAAS,GAAGE,IAAI;QACpB,CAAC,MACI,IAAIA,IAAI,CAAC1D,KAAK,KAAK,KAAK,EAAE;UAC3B,IAAIyD,OAAO,EAAE;YACT,MAAM1D,kCAAkC,CAAC,KAAK,CAAC;UACnD;UACA0D,OAAO,GAAGC,IAAI;QAClB;MACJ,CAAC,CAAC;IACN;EACJ;EACA;EACAjC,0BAA0BA,CAAA,EAAG;IACzB,OAAQ,IAAI,CAACrZ,SAAS,IAAI,IAAI,CAACA,SAAS,CAAC0C,UAAU,IAAK,MAAM;EAClE;EACA;AACJ;AACA;AACA;EACIyX,mBAAmBA,CAAA,EAAG;IAClB,IAAI,IAAI,CAAC/oB,QAAQ,EAAE;MACf,IAAIr7E,GAAG,GAAG,EAAE;MACZ;MACA,IAAI,IAAI,CAACq7E,QAAQ,CAACmqB,mBAAmB,IACjC,OAAO,IAAI,CAACnqB,QAAQ,CAACmqB,mBAAmB,KAAK,QAAQ,EAAE;QACvDxlG,GAAG,CAACh0D,IAAI,CAAC,GAAG,IAAI,CAACqvI,QAAQ,CAACmqB,mBAAmB,CAACvnI,KAAK,CAAC,GAAG,CAAC,CAAC;MAC7D;MACA,IAAI,IAAI,CAACinI,qBAAqB,CAAC,CAAC,KAAK,MAAM,EAAE;QACzC,MAAMG,SAAS,GAAG,IAAI,CAACd,aAAa,GAC9B,IAAI,CAACA,aAAa,CAACznH,IAAI,CAACyoH,IAAI,IAAIA,IAAI,CAAC1D,KAAK,KAAK,OAAO,CAAC,GACvD,IAAI;QACV,MAAMyD,OAAO,GAAG,IAAI,CAACf,aAAa,GAC5B,IAAI,CAACA,aAAa,CAACznH,IAAI,CAACyoH,IAAI,IAAIA,IAAI,CAAC1D,KAAK,KAAK,KAAK,CAAC,GACrD,IAAI;QACV,IAAIwD,SAAS,EAAE;UACXrlG,GAAG,CAACh0D,IAAI,CAACq5J,SAAS,CAAC3hJ,EAAE,CAAC;QAC1B,CAAC,MACI,IAAI,IAAI,CAAC2/I,UAAU,EAAE;UACtBrjG,GAAG,CAACh0D,IAAI,CAAC,IAAI,CAAC20J,YAAY,CAAC;QAC/B;QACA,IAAI2E,OAAO,EAAE;UACTtlG,GAAG,CAACh0D,IAAI,CAACs5J,OAAO,CAAC5hJ,EAAE,CAAC;QACxB;MACJ,CAAC,MACI,IAAI,IAAI,CAAC8gJ,cAAc,EAAE;QAC1BxkG,GAAG,CAACh0D,IAAI,CAAC,GAAG,IAAI,CAACw4J,cAAc,CAACn6H,GAAG,CAACl5B,KAAK,IAAIA,KAAK,CAACuS,EAAE,CAAC,CAAC;MAC3D;MACA,IAAI,CAAC23H,QAAQ,CAACoqB,iBAAiB,CAACzlG,GAAG,CAAC;IACxC;EACJ;EACA;EACAikG,qBAAqBA,CAAA,EAAG;IACpB,IAAI,CAAC,IAAI,CAAC5oB,QAAQ,KAAK,OAAOvzG,SAAS,KAAK,WAAW,IAAIA,SAAS,CAAC,EAAE;MACnE,MAAMg6H,kCAAkC,CAAC,CAAC;IAC9C;EACJ;EACA;AACJ;AACA;AACA;EACI7C,gBAAgBA,CAAA,EAAG;IACf,MAAMyG,OAAO,GAAG,IAAI,CAACP,MAAM,GAAG,IAAI,CAACA,MAAM,CAACn4F,aAAa,GAAG,IAAI;IAC9D,MAAMoe,SAAS,GAAG,IAAI,CAAC44E,uBAAuB,CAACh3F,aAAa;IAC5D,MAAM24F,oBAAoB,GAAG,+BAA+B;IAC5D,MAAMC,kBAAkB,GAAG,6BAA6B;IACxD;IACA,IAAI,IAAI,CAACzG,UAAU,KAAK,SAAS,IAAI,CAAC,IAAI,CAACt+F,SAAS,CAACv1B,SAAS,EAAE;MAC5D;IACJ;IACA;IACA,IAAI,CAACo6H,OAAO,IAAI,CAACA,OAAO,CAAC15F,QAAQ,CAACpgE,MAAM,IAAI,CAAC85J,OAAO,CAACrjG,WAAW,CAACrc,IAAI,CAAC,CAAC,EAAE;MACrE,MAAM6/G,WAAW,GAAGz6E,SAAS,CAACx8C,gBAAgB,CAAC,GAAG+2H,oBAAoB,KAAKC,kBAAkB,EAAE,CAAC;MAChG,KAAK,IAAIl6J,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGm6J,WAAW,CAACj6J,MAAM,EAAEF,CAAC,EAAE,EAAE;QACzCm6J,WAAW,CAACn6J,CAAC,CAAC,CAAC+7B,KAAK,CAAC/O,KAAK,GAAG,GAAG;MACpC;MACA;IACJ;IACA;IACA;IACA,IAAI,CAAC,IAAI,CAACotI,gBAAgB,CAAC,CAAC,EAAE;MAC1B,IAAI,CAAC5C,uCAAuC,GAAG,IAAI;MACnD;IACJ;IACA,IAAI6C,UAAU,GAAG,CAAC;IAClB,IAAIC,QAAQ,GAAG,CAAC;IAChB,MAAMC,QAAQ,GAAG76E,SAAS,CAACx8C,gBAAgB,CAAC+2H,oBAAoB,CAAC;IACjE,MAAMO,MAAM,GAAG96E,SAAS,CAACx8C,gBAAgB,CAACg3H,kBAAkB,CAAC;IAC7D,IAAI,IAAI,CAACT,MAAM,IAAI,IAAI,CAACA,MAAM,CAACn4F,aAAa,CAAChB,QAAQ,CAACpgE,MAAM,EAAE;MAC1D,MAAMiiF,aAAa,GAAGzC,SAAS,CAACjG,qBAAqB,CAAC,CAAC;MACvD;MACA;MACA;MACA;MACA;MACA;MACA,IAAI0I,aAAa,CAACn1D,KAAK,KAAK,CAAC,IAAIm1D,aAAa,CAAC70D,MAAM,KAAK,CAAC,EAAE;QACzD,IAAI,CAACmqI,oCAAoC,GAAG,IAAI;QAChD,IAAI,CAACD,uCAAuC,GAAG,KAAK;QACpD;MACJ;MACA,MAAMiD,cAAc,GAAG,IAAI,CAACC,YAAY,CAACv4E,aAAa,CAAC;MACvD,MAAMw4E,aAAa,GAAGX,OAAO,CAAC15F,QAAQ;MACtC,MAAMs6F,UAAU,GAAG,IAAI,CAACF,YAAY,CAACC,aAAa,CAAC,CAAC,CAAC,CAAClhF,qBAAqB,CAAC,CAAC,CAAC;MAC9E,IAAIohF,UAAU,GAAG,CAAC;MAClB,KAAK,IAAI76J,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG26J,aAAa,CAACz6J,MAAM,EAAEF,CAAC,EAAE,EAAE;QAC3C66J,UAAU,IAAIF,aAAa,CAAC36J,CAAC,CAAC,CAACy9D,WAAW;MAC9C;MACA48F,UAAU,GAAGp4J,IAAI,CAAC6Y,GAAG,CAAC8/I,UAAU,GAAGH,cAAc,CAAC,GAAGpD,iBAAiB;MACtEiD,QAAQ,GAAGO,UAAU,GAAG,CAAC,GAAGA,UAAU,GAAGzD,kBAAkB,GAAGC,iBAAiB,GAAG,CAAC,GAAG,CAAC;IAC3F;IACA,KAAK,IAAIr3J,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGu6J,QAAQ,CAACr6J,MAAM,EAAEF,CAAC,EAAE,EAAE;MACtCu6J,QAAQ,CAACv6J,CAAC,CAAC,CAAC+7B,KAAK,CAAC/O,KAAK,GAAG,GAAGqtI,UAAU,IAAI;IAC/C;IACA,KAAK,IAAIr6J,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGw6J,MAAM,CAACt6J,MAAM,EAAEF,CAAC,EAAE,EAAE;MACpCw6J,MAAM,CAACx6J,CAAC,CAAC,CAAC+7B,KAAK,CAAC/O,KAAK,GAAG,GAAGstI,QAAQ,IAAI;IAC3C;IACA,IAAI,CAAC7C,oCAAoC,GAAG,IAAI,CAACD,uCAAuC,GACpF,KAAK;EACb;EACA;EACAkD,YAAYA,CAAC53D,IAAI,EAAE;IACf,OAAO,IAAI,CAAC70B,IAAI,IAAI,IAAI,CAACA,IAAI,CAAC1mE,KAAK,KAAK,KAAK,GAAGu7F,IAAI,CAACnqB,KAAK,GAAGmqB,IAAI,CAACr1E,IAAI;EAC1E;EACA;EACA2sI,gBAAgBA,CAAA,EAAG;IACf,MAAM/lI,OAAO,GAAG,IAAI,CAAC6sC,WAAW,CAACI,aAAa;IAC9C,IAAIjtC,OAAO,CAAC6+D,WAAW,EAAE;MACrB,MAAMhqB,QAAQ,GAAG70C,OAAO,CAAC6+D,WAAW,CAAC,CAAC;MACtC;MACA;MACA,OAAOhqB,QAAQ,IAAIA,QAAQ,KAAK70C,OAAO;IAC3C;IACA;IACA;IACA,OAAOnH,QAAQ,CAACC,eAAe,CAAC8V,QAAQ,CAAC5O,OAAO,CAAC;EACrD;AACJ;AACAyuH,YAAY,CAACp+G,IAAI,YAAAo2H,qBAAAruJ,CAAA;EAAA,YAAAA,CAAA,IAAwFq2I,YAAY,EApnB1B9mH,+DAAE,CAonB0CA,qDAAa,GApnBzDA,+DAAE,CAonBoEA,4DAAoB,GApnB1FA,+DAAE,CAonBqGg2B,8DAAiB,MApnBxHh2B,+DAAE,CAonBmJu7H,8BAA8B,MApnBnLv7H,+DAAE,CAonB8M48D,4DAAW,GApnB3N58D,+DAAE,CAonBsOA,iDAAS,GApnBjPA,+DAAE,CAonB4P+nH,wFAAqB;AAAA,CAA4D;AAC1ajB,YAAY,CAAC9hD,IAAI,kBArnB0EhlE,+DAAE;EAAA98B,IAAA,EAqnBA4jJ,YAAY;EAAA1gF,SAAA;EAAAi7E,cAAA,WAAA0d,4BAAAvsF,EAAA,EAAAj6B,GAAA,EAAAgpG,QAAA;IAAA,IAAA/uE,EAAA;MArnBdxyC,4DAAE,CAAAuhH,QAAA,EAqnB0/CwY,mBAAmB;MArnB/gD/5H,4DAAE,CAAAuhH,QAAA,EAqnB8lDwY,mBAAmB;MArnBnnD/5H,4DAAE,CAAAuhH,QAAA,EAqnBstDmZ,QAAQ;MArnBhuD16H,4DAAE,CAAAuhH,QAAA,EAqnBkzDmZ,QAAQ;MArnB5zD16H,4DAAE,CAAAuhH,QAAA,EAqnB45DqZ,cAAc;MArnB56D56H,4DAAE,CAAAuhH,QAAA,EAqnB8+DiY,SAAS;MArnBz/Dx5H,4DAAE,CAAAuhH,QAAA,EAqnB0jE+Y,SAAS;MArnBrkEt6H,4DAAE,CAAAuhH,QAAA,EAqnBwoEuZ,UAAU;MArnBppE96H,4DAAE,CAAAuhH,QAAA,EAqnButE0Z,UAAU;IAAA;IAAA,IAAAzoF,EAAA;MAAA,IAAA6yB,EAAA;MArnBnuErlE,4DAAE,CAAAqlE,EAAA,GAAFrlE,yDAAE,QAAAuY,GAAA,CAAA4jH,iBAAA,GAAA92D,EAAA,CAAAG,KAAA;MAAFxlE,4DAAE,CAAAqlE,EAAA,GAAFrlE,yDAAE,QAAAuY,GAAA,CAAA6jH,cAAA,GAAA/2D,EAAA,CAAAG,KAAA;MAAFxlE,4DAAE,CAAAqlE,EAAA,GAAFrlE,yDAAE,QAAAuY,GAAA,CAAA4kH,oBAAA,GAAA93D,EAAA,CAAAG,KAAA;MAAFxlE,4DAAE,CAAAqlE,EAAA,GAAFrlE,yDAAE,QAAAuY,GAAA,CAAA6kH,iBAAA,GAAA/3D,EAAA,CAAAG,KAAA;MAAFxlE,4DAAE,CAAAqlE,EAAA,GAAFrlE,yDAAE,QAAAuY,GAAA,CAAA2kH,iBAAA,GAAA73D,EAAA,CAAAG,KAAA;MAAFxlE,4DAAE,CAAAqlE,EAAA,GAAFrlE,yDAAE,QAAAuY,GAAA,CAAAukH,cAAA,GAAAz3D,EAAA;MAAFrlE,4DAAE,CAAAqlE,EAAA,GAAFrlE,yDAAE,QAAAuY,GAAA,CAAAskH,aAAA,GAAAx3D,EAAA;MAAFrlE,4DAAE,CAAAqlE,EAAA,GAAFrlE,yDAAE,QAAAuY,GAAA,CAAAokH,eAAA,GAAAt3D,EAAA;MAAFrlE,4DAAE,CAAAqlE,EAAA,GAAFrlE,yDAAE,QAAAuY,GAAA,CAAAqkH,eAAA,GAAAv3D,EAAA;IAAA;EAAA;EAAAH,SAAA,WAAA85D,mBAAAxsF,EAAA,EAAAj6B,GAAA;IAAA,IAAAi6B,EAAA;MAAFxyC,yDAAE,CAAA88D,GAAA;MAAF98D,yDAAE,CAAA+8D,GAAA;MAAF/8D,yDAAE,CAAAsoH,GAAA;IAAA;IAAA,IAAA91E,EAAA;MAAA,IAAA6yB,EAAA;MAAFrlE,4DAAE,CAAAqlE,EAAA,GAAFrlE,yDAAE,QAAAuY,GAAA,CAAA+jH,uBAAA,GAAAj3D,EAAA,CAAAG,KAAA;MAAFxlE,4DAAE,CAAAqlE,EAAA,GAAFrlE,yDAAE,QAAAuY,GAAA,CAAA0mH,kBAAA,GAAA55D,EAAA,CAAAG,KAAA;MAAFxlE,4DAAE,CAAAqlE,EAAA,GAAFrlE,yDAAE,QAAAuY,GAAA,CAAAklH,MAAA,GAAAp4D,EAAA,CAAAG,KAAA;IAAA;EAAA;EAAAC,SAAA;EAAApzB,QAAA;EAAAC,YAAA,WAAA4sF,0BAAA1sF,EAAA,EAAAj6B,GAAA;IAAA,IAAAi6B,EAAA;MAAFxyC,yDAAE,uCAAAuY,GAAA,CAAAk/G,UAAA,kDAAAl/G,GAAA,CAAAk/G,UAAA,iDAAAl/G,GAAA,CAAAk/G,UAAA,mDAAAl/G,GAAA,CAAAk/G,UAAA,wCAAAl/G,GAAA,CAAAo7F,QAAA,CAAA4W,UAAA,8BAAAhyG,GAAA,CAAAyjH,cAAA,mCAAAzjH,GAAA,CAAA8kH,iBAAA,gCAAA9kH,GAAA,CAAA8jH,iBAAA,uCAAA9jH,GAAA,CAAAglH,uBAAA,+BAAAhlH,GAAA,CAAAo7F,QAAA,CAAAjuG,QAAA,+BAAA6S,GAAA,CAAAo7F,QAAA,CAAAwrB,UAAA,iBAAA5mH,GAAA,CAAAo7F,QAAA,CAAAyrB,OAAA,kBAAA7mH,GAAA,CAAAykH,cAAA,6BAAAzkH,GAAA,CAAAykH,cAAA,4BAAAzkH,GAAA,CAAAykH,cAAA,0BAAAzkH,GAAA,CAAAykH,cAAA,uBAAAzkH,GAAA,CAAAykH,cAAA,yBAAAzkH,GAAA,CAAAykH,cAAA,2BAAAzkH,GAAA,CAAAykH,cAAA,yCAAAzkH,GAAA,CAAAsjH,kBAAA;IAAA;EAAA;EAAAx1F,MAAA;IAAAyjF,KAAA;IAAA2N,UAAA;IAAAe,kBAAA;IAAAU,SAAA;IAAAjU,UAAA;EAAA;EAAA3+E,QAAA;EAAAC,QAAA,GAAFvmC,gEAAE,CAqnBy3C,CAAC;IAAE2yC,OAAO,EAAE6rE,cAAc;IAAE5rE,WAAW,EAAEk0E;EAAa,CAAC,CAAC,GArnBn7C9mH,wEAAE;EAAA4lE,kBAAA,EAAA0zD,GAAA;EAAAzzD,KAAA;EAAAC,IAAA;EAAAC,MAAA;EAAAvN,QAAA,WAAA6mE,sBAAA7sF,EAAA,EAAAj6B,GAAA;IAAA,IAAAi6B,EAAA;MAAFxyC,6DAAE,CAAAq5H,GAAA;MAAFr5H,4DAAE,YAqnBirF,CAAC,eAAD,CAAC;MArnBprFA,wDAAE,mBAAAs/H,2CAAAxhC,MAAA;QAAA,OAAAvlF,GAAA,CAAAo7F,QAAA,CAAA4rB,gBAAA,IAqnB6xFhnH,GAAA,CAAAo7F,QAAA,CAAA4rB,gBAAA,CAAAzhC,MAAgC,CAAC;MAAA,CAAC,CAAC;MArnBl0F99F,wDAAE,IAAA82H,oCAAA,yBAqnBq7G,CAAC;MArnBx7G92H,wDAAE,IAAAi3H,2BAAA,gBAqnBssH,CAAC;MArnBzsHj3H,4DAAE,eAqnBkwH,CAAC;MArnBrwHA,0DAAE,EAqnBmyH,CAAC;MArnBtyHA,4DAAE,aAqnB01H,CAAC;MArnB71HA,wDAAE,IAAAg4H,6BAAA,mBAqnB43K,CAAC;MArnB/3Kh4H,0DAAE,CAqnB24K,CAAC,CAAD,CAAC;MArnB94KA,wDAAE,KAAAy4H,4BAAA,gBAqnByiL,CAAC;MArnB5iLz4H,0DAAE,CAqnBmjL,CAAC;MArnBtjLA,wDAAE,KAAA04H,4BAAA,iBAqnBk3L,CAAC;MArnBr3L14H,4DAAE,cAqnBu9L,CAAC;MArnB19LA,wDAAE,KAAA44H,4BAAA,iBAqnBinM,CAAC;MArnBpnM54H,wDAAE,KAAAm5H,4BAAA,iBAqnBooN,CAAC;MArnBvoNn5H,0DAAE,CAqnB8oN,CAAC,CAAD,CAAC;IAAA;IAAA,IAAAwyC,EAAA;MArnBjpNxyC,uDAAE,EAqnBw6F,CAAC;MArnB36FA,wDAAE,SAAAuY,GAAA,CAAAk/G,UAAA,aAqnBw6F,CAAC;MArnB36Fz3H,uDAAE,EAqnB8gH,CAAC;MArnBjhHA,wDAAE,SAAAuY,GAAA,CAAAokH,eAAA,CAAAz4J,MAqnB8gH,CAAC;MArnBjhH87B,uDAAE,EAqnBqoJ,CAAC;MArnBxoJA,wDAAE,SAAAuY,GAAA,CAAA8jH,iBAAA,EAqnBqoJ,CAAC;MArnBxoJr8H,uDAAE,EAqnBk+K,CAAC;MArnBr+KA,wDAAE,SAAAuY,GAAA,CAAAqkH,eAAA,CAAA14J,MAqnBk+K,CAAC;MArnBr+K87B,uDAAE,EAqnB8sL,CAAC;MArnBjtLA,wDAAE,SAAAuY,GAAA,CAAAk/G,UAAA,aAqnB8sL,CAAC;MArnBjtLz3H,uDAAE,EAqnBs9L,CAAC;MArnBz9LA,wDAAE,aAAAuY,GAAA,CAAAilH,qBAAA,EAqnBs9L,CAAC;MArnBz9Lx9H,uDAAE,EAqnBy/L,CAAC;MArnB5/LA,wDAAE,wBAqnBy/L,CAAC;MArnB5/LA,uDAAE,EAqnB0rM,CAAC;MArnB7rMA,wDAAE,uBAqnB0rM,CAAC;IAAA;EAAA;EAAAipG,UAAA,GAAyieoV,kDAAO,EAA0EE,sEAAoB,EAAiKF,sDAAW,EAA0DA,0DAAe;EAAAvzG,MAAA;EAAA07D,aAAA;EAAAv9F,IAAA;IAAAwpC,SAAA,EAAuE,CAAConH,sBAAsB,CAACC,kBAAkB;EAAC;EAAArzD,eAAA;AAAA,EAAiG;AAC92rB;EAAA,QAAArmE,SAAA,oBAAAA,SAAA,KAtnB2FJ,+DAAE,CAsnBF8mH,YAAY,EAAc,CAAC;IAC1G5jJ,IAAI,EAAE64F,oDAAS;IACf9zF,IAAI,EAAE,CAAC;MAAEm6B,QAAQ,EAAE,gBAAgB;MAAEkkC,QAAQ,EAAE,cAAc;MAAEk5F,UAAU,EAAE,CAAC3F,sBAAsB,CAACC,kBAAkB,CAAC;MAAEhzH,IAAI,EAAE;QAClH,OAAO,EAAE,gBAAgB;QACzB,4CAA4C,EAAE,0BAA0B;QACxE,wCAAwC,EAAE,sBAAsB;QAChE,2CAA2C,EAAE,yBAAyB;QACtE,0CAA0C,EAAE,wBAAwB;QACpE,gCAAgC,EAAE,qBAAqB;QACvD,kCAAkC,EAAE,kBAAkB;QACtD,qCAAqC,EAAE,qBAAqB;QAC5D,kCAAkC,EAAE,qBAAqB;QACzD,yCAAyC,EAAE,2BAA2B;QACtE,iCAAiC,EAAE,mBAAmB;QACtD,mCAAmC,EAAE,qBAAqB;QAC1D,qBAAqB,EAAE,kBAAkB;QACzC,sBAAsB,EAAE,6BAA6B;QACrD,oBAAoB,EAAE,2BAA2B;QACjD,qBAAqB,EAAE,4BAA4B;QACnD,kBAAkB,EAAE,yBAAyB;QAC7C,kBAAkB,EAAE,yBAAyB;QAC7C,oBAAoB,EAAE,2BAA2B;QACjD,oBAAoB,EAAE,2BAA2B;QACjD,iCAAiC,EAAE;MACvC,CAAC;MAAEu/B,MAAM,EAAE,CAAC,OAAO,CAAC;MAAEmgC,aAAa,EAAExK,iEAAsB;MAAEyK,eAAe,EAAExK,yEAA8B;MAAEppB,SAAS,EAAE,CAAC;QAAEF,OAAO,EAAE6rE,cAAc;QAAE5rE,WAAW,EAAEk0E;MAAa,CAAC,CAAC;MAAEtuD,QAAQ,EAAE,+gIAA+gI;MAAE1tD,MAAM,EAAE,CAAC,gvGAAgvG,EAAE,8sCAA8sC,EAAE,mwIAAmwI,EAAE,24CAA24C,EAAE,o0GAAo0G,EAAE,6oCAA6oC;IAAE,CAAC;EAC7wlB,CAAC,CAAC,EAAkB,YAAY;IAChC,OAAO,CAAC;MAAE5nC,IAAI,EAAE88B,qDAAaimC;IAAC,CAAC,EAAE;MAAE/iE,IAAI,EAAE88B,4DAAoB+kE;IAAC,CAAC,EAAE;MAAE7hG,IAAI,EAAE8yD,8DAAiB;MAAE4F,UAAU,EAAE,CAAC;QACzF14D,IAAI,EAAE0yD,mDAAQA;MAClB,CAAC;IAAE,CAAC,EAAE;MAAE1yD,IAAI,EAAE6iC,SAAS;MAAE61B,UAAU,EAAE,CAAC;QAClC14D,IAAI,EAAE0yD,mDAAQA;MAClB,CAAC,EAAE;QACC1yD,IAAI,EAAEqyD,iDAAM;QACZttD,IAAI,EAAE,CAACszJ,8BAA8B;MACzC,CAAC;IAAE,CAAC,EAAE;MAAEr4J,IAAI,EAAE05F,4DAAWlhC;IAAC,CAAC,EAAE;MAAEx4D,IAAI,EAAE88B,iDAASglC;IAAC,CAAC,EAAE;MAAE9hE,IAAI,EAAE6iC,SAAS;MAAE61B,UAAU,EAAE,CAAC;QAC9E14D,IAAI,EAAE0yD,mDAAQA;MAClB,CAAC,EAAE;QACC1yD,IAAI,EAAEqyD,iDAAM;QACZttD,IAAI,EAAE,CAAC8/I,wFAAqB;MAChC,CAAC;IAAE,CAAC,CAAC;EACrB,CAAC,EAAkB;IAAE0P,UAAU,EAAE,CAAC;MACtBv0J,IAAI,EAAEwyD,gDAAKA;IACf,CAAC,CAAC;IAAE8iG,kBAAkB,EAAE,CAAC;MACrBt1J,IAAI,EAAEwyD,gDAAKA;IACf,CAAC,CAAC;IAAEwjG,SAAS,EAAE,CAAC;MACZh2J,IAAI,EAAEwyD,gDAAKA;IACf,CAAC,CAAC;IAAEuvF,UAAU,EAAE,CAAC;MACb/hJ,IAAI,EAAEwyD,gDAAKA;IACf,CAAC,CAAC;IAAE4mG,uBAAuB,EAAE,CAAC;MAC1Bp5J,IAAI,EAAEg5F,oDAAS;MACfj0F,IAAI,EAAE,CAAC,qBAAqB,EAAE;QAAE2+F,MAAM,EAAE;MAAK,CAAC;IAClD,CAAC,CAAC;IAAEq4D,kBAAkB,EAAE,CAAC;MACrB/7J,IAAI,EAAEg5F,oDAAS;MACfj0F,IAAI,EAAE,CAAC,gBAAgB;IAC3B,CAAC,CAAC;IAAEw1J,MAAM,EAAE,CAAC;MACTv6J,IAAI,EAAEg5F,oDAAS;MACfj0F,IAAI,EAAE,CAAC,OAAO;IAClB,CAAC,CAAC;IAAEk0J,iBAAiB,EAAE,CAAC;MACpBj5J,IAAI,EAAE2zJ,uDAAY;MAClB5uJ,IAAI,EAAE,CAAC8xJ,mBAAmB;IAC9B,CAAC,CAAC;IAAEqC,cAAc,EAAE,CAAC;MACjBl5J,IAAI,EAAE2zJ,uDAAY;MAClB5uJ,IAAI,EAAE,CAAC8xJ,mBAAmB,EAAE;QAAEnzD,MAAM,EAAE;MAAK,CAAC;IAChD,CAAC,CAAC;IAAEu2D,oBAAoB,EAAE,CAAC;MACvBj6J,IAAI,EAAE2zJ,uDAAY;MAClB5uJ,IAAI,EAAE,CAACyyJ,QAAQ;IACnB,CAAC,CAAC;IAAE0C,iBAAiB,EAAE,CAAC;MACpBl6J,IAAI,EAAE2zJ,uDAAY;MAClB5uJ,IAAI,EAAE,CAACyyJ,QAAQ,EAAE;QAAE9zD,MAAM,EAAE;MAAK,CAAC;IACrC,CAAC,CAAC;IAAEs2D,iBAAiB,EAAE,CAAC;MACpBh6J,IAAI,EAAE2zJ,uDAAY;MAClB5uJ,IAAI,EAAE,CAAC2yJ,cAAc;IACzB,CAAC,CAAC;IAAEkC,cAAc,EAAE,CAAC;MACjB55J,IAAI,EAAEy6I,0DAAe;MACrB11I,IAAI,EAAE,CAACuxJ,SAAS,EAAE;QAAE3X,WAAW,EAAE;MAAK,CAAC;IAC3C,CAAC,CAAC;IAAEgb,aAAa,EAAE,CAAC;MAChB35J,IAAI,EAAEy6I,0DAAe;MACrB11I,IAAI,EAAE,CAACqyJ,SAAS,EAAE;QAAEzY,WAAW,EAAE;MAAK,CAAC;IAC3C,CAAC,CAAC;IAAE8a,eAAe,EAAE,CAAC;MAClBz5J,IAAI,EAAEy6I,0DAAe;MACrB11I,IAAI,EAAE,CAAC6yJ,UAAU,EAAE;QAAEjZ,WAAW,EAAE;MAAK,CAAC;IAC5C,CAAC,CAAC;IAAE+a,eAAe,EAAE,CAAC;MAClB15J,IAAI,EAAEy6I,0DAAe;MACrB11I,IAAI,EAAE,CAACgzJ,UAAU,EAAE;QAAEpZ,WAAW,EAAE;MAAK,CAAC;IAC5C,CAAC;EAAE,CAAC;AAAA;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM4d,kBAAkB,CAAC;AAEzBA,kBAAkB,CAAC/2H,IAAI,YAAAg3H,2BAAAjvJ,CAAA;EAAA,YAAAA,CAAA,IAAwFgvJ,kBAAkB;AAAA,CAAkD;AACnLA,kBAAkB,CAAC5uF,IAAI,kBArtBoE7wC,8DAAE;EAAA98B,IAAA,EAqtBmBu8J,kBAAkB;EAAA1uF,YAAA,GAAiB0oF,QAAQ,EAAE3S,YAAY,EAAEyT,OAAO,EAAEG,QAAQ,EAAEE,cAAc,EAAEG,SAAS,EAAEG,SAAS;EAAAlqF,OAAA,GAAa+8C,0DAAY,EAAEqwB,mEAAe,EAAElmF,oEAAe;EAAA+Y,OAAA,GAAamtE,mEAAe,EACjTqb,QAAQ,EACR3S,YAAY,EACZyT,OAAO,EACPG,QAAQ,EACRE,cAAc,EACdG,SAAS,EACTG,SAAS;AAAA,EAAI;AACrBuE,kBAAkB,CAACvuF,IAAI,kBA7tBoElxC,8DAAE;EAAAgxC,OAAA,GA6tBiD,CAAC+8C,0DAAY,EAAEqwB,mEAAe,EAAElmF,oEAAe,CAAC,EAAEkmF,mEAAe;AAAA,EAAI;AACnN;EAAA,QAAAh+G,SAAA,oBAAAA,SAAA,KA9tB2FJ,+DAAE,CA8tBFy/H,kBAAkB,EAAc,CAAC;IAChHv8J,IAAI,EAAE6yD,mDAAQ;IACd9tD,IAAI,EAAE,CAAC;MACC8oE,YAAY,EAAE,CAAC0oF,QAAQ,EAAE3S,YAAY,EAAEyT,OAAO,EAAEG,QAAQ,EAAEE,cAAc,EAAEG,SAAS,EAAEG,SAAS,CAAC;MAC/FlqF,OAAO,EAAE,CAAC+8C,0DAAY,EAAEqwB,mEAAe,EAAElmF,oEAAe,CAAC;MACzD+Y,OAAO,EAAE,CACLmtE,mEAAe,EACfqb,QAAQ,EACR3S,YAAY,EACZyT,OAAO,EACPG,QAAQ,EACRE,cAAc,EACdG,SAAS,EACTG,SAAS;IAEjB,CAAC;EACT,CAAC,CAAC;AAAA;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AC1yBA;AACA;AACA;AACA;AACA;;AAEmE;AAC/B;AAC8N;AAC3M;AAC0B;;AAEjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMqF,qBAAqB,GAAG,IAAI5qG,yDAAc,CAAC,gBAAgB,CAAC;AAClE;AACA;AACA;AACA,MAAM6qG,4BAA4B,GAAG;EACjC7tF,OAAO,EAAEktF,2DAAgB;EACzB7jC,QAAQ,EAAE;AACd,CAAC;AACD,MAAMykC,kBAAkB,GAAG,CAAC;EAAE9tF,OAAO,EAAEmtF,mDAAQ;EAAEpsE,UAAU,EAAEA,CAAA,KAAM,IAAIosE,mDAAQ,CAAC;AAAE,CAAC,CAAC;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMY,kBAAkB,CAAC;EACrB;EACA72J,WAAWA,CAAC6gE,cAAc,EAAE;IACxB,MAAMi2F,eAAe,GAAG;MACpBC,MAAM,EAAE,IAAI;MACZC,oBAAoB,EAAE7kE,qEAA0B;MAChD+kE,kBAAkB,EAAEhB,6EAAkCiB;IAC1D,CAAC;IACD,IAAI,CAAC12F,eAAe,GAAG,CAACq2F,eAAe,EAAE,GAAGj2F,cAAc,CAAC;EAC/D;EACAu2F,cAAcA,CAACxvJ,OAAO,GAAG,EAAE,EAAE;IACzB,MAAMoQ,IAAI,GAAGq/I,aAAa,CAAC,IAAI,CAAC52F,eAAe,CAACt9D,MAAM,CAACyE,OAAO,CAAC,CAAC;IAChE,MAAM6mF,QAAQ,GAAGtH,0DAAe,CAAC,CAC7ByvE,kBAAkB,EAAE;MAChB9tF,OAAO,EAAEgtF,6DAAc;MACvBjsE,UAAU,EAAEA,CAAA,KAAM;QACd,OAAO,IAAIisE,6DAAc,CAAC;UACtB;UACA;UACAiB,MAAM,EAAE/+I,IAAI,CAAC++I,MAAM;UACnBO,UAAU,EAAEnB,wDAAS,CAAC,CAAC;UACvB;UACA;UACAa,oBAAoB,EAAEh/I,IAAI,CAACg/I,oBAAoB;UAC/CE,kBAAkB,EAAEl/I,IAAI,CAACk/I,kBAAkB;UAC3CK,mBAAmB,EAAEv/I,IAAI,CAACu/I;QAC9B,CAAC,CAAC;MACN,CAAC;MACD3tE,IAAI,EAAE;IACV,CAAC,EACD5xE,IAAI,CAACgxD,SAAS,CACjB,CAAC;IACF,OAAOylB,QAAQ,CAACpxE,GAAG,CAAC44I,mDAAQ,CAAC;EACjC;AACJ;AACA,SAASoB,aAAaA,CAACG,UAAU,EAAE;EAC/B,OAAO;IACHT,MAAM,EAAEU,YAAY,CAACD,UAAU,CAAC1+H,GAAG,CAAClxB,OAAO,IAAIA,OAAO,CAACmvJ,MAAM,CAAC,CAAC;IAC/DC,oBAAoB,EAAES,YAAY,CAACD,UAAU,CAAC1+H,GAAG,CAAClxB,OAAO,IAAIA,OAAO,CAACovJ,oBAAoB,CAAC,CAAC;IAC3FhuF,SAAS,EAAE0uF,YAAY,CAACF,UAAU,CAAC1+H,GAAG,CAAClxB,OAAO,IAAIA,OAAO,CAACohE,SAAS,CAAC,CAAC;IACrEkuF,kBAAkB,EAAEO,YAAY,CAACD,UAAU,CAAC1+H,GAAG,CAAClxB,OAAO,IAAIA,OAAO,CAACsvJ,kBAAkB,CAAC,CAAC;IACvFK,mBAAmB,EAAEE,YAAY,CAACD,UAAU,CAAC1+H,GAAG,CAAClxB,OAAO,IAAIA,OAAO,CAAC2vJ,mBAAmB,CAAC;EAC5F,CAAC;AACL;AACA,SAASE,YAAYA,CAACr5J,IAAI,EAAE;EACxB,KAAK,IAAIjE,CAAC,GAAGiE,IAAI,CAAC/D,MAAM,GAAG,CAAC,EAAEF,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;IACvC,IAAIiE,IAAI,CAACjE,CAAC,CAAC,KAAK+hC,SAAS,EAAE;MACvB,OAAO99B,IAAI,CAACjE,CAAC,CAAC;IAClB;EACJ;EACA,OAAO+hC,SAAS;AACpB;AACA,SAASw7H,YAAYA,CAACvsD,KAAK,EAAE;EACzB,MAAM5vG,MAAM,GAAG,EAAE;EACjB4vG,KAAK,CAAC78F,OAAO,CAAE5S,IAAI,IAAKA,IAAI,IAAIH,MAAM,CAACd,IAAI,CAAC,GAAGiB,IAAI,CAAC,CAAC;EACrD,OAAOH,MAAM;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMo8J,mBAAmB,GAAGvB,oEAAqB,CAACC,uDAAY,EAAE,aAAa,EAAE,CAC3E;EAAEvtF,OAAO,EAAEwtF,2DAAgB;EAAEnkC,QAAQ,EAAE,CAAC,CAAC;EAAEt1F,KAAK,EAAE;AAAK,CAAC,EACxD;EAAEisC,OAAO,EAAEytF,0DAAe;EAAEh3D,QAAQ,EAAEs3D,kBAAkB;EAAEjtE,IAAI,EAAE,CAAC0sE,2DAAgB;AAAE,CAAC,CACvF,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMsB,kBAAkB,SAAS7B,6DAAc,CAAC;EAC5C14I,GAAGA,CAAC4X,GAAG,EAAE;IACL,IAAI/1B,OAAO;IACX,IAAIK,MAAM;IACV,MAAMN,OAAO,GAAG,IAAI3G,OAAO,CAAC,CAACyF,GAAG,EAAE85J,GAAG,KAAK;MACtC34J,OAAO,GAAGnB,GAAG;MACbwB,MAAM,GAAGs4J,GAAG;IAChB,CAAC,CAAC;IACF,MAAM1iI,GAAG,GAAG,IAAIC,cAAc,CAAC,CAAC;IAChCD,GAAG,CAACpN,IAAI,CAAC,KAAK,EAAEkN,GAAG,EAAE,IAAI,CAAC;IAC1BE,GAAG,CAAClT,YAAY,GAAG,MAAM;IACzBkT,GAAG,CAAC11B,MAAM,GAAG,YAAY;MACrB;MACA;MACA;MACA,MAAM8e,QAAQ,GAAG4W,GAAG,CAAC5W,QAAQ,IAAI4W,GAAG,CAACK,YAAY;MACjD;MACA,IAAIF,MAAM,GAAGH,GAAG,CAACG,MAAM,KAAK,IAAI,GAAG,GAAG,GAAGH,GAAG,CAACG,MAAM;MACnD;MACA;MACA;MACA,IAAIA,MAAM,KAAK,CAAC,EAAE;QACdA,MAAM,GAAG/W,QAAQ,GAAG,GAAG,GAAG,CAAC;MAC/B;MACA,IAAI,GAAG,IAAI+W,MAAM,IAAIA,MAAM,IAAI,GAAG,EAAE;QAChCp2B,OAAO,CAACqf,QAAQ,CAAC;MACrB,CAAC,MACI;QACDhf,MAAM,CAAC,kBAAkB01B,GAAG,EAAE,CAAC;MACnC;IACJ,CAAC;IACDE,GAAG,CAACx1B,OAAO,GAAG,YAAY;MACtBJ,MAAM,CAAC,kBAAkB01B,GAAG,EAAE,CAAC;IACnC,CAAC;IACDE,GAAG,CAACS,IAAI,CAAC,CAAC;IACV,OAAO32B,OAAO;EAClB;AACJ;AACA24J,kBAAkB,CAAC/4H,IAAI;EAAA,IAAAi5H,+BAAA;EAAA,gBAAAC,2BAAAnxJ,CAAA;IAAA,QAAAkxJ,+BAAA,KAAAA,+BAAA,GAA8E3hI,mEAAE,CAAQyhI,kBAAkB,IAAAhxJ,CAAA,IAAlBgxJ,kBAAkB;EAAA;AAAA,GAAsD;AACvLA,kBAAkB,CAAC74H,KAAK,kBAD6E5I,gEAAE;EAAAxb,KAAA,EACYi9I,kBAAkB;EAAA34H,OAAA,EAAlB24H,kBAAkB,CAAA/4H;AAAA,EAAG;AACxI;EAAA,QAAAtI,SAAA,oBAAAA,SAAA,KAFqGJ,+DAAE,CAEZyhI,kBAAkB,EAAc,CAAC;IAChHv+J,IAAI,EAAEg9B,qDAAUA;EACpB,CAAC,CAAC;AAAA;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM2hI,2CAA2C,GAAG,CAChDvB,8FAAoC,EACpC;EACI3tF,OAAO,EAAEwtF,2DAAgB;EACzBnkC,QAAQ,EAAE;IAAEnpD,SAAS,EAAE,CAAC;MAAEF,OAAO,EAAEitF,6DAAc;MAAEx2D,QAAQ,EAAEq4D,kBAAkB;MAAEhuE,IAAI,EAAE;IAAG,CAAC;EAAE,CAAC;EAC9F/sD,KAAK,EAAE;AACX,CAAC,EACD;EAAEisC,OAAO,EAAEkiB,sDAAW;EAAEmnC,QAAQ,EAAEpL,oEAAoBA;AAAC,CAAC,CAC3D;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMkxC,oBAAoB,SAASlC,6DAAc,CAAC;EAC9C/1J,WAAWA,CAAA,EAAG;IACV,KAAK,CAAC,CAAC;IACP,IAAI,CAACk4J,MAAM,GAAG1B,oEAAsB;IACpC,IAAI,IAAI,CAAC0B,MAAM,IAAI,IAAI,EAAE;MACrB,MAAM,IAAIl9J,KAAK,CAAC,uEAAuE,CAAC;IAC5F;EACJ;EACAqiB,GAAGA,CAAC4X,GAAG,EAAE;IACL,IAAI,IAAI,CAACijI,MAAM,CAACx5J,cAAc,CAACu2B,GAAG,CAAC,EAAE;MACjC,OAAO38B,OAAO,CAAC4G,OAAO,CAAC,IAAI,CAACg5J,MAAM,CAACjjI,GAAG,CAAC,CAAC;IAC5C,CAAC,MACI;MACD,OAAO38B,OAAO,CAACiH,MAAM,CAAC,yDAAyD,GAAG01B,GAAG,CAAC;IAC1F;EACJ;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM2vF,OAAO,GAAG,IAAIlkB,kDAAO,CAAC,QAAQ,CAAC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM03D,uBAAuB,GAAG,CAAC;EAAEtvF,OAAO,EAAEitF,6DAAc;EAAEx2D,QAAQ,EAAE04D,oBAAoB;EAAEruE,IAAI,EAAE;AAAG,CAAC,CAAC;AACvG;AACA;AACA;AACA,MAAMyuE,sBAAsB,GAAGjC,oEAAqB,CAACuB,mBAAmB,EAAE,gBAAgB,EAAEK,2CAA2C,CAAC;;AAExI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtRA;AACA;AACA;AACA;AACA;;AAEoC;AACsF;AAC1C;AACG;AACjC;AACoI;AAC3I;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMa,uBAAuB,SAASF,iEAAgB,CAAC;EACnD34J,WAAWA,CAAC84J,YAAY,EAAEx0F,GAAG,EAAE;IAC3B,KAAK,CAAC,CAAC;IACP,IAAI,CAACy0F,gBAAgB,GAAG,CAAC;IACzB,MAAMC,QAAQ,GAAG;MAAE7mJ,EAAE,EAAE,GAAG;MAAEwqF,aAAa,EAAExK,iEAAsB;MAAElxD,MAAM,EAAE,EAAE;MAAE7hC,IAAI,EAAE;QAAEwpC,SAAS,EAAE;MAAG;IAAE,CAAC;IACxG,IAAI,CAACyvE,SAAS,GAAGygD,YAAY,CAACG,cAAc,CAAC30F,GAAG,CAAC98C,IAAI,EAAEwxI,QAAQ,CAAC;EACpE;EACA/xH,KAAKA,CAAC2B,SAAS,EAAE;IACb,MAAMz2B,EAAE,GAAG,IAAI,CAAC4mJ,gBAAgB,CAACt7J,QAAQ,CAAC,CAAC;IAC3C,IAAI,CAACs7J,gBAAgB,EAAE;IACvB,MAAM1hJ,KAAK,GAAGlc,KAAK,CAACZ,OAAO,CAACquC,SAAS,CAAC,GAAG3S,6DAAQ,CAAC2S,SAAS,CAAC,GAAGA,SAAS;IACxEswH,qBAAqB,CAAC,IAAI,CAAC7gD,SAAS,EAAE,IAAI,EAAElmG,EAAE,EAAE,UAAU,EAAE,CAACkF,KAAK,CAAC,CAAC;IACpE,OAAO,IAAI8hJ,uBAAuB,CAAChnJ,EAAE,EAAE,IAAI,CAACkmG,SAAS,CAAC;EAC1D;AACJ;AACAwgD,uBAAuB,CAACh6H,IAAI,YAAAu6H,gCAAAxyJ,CAAA;EAAA,YAAAA,CAAA,IAAwFiyJ,uBAAuB,EAAjC1iI,sDAAE,CAAiDA,2DAAmB,GAAtEA,sDAAE,CAAiFs1B,qDAAQ;AAAA,CAA6C;AAClPotG,uBAAuB,CAAC95H,KAAK,kBAD6E5I,gEAAE;EAAAxb,KAAA,EACYk+I,uBAAuB;EAAA55H,OAAA,EAAvB45H,uBAAuB,CAAAh6H;AAAA,EAAG;AAClJ;EAAA,QAAAtI,SAAA,oBAAAA,SAAA,KAF0GJ,+DAAE,CAEjB0iI,uBAAuB,EAAc,CAAC;IACrHx/J,IAAI,EAAEg9B,qDAAUA;EACpB,CAAC,CAAC,EAAkB,YAAY;IAChC,OAAO,CAAC;MAAEh9B,IAAI,EAAE88B,2DAAmBqiI;IAAC,CAAC,EAAE;MAAEn/J,IAAI,EAAE6iC,SAAS;MAAE61B,UAAU,EAAE,CAAC;QACvD14D,IAAI,EAAEqyD,iDAAM;QACZttD,IAAI,EAAE,CAACqtD,qDAAQ;MACnB,CAAC;IAAE,CAAC,CAAC;EACrB,CAAC;AAAA;AACL,MAAM0tG,uBAAuB,SAASP,iEAAgB,CAAC;EACnD54J,WAAWA,CAACyvD,GAAG,EAAE4oD,SAAS,EAAE;IACxB,KAAK,CAAC,CAAC;IACP,IAAI,CAAC5oD,GAAG,GAAGA,GAAG;IACd,IAAI,CAAC4oD,SAAS,GAAGA,SAAS;EAC9B;EACAxhG,MAAMA,CAAC2X,OAAO,EAAE5mB,OAAO,EAAE;IACrB,OAAO,IAAIyxJ,uBAAuB,CAAC,IAAI,CAAC5pG,GAAG,EAAEjhC,OAAO,EAAE5mB,OAAO,IAAI,CAAC,CAAC,EAAE,IAAI,CAACywG,SAAS,CAAC;EACxF;AACJ;AACA,MAAMghD,uBAAuB,CAAC;EAC1Br5J,WAAWA,CAACmS,EAAE,EAAEqc,OAAO,EAAE5mB,OAAO,EAAEywG,SAAS,EAAE;IACzC,IAAI,CAAClmG,EAAE,GAAGA,EAAE;IACZ,IAAI,CAACqc,OAAO,GAAGA,OAAO;IACtB,IAAI,CAAC6pF,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACl0D,YAAY,GAAG,IAAI;IACxB,IAAI,CAACsF,QAAQ,GAAG,KAAK;IACrB,IAAI,CAAC7tB,SAAS,GAAG,CAAC;IAClB,IAAI,CAAC09H,QAAQ,CAAC,QAAQ,EAAE1xJ,OAAO,CAAC;EACpC;EACA2xJ,OAAOA,CAACjnI,SAAS,EAAEn0B,QAAQ,EAAE;IACzB,OAAO,IAAI,CAACk6G,SAAS,CAAC5/D,MAAM,CAAC,IAAI,CAACjqB,OAAO,EAAE,KAAK,IAAI,CAACrc,EAAE,IAAImgB,SAAS,EAAE,EAAEn0B,QAAQ,CAAC;EACrF;EACAm7J,QAAQA,CAAC/8H,OAAO,EAAE,GAAGn+B,IAAI,EAAE;IACvB,OAAO86J,qBAAqB,CAAC,IAAI,CAAC7gD,SAAS,EAAE,IAAI,CAAC7pF,OAAO,EAAE,IAAI,CAACrc,EAAE,EAAEoqB,OAAO,EAAEn+B,IAAI,CAAC;EACtF;EACAq9B,MAAMA,CAAC32B,EAAE,EAAE;IACP,IAAI,CAACy0J,OAAO,CAAC,MAAM,EAAEz0J,EAAE,CAAC;EAC5B;EACAy2B,OAAOA,CAACz2B,EAAE,EAAE;IACR,IAAI,CAACy0J,OAAO,CAAC,OAAO,EAAEz0J,EAAE,CAAC;EAC7B;EACA42B,SAASA,CAAC52B,EAAE,EAAE;IACV,IAAI,CAACy0J,OAAO,CAAC,SAAS,EAAEz0J,EAAE,CAAC;EAC/B;EACAi0C,IAAIA,CAAA,EAAG;IACH,IAAI,CAACugH,QAAQ,CAAC,MAAM,CAAC;EACzB;EACAnzG,UAAUA,CAAA,EAAG;IACT,OAAO,IAAI,CAACsD,QAAQ;EACxB;EACA9Q,IAAIA,CAAA,EAAG;IACH,IAAI,CAAC2gH,QAAQ,CAAC,MAAM,CAAC;IACrB,IAAI,CAAC7vG,QAAQ,GAAG,IAAI;EACxB;EACApoD,KAAKA,CAAA,EAAG;IACJ,IAAI,CAACi4J,QAAQ,CAAC,OAAO,CAAC;EAC1B;EACAzgH,OAAOA,CAAA,EAAG;IACN,IAAI,CAACygH,QAAQ,CAAC,SAAS,CAAC;EAC5B;EACAxgH,MAAMA,CAAA,EAAG;IACL,IAAI,CAACwgH,QAAQ,CAAC,QAAQ,CAAC;EAC3B;EACA/gH,OAAOA,CAAA,EAAG;IACN,IAAI,CAAC+gH,QAAQ,CAAC,SAAS,CAAC;EAC5B;EACA1gH,KAAKA,CAAA,EAAG;IACJ,IAAI,CAAC0gH,QAAQ,CAAC,OAAO,CAAC;IACtB,IAAI,CAAC7vG,QAAQ,GAAG,KAAK;EACzB;EACAzQ,WAAWA,CAACuF,CAAC,EAAE;IACX,IAAI,CAAC+6G,QAAQ,CAAC,aAAa,EAAE/6G,CAAC,CAAC;EACnC;EACA6H,WAAWA,CAAA,EAAG;IACV,IAAI5jC,EAAE,EAAE8F,EAAE;IACV,OAAO,CAACA,EAAE,GAAG,CAAC9F,EAAE,GAAG,IAAI,CAAC61F,SAAS,CAACl7D,MAAM,CAAChjB,OAAO,CAAC,CAAC,IAAI,CAAChoB,EAAE,CAAC,MAAM,IAAI,IAAIqQ,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,EAAE,CAAC4jC,WAAW,CAAC,CAAC,MAAM,IAAI,IAAI99B,EAAE,KAAK,KAAK,CAAC,GAAGA,EAAE,GAAG,CAAC;EACzJ;AACJ;AACA,SAAS4wI,qBAAqBA,CAACzkC,QAAQ,EAAEjmG,OAAO,EAAErc,EAAE,EAAEoqB,OAAO,EAAEn+B,IAAI,EAAE;EACjE,OAAOq2H,QAAQ,CAACzB,WAAW,CAACxkG,OAAO,EAAE,KAAKrc,EAAE,IAAIoqB,OAAO,EAAE,EAAEn+B,IAAI,CAAC;AACpE;AAEA,MAAMo7J,gBAAgB,GAAG,GAAG;AAC5B,MAAMC,uBAAuB,GAAG,YAAY;AAC5C,MAAMC,wBAAwB,CAAC;EAC3B15J,WAAWA,CAAC25J,QAAQ,EAAEx8G,MAAM,EAAEq7F,KAAK,EAAE;IACjC,IAAI,CAACmhB,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACx8G,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACq7F,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACohB,UAAU,GAAG,CAAC;IACnB,IAAI,CAACC,YAAY,GAAG,CAAC;IACrB,IAAI,CAACC,yBAAyB,GAAG,EAAE;IACnC,IAAI,CAACC,cAAc,GAAG,IAAI19H,GAAG,CAAC,CAAC;IAC/B,IAAI,CAAC29H,aAAa,GAAG,CAAC;IACtB,IAAI,CAAC/6J,OAAO,GAAG3G,OAAO,CAAC4G,OAAO,CAAC,CAAC,CAAC;IACjCi+C,MAAM,CAACiC,iBAAiB,GAAG,CAAC5wB,OAAO,EAAEmrI,QAAQ,KAAK;MAC9C;MACA;MACA;MACA;MACA,MAAM38H,UAAU,GAAG28H,QAAQ,KAAK,IAAI,IAAIA,QAAQ,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,QAAQ,CAAC38H,UAAU,CAACxO,OAAO,CAAC;MACnG,IAAIwO,UAAU,EAAE;QACZ28H,QAAQ,CAAC1rC,WAAW,CAACjxF,UAAU,EAAExO,OAAO,CAAC;MAC7C;IACJ,CAAC;EACL;EACAyqI,cAAcA,CAAC1+G,WAAW,EAAElhD,IAAI,EAAE;IAC9B,MAAM4gK,kBAAkB,GAAG,EAAE;IAC7B;IACA;IACA,MAAMN,QAAQ,GAAG,IAAI,CAACA,QAAQ,CAACV,cAAc,CAAC1+G,WAAW,EAAElhD,IAAI,CAAC;IAChE,IAAI,CAACkhD,WAAW,IAAI,CAAClhD,IAAI,IAAI,CAACA,IAAI,CAAC+F,IAAI,IAAI,CAAC/F,IAAI,CAAC+F,IAAI,CAAC,WAAW,CAAC,EAAE;MAChE,IAAIq1H,QAAQ,GAAG,IAAI,CAACslC,cAAc,CAAC18I,GAAG,CAACs8I,QAAQ,CAAC;MAChD,IAAI,CAACllC,QAAQ,EAAE;QACXA,QAAQ,GAAG,IAAIylC,qBAAqB,CAACD,kBAAkB,EAAEN,QAAQ,EAAE,IAAI,CAACx8G,MAAM,CAAC;QAC/E;QACA,IAAI,CAAC48G,cAAc,CAAC72J,GAAG,CAACy2J,QAAQ,EAAEllC,QAAQ,CAAC;MAC/C;MACA,OAAOA,QAAQ;IACnB;IACA,MAAM3sE,WAAW,GAAGzuD,IAAI,CAAC8Y,EAAE;IAC3B,MAAMsnC,WAAW,GAAGpgD,IAAI,CAAC8Y,EAAE,GAAG,GAAG,GAAG,IAAI,CAACynJ,UAAU;IACnD,IAAI,CAACA,UAAU,EAAE;IACjB,IAAI,CAACz8G,MAAM,CAAChF,QAAQ,CAACsB,WAAW,EAAEc,WAAW,CAAC;IAC9C,MAAMwF,eAAe,GAAI3E,OAAO,IAAK;MACjC,IAAIjgD,KAAK,CAACZ,OAAO,CAAC6gD,OAAO,CAAC,EAAE;QACxBA,OAAO,CAAC9sC,OAAO,CAACyxC,eAAe,CAAC;MACpC,CAAC,MACI;QACD,IAAI,CAAC5C,MAAM,CAAC4C,eAAe,CAAC+H,WAAW,EAAErO,WAAW,EAAEc,WAAW,EAAEa,OAAO,CAACx8C,IAAI,EAAEw8C,OAAO,CAAC;MAC7F;IACJ,CAAC;IACD,MAAM++G,iBAAiB,GAAG9gK,IAAI,CAAC+F,IAAI,CAAC,WAAW,CAAC;IAChD+6J,iBAAiB,CAAC7rJ,OAAO,CAACyxC,eAAe,CAAC;IAC1C,OAAO,IAAIq6G,iBAAiB,CAAC,IAAI,EAAE3gH,WAAW,EAAEkgH,QAAQ,EAAE,IAAI,CAACx8G,MAAM,CAAC;EAC1E;EACAk9G,KAAKA,CAAA,EAAG;IACJ,IAAI,CAACL,aAAa,EAAE;IACpB,IAAI,IAAI,CAACL,QAAQ,CAACU,KAAK,EAAE;MACrB,IAAI,CAACV,QAAQ,CAACU,KAAK,CAAC,CAAC;IACzB;EACJ;EACAC,kBAAkBA,CAAA,EAAG;IACjB;IACA,IAAI,CAACr7J,OAAO,CAACE,IAAI,CAAC,MAAM;MACpB,IAAI,CAAC06J,YAAY,EAAE;IACvB,CAAC,CAAC;EACN;EACA;EACAU,wBAAwBA,CAAChsF,KAAK,EAAEzpE,EAAE,EAAE1F,IAAI,EAAE;IACtC,IAAImvE,KAAK,IAAI,CAAC,IAAIA,KAAK,GAAG,IAAI,CAACsrF,YAAY,EAAE;MACzC,IAAI,CAACrhB,KAAK,CAACtzE,GAAG,CAAC,MAAMpgE,EAAE,CAAC1F,IAAI,CAAC,CAAC;MAC9B;IACJ;IACA,IAAI,IAAI,CAAC06J,yBAAyB,CAACz/J,MAAM,IAAI,CAAC,EAAE;MAC5C/B,OAAO,CAAC4G,OAAO,CAAC,IAAI,CAAC,CAACC,IAAI,CAAC,MAAM;QAC7B,IAAI,CAACq5I,KAAK,CAACtzE,GAAG,CAAC,MAAM;UACjB,IAAI,CAAC40F,yBAAyB,CAACxrJ,OAAO,CAAC47B,KAAK,IAAI;YAC5C,MAAM,CAACplC,EAAE,EAAE1F,IAAI,CAAC,GAAG8qC,KAAK;YACxBplC,EAAE,CAAC1F,IAAI,CAAC;UACZ,CAAC,CAAC;UACF,IAAI,CAAC06J,yBAAyB,GAAG,EAAE;QACvC,CAAC,CAAC;MACN,CAAC,CAAC;IACN;IACA,IAAI,CAACA,yBAAyB,CAACr/J,IAAI,CAAC,CAACqK,EAAE,EAAE1F,IAAI,CAAC,CAAC;EACnD;EACAsB,GAAGA,CAAA,EAAG;IACF,IAAI,CAACs5J,aAAa,EAAE;IACpB;IACA;IACA,IAAI,IAAI,CAACA,aAAa,IAAI,CAAC,EAAE;MACzB,IAAI,CAACxhB,KAAK,CAAC/+E,iBAAiB,CAAC,MAAM;QAC/B,IAAI,CAAC6gG,kBAAkB,CAAC,CAAC;QACzB,IAAI,CAACn9G,MAAM,CAACx8C,KAAK,CAAC,IAAI,CAACk5J,YAAY,CAAC;MACxC,CAAC,CAAC;IACN;IACA,IAAI,IAAI,CAACF,QAAQ,CAACj5J,GAAG,EAAE;MACnB,IAAI,CAACi5J,QAAQ,CAACj5J,GAAG,CAAC,CAAC;IACvB;EACJ;EACAogD,iBAAiBA,CAAA,EAAG;IAChB,OAAO,IAAI,CAAC3D,MAAM,CAAC2D,iBAAiB,CAAC,CAAC;EAC1C;AACJ;AACA44G,wBAAwB,CAAC76H,IAAI,YAAA27H,iCAAA5zJ,CAAA;EAAA,YAAAA,CAAA,IAAwF8yJ,wBAAwB,EA1LnCvjI,sDAAE,CA0LmDA,2DAAmB,GA1LxEA,sDAAE,CA0LmFg2B,4EAAmB,GA1LxGh2B,sDAAE,CA0LmHA,iDAAS;AAAA,CAA6C;AACrRujI,wBAAwB,CAAC36H,KAAK,kBA3L4E5I,gEAAE;EAAAxb,KAAA,EA2La++I,wBAAwB;EAAAz6H,OAAA,EAAxBy6H,wBAAwB,CAAA76H;AAAA,EAAG;AACpJ;EAAA,QAAAtI,SAAA,oBAAAA,SAAA,KA5L0GJ,+DAAE,CA4LjBujI,wBAAwB,EAAc,CAAC;IACtHrgK,IAAI,EAAEg9B,qDAAUA;EACpB,CAAC,CAAC,EAAkB,YAAY;IAAE,OAAO,CAAC;MAAEh9B,IAAI,EAAE88B,2DAAmBqiI;IAAC,CAAC,EAAE;MAAEn/J,IAAI,EAAE8yD,4EAAmBtB;IAAC,CAAC,EAAE;MAAExxD,IAAI,EAAE88B,iDAASglC;IAAC,CAAC,CAAC;EAAE,CAAC;AAAA;AACvI,MAAM++F,qBAAqB,CAAC;EACxBl6J,WAAWA,CAACy5C,WAAW,EAAEkgH,QAAQ,EAAEx8G,MAAM,EAAE;IACvC,IAAI,CAAC1D,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACkgH,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACx8G,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACs9G,WAAW,GAAG,IAAI,CAACd,QAAQ,CAACc,WAAW,GAAIh0J,CAAC,IAAKkzJ,QAAQ,CAACc,WAAW,CAACh0J,CAAC,CAAC,GAAG,IAAI;EACxF;EACA,IAAIrH,IAAIA,CAAA,EAAG;IACP,OAAO,IAAI,CAACu6J,QAAQ,CAACv6J,IAAI;EAC7B;EACAm5C,OAAOA,CAAA,EAAG;IACN,IAAI,CAAC4E,MAAM,CAAC5E,OAAO,CAAC,IAAI,CAACkB,WAAW,EAAE,IAAI,CAACkgH,QAAQ,CAAC;IACpD,IAAI,CAACA,QAAQ,CAACphH,OAAO,CAAC,CAAC;EAC3B;EACAsY,aAAaA,CAACjyD,IAAI,EAAE87J,SAAS,EAAE;IAC3B,OAAO,IAAI,CAACf,QAAQ,CAAC9oG,aAAa,CAACjyD,IAAI,EAAE87J,SAAS,CAAC;EACvD;EACAjrE,aAAaA,CAAC/tF,KAAK,EAAE;IACjB,OAAO,IAAI,CAACi4J,QAAQ,CAAClqE,aAAa,CAAC/tF,KAAK,CAAC;EAC7C;EACAi5J,UAAUA,CAACj5J,KAAK,EAAE;IACd,OAAO,IAAI,CAACi4J,QAAQ,CAACgB,UAAU,CAACj5J,KAAK,CAAC;EAC1C;EACAsvD,WAAWA,CAACj7C,MAAM,EAAE6kJ,QAAQ,EAAE;IAC1B,IAAI,CAACjB,QAAQ,CAAC3oG,WAAW,CAACj7C,MAAM,EAAE6kJ,QAAQ,CAAC;IAC3C,IAAI,CAACz9G,MAAM,CAAC6K,QAAQ,CAAC,IAAI,CAACvO,WAAW,EAAEmhH,QAAQ,EAAE7kJ,MAAM,EAAE,KAAK,CAAC;EACnE;EACAoqC,YAAYA,CAACpqC,MAAM,EAAE6kJ,QAAQ,EAAEC,QAAQ,EAAEC,MAAM,GAAG,IAAI,EAAE;IACpD,IAAI,CAACnB,QAAQ,CAACx5G,YAAY,CAACpqC,MAAM,EAAE6kJ,QAAQ,EAAEC,QAAQ,CAAC;IACtD;IACA,IAAI,CAAC19G,MAAM,CAAC6K,QAAQ,CAAC,IAAI,CAACvO,WAAW,EAAEmhH,QAAQ,EAAE7kJ,MAAM,EAAE+kJ,MAAM,CAAC;EACpE;EACA7sC,WAAWA,CAACl4G,MAAM,EAAEglJ,QAAQ,EAAEz6G,aAAa,EAAE;IACzC,IAAI,CAACnD,MAAM,CAAC8K,QAAQ,CAAC,IAAI,CAACxO,WAAW,EAAEshH,QAAQ,EAAE,IAAI,CAACpB,QAAQ,EAAEr5G,aAAa,CAAC;EAClF;EACA06G,iBAAiBA,CAACC,cAAc,EAAEC,eAAe,EAAE;IAC/C,OAAO,IAAI,CAACvB,QAAQ,CAACqB,iBAAiB,CAACC,cAAc,EAAEC,eAAe,CAAC;EAC3E;EACAl+H,UAAUA,CAAC4G,IAAI,EAAE;IACb,OAAO,IAAI,CAAC+1H,QAAQ,CAAC38H,UAAU,CAAC4G,IAAI,CAAC;EACzC;EACA+1B,WAAWA,CAAC/1B,IAAI,EAAE;IACd,OAAO,IAAI,CAAC+1H,QAAQ,CAAChgG,WAAW,CAAC/1B,IAAI,CAAC;EAC1C;EACA/B,YAAYA,CAAC2sB,EAAE,EAAE5vD,IAAI,EAAE8C,KAAK,EAAEg5J,SAAS,EAAE;IACrC,IAAI,CAACf,QAAQ,CAAC93H,YAAY,CAAC2sB,EAAE,EAAE5vD,IAAI,EAAE8C,KAAK,EAAEg5J,SAAS,CAAC;EAC1D;EACA5rG,eAAeA,CAACN,EAAE,EAAE5vD,IAAI,EAAE87J,SAAS,EAAE;IACjC,IAAI,CAACf,QAAQ,CAAC7qG,eAAe,CAACN,EAAE,EAAE5vD,IAAI,EAAE87J,SAAS,CAAC;EACtD;EACA7/G,QAAQA,CAAC2T,EAAE,EAAE5vD,IAAI,EAAE;IACf,IAAI,CAAC+6J,QAAQ,CAAC9+G,QAAQ,CAAC2T,EAAE,EAAE5vD,IAAI,CAAC;EACpC;EACAk9C,WAAWA,CAAC0S,EAAE,EAAE5vD,IAAI,EAAE;IAClB,IAAI,CAAC+6J,QAAQ,CAAC79G,WAAW,CAAC0S,EAAE,EAAE5vD,IAAI,CAAC;EACvC;EACAwgH,QAAQA,CAAC5wD,EAAE,EAAEt4B,KAAK,EAAEx0B,KAAK,EAAE6sB,KAAK,EAAE;IAC9B,IAAI,CAACorI,QAAQ,CAACv6C,QAAQ,CAAC5wD,EAAE,EAAEt4B,KAAK,EAAEx0B,KAAK,EAAE6sB,KAAK,CAAC;EACnD;EACA8wF,WAAWA,CAAC7wD,EAAE,EAAEt4B,KAAK,EAAE3H,KAAK,EAAE;IAC1B,IAAI,CAACorI,QAAQ,CAACt6C,WAAW,CAAC7wD,EAAE,EAAEt4B,KAAK,EAAE3H,KAAK,CAAC;EAC/C;EACAykG,WAAWA,CAACxkE,EAAE,EAAE5vD,IAAI,EAAE8C,KAAK,EAAE;IACzB,IAAI9C,IAAI,CAAClE,MAAM,CAAC,CAAC,CAAC,IAAI8+J,gBAAgB,IAAI56J,IAAI,IAAI66J,uBAAuB,EAAE;MACvE,IAAI,CAACvxG,iBAAiB,CAACsG,EAAE,EAAE,CAAC,CAAC9sD,KAAK,CAAC;IACvC,CAAC,MACI;MACD,IAAI,CAACi4J,QAAQ,CAAC3mC,WAAW,CAACxkE,EAAE,EAAE5vD,IAAI,EAAE8C,KAAK,CAAC;IAC9C;EACJ;EACA08H,QAAQA,CAACx6F,IAAI,EAAEliC,KAAK,EAAE;IAClB,IAAI,CAACi4J,QAAQ,CAACv7B,QAAQ,CAACx6F,IAAI,EAAEliC,KAAK,CAAC;EACvC;EACA+2C,MAAMA,CAAC/4C,MAAM,EAAE4yB,SAAS,EAAEn0B,QAAQ,EAAE;IAChC,OAAO,IAAI,CAACw7J,QAAQ,CAAClhH,MAAM,CAAC/4C,MAAM,EAAE4yB,SAAS,EAAEn0B,QAAQ,CAAC;EAC5D;EACA+pD,iBAAiBA,CAAC15B,OAAO,EAAE9sB,KAAK,EAAE;IAC9B,IAAI,CAACy7C,MAAM,CAAC+K,iBAAiB,CAAC15B,OAAO,EAAE9sB,KAAK,CAAC;EACjD;AACJ;AACA,MAAM04J,iBAAiB,SAASF,qBAAqB,CAAC;EAClDl6J,WAAWA,CAACi/B,OAAO,EAAEwa,WAAW,EAAEkgH,QAAQ,EAAEx8G,MAAM,EAAE;IAChD,KAAK,CAAC1D,WAAW,EAAEkgH,QAAQ,EAAEx8G,MAAM,CAAC;IACpC,IAAI,CAACle,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACwa,WAAW,GAAGA,WAAW;EAClC;EACAu5E,WAAWA,CAACxkE,EAAE,EAAE5vD,IAAI,EAAE8C,KAAK,EAAE;IACzB,IAAI9C,IAAI,CAAClE,MAAM,CAAC,CAAC,CAAC,IAAI8+J,gBAAgB,EAAE;MACpC,IAAI56J,IAAI,CAAClE,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,IAAIkE,IAAI,IAAI66J,uBAAuB,EAAE;QAC1D/3J,KAAK,GAAGA,KAAK,KAAKw6B,SAAS,GAAG,IAAI,GAAG,CAAC,CAACx6B,KAAK;QAC5C,IAAI,CAACwmD,iBAAiB,CAACsG,EAAE,EAAE9sD,KAAK,CAAC;MACrC,CAAC,MACI;QACD,IAAI,CAACy7C,MAAM,CAACljB,OAAO,CAAC,IAAI,CAACwf,WAAW,EAAE+U,EAAE,EAAE5vD,IAAI,CAAC7D,MAAM,CAAC,CAAC,CAAC,EAAE2G,KAAK,CAAC;MACpE;IACJ,CAAC,MACI;MACD,IAAI,CAACi4J,QAAQ,CAAC3mC,WAAW,CAACxkE,EAAE,EAAE5vD,IAAI,EAAE8C,KAAK,CAAC;IAC9C;EACJ;EACA+2C,MAAMA,CAAC/4C,MAAM,EAAE4yB,SAAS,EAAEn0B,QAAQ,EAAE;IAChC,IAAIm0B,SAAS,CAAC53B,MAAM,CAAC,CAAC,CAAC,IAAI8+J,gBAAgB,EAAE;MACzC,MAAMhrI,OAAO,GAAG2sI,wBAAwB,CAACz7J,MAAM,CAAC;MAChD,IAAId,IAAI,GAAG0zB,SAAS,CAACv3B,MAAM,CAAC,CAAC,CAAC;MAC9B,IAAIy+B,KAAK,GAAG,EAAE;MACd;MACA;MACA,IAAI56B,IAAI,CAAClE,MAAM,CAAC,CAAC,CAAC,IAAI8+J,gBAAgB,EAAE;QACpC,CAAC56J,IAAI,EAAE46B,KAAK,CAAC,GAAG4hI,wBAAwB,CAACx8J,IAAI,CAAC;MAClD;MACA,OAAO,IAAI,CAACu+C,MAAM,CAAC1E,MAAM,CAAC,IAAI,CAACgB,WAAW,EAAEjrB,OAAO,EAAE5vB,IAAI,EAAE46B,KAAK,EAAE8B,KAAK,IAAI;QACvE,MAAM+/H,OAAO,GAAG//H,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC2D,OAAO,CAACs7H,wBAAwB,CAACc,OAAO,EAAEl9J,QAAQ,EAAEm9B,KAAK,CAAC;MACnE,CAAC,CAAC;IACN;IACA,OAAO,IAAI,CAACq+H,QAAQ,CAAClhH,MAAM,CAAC/4C,MAAM,EAAE4yB,SAAS,EAAEn0B,QAAQ,CAAC;EAC5D;AACJ;AACA,SAASg9J,wBAAwBA,CAACz7J,MAAM,EAAE;EACtC,QAAQA,MAAM;IACV,KAAK,MAAM;MACP,OAAO2nB,QAAQ,CAACG,IAAI;IACxB,KAAK,UAAU;MACX,OAAOH,QAAQ;IACnB,KAAK,QAAQ;MACT,OAAOhL,MAAM;IACjB;MACI,OAAO3c,MAAM;EACrB;AACJ;AACA,SAAS07J,wBAAwBA,CAACr/H,WAAW,EAAE;EAC3C,MAAMu/H,QAAQ,GAAGv/H,WAAW,CAAC3gC,OAAO,CAAC,GAAG,CAAC;EACzC,MAAMggD,OAAO,GAAGrf,WAAW,CAAC51B,SAAS,CAAC,CAAC,EAAEm1J,QAAQ,CAAC;EAClD,MAAM9hI,KAAK,GAAGuC,WAAW,CAAChhC,MAAM,CAACugK,QAAQ,GAAG,CAAC,CAAC;EAC9C,OAAO,CAAClgH,OAAO,EAAE5hB,KAAK,CAAC;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM+hI,yBAAyB,SAAS1wG,4EAAgB,CAAC;EACrD7qD,WAAWA,CAACskE,GAAG,EAAEjqC,MAAM,EAAEC,UAAU,EAAE;IACjC,KAAK,CAACgqC,GAAG,CAAC98C,IAAI,EAAE6S,MAAM,EAAEC,UAAU,CAAC;EACvC;EACAo2B,WAAWA,CAAA,EAAG;IACV,IAAI,CAAC/vD,KAAK,CAAC,CAAC;EAChB;AACJ;AACA46J,yBAAyB,CAAC18H,IAAI,YAAA28H,kCAAA50J,CAAA;EAAA,YAAAA,CAAA,IAAwF20J,yBAAyB,EAvVrCplI,sDAAE,CAuVqDs1B,qDAAQ,GAvV/Dt1B,sDAAE,CAuV0Eg2B,wEAAkB,GAvV9Fh2B,sDAAE,CAuVyGg2B,qFAA4B;AAAA,CAA6C;AAC9RovG,yBAAyB,CAACx8H,KAAK,kBAxV2E5I,gEAAE;EAAAxb,KAAA,EAwVc4gJ,yBAAyB;EAAAt8H,OAAA,EAAzBs8H,yBAAyB,CAAA18H;AAAA,EAAG;AACtJ;EAAA,QAAAtI,SAAA,oBAAAA,SAAA,KAzV0GJ,+DAAE,CAyVjBolI,yBAAyB,EAAc,CAAC;IACvHliK,IAAI,EAAEg9B,qDAAUA;EACpB,CAAC,CAAC,EAAkB,YAAY;IAChC,OAAO,CAAC;MAAEh9B,IAAI,EAAE6iC,SAAS;MAAE61B,UAAU,EAAE,CAAC;QACxB14D,IAAI,EAAEqyD,iDAAM;QACZttD,IAAI,EAAE,CAACqtD,qDAAQ;MACnB,CAAC;IAAE,CAAC,EAAE;MAAEpyD,IAAI,EAAE8yD,wEAAkBhtB;IAAC,CAAC,EAAE;MAAE9lC,IAAI,EAAE8yD,qFAA4BrB;IAAC,CAAC,CAAC;EAC3F,CAAC;AAAA;AACL,SAAS2wG,iCAAiCA,CAAA,EAAG;EACzC,OAAO,IAAItwG,yFAA6B,CAAC,CAAC;AAC9C;AACA,SAASuwG,0BAA0BA,CAACjnC,QAAQ,EAAEt3E,MAAM,EAAEyyD,IAAI,EAAE;EACxD,OAAO,IAAI8pD,wBAAwB,CAACjlC,QAAQ,EAAEt3E,MAAM,EAAEyyD,IAAI,CAAC;AAC/D;AACA;AACA;AACA;AACA,MAAMsuC,qBAAqB,GAAG,IAAIpyF,yDAAc,CAAC,qBAAqB,CAAC;AACvE,MAAM6vG,0BAA0B,GAAG,CAC/B;EAAE7yF,OAAO,EAAE6vF,iEAAgB;EAAEp5D,QAAQ,EAAEs5D;AAAwB,CAAC,EAChE;EAAE/vF,OAAO,EAAEhe,qFAAyB;EAAE++B,UAAU,EAAE4xE;AAAkC,CAAC,EACrF;EAAE3yF,OAAO,EAAEje,4EAAgB;EAAE00C,QAAQ,EAAEg8D;AAA0B,CAAC,EAAE;EAChEzyF,OAAO,EAAE0vF,2DAAgB;EACzB3uE,UAAU,EAAE6xE,0BAA0B;EACtC9xE,IAAI,EAAE,CAAC6uE,8EAAoB,EAAE5tG,4EAAgB,EAAEsQ,iDAAM;AACzD,CAAC,CACJ;AACD;AACA;AACA;AACA;AACA,MAAMygG,4BAA4B,GAAG,CACjC;EAAE9yF,OAAO,EAAE3pC,wEAAe;EAAE0qD,UAAU,EAAEA,CAAA,KAAM,IAAI5+B,gFAAoB,CAAC;AAAE,CAAC,EAC1E;EAAE6d,OAAO,EAAEo1E,qBAAqB;EAAE/rB,QAAQ,EAAE;AAAoB,CAAC,EAAE,GAAGwpC,0BAA0B,CACnG;AACD;AACA;AACA;AACA;AACA,MAAME,iCAAiC,GAAG,CACtC;EAAE/yF,OAAO,EAAE3pC,wEAAe;EAAEogE,QAAQ,EAAEx0C,gFAAoBA;AAAC,CAAC,EAC5D;EAAE+d,OAAO,EAAEo1E,qBAAqB;EAAE/rB,QAAQ,EAAE;AAAiB,CAAC,EAAE,GAAGwpC,0BAA0B,CAChG;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,uBAAuB,CAAC;EAC1B;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,OAAO3oB,UAAUA,CAACj4H,MAAM,EAAE;IACtB,OAAO;MACH+2G,QAAQ,EAAE6pC,uBAAuB;MACjC9yF,SAAS,EAAE9tD,MAAM,CAACgtC,iBAAiB,GAAG2zG,iCAAiC,GACnED;IACR,CAAC;EACL;AACJ;AACAE,uBAAuB,CAACj9H,IAAI,YAAAk9H,gCAAAn1J,CAAA;EAAA,YAAAA,CAAA,IAAwFk1J,uBAAuB;AAAA,CAAkD;AAC7LA,uBAAuB,CAAC90F,IAAI,kBA3a8E7wC,8DAAE;EAAA98B,IAAA,EA2aSyiK,uBAAuB;EAAA10F,OAAA,GAAYsxF,oEAAa;AAAA,EAAI;AACzKoD,uBAAuB,CAACz0F,IAAI,kBA5a8ElxC,8DAAE;EAAA6yC,SAAA,EA4a6C4yF,4BAA4B;EAAAz0F,OAAA,GAAYuxF,oEAAa;AAAA,EAAI;AAClN;EAAA,QAAAniI,SAAA,oBAAAA,SAAA,KA7a0GJ,+DAAE,CA6ajB2lI,uBAAuB,EAAc,CAAC;IACrHziK,IAAI,EAAE6yD,mDAAQ;IACd9tD,IAAI,EAAE,CAAC;MACCgpE,OAAO,EAAE,CAACsxF,oEAAa,CAAC;MACxB1vF,SAAS,EAAE4yF;IACf,CAAC;EACT,CAAC,CAAC;AAAA;AACV;AACA;AACA;AACA;AACA,MAAMI,oBAAoB,CAAC;AAE3BA,oBAAoB,CAACn9H,IAAI,YAAAo9H,6BAAAr1J,CAAA;EAAA,YAAAA,CAAA,IAAwFo1J,oBAAoB;AAAA,CAAkD;AACvLA,oBAAoB,CAACh1F,IAAI,kBA3biF7wC,8DAAE;EAAA98B,IAAA,EA2bM2iK,oBAAoB;EAAA50F,OAAA,GAAYsxF,oEAAa;AAAA,EAAI;AACnKsD,oBAAoB,CAAC30F,IAAI,kBA5biFlxC,8DAAE;EAAA6yC,SAAA,EA4buC6yF,iCAAiC;EAAA10F,OAAA,GAAYuxF,oEAAa;AAAA,EAAI;AACjN;EAAA,QAAAniI,SAAA,oBAAAA,SAAA,KA7b0GJ,+DAAE,CA6bjB6lI,oBAAoB,EAAc,CAAC;IAClH3iK,IAAI,EAAE6yD,mDAAQ;IACd9tD,IAAI,EAAE,CAAC;MACCgpE,OAAO,EAAE,CAACsxF,oEAAa,CAAC;MACxB1vF,SAAS,EAAE6yF;IACf,CAAC;EACT,CAAC,CAAC;AAAA;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3gBA;AACA;AACA;AACA;AACA;;AAEwJ;AAC9G;AACN;AACqsB;;AAEzuB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMiC,wBAAwB,SAASj3C,2DAAW,CAAC;EAC/C7mH,WAAWA,CAAA,EAAG;IACV,KAAK,CAAC,GAAGvB,SAAS,CAAC;IACnB,IAAI,CAACs/J,iBAAiB,GAAG,IAAI;EACjC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,iBAAiB,SAASF,wBAAwB,CAAC;EACrD,OAAOG,WAAWA,CAAA,EAAG;IACjB52C,sEAAkB,CAAC,IAAI22C,iBAAiB,CAAC,CAAC,CAAC;EAC/C;EACAE,WAAWA,CAAC1vG,EAAE,EAAE3pD,GAAG,EAAE/D,QAAQ,EAAE;IAC3B0tD,EAAE,CAACrE,gBAAgB,CAACtlD,GAAG,EAAE/D,QAAQ,EAAE,KAAK,CAAC;IACzC;IACA;IACA,OAAO,MAAM;MACT0tD,EAAE,CAACgL,mBAAmB,CAAC30D,GAAG,EAAE/D,QAAQ,EAAE,KAAK,CAAC;IAChD,CAAC;EACL;EACA2xB,aAAaA,CAAC+7B,EAAE,EAAE3pD,GAAG,EAAE;IACnB2pD,EAAE,CAAC/7B,aAAa,CAAC5tB,GAAG,CAAC;EACzB;EACA+S,MAAMA,CAACgsB,IAAI,EAAE;IACT,IAAIA,IAAI,CAAC5G,UAAU,EAAE;MACjB4G,IAAI,CAAC5G,UAAU,CAACixF,WAAW,CAACrqF,IAAI,CAAC;IACrC;EACJ;EACAitB,aAAaA,CAACstG,OAAO,EAAE75F,GAAG,EAAE;IACxBA,GAAG,GAAGA,GAAG,IAAI,IAAI,CAAC85F,kBAAkB,CAAC,CAAC;IACtC,OAAO95F,GAAG,CAACzT,aAAa,CAACstG,OAAO,CAAC;EACrC;EACAE,kBAAkBA,CAAA,EAAG;IACjB,OAAOh3I,QAAQ,CAACknG,cAAc,CAACC,kBAAkB,CAAC,WAAW,CAAC;EAClE;EACA4vC,kBAAkBA,CAAA,EAAG;IACjB,OAAO/2I,QAAQ;EACnB;EACA64B,aAAaA,CAACtc,IAAI,EAAE;IAChB,OAAOA,IAAI,CAAC3M,QAAQ,KAAK+tC,IAAI,CAACtT,YAAY;EAC9C;EACA4sG,YAAYA,CAAC16H,IAAI,EAAE;IACf,OAAOA,IAAI,YAAY26H,gBAAgB;EAC3C;EACA;EACAx8D,oBAAoBA,CAACz9B,GAAG,EAAE5kE,MAAM,EAAE;IAC9B,IAAIA,MAAM,KAAK,QAAQ,EAAE;MACrB,OAAO2c,MAAM;IACjB;IACA,IAAI3c,MAAM,KAAK,UAAU,EAAE;MACvB,OAAO4kE,GAAG;IACd;IACA,IAAI5kE,MAAM,KAAK,MAAM,EAAE;MACnB,OAAO4kE,GAAG,CAAC98C,IAAI;IACnB;IACA,OAAO,IAAI;EACf;EACAq6E,WAAWA,CAACv9B,GAAG,EAAE;IACb,MAAMrhD,IAAI,GAAGu7I,kBAAkB,CAAC,CAAC;IACjC,OAAOv7I,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG1U,YAAY,CAAC0U,IAAI,CAAC;EACnD;EACAw7I,gBAAgBA,CAAA,EAAG;IACfC,WAAW,GAAG,IAAI;EACtB;EACAnqC,YAAYA,CAAA,EAAG;IACX,OAAOl4G,MAAM,CAACwrD,SAAS,CAAC0jB,SAAS;EACrC;EACAozE,SAASA,CAAC//J,IAAI,EAAE;IACZ,OAAOwoH,qEAAiB,CAAC//F,QAAQ,CAACuwF,MAAM,EAAEh5G,IAAI,CAAC;EACnD;AACJ;AACA,IAAI8/J,WAAW,GAAG,IAAI;AACtB,SAASF,kBAAkBA,CAAA,EAAG;EAC1BE,WAAW,GAAGA,WAAW,IAAIr3I,QAAQ,CAACkW,aAAa,CAAC,MAAM,CAAC;EAC3D,OAAOmhI,WAAW,GAAGA,WAAW,CAAC3vG,YAAY,CAAC,MAAM,CAAC,GAAG,IAAI;AAChE;AACA;AACA,IAAI6vG,cAAc;AAClB,SAASrwJ,YAAYA,CAAC0mB,GAAG,EAAE;EACvB2pI,cAAc,GAAGA,cAAc,IAAIv3I,QAAQ,CAACwpC,aAAa,CAAC,GAAG,CAAC;EAC9D+tG,cAAc,CAAC/8H,YAAY,CAAC,MAAM,EAAE5M,GAAG,CAAC;EACxC,MAAM4pI,QAAQ,GAAGD,cAAc,CAACx8D,QAAQ;EACxC,OAAOy8D,QAAQ,CAACnkK,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,GAAGmkK,QAAQ,GAAG,IAAIA,QAAQ,EAAE;AACjE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,aAAa,GAAG,IAAIhzG,yDAAc,CAAC,eAAe,CAAC;AACzD,SAASizG,qBAAqBA,CAACC,YAAY,EAAE33I,QAAQ,EAAEonE,QAAQ,EAAE;EAC7D,OAAO,MAAM;IACT;IACA;IACAA,QAAQ,CAACpxE,GAAG,CAACk/I,gEAAqB,CAAC,CAAC0C,WAAW,CAAC9/J,IAAI,CAAC,MAAM;MACvD,MAAM+/J,GAAG,GAAG/3C,2DAAO,CAAC,CAAC;MACrB,MAAMlmF,MAAM,GAAG5Z,QAAQ,CAACgW,gBAAgB,CAAC,wBAAwB2hI,YAAY,IAAI,CAAC;MAClF,KAAK,IAAI7kK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG8mC,MAAM,CAAC5mC,MAAM,EAAEF,CAAC,EAAE,EAAE;QACpC+kK,GAAG,CAACtnJ,MAAM,CAACqpB,MAAM,CAAC9mC,CAAC,CAAC,CAAC;MACzB;IACJ,CAAC,CAAC;EACN,CAAC;AACL;AACA,MAAMglK,2BAA2B,GAAG,CAChC;EACIr2F,OAAO,EAAE0zF,0DAAe;EACxB3yE,UAAU,EAAEk1E,qBAAqB;EACjCn1E,IAAI,EAAE,CAACk1E,aAAa,EAAErzG,qDAAQ,EAAE07B,mDAAQ,CAAC;EACzCtqD,KAAK,EAAE;AACX,CAAC,CACJ;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMuiI,qBAAqB,CAAC;EACxB,OAAOrmH,IAAIA,CAAA,EAAG;IACV0jH,mEAAoB,CAAC,IAAI2C,qBAAqB,CAAC,CAAC,CAAC;EACrD;EACAC,WAAWA,CAACC,QAAQ,EAAE;IAClB9I,2EAAgC,GAAG,CAACl5H,IAAI,EAAEiiI,eAAe,GAAG,IAAI,KAAK;MACjE,MAAMC,WAAW,GAAGF,QAAQ,CAACG,qBAAqB,CAACniI,IAAI,EAAEiiI,eAAe,CAAC;MACzE,IAAIC,WAAW,IAAI,IAAI,EAAE;QACrB,MAAM,IAAIxkK,KAAK,CAAC,yCAAyC,CAAC;MAC9D;MACA,OAAOwkK,WAAW;IACtB,CAAC;IACDhJ,gFAAqC,GAAG,MAAM8I,QAAQ,CAACI,mBAAmB,CAAC,CAAC;IAC5ElJ,+EAAoC,GAAG,MAAM8I,QAAQ,CAACK,kBAAkB,CAAC,CAAC;IAC1E,MAAMC,aAAa,GAAGA,CAACzhK,QAAQ,CAAC,sBAAsB;MAClD,MAAM0hK,aAAa,GAAGrJ,gFAAqC,CAAC,CAAC;MAC7D,IAAIjoF,KAAK,GAAGsxF,aAAa,CAACxlK,MAAM;MAChC,IAAIylK,OAAO,GAAG,KAAK;MACnB,MAAMC,SAAS,GAAG,SAAAA,CAAUC,QAAQ,CAAC,mBAAmB;QACpDF,OAAO,GAAGA,OAAO,IAAIE,QAAQ;QAC7BzxF,KAAK,EAAE;QACP,IAAIA,KAAK,IAAI,CAAC,EAAE;UACZpwE,QAAQ,CAAC2hK,OAAO,CAAC;QACrB;MACJ,CAAC;MACDD,aAAa,CAACvxJ,OAAO,CAAC,UAAUkxJ,WAAW,CAAC,mBAAmB;QAC3DA,WAAW,CAACS,UAAU,CAACF,SAAS,CAAC;MACrC,CAAC,CAAC;IACN,CAAC;IACD,IAAI,CAACvJ,0EAA+B,EAAE;MAClCA,0EAA+B,GAAG,EAAE;IACxC;IACAA,+EAAoC,CAACoJ,aAAa,CAAC;EACvD;EACAH,qBAAqBA,CAACH,QAAQ,EAAEhiI,IAAI,EAAEiiI,eAAe,EAAE;IACnD,IAAIjiI,IAAI,IAAI,IAAI,EAAE;MACd,OAAO,IAAI;IACf;IACA,MAAM12B,CAAC,GAAG04J,QAAQ,CAACY,cAAc,CAAC5iI,IAAI,CAAC;IACvC,IAAI12B,CAAC,IAAI,IAAI,EAAE;MACX,OAAOA,CAAC;IACZ,CAAC,MACI,IAAI,CAAC24J,eAAe,EAAE;MACvB,OAAO,IAAI;IACf;IACA,IAAIp4C,2DAAO,CAAC,CAAC,CAACm3C,YAAY,CAAChhI,IAAI,CAAC,EAAE;MAC9B,OAAO,IAAI,CAACmiI,qBAAqB,CAACH,QAAQ,EAAEhiI,IAAI,CAACL,IAAI,EAAE,IAAI,CAAC;IAChE;IACA,OAAO,IAAI,CAACwiI,qBAAqB,CAACH,QAAQ,EAAEhiI,IAAI,CAAC0lC,aAAa,EAAE,IAAI,CAAC;EACzE;AACJ;;AAEA;AACA;AACA;AACA,MAAMm9F,UAAU,CAAC;EACbl5H,KAAKA,CAAA,EAAG;IACJ,OAAO,IAAI7R,cAAc,CAAC,CAAC;EAC/B;AACJ;AACA+qI,UAAU,CAACthI,IAAI,YAAAuhI,mBAAAx5J,CAAA;EAAA,YAAAA,CAAA,IAAwFu5J,UAAU;AAAA,CAAoD;AACrKA,UAAU,CAACphI,KAAK,kBAD6E5I,gEAAE;EAAAxb,KAAA,EACYwlJ,UAAU;EAAAlhI,OAAA,EAAVkhI,UAAU,CAAAthI;AAAA,EAAG;AACxH;EAAA,QAAAtI,SAAA,oBAAAA,SAAA,KAF6FJ,+DAAE,CAEJgqI,UAAU,EAAc,CAAC;IACxG9mK,IAAI,EAAEg9B,qDAAUA;EACpB,CAAC,CAAC;AAAA;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMgqI,qBAAqB,GAAG,IAAIv0G,yDAAc,CAAC,qBAAqB,CAAC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,MAAMw0G,YAAY,CAAC;EACf;AACJ;AACA;EACItgK,WAAWA,CAACugK,OAAO,EAAE/nB,KAAK,EAAE;IACxB,IAAI,CAACA,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACgoB,kBAAkB,GAAG,IAAInkI,GAAG,CAAC,CAAC;IACnCkkI,OAAO,CAACjyJ,OAAO,CAACiwC,CAAC,IAAIA,CAAC,CAACkiH,OAAO,GAAG,IAAI,CAAC;IACtC,IAAI,CAACC,QAAQ,GAAGH,OAAO,CAACpkK,KAAK,CAAC,CAAC,CAACo1G,OAAO,CAAC,CAAC;EAC7C;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIpnD,gBAAgBA,CAAC37B,OAAO,EAAE8D,SAAS,EAAEuwC,OAAO,EAAE;IAC1C,MAAM89F,MAAM,GAAG,IAAI,CAACC,cAAc,CAACtuI,SAAS,CAAC;IAC7C,OAAOquI,MAAM,CAACx2G,gBAAgB,CAAC37B,OAAO,EAAE8D,SAAS,EAAEuwC,OAAO,CAAC;EAC/D;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIg+F,sBAAsBA,CAACnhK,MAAM,EAAE4yB,SAAS,EAAEuwC,OAAO,EAAE;IAC/C,MAAM89F,MAAM,GAAG,IAAI,CAACC,cAAc,CAACtuI,SAAS,CAAC;IAC7C,OAAOquI,MAAM,CAACE,sBAAsB,CAACnhK,MAAM,EAAE4yB,SAAS,EAAEuwC,OAAO,CAAC;EACpE;EACA;AACJ;AACA;EACIi+F,OAAOA,CAAA,EAAG;IACN,OAAO,IAAI,CAACtoB,KAAK;EACrB;EACA;EACAooB,cAAcA,CAACtuI,SAAS,EAAE;IACtB,MAAMquI,MAAM,GAAG,IAAI,CAACH,kBAAkB,CAACnjJ,GAAG,CAACiV,SAAS,CAAC;IACrD,IAAIquI,MAAM,EAAE;MACR,OAAOA,MAAM;IACjB;IACA,MAAMJ,OAAO,GAAG,IAAI,CAACG,QAAQ;IAC7B,KAAK,IAAIvmK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGomK,OAAO,CAAClmK,MAAM,EAAEF,CAAC,EAAE,EAAE;MACrC,MAAMwmK,MAAM,GAAGJ,OAAO,CAACpmK,CAAC,CAAC;MACzB,IAAIwmK,MAAM,CAAC58C,QAAQ,CAACzxF,SAAS,CAAC,EAAE;QAC5B,IAAI,CAACkuI,kBAAkB,CAACt9J,GAAG,CAACovB,SAAS,EAAEquI,MAAM,CAAC;QAC9C,OAAOA,MAAM;MACjB;IACJ;IACA,MAAM,IAAI3lK,KAAK,CAAC,2CAA2Cs3B,SAAS,EAAE,CAAC;EAC3E;AACJ;AACAguI,YAAY,CAACzhI,IAAI,YAAAkiI,qBAAAn6J,CAAA;EAAA,YAAAA,CAAA,IAAwF05J,YAAY,EArFxBnqI,sDAAE,CAqFwCkqI,qBAAqB,GArF/DlqI,sDAAE,CAqF0EA,iDAAS;AAAA,CAA6C;AAC/NmqI,YAAY,CAACvhI,KAAK,kBAtF2E5I,gEAAE;EAAAxb,KAAA,EAsFc2lJ,YAAY;EAAArhI,OAAA,EAAZqhI,YAAY,CAAAzhI;AAAA,EAAG;AAC5H;EAAA,QAAAtI,SAAA,oBAAAA,SAAA,KAvF6FJ,+DAAE,CAuFJmqI,YAAY,EAAc,CAAC;IAC1GjnK,IAAI,EAAEg9B,qDAAUA;EACpB,CAAC,CAAC,EAAkB,YAAY;IAChC,OAAO,CAAC;MAAEh9B,IAAI,EAAE6iC,SAAS;MAAE61B,UAAU,EAAE,CAAC;QACxB14D,IAAI,EAAEqyD,iDAAM;QACZttD,IAAI,EAAE,CAACiiK,qBAAqB;MAChC,CAAC;IAAE,CAAC,EAAE;MAAEhnK,IAAI,EAAE88B,iDAASglC;IAAC,CAAC,CAAC;EAC1C,CAAC;AAAA;AACL,MAAM6lG,kBAAkB,CAAC;EACrBhhK,WAAWA,CAACwhG,IAAI,EAAE;IACd,IAAI,CAACA,IAAI,GAAGA,IAAI;EACpB;EACAq/D,sBAAsBA,CAACryI,OAAO,EAAE8D,SAAS,EAAEuwC,OAAO,EAAE;IAChD,MAAMnjE,MAAM,GAAGynH,2DAAO,CAAC,CAAC,CAACplB,oBAAoB,CAAC,IAAI,CAACP,IAAI,EAAEhzE,OAAO,CAAC;IACjE,IAAI,CAAC9uB,MAAM,EAAE;MACT,MAAM,IAAI1E,KAAK,CAAC,4BAA4B0E,MAAM,cAAc4yB,SAAS,EAAE,CAAC;IAChF;IACA,OAAO,IAAI,CAAC63B,gBAAgB,CAACzqD,MAAM,EAAE4yB,SAAS,EAAEuwC,OAAO,CAAC;EAC5D;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMo+F,gBAAgB,CAAC;EACnBjhK,WAAWA,CAAA,EAAG;IACV;IACA,IAAI,CAACkhK,UAAU,GAAG,IAAI/6H,GAAG,CAAC,CAAC;EAC/B;EACAg7H,SAASA,CAAClgI,MAAM,EAAE;IACd,MAAMmgI,SAAS,GAAG,IAAIj7H,GAAG,CAAC,CAAC;IAC3BlF,MAAM,CAAC3yB,OAAO,CAAC4nB,KAAK,IAAI;MACpB,IAAI,CAAC,IAAI,CAACgrI,UAAU,CAAC16H,GAAG,CAACtQ,KAAK,CAAC,EAAE;QAC7B,IAAI,CAACgrI,UAAU,CAACz4H,GAAG,CAACvS,KAAK,CAAC;QAC1BkrI,SAAS,CAAC34H,GAAG,CAACvS,KAAK,CAAC;MACxB;IACJ,CAAC,CAAC;IACF,IAAI,CAACmrI,aAAa,CAACD,SAAS,CAAC;EACjC;EACAC,aAAaA,CAACD,SAAS,EAAE,CAAE;EAC3BE,YAAYA,CAAA,EAAG;IACX,OAAOnmK,KAAK,CAAC+3B,IAAI,CAAC,IAAI,CAACguI,UAAU,CAAC;EACtC;AACJ;AACAD,gBAAgB,CAACpiI,IAAI,YAAA0iI,yBAAA36J,CAAA;EAAA,YAAAA,CAAA,IAAwFq6J,gBAAgB;AAAA,CAAoD;AACjLA,gBAAgB,CAACliI,KAAK,kBAxIuE5I,gEAAE;EAAAxb,KAAA,EAwIkBsmJ,gBAAgB;EAAAhiI,OAAA,EAAhBgiI,gBAAgB,CAAApiI;AAAA,EAAG;AACpI;EAAA,QAAAtI,SAAA,oBAAAA,SAAA,KAzI6FJ,+DAAE,CAyIJ8qI,gBAAgB,EAAc,CAAC;IAC9G5nK,IAAI,EAAEg9B,qDAAUA;EACpB,CAAC,CAAC;AAAA;AACV,MAAMmrI,mBAAmB,SAASP,gBAAgB,CAAC;EAC/CjhK,WAAWA,CAACwhG,IAAI,EAAE;IACd,KAAK,CAAC,CAAC;IACP,IAAI,CAACA,IAAI,GAAGA,IAAI;IAChB;IACA,IAAI,CAACigE,UAAU,GAAG,IAAIplI,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAColI,UAAU,CAACv+J,GAAG,CAACs+F,IAAI,CAACtU,IAAI,EAAE,EAAE,CAAC;EACtC;EACAw0E,gBAAgBA,CAACzgI,MAAM,EAAEhE,IAAI,EAAE0kI,UAAU,EAAE;IACvC1gI,MAAM,CAAC3yB,OAAO,CAAE4nB,KAAK,IAAK;MACtB,MAAM0rI,OAAO,GAAG,IAAI,CAACpgE,IAAI,CAAC3wC,aAAa,CAAC,OAAO,CAAC;MAChD+wG,OAAO,CAAC9wG,WAAW,GAAG56B,KAAK;MAC3ByrI,UAAU,CAAClnK,IAAI,CAACwiC,IAAI,CAAC+zB,WAAW,CAAC4wG,OAAO,CAAC,CAAC;IAC9C,CAAC,CAAC;EACN;EACAC,OAAOA,CAACC,QAAQ,EAAE;IACd,MAAMH,UAAU,GAAG,EAAE;IACrB,IAAI,CAACD,gBAAgB,CAAC,IAAI,CAACR,UAAU,EAAEY,QAAQ,EAAEH,UAAU,CAAC;IAC5D,IAAI,CAACF,UAAU,CAACv+J,GAAG,CAAC4+J,QAAQ,EAAEH,UAAU,CAAC;EAC7C;EACAI,UAAUA,CAACD,QAAQ,EAAE;IACjB,MAAMH,UAAU,GAAG,IAAI,CAACF,UAAU,CAACpkJ,GAAG,CAACykJ,QAAQ,CAAC;IAChD,IAAIH,UAAU,EAAE;MACZA,UAAU,CAACrzJ,OAAO,CAAC+wG,WAAW,CAAC;IACnC;IACA,IAAI,CAACoiD,UAAU,CAACvlH,MAAM,CAAC4lH,QAAQ,CAAC;EACpC;EACAT,aAAaA,CAACD,SAAS,EAAE;IACrB,IAAI,CAACK,UAAU,CAACnzJ,OAAO,CAAC,CAACqzJ,UAAU,EAAEG,QAAQ,KAAK;MAC9C,IAAI,CAACJ,gBAAgB,CAACN,SAAS,EAAEU,QAAQ,EAAEH,UAAU,CAAC;IAC1D,CAAC,CAAC;EACN;EACAjxG,WAAWA,CAAA,EAAG;IACV,IAAI,CAAC+wG,UAAU,CAACnzJ,OAAO,CAACqzJ,UAAU,IAAIA,UAAU,CAACrzJ,OAAO,CAAC+wG,WAAW,CAAC,CAAC;EAC1E;AACJ;AACAmiD,mBAAmB,CAAC3iI,IAAI,YAAAmjI,4BAAAp7J,CAAA;EAAA,YAAAA,CAAA,IAAwF46J,mBAAmB,EAhLtCrrI,sDAAE,CAgLsDs1B,qDAAQ;AAAA,CAA6C;AAC1M+1G,mBAAmB,CAACziI,KAAK,kBAjLoE5I,gEAAE;EAAAxb,KAAA,EAiLqB6mJ,mBAAmB;EAAAviI,OAAA,EAAnBuiI,mBAAmB,CAAA3iI;AAAA,EAAG;AAC1I;EAAA,QAAAtI,SAAA,oBAAAA,SAAA,KAlL6FJ,+DAAE,CAkLJqrI,mBAAmB,EAAc,CAAC;IACjHnoK,IAAI,EAAEg9B,qDAAUA;EACpB,CAAC,CAAC,EAAkB,YAAY;IAChC,OAAO,CAAC;MAAEh9B,IAAI,EAAE6iC,SAAS;MAAE61B,UAAU,EAAE,CAAC;QACxB14D,IAAI,EAAEqyD,iDAAM;QACZttD,IAAI,EAAE,CAACqtD,qDAAQ;MACnB,CAAC;IAAE,CAAC,CAAC;EACrB,CAAC;AAAA;AACL,SAAS4zD,WAAWA,CAAC4iD,SAAS,EAAE;EAC5B96C,2DAAO,CAAC,CAAC,CAACvvG,MAAM,CAACqqJ,SAAS,CAAC;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,cAAc,GAAG;EACnB,KAAK,EAAE,4BAA4B;EACnC,OAAO,EAAE,8BAA8B;EACvC,OAAO,EAAE,8BAA8B;EACvC,KAAK,EAAE,sCAAsC;EAC7C,OAAO,EAAE,+BAA+B;EACxC,MAAM,EAAE;AACZ,CAAC;AACD,MAAMC,eAAe,GAAG,SAAS;AACjC,MAAMv9H,WAAW,GAAG,OAAOrO,SAAS,KAAK,WAAW,IAAI,CAAC,CAACA,SAAS;AACnE,MAAM6rI,kBAAkB,GAAG,QAAQ;AACnC,MAAMC,SAAS,GAAG,WAAWD,kBAAkB,EAAE;AACjD,MAAME,YAAY,GAAG,cAAcF,kBAAkB,EAAE;AACvD,SAASG,oBAAoBA,CAACC,gBAAgB,EAAE;EAC5C,OAAOF,YAAY,CAACrnK,OAAO,CAACknK,eAAe,EAAEK,gBAAgB,CAAC;AAClE;AACA,SAASC,iBAAiBA,CAACD,gBAAgB,EAAE;EACzC,OAAOH,SAAS,CAACpnK,OAAO,CAACknK,eAAe,EAAEK,gBAAgB,CAAC;AAC/D;AACA,SAASrwH,aAAaA,CAACuwH,MAAM,EAAEzhI,MAAM,EAAEvhC,MAAM,EAAE;EAC3C,KAAK,IAAIvF,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG8mC,MAAM,CAAC5mC,MAAM,EAAEF,CAAC,EAAE,EAAE;IACpC,IAAI+7B,KAAK,GAAG+K,MAAM,CAAC9mC,CAAC,CAAC;IACrB,IAAIgB,KAAK,CAACZ,OAAO,CAAC27B,KAAK,CAAC,EAAE;MACtBic,aAAa,CAACuwH,MAAM,EAAExsI,KAAK,EAAEx2B,MAAM,CAAC;IACxC,CAAC,MACI;MACDw2B,KAAK,GAAGA,KAAK,CAACj7B,OAAO,CAACknK,eAAe,EAAEO,MAAM,CAAC;MAC9ChjK,MAAM,CAACjF,IAAI,CAACy7B,KAAK,CAAC;IACtB;EACJ;EACA,OAAOx2B,MAAM;AACjB;AACA,SAASijK,sBAAsBA,CAACC,YAAY,EAAE;EAC1C;EACA;EACA;EACA;EACA,OAAQtnI,KAAK,IAAK;IACd;IACA;IACA;IACA;IACA,IAAIA,KAAK,KAAK,cAAc,EAAE;MAC1B,OAAOsnI,YAAY;IACvB;IACA,MAAMC,oBAAoB,GAAGD,YAAY,CAACtnI,KAAK,CAAC;IAChD,IAAIunI,oBAAoB,KAAK,KAAK,EAAE;MAChC;MACAvnI,KAAK,CAAC+5B,cAAc,CAAC,CAAC;MACtB/5B,KAAK,CAACwnI,WAAW,GAAG,KAAK;IAC7B;IACA,OAAO5mI,SAAS;EACpB,CAAC;AACL;AACA,IAAI6mI,mCAAmC,GAAG,KAAK;AAC/C,MAAMC,mBAAmB,CAAC;EACtBhjK,WAAWA,CAACijK,YAAY,EAAEC,gBAAgB,EAAEC,KAAK,EAAE;IAC/C,IAAI,CAACF,YAAY,GAAGA,YAAY;IAChC,IAAI,CAACC,gBAAgB,GAAGA,gBAAgB;IACxC,IAAI,CAACC,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACC,gBAAgB,GAAG,IAAI/mI,GAAG,CAAC,CAAC;IACjC,IAAI,CAACgnI,eAAe,GAAG,IAAIC,mBAAmB,CAACL,YAAY,CAAC;EAChE;EACAhK,cAAcA,CAACzqI,OAAO,EAAEn1B,IAAI,EAAE;IAC1B,IAAI,CAACm1B,OAAO,IAAI,CAACn1B,IAAI,EAAE;MACnB,OAAO,IAAI,CAACgqK,eAAe;IAC/B;IACA,QAAQhqK,IAAI,CAACsjG,aAAa;MACtB,KAAKxK,qEAA0B;QAAE;UAC7B,IAAIsiC,QAAQ,GAAG,IAAI,CAAC2uC,gBAAgB,CAAC/lJ,GAAG,CAAChkB,IAAI,CAAC8Y,EAAE,CAAC;UACjD,IAAI,CAACsiH,QAAQ,EAAE;YACXA,QAAQ,GAAG,IAAI8uC,iCAAiC,CAAC,IAAI,CAACN,YAAY,EAAE,IAAI,CAACC,gBAAgB,EAAE7pK,IAAI,EAAE,IAAI,CAAC8pK,KAAK,CAAC;YAC5G,IAAI,CAACC,gBAAgB,CAAClgK,GAAG,CAAC7J,IAAI,CAAC8Y,EAAE,EAAEsiH,QAAQ,CAAC;UAChD;UACAA,QAAQ,CAAC+uC,WAAW,CAACh1I,OAAO,CAAC;UAC7B,OAAOimG,QAAQ;QACnB;MACA;MACA;MACA,KAAK,CAAC;MACN,KAAKtiC,sEAA2B;QAC5B;QACA,IAAI,CAAC,OAAO57D,SAAS,KAAK,WAAW,IAAIA,SAAS;QAC9C;QACA;QACA;QACA,CAACwsI,mCAAmC,IAAI1pK,IAAI,CAACsjG,aAAa,KAAK,CAAC,EAAE;UAClEomE,mCAAmC,GAAG,IAAI;UAC1C99H,OAAO,CAACC,IAAI,CAAC,oIAAoI,CAAC;QACtJ;QACA,OAAO,IAAIw+H,iBAAiB,CAAC,IAAI,CAACT,YAAY,EAAE,IAAI,CAACC,gBAAgB,EAAE10I,OAAO,EAAEn1B,IAAI,CAAC;MACzF;QAAS;UACL,IAAI,CAAC,IAAI,CAAC+pK,gBAAgB,CAAC58H,GAAG,CAACntC,IAAI,CAAC8Y,EAAE,CAAC,EAAE;YACrC,MAAM8uB,MAAM,GAAGkR,aAAa,CAAC94C,IAAI,CAAC8Y,EAAE,EAAE9Y,IAAI,CAAC4nC,MAAM,EAAE,EAAE,CAAC;YACtD,IAAI,CAACiiI,gBAAgB,CAAC/B,SAAS,CAAClgI,MAAM,CAAC;YACvC,IAAI,CAACmiI,gBAAgB,CAAClgK,GAAG,CAAC7J,IAAI,CAAC8Y,EAAE,EAAE,IAAI,CAACkxJ,eAAe,CAAC;UAC5D;UACA,OAAO,IAAI,CAACA,eAAe;QAC/B;IACJ;EACJ;EACAhJ,KAAKA,CAAA,EAAG,CAAE;EACV35J,GAAGA,CAAA,EAAG,CAAE;AACZ;AACAsiK,mBAAmB,CAACnkI,IAAI,YAAA8kI,4BAAA/8J,CAAA;EAAA,YAAAA,CAAA,IAAwFo8J,mBAAmB,EA7StC7sI,sDAAE,CA6SsDmqI,YAAY,GA7SpEnqI,sDAAE,CA6S+EqrI,mBAAmB,GA7SpGrrI,sDAAE,CA6S+GumI,iDAAM;AAAA,CAA6C;AACjQsG,mBAAmB,CAACjkI,KAAK,kBA9SoE5I,gEAAE;EAAAxb,KAAA,EA8SqBqoJ,mBAAmB;EAAA/jI,OAAA,EAAnB+jI,mBAAmB,CAAAnkI;AAAA,EAAG;AAC1I;EAAA,QAAAtI,SAAA,oBAAAA,SAAA,KA/S6FJ,+DAAE,CA+SJ6sI,mBAAmB,EAAc,CAAC;IACjH3pK,IAAI,EAAEg9B,qDAAUA;EACpB,CAAC,CAAC,EAAkB,YAAY;IAChC,OAAO,CAAC;MAAEh9B,IAAI,EAAEinK;IAAa,CAAC,EAAE;MAAEjnK,IAAI,EAAEmoK;IAAoB,CAAC,EAAE;MAAEnoK,IAAI,EAAE6iC,SAAS;MAAE61B,UAAU,EAAE,CAAC;QAC/E14D,IAAI,EAAEqyD,iDAAM;QACZttD,IAAI,EAAE,CAACs+J,iDAAM;MACjB,CAAC;IAAE,CAAC,CAAC;EACrB,CAAC;AAAA;AACL,MAAM4G,mBAAmB,CAAC;EACtBtjK,WAAWA,CAACijK,YAAY,EAAE;IACtB,IAAI,CAACA,YAAY,GAAGA,YAAY;IAChC,IAAI,CAAC7jK,IAAI,GAAG7B,MAAM,CAACsZ,MAAM,CAAC,IAAI,CAAC;IAC/B,IAAI,CAAC4jJ,WAAW,GAAG,IAAI;EAC3B;EACAliH,OAAOA,CAAA,EAAG,CAAE;EACZsY,aAAaA,CAACjyD,IAAI,EAAE87J,SAAS,EAAE;IAC3B,IAAIA,SAAS,EAAE;MACX;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA,OAAOrzI,QAAQ,CAACu8I,eAAe,CAAC1B,cAAc,CAACxH,SAAS,CAAC,IAAIA,SAAS,EAAE97J,IAAI,CAAC;IACjF;IACA,OAAOyoB,QAAQ,CAACwpC,aAAa,CAACjyD,IAAI,CAAC;EACvC;EACA6wF,aAAaA,CAAC/tF,KAAK,EAAE;IACjB,OAAO2lB,QAAQ,CAACooE,aAAa,CAAC/tF,KAAK,CAAC;EACxC;EACAi5J,UAAUA,CAACj5J,KAAK,EAAE;IACd,OAAO2lB,QAAQ,CAACw8I,cAAc,CAACniK,KAAK,CAAC;EACzC;EACAsvD,WAAWA,CAACj7C,MAAM,EAAE6kJ,QAAQ,EAAE;IAC1B7kJ,MAAM,CAACi7C,WAAW,CAAC4pG,QAAQ,CAAC;EAChC;EACAz6G,YAAYA,CAACpqC,MAAM,EAAE6kJ,QAAQ,EAAEC,QAAQ,EAAE;IACrC,IAAI9kJ,MAAM,EAAE;MACRA,MAAM,CAACoqC,YAAY,CAACy6G,QAAQ,EAAEC,QAAQ,CAAC;IAC3C;EACJ;EACA5sC,WAAWA,CAACl4G,MAAM,EAAEglJ,QAAQ,EAAE;IAC1B,IAAIhlJ,MAAM,EAAE;MACRA,MAAM,CAACk4G,WAAW,CAAC8sC,QAAQ,CAAC;IAChC;EACJ;EACAC,iBAAiBA,CAACC,cAAc,EAAEC,eAAe,EAAE;IAC/C,IAAI1sG,EAAE,GAAG,OAAOysG,cAAc,KAAK,QAAQ,GAAG5zI,QAAQ,CAACkW,aAAa,CAAC09H,cAAc,CAAC,GAChFA,cAAc;IAClB,IAAI,CAACzsG,EAAE,EAAE;MACL,MAAM,IAAIxzD,KAAK,CAAC,iBAAiBigK,cAAc,8BAA8B,CAAC;IAClF;IACA,IAAI,CAACC,eAAe,EAAE;MAClB1sG,EAAE,CAACsC,WAAW,GAAG,EAAE;IACvB;IACA,OAAOtC,EAAE;EACb;EACAxxB,UAAUA,CAAC4G,IAAI,EAAE;IACb,OAAOA,IAAI,CAAC5G,UAAU;EAC1B;EACA28B,WAAWA,CAAC/1B,IAAI,EAAE;IACd,OAAOA,IAAI,CAAC+1B,WAAW;EAC3B;EACA93B,YAAYA,CAAC2sB,EAAE,EAAE5vD,IAAI,EAAE8C,KAAK,EAAEg5J,SAAS,EAAE;IACrC,IAAIA,SAAS,EAAE;MACX97J,IAAI,GAAG87J,SAAS,GAAG,GAAG,GAAG97J,IAAI;MAC7B,MAAMklK,YAAY,GAAG5B,cAAc,CAACxH,SAAS,CAAC;MAC9C,IAAIoJ,YAAY,EAAE;QACdt1G,EAAE,CAACu1G,cAAc,CAACD,YAAY,EAAEllK,IAAI,EAAE8C,KAAK,CAAC;MAChD,CAAC,MACI;QACD8sD,EAAE,CAAC3sB,YAAY,CAACjjC,IAAI,EAAE8C,KAAK,CAAC;MAChC;IACJ,CAAC,MACI;MACD8sD,EAAE,CAAC3sB,YAAY,CAACjjC,IAAI,EAAE8C,KAAK,CAAC;IAChC;EACJ;EACAotD,eAAeA,CAACN,EAAE,EAAE5vD,IAAI,EAAE87J,SAAS,EAAE;IACjC,IAAIA,SAAS,EAAE;MACX,MAAMoJ,YAAY,GAAG5B,cAAc,CAACxH,SAAS,CAAC;MAC9C,IAAIoJ,YAAY,EAAE;QACdt1G,EAAE,CAACw1G,iBAAiB,CAACF,YAAY,EAAEllK,IAAI,CAAC;MAC5C,CAAC,MACI;QACD4vD,EAAE,CAACM,eAAe,CAAC,GAAG4rG,SAAS,IAAI97J,IAAI,EAAE,CAAC;MAC9C;IACJ,CAAC,MACI;MACD4vD,EAAE,CAACM,eAAe,CAAClwD,IAAI,CAAC;IAC5B;EACJ;EACAi8C,QAAQA,CAAC2T,EAAE,EAAE5vD,IAAI,EAAE;IACf4vD,EAAE,CAACzN,SAAS,CAACtY,GAAG,CAAC7pC,IAAI,CAAC;EAC1B;EACAk9C,WAAWA,CAAC0S,EAAE,EAAE5vD,IAAI,EAAE;IAClB4vD,EAAE,CAACzN,SAAS,CAACnpC,MAAM,CAAChZ,IAAI,CAAC;EAC7B;EACAwgH,QAAQA,CAAC5wD,EAAE,EAAEt4B,KAAK,EAAEx0B,KAAK,EAAE6sB,KAAK,EAAE;IAC9B,IAAIA,KAAK,IAAIouI,uEAA4B,GAAGA,wEAA6B,CAAC,EAAE;MACxEnuG,EAAE,CAACt4B,KAAK,CAAC88F,WAAW,CAAC98F,KAAK,EAAEx0B,KAAK,EAAE6sB,KAAK,GAAGouI,wEAA6B,GAAG,WAAW,GAAG,EAAE,CAAC;IAChG,CAAC,MACI;MACDnuG,EAAE,CAACt4B,KAAK,CAACA,KAAK,CAAC,GAAGx0B,KAAK;IAC3B;EACJ;EACA29G,WAAWA,CAAC7wD,EAAE,EAAEt4B,KAAK,EAAE3H,KAAK,EAAE;IAC1B,IAAIA,KAAK,GAAGouI,uEAA4B,EAAE;MACtCnuG,EAAE,CAACt4B,KAAK,CAACiuI,cAAc,CAACjuI,KAAK,CAAC;IAClC,CAAC,MACI;MACD;MACA;MACAs4B,EAAE,CAACt4B,KAAK,CAACA,KAAK,CAAC,GAAG,EAAE;IACxB;EACJ;EACA88F,WAAWA,CAACxkE,EAAE,EAAE5vD,IAAI,EAAE8C,KAAK,EAAE;IACzBkjC,WAAW,IAAIw/H,oBAAoB,CAACxlK,IAAI,EAAE,UAAU,CAAC;IACrD4vD,EAAE,CAAC5vD,IAAI,CAAC,GAAG8C,KAAK;EACpB;EACA08H,QAAQA,CAACx6F,IAAI,EAAEliC,KAAK,EAAE;IAClBkiC,IAAI,CAACygI,SAAS,GAAG3iK,KAAK;EAC1B;EACA+2C,MAAMA,CAAC/4C,MAAM,EAAE47B,KAAK,EAAEn9B,QAAQ,EAAE;IAC5BymC,WAAW,IAAIw/H,oBAAoB,CAAC9oI,KAAK,EAAE,UAAU,CAAC;IACtD,IAAI,OAAO57B,MAAM,KAAK,QAAQ,EAAE;MAC5B,OAAO,IAAI,CAACujK,YAAY,CAACpC,sBAAsB,CAACnhK,MAAM,EAAE47B,KAAK,EAAEqnI,sBAAsB,CAACxkK,QAAQ,CAAC,CAAC;IACpG;IACA,OAAO,IAAI,CAAC8kK,YAAY,CAAC94G,gBAAgB,CAACzqD,MAAM,EAAE47B,KAAK,EAAEqnI,sBAAsB,CAACxkK,QAAQ,CAAC,CAAC;EAC9F;AACJ;AACA,MAAMmmK,WAAW,GAAG,CAAC,MAAM,GAAG,CAAC9pK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/C,SAAS4pK,oBAAoBA,CAACxlK,IAAI,EAAE2lK,QAAQ,EAAE;EAC1C,IAAI3lK,IAAI,CAACpE,UAAU,CAAC,CAAC,CAAC,KAAK8pK,WAAW,EAAE;IACpC,MAAM,IAAItpK,KAAK,CAAC,wBAAwBupK,QAAQ,IAAI3lK,IAAI;AAChE;AACA,qEAAqEA,IAAI,gIAAgI,CAAC;EACtM;AACJ;AACA,MAAM2kK,iCAAiC,SAASD,mBAAmB,CAAC;EAChEtjK,WAAWA,CAACijK,YAAY,EAAEC,gBAAgB,EAAE10E,SAAS,EAAE20E,KAAK,EAAE;IAC1D,KAAK,CAACF,YAAY,CAAC;IACnB,IAAI,CAACz0E,SAAS,GAAGA,SAAS;IAC1B,MAAMvtD,MAAM,GAAGkR,aAAa,CAACgxH,KAAK,GAAG,GAAG,GAAG30E,SAAS,CAACr8E,EAAE,EAAEq8E,SAAS,CAACvtD,MAAM,EAAE,EAAE,CAAC;IAC9EiiI,gBAAgB,CAAC/B,SAAS,CAAClgI,MAAM,CAAC;IAClC,IAAI,CAACujI,WAAW,GAAGjC,oBAAoB,CAACY,KAAK,GAAG,GAAG,GAAG30E,SAAS,CAACr8E,EAAE,CAAC;IACnE,IAAI,CAACsyJ,QAAQ,GAAGhC,iBAAiB,CAACU,KAAK,GAAG,GAAG,GAAG30E,SAAS,CAACr8E,EAAE,CAAC;EACjE;EACAqxJ,WAAWA,CAACh1I,OAAO,EAAE;IACjB,KAAK,CAACqT,YAAY,CAACrT,OAAO,EAAE,IAAI,CAACi2I,QAAQ,EAAE,EAAE,CAAC;EAClD;EACA5zG,aAAaA,CAAC96C,MAAM,EAAEnX,IAAI,EAAE;IACxB,MAAM4vD,EAAE,GAAG,KAAK,CAACqC,aAAa,CAAC96C,MAAM,EAAEnX,IAAI,CAAC;IAC5C,KAAK,CAACijC,YAAY,CAAC2sB,EAAE,EAAE,IAAI,CAACg2G,WAAW,EAAE,EAAE,CAAC;IAC5C,OAAOh2G,EAAE;EACb;AACJ;AACA,MAAMk1G,iBAAiB,SAASJ,mBAAmB,CAAC;EAChDtjK,WAAWA,CAACijK,YAAY,EAAEC,gBAAgB,EAAEwB,MAAM,EAAEl2E,SAAS,EAAE;IAC3D,KAAK,CAACy0E,YAAY,CAAC;IACnB,IAAI,CAACC,gBAAgB,GAAGA,gBAAgB;IACxC,IAAI,CAACwB,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACn3E,UAAU,GAAGm3E,MAAM,CAACt3E,YAAY,CAAC;MAAEzmB,IAAI,EAAE;IAAO,CAAC,CAAC;IACvD,IAAI,CAACu8F,gBAAgB,CAACrB,OAAO,CAAC,IAAI,CAACt0E,UAAU,CAAC;IAC9C,MAAMtsD,MAAM,GAAGkR,aAAa,CAACq8C,SAAS,CAACr8E,EAAE,EAAEq8E,SAAS,CAACvtD,MAAM,EAAE,EAAE,CAAC;IAChE,KAAK,IAAI9mC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG8mC,MAAM,CAAC5mC,MAAM,EAAEF,CAAC,EAAE,EAAE;MACpC,MAAMynK,OAAO,GAAGv6I,QAAQ,CAACwpC,aAAa,CAAC,OAAO,CAAC;MAC/C+wG,OAAO,CAAC9wG,WAAW,GAAG7vB,MAAM,CAAC9mC,CAAC,CAAC;MAC/B,IAAI,CAACozF,UAAU,CAACv8B,WAAW,CAAC4wG,OAAO,CAAC;IACxC;EACJ;EACA+C,gBAAgBA,CAAC/gI,IAAI,EAAE;IACnB,OAAOA,IAAI,KAAK,IAAI,CAAC8gI,MAAM,GAAG,IAAI,CAACn3E,UAAU,GAAG3pD,IAAI;EACxD;EACA2U,OAAOA,CAAA,EAAG;IACN,IAAI,CAAC2qH,gBAAgB,CAACnB,UAAU,CAAC,IAAI,CAACx0E,UAAU,CAAC;EACrD;EACAv8B,WAAWA,CAACj7C,MAAM,EAAE6kJ,QAAQ,EAAE;IAC1B,OAAO,KAAK,CAAC5pG,WAAW,CAAC,IAAI,CAAC2zG,gBAAgB,CAAC5uJ,MAAM,CAAC,EAAE6kJ,QAAQ,CAAC;EACrE;EACAz6G,YAAYA,CAACpqC,MAAM,EAAE6kJ,QAAQ,EAAEC,QAAQ,EAAE;IACrC,OAAO,KAAK,CAAC16G,YAAY,CAAC,IAAI,CAACwkH,gBAAgB,CAAC5uJ,MAAM,CAAC,EAAE6kJ,QAAQ,EAAEC,QAAQ,CAAC;EAChF;EACA5sC,WAAWA,CAACl4G,MAAM,EAAEglJ,QAAQ,EAAE;IAC1B,OAAO,KAAK,CAAC9sC,WAAW,CAAC,IAAI,CAAC02C,gBAAgB,CAAC5uJ,MAAM,CAAC,EAAEglJ,QAAQ,CAAC;EACrE;EACA/9H,UAAUA,CAAC4G,IAAI,EAAE;IACb,OAAO,IAAI,CAAC+gI,gBAAgB,CAAC,KAAK,CAAC3nI,UAAU,CAAC,IAAI,CAAC2nI,gBAAgB,CAAC/gI,IAAI,CAAC,CAAC,CAAC;EAC/E;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMghI,eAAe,SAAS5D,kBAAkB,CAAC;EAC7ChhK,WAAWA,CAACskE,GAAG,EAAE;IACb,KAAK,CAACA,GAAG,CAAC;EACd;EACA;EACA;EACAy/C,QAAQA,CAACzxF,SAAS,EAAE;IAChB,OAAO,IAAI;EACf;EACA63B,gBAAgBA,CAAC37B,OAAO,EAAE8D,SAAS,EAAEuwC,OAAO,EAAE;IAC1Cr0C,OAAO,CAAC27B,gBAAgB,CAAC73B,SAAS,EAAEuwC,OAAO,EAAE,KAAK,CAAC;IACnD,OAAO,MAAM,IAAI,CAACrJ,mBAAmB,CAAChrC,OAAO,EAAE8D,SAAS,EAAEuwC,OAAO,CAAC;EACtE;EACArJ,mBAAmBA,CAAC95D,MAAM,EAAE4yB,SAAS,EAAEn0B,QAAQ,EAAE;IAC7C,OAAOuB,MAAM,CAAC85D,mBAAmB,CAAClnC,SAAS,EAAEn0B,QAAQ,CAAC;EAC1D;AACJ;AACAymK,eAAe,CAAC/lI,IAAI,YAAAgmI,wBAAAj+J,CAAA;EAAA,YAAAA,CAAA,IAAwFg+J,eAAe,EAzgB9BzuI,sDAAE,CAygB8Cs1B,qDAAQ;AAAA,CAA6C;AAClMm5G,eAAe,CAAC7lI,KAAK,kBA1gBwE5I,gEAAE;EAAAxb,KAAA,EA0gBiBiqJ,eAAe;EAAA3lI,OAAA,EAAf2lI,eAAe,CAAA/lI;AAAA,EAAG;AAClI;EAAA,QAAAtI,SAAA,oBAAAA,SAAA,KA3gB6FJ,+DAAE,CA2gBJyuI,eAAe,EAAc,CAAC;IAC7GvrK,IAAI,EAAEg9B,qDAAUA;EACpB,CAAC,CAAC,EAAkB,YAAY;IAChC,OAAO,CAAC;MAAEh9B,IAAI,EAAE6iC,SAAS;MAAE61B,UAAU,EAAE,CAAC;QACxB14D,IAAI,EAAEqyD,iDAAM;QACZttD,IAAI,EAAE,CAACqtD,qDAAQ;MACnB,CAAC;IAAE,CAAC,CAAC;EACrB,CAAC;AAAA;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMq5G,aAAa,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC;AACzD,MAAMC,uBAAuB,GAAG,CAAC;AACjC;AACA,MAAMC,OAAO,GAAG;EACZ;EACA;EACA,IAAI,EAAE,WAAW;EACjB,IAAI,EAAE,KAAK;EACX,MAAM,EAAE,QAAQ;EAChB,MAAM,EAAE,QAAQ;EAChB,KAAK,EAAE,QAAQ;EACf,KAAK,EAAE,QAAQ;EACf,MAAM,EAAE,WAAW;EACnB,OAAO,EAAE,YAAY;EACrB,IAAI,EAAE,SAAS;EACf,MAAM,EAAE,WAAW;EACnB,MAAM,EAAE,aAAa;EACrB,QAAQ,EAAE,YAAY;EACtB,KAAK,EAAE;AACX,CAAC;AACD;AACA;AACA;AACA,MAAMC,mBAAmB,GAAG;EACxB,GAAG,EAAE,GAAG;EACR,GAAG,EAAE,GAAG;EACR,GAAG,EAAE,GAAG;EACR,GAAG,EAAE,GAAG;EACR,GAAG,EAAE,GAAG;EACR,GAAG,EAAE,GAAG;EACR,GAAG,EAAE,GAAG;EACR,GAAG,EAAE,GAAG;EACR,GAAG,EAAE,GAAG;EACR,GAAG,EAAE,GAAG;EACR,GAAG,EAAE,GAAG;EACR,GAAG,EAAE,GAAG;EACR,GAAG,EAAE,GAAG;EACR,GAAG,EAAE,GAAG;EACR,MAAM,EAAE,GAAG;EACX,MAAM,EAAE;AACZ,CAAC;AACD;AACA;AACA;AACA,MAAMC,oBAAoB,GAAG;EACzB,KAAK,EAAG5pI,KAAK,IAAKA,KAAK,CAAC6pI,MAAM;EAC9B,SAAS,EAAG7pI,KAAK,IAAKA,KAAK,CAAC8pI,OAAO;EACnC,MAAM,EAAG9pI,KAAK,IAAKA,KAAK,CAAC+pI,OAAO;EAChC,OAAO,EAAG/pI,KAAK,IAAKA,KAAK,CAACgqI;AAC9B,CAAC;AACD;AACA;AACA;AACA;AACA,MAAMC,eAAe,SAASvE,kBAAkB,CAAC;EAC7C;AACJ;AACA;AACA;EACIhhK,WAAWA,CAACskE,GAAG,EAAE;IACb,KAAK,CAACA,GAAG,CAAC;EACd;EACA;AACJ;AACA;AACA;AACA;EACIy/C,QAAQA,CAACzxF,SAAS,EAAE;IAChB,OAAOizI,eAAe,CAACC,cAAc,CAAClzI,SAAS,CAAC,IAAI,IAAI;EAC5D;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACI63B,gBAAgBA,CAAC37B,OAAO,EAAE8D,SAAS,EAAEuwC,OAAO,EAAE;IAC1C,MAAM4iG,WAAW,GAAGF,eAAe,CAACC,cAAc,CAAClzI,SAAS,CAAC;IAC7D,MAAMozI,cAAc,GAAGH,eAAe,CAACI,aAAa,CAACF,WAAW,CAAC,SAAS,CAAC,EAAE5iG,OAAO,EAAE,IAAI,CAAC49F,OAAO,CAACK,OAAO,CAAC,CAAC,CAAC;IAC7G,OAAO,IAAI,CAACL,OAAO,CAACK,OAAO,CAAC,CAAC,CAACrnG,iBAAiB,CAAC,MAAM;MAClD,OAAO0tD,2DAAO,CAAC,CAAC,CAAC+2C,WAAW,CAAC1vI,OAAO,EAAEi3I,WAAW,CAAC,cAAc,CAAC,EAAEC,cAAc,CAAC;IACtF,CAAC,CAAC;EACN;EACA,OAAOF,cAAcA,CAAClzI,SAAS,EAAE;IAC7B,MAAM64E,KAAK,GAAG74E,SAAS,CAAC30B,WAAW,CAAC,CAAC,CAAC+uB,KAAK,CAAC,GAAG,CAAC;IAChD,MAAMk5I,YAAY,GAAGz6D,KAAK,CAACv9F,KAAK,CAAC,CAAC;IAClC,IAAKu9F,KAAK,CAAC9wG,MAAM,KAAK,CAAC,IAAK,EAAEurK,YAAY,KAAK,SAAS,IAAIA,YAAY,KAAK,OAAO,CAAC,EAAE;MACnF,OAAO,IAAI;IACf;IACA,MAAMnkK,GAAG,GAAG8jK,eAAe,CAACM,aAAa,CAAC16D,KAAK,CAAC7/B,GAAG,CAAC,CAAC,CAAC;IACtD,IAAIw6F,OAAO,GAAG,EAAE;IAChBhB,aAAa,CAACx2J,OAAO,CAACy3J,YAAY,IAAI;MAClC,MAAMjiK,KAAK,GAAGqnG,KAAK,CAAC/vG,OAAO,CAAC2qK,YAAY,CAAC;MACzC,IAAIjiK,KAAK,GAAG,CAAC,CAAC,EAAE;QACZqnG,KAAK,CAACtqE,MAAM,CAAC/8B,KAAK,EAAE,CAAC,CAAC;QACtBgiK,OAAO,IAAIC,YAAY,GAAG,GAAG;MACjC;IACJ,CAAC,CAAC;IACFD,OAAO,IAAIrkK,GAAG;IACd,IAAI0pG,KAAK,CAAC9wG,MAAM,IAAI,CAAC,IAAIoH,GAAG,CAACpH,MAAM,KAAK,CAAC,EAAE;MACvC;MACA,OAAO,IAAI;IACf;IACA;IACA;IACA;IACA,MAAMkB,MAAM,GAAG,CAAC,CAAC;IACjBA,MAAM,CAAC,cAAc,CAAC,GAAGqqK,YAAY;IACrCrqK,MAAM,CAAC,SAAS,CAAC,GAAGuqK,OAAO;IAC3B,OAAOvqK,MAAM;EACjB;EACA,OAAOyqK,eAAeA,CAAC1qI,KAAK,EAAE;IAC1B,IAAIwqI,OAAO,GAAG,EAAE;IAChB,IAAIrkK,GAAG,GAAGwkK,WAAW,CAAC3qI,KAAK,CAAC;IAC5B75B,GAAG,GAAGA,GAAG,CAAC9D,WAAW,CAAC,CAAC;IACvB,IAAI8D,GAAG,KAAK,GAAG,EAAE;MACbA,GAAG,GAAG,OAAO,CAAC,CAAC;IACnB,CAAC,MACI,IAAIA,GAAG,KAAK,GAAG,EAAE;MAClBA,GAAG,GAAG,KAAK,CAAC,CAAC;IACjB;IACAqjK,aAAa,CAACx2J,OAAO,CAACy3J,YAAY,IAAI;MAClC,IAAIA,YAAY,IAAItkK,GAAG,EAAE;QACrB,MAAMykK,cAAc,GAAGhB,oBAAoB,CAACa,YAAY,CAAC;QACzD,IAAIG,cAAc,CAAC5qI,KAAK,CAAC,EAAE;UACvBwqI,OAAO,IAAIC,YAAY,GAAG,GAAG;QACjC;MACJ;IACJ,CAAC,CAAC;IACFD,OAAO,IAAIrkK,GAAG;IACd,OAAOqkK,OAAO;EAClB;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;EACI,OAAOH,aAAaA,CAACG,OAAO,EAAEjjG,OAAO,EAAE+sC,IAAI,EAAE;IACzC,OAAO,CAACt0E,KAAK,CAAC,sBAAsB;MAChC,IAAIiqI,eAAe,CAACS,eAAe,CAAC1qI,KAAK,CAAC,KAAKwqI,OAAO,EAAE;QACpDl2D,IAAI,CAACu2D,UAAU,CAAC,MAAMtjG,OAAO,CAACvnC,KAAK,CAAC,CAAC;MACzC;IACJ,CAAC;EACL;EACA;EACA,OAAOuqI,aAAaA,CAACO,OAAO,EAAE;IAC1B;IACA,QAAQA,OAAO;MACX,KAAK,KAAK;QACN,OAAO,QAAQ;MACnB;QACI,OAAOA,OAAO;IACtB;EACJ;AACJ;AACAb,eAAe,CAAC1mI,IAAI,YAAAwnI,wBAAAz/J,CAAA;EAAA,YAAAA,CAAA,IAAwF2+J,eAAe,EA7rB9BpvI,sDAAE,CA6rB8Cs1B,qDAAQ;AAAA,CAA6C;AAClM85G,eAAe,CAACxmI,KAAK,kBA9rBwE5I,gEAAE;EAAAxb,KAAA,EA8rBiB4qJ,eAAe;EAAAtmI,OAAA,EAAfsmI,eAAe,CAAA1mI;AAAA,EAAG;AAClI;EAAA,QAAAtI,SAAA,oBAAAA,SAAA,KA/rB6FJ,+DAAE,CA+rBJovI,eAAe,EAAc,CAAC;IAC7GlsK,IAAI,EAAEg9B,qDAAUA;EACpB,CAAC,CAAC,EAAkB,YAAY;IAChC,OAAO,CAAC;MAAEh9B,IAAI,EAAE6iC,SAAS;MAAE61B,UAAU,EAAE,CAAC;QACxB14D,IAAI,EAAEqyD,iDAAM;QACZttD,IAAI,EAAE,CAACqtD,qDAAQ;MACnB,CAAC;IAAE,CAAC,CAAC;EACrB,CAAC;AAAA;AACL,SAASw6G,WAAWA,CAAC3qI,KAAK,EAAE;EACxB,IAAI75B,GAAG,GAAG65B,KAAK,CAAC75B,GAAG;EACnB,IAAIA,GAAG,IAAI,IAAI,EAAE;IACbA,GAAG,GAAG65B,KAAK,CAACgrI,aAAa;IACzB;IACA;IACA;IACA,IAAI7kK,GAAG,IAAI,IAAI,EAAE;MACb,OAAO,cAAc;IACzB;IACA,IAAIA,GAAG,CAACigC,UAAU,CAAC,IAAI,CAAC,EAAE;MACtBjgC,GAAG,GAAGzF,MAAM,CAACC,YAAY,CAACga,QAAQ,CAACxU,GAAG,CAAC0E,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;MACzD,IAAIm1B,KAAK,CAAC1e,QAAQ,KAAKmoJ,uBAAuB,IAAIE,mBAAmB,CAACvmK,cAAc,CAAC+C,GAAG,CAAC,EAAE;QACvF;QACA;QACA;QACAA,GAAG,GAAGwjK,mBAAmB,CAACxjK,GAAG,CAAC;MAClC;IACJ;EACJ;EACA,OAAOujK,OAAO,CAACvjK,GAAG,CAAC,IAAIA,GAAG;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS8kK,cAAcA,CAAA,EAAG;EACtBvI,iBAAiB,CAACC,WAAW,CAAC,CAAC;EAC/BmB,qBAAqB,CAACrmH,IAAI,CAAC,CAAC;AAChC;AACA,SAASytH,YAAYA,CAAA,EAAG;EACpB,OAAO,IAAI5J,uDAAY,CAAC,CAAC;AAC7B;AACA,SAASvtG,SAASA,CAAA,EAAG;EACjB;EACAwtG,8DAAY,CAACx1I,QAAQ,CAAC;EACtB,OAAOA,QAAQ;AACnB;AACA,MAAMo/I,mCAAmC,GAAG,CACxC;EAAE39F,OAAO,EAAEkiB,sDAAW;EAAEmnC,QAAQ,EAAEpL,oEAAoBA;AAAC,CAAC,EACxD;EAAEj+C,OAAO,EAAEg0F,+DAAoB;EAAE3qC,QAAQ,EAAEo0C,cAAc;EAAE1pI,KAAK,EAAE;AAAK,CAAC,EACxE;EAAEisC,OAAO,EAAErd,qDAAQ;EAAEo+B,UAAU,EAAEx6B,SAAS;EAAEu6B,IAAI,EAAE;AAAG,CAAC,CACzD;AACD;AACA;AACA;AACA;AACA;AACA;AACA,MAAM88E,eAAe,GAAGtQ,oEAAqB,CAACC,uDAAY,EAAE,SAAS,EAAEoQ,mCAAmC,CAAC;AAC3G,MAAME,wBAAwB,GAAG,CAC7B;EAAE79F,OAAO,EAAEi0F,6DAAe;EAAE5qC,QAAQ,EAAE;AAAO,CAAC,EAC9C;EAAErpD,OAAO,EAAE8zF,uDAAY;EAAE/yE,UAAU,EAAE28E,YAAY;EAAE58E,IAAI,EAAE;AAAG,CAAC,EAC7D;EACI9gB,OAAO,EAAEu3F,qBAAqB;EAC9B9gE,QAAQ,EAAEqlE,eAAe;EACzB/nI,KAAK,EAAE,IAAI;EACX+sD,IAAI,EAAE,CAACn+B,qDAAQ,EAAE0P,iDAAM,EAAE6vB,sDAAW;AACxC,CAAC,EACD;EAAEliB,OAAO,EAAEu3F,qBAAqB;EAAE9gE,QAAQ,EAAEgmE,eAAe;EAAE1oI,KAAK,EAAE,IAAI;EAAE+sD,IAAI,EAAE,CAACn+B,qDAAQ;AAAE,CAAC,EAC5F;EACIqd,OAAO,EAAEk6F,mBAAmB;EAC5BzjE,QAAQ,EAAEyjE,mBAAmB;EAC7Bp5E,IAAI,EAAE,CAAC02E,YAAY,EAAEkB,mBAAmB,EAAE9E,iDAAM;AACpD,CAAC,EACD;EAAE5zF,OAAO,EAAE0vF,2DAAgB;EAAEzvF,WAAW,EAAEi6F;AAAoB,CAAC,EAC/D;EAAEl6F,OAAO,EAAEm4F,gBAAgB;EAAEl4F,WAAW,EAAEy4F;AAAoB,CAAC,EAC/D;EAAE14F,OAAO,EAAE04F,mBAAmB;EAAEjiE,QAAQ,EAAEiiE,mBAAmB;EAAE53E,IAAI,EAAE,CAACn+B,qDAAQ;AAAE,CAAC,EACjF;EAAEqd,OAAO,EAAEk0F,sDAAW;EAAEz9D,QAAQ,EAAEy9D,sDAAW;EAAEpzE,IAAI,EAAE,CAACzuB,iDAAM;AAAE,CAAC,EAC/D;EAAE2N,OAAO,EAAEw3F,YAAY;EAAE/gE,QAAQ,EAAE+gE,YAAY;EAAE12E,IAAI,EAAE,CAACy2E,qBAAqB,EAAEllG,iDAAM;AAAE,CAAC,EACxF;EAAE2N,OAAO,EAAE69C,uDAAU;EAAEpnB,QAAQ,EAAE4gE,UAAU;EAAEv2E,IAAI,EAAE;AAAG,CAAC,CAC1D;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM8uE,aAAa,CAAC;EAChB14J,WAAWA,CAACk6G,YAAY,EAAE;IACtB,IAAIA,YAAY,EAAE;MACd,MAAM,IAAIl/G,KAAK,CAAC,+JAA+J,CAAC;IACpL;EACJ;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACI,OAAO4rK,oBAAoBA,CAAC19J,MAAM,EAAE;IAChC,OAAO;MACH+oH,QAAQ,EAAEymC,aAAa;MACvB1vF,SAAS,EAAE,CACP;QAAEF,OAAO,EAAE4zF,iDAAM;QAAEvqC,QAAQ,EAAEjpH,MAAM,CAACi6J;MAAM,CAAC,EAC3C;QAAEr6F,OAAO,EAAEg2F,aAAa;QAAE/1F,WAAW,EAAE2zF,iDAAMA;MAAC,CAAC,EAC/CyC,2BAA2B;IAEnC,CAAC;EACL;AACJ;AACAzG,aAAa,CAAC75H,IAAI,YAAAgoI,sBAAAjgK,CAAA;EAAA,YAAAA,CAAA,IAAwF8xJ,aAAa,EArzB1BviI,sDAAE,CAqzB0CuiI,aAAa;AAAA,CAA2E;AACjOA,aAAa,CAAC1xF,IAAI,kBAtzB2E7wC,8DAAE;EAAA98B,IAAA,EAszBYq/J,aAAa;EAAAtxF,OAAA,GAAY88C,yDAAY,EAAE+4C,4DAAiB;AAAA,EAAI;AACvKvE,aAAa,CAACrxF,IAAI,kBAvzB2ElxC,8DAAE;EAAA6yC,SAAA,EAuzBsC29F,wBAAwB;EAAAx/F,OAAA,GAAY+8C,yDAAY,EAAE+4C,4DAAiB;AAAA,EAAI;AAC5M;EAAA,QAAA1mI,SAAA,oBAAAA,SAAA,KAxzB6FJ,+DAAE,CAwzBJuiI,aAAa,EAAc,CAAC;IAC3Gr/J,IAAI,EAAE6yD,mDAAQ;IACd9tD,IAAI,EAAE,CAAC;MAAE4qE,SAAS,EAAE29F,wBAAwB;MAAEv/F,OAAO,EAAE,CAAC88C,yDAAY,EAAE+4C,4DAAiB;IAAE,CAAC;EAC9F,CAAC,CAAC,EAAkB,YAAY;IAChC,OAAO,CAAC;MAAE5jK,IAAI,EAAEq/J,aAAa;MAAE3mG,UAAU,EAAE,CAAC;QAC5B14D,IAAI,EAAE0yD,mDAAQA;MAClB,CAAC,EAAE;QACC1yD,IAAI,EAAEi5F,mDAAQA;MAClB,CAAC,EAAE;QACCj5F,IAAI,EAAEqyD,iDAAM;QACZttD,IAAI,EAAE,CAACs6J,aAAa;MACxB,CAAC;IAAE,CAAC,CAAC;EACrB,CAAC;AAAA;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASoO,UAAUA,CAAA,EAAG;EAClB,OAAO,IAAIC,IAAI,CAACn1G,0DAAQ,CAACnG,qDAAQ,CAAC,CAAC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMs7G,IAAI,CAAC;EACP/mK,WAAWA,CAACwhG,IAAI,EAAE;IACd,IAAI,CAACA,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACwlE,IAAI,GAAG7/C,2DAAO,CAAC,CAAC;EACzB;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI8/C,MAAMA,CAACC,GAAG,EAAEC,aAAa,GAAG,KAAK,EAAE;IAC/B,IAAI,CAACD,GAAG,EACJ,OAAO,IAAI;IACf,OAAO,IAAI,CAACE,mBAAmB,CAACF,GAAG,EAAEC,aAAa,CAAC;EACvD;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACIE,OAAOA,CAACC,IAAI,EAAEH,aAAa,GAAG,KAAK,EAAE;IACjC,IAAI,CAACG,IAAI,EACL,OAAO,EAAE;IACb,OAAOA,IAAI,CAACpkF,MAAM,CAAC,CAAC3nF,MAAM,EAAE2rK,GAAG,KAAK;MAChC,IAAIA,GAAG,EAAE;QACL3rK,MAAM,CAACd,IAAI,CAAC,IAAI,CAAC2sK,mBAAmB,CAACF,GAAG,EAAEC,aAAa,CAAC,CAAC;MAC7D;MACA,OAAO5rK,MAAM;IACjB,CAAC,EAAE,EAAE,CAAC;EACV;EACA;AACJ;AACA;AACA;AACA;AACA;EACIgsK,MAAMA,CAACC,YAAY,EAAE;IACjB,IAAI,CAACA,YAAY,EACb,OAAO,IAAI;IACf,OAAO,IAAI,CAAChmE,IAAI,CAACjkE,aAAa,CAAC,QAAQiqI,YAAY,GAAG,CAAC,IAAI,IAAI;EACnE;EACA;AACJ;AACA;AACA;AACA;AACA;EACIC,OAAOA,CAACD,YAAY,EAAE;IAClB,IAAI,CAACA,YAAY,EACb,OAAO,EAAE;IACb,MAAMl+C,IAAI,CAAC,eAAe,IAAI,CAAC9nB,IAAI,CAACnkE,gBAAgB,CAAC,QAAQmqI,YAAY,GAAG,CAAC;IAC7E,OAAOl+C,IAAI,GAAG,EAAE,CAACntH,KAAK,CAACuB,IAAI,CAAC4rH,IAAI,CAAC,GAAG,EAAE;EAC1C;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIo+C,SAASA,CAACR,GAAG,EAAE3uI,QAAQ,EAAE;IACrB,IAAI,CAAC2uI,GAAG,EACJ,OAAO,IAAI;IACf3uI,QAAQ,GAAGA,QAAQ,IAAI,IAAI,CAACovI,cAAc,CAACT,GAAG,CAAC;IAC/C,MAAM5jK,IAAI,GAAG,IAAI,CAACikK,MAAM,CAAChvI,QAAQ,CAAC;IAClC,IAAIj1B,IAAI,EAAE;MACN,OAAO,IAAI,CAACskK,yBAAyB,CAACV,GAAG,EAAE5jK,IAAI,CAAC;IACpD;IACA,OAAO,IAAI,CAAC8jK,mBAAmB,CAACF,GAAG,EAAE,IAAI,CAAC;EAC9C;EACA;AACJ;AACA;AACA;AACA;EACIW,SAASA,CAACL,YAAY,EAAE;IACpB,IAAI,CAACM,gBAAgB,CAAC,IAAI,CAACP,MAAM,CAACC,YAAY,CAAC,CAAC;EACpD;EACA;AACJ;AACA;AACA;EACIM,gBAAgBA,CAACxkK,IAAI,EAAE;IACnB,IAAIA,IAAI,EAAE;MACN,IAAI,CAAC0jK,IAAI,CAACpvJ,MAAM,CAACtU,IAAI,CAAC;IAC1B;EACJ;EACA8jK,mBAAmBA,CAAC9jK,IAAI,EAAE6jK,aAAa,GAAG,KAAK,EAAE;IAC7C,IAAI,CAACA,aAAa,EAAE;MAChB,MAAM5uI,QAAQ,GAAG,IAAI,CAACovI,cAAc,CAACrkK,IAAI,CAAC;MAC1C;MACA;MACA;MACA,MAAMg6B,IAAI,GAAG,IAAI,CAACmqI,OAAO,CAAClvI,QAAQ,CAAC,CAACphB,MAAM,CAACmmB,IAAI,IAAI,IAAI,CAACyqI,mBAAmB,CAACzkK,IAAI,EAAEg6B,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;MAC3F,IAAIA,IAAI,KAAKpB,SAAS,EAClB,OAAOoB,IAAI;IACnB;IACA,MAAM9O,OAAO,GAAG,IAAI,CAACw4I,IAAI,CAACn2G,aAAa,CAAC,MAAM,CAAC;IAC/C,IAAI,CAAC+2G,yBAAyB,CAACtkK,IAAI,EAAEkrB,OAAO,CAAC;IAC7C,MAAM0+D,IAAI,GAAG,IAAI,CAACsU,IAAI,CAACwmE,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACtD96E,IAAI,CAACl8B,WAAW,CAACxiC,OAAO,CAAC;IACzB,OAAOA,OAAO;EAClB;EACAo5I,yBAAyBA,CAACV,GAAG,EAAE14G,EAAE,EAAE;IAC/BjxD,MAAM,CAAC41B,IAAI,CAAC+zI,GAAG,CAAC,CAAC54J,OAAO,CAAEqpB,IAAI,IAAK62B,EAAE,CAAC3sB,YAAY,CAAC,IAAI,CAAComI,cAAc,CAACtwI,IAAI,CAAC,EAAEuvI,GAAG,CAACvvI,IAAI,CAAC,CAAC,CAAC;IACzF,OAAO62B,EAAE;EACb;EACAm5G,cAAcA,CAACT,GAAG,EAAE;IAChB,MAAM1oK,IAAI,GAAG0oK,GAAG,CAACtoK,IAAI,GAAG,MAAM,GAAG,UAAU;IAC3C,OAAO,GAAGJ,IAAI,KAAK0oK,GAAG,CAAC1oK,IAAI,CAAC,GAAG;EACnC;EACAupK,mBAAmBA,CAACb,GAAG,EAAE5pI,IAAI,EAAE;IAC3B,OAAO//B,MAAM,CAAC41B,IAAI,CAAC+zI,GAAG,CAAC,CAACpyG,KAAK,CAAErzD,GAAG,IAAK67B,IAAI,CAACyxB,YAAY,CAAC,IAAI,CAACk5G,cAAc,CAACxmK,GAAG,CAAC,CAAC,KAAKylK,GAAG,CAACzlK,GAAG,CAAC,CAAC;EACpG;EACAwmK,cAAcA,CAACtwI,IAAI,EAAE;IACjB,OAAOuwI,aAAa,CAACvwI,IAAI,CAAC,IAAIA,IAAI;EACtC;AACJ;AACAovI,IAAI,CAACloI,IAAI,YAAAspI,aAAAvhK,CAAA;EAAA,YAAAA,CAAA,IAAwFmgK,IAAI,EAz+BR5wI,sDAAE,CAy+BwBs1B,qDAAQ;AAAA,CAA6C;AAC5Ks7G,IAAI,CAAChoI,KAAK,kBA1+BmF5I,gEAAE;EAAAxb,KAAA,EA0+BMosJ,IAAI;EAAA9nI,OAAA,WAAAkpI,aAAAvhK,CAAA;IAAA,IAAAgwG,CAAA;IAAA,IAAAhwG,CAAA;MAAAgwG,CAAA,OAAAhwG,CAAA;IAAA;MAAAgwG,CAAA,GAAkCkwD,UAAU;IAAA;IAAA,OAAAlwD,CAAA;EAAA;EAAA9kD,UAAA,EAA9B;AAAM,EAAqC;AAClK;EAAA,QAAAv7B,SAAA,oBAAAA,SAAA,KA3+B6FJ,+DAAE,CA2+BJ4wI,IAAI,EAAc,CAAC;IAClG1tK,IAAI,EAAEg9B,qDAAU;IAChBj4B,IAAI,EAAE,CAAC;MAAE0zD,UAAU,EAAE,MAAM;MAAE+3B,UAAU,EAAEi9E,UAAU;MAAEl9E,IAAI,EAAE;IAAG,CAAC;EACnE,CAAC,CAAC,EAAkB,YAAY;IAChC,OAAO,CAAC;MAAEvwF,IAAI,EAAE6iC,SAAS;MAAE61B,UAAU,EAAE,CAAC;QACxB14D,IAAI,EAAEqyD,iDAAM;QACZttD,IAAI,EAAE,CAACqtD,qDAAQ;MACnB,CAAC;IAAE,CAAC,CAAC;EACrB,CAAC;AAAA;AACL;AACA;AACA;AACA,MAAMy8G,aAAa,GAAG;EAClBE,SAAS,EAAE;AACf,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,WAAWA,CAAA,EAAG;EACnB,OAAO,IAAIC,KAAK,CAAC12G,0DAAQ,CAACnG,qDAAQ,CAAC,CAAC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM68G,KAAK,CAAC;EACRtoK,WAAWA,CAACwhG,IAAI,EAAE;IACd,IAAI,CAACA,IAAI,GAAGA,IAAI;EACpB;EACA;AACJ;AACA;EACI+mE,QAAQA,CAAA,EAAG;IACP,OAAO,IAAI,CAAC/mE,IAAI,CAAC56E,KAAK;EAC1B;EACA;AACJ;AACA;AACA;EACI4hJ,QAAQA,CAACC,QAAQ,EAAE;IACf,IAAI,CAACjnE,IAAI,CAAC56E,KAAK,GAAG6hJ,QAAQ,IAAI,EAAE;EACpC;AACJ;AACAH,KAAK,CAACzpI,IAAI,YAAA6pI,cAAA9hK,CAAA;EAAA,YAAAA,CAAA,IAAwF0hK,KAAK,EApiCVnyI,sDAAE,CAoiC0Bs1B,qDAAQ;AAAA,CAA6C;AAC9K68G,KAAK,CAACvpI,KAAK,kBAriCkF5I,gEAAE;EAAAxb,KAAA,EAqiCO2tJ,KAAK;EAAArpI,OAAA,WAAAypI,cAAA9hK,CAAA;IAAA,IAAAgwG,CAAA;IAAA,IAAAhwG,CAAA;MAAAgwG,CAAA,OAAAhwG,CAAA;IAAA;MAAAgwG,CAAA,GAAkCyxD,WAAW;IAAA;IAAA,OAAAzxD,CAAA;EAAA;EAAA9kD,UAAA,EAA/B;AAAM,EAAsC;AACrK;EAAA,QAAAv7B,SAAA,oBAAAA,SAAA,KAtiC6FJ,+DAAE,CAsiCJmyI,KAAK,EAAc,CAAC;IACnGjvK,IAAI,EAAEg9B,qDAAU;IAChBj4B,IAAI,EAAE,CAAC;MAAE0zD,UAAU,EAAE,MAAM;MAAE+3B,UAAU,EAAEw+E,WAAW;MAAEz+E,IAAI,EAAE;IAAG,CAAC;EACpE,CAAC,CAAC,EAAkB,YAAY;IAChC,OAAO,CAAC;MAAEvwF,IAAI,EAAE6iC,SAAS;MAAE61B,UAAU,EAAE,CAAC;QACxB14D,IAAI,EAAEqyD,iDAAM;QACZttD,IAAI,EAAE,CAACqtD,qDAAQ;MACnB,CAAC;IAAE,CAAC,CAAC;EACrB,CAAC;AAAA;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMk9G,iBAAiB,GAAG,UAAU;AACpC,MAAMzlI,gBAAgB,GAAG,WAAW;AACpC,SAAStB,mBAAmBA,CAACloC,KAAK,EAAE;EAChC,OAAOA,KAAK,CAACuB,OAAO,CAAC0tK,iBAAiB,EAAE,CAAC,GAAGxlI,CAAC,KAAK,GAAG,GAAGA,CAAC,CAAC,CAAC,CAAC,CAACxlC,WAAW,CAAC,CAAC,CAAC;AAC/E;AACA,SAASqkC,mBAAmBA,CAACtoC,KAAK,EAAE;EAChC,OAAOA,KAAK,CAACuB,OAAO,CAACioC,gBAAgB,EAAE,CAAC,GAAGC,CAAC,KAAKA,CAAC,CAAC,CAAC,CAAC,CAACllC,WAAW,CAAC,CAAC,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS2qK,WAAWA,CAAChqK,IAAI,EAAE8C,KAAK,EAAE;EAC9B,IAAI,OAAOmnK,QAAQ,KAAK,WAAW,IAAI,CAACA,QAAQ,EAAE;IAC9C;IACA;IACA;IACA;IACA,MAAMC,EAAE,GAAGtS,wDAAa,GAAGA,wDAAa,IAAI,CAAC,CAAC;IAC9CsS,EAAE,CAAClqK,IAAI,CAAC,GAAG8C,KAAK;EACpB;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMqnK,GAAG,GAAG,OAAO1sJ,MAAM,KAAK,WAAW,IAAIA,MAAM,IAAI,CAAC,CAAC;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM2sJ,yBAAyB,CAAC;EAC5BhpK,WAAWA,CAACipK,SAAS,EAAEC,QAAQ,EAAE;IAC7B,IAAI,CAACD,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,QAAQ,GAAGA,QAAQ;EAC5B;AACJ;AACA;AACA;AACA;AACA;AACA,MAAMC,eAAe,CAAC;EAClBnpK,WAAWA,CAACuxF,GAAG,EAAE;IACb,IAAI,CAAC63E,MAAM,GAAG73E,GAAG,CAAC9C,QAAQ,CAACpxE,GAAG,CAACkyD,yDAAc,CAAC;EAClD;EACA;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI85F,mBAAmBA,CAACnuJ,MAAM,EAAE;IACxB,MAAMxN,MAAM,GAAGwN,MAAM,IAAIA,MAAM,CAAC,QAAQ,CAAC;IACzC,MAAMouJ,WAAW,GAAG,kBAAkB;IACtC;IACA,MAAMC,mBAAmB,GAAGR,GAAG,CAAC9jI,OAAO,CAACukI,OAAO,IAAI,IAAI;IACvD,IAAI97J,MAAM,IAAI67J,mBAAmB,EAAE;MAC/BR,GAAG,CAAC9jI,OAAO,CAACukI,OAAO,CAACF,WAAW,CAAC;IACpC;IACA,MAAMr1H,KAAK,GAAGw1H,cAAc,CAAC,CAAC;IAC9B,IAAIP,QAAQ,GAAG,CAAC;IAChB,OAAOA,QAAQ,GAAG,CAAC,IAAKO,cAAc,CAAC,CAAC,GAAGx1H,KAAK,GAAI,GAAG,EAAE;MACrD,IAAI,CAACm1H,MAAM,CAACM,IAAI,CAAC,CAAC;MAClBR,QAAQ,EAAE;IACd;IACA,MAAMxoK,GAAG,GAAG+oK,cAAc,CAAC,CAAC;IAC5B,IAAI/7J,MAAM,IAAI67J,mBAAmB,EAAE;MAC/BR,GAAG,CAAC9jI,OAAO,CAAC0kI,UAAU,CAACL,WAAW,CAAC;IACvC;IACA,MAAML,SAAS,GAAG,CAACvoK,GAAG,GAAGuzC,KAAK,IAAIi1H,QAAQ;IAC1CH,GAAG,CAAC9jI,OAAO,CAAC2kI,GAAG,CAAC,OAAOV,QAAQ,0BAA0B,CAAC;IAC1DH,GAAG,CAAC9jI,OAAO,CAAC2kI,GAAG,CAAC,GAAGX,SAAS,CAACY,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;IACvD,OAAO,IAAIb,yBAAyB,CAACC,SAAS,EAAEC,QAAQ,CAAC;EAC7D;AACJ;AACA,SAASO,cAAcA,CAAA,EAAG;EACtB,OAAOV,GAAG,CAACe,WAAW,IAAIf,GAAG,CAACe,WAAW,CAACp8I,GAAG,GAAGq7I,GAAG,CAACe,WAAW,CAACp8I,GAAG,CAAC,CAAC,GACjE,IAAIle,IAAI,CAAC,CAAC,CAACmhG,OAAO,CAAC,CAAC;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMo5D,oBAAoB,GAAG,UAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,gBAAgBA,CAACz4E,GAAG,EAAE;EAC3Bq3E,WAAW,CAACmB,oBAAoB,EAAE,IAAIZ,eAAe,CAAC53E,GAAG,CAAC,CAAC;EAC3D,OAAOA,GAAG;AACd;AACA;AACA;AACA;AACA;AACA;AACA,SAAS04E,iBAAiBA,CAAA,EAAG;EACzBrB,WAAW,CAACmB,oBAAoB,EAAE,IAAI,CAAC;AAC3C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASG,UAAUA,CAAC1+D,IAAI,EAAE;EACtB,MAAM2+D,WAAW,GAAG;IAChB,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,KAAK;IACX,GAAG,EAAE,KAAK;IACV,GAAG,EAAE;EACT,CAAC;EACD,OAAO3+D,IAAI,CAACvwG,OAAO,CAAC,UAAU,EAAE8tC,CAAC,IAAIohI,WAAW,CAACphI,CAAC,CAAC,CAAC;AACxD;AACA,SAASqhI,YAAYA,CAAC5+D,IAAI,EAAE;EACxB,MAAM6+D,aAAa,GAAG;IAClB,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE;EACX,CAAC;EACD,OAAO7+D,IAAI,CAACvwG,OAAO,CAAC,UAAU,EAAE8tC,CAAC,IAAIshI,aAAa,CAACthI,CAAC,CAAC,CAAC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASuhI,YAAYA,CAAC7oK,GAAG,EAAE;EACvB,OAAOA,GAAG;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM8oK,aAAa,CAAC;EAChBvqK,WAAWA,CAAA,EAAG;IACV,IAAI,CAACwqK,KAAK,GAAG,CAAC,CAAC;IACf,IAAI,CAACC,oBAAoB,GAAG,CAAC,CAAC;EAClC;EACA;EACA,OAAO1xH,IAAIA,CAAC2xH,SAAS,EAAE;IACnB,MAAMC,aAAa,GAAG,IAAIJ,aAAa,CAAC,CAAC;IACzCI,aAAa,CAACH,KAAK,GAAGE,SAAS;IAC/B,OAAOC,aAAa;EACxB;EACA;AACJ;AACA;EACIttJ,GAAGA,CAAC5b,GAAG,EAAE26B,YAAY,EAAE;IACnB,OAAO,IAAI,CAACouI,KAAK,CAAC/oK,GAAG,CAAC,KAAKy6B,SAAS,GAAG,IAAI,CAACsuI,KAAK,CAAC/oK,GAAG,CAAC,GAAG26B,YAAY;EACzE;EACA;AACJ;AACA;EACIl5B,GAAGA,CAACzB,GAAG,EAAEC,KAAK,EAAE;IACZ,IAAI,CAAC8oK,KAAK,CAAC/oK,GAAG,CAAC,GAAGC,KAAK;EAC3B;EACA;AACJ;AACA;EACIkW,MAAMA,CAACnW,GAAG,EAAE;IACR,OAAO,IAAI,CAAC+oK,KAAK,CAAC/oK,GAAG,CAAC;EAC1B;EACA;AACJ;AACA;EACImpK,MAAMA,CAACnpK,GAAG,EAAE;IACR,OAAO,IAAI,CAAC+oK,KAAK,CAAC9rK,cAAc,CAAC+C,GAAG,CAAC;EACzC;EACA;AACJ;AACA;EACIopK,WAAWA,CAACppK,GAAG,EAAEtD,QAAQ,EAAE;IACvB,IAAI,CAACssK,oBAAoB,CAAChpK,GAAG,CAAC,GAAGtD,QAAQ;EAC7C;EACA;AACJ;AACA;EACI2sK,MAAMA,CAAA,EAAG;IACL;IACA,KAAK,MAAMrpK,GAAG,IAAI,IAAI,CAACgpK,oBAAoB,EAAE;MACzC,IAAI,IAAI,CAACA,oBAAoB,CAAC/rK,cAAc,CAAC+C,GAAG,CAAC,EAAE;QAC/C,IAAI;UACA,IAAI,CAAC+oK,KAAK,CAAC/oK,GAAG,CAAC,GAAG,IAAI,CAACgpK,oBAAoB,CAAChpK,GAAG,CAAC,CAAC,CAAC;QACtD,CAAC,CACD,OAAOlI,CAAC,EAAE;UACN0rC,OAAO,CAACC,IAAI,CAAC,qCAAqC,EAAE3rC,CAAC,CAAC;QAC1D;MACJ;IACJ;IACA,OAAOitB,IAAI,CAACC,SAAS,CAAC,IAAI,CAAC+jJ,KAAK,CAAC;EACrC;AACJ;AACAD,aAAa,CAAC1rI,IAAI,YAAAksI,sBAAAnkK,CAAA;EAAA,YAAAA,CAAA,IAAwF2jK,aAAa;AAAA,CAAoD;AAC3KA,aAAa,CAACxrI,KAAK,kBApzC0E5I,gEAAE;EAAAxb,KAAA,EAozCe4vJ,aAAa;EAAAtrI,OAAA,EAAbsrI,aAAa,CAAA1rI;AAAA,EAAG;AAC9H;EAAA,QAAAtI,SAAA,oBAAAA,SAAA,KArzC6FJ,+DAAE,CAqzCJo0I,aAAa,EAAc,CAAC;IAC3GlxK,IAAI,EAAEg9B,qDAAUA;EACpB,CAAC,CAAC;AAAA;AACV,SAAS20I,iBAAiBA,CAAC1mG,GAAG,EAAE6+F,KAAK,EAAE;EACnC;EACA;EACA,MAAM70C,MAAM,GAAGhqD,GAAG,CAAC4hD,cAAc,CAACi9C,KAAK,GAAG,QAAQ,CAAC;EACnD,IAAI8H,YAAY,GAAG,CAAC,CAAC;EACrB,IAAI38C,MAAM,IAAIA,MAAM,CAACx9D,WAAW,EAAE;IAC9B,IAAI;MACA;MACAm6G,YAAY,GAAGzkJ,IAAI,CAAC6K,KAAK,CAAC+4I,YAAY,CAAC97C,MAAM,CAACx9D,WAAW,CAAC,CAAC;IAC/D,CAAC,CACD,OAAOv3D,CAAC,EAAE;MACN0rC,OAAO,CAACC,IAAI,CAAC,kDAAkD,GAAGi+H,KAAK,EAAE5pK,CAAC,CAAC;IAC/E;EACJ;EACA,OAAOgxK,aAAa,CAACxxH,IAAI,CAACkyH,YAAY,CAAC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,0BAA0B,CAAC;AAEjCA,0BAA0B,CAACrsI,IAAI,YAAAssI,mCAAAvkK,CAAA;EAAA,YAAAA,CAAA,IAAwFskK,0BAA0B;AAAA,CAAkD;AACnMA,0BAA0B,CAAClkG,IAAI,kBAj1C8D7wC,8DAAE;EAAA98B,IAAA,EAi1CyB6xK;AAA0B,EAAG;AACrJA,0BAA0B,CAAC7jG,IAAI,kBAl1C8DlxC,8DAAE;EAAA6yC,SAAA,EAk1CgE,CAAC;IAAEF,OAAO,EAAEyhG,aAAa;IAAE1gF,UAAU,EAAEmhF,iBAAiB;IAAEphF,IAAI,EAAE,CAACn+B,qDAAQ,EAAEixG,iDAAM;EAAE,CAAC;AAAC,EAAG;AACvP;EAAA,QAAAnmI,SAAA,oBAAAA,SAAA,KAn1C6FJ,+DAAE,CAm1CJ+0I,0BAA0B,EAAc,CAAC;IACxH7xK,IAAI,EAAE6yD,mDAAQ;IACd9tD,IAAI,EAAE,CAAC;MACC4qE,SAAS,EAAE,CAAC;QAAEF,OAAO,EAAEyhG,aAAa;QAAE1gF,UAAU,EAAEmhF,iBAAiB;QAAEphF,IAAI,EAAE,CAACn+B,qDAAQ,EAAEixG,iDAAM;MAAE,CAAC;IACnG,CAAC;EACT,CAAC,CAAC;AAAA;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM0O,EAAE,CAAC;EACL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACI,OAAO11J,GAAGA,CAAA,EAAG;IACT,OAAO,MAAM,IAAI;EACrB;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACI,OAAO21J,GAAGA,CAAC9yI,QAAQ,EAAE;IACjB,OAAQ+yI,YAAY,IAAK;MACrB,OAAOA,YAAY,CAAC7vG,aAAa,IAAI,IAAI,GACrC8vG,cAAc,CAACD,YAAY,CAAC7vG,aAAa,EAAEljC,QAAQ,CAAC,GACpD,KAAK;IACb,CAAC;EACL;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACI,OAAOizI,SAASA,CAACnyK,IAAI,EAAE;IACnB,OAAQoyK,SAAS,IAAKA,SAAS,CAACC,cAAc,CAACtwK,OAAO,CAAC/B,IAAI,CAAC,KAAK,CAAC,CAAC;EACvE;AACJ;AACA,SAASkyK,cAAcA,CAAC9kK,CAAC,EAAE8xB,QAAQ,EAAE;EACjC,IAAI4uF,2DAAO,CAAC,CAAC,CAACjnE,aAAa,CAACz5C,CAAC,CAAC,EAAE;IAC5B,OAAOA,CAAC,CAACs5B,OAAO,IAAIt5B,CAAC,CAACs5B,OAAO,CAACxH,QAAQ,CAAC,IACnC9xB,CAAC,CAACklK,iBAAiB,IAAIllK,CAAC,CAACklK,iBAAiB,CAACpzI,QAAQ,CAAC,IACpD9xB,CAAC,CAACmlK,qBAAqB,IAAInlK,CAAC,CAACmlK,qBAAqB,CAACrzI,QAAQ,CAAC;EACpE;EACA,OAAO,KAAK;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMszI,WAAW,GAAG;EAChB;EACA,KAAK,EAAE,IAAI;EACX,UAAU,EAAE,IAAI;EAChB,SAAS,EAAE,IAAI;EACf,QAAQ,EAAE,IAAI;EACd,WAAW,EAAE,IAAI;EACjB,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,IAAI;EAChB,OAAO,EAAE,IAAI;EACb,SAAS,EAAE,IAAI;EACf;EACA,OAAO,EAAE,IAAI;EACb,YAAY,EAAE,IAAI;EAClB,WAAW,EAAE,IAAI;EACjB,UAAU,EAAE,IAAI;EAChB,aAAa,EAAE,IAAI;EACnB,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,IAAI;EAChB;EACA,OAAO,EAAE,IAAI;EACb,SAAS,EAAE,IAAI;EACf;EACA,QAAQ,EAAE,IAAI;EACd,aAAa,EAAE,IAAI;EACnB,YAAY,EAAE,IAAI;EAClB,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,IAAI;EACpB;EACA,OAAO,EAAE,IAAI;EACb,WAAW,EAAE,IAAI;EACjB,YAAY,EAAE,IAAI;EAClB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;EACjB;EACA,KAAK,EAAE,IAAI;EACX,WAAW,EAAE;AACjB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,qBAAqB,GAAG,IAAIhgH,yDAAc,CAAC,qBAAqB,CAAC;AACvE;AACA;AACA;AACA;AACA;AACA,MAAMigH,aAAa,GAAG,IAAIjgH,yDAAc,CAAC,cAAc,CAAC;AACxD;AACA;AACA;AACA;AACA;AACA,MAAMkgH,mBAAmB,CAAC;EACtBhsK,WAAWA,CAAA,EAAG;IACV;AACR;AACA;AACA;AACA;IACQ,IAAI,CAACisK,MAAM,GAAG,EAAE;IAChB;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACQ,IAAI,CAACC,SAAS,GAAG,CAAC,CAAC;EACvB;EACA;AACJ;AACA;AACA;AACA;AACA;EACIC,WAAWA,CAAC39I,OAAO,EAAE;IACjB,MAAM49I,EAAE,GAAG,IAAIC,MAAM,CAAC79I,OAAO,EAAE,IAAI,CAAC5mB,OAAO,CAAC;IAC5CwkK,EAAE,CAAC/uJ,GAAG,CAAC,OAAO,CAAC,CAACna,GAAG,CAAC;MAAEwtE,MAAM,EAAE;IAAK,CAAC,CAAC;IACrC07F,EAAE,CAAC/uJ,GAAG,CAAC,QAAQ,CAAC,CAACna,GAAG,CAAC;MAAEwtE,MAAM,EAAE;IAAK,CAAC,CAAC;IACtC,KAAK,MAAMp+C,SAAS,IAAI,IAAI,CAAC45I,SAAS,EAAE;MACpCE,EAAE,CAAC/uJ,GAAG,CAACiV,SAAS,CAAC,CAACpvB,GAAG,CAAC,IAAI,CAACgpK,SAAS,CAAC55I,SAAS,CAAC,CAAC;IACpD;IACA,OAAO85I,EAAE;EACb;AACJ;AACAJ,mBAAmB,CAACntI,IAAI,YAAAytI,4BAAA1lK,CAAA;EAAA,YAAAA,CAAA,IAAwFolK,mBAAmB;AAAA,CAAoD;AACvLA,mBAAmB,CAACjtI,KAAK,kBApgDoE5I,gEAAE;EAAAxb,KAAA,EAogDqBqxJ,mBAAmB;EAAA/sI,OAAA,EAAnB+sI,mBAAmB,CAAAntI;AAAA,EAAG;AAC1I;EAAA,QAAAtI,SAAA,oBAAAA,SAAA,KArgD6FJ,+DAAE,CAqgDJ61I,mBAAmB,EAAc,CAAC;IACjH3yK,IAAI,EAAEg9B,qDAAUA;EACpB,CAAC,CAAC;AAAA;AACV;AACA;AACA;AACA;AACA;AACA,MAAMk2I,oBAAoB,SAASvL,kBAAkB,CAAC;EAClDhhK,WAAWA,CAACskE,GAAG,EAAEsN,OAAO,EAAE3sC,OAAO,EAAEunI,MAAM,EAAE;IACvC,KAAK,CAACloG,GAAG,CAAC;IACV,IAAI,CAACsN,OAAO,GAAGA,OAAO;IACtB,IAAI,CAAC3sC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACunI,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACC,cAAc,GAAG,IAAI;EAC9B;EACA1oD,QAAQA,CAACzxF,SAAS,EAAE;IAChB,IAAI,CAACu5I,WAAW,CAACntK,cAAc,CAAC4zB,SAAS,CAAC30B,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC+uK,aAAa,CAACp6I,SAAS,CAAC,EAAE;MACxF,OAAO,KAAK;IAChB;IACA,IAAI,CAACjW,MAAM,CAACgwJ,MAAM,IAAI,CAAC,IAAI,CAACG,MAAM,EAAE;MAChC,IAAI,OAAOj2I,SAAS,KAAK,WAAW,IAAIA,SAAS,EAAE;QAC/C,IAAI,CAAC0O,OAAO,CAACC,IAAI,CAAC,QAAQ5S,SAAS,mDAAmD,GAClF,iDAAiD,CAAC;MAC1D;MACA,OAAO,KAAK;IAChB;IACA,OAAO,IAAI;EACf;EACA63B,gBAAgBA,CAAC37B,OAAO,EAAE8D,SAAS,EAAEuwC,OAAO,EAAE;IAC1C,MAAM+sC,IAAI,GAAG,IAAI,CAAC6wD,OAAO,CAACK,OAAO,CAAC,CAAC;IACnCxuI,SAAS,GAAGA,SAAS,CAAC30B,WAAW,CAAC,CAAC;IACnC;IACA;IACA,IAAI,CAAC0e,MAAM,CAACgwJ,MAAM,IAAI,IAAI,CAACG,MAAM,EAAE;MAC/B,IAAI,CAACC,cAAc,GAAG,IAAI,CAACA,cAAc,IAAI,IAAI,CAACD,MAAM,CAAC,CAAC;MAC1D;MACA;MACA;MACA,IAAIG,kBAAkB,GAAG,KAAK;MAC9B,IAAI5wH,UAAU,GAAGA,CAAA,KAAM;QACnB4wH,kBAAkB,GAAG,IAAI;MAC7B,CAAC;MACD,IAAI,CAACF,cAAc,CACdttK,IAAI,CAAC,MAAM;QACZ;QACA,IAAI,CAACkd,MAAM,CAACgwJ,MAAM,EAAE;UAChB,IAAI,OAAO91I,SAAS,KAAK,WAAW,IAAIA,SAAS,EAAE;YAC/C,IAAI,CAAC0O,OAAO,CAACC,IAAI,CAAC,mEAAmE,CAAC;UAC1F;UACA6W,UAAU,GAAGA,CAAA,KAAM,CAAE,CAAC;UACtB;QACJ;QACA,IAAI,CAAC4wH,kBAAkB,EAAE;UACrB;UACA;UACA5wH,UAAU,GAAG,IAAI,CAACoO,gBAAgB,CAAC37B,OAAO,EAAE8D,SAAS,EAAEuwC,OAAO,CAAC;QACnE;MACJ,CAAC,CAAC,CACGjjD,KAAK,CAAC,MAAM;QACb,IAAI,OAAO2W,SAAS,KAAK,WAAW,IAAIA,SAAS,EAAE;UAC/C,IAAI,CAAC0O,OAAO,CAACC,IAAI,CAAC,QAAQ5S,SAAS,6CAA6C,GAC5E,0BAA0B,CAAC;QACnC;QACAypB,UAAU,GAAGA,CAAA,KAAM,CAAE,CAAC;MAC1B,CAAC,CAAC;MACF;MACA;MACA;MACA,OAAO,MAAM;QACTA,UAAU,CAAC,CAAC;MAChB,CAAC;IACL;IACA,OAAO6zD,IAAI,CAACn2C,iBAAiB,CAAC,MAAM;MAChC;MACA,MAAM2yG,EAAE,GAAG,IAAI,CAACx6F,OAAO,CAACu6F,WAAW,CAAC39I,OAAO,CAAC;MAC5C,MAAMrwB,QAAQ,GAAG,SAAAA,CAAUyuK,QAAQ,EAAE;QACjCh9D,IAAI,CAACu2D,UAAU,CAAC,YAAY;UACxBtjG,OAAO,CAAC+pG,QAAQ,CAAC;QACrB,CAAC,CAAC;MACN,CAAC;MACDR,EAAE,CAACvrK,EAAE,CAACyxB,SAAS,EAAEn0B,QAAQ,CAAC;MAC1B,OAAO,MAAM;QACTiuK,EAAE,CAACS,GAAG,CAACv6I,SAAS,EAAEn0B,QAAQ,CAAC;QAC3B;QACA,IAAI,OAAOiuK,EAAE,CAAC7zH,OAAO,KAAK,UAAU,EAAE;UAClC6zH,EAAE,CAAC7zH,OAAO,CAAC,CAAC;QAChB;MACJ,CAAC;IACL,CAAC,CAAC;EACN;EACAm0H,aAAaA,CAACp6I,SAAS,EAAE;IACrB,OAAO,IAAI,CAACs/C,OAAO,CAACq6F,MAAM,CAAC7wK,OAAO,CAACk3B,SAAS,CAAC,GAAG,CAAC,CAAC;EACtD;AACJ;AACAi6I,oBAAoB,CAAC1tI,IAAI,YAAAiuI,6BAAAlmK,CAAA;EAAA,YAAAA,CAAA,IAAwF2lK,oBAAoB,EApmDxCp2I,sDAAE,CAomDwDs1B,qDAAQ,GApmDlEt1B,sDAAE,CAomD6E21I,qBAAqB,GApmDpG31I,sDAAE,CAomD+GA,sDAAW,GApmD5HA,sDAAE,CAomDuI41I,aAAa;AAAA,CAA6D;AAChTQ,oBAAoB,CAACxtI,KAAK,kBArmDmE5I,gEAAE;EAAAxb,KAAA,EAqmDsB4xJ,oBAAoB;EAAAttI,OAAA,EAApBstI,oBAAoB,CAAA1tI;AAAA,EAAG;AAC5I;EAAA,QAAAtI,SAAA,oBAAAA,SAAA,KAtmD6FJ,+DAAE,CAsmDJo2I,oBAAoB,EAAc,CAAC;IAClHlzK,IAAI,EAAEg9B,qDAAUA;EACpB,CAAC,CAAC,EAAkB,YAAY;IAChC,OAAO,CAAC;MAAEh9B,IAAI,EAAE6iC,SAAS;MAAE61B,UAAU,EAAE,CAAC;QACxB14D,IAAI,EAAEqyD,iDAAM;QACZttD,IAAI,EAAE,CAACqtD,qDAAQ;MACnB,CAAC;IAAE,CAAC,EAAE;MAAEpyD,IAAI,EAAE2yK,mBAAmB;MAAEj6G,UAAU,EAAE,CAAC;QAC5C14D,IAAI,EAAEqyD,iDAAM;QACZttD,IAAI,EAAE,CAAC0tK,qBAAqB;MAChC,CAAC;IAAE,CAAC,EAAE;MAAEzyK,IAAI,EAAE88B,sDAAW+mI;IAAC,CAAC,EAAE;MAAE7jK,IAAI,EAAE6iC,SAAS;MAAE61B,UAAU,EAAE,CAAC;QACzD14D,IAAI,EAAE0yD,mDAAQA;MAClB,CAAC,EAAE;QACC1yD,IAAI,EAAEqyD,iDAAM;QACZttD,IAAI,EAAE,CAAC2tK,aAAa;MACxB,CAAC;IAAE,CAAC,CAAC;EACrB,CAAC;AAAA;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMgB,YAAY,CAAC;AAEnBA,YAAY,CAACluI,IAAI,YAAAmuI,qBAAApmK,CAAA;EAAA,YAAAA,CAAA,IAAwFmmK,YAAY;AAAA,CAAkD;AACvKA,YAAY,CAAC/lG,IAAI,kBApoD4E7wC,8DAAE;EAAA98B,IAAA,EAooDW0zK;AAAY,EAAG;AACzHA,YAAY,CAAC1lG,IAAI,kBAroD4ElxC,8DAAE;EAAA6yC,SAAA,EAqoDoC,CAC3H;IACIF,OAAO,EAAEu3F,qBAAqB;IAC9B9gE,QAAQ,EAAEgtE,oBAAoB;IAC9B1vI,KAAK,EAAE,IAAI;IACX+sD,IAAI,EAAE,CAACn+B,qDAAQ,EAAEqgH,qBAAqB,EAAE5O,sDAAQ,EAAE,CAAC,IAAInxG,mDAAQ,CAAC,CAAC,EAAEggH,aAAa,CAAC;EACrF,CAAC,EACD;IAAEjjG,OAAO,EAAEgjG,qBAAqB;IAAEvsE,QAAQ,EAAEysE,mBAAmB;IAAEpiF,IAAI,EAAE;EAAG,CAAC;AAC9E,EAAG;AACR;EAAA,QAAArzD,SAAA,oBAAAA,SAAA,KA9oD6FJ,+DAAE,CA8oDJ42I,YAAY,EAAc,CAAC;IAC1G1zK,IAAI,EAAE6yD,mDAAQ;IACd9tD,IAAI,EAAE,CAAC;MACC4qE,SAAS,EAAE,CACP;QACIF,OAAO,EAAEu3F,qBAAqB;QAC9B9gE,QAAQ,EAAEgtE,oBAAoB;QAC9B1vI,KAAK,EAAE,IAAI;QACX+sD,IAAI,EAAE,CAACn+B,qDAAQ,EAAEqgH,qBAAqB,EAAE5O,sDAAQ,EAAE,CAAC,IAAInxG,mDAAQ,CAAC,CAAC,EAAEggH,aAAa,CAAC;MACrF,CAAC,EACD;QAAEjjG,OAAO,EAAEgjG,qBAAqB;QAAEvsE,QAAQ,EAAEysE,mBAAmB;QAAEpiF,IAAI,EAAE;MAAG,CAAC;IAEnF,CAAC;EACT,CAAC,CAAC;AAAA;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMqjF,YAAY,CAAC;AAEnBA,YAAY,CAACpuI,IAAI,YAAAquI,qBAAAtmK,CAAA;EAAA,YAAAA,CAAA,IAAwFqmK,YAAY;AAAA,CAAoD;AACzKA,YAAY,CAACluI,KAAK,kBAtsD2E5I,gEAAE;EAAAxb,KAAA,EAssDcsyJ,YAAY;EAAAhuI,OAAA,WAAAiuI,qBAAAtmK,CAAA;IAAA,IAAAgwG,CAAA;IAAA,IAAAhwG,CAAA;MAAAgwG,CAAA,QAAAhwG,CAAA,IAAZqmK,YAAY;IAAA;MAAAr2D,CAAA,GAtsD5BzgF,sDAAE,CAssDgGg3I,gBAAgB;IAAA;IAAA,OAAAv2D,CAAA;EAAA;EAAA9kD,UAAA,EAAxE;AAAM,EAAyE;AACtN;EAAA,QAAAv7B,SAAA,oBAAAA,SAAA,KAvsD6FJ,+DAAE,CAusDJ82I,YAAY,EAAc,CAAC;IAC1G5zK,IAAI,EAAEg9B,qDAAU;IAChBj4B,IAAI,EAAE,CAAC;MAAE0zD,UAAU,EAAE,MAAM;MAAEiX,WAAW,EAAEkpB,yDAAU,CAAC,MAAMk7E,gBAAgB;IAAE,CAAC;EAClF,CAAC,CAAC;AAAA;AACV,SAASC,uBAAuBA,CAAC3+E,QAAQ,EAAE;EACvC,OAAO,IAAI0+E,gBAAgB,CAAC1+E,QAAQ,CAACpxE,GAAG,CAACouC,qDAAQ,CAAC,CAAC;AACvD;AACA,MAAM0hH,gBAAgB,SAASF,YAAY,CAAC;EACxCjtK,WAAWA,CAACwhG,IAAI,EAAE;IACd,KAAK,CAAC,CAAC;IACP,IAAI,CAACA,IAAI,GAAGA,IAAI;EACpB;EACA6rE,QAAQA,CAAC3+H,GAAG,EAAEhtC,KAAK,EAAE;IACjB,IAAIA,KAAK,IAAI,IAAI,EACb,OAAO,IAAI;IACf,QAAQgtC,GAAG;MACP,KAAKyuH,+DAAoB;QACrB,OAAOz7J,KAAK;MAChB,KAAKy7J,+DAAoB;QACrB,IAAIC,kFAAgC,CAAC17J,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE;UAC5D,OAAO27J,kEAAgB,CAAC37J,KAAK,CAAC;QAClC;QACA,OAAO87J,gEAAc,CAAC,IAAI,CAACh8D,IAAI,EAAExlG,MAAM,CAAC0F,KAAK,CAAC,CAAC,CAACjE,QAAQ,CAAC,CAAC;MAC9D,KAAK0/J,gEAAqB;QACtB,IAAIC,kFAAgC,CAAC17J,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE;UAC9D,OAAO27J,kEAAgB,CAAC37J,KAAK,CAAC;QAClC;QACA,OAAOA,KAAK;MAChB,KAAKy7J,iEAAsB;QACvB,IAAIC,kFAAgC,CAAC17J,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE;UAChE,OAAO27J,kEAAgB,CAAC37J,KAAK,CAAC;QAClC;QACA,MAAM,IAAI1G,KAAK,CAAC,uCAAuC,CAAC;MAC5D,KAAKmiK,8DAAmB;QACpB,MAAM9jK,IAAI,GAAGikK,4EAA0B,CAAC57J,KAAK,CAAC;QAC9C,IAAI07J,kFAAgC,CAAC17J,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE;UAC1D,OAAO27J,kEAAgB,CAAC37J,KAAK,CAAC;QAClC;QACA,OAAO67J,+DAAa,CAACvhK,MAAM,CAAC0F,KAAK,CAAC,CAAC;MACvC,KAAKy7J,uEAA4B;QAC7B,IAAIC,kFAAgC,CAAC17J,KAAK,EAAE,aAAa,CAAC,iBAAiB,CAAC,EAAE;UAC1E,OAAO27J,kEAAgB,CAAC37J,KAAK,CAAC;QAClC;QACA,MAAM,IAAI1G,KAAK,CAAC,gFAAgF,CAAC;MACrG;QACI,MAAM,IAAIA,KAAK,CAAC,8BAA8B0zC,GAAG,qCAAqC,CAAC;IAC/F;EACJ;EACAk/H,uBAAuBA,CAAClsK,KAAK,EAAE;IAC3B,OAAO+7J,8EAA4B,CAAC/7J,KAAK,CAAC;EAC9C;EACAmsK,wBAAwBA,CAACnsK,KAAK,EAAE;IAC5B,OAAOg8J,+EAA6B,CAACh8J,KAAK,CAAC;EAC/C;EACAosK,yBAAyBA,CAACpsK,KAAK,EAAE;IAC7B,OAAOi8J,gFAA8B,CAACj8J,KAAK,CAAC;EAChD;EACAqsK,sBAAsBA,CAACrsK,KAAK,EAAE;IAC1B,OAAOk8J,6EAA2B,CAACl8J,KAAK,CAAC;EAC7C;EACAssK,8BAA8BA,CAACtsK,KAAK,EAAE;IAClC,OAAOm8J,qFAAmC,CAACn8J,KAAK,CAAC;EACrD;AACJ;AACAyrK,gBAAgB,CAACtuI,IAAI,YAAAovI,yBAAArnK,CAAA;EAAA,YAAAA,CAAA,IAAwFumK,gBAAgB,EAvwDhCh3I,sDAAE,CAuwDgDs1B,qDAAQ;AAAA,CAA6C;AACpM0hH,gBAAgB,CAACpuI,KAAK,kBAxwDuE5I,gEAAE;EAAAxb,KAAA,EAwwDkBwyJ,gBAAgB;EAAAluI,OAAA,WAAAgvI,yBAAArnK,CAAA;IAAA,IAAAgwG,CAAA;IAAA,IAAAhwG,CAAA;MAAAgwG,CAAA,OAAAhwG,CAAA;IAAA;MAAAgwG,CAAA,GAAkCw2D,uBAAuB,CAxwD7Fj3I,sDAAE,CAwwD6GgxD,mDAAQ;IAAA;IAAA,OAAAyvB,CAAA;EAAA;EAAA9kD,UAAA,EAArE;AAAM,EAAqE;AAC1N;EAAA,QAAAv7B,SAAA,oBAAAA,SAAA,KAzwD6FJ,+DAAE,CAywDJg3I,gBAAgB,EAAc,CAAC;IAC9G9zK,IAAI,EAAEg9B,qDAAU;IAChBj4B,IAAI,EAAE,CAAC;MAAE0zD,UAAU,EAAE,MAAM;MAAE+3B,UAAU,EAAEujF,uBAAuB;MAAExjF,IAAI,EAAE,CAACzC,mDAAQ;IAAE,CAAC;EACxF,CAAC,CAAC,EAAkB,YAAY;IAChC,OAAO,CAAC;MAAE9tF,IAAI,EAAE6iC,SAAS;MAAE61B,UAAU,EAAE,CAAC;QACxB14D,IAAI,EAAEqyD,iDAAM;QACZttD,IAAI,EAAE,CAACqtD,qDAAQ;MACnB,CAAC;IAAE,CAAC,CAAC;EACrB,CAAC;AAAA;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMm5D,OAAO,GAAG,IAAIlkB,kDAAO,CAAC,QAAQ,CAAC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjiEA;AACA;AACA;AACA;AACA;;AAEoC;AACiY;AAC3Q;AAC0B;AAC9I;AAC4I;;AAElL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM0vE,WAAW,CAAC;EACdpwK,WAAWA,CACX;EACAmS,EAAE,EACF;EACA8iB,GAAG,EAAE;IACD,IAAI,CAAC9iB,EAAE,GAAGA,EAAE;IACZ,IAAI,CAAC8iB,GAAG,GAAGA,GAAG;EAClB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,MAAMo7I,eAAe,SAASD,WAAW,CAAC;EACtCpwK,WAAWA,CACX;EACAmS,EAAE,EACF;EACA8iB,GAAG,EACH;EACAq7I,iBAAiB,GAAG,YAAY,EAChC;EACAC,aAAa,GAAG,IAAI,EAAE;IAClB,KAAK,CAACp+J,EAAE,EAAE8iB,GAAG,CAAC;IACd,IAAI,CAACq7I,iBAAiB,GAAGA,iBAAiB;IAC1C,IAAI,CAACC,aAAa,GAAGA,aAAa;EACtC;EACA;EACA9yK,QAAQA,CAAA,EAAG;IACP,OAAO,uBAAuB,IAAI,CAAC0U,EAAE,WAAW,IAAI,CAAC8iB,GAAG,IAAI;EAChE;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMu7I,aAAa,SAASJ,WAAW,CAAC;EACpCpwK,WAAWA,CACX;EACAmS,EAAE,EACF;EACA8iB,GAAG,EACH;EACAw7I,iBAAiB,EAAE;IACf,KAAK,CAACt+J,EAAE,EAAE8iB,GAAG,CAAC;IACd,IAAI,CAACw7I,iBAAiB,GAAGA,iBAAiB;EAC9C;EACA;EACAhzK,QAAQA,CAAA,EAAG;IACP,OAAO,qBAAqB,IAAI,CAAC0U,EAAE,WAAW,IAAI,CAAC8iB,GAAG,0BAA0B,IAAI,CAACw7I,iBAAiB,IAAI;EAC9G;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,gBAAgB,SAASN,WAAW,CAAC;EACvCpwK,WAAWA,CACX;EACAmS,EAAE,EACF;EACA8iB,GAAG,EACH;EACA07I,MAAM,EAAE;IACJ,KAAK,CAACx+J,EAAE,EAAE8iB,GAAG,CAAC;IACd,IAAI,CAAC07I,MAAM,GAAGA,MAAM;EACxB;EACA;EACAlzK,QAAQA,CAAA,EAAG;IACP,OAAO,wBAAwB,IAAI,CAAC0U,EAAE,WAAW,IAAI,CAAC8iB,GAAG,IAAI;EACjE;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM27I,eAAe,SAASR,WAAW,CAAC;EACtCpwK,WAAWA,CACX;EACAmS,EAAE,EACF;EACA8iB,GAAG,EACH;EACAr1B,KAAK,EAAE;IACH,KAAK,CAACuS,EAAE,EAAE8iB,GAAG,CAAC;IACd,IAAI,CAACr1B,KAAK,GAAGA,KAAK;EACtB;EACA;EACAnC,QAAQA,CAAA,EAAG;IACP,OAAO,uBAAuB,IAAI,CAAC0U,EAAE,WAAW,IAAI,CAAC8iB,GAAG,aAAa,IAAI,CAACr1B,KAAK,GAAG;EACtF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,MAAMixK,gBAAgB,SAAST,WAAW,CAAC;EACvCpwK,WAAWA,CACX;EACAmS,EAAE,EACF;EACA8iB,GAAG,EACH;EACAw7I,iBAAiB,EACjB;EACA3wJ,KAAK,EAAE;IACH,KAAK,CAAC3N,EAAE,EAAE8iB,GAAG,CAAC;IACd,IAAI,CAACw7I,iBAAiB,GAAGA,iBAAiB;IAC1C,IAAI,CAAC3wJ,KAAK,GAAGA,KAAK;EACtB;EACA;EACAriB,QAAQA,CAAA,EAAG;IACP,OAAO,wBAAwB,IAAI,CAAC0U,EAAE,WAAW,IAAI,CAAC8iB,GAAG,0BAA0B,IAAI,CAACw7I,iBAAiB,aAAa,IAAI,CAAC3wJ,KAAK,GAAG;EACvI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMgxJ,gBAAgB,SAASV,WAAW,CAAC;EACvCpwK,WAAWA,CACX;EACAmS,EAAE,EACF;EACA8iB,GAAG,EACH;EACAw7I,iBAAiB,EACjB;EACA3wJ,KAAK,EAAE;IACH,KAAK,CAAC3N,EAAE,EAAE8iB,GAAG,CAAC;IACd,IAAI,CAACw7I,iBAAiB,GAAGA,iBAAiB;IAC1C,IAAI,CAAC3wJ,KAAK,GAAGA,KAAK;EACtB;EACAriB,QAAQA,CAAA,EAAG;IACP,OAAO,wBAAwB,IAAI,CAAC0U,EAAE,WAAW,IAAI,CAAC8iB,GAAG,0BAA0B,IAAI,CAACw7I,iBAAiB,aAAa,IAAI,CAAC3wJ,KAAK,GAAG;EACvI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMixJ,cAAc,SAASX,WAAW,CAAC;EACrCpwK,WAAWA,CACX;EACAmS,EAAE,EACF;EACA8iB,GAAG,EACH;EACAw7I,iBAAiB,EACjB;EACA3wJ,KAAK,EACL;EACAkxJ,cAAc,EAAE;IACZ,KAAK,CAAC7+J,EAAE,EAAE8iB,GAAG,CAAC;IACd,IAAI,CAACw7I,iBAAiB,GAAGA,iBAAiB;IAC1C,IAAI,CAAC3wJ,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACkxJ,cAAc,GAAGA,cAAc;EACxC;EACAvzK,QAAQA,CAAA,EAAG;IACP,OAAO,sBAAsB,IAAI,CAAC0U,EAAE,WAAW,IAAI,CAAC8iB,GAAG,0BAA0B,IAAI,CAACw7I,iBAAiB,aAAa,IAAI,CAAC3wJ,KAAK,qBAAqB,IAAI,CAACkxJ,cAAc,GAAG;EAC7K;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,YAAY,SAASb,WAAW,CAAC;EACnCpwK,WAAWA,CACX;EACAmS,EAAE,EACF;EACA8iB,GAAG,EACH;EACAw7I,iBAAiB,EACjB;EACA3wJ,KAAK,EAAE;IACH,KAAK,CAAC3N,EAAE,EAAE8iB,GAAG,CAAC;IACd,IAAI,CAACw7I,iBAAiB,GAAGA,iBAAiB;IAC1C,IAAI,CAAC3wJ,KAAK,GAAGA,KAAK;EACtB;EACAriB,QAAQA,CAAA,EAAG;IACP,OAAO,oBAAoB,IAAI,CAAC0U,EAAE,WAAW,IAAI,CAAC8iB,GAAG,0BAA0B,IAAI,CAACw7I,iBAAiB,aAAa,IAAI,CAAC3wJ,KAAK,GAAG;EACnI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMoxJ,UAAU,SAASd,WAAW,CAAC;EACjCpwK,WAAWA,CACX;EACAmS,EAAE,EACF;EACA8iB,GAAG,EACH;EACAw7I,iBAAiB,EACjB;EACA3wJ,KAAK,EAAE;IACH,KAAK,CAAC3N,EAAE,EAAE8iB,GAAG,CAAC;IACd,IAAI,CAACw7I,iBAAiB,GAAGA,iBAAiB;IAC1C,IAAI,CAAC3wJ,KAAK,GAAGA,KAAK;EACtB;EACAriB,QAAQA,CAAA,EAAG;IACP,OAAO,kBAAkB,IAAI,CAAC0U,EAAE,WAAW,IAAI,CAAC8iB,GAAG,0BAA0B,IAAI,CAACw7I,iBAAiB,aAAa,IAAI,CAAC3wJ,KAAK,GAAG;EACjI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMqxJ,oBAAoB,CAAC;EACvBnxK,WAAWA,CACX;EACAoxK,KAAK,EAAE;IACH,IAAI,CAACA,KAAK,GAAGA,KAAK;EACtB;EACA3zK,QAAQA,CAAA,EAAG;IACP,OAAO,8BAA8B,IAAI,CAAC2zK,KAAK,CAAC56J,IAAI,GAAG;EAC3D;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM66J,kBAAkB,CAAC;EACrBrxK,WAAWA,CACX;EACAoxK,KAAK,EAAE;IACH,IAAI,CAACA,KAAK,GAAGA,KAAK;EACtB;EACA3zK,QAAQA,CAAA,EAAG;IACP,OAAO,4BAA4B,IAAI,CAAC2zK,KAAK,CAAC56J,IAAI,GAAG;EACzD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM86J,oBAAoB,CAAC;EACvBtxK,WAAWA,CACX;EACAuxK,QAAQ,EAAE;IACN,IAAI,CAACA,QAAQ,GAAGA,QAAQ;EAC5B;EACA9zK,QAAQA,CAAA,EAAG;IACP,MAAM+Y,IAAI,GAAG,IAAI,CAAC+6J,QAAQ,CAACC,WAAW,IAAI,IAAI,CAACD,QAAQ,CAACC,WAAW,CAACh7J,IAAI,IAAI,EAAE;IAC9E,OAAO,+BAA+BA,IAAI,IAAI;EAClD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMi7J,kBAAkB,CAAC;EACrBzxK,WAAWA,CACX;EACAuxK,QAAQ,EAAE;IACN,IAAI,CAACA,QAAQ,GAAGA,QAAQ;EAC5B;EACA9zK,QAAQA,CAAA,EAAG;IACP,MAAM+Y,IAAI,GAAG,IAAI,CAAC+6J,QAAQ,CAACC,WAAW,IAAI,IAAI,CAACD,QAAQ,CAACC,WAAW,CAACh7J,IAAI,IAAI,EAAE;IAC9E,OAAO,6BAA6BA,IAAI,IAAI;EAChD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMk7J,eAAe,CAAC;EAClB1xK,WAAWA,CACX;EACAuxK,QAAQ,EAAE;IACN,IAAI,CAACA,QAAQ,GAAGA,QAAQ;EAC5B;EACA9zK,QAAQA,CAAA,EAAG;IACP,MAAM+Y,IAAI,GAAG,IAAI,CAAC+6J,QAAQ,CAACC,WAAW,IAAI,IAAI,CAACD,QAAQ,CAACC,WAAW,CAACh7J,IAAI,IAAI,EAAE;IAC9E,OAAO,0BAA0BA,IAAI,IAAI;EAC7C;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMm7J,aAAa,CAAC;EAChB3xK,WAAWA,CACX;EACAuxK,QAAQ,EAAE;IACN,IAAI,CAACA,QAAQ,GAAGA,QAAQ;EAC5B;EACA9zK,QAAQA,CAAA,EAAG;IACP,MAAM+Y,IAAI,GAAG,IAAI,CAAC+6J,QAAQ,CAACC,WAAW,IAAI,IAAI,CAACD,QAAQ,CAACC,WAAW,CAACh7J,IAAI,IAAI,EAAE;IAC9E,OAAO,wBAAwBA,IAAI,IAAI;EAC3C;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,MAAMo7J,MAAM,CAAC;EACT5xK,WAAWA,CACX;EACA6xK,WAAW,EACX;EACAzrG,QAAQ,EACR;EACAzL,MAAM,EAAE;IACJ,IAAI,CAACk3G,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACzrG,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACzL,MAAM,GAAGA,MAAM;EACxB;EACAl9D,QAAQA,CAAA,EAAG;IACP,MAAM+E,GAAG,GAAG,IAAI,CAAC4jE,QAAQ,GAAG,GAAG,IAAI,CAACA,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,CAACA,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI;IAC7E,OAAO,mBAAmB,IAAI,CAACzL,MAAM,iBAAiBn4D,GAAG,IAAI;EACjE;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMsvK,cAAc,GAAG,SAAS;AAChC,MAAMC,WAAW,CAAC;EACd/xK,WAAWA,CAACkJ,MAAM,EAAE;IAChB,IAAI,CAACA,MAAM,GAAGA,MAAM,IAAI,CAAC,CAAC;EAC9B;EACAs9B,GAAGA,CAAC5nC,IAAI,EAAE;IACN,OAAOrB,MAAM,CAACC,SAAS,CAACkB,cAAc,CAAChB,IAAI,CAAC,IAAI,CAACwL,MAAM,EAAEtK,IAAI,CAAC;EAClE;EACAye,GAAGA,CAACze,IAAI,EAAE;IACN,IAAI,IAAI,CAAC4nC,GAAG,CAAC5nC,IAAI,CAAC,EAAE;MAChB,MAAMktC,CAAC,GAAG,IAAI,CAAC5iC,MAAM,CAACtK,IAAI,CAAC;MAC3B,OAAOzD,KAAK,CAACZ,OAAO,CAACuxC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC;IACtC;IACA,OAAO,IAAI;EACf;EACAm8E,MAAMA,CAACrpH,IAAI,EAAE;IACT,IAAI,IAAI,CAAC4nC,GAAG,CAAC5nC,IAAI,CAAC,EAAE;MAChB,MAAMktC,CAAC,GAAG,IAAI,CAAC5iC,MAAM,CAACtK,IAAI,CAAC;MAC3B,OAAOzD,KAAK,CAACZ,OAAO,CAACuxC,CAAC,CAAC,GAAGA,CAAC,GAAG,CAACA,CAAC,CAAC;IACrC;IACA,OAAO,EAAE;EACb;EACA,IAAI3Y,IAAIA,CAAA,EAAG;IACP,OAAO51B,MAAM,CAAC41B,IAAI,CAAC,IAAI,CAACjqB,MAAM,CAAC;EACnC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS8oK,iBAAiBA,CAAC9oK,MAAM,EAAE;EAC/B,OAAO,IAAI6oK,WAAW,CAAC7oK,MAAM,CAAC;AAClC;AACA,MAAM+oK,0BAA0B,GAAG,4BAA4B;AAC/D,SAASC,wBAAwBA,CAACn5I,OAAO,EAAE;EACvC,MAAMn5B,KAAK,GAAG5E,KAAK,CAAC,4BAA4B,GAAG+9B,OAAO,CAAC;EAC3Dn5B,KAAK,CAACqyK,0BAA0B,CAAC,GAAG,IAAI;EACxC,OAAOryK,KAAK;AAChB;AACA,SAASuyK,0BAA0BA,CAACvyK,KAAK,EAAE;EACvC,OAAOA,KAAK,IAAIA,KAAK,CAACqyK,0BAA0B,CAAC;AACrD;AACA;AACA,SAASG,iBAAiBA,CAACC,QAAQ,EAAEC,YAAY,EAAElB,KAAK,EAAE;EACtD,MAAMjmE,KAAK,GAAGimE,KAAK,CAAC56J,IAAI,CAACkW,KAAK,CAAC,GAAG,CAAC;EACnC,IAAIy+E,KAAK,CAAC9wG,MAAM,GAAGg4K,QAAQ,CAACh4K,MAAM,EAAE;IAChC;IACA,OAAO,IAAI;EACf;EACA,IAAI+2K,KAAK,CAACmB,SAAS,KAAK,MAAM,KACzBD,YAAY,CAACE,WAAW,CAAC,CAAC,IAAIrnE,KAAK,CAAC9wG,MAAM,GAAGg4K,QAAQ,CAACh4K,MAAM,CAAC,EAAE;IAChE;IACA,OAAO,IAAI;EACf;EACA,MAAMo4K,SAAS,GAAG,CAAC,CAAC;EACpB;EACA,KAAK,IAAI3uK,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGqnG,KAAK,CAAC9wG,MAAM,EAAEyJ,KAAK,EAAE,EAAE;IAC/C,MAAMpI,IAAI,GAAGyvG,KAAK,CAACrnG,KAAK,CAAC;IACzB,MAAM4uK,OAAO,GAAGL,QAAQ,CAACvuK,KAAK,CAAC;IAC/B,MAAM6uK,WAAW,GAAGj3K,IAAI,CAACgmC,UAAU,CAAC,GAAG,CAAC;IACxC,IAAIixI,WAAW,EAAE;MACbF,SAAS,CAAC/2K,IAAI,CAACyK,SAAS,CAAC,CAAC,CAAC,CAAC,GAAGusK,OAAO;IAC1C,CAAC,MACI,IAAIh3K,IAAI,KAAKg3K,OAAO,CAACl8J,IAAI,EAAE;MAC5B;MACA,OAAO,IAAI;IACf;EACJ;EACA,OAAO;IAAEo8J,QAAQ,EAAEP,QAAQ,CAACl2K,KAAK,CAAC,CAAC,EAAEgvG,KAAK,CAAC9wG,MAAM,CAAC;IAAEo4K;EAAU,CAAC;AACnE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASI,kBAAkBA,CAAC10H,CAAC,EAAEC,CAAC,EAAE;EAC9B,IAAID,CAAC,CAAC9jD,MAAM,KAAK+jD,CAAC,CAAC/jD,MAAM,EACrB,OAAO,KAAK;EAChB,KAAK,IAAIF,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGgkD,CAAC,CAAC9jD,MAAM,EAAE,EAAEF,CAAC,EAAE;IAC/B,IAAI,CAAC24K,YAAY,CAAC30H,CAAC,CAAChkD,CAAC,CAAC,EAAEikD,CAAC,CAACjkD,CAAC,CAAC,CAAC,EACzB,OAAO,KAAK;EACpB;EACA,OAAO,IAAI;AACf;AACA,SAAS24K,YAAYA,CAAC30H,CAAC,EAAEC,CAAC,EAAE;EACxB;EACA;EACA,MAAMkJ,EAAE,GAAGnJ,CAAC,GAAG5gD,MAAM,CAAC41B,IAAI,CAACgrB,CAAC,CAAC,GAAGjiB,SAAS;EACzC,MAAMqrB,EAAE,GAAGnJ,CAAC,GAAG7gD,MAAM,CAAC41B,IAAI,CAACirB,CAAC,CAAC,GAAGliB,SAAS;EACzC,IAAI,CAACorB,EAAE,IAAI,CAACC,EAAE,IAAID,EAAE,CAACjtD,MAAM,IAAIktD,EAAE,CAACltD,MAAM,EAAE;IACtC,OAAO,KAAK;EAChB;EACA,IAAIoH,GAAG;EACP,KAAK,IAAItH,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGmtD,EAAE,CAACjtD,MAAM,EAAEF,CAAC,EAAE,EAAE;IAChCsH,GAAG,GAAG6lD,EAAE,CAACntD,CAAC,CAAC;IACX,IAAI,CAAC44K,mBAAmB,CAAC50H,CAAC,CAAC18C,GAAG,CAAC,EAAE28C,CAAC,CAAC38C,GAAG,CAAC,CAAC,EAAE;MACtC,OAAO,KAAK;IAChB;EACJ;EACA,OAAO,IAAI;AACf;AACA;AACA;AACA;AACA,SAASsxK,mBAAmBA,CAAC50H,CAAC,EAAEC,CAAC,EAAE;EAC/B,IAAIjjD,KAAK,CAACZ,OAAO,CAAC4jD,CAAC,CAAC,IAAIhjD,KAAK,CAACZ,OAAO,CAAC6jD,CAAC,CAAC,EAAE;IACtC,IAAID,CAAC,CAAC9jD,MAAM,KAAK+jD,CAAC,CAAC/jD,MAAM,EACrB,OAAO,KAAK;IAChB,MAAM24K,OAAO,GAAG,CAAC,GAAG70H,CAAC,CAAC,CAACD,IAAI,CAAC,CAAC;IAC7B,MAAM+0H,OAAO,GAAG,CAAC,GAAG70H,CAAC,CAAC,CAACF,IAAI,CAAC,CAAC;IAC7B,OAAO80H,OAAO,CAACl+G,KAAK,CAAC,CAACt3C,GAAG,EAAE1Z,KAAK,KAAKmvK,OAAO,CAACnvK,KAAK,CAAC,KAAK0Z,GAAG,CAAC;EAChE,CAAC,MACI;IACD,OAAO2gC,CAAC,KAAKC,CAAC;EAClB;AACJ;AACA;AACA;AACA;AACA,SAAS80H,OAAOA,CAAClwI,GAAG,EAAE;EAClB,OAAO7nC,KAAK,CAACqC,SAAS,CAAC2F,MAAM,CAACjH,KAAK,CAAC,EAAE,EAAE8mC,GAAG,CAAC;AAChD;AACA;AACA;AACA;AACA,SAASk8D,IAAIA,CAAC/gD,CAAC,EAAE;EACb,OAAOA,CAAC,CAAC9jD,MAAM,GAAG,CAAC,GAAG8jD,CAAC,CAACA,CAAC,CAAC9jD,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI;AAChD;AACA;AACA;AACA;AACA,SAAS84K,GAAGA,CAACC,KAAK,EAAE;EAChB,OAAO,CAACA,KAAK,CAACvnI,IAAI,CAACC,CAAC,IAAI,CAACA,CAAC,CAAC;AAC/B;AACA,SAASx9B,OAAOA,CAACwqB,GAAG,EAAE36B,QAAQ,EAAE;EAC5B,KAAK,MAAMw5B,IAAI,IAAImB,GAAG,EAAE;IACpB,IAAIA,GAAG,CAACp6B,cAAc,CAACi5B,IAAI,CAAC,EAAE;MAC1Bx5B,QAAQ,CAAC26B,GAAG,CAACnB,IAAI,CAAC,EAAEA,IAAI,CAAC;IAC7B;EACJ;AACJ;AACA,SAAS07I,kBAAkBA,CAAC3xK,KAAK,EAAE;EAC/B,IAAIgxH,+DAAa,CAAChxH,KAAK,CAAC,EAAE;IACtB,OAAOA,KAAK;EAChB;EACA,IAAI4+F,4DAAU,CAAC5+F,KAAK,CAAC,EAAE;IACnB;IACA;IACA;IACA,OAAOwxB,0CAAI,CAAC56B,OAAO,CAAC4G,OAAO,CAACwC,KAAK,CAAC,CAAC;EACvC;EACA,OAAOirD,wCAAE,CAACjrD,KAAK,CAAC;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS4xK,kBAAkBA,CAAA,EAAG;EAC1B,OAAO,IAAIC,OAAO,CAAC,IAAIC,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC;AAC7D;AACA,MAAMC,cAAc,GAAG;EACnB,OAAO,EAAEC,kBAAkB;EAC3B,QAAQ,EAAEC;AACd,CAAC;AACD,MAAMC,eAAe,GAAG;EACpB,OAAO,EAAEC,WAAW;EACpB,QAAQ,EAAEC,cAAc;EACxB,SAAS,EAAEC,CAAA,KAAM;AACrB,CAAC;AACD,SAASC,YAAYA,CAACn6F,SAAS,EAAEo6F,SAAS,EAAErsK,OAAO,EAAE;EACjD,OAAO6rK,cAAc,CAAC7rK,OAAO,CAACssK,KAAK,CAAC,CAACr6F,SAAS,CAAC/iE,IAAI,EAAEm9J,SAAS,CAACn9J,IAAI,EAAElP,OAAO,CAACusK,YAAY,CAAC,IACtFP,eAAe,CAAChsK,OAAO,CAACs8F,WAAW,CAAC,CAACrqB,SAAS,CAACqqB,WAAW,EAAE+vE,SAAS,CAAC/vE,WAAW,CAAC,IAClF,EAAEt8F,OAAO,CAACwsK,QAAQ,KAAK,OAAO,IAAIv6F,SAAS,CAACu6F,QAAQ,KAAKH,SAAS,CAACG,QAAQ,CAAC;AACpF;AACA,SAASP,WAAWA,CAACh6F,SAAS,EAAEo6F,SAAS,EAAE;EACvC;EACA,OAAOnB,YAAY,CAACj5F,SAAS,EAAEo6F,SAAS,CAAC;AAC7C;AACA,SAASP,kBAAkBA,CAAC75F,SAAS,EAAEo6F,SAAS,EAAEE,YAAY,EAAE;EAC5D,IAAI,CAACE,SAAS,CAACx6F,SAAS,CAACw4F,QAAQ,EAAE4B,SAAS,CAAC5B,QAAQ,CAAC,EAClD,OAAO,KAAK;EAChB,IAAI,CAACiC,iBAAiB,CAACz6F,SAAS,CAACw4F,QAAQ,EAAE4B,SAAS,CAAC5B,QAAQ,EAAE8B,YAAY,CAAC,EAAE;IAC1E,OAAO,KAAK;EAChB;EACA,IAAIt6F,SAAS,CAAC06F,gBAAgB,KAAKN,SAAS,CAACM,gBAAgB,EACzD,OAAO,KAAK;EAChB,KAAK,MAAMzyK,CAAC,IAAImyK,SAAS,CAACx5G,QAAQ,EAAE;IAChC,IAAI,CAACof,SAAS,CAACpf,QAAQ,CAAC34D,CAAC,CAAC,EACtB,OAAO,KAAK;IAChB,IAAI,CAAC4xK,kBAAkB,CAAC75F,SAAS,CAACpf,QAAQ,CAAC34D,CAAC,CAAC,EAAEmyK,SAAS,CAACx5G,QAAQ,CAAC34D,CAAC,CAAC,EAAEqyK,YAAY,CAAC,EAC/E,OAAO,KAAK;EACpB;EACA,OAAO,IAAI;AACf;AACA,SAASL,cAAcA,CAACj6F,SAAS,EAAEo6F,SAAS,EAAE;EAC1C,OAAO12K,MAAM,CAAC41B,IAAI,CAAC8gJ,SAAS,CAAC,CAAC55K,MAAM,IAAIkD,MAAM,CAAC41B,IAAI,CAAC0mD,SAAS,CAAC,CAACx/E,MAAM,IACjEkD,MAAM,CAAC41B,IAAI,CAAC8gJ,SAAS,CAAC,CAACn/G,KAAK,CAACrzD,GAAG,IAAIsxK,mBAAmB,CAACl5F,SAAS,CAACp4E,GAAG,CAAC,EAAEwyK,SAAS,CAACxyK,GAAG,CAAC,CAAC,CAAC;AAChG;AACA,SAASkyK,oBAAoBA,CAAC95F,SAAS,EAAEo6F,SAAS,EAAEE,YAAY,EAAE;EAC9D,OAAOK,0BAA0B,CAAC36F,SAAS,EAAEo6F,SAAS,EAAEA,SAAS,CAAC5B,QAAQ,EAAE8B,YAAY,CAAC;AAC7F;AACA,SAASK,0BAA0BA,CAAC36F,SAAS,EAAEo6F,SAAS,EAAEQ,cAAc,EAAEN,YAAY,EAAE;EACpF,IAAIt6F,SAAS,CAACw4F,QAAQ,CAACh4K,MAAM,GAAGo6K,cAAc,CAACp6K,MAAM,EAAE;IACnD,MAAMm+H,OAAO,GAAG3+C,SAAS,CAACw4F,QAAQ,CAACl2K,KAAK,CAAC,CAAC,EAAEs4K,cAAc,CAACp6K,MAAM,CAAC;IAClE,IAAI,CAACg6K,SAAS,CAAC77C,OAAO,EAAEi8C,cAAc,CAAC,EACnC,OAAO,KAAK;IAChB,IAAIR,SAAS,CAACzB,WAAW,CAAC,CAAC,EACvB,OAAO,KAAK;IAChB,IAAI,CAAC8B,iBAAiB,CAAC97C,OAAO,EAAEi8C,cAAc,EAAEN,YAAY,CAAC,EACzD,OAAO,KAAK;IAChB,OAAO,IAAI;EACf,CAAC,MACI,IAAIt6F,SAAS,CAACw4F,QAAQ,CAACh4K,MAAM,KAAKo6K,cAAc,CAACp6K,MAAM,EAAE;IAC1D,IAAI,CAACg6K,SAAS,CAACx6F,SAAS,CAACw4F,QAAQ,EAAEoC,cAAc,CAAC,EAC9C,OAAO,KAAK;IAChB,IAAI,CAACH,iBAAiB,CAACz6F,SAAS,CAACw4F,QAAQ,EAAEoC,cAAc,EAAEN,YAAY,CAAC,EACpE,OAAO,KAAK;IAChB,KAAK,MAAMryK,CAAC,IAAImyK,SAAS,CAACx5G,QAAQ,EAAE;MAChC,IAAI,CAACof,SAAS,CAACpf,QAAQ,CAAC34D,CAAC,CAAC,EACtB,OAAO,KAAK;MAChB,IAAI,CAAC6xK,oBAAoB,CAAC95F,SAAS,CAACpf,QAAQ,CAAC34D,CAAC,CAAC,EAAEmyK,SAAS,CAACx5G,QAAQ,CAAC34D,CAAC,CAAC,EAAEqyK,YAAY,CAAC,EAAE;QACnF,OAAO,KAAK;MAChB;IACJ;IACA,OAAO,IAAI;EACf,CAAC,MACI;IACD,MAAM37C,OAAO,GAAGi8C,cAAc,CAACt4K,KAAK,CAAC,CAAC,EAAE09E,SAAS,CAACw4F,QAAQ,CAACh4K,MAAM,CAAC;IAClE,MAAM4G,IAAI,GAAGwzK,cAAc,CAACt4K,KAAK,CAAC09E,SAAS,CAACw4F,QAAQ,CAACh4K,MAAM,CAAC;IAC5D,IAAI,CAACg6K,SAAS,CAACx6F,SAAS,CAACw4F,QAAQ,EAAE75C,OAAO,CAAC,EACvC,OAAO,KAAK;IAChB,IAAI,CAAC87C,iBAAiB,CAACz6F,SAAS,CAACw4F,QAAQ,EAAE75C,OAAO,EAAE27C,YAAY,CAAC,EAC7D,OAAO,KAAK;IAChB,IAAI,CAACt6F,SAAS,CAACpf,QAAQ,CAACq3G,cAAc,CAAC,EACnC,OAAO,KAAK;IAChB,OAAO0C,0BAA0B,CAAC36F,SAAS,CAACpf,QAAQ,CAACq3G,cAAc,CAAC,EAAEmC,SAAS,EAAEhzK,IAAI,EAAEkzK,YAAY,CAAC;EACxG;AACJ;AACA,SAASG,iBAAiBA,CAACI,cAAc,EAAED,cAAc,EAAE7sK,OAAO,EAAE;EAChE,OAAO6sK,cAAc,CAAC3/G,KAAK,CAAC,CAAC6/G,gBAAgB,EAAEx6K,CAAC,KAAK;IACjD,OAAOy5K,eAAe,CAAChsK,OAAO,CAAC,CAAC8sK,cAAc,CAACv6K,CAAC,CAAC,CAACmxB,UAAU,EAAEqpJ,gBAAgB,CAACrpJ,UAAU,CAAC;EAC9F,CAAC,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMioJ,OAAO,CAAC;EACV;EACAvzK,WAAWA,CACX;EACA8W,IAAI,EACJ;EACAotF,WAAW,EACX;EACAkwE,QAAQ,EAAE;IACN,IAAI,CAACt9J,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACotF,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACkwE,QAAQ,GAAGA,QAAQ;EAC5B;EACA,IAAIQ,aAAaA,CAAA,EAAG;IAChB,IAAI,CAAC,IAAI,CAACC,cAAc,EAAE;MACtB,IAAI,CAACA,cAAc,GAAG7C,iBAAiB,CAAC,IAAI,CAAC9tE,WAAW,CAAC;IAC7D;IACA,OAAO,IAAI,CAAC2wE,cAAc;EAC9B;EACA;EACAp3K,QAAQA,CAAA,EAAG;IACP,OAAOq3K,kBAAkB,CAACC,SAAS,CAAC,IAAI,CAAC;EAC7C;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMvB,eAAe,CAAC;EAClBxzK,WAAWA,CACX;EACAqyK,QAAQ,EACR;EACA53G,QAAQ,EAAE;IACN,IAAI,CAAC43G,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAAC53G,QAAQ,GAAGA,QAAQ;IACxB;IACA,IAAI,CAAC1kD,MAAM,GAAG,IAAI;IAClBzH,OAAO,CAACmsD,QAAQ,EAAE,CAAC3uB,CAAC,EAAE/vC,CAAC,KAAK+vC,CAAC,CAAC/1B,MAAM,GAAG,IAAI,CAAC;EAChD;EACA;EACAy8J,WAAWA,CAAA,EAAG;IACV,OAAO,IAAI,CAAC+B,gBAAgB,GAAG,CAAC;EACpC;EACA;EACA,IAAIA,gBAAgBA,CAAA,EAAG;IACnB,OAAOh3K,MAAM,CAAC41B,IAAI,CAAC,IAAI,CAACsnC,QAAQ,CAAC,CAACpgE,MAAM;EAC5C;EACA;EACAoD,QAAQA,CAAA,EAAG;IACP,OAAOu3K,cAAc,CAAC,IAAI,CAAC;EAC/B;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,UAAU,CAAC;EACbj1K,WAAWA,CACX;EACAwW,IAAI,EACJ;EACA8U,UAAU,EAAE;IACR,IAAI,CAAC9U,IAAI,GAAGA,IAAI;IAChB,IAAI,CAAC8U,UAAU,GAAGA,UAAU;EAChC;EACA,IAAI4pJ,YAAYA,CAAA,EAAG;IACf,IAAI,CAAC,IAAI,CAACC,aAAa,EAAE;MACrB,IAAI,CAACA,aAAa,GAAGnD,iBAAiB,CAAC,IAAI,CAAC1mJ,UAAU,CAAC;IAC3D;IACA,OAAO,IAAI,CAAC6pJ,aAAa;EAC7B;EACA;EACA13K,QAAQA,CAAA,EAAG;IACP,OAAO23K,aAAa,CAAC,IAAI,CAAC;EAC9B;AACJ;AACA,SAASC,aAAaA,CAACC,EAAE,EAAEC,EAAE,EAAE;EAC3B,OAAOlB,SAAS,CAACiB,EAAE,EAAEC,EAAE,CAAC,IAAID,EAAE,CAACxgH,KAAK,CAAC,CAAC3W,CAAC,EAAEhkD,CAAC,KAAK24K,YAAY,CAAC30H,CAAC,CAAC7yB,UAAU,EAAEiqJ,EAAE,CAACp7K,CAAC,CAAC,CAACmxB,UAAU,CAAC,CAAC;AAChG;AACA,SAAS+oJ,SAASA,CAACiB,EAAE,EAAEC,EAAE,EAAE;EACvB,IAAID,EAAE,CAACj7K,MAAM,KAAKk7K,EAAE,CAACl7K,MAAM,EACvB,OAAO,KAAK;EAChB,OAAOi7K,EAAE,CAACxgH,KAAK,CAAC,CAAC3W,CAAC,EAAEhkD,CAAC,KAAKgkD,CAAC,CAAC3nC,IAAI,KAAK++J,EAAE,CAACp7K,CAAC,CAAC,CAACqc,IAAI,CAAC;AACpD;AACA,SAASg/J,oBAAoBA,CAAC9C,OAAO,EAAE5tK,EAAE,EAAE;EACvC,IAAI/G,GAAG,GAAG,EAAE;EACZuQ,OAAO,CAACokK,OAAO,CAACj4G,QAAQ,EAAE,CAAC+qE,KAAK,EAAEiwC,WAAW,KAAK;IAC9C,IAAIA,WAAW,KAAK3D,cAAc,EAAE;MAChC/zK,GAAG,GAAGA,GAAG,CAACoF,MAAM,CAAC2B,EAAE,CAAC0gI,KAAK,EAAEiwC,WAAW,CAAC,CAAC;IAC5C;EACJ,CAAC,CAAC;EACFnnK,OAAO,CAACokK,OAAO,CAACj4G,QAAQ,EAAE,CAAC+qE,KAAK,EAAEiwC,WAAW,KAAK;IAC9C,IAAIA,WAAW,KAAK3D,cAAc,EAAE;MAChC/zK,GAAG,GAAGA,GAAG,CAACoF,MAAM,CAAC2B,EAAE,CAAC0gI,KAAK,EAAEiwC,WAAW,CAAC,CAAC;IAC5C;EACJ,CAAC,CAAC;EACF,OAAO13K,GAAG;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM23K,aAAa,CAAC;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,oBAAoB,CAAC;EACvB;EACAtkJ,KAAKA,CAAC4D,GAAG,EAAE;IACP,MAAMspB,CAAC,GAAG,IAAIq3H,SAAS,CAAC3gJ,GAAG,CAAC;IAC5B,OAAO,IAAIs+I,OAAO,CAACh1H,CAAC,CAACs3H,gBAAgB,CAAC,CAAC,EAAEt3H,CAAC,CAACu3H,gBAAgB,CAAC,CAAC,EAAEv3H,CAAC,CAACw3H,aAAa,CAAC,CAAC,CAAC;EACrF;EACA;EACAhB,SAASA,CAACiB,IAAI,EAAE;IACZ,MAAMtD,OAAO,GAAG,IAAIuD,gBAAgB,CAACD,IAAI,CAACl/J,IAAI,EAAE,IAAI,CAAC,EAAE;IACvD,MAAMwnB,KAAK,GAAG43I,oBAAoB,CAACF,IAAI,CAAC9xE,WAAW,CAAC;IACpD,MAAMkwE,QAAQ,GAAG,OAAO4B,IAAI,CAAC5B,QAAQ,KAAK,QAAQ,GAAG,IAAI+B,iBAAiB,CAACH,IAAI,CAAC5B,QAAQ,CAAC,EAAE,GAAG,EAAE;IAChG,OAAO,GAAG1B,OAAO,GAAGp0I,KAAK,GAAG81I,QAAQ,EAAE;EAC1C;AACJ;AACA,MAAMU,kBAAkB,GAAG,IAAIa,oBAAoB,CAAC,CAAC;AACrD,SAASX,cAAcA,CAACtC,OAAO,EAAE;EAC7B,OAAOA,OAAO,CAACL,QAAQ,CAACv5I,GAAG,CAACylB,CAAC,IAAI62H,aAAa,CAAC72H,CAAC,CAAC,CAAC,CAAC5jD,IAAI,CAAC,GAAG,CAAC;AAChE;AACA,SAASs7K,gBAAgBA,CAACvD,OAAO,EAAE57J,IAAI,EAAE;EACrC,IAAI,CAAC47J,OAAO,CAACF,WAAW,CAAC,CAAC,EAAE;IACxB,OAAOwC,cAAc,CAACtC,OAAO,CAAC;EAClC;EACA,IAAI57J,IAAI,EAAE;IACN,MAAMs/J,OAAO,GAAG1D,OAAO,CAACj4G,QAAQ,CAACq3G,cAAc,CAAC,GAC5CmE,gBAAgB,CAACvD,OAAO,CAACj4G,QAAQ,CAACq3G,cAAc,CAAC,EAAE,KAAK,CAAC,GACzD,EAAE;IACN,MAAMr3G,QAAQ,GAAG,EAAE;IACnBnsD,OAAO,CAACokK,OAAO,CAACj4G,QAAQ,EAAE,CAAC3uB,CAAC,EAAE/vC,CAAC,KAAK;MAChC,IAAIA,CAAC,KAAK+1K,cAAc,EAAE;QACtBr3G,QAAQ,CAAChgE,IAAI,CAAC,GAAGsB,CAAC,IAAIk6K,gBAAgB,CAACnqI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;MACvD;IACJ,CAAC,CAAC;IACF,OAAO2uB,QAAQ,CAACpgE,MAAM,GAAG,CAAC,GAAG,GAAG+7K,OAAO,IAAI37G,QAAQ,CAAC9/D,IAAI,CAAC,IAAI,CAAC,GAAG,GAAGy7K,OAAO;EAC/E,CAAC,MACI;IACD,MAAM37G,QAAQ,GAAG+6G,oBAAoB,CAAC9C,OAAO,EAAE,CAAC5mI,CAAC,EAAE/vC,CAAC,KAAK;MACrD,IAAIA,CAAC,KAAK+1K,cAAc,EAAE;QACtB,OAAO,CAACmE,gBAAgB,CAACvD,OAAO,CAACj4G,QAAQ,CAACq3G,cAAc,CAAC,EAAE,KAAK,CAAC,CAAC;MACtE;MACA,OAAO,CAAC,GAAG/1K,CAAC,IAAIk6K,gBAAgB,CAACnqI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;IACjD,CAAC,CAAC;IACF;IACA,IAAIvuC,MAAM,CAAC41B,IAAI,CAACu/I,OAAO,CAACj4G,QAAQ,CAAC,CAACpgE,MAAM,KAAK,CAAC,IAAIq4K,OAAO,CAACj4G,QAAQ,CAACq3G,cAAc,CAAC,IAAI,IAAI,EAAE;MACxF,OAAO,GAAGkD,cAAc,CAACtC,OAAO,CAAC,IAAIj4G,QAAQ,CAAC,CAAC,CAAC,EAAE;IACtD;IACA,OAAO,GAAGu6G,cAAc,CAACtC,OAAO,CAAC,KAAKj4G,QAAQ,CAAC9/D,IAAI,CAAC,IAAI,CAAC,GAAG;EAChE;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS07K,eAAeA,CAACttI,CAAC,EAAE;EACxB,OAAOrf,kBAAkB,CAACqf,CAAC,CAAC,CACvB9tC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CACpBA,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CACrBA,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CACpBA,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASq7K,cAAcA,CAACvtI,CAAC,EAAE;EACvB,OAAOstI,eAAe,CAACttI,CAAC,CAAC,CAAC9tC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASk7K,iBAAiBA,CAACptI,CAAC,EAAE;EAC1B,OAAOwtI,SAAS,CAACxtI,CAAC,CAAC;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASytI,gBAAgBA,CAACztI,CAAC,EAAE;EACzB,OAAOstI,eAAe,CAACttI,CAAC,CAAC,CAAC9tC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAACA,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAACA,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;AAC/F;AACA,SAASL,MAAMA,CAACmuC,CAAC,EAAE;EACf,OAAOivE,kBAAkB,CAACjvE,CAAC,CAAC;AAChC;AACA;AACA;AACA,SAAS0tI,WAAWA,CAAC1tI,CAAC,EAAE;EACpB,OAAOnuC,MAAM,CAACmuC,CAAC,CAAC9tC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC1C;AACA,SAASm6K,aAAaA,CAAC5+J,IAAI,EAAE;EACzB,OAAO,GAAGggK,gBAAgB,CAAChgK,IAAI,CAACA,IAAI,CAAC,GAAGkgK,qBAAqB,CAAClgK,IAAI,CAAC8U,UAAU,CAAC,EAAE;AACpF;AACA,SAASorJ,qBAAqBA,CAACxtK,MAAM,EAAE;EACnC,OAAO3L,MAAM,CAAC41B,IAAI,CAACjqB,MAAM,CAAC,CACrB4vB,GAAG,CAACr3B,GAAG,IAAI,IAAI+0K,gBAAgB,CAAC/0K,GAAG,CAAC,IAAI+0K,gBAAgB,CAACttK,MAAM,CAACzH,GAAG,CAAC,CAAC,EAAE,CAAC,CACxE9G,IAAI,CAAC,EAAE,CAAC;AACjB;AACA,SAASu7K,oBAAoBA,CAAChtK,MAAM,EAAE;EAClC,MAAMytK,SAAS,GAAGp5K,MAAM,CAAC41B,IAAI,CAACjqB,MAAM,CAAC,CAChC4vB,GAAG,CAAEl6B,IAAI,IAAK;IACf,MAAM8C,KAAK,GAAGwH,MAAM,CAACtK,IAAI,CAAC;IAC1B,OAAOzD,KAAK,CAACZ,OAAO,CAACmH,KAAK,CAAC,GACvBA,KAAK,CAACo3B,GAAG,CAACgT,CAAC,IAAI,GAAGwqI,cAAc,CAAC13K,IAAI,CAAC,IAAI03K,cAAc,CAACxqI,CAAC,CAAC,EAAE,CAAC,CAACnxC,IAAI,CAAC,GAAG,CAAC,GACxE,GAAG27K,cAAc,CAAC13K,IAAI,CAAC,IAAI03K,cAAc,CAAC50K,KAAK,CAAC,EAAE;EAC1D,CAAC,CAAC,CACGyV,MAAM,CAAC4xB,CAAC,IAAI,CAAC,CAACA,CAAC,CAAC;EACrB,OAAO4tI,SAAS,CAACt8K,MAAM,GAAG,IAAIs8K,SAAS,CAACh8K,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE;AAC5D;AACA,MAAMi8K,UAAU,GAAG,eAAe;AAClC,SAASC,aAAaA,CAACv7K,GAAG,EAAE;EACxB,MAAM0kC,KAAK,GAAG1kC,GAAG,CAAC0kC,KAAK,CAAC42I,UAAU,CAAC;EACnC,OAAO52I,KAAK,GAAGA,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE;AAChC;AACA,MAAM82I,cAAc,GAAG,WAAW;AAClC;AACA,SAASC,gBAAgBA,CAACz7K,GAAG,EAAE;EAC3B,MAAM0kC,KAAK,GAAG1kC,GAAG,CAAC0kC,KAAK,CAAC82I,cAAc,CAAC;EACvC,OAAO92I,KAAK,GAAGA,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE;AAChC;AACA,MAAMg3I,oBAAoB,GAAG,SAAS;AACtC;AACA,SAASC,uBAAuBA,CAAC37K,GAAG,EAAE;EAClC,MAAM0kC,KAAK,GAAG1kC,GAAG,CAAC0kC,KAAK,CAACg3I,oBAAoB,CAAC;EAC7C,OAAOh3I,KAAK,GAAGA,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE;AAChC;AACA,MAAM41I,SAAS,CAAC;EACZ51K,WAAWA,CAACi1B,GAAG,EAAE;IACb,IAAI,CAACA,GAAG,GAAGA,GAAG;IACd,IAAI,CAACiiJ,SAAS,GAAGjiJ,GAAG;EACxB;EACA4gJ,gBAAgBA,CAAA,EAAG;IACf,IAAI,CAACsB,eAAe,CAAC,GAAG,CAAC;IACzB,IAAI,IAAI,CAACD,SAAS,KAAK,EAAE,IAAI,IAAI,CAACE,cAAc,CAAC,GAAG,CAAC,IAAI,IAAI,CAACA,cAAc,CAAC,GAAG,CAAC,EAAE;MAC/E,OAAO,IAAI5D,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACtC;IACA;IACA,OAAO,IAAIA,eAAe,CAAC,EAAE,EAAE,IAAI,CAAC6D,aAAa,CAAC,CAAC,CAAC;EACxD;EACAvB,gBAAgBA,CAAA,EAAG;IACf,MAAM5sK,MAAM,GAAG,CAAC,CAAC;IACjB,IAAI,IAAI,CAACiuK,eAAe,CAAC,GAAG,CAAC,EAAE;MAC3B,GAAG;QACC,IAAI,CAACG,eAAe,CAACpuK,MAAM,CAAC;MAChC,CAAC,QAAQ,IAAI,CAACiuK,eAAe,CAAC,GAAG,CAAC;IACtC;IACA,OAAOjuK,MAAM;EACjB;EACA6sK,aAAaA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACoB,eAAe,CAAC,GAAG,CAAC,GAAGn/D,kBAAkB,CAAC,IAAI,CAACk/D,SAAS,CAAC,GAAG,IAAI;EAChF;EACAG,aAAaA,CAAA,EAAG;IACZ,IAAI,IAAI,CAACH,SAAS,KAAK,EAAE,EAAE;MACvB,OAAO,CAAC,CAAC;IACb;IACA,IAAI,CAACC,eAAe,CAAC,GAAG,CAAC;IACzB,MAAM9E,QAAQ,GAAG,EAAE;IACnB,IAAI,CAAC,IAAI,CAAC+E,cAAc,CAAC,GAAG,CAAC,EAAE;MAC3B/E,QAAQ,CAAC53K,IAAI,CAAC,IAAI,CAAC88K,YAAY,CAAC,CAAC,CAAC;IACtC;IACA,OAAO,IAAI,CAACH,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAACA,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAACA,cAAc,CAAC,IAAI,CAAC,EAAE;MACzF,IAAI,CAACh4G,OAAO,CAAC,GAAG,CAAC;MACjBizG,QAAQ,CAAC53K,IAAI,CAAC,IAAI,CAAC88K,YAAY,CAAC,CAAC,CAAC;IACtC;IACA,IAAI98G,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,IAAI,CAAC28G,cAAc,CAAC,IAAI,CAAC,EAAE;MAC3B,IAAI,CAACh4G,OAAO,CAAC,GAAG,CAAC;MACjB3E,QAAQ,GAAG,IAAI,CAAC+8G,WAAW,CAAC,IAAI,CAAC;IACrC;IACA,IAAIz5K,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,IAAI,CAACq5K,cAAc,CAAC,GAAG,CAAC,EAAE;MAC1Br5K,GAAG,GAAG,IAAI,CAACy5K,WAAW,CAAC,KAAK,CAAC;IACjC;IACA,IAAInF,QAAQ,CAACh4K,MAAM,GAAG,CAAC,IAAIkD,MAAM,CAAC41B,IAAI,CAACsnC,QAAQ,CAAC,CAACpgE,MAAM,GAAG,CAAC,EAAE;MACzD0D,GAAG,CAAC+zK,cAAc,CAAC,GAAG,IAAI0B,eAAe,CAACnB,QAAQ,EAAE53G,QAAQ,CAAC;IACjE;IACA,OAAO18D,GAAG;EACd;EACA;EACA;EACAw5K,YAAYA,CAAA,EAAG;IACX,MAAM/gK,IAAI,GAAGqgK,aAAa,CAAC,IAAI,CAACK,SAAS,CAAC;IAC1C,IAAI1gK,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC4gK,cAAc,CAAC,GAAG,CAAC,EAAE;MACzC,MAAM,IAAIp8K,KAAK,CAAC,mDAAmD,IAAI,CAACk8K,SAAS,IAAI,CAAC;IAC1F;IACA,IAAI,CAAC93G,OAAO,CAAC5oD,IAAI,CAAC;IAClB,OAAO,IAAIy+J,UAAU,CAACr6K,MAAM,CAAC4b,IAAI,CAAC,EAAE,IAAI,CAACihK,iBAAiB,CAAC,CAAC,CAAC;EACjE;EACAA,iBAAiBA,CAAA,EAAG;IAChB,MAAMvuK,MAAM,GAAG,CAAC,CAAC;IACjB,OAAO,IAAI,CAACiuK,eAAe,CAAC,GAAG,CAAC,EAAE;MAC9B,IAAI,CAACO,UAAU,CAACxuK,MAAM,CAAC;IAC3B;IACA,OAAOA,MAAM;EACjB;EACAwuK,UAAUA,CAACxuK,MAAM,EAAE;IACf,MAAMzH,GAAG,GAAGo1K,aAAa,CAAC,IAAI,CAACK,SAAS,CAAC;IACzC,IAAI,CAACz1K,GAAG,EAAE;MACN;IACJ;IACA,IAAI,CAAC29D,OAAO,CAAC39D,GAAG,CAAC;IACjB,IAAIC,KAAK,GAAG,EAAE;IACd,IAAI,IAAI,CAACy1K,eAAe,CAAC,GAAG,CAAC,EAAE;MAC3B,MAAMQ,UAAU,GAAGd,aAAa,CAAC,IAAI,CAACK,SAAS,CAAC;MAChD,IAAIS,UAAU,EAAE;QACZj2K,KAAK,GAAGi2K,UAAU;QAClB,IAAI,CAACv4G,OAAO,CAAC19D,KAAK,CAAC;MACvB;IACJ;IACAwH,MAAM,CAACtO,MAAM,CAAC6G,GAAG,CAAC,CAAC,GAAG7G,MAAM,CAAC8G,KAAK,CAAC;EACvC;EACA;EACA41K,eAAeA,CAACpuK,MAAM,EAAE;IACpB,MAAMzH,GAAG,GAAGs1K,gBAAgB,CAAC,IAAI,CAACG,SAAS,CAAC;IAC5C,IAAI,CAACz1K,GAAG,EAAE;MACN;IACJ;IACA,IAAI,CAAC29D,OAAO,CAAC39D,GAAG,CAAC;IACjB,IAAIC,KAAK,GAAG,EAAE;IACd,IAAI,IAAI,CAACy1K,eAAe,CAAC,GAAG,CAAC,EAAE;MAC3B,MAAMQ,UAAU,GAAGV,uBAAuB,CAAC,IAAI,CAACC,SAAS,CAAC;MAC1D,IAAIS,UAAU,EAAE;QACZj2K,KAAK,GAAGi2K,UAAU;QAClB,IAAI,CAACv4G,OAAO,CAAC19D,KAAK,CAAC;MACvB;IACJ;IACA,MAAMk2K,UAAU,GAAGnB,WAAW,CAACh1K,GAAG,CAAC;IACnC,MAAMo2K,UAAU,GAAGpB,WAAW,CAAC/0K,KAAK,CAAC;IACrC,IAAIwH,MAAM,CAACxK,cAAc,CAACk5K,UAAU,CAAC,EAAE;MACnC;MACA,IAAIE,UAAU,GAAG5uK,MAAM,CAAC0uK,UAAU,CAAC;MACnC,IAAI,CAACz8K,KAAK,CAACZ,OAAO,CAACu9K,UAAU,CAAC,EAAE;QAC5BA,UAAU,GAAG,CAACA,UAAU,CAAC;QACzB5uK,MAAM,CAAC0uK,UAAU,CAAC,GAAGE,UAAU;MACnC;MACAA,UAAU,CAACr9K,IAAI,CAACo9K,UAAU,CAAC;IAC/B,CAAC,MACI;MACD;MACA3uK,MAAM,CAAC0uK,UAAU,CAAC,GAAGC,UAAU;IACnC;EACJ;EACA;EACAL,WAAWA,CAACO,YAAY,EAAE;IACtB,MAAM1F,QAAQ,GAAG,CAAC,CAAC;IACnB,IAAI,CAACjzG,OAAO,CAAC,GAAG,CAAC;IACjB,OAAO,CAAC,IAAI,CAAC+3G,eAAe,CAAC,GAAG,CAAC,IAAI,IAAI,CAACD,SAAS,CAAC78K,MAAM,GAAG,CAAC,EAAE;MAC5D,MAAMmc,IAAI,GAAGqgK,aAAa,CAAC,IAAI,CAACK,SAAS,CAAC;MAC1C,MAAMj2K,IAAI,GAAG,IAAI,CAACi2K,SAAS,CAAC1gK,IAAI,CAACnc,MAAM,CAAC;MACxC;MACA;MACA,IAAI4G,IAAI,KAAK,GAAG,IAAIA,IAAI,KAAK,GAAG,IAAIA,IAAI,KAAK,GAAG,EAAE;QAC9C,MAAM,IAAIjG,KAAK,CAAC,qBAAqB,IAAI,CAACi6B,GAAG,GAAG,CAAC;MACrD;MACA,IAAI+iJ,UAAU,GAAG97I,SAAS;MAC1B,IAAI1lB,IAAI,CAACpb,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;QACxB48K,UAAU,GAAGxhK,IAAI,CAACzb,MAAM,CAAC,CAAC,EAAEyb,IAAI,CAACpb,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAACgkE,OAAO,CAAC44G,UAAU,CAAC;QACxB,IAAI,CAAC54G,OAAO,CAAC,GAAG,CAAC;MACrB,CAAC,MACI,IAAI24G,YAAY,EAAE;QACnBC,UAAU,GAAGlG,cAAc;MAC/B;MACA,MAAMr3G,QAAQ,GAAG,IAAI,CAAC48G,aAAa,CAAC,CAAC;MACrChF,QAAQ,CAAC2F,UAAU,CAAC,GAAGz6K,MAAM,CAAC41B,IAAI,CAACsnC,QAAQ,CAAC,CAACpgE,MAAM,KAAK,CAAC,GAAGogE,QAAQ,CAACq3G,cAAc,CAAC,GAChF,IAAI0B,eAAe,CAAC,EAAE,EAAE/4G,QAAQ,CAAC;MACrC,IAAI,CAAC08G,eAAe,CAAC,IAAI,CAAC;IAC9B;IACA,OAAO9E,QAAQ;EACnB;EACA+E,cAAcA,CAAC97K,GAAG,EAAE;IAChB,OAAO,IAAI,CAAC47K,SAAS,CAACx1I,UAAU,CAACpmC,GAAG,CAAC;EACzC;EACA;EACA67K,eAAeA,CAAC77K,GAAG,EAAE;IACjB,IAAI,IAAI,CAAC87K,cAAc,CAAC97K,GAAG,CAAC,EAAE;MAC1B,IAAI,CAAC47K,SAAS,GAAG,IAAI,CAACA,SAAS,CAAC/wK,SAAS,CAAC7K,GAAG,CAACjB,MAAM,CAAC;MACrD,OAAO,IAAI;IACf;IACA,OAAO,KAAK;EAChB;EACA+kE,OAAOA,CAAC9jE,GAAG,EAAE;IACT,IAAI,CAAC,IAAI,CAAC67K,eAAe,CAAC77K,GAAG,CAAC,EAAE;MAC5B,MAAM,IAAIN,KAAK,CAAC,aAAaM,GAAG,IAAI,CAAC;IACzC;EACJ;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM28K,IAAI,CAAC;EACPj4K,WAAWA,CAAC8W,IAAI,EAAE;IACd,IAAI,CAACohK,KAAK,GAAGphK,IAAI;EACrB;EACA,IAAIA,IAAIA,CAAA,EAAG;IACP,OAAO,IAAI,CAACohK,KAAK,CAACx2K,KAAK;EAC3B;EACA;AACJ;AACA;EACIqU,MAAMA,CAACnP,CAAC,EAAE;IACN,MAAM23C,CAAC,GAAG,IAAI,CAAC45H,YAAY,CAACvxK,CAAC,CAAC;IAC9B,OAAO23C,CAAC,CAAClkD,MAAM,GAAG,CAAC,GAAGkkD,CAAC,CAACA,CAAC,CAAClkD,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI;EAChD;EACA;AACJ;AACA;EACIogE,QAAQA,CAAC7zD,CAAC,EAAE;IACR,MAAMH,CAAC,GAAG2xK,QAAQ,CAACxxK,CAAC,EAAE,IAAI,CAACsxK,KAAK,CAAC;IACjC,OAAOzxK,CAAC,GAAGA,CAAC,CAACg0D,QAAQ,CAAC3hC,GAAG,CAAClyB,CAAC,IAAIA,CAAC,CAAClF,KAAK,CAAC,GAAG,EAAE;EAChD;EACA;AACJ;AACA;EACI22K,UAAUA,CAACzxK,CAAC,EAAE;IACV,MAAMH,CAAC,GAAG2xK,QAAQ,CAACxxK,CAAC,EAAE,IAAI,CAACsxK,KAAK,CAAC;IACjC,OAAOzxK,CAAC,IAAIA,CAAC,CAACg0D,QAAQ,CAACpgE,MAAM,GAAG,CAAC,GAAGoM,CAAC,CAACg0D,QAAQ,CAAC,CAAC,CAAC,CAAC/4D,KAAK,GAAG,IAAI;EAClE;EACA;AACJ;AACA;EACI42K,QAAQA,CAAC1xK,CAAC,EAAE;IACR,MAAM23C,CAAC,GAAGg6H,QAAQ,CAAC3xK,CAAC,EAAE,IAAI,CAACsxK,KAAK,CAAC;IACjC,IAAI35H,CAAC,CAAClkD,MAAM,GAAG,CAAC,EACZ,OAAO,EAAE;IACb,MAAMyH,CAAC,GAAGy8C,CAAC,CAACA,CAAC,CAAClkD,MAAM,GAAG,CAAC,CAAC,CAACogE,QAAQ,CAAC3hC,GAAG,CAACh3B,CAAC,IAAIA,CAAC,CAACJ,KAAK,CAAC;IACpD,OAAOI,CAAC,CAACqV,MAAM,CAACqhK,EAAE,IAAIA,EAAE,KAAK5xK,CAAC,CAAC;EACnC;EACA;AACJ;AACA;EACIuxK,YAAYA,CAACvxK,CAAC,EAAE;IACZ,OAAO2xK,QAAQ,CAAC3xK,CAAC,EAAE,IAAI,CAACsxK,KAAK,CAAC,CAACp/I,GAAG,CAACiQ,CAAC,IAAIA,CAAC,CAACrnC,KAAK,CAAC;EACpD;AACJ;AACA;AACA,SAAS02K,QAAQA,CAAC12K,KAAK,EAAEkiC,IAAI,EAAE;EAC3B,IAAIliC,KAAK,KAAKkiC,IAAI,CAACliC,KAAK,EACpB,OAAOkiC,IAAI;EACf,KAAK,MAAM4hG,KAAK,IAAI5hG,IAAI,CAAC62B,QAAQ,EAAE;IAC/B,MAAM72B,IAAI,GAAGw0I,QAAQ,CAAC12K,KAAK,EAAE8jI,KAAK,CAAC;IACnC,IAAI5hG,IAAI,EACJ,OAAOA,IAAI;EACnB;EACA,OAAO,IAAI;AACf;AACA;AACA,SAAS20I,QAAQA,CAAC72K,KAAK,EAAEkiC,IAAI,EAAE;EAC3B,IAAIliC,KAAK,KAAKkiC,IAAI,CAACliC,KAAK,EACpB,OAAO,CAACkiC,IAAI,CAAC;EACjB,KAAK,MAAM4hG,KAAK,IAAI5hG,IAAI,CAAC62B,QAAQ,EAAE;IAC/B,MAAMjkD,IAAI,GAAG+hK,QAAQ,CAAC72K,KAAK,EAAE8jI,KAAK,CAAC;IACnC,IAAIhvH,IAAI,CAACnc,MAAM,EAAE;MACbmc,IAAI,CAACspC,OAAO,CAAClc,IAAI,CAAC;MAClB,OAAOptB,IAAI;IACf;EACJ;EACA,OAAO,EAAE;AACb;AACA,MAAMiiK,QAAQ,CAAC;EACXz4K,WAAWA,CAAC0B,KAAK,EAAE+4D,QAAQ,EAAE;IACzB,IAAI,CAAC/4D,KAAK,GAAGA,KAAK;IAClB,IAAI,CAAC+4D,QAAQ,GAAGA,QAAQ;EAC5B;EACAh9D,QAAQA,CAAA,EAAG;IACP,OAAO,YAAY,IAAI,CAACiE,KAAK,GAAG;EACpC;AACJ;AACA;AACA,SAASg3K,iBAAiBA,CAAC90I,IAAI,EAAE;EAC7B,MAAM9K,GAAG,GAAG,CAAC,CAAC;EACd,IAAI8K,IAAI,EAAE;IACNA,IAAI,CAAC62B,QAAQ,CAACnsD,OAAO,CAACk3H,KAAK,IAAI1sG,GAAG,CAAC0sG,KAAK,CAAC9jI,KAAK,CAACi3K,MAAM,CAAC,GAAGnzC,KAAK,CAAC;EACnE;EACA,OAAO1sG,GAAG;AACd;;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,MAAM8/I,WAAW,SAASX,IAAI,CAAC;EAC3B;EACAj4K,WAAWA,CAAC8W,IAAI,EAChB;EACAy6J,QAAQ,EAAE;IACN,KAAK,CAACz6J,IAAI,CAAC;IACX,IAAI,CAACy6J,QAAQ,GAAGA,QAAQ;IACxBsH,cAAc,CAAC,IAAI,EAAE/hK,IAAI,CAAC;EAC9B;EACArZ,QAAQA,CAAA,EAAG;IACP,OAAO,IAAI,CAAC8zK,QAAQ,CAAC9zK,QAAQ,CAAC,CAAC;EACnC;AACJ;AACA,SAASq7K,gBAAgBA,CAACC,OAAO,EAAEC,aAAa,EAAE;EAC9C,MAAMzH,QAAQ,GAAG0H,wBAAwB,CAACF,OAAO,EAAEC,aAAa,CAAC;EACjE,MAAME,QAAQ,GAAG,IAAIxsH,iDAAe,CAAC,CAAC,IAAIuoH,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;EAC9D,MAAMkE,WAAW,GAAG,IAAIzsH,iDAAe,CAAC,CAAC,CAAC,CAAC;EAC3C,MAAM0sH,SAAS,GAAG,IAAI1sH,iDAAe,CAAC,CAAC,CAAC,CAAC;EACzC,MAAM2sH,gBAAgB,GAAG,IAAI3sH,iDAAe,CAAC,CAAC,CAAC,CAAC;EAChD,MAAM0nH,QAAQ,GAAG,IAAI1nH,iDAAe,CAAC,EAAE,CAAC;EACxC,MAAM4sH,SAAS,GAAG,IAAIC,cAAc,CAACL,QAAQ,EAAEC,WAAW,EAAEE,gBAAgB,EAAEjF,QAAQ,EAAEgF,SAAS,EAAEtH,cAAc,EAAEkH,aAAa,EAAEzH,QAAQ,CAACz6J,IAAI,CAAC;EAChJwiK,SAAS,CAAC/H,QAAQ,GAAGA,QAAQ,CAACz6J,IAAI;EAClC,OAAO,IAAI8hK,WAAW,CAAC,IAAIH,QAAQ,CAACa,SAAS,EAAE,EAAE,CAAC,EAAE/H,QAAQ,CAAC;AACjE;AACA,SAAS0H,wBAAwBA,CAACF,OAAO,EAAEC,aAAa,EAAE;EACtD,MAAMG,WAAW,GAAG,CAAC,CAAC;EACtB,MAAMC,SAAS,GAAG,CAAC,CAAC;EACpB,MAAMC,gBAAgB,GAAG,CAAC,CAAC;EAC3B,MAAMjF,QAAQ,GAAG,EAAE;EACnB,MAAMkF,SAAS,GAAG,IAAIE,sBAAsB,CAAC,EAAE,EAAEL,WAAW,EAAEE,gBAAgB,EAAEjF,QAAQ,EAAEgF,SAAS,EAAEtH,cAAc,EAAEkH,aAAa,EAAE,IAAI,EAAED,OAAO,CAACjiK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAC/J,OAAO,IAAI2iK,mBAAmB,CAAC,EAAE,EAAE,IAAIhB,QAAQ,CAACa,SAAS,EAAE,EAAE,CAAC,CAAC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,cAAc,CAAC;EACjB;EACAv5K,WAAWA,CACX;EACAi1B,GAAG,EACH;EACA/rB,MAAM,EACN;EACAg7F,WAAW,EACX;EACAkwE,QAAQ,EACR;EACAh1K,IAAI,EACJ;EACAu5K,MAAM,EACN;EACA;EACAnqF,SAAS,EAAEkrF,cAAc,EAAE;IACvB,IAAI,CAACzkJ,GAAG,GAAGA,GAAG;IACd,IAAI,CAAC/rB,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACg7F,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACkwE,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACh1K,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACu5K,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACnqF,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACmrF,eAAe,GAAGD,cAAc;EACzC;EACA;EACA,IAAIlI,WAAWA,CAAA,EAAG;IACd,OAAO,IAAI,CAACmI,eAAe,CAACnI,WAAW;EAC3C;EACA;EACA,IAAI16J,IAAIA,CAAA,EAAG;IACP,OAAO,IAAI,CAAC8iK,YAAY,CAAC9iK,IAAI;EACjC;EACA;EACA,IAAIf,MAAMA,CAAA,EAAG;IACT,OAAO,IAAI,CAAC6jK,YAAY,CAAC7jK,MAAM,CAAC,IAAI,CAAC;EACzC;EACA;EACA,IAAIsiK,UAAUA,CAAA,EAAG;IACb,OAAO,IAAI,CAACuB,YAAY,CAACvB,UAAU,CAAC,IAAI,CAAC;EAC7C;EACA;EACA,IAAI59G,QAAQA,CAAA,EAAG;IACX,OAAO,IAAI,CAACm/G,YAAY,CAACn/G,QAAQ,CAAC,IAAI,CAAC;EAC3C;EACA;EACA,IAAI09G,YAAYA,CAAA,EAAG;IACf,OAAO,IAAI,CAACyB,YAAY,CAACzB,YAAY,CAAC,IAAI,CAAC;EAC/C;EACA;AACJ;AACA;AACA;AACA;EACI,IAAI0B,QAAQA,CAAA,EAAG;IACX,IAAI,CAAC,IAAI,CAACC,SAAS,EAAE;MACjB,IAAI,CAACA,SAAS,GAAG,IAAI,CAAC5wK,MAAM,CAAClI,IAAI,CAAC83B,mDAAG,CAAEylB,CAAC,IAAKyzH,iBAAiB,CAACzzH,CAAC,CAAC,CAAC,CAAC;IACvE;IACA,OAAO,IAAI,CAACu7H,SAAS;EACzB;EACA;AACJ;AACA;AACA;EACI,IAAIlF,aAAaA,CAAA,EAAG;IAChB,IAAI,CAAC,IAAI,CAACC,cAAc,EAAE;MACtB,IAAI,CAACA,cAAc,GACf,IAAI,CAAC3wE,WAAW,CAACljG,IAAI,CAAC83B,mDAAG,CAAEylB,CAAC,IAAKyzH,iBAAiB,CAACzzH,CAAC,CAAC,CAAC,CAAC;IAC/D;IACA,OAAO,IAAI,CAACs2H,cAAc;EAC9B;EACAp3K,QAAQA,CAAA,EAAG;IACP,OAAO,IAAI,CAAC8zK,QAAQ,GAAG,IAAI,CAACA,QAAQ,CAAC9zK,QAAQ,CAAC,CAAC,GAAG,UAAU,IAAI,CAACk8K,eAAe,GAAG;EACvF;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,SAASI,0BAA0BA,CAAC3I,KAAK,EAAE4I,yBAAyB,GAAG,WAAW,EAAE;EAChF,MAAM7B,YAAY,GAAG/G,KAAK,CAAC+G,YAAY;EACvC,IAAI8B,sBAAsB,GAAG,CAAC;EAC9B,IAAID,yBAAyB,KAAK,QAAQ,EAAE;IACxCC,sBAAsB,GAAG9B,YAAY,CAAC99K,MAAM,GAAG,CAAC;IAChD,OAAO4/K,sBAAsB,IAAI,CAAC,EAAE;MAChC,MAAMzhD,OAAO,GAAG2/C,YAAY,CAAC8B,sBAAsB,CAAC;MACpD,MAAMlkK,MAAM,GAAGoiK,YAAY,CAAC8B,sBAAsB,GAAG,CAAC,CAAC;MACvD;MACA,IAAIzhD,OAAO,CAACg5C,WAAW,IAAIh5C,OAAO,CAACg5C,WAAW,CAACh7J,IAAI,KAAK,EAAE,EAAE;QACxDyjK,sBAAsB,EAAE;QACxB;MACJ,CAAC,MACI,IAAI,CAAClkK,MAAM,CAACy4E,SAAS,EAAE;QACxByrF,sBAAsB,EAAE;MAC5B,CAAC,MACI;QACD;MACJ;IACJ;EACJ;EACA,OAAOC,gBAAgB,CAAC/B,YAAY,CAACh8K,KAAK,CAAC89K,sBAAsB,CAAC,CAAC;AACvE;AACA;AACA,SAASC,gBAAgBA,CAAC/B,YAAY,EAAE;EACpC,OAAOA,YAAY,CAACj1F,MAAM,CAAC,CAACnlF,GAAG,EAAEo8K,IAAI,KAAK;IACtC,MAAMjxK,MAAM,GAAG3L,MAAM,CAACurB,MAAM,CAACvrB,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAE/qB,GAAG,CAACmL,MAAM,CAAC,EAAEixK,IAAI,CAACjxK,MAAM,CAAC;IACxE,MAAM9J,IAAI,GAAG7B,MAAM,CAACurB,MAAM,CAACvrB,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAE/qB,GAAG,CAACqB,IAAI,CAAC,EAAE+6K,IAAI,CAAC/6K,IAAI,CAAC;IAClE,MAAMF,OAAO,GAAG3B,MAAM,CAACurB,MAAM,CAACvrB,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAE/qB,GAAG,CAACmB,OAAO,CAAC,EAAEi7K,IAAI,CAACC,aAAa,CAAC;IACjF,OAAO;MAAElxK,MAAM;MAAE9J,IAAI;MAAEF;IAAQ,CAAC;EACpC,CAAC,EAAE;IAAEgK,MAAM,EAAE,CAAC,CAAC;IAAE9J,IAAI,EAAE,CAAC,CAAC;IAAEF,OAAO,EAAE,CAAC;EAAE,CAAC,CAAC;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,MAAMs6K,sBAAsB,CAAC;EACzB;EACAx5K,WAAWA,CACX;EACAi1B,GAAG;EACH;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI/rB,MAAM,EACN;EACAg7F,WAAW,EACX;EACAkwE,QAAQ,EACR;EACAh1K,IAAI,EACJ;EACAu5K,MAAM,EACN;EACAnqF,SAAS,EAAEgjF,WAAW,EAAE6I,UAAU,EAAEC,aAAa,EAAEp7K,OAAO,EAAE;IACxD,IAAI,CAAC+1B,GAAG,GAAGA,GAAG;IACd,IAAI,CAAC/rB,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACg7F,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACkwE,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACh1K,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACu5K,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACnqF,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACgjF,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAAC+I,WAAW,GAAGF,UAAU;IAC7B,IAAI,CAACG,cAAc,GAAGF,aAAa;IACnC,IAAI,CAACG,QAAQ,GAAGv7K,OAAO;EAC3B;EACA;EACA,IAAI4X,IAAIA,CAAA,EAAG;IACP,OAAO,IAAI,CAAC8iK,YAAY,CAAC9iK,IAAI;EACjC;EACA;EACA,IAAIf,MAAMA,CAAA,EAAG;IACT,OAAO,IAAI,CAAC6jK,YAAY,CAAC7jK,MAAM,CAAC,IAAI,CAAC;EACzC;EACA;EACA,IAAIsiK,UAAUA,CAAA,EAAG;IACb,OAAO,IAAI,CAACuB,YAAY,CAACvB,UAAU,CAAC,IAAI,CAAC;EAC7C;EACA;EACA,IAAI59G,QAAQA,CAAA,EAAG;IACX,OAAO,IAAI,CAACm/G,YAAY,CAACn/G,QAAQ,CAAC,IAAI,CAAC;EAC3C;EACA;EACA,IAAI09G,YAAYA,CAAA,EAAG;IACf,OAAO,IAAI,CAACyB,YAAY,CAACzB,YAAY,CAAC,IAAI,CAAC;EAC/C;EACA,IAAI0B,QAAQA,CAAA,EAAG;IACX,IAAI,CAAC,IAAI,CAACC,SAAS,EAAE;MACjB,IAAI,CAACA,SAAS,GAAG9H,iBAAiB,CAAC,IAAI,CAAC9oK,MAAM,CAAC;IACnD;IACA,OAAO,IAAI,CAAC4wK,SAAS;EACzB;EACA,IAAIlF,aAAaA,CAAA,EAAG;IAChB,IAAI,CAAC,IAAI,CAACC,cAAc,EAAE;MACtB,IAAI,CAACA,cAAc,GAAG7C,iBAAiB,CAAC,IAAI,CAAC9tE,WAAW,CAAC;IAC7D;IACA,OAAO,IAAI,CAAC2wE,cAAc;EAC9B;EACAp3K,QAAQA,CAAA,EAAG;IACP,MAAMw3B,GAAG,GAAG,IAAI,CAACA,GAAG,CAAC6D,GAAG,CAAC45I,OAAO,IAAIA,OAAO,CAACj1K,QAAQ,CAAC,CAAC,CAAC,CAAC9C,IAAI,CAAC,GAAG,CAAC;IACjE,MAAMyiH,OAAO,GAAG,IAAI,CAACo0D,WAAW,GAAG,IAAI,CAACA,WAAW,CAACh7J,IAAI,GAAG,EAAE;IAC7D,OAAO,cAAcye,GAAG,YAAYmoF,OAAO,IAAI;EACnD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMq8D,mBAAmB,SAASxB,IAAI,CAAC;EACnC;EACAj4K,WAAWA,CACX;EACAi1B,GAAG,EAAEne,IAAI,EAAE;IACP,KAAK,CAACA,IAAI,CAAC;IACX,IAAI,CAACme,GAAG,GAAGA,GAAG;IACd4jJ,cAAc,CAAC,IAAI,EAAE/hK,IAAI,CAAC;EAC9B;EACArZ,QAAQA,CAAA,EAAG;IACP,OAAOi9K,aAAa,CAAC,IAAI,CAACxC,KAAK,CAAC;EACpC;AACJ;AACA,SAASW,cAAcA,CAAC/4J,KAAK,EAAE8jB,IAAI,EAAE;EACjCA,IAAI,CAACliC,KAAK,CAACk4K,YAAY,GAAG95J,KAAK;EAC/B8jB,IAAI,CAAC62B,QAAQ,CAACnsD,OAAO,CAACxM,CAAC,IAAI+2K,cAAc,CAAC/4J,KAAK,EAAEhe,CAAC,CAAC,CAAC;AACxD;AACA,SAAS44K,aAAaA,CAAC92I,IAAI,EAAE;EACzB,MAAM9hC,CAAC,GAAG8hC,IAAI,CAAC62B,QAAQ,CAACpgE,MAAM,GAAG,CAAC,GAAG,MAAMupC,IAAI,CAAC62B,QAAQ,CAAC3hC,GAAG,CAAC4hJ,aAAa,CAAC,CAAC//K,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE;EAChG,OAAO,GAAGipC,IAAI,CAACliC,KAAK,GAAGI,CAAC,EAAE;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS64K,qBAAqBA,CAACvJ,KAAK,EAAE;EAClC,IAAIA,KAAK,CAACG,QAAQ,EAAE;IAChB,MAAM5nH,eAAe,GAAGynH,KAAK,CAACG,QAAQ;IACtC,MAAMqJ,YAAY,GAAGxJ,KAAK,CAACuI,eAAe;IAC1CvI,KAAK,CAACG,QAAQ,GAAGqJ,YAAY;IAC7B,IAAI,CAAC9H,YAAY,CAACnpH,eAAe,CAACu6C,WAAW,EAAE02E,YAAY,CAAC12E,WAAW,CAAC,EAAE;MACtEktE,KAAK,CAACltE,WAAW,CAACjjG,IAAI,CAAC25K,YAAY,CAAC12E,WAAW,CAAC;IACpD;IACA,IAAIv6C,eAAe,CAACyqH,QAAQ,KAAKwG,YAAY,CAACxG,QAAQ,EAAE;MACpDhD,KAAK,CAACgD,QAAQ,CAACnzK,IAAI,CAAC25K,YAAY,CAACxG,QAAQ,CAAC;IAC9C;IACA,IAAI,CAACtB,YAAY,CAACnpH,eAAe,CAACzgD,MAAM,EAAE0xK,YAAY,CAAC1xK,MAAM,CAAC,EAAE;MAC5DkoK,KAAK,CAACloK,MAAM,CAACjI,IAAI,CAAC25K,YAAY,CAAC1xK,MAAM,CAAC;IAC1C;IACA,IAAI,CAAC2pK,kBAAkB,CAAClpH,eAAe,CAAC10B,GAAG,EAAE2lJ,YAAY,CAAC3lJ,GAAG,CAAC,EAAE;MAC5Dm8I,KAAK,CAACn8I,GAAG,CAACh0B,IAAI,CAAC25K,YAAY,CAAC3lJ,GAAG,CAAC;IACpC;IACA,IAAI,CAAC69I,YAAY,CAACnpH,eAAe,CAACvqD,IAAI,EAAEw7K,YAAY,CAACx7K,IAAI,CAAC,EAAE;MACxDgyK,KAAK,CAAChyK,IAAI,CAAC6B,IAAI,CAAC25K,YAAY,CAACx7K,IAAI,CAAC;IACtC;EACJ,CAAC,MACI;IACDgyK,KAAK,CAACG,QAAQ,GAAGH,KAAK,CAACuI,eAAe;IACtC;IACAvI,KAAK,CAAChyK,IAAI,CAAC6B,IAAI,CAACmwK,KAAK,CAACuI,eAAe,CAACv6K,IAAI,CAAC;EAC/C;AACJ;AACA,SAASy7K,yBAAyBA,CAAC18H,CAAC,EAAEC,CAAC,EAAE;EACrC,MAAM08H,cAAc,GAAGhI,YAAY,CAAC30H,CAAC,CAACj1C,MAAM,EAAEk1C,CAAC,CAACl1C,MAAM,CAAC,IAAImsK,aAAa,CAACl3H,CAAC,CAAClpB,GAAG,EAAEmpB,CAAC,CAACnpB,GAAG,CAAC;EACtF,MAAM8lJ,eAAe,GAAG,CAAC58H,CAAC,CAACpoC,MAAM,KAAK,CAACqoC,CAAC,CAACroC,MAAM;EAC/C,OAAO+kK,cAAc,IAAI,CAACC,eAAe,KACpC,CAAC58H,CAAC,CAACpoC,MAAM,IAAI8kK,yBAAyB,CAAC18H,CAAC,CAACpoC,MAAM,EAAEqoC,CAAC,CAACroC,MAAM,CAAC,CAAC;AACpE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASilK,iBAAiBA,CAACC,kBAAkB,EAAEd,IAAI,EAAEe,SAAS,EAAE;EAC5D,MAAMpkK,IAAI,GAAGqkK,UAAU,CAACF,kBAAkB,EAAEd,IAAI,CAACjC,KAAK,EAAEgD,SAAS,GAAGA,SAAS,CAAChD,KAAK,GAAGh8I,SAAS,CAAC;EAChG,OAAO,IAAI08I,WAAW,CAAC9hK,IAAI,EAAEqjK,IAAI,CAAC;AACtC;AACA,SAASgB,UAAUA,CAACF,kBAAkB,EAAEd,IAAI,EAAEe,SAAS,EAAE;EACrD;EACA,IAAIA,SAAS,IAAID,kBAAkB,CAACG,gBAAgB,CAACjB,IAAI,CAACz4K,KAAK,EAAEw5K,SAAS,CAACx5K,KAAK,CAAC6vK,QAAQ,CAAC,EAAE;IACxF,MAAM7vK,KAAK,GAAGw5K,SAAS,CAACx5K,KAAK;IAC7BA,KAAK,CAACi4K,eAAe,GAAGQ,IAAI,CAACz4K,KAAK;IAClC,MAAM+4D,QAAQ,GAAG4gH,qBAAqB,CAACJ,kBAAkB,EAAEd,IAAI,EAAEe,SAAS,CAAC;IAC3E,OAAO,IAAIzC,QAAQ,CAAC/2K,KAAK,EAAE+4D,QAAQ,CAAC;EACxC,CAAC,MACI;IACD,IAAIwgH,kBAAkB,CAACK,YAAY,CAACnB,IAAI,CAACz4K,KAAK,CAAC,EAAE;MAC7C;MACA,MAAM65K,mBAAmB,GAAGN,kBAAkB,CAACO,QAAQ,CAACrB,IAAI,CAACz4K,KAAK,CAAC;MACnE,IAAI65K,mBAAmB,KAAK,IAAI,EAAE;QAC9B,MAAMvF,IAAI,GAAGuF,mBAAmB,CAACnK,KAAK;QACtC4E,IAAI,CAACt0K,KAAK,CAACi4K,eAAe,GAAGQ,IAAI,CAACz4K,KAAK;QACvCs0K,IAAI,CAACv7G,QAAQ,GAAG0/G,IAAI,CAAC1/G,QAAQ,CAAC3hC,GAAG,CAACh3B,CAAC,IAAIq5K,UAAU,CAACF,kBAAkB,EAAEn5K,CAAC,CAAC,CAAC;QACzE,OAAOk0K,IAAI;MACf;IACJ;IACA,MAAMt0K,KAAK,GAAG+5K,oBAAoB,CAACtB,IAAI,CAACz4K,KAAK,CAAC;IAC9C,MAAM+4D,QAAQ,GAAG0/G,IAAI,CAAC1/G,QAAQ,CAAC3hC,GAAG,CAACh3B,CAAC,IAAIq5K,UAAU,CAACF,kBAAkB,EAAEn5K,CAAC,CAAC,CAAC;IAC1E,OAAO,IAAI22K,QAAQ,CAAC/2K,KAAK,EAAE+4D,QAAQ,CAAC;EACxC;AACJ;AACA,SAAS4gH,qBAAqBA,CAACJ,kBAAkB,EAAEd,IAAI,EAAEe,SAAS,EAAE;EAChE,OAAOf,IAAI,CAAC1/G,QAAQ,CAAC3hC,GAAG,CAAC0sG,KAAK,IAAI;IAC9B,KAAK,MAAMjnF,CAAC,IAAI28H,SAAS,CAACzgH,QAAQ,EAAE;MAChC,IAAIwgH,kBAAkB,CAACG,gBAAgB,CAAC51C,KAAK,CAAC9jI,KAAK,EAAE68C,CAAC,CAAC78C,KAAK,CAAC6vK,QAAQ,CAAC,EAAE;QACpE,OAAO4J,UAAU,CAACF,kBAAkB,EAAEz1C,KAAK,EAAEjnF,CAAC,CAAC;MACnD;IACJ;IACA,OAAO48H,UAAU,CAACF,kBAAkB,EAAEz1C,KAAK,CAAC;EAChD,CAAC,CAAC;AACN;AACA,SAASi2C,oBAAoBA,CAAC35K,CAAC,EAAE;EAC7B,OAAO,IAAIy3K,cAAc,CAAC,IAAI7sH,iDAAe,CAAC5qD,CAAC,CAACmzB,GAAG,CAAC,EAAE,IAAIy3B,iDAAe,CAAC5qD,CAAC,CAACoH,MAAM,CAAC,EAAE,IAAIwjD,iDAAe,CAAC5qD,CAAC,CAACoiG,WAAW,CAAC,EAAE,IAAIx3C,iDAAe,CAAC5qD,CAAC,CAACsyK,QAAQ,CAAC,EAAE,IAAI1nH,iDAAe,CAAC5qD,CAAC,CAAC1C,IAAI,CAAC,EAAE0C,CAAC,CAAC62K,MAAM,EAAE72K,CAAC,CAAC0sF,SAAS,EAAE1sF,CAAC,CAAC;AACpN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS45K,aAAaA,CAACtK,KAAK,EAAE2H,OAAO,EAAE4C,QAAQ,EAAEz3E,WAAW,EAAEkwE,QAAQ,EAAE;EACpE,IAAIuH,QAAQ,CAACthL,MAAM,KAAK,CAAC,EAAE;IACvB,OAAO27K,IAAI,CAAC+C,OAAO,CAACjiK,IAAI,EAAEiiK,OAAO,CAACjiK,IAAI,EAAEiiK,OAAO,CAACjiK,IAAI,EAAEotF,WAAW,EAAEkwE,QAAQ,CAAC;EAChF;EACA,MAAMwH,GAAG,GAAGC,iBAAiB,CAACF,QAAQ,CAAC;EACvC,IAAIC,GAAG,CAACE,MAAM,CAAC,CAAC,EAAE;IACd,OAAO9F,IAAI,CAAC+C,OAAO,CAACjiK,IAAI,EAAEiiK,OAAO,CAACjiK,IAAI,EAAE,IAAI08J,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAEtvE,WAAW,EAAEkwE,QAAQ,CAAC;EAC/F;EACA,MAAM2H,gBAAgB,GAAGC,oBAAoB,CAACJ,GAAG,EAAE7C,OAAO,EAAE3H,KAAK,CAAC;EAClE,MAAMkB,YAAY,GAAGyJ,gBAAgB,CAACE,eAAe,GACjDC,0BAA0B,CAACH,gBAAgB,CAACzJ,YAAY,EAAEyJ,gBAAgB,CAACj4K,KAAK,EAAE83K,GAAG,CAACD,QAAQ,CAAC,GAC/FQ,kBAAkB,CAACJ,gBAAgB,CAACzJ,YAAY,EAAEyJ,gBAAgB,CAACj4K,KAAK,EAAE83K,GAAG,CAACD,QAAQ,CAAC;EAC3F,OAAO3F,IAAI,CAAC+C,OAAO,CAACjiK,IAAI,EAAEilK,gBAAgB,CAACzJ,YAAY,EAAEA,YAAY,EAAEpuE,WAAW,EAAEkwE,QAAQ,CAAC;AACjG;AACA,SAASgI,cAAcA,CAAC7/I,OAAO,EAAE;EAC7B,OAAO,OAAOA,OAAO,KAAK,QAAQ,IAAIA,OAAO,IAAI,IAAI,IAAI,CAACA,OAAO,CAAC8/I,OAAO,IAAI,CAAC9/I,OAAO,CAAC+/I,WAAW;AACrG;AACA;AACA;AACA;AACA;AACA,SAASC,oBAAoBA,CAAChgJ,OAAO,EAAE;EACnC,OAAO,OAAOA,OAAO,KAAK,QAAQ,IAAIA,OAAO,IAAI,IAAI,IAAIA,OAAO,CAAC8/I,OAAO;AAC5E;AACA,SAASrG,IAAIA,CAACwG,OAAO,EAAEC,eAAe,EAAEC,eAAe,EAAEx4E,WAAW,EAAEkwE,QAAQ,EAAE;EAC5E,IAAIuI,EAAE,GAAG,CAAC,CAAC;EACX,IAAIz4E,WAAW,EAAE;IACb51F,OAAO,CAAC41F,WAAW,EAAE,CAACxiG,KAAK,EAAE9C,IAAI,KAAK;MAClC+9K,EAAE,CAAC/9K,IAAI,CAAC,GAAGzD,KAAK,CAACZ,OAAO,CAACmH,KAAK,CAAC,GAAGA,KAAK,CAACo3B,GAAG,CAAEgT,CAAC,IAAK,GAAGA,CAAC,EAAE,CAAC,GAAG,GAAGpqC,KAAK,EAAE;IAC3E,CAAC,CAAC;EACN;EACA,IAAI86K,OAAO,KAAKC,eAAe,EAAE;IAC7B,OAAO,IAAIlJ,OAAO,CAACmJ,eAAe,EAAEC,EAAE,EAAEvI,QAAQ,CAAC;EACrD;EACA,MAAMwI,OAAO,GAAGC,cAAc,CAACL,OAAO,EAAEC,eAAe,EAAEC,eAAe,CAAC;EACzE,OAAO,IAAInJ,OAAO,CAACqJ,OAAO,EAAED,EAAE,EAAEvI,QAAQ,CAAC;AAC7C;AACA,SAASyI,cAAcA,CAACrkD,OAAO,EAAEskD,UAAU,EAAEC,UAAU,EAAE;EACrD,MAAMtiH,QAAQ,GAAG,CAAC,CAAC;EACnBnsD,OAAO,CAACkqH,OAAO,CAAC/9D,QAAQ,EAAE,CAAC34D,CAAC,EAAEk2K,UAAU,KAAK;IACzC,IAAIl2K,CAAC,KAAKg7K,UAAU,EAAE;MAClBriH,QAAQ,CAACu9G,UAAU,CAAC,GAAG+E,UAAU;IACrC,CAAC,MACI;MACDtiH,QAAQ,CAACu9G,UAAU,CAAC,GAAG6E,cAAc,CAAC/6K,CAAC,EAAEg7K,UAAU,EAAEC,UAAU,CAAC;IACpE;EACJ,CAAC,CAAC;EACF,OAAO,IAAIvJ,eAAe,CAACh7C,OAAO,CAAC65C,QAAQ,EAAE53G,QAAQ,CAAC;AAC1D;AACA,MAAMuiH,UAAU,CAAC;EACbh9K,WAAWA,CAACi9K,UAAU,EAAEC,kBAAkB,EAAEvB,QAAQ,EAAE;IAClD,IAAI,CAACsB,UAAU,GAAGA,UAAU;IAC5B,IAAI,CAACC,kBAAkB,GAAGA,kBAAkB;IAC5C,IAAI,CAACvB,QAAQ,GAAGA,QAAQ;IACxB,IAAIsB,UAAU,IAAItB,QAAQ,CAACthL,MAAM,GAAG,CAAC,IAAI+hL,cAAc,CAACT,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;MAClE,MAAM,IAAI3gL,KAAK,CAAC,4CAA4C,CAAC;IACjE;IACA,MAAMmiL,aAAa,GAAGxB,QAAQ,CAACpwI,IAAI,CAACgxI,oBAAoB,CAAC;IACzD,IAAIY,aAAa,IAAIA,aAAa,KAAKj+E,IAAI,CAACy8E,QAAQ,CAAC,EAAE;MACnD,MAAM,IAAI3gL,KAAK,CAAC,yCAAyC,CAAC;IAC9D;EACJ;EACA8gL,MAAMA,CAAA,EAAG;IACL,OAAO,IAAI,CAACmB,UAAU,IAAI,IAAI,CAACtB,QAAQ,CAACthL,MAAM,KAAK,CAAC,IAAI,IAAI,CAACshL,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG;EACnF;AACJ;AACA;AACA,SAASE,iBAAiBA,CAACF,QAAQ,EAAE;EACjC,IAAK,OAAOA,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAKA,QAAQ,CAACthL,MAAM,KAAK,CAAC,IAAIshL,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;IACnF,OAAO,IAAIqB,UAAU,CAAC,IAAI,EAAE,CAAC,EAAErB,QAAQ,CAAC;EAC5C;EACA,IAAIuB,kBAAkB,GAAG,CAAC;EAC1B,IAAID,UAAU,GAAG,KAAK;EACtB,MAAMl/K,GAAG,GAAG49K,QAAQ,CAACz4F,MAAM,CAAC,CAACnlF,GAAG,EAAEq/K,GAAG,EAAEC,MAAM,KAAK;IAC9C,IAAI,OAAOD,GAAG,KAAK,QAAQ,IAAIA,GAAG,IAAI,IAAI,EAAE;MACxC,IAAIA,GAAG,CAACf,OAAO,EAAE;QACb,MAAMA,OAAO,GAAG,CAAC,CAAC;QAClB/tK,OAAO,CAAC8uK,GAAG,CAACf,OAAO,EAAE,CAACV,QAAQ,EAAE/8K,IAAI,KAAK;UACrCy9K,OAAO,CAACz9K,IAAI,CAAC,GAAG,OAAO+8K,QAAQ,KAAK,QAAQ,GAAGA,QAAQ,CAACjvJ,KAAK,CAAC,GAAG,CAAC,GAAGivJ,QAAQ;QACjF,CAAC,CAAC;QACF,OAAO,CAAC,GAAG59K,GAAG,EAAE;UAAEs+K;QAAQ,CAAC,CAAC;MAChC;MACA,IAAIe,GAAG,CAACd,WAAW,EAAE;QACjB,OAAO,CAAC,GAAGv+K,GAAG,EAAEq/K,GAAG,CAACd,WAAW,CAAC;MACpC;IACJ;IACA,IAAI,EAAE,OAAOc,GAAG,KAAK,QAAQ,CAAC,EAAE;MAC5B,OAAO,CAAC,GAAGr/K,GAAG,EAAEq/K,GAAG,CAAC;IACxB;IACA,IAAIC,MAAM,KAAK,CAAC,EAAE;MACdD,GAAG,CAAC1wJ,KAAK,CAAC,GAAG,CAAC,CAACpe,OAAO,CAAC,CAACgvK,OAAO,EAAEC,SAAS,KAAK;QAC3C,IAAIA,SAAS,IAAI,CAAC,IAAID,OAAO,KAAK,GAAG,EAAE;UACnC;QAAA,CACH,MACI,IAAIC,SAAS,IAAI,CAAC,IAAID,OAAO,KAAK,EAAE,EAAE;UAAE;UACzCL,UAAU,GAAG,IAAI;QACrB,CAAC,MACI,IAAIK,OAAO,KAAK,IAAI,EAAE;UAAE;UACzBJ,kBAAkB,EAAE;QACxB,CAAC,MACI,IAAII,OAAO,IAAI,EAAE,EAAE;UACpBv/K,GAAG,CAACtD,IAAI,CAAC6iL,OAAO,CAAC;QACrB;MACJ,CAAC,CAAC;MACF,OAAOv/K,GAAG;IACd;IACA,OAAO,CAAC,GAAGA,GAAG,EAAEq/K,GAAG,CAAC;EACxB,CAAC,EAAE,EAAE,CAAC;EACN,OAAO,IAAIJ,UAAU,CAACC,UAAU,EAAEC,kBAAkB,EAAEn/K,GAAG,CAAC;AAC9D;AACA,MAAMy/K,QAAQ,CAAC;EACXx9K,WAAWA,CAACsyK,YAAY,EAAE2J,eAAe,EAAEn4K,KAAK,EAAE;IAC9C,IAAI,CAACwuK,YAAY,GAAGA,YAAY;IAChC,IAAI,CAAC2J,eAAe,GAAGA,eAAe;IACtC,IAAI,CAACn4K,KAAK,GAAGA,KAAK;EACtB;AACJ;AACA,SAASk4K,oBAAoBA,CAACJ,GAAG,EAAE5F,IAAI,EAAE5E,KAAK,EAAE;EAC5C,IAAIwK,GAAG,CAACqB,UAAU,EAAE;IAChB,OAAO,IAAIO,QAAQ,CAACxH,IAAI,CAACl/J,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;EAC3C;EACA,IAAIs6J,KAAK,CAACG,QAAQ,CAACiJ,cAAc,KAAK,CAAC,CAAC,EAAE;IACtC,MAAMlI,YAAY,GAAGlB,KAAK,CAACG,QAAQ,CAACgJ,WAAW;IAC/C;IACA;IACA;IACA,MAAM0B,eAAe,GAAG3J,YAAY,KAAK0D,IAAI,CAACl/J,IAAI;IAClD,OAAO,IAAI0mK,QAAQ,CAAClL,YAAY,EAAE2J,eAAe,EAAE,CAAC,CAAC;EACzD;EACA,MAAMlnH,QAAQ,GAAGqnH,cAAc,CAACR,GAAG,CAACD,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;EACxD,MAAM73K,KAAK,GAAGstK,KAAK,CAACG,QAAQ,CAACiJ,cAAc,GAAGzlH,QAAQ;EACtD,OAAO0oH,gCAAgC,CAACrM,KAAK,CAACG,QAAQ,CAACgJ,WAAW,EAAEz2K,KAAK,EAAE83K,GAAG,CAACsB,kBAAkB,CAAC;AACtG;AACA,SAASO,gCAAgCA,CAACp3C,KAAK,EAAEviI,KAAK,EAAEo5K,kBAAkB,EAAE;EACxE,IAAIQ,CAAC,GAAGr3C,KAAK;EACb,IAAIs3C,EAAE,GAAG75K,KAAK;EACd,IAAI85K,EAAE,GAAGV,kBAAkB;EAC3B,OAAOU,EAAE,GAAGD,EAAE,EAAE;IACZC,EAAE,IAAID,EAAE;IACRD,CAAC,GAAGA,CAAC,CAAC3nK,MAAM;IACZ,IAAI,CAAC2nK,CAAC,EAAE;MACJ,MAAM,IAAI1iL,KAAK,CAAC,2BAA2B,CAAC;IAChD;IACA2iL,EAAE,GAAGD,CAAC,CAACrL,QAAQ,CAACh4K,MAAM;EAC1B;EACA,OAAO,IAAImjL,QAAQ,CAACE,CAAC,EAAE,KAAK,EAAEC,EAAE,GAAGC,EAAE,CAAC;AAC1C;AACA,SAASC,UAAUA,CAAClC,QAAQ,EAAE;EAC1B,IAAIY,oBAAoB,CAACZ,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;IACnC,OAAOA,QAAQ,CAAC,CAAC,CAAC,CAACU,OAAO;EAC9B;EACA,OAAO;IAAE,CAACvK,cAAc,GAAG6J;EAAS,CAAC;AACzC;AACA,SAASQ,kBAAkBA,CAAC7J,YAAY,EAAE1xI,UAAU,EAAE+6I,QAAQ,EAAE;EAC5D,IAAI,CAACrJ,YAAY,EAAE;IACfA,YAAY,GAAG,IAAIkB,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;EAC9C;EACA,IAAIlB,YAAY,CAACD,QAAQ,CAACh4K,MAAM,KAAK,CAAC,IAAIi4K,YAAY,CAACE,WAAW,CAAC,CAAC,EAAE;IAClE,OAAO0J,0BAA0B,CAAC5J,YAAY,EAAE1xI,UAAU,EAAE+6I,QAAQ,CAAC;EACzE;EACA,MAAMx4I,CAAC,GAAG26I,YAAY,CAACxL,YAAY,EAAE1xI,UAAU,EAAE+6I,QAAQ,CAAC;EAC1D,MAAMoC,cAAc,GAAGpC,QAAQ,CAACx/K,KAAK,CAACgnC,CAAC,CAAC66I,YAAY,CAAC;EACrD,IAAI76I,CAAC,CAACnD,KAAK,IAAImD,CAAC,CAAC86I,SAAS,GAAG3L,YAAY,CAACD,QAAQ,CAACh4K,MAAM,EAAE;IACvD,MAAMqjL,CAAC,GAAG,IAAIlK,eAAe,CAAClB,YAAY,CAACD,QAAQ,CAACl2K,KAAK,CAAC,CAAC,EAAEgnC,CAAC,CAAC86I,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9EP,CAAC,CAACjjH,QAAQ,CAACq3G,cAAc,CAAC,GACtB,IAAI0B,eAAe,CAAClB,YAAY,CAACD,QAAQ,CAACl2K,KAAK,CAACgnC,CAAC,CAAC86I,SAAS,CAAC,EAAE3L,YAAY,CAAC73G,QAAQ,CAAC;IACxF,OAAOyhH,0BAA0B,CAACwB,CAAC,EAAE,CAAC,EAAEK,cAAc,CAAC;EAC3D,CAAC,MACI,IAAI56I,CAAC,CAACnD,KAAK,IAAI+9I,cAAc,CAAC1jL,MAAM,KAAK,CAAC,EAAE;IAC7C,OAAO,IAAIm5K,eAAe,CAAClB,YAAY,CAACD,QAAQ,EAAE,CAAC,CAAC,CAAC;EACzD,CAAC,MACI,IAAIlvI,CAAC,CAACnD,KAAK,IAAI,CAACsyI,YAAY,CAACE,WAAW,CAAC,CAAC,EAAE;IAC7C,OAAO0L,qBAAqB,CAAC5L,YAAY,EAAE1xI,UAAU,EAAE+6I,QAAQ,CAAC;EACpE,CAAC,MACI,IAAIx4I,CAAC,CAACnD,KAAK,EAAE;IACd,OAAOk8I,0BAA0B,CAAC5J,YAAY,EAAE,CAAC,EAAEyL,cAAc,CAAC;EACtE,CAAC,MACI;IACD,OAAOG,qBAAqB,CAAC5L,YAAY,EAAE1xI,UAAU,EAAE+6I,QAAQ,CAAC;EACpE;AACJ;AACA,SAASO,0BAA0BA,CAAC5J,YAAY,EAAE1xI,UAAU,EAAE+6I,QAAQ,EAAE;EACpE,IAAIA,QAAQ,CAACthL,MAAM,KAAK,CAAC,EAAE;IACvB,OAAO,IAAIm5K,eAAe,CAAClB,YAAY,CAACD,QAAQ,EAAE,CAAC,CAAC,CAAC;EACzD,CAAC,MACI;IACD,MAAMgK,OAAO,GAAGwB,UAAU,CAAClC,QAAQ,CAAC;IACpC,MAAMlhH,QAAQ,GAAG,CAAC,CAAC;IACnBnsD,OAAO,CAAC+tK,OAAO,EAAE,CAACV,QAAQ,EAAEhD,MAAM,KAAK;MACnC,IAAI,OAAOgD,QAAQ,KAAK,QAAQ,EAAE;QAC9BA,QAAQ,GAAG,CAACA,QAAQ,CAAC;MACzB;MACA,IAAIA,QAAQ,KAAK,IAAI,EAAE;QACnBlhH,QAAQ,CAACk+G,MAAM,CAAC,GAAGwD,kBAAkB,CAAC7J,YAAY,CAAC73G,QAAQ,CAACk+G,MAAM,CAAC,EAAE/3I,UAAU,EAAE+6I,QAAQ,CAAC;MAC9F;IACJ,CAAC,CAAC;IACFrtK,OAAO,CAACgkK,YAAY,CAAC73G,QAAQ,EAAE,CAAC+qE,KAAK,EAAEiwC,WAAW,KAAK;MACnD,IAAI4G,OAAO,CAAC5G,WAAW,CAAC,KAAKv5I,SAAS,EAAE;QACpCu+B,QAAQ,CAACg7G,WAAW,CAAC,GAAGjwC,KAAK;MACjC;IACJ,CAAC,CAAC;IACF,OAAO,IAAIguC,eAAe,CAAClB,YAAY,CAACD,QAAQ,EAAE53G,QAAQ,CAAC;EAC/D;AACJ;AACA,SAASqjH,YAAYA,CAACxL,YAAY,EAAE1xI,UAAU,EAAE+6I,QAAQ,EAAE;EACtD,IAAIwC,mBAAmB,GAAG,CAAC;EAC3B,IAAIC,gBAAgB,GAAGx9I,UAAU;EACjC,MAAMy9I,OAAO,GAAG;IAAEr+I,KAAK,EAAE,KAAK;IAAEi+I,SAAS,EAAE,CAAC;IAAED,YAAY,EAAE;EAAE,CAAC;EAC/D,OAAOI,gBAAgB,GAAG9L,YAAY,CAACD,QAAQ,CAACh4K,MAAM,EAAE;IACpD,IAAI8jL,mBAAmB,IAAIxC,QAAQ,CAACthL,MAAM,EACtC,OAAOgkL,OAAO;IAClB,MAAM7nK,IAAI,GAAG87J,YAAY,CAACD,QAAQ,CAAC+L,gBAAgB,CAAC;IACpD,MAAM7hJ,OAAO,GAAGo/I,QAAQ,CAACwC,mBAAmB,CAAC;IAC7C;IACA;IACA;IACA,IAAI5B,oBAAoB,CAAChgJ,OAAO,CAAC,EAAE;MAC/B;IACJ;IACA,MAAM49I,IAAI,GAAG,GAAG59I,OAAO,EAAE;IACzB,MAAMt7B,IAAI,GAAGk9K,mBAAmB,GAAGxC,QAAQ,CAACthL,MAAM,GAAG,CAAC,GAAGshL,QAAQ,CAACwC,mBAAmB,GAAG,CAAC,CAAC,GAAG,IAAI;IACjG,IAAIC,gBAAgB,GAAG,CAAC,IAAIjE,IAAI,KAAKj+I,SAAS,EAC1C;IACJ,IAAIi+I,IAAI,IAAIl5K,IAAI,IAAK,OAAOA,IAAI,KAAK,QAAS,IAAIA,IAAI,CAACo7K,OAAO,KAAKngJ,SAAS,EAAE;MAC1E,IAAI,CAACoiJ,OAAO,CAACnE,IAAI,EAAEl5K,IAAI,EAAEuV,IAAI,CAAC,EAC1B,OAAO6nK,OAAO;MAClBF,mBAAmB,IAAI,CAAC;IAC5B,CAAC,MACI;MACD,IAAI,CAACG,OAAO,CAACnE,IAAI,EAAE,CAAC,CAAC,EAAE3jK,IAAI,CAAC,EACxB,OAAO6nK,OAAO;MAClBF,mBAAmB,EAAE;IACzB;IACAC,gBAAgB,EAAE;EACtB;EACA,OAAO;IAAEp+I,KAAK,EAAE,IAAI;IAAEi+I,SAAS,EAAEG,gBAAgB;IAAEJ,YAAY,EAAEG;EAAoB,CAAC;AAC1F;AACA,SAASD,qBAAqBA,CAAC5L,YAAY,EAAE1xI,UAAU,EAAE+6I,QAAQ,EAAE;EAC/D,MAAMzH,KAAK,GAAG5B,YAAY,CAACD,QAAQ,CAACl2K,KAAK,CAAC,CAAC,EAAEykC,UAAU,CAAC;EACxD,IAAIzmC,CAAC,GAAG,CAAC;EACT,OAAOA,CAAC,GAAGwhL,QAAQ,CAACthL,MAAM,EAAE;IACxB,MAAMkiC,OAAO,GAAGo/I,QAAQ,CAACxhL,CAAC,CAAC;IAC3B,IAAIoiL,oBAAoB,CAAChgJ,OAAO,CAAC,EAAE;MAC/B,MAAMk+B,QAAQ,GAAG8jH,wBAAwB,CAAChiJ,OAAO,CAAC8/I,OAAO,CAAC;MAC1D,OAAO,IAAI7I,eAAe,CAACU,KAAK,EAAEz5G,QAAQ,CAAC;IAC/C;IACA;IACA,IAAItgE,CAAC,KAAK,CAAC,IAAIiiL,cAAc,CAACT,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;MACxC,MAAMp9H,CAAC,GAAG+zH,YAAY,CAACD,QAAQ,CAACzxI,UAAU,CAAC;MAC3CszI,KAAK,CAACz5K,IAAI,CAAC,IAAIw6K,UAAU,CAAC12H,CAAC,CAAC/nC,IAAI,EAAEiQ,SAAS,CAACk1J,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;MAC1DxhL,CAAC,EAAE;MACH;IACJ;IACA,MAAMggL,IAAI,GAAGoC,oBAAoB,CAAChgJ,OAAO,CAAC,GAAGA,OAAO,CAAC8/I,OAAO,CAACvK,cAAc,CAAC,GAAG,GAAGv1I,OAAO,EAAE;IAC3F,MAAMt7B,IAAI,GAAI9G,CAAC,GAAGwhL,QAAQ,CAACthL,MAAM,GAAG,CAAC,GAAIshL,QAAQ,CAACxhL,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;IAC/D,IAAIggL,IAAI,IAAIl5K,IAAI,IAAIm7K,cAAc,CAACn7K,IAAI,CAAC,EAAE;MACtCizK,KAAK,CAACz5K,IAAI,CAAC,IAAIw6K,UAAU,CAACkF,IAAI,EAAE1zJ,SAAS,CAACxlB,IAAI,CAAC,CAAC,CAAC;MACjD9G,CAAC,IAAI,CAAC;IACV,CAAC,MACI;MACD+5K,KAAK,CAACz5K,IAAI,CAAC,IAAIw6K,UAAU,CAACkF,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;MACpChgL,CAAC,EAAE;IACP;EACJ;EACA,OAAO,IAAIq5K,eAAe,CAACU,KAAK,EAAE,CAAC,CAAC,CAAC;AACzC;AACA,SAASqK,wBAAwBA,CAAClC,OAAO,EAAE;EACvC,MAAM5hH,QAAQ,GAAG,CAAC,CAAC;EACnBnsD,OAAO,CAAC+tK,OAAO,EAAE,CAACV,QAAQ,EAAEhD,MAAM,KAAK;IACnC,IAAI,OAAOgD,QAAQ,KAAK,QAAQ,EAAE;MAC9BA,QAAQ,GAAG,CAACA,QAAQ,CAAC;IACzB;IACA,IAAIA,QAAQ,KAAK,IAAI,EAAE;MACnBlhH,QAAQ,CAACk+G,MAAM,CAAC,GAAGuF,qBAAqB,CAAC,IAAI1K,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAEmI,QAAQ,CAAC;IACtF;EACJ,CAAC,CAAC;EACF,OAAOlhH,QAAQ;AACnB;AACA,SAASh0C,SAASA,CAACvd,MAAM,EAAE;EACvB,MAAMnL,GAAG,GAAG,CAAC,CAAC;EACduQ,OAAO,CAACpF,MAAM,EAAE,CAAC4iC,CAAC,EAAE/vC,CAAC,KAAKgC,GAAG,CAAChC,CAAC,CAAC,GAAG,GAAG+vC,CAAC,EAAE,CAAC;EAC1C,OAAO/tC,GAAG;AACd;AACA,SAASugL,OAAOA,CAAC9nK,IAAI,EAAEtN,MAAM,EAAEwpK,OAAO,EAAE;EACpC,OAAOl8J,IAAI,IAAIk8J,OAAO,CAACl8J,IAAI,IAAIs8J,YAAY,CAAC5pK,MAAM,EAAEwpK,OAAO,CAACpnJ,UAAU,CAAC;AAC3E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMkzJ,cAAc,GAAGA,CAACC,YAAY,EAAExD,kBAAkB,EAAEyD,YAAY,KAAK5lJ,mDAAG,CAAClyB,CAAC,IAAI;EAChF,IAAI+3K,cAAc,CAAC1D,kBAAkB,EAAEr0K,CAAC,CAACg4K,iBAAiB,EAAEh4K,CAAC,CAACi4K,kBAAkB,EAAEH,YAAY,CAAC,CAC1FI,QAAQ,CAACL,YAAY,CAAC;EAC3B,OAAO73K,CAAC;AACZ,CAAC,CAAC;AACF,MAAM+3K,cAAc,CAAC;EACjB3+K,WAAWA,CAACi7K,kBAAkB,EAAE8D,WAAW,EAAEC,SAAS,EAAEN,YAAY,EAAE;IAClE,IAAI,CAACzD,kBAAkB,GAAGA,kBAAkB;IAC5C,IAAI,CAAC8D,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACC,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACN,YAAY,GAAGA,YAAY;EACpC;EACAI,QAAQA,CAACG,cAAc,EAAE;IACrB,MAAMC,UAAU,GAAG,IAAI,CAACH,WAAW,CAAC7G,KAAK;IACzC,MAAMiH,QAAQ,GAAG,IAAI,CAACH,SAAS,GAAG,IAAI,CAACA,SAAS,CAAC9G,KAAK,GAAG,IAAI;IAC7D,IAAI,CAACkH,qBAAqB,CAACF,UAAU,EAAEC,QAAQ,EAAEF,cAAc,CAAC;IAChEtE,qBAAqB,CAAC,IAAI,CAACoE,WAAW,CAACjoK,IAAI,CAAC;IAC5C,IAAI,CAACuoK,mBAAmB,CAACH,UAAU,EAAEC,QAAQ,EAAEF,cAAc,CAAC;EAClE;EACA;EACAG,qBAAqBA,CAACE,UAAU,EAAEC,QAAQ,EAAEC,QAAQ,EAAE;IAClD,MAAM/kH,QAAQ,GAAGi+G,iBAAiB,CAAC6G,QAAQ,CAAC;IAC5C;IACAD,UAAU,CAAC7kH,QAAQ,CAACnsD,OAAO,CAACmxK,WAAW,IAAI;MACvC,MAAMC,eAAe,GAAGD,WAAW,CAAC/9K,KAAK,CAACi3K,MAAM;MAChD,IAAI,CAACgH,gBAAgB,CAACF,WAAW,EAAEhlH,QAAQ,CAACilH,eAAe,CAAC,EAAEF,QAAQ,CAAC;MACvE,OAAO/kH,QAAQ,CAACilH,eAAe,CAAC;IACpC,CAAC,CAAC;IACF;IACApxK,OAAO,CAACmsD,QAAQ,EAAE,CAAC3uB,CAAC,EAAE8zI,SAAS,KAAK;MAChC,IAAI,CAACC,6BAA6B,CAAC/zI,CAAC,EAAE0zI,QAAQ,CAAC;IACnD,CAAC,CAAC;EACN;EACAG,gBAAgBA,CAACL,UAAU,EAAEC,QAAQ,EAAE1vI,aAAa,EAAE;IAClD,MAAMiwI,MAAM,GAAGR,UAAU,CAAC59K,KAAK;IAC/B,MAAMy4K,IAAI,GAAGoF,QAAQ,GAAGA,QAAQ,CAAC79K,KAAK,GAAG,IAAI;IAC7C,IAAIo+K,MAAM,KAAK3F,IAAI,EAAE;MACjB;MACA,IAAI2F,MAAM,CAACtxF,SAAS,EAAE;QAClB;QACA,MAAM3qD,OAAO,GAAGgM,aAAa,CAACkwI,UAAU,CAACD,MAAM,CAACnH,MAAM,CAAC;QACvD,IAAI90I,OAAO,EAAE;UACT,IAAI,CAACu7I,qBAAqB,CAACE,UAAU,EAAEC,QAAQ,EAAE17I,OAAO,CAAC42B,QAAQ,CAAC;QACtE;MACJ,CAAC,MACI;QACD;QACA,IAAI,CAAC2kH,qBAAqB,CAACE,UAAU,EAAEC,QAAQ,EAAE1vI,aAAa,CAAC;MACnE;IACJ,CAAC,MACI;MACD,IAAIsqI,IAAI,EAAE;QACN;QACA,IAAI,CAAC0F,6BAA6B,CAACN,QAAQ,EAAE1vI,aAAa,CAAC;MAC/D;IACJ;EACJ;EACAgwI,6BAA6BA,CAACzO,KAAK,EAAE6N,cAAc,EAAE;IACjD;IACA;IACA,IAAI7N,KAAK,CAAC1vK,KAAK,CAAC8sF,SAAS,IAAI,IAAI,CAACysF,kBAAkB,CAAC+E,YAAY,CAAC5O,KAAK,CAAC1vK,KAAK,CAAC6vK,QAAQ,CAAC,EAAE;MACrF,IAAI,CAAC0O,0BAA0B,CAAC7O,KAAK,EAAE6N,cAAc,CAAC;IAC1D,CAAC,MACI;MACD,IAAI,CAACiB,wBAAwB,CAAC9O,KAAK,EAAE6N,cAAc,CAAC;IACxD;EACJ;EACAgB,0BAA0BA,CAAC7O,KAAK,EAAE6N,cAAc,EAAE;IAC9C,MAAMp7I,OAAO,GAAGo7I,cAAc,CAACc,UAAU,CAAC3O,KAAK,CAAC1vK,KAAK,CAACi3K,MAAM,CAAC;IAC7D,MAAM6G,QAAQ,GAAG37I,OAAO,IAAIutI,KAAK,CAAC1vK,KAAK,CAAC8sF,SAAS,GAAG3qD,OAAO,CAAC42B,QAAQ,GAAGwkH,cAAc;IACrF,MAAMxkH,QAAQ,GAAGi+G,iBAAiB,CAACtH,KAAK,CAAC;IACzC,KAAK,MAAMqE,WAAW,IAAIl4K,MAAM,CAAC41B,IAAI,CAACsnC,QAAQ,CAAC,EAAE;MAC7C,IAAI,CAAColH,6BAA6B,CAACplH,QAAQ,CAACg7G,WAAW,CAAC,EAAE+J,QAAQ,CAAC;IACvE;IACA,IAAI37I,OAAO,IAAIA,OAAO,CAAC80I,MAAM,EAAE;MAC3B,MAAM7oF,YAAY,GAAGjsD,OAAO,CAAC80I,MAAM,CAACnuG,MAAM,CAAC,CAAC;MAC5C,MAAMg1G,QAAQ,GAAG37I,OAAO,CAAC42B,QAAQ,CAAC0lH,mBAAmB,CAAC,CAAC;MACvD,IAAI,CAAClF,kBAAkB,CAACzQ,KAAK,CAAC4G,KAAK,CAAC1vK,KAAK,CAAC6vK,QAAQ,EAAE;QAAEzhF,YAAY;QAAEshF,KAAK;QAAEoO;MAAS,CAAC,CAAC;IAC1F;EACJ;EACAU,wBAAwBA,CAAC9O,KAAK,EAAE6N,cAAc,EAAE;IAC5C,MAAMp7I,OAAO,GAAGo7I,cAAc,CAACc,UAAU,CAAC3O,KAAK,CAAC1vK,KAAK,CAACi3K,MAAM,CAAC;IAC7D;IACA;IACA,MAAM6G,QAAQ,GAAG37I,OAAO,IAAIutI,KAAK,CAAC1vK,KAAK,CAAC8sF,SAAS,GAAG3qD,OAAO,CAAC42B,QAAQ,GAAGwkH,cAAc;IACrF,MAAMxkH,QAAQ,GAAGi+G,iBAAiB,CAACtH,KAAK,CAAC;IACzC,KAAK,MAAMqE,WAAW,IAAIl4K,MAAM,CAAC41B,IAAI,CAACsnC,QAAQ,CAAC,EAAE;MAC7C,IAAI,CAAColH,6BAA6B,CAACplH,QAAQ,CAACg7G,WAAW,CAAC,EAAE+J,QAAQ,CAAC;IACvE;IACA,IAAI37I,OAAO,IAAIA,OAAO,CAAC80I,MAAM,EAAE;MAC3B;MACA90I,OAAO,CAAC80I,MAAM,CAACyH,UAAU,CAAC,CAAC;MAC3B;MACAv8I,OAAO,CAAC42B,QAAQ,CAAC0lH,mBAAmB,CAAC,CAAC;MACtC;MACA;MACAt8I,OAAO,CAACw8I,SAAS,GAAG,IAAI;MACxBx8I,OAAO,CAAC8rD,QAAQ,GAAG,IAAI;MACvB9rD,OAAO,CAACutI,KAAK,GAAG,IAAI;IACxB;EACJ;EACAiO,mBAAmBA,CAACC,UAAU,EAAEC,QAAQ,EAAEC,QAAQ,EAAE;IAChD,MAAM/kH,QAAQ,GAAGi+G,iBAAiB,CAAC6G,QAAQ,CAAC;IAC5CD,UAAU,CAAC7kH,QAAQ,CAACnsD,OAAO,CAACxM,CAAC,IAAI;MAC7B,IAAI,CAAC08K,cAAc,CAAC18K,CAAC,EAAE24D,QAAQ,CAAC34D,CAAC,CAACJ,KAAK,CAACi3K,MAAM,CAAC,EAAE6G,QAAQ,CAAC;MAC1D,IAAI,CAACd,YAAY,CAAC,IAAI/M,aAAa,CAAC7vK,CAAC,CAACJ,KAAK,CAAC6vK,QAAQ,CAAC,CAAC;IAC1D,CAAC,CAAC;IACF,IAAI+N,UAAU,CAAC7kH,QAAQ,CAACpgE,MAAM,EAAE;MAC5B,IAAI,CAACqkL,YAAY,CAAC,IAAIjN,kBAAkB,CAAC6N,UAAU,CAAC59K,KAAK,CAAC6vK,QAAQ,CAAC,CAAC;IACxE;EACJ;EACAiN,cAAcA,CAACc,UAAU,EAAEC,QAAQ,EAAEN,cAAc,EAAE;IACjD,MAAMa,MAAM,GAAGR,UAAU,CAAC59K,KAAK;IAC/B,MAAMy4K,IAAI,GAAGoF,QAAQ,GAAGA,QAAQ,CAAC79K,KAAK,GAAG,IAAI;IAC7Ci5K,qBAAqB,CAACmF,MAAM,CAAC;IAC7B;IACA,IAAIA,MAAM,KAAK3F,IAAI,EAAE;MACjB,IAAI2F,MAAM,CAACtxF,SAAS,EAAE;QAClB;QACA,MAAM3qD,OAAO,GAAGo7I,cAAc,CAACqB,kBAAkB,CAACR,MAAM,CAACnH,MAAM,CAAC;QAChE,IAAI,CAAC0G,mBAAmB,CAACC,UAAU,EAAEC,QAAQ,EAAE17I,OAAO,CAAC42B,QAAQ,CAAC;MACpE,CAAC,MACI;QACD;QACA,IAAI,CAAC4kH,mBAAmB,CAACC,UAAU,EAAEC,QAAQ,EAAEN,cAAc,CAAC;MAClE;IACJ,CAAC,MACI;MACD,IAAIa,MAAM,CAACtxF,SAAS,EAAE;QAClB;QACA,MAAM3qD,OAAO,GAAGo7I,cAAc,CAACqB,kBAAkB,CAACR,MAAM,CAACnH,MAAM,CAAC;QAChE,IAAI,IAAI,CAACsC,kBAAkB,CAACK,YAAY,CAACwE,MAAM,CAACvO,QAAQ,CAAC,EAAE;UACvD,MAAMgP,MAAM,GAAG,IAAI,CAACtF,kBAAkB,CAACO,QAAQ,CAACsE,MAAM,CAACvO,QAAQ,CAAC;UAChE,IAAI,CAAC0J,kBAAkB,CAACzQ,KAAK,CAACsV,MAAM,CAACvO,QAAQ,EAAE,IAAI,CAAC;UACpD1tI,OAAO,CAAC42B,QAAQ,CAAC+lH,kBAAkB,CAACD,MAAM,CAACf,QAAQ,CAAC;UACpD37I,OAAO,CAACw8I,SAAS,GAAGE,MAAM,CAACzwF,YAAY;UACvCjsD,OAAO,CAACutI,KAAK,GAAGmP,MAAM,CAACnP,KAAK,CAAC1vK,KAAK;UAClC,IAAImiC,OAAO,CAAC80I,MAAM,EAAE;YAChB;YACA;YACA90I,OAAO,CAAC80I,MAAM,CAACloG,MAAM,CAAC8vG,MAAM,CAACzwF,YAAY,EAAEywF,MAAM,CAACnP,KAAK,CAAC1vK,KAAK,CAAC;UAClE;UACAi5K,qBAAqB,CAAC4F,MAAM,CAACnP,KAAK,CAAC1vK,KAAK,CAAC;UACzC,IAAI,CAAC29K,mBAAmB,CAACC,UAAU,EAAE,IAAI,EAAEz7I,OAAO,CAAC42B,QAAQ,CAAC;QAChE,CAAC,MACI;UACD,MAAMv/C,MAAM,GAAGulK,kBAAkB,CAACX,MAAM,CAACvO,QAAQ,CAAC;UAClD,MAAMmP,kBAAkB,GAAGxlK,MAAM,GAAGA,MAAM,CAACylK,MAAM,CAACjyF,wBAAwB,GAAG,IAAI;UACjF7qD,OAAO,CAACw8I,SAAS,GAAG,IAAI;UACxBx8I,OAAO,CAACutI,KAAK,GAAG0O,MAAM;UACtBj8I,OAAO,CAAC8rD,QAAQ,GAAG+wF,kBAAkB;UACrC,IAAI78I,OAAO,CAAC80I,MAAM,EAAE;YAChB;YACA;YACA90I,OAAO,CAAC80I,MAAM,CAACiI,YAAY,CAACd,MAAM,EAAEY,kBAAkB,CAAC;UAC3D;UACA,IAAI,CAACrB,mBAAmB,CAACC,UAAU,EAAE,IAAI,EAAEz7I,OAAO,CAAC42B,QAAQ,CAAC;QAChE;MACJ,CAAC,MACI;QACD;QACA,IAAI,CAAC4kH,mBAAmB,CAACC,UAAU,EAAE,IAAI,EAAEL,cAAc,CAAC;MAC9D;IACJ;EACJ;AACJ;AACA,SAASwB,kBAAkBA,CAAClP,QAAQ,EAAE;EAClC,KAAK,IAAIxoI,CAAC,GAAGwoI,QAAQ,CAACx7J,MAAM,EAAEgzB,CAAC,EAAEA,CAAC,GAAGA,CAAC,CAAChzB,MAAM,EAAE;IAC3C,MAAMq7J,KAAK,GAAGroI,CAAC,CAACyoI,WAAW;IAC3B,IAAIJ,KAAK,IAAIA,KAAK,CAACyP,aAAa,EAC5B,OAAOzP,KAAK,CAACyP,aAAa;IAC9B,IAAIzP,KAAK,IAAIA,KAAK,CAAC5iF,SAAS,EACxB,OAAO,IAAI;EACnB;EACA,OAAO,IAAI;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMsyF,kBAAkB,CAAC;EACrB9gL,WAAWA,CAAC+gL,MAAM,EAAEJ,MAAM,EAAE;IACxB,IAAI,CAACI,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACJ,MAAM,GAAGA,MAAM;EACxB;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASK,UAAUA,CAACl1I,CAAC,EAAE;EACnB,OAAO,OAAOA,CAAC,KAAK,UAAU;AAClC;AACA,SAASm1I,SAASA,CAACn1I,CAAC,EAAE;EAClB,OAAO,OAAOA,CAAC,KAAK,SAAS;AACjC;AACA,SAASo1I,SAASA,CAACp1I,CAAC,EAAE;EAClB,OAAOA,CAAC,YAAYynI,OAAO;AAC/B;AACA,SAAS4N,SAASA,CAACC,KAAK,EAAE;EACtB,OAAOA,KAAK,IAAIJ,UAAU,CAACI,KAAK,CAACC,OAAO,CAAC;AAC7C;AACA,SAASC,aAAaA,CAACF,KAAK,EAAE;EAC1B,OAAOA,KAAK,IAAIJ,UAAU,CAACI,KAAK,CAACG,WAAW,CAAC;AACjD;AACA,SAASC,kBAAkBA,CAACJ,KAAK,EAAE;EAC/B,OAAOA,KAAK,IAAIJ,UAAU,CAACI,KAAK,CAACK,gBAAgB,CAAC;AACtD;AACA,SAASC,eAAeA,CAACN,KAAK,EAAE;EAC5B,OAAOA,KAAK,IAAIJ,UAAU,CAACI,KAAK,CAACO,aAAa,CAAC;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,aAAa,GAAGC,MAAM,CAAC,eAAe,CAAC;AAC7C,SAASC,qBAAqBA,CAAA,EAAG;EAC7B,OAAOjvF,yDAAS,CAACmkC,GAAG,IAAI;IACpB,OAAOw4C,mDAAa,CAACx4C,GAAG,CAACl+F,GAAG,CAAC9iB,CAAC,IAAIA,CAAC,CAAChV,IAAI,CAAC+sD,oDAAI,CAAC,CAAC,CAAC,EAAE4kC,yDAAS,CAACivF,aAAa,CAAC,CAAC,CAAC,CAAC,CACxE5gL,IAAI,CAAC4uK,oDAAI,CAAC,CAACvqC,GAAG,EAAE/b,IAAI,KAAK;MAC1B,IAAIy4D,SAAS,GAAG,KAAK;MACrB,OAAOz4D,IAAI,CAACpmC,MAAM,CAAC,CAAC8+F,QAAQ,EAAExkK,GAAG,EAAErjB,CAAC,KAAK;QACrC,IAAI6nL,QAAQ,KAAKJ,aAAa,EAC1B,OAAOI,QAAQ;QACnB;QACA,IAAIxkK,GAAG,KAAKokK,aAAa,EACrBG,SAAS,GAAG,IAAI;QACpB;QACA;QACA;QACA;QACA,IAAI,CAACA,SAAS,EAAE;UACZ;UACA;UACA,IAAIvkK,GAAG,KAAK,KAAK,EACb,OAAOA,GAAG;UACd,IAAIrjB,CAAC,KAAKmvH,IAAI,CAACjvH,MAAM,GAAG,CAAC,IAAI6mL,SAAS,CAAC1jK,GAAG,CAAC,EAAE;YACzC,OAAOA,GAAG;UACd;QACJ;QACA,OAAOwkK,QAAQ;MACnB,CAAC,EAAE38C,GAAG,CAAC;IACX,CAAC,EAAEu8C,aAAa,CAAC,EAAEzqK,uDAAM,CAACqqB,IAAI,IAAIA,IAAI,KAAKogJ,aAAa,CAAC,EAAE9oJ,mDAAG,CAAC0I,IAAI,IAAI0/I,SAAS,CAAC1/I,IAAI,CAAC,GAAGA,IAAI,GAAGA,IAAI,KAAK,IAAI,CAAC;IAAE;IAChHusB,oDAAI,CAAC,CAAC,CAAC,CAAC;EACZ,CAAC,CAAC;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMk0H,aAAa,CAAC;EAChBjiL,WAAWA,CAAA,EAAG;IACV,IAAI,CAAC24K,MAAM,GAAG,IAAI;IAClB,IAAI,CAACvH,KAAK,GAAG,IAAI;IACjB,IAAI,CAACzhF,QAAQ,GAAG,IAAI;IACpB,IAAI,CAACl1B,QAAQ,GAAG,IAAIynH,sBAAsB,CAAC,CAAC;IAC5C,IAAI,CAAC7B,SAAS,GAAG,IAAI;EACzB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,MAAM6B,sBAAsB,CAAC;EACzBliL,WAAWA,CAAA,EAAG;IACV;IACA,IAAI,CAACw/K,QAAQ,GAAG,IAAInjJ,GAAG,CAAC,CAAC;EAC7B;EACA;EACA8lJ,oBAAoBA,CAACvC,SAAS,EAAEjH,MAAM,EAAE;IACpC,MAAM90I,OAAO,GAAG,IAAI,CAACy8I,kBAAkB,CAACV,SAAS,CAAC;IAClD/7I,OAAO,CAAC80I,MAAM,GAAGA,MAAM;IACvB,IAAI,CAAC6G,QAAQ,CAACt8K,GAAG,CAAC08K,SAAS,EAAE/7I,OAAO,CAAC;EACzC;EACA;AACJ;AACA;AACA;AACA;EACIu+I,sBAAsBA,CAACxC,SAAS,EAAE;IAC9B,MAAM/7I,OAAO,GAAG,IAAI,CAACk8I,UAAU,CAACH,SAAS,CAAC;IAC1C,IAAI/7I,OAAO,EAAE;MACTA,OAAO,CAAC80I,MAAM,GAAG,IAAI;MACrB90I,OAAO,CAACw8I,SAAS,GAAG,IAAI;IAC5B;EACJ;EACA;AACJ;AACA;AACA;EACIF,mBAAmBA,CAAA,EAAG;IAClB,MAAMX,QAAQ,GAAG,IAAI,CAACA,QAAQ;IAC9B,IAAI,CAACA,QAAQ,GAAG,IAAInjJ,GAAG,CAAC,CAAC;IACzB,OAAOmjJ,QAAQ;EACnB;EACAgB,kBAAkBA,CAAChB,QAAQ,EAAE;IACzB,IAAI,CAACA,QAAQ,GAAGA,QAAQ;EAC5B;EACAc,kBAAkBA,CAACV,SAAS,EAAE;IAC1B,IAAI/7I,OAAO,GAAG,IAAI,CAACk8I,UAAU,CAACH,SAAS,CAAC;IACxC,IAAI,CAAC/7I,OAAO,EAAE;MACVA,OAAO,GAAG,IAAIo+I,aAAa,CAAC,CAAC;MAC7B,IAAI,CAACzC,QAAQ,CAACt8K,GAAG,CAAC08K,SAAS,EAAE/7I,OAAO,CAAC;IACzC;IACA,OAAOA,OAAO;EAClB;EACAk8I,UAAUA,CAACH,SAAS,EAAE;IAClB,OAAO,IAAI,CAACJ,QAAQ,CAACniK,GAAG,CAACuiK,SAAS,CAAC,IAAI,IAAI;EAC/C;AACJ;;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,MAAMyC,YAAY,CAAC;EACfriL,WAAWA,CAACi/K,cAAc,EAAEriK,QAAQ,EAAE+yE,QAAQ,EAAE/wF,IAAI,EAAE0jL,cAAc,EAAE;IAClE,IAAI,CAACrD,cAAc,GAAGA,cAAc;IACpC,IAAI,CAACriK,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAAC+yE,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAAC2yF,cAAc,GAAGA,cAAc;IACpC,IAAI,CAAChJ,SAAS,GAAG,IAAI;IACrB,IAAI,CAACiJ,eAAe,GAAG,IAAI;IAC3B,IAAI,CAACC,cAAc,GAAG,IAAIx2H,uDAAY,CAAC,CAAC;IACxC,IAAI,CAACy2H,gBAAgB,GAAG,IAAIz2H,uDAAY,CAAC,CAAC;IAC1C;AACR;AACA;AACA;IACQ,IAAI,CAAC02H,YAAY,GAAG,IAAI12H,uDAAY,CAAC,CAAC;IACtC;AACR;AACA;AACA;IACQ,IAAI,CAAC22H,YAAY,GAAG,IAAI32H,uDAAY,CAAC,CAAC;IACtC,IAAI,CAACptD,IAAI,GAAGA,IAAI,IAAIkzK,cAAc;IAClCmN,cAAc,CAACkD,oBAAoB,CAAC,IAAI,CAACvjL,IAAI,EAAE,IAAI,CAAC;EACxD;EACA;EACA8xD,WAAWA,CAAA,EAAG;IACV,IAAI,CAACuuH,cAAc,CAACmD,sBAAsB,CAAC,IAAI,CAACxjL,IAAI,CAAC;EACzD;EACA;EACA0yF,QAAQA,CAAA,EAAG;IACP,IAAI,CAAC,IAAI,CAACgoF,SAAS,EAAE;MACjB;MACA;MACA,MAAMz1I,OAAO,GAAG,IAAI,CAACo7I,cAAc,CAACc,UAAU,CAAC,IAAI,CAACnhL,IAAI,CAAC;MACzD,IAAIilC,OAAO,IAAIA,OAAO,CAACutI,KAAK,EAAE;QAC1B,IAAIvtI,OAAO,CAACw8I,SAAS,EAAE;UACnB;UACA,IAAI,CAAC5vG,MAAM,CAAC5sC,OAAO,CAACw8I,SAAS,EAAEx8I,OAAO,CAACutI,KAAK,CAAC;QACjD,CAAC,MACI;UACD;UACA,IAAI,CAACwP,YAAY,CAAC/8I,OAAO,CAACutI,KAAK,EAAEvtI,OAAO,CAAC8rD,QAAQ,IAAI,IAAI,CAAC;QAC9D;MACJ;IACJ;EACJ;EACA,IAAIizF,WAAWA,CAAA,EAAG;IACd,OAAO,CAAC,CAAC,IAAI,CAACtJ,SAAS;EAC3B;EACA;AACJ;AACA;AACA;EACI,IAAI9qF,SAASA,CAAA,EAAG;IACZ,IAAI,CAAC,IAAI,CAAC8qF,SAAS,EACf,MAAM,IAAIt+K,KAAK,CAAC,yBAAyB,CAAC;IAC9C,OAAO,IAAI,CAACs+K,SAAS,CAACz5C,QAAQ;EAClC;EACA,IAAIgjD,cAAcA,CAAA,EAAG;IACjB,IAAI,CAAC,IAAI,CAACvJ,SAAS,EACf,MAAM,IAAIt+K,KAAK,CAAC,yBAAyB,CAAC;IAC9C,OAAO,IAAI,CAACunL,eAAe;EAC/B;EACA,IAAIO,kBAAkBA,CAAA,EAAG;IACrB,IAAI,IAAI,CAACP,eAAe,EAAE;MACtB,OAAO,IAAI,CAACA,eAAe,CAAChR,QAAQ,CAACnyK,IAAI;IAC7C;IACA,OAAO,CAAC,CAAC;EACb;EACA;AACJ;AACA;EACIorE,MAAMA,CAAA,EAAG;IACL,IAAI,CAAC,IAAI,CAAC8uG,SAAS,EACf,MAAM,IAAIt+K,KAAK,CAAC,yBAAyB,CAAC;IAC9C,IAAI,CAAC4hB,QAAQ,CAAC4tD,MAAM,CAAC,CAAC;IACtB,MAAMu4G,GAAG,GAAG,IAAI,CAACzJ,SAAS;IAC1B,IAAI,CAACA,SAAS,GAAG,IAAI;IACrB,IAAI,CAACiJ,eAAe,GAAG,IAAI;IAC3B,IAAI,CAACI,YAAY,CAACliL,IAAI,CAACsiL,GAAG,CAACljD,QAAQ,CAAC;IACpC,OAAOkjD,GAAG;EACd;EACA;AACJ;AACA;EACItyG,MAAMA,CAAC8gB,GAAG,EAAEsxF,cAAc,EAAE;IACxB,IAAI,CAACvJ,SAAS,GAAG/nF,GAAG;IACpB,IAAI,CAACgxF,eAAe,GAAGM,cAAc;IACrC,IAAI,CAACjmK,QAAQ,CAAC2uD,MAAM,CAACgmB,GAAG,CAACtB,QAAQ,CAAC;IAClC,IAAI,CAACyyF,YAAY,CAACjiL,IAAI,CAAC8wF,GAAG,CAACsuC,QAAQ,CAAC;EACxC;EACAugD,UAAUA,CAAA,EAAG;IACT,IAAI,IAAI,CAAC9G,SAAS,EAAE;MAChB,MAAMx3K,CAAC,GAAG,IAAI,CAAC0sF,SAAS;MACxB,IAAI,CAAC8qF,SAAS,CAAC/gI,OAAO,CAAC,CAAC;MACxB,IAAI,CAAC+gI,SAAS,GAAG,IAAI;MACrB,IAAI,CAACiJ,eAAe,GAAG,IAAI;MAC3B,IAAI,CAACE,gBAAgB,CAAChiL,IAAI,CAACqB,CAAC,CAAC;IACjC;EACJ;EACA8+K,YAAYA,CAACiC,cAAc,EAAElzF,QAAQ,EAAE;IACnC,IAAI,IAAI,CAACizF,WAAW,EAAE;MAClB,MAAM,IAAI5nL,KAAK,CAAC,6CAA6C,CAAC;IAClE;IACA,IAAI,CAACunL,eAAe,GAAGM,cAAc;IACrC,MAAMtR,QAAQ,GAAGsR,cAAc,CAAClJ,eAAe;IAC/C,MAAMnrF,SAAS,GAAG+iF,QAAQ,CAACC,WAAW,CAAChjF,SAAS;IAChDmB,QAAQ,GAAGA,QAAQ,IAAI,IAAI,CAACA,QAAQ;IACpC,MAAM1wD,OAAO,GAAG0wD,QAAQ,CAACE,uBAAuB,CAACrB,SAAS,CAAC;IAC3D,MAAMw0F,aAAa,GAAG,IAAI,CAAC/D,cAAc,CAACqB,kBAAkB,CAAC,IAAI,CAAC1hL,IAAI,CAAC,CAAC67D,QAAQ;IAChF,MAAMg0B,QAAQ,GAAG,IAAIw0F,cAAc,CAACJ,cAAc,EAAEG,aAAa,EAAE,IAAI,CAACpmK,QAAQ,CAAC6xE,QAAQ,CAAC;IAC1F,IAAI,CAAC6qF,SAAS,GAAG,IAAI,CAAC18J,QAAQ,CAACmzE,eAAe,CAAC9wD,OAAO,EAAE,IAAI,CAACriB,QAAQ,CAACviB,MAAM,EAAEo0F,QAAQ,CAAC;IACvF;IACA;IACA,IAAI,CAAC6zF,cAAc,CAACvnF,YAAY,CAAC,CAAC;IAClC,IAAI,CAACynF,cAAc,CAAC/hL,IAAI,CAAC,IAAI,CAAC64K,SAAS,CAACz5C,QAAQ,CAAC;EACrD;AACJ;AACAwiD,YAAY,CAACxjJ,IAAI,YAAAqkJ,qBAAAt8K,CAAA;EAAA,YAAAA,CAAA,IAAwFy7K,YAAY,EAAtBlsJ,+DAAE,CAAsC+rJ,sBAAsB,GAA9D/rJ,+DAAE,CAAyEA,2DAAmB,GAA9FA,+DAAE,CAAyGA,mEAA2B,GAAtIA,+DAAE,CAAiJ,MAAM,GAAzJA,+DAAE,CAAqLA,4DAAoB;AAAA,CAA4C;AACtVksJ,YAAY,CAAChmH,IAAI,kBAD8ElmC,+DAAE;EAAA98B,IAAA,EACJgpL,YAAY;EAAA9lH,SAAA;EAAAqJ,OAAA;IAAA48G,cAAA;IAAAC,gBAAA;IAAAC,YAAA;IAAAC,YAAA;EAAA;EAAAlmH,QAAA;AAAA,EAA2L;AACpS;EAAA,QAAAlmC,SAAA,oBAAAA,SAAA,KAF+FJ,+DAAE,CAENksJ,YAAY,EAAc,CAAC;IAC1GhpL,IAAI,EAAEuyD,oDAAS;IACfxtD,IAAI,EAAE,CAAC;MAAEm6B,QAAQ,EAAE,eAAe;MAAEkkC,QAAQ,EAAE;IAAS,CAAC;EAC5D,CAAC,CAAC,EAAkB,YAAY;IAChC,OAAO,CAAC;MAAEpjE,IAAI,EAAE6oL;IAAuB,CAAC,EAAE;MAAE7oL,IAAI,EAAE88B,2DAAmBszD;IAAC,CAAC,EAAE;MAAEpwF,IAAI,EAAE88B,mEAA2B+wD;IAAC,CAAC,EAAE;MAAE7tF,IAAI,EAAE6iC,SAAS;MAAE61B,UAAU,EAAE,CAAC;QAChI14D,IAAI,EAAEgnG,oDAAS;QACfjiG,IAAI,EAAE,CAAC,MAAM;MACjB,CAAC;IAAE,CAAC,EAAE;MAAE/E,IAAI,EAAE88B,4DAAoB+kE;IAAC,CAAC,CAAC;EACrD,CAAC,EAAkB;IAAEsnF,cAAc,EAAE,CAAC;MAC1BnpL,IAAI,EAAE4yD,iDAAM;MACZ7tD,IAAI,EAAE,CAAC,UAAU;IACrB,CAAC,CAAC;IAAEqkL,gBAAgB,EAAE,CAAC;MACnBppL,IAAI,EAAE4yD,iDAAM;MACZ7tD,IAAI,EAAE,CAAC,YAAY;IACvB,CAAC,CAAC;IAAEskL,YAAY,EAAE,CAAC;MACfrpL,IAAI,EAAE4yD,iDAAM;MACZ7tD,IAAI,EAAE,CAAC,QAAQ;IACnB,CAAC,CAAC;IAAEukL,YAAY,EAAE,CAAC;MACftpL,IAAI,EAAE4yD,iDAAM;MACZ7tD,IAAI,EAAE,CAAC,QAAQ;IACnB,CAAC;EAAE,CAAC;AAAA;AAChB,MAAM6kL,cAAc,CAAC;EACjBjjL,WAAWA,CAACoxK,KAAK,EAAE4R,aAAa,EAAEjtK,MAAM,EAAE;IACtC,IAAI,CAACq7J,KAAK,GAAGA,KAAK;IAClB,IAAI,CAAC4R,aAAa,GAAGA,aAAa;IAClC,IAAI,CAACjtK,MAAM,GAAGA,MAAM;EACxB;EACAsH,GAAGA,CAAC1C,KAAK,EAAEq3E,aAAa,EAAE;IACtB,IAAIr3E,KAAK,KAAK4+J,cAAc,EAAE;MAC1B,OAAO,IAAI,CAACnI,KAAK;IACrB;IACA,IAAIz2J,KAAK,KAAKunK,sBAAsB,EAAE;MAClC,OAAO,IAAI,CAACc,aAAa;IAC7B;IACA,OAAO,IAAI,CAACjtK,MAAM,CAACsH,GAAG,CAAC1C,KAAK,EAAEq3E,aAAa,CAAC;EAChD;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMmxF,qBAAqB,CAAC;AAE5BA,qBAAqB,CAACtkJ,IAAI,YAAAukJ,8BAAAx8K,CAAA;EAAA,YAAAA,CAAA,IAAwFu8K,qBAAqB;AAAA,CAAmD;AAC1LA,qBAAqB,CAAChoF,IAAI,kBA3DqEhlE,+DAAE;EAAA98B,IAAA,EA2DK8pL,qBAAqB;EAAA5mH,SAAA;EAAAy/B,KAAA;EAAAC,IAAA;EAAAtN,QAAA,WAAA00F,+BAAA16G,EAAA,EAAAj6B,GAAA;IAAA,IAAAi6B,EAAA;MA3D5BxyC,uDAAE,mBA2D6G,CAAC;IAAA;EAAA;EAAAipG,UAAA,GAAwCijD,YAAY;EAAA1lF,aAAA;AAAA,EAAgH;AACnX;EAAA,QAAApmE,SAAA,oBAAAA,SAAA,KA5D+FJ,+DAAE,CA4DNgtJ,qBAAqB,EAAc,CAAC;IACnH9pL,IAAI,EAAE64F,oDAAS;IACf9zF,IAAI,EAAE,CAAC;MAAEuwF,QAAQ,EAAE;IAAkC,CAAC;EAC1D,CAAC,CAAC;AAAA;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS20F,cAAcA,CAACpoK,MAAM,EAAEqoK,UAAU,GAAG,EAAE,EAAE;EAC7C;EACA,KAAK,IAAIppL,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG+gB,MAAM,CAAC7gB,MAAM,EAAEF,CAAC,EAAE,EAAE;IACpC,MAAMi3K,KAAK,GAAGl2J,MAAM,CAAC/gB,CAAC,CAAC;IACvB,MAAMqpL,QAAQ,GAAGC,WAAW,CAACF,UAAU,EAAEnS,KAAK,CAAC;IAC/CsS,YAAY,CAACtS,KAAK,EAAEoS,QAAQ,CAAC;EACjC;AACJ;AACA,SAASE,YAAYA,CAACtS,KAAK,EAAEoS,QAAQ,EAAE;EACnC,IAAI,OAAOjtJ,SAAS,KAAK,WAAW,IAAIA,SAAS,EAAE;IAC/C,IAAI,CAAC66I,KAAK,EAAE;MACR,MAAM,IAAIp2K,KAAK,CAAC;AAC5B,wCAAwCwoL,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;IACE;IACA,IAAIroL,KAAK,CAACZ,OAAO,CAAC62K,KAAK,CAAC,EAAE;MACtB,MAAM,IAAIp2K,KAAK,CAAC,mCAAmCwoL,QAAQ,8BAA8B,CAAC;IAC9F;IACA,IAAI,CAACpS,KAAK,CAAC5iF,SAAS,IAAI,CAAC4iF,KAAK,CAAC32G,QAAQ,IAAI,CAAC22G,KAAK,CAACuS,YAAY,IACzDvS,KAAK,CAACuH,MAAM,IAAIvH,KAAK,CAACuH,MAAM,KAAK7G,cAAe,EAAE;MACnD,MAAM,IAAI92K,KAAK,CAAC,mCAAmCwoL,QAAQ,0FAA0F,CAAC;IAC1J;IACA,IAAIpS,KAAK,CAACwS,UAAU,IAAIxS,KAAK,CAAC32G,QAAQ,EAAE;MACpC,MAAM,IAAIz/D,KAAK,CAAC,mCAAmCwoL,QAAQ,oDAAoD,CAAC;IACpH;IACA,IAAIpS,KAAK,CAACwS,UAAU,IAAIxS,KAAK,CAACuS,YAAY,EAAE;MACxC,MAAM,IAAI3oL,KAAK,CAAC,mCAAmCwoL,QAAQ,wDAAwD,CAAC;IACxH;IACA,IAAIpS,KAAK,CAAC32G,QAAQ,IAAI22G,KAAK,CAACuS,YAAY,EAAE;MACtC,MAAM,IAAI3oL,KAAK,CAAC,mCAAmCwoL,QAAQ,sDAAsD,CAAC;IACtH;IACA,IAAIpS,KAAK,CAACwS,UAAU,IAAIxS,KAAK,CAAC5iF,SAAS,EAAE;MACrC,MAAM,IAAIxzF,KAAK,CAAC,mCAAmCwoL,QAAQ,qDAAqD,CAAC;IACrH;IACA,IAAIpS,KAAK,CAACwS,UAAU,IAAIxS,KAAK,CAACmQ,WAAW,EAAE;MACvC,MAAM,IAAIvmL,KAAK,CAAC,mCAAmCwoL,QAAQ,4FAA4F,GACnJ,wCAAwC,CAAC;IACjD;IACA,IAAIpS,KAAK,CAAC56J,IAAI,IAAI46J,KAAK,CAACrwB,OAAO,EAAE;MAC7B,MAAM,IAAI/lJ,KAAK,CAAC,mCAAmCwoL,QAAQ,6CAA6C,CAAC;IAC7G;IACA,IAAIpS,KAAK,CAACwS,UAAU,KAAK,KAAK,CAAC,IAAI,CAACxS,KAAK,CAAC5iF,SAAS,IAAI,CAAC4iF,KAAK,CAAC32G,QAAQ,IAAI,CAAC22G,KAAK,CAACuS,YAAY,EAAE;MAC3F,MAAM,IAAI3oL,KAAK,CAAC,mCAAmCwoL,QAAQ,2FAA2F,CAAC;IAC3J;IACA,IAAIpS,KAAK,CAAC56J,IAAI,KAAK,KAAK,CAAC,IAAI46J,KAAK,CAACrwB,OAAO,KAAK,KAAK,CAAC,EAAE;MACnD,MAAM,IAAI/lJ,KAAK,CAAC,mCAAmCwoL,QAAQ,0DAA0D,CAAC;IAC1H;IACA,IAAI,OAAOpS,KAAK,CAAC56J,IAAI,KAAK,QAAQ,IAAI46J,KAAK,CAAC56J,IAAI,CAAC9b,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;MAChE,MAAM,IAAIM,KAAK,CAAC,mCAAmCwoL,QAAQ,mCAAmC,CAAC;IACnG;IACA,IAAIpS,KAAK,CAAC56J,IAAI,KAAK,EAAE,IAAI46J,KAAK,CAACwS,UAAU,KAAK,KAAK,CAAC,IAAIxS,KAAK,CAACmB,SAAS,KAAK,KAAK,CAAC,EAAE;MAChF,MAAM77I,GAAG,GAAG,sFAAsF;MAClG,MAAM,IAAI17B,KAAK,CAAC,2CAA2CwoL,QAAQ,mBAAmBpS,KAAK,CAACwS,UAAU,oCAAoCltJ,GAAG,EAAE,CAAC;IACpJ;IACA,IAAI06I,KAAK,CAACmB,SAAS,KAAK,KAAK,CAAC,IAAInB,KAAK,CAACmB,SAAS,KAAK,MAAM,IAAInB,KAAK,CAACmB,SAAS,KAAK,QAAQ,EAAE;MAC1F,MAAM,IAAIv3K,KAAK,CAAC,mCAAmCwoL,QAAQ,oDAAoD,CAAC;IACpH;EACJ;EACA,IAAIpS,KAAK,CAAC32G,QAAQ,EAAE;IAChB6oH,cAAc,CAAClS,KAAK,CAAC32G,QAAQ,EAAE+oH,QAAQ,CAAC;EAC5C;AACJ;AACA,SAASC,WAAWA,CAACF,UAAU,EAAEM,YAAY,EAAE;EAC3C,IAAI,CAACA,YAAY,EAAE;IACf,OAAON,UAAU;EACrB;EACA,IAAI,CAACA,UAAU,IAAI,CAACM,YAAY,CAACrtK,IAAI,EAAE;IACnC,OAAO,EAAE;EACb,CAAC,MACI,IAAI+sK,UAAU,IAAI,CAACM,YAAY,CAACrtK,IAAI,EAAE;IACvC,OAAO,GAAG+sK,UAAU,GAAG;EAC3B,CAAC,MACI,IAAI,CAACA,UAAU,IAAIM,YAAY,CAACrtK,IAAI,EAAE;IACvC,OAAOqtK,YAAY,CAACrtK,IAAI;EAC5B,CAAC,MACI;IACD,OAAO,GAAG+sK,UAAU,IAAIM,YAAY,CAACrtK,IAAI,EAAE;EAC/C;AACJ;AACA;AACA;AACA;AACA,SAASstK,iBAAiBA,CAACltE,CAAC,EAAE;EAC1B,MAAMn8C,QAAQ,GAAGm8C,CAAC,CAACn8C,QAAQ,IAAIm8C,CAAC,CAACn8C,QAAQ,CAAC3hC,GAAG,CAACgrJ,iBAAiB,CAAC;EAChE,MAAMhiL,CAAC,GAAG24D,QAAQ,GAAGl9D,MAAM,CAACurB,MAAM,CAACvrB,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAE8tF,CAAC,CAAC,EAAE;IAAEn8C;EAAS,CAAC,CAAC,GAAGl9D,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAE8tF,CAAC,CAAC;EAC7F,IAAI,CAAC90G,CAAC,CAAC0sF,SAAS,KAAK/zB,QAAQ,IAAI34D,CAAC,CAAC6hL,YAAY,CAAC,IAAK7hL,CAAC,CAAC62K,MAAM,IAAI72K,CAAC,CAAC62K,MAAM,KAAK7G,cAAe,EAAE;IAC3FhwK,CAAC,CAAC0sF,SAAS,GAAG20F,qBAAqB;EACvC;EACA,OAAOrhL,CAAC;AACZ;AACA;AACA,SAASiiL,SAASA,CAAC3S,KAAK,EAAE;EACtB,OAAOA,KAAK,CAACuH,MAAM,IAAI7G,cAAc;AACzC;AACA;AACA;AACA;AACA;AACA,SAASkS,qBAAqBA,CAACjD,MAAM,EAAE/I,UAAU,EAAE;EAC/C,MAAMiM,YAAY,GAAGlD,MAAM,CAAC5pK,MAAM,CAACy/F,CAAC,IAAImtE,SAAS,CAACntE,CAAC,CAAC,KAAKohE,UAAU,CAAC;EACpEiM,YAAY,CAACxpL,IAAI,CAAC,GAAGsmL,MAAM,CAAC5pK,MAAM,CAACy/F,CAAC,IAAImtE,SAAS,CAACntE,CAAC,CAAC,KAAKohE,UAAU,CAAC,CAAC;EACrE,OAAOiM,YAAY;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,SAAS,GAAG;EACd9mE,OAAO,EAAE,KAAK;EACd+mE,gBAAgB,EAAE,EAAE;EACpBC,iBAAiB,EAAE,EAAE;EACrB94J,UAAU,EAAE,CAAC,CAAC;EACd+4J,uBAAuB,EAAE,CAAC;AAC9B,CAAC;AACD,SAASrkJ,KAAKA,CAACsyI,YAAY,EAAElB,KAAK,EAAEiB,QAAQ,EAAE;EAC1C,IAAI7vJ,EAAE;EACN,IAAI4uJ,KAAK,CAAC56J,IAAI,KAAK,EAAE,EAAE;IACnB,IAAI46J,KAAK,CAACmB,SAAS,KAAK,MAAM,KAAKD,YAAY,CAACE,WAAW,CAAC,CAAC,IAAIH,QAAQ,CAACh4K,MAAM,GAAG,CAAC,CAAC,EAAE;MACnF,OAAOkD,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAEo7J,SAAS,CAAC;IACvC;IACA,OAAO;MACH9mE,OAAO,EAAE,IAAI;MACb+mE,gBAAgB,EAAE,EAAE;MACpBC,iBAAiB,EAAE/R,QAAQ;MAC3B/mJ,UAAU,EAAE,CAAC,CAAC;MACd+4J,uBAAuB,EAAE,CAAC;IAC9B,CAAC;EACL;EACA,MAAMtjC,OAAO,GAAGqwB,KAAK,CAACrwB,OAAO,IAAIqxB,iBAAiB;EAClD,MAAMr0K,GAAG,GAAGgjJ,OAAO,CAACsxB,QAAQ,EAAEC,YAAY,EAAElB,KAAK,CAAC;EAClD,IAAI,CAACrzK,GAAG,EACJ,OAAOR,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAEo7J,SAAS,CAAC;EACvC,MAAMzR,SAAS,GAAG,CAAC,CAAC;EACpBnkK,OAAO,CAACvQ,GAAG,CAAC00K,SAAS,EAAE,CAAC3mI,CAAC,EAAE/vC,CAAC,KAAK;IAC7B02K,SAAS,CAAC12K,CAAC,CAAC,GAAG+vC,CAAC,CAACt1B,IAAI;EACzB,CAAC,CAAC;EACF,MAAM8U,UAAU,GAAGvtB,GAAG,CAAC60K,QAAQ,CAACv4K,MAAM,GAAG,CAAC,GAAGkD,MAAM,CAACurB,MAAM,CAACvrB,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAE2pJ,SAAS,CAAC,EAAE10K,GAAG,CAAC60K,QAAQ,CAAC70K,GAAG,CAAC60K,QAAQ,CAACv4K,MAAM,GAAG,CAAC,CAAC,CAACixB,UAAU,CAAC,GACtImnJ,SAAS;EACb,OAAO;IACHr1D,OAAO,EAAE,IAAI;IACb+mE,gBAAgB,EAAEpmL,GAAG,CAAC60K,QAAQ;IAC9BwR,iBAAiB,EAAE/R,QAAQ,CAACl2K,KAAK,CAAC4B,GAAG,CAAC60K,QAAQ,CAACv4K,MAAM,CAAC;IACtD;IACAixB,UAAU;IACV+4J,uBAAuB,EAAE,CAAC7hK,EAAE,GAAGzkB,GAAG,CAAC00K,SAAS,MAAM,IAAI,IAAIjwJ,EAAE,KAAK,KAAK,CAAC,GAAGA,EAAE,GAAG,CAAC;EACpF,CAAC;AACL;AACA,SAASkK,KAAKA,CAAC4lJ,YAAY,EAAE6R,gBAAgB,EAAEG,cAAc,EAAEppK,MAAM,EAAEqpK,sBAAsB,GAAG,WAAW,EAAE;EACzG,IAAID,cAAc,CAACjqL,MAAM,GAAG,CAAC,IACzBmqL,wCAAwC,CAAClS,YAAY,EAAEgS,cAAc,EAAEppK,MAAM,CAAC,EAAE;IAChF,MAAM6tB,CAAC,GAAG,IAAIyqI,eAAe,CAAC2Q,gBAAgB,EAAEM,2BAA2B,CAACnS,YAAY,EAAE6R,gBAAgB,EAAEjpK,MAAM,EAAE,IAAIs4J,eAAe,CAAC8Q,cAAc,EAAEhS,YAAY,CAAC73G,QAAQ,CAAC,CAAC,CAAC;IAChL1xB,CAAC,CAAC27I,cAAc,GAAGpS,YAAY;IAC/BvpI,CAAC,CAAC47I,kBAAkB,GAAGR,gBAAgB,CAAC9pL,MAAM;IAC9C,OAAO;MAAEi4K,YAAY,EAAEvpI,CAAC;MAAEu7I,cAAc,EAAE;IAAG,CAAC;EAClD;EACA,IAAIA,cAAc,CAACjqL,MAAM,KAAK,CAAC,IAC3BuqL,wBAAwB,CAACtS,YAAY,EAAEgS,cAAc,EAAEppK,MAAM,CAAC,EAAE;IAChE,MAAM6tB,CAAC,GAAG,IAAIyqI,eAAe,CAAClB,YAAY,CAACD,QAAQ,EAAEwS,+BAA+B,CAACvS,YAAY,EAAE6R,gBAAgB,EAAEG,cAAc,EAAEppK,MAAM,EAAEo3J,YAAY,CAAC73G,QAAQ,EAAE8pH,sBAAsB,CAAC,CAAC;IAC5Lx7I,CAAC,CAAC27I,cAAc,GAAGpS,YAAY;IAC/BvpI,CAAC,CAAC47I,kBAAkB,GAAGR,gBAAgB,CAAC9pL,MAAM;IAC9C,OAAO;MAAEi4K,YAAY,EAAEvpI,CAAC;MAAEu7I;IAAe,CAAC;EAC9C;EACA,MAAMv7I,CAAC,GAAG,IAAIyqI,eAAe,CAAClB,YAAY,CAACD,QAAQ,EAAEC,YAAY,CAAC73G,QAAQ,CAAC;EAC3E1xB,CAAC,CAAC27I,cAAc,GAAGpS,YAAY;EAC/BvpI,CAAC,CAAC47I,kBAAkB,GAAGR,gBAAgB,CAAC9pL,MAAM;EAC9C,OAAO;IAAEi4K,YAAY,EAAEvpI,CAAC;IAAEu7I;EAAe,CAAC;AAC9C;AACA,SAASO,+BAA+BA,CAACvS,YAAY,EAAE6R,gBAAgB,EAAEG,cAAc,EAAEvD,MAAM,EAAEtmH,QAAQ,EAAE8pH,sBAAsB,EAAE;EAC/H,MAAMxmL,GAAG,GAAG,CAAC,CAAC;EACd,KAAK,MAAM64G,CAAC,IAAImqE,MAAM,EAAE;IACpB,IAAI+D,cAAc,CAACxS,YAAY,EAAEgS,cAAc,EAAE1tE,CAAC,CAAC,IAAI,CAACn8C,QAAQ,CAACspH,SAAS,CAACntE,CAAC,CAAC,CAAC,EAAE;MAC5E,MAAM7tE,CAAC,GAAG,IAAIyqI,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;MACrCzqI,CAAC,CAAC27I,cAAc,GAAGpS,YAAY;MAC/B,IAAIiS,sBAAsB,KAAK,QAAQ,EAAE;QACrCx7I,CAAC,CAAC47I,kBAAkB,GAAGrS,YAAY,CAACD,QAAQ,CAACh4K,MAAM;MACvD,CAAC,MACI;QACD0uC,CAAC,CAAC47I,kBAAkB,GAAGR,gBAAgB,CAAC9pL,MAAM;MAClD;MACA0D,GAAG,CAACgmL,SAAS,CAACntE,CAAC,CAAC,CAAC,GAAG7tE,CAAC;IACzB;EACJ;EACA,OAAOxrC,MAAM,CAACurB,MAAM,CAACvrB,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAE2xC,QAAQ,CAAC,EAAE18D,GAAG,CAAC;AAC1D;AACA,SAAS0mL,2BAA2BA,CAACnS,YAAY,EAAE6R,gBAAgB,EAAEpD,MAAM,EAAEgE,cAAc,EAAE;EACzF,MAAMhnL,GAAG,GAAG,CAAC,CAAC;EACdA,GAAG,CAAC+zK,cAAc,CAAC,GAAGiT,cAAc;EACpCA,cAAc,CAACL,cAAc,GAAGpS,YAAY;EAC5CyS,cAAc,CAACJ,kBAAkB,GAAGR,gBAAgB,CAAC9pL,MAAM;EAC3D,KAAK,MAAMu8G,CAAC,IAAImqE,MAAM,EAAE;IACpB,IAAInqE,CAAC,CAACpgG,IAAI,KAAK,EAAE,IAAIutK,SAAS,CAACntE,CAAC,CAAC,KAAKk7D,cAAc,EAAE;MAClD,MAAM/oI,CAAC,GAAG,IAAIyqI,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;MACrCzqI,CAAC,CAAC27I,cAAc,GAAGpS,YAAY;MAC/BvpI,CAAC,CAAC47I,kBAAkB,GAAGR,gBAAgB,CAAC9pL,MAAM;MAC9C0D,GAAG,CAACgmL,SAAS,CAACntE,CAAC,CAAC,CAAC,GAAG7tE,CAAC;IACzB;EACJ;EACA,OAAOhrC,GAAG;AACd;AACA,SAASymL,wCAAwCA,CAAClS,YAAY,EAAEgS,cAAc,EAAEvD,MAAM,EAAE;EACpF,OAAOA,MAAM,CAACl1I,IAAI,CAAC+qE,CAAC,IAAIkuE,cAAc,CAACxS,YAAY,EAAEgS,cAAc,EAAE1tE,CAAC,CAAC,IAAImtE,SAAS,CAACntE,CAAC,CAAC,KAAKk7D,cAAc,CAAC;AAC/G;AACA,SAAS8S,wBAAwBA,CAACtS,YAAY,EAAEgS,cAAc,EAAEvD,MAAM,EAAE;EACpE,OAAOA,MAAM,CAACl1I,IAAI,CAAC+qE,CAAC,IAAIkuE,cAAc,CAACxS,YAAY,EAAEgS,cAAc,EAAE1tE,CAAC,CAAC,CAAC;AAC5E;AACA,SAASkuE,cAAcA,CAACxS,YAAY,EAAEgS,cAAc,EAAE1tE,CAAC,EAAE;EACrD,IAAI,CAAC07D,YAAY,CAACE,WAAW,CAAC,CAAC,IAAI8R,cAAc,CAACjqL,MAAM,GAAG,CAAC,KAAKu8G,CAAC,CAAC27D,SAAS,KAAK,MAAM,EAAE;IACrF,OAAO,KAAK;EAChB;EACA,OAAO37D,CAAC,CAACpgG,IAAI,KAAK,EAAE;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,SAASwuK,gBAAgBA,CAAC5T,KAAK,EAAE6T,UAAU,EAAE5S,QAAQ,EAAEsG,MAAM,EAAE;EAC3D;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAIoL,SAAS,CAAC3S,KAAK,CAAC,KAAKuH,MAAM,KAC1BA,MAAM,KAAK7G,cAAc,IAAI,CAACgT,cAAc,CAACG,UAAU,EAAE5S,QAAQ,EAAEjB,KAAK,CAAC,CAAC,EAAE;IAC7E,OAAO,KAAK;EAChB;EACA,IAAIA,KAAK,CAAC56J,IAAI,KAAK,IAAI,EAAE;IACrB,OAAO,IAAI;EACf;EACA,OAAOwpB,KAAK,CAACilJ,UAAU,EAAE7T,KAAK,EAAEiB,QAAQ,CAAC,CAACj1D,OAAO;AACrD;AACA,SAAS8nE,gBAAgBA,CAAC5S,YAAY,EAAED,QAAQ,EAAEsG,MAAM,EAAE;EACtD,OAAOtG,QAAQ,CAACh4K,MAAM,KAAK,CAAC,IAAI,CAACi4K,YAAY,CAAC73G,QAAQ,CAACk+G,MAAM,CAAC;AAClE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMwM,SAAS,CAAC;EACZnlL,WAAWA,CAACsyK,YAAY,EAAE;IACtB,IAAI,CAACA,YAAY,GAAGA,YAAY,IAAI,IAAI;EAC5C;AACJ;AACA,MAAM8S,gBAAgB,CAAC;EACnBplL,WAAWA,CAAC+4K,OAAO,EAAE;IACjB,IAAI,CAACA,OAAO,GAAGA,OAAO;EAC1B;AACJ;AACA,SAASsF,OAAOA,CAAC/L,YAAY,EAAE;EAC3B,OAAO7C,iDAAU,CAAC,IAAI0V,SAAS,CAAC7S,YAAY,CAAC,CAAC;AAClD;AACA,SAAS+S,gBAAgBA,CAACC,OAAO,EAAE;EAC/B,OAAO7V,iDAAU,CAAC,IAAI2V,gBAAgB,CAACE,OAAO,CAAC,CAAC;AACpD;AACA,SAASC,oBAAoBA,CAAC3B,UAAU,EAAE;EACtC,OAAOnU,iDAAU,CAAC,IAAIz0K,KAAK,CAAC,gEAAgE4oL,UAAU,GAAG,CAAC,CAAC;AAC/G;AACA,SAAS4B,YAAYA,CAACpU,KAAK,EAAE;EACzB,OAAO3B,iDAAU,CAACyC,wBAAwB,CAAC,+DAA+Dd,KAAK,CAAC56J,IAAI,mBAAmB,CAAC,CAAC;AAC7I;AACA;AACA;AACA;AACA;AACA;AACA,SAASivK,gBAAgBA,CAACC,cAAc,EAAEC,YAAY,EAAEC,aAAa,EAAE7M,OAAO,EAAE79J,MAAM,EAAE;EACpF,OAAO,IAAI2qK,cAAc,CAACH,cAAc,EAAEC,YAAY,EAAEC,aAAa,EAAE7M,OAAO,EAAE79J,MAAM,CAAC,CAAChf,KAAK,CAAC,CAAC;AACnG;AACA,MAAM2pL,cAAc,CAAC;EACjB7lL,WAAWA,CAAC0lL,cAAc,EAAEC,YAAY,EAAEC,aAAa,EAAE7M,OAAO,EAAE79J,MAAM,EAAE;IACtE,IAAI,CAACyqK,YAAY,GAAGA,YAAY;IAChC,IAAI,CAACC,aAAa,GAAGA,aAAa;IAClC,IAAI,CAAC7M,OAAO,GAAGA,OAAO;IACtB,IAAI,CAAC79J,MAAM,GAAGA,MAAM;IACpB,IAAI,CAAC4qK,cAAc,GAAG,IAAI;IAC1B,IAAI,CAAC7zD,QAAQ,GAAGyzD,cAAc,CAACroK,GAAG,CAAC8iF,sDAAW,CAAC;EACnD;EACAjkG,KAAKA,CAAA,EAAG;IACJ,MAAM6pL,UAAU,GAAGr5J,KAAK,CAAC,IAAI,CAACqsJ,OAAO,CAACjiK,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAACoE,MAAM,CAAC,CAACo3J,YAAY;IAC7E;IACA;IACA;IACA;IACA;IACA;IACA,MAAM0T,gBAAgB,GAAG,IAAIxS,eAAe,CAACuS,UAAU,CAAC1T,QAAQ,EAAE0T,UAAU,CAACtrH,QAAQ,CAAC;IACtF,MAAMwrH,SAAS,GAAG,IAAI,CAACC,kBAAkB,CAAC,IAAI,CAACj0D,QAAQ,EAAE,IAAI,CAAC/2G,MAAM,EAAE8qK,gBAAgB,EAAElU,cAAc,CAAC;IACvG,MAAMqU,SAAS,GAAGF,SAAS,CAACjlL,IAAI,CAAC83B,mDAAG,CAAEktJ,gBAAgB,IAAK;MACvD,OAAO,IAAI,CAACtK,aAAa,CAAC0K,kBAAkB,CAACJ,gBAAgB,CAAC,EAAE,IAAI,CAACjN,OAAO,CAAC70E,WAAW,EAAE,IAAI,CAAC60E,OAAO,CAAC3E,QAAQ,CAAC;IACpH,CAAC,CAAC,CAAC;IACH,OAAO+R,SAAS,CAACnlL,IAAI,CAAC6uK,2DAAU,CAAEt2K,CAAC,IAAK;MACpC,IAAIA,CAAC,YAAY6rL,gBAAgB,EAAE;QAC/B;QACA;QACA,IAAI,CAACU,cAAc,GAAG,KAAK;QAC3B;QACA,OAAO,IAAI,CAAC9lJ,KAAK,CAACzmC,CAAC,CAACw/K,OAAO,CAAC;MAChC;MACA,IAAIx/K,CAAC,YAAY4rL,SAAS,EAAE;QACxB,MAAM,IAAI,CAACkB,YAAY,CAAC9sL,CAAC,CAAC;MAC9B;MACA,MAAMA,CAAC;IACX,CAAC,CAAC,CAAC;EACP;EACAymC,KAAKA,CAACg2I,IAAI,EAAE;IACR,MAAMiQ,SAAS,GAAG,IAAI,CAACC,kBAAkB,CAAC,IAAI,CAACj0D,QAAQ,EAAE,IAAI,CAAC/2G,MAAM,EAAE86J,IAAI,CAACl/J,IAAI,EAAEg7J,cAAc,CAAC;IAChG,MAAMwU,OAAO,GAAGL,SAAS,CAACjlL,IAAI,CAAC83B,mDAAG,CAAEktJ,gBAAgB,IAAK;MACrD,OAAO,IAAI,CAACtK,aAAa,CAAC0K,kBAAkB,CAACJ,gBAAgB,CAAC,EAAEhQ,IAAI,CAAC9xE,WAAW,EAAE8xE,IAAI,CAAC5B,QAAQ,CAAC;IACpG,CAAC,CAAC,CAAC;IACH,OAAOkS,OAAO,CAACtlL,IAAI,CAAC6uK,2DAAU,CAAEt2K,CAAC,IAAK;MAClC,IAAIA,CAAC,YAAY4rL,SAAS,EAAE;QACxB,MAAM,IAAI,CAACkB,YAAY,CAAC9sL,CAAC,CAAC;MAC9B;MACA,MAAMA,CAAC;IACX,CAAC,CAAC,CAAC;EACP;EACA8sL,YAAYA,CAAC9sL,CAAC,EAAE;IACZ,OAAO,IAAIyB,KAAK,CAAC,0CAA0CzB,CAAC,CAAC+4K,YAAY,GAAG,CAAC;EACjF;EACAoJ,aAAaA,CAAC6K,aAAa,EAAEriF,WAAW,EAAEkwE,QAAQ,EAAE;IAChD,MAAMt9J,IAAI,GAAGyvK,aAAa,CAAClU,QAAQ,CAACh4K,MAAM,GAAG,CAAC,GAC1C,IAAIm5K,eAAe,CAAC,EAAE,EAAE;MAAE,CAAC1B,cAAc,GAAGyU;IAAc,CAAC,CAAC,GAC5DA,aAAa;IACjB,OAAO,IAAIhT,OAAO,CAACz8J,IAAI,EAAEotF,WAAW,EAAEkwE,QAAQ,CAAC;EACnD;EACA8R,kBAAkBA,CAACj0D,QAAQ,EAAE8uD,MAAM,EAAEzO,YAAY,EAAEqG,MAAM,EAAE;IACvD,IAAIrG,YAAY,CAACD,QAAQ,CAACh4K,MAAM,KAAK,CAAC,IAAIi4K,YAAY,CAACE,WAAW,CAAC,CAAC,EAAE;MAClE,OAAO,IAAI,CAACgU,cAAc,CAACv0D,QAAQ,EAAE8uD,MAAM,EAAEzO,YAAY,CAAC,CACrDtxK,IAAI,CAAC83B,mDAAG,CAAE2hC,QAAQ,IAAK,IAAI+4G,eAAe,CAAC,EAAE,EAAE/4G,QAAQ,CAAC,CAAC,CAAC;IACnE;IACA,OAAO,IAAI,CAACgsH,aAAa,CAACx0D,QAAQ,EAAEqgD,YAAY,EAAEyO,MAAM,EAAEzO,YAAY,CAACD,QAAQ,EAAEsG,MAAM,EAAE,IAAI,CAAC;EAClG;EACA;EACA6N,cAAcA,CAACv0D,QAAQ,EAAE8uD,MAAM,EAAEzO,YAAY,EAAE;IAC3C;IACA;IACA,MAAMoU,YAAY,GAAG,EAAE;IACvB,KAAK,MAAMlhD,KAAK,IAAIjoI,MAAM,CAAC41B,IAAI,CAACm/I,YAAY,CAAC73G,QAAQ,CAAC,EAAE;MACpD,IAAI+qE,KAAK,KAAK,SAAS,EAAE;QACrBkhD,YAAY,CAAC5mI,OAAO,CAAC0lF,KAAK,CAAC;MAC/B,CAAC,MACI;QACDkhD,YAAY,CAACjsL,IAAI,CAAC+qI,KAAK,CAAC;MAC5B;IACJ;IACA,OAAOtyG,0CAAI,CAACwzJ,YAAY,CAAC,CACpB1lL,IAAI,CAACumH,0DAAS,CAACkuD,WAAW,IAAI;MAC/B,MAAMjwC,KAAK,GAAG8sC,YAAY,CAAC73G,QAAQ,CAACg7G,WAAW,CAAC;MAChD;MACA;MACA;MACA,MAAMkR,YAAY,GAAG3C,qBAAqB,CAACjD,MAAM,EAAEtL,WAAW,CAAC;MAC/D,OAAO,IAAI,CAACyQ,kBAAkB,CAACj0D,QAAQ,EAAE00D,YAAY,EAAEnhD,KAAK,EAAEiwC,WAAW,CAAC,CACrEz0K,IAAI,CAAC83B,mDAAG,CAACiQ,CAAC,KAAK;QAAE2pI,OAAO,EAAE3pI,CAAC;QAAE4vI,MAAM,EAAElD;MAAY,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC,EAAE7F,oDAAI,CAAC,CAACn1G,QAAQ,EAAEmsH,aAAa,KAAK;MAClCnsH,QAAQ,CAACmsH,aAAa,CAACjO,MAAM,CAAC,GAAGiO,aAAa,CAAClU,OAAO;MACtD,OAAOj4G,QAAQ;IACnB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAEq1G,qDAAM,CAAC,CAAC,CAAC;EACrB;EACA2W,aAAaA,CAACx0D,QAAQ,EAAEqgD,YAAY,EAAEyO,MAAM,EAAE1O,QAAQ,EAAEsG,MAAM,EAAEmN,cAAc,EAAE;IAC5E,OAAO5yJ,0CAAI,CAAC6tJ,MAAM,CAAC,CAAC//K,IAAI,CAACumH,0DAAS,CAAE3Q,CAAC,IAAK;MACtC,MAAMqvE,SAAS,GAAG,IAAI,CAACY,yBAAyB,CAAC50D,QAAQ,EAAEqgD,YAAY,EAAEyO,MAAM,EAAEnqE,CAAC,EAAEy7D,QAAQ,EAAEsG,MAAM,EAAEmN,cAAc,CAAC;MACrH,OAAOG,SAAS,CAACjlL,IAAI,CAAC6uK,2DAAU,CAAEt2K,CAAC,IAAK;QACpC,IAAIA,CAAC,YAAY4rL,SAAS,EAAE;UACxB,OAAOx4H,wCAAE,CAAC,IAAI,CAAC;QACnB;QACA,MAAMpzD,CAAC;MACX,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,EAAEoiG,sDAAK,CAAE5yD,CAAC,IAAK,CAAC,CAACA,CAAC,CAAC,EAAE8mI,2DAAU,CAAC,CAACt2K,CAAC,EAAEqpC,CAAC,KAAK;MACxC,IAAIrpC,CAAC,YAAYm2K,6CAAU,IAAIn2K,CAAC,CAACqF,IAAI,KAAK,YAAY,EAAE;QACpD,IAAIsmL,gBAAgB,CAAC5S,YAAY,EAAED,QAAQ,EAAEsG,MAAM,CAAC,EAAE;UAClD,OAAOhsH,wCAAE,CAAC,IAAI6mH,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1C;QACA,OAAO6K,OAAO,CAAC/L,YAAY,CAAC;MAChC;MACA,MAAM/4K,CAAC;IACX,CAAC,CAAC,CAAC;EACP;EACAstL,yBAAyBA,CAAC50D,QAAQ,EAAEqgD,YAAY,EAAEyO,MAAM,EAAE3P,KAAK,EAAE8C,KAAK,EAAEyE,MAAM,EAAEmN,cAAc,EAAE;IAC5F,IAAI,CAACd,gBAAgB,CAAC5T,KAAK,EAAEkB,YAAY,EAAE4B,KAAK,EAAEyE,MAAM,CAAC,EAAE;MACvD,OAAO0F,OAAO,CAAC/L,YAAY,CAAC;IAChC;IACA,IAAIlB,KAAK,CAACwS,UAAU,KAAK1nJ,SAAS,EAAE;MAChC,OAAO,IAAI,CAAC4qJ,wBAAwB,CAAC70D,QAAQ,EAAEqgD,YAAY,EAAElB,KAAK,EAAE8C,KAAK,EAAEyE,MAAM,CAAC;IACtF;IACA,IAAImN,cAAc,IAAI,IAAI,CAACA,cAAc,EAAE;MACvC,OAAO,IAAI,CAACiB,sCAAsC,CAAC90D,QAAQ,EAAEqgD,YAAY,EAAEyO,MAAM,EAAE3P,KAAK,EAAE8C,KAAK,EAAEyE,MAAM,CAAC;IAC5G;IACA,OAAO0F,OAAO,CAAC/L,YAAY,CAAC;EAChC;EACAyU,sCAAsCA,CAAC90D,QAAQ,EAAEqgD,YAAY,EAAEyO,MAAM,EAAE3P,KAAK,EAAEiB,QAAQ,EAAEsG,MAAM,EAAE;IAC5F,IAAIvH,KAAK,CAAC56J,IAAI,KAAK,IAAI,EAAE;MACrB,OAAO,IAAI,CAACwwK,iDAAiD,CAAC/0D,QAAQ,EAAE8uD,MAAM,EAAE3P,KAAK,EAAEuH,MAAM,CAAC;IAClG;IACA,OAAO,IAAI,CAACsO,6CAA6C,CAACh1D,QAAQ,EAAEqgD,YAAY,EAAEyO,MAAM,EAAE3P,KAAK,EAAEiB,QAAQ,EAAEsG,MAAM,CAAC;EACtH;EACAqO,iDAAiDA,CAAC/0D,QAAQ,EAAE8uD,MAAM,EAAE3P,KAAK,EAAEuH,MAAM,EAAE;IAC/E,MAAM2M,OAAO,GAAG,IAAI,CAAC4B,qBAAqB,CAAC,EAAE,EAAE9V,KAAK,CAACwS,UAAU,EAAE,CAAC,CAAC,CAAC;IACpE,IAAIxS,KAAK,CAACwS,UAAU,CAACliJ,UAAU,CAAC,GAAG,CAAC,EAAE;MAClC,OAAO2jJ,gBAAgB,CAACC,OAAO,CAAC;IACpC;IACA,OAAO,IAAI,CAAC6B,kBAAkB,CAAC/V,KAAK,EAAEkU,OAAO,CAAC,CAACtkL,IAAI,CAAC+uK,yDAAQ,CAAEqX,WAAW,IAAK;MAC1E,MAAM/gD,KAAK,GAAG,IAAImtC,eAAe,CAAC4T,WAAW,EAAE,CAAC,CAAC,CAAC;MAClD,OAAO,IAAI,CAACX,aAAa,CAACx0D,QAAQ,EAAEoU,KAAK,EAAE06C,MAAM,EAAEqG,WAAW,EAAEzO,MAAM,EAAE,KAAK,CAAC;IAClF,CAAC,CAAC,CAAC;EACP;EACAsO,6CAA6CA,CAACh1D,QAAQ,EAAEqgD,YAAY,EAAEyO,MAAM,EAAE3P,KAAK,EAAEiB,QAAQ,EAAEsG,MAAM,EAAE;IACnG,MAAM;MAAEv7D,OAAO;MAAE+mE,gBAAgB;MAAEC,iBAAiB;MAAEC;IAAwB,CAAC,GAAGrkJ,KAAK,CAACsyI,YAAY,EAAElB,KAAK,EAAEiB,QAAQ,CAAC;IACtH,IAAI,CAACj1D,OAAO,EACR,OAAOihE,OAAO,CAAC/L,YAAY,CAAC;IAChC,MAAMgT,OAAO,GAAG,IAAI,CAAC4B,qBAAqB,CAAC/C,gBAAgB,EAAE/S,KAAK,CAACwS,UAAU,EAAES,uBAAuB,CAAC;IACvG,IAAIjT,KAAK,CAACwS,UAAU,CAACliJ,UAAU,CAAC,GAAG,CAAC,EAAE;MAClC,OAAO2jJ,gBAAgB,CAACC,OAAO,CAAC;IACpC;IACA,OAAO,IAAI,CAAC6B,kBAAkB,CAAC/V,KAAK,EAAEkU,OAAO,CAAC,CAACtkL,IAAI,CAAC+uK,yDAAQ,CAAEqX,WAAW,IAAK;MAC1E,OAAO,IAAI,CAACX,aAAa,CAACx0D,QAAQ,EAAEqgD,YAAY,EAAEyO,MAAM,EAAEqG,WAAW,CAACjkL,MAAM,CAACihL,iBAAiB,CAAC,EAAEzL,MAAM,EAAE,KAAK,CAAC;IACnH,CAAC,CAAC,CAAC;EACP;EACAmO,wBAAwBA,CAAC70D,QAAQ,EAAEo1D,eAAe,EAAEjW,KAAK,EAAEiB,QAAQ,EAAEsG,MAAM,EAAE;IACzE,IAAIvH,KAAK,CAAC56J,IAAI,KAAK,IAAI,EAAE;MACrB,IAAI46J,KAAK,CAACuS,YAAY,EAAE;QACpB,MAAM2D,OAAO,GAAGlW,KAAK,CAACyP,aAAa,GAAGl0H,wCAAE,CAACykH,KAAK,CAACyP,aAAa,CAAC,GACzD,IAAI,CAAC8E,YAAY,CAACxwK,IAAI,CAAC88G,QAAQ,CAACxjC,QAAQ,EAAE2iF,KAAK,CAAC;QACpD,OAAOkW,OAAO,CAACtmL,IAAI,CAAC83B,mDAAG,CAAEyuJ,GAAG,IAAK;UAC7BnW,KAAK,CAACyP,aAAa,GAAG0G,GAAG;UACzB,OAAO,IAAI/T,eAAe,CAACnB,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;MACP;MACA,OAAO1lH,wCAAE,CAAC,IAAI6mH,eAAe,CAACnB,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;IAChD;IACA,MAAM;MAAEj1D,OAAO;MAAE+mE,gBAAgB;MAAEC;IAAkB,CAAC,GAAGpkJ,KAAK,CAACqnJ,eAAe,EAAEjW,KAAK,EAAEiB,QAAQ,CAAC;IAChG,IAAI,CAACj1D,OAAO,EACR,OAAOihE,OAAO,CAACgJ,eAAe,CAAC;IACnC,MAAMG,YAAY,GAAG,IAAI,CAACC,cAAc,CAACx1D,QAAQ,EAAEm/C,KAAK,EAAEiB,QAAQ,CAAC;IACnE,OAAOmV,YAAY,CAACxmL,IAAI,CAAC+uK,yDAAQ,CAAE2X,YAAY,IAAK;MAChD,MAAMC,WAAW,GAAGD,YAAY,CAAC/G,MAAM;MACvC,MAAMiH,WAAW,GAAGF,YAAY,CAAC3G,MAAM;MACvC,MAAM;QAAEzO,YAAY,EAAEuV,iBAAiB;QAAEvD;MAAe,CAAC,GAAG53J,KAAK,CAAC26J,eAAe,EAAElD,gBAAgB,EAAEC,iBAAiB,EAAEwD,WAAW,CAAC;MACpI;MACA,MAAMtV,YAAY,GAAG,IAAIkB,eAAe,CAACqU,iBAAiB,CAACxV,QAAQ,EAAEwV,iBAAiB,CAACptH,QAAQ,CAAC;MAChG,IAAI6pH,cAAc,CAACjqL,MAAM,KAAK,CAAC,IAAIi4K,YAAY,CAACE,WAAW,CAAC,CAAC,EAAE;QAC3D,MAAMyT,SAAS,GAAG,IAAI,CAACO,cAAc,CAACmB,WAAW,EAAEC,WAAW,EAAEtV,YAAY,CAAC;QAC7E,OAAO2T,SAAS,CAACjlL,IAAI,CAAC83B,mDAAG,CAAE2hC,QAAQ,IAAK,IAAI+4G,eAAe,CAAC2Q,gBAAgB,EAAE1pH,QAAQ,CAAC,CAAC,CAAC;MAC7F;MACA,IAAImtH,WAAW,CAACvtL,MAAM,KAAK,CAAC,IAAIiqL,cAAc,CAACjqL,MAAM,KAAK,CAAC,EAAE;QACzD,OAAOsyD,wCAAE,CAAC,IAAI6mH,eAAe,CAAC2Q,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC;MACxD;MACA,MAAM2D,eAAe,GAAG/D,SAAS,CAAC3S,KAAK,CAAC,KAAKuH,MAAM;MACnD,MAAMsN,SAAS,GAAG,IAAI,CAACQ,aAAa,CAACkB,WAAW,EAAErV,YAAY,EAAEsV,WAAW,EAAEtD,cAAc,EAAEwD,eAAe,GAAGhW,cAAc,GAAG6G,MAAM,EAAE,IAAI,CAAC;MAC7I,OAAOsN,SAAS,CAACjlL,IAAI,CAAC83B,mDAAG,CAAEivJ,EAAE,IAAK,IAAIvU,eAAe,CAAC2Q,gBAAgB,CAAChhL,MAAM,CAAC4kL,EAAE,CAAC1V,QAAQ,CAAC,EAAE0V,EAAE,CAACttH,QAAQ,CAAC,CAAC,CAAC;IAC9G,CAAC,CAAC,CAAC;EACP;EACAgtH,cAAcA,CAACx1D,QAAQ,EAAEm/C,KAAK,EAAEiB,QAAQ,EAAE;IACtC,IAAIjB,KAAK,CAAC32G,QAAQ,EAAE;MAChB;MACA,OAAO9N,wCAAE,CAAC,IAAIm0H,kBAAkB,CAAC1P,KAAK,CAAC32G,QAAQ,EAAEw3D,QAAQ,CAAC,CAAC;IAC/D;IACA,IAAIm/C,KAAK,CAACuS,YAAY,EAAE;MACpB;MACA,IAAIvS,KAAK,CAACyP,aAAa,KAAK3kJ,SAAS,EAAE;QACnC,OAAOywB,wCAAE,CAACykH,KAAK,CAACyP,aAAa,CAAC;MAClC;MACA,OAAO,IAAI,CAACmH,gBAAgB,CAAC/1D,QAAQ,CAACxjC,QAAQ,EAAE2iF,KAAK,EAAEiB,QAAQ,CAAC,CAC3DrxK,IAAI,CAAC+uK,yDAAQ,CAAEkY,gBAAgB,IAAK;QACrC,IAAIA,gBAAgB,EAAE;UAClB,OAAO,IAAI,CAACtC,YAAY,CAACxwK,IAAI,CAAC88G,QAAQ,CAACxjC,QAAQ,EAAE2iF,KAAK,CAAC,CAClDpwK,IAAI,CAAC83B,mDAAG,CAAEyuJ,GAAG,IAAK;YACnBnW,KAAK,CAACyP,aAAa,GAAG0G,GAAG;YACzB,OAAOA,GAAG;UACd,CAAC,CAAC,CAAC;QACP;QACA,OAAO/B,YAAY,CAACpU,KAAK,CAAC;MAC9B,CAAC,CAAC,CAAC;IACP;IACA,OAAOzkH,wCAAE,CAAC,IAAIm0H,kBAAkB,CAAC,EAAE,EAAE7uD,QAAQ,CAAC,CAAC;EACnD;EACA+1D,gBAAgBA,CAACtC,cAAc,EAAEtU,KAAK,EAAEiB,QAAQ,EAAE;IAC9C,MAAMgP,OAAO,GAAGjQ,KAAK,CAACiQ,OAAO;IAC7B,IAAI,CAACA,OAAO,IAAIA,OAAO,CAAChnL,MAAM,KAAK,CAAC,EAChC,OAAOsyD,wCAAE,CAAC,IAAI,CAAC;IACnB,MAAMu7H,kBAAkB,GAAG7G,OAAO,CAACvoJ,GAAG,CAAEqvJ,cAAc,IAAK;MACvD,MAAM/G,KAAK,GAAGsE,cAAc,CAACroK,GAAG,CAAC8qK,cAAc,CAAC;MAChD,IAAIC,QAAQ;MACZ,IAAIjH,SAAS,CAACC,KAAK,CAAC,EAAE;QAClBgH,QAAQ,GAAGhH,KAAK,CAACC,OAAO,CAACjQ,KAAK,EAAEiB,QAAQ,CAAC;MAC7C,CAAC,MACI,IAAI2O,UAAU,CAACI,KAAK,CAAC,EAAE;QACxBgH,QAAQ,GAAGhH,KAAK,CAAChQ,KAAK,EAAEiB,QAAQ,CAAC;MACrC,CAAC,MACI;QACD,MAAM,IAAIr3K,KAAK,CAAC,uBAAuB,CAAC;MAC5C;MACA,OAAOq4K,kBAAkB,CAAC+U,QAAQ,CAAC;IACvC,CAAC,CAAC;IACF,OAAOz7H,wCAAE,CAACu7H,kBAAkB,CAAC,CACxBlnL,IAAI,CAAC8gL,qBAAqB,CAAC,CAAC,EAAEj0H,oDAAG,CAAEtyD,MAAM,IAAK;MAC/C,IAAI,CAAC2lL,SAAS,CAAC3lL,MAAM,CAAC,EAClB;MACJ,MAAMqE,KAAK,GAAGsyK,wBAAwB,CAAC,mBAAmB,IAAI,CAAC0T,aAAa,CAAC7Q,SAAS,CAACx5K,MAAM,CAAC,GAAG,CAAC;MAClGqE,KAAK,CAACq1B,GAAG,GAAG15B,MAAM;MAClB,MAAMqE,KAAK;IACf,CAAC,CAAC,EAAEk5B,mDAAG,CAACv9B,MAAM,IAAIA,MAAM,KAAK,IAAI,CAAC,CAAC;EACvC;EACA4rL,kBAAkBA,CAAC/V,KAAK,EAAE2H,OAAO,EAAE;IAC/B,IAAIh7K,GAAG,GAAG,EAAE;IACZ,IAAI+D,CAAC,GAAGi3K,OAAO,CAACjiK,IAAI;IACpB,OAAO,IAAI,EAAE;MACT/Y,GAAG,GAAGA,GAAG,CAACoF,MAAM,CAACrB,CAAC,CAACuwK,QAAQ,CAAC;MAC5B,IAAIvwK,CAAC,CAACyyK,gBAAgB,KAAK,CAAC,EAAE;QAC1B,OAAO5nH,wCAAE,CAAC5uD,GAAG,CAAC;MAClB;MACA,IAAI+D,CAAC,CAACyyK,gBAAgB,GAAG,CAAC,IAAI,CAACzyK,CAAC,CAAC24D,QAAQ,CAACq3G,cAAc,CAAC,EAAE;QACvD,OAAOyT,oBAAoB,CAACnU,KAAK,CAACwS,UAAU,CAAC;MACjD;MACA9hL,CAAC,GAAGA,CAAC,CAAC24D,QAAQ,CAACq3G,cAAc,CAAC;IAClC;EACJ;EACAoV,qBAAqBA,CAAC7U,QAAQ,EAAEuR,UAAU,EAAEnR,SAAS,EAAE;IACnD,OAAO,IAAI,CAAC4V,2BAA2B,CAACzE,UAAU,EAAE,IAAI,CAACgC,aAAa,CAACv0J,KAAK,CAACuyJ,UAAU,CAAC,EAAEvR,QAAQ,EAAEI,SAAS,CAAC;EAClH;EACA4V,2BAA2BA,CAACzE,UAAU,EAAE7K,OAAO,EAAE1G,QAAQ,EAAEI,SAAS,EAAE;IAClE,MAAMmK,OAAO,GAAG,IAAI,CAAC0L,kBAAkB,CAAC1E,UAAU,EAAE7K,OAAO,CAACjiK,IAAI,EAAEu7J,QAAQ,EAAEI,SAAS,CAAC;IACtF,OAAO,IAAIc,OAAO,CAACqJ,OAAO,EAAE,IAAI,CAAC2L,iBAAiB,CAACxP,OAAO,CAAC70E,WAAW,EAAE,IAAI,CAAC60E,OAAO,CAAC70E,WAAW,CAAC,EAAE60E,OAAO,CAAC3E,QAAQ,CAAC;EACxH;EACAmU,iBAAiBA,CAACC,gBAAgB,EAAEC,YAAY,EAAE;IAC9C,MAAM1qL,GAAG,GAAG,CAAC,CAAC;IACduQ,OAAO,CAACk6K,gBAAgB,EAAE,CAAC18I,CAAC,EAAE/vC,CAAC,KAAK;MAChC,MAAM2sL,eAAe,GAAG,OAAO58I,CAAC,KAAK,QAAQ,IAAIA,CAAC,CAACpK,UAAU,CAAC,GAAG,CAAC;MAClE,IAAIgnJ,eAAe,EAAE;QACjB,MAAMC,UAAU,GAAG78I,CAAC,CAAC3lC,SAAS,CAAC,CAAC,CAAC;QACjCpI,GAAG,CAAChC,CAAC,CAAC,GAAG0sL,YAAY,CAACE,UAAU,CAAC;MACrC,CAAC,MACI;QACD5qL,GAAG,CAAChC,CAAC,CAAC,GAAG+vC,CAAC;MACd;IACJ,CAAC,CAAC;IACF,OAAO/tC,GAAG;EACd;EACAuqL,kBAAkBA,CAAC1E,UAAU,EAAEv9C,KAAK,EAAEgsC,QAAQ,EAAEI,SAAS,EAAE;IACvD,MAAMmW,eAAe,GAAG,IAAI,CAACC,cAAc,CAACjF,UAAU,EAAEv9C,KAAK,CAACgsC,QAAQ,EAAEA,QAAQ,EAAEI,SAAS,CAAC;IAC5F,IAAIh4G,QAAQ,GAAG,CAAC,CAAC;IACjBnsD,OAAO,CAAC+3H,KAAK,CAAC5rE,QAAQ,EAAE,CAAC+qE,KAAK,EAAE5mI,IAAI,KAAK;MACrC67D,QAAQ,CAAC77D,IAAI,CAAC,GAAG,IAAI,CAAC0pL,kBAAkB,CAAC1E,UAAU,EAAEp+C,KAAK,EAAE6sC,QAAQ,EAAEI,SAAS,CAAC;IACpF,CAAC,CAAC;IACF,OAAO,IAAIe,eAAe,CAACoV,eAAe,EAAEnuH,QAAQ,CAAC;EACzD;EACAouH,cAAcA,CAACjF,UAAU,EAAEkF,kBAAkB,EAAEC,cAAc,EAAEtW,SAAS,EAAE;IACtE,OAAOqW,kBAAkB,CAAChwJ,GAAG,CAACiQ,CAAC,IAAIA,CAAC,CAACvyB,IAAI,CAACkrB,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAACsnJ,YAAY,CAACpF,UAAU,EAAE76I,CAAC,EAAE0pI,SAAS,CAAC,GACnG,IAAI,CAACwW,YAAY,CAAClgJ,CAAC,EAAEggJ,cAAc,CAAC,CAAC;EAC7C;EACAC,YAAYA,CAACpF,UAAU,EAAEsF,oBAAoB,EAAEzW,SAAS,EAAE;IACtD,MAAMjwK,GAAG,GAAGiwK,SAAS,CAACyW,oBAAoB,CAAC1yK,IAAI,CAACrQ,SAAS,CAAC,CAAC,CAAC,CAAC;IAC7D,IAAI,CAAC3D,GAAG,EACJ,MAAM,IAAIxH,KAAK,CAAC,uBAAuB4oL,UAAU,mBAAmBsF,oBAAoB,CAAC1yK,IAAI,IAAI,CAAC;IACtG,OAAOhU,GAAG;EACd;EACAymL,YAAYA,CAACC,oBAAoB,EAAEH,cAAc,EAAE;IAC/C,IAAI5+D,GAAG,GAAG,CAAC;IACX,KAAK,MAAMphF,CAAC,IAAIggJ,cAAc,EAAE;MAC5B,IAAIhgJ,CAAC,CAACvyB,IAAI,KAAK0yK,oBAAoB,CAAC1yK,IAAI,EAAE;QACtCuyK,cAAc,CAACloJ,MAAM,CAACspF,GAAG,CAAC;QAC1B,OAAOphF,CAAC;MACZ;MACAohF,GAAG,EAAE;IACT;IACA,OAAO++D,oBAAoB;EAC/B;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,oBAAoBA,CAACpgJ,CAAC,EAAE;EAC7B,IAAIA,CAAC,CAACwrI,gBAAgB,KAAK,CAAC,IAAIxrI,CAAC,CAAC0xB,QAAQ,CAACq3G,cAAc,CAAC,EAAE;IACxD,MAAMhwK,CAAC,GAAGinC,CAAC,CAAC0xB,QAAQ,CAACq3G,cAAc,CAAC;IACpC,OAAO,IAAI0B,eAAe,CAACzqI,CAAC,CAACspI,QAAQ,CAAClvK,MAAM,CAACrB,CAAC,CAACuwK,QAAQ,CAAC,EAAEvwK,CAAC,CAAC24D,QAAQ,CAAC;EACzE;EACA,OAAO1xB,CAAC;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,SAASq9I,kBAAkBA,CAAC9T,YAAY,EAAE;EACtC,MAAM8W,WAAW,GAAG,CAAC,CAAC;EACtB,KAAK,MAAM3T,WAAW,IAAIl4K,MAAM,CAAC41B,IAAI,CAACm/I,YAAY,CAAC73G,QAAQ,CAAC,EAAE;IAC1D,MAAM+qE,KAAK,GAAG8sC,YAAY,CAAC73G,QAAQ,CAACg7G,WAAW,CAAC;IAChD,MAAM4T,cAAc,GAAGjD,kBAAkB,CAAC5gD,KAAK,CAAC;IAChD;IACA,IAAI6jD,cAAc,CAAChX,QAAQ,CAACh4K,MAAM,GAAG,CAAC,IAAIgvL,cAAc,CAAC7W,WAAW,CAAC,CAAC,EAAE;MACpE4W,WAAW,CAAC3T,WAAW,CAAC,GAAG4T,cAAc;IAC7C;EACJ;EACA,MAAMtgJ,CAAC,GAAG,IAAIyqI,eAAe,CAAClB,YAAY,CAACD,QAAQ,EAAE+W,WAAW,CAAC;EACjE,OAAOD,oBAAoB,CAACpgJ,CAAC,CAAC;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASugJ,cAAcA,CAAC5D,cAAc,EAAEC,YAAY,EAAEC,aAAa,EAAE1qK,MAAM,EAAE;EACzE,OAAO23E,yDAAS,CAACjsF,CAAC,IAAI6+K,gBAAgB,CAACC,cAAc,EAAEC,YAAY,EAAEC,aAAa,EAAEh/K,CAAC,CAAC2iL,YAAY,EAAEruK,MAAM,CAAC,CACtGla,IAAI,CAAC83B,mDAAG,CAAC23I,iBAAiB,IAAKlzK,MAAM,CAACurB,MAAM,CAACvrB,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAEliB,CAAC,CAAC,EAAE;IAAE6pK;EAAkB,CAAC,CAAE,CAAC,CAAC,CAAC;AACtG;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM+Y,WAAW,CAAC;EACdxpL,WAAWA,CAACwW,IAAI,EAAE;IACd,IAAI,CAACA,IAAI,GAAGA,IAAI;IAChB,IAAI,CAAC46J,KAAK,GAAG,IAAI,CAAC56J,IAAI,CAAC,IAAI,CAACA,IAAI,CAACnc,MAAM,GAAG,CAAC,CAAC;EAChD;AACJ;AACA,MAAMovL,aAAa,CAAC;EAChBzpL,WAAWA,CAACwuF,SAAS,EAAE4iF,KAAK,EAAE;IAC1B,IAAI,CAAC5iF,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAAC4iF,KAAK,GAAGA,KAAK;EACtB;AACJ;AACA,SAASsY,iBAAiBA,CAAC5J,MAAM,EAAE3F,IAAI,EAAE8E,cAAc,EAAE;EACrD,MAAMC,UAAU,GAAGY,MAAM,CAAC5H,KAAK;EAC/B,MAAMiH,QAAQ,GAAGhF,IAAI,GAAGA,IAAI,CAACjC,KAAK,GAAG,IAAI;EACzC,OAAOyR,mBAAmB,CAACzK,UAAU,EAAEC,QAAQ,EAAEF,cAAc,EAAE,CAACC,UAAU,CAACx9K,KAAK,CAAC,CAAC;AACxF;AACA,SAASkoL,mBAAmBA,CAACrrI,CAAC,EAAE;EAC5B,MAAMkjI,gBAAgB,GAAGljI,CAAC,CAACizH,WAAW,GAAGjzH,CAAC,CAACizH,WAAW,CAACiQ,gBAAgB,GAAG,IAAI;EAC9E,IAAI,CAACA,gBAAgB,IAAIA,gBAAgB,CAACpnL,MAAM,KAAK,CAAC,EAClD,OAAO,IAAI;EACf,OAAO;IAAEupC,IAAI,EAAE2a,CAAC;IAAEsrI,MAAM,EAAEpI;EAAiB,CAAC;AAChD;AACA,SAASxwD,QAAQA,CAACt2G,KAAK,EAAE42J,QAAQ,EAAEmU,cAAc,EAAE;EAC/C,MAAMxqK,MAAM,GAAG4uK,sBAAsB,CAACvY,QAAQ,CAAC;EAC/C,MAAM9iF,QAAQ,GAAGvzE,MAAM,GAAGA,MAAM,CAACylK,MAAM,CAAClyF,QAAQ,GAAGi3F,cAAc;EACjE,OAAOj3F,QAAQ,CAACpxE,GAAG,CAAC1C,KAAK,CAAC;AAC9B;AACA,SAASmvK,sBAAsBA,CAACvY,QAAQ,EAAE;EACtC,IAAI,CAACA,QAAQ,EACT,OAAO,IAAI;EACf,KAAK,IAAIxoI,CAAC,GAAGwoI,QAAQ,CAACx7J,MAAM,EAAEgzB,CAAC,EAAEA,CAAC,GAAGA,CAAC,CAAChzB,MAAM,EAAE;IAC3C,MAAMq7J,KAAK,GAAGroI,CAAC,CAACyoI,WAAW;IAC3B,IAAIJ,KAAK,IAAIA,KAAK,CAACyP,aAAa,EAC5B,OAAOzP,KAAK,CAACyP,aAAa;EAClC;EACA,OAAO,IAAI;AACf;AACA,SAAS8I,mBAAmBA,CAACrK,UAAU,EAAEC,QAAQ,EAAEC,QAAQ,EAAEuK,UAAU,EAAEC,MAAM,GAAG;EAC9EC,mBAAmB,EAAE,EAAE;EACvBC,iBAAiB,EAAE;AACvB,CAAC,EAAE;EACC,MAAMC,YAAY,GAAGzR,iBAAiB,CAAC6G,QAAQ,CAAC;EAChD;EACAD,UAAU,CAAC7kH,QAAQ,CAACnsD,OAAO,CAACxM,CAAC,IAAI;IAC7BsoL,cAAc,CAACtoL,CAAC,EAAEqoL,YAAY,CAACroL,CAAC,CAACJ,KAAK,CAACi3K,MAAM,CAAC,EAAE6G,QAAQ,EAAEuK,UAAU,CAAC5mL,MAAM,CAAC,CAACrB,CAAC,CAACJ,KAAK,CAAC,CAAC,EAAEsoL,MAAM,CAAC;IAC/F,OAAOG,YAAY,CAACroL,CAAC,CAACJ,KAAK,CAACi3K,MAAM,CAAC;EACvC,CAAC,CAAC;EACF;EACArqK,OAAO,CAAC67K,YAAY,EAAE,CAACr+I,CAAC,EAAE/vC,CAAC,KAAK8jL,6BAA6B,CAAC/zI,CAAC,EAAE0zI,QAAQ,CAACO,UAAU,CAAChkL,CAAC,CAAC,EAAEiuL,MAAM,CAAC,CAAC;EACjG,OAAOA,MAAM;AACjB;AACA,SAASI,cAAcA,CAAC9K,UAAU,EAAEC,QAAQ,EAAEN,cAAc,EAAE8K,UAAU,EAAEC,MAAM,GAAG;EAC/EC,mBAAmB,EAAE,EAAE;EACvBC,iBAAiB,EAAE;AACvB,CAAC,EAAE;EACC,MAAMpK,MAAM,GAAGR,UAAU,CAAC59K,KAAK;EAC/B,MAAMy4K,IAAI,GAAGoF,QAAQ,GAAGA,QAAQ,CAAC79K,KAAK,GAAG,IAAI;EAC7C,MAAMmiC,OAAO,GAAGo7I,cAAc,GAAGA,cAAc,CAACc,UAAU,CAACT,UAAU,CAAC59K,KAAK,CAACi3K,MAAM,CAAC,GAAG,IAAI;EAC1F;EACA,IAAIwB,IAAI,IAAI2F,MAAM,CAACtO,WAAW,KAAK2I,IAAI,CAAC3I,WAAW,EAAE;IACjD,MAAM6Y,SAAS,GAAGC,2BAA2B,CAACnQ,IAAI,EAAE2F,MAAM,EAAEA,MAAM,CAACtO,WAAW,CAAC+Y,qBAAqB,CAAC;IACrG,IAAIF,SAAS,EAAE;MACXL,MAAM,CAACE,iBAAiB,CAACzvL,IAAI,CAAC,IAAI+uL,WAAW,CAACO,UAAU,CAAC,CAAC;IAC9D,CAAC,MACI;MACD;MACAjK,MAAM,CAAC1gL,IAAI,GAAG+6K,IAAI,CAAC/6K,IAAI;MACvB0gL,MAAM,CAAC1F,aAAa,GAAGD,IAAI,CAACC,aAAa;IAC7C;IACA;IACA,IAAI0F,MAAM,CAACtxF,SAAS,EAAE;MAClBm7F,mBAAmB,CAACrK,UAAU,EAAEC,QAAQ,EAAE17I,OAAO,GAAGA,OAAO,CAAC42B,QAAQ,GAAG,IAAI,EAAEsvH,UAAU,EAAEC,MAAM,CAAC;MAChG;IACJ,CAAC,MACI;MACDL,mBAAmB,CAACrK,UAAU,EAAEC,QAAQ,EAAEN,cAAc,EAAE8K,UAAU,EAAEC,MAAM,CAAC;IACjF;IACA,IAAIK,SAAS,IAAIxmJ,OAAO,IAAIA,OAAO,CAAC80I,MAAM,IAAI90I,OAAO,CAAC80I,MAAM,CAACiK,WAAW,EAAE;MACtEoH,MAAM,CAACC,mBAAmB,CAACxvL,IAAI,CAAC,IAAIgvL,aAAa,CAAC5lJ,OAAO,CAAC80I,MAAM,CAACnqF,SAAS,EAAE2rF,IAAI,CAAC,CAAC;IACtF;EACJ,CAAC,MACI;IACD,IAAIA,IAAI,EAAE;MACN0F,6BAA6B,CAACN,QAAQ,EAAE17I,OAAO,EAAEmmJ,MAAM,CAAC;IAC5D;IACAA,MAAM,CAACE,iBAAiB,CAACzvL,IAAI,CAAC,IAAI+uL,WAAW,CAACO,UAAU,CAAC,CAAC;IAC1D;IACA,IAAIjK,MAAM,CAACtxF,SAAS,EAAE;MAClBm7F,mBAAmB,CAACrK,UAAU,EAAE,IAAI,EAAEz7I,OAAO,GAAGA,OAAO,CAAC42B,QAAQ,GAAG,IAAI,EAAEsvH,UAAU,EAAEC,MAAM,CAAC;MAC5F;IACJ,CAAC,MACI;MACDL,mBAAmB,CAACrK,UAAU,EAAE,IAAI,EAAEL,cAAc,EAAE8K,UAAU,EAAEC,MAAM,CAAC;IAC7E;EACJ;EACA,OAAOA,MAAM;AACjB;AACA,SAASM,2BAA2BA,CAACnQ,IAAI,EAAE2F,MAAM,EAAEn5G,IAAI,EAAE;EACrD,IAAI,OAAOA,IAAI,KAAK,UAAU,EAAE;IAC5B,OAAOA,IAAI,CAACwzG,IAAI,EAAE2F,MAAM,CAAC;EAC7B;EACA,QAAQn5G,IAAI;IACR,KAAK,kBAAkB;MACnB,OAAO,CAAC0tG,SAAS,CAAC8F,IAAI,CAACllJ,GAAG,EAAE6qJ,MAAM,CAAC7qJ,GAAG,CAAC;IAC3C,KAAK,+BAA+B;MAChC,OAAO,CAACo/I,SAAS,CAAC8F,IAAI,CAACllJ,GAAG,EAAE6qJ,MAAM,CAAC7qJ,GAAG,CAAC,IACnC,CAAC69I,YAAY,CAACqH,IAAI,CAACj2E,WAAW,EAAE47E,MAAM,CAAC57E,WAAW,CAAC;IAC3D,KAAK,QAAQ;MACT,OAAO,IAAI;IACf,KAAK,2BAA2B;MAC5B,OAAO,CAAC22E,yBAAyB,CAACV,IAAI,EAAE2F,MAAM,CAAC,IAC3C,CAAChN,YAAY,CAACqH,IAAI,CAACj2E,WAAW,EAAE47E,MAAM,CAAC57E,WAAW,CAAC;IAC3D,KAAK,cAAc;IACnB;MACI,OAAO,CAAC22E,yBAAyB,CAACV,IAAI,EAAE2F,MAAM,CAAC;EACvD;AACJ;AACA,SAASD,6BAA6BA,CAACzO,KAAK,EAAEvtI,OAAO,EAAEmmJ,MAAM,EAAE;EAC3D,MAAMvvH,QAAQ,GAAGi+G,iBAAiB,CAACtH,KAAK,CAAC;EACzC,MAAMx6D,CAAC,GAAGw6D,KAAK,CAAC1vK,KAAK;EACrB4M,OAAO,CAACmsD,QAAQ,EAAE,CAAC72B,IAAI,EAAEg8I,SAAS,KAAK;IACnC,IAAI,CAAChpE,CAAC,CAACpoB,SAAS,EAAE;MACdqxF,6BAA6B,CAACj8I,IAAI,EAAEC,OAAO,EAAEmmJ,MAAM,CAAC;IACxD,CAAC,MACI,IAAInmJ,OAAO,EAAE;MACdg8I,6BAA6B,CAACj8I,IAAI,EAAEC,OAAO,CAAC42B,QAAQ,CAACslH,UAAU,CAACH,SAAS,CAAC,EAAEoK,MAAM,CAAC;IACvF,CAAC,MACI;MACDnK,6BAA6B,CAACj8I,IAAI,EAAE,IAAI,EAAEomJ,MAAM,CAAC;IACrD;EACJ,CAAC,CAAC;EACF,IAAI,CAACpzE,CAAC,CAACpoB,SAAS,EAAE;IACdw7F,MAAM,CAACC,mBAAmB,CAACxvL,IAAI,CAAC,IAAIgvL,aAAa,CAAC,IAAI,EAAE7yE,CAAC,CAAC,CAAC;EAC/D,CAAC,MACI,IAAI/yE,OAAO,IAAIA,OAAO,CAAC80I,MAAM,IAAI90I,OAAO,CAAC80I,MAAM,CAACiK,WAAW,EAAE;IAC9DoH,MAAM,CAACC,mBAAmB,CAACxvL,IAAI,CAAC,IAAIgvL,aAAa,CAAC5lJ,OAAO,CAAC80I,MAAM,CAACnqF,SAAS,EAAEooB,CAAC,CAAC,CAAC;EACnF,CAAC,MACI;IACDozE,MAAM,CAACC,mBAAmB,CAACxvL,IAAI,CAAC,IAAIgvL,aAAa,CAAC,IAAI,EAAE7yE,CAAC,CAAC,CAAC;EAC/D;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS4zE,WAAWA,CAAC9E,cAAc,EAAEhH,YAAY,EAAE;EAC/C,OAAO3O,yDAAQ,CAACnpK,CAAC,IAAI;IACjB,MAAM;MAAE6jL,cAAc;MAAE9gI,eAAe;MAAEkgI,MAAM,EAAE;QAAEK,iBAAiB;QAAED;MAAoB;IAAE,CAAC,GAAGrjL,CAAC;IACjG,IAAIqjL,mBAAmB,CAAC5vL,MAAM,KAAK,CAAC,IAAI6vL,iBAAiB,CAAC7vL,MAAM,KAAK,CAAC,EAAE;MACpE,OAAOsyD,wCAAE,CAACpvD,MAAM,CAACurB,MAAM,CAACvrB,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAEliB,CAAC,CAAC,EAAE;QAAE8jL,YAAY,EAAE;MAAK,CAAC,CAAC,CAAC;IAC1E;IACA,OAAOC,sBAAsB,CAACV,mBAAmB,EAAEQ,cAAc,EAAE9gI,eAAe,EAAE+7H,cAAc,CAAC,CAC9F1kL,IAAI,CAAC+uK,yDAAQ,CAAC4R,aAAa,IAAI;MAChC,OAAOA,aAAa,IAAIV,SAAS,CAACU,aAAa,CAAC,GAC5CiJ,oBAAoB,CAACH,cAAc,EAAEP,iBAAiB,EAAExE,cAAc,EAAEhH,YAAY,CAAC,GACrF/xH,wCAAE,CAACg1H,aAAa,CAAC;IACzB,CAAC,CAAC,EAAE7oJ,mDAAG,CAAC4xJ,YAAY,IAAKntL,MAAM,CAACurB,MAAM,CAACvrB,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAEliB,CAAC,CAAC,EAAE;MAAE8jL;IAAa,CAAC,CAAE,CAAC,CAAC;EACrF,CAAC,CAAC;AACN;AACA,SAASC,sBAAsBA,CAACX,MAAM,EAAEa,SAAS,EAAEC,OAAO,EAAEpF,cAAc,EAAE;EACxE,OAAOxyJ,0CAAI,CAAC82J,MAAM,CAAC,CAAChpL,IAAI,CAAC+uK,yDAAQ,CAACgb,KAAK,IAAIC,gBAAgB,CAACD,KAAK,CAACv8F,SAAS,EAAEu8F,KAAK,CAAC3Z,KAAK,EAAE0Z,OAAO,EAAED,SAAS,EAAEnF,cAAc,CAAC,CAAC,EAAE/pF,sDAAK,CAACpgG,MAAM,IAAI;IAC5I,OAAOA,MAAM,KAAK,IAAI;EAC1B,CAAC,EAAE,IAAI,CAAC,CAAC;AACb;AACA,SAASqvL,oBAAoBA,CAAClR,cAAc,EAAEsQ,MAAM,EAAEtE,cAAc,EAAEhH,YAAY,EAAE;EAChF,OAAOxrJ,0CAAI,CAAC82J,MAAM,CAAC,CAAChpL,IAAI,CAACumH,0DAAS,CAAEwjE,KAAK,IAAK;IAC1C,OAAO5nL,6CAAM,CAAC8nL,wBAAwB,CAACF,KAAK,CAAC3Z,KAAK,CAACr7J,MAAM,EAAE2oK,YAAY,CAAC,EAAEwM,mBAAmB,CAACH,KAAK,CAAC3Z,KAAK,EAAEsN,YAAY,CAAC,EAAEyM,mBAAmB,CAACzR,cAAc,EAAEqR,KAAK,CAACv0K,IAAI,EAAEkvK,cAAc,CAAC,EAAE0F,cAAc,CAAC1R,cAAc,EAAEqR,KAAK,CAAC3Z,KAAK,EAAEsU,cAAc,CAAC,CAAC;EAC3P,CAAC,CAAC,EAAE/pF,sDAAK,CAACpgG,MAAM,IAAI;IAChB,OAAOA,MAAM,KAAK,IAAI;EAC1B,CAAC,EAAE,IAAI,CAAC,CAAC;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS2vL,mBAAmBA,CAAC3Z,QAAQ,EAAEmN,YAAY,EAAE;EACjD,IAAInN,QAAQ,KAAK,IAAI,IAAImN,YAAY,EAAE;IACnCA,YAAY,CAAC,IAAIhN,eAAe,CAACH,QAAQ,CAAC,CAAC;EAC/C;EACA,OAAO5kH,wCAAE,CAAC,IAAI,CAAC;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASs+H,wBAAwBA,CAAC1Z,QAAQ,EAAEmN,YAAY,EAAE;EACtD,IAAInN,QAAQ,KAAK,IAAI,IAAImN,YAAY,EAAE;IACnCA,YAAY,CAAC,IAAIpN,oBAAoB,CAACC,QAAQ,CAAC,CAAC;EACpD;EACA,OAAO5kH,wCAAE,CAAC,IAAI,CAAC;AACnB;AACA,SAASy+H,cAAcA,CAACP,SAAS,EAAEQ,SAAS,EAAE3F,cAAc,EAAE;EAC1D,MAAMnE,WAAW,GAAG8J,SAAS,CAAC7Z,WAAW,GAAG6Z,SAAS,CAAC7Z,WAAW,CAAC+P,WAAW,GAAG,IAAI;EACpF,IAAI,CAACA,WAAW,IAAIA,WAAW,CAAClnL,MAAM,KAAK,CAAC,EACxC,OAAOsyD,wCAAE,CAAC,IAAI,CAAC;EACnB,MAAM2+H,sBAAsB,GAAG/J,WAAW,CAACzoJ,GAAG,CAAEh3B,CAAC,IAAK;IAClD,OAAOi7D,4CAAK,CAAC,MAAM;MACf,MAAMqkH,KAAK,GAAGnwD,QAAQ,CAACnvH,CAAC,EAAEupL,SAAS,EAAE3F,cAAc,CAAC;MACpD,IAAI6F,UAAU;MACd,IAAIjK,aAAa,CAACF,KAAK,CAAC,EAAE;QACtBmK,UAAU,GAAGlY,kBAAkB,CAAC+N,KAAK,CAACG,WAAW,CAAC8J,SAAS,EAAER,SAAS,CAAC,CAAC;MAC5E,CAAC,MACI,IAAI7J,UAAU,CAACI,KAAK,CAAC,EAAE;QACxBmK,UAAU,GAAGlY,kBAAkB,CAAC+N,KAAK,CAACiK,SAAS,EAAER,SAAS,CAAC,CAAC;MAChE,CAAC,MACI;QACD,MAAM,IAAI7vL,KAAK,CAAC,2BAA2B,CAAC;MAChD;MACA,OAAOuwL,UAAU,CAACvqL,IAAI,CAAC26F,sDAAK,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC;EACN,CAAC,CAAC;EACF,OAAOhvC,wCAAE,CAAC2+H,sBAAsB,CAAC,CAACtqL,IAAI,CAAC8gL,qBAAqB,CAAC,CAAC,CAAC;AACnE;AACA,SAASqJ,mBAAmBA,CAACN,SAAS,EAAEr0K,IAAI,EAAEkvK,cAAc,EAAE;EAC1D,MAAM2F,SAAS,GAAG70K,IAAI,CAACA,IAAI,CAACnc,MAAM,GAAG,CAAC,CAAC;EACvC,MAAMmxL,sBAAsB,GAAGh1K,IAAI,CAACra,KAAK,CAAC,CAAC,EAAEqa,IAAI,CAACnc,MAAM,GAAG,CAAC,CAAC,CACxDk3G,OAAO,CAAC,CAAC,CACTz4E,GAAG,CAACylB,CAAC,IAAIqrI,mBAAmB,CAACrrI,CAAC,CAAC,CAAC,CAChCpnC,MAAM,CAACyrB,CAAC,IAAIA,CAAC,KAAK,IAAI,CAAC;EAC5B,MAAM6oJ,4BAA4B,GAAGD,sBAAsB,CAAC1yJ,GAAG,CAAE64E,CAAC,IAAK;IACnE,OAAO50C,4CAAK,CAAC,MAAM;MACf,MAAM2uH,YAAY,GAAG/5E,CAAC,CAACk4E,MAAM,CAAC/wJ,GAAG,CAAEh3B,CAAC,IAAK;QACrC,MAAMs/K,KAAK,GAAGnwD,QAAQ,CAACnvH,CAAC,EAAE6vG,CAAC,CAAC/tE,IAAI,EAAE8hJ,cAAc,CAAC;QACjD,IAAI6F,UAAU;QACd,IAAI/J,kBAAkB,CAACJ,KAAK,CAAC,EAAE;UAC3BmK,UAAU,GAAGlY,kBAAkB,CAAC+N,KAAK,CAACK,gBAAgB,CAAC4J,SAAS,EAAER,SAAS,CAAC,CAAC;QACjF,CAAC,MACI,IAAI7J,UAAU,CAACI,KAAK,CAAC,EAAE;UACxBmK,UAAU,GAAGlY,kBAAkB,CAAC+N,KAAK,CAACiK,SAAS,EAAER,SAAS,CAAC,CAAC;QAChE,CAAC,MACI;UACD,MAAM,IAAI7vL,KAAK,CAAC,gCAAgC,CAAC;QACrD;QACA,OAAOuwL,UAAU,CAACvqL,IAAI,CAAC26F,sDAAK,CAAC,CAAC,CAAC;MACnC,CAAC,CAAC;MACF,OAAOhvC,wCAAE,CAAC++H,YAAY,CAAC,CAAC1qL,IAAI,CAAC8gL,qBAAqB,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC;EACN,CAAC,CAAC;EACF,OAAOn1H,wCAAE,CAAC8+H,4BAA4B,CAAC,CAACzqL,IAAI,CAAC8gL,qBAAqB,CAAC,CAAC,CAAC;AACzE;AACA,SAASkJ,gBAAgBA,CAACx8F,SAAS,EAAEm9F,OAAO,EAAEb,OAAO,EAAED,SAAS,EAAEnF,cAAc,EAAE;EAC9E,MAAM/D,aAAa,GAAGgK,OAAO,IAAIA,OAAO,CAACna,WAAW,GAAGma,OAAO,CAACna,WAAW,CAACmQ,aAAa,GAAG,IAAI;EAC/F,IAAI,CAACA,aAAa,IAAIA,aAAa,CAACtnL,MAAM,KAAK,CAAC,EAC5C,OAAOsyD,wCAAE,CAAC,IAAI,CAAC;EACnB,MAAMi/H,wBAAwB,GAAGjK,aAAa,CAAC7oJ,GAAG,CAAEh3B,CAAC,IAAK;IACtD,MAAMs/K,KAAK,GAAGnwD,QAAQ,CAACnvH,CAAC,EAAE6pL,OAAO,EAAEjG,cAAc,CAAC;IAClD,IAAI6F,UAAU;IACd,IAAI7J,eAAe,CAACN,KAAK,CAAC,EAAE;MACxBmK,UAAU,GAAGlY,kBAAkB,CAAC+N,KAAK,CAACO,aAAa,CAACnzF,SAAS,EAAEm9F,OAAO,EAAEb,OAAO,EAAED,SAAS,CAAC,CAAC;IAChG,CAAC,MACI,IAAI7J,UAAU,CAACI,KAAK,CAAC,EAAE;MACxBmK,UAAU,GAAGlY,kBAAkB,CAAC+N,KAAK,CAAC5yF,SAAS,EAAEm9F,OAAO,EAAEb,OAAO,EAAED,SAAS,CAAC,CAAC;IAClF,CAAC,MACI;MACD,MAAM,IAAI7vL,KAAK,CAAC,6BAA6B,CAAC;IAClD;IACA,OAAOuwL,UAAU,CAACvqL,IAAI,CAAC26F,sDAAK,CAAC,CAAC,CAAC;EACnC,CAAC,CAAC;EACF,OAAOhvC,wCAAE,CAACi/H,wBAAwB,CAAC,CAAC5qL,IAAI,CAAC8gL,qBAAqB,CAAC,CAAC,CAAC;AACrE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM+J,OAAO,CAAC;AAEd,SAASC,kBAAkBA,CAACvyL,CAAC,EAAE;EAC3B;EACA,OAAO,IAAI+zE,6CAAU,CAAE0pD,GAAG,IAAKA,GAAG,CAACp3H,KAAK,CAACrG,CAAC,CAAC,CAAC;AAChD;AACA,SAASwyL,WAAWA,CAACC,iBAAiB,EAAE9wK,MAAM,EAAE69J,OAAO,EAAE9jJ,GAAG,EAAE+kJ,yBAAyB,GAAG,WAAW,EAAEuK,sBAAsB,GAAG,QAAQ,EAAE;EACtI,IAAI;IACA,MAAMhpL,MAAM,GAAG,IAAI0wL,UAAU,CAACD,iBAAiB,EAAE9wK,MAAM,EAAE69J,OAAO,EAAE9jJ,GAAG,EAAE+kJ,yBAAyB,EAAEuK,sBAAsB,CAAC,CACpH2H,SAAS,CAAC,CAAC;IAChB,IAAI3wL,MAAM,KAAK,IAAI,EAAE;MACjB,OAAOuwL,kBAAkB,CAAC,IAAID,OAAO,CAAC,CAAC,CAAC;IAC5C,CAAC,MACI;MACD,OAAOl/H,wCAAE,CAACpxD,MAAM,CAAC;IACrB;EACJ,CAAC,CACD,OAAOhC,CAAC,EAAE;IACN;IACA;IACA,OAAOuyL,kBAAkB,CAACvyL,CAAC,CAAC;EAChC;AACJ;AACA,MAAM0yL,UAAU,CAAC;EACbjsL,WAAWA,CAACgsL,iBAAiB,EAAE9wK,MAAM,EAAE69J,OAAO,EAAE9jJ,GAAG,EAAE+kJ,yBAAyB,EAAEuK,sBAAsB,EAAE;IACpG,IAAI,CAACyH,iBAAiB,GAAGA,iBAAiB;IAC1C,IAAI,CAAC9wK,MAAM,GAAGA,MAAM;IACpB,IAAI,CAAC69J,OAAO,GAAGA,OAAO;IACtB,IAAI,CAAC9jJ,GAAG,GAAGA,GAAG;IACd,IAAI,CAAC+kJ,yBAAyB,GAAGA,yBAAyB;IAC1D,IAAI,CAACuK,sBAAsB,GAAGA,sBAAsB;EACxD;EACA2H,SAASA,CAAA,EAAG;IACR,MAAMlG,gBAAgB,GAAGt5J,KAAK,CAAC,IAAI,CAACqsJ,OAAO,CAACjiK,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAACoE,MAAM,CAAC/D,MAAM,CAACrV,CAAC,IAAIA,CAAC,CAAC8hL,UAAU,KAAK1nJ,SAAS,CAAC,EAAE,IAAI,CAACqoJ,sBAAsB,CAAC,CACtIjS,YAAY;IACjB,MAAM73G,QAAQ,GAAG,IAAI,CAAC0xH,mBAAmB,CAAC,IAAI,CAACjxK,MAAM,EAAE8qK,gBAAgB,EAAElU,cAAc,CAAC;IACxF,IAAIr3G,QAAQ,KAAK,IAAI,EAAE;MACnB,OAAO,IAAI;IACf;IACA;IACA;IACA,MAAM3jD,IAAI,GAAG,IAAI0iK,sBAAsB,CAAC,EAAE,EAAEj8K,MAAM,CAACkI,MAAM,CAAC,CAAC,CAAC,CAAC,EAAElI,MAAM,CAACkI,MAAM,CAAClI,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAACiwJ,OAAO,CAAC70E,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC60E,OAAO,CAAC3E,QAAQ,EAAE,CAAC,CAAC,EAAEtC,cAAc,EAAE,IAAI,CAACka,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAACjT,OAAO,CAACjiK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9N,MAAMusD,QAAQ,GAAG,IAAIo1G,QAAQ,CAAC3hK,IAAI,EAAE2jD,QAAQ,CAAC;IAC7C,MAAM2xH,UAAU,GAAG,IAAI3S,mBAAmB,CAAC,IAAI,CAACxkJ,GAAG,EAAEouC,QAAQ,CAAC;IAC9D,IAAI,CAACgpH,oBAAoB,CAACD,UAAU,CAAClU,KAAK,CAAC;IAC3C,OAAOkU,UAAU;EACrB;EACAC,oBAAoBA,CAACC,SAAS,EAAE;IAC5B,MAAMlb,KAAK,GAAGkb,SAAS,CAAC5qL,KAAK;IAC7B,MAAMvH,CAAC,GAAG4/K,0BAA0B,CAAC3I,KAAK,EAAE,IAAI,CAAC4I,yBAAyB,CAAC;IAC3E5I,KAAK,CAACloK,MAAM,GAAG3L,MAAM,CAACkI,MAAM,CAACtL,CAAC,CAAC+O,MAAM,CAAC;IACtCkoK,KAAK,CAAChyK,IAAI,GAAG7B,MAAM,CAACkI,MAAM,CAACtL,CAAC,CAACiF,IAAI,CAAC;IAClCktL,SAAS,CAAC7xH,QAAQ,CAACnsD,OAAO,CAAC7H,CAAC,IAAI,IAAI,CAAC4lL,oBAAoB,CAAC5lL,CAAC,CAAC,CAAC;EACjE;EACA0lL,mBAAmBA,CAACjxK,MAAM,EAAEo3J,YAAY,EAAEqG,MAAM,EAAE;IAC9C,IAAIrG,YAAY,CAACD,QAAQ,CAACh4K,MAAM,KAAK,CAAC,IAAIi4K,YAAY,CAACE,WAAW,CAAC,CAAC,EAAE;MAClE,OAAO,IAAI,CAACyJ,eAAe,CAAC/gK,MAAM,EAAEo3J,YAAY,CAAC;IACrD;IACA,OAAO,IAAI,CAACia,cAAc,CAACrxK,MAAM,EAAEo3J,YAAY,EAAEA,YAAY,CAACD,QAAQ,EAAEsG,MAAM,CAAC;EACnF;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACIsD,eAAeA,CAAC/gK,MAAM,EAAEo3J,YAAY,EAAE;IAClC,MAAM73G,QAAQ,GAAG,EAAE;IACnB,KAAK,MAAMg7G,WAAW,IAAIl4K,MAAM,CAAC41B,IAAI,CAACm/I,YAAY,CAAC73G,QAAQ,CAAC,EAAE;MAC1D,MAAM+qE,KAAK,GAAG8sC,YAAY,CAAC73G,QAAQ,CAACg7G,WAAW,CAAC;MAChD;MACA;MACA,MAAMwO,YAAY,GAAGD,qBAAqB,CAAC9oK,MAAM,EAAEu6J,WAAW,CAAC;MAC/D,MAAM+W,cAAc,GAAG,IAAI,CAACL,mBAAmB,CAAClI,YAAY,EAAEz+C,KAAK,EAAEiwC,WAAW,CAAC;MACjF,IAAI+W,cAAc,KAAK,IAAI,EAAE;QACzB;QACA;QACA,OAAO,IAAI;MACf;MACA/xH,QAAQ,CAAChgE,IAAI,CAAC,GAAG+xL,cAAc,CAAC;IACpC;IACA;IACA;IACA;IACA,MAAMC,cAAc,GAAGC,qBAAqB,CAACjyH,QAAQ,CAAC;IACtD,IAAI,OAAOlkC,SAAS,KAAK,WAAW,IAAIA,SAAS,EAAE;MAC/C;MACA;MACAo2J,yBAAyB,CAACF,cAAc,CAAC;IAC7C;IACAG,2BAA2B,CAACH,cAAc,CAAC;IAC3C,OAAOA,cAAc;EACzB;EACAF,cAAcA,CAACrxK,MAAM,EAAEo3J,YAAY,EAAED,QAAQ,EAAEsG,MAAM,EAAE;IACnD,KAAK,MAAM/hE,CAAC,IAAI17F,MAAM,EAAE;MACpB,MAAMu/C,QAAQ,GAAG,IAAI,CAACoyH,0BAA0B,CAACj2E,CAAC,EAAE07D,YAAY,EAAED,QAAQ,EAAEsG,MAAM,CAAC;MACnF,IAAIl+G,QAAQ,KAAK,IAAI,EAAE;QACnB,OAAOA,QAAQ;MACnB;IACJ;IACA,IAAIyqH,gBAAgB,CAAC5S,YAAY,EAAED,QAAQ,EAAEsG,MAAM,CAAC,EAAE;MAClD,OAAO,EAAE;IACb;IACA,OAAO,IAAI;EACf;EACAkU,0BAA0BA,CAACzb,KAAK,EAAE6T,UAAU,EAAE5S,QAAQ,EAAEsG,MAAM,EAAE;IAC5D,IAAIvH,KAAK,CAACwS,UAAU,IAAI,CAACoB,gBAAgB,CAAC5T,KAAK,EAAE6T,UAAU,EAAE5S,QAAQ,EAAEsG,MAAM,CAAC,EAC1E,OAAO,IAAI;IACf,IAAIpH,QAAQ;IACZ,IAAI4S,gBAAgB,GAAG,EAAE;IACzB,IAAIC,iBAAiB,GAAG,EAAE;IAC1B,IAAIhT,KAAK,CAAC56J,IAAI,KAAK,IAAI,EAAE;MACrB,MAAMtN,MAAM,GAAGmpK,QAAQ,CAACh4K,MAAM,GAAG,CAAC,GAAG6kG,IAAI,CAACmzE,QAAQ,CAAC,CAAC/mJ,UAAU,GAAG,CAAC,CAAC;MACnEimJ,QAAQ,GAAG,IAAIiI,sBAAsB,CAACnH,QAAQ,EAAEnpK,MAAM,EAAE3L,MAAM,CAACkI,MAAM,CAAClI,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAACiwJ,OAAO,CAAC70E,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC60E,OAAO,CAAC3E,QAAQ,EAAE0Y,OAAO,CAAC1b,KAAK,CAAC,EAAE2S,SAAS,CAAC3S,KAAK,CAAC,EAAEA,KAAK,CAAC5iF,SAAS,EAAE4iF,KAAK,EAAE2b,qBAAqB,CAAC9H,UAAU,CAAC,EAAE+H,iBAAiB,CAAC/H,UAAU,CAAC,GAAG5S,QAAQ,CAACh4K,MAAM,EAAE4yL,UAAU,CAAC7b,KAAK,CAAC,CAAC;IAC/S,CAAC,MACI;MACD,MAAM71K,MAAM,GAAGykC,KAAK,CAACilJ,UAAU,EAAE7T,KAAK,EAAEiB,QAAQ,CAAC;MACjD,IAAI,CAAC92K,MAAM,CAAC6hH,OAAO,EAAE;QACjB,OAAO,IAAI;MACf;MACA+mE,gBAAgB,GAAG5oL,MAAM,CAAC4oL,gBAAgB;MAC1CC,iBAAiB,GAAG7oL,MAAM,CAAC6oL,iBAAiB;MAC5C7S,QAAQ,GAAG,IAAIiI,sBAAsB,CAAC2K,gBAAgB,EAAE5oL,MAAM,CAAC+vB,UAAU,EAAE/tB,MAAM,CAACkI,MAAM,CAAClI,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAACiwJ,OAAO,CAAC70E,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC60E,OAAO,CAAC3E,QAAQ,EAAE0Y,OAAO,CAAC1b,KAAK,CAAC,EAAE2S,SAAS,CAAC3S,KAAK,CAAC,EAAEA,KAAK,CAAC5iF,SAAS,EAAE4iF,KAAK,EAAE2b,qBAAqB,CAAC9H,UAAU,CAAC,EAAE+H,iBAAiB,CAAC/H,UAAU,CAAC,GAAGd,gBAAgB,CAAC9pL,MAAM,EAAE4yL,UAAU,CAAC7b,KAAK,CAAC,CAAC;IAC1U;IACA,MAAMwW,WAAW,GAAGH,cAAc,CAACrW,KAAK,CAAC;IACzC,MAAM;MAAEkB,YAAY;MAAEgS;IAAe,CAAC,GAAG53J,KAAK,CAACu4J,UAAU,EAAEd,gBAAgB,EAAEC,iBAAiB;IAC9F;IACA;IACA;IACAwD,WAAW,CAACzwK,MAAM,CAACrV,CAAC,IAAIA,CAAC,CAAC8hL,UAAU,KAAK1nJ,SAAS,CAAC,EAAE,IAAI,CAACqoJ,sBAAsB,CAAC;IACjF,IAAID,cAAc,CAACjqL,MAAM,KAAK,CAAC,IAAIi4K,YAAY,CAACE,WAAW,CAAC,CAAC,EAAE;MAC3D,MAAM/3G,QAAQ,GAAG,IAAI,CAACwhH,eAAe,CAAC2L,WAAW,EAAEtV,YAAY,CAAC;MAChE,IAAI73G,QAAQ,KAAK,IAAI,EAAE;QACnB,OAAO,IAAI;MACf;MACA,OAAO,CAAC,IAAIg+G,QAAQ,CAAClH,QAAQ,EAAE92G,QAAQ,CAAC,CAAC;IAC7C;IACA,IAAImtH,WAAW,CAACvtL,MAAM,KAAK,CAAC,IAAIiqL,cAAc,CAACjqL,MAAM,KAAK,CAAC,EAAE;MACzD,OAAO,CAAC,IAAIo+K,QAAQ,CAAClH,QAAQ,EAAE,EAAE,CAAC,CAAC;IACvC;IACA,MAAMuW,eAAe,GAAG/D,SAAS,CAAC3S,KAAK,CAAC,KAAKuH,MAAM;IACnD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAMl+G,QAAQ,GAAG,IAAI,CAAC8xH,cAAc,CAAC3E,WAAW,EAAEtV,YAAY,EAAEgS,cAAc,EAAEwD,eAAe,GAAGhW,cAAc,GAAG6G,MAAM,CAAC;IAC1H,IAAIl+G,QAAQ,KAAK,IAAI,EAAE;MACnB,OAAO,IAAI;IACf;IACA,OAAO,CAAC,IAAIg+G,QAAQ,CAAClH,QAAQ,EAAE92G,QAAQ,CAAC,CAAC;EAC7C;AACJ;AACA,SAASmyH,2BAA2BA,CAAC9qI,KAAK,EAAE;EACxCA,KAAK,CAAC5D,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK;IACjB,IAAID,CAAC,CAACz8C,KAAK,CAACi3K,MAAM,KAAK7G,cAAc,EACjC,OAAO,CAAC,CAAC;IACb,IAAI1zH,CAAC,CAAC18C,KAAK,CAACi3K,MAAM,KAAK7G,cAAc,EACjC,OAAO,CAAC;IACZ,OAAO3zH,CAAC,CAACz8C,KAAK,CAACi3K,MAAM,CAACuU,aAAa,CAAC9uI,CAAC,CAAC18C,KAAK,CAACi3K,MAAM,CAAC;EACvD,CAAC,CAAC;AACN;AACA,SAAS8O,cAAcA,CAACrW,KAAK,EAAE;EAC3B,IAAIA,KAAK,CAAC32G,QAAQ,EAAE;IAChB,OAAO22G,KAAK,CAAC32G,QAAQ;EACzB;EACA,IAAI22G,KAAK,CAACuS,YAAY,EAAE;IACpB,OAAOvS,KAAK,CAACyP,aAAa,CAACE,MAAM;EACrC;EACA,OAAO,EAAE;AACb;AACA,SAASoM,kBAAkBA,CAACvpJ,IAAI,EAAE;EAC9B,MAAM1oB,MAAM,GAAG0oB,IAAI,CAACliC,KAAK,CAAC8vK,WAAW;EACrC,OAAOt2J,MAAM,IAAIA,MAAM,CAAC1E,IAAI,KAAK,EAAE,IAAI0E,MAAM,CAAC0oK,UAAU,KAAK1nJ,SAAS;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA,SAASwwJ,qBAAqBA,CAAC5qI,KAAK,EAAE;EAClC,MAAMvmD,MAAM,GAAG,EAAE;EACjB;EACA,MAAM6xL,WAAW,GAAG,IAAIjnJ,GAAG,CAAC,CAAC;EAC7B,KAAK,MAAMvC,IAAI,IAAIke,KAAK,EAAE;IACtB,IAAI,CAACqrI,kBAAkB,CAACvpJ,IAAI,CAAC,EAAE;MAC3BroC,MAAM,CAACd,IAAI,CAACmpC,IAAI,CAAC;MACjB;IACJ;IACA,MAAMypJ,sBAAsB,GAAG9xL,MAAM,CAACgwC,IAAI,CAAC+hJ,UAAU,IAAI1pJ,IAAI,CAACliC,KAAK,CAAC8vK,WAAW,KAAK8b,UAAU,CAAC5rL,KAAK,CAAC8vK,WAAW,CAAC;IACjH,IAAI6b,sBAAsB,KAAKnxJ,SAAS,EAAE;MACtCmxJ,sBAAsB,CAAC5yH,QAAQ,CAAChgE,IAAI,CAAC,GAAGmpC,IAAI,CAAC62B,QAAQ,CAAC;MACtD2yH,WAAW,CAAC3kJ,GAAG,CAAC4kJ,sBAAsB,CAAC;IAC3C,CAAC,MACI;MACD9xL,MAAM,CAACd,IAAI,CAACmpC,IAAI,CAAC;IACrB;EACJ;EACA;EACA;EACA;EACA;EACA,KAAK,MAAM2pJ,UAAU,IAAIH,WAAW,EAAE;IAClC,MAAMX,cAAc,GAAGC,qBAAqB,CAACa,UAAU,CAAC9yH,QAAQ,CAAC;IACjEl/D,MAAM,CAACd,IAAI,CAAC,IAAIg+K,QAAQ,CAAC8U,UAAU,CAAC7rL,KAAK,EAAE+qL,cAAc,CAAC,CAAC;EAC/D;EACA,OAAOlxL,MAAM,CAAC4b,MAAM,CAAC1Q,CAAC,IAAI,CAAC2mL,WAAW,CAAC5mJ,GAAG,CAAC//B,CAAC,CAAC,CAAC;AAClD;AACA,SAASkmL,yBAAyBA,CAAC7qI,KAAK,EAAE;EACtC,MAAM0rI,KAAK,GAAG,CAAC,CAAC;EAChB1rI,KAAK,CAACxzC,OAAO,CAAC7H,CAAC,IAAI;IACf,MAAMgnL,uBAAuB,GAAGD,KAAK,CAAC/mL,CAAC,CAAC/E,KAAK,CAACi3K,MAAM,CAAC;IACrD,IAAI8U,uBAAuB,EAAE;MACzB,MAAMlvI,CAAC,GAAGkvI,uBAAuB,CAACx4J,GAAG,CAAC6D,GAAG,CAACiQ,CAAC,IAAIA,CAAC,CAACtrC,QAAQ,CAAC,CAAC,CAAC,CAAC9C,IAAI,CAAC,GAAG,CAAC;MACtE,MAAMmH,CAAC,GAAG2E,CAAC,CAAC/E,KAAK,CAACuzB,GAAG,CAAC6D,GAAG,CAACiQ,CAAC,IAAIA,CAAC,CAACtrC,QAAQ,CAAC,CAAC,CAAC,CAAC9C,IAAI,CAAC,GAAG,CAAC;MACtD,MAAM,IAAIK,KAAK,CAAC,mDAAmDujD,CAAC,UAAUz8C,CAAC,IAAI,CAAC;IACxF;IACA0rL,KAAK,CAAC/mL,CAAC,CAAC/E,KAAK,CAACi3K,MAAM,CAAC,GAAGlyK,CAAC,CAAC/E,KAAK;EACnC,CAAC,CAAC;AACN;AACA,SAASqrL,qBAAqBA,CAACza,YAAY,EAAE;EACzC,IAAIvpI,CAAC,GAAGupI,YAAY;EACpB,OAAOvpI,CAAC,CAAC27I,cAAc,EAAE;IACrB37I,CAAC,GAAGA,CAAC,CAAC27I,cAAc;EACxB;EACA,OAAO37I,CAAC;AACZ;AACA,SAASikJ,iBAAiBA,CAAC1a,YAAY,EAAE;EACrC,IAAIvpI,CAAC,GAAGupI,YAAY;EACpB,IAAIv0K,GAAG,GAAIgrC,CAAC,CAAC47I,kBAAkB,GAAG57I,CAAC,CAAC47I,kBAAkB,GAAG,CAAE;EAC3D,OAAO57I,CAAC,CAAC27I,cAAc,EAAE;IACrB37I,CAAC,GAAGA,CAAC,CAAC27I,cAAc;IACpB3mL,GAAG,IAAKgrC,CAAC,CAAC47I,kBAAkB,GAAG57I,CAAC,CAAC47I,kBAAkB,GAAG,CAAE;EAC5D;EACA,OAAO5mL,GAAG,GAAG,CAAC;AAClB;AACA,SAAS+uL,OAAOA,CAAC1b,KAAK,EAAE;EACpB,OAAOA,KAAK,CAAChyK,IAAI,IAAI,CAAC,CAAC;AAC3B;AACA,SAAS6tL,UAAUA,CAAC7b,KAAK,EAAE;EACvB,OAAOA,KAAK,CAAClyK,OAAO,IAAI,CAAC,CAAC;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASgtL,SAASA,CAACF,iBAAiB,EAAE9wK,MAAM,EAAEwyK,UAAU,EAAE1T,yBAAyB,EAAEuK,sBAAsB,EAAE;EACzG,OAAOxU,yDAAQ,CAACnpK,CAAC,IAAImlL,WAAW,CAACC,iBAAiB,EAAE9wK,MAAM,EAAEtU,CAAC,CAAC6pK,iBAAiB,EAAEid,UAAU,CAAC9mL,CAAC,CAAC6pK,iBAAiB,CAAC,EAAEuJ,yBAAyB,EAAEuK,sBAAsB,CAAC,CAC/JvjL,IAAI,CAAC83B,mDAAG,CAAC2xJ,cAAc,IAAKltL,MAAM,CAACurB,MAAM,CAACvrB,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAEliB,CAAC,CAAC,EAAE;IAAE6jL;EAAe,CAAC,CAAE,CAAC,CAAC,CAAC;AAChG;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASkD,WAAWA,CAAC3T,yBAAyB,EAAE0L,cAAc,EAAE;EAC5D,OAAO3V,yDAAQ,CAACnpK,CAAC,IAAI;IACjB,MAAM;MAAE6jL,cAAc;MAAEZ,MAAM,EAAE;QAAEK;MAAkB;IAAE,CAAC,GAAGtjL,CAAC;IAC3D,IAAI,CAACsjL,iBAAiB,CAAC7vL,MAAM,EAAE;MAC3B,OAAOsyD,wCAAE,CAAC/lD,CAAC,CAAC;IAChB;IACA,IAAIgnL,yBAAyB,GAAG,CAAC;IACjC,OAAO16J,0CAAI,CAACg3J,iBAAiB,CAAC,CACzBlpL,IAAI,CAACumH,0DAAS,CAACwjE,KAAK,IAAI8C,UAAU,CAAC9C,KAAK,CAAC3Z,KAAK,EAAEqZ,cAAc,EAAEzQ,yBAAyB,EAAE0L,cAAc,CAAC,CAAC,EAAE73H,oDAAG,CAAC,MAAM+/H,yBAAyB,EAAE,CAAC,EAAE5d,yDAAQ,CAAC,CAAC,CAAC,EAAED,yDAAQ,CAACntI,CAAC,IAAIgrJ,yBAAyB,KAAK1D,iBAAiB,CAAC7vL,MAAM,GAAGsyD,wCAAE,CAAC/lD,CAAC,CAAC,GAAG2rD,wCAAK,CAAC,CAAC;EACjQ,CAAC,CAAC;AACN;AACA,SAASs7H,UAAUA,CAACxC,SAAS,EAAER,SAAS,EAAE7Q,yBAAyB,EAAE0L,cAAc,EAAE;EACjF,MAAMxmL,OAAO,GAAGmsL,SAAS,CAAC5Q,QAAQ;EAClC,OAAOqT,WAAW,CAAC5uL,OAAO,EAAEmsL,SAAS,EAAER,SAAS,EAAEnF,cAAc,CAAC,CAC5D1kL,IAAI,CAAC83B,mDAAG,CAAEi1J,YAAY,IAAK;IAC5B1C,SAAS,CAACjR,aAAa,GAAG2T,YAAY;IACtC1C,SAAS,CAACjsL,IAAI,GAAG7B,MAAM,CAACurB,MAAM,CAACvrB,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAEuiK,SAAS,CAACjsL,IAAI,CAAC,EAAE26K,0BAA0B,CAACsR,SAAS,EAAErR,yBAAyB,CAAC,CAAC96K,OAAO,CAAC;IAC3I,OAAO,IAAI;EACf,CAAC,CAAC,CAAC;AACP;AACA,SAAS4uL,WAAWA,CAAC5uL,OAAO,EAAEmsL,SAAS,EAAER,SAAS,EAAEnF,cAAc,EAAE;EAChE,MAAMvyJ,IAAI,GAAG66J,WAAW,CAAC9uL,OAAO,CAAC;EACjC,IAAIi0B,IAAI,CAAC94B,MAAM,KAAK,CAAC,EAAE;IACnB,OAAOsyD,wCAAE,CAAC,CAAC,CAAC,CAAC;EACjB;EACA,MAAMvtD,IAAI,GAAG,CAAC,CAAC;EACf,OAAO8zB,0CAAI,CAACC,IAAI,CAAC,CAACnyB,IAAI,CAAC+uK,yDAAQ,CAACtuK,GAAG,IAAIwsL,WAAW,CAAC/uL,OAAO,CAACuC,GAAG,CAAC,EAAE4pL,SAAS,EAAER,SAAS,EAAEnF,cAAc,CAAC,CACjG1kL,IAAI,CAAC6sD,oDAAG,CAAEnsD,KAAK,IAAK;IACrBtC,IAAI,CAACqC,GAAG,CAAC,GAAGC,KAAK;EACrB,CAAC,CAAC,CAAC,CAAC,EAAEsuK,yDAAQ,CAAC,CAAC,CAAC,EAAED,yDAAQ,CAAC,MAAM;IAC9B;IACA;IACA,IAAIie,WAAW,CAAC5uL,IAAI,CAAC,CAAC/E,MAAM,KAAK84B,IAAI,CAAC94B,MAAM,EAAE;MAC1C,OAAOsyD,wCAAE,CAACvtD,IAAI,CAAC;IACnB;IACA,OAAOmzD,wCAAK;EAChB,CAAC,CAAC,CAAC;AACP;AACA,SAASy7H,WAAWA,CAACx2K,GAAG,EAAE;EACtB,OAAO,CAAC,GAAGja,MAAM,CAAC41B,IAAI,CAAC3b,GAAG,CAAC,EAAE,GAAGja,MAAM,CAAC2wL,qBAAqB,CAAC12K,GAAG,CAAC,CAAC;AACtE;AACA,SAASy2K,WAAWA,CAAC9F,cAAc,EAAEkD,SAAS,EAAER,SAAS,EAAEnF,cAAc,EAAE;EACvE,MAAM/1F,QAAQ,GAAGshC,QAAQ,CAACk3D,cAAc,EAAEkD,SAAS,EAAE3F,cAAc,CAAC;EACpE,OAAO/1F,QAAQ,CAACzwF,OAAO,GAAGm0K,kBAAkB,CAAC1jF,QAAQ,CAACzwF,OAAO,CAACmsL,SAAS,EAAER,SAAS,CAAC,CAAC,GAChFxX,kBAAkB,CAAC1jF,QAAQ,CAAC07F,SAAS,EAAER,SAAS,CAAC,CAAC;AAC1D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASsD,SAASA,CAACltL,IAAI,EAAE;EACrB,OAAO4xF,yDAAS,CAAC/mD,CAAC,IAAI;IAClB,MAAMsiJ,UAAU,GAAGntL,IAAI,CAAC6qC,CAAC,CAAC;IAC1B,IAAIsiJ,UAAU,EAAE;MACZ,OAAOl7J,0CAAI,CAACk7J,UAAU,CAAC,CAACptL,IAAI,CAAC83B,mDAAG,CAAC,MAAMgT,CAAC,CAAC,CAAC;IAC9C;IACA,OAAO6gB,wCAAE,CAAC7gB,CAAC,CAAC;EAChB,CAAC,CAAC;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMuiJ,kBAAkB,CAAC;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,sBAAsB,CAAC;EACzB;AACJ;AACA;AACA;EACItO,YAAYA,CAAC5O,KAAK,EAAE;IAChB,OAAO,KAAK;EAChB;EACA;AACJ;AACA;EACI5G,KAAKA,CAAC4G,KAAK,EAAEmd,YAAY,EAAE,CAAE;EAC7B;EACAjT,YAAYA,CAAClK,KAAK,EAAE;IAChB,OAAO,KAAK;EAChB;EACA;EACAoK,QAAQA,CAACpK,KAAK,EAAE;IACZ,OAAO,IAAI;EACf;EACA;AACJ;AACA;AACA;AACA;EACIgK,gBAAgBA,CAAC0E,MAAM,EAAE3F,IAAI,EAAE;IAC3B,OAAO2F,MAAM,CAACtO,WAAW,KAAK2I,IAAI,CAAC3I,WAAW;EAClD;AACJ;AACA,MAAMgd,yBAAyB,SAASF,sBAAsB,CAAC;;AAG/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,MAAM,GAAG,IAAI3iI,yDAAc,CAAC,QAAQ,CAAC;AAC3C,MAAM4iI,kBAAkB,CAAC;EACrB1uL,WAAWA,CAACyuF,QAAQ,EAAEkgG,QAAQ,EAAEC,mBAAmB,EAAEC,iBAAiB,EAAE;IACpE,IAAI,CAACpgG,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACkgG,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,mBAAmB,GAAGA,mBAAmB;IAC9C,IAAI,CAACC,iBAAiB,GAAGA,iBAAiB;EAC9C;EACA15K,IAAIA,CAAC6kG,cAAc,EAAEo3D,KAAK,EAAE;IACxB,IAAIA,KAAK,CAAC0d,QAAQ,EAAE;MAChB,OAAO1d,KAAK,CAAC0d,QAAQ;IACzB;IACA,IAAI,IAAI,CAACF,mBAAmB,EAAE;MAC1B,IAAI,CAACA,mBAAmB,CAACxd,KAAK,CAAC;IACnC;IACA,MAAM2d,cAAc,GAAG,IAAI,CAACC,iBAAiB,CAAC5d,KAAK,CAACuS,YAAY,CAAC;IACjE,MAAMsL,UAAU,GAAGF,cAAc,CAAC/tL,IAAI,CAAC83B,mDAAG,CAAEmG,OAAO,IAAK;MACpD,IAAI,IAAI,CAAC4vJ,iBAAiB,EAAE;QACxB,IAAI,CAACA,iBAAiB,CAACzd,KAAK,CAAC;MACjC;MACA,MAAMuP,MAAM,GAAG1hJ,OAAO,CAACpoB,MAAM,CAACmjG,cAAc,CAAC;MAC7C;MACA;MACA;MACA;MACA,OAAO,IAAI8mE,kBAAkB,CAAC5N,OAAO,CAACyN,MAAM,CAAClyF,QAAQ,CAACpxE,GAAG,CAACoxK,MAAM,EAAEvyJ,SAAS,EAAE+yI,2DAAgB,GAAGA,+DAAoB,CAAC,CAAC,CACjHn2I,GAAG,CAACgrJ,iBAAiB,CAAC,EAAEnD,MAAM,CAAC;IACxC,CAAC,CAAC,EAAE9Q,2DAAU,CAAEtrK,GAAG,IAAK;MACpB6sK,KAAK,CAAC0d,QAAQ,GAAG5yJ,SAAS;MAC1B,MAAM33B,GAAG;IACb,CAAC,CAAC,CAAC;IACH;IACA6sK,KAAK,CAAC0d,QAAQ,GAAG,IAAInf,wDAAqB,CAACsf,UAAU,EAAE,MAAM,IAAIziI,0CAAO,CAAC,CAAC,CAAC,CACtExrD,IAAI,CAACivK,yDAAQ,CAAC,CAAC,CAAC;IACrB,OAAOmB,KAAK,CAAC0d,QAAQ;EACzB;EACAE,iBAAiBA,CAACrL,YAAY,EAAE;IAC5B,OAAOtQ,kBAAkB,CAACsQ,YAAY,CAAC,CAAC,CAAC,CAAC3iL,IAAI,CAAC+uK,yDAAQ,CAAEnpK,CAAC,IAAK;MAC3D,IAAIA,CAAC,YAAYsoK,0DAAe,EAAE;QAC9B,OAAOviH,wCAAE,CAAC/lD,CAAC,CAAC;MAChB,CAAC,MACI;QACD,OAAOssB,0CAAI,CAAC,IAAI,CAACy7J,QAAQ,CAACO,kBAAkB,CAACtoL,CAAC,CAAC,CAAC;MACpD;IACJ,CAAC,CAAC,CAAC;EACP;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMuoL,mBAAmB,CAAC;AAE1B;AACA;AACA;AACA,MAAMC,0BAA0B,CAAC;EAC7BC,gBAAgBA,CAACp6J,GAAG,EAAE;IAClB,OAAO,IAAI;EACf;EACAq6J,OAAOA,CAACr6J,GAAG,EAAE;IACT,OAAOA,GAAG;EACd;EACA+6C,KAAKA,CAACu/G,UAAU,EAAEC,QAAQ,EAAE;IACxB,OAAOD,UAAU;EACrB;AACJ;AAEA,SAASE,mBAAmBA,CAAC7vL,KAAK,EAAE;EAChC,MAAMA,KAAK;AACf;AACA,SAAS8vL,+BAA+BA,CAAC9vL,KAAK,EAAEgmL,aAAa,EAAE3wJ,GAAG,EAAE;EAChE,OAAO2wJ,aAAa,CAACv0J,KAAK,CAAC,GAAG,CAAC;AACnC;AACA;AACA;AACA;AACA,SAASs+J,iBAAiBA,CAACpe,QAAQ,EAAEqe,SAAS,EAAE;EAC5C,OAAOjjI,wCAAE,CAAC,IAAI,CAAC;AACnB;AACA;AACA;AACA;AACA;AACA,MAAMkjI,iBAAiB,GAAG;EACtB3b,KAAK,EAAE,OAAO;EACdE,QAAQ,EAAE,SAAS;EACnBD,YAAY,EAAE,SAAS;EACvBjwE,WAAW,EAAE;AACjB,CAAC;AACD;AACA;AACA;AACA;AACA,MAAM4rF,kBAAkB,GAAG;EACvB5b,KAAK,EAAE,QAAQ;EACfE,QAAQ,EAAE,SAAS;EACnBD,YAAY,EAAE,SAAS;EACvBjwE,WAAW,EAAE;AACjB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM6rF,MAAM,CAAC;EACT;AACJ;AACA;EACI;EACA/vL,WAAWA,CAACgsL,iBAAiB,EAAEpG,aAAa,EAAEnH,YAAY,EAAE7hK,QAAQ,EAAE6xE,QAAQ,EAAEkgG,QAAQ,EAAEzzK,MAAM,EAAE;IAC9F,IAAI,CAAC8wK,iBAAiB,GAAGA,iBAAiB;IAC1C,IAAI,CAACpG,aAAa,GAAGA,aAAa;IAClC,IAAI,CAACnH,YAAY,GAAGA,YAAY;IAChC,IAAI,CAAC7hK,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAAC1B,MAAM,GAAGA,MAAM;IACpB,IAAI,CAAC80K,wBAAwB,GAAG,IAAI;IACpC,IAAI,CAACC,iBAAiB,GAAG,IAAI;IAC7B,IAAI,CAACC,QAAQ,GAAG,KAAK;IACrB,IAAI,CAACC,YAAY,GAAG,CAAC;IACrB;AACR;AACA;AACA;AACA;AACA;AACA;AACA;IACQ,IAAI,CAACC,aAAa,GAAG,CAAC;IACtB,IAAI,CAACC,eAAe,GAAG,KAAK;IAC5B;AACR;AACA;IACQ,IAAI,CAACpkB,MAAM,GAAG,IAAIz/G,0CAAO,CAAC,CAAC;IAC3B;AACR;AACA;IACQ,IAAI,CAACg6G,YAAY,GAAGipB,mBAAmB;IACvC;AACR;AACA;AACA;AACA;AACA;IACQ,IAAI,CAACa,wBAAwB,GAAGZ,+BAA+B;IAC/D;AACR;AACA;AACA;IACQ,IAAI,CAACa,SAAS,GAAG,KAAK;IACtB,IAAI,CAACC,gBAAgB,GAAG,CAAC,CAAC;IAC1B;AACR;AACA;AACA;AACA;AACA;AACA;IACQ,IAAI,CAACC,KAAK,GAAG;MAAEC,mBAAmB,EAAEf,iBAAiB;MAAEgB,kBAAkB,EAAEhB;IAAkB,CAAC;IAC9F;AACR;AACA;AACA;IACQ,IAAI,CAACiB,mBAAmB,GAAG,IAAIxB,0BAA0B,CAAC,CAAC;IAC3D;AACR;AACA;IACQ,IAAI,CAACnU,kBAAkB,GAAG,IAAIuT,yBAAyB,CAAC,CAAC;IACzD;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACQ,IAAI,CAACqC,mBAAmB,GAAG,QAAQ;IACnC;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACQ,IAAI,CAAC7W,yBAAyB,GAAG,WAAW;IAC5C;AACR;AACA;AACA;AACA;AACA;AACA;IACQ,IAAI,CAAC8W,iBAAiB,GAAG,UAAU;IACnC;AACR;AACA;AACA;IACQ,IAAI,CAACvM,sBAAsB,GAAG,WAAW;IACzC;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACQ,IAAI,CAACwM,4BAA4B,GAAG,SAAS;IAC7C,MAAMC,WAAW,GAAIp6E,CAAC,IAAK,IAAI,CAACq6E,YAAY,CAAC,IAAI9f,oBAAoB,CAACv6D,CAAC,CAAC,CAAC;IACzE,MAAMs6E,SAAS,GAAIt6E,CAAC,IAAK,IAAI,CAACq6E,YAAY,CAAC,IAAI5f,kBAAkB,CAACz6D,CAAC,CAAC,CAAC;IACrE,IAAI,CAACqb,QAAQ,GAAGxjC,QAAQ,CAACpxE,GAAG,CAAC8iF,sDAAW,CAAC;IACzC,IAAI,CAACl7D,OAAO,GAAGwpD,QAAQ,CAACpxE,GAAG,CAAC6/I,sDAAQ,CAAC;IACrC,MAAM59F,MAAM,GAAGmvB,QAAQ,CAACpxE,GAAG,CAAC89C,iDAAM,CAAC;IACnC,IAAI,CAACk1H,eAAe,GAAG/wH,MAAM,YAAYnE,iDAAM,IAAIA,iEAAsB,CAAC,CAAC;IAC3E,IAAI,CAACi2H,WAAW,CAACl2K,MAAM,CAAC;IACxB,IAAI,CAACm2K,cAAc,GAAG/d,kBAAkB,CAAC,CAAC;IAC1C,IAAI,CAACge,UAAU,GAAG,IAAI,CAACD,cAAc;IACrC,IAAI,CAACE,cAAc,GAAG,IAAI,CAACF,cAAc;IACzC,IAAI,CAAC1L,YAAY,GAAG,IAAI+I,kBAAkB,CAACjgG,QAAQ,EAAEkgG,QAAQ,EAAEqC,WAAW,EAAEE,SAAS,CAAC;IACtF,IAAI,CAACM,WAAW,GAAG1Y,gBAAgB,CAAC,IAAI,CAACuY,cAAc,EAAE,IAAI,CAACrF,iBAAiB,CAAC;IAChF,IAAI,CAAClkJ,WAAW,GAAG,IAAI4kB,iDAAe,CAAC;MACnCv6C,EAAE,EAAE,CAAC;MACLs/K,YAAY,EAAE,CAAC;MACfJ,cAAc,EAAE,IAAI,CAACA,cAAc;MACnCK,aAAa,EAAE,IAAI,CAACL,cAAc;MAClC9H,YAAY,EAAE,IAAI,CAACqH,mBAAmB,CAACtB,OAAO,CAAC,IAAI,CAAC+B,cAAc,CAAC;MACnE5gB,iBAAiB,EAAE,IAAI,CAACmgB,mBAAmB,CAACtB,OAAO,CAAC,IAAI,CAAC+B,cAAc,CAAC;MACxEM,MAAM,EAAE,IAAI,CAACN,cAAc;MAC3BO,MAAM,EAAE,CAAC,CAAC;MACV1yL,OAAO,EAAE,IAAI;MACbK,MAAM,EAAE,IAAI;MACZN,OAAO,EAAE3G,OAAO,CAAC4G,OAAO,CAAC,IAAI,CAAC;MAC9B0tE,MAAM,EAAE,YAAY;MACpB2jG,aAAa,EAAE,IAAI;MACnB5mH,eAAe,EAAE,IAAI,CAAC6nI,WAAW,CAACjgB,QAAQ;MAC1CkZ,cAAc,EAAE,IAAI;MACpB5L,kBAAkB,EAAE,IAAI,CAAC2S,WAAW;MACpC5S,iBAAiB,EAAE,IAAI;MACvBiL,MAAM,EAAE;QAAEK,iBAAiB,EAAE,EAAE;QAAED,mBAAmB,EAAE;MAAG,CAAC;MAC1DS,YAAY,EAAE;IAClB,CAAC,CAAC;IACF,IAAI,CAACmH,WAAW,GAAG,IAAI,CAACC,gBAAgB,CAAC,IAAI,CAAChqJ,WAAW,CAAC;IAC1D,IAAI,CAACiqJ,kBAAkB,CAAC,CAAC;EAC7B;EACA;AACJ;AACA;AACA;AACA;EACI,IAAIC,aAAaA,CAAA,EAAG;IAChB,IAAIxvK,EAAE;IACN,OAAO,CAACA,EAAE,GAAG,IAAI,CAAC5F,QAAQ,CAACgmF,QAAQ,CAAC,CAAC,MAAM,IAAI,IAAIpgF,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,EAAE,CAACyvK,aAAa;EAChG;EACAH,gBAAgBA,CAAChqJ,WAAW,EAAE;IAC1B,MAAMoqJ,aAAa,GAAG,IAAI,CAACjmB,MAAM;IACjC,OAAOnkI,WAAW,CAAC9mC,IAAI,CAACmW,uDAAM,CAACvQ,CAAC,IAAIA,CAAC,CAACuL,EAAE,KAAK,CAAC,CAAC;IAC/C;IACA2mB,mDAAG,CAAClyB,CAAC,IAAKrJ,MAAM,CAACurB,MAAM,CAACvrB,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAEliB,CAAC,CAAC,EAAE;MAAE2iL,YAAY,EAAE,IAAI,CAACqH,mBAAmB,CAACtB,OAAO,CAAC1oL,CAAC,CAAC+qL,MAAM;IAAE,CAAC,CAAE,CAAC;IAC7G;IACA9+F,yDAAS,CAACjsF,CAAC,IAAI;MACX,IAAIurL,SAAS,GAAG,KAAK;MACrB,IAAIC,OAAO,GAAG,KAAK;MACnB,OAAOzlI,wCAAE,CAAC/lD,CAAC,CAAC,CAAC5F,IAAI;MACjB;MACA6sD,oDAAG,CAACjnD,CAAC,IAAI;QACL,IAAI,CAACqpL,iBAAiB,GAAG;UACrB99K,EAAE,EAAEvL,CAAC,CAACuL,EAAE;UACRkgL,UAAU,EAAEzrL,CAAC,CAAC8qL,aAAa;UAC3BnI,YAAY,EAAE3iL,CAAC,CAAC2iL,YAAY;UAC5BnuI,OAAO,EAAEx0C,CAAC,CAACgmE,MAAM;UACjBglH,MAAM,EAAEhrL,CAAC,CAACgrL,MAAM;UAChBU,kBAAkB,EAAE,IAAI,CAACtC,wBAAwB,GAAGzyL,MAAM,CAACurB,MAAM,CAACvrB,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAACknK,wBAAwB,CAAC,EAAE;YAAEsC,kBAAkB,EAAE;UAAK,CAAC,CAAC,GAC7I;QACR,CAAC;MACL,CAAC,CAAC,EAAEz/F,yDAAS,CAACjsF,CAAC,IAAI;QACf,MAAM2qL,cAAc,GAAG,IAAI,CAACA,cAAc,CAAC9zL,QAAQ,CAAC,CAAC;QACrD,MAAM80L,aAAa,GAAG,CAAC,IAAI,CAAChC,SAAS,IACjC3pL,CAAC,CAAC2iL,YAAY,CAAC9rL,QAAQ,CAAC,CAAC,KAAK8zL,cAAc;QAC5C;QACA;QACA;QACA;QACAA,cAAc,KAAK,IAAI,CAACF,cAAc,CAAC5zL,QAAQ,CAAC,CAAC;QACrD,MAAM+0L,iBAAiB,GAAG,CAAC,IAAI,CAAC3B,mBAAmB,KAAK,QAAQ,GAAG,IAAI,GAAG0B,aAAa,KACnF,IAAI,CAAC3B,mBAAmB,CAACvB,gBAAgB,CAACzoL,CAAC,CAAC+qL,MAAM,CAAC;QACvD,IAAIa,iBAAiB,EAAE;UACnB;UACA;UACA,IAAIC,4BAA4B,CAAC7rL,CAAC,CAACgmE,MAAM,CAAC,EAAE;YACxC,IAAI,CAAC2kH,cAAc,GAAG3qL,CAAC,CAAC2iL,YAAY;UACxC;UACA,OAAO58H,wCAAE,CAAC/lD,CAAC,CAAC,CAAC5F,IAAI;UACjB;UACA6xF,yDAAS,CAACjsF,CAAC,IAAI;YACX,MAAMshC,UAAU,GAAG,IAAI,CAACJ,WAAW,CAAC4qJ,QAAQ,CAAC,CAAC;YAC9CR,aAAa,CAACjxL,IAAI,CAAC,IAAIovK,eAAe,CAACzpK,CAAC,CAACuL,EAAE,EAAE,IAAI,CAACwgL,YAAY,CAAC/rL,CAAC,CAAC2iL,YAAY,CAAC,EAAE3iL,CAAC,CAACgmE,MAAM,EAAEhmE,CAAC,CAAC2pK,aAAa,CAAC,CAAC;YAC3G,IAAIroI,UAAU,KAAK,IAAI,CAACJ,WAAW,CAAC4qJ,QAAQ,CAAC,CAAC,EAAE;cAC5C,OAAOngI,wCAAK;YAChB;YACA;YACA;YACA,OAAOj6D,OAAO,CAAC4G,OAAO,CAAC0H,CAAC,CAAC;UAC7B,CAAC,CAAC;UACF;UACA0iL,cAAc,CAAC,IAAI,CAACr3D,QAAQ,CAACxjC,QAAQ,EAAE,IAAI,CAACk3F,YAAY,EAAE,IAAI,CAACC,aAAa,EAAE,IAAI,CAAC1qK,MAAM,CAAC;UAC1F;UACA;UACA2yC,oDAAG,CAACjnD,CAAC,IAAI;YACL,IAAI,CAACqpL,iBAAiB,GAAG1yL,MAAM,CAACurB,MAAM,CAACvrB,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAACmnK,iBAAiB,CAAC,EAAE;cAAE2C,QAAQ,EAAEhsL,CAAC,CAAC6pK;YAAkB,CAAC,CAAC;UACxH,CAAC,CAAC;UACF;UACAyb,SAAS,CAAC,IAAI,CAACF,iBAAiB,EAAE,IAAI,CAAC9wK,MAAM,EAAG+Z,GAAG,IAAK,IAAI,CAAC09J,YAAY,CAAC19J,GAAG,CAAC,EAAE,IAAI,CAAC+kJ,yBAAyB,EAAE,IAAI,CAACuK,sBAAsB,CAAC;UAC5I;UACA12H,oDAAG,CAACjnD,CAAC,IAAI;YACL,IAAI,IAAI,CAACkqL,iBAAiB,KAAK,OAAO,EAAE;cACpC,IAAI,CAAClqL,CAAC,CAACgrL,MAAM,CAACiB,kBAAkB,EAAE;gBAC9B,MAAMlB,MAAM,GAAG,IAAI,CAACf,mBAAmB,CAAC5gH,KAAK,CAACppE,CAAC,CAAC6pK,iBAAiB,EAAE7pK,CAAC,CAAC+qL,MAAM,CAAC;gBAC5E,IAAI,CAACmB,aAAa,CAACnB,MAAM,EAAE/qL,CAAC,CAAC;cACjC;cACA,IAAI,CAAC2qL,cAAc,GAAG3qL,CAAC,CAAC6pK,iBAAiB;YAC7C;YACA;YACA,MAAMsiB,gBAAgB,GAAG,IAAIliB,gBAAgB,CAACjqK,CAAC,CAACuL,EAAE,EAAE,IAAI,CAACwgL,YAAY,CAAC/rL,CAAC,CAAC2iL,YAAY,CAAC,EAAE,IAAI,CAACoJ,YAAY,CAAC/rL,CAAC,CAAC6pK,iBAAiB,CAAC,EAAE7pK,CAAC,CAAC6jL,cAAc,CAAC;YAChJyH,aAAa,CAACjxL,IAAI,CAAC8xL,gBAAgB,CAAC;UACxC,CAAC,CAAC,CAAC;QACP,CAAC,MACI;UACD,MAAMC,kBAAkB,GAAGT,aAAa,IAAI,IAAI,CAACjB,UAAU,IACvD,IAAI,CAACV,mBAAmB,CAACvB,gBAAgB,CAAC,IAAI,CAACiC,UAAU,CAAC;UAC9D;AACpB;AACA;UACoB,IAAI0B,kBAAkB,EAAE;YACpB,MAAM;cAAE7gL,EAAE;cAAEo3K,YAAY;cAAE38G,MAAM;cAAE2jG,aAAa;cAAEqhB;YAAO,CAAC,GAAGhrL,CAAC;YAC7D,MAAMqsL,QAAQ,GAAG,IAAI5iB,eAAe,CAACl+J,EAAE,EAAE,IAAI,CAACwgL,YAAY,CAACpJ,YAAY,CAAC,EAAE38G,MAAM,EAAE2jG,aAAa,CAAC;YAChG2hB,aAAa,CAACjxL,IAAI,CAACgyL,QAAQ,CAAC;YAC5B,MAAMxI,cAAc,GAAG3R,gBAAgB,CAACyQ,YAAY,EAAE,IAAI,CAACyC,iBAAiB,CAAC,CAACza,QAAQ;YACtF,OAAO5kH,wCAAE,CAACpvD,MAAM,CAACurB,MAAM,CAACvrB,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAEliB,CAAC,CAAC,EAAE;cAAE6jL,cAAc;cAAEha,iBAAiB,EAAE8Y,YAAY;cAAEqI,MAAM,EAAEr0L,MAAM,CAACurB,MAAM,CAACvrB,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAE8oK,MAAM,CAAC,EAAE;gBAAEiB,kBAAkB,EAAE,KAAK;gBAAEK,UAAU,EAAE;cAAM,CAAC;YAAE,CAAC,CAAC,CAAC;UAC3M,CAAC,MACI;YACD;AACxB;AACA;AACA;AACA;YACwB,IAAI,CAAC5B,UAAU,GAAG1qL,CAAC,CAAC+qL,MAAM;YAC1B/qL,CAAC,CAAC1H,OAAO,CAAC,IAAI,CAAC;YACf,OAAOqzD,wCAAK;UAChB;QACJ;MACJ,CAAC,CAAC;MACF;MACA47H,SAAS,CAACvnL,CAAC,IAAI;QACX,MAAM;UAAE6jL,cAAc;UAAEt4K,EAAE,EAAEg+K,YAAY;UAAE5G,YAAY,EAAE4J,cAAc;UAAExB,MAAM,EAAEL,UAAU;UAAEM,MAAM,EAAE;YAAEiB,kBAAkB;YAAEK;UAAW;QAAE,CAAC,GAAGtsL,CAAC;QAC5I,OAAO,IAAI,CAAC6pL,KAAK,CAACC,mBAAmB,CAACjG,cAAc,EAAE;UAClD0F,YAAY;UACZgD,cAAc;UACd7B,UAAU;UACVuB,kBAAkB,EAAE,CAAC,CAACA,kBAAkB;UACxCK,UAAU,EAAE,CAAC,CAACA;QAClB,CAAC,CAAC;MACN,CAAC,CAAC;MACF;MACArlI,oDAAG,CAACjnD,CAAC,IAAI;QACL,MAAMwsL,WAAW,GAAG,IAAItiB,gBAAgB,CAAClqK,CAAC,CAACuL,EAAE,EAAE,IAAI,CAACwgL,YAAY,CAAC/rL,CAAC,CAAC2iL,YAAY,CAAC,EAAE,IAAI,CAACoJ,YAAY,CAAC/rL,CAAC,CAAC6pK,iBAAiB,CAAC,EAAE7pK,CAAC,CAAC6jL,cAAc,CAAC;QAC3I,IAAI,CAACwG,YAAY,CAACmC,WAAW,CAAC;MAClC,CAAC,CAAC,EAAEt6J,mDAAG,CAAClyB,CAAC,IAAKrJ,MAAM,CAACurB,MAAM,CAACvrB,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAEliB,CAAC,CAAC,EAAE;QAAEijL,MAAM,EAAEH,iBAAiB,CAAC9iL,CAAC,CAAC6jL,cAAc,EAAE7jL,CAAC,CAAC+iD,eAAe,EAAE,IAAI,CAAC80H,YAAY;MAAE,CAAC,CAAE,CAAC,EAAE+L,WAAW,CAAC,IAAI,CAACv4D,QAAQ,CAACxjC,QAAQ,EAAG5pF,GAAG,IAAK,IAAI,CAACosL,YAAY,CAACpsL,GAAG,CAAC,CAAC,EAAEgpD,oDAAG,CAACjnD,CAAC,IAAI;QACvN,IAAIs6K,SAAS,CAACt6K,CAAC,CAAC8jL,YAAY,CAAC,EAAE;UAC3B,MAAM9qL,KAAK,GAAGsyK,wBAAwB,CAAC,mBAAmB,IAAI,CAACygB,YAAY,CAAC/rL,CAAC,CAAC8jL,YAAY,CAAC,GAAG,CAAC;UAC/F9qL,KAAK,CAACq1B,GAAG,GAAGruB,CAAC,CAAC8jL,YAAY;UAC1B,MAAM9qL,KAAK;QACf;QACA,MAAMyzL,SAAS,GAAG,IAAItiB,cAAc,CAACnqK,CAAC,CAACuL,EAAE,EAAE,IAAI,CAACwgL,YAAY,CAAC/rL,CAAC,CAAC2iL,YAAY,CAAC,EAAE,IAAI,CAACoJ,YAAY,CAAC/rL,CAAC,CAAC6pK,iBAAiB,CAAC,EAAE7pK,CAAC,CAAC6jL,cAAc,EAAE,CAAC,CAAC7jL,CAAC,CAAC8jL,YAAY,CAAC;QACzJ,IAAI,CAACuG,YAAY,CAACoC,SAAS,CAAC;MAChC,CAAC,CAAC,EAAEl8K,uDAAM,CAACvQ,CAAC,IAAI;QACZ,IAAI,CAACA,CAAC,CAAC8jL,YAAY,EAAE;UACjB,IAAI,CAAC4I,cAAc,CAAC1sL,CAAC,CAAC;UACtB,IAAI,CAAC2sL,0BAA0B,CAAC3sL,CAAC,EAAE,EAAE,CAAC;UACtC,OAAO,KAAK;QAChB;QACA,OAAO,IAAI;MACf,CAAC,CAAC;MACF;MACAunL,SAAS,CAACvnL,CAAC,IAAI;QACX,IAAIA,CAAC,CAACijL,MAAM,CAACK,iBAAiB,CAAC7vL,MAAM,EAAE;UACnC,OAAOsyD,wCAAE,CAAC/lD,CAAC,CAAC,CAAC5F,IAAI,CAAC6sD,oDAAG,CAACjnD,CAAC,IAAI;YACvB,MAAM4sL,YAAY,GAAG,IAAIviB,YAAY,CAACrqK,CAAC,CAACuL,EAAE,EAAE,IAAI,CAACwgL,YAAY,CAAC/rL,CAAC,CAAC2iL,YAAY,CAAC,EAAE,IAAI,CAACoJ,YAAY,CAAC/rL,CAAC,CAAC6pK,iBAAiB,CAAC,EAAE7pK,CAAC,CAAC6jL,cAAc,CAAC;YACxI,IAAI,CAACwG,YAAY,CAACuC,YAAY,CAAC;UACnC,CAAC,CAAC,EAAE3gG,yDAAS,CAACjsF,CAAC,IAAI;YACf,IAAI6sL,YAAY,GAAG,KAAK;YACxB,OAAO9mI,wCAAE,CAAC/lD,CAAC,CAAC,CAAC5F,IAAI,CAAC2sL,WAAW,CAAC,IAAI,CAAC3T,yBAAyB,EAAE,IAAI,CAAC/nD,QAAQ,CAACxjC,QAAQ,CAAC,EAAE5gC,oDAAG,CAAC;cACvF5sD,IAAI,EAAEA,CAAA,KAAMwyL,YAAY,GAAG,IAAI;cAC/BxzH,QAAQ,EAAEA,CAAA,KAAM;gBACZ,IAAI,CAACwzH,YAAY,EAAE;kBACf,IAAI,CAACH,cAAc,CAAC1sL,CAAC,CAAC;kBACtB,IAAI,CAAC2sL,0BAA0B,CAAC3sL,CAAC,EAAE,oDAAoD,CAAC;gBAC5F;cACJ;YACJ,CAAC,CAAC,CAAC;UACP,CAAC,CAAC,EAAEinD,oDAAG,CAACjnD,CAAC,IAAI;YACT,MAAM8sL,UAAU,GAAG,IAAIxiB,UAAU,CAACtqK,CAAC,CAACuL,EAAE,EAAE,IAAI,CAACwgL,YAAY,CAAC/rL,CAAC,CAAC2iL,YAAY,CAAC,EAAE,IAAI,CAACoJ,YAAY,CAAC/rL,CAAC,CAAC6pK,iBAAiB,CAAC,EAAE7pK,CAAC,CAAC6jL,cAAc,CAAC;YACpI,IAAI,CAACwG,YAAY,CAACyC,UAAU,CAAC;UACjC,CAAC,CAAC,CAAC;QACP;QACA,OAAOx3J,SAAS;MACpB,CAAC,CAAC;MACF;MACAiyJ,SAAS,CAAEvnL,CAAC,IAAK;QACb,MAAM;UAAE6jL,cAAc;UAAEt4K,EAAE,EAAEg+K,YAAY;UAAE5G,YAAY,EAAE4J,cAAc;UAAExB,MAAM,EAAEL,UAAU;UAAEM,MAAM,EAAE;YAAEiB,kBAAkB;YAAEK;UAAW;QAAE,CAAC,GAAGtsL,CAAC;QAC5I,OAAO,IAAI,CAAC6pL,KAAK,CAACE,kBAAkB,CAAClG,cAAc,EAAE;UACjD0F,YAAY;UACZgD,cAAc;UACd7B,UAAU;UACVuB,kBAAkB,EAAE,CAAC,CAACA,kBAAkB;UACxCK,UAAU,EAAE,CAAC,CAACA;QAClB,CAAC,CAAC;MACN,CAAC,CAAC,EAAEp6J,mDAAG,CAAElyB,CAAC,IAAK;QACX,MAAMg4K,iBAAiB,GAAG5D,iBAAiB,CAAC,IAAI,CAACC,kBAAkB,EAAEr0K,CAAC,CAAC6jL,cAAc,EAAE7jL,CAAC,CAACi4K,kBAAkB,CAAC;QAC5G,OAAQthL,MAAM,CAACurB,MAAM,CAACvrB,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAEliB,CAAC,CAAC,EAAE;UAAEg4K;QAAkB,CAAC,CAAC;MACtE,CAAC,CAAC;MACF;AACZ;AACA;AACA;AACA;MACY/wH,oDAAG,CAAEjnD,CAAC,IAAK;QACP,IAAI,CAACyqL,cAAc,GAAGzqL,CAAC,CAAC6pK,iBAAiB;QACzC,IAAI,CAAC6gB,UAAU,GACX,IAAI,CAACV,mBAAmB,CAAC5gH,KAAK,CAACppE,CAAC,CAAC6pK,iBAAiB,EAAE7pK,CAAC,CAAC+qL,MAAM,CAAC;QACjE,IAAI,CAACH,WAAW,GAAG5qL,CAAC,CAACg4K,iBAAiB;QACtC,IAAI,IAAI,CAACkS,iBAAiB,KAAK,UAAU,EAAE;UACvC,IAAI,CAAClqL,CAAC,CAACgrL,MAAM,CAACiB,kBAAkB,EAAE;YAC9B,IAAI,CAACC,aAAa,CAAC,IAAI,CAACxB,UAAU,EAAE1qL,CAAC,CAAC;UAC1C;UACA,IAAI,CAAC2qL,cAAc,GAAG3qL,CAAC,CAAC6pK,iBAAiB;QAC7C;MACJ,CAAC,CAAC,EAAE+N,cAAc,CAAC,IAAI,CAACC,YAAY,EAAE,IAAI,CAACxD,kBAAkB,EAAGp2K,GAAG,IAAK,IAAI,CAACosL,YAAY,CAACpsL,GAAG,CAAC,CAAC,EAAEgpD,oDAAG,CAAC;QACjG5sD,IAAIA,CAAA,EAAG;UACHkxL,SAAS,GAAG,IAAI;QACpB,CAAC;QACDlyH,QAAQA,CAAA,EAAG;UACPkyH,SAAS,GAAG,IAAI;QACpB;MACJ,CAAC,CAAC,EAAEjiB,yDAAQ,CAAC,MAAM;QACf,IAAI1tJ,EAAE;QACN;AAChB;AACA;AACA;AACA;AACA;AACA;QACgB,IAAI,CAAC2vK,SAAS,IAAI,CAACC,OAAO,EAAE;UACxB,MAAMuB,iBAAiB,GAAG,iBAAiB/sL,CAAC,CAACuL,EAAE,8CAA8C,IAAI,CAACg+K,YAAY,EAAE;UAChH,IAAI,CAACoD,0BAA0B,CAAC3sL,CAAC,EAAE+sL,iBAAiB,CAAC;QACzD;QACA;QACA;QACA,IAAI,CAAC,CAACnxK,EAAE,GAAG,IAAI,CAACytK,iBAAiB,MAAM,IAAI,IAAIztK,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,EAAE,CAACrQ,EAAE,MAAMvL,CAAC,CAACuL,EAAE,EAAE;UACrF,IAAI,CAAC89K,iBAAiB,GAAG,IAAI;QACjC;MACJ,CAAC,CAAC,EAAEpgB,2DAAU,CAAEt2K,CAAC,IAAK;QAClB;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA64L,OAAO,GAAG,IAAI;QACd;AAChB;QACgB,IAAIjgB,0BAA0B,CAAC54K,CAAC,CAAC,EAAE;UAC/B,MAAMq6L,WAAW,GAAG1S,SAAS,CAAC3nL,CAAC,CAAC07B,GAAG,CAAC;UACpC,IAAI,CAAC2+J,WAAW,EAAE;YACd;YACA;YACA;YACA;YACA;YACA,IAAI,CAACrD,SAAS,GAAG,IAAI;YACrB,IAAI,CAAC+C,cAAc,CAAC1sL,CAAC,EAAE,IAAI,CAAC;UAChC;UACA,MAAMitL,SAAS,GAAG,IAAInjB,gBAAgB,CAAC9pK,CAAC,CAACuL,EAAE,EAAE,IAAI,CAACwgL,YAAY,CAAC/rL,CAAC,CAAC2iL,YAAY,CAAC,EAAEhwL,CAAC,CAACw/B,OAAO,CAAC;UAC1Fm5J,aAAa,CAACjxL,IAAI,CAAC4yL,SAAS,CAAC;UAC7B;UACA;UACA,IAAI,CAACD,WAAW,EAAE;YACdhtL,CAAC,CAAC1H,OAAO,CAAC,KAAK,CAAC;UACpB,CAAC,MACI;YACD;YACA;YACA;YACA;YACAZ,UAAU,CAAC,MAAM;cACb,MAAMw1L,UAAU,GAAG,IAAI,CAAClD,mBAAmB,CAAC5gH,KAAK,CAACz2E,CAAC,CAAC07B,GAAG,EAAE,IAAI,CAACq8J,UAAU,CAAC;cACzE,MAAMM,MAAM,GAAG;gBACXiB,kBAAkB,EAAEjsL,CAAC,CAACgrL,MAAM,CAACiB,kBAAkB;gBAC/C;gBACA;gBACA;gBACA;gBACAK,UAAU,EAAE,IAAI,CAACpC,iBAAiB,KAAK,OAAO,IAC1C2B,4BAA4B,CAAC7rL,CAAC,CAACgmE,MAAM;cAC7C,CAAC;cACD,IAAI,CAACmnH,kBAAkB,CAACD,UAAU,EAAE,YAAY,EAAE,IAAI,EAAElC,MAAM,EAAE;gBAAE1yL,OAAO,EAAE0H,CAAC,CAAC1H,OAAO;gBAAEK,MAAM,EAAEqH,CAAC,CAACrH,MAAM;gBAAEN,OAAO,EAAE2H,CAAC,CAAC3H;cAAQ,CAAC,CAAC;YACjI,CAAC,EAAE,CAAC,CAAC;UACT;UACA;AACpB;QACgB,CAAC,MACI;UACD,IAAI,CAACq0L,cAAc,CAAC1sL,CAAC,EAAE,IAAI,CAAC;UAC5B,MAAMotL,QAAQ,GAAG,IAAIpjB,eAAe,CAAChqK,CAAC,CAACuL,EAAE,EAAE,IAAI,CAACwgL,YAAY,CAAC/rL,CAAC,CAAC2iL,YAAY,CAAC,EAAEhwL,CAAC,CAAC;UAChF24L,aAAa,CAACjxL,IAAI,CAAC+yL,QAAQ,CAAC;UAC5B,IAAI;YACAptL,CAAC,CAAC1H,OAAO,CAAC,IAAI,CAACsnK,YAAY,CAACjtK,CAAC,CAAC,CAAC;UACnC,CAAC,CACD,OAAO06L,EAAE,EAAE;YACPrtL,CAAC,CAACrH,MAAM,CAAC00L,EAAE,CAAC;UAChB;QACJ;QACA,OAAO1hI,wCAAK;MAChB,CAAC,CAAC,CAAC;MACH;IACJ,CAAC,CAAC,CAAC;EACP;EACA;AACJ;AACA;AACA;EACI2hI,sBAAsBA,CAAClI,iBAAiB,EAAE;IACtC,IAAI,CAACA,iBAAiB,GAAGA,iBAAiB;IAC1C;IACA;IACA,IAAI,CAACwF,WAAW,CAAC16K,IAAI,CAAC03E,SAAS,GAAG,IAAI,CAACw9F,iBAAiB;EAC5D;EACAmI,aAAaA,CAACvtL,CAAC,EAAE;IACb,IAAI,CAACkhC,WAAW,CAAC7mC,IAAI,CAAC1D,MAAM,CAACurB,MAAM,CAACvrB,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAACgf,WAAW,CAACpmC,KAAK,CAAC,EAAEkF,CAAC,CAAC,CAAC;EACtF;EACA;AACJ;AACA;EACIwtL,iBAAiBA,CAAA,EAAG;IAChB,IAAI,CAACC,2BAA2B,CAAC,CAAC;IAClC,IAAI,IAAI,CAAClE,YAAY,KAAK,CAAC,EAAE;MACzB,IAAI,CAACmE,aAAa,CAAC,IAAI,CAAC13K,QAAQ,CAACpG,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE08K,UAAU,EAAE;MAAK,CAAC,CAAC;IACtE;EACJ;EACA;AACJ;AACA;AACA;AACA;EACImB,2BAA2BA,CAAA,EAAG;IAC1B;IACA;IACA;IACA,IAAI,CAAC,IAAI,CAACE,oBAAoB,EAAE;MAC5B,IAAI,CAACA,oBAAoB,GAAG,IAAI,CAAC33K,QAAQ,CAACo2C,SAAS,CAAC13B,KAAK,IAAI;QACzD,MAAMsxC,MAAM,GAAGtxC,KAAK,CAAC,MAAM,CAAC,KAAK,UAAU,GAAG,UAAU,GAAG,YAAY;QACvE,IAAIsxC,MAAM,KAAK,UAAU,EAAE;UACvB;UACA;UACAtuE,UAAU,CAAC,MAAM;YACb,IAAIkkB,EAAE;YACN,MAAMovK,MAAM,GAAG;cAAEsB,UAAU,EAAE;YAAK,CAAC;YACnC;YACA;YACA,MAAMpzK,KAAK,GAAG,CAAC,CAAC0C,EAAE,GAAG8Y,KAAK,CAACxb,KAAK,MAAM,IAAI,IAAI0C,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,EAAE,CAAC2tK,YAAY,IAAI70J,KAAK,CAACxb,KAAK,GAAG,IAAI;YAC5G,IAAIA,KAAK,EAAE;cACP,MAAM00K,SAAS,GAAGj3L,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAEhJ,KAAK,CAAC;cAC1C,OAAO00K,SAAS,CAACrE,YAAY;cAC7B,OAAOqE,SAAS,CAACvC,aAAa;cAC9B,IAAI10L,MAAM,CAAC41B,IAAI,CAACqhK,SAAS,CAAC,CAACn6L,MAAM,KAAK,CAAC,EAAE;gBACrCu3L,MAAM,CAAC9xK,KAAK,GAAG00K,SAAS;cAC5B;YACJ;YACA,MAAMzb,OAAO,GAAG,IAAI,CAAC0b,QAAQ,CAACn5J,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,CAACy4J,kBAAkB,CAAChb,OAAO,EAAEnsG,MAAM,EAAE9sD,KAAK,EAAE8xK,MAAM,CAAC;UAC3D,CAAC,EAAE,CAAC,CAAC;QACT;MACJ,CAAC,CAAC;IACN;EACJ;EACA;EACA,IAAI38J,GAAGA,CAAA,EAAG;IACN,OAAO,IAAI,CAAC09J,YAAY,CAAC,IAAI,CAACtB,cAAc,CAAC;EACjD;EACA;AACJ;AACA;AACA;EACIqD,oBAAoBA,CAAA,EAAG;IACnB,OAAO,IAAI,CAACzE,iBAAiB;EACjC;EACA;EACAgB,YAAYA,CAAC31J,KAAK,EAAE;IAChB,IAAI,CAAC2wI,MAAM,CAAChrK,IAAI,CAACq6B,KAAK,CAAC;EAC3B;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI81J,WAAWA,CAACl2K,MAAM,EAAE;IAChBooK,cAAc,CAACpoK,MAAM,CAAC;IACtB,IAAI,CAACA,MAAM,GAAGA,MAAM,CAAC4d,GAAG,CAACgrJ,iBAAiB,CAAC;IAC3C,IAAI,CAACyM,SAAS,GAAG,KAAK;IACtB,IAAI,CAACC,gBAAgB,GAAG,CAAC,CAAC;EAC9B;EACA;EACA9/H,WAAWA,CAAA,EAAG;IACV,IAAI,CAAC0mB,OAAO,CAAC,CAAC;EAClB;EACA;EACAA,OAAOA,CAAA,EAAG;IACN,IAAI,CAACtvC,WAAW,CAACm4B,QAAQ,CAAC,CAAC;IAC3B,IAAI,IAAI,CAACs0H,oBAAoB,EAAE;MAC3B,IAAI,CAACA,oBAAoB,CAACtgI,WAAW,CAAC,CAAC;MACvC,IAAI,CAACsgI,oBAAoB,GAAGr4J,SAAS;IACzC;IACA,IAAI,CAACg0J,QAAQ,GAAG,IAAI;EACxB;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIxU,aAAaA,CAACC,QAAQ,EAAEgZ,gBAAgB,GAAG,CAAC,CAAC,EAAE;IAC3C,MAAM;MAAEC,UAAU;MAAE1wF,WAAW;MAAEkwE,QAAQ;MAAEygB,mBAAmB;MAAEC;IAAiB,CAAC,GAAGH,gBAAgB;IACrG,MAAMx2I,CAAC,GAAGy2I,UAAU,IAAI,IAAI,CAACpD,WAAW,CAAC16K,IAAI;IAC7C,MAAM4gC,CAAC,GAAGo9I,gBAAgB,GAAG,IAAI,CAACzD,cAAc,CAACjd,QAAQ,GAAGA,QAAQ;IACpE,IAAI2gB,CAAC,GAAG,IAAI;IACZ,QAAQF,mBAAmB;MACvB,KAAK,OAAO;QACRE,CAAC,GAAGx3L,MAAM,CAACurB,MAAM,CAACvrB,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAACuoK,cAAc,CAACntF,WAAW,CAAC,EAAEA,WAAW,CAAC;QAClF;MACJ,KAAK,UAAU;QACX6wF,CAAC,GAAG,IAAI,CAAC1D,cAAc,CAACntF,WAAW;QACnC;MACJ;QACI6wF,CAAC,GAAG7wF,WAAW,IAAI,IAAI;IAC/B;IACA,IAAI6wF,CAAC,KAAK,IAAI,EAAE;MACZA,CAAC,GAAG,IAAI,CAACC,gBAAgB,CAACD,CAAC,CAAC;IAChC;IACA,OAAOrZ,aAAa,CAACv9H,CAAC,EAAE,IAAI,CAACkzI,cAAc,EAAE1V,QAAQ,EAAEoZ,CAAC,EAAEr9I,CAAC,KAAK,IAAI,IAAIA,CAAC,KAAK,KAAK,CAAC,GAAGA,CAAC,GAAG,IAAI,CAAC;EACpG;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI48I,aAAaA,CAACr/J,GAAG,EAAE28J,MAAM,GAAG;IACxBiB,kBAAkB,EAAE;EACxB,CAAC,EAAE;IACC,IAAI,OAAOt8J,SAAS,KAAK,WAAW,IAChCA,SAAS,IAAI,IAAI,CAAC85J,eAAe,IAAI,CAACl1H,iEAAsB,CAAC,CAAC,EAAE;MAChE,IAAI,CAACl2B,OAAO,CAACC,IAAI,CAAC,mFAAmF,CAAC;IAC1G;IACA,MAAM6zI,OAAO,GAAGmI,SAAS,CAACjsJ,GAAG,CAAC,GAAGA,GAAG,GAAG,IAAI,CAACw/J,QAAQ,CAACx/J,GAAG,CAAC;IACzD,MAAM6+J,UAAU,GAAG,IAAI,CAAClD,mBAAmB,CAAC5gH,KAAK,CAAC+oG,OAAO,EAAE,IAAI,CAACuY,UAAU,CAAC;IAC3E,OAAO,IAAI,CAACyC,kBAAkB,CAACD,UAAU,EAAE,YAAY,EAAE,IAAI,EAAElC,MAAM,CAAC;EAC1E;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIvvK,QAAQA,CAACs5J,QAAQ,EAAEiW,MAAM,GAAG;IAAEiB,kBAAkB,EAAE;EAAM,CAAC,EAAE;IACvDoC,gBAAgB,CAACtZ,QAAQ,CAAC;IAC1B,OAAO,IAAI,CAAC2Y,aAAa,CAAC,IAAI,CAAC5Y,aAAa,CAACC,QAAQ,EAAEiW,MAAM,CAAC,EAAEA,MAAM,CAAC;EAC3E;EACA;EACAe,YAAYA,CAAC19J,GAAG,EAAE;IACd,OAAO,IAAI,CAAC2wJ,aAAa,CAAC7Q,SAAS,CAAC9/I,GAAG,CAAC;EAC5C;EACA;EACAw/J,QAAQA,CAACx/J,GAAG,EAAE;IACV,IAAI8jJ,OAAO;IACX,IAAI;MACAA,OAAO,GAAG,IAAI,CAAC6M,aAAa,CAACv0J,KAAK,CAAC4D,GAAG,CAAC;IAC3C,CAAC,CACD,OAAO17B,CAAC,EAAE;MACNw/K,OAAO,GAAG,IAAI,CAACuX,wBAAwB,CAAC/2L,CAAC,EAAE,IAAI,CAACqsL,aAAa,EAAE3wJ,GAAG,CAAC;IACvE;IACA,OAAO8jJ,OAAO;EAClB;EACAmc,QAAQA,CAACjgK,GAAG,EAAEkgK,YAAY,EAAE;IACxB,IAAIvtL,OAAO;IACX,IAAIutL,YAAY,KAAK,IAAI,EAAE;MACvBvtL,OAAO,GAAGrK,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAE+mK,iBAAiB,CAAC;IAClD,CAAC,MACI,IAAIsF,YAAY,KAAK,KAAK,EAAE;MAC7BvtL,OAAO,GAAGrK,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAEgnK,kBAAkB,CAAC;IACnD,CAAC,MACI;MACDloL,OAAO,GAAGutL,YAAY;IAC1B;IACA,IAAIjU,SAAS,CAACjsJ,GAAG,CAAC,EAAE;MAChB,OAAO++I,YAAY,CAAC,IAAI,CAACqd,cAAc,EAAEp8J,GAAG,EAAErtB,OAAO,CAAC;IAC1D;IACA,MAAMmxK,OAAO,GAAG,IAAI,CAAC0b,QAAQ,CAACx/J,GAAG,CAAC;IAClC,OAAO++I,YAAY,CAAC,IAAI,CAACqd,cAAc,EAAEtY,OAAO,EAAEnxK,OAAO,CAAC;EAC9D;EACAotL,gBAAgBA,CAAC9rL,MAAM,EAAE;IACrB,OAAO3L,MAAM,CAAC41B,IAAI,CAACjqB,MAAM,CAAC,CAACg6E,MAAM,CAAC,CAAC3nF,MAAM,EAAEkG,GAAG,KAAK;MAC/C,MAAMC,KAAK,GAAGwH,MAAM,CAACzH,GAAG,CAAC;MACzB,IAAIC,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKw6B,SAAS,EAAE;QACvC3gC,MAAM,CAACkG,GAAG,CAAC,GAAGC,KAAK;MACvB;MACA,OAAOnG,MAAM;IACjB,CAAC,EAAE,CAAC,CAAC,CAAC;EACV;EACAw2L,kBAAkBA,CAAA,EAAG;IACjB,IAAI,CAACF,WAAW,CAAC7+H,SAAS,CAACpsD,CAAC,IAAI;MAC5B,IAAI,CAAC2pL,SAAS,GAAG,IAAI;MACrB,IAAI,CAACC,gBAAgB,GAAG5pL,CAAC,CAACuL,EAAE;MAC5B,IAAI,CAACi+K,aAAa,GAAGxpL,CAAC,CAAC6qL,YAAY;MACnC,IAAI,CAACxlB,MAAM,CACNhrK,IAAI,CAAC,IAAIuvK,aAAa,CAAC5pK,CAAC,CAACuL,EAAE,EAAE,IAAI,CAACwgL,YAAY,CAAC/rL,CAAC,CAAC2iL,YAAY,CAAC,EAAE,IAAI,CAACoJ,YAAY,CAAC,IAAI,CAACtB,cAAc,CAAC,CAAC,CAAC;MAC7G,IAAI,CAACrB,wBAAwB,GAAG,IAAI,CAACC,iBAAiB;MACtDrpL,CAAC,CAAC1H,OAAO,CAAC,IAAI,CAAC;IACnB,CAAC,EAAE3F,CAAC,IAAI;MACJ,IAAI,CAAC0rC,OAAO,CAACC,IAAI,CAAC,+BAA+B3rC,CAAC,EAAE,CAAC;IACzD,CAAC,CAAC;EACN;EACAw6L,kBAAkBA,CAACpC,MAAM,EAAE/kH,MAAM,EAAE2jG,aAAa,EAAEqhB,MAAM,EAAEwD,YAAY,EAAE;IACpE,IAAI5yK,EAAE,EAAE8F,EAAE;IACV,IAAI,IAAI,CAAC4nK,QAAQ,EAAE;MACf,OAAO53L,OAAO,CAAC4G,OAAO,CAAC,KAAK,CAAC;IACjC;IACA,IAAIA,OAAO;IACX,IAAIK,MAAM;IACV,IAAIN,OAAO;IACX,IAAIm2L,YAAY,EAAE;MACdl2L,OAAO,GAAGk2L,YAAY,CAACl2L,OAAO;MAC9BK,MAAM,GAAG61L,YAAY,CAAC71L,MAAM;MAC5BN,OAAO,GAAGm2L,YAAY,CAACn2L,OAAO;IAClC,CAAC,MACI;MACDA,OAAO,GAAG,IAAI3G,OAAO,CAAC,CAACyF,GAAG,EAAE85J,GAAG,KAAK;QAChC34J,OAAO,GAAGnB,GAAG;QACbwB,MAAM,GAAGs4J,GAAG;MAChB,CAAC,CAAC;IACN;IACA,MAAM1lJ,EAAE,GAAG,EAAE,IAAI,CAACg+K,YAAY;IAC9B,IAAIsB,YAAY;IAChB,IAAI,IAAI,CAACV,4BAA4B,KAAK,UAAU,EAAE;MAClD,MAAMsE,aAAa,GAAG,IAAI,CAACjF,aAAa,KAAK,CAAC;MAC9C,IAAIiF,aAAa,EAAE;QACf9kB,aAAa,GAAG,IAAI,CAAC3zJ,QAAQ,CAACgmF,QAAQ,CAAC,CAAC;MAC5C;MACA;MACA;MACA;MACA,IAAI2tE,aAAa,IAAIA,aAAa,CAAC0hB,aAAa,EAAE;QAC9CR,YAAY,GAAGlhB,aAAa,CAAC0hB,aAAa;MAC9C,CAAC,MACI;QACD;QACA;QACA,IAAIL,MAAM,CAACsB,UAAU,IAAItB,MAAM,CAACiB,kBAAkB,EAAE;UAChDpB,YAAY,GAAG,CAACjvK,EAAE,GAAG,IAAI,CAACwvK,aAAa,MAAM,IAAI,IAAIxvK,EAAE,KAAK,KAAK,CAAC,GAAGA,EAAE,GAAG,CAAC;QAC/E,CAAC,MACI;UACDivK,YAAY,GAAG,CAAC,CAACnpK,EAAE,GAAG,IAAI,CAAC0pK,aAAa,MAAM,IAAI,IAAI1pK,EAAE,KAAK,KAAK,CAAC,GAAGA,EAAE,GAAG,CAAC,IAAI,CAAC;QACrF;MACJ;IACJ,CAAC,MACI;MACD;MACAmpK,YAAY,GAAG,CAAC;IACpB;IACA,IAAI,CAAC0C,aAAa,CAAC;MACfhiL,EAAE;MACFs/K,YAAY;MACZ7kH,MAAM;MACN2jG,aAAa;MACb8gB,cAAc,EAAE,IAAI,CAACA,cAAc;MACnCK,aAAa,EAAE,IAAI,CAACJ,UAAU;MAC9BK,MAAM;MACNC,MAAM;MACN1yL,OAAO;MACPK,MAAM;MACNN,OAAO;MACP0qD,eAAe,EAAE,IAAI,CAAC6nI,WAAW,CAACjgB,QAAQ;MAC1CsN,kBAAkB,EAAE,IAAI,CAAC2S;IAC7B,CAAC,CAAC;IACF;IACA;IACA,OAAOvyL,OAAO,CAAC2gB,KAAK,CAAErmB,CAAC,IAAK;MACxB,OAAOjB,OAAO,CAACiH,MAAM,CAAChG,CAAC,CAAC;IAC5B,CAAC,CAAC;EACN;EACAu5L,aAAaA,CAAC79J,GAAG,EAAEruB,CAAC,EAAE;IAClB,MAAM4P,IAAI,GAAG,IAAI,CAACovK,aAAa,CAAC7Q,SAAS,CAAC9/I,GAAG,CAAC;IAC9C,MAAMnV,KAAK,GAAGviB,MAAM,CAACurB,MAAM,CAACvrB,MAAM,CAACurB,MAAM,CAAC,CAAC,CAAC,EAAEliB,CAAC,CAACgrL,MAAM,CAAC9xK,KAAK,CAAC,EAAE,IAAI,CAACw1K,qBAAqB,CAAC1uL,CAAC,CAACuL,EAAE,EAAEvL,CAAC,CAAC6qL,YAAY,CAAC,CAAC;IAChH,IAAI,IAAI,CAAC70K,QAAQ,CAACkoF,oBAAoB,CAACtuF,IAAI,CAAC,IAAI,CAAC,CAAC5P,CAAC,CAACgrL,MAAM,CAACsB,UAAU,EAAE;MACnE,IAAI,CAACt2K,QAAQ,CAAC4lF,YAAY,CAAChsF,IAAI,EAAE,EAAE,EAAEsJ,KAAK,CAAC;IAC/C,CAAC,MACI;MACD,IAAI,CAAClD,QAAQ,CAAC+lF,EAAE,CAACnsF,IAAI,EAAE,EAAE,EAAEsJ,KAAK,CAAC;IACrC;EACJ;EACA;AACJ;AACA;AACA;EACIwzK,cAAcA,CAAC1sL,CAAC,EAAE2uL,wBAAwB,GAAG,KAAK,EAAE;IAChD,IAAI/yK,EAAE,EAAE8F,EAAE;IACV,IAAI,IAAI,CAACyoK,4BAA4B,KAAK,UAAU,EAAE;MAClD,MAAMyE,kBAAkB,GAAG,IAAI,CAACpF,aAAa,GAAGxpL,CAAC,CAAC6qL,YAAY;MAC9D;MACA;MACA;MACA;MACA;MACA,MAAMgE,wBAAwB,GAAI7uL,CAAC,CAACgmE,MAAM,KAAK,UAAU,IAAI,IAAI,CAACkkH,iBAAiB,KAAK,OAAO,IAC3F,IAAI,CAACO,cAAc,MAAM,CAAC7uK,EAAE,GAAG,IAAI,CAACytK,iBAAiB,MAAM,IAAI,IAAIztK,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,EAAE,CAACowK,QAAQ,CAAE;MAC7G,IAAI6C,wBAAwB,IAAID,kBAAkB,KAAK,CAAC,EAAE;QACtD,IAAI,CAAC54K,QAAQ,CAACskF,SAAS,CAACs0F,kBAAkB,CAAC;MAC/C,CAAC,MACI,IAAI,IAAI,CAACnE,cAAc,MAAM,CAAC/oK,EAAE,GAAG,IAAI,CAAC2nK,iBAAiB,MAAM,IAAI,IAAI3nK,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,EAAE,CAACsqK,QAAQ,CAAC,IAAI4C,kBAAkB,KAAK,CAAC,EAAE;QAC3I;QACA;QACA;QACA,IAAI,CAACE,UAAU,CAAC9uL,CAAC,CAAC;QAClB;QACA;QACA,IAAI,CAAC2qL,cAAc,GAAG3qL,CAAC,CAACyqL,cAAc;QACtC,IAAI,CAACsE,wBAAwB,CAAC,CAAC;MACnC,CAAC,MACI;QACD;QACA;MAAA;IAER,CAAC,MACI,IAAI,IAAI,CAAC5E,4BAA4B,KAAK,SAAS,EAAE;MACtD;MACA;MACA;MACA;MACA,IAAIwE,wBAAwB,EAAE;QAC1B,IAAI,CAACG,UAAU,CAAC9uL,CAAC,CAAC;MACtB;MACA,IAAI,CAAC+uL,wBAAwB,CAAC,CAAC;IACnC;EACJ;EACAD,UAAUA,CAAC9uL,CAAC,EAAE;IACV,IAAI,CAAC4qL,WAAW,GAAG5qL,CAAC,CAACi4K,kBAAkB;IACvC,IAAI,CAACwS,cAAc,GAAGzqL,CAAC,CAACyqL,cAAc;IACtC;IACA;IACA;IACA;IACA;IACA,IAAI,CAACC,UAAU,GAAG,IAAI,CAACV,mBAAmB,CAAC5gH,KAAK,CAAC,IAAI,CAACqhH,cAAc,EAAEzqL,CAAC,CAAC+qL,MAAM,CAAC;EACnF;EACAgE,wBAAwBA,CAAA,EAAG;IACvB,IAAI,CAAC/4K,QAAQ,CAAC4lF,YAAY,CAAC,IAAI,CAACojF,aAAa,CAAC7Q,SAAS,CAAC,IAAI,CAACuc,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,CAACgE,qBAAqB,CAAC,IAAI,CAAC9E,gBAAgB,EAAE,IAAI,CAACJ,aAAa,CAAC,CAAC;EACxJ;EACAmD,0BAA0BA,CAAC3sL,CAAC,EAAE+pK,MAAM,EAAE;IAClC,MAAMkjB,SAAS,GAAG,IAAInjB,gBAAgB,CAAC9pK,CAAC,CAACuL,EAAE,EAAE,IAAI,CAACwgL,YAAY,CAAC/rL,CAAC,CAAC2iL,YAAY,CAAC,EAAE5Y,MAAM,CAAC;IACvF,IAAI,CAACsgB,YAAY,CAAC4C,SAAS,CAAC;IAC5BjtL,CAAC,CAAC1H,OAAO,CAAC,KAAK,CAAC;EACpB;EACAo2L,qBAAqBA,CAACnF,YAAY,EAAEyF,YAAY,EAAE;IAC9C,IAAI,IAAI,CAAC7E,4BAA4B,KAAK,UAAU,EAAE;MAClD,OAAO;QAAEZ,YAAY;QAAE8B,aAAa,EAAE2D;MAAa,CAAC;IACxD;IACA,OAAO;MAAEzF;IAAa,CAAC;EAC3B;AACJ;AACAJ,MAAM,CAAClxJ,IAAI,YAAAg3J,eAAAjvL,CAAA;EA/3EoFuvB,8DAAE;AAAA,CA+3EmE;AACpK45J,MAAM,CAAChxJ,KAAK,kBAh4EmF5I,gEAAE;EAAAxb,KAAA,EAg4EMo1K,MAAM;EAAA9wJ,OAAA,EAAN8wJ,MAAM,CAAAlxJ;AAAA,EAAG;AAChH;EAAA,QAAAtI,SAAA,oBAAAA,SAAA,KAj4E+FJ,+DAAE,CAi4EN45J,MAAM,EAAc,CAAC;IACpG12L,IAAI,EAAEg9B,qDAAUA;EACpB,CAAC,CAAC,EAAkB,YAAY;IAAE,OAAO,CAAC;MAAEh9B,IAAI,EAAE88B,+CAAO2/J;IAAC,CAAC,EAAE;MAAEz8L,IAAI,EAAEq8K;IAAc,CAAC,EAAE;MAAEr8K,IAAI,EAAE6oL;IAAuB,CAAC,EAAE;MAAE7oL,IAAI,EAAEm7I,sDAAWptD;IAAC,CAAC,EAAE;MAAE/tF,IAAI,EAAE88B,mDAAWgxD;IAAC,CAAC,EAAE;MAAE9tF,IAAI,EAAE88B,mDAAW8/H;IAAC,CAAC,EAAE;MAAE58J,IAAI,EAAE6iC;IAAU,CAAC,CAAC;EAAE,CAAC;AAAA;AAC5N,SAAS+4J,gBAAgBA,CAACtZ,QAAQ,EAAE;EAChC,KAAK,IAAIxhL,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGwhL,QAAQ,CAACthL,MAAM,EAAEF,CAAC,EAAE,EAAE;IACtC,MAAMijL,GAAG,GAAGzB,QAAQ,CAACxhL,CAAC,CAAC;IACvB,IAAIijL,GAAG,IAAI,IAAI,EAAE;MACb,MAAM,IAAIpiL,KAAK,CAAC,+BAA+BoiL,GAAG,qBAAqBjjL,CAAC,EAAE,CAAC;IAC/E;EACJ;AACJ;AACA,SAASs4L,4BAA4BA,CAAC7lH,MAAM,EAAE;EAC1C,OAAOA,MAAM,KAAK,YAAY;AAClC;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMmpH,UAAU,CAAC;EACb/1L,WAAWA,CAACg2L,MAAM,EAAE5kB,KAAK,EAAE6kB,iBAAiB,EAAExhE,QAAQ,EAAEjmE,EAAE,EAAE;IACxD,IAAI,CAACwnI,MAAM,GAAGA,MAAM;IACpB,IAAI,CAAC5kB,KAAK,GAAGA,KAAK;IAClB,IAAI,CAAC6kB,iBAAiB,GAAGA,iBAAiB;IAC1C,IAAI,CAACxhE,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACjmE,EAAE,GAAGA,EAAE;IACZ,IAAI,CAACmtH,QAAQ,GAAG,IAAI;IACpB;IACA,IAAI,CAACua,SAAS,GAAG,IAAI1pI,0CAAO,CAAC,CAAC;IAC9B,IAAI,CAAC2pI,0BAA0B,CAAC,GAAG,CAAC;EACxC;EACA;AACJ;AACA;AACA;EACIA,0BAA0BA,CAACC,WAAW,EAAE;IACpC,IAAI,IAAI,CAACH,iBAAiB,IAAI,IAAI,CAAC,mCAAmC;MAClE;IACJ;IACA,MAAMxhE,QAAQ,GAAG,IAAI,CAACA,QAAQ;IAC9B,MAAMh5D,aAAa,GAAG,IAAI,CAACjN,EAAE,CAACiN,aAAa;IAC3C,IAAI26H,WAAW,KAAK,IAAI,EAAE;MACtB3hE,QAAQ,CAAC5yF,YAAY,CAAC45B,aAAa,EAAE,UAAU,EAAE26H,WAAW,CAAC;IACjE,CAAC,MACI;MACD3hE,QAAQ,CAAC3lE,eAAe,CAAC2M,aAAa,EAAE,UAAU,CAAC;IACvD;EACJ;EACA;EACAM,WAAWA,CAAChJ,OAAO,EAAE;IACjB;IACA;IACA,IAAI,CAACmjI,SAAS,CAACj1L,IAAI,CAAC,IAAI,CAAC;EAC7B;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;EACI,IAAIo1L,UAAUA,CAAC1a,QAAQ,EAAE;IACrB,IAAIA,QAAQ,IAAI,IAAI,EAAE;MAClB,IAAI,CAACA,QAAQ,GAAGxgL,KAAK,CAACZ,OAAO,CAACohL,QAAQ,CAAC,GAAGA,QAAQ,GAAG,CAACA,QAAQ,CAAC;MAC/D,IAAI,CAACwa,0BAA0B,CAAC,GAAG,CAAC;IACxC,CAAC,MACI;MACD,IAAI,CAACxa,QAAQ,GAAG,IAAI;MACpB,IAAI,CAACwa,0BAA0B,CAAC,IAAI,CAAC;IACzC;EACJ;EACA;EACAG,OAAOA,CAAA,EAAG;IACN,IAAI,IAAI,CAACvd,OAAO,KAAK,IAAI,EAAE;MACvB,OAAO,IAAI;IACf;IACA,MAAM6Y,MAAM,GAAG;MACXiB,kBAAkB,EAAE0D,aAAa,CAAC,IAAI,CAAC1D,kBAAkB,CAAC;MAC1DK,UAAU,EAAEqD,aAAa,CAAC,IAAI,CAACrD,UAAU,CAAC;MAC1CpzK,KAAK,EAAE,IAAI,CAACA;IAChB,CAAC;IACD,IAAI,CAACk2K,MAAM,CAAC1B,aAAa,CAAC,IAAI,CAACvb,OAAO,EAAE6Y,MAAM,CAAC;IAC/C,OAAO,IAAI;EACf;EACA,IAAI7Y,OAAOA,CAAA,EAAG;IACV,IAAI,IAAI,CAAC4C,QAAQ,KAAK,IAAI,EAAE;MACxB,OAAO,IAAI;IACf;IACA,OAAO,IAAI,CAACqa,MAAM,CAACta,aAAa,CAAC,IAAI,CAACC,QAAQ,EAAE;MAC5C;MACA;MACAiZ,UAAU,EAAE,IAAI,CAACA,UAAU,KAAK14J,SAAS,GAAG,IAAI,CAAC04J,UAAU,GAAG,IAAI,CAACxjB,KAAK;MACxEltE,WAAW,EAAE,IAAI,CAACA,WAAW;MAC7BkwE,QAAQ,EAAE,IAAI,CAACA,QAAQ;MACvBygB,mBAAmB,EAAE,IAAI,CAACA,mBAAmB;MAC7CC,gBAAgB,EAAEyB,aAAa,CAAC,IAAI,CAACzB,gBAAgB;IACzD,CAAC,CAAC;EACN;AACJ;AACAiB,UAAU,CAACl3J,IAAI,YAAA23J,mBAAA5vL,CAAA;EAAA,YAAAA,CAAA,IAAwFmvL,UAAU,EAjkFlB5/J,+DAAE,CAikFkC45J,MAAM,GAjkF1C55J,+DAAE,CAikFqDojJ,cAAc,GAjkFrEpjJ,+DAAE,CAikFgF,UAAU,GAjkF5FA,+DAAE,CAikFwHA,oDAAY,GAjkFtIA,+DAAE,CAikFiJA,qDAAa;AAAA,CAA4C;AAC3S4/J,UAAU,CAAC15H,IAAI,kBAlkFgFlmC,+DAAE;EAAA98B,IAAA,EAkkFN08L,UAAU;EAAAx5H,SAAA;EAAAkM,YAAA,WAAAguH,wBAAA9tH,EAAA,EAAAj6B,GAAA;IAAA,IAAAi6B,EAAA;MAlkFNxyC,wDAAE,mBAAAugK,oCAAA;QAAA,OAkkFNhoJ,GAAA,CAAA4nJ,OAAA,CAAQ,CAAC;MAAA;IAAA;EAAA;EAAA95H,MAAA;IAAA0nC,WAAA;IAAAkwE,QAAA;IAAAygB,mBAAA;IAAAC,gBAAA;IAAAjC,kBAAA;IAAAK,UAAA;IAAApzK,KAAA;IAAA80K,UAAA;IAAAyB,UAAA;EAAA;EAAA35H,QAAA,GAlkFLvmC,kEAAE;AAAA,EAkkF4Z;AAC7f;EAAA,QAAAI,SAAA,oBAAAA,SAAA,KAnkF+FJ,+DAAE,CAmkFN4/J,UAAU,EAAc,CAAC;IACxG18L,IAAI,EAAEuyD,oDAAS;IACfxtD,IAAI,EAAE,CAAC;MAAEm6B,QAAQ,EAAE;IAAgC,CAAC;EACxD,CAAC,CAAC,EAAkB,YAAY;IAChC,OAAO,CAAC;MAAEl/B,IAAI,EAAE02L;IAAO,CAAC,EAAE;MAAE12L,IAAI,EAAEkgL;IAAe,CAAC,EAAE;MAAElgL,IAAI,EAAE6iC,SAAS;MAAE61B,UAAU,EAAE,CAAC;QACpE14D,IAAI,EAAEgnG,oDAAS;QACfjiG,IAAI,EAAE,CAAC,UAAU;MACrB,CAAC;IAAE,CAAC,EAAE;MAAE/E,IAAI,EAAE88B,oDAAYsjF;IAAC,CAAC,EAAE;MAAEpgH,IAAI,EAAE88B,qDAAaimC;IAAC,CAAC,CAAC;EACtE,CAAC,EAAkB;IAAE8nC,WAAW,EAAE,CAAC;MACvB7qG,IAAI,EAAEwyD,gDAAKA;IACf,CAAC,CAAC;IAAEuoH,QAAQ,EAAE,CAAC;MACX/6K,IAAI,EAAEwyD,gDAAKA;IACf,CAAC,CAAC;IAAEgpI,mBAAmB,EAAE,CAAC;MACtBx7L,IAAI,EAAEwyD,gDAAKA;IACf,CAAC,CAAC;IAAEipI,gBAAgB,EAAE,CAAC;MACnBz7L,IAAI,EAAEwyD,gDAAKA;IACf,CAAC,CAAC;IAAEgnI,kBAAkB,EAAE,CAAC;MACrBx5L,IAAI,EAAEwyD,gDAAKA;IACf,CAAC,CAAC;IAAEqnI,UAAU,EAAE,CAAC;MACb75L,IAAI,EAAEwyD,gDAAKA;IACf,CAAC,CAAC;IAAE/rC,KAAK,EAAE,CAAC;MACRzmB,IAAI,EAAEwyD,gDAAKA;IACf,CAAC,CAAC;IAAE+oI,UAAU,EAAE,CAAC;MACbv7L,IAAI,EAAEwyD,gDAAKA;IACf,CAAC,CAAC;IAAEwqI,UAAU,EAAE,CAAC;MACbh9L,IAAI,EAAEwyD,gDAAKA;IACf,CAAC,CAAC;IAAEyqI,OAAO,EAAE,CAAC;MACVj9L,IAAI,EAAE81K,uDAAY;MAClB/wK,IAAI,EAAE,CAAC,OAAO;IAClB,CAAC;EAAE,CAAC;AAAA;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMu4L,kBAAkB,CAAC;EACrB32L,WAAWA,CAACg2L,MAAM,EAAE5kB,KAAK,EAAEwlB,gBAAgB,EAAE;IACzC,IAAI,CAACZ,MAAM,GAAGA,MAAM;IACpB,IAAI,CAAC5kB,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACwlB,gBAAgB,GAAGA,gBAAgB;IACxC,IAAI,CAACjb,QAAQ,GAAG,IAAI;IACpB;IACA;IACA;IACA,IAAI,CAAC14J,IAAI,GAAG,IAAI;IAChB;IACA,IAAI,CAACizK,SAAS,GAAG,IAAI1pI,0CAAO,CAAC,CAAC;IAC9B,IAAI,CAACyhB,YAAY,GAAG+nH,MAAM,CAAC/pB,MAAM,CAACj5G,SAAS,CAAEjqB,CAAC,IAAK;MAC/C,IAAIA,CAAC,YAAYynI,aAAa,EAAE;QAC5B,IAAI,CAACqmB,sBAAsB,CAAC,CAAC;MACjC;IACJ,CAAC,CAAC;EACN;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;EACI,IAAIR,UAAUA,CAAC1a,QAAQ,EAAE;IACrB,IAAIA,QAAQ,IAAI,IAAI,EAAE;MAClB,IAAI,CAACA,QAAQ,GAAGxgL,KAAK,CAACZ,OAAO,CAACohL,QAAQ,CAAC,GAAGA,QAAQ,GAAG,CAACA,QAAQ,CAAC;IACnE,CAAC,MACI;MACD,IAAI,CAACA,QAAQ,GAAG,IAAI;IACxB;EACJ;EACA;EACA5/G,WAAWA,CAAChJ,OAAO,EAAE;IACjB,IAAI,CAAC8jI,sBAAsB,CAAC,CAAC;IAC7B,IAAI,CAACX,SAAS,CAACj1L,IAAI,CAAC,IAAI,CAAC;EAC7B;EACA;EACAyvD,WAAWA,CAAA,EAAG;IACV,IAAI,CAACud,YAAY,CAACha,WAAW,CAAC,CAAC;EACnC;EACA;EACAqiI,OAAOA,CAACQ,MAAM,EAAE1xB,OAAO,EAAEE,QAAQ,EAAEH,MAAM,EAAEE,OAAO,EAAE;IAChD,IAAIyxB,MAAM,KAAK,CAAC,IAAI1xB,OAAO,IAAIE,QAAQ,IAAIH,MAAM,IAAIE,OAAO,EAAE;MAC1D,OAAO,IAAI;IACf;IACA,IAAI,OAAO,IAAI,CAAC3lK,MAAM,KAAK,QAAQ,IAAI,IAAI,CAACA,MAAM,IAAI,OAAO,IAAI,IAAI,CAACq5K,OAAO,KAAK,IAAI,EAAE;MACpF,OAAO,IAAI;IACf;IACA,MAAM6Y,MAAM,GAAG;MACXiB,kBAAkB,EAAE0D,aAAa,CAAC,IAAI,CAAC1D,kBAAkB,CAAC;MAC1DK,UAAU,EAAEqD,aAAa,CAAC,IAAI,CAACrD,UAAU,CAAC;MAC1CpzK,KAAK,EAAE,IAAI,CAACA;IAChB,CAAC;IACD,IAAI,CAACk2K,MAAM,CAAC1B,aAAa,CAAC,IAAI,CAACvb,OAAO,EAAE6Y,MAAM,CAAC;IAC/C,OAAO,KAAK;EAChB;EACAiF,sBAAsBA,CAAA,EAAG;IACrB,IAAI,CAAC5zK,IAAI,GAAG,IAAI,CAAC81J,OAAO,KAAK,IAAI,GAC7B,IAAI,CAAC6d,gBAAgB,CAAC7yF,kBAAkB,CAAC,IAAI,CAACiyF,MAAM,CAACrD,YAAY,CAAC,IAAI,CAAC5Z,OAAO,CAAC,CAAC,GAChF,IAAI;EACZ;EACA,IAAIA,OAAOA,CAAA,EAAG;IACV,IAAI,IAAI,CAAC4C,QAAQ,KAAK,IAAI,EAAE;MACxB,OAAO,IAAI;IACf;IACA,OAAO,IAAI,CAACqa,MAAM,CAACta,aAAa,CAAC,IAAI,CAACC,QAAQ,EAAE;MAC5C;MACA;MACAiZ,UAAU,EAAE,IAAI,CAACA,UAAU,KAAK14J,SAAS,GAAG,IAAI,CAAC04J,UAAU,GAAG,IAAI,CAACxjB,KAAK;MACxEltE,WAAW,EAAE,IAAI,CAACA,WAAW;MAC7BkwE,QAAQ,EAAE,IAAI,CAACA,QAAQ;MACvBygB,mBAAmB,EAAE,IAAI,CAACA,mBAAmB;MAC7CC,gBAAgB,EAAEyB,aAAa,CAAC,IAAI,CAACzB,gBAAgB;IACzD,CAAC,CAAC;EACN;AACJ;AACA6B,kBAAkB,CAAC93J,IAAI,YAAAk4J,2BAAAnwL,CAAA;EAAA,YAAAA,CAAA,IAAwF+vL,kBAAkB,EA1rFlCxgK,+DAAE,CA0rFkD45J,MAAM,GA1rF1D55J,+DAAE,CA0rFqEojJ,cAAc,GA1rFrFpjJ,+DAAE,CA0rFgGq+G,8DAAmB;AAAA,CAA4C;AAChQmiD,kBAAkB,CAACt6H,IAAI,kBA3rFwElmC,+DAAE;EAAA98B,IAAA,EA2rFEs9L,kBAAkB;EAAAp6H,SAAA;EAAAiM,QAAA;EAAAC,YAAA,WAAAuuH,gCAAAruH,EAAA,EAAAj6B,GAAA;IAAA,IAAAi6B,EAAA;MA3rFtBxyC,wDAAE,mBAAA8gK,4CAAAhjE,MAAA;QAAA,OA2rFEvlF,GAAA,CAAA4nJ,OAAA,CAAAriE,MAAA,CAAA6iE,MAAA,EAAA7iE,MAAA,CAAAmxC,OAAA,EAAAnxC,MAAA,CAAAqxC,QAAA,EAAArxC,MAAA,CAAAkxC,MAAA,EAAAlxC,MAAA,CAAAoxC,OAAiF,CAAC;MAAA;IAAA;IAAA,IAAA18F,EAAA;MA3rFtFxyC,yDAAE,WAAAuY,GAAA,CAAAhvC,MAAA,UAAAgvC,GAAA,CAAAzrB,IAAA,EAAFkT,2DAAE;IAAA;EAAA;EAAAqmC,MAAA;IAAA98D,MAAA;IAAAwkG,WAAA;IAAAkwE,QAAA;IAAAygB,mBAAA;IAAAC,gBAAA;IAAAjC,kBAAA;IAAAK,UAAA;IAAApzK,KAAA;IAAA80K,UAAA;IAAAyB,UAAA;EAAA;EAAA35H,QAAA,GAAFvmC,kEAAE;AAAA,EA2rFglB;AACjrB;EAAA,QAAAI,SAAA,oBAAAA,SAAA,KA5rF+FJ,+DAAE,CA4rFNwgK,kBAAkB,EAAc,CAAC;IAChHt9L,IAAI,EAAEuyD,oDAAS;IACfxtD,IAAI,EAAE,CAAC;MAAEm6B,QAAQ,EAAE;IAAiC,CAAC;EACzD,CAAC,CAAC,EAAkB,YAAY;IAAE,OAAO,CAAC;MAAEl/B,IAAI,EAAE02L;IAAO,CAAC,EAAE;MAAE12L,IAAI,EAAEkgL;IAAe,CAAC,EAAE;MAAElgL,IAAI,EAAEm7I,8DAAmBlxC;IAAC,CAAC,CAAC;EAAE,CAAC,EAAkB;IAAE5jG,MAAM,EAAE,CAAC;MAC5IrG,IAAI,EAAE+1K,sDAAW;MACjBhxK,IAAI,EAAE,CAAC,aAAa;IACxB,CAAC,EAAE;MACC/E,IAAI,EAAEwyD,gDAAKA;IACf,CAAC,CAAC;IAAEq4C,WAAW,EAAE,CAAC;MACd7qG,IAAI,EAAEwyD,gDAAKA;IACf,CAAC,CAAC;IAAEuoH,QAAQ,EAAE,CAAC;MACX/6K,IAAI,EAAEwyD,gDAAKA;IACf,CAAC,CAAC;IAAEgpI,mBAAmB,EAAE,CAAC;MACtBx7L,IAAI,EAAEwyD,gDAAKA;IACf,CAAC,CAAC;IAAEipI,gBAAgB,EAAE,CAAC;MACnBz7L,IAAI,EAAEwyD,gDAAKA;IACf,CAAC,CAAC;IAAEgnI,kBAAkB,EAAE,CAAC;MACrBx5L,IAAI,EAAEwyD,gDAAKA;IACf,CAAC,CAAC;IAAEqnI,UAAU,EAAE,CAAC;MACb75L,IAAI,EAAEwyD,gDAAKA;IACf,CAAC,CAAC;IAAE/rC,KAAK,EAAE,CAAC;MACRzmB,IAAI,EAAEwyD,gDAAKA;IACf,CAAC,CAAC;IAAE+oI,UAAU,EAAE,CAAC;MACbv7L,IAAI,EAAEwyD,gDAAKA;IACf,CAAC,CAAC;IAAE5oC,IAAI,EAAE,CAAC;MACP5pB,IAAI,EAAE+1K,sDAAW;MACjBhxK,IAAI,EAAE,CAAC,WAAW;IACtB,CAAC,CAAC;IAAEi4L,UAAU,EAAE,CAAC;MACbh9L,IAAI,EAAEwyD,gDAAKA;IACf,CAAC,CAAC;IAAEyqI,OAAO,EAAE,CAAC;MACVj9L,IAAI,EAAE81K,uDAAY;MAClB/wK,IAAI,EAAE,CAAC,OAAO,EACV,CAAC,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,EAAE,gBAAgB,CAAC;IACjG,CAAC;EAAE,CAAC;AAAA;AAChB,SAASm4L,aAAaA,CAACxtJ,CAAC,EAAE;EACtB,OAAOA,CAAC,KAAK,EAAE,IAAI,CAAC,CAACA,CAAC;AAC1B;;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;AACA;AACA;AACA;AACA;AACA;AACA,MAAMouJ,gBAAgB,CAAC;EACnBn3L,WAAWA,CAACg2L,MAAM,EAAExnK,OAAO,EAAEimG,QAAQ,EAAE2iE,GAAG,EAAEC,IAAI,EAAEC,YAAY,EAAE;IAC5D,IAAI,CAACtB,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACxnK,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACimG,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAAC2iE,GAAG,GAAGA,GAAG;IACd,IAAI,CAACC,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,YAAY,GAAGA,YAAY;IAChC,IAAI,CAACh/G,OAAO,GAAG,EAAE;IACjB,IAAI,CAAC48G,QAAQ,GAAG,KAAK;IACrB;AACR;AACA;AACA;AACA;AACA;AACA;IACQ,IAAI,CAACqC,uBAAuB,GAAG;MAAEC,KAAK,EAAE;IAAM,CAAC;IAC/C;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACQ,IAAI,CAACC,cAAc,GAAG,IAAIzrI,uDAAY,CAAC,CAAC;IACxC,IAAI,CAAC0rI,wBAAwB,GAAG1B,MAAM,CAAC/pB,MAAM,CAACj5G,SAAS,CAAEjqB,CAAC,IAAK;MAC3D,IAAIA,CAAC,YAAYynI,aAAa,EAAE;QAC5B,IAAI,CAACnoD,MAAM,CAAC,CAAC;MACjB;IACJ,CAAC,CAAC;EACN;EACA;EACAzsD,kBAAkBA,CAAA,EAAG;IACjB;IACAjP,wCAAE,CAAC,IAAI,CAACgrI,KAAK,CAAC5kI,OAA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CA;AACA;AACA;AACA;AACA,QAAQ;AACR;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;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0EAA0E,GAAG;AAC7E;;AAEA;AACA,gBAAgB,QAAQ;;AAExB;AACA,gBAAgB,SAAS;;AAEzB;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3HA;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,CAAC;;AAED,yCAAyC,yCAAyC;AAClF,wBAAwB;;AAExB,uCAAuC,uBAAuB;AAC9D,sBAAsB,cAAc;;AAEpC,yDAAyD,8BAA8B,kCAAkC,SAAS,gCAAgC;;AAElK;AACA;AACA,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA;AACA,gBAAgB,sBAAsB;AACtC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wDAAwD;AACxD,wDAAwD;;AAExD;AACA;AACA;AACA,oCAAoC,uBAAuB;AAC3D;AACA,mEAAmE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,+IAA+I;;AAExL;AACA;AACA;AACA,kBAAkB,8BAA8B,WAAW;AAC3D,qCAAqC,yDAAyD;AAC9F;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2DAA2D,gCAAgC;AAC3F;;AAEA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;;AAEA;AACA,uDAAuD,gCAAgC;AACvF,+BAA+B,eAAe,iBAAiB,0CAA0C;AACzG;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sEAAsE;AACtE;AACA,gBAAgB,iBAAiB;AACjC;AACA;;AAEA,yCAAyC,8CAA8C,uDAAuD,MAAM;AACpJ;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA,qDAAqD,uDAAuD;AAC5G;;AAEA;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB;;AAEvB,kBAAkB;AAClB,qBAAqB;AACrB,qBAAqB;;AAErB,mBAAmB;;AAEnB;AACA;AACA;AACA,4CAA4C,4BAA4B,gCAAgC;AACxG,iDAAiD,YAAY;AAC7D,iDAAiD,WAAW;AAC5D,kDAAkD,YAAY;AAC9D,mDAAmD,wBAAwB;AAC3E,mDAAmD,YAAY;AAC/D;AACA,kDAAkD,0CAA0C,uBAAuB;AACnH;AACA,kEAAkE,YAAY;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AAChB,gBAAgB;AAChB,kBAAkB;AAClB,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,aAAa;AACb,aAAa;AACb,eAAe;AACf,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,iBAAiB;AACjB,iBAAiB;;AAEjB;AACA,iBAAiB;AACjB,iBAAiB;;AAEjB;AACA,oBAAoB;AACpB,oBAAoB;;AAEpB;AACA,oBAAoB;AACpB,oBAAoB;;AAEpB;AACA,kBAAkB,gBAAgB,UAAU;;AAE5C;AACA,qBAAqB,mBAAmB,aAAa;;AAErD;AACA,qBAAqB,mBAAmB,YAAY;;AAEpD;AACA,wBAAwB,sBAAsB,eAAe;AAC7D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,aAAa;AACb;AACA,aAAa,cAAc,SAAS,WAAW,OAAO,SAAS;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB,QAAQ;AAClD;AACA,kBAAkB,wCAAwC;AAC1D,sBAAsB,sCAAsC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC,oBAAoB;AACpB,oBAAoB;AACpB;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,2CAA2C;AAC3C,wBAAwB;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;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,kCAAkC,UAAU;AAC5C,6BAA6B,UAAU;AACvC,IAAI;AACJ;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA,IAAI;AACJ;AACA;AACA,0CAA0C,mBAAmB;AAC7D;AACA,IAAI;AACJ;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA,IAAI;AACJ;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA,IAAI;AACJ;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD,6DAA6D;AAC7D,0FAA0F;AAC1F;AACA,IAAI,iCAAiC;AACrC;AACA,YAAY,UAAU;AACtB;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,aAAa;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,+EAA+E;AAClJ,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA,oBAAoB;AACpB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,wDAAwD,yBAAyB;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,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,yIAAyI,gFAAgF;AACzN;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,kDAAkD;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,EAAE,yCAAyC,iEAAiE;AACzM;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,+EAA+E;AAClJ,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA,6DAA6D;AAC7D,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,kDAAkD;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,EAAE,yCAAyC,iEAAiE;AACvM;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA,qBAAqB;AACrB;AACA,QAAQ;AACR,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8CAA8C,KAAK;AACnD,kBAAkB,sDAAsD,EAAE,WAAW,KAAK;AAC1F,oBAAoB;AACpB,mBAAmB;AACnB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sJAAsJ;AACtJ;AACA,0CAA0C,aAAa;AACvD,kBAAkB,sDAAsD;AACxE,4BAA4B;AAC5B;AACA,wEAAwE,aAAa;AACrF,kBAAkB;AAClB,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB,MAAM;AAClD;AACA,aAAa,kDAAkD;AAC/D,uBAAuB,aAAa,KAAK;AACzC;AACA,uBAAuB,WAAW,KAAK;AACvC,gCAAgC,eAAe,MAAM;AACrD;AACA,uBAAuB,aAAa,KAAK;AACzC;AACA;AACA,oBAAoB,0DAA0D;AAC9E,wBAAwB,2BAA2B,SAAS,MAAM;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD,WAAW;AACX;AACA;AACA,uBAAuB,WAAW,SAAS;AAC3C;AACA,WAAW;AACX;AACA,mDAAmD,2CAA2C,WAAW,OAAO;AAChH,yDAAyD,6CAA6C,WAAW,MAAM;AACvH,yDAAyD,6CAA6C,WAAW,MAAM;AACvH,WAAW,WAAW;AACtB;AACA,yBAAyB,SAAS;AAClC;AACA;AACA;AACA;AACA;AACA,oBAAoB,iCAAiC;AACrD,wBAAwB;AACxB;AACA,MAAM;AACN;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,wBAAwB,aAAa;AACrC;AACA;AACA;AACA,WAAW;AACX,uBAAuB,aAAa;AACpC;AACA,WAAW;AACX,uBAAuB,WAAW,SAAS;AAC3C,kBAAkB,sDAAsD,OAAO;AAC/E,0CAA0C,0BAA0B,KAAK;AACzE;AACA,WAAW;AACX,uBAAuB,aAAa;AACpC,gCAAgC,WAAW,KAAK;AAChD,gCAAgC,eAAe,KAAK;AACpD;AACA,uBAAuB;AACvB,uBAAuB,aAAa,KAAK;AACzC;AACA;;AAEA;AACA;AACA,8BAA8B,QAAQ;AACtC;AACA,sCAAsC,SAAS,mBAAmB;AAClE;AACA;AACA;AACA;AACA,yDAAyD;AACzD,+BAA+B,gBAAgB,qBAAqB;AACpE,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,qBAAqB,UAAU;AAC/B,qBAAqB,UAAU;AAC/B,qBAAqB,UAAU;AAC/B;AACA;AACA,qBAAqB;AACrB,qBAAqB,UAAU;AAC/B,qBAAqB,UAAU;AAC/B;AACA;;AAEA;AACA;AACA,UAAU,gBAAgB;AAC1B;AACA;AACA,4BAA4B,aAAa,GAAG;AAC5C;AACA,qCAAqC;AACrC;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU,IAAI;AAC9B;AACA;AACA,cAAc;AACd,6BAA6B,gCAAgC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB,2EAA2E,WAAW;AACjH;AACA;AACA,uBAAuB,MAAM;AAC7B;AACA,gCAAgC,uBAAuB;AACvD;AACA,WAAW,iCAAiC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA,UAAU,MAAM;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA,UAAU,mBAAmB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,cAAc;AACxB;AACA;AACA;AACA;AACA;AACA,UAAU,kBAAkB;AAC5B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,0CAA0C;AAC1C,0CAA0C;AAC1C,0CAA0C;AAC1C,0CAA0C;AAC1C,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oGAAoG;AACpG,2FAA2F;AAC3F,2FAA2F;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C,iBAAiB,YAAY;AAC7B,6CAA6C;AAC7C,mCAAmC,qBAAqB;AACxD,6BAA6B,SAAS;AACtC;AACA,6CAA6C;AAC7C;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;;AAEA,kBAAkB,gBAAgB;AAClC,kBAAkB;AAClB,kBAAkB;AAClB,qBAAqB;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA,oBAAoB,cAAc,UAAU;AAC5C,uBAAuB,iBAAiB,aAAa;AACrD,uBAAuB,iBAAiB,YAAY;AACpD,0BAA0B,oBAAoB,eAAe;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,mBAAmB;AACnB,sBAAsB;AACtB,sBAAsB;AACtB;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;AACA;AACA,oBAAoB,OAAO,iBAAiB;AAC5C,oBAAoB,OAAO,iBAAiB;AAC5C,+BAA+B,YAAY;AAC3C;AACA,EAAE;AACF,mCAAmC,OAAO;AAC1C;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,YAAY,UAAU;AACtB,YAAY,UAAU;AACtB;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,MAAM;AACvC;AACA;;AAEA;AACA;AACA,OAAO,MAAM;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,MAAM;AACpD;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ,oBAAoB;AACpB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,OAAO;AAChE;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB,qBAAqB;AACrB;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,4BAA4B;AAC5B,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA,sCAAsC;;AAEtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,OAAO,oBAAoB;AAC/C;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,6CAA6C;AAC/D;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,uBAAuB,SAAS,OAAO,6BAA6B;AACpE;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC;AACpC;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC;AACrC;;AAEA;AACA;AACA,qFAAqF;AACrF,sFAAsF;AACtF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,cAAc;AAC5B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,OAAO,QAAQ,OAAO,eAAe;;AAErC,OAAO,cAAc;AACrB;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD,gCAAgC,iBAAiB;AACjD;AACA,UAAU,QAAQ;AAClB;AACA;AACA;;AAEA,UAAU,QAAQ;AAClB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA,UAAU,QAAQ;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,KAAK;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU,QAAQ;AAClB;AACA,uBAAuB;AACvB;AACA;AACA;AACA,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,yCAAyC;AAC9D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,mBAAmB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,qBAAqB,sBAAsB;AAC7E,qBAAqB;AACrB;AACA;AACA,2BAA2B;AAC3B,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,yFAAyF;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG;AAChG,sHAAsH;AACtH,uGAAuG;AACvG;AACA;AACA;;AAEA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,WAAW,kBAAkB;AAClD,uBAAuB,wDAAwD;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,0BAA0B;AACtC;AACA;AACA;AACA;AACA,YAAY,iBAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA,2BAA2B,6BAA6B;AACxD,qBAAqB;AACrB,YAAY,iBAAiB,OAAO,+BAA+B;AACnE,YAAY,iBAAiB;AAC7B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,aAAa,iBAAiB;AAC9B;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA,aAAa,UAAU;AACvB,SAAS,mBAAmB;AAC5B;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,UAAU,KAAK;AACf;AACA;AACA,cAAc,KAAK;AACnB,cAAc,KAAK;AACnB;AACA;AACA;AACA;AACA,OAAO,0BAA0B;AACjC;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0BAA0B;AACtC;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,aAAa;AACzB;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,OAAO;AACrB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,OAAO;AACpC;AACA;AACA,uBAAuB;AACvB,uBAAuB;AACvB;AACA,+BAA+B;AAC/B;AACA,YAAY,0BAA0B;AACtC;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,eAAe,eAAe;AAC9B,UAAU,WAAW;AACrB;AACA;AACA;AACA,YAAY,0BAA0B;AACtC;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,eAAe,eAAe;AAC9B,UAAU,UAAU;AACpB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,yBAAyB;AAC9F,+DAA+D,sBAAsB,oDAAoD;AACzI;AACA,2CAA2C,UAAU;AACrD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,wBAAwB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,oBAAoB;AACpB;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,wHAAwH;AACxH;AACA;;AAEA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,iDAAiD;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,EAAE,UAAU;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kKAAkK;AAClK;;AAEA,sKAAsK;AACtK;;AAEA,yBAAyB,yEAAyE;;AAElG;;AAEA;AACA,eAAe,YAAY;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,8BAA8B;AAC9D,gCAAgC,8BAA8B;AAC9D,gCAAgC,8BAA8B;AAC9D,gCAAgC,8BAA8B;AAC9D,gCAAgC,8BAA8B;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B;AACA,GAAG;AACH;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY,QAAQ;;AAEpB,YAAY,SAAS;AACrB;;AAEA,yEAAyE;;AAEzE;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,YAAY,aAAa;AACzB,YAAY,OAAO;AACnB;AACA;AACA;;AAEA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA,0CAA0C,MAAM;AAChD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA,MAAM,MAAM;AACZ;;AAEA;AACA;AACA,OAAO,QAAQ;AACf,OAAO,QAAQ;AACf,OAAO,QAAQ;AACf,OAAO,QAAQ;AACf;AACA,CAAC,IAAI;AACL;AACA;AACA,OAAO,uBAAuB;AAC9B,QAAQ,iBAAiB;AACzB;AACA,MAAM,WAAW;;AAEjB;AACA,mBAAmB,uBAAuB;AAC1C,QAAQ,iBAAiB;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;;AAElC;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAiE;AACjE;AACA;AACA;AACA;;AAEA;;AAEA;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,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oDAAoD;AACpD,4CAA4C;AAC5C,2CAA2C;AAC3C,2CAA2C;AAC3C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,aAAa;AACzB,YAAY,OAAO;AACnB;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA,iCAAiC,MAAM;AACvC;AACA;;AAEA;AACA;AACA;AACA,OAAO,+BAA+B;AACtC;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,SAAS;AACzB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC;;AAExC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,qCAAqC;AACtE,sBAAsB,iCAAiC;AACvD;AACA;AACA,IAAI;AACJ;AACA,kBAAkB;AAClB,IAAI;AACJ;AACA;AACA,0BAA0B;AAC1B;AACA,QAAQ,IAAI;AACZ,qCAAqC,wCAAwC;AAC7E;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,qCAAqC;AAChE,wBAAwB,mCAAmC;AAC3D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAoB;;AAEnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,eAAe,aAAa;AAC5C;AACA;AACA,oBAAoB;AACpB,aAAa,aAAa;AAC1B;AACA;;AAEA;;AAEA;AACA;AACA;AACA,8CAA8C;AAC9C,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA,4BAA4B,4BAA4B;AACxD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,YAAY,0BAA0B;AACtC,4CAA4C;AAC5C;AACA;;AAEA;AACA;AACA,aAAa,eAAe;AAC5B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;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;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;;AAEA;AACA,iBAAiB,mBAAmB;AACpC;AACA,wBAAwB,YAAY;AACpC,iBAAiB,eAAe;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,eAAe,4CAA4C,EAAE,mBAAmB,wDAAwD;AACzJ;AACA;;;AAGA;AACA;AACA;AACA,MAAM,SAAS;AACf;AACA;AACA;AACA;AACA,iDAAiD;AACjD,6CAA6C;AAC7C,wDAAwD;AACxD;AACA;AACA;AACA;AACA,sEAAsE;AACtE,2EAA2E;AAC3E;AACA;AACA,2DAA2D,aAAa;AACxE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,kBAAkB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,kBAAkB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,0BAA0B;AAC1C;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,UAAU;AAC7B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,8BAA8B;AACzC;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAiD;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA,sBAAsB;AACJ;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA,wCAAwC,gCAAgC;AACxE,mCAAmC;AACnC;AACA,gCAAgC;AAChC;AACA;AACA;AACA,iCAAiC;AACjC,gEAAgE;AAChE,yFAAyF,2BAA2B;AACpH,uCAAuC,wCAAwC;AAC/E;AACA;AACA;AACA,mEAAmE;AACnE,wBAAwB,cAAc,8BAA8B;AACpE,mEAAmE;AACnE,yFAAyF,2BAA2B;AACpH;AACA;AACA;AACA;AACA;AACA,oGAAoG;AACpG;AACA,yBAAyB,eAAe;AACxC;AACA,sBAAsB,aAAa;AACnC,GAAG,WAAW;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oGAAoG;AACpG;AACA,2BAA2B,kBAAkB;AAC7C,4BAA4B;AAC5B;AACA,GAAG,WAAW;AACd;AACA;AACA;AACA;AACA,gBAAgB,eAAe;AAC/B;AACA;;AAEA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;;AAEA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;;AAEA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;;AAEA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;;AAEA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,eAAe;AAC/B;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,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;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;AACA;AACA;AACA,uGAAuG,qBAAqB;AAC5H,GAAG;;AAEH;AACA,gBAAgB,iBAAiB;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAsD,YAAY,0BAA0B;;AAE5F;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,WAAW,WAAW;AACnH;AACA,iDAAiD,UAAU,WAAW;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,cAAc,OAAO,aAAa;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO,gCAAgC,WAAW;AAClD;;AAEA;AACA;AACA;AACA,OAAO,+BAA+B,WAAW;AACjD;;AAEA;AACA;AACA;AACA,OAAO,+BAA+B,WAAW;AACjD;;AAEA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB;;AAErB;AACA;AACA,sCAAsC,gBAAgB;AACtD,sCAAsC,gBAAgB;AACtD,oDAAoD,gBAAgB;AACpE;AACA;AACA;;AAEA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,OAAO,mBAAmB;AAC1B;AACA;AACA;AACA,kBAAkB,eAAe;AACjC;AACA,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA,UAAU,YAAY;AACtB;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;;AAE7C;AACA,QAAQ;AACR,QAAQ;AACR,MAAM;AACN,MAAM;AACN,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,2DAA2D,gCAAgC,EAAE;AAC7F;AACA;AACA,4DAA4D,uFAAuF,mCAAmC,4CAA4C;AAClO;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,0CAA0C,sBAAsB,iCAAiC,oEAAoE;AACrK;AACA,mDAAmD;;AAEnD;AACA;AACA;AACA,0CAA0C,sBAAsB,6DAA6D,kEAAkE,IAAI;AACnM;;AAEA;AACA;AACA,0CAA0C,sBAAsB,qCAAqC,gEAAgE,IAAI;AACzK;;AAEA;AACA;AACA,yBAAyB;AACzB,4DAA4D;AAC5D,0DAA0D;AAC1D,CAAC;AACD,oDAAoD,2CAA2C;;AAE/F;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,+BAA+B;AAChD;AACA,wBAAwB,qBAAqB,eAAe,+BAA+B;AAC3F;AACA,iBAAiB,2EAA2E;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,iBAAiB;AAC7B;AACA;AACA,qBAAqB,yCAAyC;AAC9D,qBAAqB,sEAAsE;AAC3F,SAAS;AACT;AACA,eAAe,+BAA+B;AAC9C;AACA,iBAAiB,mBAAmB,mBAAmB;AACvD,oBAAoB;AACpB;AACA;AACA;;AAEA,2BAA2B;;AAE3B;AACA;;AAEA,0DAA0D,uDAAuD;AACjH;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,kBAAkB,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA,0CAA0C,kCAAkC,kBAAkB;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA,CAAC;;AAED,wCAAwC;AACxC;AACA;AACA;AACA,GAAG;AACH;AACA,qDAAqD,kBAAkB;AACvE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,yBAAyB;AAC3C,EAAE;AACF;AACA;;AAEA;AACA,0DAA0D;;AAE1D,oCAAoC,iCAAiC,oCAAoC;AACzG,mDAAmD;;AAEnD,+DAA+D,MAAM,8CAA8C,WAAW,iBAAiB;;AAE/I;AACA;AACA;AACA;AACA,iCAAiC;AACjC;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA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AACA,qBAAqB,mCAAmC;AACxD;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,6DAA6D;;AAE7D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,iCAAiC,oCAAoC;AACrE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oCAAoC,UAAU,cAAc,+CAA+C;;AAE3G,WAAW,2CAA2C;AACtD;;AAEA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,uBAAuB,wCAAwC;AAC/D,SAAS,0BAA0B;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,YAAY;AACrC,yBAAyB,YAAY;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD,iDAAiD;AACjD,+CAA+C;AAC/C,iDAAiD;;AAEjD,oDAAoD,yCAAyC,MAAM,gBAAgB,sCAAsC;AACzJ,iDAAiD,sDAAsD,UAAU,WAAW,KAAK,4EAA4E;AAC7M,+CAA+C;AAC/C,iDAAiD;;AAEjD,yDAAyD;AACzD,0DAA0D,6BAA6B,SAAS;AAChG;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,0DAA0D;AAC1D;AACA;AACA;AACA,OAAO,KAAK;AACZ;AACA;AACA;AACA;AACA,wBAAwB;AACxB,UAAU;AACV;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA,oDAAoD;AACpD;AACA;AACA,qDAAqD;AACrD,qDAAqD;AACrD;AACA;;AAEA;AACA,UAAU,GAAG,QAAQ,IAAI;AACzB;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;;AAEA,cAAc,SAAS;AACvB;AACA;AACA;AACA;;AAEA,6BAA6B,aAAa,aAAa;AACvD;;AAEA,cAAc,UAAU;AACxB;AACA;AACA;AACA;;AAEA,cAAc,UAAU;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B,4DAA4D;AACtF,OAAO,wCAAwC,mDAAmD,WAAW;AAC7G;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB;AAClB,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,yBAAyB,IAAI,uBAAuB,MAAM,UAAU;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA,yBAAyB,eAAe;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wBAAwB;AACxD;AACA;AACA,4BAA4B,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,cAAc;AACrC,YAAY,cAAc,0BAA0B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,iCAAiC,YAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB,cAAc;AACnD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B,0BAA0B;AAC1B;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA,eAAe,iBAAiB;AAChC,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB,cAAc;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB,cAAc;AACnD;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX,UAAU;AACV;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB,cAAc;AACnD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E,gFAAgF,UAAU;AAC1F;AACA,uDAAuD;AACvD;;;AAGA;AACA;AACA,yBAAyB,KAAK,SAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,+BAA+B;;AAE/B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA,6BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;AACA;AACA,6BAA6B,qBAAqB,qBAAqB;AACvE;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;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;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD,mDAAmD;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,0BAA0B;AAC1B,0BAA0B;AAC1B;;AAEA;AACA;AACA,uBAAuB,yBAAyB;AAChD,uBAAuB,6BAA6B;AACpD,uBAAuB,uCAAuC;AAC9D,uBAAuB,0BAA0B;AACjD,uBAAuB,0BAA0B;AACjD,uBAAuB,+BAA+B;AACtD,uBAAuB,2BAA2B;AAClD,uBAAuB,0BAA0B;AACjD,uBAAuB,4BAA4B;AACnD,uBAAuB,oCAAoC;AAC3D,uBAAuB,4BAA4B;AACnD,uBAAuB,sEAAsE;AAC7F,uBAAuB,mEAAmE;AAC1F,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,gCAAgC;AACvD,uBAAuB,+BAA+B;AACtD,uBAAuB,4BAA4B;AACnD,uBAAuB,oCAAoC;AAC3D,uBAAuB,yCAAyC;AAChE,uBAAuB,yBAAyB;AAChD,uBAAuB,gCAAgC;AACvD,uBAAuB,kCAAkC;AACzD,uBAAuB,6BAA6B;AACpD,uBAAuB,4BAA4B;AACnD,uBAAuB;AACvB;AACA,6BAA6B,wBAAwB;AACrD,6BAA6B,0BAA0B;AACvD;AACA;;AAEA;AACA;AACA,uBAAuB,yBAAyB;AAChD,uBAAuB,0BAA0B;AACjD,uBAAuB,4BAA4B;AACnD,uBAAuB,2BAA2B;AAClD,uBAAuB,6BAA6B;AACpD,uBAAuB,6BAA6B;AACpD,uBAAuB,6BAA6B;AACpD,uBAAuB,+BAA+B;AACtD,uBAAuB,8BAA8B;AACrD,uBAAuB,+BAA+B;AACtD,uBAAuB,kCAAkC;AACzD,uBAAuB,kCAAkC;AACzD,uBAAuB,mCAAmC;AAC1D,uBAAuB,0BAA0B;AACjD,uBAAuB,0BAA0B;AACjD,uBAAuB,0BAA0B;AACjD,uBAAuB,0BAA0B;AACjD,uBAAuB,gCAAgC;AACvD,uBAAuB,4BAA4B;AACnD,uBAAuB;AACvB;AACA,6BAA6B,wBAAwB;AACrD,6BAA6B,0BAA0B;AACvD;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6EAA6E,6BAA6B,wCAAwC;;AAElJ;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;;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;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qCAAqC;AACrC,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,UAAU;AACV;AACA;AACA,GAAG;AACH,cAAc;AACd;AACA;AACA,GAAG;AACH,YAAY;AACZ;AACA;AACA,GAAG;AACH,YAAY;AACZ;AACA;AACA,GAAG;AACH,aAAa;AACb;AACA;AACA,GAAG;AACH,YAAY;AACZ;AACA;AACA,GAAG;AACH,cAAc;AACd;AACA;AACA,GAAG;AACH,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF;AAChF,wDAAwD;AACxD;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,uBAAuB;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,sCAAsC;AAC3E,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,4BAA4B;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,CAAC;;;AAGD;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,mBAAmB,uBAAuB,eAAe;AAC1E;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF,iBAAiB,oCAAoC;AACrD;AACA;;AAEA;AACA;AACA;AACA;AACA,qCAAqC,0BAA0B,OAAO;AACtE;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;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;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;;AAEA;AACA;AACA,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA,uJAAuJ,4BAA4B;AACnL,4JAA4J,4BAA4B;AACxL;;AAEA,gBAAgB,wBAAwB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,wCAAwC;AACzD;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,qBAAqB,eAAe,2CAA2C,QAAQ,QAAQ;AAC/F,kFAAkF,aAAa;AAC/F;AACA,qCAAqC,gBAAgB;AACrD;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA,sDAAsD;AACtD,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,mDAAmD;AACnD,iDAAiD;AACjD;AACA;AACA,EAAE;;AAEF;AACA,yJAAyJ,2BAA2B;AACpL,kFAAkF,qDAAqD,aAAa,sCAAsC;AAC1L,iBAAiB,iCAAiC;AAClD;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA,iDAAiD;AACjD,oCAAoC;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,KAAK,gCAAgC;AACrC,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,yCAAyC;AACzC;AACA,cAAc,qCAAqC;AACnD;AACA;AACA,GAAG;AACH,EAAE;AACF,iBAAiB,+BAA+B;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;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,uBAAuB;AACxC,aAAa,sBAAsB;AACnC;AACA,EAAE;AACF;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA,uCAAuC;AACvC;AACA;AACA,EAAE;AACF,qDAAqD,gBAAgB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,iBAAiB,uBAAuB;AACxC,aAAa,sBAAsB;AACnC,aAAa,sBAAsB;;AAEnC;AACA;AACA,6BAA6B,aAAa;AAC1C,uCAAuC,eAAe;AACtD;AACA,wCAAwC,UAAU;AAClD,EAAE;AACF;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,6BAA6B,aAAa;AAC1C,uCAAuC,eAAe;AACtD,+BAA+B,mBAAmB;AAClD;AACA,wCAAwC,UAAU;AAClD,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,aAAa,wBAAwB;AACrC,qBAAqB,qBAAqB,qBAAqB;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA,gEAAgE;AAChE,uDAAuD,uEAAuE;;AAE9H;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;;AAEA;AACA;AACA;AACA,aAAa,gBAAgB,QAAQ;AACrC,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,2BAA2B;AACjF,sDAAsD;AACtD;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,uCAAuC,8BAA8B;AACrE,gEAAgE;AAChE,iHAAiH,8BAA8B;AAC/I;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB,QAAQ;AACzD,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA,wDAAwD,WAAW,gBAAgB;AACnF,yDAAyD,oBAAoB,gBAAgB;AAC7F,sEAAsE,oBAAoB,gBAAgB;AAC1G;AACA,iDAAiD,YAAY;AAC7D;AACA;AACA;AACA;AACA,+DAA+D,SAAS;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,yBAAyB,gBAAgB,wBAAwB;AACjE;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,yCAAyC,wBAAwB;AACjE,0CAA0C,mEAAmE;AAC7G,2CAA2C,mEAAmE;AAC9G,uCAAuC,+BAA+B;AACtE,wCAAwC,0BAA0B;AAClE,uCAAuC,+BAA+B;AACtE,yCAAyC,0BAA0B;AACnE,6CAA6C,uCAAuC;AACpF;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,0GAA0G;AAC1G;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,oBAAoB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY,oBAAoB;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,mBAAmB;AAClD;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,iBAAiB,UAAU;AAC3B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,YAAY,iBAAiB,OAAO,2BAA2B;AAC/D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;;AAEA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA,+BAA+B;;AAE/B;AACA,0BAA0B,8BAA8B;AACxD;;AAEA,eAAe,oCAAoC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,yCAAyC,UAAU;AAC1D;AACA,gCAAgC;AAChC;AACA;AACA,8DAA8D,wBAAwB;AACtF;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,yBAAyB;AAC7D,6BAA6B,qBAAqB,aAAa,KAAK,0BAA0B;;AAE9F;AACA;AACA;AACA;AACA;AACA;;AAEA,8CAA8C;AAC9C,mCAAmC,qBAAqB,wBAAwB;;AAEhF,8DAA8D;AAC9D,wCAAwC,qBAAqB,qBAAqB;AAClF,gEAAgE;;AAEhE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,gCAAgC;AAChC;AACA,gBAAgB,8BAA8B;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,UAAU;AAC3B;AACA;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;AACA;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB,OAAO,iBAAiB;AACtE,uBAAuB;AACvB,4CAA4C,WAAW,iBAAiB;AACxE;AACA;AACA;AACA,GAAG;AACH;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA,aAAa,sBAAsB;AACnC;AACA;AACA,GAAG;AACH;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA,aAAa,2BAA2B;AACxC;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA,8CAA8C,oGAAoG;;AAElJ;AACA,uCAAuC,sCAAsC,UAAU;;;AAGvF;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,UAAU,uBAAuB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,SAAS;AACT;;;;AAIA,wDAAwD;;AAExD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,GAAG,sBAAsB,KAAK;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,GAAG,sBAAsB,KAAK;AACvC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,aAAa;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,IAAI,WAAW,cAAc;AAC7B;AACA,iCAAiC;AACjC;AACA;;AAEA;;AAEA;AACA;AACA,UAAU;AACV,iCAAiC;AACjC,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,OAAO;AACnC,4BAA4B,OAAO;AACnC,4BAA4B,OAAO;AACnC,4BAA4B,OAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;;;AAGA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,6BAA6B;AAC7B,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2BAA2B;AAC3C;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA,8EAA8E,oBAAoB;AAClG;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,cAAc;AACd,iCAAiC;AACjC,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AAMA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;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;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,yBAAyB;AACzB;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI,SAAS,MAAM;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C,8CAA8C;;AAE9C;AACA;AACA;AACA,8BAA8B,iCAAiC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;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;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,qDAAqD;;AAErD;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,EAAE;AACF;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,+BAA+B;AAC/B;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,qBAAqB,kBAAkB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB,aAAa;AAClC,+BAA+B,aAAa;AAC5C,wBAAwB;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,YAAY;AACtB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;;AAEA;AACA;AACA;AACA,kCAAkC;AAClC;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,oBAAoB;AACpB,eAAe;AACf,UAAU;AACV;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,UAAU;AACpC,kBAAkB;AAClB;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,wBAAwB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA,UAAU;AACV,EAAE,WAAW,qBAAqB,SAAS;AAC3C;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,0BAA0B;AAC1B;AACA,gBAAgB,QAAQ;AACxB;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,0BAA0B;AAC1B,gBAAgB,eAAe;AAC/B;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;AACzB,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,uDAAuD;AAClE;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;;AAEA;AACA;AACA,YAAY;AACZ,sBAAsB,kBAAkB;AACxC,6BAA6B;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;;AAEA,iCAAiC;AACjC,8BAA8B;AAC9B,0CAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,UAAU;AAC3B;AACA;;AAEA;AACA;AACA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd;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;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,+BAA+B;AAC/B;AACA,yBAAyB;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,oBAAoB;AACpB,yBAAyB,aAAa,OAAO;AAC7C,yBAAyB,aAAa,OAAO;AAC7C;AACA;AACA,oBAAoB;AACpB,oBAAoB;AACpB,wBAAwB,OAAO;AAC/B;AACA,oBAAoB;AACpB;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;;AAEA,wCAAwC;AACxC,6BAA6B;;AAE7B;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB;;AAEnB,uBAAuB,aAAa,YAAY,eAAe;AAC/D,8DAA8D;AAC9D;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;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa,oBAAoB;AACjC,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD,sGAAsG;AACtG;AACA,2CAA2C;AAC3C,4CAA4C;AAC5C;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA,kGAAkG;AAClG,iGAAiG;AACjG,mDAAmD;AACnD,8CAA8C,kCAAkC;AAChF;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA,OAAO;AACP,YAAY;AACZ,UAAU,wBAAwB;AAClC;;AAEA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,sCAAsC,mCAAmC;AACzE;AACA;AACA,YAAY,oBAAoB;AAChC,kBAAkB,SAAS,UAAU,+BAA+B,QAAQ;AAC5E;AACA;AACA;AACA;AACA,iDAAiD,OAAO;AACxD,qDAAqD,uBAAuB;AAC5E;AACA;AACA;AACA;AACA;AACA,YAAY,4BAA4B;AACxC;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA;AACA,8CAA8C,mBAAmB;AACjE,aAAa,gBAAgB;AAC7B;AACA;AACA,iCAAiC;AACjC,iCAAiC;AACjC,kCAAkC;AAClC,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU,OAAO;AACjB;;AAEA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,OAAO;AACjB,UAAU,iBAAiB;AAC3B;AACA;AACA,WAAW,kBAAkB;AAC7B;AACA;AACA,yFAAyF;AACzF,uDAAuD;AACvD;AACA;AACA;AACA,iBAAiB,+BAA+B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,iBAAiB,+BAA+B,mCAAmC;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,6CAA6C;AAC1D,EAAE;AACF;AACA,qCAAqC,0BAA0B;AAC/D,+CAA+C,wEAAwE;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS,uBAAuB;AAChC;AACA;AACA,8BAA8B,sBAAsB,qBAAqB,8BAA8B,KAAK;AAC5G;AACA;AACA,qBAAqB;AACrB,oBAAoB;AACpB,oBAAoB;AACpB,oBAAoB;AACpB,oBAAoB;AACpB;AACA;AACA,2CAA2C,MAAM;AACjD;AACA;AACA;AACA,aAAa,kBAAkB;AAC/B,qBAAqB;AACrB,mDAAmD,iBAAiB;AACpE;AACA,0CAA0C;AAC1C,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,+EAA+E,gCAAgC;AAC/G;AACA;AACA;AACA;AACA,kDAAkD,QAAQ;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,oDAAoD;AACpD,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qBAAqB;AACvE;AACA;AACA;AACA;AACA,aAAa,kBAAkB;AAC/B,mDAAmD,UAAU;AAC7D;AACA,0CAA0C,QAAQ;AAClD,yBAAyB,QAAQ;AACjC;AACA,yDAAyD;AACzD,qBAAqB;AACrB,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB,qBAAqB;AACrB,qBAAqB;AACrB;AACA;AACA,kCAAkC,0BAA0B;AAC5D;AACA,mCAAmC,YAAY,GAAG,WAAW;AAC7D,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iCAAiC,eAAe;AAChD;AACA;;AAEA,+DAA+D;;AAE/D;AACA,aAAa,eAAe,eAAe;AAC3C;AACA;AACA;AACA,iCAAiC,uBAAuB,SAAS,GAAG;AACpE,6CAA6C;AAC7C,oCAAoC;AACpC,kDAAkD;AAClD,0DAA0D,OAAO,UAAU;AAC3E;AACA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,gBAAgB;AAChB,6BAA6B;AAC7B,kDAAkD;AAClD,yDAAyD;AACzD;AACA,GAAG;AACH;;AAEA;AACA,wCAAwC,KAAK,EAAE;AAC/C;AACA;AACA;;AAEA,mBAAmB;AACnB,mBAAmB,GAAG,MAAM;AAC5B;AACA;;AAEA,mBAAmB,6BAA6B,6BAA6B;AAC7E,qBAAqB,YAAY;AACjC,sBAAsB,YAAY;AAClC,6BAA6B,QAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,uBAAuB;AAChC,uCAAuC,eAAe,OAAO;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,eAAe,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6DAA6D;AAC7D,+DAA+D;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;AACA,uBAAuB,YAAY;AACnC,8BAA8B,QAAQ;AACtC;AACA,iBAAiB,yBAAyB;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,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA,4CAA4C;AAC5C,4CAA4C;;AAE5C;AACA;AACA,SAAS,uBAAuB;AAChC;AACA;AACA;AACA,gDAAgD,aAAa;AAC7D,eAAe;AACf;AACA,6CAA6C;AAC7C,sCAAsC;AACtC;AACA;AACA;AACA;AACA,wDAAwD;AACxD,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2DAA2D;AAC3D,6DAA6D;;AAE7D;AACA;AACA;AACA,kCAAkC;AAClC;;AAEA;AACA;AACA,6BAA6B;AAC7B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB,YAAY;AACjC,sBAAsB,YAAY;AAClC,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA,oBAAoB,WAAW;AAC/B,aAAa,aAAa,WAAW,cAAc;AACnD;AACA;AACA,qCAAqC,YAAY;AACjD;AACA;AACA;AACA;AACA,qBAAqB,cAAc;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;;AAEA;AACA;AACA,+DAA+D;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,QAAQ;AAChB;AACA,wCAAwC;AACxC;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,cAAc,uCAAuC;AACrD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd,OAAO,iBAAiB;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,0EAA0E;;AAErG;AACA;;AAEA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,0BAA0B,IAAI,SAAS,MAAM,UAAU;;AAEvD;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,oBAAoB,cAAc;AAClC,oCAAoC,cAAc;AAClD;AACA,wEAAwE,cAAc;AACtF,4BAA4B,cAAc;AAC1C,WAAW,cAAc;AACzB,0BAA0B,cAAc;AACxC,2BAA2B,cAAc;AACzC,sCAAsC,cAAc,qCAAqC;AACzF;AACA;AACA;AACA,6BAA6B,+CAA+C;AAC5E,sBAAsB,cAAc;AACpC,WAAW,cAAc;AACzB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,uBAAuB;AAC7C,wBAAwB,QAAQ;AAChC,kBAAkB;AAClB;AACA;AACA,wBAAwB,OAAO,OAAO,KAAK;AAC3C;AACA,cAAc,iBAAiB;AAC/B,mDAAmD;AACnD,8EAA8E;AAC9E;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;;AAEA;AACA;AACA;AACA,0CAA0C;AAC1C,2BAA2B;AAC3B;AACA,yDAAyD;AACzD;AACA;AACA;AACA,kCAAkC;AAClC,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8DAA8D;;AAE9D;AACA;AACA;AACA;AACA,qBAAqB,YAAY;AACjC;AACA,sBAAsB,YAAY;AAClC,6BAA6B,QAAQ;AACrC;AACA,kCAAkC,uBAAuB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;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,2CAA2C;AAC3C,iBAAiB;;AAEjB,kBAAkB,IAAI,SAAS,MAAM;AACrC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA,+BAA+B,OAAO;AACtC,qCAAqC,OAAO;AAC5C,6BAA6B,OAAO;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,mBAAmB,IAAI,SAAS,MAAM;AACtC,sBAAsB,oCAAoC;AAC1D;AACA;;AAEA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA,sBAAsB,eAAe;AACrC,yCAAyC;AACzC,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,kBAAkB,IAAI,SAAS,MAAM;AACrC,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,+BAA+B;AAChE;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA,iCAAiC;AACjC,kBAAkB;AAClB;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA,IAAI;AACJ;AACA,8BAA8B,cAAc;AAC5C;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,YAAY;AACrC;AACA,0BAA0B,gBAAgB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0BAA0B,0BAA0B,0CAA0C;;AAE9F;AACA,aAAa,0BAA0B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,YAAY;AACtC;AACA,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,GAAG,QAAQ,IAAI;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;;AAEA;AACA,YAAY,QAAQ,GAAG,UAAU;AACjC;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,gCAAgC;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,gCAAgC,4CAA4C;AAC5E;AACA,gDAAgD;AAChD,6CAA6C;AAC7C;AACA;AACA,iBAAiB;AACjB;AACA,MAAM;;AAEN,0CAA0C;AAC1C,0CAA0C;AAC1C,mDAAmD;;AAEnD;AACA,uBAAuB;AACvB;AACA,MAAM;;AAEN;AACA;AACA,wBAAwB;AACxB;AACA,OAAO;AACP;AACA;AACA,8BAA8B,0FAA0F;AACxH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,YAAY,QAAQ,GAAG,UAAU;AACjC,+BAA+B,uBAAuB;AACtD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,gCAAgC;AAChC,+BAA+B;AAC/B,gCAAgC;AAChC,iCAAiC;AACjC,kCAAkC;AAClC,+BAA+B;AAC/B,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,cAAc,iBAAiB;AACtE,4CAA4C,cAAc,iBAAiB;AAC3E;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA,6BAA6B,MAAM,KAAK;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB;AACzB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;;AAEA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,0BAA0B,+CAA+C,YAAY;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,wBAAwB;AAClD,0BAA0B,SAAS;AACnC,0BAA0B,cAAc;AACxC,0BAA0B,eAAe;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AAEA;AACA,qCAAqC;;AAErC;AACA,gCAAgC;;AAEhC;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;;AAEA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,+DAA+D;AAC/D,+DAA+D;AAC/D;AACA;AACA;AACA,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,wCAAwC;AACxC;;AAEA;AACA,2CAA2C;AAC3C;;AAEA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,aAAa;AAC1F;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;;AAEA,oDAAoD;AACpD,mEAAmE;AACnE,sDAAsD;AACtD,oDAAoD;AACpD,gDAAgD;AAChD;;AAEA,eAAe,mBAAmB;AAClC,eAAe,mBAAmB;AAClC,oBAAoB,mBAAmB;;AAEvC;AACA;AACA;AACA,oBAAoB,+BAA+B;;AAEnD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA,6BAA6B,qBAAqB;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF,gBAAgB,iBAAiB,OAAO;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,mBAAmB;AACzC;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,eAAe;AAC/B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA,+BAA+B,sDAAsD;AACrF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;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;AACA,oEAAoE;AACpE,0CAA0C;AAC1C,2EAA2E;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX,cAAc;AACd,yCAAyC;AACzC,6CAA6C;AAC7C;AACA,2CAA2C;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,cAAc,GAAG;AACnE,mEAAmE,6CAA6C;AAChH,+DAA+D;AAC/D;;AAEA,wCAAwC;AACxC;AACA,yCAAyC;AACzC;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA,+BAA+B;AAC/B,8BAA8B;AAC9B,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,UAAU;AACtB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,uCAAuC;AACvC;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA,kBAAkB,QAAQ;AAC1B;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;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,CAAC;;AAED;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,8DAA8D;AAC1E;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA,YAAY,+CAA+C,WAAW;AACtE;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qDAAqD;;AAErD;AACA;AACA,0BAA0B,IAAI,SAAS,MAAM,wBAAwB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,4BAA4B,SAAS;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,8DAA8D;;AAE9D;AACA;AACA,aAAa;AACb;AACA;AACA,qBAAqB,YAAY;AACjC;AACA,sBAAsB,YAAY;AAClC;AACA,kBAAkB,YAAY;AAC9B,6BAA6B,QAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC;AACpC,kCAAkC;AAClC,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B,aAAa,aAAa;AACxD,8BAA8B,aAAa,aAAa;AACxD,8BAA8B,aAAa,aAAa;AACxD,8BAA8B,aAAa,aAAa;AACxD,8BAA8B,aAAa,aAAa;AACxD,8BAA8B,aAAa,aAAa;AACxD;AACA,gBAAgB,QAAQ;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B;AAC3B,uBAAuB;AACvB,2BAA2B;AAC3B,0BAA0B;AAC1B,8BAA8B;AAC9B,8BAA8B;AAC9B;AACA;AACA;AACA,oCAAoC,aAAa,2DAA2D,8CAA8C;AAC1J;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B;AACA;AACA;AACA,gCAAgC,yBAAyB;AACzD;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB,qBAAqB;;AAErB;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;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;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,6BAA6B;AAC7B,gCAAgC;AAChC;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,yBAAyB;AACxC;;AAEA;AACA;AACA;AACA,oDAAoD,WAAW;;AAE/D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B,gCAAgC;AAChC;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wDAAwD;AACxD;;AAEA;AACA,2DAA2D;AAC3D,+BAA+B;;AAE/B;AACA,6DAA6D;AAC7D,iCAAiC;;AAEjC;AACA;AACA;AACA,yCAAyC;AACzC,2CAA2C;AAC3C,2CAA2C;AAC3C,qDAAqD;AACrD,qDAAqD;AACrD,MAAM;AACN,oCAAoC;;AAEpC;AACA,kEAAkE;AAClE,sCAAsC;;AAEtC;AACA,oEAAoE;AACpE,wCAAwC;;AAExC;AACA,kEAAkE;AAClE,sCAAsC;;AAEtC;AACA,sEAAsE;AACtE,0CAA0C;;AAE1C;AACA,kEAAkE;AAClE,sCAAsC;;AAEtC;AACA,2CAA2C;AAC3C;;AAEA;AACA,wDAAwD;AACxD;;AAEA;AACA,+DAA+D;AAC/D;;AAEA;AACA,kDAAkD;AAClD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sBAAsB;AACrD;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0CAA0C;AAC1C,6CAA6C;;AAE7C;AACA;AACA,6BAA6B;AAC7B,gCAAgC;AAChC;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA,cAAc,cAAc;AAC5B;AACA;AACA,UAAU,cAAc;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,UAAU;AAC/B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,yBAAyB;AACtD;AACA;AACA,oBAAoB,WAAW,+DAA+D,uCAAuC;AACrI,EAAE;AACF;AACA;AACA,qCAAqC,kBAAkB;AACvD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,wBAAwB;AACvC;AACA,eAAe,wBAAwB;AACvC;AACA;AACA,oBAAoB,UAAU,gEAAgE,iBAAiB;AAC/G;AACA,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C;AAC1C,6CAA6C;;AAE7C;AACA;AACA,6BAA6B;AAC7B,gCAAgC;AAChC;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,mCAAmC,iBAAiB;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,iCAAiC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;;AAEd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,yCAAyC,OAAO;AAChD,yCAAyC;AACzC,uCAAuC;AACvC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,yCAAyC;AACzC,gCAAgC;AAChC,gCAAgC;AAChC;;AAEA;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,OAAO;AACzB;AACA,kBAAkB,OAAO;;AAEzB,QAAQ,QAAQ;AAChB,GAAG;AACH,QAAQ,OAAO;;AAEf,QAAQ,QAAQ,0BAA0B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,sBAAsB;AACtB,sBAAsB;AACtB,sBAAsB;AACtB,sBAAsB;AACtB;AACA,yBAAyB;AACzB,sBAAsB;AACtB,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,sBAAsB;AACtB,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,sBAAsB;AACtB,sBAAsB;AACtB,sBAAsB;AACtB,sBAAsB;AACtB,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;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;;AAEA;AACA,iBAAiB;AACjB;AACA,kBAAkB;AAClB;AACA,oBAAoB,aAAa;AACjC;AACA,iBAAiB,cAAc;;AAE/B;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,oBAAoB,WAAW;AAC/B,EAAE;;AAEF;AACA;AACA;AACA,uBAAuB;AACvB,oBAAoB,WAAW;AAC/B,EAAE;AACF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU,QAAQ;AAClB;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,uDAAuD,mBAAmB;AAC1E,uDAAuD,sBAAsB;AAC7E;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA,4BAA4B,yDAAyD;AACrF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA,wBAAwB,cAAc;AACtC;AACA;AACA,UAAU,MAAM,sBAAsB,cAAc,KAAK,WAAW;AACpE;AACA;AACA;AACA;;AAEA;AACA,gDAAgD;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,8CAA8C;AAC9C,iDAAiD;AACjD,mDAAmD;AACnD,uBAAuB;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mDAAmD;AACnD,kEAAkE;AAClE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA,mBAAmB;AACnB,qBAAqB;AACrB,qBAAqB;AACrB,qBAAqB;AACrB,qBAAqB;AACrB,qBAAqB;AACrB,qBAAqB;AACrB,qBAAqB;AACrB,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB,qBAAqB;AACrB;AACA,EAAE;AACF;;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,kBAAkB,gBAAgB;AAClC;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;AACA;AACA;AACA;AACA,yBAAyB,gBAAgB;AACzC;AACA;AACA;AACA;AACA,4BAA4B,6CAA6C;AACzE;AACA,6BAA6B,6CAA6C;AAC1E,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,yBAAyB,cAAc;AACvC;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,4CAA4C;AACtE;AACA,2BAA2B,4CAA4C;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,GAAG;AACH;AACA;AACA;AACA;AACA,olBAAolB,qCAAqC;AACznB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB,cAAc,WAAW;AACrE;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA,YAAY;AACZ;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;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;;AAEA;AACA,iBAAiB;AACjB;AACA,kBAAkB;;AAElB;AACA,YAAY;AACZ;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sFAAsF;AACjH,yDAAyD,2BAA2B,IAAI,eAAe;AACvG;AACA,gCAAgC,kBAAkB;AAClD,8BAA8B,4CAA4C;AAC1E,eAAe,mEAAmE;AAClF;AACA;;AAEA;AACA;AACA,wBAAwB,sCAAsC;AAC9D;AACA,yEAAyE,wCAAwC;AACjH;;AAEA,iBAAiB,uBAAuB;AACxC;;AAEA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB,eAAe,YAAY,YAAY,+BAA+B;AACnH;AACA;AACA,EAAE;AACF;AACA;AACA,6BAA6B,uBAAuB;AACpD;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,IAAI;AACJ;AACA,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,2DAA2D;AACnF;;AAEA;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA,oCAAoC,mBAAmB;AACvD,6BAA6B,6BAA6B;AAC1D;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uFAAuF;AACzH;AACA;AACA;AACA,uEAAuE;AACvE;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA,oDAAoD,wBAAwB;;AAE5E;AACA;AACA,4BAA4B,2BAA2B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI;AACN,2BAA2B,yBAAyB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,kBAAkB,eAAe;AACjC;AACA;AACA;AACA,EAAE;AACF;AACA,kBAAkB,+BAA+B;AACjD;AACA;;AAEA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uCAAuC,mDAAmD;AAC1F,uEAAuE;;AAEvE,uDAAuD;AACvD,kGAAkG;;AAElG;AACA,qDAAqD;AACrD,qCAAqC;;AAErC;;AAEA;AACA;AACA;AACA,2BAA2B;AAC3B,8BAA8B;;AAE9B;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA,4DAA4D,sBAAsB;AAClF;AACA;AACA;AACA,cAAc,aAAa;AAC3B;AACA;AACA;AACA,UAAU,0EAA0E;AACpF;AACA;AACA;AACA;AACA,+BAA+B,kFAAkF;AACjH;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6BAA6B,+BAA+B,GAAG;AAC/D;;AAEA;AACA;AACA;AACA,2BAA2B;AAC3B,8BAA8B;;AAE9B;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,SAAS,kEAAkE;AAC3E;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,+BAA+B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,aAAa;AACb;AACA,iBAAiB,aAAa,aAAa;AAC3C;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;;AAE/B;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA,kBAAkB;AAClB;AACA;;;AAGA;AACA,YAAY;AACZ;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,WAAW;AAC9C;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,kGAAkG,QAAQ;AAC1G,kGAAkG,QAAQ;AAC1G,kGAAkG,QAAQ;AAC1G,kGAAkG,QAAQ;AAC1G;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA;;AAEA;AACA,iCAAiC,aAAa;;AAE9C;AACA,iCAAiC,aAAa;;AAE9C;;AAEA,0BAA0B;AAC1B,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,6CAA6C,IAAI,YAAY,EAAE,sCAAsC,EAAE,YAAY,EAAE,aAAa,EAAE,kCAAkC,IAAI;AAC1K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B,WAAW;;AAEvC;AACA;AACA;AACA;AACA;;AAEA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,GAAG,kCAAkC,KAAK;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,GAAG,kCAAkC,KAAK;AACpD;;AAEA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,UAAU,GAAG,kCAAkC,KAAK;AACpD;;AAEA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B,mBAAmB;AACnB;AACA;AACA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B,mBAAmB;AACnB;AACA;AACA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA,yBAAyB;AACzB;AACA,sCAAsC;AACtC;AACA;AACA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA,gCAAgC;AAChC;AACA,yCAAyC;AACzC;AACA;;;AAGA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,yBAAyB;AACzB;AACA,2CAA2C;AAC3C;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB;AACzB,8BAA8B,UAAU;;AAExC,yBAAyB;AACzB,8BAA8B,UAAU;;AAExC,yBAAyB;AACzB,+BAA+B,UAAU;;AAEzC,yBAAyB;AACzB,8BAA8B,UAAU;;AAExC,yBAAyB;AACzB,4CAA4C,UAAU;;AAEtD,qCAAqC,WAAW;AAChD,kCAAkC,SAAS;AAC3C;AACA;AACA;AACA,4BAA4B,OAAO;AACnC,4BAA4B,OAAO;AACnC,4BAA4B,OAAO;AACnC,4BAA4B,OAAO;AACnC;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,qCAAqC;AACrC;AACA,gBAAgB;AAChB;AACA,iCAAiC;AACjC;AACA,6CAA6C,qCAAqC,GAAG;AACrF,oDAAoD;AACpD;AACA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA,6BAA6B;AAC7B,6BAA6B;AAC7B,GAAG;AACH,iCAAiC;AACjC,iCAAiC;AACjC;AACA,uCAAuC,QAAQ;AAC/C;AACA,8CAA8C,0BAA0B;AACxE,iBAAiB,WAAW;AAC5B;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,+BAA+B;AAC/B,wBAAwB;AACxB;AACA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;;AAGA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA,yBAAyB;AACzB;AACA,0BAA0B;AAC1B;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;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,yBAAyB;AACzB;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;;AAEA,yBAAyB;AACzB;AACA,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,0BAA0B;AACjD,uBAAuB,0BAA0B;AACjD,uBAAuB,0BAA0B;AACjD,uBAAuB,0BAA0B;AACjD,uBAAuB,4BAA4B;AACnD,uBAAuB,6BAA6B;AACpD,uBAAuB,yBAAyB;AAChD,uBAAuB,yBAAyB;AAChD,uBAAuB,yBAAyB;AAChD,uBAAuB,yBAAyB;AAChD,uBAAuB,yBAAyB;AAChD,uBAAuB,yBAAyB;AAChD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,6BAA6B;AACpD,uBAAuB,8BAA8B;AACrD,uBAAuB,4BAA4B;AACnD,uBAAuB,8BAA8B;AACrD,uBAAuB,4BAA4B;AACnD,uBAAuB,gCAAgC;AACvD,uBAAuB,sCAAsC;AAC7D,uBAAuB,4BAA4B;AACnD,uBAAuB,8BAA8B;AACrD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,gCAAgC;AACvD,uBAAuB,8BAA8B;AACrD,uBAAuB,oCAAoC;AAC3D,uBAAuB,8BAA8B;AACrD,uBAAuB,4BAA4B;AACnD,uBAAuB,8BAA8B;AACrD,uBAAuB,oCAAoC;AAC3D,uBAAuB,kCAAkC;AACzD,uBAAuB,sCAAsC;AAC7D,uBAAuB,oCAAoC;AAC3D,uBAAuB,kCAAkC;AACzD,uBAAuB,oCAAoC;AAC3D,uBAAuB,8BAA8B;AACrD,uBAAuB,gCAAgC;AACvD,uBAAuB,sCAAsC;AAC7D,uBAAuB,wCAAwC;AAC/D,uBAAuB,gCAAgC;AACvD,uBAAuB,gCAAgC;AACvD,uBAAuB,kCAAkC;AACzD,uBAAuB,sCAAsC;AAC7D,uBAAuB,wCAAwC;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;;AAEA;AACA,uBAAuB,kCAAkC;AACzD,uBAAuB,gCAAgC;AACvD,uBAAuB,kCAAkC;AACzD,uBAAuB,kCAAkC;AACzD,uBAAuB,oCAAoC;AAC3D,uBAAuB,0CAA0C;AACjE,uBAAuB,4CAA4C;AACnE,uBAAuB,oCAAoC;AAC3D,uBAAuB,sCAAsC;AAC7D,uBAAuB,gDAAgD;AACvE,uBAAuB,8BAA8B;AACrD,uBAAuB,kCAAkC;AACzD;AACA;AACA;AACA,uBAAuB,sCAAsC;AAC7D,uBAAuB,sCAAsC;AAC7D,uBAAuB,kCAAkC;AACzD,uBAAuB,0CAA0C;AACjE,uBAAuB,sCAAsC;AAC7D,uBAAuB,oCAAoC;AAC3D,uBAAuB,0CAA0C;AACjE,uBAAuB,0CAA0C;AACjE,uBAAuB,wCAAwC;AAC/D,uBAAuB,gDAAgD;AACvE,uBAAuB,4CAA4C;AACnE;AACA;;AAEA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;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;AACA;AACA;;AAEA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,kDAAkD;AAClD;AACA,KAAK;AACL;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,oBAAoB;AACpB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,mBAAmB,UAAU,IAAI;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,GAAG,SAAS,IAAI;AAC3D;AACA;AACA;AACA,4CAA4C,YAAY;AACxD;AACA;AACA;AACA,mCAAmC;AACnC;AACA,mCAAmC;AACnC;AACA,mCAAmC;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB,sCAAsC;AAC9D;AACA,mBAAmB;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yCAAyC;AACzC;AACA,0CAA0C;AAC1C;AACA,8BAA8B;AAC9B;AACA;AACA,sDAAsD;AACtD;AACA,0CAA0C;AAC1C;AACA,wBAAwB,uCAAuC,QAAQ;AACvE;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB,sCAAsC;AAC9D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6CAA6C;AAC7C;AACA,gDAAgD,6BAA6B;AAC7E;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E;AAC1E,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA,+DAA+D;AAC/D;AACA,8DAA8D;AAC9D;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;;AAEvC;AACA,yBAAyB;;AAEzB;AACA,yBAAyB;;AAEzB;AACA,SAAS;AACT,cAAc,oBAAoB;AAClC;AACA;AACA;AACA,MAAM;AACN;AACA,cAAc,4BAA4B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,iDAAiD;AAClE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yBAAyB;;AAEzB;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,yCAAyC,aAAa;AACtD,iCAAiC,aAAa;AAC9C,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,oBAAoB;;AAEpC;AACA;AACA;;;AAGA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,8BAA8B;AACjH;AACA;AACA,qBAAqB,0BAA0B;AAC/C;;AAEA;AACA;AACA;AACA,oBAAoB,wBAAwB;AAC5C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,eAAe;AACf,mBAAmB;;;AAGnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS,mBAAmB;AAC5B,mCAAmC,cAAc;AACjD;AACA;AACA,GAAG,WAAW,SAAS;AACvB,yBAAyB,cAAc;AACvC;AACA,cAAc,MAAM,WAAW,cAAc;AAC7C;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2BAA2B;AAC3C;AACA;AACA,yBAAyB;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ,WAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG,WAAW;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,WAAW;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,WAAW;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB;AACnB;;AAEA;AACA,wCAAwC;AACxC,4BAA4B,IAAI,qBAAqB,MAAM,WAAW;;AAEtE;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA,kDAAkD,SAAS;AAC3D;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B,uBAAuB;AACjD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,QAAQ,qEAAqE;AAC7E;AACA;AACA;;AAEA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,0CAA0C,wCAAwC;AAClF,yCAAyC,yCAAyC;AAClF;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,IAAI;AACJ;AACA,UAAU;AACV;AACA;AACA,oBAAoB,2BAA2B;AAC/C;AACA,oBAAoB,WAAW,uBAAuB,WAAW;AACjE,2BAA2B,QAAQ;AACnC;AACA;AACA,4BAA4B;AAC5B;AACA,KAAK;AACL,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC,+BAA+B,gBAAgB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,kCAAkC,UAAU;AAC5C;AACA;AACA;AACA,8BAA8B,0CAA0C;AACxE,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA,oDAAoD;AACpD;AACA,oCAAoC,wFAAwF;AAC5H,uCAAuC,QAAQ;AAC/C;;AAEA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,eAAe,mBAAmB;AAClC;AACA,aAAa,cAAc;AAC3B,uEAAuE;AACvE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,4BAA4B;AAC5B,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,6CAA6C,MAAM;AACnD;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,uBAAuB;AACvB,uBAAuB;AACvB;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA,eAAe;AACf;AACA,gBAAgB;AAChB;AACA,sBAAsB,eAAe;AACrC;AACA,2DAA2D,uBAAuB;AAClF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,sEAAsE,eAAe;AACrF;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA,qDAAqD,MAAM;AAC3D;AACA;AACA;AACA,0DAA0D;AAC1D;AACA,kBAAkB;AAClB,kBAAkB,gBAAgB,iCAAiC;AACnE,6BAA6B,gBAAgB;AAC7C,oCAAoC,gBAAgB;AACpD;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;;AAEA;AACA,gBAAgB;AAChB,gBAAgB,gBAAgB,iCAAiC;AACjE,2BAA2B,gBAAgB;AAC3C,kCAAkC,gBAAgB;AAClD;AACA;;AAEA;AACA;AACA,sBAAsB,wBAAwB;AAC9C;AACA,cAAc,oBAAoB;AAClC;AACA;AACA,2BAA2B,UAAU,KAAK;AAC1C;AACA;AACA,aAAa;AACb,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,cAAc,eAAe,uCAAuC;AACpE;AACA,mCAAmC,iBAAiB;AACpD;AACA,SAAS,KAAK;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,uCAAuC;AACvC;AACA;AACA,YAAY,kCAAkC;AAC9C;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,WAAW;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA,gBAAgB,KAAK;AACrB,oBAAoB,gBAAgB;AACpC,oBAAoB,gBAAgB;AACpC;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,KAAK;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C,oBAAoB;AACpB;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C,oBAAoB;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,WAAW;;AAEzD;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gCAAgC;;AAEvD;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,oIAAoI,gCAAgC;;AAEpK;;AAEA;AACA;AACA,4CAA4C,mBAAmB;AAC/D;AACA;;AAEA;AACA;AACA,kDAAkD,mBAAmB;AACrE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,gCAAgC;AAClD;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB;;AAEtB;AACA;AACA;AACA;;AAEA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;;AAEA,sBAAsB;;AAEtB;AACA;AACA;;AAEA,cAAc;AACd,gBAAgB,QAAQ;AACxB;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA,cAAc,yBAAyB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,iBAAiB,OAAO;AACxB;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;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;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;;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E;AAC9E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E;AAC9E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E;AAC9E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E;AAC9E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,+CAA+C;AAC1D;AACA;AACA;AACA;AACA;AACA,qBAAqB,yCAAyC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB,qCAAqC,mCAAmC;AACxE;AACA;AACA;AACA;AACA;AACA,qCAAqC,sCAAsC;AAC3E;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC,sBAAsB;AACtB;AACA,sBAAsB;AACtB,sBAAsB;AACtB,sBAAsB;AACtB;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,4CAA4C;;AAE5C;AACA,iBAAiB,IAAI,qBAAqB,MAAM;;AAEhD;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,oEAAoE,gBAAgB;AACpF;AACA;AACA,8BAA8B,qBAAqB;AACnD;;AAEA;AACA;;AAEA,4BAA4B;;AAE5B;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;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,UAAU,SAAS;AACnB;AACA,6BAA6B;AAC7B,oCAAoC,cAAc,cAAc;AAChE,4CAA4C;AAC5C,6BAA6B,6CAA6C;AAC1E,4BAA4B,cAAc;AAC1C,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA,qBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC,SAAS,WAAW;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU,eAAe;AACzB;AACA,qBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB;;AAEtB,kBAAkB;AAClB,0BAA0B;AAC1B,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,sBAAsB,eAAe,uBAAuB,eAAe;AAC3E;AACA;AACA,8BAA8B;AAC9B;AACA,OAAO;AACP,0BAA0B,QAAQ;AAClC,8BAA8B;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kDAAkD,aAAa;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,aAAa;AAC/D;;AAEA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,oBAAoB,gBAAgB;AACpC;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,gDAAgD;AAChD;;AAEA;AACA,gCAAgC;AAChC;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,iBAAiB;AACjB;AACA,kBAAkB;AAClB;AACA,oBAAoB,aAAa;AACjC;AACA,iBAAiB,cAAc;;AAE/B;AACA,aAAa;AACb;AACA;AACA,EAAE;;AAEF;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,qCAAqC;AACrC;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA,sCAAsC;AACtC,wBAAwB;AACxB;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA,4CAA4C,gBAAgB;AAC5D;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qCAAqC,qEAAqE;AAC1G;AACA;;AAEA;AACA;AACA;AACA,sCAAsC,4EAA4E;AAClH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,UAAU;AAC5C;AACA;AACA;AACA,8BAA8B,0CAA0C;AACxE,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA,oDAAoD;AACpD;AACA,oCAAoC,wFAAwF;;AAE5H;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,MAAM,mEAAmE;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;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,EAAE;;AAEF;AACA;;AAEA,+DAA+D,6BAA6B;;AAE5F;AACA;;AAEA;AACA;AACA,qCAAqC,gBAAgB;AACrD;AACA;;AAEA;AACA,iBAAiB,IAAI,qBAAqB,MAAM;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,GAAG;AACH;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,WAAW,2CAA2C;AACtD;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF,2CAA2C,eAAe;AAC1D;AACA,kBAAkB,iCAAiC;AACnD;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA,mBAAmB;AACnB,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA,kBAAkB;AAClB;AACA,oBAAoB;AACpB;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,UAAU,aAAa,GAAG,IAAI;AAC9B;;AAEA;AACA;AACA;AACA;;AAEA;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,EAAE;;AAEF;AACA,gBAAgB,oBAAoB,OAAO;AAC3C,eAAe,sBAAsB,OAAO;AAC5C;AACA;AACA,gFAAgF;AAChF,+EAA+E;AAC/E;AACA;AACA;AACA;AACA;AACA,gBAAgB,sBAAsB,OAAO;AAC7C;AACA;AACA,+FAA+F;AAC/F,8FAA8F;AAC9F;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,0BAA0B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,aAAa,YAAY,iCAAiC,uBAAuB;AACpG;AACA,eAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC,mBAAmB;AACxD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D,4DAA4D;AAC5D;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8DAA8D,mBAAmB;AACjF;;AAEA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA,kCAAkC;AAClC,sCAAsC;AACtC;AACA;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,2DAA2D;AAC3D,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,gCAAgC,eAAe;AAC/C,kCAAkC,eAAe;AACjD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,OAAO;AAClC,8BAA8B;;AAE9B;AACA;AACA;AACA,yCAAyC;AACzC,2CAA2C;;AAE3C;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;;AAEA,4BAA4B,wBAAwB;AACpD;AACA;AACA,sEAAsE;AACtE;AACA;AACA;AACA,GAAG;AACH,qEAAqE;AACrE,qCAAqC,oDAAoD;AACzF;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,2BAA2B;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAY,2BAA2B;AACvC,cAAc,6CAA6C;AAC3D;AACA;AACA;AACA,iCAAiC;AACjC,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,6BAA6B;AAC9C;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,uBAAuB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,aAAa,YAAY,iCAAiC;AACtE;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kBAAkB;AAClD;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;AACA;;AAEA;AACA,oBAAoB,aAAa;AACjC;AACA,iBAAiB,cAAc;AAC/B;AACA,oBAAoB,aAAa;AACjC;AACA,iBAAiB,cAAc;;AAE/B;;AAEA;AACA,YAAY;AACZ;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,6BAA6B;AAC/C;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,mBAAmB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,kBAAkB,eAAe;AACjC;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,eAAe;AACjC;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,sBAAsB,gBAAgB;;AAEtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C;AAC5C,mDAAmD;AACnD,mDAAmD;AACnD,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,WAAW;AACd;AACA;AACA;AACA;AACA,yCAAyC,SAAS,cAAc;AAChE;AACA,GAAG,WAAW;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,2FAA2F;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,qBAAqB,uCAAuC;AAC1F;AACA,+BAA+B;AAC/B,UAAU,cAAc;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F,aAAa,oBAAoB,oBAAoB;AACpJ,wHAAwH,oDAAoD;AAC5K;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,mBAAmB,MAAM,KAAK;AAC9B,wBAAwB,OAAO,QAAQ;AACvC,mBAAmB,MAAM,KAAK;AAC9B,EAAE;;;AAGF;AACA;AACA;AACA,gBAAgB,mFAAmF;AACnG,eAAe,oBAAoB;AACnC;AACA;AACA,2BAA2B,IAAI,qBAAqB,MAAM;AAC1D,gBAAgB;AAChB;AACA;AACA,eAAe,gBAAgB;AAC/B,gEAAgE;AAChE;AACA;AACA,iDAAiD;AACjD,iCAAiC,oBAAoB,iBAAiB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,wIAAwI,QAAQ;AAChJ,UAAU,SAAS,gCAAgC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,gBAAgB,8BAA8B;AAC9C;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,kBAAkB,GAAG,QAAQ,IAAI,WAAW;AAC5C;AACA,2BAA2B,iCAAiC;AAC5D;AACA,0BAA0B,gBAAgB;AAC1C,sBAAsB,WAAW;AACjC,uBAAuB,WAAW;AAClC;AACA;AACA;AACA,+BAA+B;AAC/B,UAAU,oDAAoD;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,KAAK;AACL;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gBAAgB,IAAI,qBAAqB,MAAM;AAC/C;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC,0CAA0C,iBAAiB,0CAA0C,2BAA2B;AAChI;;AAEA;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC;AACA;AACA,oBAAoB,eAAe;AACnC,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,SAAS;AAC3D,IAAI;AACJ;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;;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;;AAEA;AACA;AACA,mBAAmB;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;;AAEA;AACA,mBAAmB;AACnB;AACA;AACA,gCAAgC;AAChC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA,wDAAwD;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,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA,mCAAmC;AACnC;AACA,+CAA+C;AAC/C,mDAAmD;AACnD;AACA;AACA;AACA;AACA,uEAAuE;AACvE;AACA;AACA;AACA,uEAAuE;AACvE;AACA;AACA;AACA;AACA,uEAAuE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;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,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;;AAEN;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B;AAC5B;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;AACA,gDAAgD,+CAA+C;;AAE/F,kBAAkB,uBAAuB;AACzC;AACA,EAAE;AACF;AACA;AACA,8BAA8B,sCAAsC,wDAAwD,QAAQ,EAAE;AACtI;AACA,aAAa,cAAc;AAC3B,oFAAoF;AACpF;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B,oFAAoF;AACpF;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8DAA8D,iCAAiC;AAC/F,8DAA8D,iCAAiC;AAC/F;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8IAA8I;AAC9I;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;;AAEA;;AAEA,cAAc,cAAc,mBAAmB;;AAE/C;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;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iDAAiD;AAC1E;;AAEA;AACA,mDAAmD,eAAe;AAClE;AACA;AACA;AACA;AACA;AACA,kCAAkC,0CAA0C;AAC5E,kCAAkC,gBAAgB;AAClD,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;AAC5C,0BAA0B,oBAAoB;AAC9C,2BAA2B,0BAA0B;AACrD,yBAAyB,kBAAkB;AAC3C,4BAA4B,oCAAoC,qDAAqD;AACrH,0BAA0B,4BAA4B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,EAAE;AACF;AACA,wBAAwB,gBAAgB;AACxC;AACA,yBAAyB,gBAAgB;AACzC;AACA,eAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,mCAAmC;AACnC;AACA;AACA,iCAAiC,GAAG,QAAQ,aAAa;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,0BAA0B;AAC1C,6DAA6D,sCAAsC;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;;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,aAAa;AACb,gBAAgB,iBAAiB,OAAO,iBAAiB;AACzD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,WAAW;AACd;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,iDAAiD;AACrF,GAAG,WAAW;AACd;AACA,qCAAqC,SAAS,WAAW;AACzD;AACA;;AAEA;AACA,UAAU,sBAAsB;AAChC;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA,kDAAkD;AAClD;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,iCAAiC,oBAAoB,eAAe,WAAW,GAAG;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,4CAA4C,kBAAkB;AAC9D,4CAA4C,kBAAkB;AAC9D;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,8CAA8C,GAAG,QAAQ,IAAI;AAC7D;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,2BAA2B;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,mBAAmB;AACnB,MAAM;AACN;AACA;AACA,wBAAwB;AACxB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,uDAAuD;AACvD,yDAAyD;AACzD,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA,kCAAkC;AAClC,kCAAkC;AAClC,kCAAkC;AAClC;AACA;AACA;AACA;AACA,mDAAmD;AACnD,wDAAwD;AACxD,+DAA+D;AAC/D,6DAA6D;AAC7D,6DAA6D;AAC7D,2DAA2D;AAC3D,2DAA2D;AAC3D,qEAAqE;AACrE,uEAAuE;AACvE,2DAA2D,OAAO;AAClE,oEAAoE;AACpE;AACA;AACA,8DAA8D;AAC9D,8DAA8D;AAC9D,YAAY;AACZ;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA,yCAAyC;AACzC;AACA,2DAA2D;AAC3D;AACA,gCAAgC,kBAAkB;AAClD,wFAAwF,yCAAyC;AACjI;AACA;AACA;AACA;AACA;AACA,sDAAsD,OAAO;AAC7D,sGAAsG;AACtG;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,oCAAoC;AACpC,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,gDAAgD,eAAe,sBAAsB;AACrF;AACA;AACA,oCAAoC;;AAEpC,2CAA2C,sBAAsB;;AAEjE;AACA;AACA,eAAe,GAAG,QAAQ,IAAI;AAC9B;AACA,qBAAqB;AACrB;AACA;AACA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,gBAAgB,uBAAuB,KAAK;AAC5C,MAAM;AACN;AACA,8FAA8F,iBAAiB;AAC/G,kBAAkB,qCAAqC,mBAAmB;AAC1E;AACA;AACA,cAAc,iBAAiB;AAC/B,MAAM;AACN;AACA,kBAAkB,sDAAsD;AACxE;AACA;AACA,cAAc,iBAAiB;AAC/B,MAAM;AACN;AACA,kBAAkB,sDAAsD;AACxE;AACA;AACA,cAAc,iBAAiB;AAC/B,MAAM;AACN;AACA,wBAAwB,YAAY;AACpC;AACA,kBAAkB,wDAAwD;AAC1E;AACA;AACA,eAAe,aAAa;AAC5B;AACA,MAAM;AACN;AACA,+BAA+B,oBAAoB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,aAAa;AAC3C;AACA,+EAA+E;AAC/E,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,aAAa;AACb;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA,kBAAkB,yCAAyC;AAC3D;AACA;AACA,cAAc,iBAAiB;AAC/B,MAAM;AACN;AACA,yBAAyB,aAAa;AACtC;AACA,kBAAkB,iCAAiC;AACnD;AACA;AACA,eAAe,cAAc;AAC7B;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iBAAiB;AAC/B;;AAEA;AACA,uCAAuC;AACvC,MAAM;AACN;AACA;AACA,MAAM;AACN,gCAAgC;AAChC;AACA;AACA,yBAAyB,wBAAwB;AACjD;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA,MAAM;;AAEN,+DAA+D;;AAE/D,qEAAqE;AACrE,mDAAmD;AACnD,yDAAyD;;AAEzD;AACA,4BAA4B,oBAAoB;AAChD,6BAA6B,oBAAoB;AACjD,qEAAqE,cAAc;AACnF;AACA;AACA,MAAM;AACN;AACA,4BAA4B,oBAAoB;AAChD,6BAA6B,oBAAoB;AACjD,qEAAqE,cAAc;AACnF;AACA;AACA,MAAM;AACN;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA,wCAAwC,MAAM;AAC9C,QAAQ;AACR,yCAAyC,MAAM;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,MAAM;AACN,mEAAmE;AACnE;AACA;AACA;AACA,2BAA2B;AAC3B,qBAAqB,gBAAgB;AACrC;AACA;AACA,MAAM;AACN;AACA;AACA,6BAA6B,yBAAyB;AACtD,sBAAsB,yBAAyB;AAC/C;AACA;AACA,4BAA4B;AAC5B;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,8DAA8D;AAC9D,uBAAuB,sDAAsD;AAC7E;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,2CAA2C;AAC3C,8CAA8C;AAC9C;AACA,uDAAuD;AACvD;AACA;AACA,MAAM;AACN;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,oDAAoD,+BAA+B,kBAAkB,0BAA0B;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,uDAAuD,iDAAiD;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,UAAU,kBAAkB;;AAE/B;AACA;AACA;AACA;AACA;AACA,GAAG,UAAU,kBAAkB;;AAE/B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC,kBAAkB,oBAAoB;AACtC;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA,aAAa,iBAAiB,2DAA2D;AACzF;AACA;AACA,YAAY,qBAAqB;AACjC;AACA;AA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AAC1B;AACA,6CAA6C,2BAA2B;AACxE;AACA,kCAAkC;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA,yBAAyB,gBAAgB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,uBAAuB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU,QAAQ;AAClB;AACA;AACA;AACA,EAAE;AACF;;;AAGA;AACA;AACA;AACA,uBAAuB;AACvB,oBAAoB,WAAW;AAC/B,EAAE;AACF;;AAEA;AACA;AACA;AACA,0BAA0B,qBAAqB;AAC/C,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA,0BAA0B,qBAAqB;AAC/C,sBAAsB,qBAAqB;AAC3C,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,QAAQ,mDAAmD,uBAAuB;AAClG;AACA;AACA,EAAE;AACF;;AAEA;AACA,cAAc,uBAAuB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C,qDAAqD;AACrD;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;;AAEA;AACA,wBAAwB,gBAAgB;AACxC;AACA,yBAAyB,gBAAgB;AACzC;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,iCAAiC,cAAc;AAC/C;AACA,6CAA6C,8BAA8B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,YAAY,0BAA0B;AACtC;AACA,YAAY,0BAA0B;AACtC,6CAA6C;AAC7C,iEAAiE,4DAA4D;AAC7H;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,gCAAgC;AAChC;AACA;;AAEA,0CAA0C,qBAAqB;AAC/D;;AAEA;AACA,6BAA6B,GAAG,QAAQ,aAAa;;AAErD;;AAEA,gBAAgB,0BAA0B;AAC1C;AACA;AACA;;AAEA;AACA,gBAAgB,2BAA2B;AAC3C;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,GAAG,uBAAuB,IAAI;AACtD;AACA,YAAY,iBAAiB;AAC7B;AACA;AACA,oBAAoB,KAAK,4CAA4C,KAAK,SAAS,OAAO;AAC1F;AACA;AACA,aAAa,kBAAkB;AAC/B;AACA;AACA;AACA;AACA;AACA,qBAAqB,sBAAsB;AAC3C;AACA,+DAA+D,oBAAoB;AACnF;AACA;AACA;AACA,kDAAkD,GAAG,QAAQ,IAAI,iCAAiC;AAClG;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA,oCAAoC;AACpC,oCAAoC;AACpC,mBAAmB,SAAS;AAC5B,qBAAqB;AACrB;AACA,8BAA8B;AAC9B,+BAA+B;AAC/B,qCAAqC;AACrC;AACA,UAAU,sBAAsB;AAChC,8BAA8B,sBAAsB;AACpD;AACA;AACA,oBAAoB,uBAAuB;AAC3C,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA,iBAAiB,cAAc;AAC/B;AACA;AACA,sCAAsC,SAAS;AAC/C,iCAAiC,8BAA8B;AAC/D;AACA;AACA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mEAAmE;AACpG;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA,wBAAwB,GAAG,QAAQ,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,mCAAmC;AAC1C;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA,qEAAqE,oBAAoB;AACzF;AACA;AACA;AACA,4EAA4E,GAAG,sBAAsB,IAAI,oDAAoD;AAC7J,qBAAqB;AACrB;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,gCAAgC;AAChC,sCAAsC;AACtC;AACA,WAAW,sBAAsB;AACjC,+BAA+B,sBAAsB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,sBAAsB;AACtE,2CAA2C;AAC3C;AACA,wCAAwC,WAAW;AACnD,oBAAoB,qCAAqC;AACzD,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kGAAkG;AAClG;AACA;;AAEA;AACA;AACA,uDAAuD;AACvD;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,2DAA2D,4CAA4C;AACvG;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,eAAe,QAAQ;AACvB,qBAAqB,iBAAiB;AACtC,oBAAoB,QAAQ;AAC5B,iBAAiB;AACjB,0CAA0C;AAC1C,yBAAyB,iCAAiC;AAC1D,eAAe,SAAS;AACxB,iDAAiD;AACjD;AACA,+BAA+B,IAAI,qBAAqB,MAAM;AAC9D;AACA;AACA,+CAA+C;AAC/C;AACA;AACA,YAAY;AACZ,gBAAgB;AAChB;AACA,iEAAiE;AACjE;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,uCAAuC;AACvC,yCAAyC,WAAW;AACpD;AACA;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA;AACA,wBAAwB,YAAY,aAAa;AACjD;AACA,2CAA2C;AAC3C;AACA;AACA,gCAAgC,aAAa,sCAAsC;AACnF,YAAY;AACZ;AACA;AACA;AACA,sBAAsB,uBAAuB,YAAY;AACzD,0BAA0B,QAAQ,MAAM;AACxC;AACA,gBAAgB;AAChB,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW,wCAAwC;AACnD;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,QAAQ;AACR,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA,MAAM;AACN;AACA,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,aAAa;AACjC,WAAW,uEAAuE;AAClF;AACA;AACA;AACA;AACA;AACA,iBAAiB,IAAI,QAAQ,KAAK;AAClC;AACA;AACA;AACA;AACA,sBAAsB,mBAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,QAAQ,KAAK;AACjC;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iCAAiC,2CAA2C;AAC5E,+BAA+B,8BAA8B;AAC7D,oCAAoC,8BAA8B;AAClE,kCAAkC,8BAA8B;AAChE,8BAA8B;AAC9B,6BAA6B,WAAW;AACxC,uBAAuB;AACvB,8BAA8B;AAC9B,4BAA4B,WAAW;AACvC,yBAAyB;AACzB,gCAAgC,gCAAgC;AAChE;AACA;AACA;AACA,2CAA2C,2CAA2C;AACtF,SAAS;AACT;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gBAAgB;AAC/C;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,yBAAyB,cAAc;AACvC,8CAA8C,wBAAwB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,UAAU;AACV,iBAAiB;AACjB;AACA,cAAc;AACd,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD,kBAAkB;AAClB,gBAAgB,cAAc;AAC9B;;AAEA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,gBAAgB,cAAc;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;;AAEN,yBAAyB;AACzB,4BAA4B;AAC5B,mCAAmC;;AAEnC;AACA,8BAA8B;AAC9B;AACA;AACA,sBAAsB;AACtB,4BAA4B;;AAE5B,uCAAuC;AACvC,mCAAmC;AACnC,0CAA0C;AAC1C,uCAAuC;AACvC,wCAAwC;;AAExC;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D,MAAM;;AAEN,2BAA2B;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D,MAAM;;AAEN,gCAAgC;AAChC,0BAA0B;AAC1B,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,2CAA2C;AAC9D;AACA;AACA;;AAEA,+BAA+B;AAC/B,kCAAkC;AAClC,gCAAgC;;AAEhC,oCAAoC;;AAEpC,wBAAwB;AACxB,+BAA+B;AAC/B,oCAAoC;AACpC,6BAA6B;AAC7B;AACA,qCAAqC;AACrC,uCAAuC;AACvC,gCAAgC;;AAEhC,4BAA4B;;AAE5B,qCAAqC;AACrC,uCAAuC;AACvC,oCAAoC;AACpC,8BAA8B;AAC9B,+BAA+B;AAC/B,mCAAmC;AACnC,uBAAuB;AACvB,0BAA0B;AAC1B,8BAA8B;;AAE9B,sBAAsB;AACtB,6BAA6B;AAC7B,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,MAAM,OAAO,sCAAsC;AACnD,WAAW;AACX,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA,wCAAwC;AACxC,MAAM,UAAU;AAChB;;AAEA,uBAAuB;;AAEvB,yBAAyB;AACzB,mCAAmC;AACnC,uBAAuB;AACvB,8BAA8B;;AAE9B;AACA,+BAA+B;AAC/B,2BAA2B;;AAE3B,4BAA4B;AAC5B,sCAAsC;AACtC,qCAAqC;AACrC,+BAA+B;AAC/B,gCAAgC;AAChC,kCAAkC;AAClC,yBAAyB;AACzB,6BAA6B;AAC7B,4BAA4B;AAC5B,mCAAmC;;AAEnC,0CAA0C;AAC1C,0CAA0C;AAC1C,wCAAwC;;AAExC;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;;AAEA;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B,6BAA6B;AAC7B,uBAAuB;;AAEvB;AACA,oCAAoC;AACpC,4BAA4B;AAC5B,4BAA4B;AAC5B,oCAAoC;;AAEpC;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,6BAA6B;AAC7B,2BAA2B;;AAE3B;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,yCAAyC;AACzC,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,CAAC;AACD,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA,iCAAiC,2CAA2C;AAC5E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA,aAAa,eAAe;AAC5B;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA,YAAY,eAAe;AAC3B,SAAS,gBAAgB;AACzB,6BAA6B;AAC7B,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0BAA0B;AACzC,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,uCAAuC,GAAG;AACrF;AACA,sFAAsF;AACtF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,sBAAsB;AACxD;AACA;AACA,mBAAmB,wBAAwB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,kCAAkC,sBAAsB;AACxD;AACA;AACA,mBAAmB,wBAAwB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,iBAAiB,2BAA2B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kCAAkC;AACtD,sBAAsB,mBAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,aAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,eAAe;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,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sCAAsC;AACrD;AACA;AACA,iBAAiB,4CAA4C;AAC7D;AACA;AACA;AACA,sBAAsB,+CAA+C;AACrE,mBAAmB,uCAAuC;AAC1D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;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;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA,kBAAkB;AAClB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,oCAAoC;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,WAAW;AACX;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,kBAAkB,gCAAgC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,wBAAwB;AACtC;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAK,YAAY,OAAO;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iBAAiB;AAClD;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,GAAG;AACH;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,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,oBAAoB;AAC1D,uCAAuC,oBAAoB;AAC3D;AACA;AACA,sCAAsC,oBAAoB;AAC1D,uCAAuC,oBAAoB;AAC3D;AACA;AACA,sCAAsC,oBAAoB;AAC1D,uCAAuC,oBAAoB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,+BAA+B;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,iCAAiC,yBAAyB;AAC1D;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,qCAAqC,gBAAgB;AACrD;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,KAAK;AACL,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA,yBAAyB,SAAS;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB;AACtC;AACA,+BAA+B,2CAA2C;AAC1E,yBAAyB,oCAAoC;AAC7D,yBAAyB,kCAAkC;AAC3D,yBAAyB,kCAAkC;AAC3D;AACA;AACA;AACA,sBAAsB,gBAAgB;AACtC;AACA,+BAA+B,2CAA2C;AAC1E,yBAAyB,oCAAoC;AAC7D,yBAAyB,kCAAkC;AAC3D,yBAAyB,kCAAkC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kCAAkC;AAC7D,2BAA2B,kCAAkC;AAC7D,2BAA2B,2BAA2B;AACtD,8BAA8B,sCAAsC;AACpE,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iBAAiB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA,mCAAmC,uCAAuC;AAC1E;AACA,+BAA+B,8CAA8C;AAC7E,+BAA+B,8CAA8C;AAC7E,+BAA+B,oCAAoC;AACnE,+BAA+B,8CAA8C;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,aAAa;AACxE;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,6BAA6B,wFAAwF;AAC9J,GAAG,WAAW;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F;AAC/F,+FAA+F;AAC/F;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG,WAAW;AACd;;AAEA,sDAAsD;;AAEtD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,2CAA2C;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB;AACjB,iBAAiB;AACjB;AACA;AACA,oBAAoB,8EAA8E,WAAW;;AAE7G;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ,EAAE;;AAEF;;AAEA,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA,0DAA0D,gBAAgB;AAC1E;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD,sGAAsG;AACtG;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;;AAEA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;;AAEA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;;AAEA;AACA;AACA,0BAA0B;AAC1B;AACA,GAAG;;AAEH;AACA,0BAA0B;AAC1B;;AAEA;AACA;AACA,0BAA0B;;AAE1B;AACA,oCAAoC;AACpC;AACA;AACA,oCAAoC;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,mCAAmC;AACnC;AACA;AACA,iBAAiB;AACjB,6CAA6C,wBAAwB;AACrE;AACA,QAAQ,sBAAsB,0BAA0B;AACxD;AACA;AACA;AACA,iCAAiC;AACjC;AACA;;AAEA;AACA,gCAAgC,GAAG,QAAQ,aAAa;;AAExD;;AAEA;AACA;AACA;AACA;;AAEA,wCAAwC;AACxC;AACA,qCAAqC;AACrC;AACA;AACA;AACA,kBAAkB,2BAA2B;AAC7C,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;;AAEA,WAAW,6BAA6B;AACxC,gBAAgB;AAChB;AACA,uBAAuB;AACvB;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;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,mCAAmC;AACnC;AACA;AACA,iBAAiB;AACjB,6CAA6C,wBAAwB;AACrE;AACA,QAAQ,sBAAsB,0BAA0B;AACxD;AACA;AACA;AACA,iCAAiC;AACjC;AACA;;AAEA;AACA,gCAAgC,GAAG,QAAQ,aAAa;;AAExD;;AAEA;AACA;AACA;AACA;;AAEA,wCAAwC;AACxC;AACA,qCAAqC;AACrC;AACA;AACA;AACA,kBAAkB,2BAA2B;AAC7C,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,WAAW,6BAA6B;AACxC,gBAAgB;AAChB;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gCAAgC;AACnE,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA,mDAAmD;AACnD,wBAAwB;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C;AAC5C,6BAA6B;AAC7B,gDAAgD;AAChD,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,WAAW,mBAAmB;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA,wBAAwB,wCAAwC,uBAAuB;AACvF,0BAA0B,YAAY,mBAAmB,oBAAoB;AAC7E;AACA;AACA,oDAAoD;AACpD;AACA,eAAe,UAAU,gBAAgB;AACzC;AACA;AACA,yKAAyK;AACzK,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA,+FAA+F;AAC/F;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F;AAC/F;AACA,yHAAyH;AACzH;AACA;AACA;AACA;;AAEA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C,uDAAuD,6BAA6B;AACpF;AACA;AACA;AACA;AACA;;AAEA,oCAAoC;AACpC;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,wCAAwC;AACxC;AACA;AACA,mCAAmC;AACnC;AACA;AACA,uCAAuC,8BAA8B,2CAA2C,qEAAqE;AACrL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iHAAiH;AACjH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,cAAc,8BAA8B,yBAAyB;AAC1G;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,+CAA+C,yBAAyB;AACxE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB,oBAAoB,iBAAiB;AACrC,yBAAyB,mBAAmB,qDAAqD,kBAAkB;AACnH;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB,oBAAoB,iBAAiB;AACrC,yBAAyB,mBAAmB,iDAAiD,kBAAkB;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,wCAAwC;AACxC,wCAAwC;AACxC,wCAAwC;AACxC;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;;AAEA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;;;AAGA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0CAA0C,0BAA0B,KAAK,WAAW;AACtH;AACA;AACA,4CAA4C,YAAY;AACxD;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,kCAAkC;AAClC,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;;AAGA;AACA;AACA,YAAY,UAAU;AACtB,UAAU,GAAG,QAAQ,IAAI;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,uDAAuD,eAAe;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,qBAAqB;AACrB;AACA;AACA;AACA,+BAA+B;AAC/B,6BAA6B;AAC7B,yCAAyC;AACzC;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,UAAU,8BAA8B,uBAAuB;AAC/D;AACA;AACA;AACA;AACA;AACA,0BAA0B,YAAY;AACtC,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kBAAkB,qFAAqF,6CAA6C;AAC9K;AACA,IAAI;AACJ;AACA,sBAAsB;AACtB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY,0BAA0B;AAC1D;AACA,oBAAoB,YAAY;AAChC,qBAAqB;AACrB;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,gBAAgB;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,oBAAoB,YAAY;AAChC;AACA,iBAAiB,YAAY;AAC7B;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,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,yBAAyB,IAAI,SAAS,MAAM,qCAAqC;AACjF;AACA;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC,GAAG;AACH,iBAAiB,QAAQ;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,2BAA2B;AACrD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA,yCAAyC,SAAS;AAClD,iCAAiC,SAAS;AAC1C;AACA,iBAAiB;AACjB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA,uBAAuB,gBAAgB,qCAAqC;AAC5E;AACA;AACA;AACA,gEAAgE;;AAEhE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,MAAM;AACrD;AACA,4BAA4B,MAAM;AAClC;AACA;AACA;AACA;AACA,0CAA0C,WAAW;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA,iBAAiB,aAAa;AAC9B;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA,wFAAwF;;AAExF;AACA;AACA;AACA,cAAc,4BAA4B;AAC1C;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,cAAc,0BAA0B,cAAc;AAC5E;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;;AAE3B;AACA;AACA,2BAA2B;AAC3B,8CAA8C,mBAAmB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY,0BAA0B;AAC1D;AACA;AACA;AACA,aAAa,YAAY;AACzB;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,gBAAgB;;AAEzC,8CAA8C,mBAAmB;AACjE,YAAY,UAAU;AACtB,UAAU,GAAG,QAAQ,IAAI;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,uDAAuD,eAAe;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,qBAAqB;AACrB;AACA;AACA;AACA,+BAA+B;AAC/B,6BAA6B;AAC7B,yCAAyC;AACzC;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,UAAU,8BAA8B,uBAAuB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO;AAiBL","sources":["./node_modules/@azure/msal-angular/__ivy_ngcc__/fesm2015/azure-msal-angular.js","./node_modules/@progress/jszip-esm/dist/jszip-esm2015.js","@progress/pako-esm","./node_modules/@progress/kendo-angular-buttons/__ivy_ngcc__/dist/fesm2015/index.js","./node_modules/@progress/kendo-angular-charts/__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-editor/__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-icons/__ivy_ngcc__/dist/fesm2015/index.js","./node_modules/@progress/kendo-angular-inputs/__ivy_ngcc__/dist/fesm2015/index.js","./node_modules/@progress/kendo-angular-intl/__ivy_ngcc__/dist/fesm2015/index.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/cldr.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/cldr/constants.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/cldr/currency.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/cldr/date-field-name.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/cldr/date-format-names.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/cldr/default-data.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/cldr/first-day.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/cldr/info.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/cldr/load-dates.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/cldr/load-numbers.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/cldr/load.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/cldr/number-symbols.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/cldr/parse-range-date.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/cldr/set-data.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/cldr/territory.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/cldr/weekend-range.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/common/constants.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/common/format-string.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/common/is-date.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/common/is-negative-zero.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/common/is-number.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/common/is-string.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/common/pad.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/common/round.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/dates.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/dates/constants.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/dates/date-name-type.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/dates/date-pattern.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/dates/format-date.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/dates/format-names.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/dates/parse-date.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/dates/split-date-format.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/dates/time-utils.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/error-details.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/errors.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/format.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/main.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/numbers.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/numbers/custom-number-format.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/numbers/format-currency-symbol.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/numbers/format-number.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/numbers/format-options.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/numbers/group-integer.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/numbers/is-currency-style.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/numbers/parse-number.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/numbers/standard-number-format.js","./node_modules/@progress/kendo-angular-intl/node_modules/@telerik/kendo-intl/dist/es2015/numbers/utils.js","./node_modules/@progress/kendo-angular-l10n/__ivy_ngcc__/dist/fesm2015/index.js","./node_modules/@progress/kendo-angular-label/__ivy_ngcc__/dist/fesm2015/index.js","./node_modules/@progress/kendo-angular-layout/__ivy_ngcc__/dist/fesm2015/index.js","./node_modules/@progress/kendo-angular-listview/__ivy_ngcc__/dist/fesm2015/index.js","./node_modules/@progress/kendo-angular-navigation/__ivy_ngcc__/dist/fesm2015/index.js","./node_modules/@progress/kendo-angular-notification/__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-progressbar/__ivy_ngcc__/dist/fesm2015/index.js","./node_modules/@progress/kendo-angular-toolbar/__ivy_ngcc__/dist/fesm2015/index.js","./node_modules/@progress/kendo-angular-treelist/__ivy_ngcc__/dist/fesm2015/index.js","./node_modules/@progress/kendo-angular-treeview/__ivy_ngcc__/dist/fesm2015/index.js","./node_modules/@progress/kendo-charts/dist/es2015/barcode.js","./node_modules/@progress/kendo-charts/dist/es2015/barcode/barcode-validator.js","./node_modules/@progress/kendo-charts/dist/es2015/barcode/barcode.js","./node_modules/@progress/kendo-charts/dist/es2015/barcode/encodings/code11.js","./node_modules/@progress/kendo-charts/dist/es2015/barcode/encodings/code128.js","./node_modules/@progress/kendo-charts/dist/es2015/barcode/encodings/code39-extended.js","./node_modules/@progress/kendo-charts/dist/es2015/barcode/encodings/code39.js","./node_modules/@progress/kendo-charts/dist/es2015/barcode/encodings/code93-extended.js","./node_modules/@progress/kendo-charts/dist/es2015/barcode/encodings/code93.js","./node_modules/@progress/kendo-charts/dist/es2015/barcode/encodings/ean13.js","./node_modules/@progress/kendo-charts/dist/es2015/barcode/encodings/ean8.js","./node_modules/@progress/kendo-charts/dist/es2015/barcode/encodings/encoding.js","./node_modules/@progress/kendo-charts/dist/es2015/barcode/encodings/main.js","./node_modules/@progress/kendo-charts/dist/es2015/barcode/encodings/msi.js","./node_modules/@progress/kendo-charts/dist/es2015/barcode/encodings/postnet.js","./node_modules/@progress/kendo-charts/dist/es2015/barcode/surface-size.js","./node_modules/@progress/kendo-charts/dist/es2015/chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/aggregates/aggregates.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/aggregates/default-aggregates.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/aggregates/series-aggregator.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/animations.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/animations/bar-chart-animation.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/animations/bubble-animation.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/animations/clip-animation.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/animations/fade-in-animation.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/animations/pie-animation.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/api-elements.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/api-elements/chart-axis.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/api-elements/chart-pane.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/api-elements/chart-plotarea.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/api-elements/find-axis-by-name.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/area-chart/area-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/area-chart/area-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/area-chart/spline-area-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/area-chart/step-area-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/axis-group-range-tracker.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/bar-chart/bar-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/bar-chart/bar-label.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/bar-chart/bar.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/base-theme.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/box-plot-chart/box-plot-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/box-plot-chart/box-plot.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/box-plot-chart/vertical-box-plot.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/bubble-chart/bubble-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/bubble-chart/bubble.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/bullet-chart/bullet-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/bullet-chart/bullet.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/bullet-chart/target.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/candlestick-chart/candlestick-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/candlestick-chart/candlestick.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/categorical-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/chart-container.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/constants.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/crosshair/crosshair-tooltip.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/crosshair/crosshair.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/donut-chart/donut-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/donut-chart/donut-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/error-bars/categorical-error-bar.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/error-bars/error-bar-base.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/error-bars/error-range-calculator.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/error-bars/scatter-error-bar.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/funnel-chart/funnel-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/funnel-chart/funnel-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/heatmap-chart/color-scale.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/heatmap-chart/heatmap-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/heatmap-chart/heatmap-point.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/highlight.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/layout/cluster-layout.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/layout/radar-cluster-layout.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/layout/radar-stack-layout.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/layout/stack-wrap.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/layout/utils.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/legend/legend-item.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/legend/legend-layout.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/legend/legend.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/line-chart/line-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/line-chart/line-point.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/line-chart/line-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/line-chart/spline-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/line-chart/step-line-mixin.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/line-chart/step-line-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/mixins/clip-animation-mixin.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/mixins/line-chart-mixin.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/mixins/note-mixin.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/mixins/pie-chart-mixin.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/mixins/plotarea-events-mixin.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/mixins/point-events-mixin.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/ohlc-chart/ohlc-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/ohlc-chart/ohlc-point.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/pan-and-zoom/accept-key.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/pan-and-zoom/mousewheel-zoom.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/pan-and-zoom/pannable.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/pan-and-zoom/to-chart-axis-ranges.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/pan-and-zoom/zoom-selection.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/pane.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/pie-chart/pie-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/pie-chart/pie-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/plotarea/categorical-plotarea.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/plotarea/donut-plotarea.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/plotarea/funnel-plotarea.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/plotarea/heatmap-plotarea.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/plotarea/pie-plotarea.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/plotarea/plotarea-base.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/plotarea/plotarea-factory.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/plotarea/polar-plotarea-base.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/plotarea/polar-plotarea.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/plotarea/radar-plotarea.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/plotarea/xy-plotarea.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/polar-area-chart/polar-area-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/polar-area-chart/polar-area-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/polar-area-chart/spline-polar-area-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/polar-line-chart/polar-line-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/polar-scatter-chart/polar-scatter-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/radar-area-chart/radar-area-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/radar-area-chart/radar-area-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/radar-area-chart/spline-radar-area-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/radar-bar-chart/radar-bar-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/radar-bar-chart/radar-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/radar-line-chart/radar-line-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/range-area-chart/range-area-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/range-area-chart/range-area-point.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/range-area-chart/range-area-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/range-area-chart/range-line-point.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/range-area-chart/spline-range-area-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/range-area-chart/step-range-area-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/range-bar-chart/range-bar-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/range-bar-chart/range-bar.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/register-charts.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/scatter-charts/scatter-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/scatter-charts/scatter-line-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/selection.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/series-binder.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/tooltip/base-tooltip.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/tooltip/shared-tooltip.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/tooltip/tooltip.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/any-has-z-index.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/append-if-not-null.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/are-numbers.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/bind-segments.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/categories-count.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/count-numbers.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/create-out-of-range-points.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/equals-ignore-case.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/eval-options.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/filter-series-by-type.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/get-date-field.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/get-field.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/has-gradient-overlay.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/has-value.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/is-date-axis.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/segment-visible.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/single-item-or-array.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/waterfall-chart/waterfall-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/waterfall-chart/waterfall-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/common.js","./node_modules/@progress/kendo-charts/dist/es2015/common/add-class.js","./node_modules/@progress/kendo-charts/dist/es2015/common/align-path-to-pixel.js","./node_modules/@progress/kendo-charts/dist/es2015/common/auto-text-color.js","./node_modules/@progress/kendo-charts/dist/es2015/common/clockwise.js","./node_modules/@progress/kendo-charts/dist/es2015/common/constants.js","./node_modules/@progress/kendo-charts/dist/es2015/common/convertable-to-number.js","./node_modules/@progress/kendo-charts/dist/es2015/common/create-hash-set.js","./node_modules/@progress/kendo-charts/dist/es2015/common/deep-extend.js","./node_modules/@progress/kendo-charts/dist/es2015/common/default-error-handler.js","./node_modules/@progress/kendo-charts/dist/es2015/common/element-scale.js","./node_modules/@progress/kendo-charts/dist/es2015/common/element-styles.js","./node_modules/@progress/kendo-charts/dist/es2015/common/find.js","./node_modules/@progress/kendo-charts/dist/es2015/common/font-loader.js","./node_modules/@progress/kendo-charts/dist/es2015/common/get-spacing.js","./node_modules/@progress/kendo-charts/dist/es2015/common/get-template.js","./node_modules/@progress/kendo-charts/dist/es2015/common/getter.js","./node_modules/@progress/kendo-charts/dist/es2015/common/grep.js","./node_modules/@progress/kendo-charts/dist/es2015/common/has-classes.js","./node_modules/@progress/kendo-charts/dist/es2015/common/hash-map.js","./node_modules/@progress/kendo-charts/dist/es2015/common/in-array.js","./node_modules/@progress/kendo-charts/dist/es2015/common/instance-observer.js","./node_modules/@progress/kendo-charts/dist/es2015/common/interpolate-value.js","./node_modules/@progress/kendo-charts/dist/es2015/common/is-array.js","./node_modules/@progress/kendo-charts/dist/es2015/common/is-function.js","./node_modules/@progress/kendo-charts/dist/es2015/common/is-number.js","./node_modules/@progress/kendo-charts/dist/es2015/common/is-object.js","./node_modules/@progress/kendo-charts/dist/es2015/common/is-string.js","./node_modules/@progress/kendo-charts/dist/es2015/common/keys.js","./node_modules/@progress/kendo-charts/dist/es2015/common/map.js","./node_modules/@progress/kendo-charts/dist/es2015/common/mousewheel-delta.js","./node_modules/@progress/kendo-charts/dist/es2015/common/remove-class.js","./node_modules/@progress/kendo-charts/dist/es2015/common/set-default-options.js","./node_modules/@progress/kendo-charts/dist/es2015/common/sparse-array-limits.js","./node_modules/@progress/kendo-charts/dist/es2015/common/style-value.js","./node_modules/@progress/kendo-charts/dist/es2015/core.js","./node_modules/@progress/kendo-charts/dist/es2015/core/axis-label.js","./node_modules/@progress/kendo-charts/dist/es2015/core/axis.js","./node_modules/@progress/kendo-charts/dist/es2015/core/box-element.js","./node_modules/@progress/kendo-charts/dist/es2015/core/box.js","./node_modules/@progress/kendo-charts/dist/es2015/core/category-axis.js","./node_modules/@progress/kendo-charts/dist/es2015/core/chart-element.js","./node_modules/@progress/kendo-charts/dist/es2015/core/constants.js","./node_modules/@progress/kendo-charts/dist/es2015/core/curve-processor.js","./node_modules/@progress/kendo-charts/dist/es2015/core/date-category-axis.js","./node_modules/@progress/kendo-charts/dist/es2015/core/date-value-axis.js","./node_modules/@progress/kendo-charts/dist/es2015/core/float-element.js","./node_modules/@progress/kendo-charts/dist/es2015/core/gradients.js","./node_modules/@progress/kendo-charts/dist/es2015/core/logarithmic-axis.js","./node_modules/@progress/kendo-charts/dist/es2015/core/mixins/grid-lines-mixin.js","./node_modules/@progress/kendo-charts/dist/es2015/core/mixins/radar-numeric-axis-mixin.js","./node_modules/@progress/kendo-charts/dist/es2015/core/note.js","./node_modules/@progress/kendo-charts/dist/es2015/core/numeric-axis.js","./node_modules/@progress/kendo-charts/dist/es2015/core/point.js","./node_modules/@progress/kendo-charts/dist/es2015/core/polar-axis.js","./node_modules/@progress/kendo-charts/dist/es2015/core/radar-category-axis.js","./node_modules/@progress/kendo-charts/dist/es2015/core/radar-logarithmic-axis.js","./node_modules/@progress/kendo-charts/dist/es2015/core/radar-numeric-axis.js","./node_modules/@progress/kendo-charts/dist/es2015/core/ring.js","./node_modules/@progress/kendo-charts/dist/es2015/core/root-element.js","./node_modules/@progress/kendo-charts/dist/es2015/core/sector.js","./node_modules/@progress/kendo-charts/dist/es2015/core/shape-builder.js","./node_modules/@progress/kendo-charts/dist/es2015/core/shape-element.js","./node_modules/@progress/kendo-charts/dist/es2015/core/text-box.js","./node_modules/@progress/kendo-charts/dist/es2015/core/text.js","./node_modules/@progress/kendo-charts/dist/es2015/core/title.js","./node_modules/@progress/kendo-charts/dist/es2015/core/utils/auto-axis-max.js","./node_modules/@progress/kendo-charts/dist/es2015/core/utils/auto-axis-min.js","./node_modules/@progress/kendo-charts/dist/es2015/core/utils/auto-major-unit.js","./node_modules/@progress/kendo-charts/dist/es2015/core/utils/box-diff.js","./node_modules/@progress/kendo-charts/dist/es2015/core/utils/ceil.js","./node_modules/@progress/kendo-charts/dist/es2015/core/utils/create-axis-grid-line.js","./node_modules/@progress/kendo-charts/dist/es2015/core/utils/create-axis-tick.js","./node_modules/@progress/kendo-charts/dist/es2015/core/utils/floor.js","./node_modules/@progress/kendo-charts/dist/es2015/core/utils/limit-coordinate.js","./node_modules/@progress/kendo-charts/dist/es2015/core/utils/rect-to-box.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/absolute-date-diff.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/add-duration.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/add-ticks.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/ceil-date.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/constants.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/date-comparer.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/date-diff.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/date-equals.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/date-index.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/duration.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/first-day.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/floor-date.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/lte-date-index.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/parse-date.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/parse-dates.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/start-of-week.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/to-date.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/to-time.js","./node_modules/@progress/kendo-charts/dist/es2015/drawing-utils.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/arc/arc-gauge.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/arc/arc-scale.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/arc/range-pointer-animation.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/arc/range-pointer.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/circular/circular-gauge.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/constants.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/gauge.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/linear/arrow-linear-pointer-animation.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/linear/arrow-linear-pointer.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/linear/bar-linear-pointer-animation.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/linear/bar-linear-pointer.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/linear/linear-gauge.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/linear/linear-pointer.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/linear/linear-scale.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/pointer.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/radial/radial-gauge.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/radial/radial-pointer-animation.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/radial/radial-pointer.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/radial/radial-scale.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/utils.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/utils/build-label-element.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/utils/get-range.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/utils/pad.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/utils/unpad.js","./node_modules/@progress/kendo-charts/dist/es2015/main.js","./node_modules/@progress/kendo-charts/dist/es2015/map.js","./node_modules/@progress/kendo-charts/dist/es2015/map/attribution.js","./node_modules/@progress/kendo-charts/dist/es2015/map/crs.js","./node_modules/@progress/kendo-charts/dist/es2015/map/datums.js","./node_modules/@progress/kendo-charts/dist/es2015/map/extent.js","./node_modules/@progress/kendo-charts/dist/es2015/map/layers/bubble.js","./node_modules/@progress/kendo-charts/dist/es2015/map/layers/layer.js","./node_modules/@progress/kendo-charts/dist/es2015/map/layers/marker.js","./node_modules/@progress/kendo-charts/dist/es2015/map/layers/shape.js","./node_modules/@progress/kendo-charts/dist/es2015/map/layers/tile.js","./node_modules/@progress/kendo-charts/dist/es2015/map/location.js","./node_modules/@progress/kendo-charts/dist/es2015/map/map.js","./node_modules/@progress/kendo-charts/dist/es2015/map/navigator.js","./node_modules/@progress/kendo-charts/dist/es2015/map/scroller/draggable.js","./node_modules/@progress/kendo-charts/dist/es2015/map/scroller/fx.js","./node_modules/@progress/kendo-charts/dist/es2015/map/scroller/observable.js","./node_modules/@progress/kendo-charts/dist/es2015/map/scroller/scroller.js","./node_modules/@progress/kendo-charts/dist/es2015/map/scroller/user-events.js","./node_modules/@progress/kendo-charts/dist/es2015/map/utils.js","./node_modules/@progress/kendo-charts/dist/es2015/map/zoom.js","./node_modules/@progress/kendo-charts/dist/es2015/qrcode.js","./node_modules/@progress/kendo-charts/dist/es2015/qrcode/encodings/data-modes/alpha-numeric-data-mode.js","./node_modules/@progress/kendo-charts/dist/es2015/qrcode/encodings/data-modes/byte-data-mode.js","./node_modules/@progress/kendo-charts/dist/es2015/qrcode/encodings/data-modes/data-mode-instances.js","./node_modules/@progress/kendo-charts/dist/es2015/qrcode/encodings/data-modes/numeric-data-mode.js","./node_modules/@progress/kendo-charts/dist/es2015/qrcode/encodings/data-modes/qr-data-mode.js","./node_modules/@progress/kendo-charts/dist/es2015/qrcode/encodings/encoders/iso-encoder.js","./node_modules/@progress/kendo-charts/dist/es2015/qrcode/encodings/encoders/utf8-encoder.js","./node_modules/@progress/kendo-charts/dist/es2015/qrcode/encodings/encoding-result.js","./node_modules/@progress/kendo-charts/dist/es2015/qrcode/encodings/encoding.js","./node_modules/@progress/kendo-charts/dist/es2015/qrcode/encodings/free-cell-visitor.js","./node_modules/@progress/kendo-charts/dist/es2015/qrcode/encodings/version-codewords.js","./node_modules/@progress/kendo-charts/dist/es2015/qrcode/qrcode-validator.js","./node_modules/@progress/kendo-charts/dist/es2015/qrcode/qrcode.js","./node_modules/@progress/kendo-charts/dist/es2015/qrcode/utils.js","./node_modules/@progress/kendo-charts/dist/es2015/services.js","./node_modules/@progress/kendo-charts/dist/es2015/services/chart-service.js","./node_modules/@progress/kendo-charts/dist/es2015/services/dom-events-builder.js","./node_modules/@progress/kendo-charts/dist/es2015/services/format-service.js","./node_modules/@progress/kendo-charts/dist/es2015/services/intl-service.js","./node_modules/@progress/kendo-charts/dist/es2015/services/map-service.js","./node_modules/@progress/kendo-charts/dist/es2015/services/template-service.js","./node_modules/@progress/kendo-charts/dist/es2015/sparkline/shared-tooltip.js","./node_modules/@progress/kendo-charts/dist/es2015/sparkline/sparkline.js","./node_modules/@progress/kendo-charts/dist/es2015/stock.js","./node_modules/@progress/kendo-charts/dist/es2015/stock/constants.js","./node_modules/@progress/kendo-charts/dist/es2015/stock/fade-out-animation.js","./node_modules/@progress/kendo-charts/dist/es2015/stock/navigator-hint.js","./node_modules/@progress/kendo-charts/dist/es2015/stock/navigator.js","./node_modules/@progress/kendo-charts/dist/es2015/stock/stock-chart.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/alignment.js","./node_modules/@progress/kendo-drawing/dist/es2015/alignment/align-elements.js","./node_modules/@progress/kendo-drawing/dist/es2015/alignment/align-start-reverse.js","./node_modules/@progress/kendo-drawing/dist/es2015/alignment/align-start.js","./node_modules/@progress/kendo-drawing/dist/es2015/alignment/align.js","./node_modules/@progress/kendo-drawing/dist/es2015/alignment/create-stack-elements.js","./node_modules/@progress/kendo-drawing/dist/es2015/alignment/fit.js","./node_modules/@progress/kendo-drawing/dist/es2015/alignment/stack-elements.js","./node_modules/@progress/kendo-drawing/dist/es2015/alignment/stack.js","./node_modules/@progress/kendo-drawing/dist/es2015/alignment/translate-to-point.js","./node_modules/@progress/kendo-drawing/dist/es2015/alignment/v-align.js","./node_modules/@progress/kendo-drawing/dist/es2015/alignment/v-stack.js","./node_modules/@progress/kendo-drawing/dist/es2015/alignment/v-wrap.js","./node_modules/@progress/kendo-drawing/dist/es2015/alignment/wrap-elements.js","./node_modules/@progress/kendo-drawing/dist/es2015/alignment/wrap.js","./node_modules/@progress/kendo-drawing/dist/es2015/animations.js","./node_modules/@progress/kendo-drawing/dist/es2015/animations/animation-factory.js","./node_modules/@progress/kendo-drawing/dist/es2015/animations/animation.js","./node_modules/@progress/kendo-drawing/dist/es2015/animations/easing-functions.js","./node_modules/@progress/kendo-drawing/dist/es2015/canvas.js","./node_modules/@progress/kendo-drawing/dist/es2015/canvas/arc-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/canvas/circle-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/canvas/export-image.js","./node_modules/@progress/kendo-drawing/dist/es2015/canvas/group-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/canvas/image-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/canvas/multi-path-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/canvas/node-map.js","./node_modules/@progress/kendo-drawing/dist/es2015/canvas/node.js","./node_modules/@progress/kendo-drawing/dist/es2015/canvas/path-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/canvas/rect-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/canvas/root-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/canvas/surface-cursor.js","./node_modules/@progress/kendo-drawing/dist/es2015/canvas/surface.js","./node_modules/@progress/kendo-drawing/dist/es2015/canvas/text-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/canvas/utils/render-path.js","./node_modules/@progress/kendo-drawing/dist/es2015/common/animation-frame.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/html-encode.js","./node_modules/@progress/kendo-drawing/dist/es2015/common/log-to-console.js","./node_modules/@progress/kendo-drawing/dist/es2015/common/observable.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/common/throttle.js","./node_modules/@progress/kendo-drawing/dist/es2015/core/base-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/core/constants.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/core/surface.js","./node_modules/@progress/kendo-drawing/dist/es2015/drawing.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.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/path-parser.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/search/quad-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/search/quad-root.js","./node_modules/@progress/kendo-drawing/dist/es2015/search/shapes-quad-tree.js","./node_modules/@progress/kendo-drawing/dist/es2015/shapes.js","./node_modules/@progress/kendo-drawing/dist/es2015/shapes/arc.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/layout.js","./node_modules/@progress/kendo-drawing/dist/es2015/shapes/path.js","./node_modules/@progress/kendo-drawing/dist/es2015/shapes/rect.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/surface-factory.js","./node_modules/@progress/kendo-drawing/dist/es2015/surface.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/arc-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/circle-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/clip-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/constants.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/definition-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/export-group.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/export-svg.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/gradient-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/gradient-stop-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/group-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/image-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/linear-gradient-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/multi-path-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/node-map.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/node.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/path-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/radial-gradient-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/rect-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/root-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/surface.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/text-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/utils/render-all-attributes.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/utils/render-attribute.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/utils/render-style.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/utils/render-svg.js","./node_modules/@progress/kendo-drawing/dist/es2015/text-metrics.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.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/bind-events.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/element-offset.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/element-padding.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/element-scale.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/element-size.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/element-styles.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/event-coordinates.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/event-element.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/now.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/promise-all.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/unbind-events.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/value-or-default.js","./node_modules/@progress/kendo-editor-common/dist/es2015/align.js","./node_modules/@progress/kendo-editor-common/dist/es2015/blockNode.js","./node_modules/@progress/kendo-editor-common/dist/es2015/blockquote.js","./node_modules/@progress/kendo-editor-common/dist/es2015/cleanFormatting.js","./node_modules/@progress/kendo-editor-common/dist/es2015/config/align-rules.js","./node_modules/@progress/kendo-editor-common/dist/es2015/config/commands.js","./node_modules/@progress/kendo-editor-common/dist/es2015/config/constants.js","./node_modules/@progress/kendo-editor-common/dist/es2015/config/indent-rules.js","./node_modules/@progress/kendo-editor-common/dist/es2015/config/keymap.js","./node_modules/@progress/kendo-editor-common/dist/es2015/config/list-settings.js","./node_modules/@progress/kendo-editor-common/dist/es2015/config/schema.js","./node_modules/@progress/kendo-editor-common/dist/es2015/find-replace.js","./node_modules/@progress/kendo-editor-common/dist/es2015/image.js","./node_modules/@progress/kendo-editor-common/dist/es2015/indent.js","./node_modules/@progress/kendo-editor-common/dist/es2015/inline-style.js","./node_modules/@progress/kendo-editor-common/dist/es2015/link.js","./node_modules/@progress/kendo-editor-common/dist/es2015/listConvert.js","./node_modules/@progress/kendo-editor-common/dist/es2015/lists.js","./node_modules/@progress/kendo-editor-common/dist/es2015/main.js","./node_modules/@progress/kendo-editor-common/dist/es2015/mark.js","./node_modules/@progress/kendo-editor-common/dist/es2015/paste.js","./node_modules/@progress/kendo-editor-common/dist/es2015/plugins/caret-color.js","./node_modules/@progress/kendo-editor-common/dist/es2015/plugins/highlight.js","./node_modules/@progress/kendo-editor-common/dist/es2015/plugins/image-resize.js","./node_modules/@progress/kendo-editor-common/dist/es2015/plugins/placeholder.js","./node_modules/@progress/kendo-editor-common/dist/es2015/plugins/spaces-fix.js","./node_modules/@progress/kendo-editor-common/dist/es2015/source.js","./node_modules/@progress/kendo-editor-common/dist/es2015/table.js","./node_modules/@progress/kendo-editor-common/dist/es2015/text.js","./node_modules/@progress/kendo-editor-common/dist/es2015/utils.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-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-element.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/dom-utils.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-element.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/utils.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/kendo-popup-common/dist/es2015/z-index.js","./node_modules/@progress/pako-esm/dist/pako-esm2015.js","./node_modules/@telerik/kendo-draggable/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/file-saver/dist/FileSaver.min.js","./node_modules/hammerjs/hammer.js","./node_modules/msal/lib-es6/Account.js","./node_modules/msal/lib-es6/AuthResponse.js","./node_modules/msal/lib-es6/ClientInfo.js","./node_modules/msal/lib-es6/Configuration.js","./node_modules/msal/lib-es6/IdToken.js","./node_modules/msal/lib-es6/Logger.js","./node_modules/msal/lib-es6/ScopeSet.js","./node_modules/msal/lib-es6/ServerRequestParameters.js","./node_modules/msal/lib-es6/UserAgentApplication.js","./node_modules/msal/lib-es6/XHRClient.js","./node_modules/msal/lib-es6/authority/Authority.js","./node_modules/msal/lib-es6/authority/AuthorityFactory.js","./node_modules/msal/lib-es6/authority/TrustedAuthority.js","./node_modules/msal/lib-es6/cache/AccessTokenCacheItem.js","./node_modules/msal/lib-es6/cache/AccessTokenKey.js","./node_modules/msal/lib-es6/cache/AccessTokenValue.js","./node_modules/msal/lib-es6/cache/AuthCache.js","./node_modules/msal/lib-es6/cache/BrowserStorage.js","./node_modules/msal/lib-es6/error/AuthError.js","./node_modules/msal/lib-es6/error/ClientAuthError.js","./node_modules/msal/lib-es6/error/ClientConfigurationError.js","./node_modules/msal/lib-es6/error/InteractionRequiredAuthError.js","./node_modules/msal/lib-es6/error/ServerError.js","./node_modules/msal/lib-es6/telemetry/ApiEvent.js","./node_modules/msal/lib-es6/telemetry/DefaultEvent.js","./node_modules/msal/lib-es6/telemetry/HttpEvent.js","./node_modules/msal/lib-es6/telemetry/TelemetryConstants.js","./node_modules/msal/lib-es6/telemetry/TelemetryEvent.js","./node_modules/msal/lib-es6/telemetry/TelemetryManager.js","./node_modules/msal/lib-es6/telemetry/TelemetryUtils.js","./node_modules/msal/lib-es6/utils/Constants.js","./node_modules/msal/lib-es6/utils/CryptoUtils.js","./node_modules/msal/lib-es6/utils/RequestUtils.js","./node_modules/msal/lib-es6/utils/ResponseUtils.js","./node_modules/msal/lib-es6/utils/StringUtils.js","./node_modules/msal/lib-es6/utils/TimeUtils.js","./node_modules/msal/lib-es6/utils/TokenUtils.js","./node_modules/msal/lib-es6/utils/UrlUtils.js","./node_modules/msal/lib-es6/utils/WindowUtils.js","./node_modules/ng-multiselect-dropdown/__ivy_ngcc__/fesm2015/ng-multiselect-dropdown.js","./node_modules/orderedmap/index.es.js","./node_modules/prosemirror-commands/dist/index.es.js","./node_modules/prosemirror-dropcursor/dist/index.es.js","./node_modules/prosemirror-gapcursor/dist/index.es.js","./node_modules/prosemirror-history/dist/index.es.js","./node_modules/prosemirror-inputrules/dist/index.es.js","./node_modules/prosemirror-keymap/dist/index.es.js","./node_modules/prosemirror-model/dist/index.es.js","./node_modules/prosemirror-schema-list/dist/index.es.js","./node_modules/prosemirror-state/dist/index.es.js","./node_modules/prosemirror-tables/dist/index.es.js","./node_modules/prosemirror-transform/dist/index.es.js","./node_modules/prosemirror-view/dist/index.es.js","./node_modules/rope-sequence/dist/index.es.js","./node_modules/rxjs/_esm2015/internal/BehaviorSubject.js","./node_modules/rxjs/_esm2015/internal/InnerSubscriber.js","./node_modules/rxjs/_esm2015/internal/Notification.js","./node_modules/rxjs/_esm2015/internal/Observable.js","./node_modules/rxjs/_esm2015/internal/Observer.js","./node_modules/rxjs/_esm2015/internal/OuterSubscriber.js","./node_modules/rxjs/_esm2015/internal/ReplaySubject.js","./node_modules/rxjs/_esm2015/internal/Scheduler.js","./node_modules/rxjs/_esm2015/internal/Subject.js","./node_modules/rxjs/_esm2015/internal/SubjectSubscription.js","./node_modules/rxjs/_esm2015/internal/Subscriber.js","./node_modules/rxjs/_esm2015/internal/Subscription.js","./node_modules/rxjs/_esm2015/internal/config.js","./node_modules/rxjs/_esm2015/internal/innerSubscribe.js","./node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js","./node_modules/rxjs/_esm2015/internal/observable/combineLatest.js","./node_modules/rxjs/_esm2015/internal/observable/concat.js","./node_modules/rxjs/_esm2015/internal/observable/defer.js","./node_modules/rxjs/_esm2015/internal/observable/empty.js","./node_modules/rxjs/_esm2015/internal/observable/forkJoin.js","./node_modules/rxjs/_esm2015/internal/observable/from.js","./node_modules/rxjs/_esm2015/internal/observable/fromArray.js","./node_modules/rxjs/_esm2015/internal/observable/fromEvent.js","./node_modules/rxjs/_esm2015/internal/observable/interval.js","./node_modules/rxjs/_esm2015/internal/observable/merge.js","./node_modules/rxjs/_esm2015/internal/observable/of.js","./node_modules/rxjs/_esm2015/internal/observable/throwError.js","./node_modules/rxjs/_esm2015/internal/observable/timer.js","./node_modules/rxjs/_esm2015/internal/observable/zip.js","./node_modules/rxjs/_esm2015/internal/operators/audit.js","./node_modules/rxjs/_esm2015/internal/operators/auditTime.js","./node_modules/rxjs/_esm2015/internal/operators/bufferCount.js","./node_modules/rxjs/_esm2015/internal/operators/bufferTime.js","./node_modules/rxjs/_esm2015/internal/operators/catchError.js","./node_modules/rxjs/_esm2015/internal/operators/concatAll.js","./node_modules/rxjs/_esm2015/internal/operators/concatMap.js","./node_modules/rxjs/_esm2015/internal/operators/debounceTime.js","./node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js","./node_modules/rxjs/_esm2015/internal/operators/delay.js","./node_modules/rxjs/_esm2015/internal/operators/distinctUntilChanged.js","./node_modules/rxjs/_esm2015/internal/operators/filter.js","./node_modules/rxjs/_esm2015/internal/operators/finalize.js","./node_modules/rxjs/_esm2015/internal/operators/first.js","./node_modules/rxjs/_esm2015/internal/operators/last.js","./node_modules/rxjs/_esm2015/internal/operators/map.js","./node_modules/rxjs/_esm2015/internal/operators/mergeAll.js","./node_modules/rxjs/_esm2015/internal/operators/mergeMap.js","./node_modules/rxjs/_esm2015/internal/operators/multicast.js","./node_modules/rxjs/_esm2015/internal/operators/observeOn.js","./node_modules/rxjs/_esm2015/internal/operators/pairwise.js","./node_modules/rxjs/_esm2015/internal/operators/partition.js","./node_modules/rxjs/_esm2015/internal/operators/refCount.js","./node_modules/rxjs/_esm2015/internal/operators/retry.js","./node_modules/rxjs/_esm2015/internal/operators/scan.js","./node_modules/rxjs/_esm2015/internal/operators/share.js","./node_modules/rxjs/_esm2015/internal/operators/shareReplay.js","./node_modules/rxjs/_esm2015/internal/operators/skip.js","./node_modules/rxjs/_esm2015/internal/operators/skipWhile.js","./node_modules/rxjs/_esm2015/internal/operators/startWith.js","./node_modules/rxjs/_esm2015/internal/operators/switchMap.js","./node_modules/rxjs/_esm2015/internal/operators/switchMapTo.js","./node_modules/rxjs/_esm2015/internal/operators/take.js","./node_modules/rxjs/_esm2015/internal/operators/takeLast.js","./node_modules/rxjs/_esm2015/internal/operators/takeUntil.js","./node_modules/rxjs/_esm2015/internal/operators/takeWhile.js","./node_modules/rxjs/_esm2015/internal/operators/tap.js","./node_modules/rxjs/_esm2015/internal/operators/throttle.js","./node_modules/rxjs/_esm2015/internal/operators/throttleTime.js","./node_modules/rxjs/_esm2015/internal/operators/throwIfEmpty.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js","./node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js","./node_modules/rxjs/_esm2015/internal/scheduler/Action.js","./node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameAction.js","./node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsapAction.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsapScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js","./node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/animationFrame.js","./node_modules/rxjs/_esm2015/internal/scheduler/asap.js","./node_modules/rxjs/_esm2015/internal/scheduler/async.js","./node_modules/rxjs/_esm2015/internal/scheduler/queue.js","./node_modules/rxjs/_esm2015/internal/symbol/iterator.js","./node_modules/rxjs/_esm2015/internal/symbol/observable.js","./node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js","./node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js","./node_modules/rxjs/_esm2015/internal/util/EmptyError.js","./node_modules/rxjs/_esm2015/internal/util/Immediate.js","./node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js","./node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js","./node_modules/rxjs/_esm2015/internal/util/canReportError.js","./node_modules/rxjs/_esm2015/internal/util/hostReportError.js","./node_modules/rxjs/_esm2015/internal/util/identity.js","./node_modules/rxjs/_esm2015/internal/util/isArray.js","./node_modules/rxjs/_esm2015/internal/util/isArrayLike.js","./node_modules/rxjs/_esm2015/internal/util/isDate.js","./node_modules/rxjs/_esm2015/internal/util/isFunction.js","./node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js","./node_modules/rxjs/_esm2015/internal/util/isIterable.js","./node_modules/rxjs/_esm2015/internal/util/isNumeric.js","./node_modules/rxjs/_esm2015/internal/util/isObject.js","./node_modules/rxjs/_esm2015/internal/util/isObservable.js","./node_modules/rxjs/_esm2015/internal/util/isPromise.js","./node_modules/rxjs/_esm2015/internal/util/isScheduler.js","./node_modules/rxjs/_esm2015/internal/util/noop.js","./node_modules/rxjs/_esm2015/internal/util/not.js","./node_modules/rxjs/_esm2015/internal/util/pipe.js","./node_modules/rxjs/_esm2015/internal/util/subscribeTo.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js","./node_modules/rxjs/_esm2015/internal/util/toSubscriber.js","webpack:///tslib?8340","webpack:///tslib?415b","webpack:///tslib?94b0","webpack:///tslib?01f5","webpack:///tslib?4e20","webpack:///tslib?b96c","webpack:///tslib?0ab0","webpack:///tslib?f156","webpack:///tslib?237f","webpack:///tslib?0c3a","webpack:///tslib?fe30","webpack:///tslib?1eaf","webpack:///tslib?382b","./node_modules/@progress/kendo-angular-label/node_modules/tslib/tslib.es6.js","webpack:///tslib?1d7f","webpack:///tslib?c712","webpack:///tslib?ef4c","webpack:///tslib?dc46","webpack:///tslib?9fb4","webpack:///tslib?6f71","webpack:///tslib?da83","webpack:///tslib?17e6","webpack:///tslib?3519","webpack:///tslib?6eca","webpack:///tslib?6e01","webpack:///tslib?1414","tslib","webpack:///tslib?9668","./node_modules/tslib/tslib.es6.js","./node_modules/@angular/animations/fesm2015/animations.mjs","./node_modules/@angular/animations/fesm2015/browser.mjs","./node_modules/@angular/cdk/fesm2015/a11y.mjs","./node_modules/@angular/cdk/fesm2015/bidi.mjs","./node_modules/@angular/cdk/fesm2015/cdk.mjs","./node_modules/@angular/cdk/fesm2015/coercion.mjs","./node_modules/@angular/cdk/fesm2015/collections.mjs","./node_modules/@angular/cdk/fesm2015/keycodes.mjs","./node_modules/@angular/cdk/fesm2015/observers.mjs","./node_modules/@angular/cdk/fesm2015/overlay.mjs","./node_modules/@angular/cdk/fesm2015/platform.mjs","./node_modules/@angular/cdk/fesm2015/portal.mjs","./node_modules/@angular/cdk/fesm2015/scrolling.mjs","./node_modules/@angular/common/fesm2015/common.mjs","./node_modules/@angular/common/fesm2015/http.mjs","./node_modules/@angular/compiler/fesm2015/compiler.mjs","./node_modules/@angular/core/fesm2015/core.mjs","./node_modules/@angular/forms/fesm2015/forms.mjs","./node_modules/@angular/localize/fesm2022/init.mjs","./node_modules/@angular/localize/fesm2022/localize.mjs","./node_modules/@angular/material/fesm2015/autocomplete.mjs","./node_modules/@angular/material/fesm2015/core.mjs","./node_modules/@angular/material/fesm2015/form-field.mjs","./node_modules/@angular/platform-browser-dynamic/fesm2015/platform-browser-dynamic.mjs","./node_modules/@angular/platform-browser/fesm2015/animations.mjs","./node_modules/@angular/platform-browser/fesm2015/platform-browser.mjs","./node_modules/@angular/router/fesm2015/router.mjs","./node_modules/@progress/kendo-licensing/dist/index.mjs","./node_modules/angular-notifier/fesm2015/angular-notifier.mjs","./node_modules/w3c-keyname/index.es.js","./node_modules/xlsx/xlsx.mjs"],"sourcesContent":["import { __decorate, __param, __awaiter } from 'tslib';\nimport { Injectable, InjectionToken, Inject, NgModule } from '@angular/core';\nimport { BehaviorSubject, from } from 'rxjs';\nimport { filter, map, mergeMap, tap } from 'rxjs/operators';\nimport { UserAgentApplication, UrlUtils, WindowUtils, InteractionRequiredAuthError, ServerHashParamKeys } from 'msal';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { Location, PlatformLocation, CommonModule } from '@angular/common';\nimport { HttpErrorResponse } from '@angular/common/http';\n\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/router';\nimport * as ɵngcc2 from '@angular/common';\nlet BroadcastService = class BroadcastService {\r\n constructor() {\r\n this._msalSubject = new BehaviorSubject(1);\r\n this.msalItem$ = this._msalSubject.asObservable();\r\n }\r\n broadcast(type, payload) {\r\n this._msalSubject.next({ type, payload });\r\n }\r\n getMSALSubject() {\r\n return this._msalSubject;\r\n }\r\n getMSALItem() {\r\n return this.msalItem$;\r\n }\r\n subscribe(type, callback) {\r\n return this.msalItem$\r\n .pipe(filter(message => message.type === type), map(message => message.payload))\r\n .subscribe(callback);\r\n }\r\n};\nBroadcastService.ɵfac = function BroadcastService_Factory(t) { return new (t || BroadcastService)(); };\nBroadcastService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: BroadcastService, factory: function (t) { return BroadcastService.ɵfac(t); } });\n\nclass MSALError {\r\n constructor(error, errorDesc, scopes) {\r\n this._error = \"\";\r\n this._errorDesc = \"\";\r\n this._scopes = \"\";\r\n this._error = error;\r\n if (errorDesc) {\r\n this._errorDesc = errorDesc;\r\n }\r\n if (scopes) {\r\n this._scopes = scopes;\r\n }\r\n }\r\n get error() {\r\n return this._error;\r\n }\r\n set error(value) {\r\n this._error = value;\r\n }\r\n get errorDesc() {\r\n return this._errorDesc;\r\n }\r\n set errorDesc(value) {\r\n this._errorDesc = value;\r\n }\r\n get scopes() {\r\n return this._scopes;\r\n }\r\n set scopes(value) {\r\n this._scopes = value;\r\n }\r\n}\n\nconst MSAL_CONFIG = new InjectionToken(\"MSAL_CONFIG\");\r\nconst MSAL_CONFIG_ANGULAR = new InjectionToken(\"MSAL_CONFIG_ANGULAR\");\n\nconst buildMsalConfig = (config) => {\r\n return Object.assign(Object.assign({}, config), { framework: Object.assign(Object.assign({}, config.framework), { isAngular: true }) });\r\n};\r\nconst ɵ0 = buildMsalConfig;\r\nlet MsalService = class MsalService extends UserAgentApplication {\r\n constructor(msalConfig, msalAngularConfig, router, broadcastService) {\r\n super(buildMsalConfig(msalConfig));\r\n this.msalConfig = msalConfig;\r\n this.msalAngularConfig = msalAngularConfig;\r\n this.router = router;\r\n this.broadcastService = broadcastService;\r\n window.addEventListener(\"msal:popUpHashChanged\", (e) => {\r\n this.getLogger().verbose(\"popUpHashChanged \");\r\n });\r\n window.addEventListener(\"msal:popUpClosed\", (e) => {\r\n var errorParts = e.detail.split(\"|\");\r\n var msalError = new MSALError(errorParts[0], errorParts[1]);\r\n if (this.getLoginInProgress()) {\r\n broadcastService.broadcast(\"msal:loginFailure\", msalError);\r\n this.setloginInProgress(false);\r\n }\r\n else if (this.getAcquireTokenInProgress()) {\r\n broadcastService.broadcast(\"msal:acquireTokenFailure\", msalError);\r\n this.setAcquireTokenInProgress(false);\r\n }\r\n });\r\n this.router.events.subscribe(event => {\r\n for (var i = 0; i < router.config.length; i++) {\r\n if (!router.config[i].canActivate) {\r\n if (this.msalAngularConfig.unprotectedResources) {\r\n if (!this.isEmpty(router.config[i].path) && !this.isUnprotectedResource(router.config[i].path)) {\r\n this.msalAngularConfig.unprotectedResources.push(router.config[i].path);\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n isUnprotectedResource(url) {\r\n const frameworkUnprotectedResources = this.msalConfig.framework && this.msalConfig.framework.unprotectedResources;\r\n const configUnprotectedResources = this.msalAngularConfig.unprotectedResources || [];\r\n const unprotectedResources = frameworkUnprotectedResources && frameworkUnprotectedResources.length ? frameworkUnprotectedResources : configUnprotectedResources;\r\n return unprotectedResources.some(resource => url.indexOf(resource) > -1);\r\n }\r\n isEmpty(str) {\r\n return (typeof str === \"undefined\" || !str || 0 === str.length);\r\n }\r\n loginPopup(request) {\r\n return super.loginPopup(request)\r\n .then((authResponse) => {\r\n this.broadcastService.broadcast(\"msal:loginSuccess\", authResponse);\r\n return authResponse;\r\n })\r\n .catch((error) => {\r\n this.broadcastService.broadcast(\"msal:loginFailure\", error);\r\n this.getLogger().error(\"Error during login:\\n\" + error.errorMessage);\r\n throw error;\r\n });\r\n }\r\n ssoSilent(request) {\r\n return super.ssoSilent(request)\r\n .then((authResponse) => {\r\n this.broadcastService.broadcast(\"msal:ssoSuccess\", authResponse);\r\n return authResponse;\r\n })\r\n .catch((error) => {\r\n this.broadcastService.broadcast(\"msal:ssoFailure\", error);\r\n this.getLogger().error(\"Error during login:\\n\" + error.errorMessage);\r\n throw error;\r\n });\r\n }\r\n acquireTokenSilent(request) {\r\n return super.acquireTokenSilent(request)\r\n .then((authResponse) => {\r\n this.broadcastService.broadcast(\"msal:acquireTokenSuccess\", authResponse);\r\n return authResponse;\r\n })\r\n .catch((error) => {\r\n this.broadcastService.broadcast(\"msal:acquireTokenFailure\", error);\r\n this.getLogger().error(\"Error when acquiring token for scopes: \" + request.scopes + \" \" + error);\r\n throw error;\r\n });\r\n }\r\n acquireTokenPopup(request) {\r\n return super.acquireTokenPopup(request)\r\n .then((authResponse) => {\r\n this.broadcastService.broadcast(\"msal:acquireTokenSuccess\", authResponse);\r\n return authResponse;\r\n })\r\n .catch((error) => {\r\n this.broadcastService.broadcast(\"msal:acquireTokenFailure\", error);\r\n this.getLogger().error(\"Error when acquiring token for scopes : \" + request.scopes + \" \" + error);\r\n throw error;\r\n });\r\n }\r\n handleRedirectCallback(authOrTokenCallback, errorReceivedCallback) {\r\n super.handleRedirectCallback((authError, authResponse) => {\r\n if (authError) {\r\n if (!this.getAccount()) {\r\n this.broadcastService.broadcast(\"msal:loginFailure\", authError);\r\n }\r\n else {\r\n this.broadcastService.broadcast(\"msal:acquireTokenFailure\", authError);\r\n }\r\n if (errorReceivedCallback) {\r\n errorReceivedCallback(authError, authResponse.accountState);\r\n }\r\n else {\r\n authOrTokenCallback(authError, authResponse);\r\n }\r\n }\r\n else if (authResponse) {\r\n if (authResponse.tokenType === \"id_token\") {\r\n this.broadcastService.broadcast(\"msal:loginSuccess\", authResponse);\r\n }\r\n else {\r\n this.broadcastService.broadcast(\"msal:acquireTokenSuccess\", authResponse);\r\n }\r\n if (errorReceivedCallback) {\r\n authOrTokenCallback(authResponse);\r\n }\r\n else {\r\n authOrTokenCallback(null, authResponse);\r\n }\r\n }\r\n });\r\n }\r\n clearCacheForScope(accessToken) {\r\n return super.clearCacheForScope(accessToken);\r\n }\r\n getScopesForEndpoint(endpoint) {\r\n if (this.msalConfig.framework && this.msalConfig.framework.unprotectedResources) {\r\n this.getLogger().info(\"msalConfig.framework.unprotectedResources is deprecated, use msalAngularConfig.unprotectedResources\");\r\n }\r\n // if user specified list of unprotectedResources, no need to send token to these endpoints, return null.\r\n const isUnprotected = this.isUnprotectedResource(endpoint);\r\n if (isUnprotected) {\r\n return null;\r\n }\r\n const frameworkProtectedResourceMap = this.msalConfig.framework && this.msalConfig.framework.protectedResourceMap;\r\n if (frameworkProtectedResourceMap) {\r\n this.getLogger().info(\"msalConfig.framework.protectedResourceMap is deprecated, use msalAngularConfig.protectedResourceMap\");\r\n }\r\n const protectedResourceMap = frameworkProtectedResourceMap && frameworkProtectedResourceMap.size ? frameworkProtectedResourceMap : new Map(this.msalAngularConfig.protectedResourceMap);\r\n // process all protected resources and send the matched one\r\n const keyForEndpoint = Array.from(protectedResourceMap.keys()).find(key => endpoint.indexOf(key) > -1);\r\n if (keyForEndpoint) {\r\n return protectedResourceMap.get(keyForEndpoint);\r\n }\r\n /*\r\n * default resource will be clientid if nothing specified\r\n * App will use idtoken for calls to itself\r\n * check if it's staring from http or https, needs to match with app host\r\n */\r\n if (endpoint.indexOf(\"http://\") > -1 || endpoint.indexOf(\"https://\") > -1) {\r\n if (UrlUtils.getHostFromUri(endpoint) === UrlUtils.getHostFromUri(super.getRedirectUri())) {\r\n return new Array(this.msalConfig.auth.clientId);\r\n }\r\n }\r\n else {\r\n /*\r\n * in angular level, the url for $http interceptor call could be relative url,\r\n * if it's relative call, we'll treat it as app backend call.\r\n */\r\n return new Array(this.msalConfig.auth.clientId);\r\n }\r\n // if not the app's own backend or not a domain listed in the endpoints structure\r\n return null;\r\n }\r\n};\nMsalService.ɵfac = function MsalService_Factory(t) { return new (t || MsalService)(ɵngcc0.ɵɵinject(MSAL_CONFIG), ɵngcc0.ɵɵinject(MSAL_CONFIG_ANGULAR), ɵngcc0.ɵɵinject(ɵngcc1.Router), ɵngcc0.ɵɵinject(BroadcastService)); };\nMsalService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: MsalService, factory: function (t) { return MsalService.ɵfac(t); } });\r\nMsalService.ctorParameters = () => [\r\n { type: undefined, decorators: [{ type: Inject, args: [MSAL_CONFIG,] }] },\r\n { type: undefined, decorators: [{ type: Inject, args: [MSAL_CONFIG_ANGULAR,] }] },\r\n { type: Router },\r\n { type: BroadcastService }\r\n];\r\nMsalService = __decorate([ __param(0, Inject(MSAL_CONFIG)),\r\n __param(1, Inject(MSAL_CONFIG_ANGULAR))\r\n], MsalService);\n\nlet MsalGuard = class MsalGuard {\r\n constructor(msalConfig, msalAngularConfig, authService, router, activatedRoute, location, platformLocation, broadcastService) {\r\n this.msalConfig = msalConfig;\r\n this.msalAngularConfig = msalAngularConfig;\r\n this.authService = authService;\r\n this.router = router;\r\n this.activatedRoute = activatedRoute;\r\n this.location = location;\r\n this.platformLocation = platformLocation;\r\n this.broadcastService = broadcastService;\r\n }\r\n /**\r\n * Builds the absolute url for the destination page\r\n * @param path Relative path of requested page\r\n * @returns Full destination url\r\n */\r\n getDestinationUrl(path) {\r\n // Absolute base url for the application (default to origin if base element not present)\r\n const baseElements = document.getElementsByTagName(\"base\");\r\n const baseUrl = this.location.normalize(baseElements.length ? baseElements[0].href : window.location.origin);\r\n // Path of page (including hash, if using hash routing)\r\n const pathUrl = this.location.prepareExternalUrl(path);\r\n // Hash location strategy\r\n if (pathUrl.startsWith(\"#\")) {\r\n return `${baseUrl}/${pathUrl}`;\r\n }\r\n // If using path location strategy, pathUrl will include the relative portion of the base path (e.g. /base/page).\r\n // Since baseUrl also includes /base, can just concatentate baseUrl + path\r\n return `${baseUrl}${path}`;\r\n }\r\n /**\r\n * Interactively prompt the user to login\r\n * @param url Path of the requested page\r\n */\r\n loginInteractively(url) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this.msalAngularConfig.popUp) {\r\n return this.authService.loginPopup({\r\n scopes: this.msalAngularConfig.consentScopes,\r\n extraQueryParameters: this.msalAngularConfig.extraQueryParameters\r\n })\r\n .then(() => true)\r\n .catch(() => false);\r\n }\r\n const redirectStartPage = this.getDestinationUrl(url);\r\n this.authService.loginRedirect({\r\n redirectStartPage,\r\n scopes: this.msalAngularConfig.consentScopes,\r\n extraQueryParameters: this.msalAngularConfig.extraQueryParameters\r\n });\r\n });\r\n }\r\n canActivate(route, state) {\r\n this.authService.getLogger().verbose(\"location change event from old url to new url\");\r\n // If a page with MSAL Guard is set as the redirect for acquireTokenSilent,\r\n // short-circuit to prevent redirecting or popups.\r\n if (UrlUtils.urlContainsHash(window.location.hash) && WindowUtils.isInIframe()) {\r\n this.authService.getLogger().warning(\"redirectUri set to page with MSAL Guard. It is recommended to not set redirectUri to a page that requires authentication.\");\r\n return false;\r\n }\r\n if (!this.authService.getAccount()) {\r\n return this.loginInteractively(state.url);\r\n }\r\n return this.authService.acquireTokenSilent({\r\n scopes: [this.msalConfig.auth.clientId]\r\n })\r\n .then(() => true)\r\n .catch((error) => {\r\n if (InteractionRequiredAuthError.isInteractionRequiredError(error.errorCode)) {\r\n this.authService.getLogger().info(`Interaction required error in MSAL Guard, prompting for interaction.`);\r\n return this.loginInteractively(state.url);\r\n }\r\n this.authService.getLogger().error(`Non-interaction error in MSAL Guard: ${error.errorMessage}`);\r\n throw error;\r\n });\r\n }\r\n};\nMsalGuard.ɵfac = function MsalGuard_Factory(t) { return new (t || MsalGuard)(ɵngcc0.ɵɵinject(MSAL_CONFIG), ɵngcc0.ɵɵinject(MSAL_CONFIG_ANGULAR), ɵngcc0.ɵɵinject(MsalService), ɵngcc0.ɵɵinject(ɵngcc1.Router), ɵngcc0.ɵɵinject(ɵngcc1.ActivatedRoute), ɵngcc0.ɵɵinject(ɵngcc2.Location), ɵngcc0.ɵɵinject(ɵngcc2.PlatformLocation), ɵngcc0.ɵɵinject(BroadcastService)); };\nMsalGuard.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: MsalGuard, factory: function (t) { return MsalGuard.ɵfac(t); } });\r\nMsalGuard.ctorParameters = () => [\r\n { type: undefined, decorators: [{ type: Inject, args: [MSAL_CONFIG,] }] },\r\n { type: undefined, decorators: [{ type: Inject, args: [MSAL_CONFIG_ANGULAR,] }] },\r\n { type: MsalService },\r\n { type: Router },\r\n { type: ActivatedRoute },\r\n { type: Location },\r\n { type: PlatformLocation },\r\n { type: BroadcastService }\r\n];\r\nMsalGuard = __decorate([ __param(0, Inject(MSAL_CONFIG)),\r\n __param(1, Inject(MSAL_CONFIG_ANGULAR))\r\n], MsalGuard);\n\nlet MsalInterceptor = class MsalInterceptor {\r\n constructor(auth, broadcastService) {\r\n this.auth = auth;\r\n this.broadcastService = broadcastService;\r\n }\r\n intercept(req, next) {\r\n const scopes = this.auth.getScopesForEndpoint(req.url);\r\n this.auth.getLogger().verbose(\"Url: \" + req.url + \" maps to scopes: \" + scopes);\r\n // If there are no scopes set for this request, do nothing.\r\n if (!scopes) {\r\n return next.handle(req);\r\n }\r\n let token;\r\n // Acquire a token for this request, and attach as proper auth header.\r\n return from(this.auth.acquireTokenSilent({ scopes })\r\n .then((response) => {\r\n token = response.tokenType === ServerHashParamKeys.ID_TOKEN ? response.idToken.rawIdToken : response.accessToken;\r\n const authHeader = `Bearer ${token}`;\r\n return req.clone({\r\n setHeaders: {\r\n Authorization: authHeader,\r\n }\r\n });\r\n }))\r\n .pipe(mergeMap(nextReq => next.handle(nextReq)), tap(event => { }, // tslint:disable-line\r\n // tslint:disable-line\r\n err => {\r\n if (err instanceof HttpErrorResponse && err.status === 401) {\r\n this.auth.clearCacheForScope(token);\r\n this.broadcastService.broadcast(\"msal:notAuthorized\", err.message);\r\n }\r\n }));\r\n }\r\n};\nMsalInterceptor.ɵfac = function MsalInterceptor_Factory(t) { return new (t || MsalInterceptor)(ɵngcc0.ɵɵinject(MsalService), ɵngcc0.ɵɵinject(BroadcastService)); };\nMsalInterceptor.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: MsalInterceptor, factory: function (t) { return MsalInterceptor.ɵfac(t); } });\r\nMsalInterceptor.ctorParameters = () => [\r\n { type: MsalService },\r\n { type: BroadcastService }\r\n];\n\nconst defaultMsalAngularConfiguration = {\r\n consentScopes: [],\r\n popUp: false,\r\n extraQueryParameters: {},\r\n unprotectedResources: [],\r\n protectedResourceMap: []\r\n};\n\nvar MsalModule_1;\r\nlet MsalModule = MsalModule_1 = class MsalModule {\r\n static forRoot(config, angularConfig = defaultMsalAngularConfiguration) {\r\n return {\r\n ngModule: MsalModule_1,\r\n providers: [\r\n {\r\n provide: MSAL_CONFIG,\r\n useValue: config\r\n },\r\n {\r\n provide: MSAL_CONFIG_ANGULAR,\r\n useValue: angularConfig\r\n },\r\n MsalService\r\n ]\r\n };\r\n }\r\n};\nMsalModule.ɵfac = function MsalModule_Factory(t) { return new (t || MsalModule)(); };\nMsalModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: MsalModule });\nMsalModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ providers: [MsalGuard, BroadcastService], imports: [[CommonModule]] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(BroadcastService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MsalService, [{\n type: Injectable\n }], function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [MSAL_CONFIG]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [MSAL_CONFIG_ANGULAR]\n }] }, { type: ɵngcc1.Router }, { type: BroadcastService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MsalGuard, [{\n type: Injectable\n }], function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [MSAL_CONFIG]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [MSAL_CONFIG_ANGULAR]\n }] }, { type: MsalService }, { type: ɵngcc1.Router }, { type: ɵngcc1.ActivatedRoute }, { type: ɵngcc2.Location }, { type: ɵngcc2.PlatformLocation }, { type: BroadcastService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MsalInterceptor, [{\n type: Injectable\n }], function () { return [{ type: MsalService }, { type: BroadcastService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MsalModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n declarations: [],\n providers: [MsalGuard, BroadcastService]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(MsalModule, { imports: function () { return [CommonModule]; } }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { BroadcastService, MSAL_CONFIG, MSAL_CONFIG_ANGULAR, MsalGuard, MsalInterceptor, MsalModule, MsalService, defaultMsalAngularConfiguration as ɵa };\n\n","import { Deflate, Inflate } from '@progress/pako-esm';\n\n/**\n * Let the user use/change some implementations.\n */\nvar external = {\n Promise: Promise\n};\n\nconst support = {\n base64: true,\n array: true,\n string: true,\n nodebuffer: false,\n nodestream: false,\n\n get arraybuffer() {\n return typeof ArrayBuffer !== \"undefined\" && typeof Uint8Array !== \"undefined\";\n },\n\n // Returns true if JSZip can read/generate Uint8Array, false otherwise.\n get uint8array() {\n return typeof Uint8Array !== \"undefined\";\n },\n\n get blob() {\n return blob();\n }\n};\n\nlet blob = function() {\n let supported;\n\n if (typeof ArrayBuffer === \"undefined\") {\n supported = false;\n } else {\n const buffer = new ArrayBuffer(0);\n try {\n supported = new Blob([ buffer ], {\n type: \"application/zip\"\n }).size === 0;\n } catch (e) {\n supported = false;\n }\n }\n\n blob = () => supported;\n return supported;\n};\n\n/* eslint-disable */\n\n// private property\nconst _keyStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\n// public method for encoding\nconst encode = function(input) {\n let output = [];\n let chr1, chr2, chr3, enc1, enc2, enc3, enc4;\n let i = 0, len = input.length, remainingBytes = len;\n\n let isArray = typeof input !== \"string\";\n while (i < input.length) {\n remainingBytes = len - i;\n\n if (!isArray) {\n chr1 = input.charCodeAt(i++);\n chr2 = i < len ? input.charCodeAt(i++) : 0;\n chr3 = i < len ? input.charCodeAt(i++) : 0;\n } else {\n chr1 = input[i++];\n chr2 = i < len ? input[i++] : 0;\n chr3 = i < len ? input[i++] : 0;\n }\n\n enc1 = chr1 >> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\n enc3 = remainingBytes > 1 ? (((chr2 & 15) << 2) | (chr3 >> 6)) : 64;\n enc4 = remainingBytes > 2 ? (chr3 & 63) : 64;\n\n output.push(_keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4));\n\n }\n\n return output.join(\"\");\n};\n\n// public method for decoding\nconst decode = function(input) {\n let chr1, chr2, chr3;\n let enc1, enc2, enc3, enc4;\n let i = 0, resultIndex = 0;\n\n let dataUrlPrefix = \"data:\";\n\n if (input.substr(0, dataUrlPrefix.length) === dataUrlPrefix) {\n // This is a common error: people give a data url\n // (data:image/png;base64,iVBOR...) with a {base64: true} and\n // wonders why things don't work.\n // We can detect that the string input looks like a data url but we\n // *can't* be sure it is one: removing everything up to the comma would\n // be too dangerous.\n throw new Error(\"Invalid base64 input, it looks like a data url.\");\n }\n\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, \"\");\n\n let totalLength = input.length * 3 / 4;\n if(input.charAt(input.length - 1) === _keyStr.charAt(64)) {\n totalLength--;\n }\n if(input.charAt(input.length - 2) === _keyStr.charAt(64)) {\n totalLength--;\n }\n if (totalLength % 1 !== 0) {\n // totalLength is not an integer, the length does not match a valid\n // base64 content. That can happen if:\n // - the input is not a base64 content\n // - the input is *almost* a base64 content, with a extra chars at the\n // beginning or at the end\n // - the input uses a base64 letiant (base64url for example)\n throw new Error(\"Invalid base64 input, bad content length.\");\n }\n let output;\n if (support.uint8array) {\n output = new Uint8Array(totalLength|0);\n } else {\n output = new Array(totalLength|0);\n }\n\n while (i < input.length) {\n\n enc1 = _keyStr.indexOf(input.charAt(i++));\n enc2 = _keyStr.indexOf(input.charAt(i++));\n enc3 = _keyStr.indexOf(input.charAt(i++));\n enc4 = _keyStr.indexOf(input.charAt(i++));\n\n chr1 = (enc1 << 2) | (enc2 >> 4);\n chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\n chr3 = ((enc3 & 3) << 6) | enc4;\n\n output[resultIndex++] = chr1;\n\n if (enc3 !== 64) {\n output[resultIndex++] = chr2;\n }\n if (enc4 !== 64) {\n output[resultIndex++] = chr3;\n }\n\n }\n\n return output;\n};\n\n/* eslint-disable */\n\n/**\n * Convert a string that pass as a \"binary string\": it should represent a byte\n * array but may have > 255 char codes. Be sure to take only the first byte\n * and returns the byte array.\n * @param {String} str the string to transform.\n * @return {Array|Uint8Array} the string in a binary format.\n */\nfunction string2binary(str) {\n var result = null;\n if (support.uint8array) {\n result = new Uint8Array(str.length);\n } else {\n result = new Array(str.length);\n }\n return stringToArrayLike(str, result);\n}\n\n/**\n * Create a new blob with the given content and the given type.\n * @param {String|ArrayBuffer} part the content to put in the blob. DO NOT use\n * an Uint8Array because the stock browser of android 4 won't accept it (it\n * will be silently converted to a string, \"[object Uint8Array]\").\n *\n * Use only ONE part to build the blob to avoid a memory leak in IE11 / Edge:\n * when a large amount of Array is used to create the Blob, the amount of\n * memory consumed is nearly 100 times the original data amount.\n *\n * @param {String} type the mime type of the blob.\n * @return {Blob} the created blob.\n */\nconst newBlob = function(part, type) {\n checkSupport(\"blob\");\n\n // Blob constructor\n return new Blob([part], {\n type: type\n });\n};\n\n/**\n * The identity function.\n * @param {Object} input the input.\n * @return {Object} the same input.\n */\nfunction identity(input) {\n return input;\n}\n\n/**\n * Fill in an array with a string.\n * @param {String} str the string to use.\n * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to fill in (will be mutated).\n * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated array.\n */\nfunction stringToArrayLike(str, array) {\n for (var i = 0; i < str.length; ++i) {\n array[i] = str.charCodeAt(i) & 0xFF;\n }\n return array;\n}\n\n/**\n * Transform an array of int into a string, chunk by chunk.\n * See the performances notes on arrayLikeToString.\n * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform.\n * @param {String} type the type of the array.\n * @param {Integer} chunk the chunk size.\n * @return {String} the resulting string.\n * @throws Error if the chunk is too big for the stack.\n */\nfunction stringifyByChunk(array, type, chunk) {\n var result = [], k = 0, len = array.length;\n // shortcut\n if (len <= chunk) {\n return String.fromCharCode.apply(null, array);\n }\n while (k < len) {\n if (type === \"array\") {\n result.push(String.fromCharCode.apply(null, array.slice(k, Math.min(k + chunk, len))));\n }\n else {\n result.push(String.fromCharCode.apply(null, array.subarray(k, Math.min(k + chunk, len))));\n }\n k += chunk;\n }\n return result.join(\"\");\n}\n\n/**\n * Call String.fromCharCode on every item in the array.\n * This is the naive implementation, which generate A LOT of intermediate string.\n * This should be used when everything else fail.\n * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform.\n * @return {String} the result.\n */\nfunction stringifyByChar(array) {\n var resultStr = \"\";\n for(var i = 0; i < array.length; i++) {\n resultStr += String.fromCharCode(array[i]);\n }\n return resultStr;\n}\n\n/**\n * true if the browser accepts to use String.fromCharCode on Uint8Array\n */\nlet fromCharCodeSupportsTypedArrays = () => {\n let supported;\n try {\n supported = support.uint8array && String.fromCharCode.apply(null, new Uint8Array(1)).length === 1;\n } catch (e) {\n supported = false;\n }\n\n fromCharCodeSupportsTypedArrays = () => supported;\n return supported;\n};\n\n/**\n * Transform an array-like object to a string.\n * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform.\n * @return {String} the result.\n */\nfunction arrayLikeToString(array) {\n // Performances notes :\n // --------------------\n // String.fromCharCode.apply(null, array) is the fastest, see\n // see http://jsperf.com/converting-a-uint8array-to-a-string/2\n // but the stack is limited (and we can get huge arrays !).\n //\n // result += String.fromCharCode(array[i]); generate too many strings !\n //\n // This code is inspired by http://jsperf.com/arraybuffer-to-string-apply-performance/2\n // TODO : we now have workers that split the work. Do we still need that ?\n var chunk = 65536,\n type = getTypeOf(array),\n canUseApply = true;\n if (type === \"uint8array\") {\n canUseApply = fromCharCodeSupportsTypedArrays();\n }\n\n if (canUseApply) {\n while (chunk > 1) {\n try {\n return stringifyByChunk(array, type, chunk);\n } catch (e) {\n chunk = Math.floor(chunk / 2);\n }\n }\n }\n\n // no apply or chunk error : slow and painful algorithm\n // default browser on android 4.*\n return stringifyByChar(array);\n}\n\nconst applyFromCharCode = arrayLikeToString;\n\n\n/**\n * Copy the data from an array-like to an other array-like.\n * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayFrom the origin array.\n * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayTo the destination array which will be mutated.\n * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated destination array.\n */\nfunction arrayLikeToArrayLike(arrayFrom, arrayTo) {\n for (var i = 0; i < arrayFrom.length; i++) {\n arrayTo[i] = arrayFrom[i];\n }\n return arrayTo;\n}\n\n// a matrix containing functions to transform everything into everything.\nvar transform = {\n // string to ?\n \"string\": {\n \"string\": identity,\n \"array\": function(input) {\n return stringToArrayLike(input, new Array(input.length));\n },\n \"arraybuffer\": function(input) {\n return transform[\"string\"][\"uint8array\"](input).buffer;\n },\n \"uint8array\": function(input) {\n return stringToArrayLike(input, new Uint8Array(input.length));\n }\n },\n\n // array to ?\n \"array\": {\n \"string\": arrayLikeToString,\n \"array\": identity,\n \"arraybuffer\": function(input) {\n return (new Uint8Array(input)).buffer;\n },\n \"uint8array\": function(input) {\n return new Uint8Array(input);\n }\n },\n\n // arraybuffer to ?\n \"arraybuffer\": {\n \"string\": function(input) {\n return arrayLikeToString(new Uint8Array(input));\n },\n \"array\": function(input) {\n return arrayLikeToArrayLike(new Uint8Array(input), new Array(input.byteLength));\n },\n \"arraybuffer\": identity,\n \"uint8array\": function(input) {\n return new Uint8Array(input);\n }\n },\n\n // uint8array to ?\n \"uint8array\": {\n \"string\": arrayLikeToString,\n \"array\": function(input) {\n return arrayLikeToArrayLike(input, new Array(input.length));\n },\n \"arraybuffer\": function(input) {\n return input.buffer;\n },\n \"uint8array\": identity\n }\n};\n\n/**\n * Transform an input into any type.\n * The supported output type are : string, array, uint8array, arraybuffer.\n * If no output type is specified, the unmodified input will be returned.\n * @param {String} outputType the output type.\n * @param {String|Array|ArrayBuffer|Uint8Array|Buffer} input the input to convert.\n * @throws {Error} an Error if the browser doesn't support the requested output type.\n */\nconst transformTo = function(outputType, input) {\n if (!input) {\n // undefined, null, etc\n // an empty string won't harm.\n input = \"\";\n }\n if (!outputType) {\n return input;\n }\n checkSupport(outputType);\n var inputType = getTypeOf(input);\n var result = transform[inputType][outputType](input);\n return result;\n};\n\n/**\n * Return the type of the input.\n * The type will be in a format valid for JSZip.utils.transformTo : string, array, uint8array, arraybuffer.\n * @param {Object} input the input to identify.\n * @return {String} the (lowercase) type of the input.\n */\nconst getTypeOf = function(input) {\n if (typeof input === \"string\") {\n return \"string\";\n }\n if (Object.prototype.toString.call(input) === \"[object Array]\") {\n return \"array\";\n }\n if (support.uint8array && input instanceof Uint8Array) {\n return \"uint8array\";\n }\n if (support.arraybuffer && input instanceof ArrayBuffer) {\n return \"arraybuffer\";\n }\n};\n\n/**\n * Throw an exception if the type is not supported.\n * @param {String} type the type to check.\n * @throws {Error} an Error if the browser doesn't support the requested type.\n */\nconst checkSupport = function(type) {\n var supported = support[type.toLowerCase()];\n if (!supported) {\n throw new Error(type + \" is not supported by this platform\");\n }\n};\n\nconst MAX_VALUE_16BITS = 65535;\nconst MAX_VALUE_32BITS = -1; // well, \"\\xFF\\xFF\\xFF\\xFF\\xFF\\xFF\\xFF\\xFF\" is parsed as -1\n\n/**\n * Prettify a string read as binary.\n * @param {string} str the string to prettify.\n * @return {string} a pretty string.\n */\nconst pretty = function(str) {\n var res = '',\n code, i;\n for (i = 0; i < (str || \"\").length; i++) {\n code = str.charCodeAt(i);\n res += '\\\\x' + (code < 16 ? \"0\" : \"\") + code.toString(16).toUpperCase();\n }\n return res;\n};\n\n/**\n * Defer the call of a function.\n * @param {Function} callback the function to call asynchronously.\n * @param {Array} args the arguments to give to the callback.\n */\nconst delay = function(callback, args, self) {\n setTimeout(function() {\n callback.apply(self || null, args || []);\n }, 0);\n};\n\n/**\n * Merge the objects passed as parameters into a new one.\n * @private\n * @param {...Object} var_args All objects to merge.\n * @return {Object} a new object with the data of the others.\n */\nconst extend = function() {\n var result = {}, i, attr;\n for (i = 0; i < arguments.length; i++) { // arguments is not enumerable in some browsers\n for (attr in arguments[i]) {\n if (Object.hasOwnProperty.call(arguments[i], attr) && typeof result[attr] === \"undefined\") {\n result[attr] = arguments[i][attr];\n }\n }\n }\n return result;\n};\n\n/**\n * Transform arbitrary content into a Promise.\n * @param {String} name a name for the content being processed.\n * @param {Object} inputData the content to process.\n * @param {Boolean} isBinary true if the content is not an unicode string\n * @param {Boolean} isOptimizedBinaryString true if the string content only has one byte per character.\n * @param {Boolean} isBase64 true if the string content is encoded with base64.\n * @return {Promise} a promise in a format usable by JSZip.\n */\nconst prepareContent = function(name, inputData, isBinary, isOptimizedBinaryString, isBase64) {\n\n // if inputData is already a promise, this flatten it.\n var promise = external.Promise.resolve(inputData).then(function(data) {\n\n\n var isBlob = support.blob && (data instanceof Blob || ['[object File]', '[object Blob]'].indexOf(Object.prototype.toString.call(data)) !== -1);\n\n if (isBlob && typeof FileReader !== \"undefined\") {\n return new external.Promise(function (resolve, reject) {\n var reader = new FileReader();\n\n reader.onload = function(e) {\n resolve(e.target.result);\n };\n reader.onerror = function(e) {\n reject(e.target.error);\n };\n reader.readAsArrayBuffer(data);\n });\n } else {\n return data;\n }\n });\n\n return promise.then(function(data) {\n var dataType = getTypeOf(data);\n\n if (!dataType) {\n return external.Promise.reject(\n new Error(\"Can't read the data of '\" + name + \"'. Is it \" +\n \"in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?\")\n );\n }\n // special case : it's way easier to work with Uint8Array than with ArrayBuffer\n if (dataType === \"arraybuffer\") {\n data = transformTo(\"uint8array\", data);\n } else if (dataType === \"string\") {\n if (isBase64) {\n data = decode(data);\n }\n else if (isBinary) {\n // optimizedBinaryString === true means that the file has already been filtered with a 0xFF mask\n if (isOptimizedBinaryString !== true) {\n // this is a string, not in a base64 format.\n // Be sure that this is a correct \"binary string\"\n data = string2binary(data);\n }\n }\n }\n return data;\n });\n};\n\n/* eslint-disable */\n\n/**\n * A worker that does nothing but passing chunks to the next one. This is like\n * a nodejs stream but with some differences. On the good side :\n * - it works on IE 6-9 without any issue / polyfill\n * - it weights less than the full dependencies bundled with browserify\n * - it forwards errors (no need to declare an error handler EVERYWHERE)\n *\n * A chunk is an object with 2 attributes : `meta` and `data`. The former is an\n * object containing anything (`percent` for example), see each worker for more\n * details. The latter is the real data (String, Uint8Array, etc).\n *\n * @constructor\n * @param {String} name the name of the stream (mainly used for debugging purposes)\n */\nclass GenericWorker {\n constructor(name) {\n // the name of the worker\n this.name = name || \"default\";\n // an object containing metadata about the workers chain\n this.streamInfo = {};\n // an error which happened when the worker was paused\n this.generatedError = null;\n // an object containing metadata to be merged by this worker into the general metadata\n this.extraStreamInfo = {};\n // true if the stream is paused (and should not do anything), false otherwise\n this.isPaused = true;\n // true if the stream is finished (and should not do anything), false otherwise\n this.isFinished = false;\n // true if the stream is locked to prevent further structure updates (pipe), false otherwise\n this.isLocked = false;\n // the event listeners\n this._listeners = {\n 'data':[],\n 'end':[],\n 'error':[]\n };\n // the previous worker, if any\n this.previous = null;\n }\n\n /**\n * Push a chunk to the next workers.\n * @param {Object} chunk the chunk to push\n */\n push(chunk) {\n this.emit(\"data\", chunk);\n }\n\n /**\n * End the stream.\n * @return {Boolean} true if this call ended the worker, false otherwise.\n */\n end() {\n if (this.isFinished) {\n return false;\n }\n\n this.flush();\n try {\n this.emit(\"end\");\n this.cleanUp();\n this.isFinished = true;\n } catch (e) {\n this.emit(\"error\", e);\n }\n return true;\n }\n\n /**\n * End the stream with an error.\n * @param {Error} e the error which caused the premature end.\n * @return {Boolean} true if this call ended the worker with an error, false otherwise.\n */\n error(e) {\n if (this.isFinished) {\n return false;\n }\n\n if(this.isPaused) {\n this.generatedError = e;\n } else {\n this.isFinished = true;\n\n this.emit(\"error\", e);\n\n // in the workers chain exploded in the middle of the chain,\n // the error event will go downward but we also need to notify\n // workers upward that there has been an error.\n if(this.previous) {\n this.previous.error(e);\n }\n\n this.cleanUp();\n }\n return true;\n }\n\n /**\n * Add a callback on an event.\n * @param {String} name the name of the event (data, end, error)\n * @param {Function} listener the function to call when the event is triggered\n * @return {GenericWorker} the current object for chainability\n */\n on(name, listener) {\n this._listeners[name].push(listener);\n return this;\n }\n\n /**\n * Clean any references when a worker is ending.\n */\n cleanUp() {\n this.streamInfo = this.generatedError = this.extraStreamInfo = null;\n this._listeners = [];\n }\n\n /**\n * Trigger an event. This will call registered callback with the provided arg.\n * @param {String} name the name of the event (data, end, error)\n * @param {Object} arg the argument to call the callback with.\n */\n emit(name, arg) {\n if (this._listeners[name]) {\n for(var i = 0; i < this._listeners[name].length; i++) {\n this._listeners[name][i].call(this, arg);\n }\n }\n }\n\n /**\n * Chain a worker with an other.\n * @param {Worker} next the worker receiving events from the current one.\n * @return {worker} the next worker for chainability\n */\n pipe(next) {\n return next.registerPrevious(this);\n }\n\n /**\n * Same as `pipe` in the other direction.\n * Using an API with `pipe(next)` is very easy.\n * Implementing the API with the point of view of the next one registering\n * a source is easier, see the ZipFileWorker.\n * @param {Worker} previous the previous worker, sending events to this one\n * @return {Worker} the current worker for chainability\n */\n registerPrevious(previous) {\n if (this.isLocked) {\n throw new Error(\"The stream '\" + this + \"' has already been used.\");\n }\n\n // sharing the streamInfo...\n this.streamInfo = previous.streamInfo;\n // ... and adding our own bits\n this.mergeStreamInfo();\n this.previous = previous;\n var self = this;\n previous.on('data', function (chunk) {\n self.processChunk(chunk);\n });\n previous.on('end', function () {\n self.end();\n });\n previous.on('error', function (e) {\n self.error(e);\n });\n return this;\n }\n\n /**\n * Pause the stream so it doesn't send events anymore.\n * @return {Boolean} true if this call paused the worker, false otherwise.\n */\n pause() {\n if(this.isPaused || this.isFinished) {\n return false;\n }\n this.isPaused = true;\n\n if(this.previous) {\n this.previous.pause();\n }\n return true;\n }\n\n /**\n * Resume a paused stream.\n * @return {Boolean} true if this call resumed the worker, false otherwise.\n */\n resume() {\n if(!this.isPaused || this.isFinished) {\n return false;\n }\n this.isPaused = false;\n\n // if true, the worker tried to resume but failed\n var withError = false;\n if(this.generatedError) {\n this.error(this.generatedError);\n withError = true;\n }\n if(this.previous) {\n this.previous.resume();\n }\n\n return !withError;\n }\n\n /**\n * Flush any remaining bytes as the stream is ending.\n */\n flush() {}\n\n /**\n * Process a chunk. This is usually the method overridden.\n * @param {Object} chunk the chunk to process.\n */\n processChunk(chunk) {\n this.push(chunk);\n }\n\n /**\n * Add a key/value to be added in the workers chain streamInfo once activated.\n * @param {String} key the key to use\n * @param {Object} value the associated value\n * @return {Worker} the current worker for chainability\n */\n withStreamInfo(key, value) {\n this.extraStreamInfo[key] = value;\n this.mergeStreamInfo();\n return this;\n }\n\n /**\n * Merge this worker's streamInfo into the chain's streamInfo.\n */\n mergeStreamInfo() {\n for(var key in this.extraStreamInfo) {\n if (!this.extraStreamInfo.hasOwnProperty(key)) {\n continue;\n }\n this.streamInfo[key] = this.extraStreamInfo[key];\n }\n }\n\n /**\n * Lock the stream to prevent further updates on the workers chain.\n * After calling this method, all calls to pipe will fail.\n */\n lock() {\n if (this.isLocked) {\n throw new Error(\"The stream '\" + this + \"' has already been used.\");\n }\n this.isLocked = true;\n if (this.previous) {\n this.previous.lock();\n }\n }\n\n /**\n *\n * Pretty print the workers chain.\n */\n toString() {\n var me = \"Worker \" + this.name;\n if (this.previous) {\n return this.previous + \" -> \" + me;\n } else {\n return me;\n }\n }\n}\n\n/* eslint-disable */\n\n/**\n * The following functions come from pako, from pako/lib/utils/strings\n * released under the MIT license, see pako https://github.com/nodeca/pako/\n */\n\n// Returns the 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\nlet utf8len = function(c) {\n const _utf8len = new Array(256);\n for (let i = 0; i < 256; i++) {\n _utf8len[i] = (i >= 252 ? 6 : i >= 248 ? 5 : i >= 240 ? 4 : i >= 224 ? 3 : i >= 192 ? 2 : 1);\n }\n _utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n // Memoize table after first call\n utf8len = function(c) {\n return _utf8len[c];\n };\n\n return _utf8len[c];\n};\n\n// convert string to array (typed, when possible)\nvar string2buf = function (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 if (support.uint8array) {\n buf = new Uint8Array(buf_len);\n } else {\n buf = new Array(buf_len);\n }\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// 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);\nvar utf8border = function(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 // Fuckup - 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 vuffer 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// convert array to string\nvar buf2string = function (buf) {\n var i, out, c, c_len;\n var len = 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 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 // shrinkBuf(utf16buf, out)\n if (utf16buf.length !== out) {\n if(utf16buf.subarray) {\n utf16buf = utf16buf.subarray(0, out);\n } else {\n utf16buf.length = out;\n }\n }\n\n // return String.fromCharCode.apply(null, utf16buf);\n return applyFromCharCode(utf16buf);\n};\n\n\n// That's all for the pako functions.\n\n\n/**\n * Transform a javascript string into an array (typed if possible) of bytes,\n * UTF-8 encoded.\n * @param {String} str the string to encode\n * @return {Array|Uint8Array|Buffer} the UTF-8 encoded string.\n */\nconst utf8encode = function utf8encode(str) {\n return string2buf(str);\n};\n\n/**\n * Transform a bytes array (or a representation) representing an UTF-8 encoded\n * string into a javascript string.\n * @param {Array|Uint8Array|Buffer} buf the data de decode\n * @return {String} the decoded string.\n */\nconst utf8decode = function utf8decode(buf) {\n buf = transformTo(support.uint8array ? \"uint8array\" : \"array\", buf);\n\n return buf2string(buf);\n};\n\n/**\n * A worker to decode utf8 encoded binary chunks into string chunks.\n * @constructor\n */\nclass Utf8DecodeWorker extends GenericWorker {\n constructor() {\n super(\"utf-8 decode\");\n\n // the last bytes if a chunk didn't end with a complete codepoint.\n this.leftOver = null;\n }\n\n /**\n * @see GenericWorker.processChunk\n */\n processChunk (chunk) {\n var data = transformTo(support.uint8array ? \"uint8array\" : \"array\", chunk.data);\n\n // 1st step, re-use what's left of the previous chunk\n if (this.leftOver && this.leftOver.length) {\n if(support.uint8array) {\n var previousData = data;\n data = new Uint8Array(previousData.length + this.leftOver.length);\n data.set(this.leftOver, 0);\n data.set(previousData, this.leftOver.length);\n } else {\n data = this.leftOver.concat(data);\n }\n this.leftOver = null;\n }\n\n var nextBoundary = utf8border(data);\n var usableData = data;\n if (nextBoundary !== data.length) {\n if (support.uint8array) {\n usableData = data.subarray(0, nextBoundary);\n this.leftOver = data.subarray(nextBoundary, data.length);\n } else {\n usableData = data.slice(0, nextBoundary);\n this.leftOver = data.slice(nextBoundary, data.length);\n }\n }\n\n this.push({\n data : utf8decode(usableData),\n meta : chunk.meta\n });\n }\n\n /**\n * @see GenericWorker.flush\n */\n flush() {\n if (this.leftOver && this.leftOver.length) {\n this.push({\n data : utf8decode(this.leftOver),\n meta : {}\n });\n this.leftOver = null;\n }\n }\n}\n\n/**\n * A worker to endcode string chunks into utf8 encoded binary chunks.\n * @constructor\n */\nclass Utf8EncodeWorker extends GenericWorker {\n constructor() {\n super(\"utf-8 encode\");\n }\n\n /**\n * @see GenericWorker.processChunk\n */\n processChunk(chunk) {\n this.push({\n data: utf8encode(chunk.data),\n meta: chunk.meta\n });\n }\n}\n\n/**\n * A worker which convert chunks to a specified type.\n * @constructor\n * @param {String} destType the destination type.\n */\nclass ConvertWorker extends GenericWorker {\n constructor(destType) {\n super(\"ConvertWorker to \" + destType);\n this.destType = destType;\n }\n\n /**\n * @see GenericWorker.processChunk\n */\n processChunk(chunk) {\n this.push({\n data: transformTo(this.destType, chunk.data),\n meta: chunk.meta\n });\n }\n}\n\n/* eslint-disable */\n\n/**\n * Apply the final transformation of the data. If the user wants a Blob for\n * example, it's easier to work with an U8intArray and finally do the\n * ArrayBuffer/Blob conversion.\n * @param {String} type the name of the final type\n * @param {String|Uint8Array|Buffer} content the content to transform\n * @param {String} mimeType the mime type of the content, if applicable.\n * @return {String|Uint8Array|ArrayBuffer|Buffer|Blob} the content in the right format.\n */\nfunction transformZipOutput(type, content, mimeType) {\n switch(type) {\n case \"blob\" :\n return newBlob(transformTo(\"arraybuffer\", content), mimeType);\n case \"base64\" :\n return encode(content);\n default :\n return transformTo(type, content);\n }\n}\n\n/**\n * Concatenate an array of data of the given type.\n * @param {String} type the type of the data in the given array.\n * @param {Array} dataArray the array containing the data chunks to concatenate\n * @return {String|Uint8Array|Buffer} the concatenated data\n * @throws Error if the asked type is unsupported\n */\nfunction concat (type, dataArray) {\n var i, index = 0, res = null, totalLength = 0;\n for(i = 0; i < dataArray.length; i++) {\n totalLength += dataArray[i].length;\n }\n switch(type) {\n case \"string\":\n return dataArray.join(\"\");\n case \"array\":\n return Array.prototype.concat.apply([], dataArray);\n case \"uint8array\":\n res = new Uint8Array(totalLength);\n for(i = 0; i < dataArray.length; i++) {\n res.set(dataArray[i], index);\n index += dataArray[i].length;\n }\n return res;\n default:\n throw new Error(\"concat : unsupported type '\" + type + \"'\");\n }\n}\n\n/**\n * Listen a StreamHelper, accumulate its content and concatenate it into a\n * complete block.\n * @param {StreamHelper} helper the helper to use.\n * @param {Function} updateCallback a callback called on each update. Called\n * with one arg :\n * - the metadata linked to the update received.\n * @return Promise the promise for the accumulation.\n */\nfunction accumulate(helper, updateCallback) {\n return new external.Promise(function (resolve, reject){\n var dataArray = [];\n var chunkType = helper._internalType,\n resultType = helper._outputType,\n mimeType = helper._mimeType;\n helper\n .on('data', function (data, meta) {\n dataArray.push(data);\n if(updateCallback) {\n updateCallback(meta);\n }\n })\n .on('error', function(err) {\n dataArray = [];\n reject(err);\n })\n .on('end', function (){\n try {\n var result = transformZipOutput(resultType, concat(chunkType, dataArray), mimeType);\n resolve(result);\n } catch (e) {\n reject(e);\n }\n dataArray = [];\n })\n .resume();\n });\n}\n\n/**\n * An helper to easily use workers outside of JSZip.\n * @constructor\n * @param {Worker} worker the worker to wrap\n * @param {String} outputType the type of data expected by the use\n * @param {String} mimeType the mime type of the content, if applicable.\n */\nclass StreamHelper {\n constructor (worker, outputType, mimeType) {\n var internalType = outputType;\n switch(outputType) {\n case \"blob\":\n case \"arraybuffer\":\n internalType = \"uint8array\";\n break;\n case \"base64\":\n internalType = \"string\";\n break;\n }\n\n try {\n // the type used internally\n this._internalType = internalType;\n // the type used to output results\n this._outputType = outputType;\n // the mime type\n this._mimeType = mimeType;\n checkSupport(internalType);\n this._worker = worker.pipe(new ConvertWorker(internalType));\n // the last workers can be rewired without issues but we need to\n // prevent any updates on previous workers.\n worker.lock();\n } catch(e) {\n this._worker = new GenericWorker(\"error\");\n this._worker.error(e);\n }\n }\n\n /**\n * Listen a StreamHelper, accumulate its content and concatenate it into a\n * complete block.\n * @param {Function} updateCb the update callback.\n * @return Promise the promise for the accumulation.\n */\n accumulate(updateCb) {\n return accumulate(this, updateCb);\n }\n\n /**\n * Add a listener on an event triggered on a stream.\n * @param {String} evt the name of the event\n * @param {Function} fn the listener\n * @return {StreamHelper} the current helper.\n */\n on(evt, fn) {\n var self = this;\n\n if(evt === \"data\") {\n this._worker.on(evt, function (chunk) {\n fn.call(self, chunk.data, chunk.meta);\n });\n } else {\n this._worker.on(evt, function () {\n delay(fn, arguments, self);\n });\n }\n return this;\n }\n\n /**\n * Resume the flow of chunks.\n * @return {StreamHelper} the current helper.\n */\n resume() {\n delay(this._worker.resume, [], this._worker);\n return this;\n }\n\n /**\n * Pause the flow of chunks.\n * @return {StreamHelper} the current helper.\n */\n pause() {\n this._worker.pause();\n return this;\n }\n}\n\nconst base64 = false;\nconst binary = false;\nconst dir = false;\nconst createFolders = true;\nconst date = null;\nconst compression = null;\nconst compressionOptions = null;\nconst comment = null;\nconst unixPermissions = null;\nconst dosPermissions = null;\n\nvar defaults = /*#__PURE__*/Object.freeze({\n __proto__: null,\n base64: base64,\n binary: binary,\n dir: dir,\n createFolders: createFolders,\n date: date,\n compression: compression,\n compressionOptions: compressionOptions,\n comment: comment,\n unixPermissions: unixPermissions,\n dosPermissions: dosPermissions\n});\n\n/* eslint-disable */\n\n// the size of the generated chunks\n// TODO expose this as a public variable\nconst DEFAULT_BLOCK_SIZE = 16 * 1024;\n\n/**\n * A worker that reads a content and emits chunks.\n * @constructor\n * @param {Promise} dataP the promise of the data to split\n */\nclass DataWorker extends GenericWorker {\n constructor(dataP) {\n super(\"DataWorker\");\n var self = this;\n this.dataIsReady = false;\n this.index = 0;\n this.max = 0;\n this.data = null;\n this.type = \"\";\n\n this._tickScheduled = false;\n\n dataP.then(function (data) {\n self.dataIsReady = true;\n self.data = data;\n self.max = data && data.length || 0;\n self.type = getTypeOf(data);\n if(!self.isPaused) {\n self._tickAndRepeat();\n }\n }, function (e) {\n self.error(e);\n });\n }\n\n /**\n * @see GenericWorker.cleanUp\n */\n cleanUp() {\n super.cleanUp();\n this.data = null;\n }\n\n /**\n * @see GenericWorker.resume\n */\n resume() {\n if(!super.resume()) {\n return false;\n }\n\n if (!this._tickScheduled && this.dataIsReady) {\n this._tickScheduled = true;\n delay(this._tickAndRepeat, [], this);\n }\n return true;\n }\n\n /**\n * Trigger a tick a schedule an other call to this function.\n */\n _tickAndRepeat() {\n this._tickScheduled = false;\n if(this.isPaused || this.isFinished) {\n return;\n }\n this._tick();\n if(!this.isFinished) {\n delay(this._tickAndRepeat, [], this);\n this._tickScheduled = true;\n }\n };\n\n /**\n * Read and push a chunk.\n */\n _tick() {\n\n if(this.isPaused || this.isFinished) {\n return false;\n }\n\n var size = DEFAULT_BLOCK_SIZE;\n var data = null, nextIndex = Math.min(this.max, this.index + size);\n if (this.index >= this.max) {\n // EOF\n return this.end();\n } else {\n switch(this.type) {\n case \"string\":\n data = this.data.substring(this.index, nextIndex);\n break;\n case \"uint8array\":\n data = this.data.subarray(this.index, nextIndex);\n break;\n case \"array\":\n data = this.data.slice(this.index, nextIndex);\n break;\n }\n this.index = nextIndex;\n return this.push({\n data : data,\n meta : {\n percent : this.max ? this.index / this.max * 100 : 0\n }\n });\n }\n }\n}\n\n/**\n * A worker which calculate the total length of the data flowing through.\n * @constructor\n * @param {String} propName the name used to expose the length\n */\nclass DataLengthProbe extends GenericWorker {\n constructor(propName) {\n super(\"DataLengthProbe for \" + propName);\n this.propName = propName;\n this.withStreamInfo(propName, 0);\n }\n\n /**\n * @see GenericWorker.processChunk\n */\n processChunk(chunk) {\n if (chunk) {\n const length = this.streamInfo[this.propName] || 0;\n this.streamInfo[this.propName] = length + chunk.data.length;\n }\n super.processChunk(chunk);\n }\n}\n\n/* eslint-disable */\n\n/**\n * The following functions come from pako, from pako/lib/zlib/crc32.js\n * released under the MIT license, see pako https://github.com/nodeca/pako/\n */\n\nlet makeTable = function() {\n // Use ordinary array, since untyped makes no boost here\n const table = [];\n\n for (let n =0; n < 256; n++){\n let c = n;\n for(let k =0; k < 8; k++){\n c = ((c&1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n // Memoize table on first call.\n makeTable = function() {\n return table;\n };\n\n return table;\n};\n\nfunction crc32(crc, buf, len, pos) {\n const t = makeTable();\n let end = pos + len;\n\n crc = crc ^ (-1);\n\n for (let i = pos; i < end; i++ ) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n}\n\n// That's all for the pako functions.\n\n/**\n * Compute the crc32 of a string.\n * This is almost the same as the function crc32, but for strings. Using the\n * same function for the two use cases leads to horrible performances.\n * @param {Number} crc the starting value of the crc.\n * @param {String} str the string to use.\n * @param {Number} len the length of the string.\n * @param {Number} pos the starting position for the crc32 computation.\n * @return {Number} the computed crc32.\n */\nfunction crc32str(crc, str, len, pos) {\n const t = makeTable();\n let end = pos + len;\n\n crc = crc ^ (-1);\n\n for (let i = pos; i < end; i++ ) {\n crc = (crc >>> 8) ^ t[(crc ^ str.charCodeAt(i)) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n}\n\nfunction crc32wrapper(input, crc) {\n if (typeof input === \"undefined\" || !input.length) {\n return 0;\n }\n\n const isArray = getTypeOf(input) !== \"string\";\n\n if (isArray) {\n return crc32(crc | 0, input, input.length, 0);\n } else {\n return crc32str(crc | 0, input, input.length, 0);\n }\n}\n\n/**\n * A worker which calculate the crc32 of the data flowing through.\n * @constructor\n */\nclass Crc32Probe extends GenericWorker {\n constructor() {\n super(\"Crc32Probe\");\n this.withStreamInfo(\"crc32\", 0);\n }\n\n /**\n * @see GenericWorker.processChunk\n */\n processChunk(chunk) {\n this.streamInfo.crc32 = crc32wrapper(chunk.data, this.streamInfo.crc32 || 0);\n this.push(chunk);\n }\n}\n\n/* eslint-disable */\n\n/**\n * Represent a compressed object, with everything needed to decompress it.\n * @constructor\n * @param {number} compressedSize the size of the data compressed.\n * @param {number} uncompressedSize the size of the data after decompression.\n * @param {number} crc32 the crc32 of the decompressed file.\n * @param {object} compression the type of compression, see lib/compressions.js.\n * @param {String|ArrayBuffer|Uint8Array|Buffer} data the compressed data.\n */\nclass CompressedObject {\n constructor(compressedSize, uncompressedSize, crc32, compression, data) {\n this.compressedSize = compressedSize;\n this.uncompressedSize = uncompressedSize;\n this.crc32 = crc32;\n this.compression = compression;\n this.compressedContent = data;\n }\n\n /**\n * Create a worker to get the uncompressed content.\n * @return {GenericWorker} the worker.\n */\n getContentWorker() {\n var worker = new DataWorker(external.Promise.resolve(this.compressedContent))\n .pipe(this.compression.uncompressWorker())\n .pipe(new DataLengthProbe(\"data_length\"));\n\n var that = this;\n worker.on(\"end\", function () {\n if(this.streamInfo['data_length'] !== that.uncompressedSize) {\n throw new Error(\"Bug : uncompressed data size mismatch\");\n }\n });\n return worker;\n }\n\n /**\n * Create a worker to get the compressed content.\n * @return {GenericWorker} the worker.\n */\n getCompressedWorker() {\n return new DataWorker(external.Promise.resolve(this.compressedContent))\n .withStreamInfo(\"compressedSize\", this.compressedSize)\n .withStreamInfo(\"uncompressedSize\", this.uncompressedSize)\n .withStreamInfo(\"crc32\", this.crc32)\n .withStreamInfo(\"compression\", this.compression)\n ;\n }\n\n /**\n * Chain the given worker with other workers to compress the content with the\n * given compression.\n * @param {GenericWorker} uncompressedWorker the worker to pipe.\n * @param {Object} compression the compression object.\n * @param {Object} compressionOptions the options to use when compressing.\n * @return {GenericWorker} the new worker compressing the content.\n */\n static createWorkerFrom(uncompressedWorker, compression, compressionOptions) {\n return uncompressedWorker\n .pipe(new Crc32Probe())\n .pipe(new DataLengthProbe(\"uncompressedSize\"))\n .pipe(compression.compressWorker(compressionOptions))\n .pipe(new DataLengthProbe(\"compressedSize\"))\n .withStreamInfo(\"compression\", compression);\n }\n}\n\n/* eslint-disable */\n\n/**\n * A simple object representing a file in the zip file.\n * @constructor\n * @param {string} name the name of the file\n * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data\n * @param {Object} options the options of the file\n */\nclass ZipObject {\n constructor(name, data, options) {\n this.name = name;\n this.dir = options.dir;\n this.date = options.date;\n this.comment = options.comment;\n this.unixPermissions = options.unixPermissions;\n this.dosPermissions = options.dosPermissions;\n\n this._data = data;\n this._dataBinary = options.binary;\n // keep only the compression\n this.options = {\n compression : options.compression,\n compressionOptions : options.compressionOptions\n };\n }\n\n /**\n * Create an internal stream for the content of this object.\n * @param {String} type the type of each chunk.\n * @return StreamHelper the stream.\n */\n internalStream(type) {\n var result = null, outputType = \"string\";\n try {\n if (!type) {\n throw new Error(\"No output type specified.\");\n }\n outputType = type.toLowerCase();\n var askUnicodeString = outputType === \"string\" || outputType === \"text\";\n if (outputType === \"binarystring\" || outputType === \"text\") {\n outputType = \"string\";\n }\n result = this._decompressWorker();\n\n var isUnicodeString = !this._dataBinary;\n\n if (isUnicodeString && !askUnicodeString) {\n result = result.pipe(new Utf8EncodeWorker());\n }\n if (!isUnicodeString && askUnicodeString) {\n result = result.pipe(new Utf8DecodeWorker());\n }\n } catch (e) {\n result = new GenericWorker(\"error\");\n result.error(e);\n }\n\n return new StreamHelper(result, outputType, \"\");\n }\n\n /**\n * Prepare the content in the asked type.\n * @param {String} type the type of the result.\n * @param {Function} onUpdate a function to call on each internal update.\n * @return Promise the promise of the result.\n */\n async(type, onUpdate) {\n return this.internalStream(type).accumulate(onUpdate);\n }\n\n /**\n * Return a worker for the compressed content.\n * @private\n * @param {Object} compression the compression object to use.\n * @param {Object} compressionOptions the options to use when compressing.\n * @return Worker the worker.\n */\n _compressWorker(compression, compressionOptions) {\n if (\n this._data instanceof CompressedObject &&\n this._data.compression.magic === compression.magic\n ) {\n return this._data.getCompressedWorker();\n } else {\n var result = this._decompressWorker();\n if(!this._dataBinary) {\n result = result.pipe(new Utf8EncodeWorker());\n }\n return CompressedObject.createWorkerFrom(result, compression, compressionOptions);\n }\n }\n\n /**\n * Return a worker for the decompressed content.\n * @private\n * @return Worker the worker.\n */\n _decompressWorker() {\n if (this._data instanceof CompressedObject) {\n return this._data.getContentWorker();\n } else if (this._data instanceof GenericWorker) {\n return this._data;\n } else {\n return new DataWorker(this._data);\n }\n }\n}\n\nlet arrayType = function() {\n const useTypedArray = (typeof Uint8Array !== 'undefined') && (typeof Uint16Array !== 'undefined') && (typeof Uint32Array !== 'undefined');\n const resolved = useTypedArray ? \"uint8array\" : \"array\";\n\n arrayType = function() {\n return resolved;\n };\n};\n\n/**\n * Create a worker that uses pako to inflate/deflate.\n * @constructor\n * @param {String} action the name of the pako function to call : either \"Deflate\" or \"Inflate\".\n * @param {Object} options the options to use when (de)compressing.\n */\nclass FlateWorker extends GenericWorker {\n constructor(action, options) {\n super(\"FlateWorker/\" + action);\n\n this._pako = null;\n this._pakoAction = action;\n this._pakoOptions = options;\n // the `meta` object from the last chunk received\n // this allow this worker to pass around metadata\n this.meta = {};\n }\n\n /**\n * @see GenericWorker.processChunk\n */\n processChunk(chunk) {\n this.meta = chunk.meta;\n if (this._pako === null) {\n this._createPako();\n }\n this._pako.push(transformTo(arrayType(), chunk.data), false);\n }\n\n /**\n * @see GenericWorker.flush\n */\n flush() {\n super.flush();\n if (this._pako === null) {\n this._createPako();\n }\n this._pako.push([], true);\n }\n /**\n * @see GenericWorker.cleanUp\n */\n cleanUp() {\n super.cleanUp();\n this._pako = null;\n }\n\n /**\n * Create the _pako object.\n * TODO: lazy-loading this object isn't the best solution but it's the\n * quickest. The best solution is to lazy-load the worker list. See also the\n * issue #446.\n */\n _createPako() {\n const params = {\n raw: true,\n level: this._pakoOptions.level || -1 // default compression\n };\n this._pako = this._pakoAction === 'Deflate' ? new Deflate(params) : new Inflate(params);\n this._pako.onData = (data) => {\n this.push({\n data: data,\n meta: this.meta\n });\n };\n }\n}\n\nvar DEFLATE = {\n magic: \"\\x08\\x00\",\n compressWorker: function(compressionOptions) {\n return new FlateWorker(\"Deflate\", compressionOptions);\n },\n\n uncompressWorker: function() {\n return new FlateWorker(\"Inflate\", {});\n }\n};\n\nconst STORE = {\n magic: \"\\x00\\x00\",\n compressWorker: function() {\n return new GenericWorker(\"STORE compression\");\n },\n uncompressWorker: function() {\n return new GenericWorker(\"STORE decompression\");\n }\n};\n\nvar compressions = {\n STORE,\n DEFLATE\n};\n\nconst LOCAL_FILE_HEADER = \"PK\\x03\\x04\";\nconst CENTRAL_FILE_HEADER = \"PK\\x01\\x02\";\nconst CENTRAL_DIRECTORY_END = \"PK\\x05\\x06\";\nconst ZIP64_CENTRAL_DIRECTORY_LOCATOR = \"PK\\x06\\x07\";\nconst ZIP64_CENTRAL_DIRECTORY_END = \"PK\\x06\\x06\";\nconst DATA_DESCRIPTOR = \"PK\\x07\\x08\";\n\n/* eslint-disable */\n\n/**\n * Transform an integer into a string in hexadecimal.\n * @private\n * @param {number} dec the number to convert.\n * @param {number} bytes the number of bytes to generate.\n * @returns {string} the result.\n */\nvar decToHex = function(dec, bytes) {\n var hex = \"\", i;\n for (i = 0; i < bytes; i++) {\n hex += String.fromCharCode(dec & 0xff);\n dec = dec >>> 8;\n }\n return hex;\n};\n\n/**\n * Generate the UNIX part of the external file attributes.\n * @param {Object} unixPermissions the unix permissions or null.\n * @param {Boolean} isDir true if the entry is a directory, false otherwise.\n * @return {Number} a 32 bit integer.\n *\n * adapted from http://unix.stackexchange.com/questions/14705/the-zip-formats-external-file-attribute :\n *\n * TTTTsstrwxrwxrwx0000000000ADVSHR\n * ^^^^____________________________ file type, see zipinfo.c (UNX_*)\n * ^^^_________________________ setuid, setgid, sticky\n * ^^^^^^^^^________________ permissions\n * ^^^^^^^^^^______ not used ?\n * ^^^^^^ DOS attribute bits : Archive, Directory, Volume label, System file, Hidden, Read only\n */\nvar generateUnixExternalFileAttr = function (unixPermissions, isDir) {\n\n var result = unixPermissions;\n if (!unixPermissions) {\n // I can't use octal values in strict mode, hence the hexa.\n // 040775 => 0x41fd\n // 0100664 => 0x81b4\n result = isDir ? 0x41fd : 0x81b4;\n }\n return (result & 0xFFFF) << 16;\n};\n\n/**\n * Generate the DOS part of the external file attributes.\n * @param {Object} dosPermissions the dos permissions or null.\n * @param {Boolean} isDir true if the entry is a directory, false otherwise.\n * @return {Number} a 32 bit integer.\n *\n * Bit 0 Read-Only\n * Bit 1 Hidden\n * Bit 2 System\n * Bit 3 Volume Label\n * Bit 4 Directory\n * Bit 5 Archive\n */\nvar generateDosExternalFileAttr = function (dosPermissions, isDir) {\n\n // the dir flag is already set for compatibility\n return (dosPermissions || 0) & 0x3F;\n};\n\n/**\n * Generate the various parts used in the construction of the final zip file.\n * @param {Object} streamInfo the hash with information about the compressed file.\n * @param {Boolean} streamedContent is the content streamed ?\n * @param {Boolean} streamingEnded is the stream finished ?\n * @param {number} offset the current offset from the start of the zip file.\n * @param {String} platform let's pretend we are this platform (change platform dependents fields)\n * @param {Function} encodeFileName the function to encode the file name / comment.\n * @return {Object} the zip parts.\n */\nvar generateZipParts = function(streamInfo, streamedContent, streamingEnded, offset, platform, encodeFileName) {\n var file = streamInfo['file'],\n compression = streamInfo['compression'],\n useCustomEncoding = encodeFileName !== utf8encode,\n encodedFileName = transformTo(\"string\", encodeFileName(file.name)),\n utfEncodedFileName = transformTo(\"string\", utf8encode(file.name)),\n comment = file.comment,\n encodedComment = transformTo(\"string\", encodeFileName(comment)),\n utfEncodedComment = transformTo(\"string\", utf8encode(comment)),\n useUTF8ForFileName = utfEncodedFileName.length !== file.name.length,\n useUTF8ForComment = utfEncodedComment.length !== comment.length,\n dosTime,\n dosDate,\n extraFields = \"\",\n unicodePathExtraField = \"\",\n unicodeCommentExtraField = \"\",\n dir = file.dir,\n date = file.date;\n\n\n var dataInfo = {\n crc32 : 0,\n compressedSize : 0,\n uncompressedSize : 0\n };\n\n // if the content is streamed, the sizes/crc32 are only available AFTER\n // the end of the stream.\n if (!streamedContent || streamingEnded) {\n dataInfo.crc32 = streamInfo['crc32'];\n dataInfo.compressedSize = streamInfo['compressedSize'];\n dataInfo.uncompressedSize = streamInfo['uncompressedSize'];\n }\n\n var bitflag = 0;\n if (streamedContent) {\n // Bit 3: the sizes/crc32 are set to zero in the local header.\n // The correct values are put in the data descriptor immediately\n // following the compressed data.\n bitflag |= 0x0008;\n }\n if (!useCustomEncoding && (useUTF8ForFileName || useUTF8ForComment)) {\n // Bit 11: Language encoding flag (EFS).\n bitflag |= 0x0800;\n }\n\n\n var extFileAttr = 0;\n var versionMadeBy = 0;\n if (dir) {\n // dos or unix, we set the dos dir flag\n extFileAttr |= 0x00010;\n }\n if(platform === \"UNIX\") {\n versionMadeBy = 0x031E; // UNIX, version 3.0\n extFileAttr |= generateUnixExternalFileAttr(file.unixPermissions, dir);\n } else { // DOS or other, fallback to DOS\n versionMadeBy = 0x0014; // DOS, version 2.0\n extFileAttr |= generateDosExternalFileAttr(file.dosPermissions);\n }\n\n // date\n // @see http://www.delorie.com/djgpp/doc/rbinter/it/52/13.html\n // @see http://www.delorie.com/djgpp/doc/rbinter/it/65/16.html\n // @see http://www.delorie.com/djgpp/doc/rbinter/it/66/16.html\n\n dosTime = date.getUTCHours();\n dosTime = dosTime << 6;\n dosTime = dosTime | date.getUTCMinutes();\n dosTime = dosTime << 5;\n dosTime = dosTime | date.getUTCSeconds() / 2;\n\n dosDate = date.getUTCFullYear() - 1980;\n dosDate = dosDate << 4;\n dosDate = dosDate | (date.getUTCMonth() + 1);\n dosDate = dosDate << 5;\n dosDate = dosDate | date.getUTCDate();\n\n if (useUTF8ForFileName) {\n // set the unicode path extra field. unzip needs at least one extra\n // field to correctly handle unicode path, so using the path is as good\n // as any other information. This could improve the situation with\n // other archive managers too.\n // This field is usually used without the utf8 flag, with a non\n // unicode path in the header (winrar, winzip). This helps (a bit)\n // with the messy Windows' default compressed folders feature but\n // breaks on p7zip which doesn't seek the unicode path extra field.\n // So for now, UTF-8 everywhere !\n unicodePathExtraField =\n // Version\n decToHex(1, 1) +\n // NameCRC32\n decToHex(crc32wrapper(encodedFileName), 4) +\n // UnicodeName\n utfEncodedFileName;\n\n extraFields +=\n // Info-ZIP Unicode Path Extra Field\n \"\\x75\\x70\" +\n // size\n decToHex(unicodePathExtraField.length, 2) +\n // content\n unicodePathExtraField;\n }\n\n if(useUTF8ForComment) {\n\n unicodeCommentExtraField =\n // Version\n decToHex(1, 1) +\n // CommentCRC32\n decToHex(crc32wrapper(encodedComment), 4) +\n // UnicodeName\n utfEncodedComment;\n\n extraFields +=\n // Info-ZIP Unicode Path Extra Field\n \"\\x75\\x63\" +\n // size\n decToHex(unicodeCommentExtraField.length, 2) +\n // content\n unicodeCommentExtraField;\n }\n\n var header = \"\";\n\n // version needed to extract\n header += \"\\x0A\\x00\";\n // general purpose bit flag\n header += decToHex(bitflag, 2);\n // compression method\n header += compression.magic;\n // last mod file time\n header += decToHex(dosTime, 2);\n // last mod file date\n header += decToHex(dosDate, 2);\n // crc-32\n header += decToHex(dataInfo.crc32, 4);\n // compressed size\n header += decToHex(dataInfo.compressedSize, 4);\n // uncompressed size\n header += decToHex(dataInfo.uncompressedSize, 4);\n // file name length\n header += decToHex(encodedFileName.length, 2);\n // extra field length\n header += decToHex(extraFields.length, 2);\n\n\n var fileRecord = LOCAL_FILE_HEADER + header + encodedFileName + extraFields;\n\n var dirRecord = CENTRAL_FILE_HEADER +\n // version made by (00: DOS)\n decToHex(versionMadeBy, 2) +\n // file header (common to file and central directory)\n header +\n // file comment length\n decToHex(encodedComment.length, 2) +\n // disk number start\n \"\\x00\\x00\" +\n // internal file attributes TODO\n \"\\x00\\x00\" +\n // external file attributes\n decToHex(extFileAttr, 4) +\n // relative offset of local header\n decToHex(offset, 4) +\n // file name\n encodedFileName +\n // extra field\n extraFields +\n // file comment\n encodedComment;\n\n return {\n fileRecord: fileRecord,\n dirRecord: dirRecord\n };\n};\n\n/**\n * Generate the EOCD record.\n * @param {Number} entriesCount the number of entries in the zip file.\n * @param {Number} centralDirLength the length (in bytes) of the central dir.\n * @param {Number} localDirLength the length (in bytes) of the local dir.\n * @param {String} comment the zip file comment as a binary string.\n * @param {Function} encodeFileName the function to encode the comment.\n * @return {String} the EOCD record.\n */\nvar generateCentralDirectoryEnd = function (entriesCount, centralDirLength, localDirLength, comment, encodeFileName) {\n var dirEnd = \"\";\n var encodedComment = transformTo(\"string\", encodeFileName(comment));\n\n // end of central dir signature\n dirEnd = CENTRAL_DIRECTORY_END +\n // number of this disk\n \"\\x00\\x00\" +\n // number of the disk with the start of the central directory\n \"\\x00\\x00\" +\n // total number of entries in the central directory on this disk\n decToHex(entriesCount, 2) +\n // total number of entries in the central directory\n decToHex(entriesCount, 2) +\n // size of the central directory 4 bytes\n decToHex(centralDirLength, 4) +\n // offset of start of central directory with respect to the starting disk number\n decToHex(localDirLength, 4) +\n // .ZIP file comment length\n decToHex(encodedComment.length, 2) +\n // .ZIP file comment\n encodedComment;\n\n return dirEnd;\n};\n\n/**\n * Generate data descriptors for a file entry.\n * @param {Object} streamInfo the hash generated by a worker, containing information\n * on the file entry.\n * @return {String} the data descriptors.\n */\nvar generateDataDescriptors = function (streamInfo) {\n var descriptor = \"\";\n descriptor = DATA_DESCRIPTOR +\n // crc-32 4 bytes\n decToHex(streamInfo['crc32'], 4) +\n // compressed size 4 bytes\n decToHex(streamInfo['compressedSize'], 4) +\n // uncompressed size 4 bytes\n decToHex(streamInfo['uncompressedSize'], 4);\n\n return descriptor;\n};\n\n\n/**\n * A worker to concatenate other workers to create a zip file.\n * @param {Boolean} streamFiles `true` to stream the content of the files,\n * `false` to accumulate it.\n * @param {String} comment the comment to use.\n * @param {String} platform the platform to use, \"UNIX\" or \"DOS\".\n * @param {Function} encodeFileName the function to encode file names and comments.\n */\nclass ZipFileWorker extends GenericWorker {\n constructor(streamFiles, comment, platform, encodeFileName) {\n super(\"ZipFileWorker\");\n // The number of bytes written so far. This doesn't count accumulated chunks.\n this.bytesWritten = 0;\n // The comment of the zip file\n this.zipComment = comment;\n // The platform \"generating\" the zip file.\n this.zipPlatform = platform;\n // the function to encode file names and comments.\n this.encodeFileName = encodeFileName;\n // Should we stream the content of the files ?\n this.streamFiles = streamFiles;\n // If `streamFiles` is false, we will need to accumulate the content of the\n // files to calculate sizes / crc32 (and write them *before* the content).\n // This boolean indicates if we are accumulating chunks (it will change a lot\n // during the lifetime of this worker).\n this.accumulate = false;\n // The buffer receiving chunks when accumulating content.\n this.contentBuffer = [];\n // The list of generated directory records.\n this.dirRecords = [];\n // The offset (in bytes) from the beginning of the zip file for the current source.\n this.currentSourceOffset = 0;\n // The total number of entries in this zip file.\n this.entriesCount = 0;\n // the name of the file currently being added, null when handling the end of the zip file.\n // Used for the emitted metadata.\n this.currentFile = null;\n\n this._sources = [];\n }\n\n /**\n * @see GenericWorker.push\n */\n push(chunk) {\n\n var currentFilePercent = chunk.meta.percent || 0;\n var entriesCount = this.entriesCount;\n var remainingFiles = this._sources.length;\n\n if(this.accumulate) {\n this.contentBuffer.push(chunk);\n } else {\n this.bytesWritten += chunk.data.length;\n\n super.push({\n data : chunk.data,\n meta : {\n currentFile : this.currentFile,\n percent : entriesCount ? (currentFilePercent + 100 * (entriesCount - remainingFiles - 1)) / entriesCount : 100\n }\n });\n }\n }\n\n /**\n * The worker started a new source (an other worker).\n * @param {Object} streamInfo the streamInfo object from the new source.\n */\n openedSource(streamInfo) {\n this.currentSourceOffset = this.bytesWritten;\n this.currentFile = streamInfo['file'].name;\n\n var streamedContent = this.streamFiles && !streamInfo['file'].dir;\n\n // don't stream folders (because they don't have any content)\n if(streamedContent) {\n var record = generateZipParts(streamInfo, streamedContent, false, this.currentSourceOffset, this.zipPlatform, this.encodeFileName);\n this.push({\n data : record.fileRecord,\n meta : {percent:0}\n });\n } else {\n // we need to wait for the whole file before pushing anything\n this.accumulate = true;\n }\n }\n\n /**\n * The worker finished a source (an other worker).\n * @param {Object} streamInfo the streamInfo object from the finished source.\n */\n closedSource(streamInfo) {\n this.accumulate = false;\n var streamedContent = this.streamFiles && !streamInfo['file'].dir;\n var record = generateZipParts(streamInfo, streamedContent, true, this.currentSourceOffset, this.zipPlatform, this.encodeFileName);\n\n this.dirRecords.push(record.dirRecord);\n if(streamedContent) {\n // after the streamed file, we put data descriptors\n this.push({\n data : generateDataDescriptors(streamInfo),\n meta : {percent:100}\n });\n } else {\n // the content wasn't streamed, we need to push everything now\n // first the file record, then the content\n this.push({\n data : record.fileRecord,\n meta : {percent:0}\n });\n while(this.contentBuffer.length) {\n this.push(this.contentBuffer.shift());\n }\n }\n this.currentFile = null;\n }\n\n /**\n * @see GenericWorker.flush\n */\n flush() {\n\n var localDirLength = this.bytesWritten;\n for(var i = 0; i < this.dirRecords.length; i++) {\n this.push({\n data : this.dirRecords[i],\n meta : {percent:100}\n });\n }\n var centralDirLength = this.bytesWritten - localDirLength;\n\n var dirEnd = generateCentralDirectoryEnd(this.dirRecords.length, centralDirLength, localDirLength, this.zipComment, this.encodeFileName);\n\n this.push({\n data : dirEnd,\n meta : {percent:100}\n });\n }\n\n /**\n * Prepare the next source to be read.\n */\n prepareNextSource() {\n this.previous = this._sources.shift();\n this.openedSource(this.previous.streamInfo);\n if (this.isPaused) {\n this.previous.pause();\n } else {\n this.previous.resume();\n }\n }\n\n /**\n * @see GenericWorker.registerPrevious\n */\n registerPrevious(previous) {\n this._sources.push(previous);\n var self = this;\n\n previous.on('data', function (chunk) {\n self.processChunk(chunk);\n });\n previous.on('end', function () {\n self.closedSource(self.previous.streamInfo);\n if(self._sources.length) {\n self.prepareNextSource();\n } else {\n self.end();\n }\n });\n previous.on('error', function (e) {\n self.error(e);\n });\n return this;\n }\n\n /**\n * @see GenericWorker.resume\n */\n resume() {\n if(!super.resume()) {\n return false;\n }\n\n if (!this.previous && this._sources.length) {\n this.prepareNextSource();\n return true;\n }\n if (!this.previous && !this._sources.length && !this.generatedError) {\n this.end();\n return true;\n }\n }\n\n /**\n * @see GenericWorker.error\n */\n error(e) {\n var sources = this._sources;\n if(!super.error(e)) {\n return false;\n }\n for(var i = 0; i < sources.length; i++) {\n try {\n sources[i].error(e);\n } catch(e) {\n // the `error` exploded, nothing to do\n }\n }\n return true;\n }\n\n /**\n * @see GenericWorker.lock\n */\n lock() {\n super.lock();\n var sources = this._sources;\n for(var i = 0; i < sources.length; i++) {\n sources[i].lock();\n }\n }\n}\n\n/* eslint-disable */\n\n/**\n * Find the compression to use.\n * @param {String} fileCompression the compression defined at the file level, if any.\n * @param {String} zipCompression the compression defined at the load() level.\n * @return {Object} the compression object to use.\n */\nvar getCompression = function (fileCompression, zipCompression) {\n\n var compressionName = fileCompression || zipCompression;\n var compression = compressions[compressionName];\n if (!compression) {\n throw new Error(compressionName + \" is not a valid compression method !\");\n }\n return compression;\n};\n\n/**\n * Create a worker to generate a zip file.\n * @param {JSZip} zip the JSZip instance at the right root level.\n * @param {Object} options to generate the zip file.\n * @param {String} comment the comment to use.\n */\nconst generateWorker = function (zip, options, comment) {\n\n var zipFileWorker = new ZipFileWorker(options.streamFiles, comment, options.platform, options.encodeFileName);\n var entriesCount = 0;\n try {\n\n zip.forEach(function (relativePath, file) {\n entriesCount++;\n var compression = getCompression(file.options.compression, options.compression);\n var compressionOptions = file.options.compressionOptions || options.compressionOptions || {};\n var dir = file.dir, date = file.date;\n\n file._compressWorker(compression, compressionOptions)\n .withStreamInfo(\"file\", {\n name : relativePath,\n dir : dir,\n date : date,\n comment : file.comment || \"\",\n unixPermissions : file.unixPermissions,\n dosPermissions : file.dosPermissions\n })\n .pipe(zipFileWorker);\n });\n zipFileWorker.entriesCount = entriesCount;\n } catch (e) {\n zipFileWorker.error(e);\n }\n\n return zipFileWorker;\n};\n\n/* eslint-disable */\n\nclass DataReader {\n constructor(data) {\n this.data = data; // type : see implementation\n this.length = data.length;\n this.index = 0;\n this.zero = 0;\n }\n\n /**\n * Check that the offset will not go too far.\n * @param {string} offset the additional offset to check.\n * @throws {Error} an Error if the offset is out of bounds.\n */\n checkOffset(offset) {\n this.checkIndex(this.index + offset);\n }\n\n /**\n * Check that the specified index will not be too far.\n * @param {string} newIndex the index to check.\n * @throws {Error} an Error if the index is out of bounds.\n */\n checkIndex(newIndex) {\n if (this.length < this.zero + newIndex || newIndex < 0) {\n throw new Error(\"End of data reached (data length = \" + this.length + \", asked index = \" + (newIndex) + \"). Corrupted zip ?\");\n }\n }\n\n /**\n * Change the index.\n * @param {number} newIndex The new index.\n * @throws {Error} if the new index is out of the data.\n */\n setIndex(newIndex) {\n this.checkIndex(newIndex);\n this.index = newIndex;\n }\n\n /**\n * Skip the next n bytes.\n * @param {number} n the number of bytes to skip.\n * @throws {Error} if the new index is out of the data.\n */\n skip(n) {\n this.setIndex(this.index + n);\n }\n\n /**\n * Get the byte at the specified index.\n * @param {number} i the index to use.\n * @return {number} a byte.\n */\n byteAt(i) {\n // see implementations\n }\n\n /**\n * Get the next number with a given byte size.\n * @param {number} size the number of bytes to read.\n * @return {number} the corresponding number.\n */\n readInt(size) {\n var result = 0,\n i;\n this.checkOffset(size);\n for (i = this.index + size - 1; i >= this.index; i--) {\n result = (result << 8) + this.byteAt(i);\n }\n this.index += size;\n return result;\n }\n\n /**\n * Get the next string with a given byte size.\n * @param {number} size the number of bytes to read.\n * @return {string} the corresponding string.\n */\n readString(size) {\n return transformTo(\"string\", this.readData(size));\n }\n\n /**\n * Get raw data without conversion, bytes.\n * @param {number} size the number of bytes to read.\n * @return {Object} the raw data, implementation specific.\n */\n readData(size) {\n // see implementations\n }\n\n /**\n * Find the last occurrence of a zip signature (4 bytes).\n * @param {string} sig the signature to find.\n * @return {number} the index of the last occurrence, -1 if not found.\n */\n lastIndexOfSignature(sig) {\n // see implementations\n }\n\n /**\n * Read the signature (4 bytes) at the current position and compare it with sig.\n * @param {string} sig the expected signature\n * @return {boolean} true if the signature matches, false otherwise.\n */\n readAndCheckSignature(sig) {\n // see implementations\n }\n\n /**\n * Get the next date.\n * @return {Date} the date.\n */\n readDate() {\n var dostime = this.readInt(4);\n return new Date(Date.UTC(\n ((dostime >> 25) & 0x7f) + 1980, // year\n ((dostime >> 21) & 0x0f) - 1, // month\n (dostime >> 16) & 0x1f, // day\n (dostime >> 11) & 0x1f, // hour\n (dostime >> 5) & 0x3f, // minute\n (dostime & 0x1f) << 1)); // second\n }\n}\n\n/* eslint-disable */\n\nclass ArrayReader extends DataReader {\n constructor(data) {\n super(data);\n for(var i = 0; i < this.data.length; i++) {\n data[i] = data[i] & 0xFF;\n }\n }\n\n /**\n * @see DataReader.byteAt\n */\n byteAt(i) {\n return this.data[this.zero + i];\n }\n\n /**\n * @see DataReader.lastIndexOfSignature\n */\n lastIndexOfSignature(sig) {\n var sig0 = sig.charCodeAt(0),\n sig1 = sig.charCodeAt(1),\n sig2 = sig.charCodeAt(2),\n sig3 = sig.charCodeAt(3);\n for (var i = this.length - 4; i >= 0; --i) {\n if (this.data[i] === sig0 && this.data[i + 1] === sig1 && this.data[i + 2] === sig2 && this.data[i + 3] === sig3) {\n return i - this.zero;\n }\n }\n\n return -1;\n }\n\n /**\n * @see DataReader.readAndCheckSignature\n */\n readAndCheckSignature(sig) {\n var sig0 = sig.charCodeAt(0),\n sig1 = sig.charCodeAt(1),\n sig2 = sig.charCodeAt(2),\n sig3 = sig.charCodeAt(3),\n data = this.readData(4);\n return sig0 === data[0] && sig1 === data[1] && sig2 === data[2] && sig3 === data[3];\n }\n\n /**\n * @see DataReader.readData\n */\n readData(size) {\n this.checkOffset(size);\n if(size === 0) {\n return [];\n }\n var result = this.data.slice(this.zero + this.index, this.zero + this.index + size);\n this.index += size;\n return result;\n }\n}\n\nclass StringReader extends DataReader {\n constructor(data) {\n super(data);\n }\n\n /**\n * @see DataReader.byteAt\n */\n byteAt(i) {\n return this.data.charCodeAt(this.zero + i);\n }\n\n /**\n * @see DataReader.lastIndexOfSignature\n */\n lastIndexOfSignature(sig) {\n return this.data.lastIndexOf(sig) - this.zero;\n }\n\n /**\n * @see DataReader.readAndCheckSignature\n */\n readAndCheckSignature(sig) {\n const data = this.readData(4);\n return sig === data;\n }\n\n /**\n * @see DataReader.readData\n */\n readData(size) {\n this.checkOffset(size);\n // this will work because the constructor applied the \"& 0xff\" mask.\n const result = this.data.slice(this.zero + this.index, this.zero + this.index + size);\n this.index += size;\n return result;\n }\n}\n\n/* eslint-disable */\n\nclass Uint8ArrayReader extends ArrayReader {\n constructor(data) {\n super(data);\n }\n\n /**\n * @see DataReader.readData\n */\n readData(size) {\n this.checkOffset(size);\n if(size === 0) {\n // in IE10, when using subarray(idx, idx), we get the array [0x00] instead of [].\n return new Uint8Array(0);\n }\n var result = this.data.subarray(this.zero + this.index, this.zero + this.index + size);\n this.index += size;\n return result;\n }\n}\n\n/**\n * Create a reader adapted to the data.\n * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data to read.\n * @return {DataReader} the data reader.\n */\nfunction readerFor(data) {\n const type = getTypeOf(data);\n checkSupport(type);\n if (type === \"string\" && !support.uint8array) {\n return new StringReader(data);\n }\n if (support.uint8array) {\n return new Uint8ArrayReader(transformTo(\"uint8array\", data));\n }\n return new ArrayReader(transformTo(\"array\", data));\n}\n\n/* eslint-disable */\n\nvar MADE_BY_DOS = 0x00;\nvar MADE_BY_UNIX = 0x03;\n\n/**\n * Find a compression registered in JSZip.\n * @param {string} compressionMethod the method magic to find.\n * @return {Object|null} the JSZip compression object, null if none found.\n */\nvar findCompression = function(compressionMethod) {\n for (var method in compressions) {\n if (!compressions.hasOwnProperty(method)) {\n continue;\n }\n if (compressions[method].magic === compressionMethod) {\n return compressions[method];\n }\n }\n return null;\n};\n\n// class ZipEntry {{{\n/**\n * An entry in the zip file.\n * @constructor\n * @param {Object} options Options of the current file.\n * @param {Object} loadOptions Options for loading the stream.\n */\nclass ZipEntry {\n constructor(options, loadOptions) {\n this.options = options;\n this.loadOptions = loadOptions;\n }\n\n /**\n * say if the file is encrypted.\n * @return {boolean} true if the file is encrypted, false otherwise.\n */\n isEncrypted() {\n // bit 1 is set\n return (this.bitFlag & 0x0001) === 0x0001;\n }\n\n /**\n * say if the file has utf-8 filename/comment.\n * @return {boolean} true if the filename/comment is in utf-8, false otherwise.\n */\n useUTF8() {\n // bit 11 is set\n return (this.bitFlag & 0x0800) === 0x0800;\n }\n\n /**\n * Read the local part of a zip file and add the info in this object.\n * @param {DataReader} reader the reader to use.\n */\n readLocalPart(reader) {\n var compression, localExtraFieldsLength;\n\n // we already know everything from the central dir !\n // If the central dir data are false, we are doomed.\n // On the bright side, the local part is scary : zip64, data descriptors, both, etc.\n // The less data we get here, the more reliable this should be.\n // Let's skip the whole header and dash to the data !\n reader.skip(22);\n // in some zip created on windows, the filename stored in the central dir contains \\ instead of /.\n // Strangely, the filename here is OK.\n // I would love to treat these zip files as corrupted (see http://www.info-zip.org/FAQ.html#backslashes\n // or APPNOTE#4.4.17.1, \"All slashes MUST be forward slashes '/'\") but there are a lot of bad zip generators...\n // Search \"unzip mismatching \"local\" filename continuing with \"central\" filename version\" on\n // the internet.\n //\n // I think I see the logic here : the central directory is used to display\n // content and the local directory is used to extract the files. Mixing / and \\\n // may be used to display \\ to windows users and use / when extracting the files.\n // Unfortunately, this lead also to some issues : http://seclists.org/fulldisclosure/2009/Sep/394\n this.fileNameLength = reader.readInt(2);\n localExtraFieldsLength = reader.readInt(2); // can't be sure this will be the same as the central dir\n // the fileName is stored as binary data, the handleUTF8 method will take care of the encoding.\n this.fileName = reader.readData(this.fileNameLength);\n reader.skip(localExtraFieldsLength);\n\n if (this.compressedSize === -1 || this.uncompressedSize === -1) {\n throw new Error(\"Bug or corrupted zip : didn't get enough information from the central directory \" + \"(compressedSize === -1 || uncompressedSize === -1)\");\n }\n\n compression = findCompression(this.compressionMethod);\n if (compression === null) { // no compression found\n throw new Error(\"Corrupted zip : compression \" + pretty(this.compressionMethod) + \" unknown (inner file : \" + transformTo(\"string\", this.fileName) + \")\");\n }\n this.decompressed = new CompressedObject(this.compressedSize, this.uncompressedSize, this.crc32, compression, reader.readData(this.compressedSize));\n }\n\n /**\n * Read the central part of a zip file and add the info in this object.\n * @param {DataReader} reader the reader to use.\n */\n readCentralPart(reader) {\n this.versionMadeBy = reader.readInt(2);\n reader.skip(2);\n // this.versionNeeded = reader.readInt(2);\n this.bitFlag = reader.readInt(2);\n this.compressionMethod = reader.readString(2);\n this.date = reader.readDate();\n this.crc32 = reader.readInt(4);\n this.compressedSize = reader.readInt(4);\n this.uncompressedSize = reader.readInt(4);\n var fileNameLength = reader.readInt(2);\n this.extraFieldsLength = reader.readInt(2);\n this.fileCommentLength = reader.readInt(2);\n this.diskNumberStart = reader.readInt(2);\n this.internalFileAttributes = reader.readInt(2);\n this.externalFileAttributes = reader.readInt(4);\n this.localHeaderOffset = reader.readInt(4);\n\n if (this.isEncrypted()) {\n throw new Error(\"Encrypted zip are not supported\");\n }\n\n // will be read in the local part, see the comments there\n reader.skip(fileNameLength);\n this.readExtraFields(reader);\n this.parseZIP64ExtraField(reader);\n this.fileComment = reader.readData(this.fileCommentLength);\n }\n\n /**\n * Parse the external file attributes and get the unix/dos permissions.\n */\n processAttributes() {\n this.unixPermissions = null;\n this.dosPermissions = null;\n var madeBy = this.versionMadeBy >> 8;\n\n // Check if we have the DOS directory flag set.\n // We look for it in the DOS and UNIX permissions\n // but some unknown platform could set it as a compatibility flag.\n this.dir = this.externalFileAttributes & 0x0010 ? true : false;\n\n if(madeBy === MADE_BY_DOS) {\n // first 6 bits (0 to 5)\n this.dosPermissions = this.externalFileAttributes & 0x3F;\n }\n\n if(madeBy === MADE_BY_UNIX) {\n this.unixPermissions = (this.externalFileAttributes >> 16) & 0xFFFF;\n // the octal permissions are in (this.unixPermissions & 0x01FF).toString(8);\n }\n\n // fail safe : if the name ends with a / it probably means a folder\n if (!this.dir && this.fileNameStr.slice(-1) === '/') {\n this.dir = true;\n }\n }\n\n /**\n * Parse the ZIP64 extra field and merge the info in the current ZipEntry.\n * @param {DataReader} reader the reader to use.\n */\n parseZIP64ExtraField(reader) {\n\n if (!this.extraFields[0x0001]) {\n return;\n }\n\n // should be something, preparing the extra reader\n var extraReader = readerFor(this.extraFields[0x0001].value);\n\n // I really hope that these 64bits integer can fit in 32 bits integer, because js\n // won't let us have more.\n if (this.uncompressedSize === MAX_VALUE_32BITS) {\n this.uncompressedSize = extraReader.readInt(8);\n }\n if (this.compressedSize === MAX_VALUE_32BITS) {\n this.compressedSize = extraReader.readInt(8);\n }\n if (this.localHeaderOffset === MAX_VALUE_32BITS) {\n this.localHeaderOffset = extraReader.readInt(8);\n }\n if (this.diskNumberStart === MAX_VALUE_32BITS) {\n this.diskNumberStart = extraReader.readInt(4);\n }\n }\n\n /**\n * Read the central part of a zip file and add the info in this object.\n * @param {DataReader} reader the reader to use.\n */\n readExtraFields(reader) {\n var end = reader.index + this.extraFieldsLength,\n extraFieldId,\n extraFieldLength,\n extraFieldValue;\n\n if (!this.extraFields) {\n this.extraFields = {};\n }\n\n while (reader.index < end) {\n extraFieldId = reader.readInt(2);\n extraFieldLength = reader.readInt(2);\n extraFieldValue = reader.readData(extraFieldLength);\n\n this.extraFields[extraFieldId] = {\n id: extraFieldId,\n length: extraFieldLength,\n value: extraFieldValue\n };\n }\n }\n\n /**\n * Apply an UTF8 transformation if needed.\n */\n handleUTF8() {\n var decodeParamType = support.uint8array ? \"uint8array\" : \"array\";\n if (this.useUTF8()) {\n this.fileNameStr = utf8decode(this.fileName);\n this.fileCommentStr = utf8decode(this.fileComment);\n } else {\n var upath = this.findExtraFieldUnicodePath();\n if (upath !== null) {\n this.fileNameStr = upath;\n } else {\n // ASCII text or unsupported code page\n var fileNameByteArray = transformTo(decodeParamType, this.fileName);\n this.fileNameStr = this.loadOptions.decodeFileName(fileNameByteArray);\n }\n\n var ucomment = this.findExtraFieldUnicodeComment();\n if (ucomment !== null) {\n this.fileCommentStr = ucomment;\n } else {\n // ASCII text or unsupported code page\n var commentByteArray = transformTo(decodeParamType, this.fileComment);\n this.fileCommentStr = this.loadOptions.decodeFileName(commentByteArray);\n }\n }\n }\n\n /**\n * Find the unicode path declared in the extra field, if any.\n * @return {String} the unicode path, null otherwise.\n */\n findExtraFieldUnicodePath() {\n var upathField = this.extraFields[0x7075];\n if (upathField) {\n var extraReader = readerFor(upathField.value);\n\n // wrong version\n if (extraReader.readInt(1) !== 1) {\n return null;\n }\n\n // the crc of the filename changed, this field is out of date.\n if (crc32wrapper(this.fileName) !== extraReader.readInt(4)) {\n return null;\n }\n\n return utf8decode(extraReader.readData(upathField.length - 5));\n }\n return null;\n }\n\n /**\n * Find the unicode comment declared in the extra field, if any.\n * @return {String} the unicode comment, null otherwise.\n */\n findExtraFieldUnicodeComment() {\n var ucommentField = this.extraFields[0x6375];\n if (ucommentField) {\n var extraReader = readerFor(ucommentField.value);\n\n // wrong version\n if (extraReader.readInt(1) !== 1) {\n return null;\n }\n\n // the crc of the comment changed, this field is out of date.\n if (crc32wrapper(this.fileComment) !== extraReader.readInt(4)) {\n return null;\n }\n\n return utf8decode(extraReader.readData(ucommentField.length - 5));\n }\n return null;\n }\n}\n\n/* eslint-disable */\n\n// class ZipEntries {{{\n/**\n * All the entries in the zip file.\n * @constructor\n * @param {Object} loadOptions Options for loading the stream.\n */\nclass ZipEntries {\n constructor(loadOptions) {\n this.files = [];\n this.loadOptions = loadOptions;\n }\n\n /**\n * Check that the reader is on the specified signature.\n * @param {string} expectedSignature the expected signature.\n * @throws {Error} if it is an other signature.\n */\n checkSignature(expectedSignature) {\n if (!this.reader.readAndCheckSignature(expectedSignature)) {\n this.reader.index -= 4;\n var signature = this.reader.readString(4);\n throw new Error(\"Corrupted zip or bug: unexpected signature \" + \"(\" + pretty(signature) + \", expected \" + pretty(expectedSignature) + \")\");\n }\n }\n\n /**\n * Check if the given signature is at the given index.\n * @param {number} askedIndex the index to check.\n * @param {string} expectedSignature the signature to expect.\n * @return {boolean} true if the signature is here, false otherwise.\n */\n isSignature(askedIndex, expectedSignature) {\n var currentIndex = this.reader.index;\n this.reader.setIndex(askedIndex);\n var signature = this.reader.readString(4);\n var result = signature === expectedSignature;\n this.reader.setIndex(currentIndex);\n return result;\n }\n\n /**\n * Read the end of the central directory.\n */\n readBlockEndOfCentral() {\n this.diskNumber = this.reader.readInt(2);\n this.diskWithCentralDirStart = this.reader.readInt(2);\n this.centralDirRecordsOnThisDisk = this.reader.readInt(2);\n this.centralDirRecords = this.reader.readInt(2);\n this.centralDirSize = this.reader.readInt(4);\n this.centralDirOffset = this.reader.readInt(4);\n\n this.zipCommentLength = this.reader.readInt(2);\n // warning : the encoding depends of the system locale\n // On a linux machine with LANG=en_US.utf8, this field is utf8 encoded.\n // On a windows machine, this field is encoded with the localized windows code page.\n var zipComment = this.reader.readData(this.zipCommentLength);\n var decodeParamType = support.uint8array ? \"uint8array\" : \"array\";\n // To get consistent behavior with the generation part, we will assume that\n // this is utf8 encoded unless specified otherwise.\n var decodeContent = transformTo(decodeParamType, zipComment);\n this.zipComment = this.loadOptions.decodeFileName(decodeContent);\n }\n\n /**\n * Read the end of the Zip 64 central directory.\n * Not merged with the method readEndOfCentral :\n * The end of central can coexist with its Zip64 brother,\n * I don't want to read the wrong number of bytes !\n */\n readBlockZip64EndOfCentral() {\n this.zip64EndOfCentralSize = this.reader.readInt(8);\n this.reader.skip(4);\n // this.versionMadeBy = this.reader.readString(2);\n // this.versionNeeded = this.reader.readInt(2);\n this.diskNumber = this.reader.readInt(4);\n this.diskWithCentralDirStart = this.reader.readInt(4);\n this.centralDirRecordsOnThisDisk = this.reader.readInt(8);\n this.centralDirRecords = this.reader.readInt(8);\n this.centralDirSize = this.reader.readInt(8);\n this.centralDirOffset = this.reader.readInt(8);\n\n this.zip64ExtensibleData = {};\n var extraDataSize = this.zip64EndOfCentralSize - 44,\n index = 0,\n extraFieldId,\n extraFieldLength,\n extraFieldValue;\n while (index < extraDataSize) {\n extraFieldId = this.reader.readInt(2);\n extraFieldLength = this.reader.readInt(4);\n extraFieldValue = this.reader.readData(extraFieldLength);\n this.zip64ExtensibleData[extraFieldId] = {\n id: extraFieldId,\n length: extraFieldLength,\n value: extraFieldValue\n };\n }\n }\n\n /**\n * Read the end of the Zip 64 central directory locator.\n */\n readBlockZip64EndOfCentralLocator() {\n this.diskWithZip64CentralDirStart = this.reader.readInt(4);\n this.relativeOffsetEndOfZip64CentralDir = this.reader.readInt(8);\n this.disksCount = this.reader.readInt(4);\n if (this.disksCount > 1) {\n throw new Error(\"Multi-volumes zip are not supported\");\n }\n }\n\n /**\n * Read the local files, based on the offset read in the central part.\n */\n readLocalFiles() {\n var i, file;\n for (i = 0; i < this.files.length; i++) {\n file = this.files[i];\n this.reader.setIndex(file.localHeaderOffset);\n this.checkSignature(LOCAL_FILE_HEADER);\n file.readLocalPart(this.reader);\n file.handleUTF8();\n file.processAttributes();\n }\n }\n\n /**\n * Read the central directory.\n */\n readCentralDir() {\n var file;\n\n this.reader.setIndex(this.centralDirOffset);\n while (this.reader.readAndCheckSignature(CENTRAL_FILE_HEADER)) {\n file = new ZipEntry({\n zip64: this.zip64\n }, this.loadOptions);\n file.readCentralPart(this.reader);\n this.files.push(file);\n }\n\n if (this.centralDirRecords !== this.files.length) {\n if (this.centralDirRecords !== 0 && this.files.length === 0) {\n // We expected some records but couldn't find ANY.\n // This is really suspicious, as if something went wrong.\n throw new Error(\"Corrupted zip or bug: expected \" + this.centralDirRecords + \" records in central dir, got \" + this.files.length);\n }\n }\n }\n\n /**\n * Read the end of central directory.\n */\n readEndOfCentral() {\n var offset = this.reader.lastIndexOfSignature(CENTRAL_DIRECTORY_END);\n if (offset < 0) {\n // Check if the content is a truncated zip or complete garbage.\n // A \"LOCAL_FILE_HEADER\" is not required at the beginning (auto\n // extractible zip for example) but it can give a good hint.\n // If an ajax request was used without responseType, we will also\n // get unreadable data.\n var isGarbage = !this.isSignature(0, LOCAL_FILE_HEADER);\n\n if (isGarbage) {\n throw new Error(\"Can't find end of central directory : is this a zip file ? \" +\n \"If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html\");\n } else {\n throw new Error(\"Corrupted zip: can't find end of central directory\");\n }\n\n }\n this.reader.setIndex(offset);\n var endOfCentralDirOffset = offset;\n this.checkSignature(CENTRAL_DIRECTORY_END);\n this.readBlockEndOfCentral();\n\n\n /* extract from the zip spec :\n 4) If one of the fields in the end of central directory\n record is too small to hold required data, the field\n should be set to -1 (0xFFFF or 0xFFFFFFFF) and the\n ZIP64 format record should be created.\n 5) The end of central directory record and the\n Zip64 end of central directory locator record must\n reside on the same disk when splitting or spanning\n an archive.\n */\n if (this.diskNumber === MAX_VALUE_16BITS || this.diskWithCentralDirStart === MAX_VALUE_16BITS || this.centralDirRecordsOnThisDisk === MAX_VALUE_16BITS || this.centralDirRecords === MAX_VALUE_16BITS || this.centralDirSize === MAX_VALUE_32BITS || this.centralDirOffset === MAX_VALUE_32BITS) {\n this.zip64 = true;\n\n /*\n Warning : the zip64 extension is supported, but ONLY if the 64bits integer read from\n the zip file can fit into a 32bits integer. This cannot be solved : JavaScript represents\n all numbers as 64-bit double precision IEEE 754 floating point numbers.\n So, we have 53bits for integers and bitwise operations treat everything as 32bits.\n see https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Bitwise_Operators\n and http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf section 8.5\n */\n\n // should look for a zip64 EOCD locator\n offset = this.reader.lastIndexOfSignature(ZIP64_CENTRAL_DIRECTORY_LOCATOR);\n if (offset < 0) {\n throw new Error(\"Corrupted zip: can't find the ZIP64 end of central directory locator\");\n }\n this.reader.setIndex(offset);\n this.checkSignature(ZIP64_CENTRAL_DIRECTORY_LOCATOR);\n this.readBlockZip64EndOfCentralLocator();\n\n // now the zip64 EOCD record\n if (!this.isSignature(this.relativeOffsetEndOfZip64CentralDir, ZIP64_CENTRAL_DIRECTORY_END)) {\n // console.warn(\"ZIP64 end of central directory not where expected.\");\n this.relativeOffsetEndOfZip64CentralDir = this.reader.lastIndexOfSignature(ZIP64_CENTRAL_DIRECTORY_END);\n if (this.relativeOffsetEndOfZip64CentralDir < 0) {\n throw new Error(\"Corrupted zip: can't find the ZIP64 end of central directory\");\n }\n }\n this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir);\n this.checkSignature(ZIP64_CENTRAL_DIRECTORY_END);\n this.readBlockZip64EndOfCentral();\n }\n\n var expectedEndOfCentralDirOffset = this.centralDirOffset + this.centralDirSize;\n if (this.zip64) {\n expectedEndOfCentralDirOffset += 20; // end of central dir 64 locator\n expectedEndOfCentralDirOffset += 12 /* should not include the leading 12 bytes */ + this.zip64EndOfCentralSize;\n }\n\n var extraBytes = endOfCentralDirOffset - expectedEndOfCentralDirOffset;\n\n if (extraBytes > 0) {\n // console.warn(extraBytes, \"extra bytes at beginning or within zipfile\");\n if (this.isSignature(endOfCentralDirOffset, CENTRAL_FILE_HEADER)) ; else {\n // the offset is wrong, update the \"zero\" of the reader\n // this happens if data has been prepended (crx files for example)\n this.reader.zero = extraBytes;\n }\n } else if (extraBytes < 0) {\n throw new Error(\"Corrupted zip: missing \" + Math.abs(extraBytes) + \" bytes.\");\n }\n }\n\n prepareReader(data) {\n this.reader = readerFor(data);\n }\n\n /**\n * Read a zip file and create ZipEntries.\n * @param {String|ArrayBuffer|Uint8Array|Buffer} data the binary string representing a zip file.\n */\n load(data) {\n this.prepareReader(data);\n this.readEndOfCentral();\n this.readCentralDir();\n this.readLocalFiles();\n }\n}\n\n/* eslint-disable */\n\n/**\n * Check the CRC32 of an entry.\n * @param {ZipEntry} zipEntry the zip entry to check.\n * @return {Promise} the result.\n */\nfunction checkEntryCRC32(zipEntry) {\n return new external.Promise(function (resolve, reject) {\n var worker = zipEntry.decompressed.getContentWorker().pipe(new Crc32Probe());\n worker.on(\"error\", function (e) {\n reject(e);\n })\n .on(\"end\", function () {\n if (worker.streamInfo.crc32 !== zipEntry.decompressed.crc32) {\n reject(new Error(\"Corrupted zip : CRC32 mismatch\"));\n } else {\n resolve();\n }\n })\n .resume();\n });\n}\n\nfunction load(data, options) {\n var zip = this;\n options = extend(options || {}, {\n base64: false,\n checkCRC32: false,\n optimizedBinaryString: false,\n createFolders: false,\n decodeFileName: utf8decode\n });\n\n return prepareContent(\"the loaded zip file\", data, true, options.optimizedBinaryString, options.base64)\n .then(function(data) {\n var zipEntries = new ZipEntries(options);\n zipEntries.load(data);\n return zipEntries;\n }).then(function checkCRC32(zipEntries) {\n var promises = [external.Promise.resolve(zipEntries)];\n var files = zipEntries.files;\n if (options.checkCRC32) {\n for (var i = 0; i < files.length; i++) {\n promises.push(checkEntryCRC32(files[i]));\n }\n }\n return external.Promise.all(promises);\n }).then(function addFiles(results) {\n var zipEntries = results.shift();\n var files = zipEntries.files;\n for (var i = 0; i < files.length; i++) {\n var input = files[i];\n zip.file(input.fileNameStr, input.decompressed, {\n binary: true,\n optimizedBinaryString: true,\n date: input.date,\n dir: input.dir,\n comment : input.fileCommentStr.length ? input.fileCommentStr : null,\n unixPermissions : input.unixPermissions,\n dosPermissions : input.dosPermissions,\n createFolders: options.createFolders\n });\n }\n if (zipEntries.zipComment.length) {\n zip.comment = zipEntries.zipComment;\n }\n\n return zip;\n });\n}\n\n/* eslint-disable */\n\n/**\n * Add a file in the current folder.\n * @private\n * @param {string} name the name of the file\n * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data of the file\n * @param {Object} originalOptions the options of the file\n * @return {Object} the new file.\n */\nvar fileAdd = function(name, data, originalOptions) {\n // be sure sub folders exist\n var dataType = getTypeOf(data),\n parent;\n\n\n /*\n * Correct options.\n */\n\n var o = extend(originalOptions || {}, defaults);\n o.date = o.date || new Date();\n if (o.compression !== null) {\n o.compression = o.compression.toUpperCase();\n }\n\n if (typeof o.unixPermissions === \"string\") {\n o.unixPermissions = parseInt(o.unixPermissions, 8);\n }\n\n // UNX_IFDIR 0040000 see zipinfo.c\n if (o.unixPermissions && (o.unixPermissions & 0x4000)) {\n o.dir = true;\n }\n // Bit 4 Directory\n if (o.dosPermissions && (o.dosPermissions & 0x0010)) {\n o.dir = true;\n }\n\n if (o.dir) {\n name = forceTrailingSlash(name);\n }\n if (o.createFolders && (parent = parentFolder(name))) {\n folderAdd.call(this, parent, true);\n }\n\n var isUnicodeString = dataType === \"string\" && o.binary === false && o.base64 === false;\n if (!originalOptions || typeof originalOptions.binary === \"undefined\") {\n o.binary = !isUnicodeString;\n }\n\n\n var isCompressedEmpty = (data instanceof CompressedObject) && data.uncompressedSize === 0;\n\n if (isCompressedEmpty || o.dir || !data || data.length === 0) {\n o.base64 = false;\n o.binary = true;\n data = \"\";\n o.compression = \"STORE\";\n dataType = \"string\";\n }\n\n /*\n * Convert content to fit.\n */\n\n var zipObjectContent = null;\n if (data instanceof CompressedObject || data instanceof GenericWorker) {\n zipObjectContent = data;\n } else {\n zipObjectContent = prepareContent(name, data, o.binary, o.optimizedBinaryString, o.base64);\n }\n\n var object = new ZipObject(name, zipObjectContent, o);\n this.files[name] = object;\n /*\n TODO: we can't throw an exception because we have async promises\n (we can have a promise of a Date() for example) but returning a\n promise is useless because file(name, data) returns the JSZip\n object for chaining. Should we break that to allow the user\n to catch the error ?\n\n return external.Promise.resolve(zipObjectContent)\n .then(function () {\n return object;\n });\n */\n};\n\n/**\n * Find the parent folder of the path.\n * @private\n * @param {string} path the path to use\n * @return {string} the parent folder, or \"\"\n */\nvar parentFolder = function (path) {\n if (path.slice(-1) === '/') {\n path = path.substring(0, path.length - 1);\n }\n var lastSlash = path.lastIndexOf('/');\n return (lastSlash > 0) ? path.substring(0, lastSlash) : \"\";\n};\n\n/**\n * Returns the path with a slash at the end.\n * @private\n * @param {String} path the path to check.\n * @return {String} the path with a trailing slash.\n */\nvar forceTrailingSlash = function(path) {\n // Check the name ends with a /\n if (path.slice(-1) !== \"/\") {\n path += \"/\"; // IE doesn't like substr(-1)\n }\n return path;\n};\n\n/**\n * Add a (sub) folder in the current folder.\n * @private\n * @param {string} name the folder's name\n * @param {boolean=} [createFolders] If true, automatically create sub\n * folders. Defaults to false.\n * @return {Object} the new folder.\n */\nvar folderAdd = function(name, createFolders$1) {\n createFolders$1 = (typeof createFolders$1 !== 'undefined') ? createFolders$1 : createFolders;\n\n name = forceTrailingSlash(name);\n\n // Does this folder already exist?\n if (!this.files[name]) {\n fileAdd.call(this, name, null, {\n dir: true,\n createFolders: createFolders$1\n });\n }\n return this.files[name];\n};\n\n/**\n* Cross-window, cross-Node-context regular expression detection\n* @param {Object} object Anything\n* @return {Boolean} true if the object is a regular expression,\n* false otherwise\n*/\nfunction isRegExp(object) {\n return Object.prototype.toString.call(object) === \"[object RegExp]\";\n}\n\n/**\n * Representation a of zip file in js\n * @constructor\n */\nclass JSZip {\n constructor() {\n if (arguments.length) {\n throw new Error(\"The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.\");\n }\n\n // object containing the files :\n // {\n // \"folder/\" : {...},\n // \"folder/data.txt\" : {...}\n // }\n // NOTE: we use a null prototype because we do not\n // want filenames like \"toString\" coming from a zip file\n // to overwrite methods and attributes in a normal Object.\n this.files = Object.create(null);\n\n this.comment = null;\n\n // Where we are in the hierarchy\n this.root = \"\";\n this.clone = function() {\n const newObj = new JSZip();\n for (const i in this) {\n if (typeof this[i] !== \"function\") {\n newObj[i] = this[i];\n }\n }\n return newObj;\n };\n }\n\n /**\n * @see loadAsync\n */\n load() {\n throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\");\n }\n\n /**\n * Call a callback function for each entry at this folder level.\n * @param {Function} cb the callback function:\n * function (relativePath, file) {...}\n * It takes 2 arguments : the relative path and the file.\n */\n forEach(cb) {\n var filename, relativePath, file;\n for (filename in this.files) {\n file = this.files[filename];\n relativePath = filename.slice(this.root.length, filename.length);\n if (relativePath && filename.slice(0, this.root.length) === this.root) { // the file is in the current root\n cb(relativePath, file); // TODO reverse the parameters ? need to be clean AND consistent with the filter search fn...\n }\n }\n }\n\n /**\n * Filter nested files/folders with the specified function.\n * @param {Function} search the predicate to use :\n * function (relativePath, file) {...}\n * It takes 2 arguments : the relative path and the file.\n * @return {Array} An array of matching elements.\n */\n filter(search) {\n var result = [];\n this.forEach(function (relativePath, entry) {\n if (search(relativePath, entry)) { // the file matches the function\n result.push(entry);\n }\n\n });\n return result;\n }\n\n /**\n * Add a file to the zip file, or search a file.\n * @param {string|RegExp} name The name of the file to add (if data is defined),\n * the name of the file to find (if no data) or a regex to match files.\n * @param {String|ArrayBuffer|Uint8Array|Buffer} data The file data, either raw or base64 encoded\n * @param {Object} o File options\n * @return {JSZip|Object|Array} this JSZip object (when adding a file),\n * a file (when searching by string) or an array of files (when searching by regex).\n */\n file(name, data, o) {\n if (arguments.length === 1) {\n if (isRegExp(name)) {\n var regexp = name;\n return this.filter(function(relativePath, file) {\n return !file.dir && regexp.test(relativePath);\n });\n }\n else { // text\n var obj = this.files[this.root + name];\n if (obj && !obj.dir) {\n return obj;\n } else {\n return null;\n }\n }\n }\n else { // more than one argument : we have data !\n name = this.root + name;\n fileAdd.call(this, name, data, o);\n }\n return this;\n }\n\n /**\n * Add a directory to the zip file, or search.\n * @param {String|RegExp} arg The name of the directory to add, or a regex to search folders.\n * @return {JSZip} an object with the new directory as the root, or an array containing matching folders.\n */\n folder(arg) {\n if (!arg) {\n return this;\n }\n\n if (isRegExp(arg)) {\n return this.filter(function(relativePath, file) {\n return file.dir && arg.test(relativePath);\n });\n }\n\n // else, name is a new folder\n var name = this.root + arg;\n var newFolder = folderAdd.call(this, name);\n\n // Allow chaining by returning a new object with this folder as the root\n var ret = this.clone();\n ret.root = newFolder.name;\n return ret;\n }\n\n /**\n * Delete a file, or a directory and all sub-files, from the zip\n * @param {string} name the name of the file to delete\n * @return {JSZip} this JSZip object\n */\n remove(name) {\n name = this.root + name;\n var file = this.files[name];\n if (!file) {\n // Look for any folders\n if (name.slice(-1) !== \"/\") {\n name += \"/\";\n }\n file = this.files[name];\n }\n\n if (file && !file.dir) {\n // file\n delete this.files[name];\n } else {\n // maybe a folder, delete recursively\n var kids = this.filter(function(relativePath, file) {\n return file.name.slice(0, name.length) === name;\n });\n for (var i = 0; i < kids.length; i++) {\n delete this.files[kids[i].name];\n }\n }\n\n return this;\n }\n\n /**\n * Generate the complete zip file\n * @param {Object} options the options to generate the zip file :\n * - compression, \"STORE\" by default.\n * - type, \"base64\" by default. Values are : string, base64, uint8array, arraybuffer, blob.\n * @return {String|Uint8Array|ArrayBuffer|Buffer|Blob} the zip file\n */\n generate(options) {\n throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\");\n }\n\n /**\n * Generate the complete zip file as an internal stream.\n * @param {Object} options the options to generate the zip file :\n * - compression, \"STORE\" by default.\n * - type, \"base64\" by default. Values are : string, base64, uint8array, arraybuffer, blob.\n * @return {StreamHelper} the streamed zip file.\n */\n generateInternalStream(options) {\n var worker, opts = {};\n try {\n opts = extend(options || {}, {\n streamFiles: false,\n compression: \"STORE\",\n compressionOptions : null,\n type: \"\",\n platform: \"DOS\",\n comment: null,\n mimeType: 'application/zip',\n encodeFileName: utf8encode\n });\n\n opts.type = opts.type.toLowerCase();\n opts.compression = opts.compression.toUpperCase();\n\n // \"binarystring\" is preferred but the internals use \"string\".\n if(opts.type === \"binarystring\") {\n opts.type = \"string\";\n }\n\n if (!opts.type) {\n throw new Error(\"No output type specified.\");\n }\n\n checkSupport(opts.type);\n\n // accept nodejs `process.platform`\n if(\n opts.platform === 'darwin' ||\n opts.platform === 'freebsd' ||\n opts.platform === 'linux' ||\n opts.platform === 'sunos'\n ) {\n opts.platform = \"UNIX\";\n }\n if (opts.platform === 'win32') {\n opts.platform = \"DOS\";\n }\n\n var comment = opts.comment || this.comment || \"\";\n worker = generateWorker(this, opts, comment);\n } catch (e) {\n worker = new GenericWorker(\"error\");\n worker.error(e);\n }\n return new StreamHelper(worker, opts.type || \"string\", opts.mimeType);\n }\n\n /**\n * Generate the complete zip file asynchronously.\n * @see generateInternalStream\n */\n generateAsync(options, onUpdate) {\n return this.generateInternalStream(options).accumulate(onUpdate);\n }\n\n loadAsync(data, options) {\n return load.apply(this, [data, options]);\n }\n\n static loadAsync(content, options) {\n return new JSZip().loadAsync(content, options);\n }\n \n static get support() {\n return support;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static get version() {\n return \"3.2.2-esm\";\n }\n\n static get external() {\n return external;\n }\n}\n\nexport { JSZip as default };\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","/**-----------------------------------------------------------------------------------------\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, EventEmitter, Input, Output, HostBinding, HostListener, Directive, Optional, ElementRef, Renderer2, NgZone, isDevMode, ContentChildren, QueryList, Component, NgModule, TemplateRef, ViewContainerRef, InjectionToken, Inject, ContentChild, ViewChild, ChangeDetectorRef, forwardRef } from '@angular/core';\nimport { Subject, fromEvent, merge, Subscription } from 'rxjs';\nimport { Keys, isChanged, isDocumentAvailable, hasObservers, guid, EventsModule } from '@progress/kendo-angular-common';\nimport { LocalizationService, L10N_PREFIX, ComponentMessages } from '@progress/kendo-angular-l10n';\nimport { validatePackage } from '@progress/kendo-licensing';\nimport { detectDesktopBrowser, detectMobileOS } from '@progress/kendo-common';\nimport { CommonModule } from '@angular/common';\nimport { PopupService, PopupModule } from '@progress/kendo-angular-popup';\nimport { filter, take } from 'rxjs/operators';\nimport { sequence, query, style, stagger, animate, AnimationBuilder } from '@angular/animations';\n\n/**\n * @hidden\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@progress/kendo-angular-l10n';\nimport * as ɵngcc2 from '@angular/common';\nimport * as ɵngcc3 from '@progress/kendo-angular-popup';\nimport * as ɵngcc4 from '@angular/animations';\nimport * as ɵngcc5 from '@progress/kendo-angular-common';\n\nconst _c0 = [[[\"\", \"kendoButton\", \"\"]]];\nconst _c1 = [\"[kendoButton]\"];\nfunction ListComponent_li_1_ng_template_1_ng_template_1_Template(rf, ctx) { }\nconst _c2 = function (a0, a1) { return { templateRef: a0, $implicit: a1 }; };\nfunction ListComponent_li_1_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 4);\n ɵngcc0.ɵɵtemplate(1, ListComponent_li_1_ng_template_1_ng_template_1_Template, 0, 0, \"ng-template\", 5);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const dataItem_r1 = ɵngcc0.ɵɵnextContext().$implicit;\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"k-disabled\", dataItem_r1.disabled);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction2(3, _c2, ctx_r3.itemTemplate == null ? null : ctx_r3.itemTemplate.templateRef, dataItem_r1));\n} }\nfunction ListComponent_li_1_ng_template_2_span_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 9);\n} if (rf & 2) {\n const dataItem_r1 = ɵngcc0.ɵɵnextContext(2).$implicit;\n const ctx_r7 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r7.getIconClasses(dataItem_r1));\n} }\nfunction ListComponent_li_1_ng_template_2_img_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"img\", 10);\n} if (rf & 2) {\n const dataItem_r1 = ɵngcc0.ɵɵnextContext(2).$implicit;\n ɵngcc0.ɵɵproperty(\"src\", dataItem_r1.imageUrl, ɵngcc0.ɵɵsanitizeUrl);\n} }\nfunction ListComponent_li_1_ng_template_2_span_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 11);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const dataItem_r1 = ɵngcc0.ɵɵnextContext(2).$implicit;\n const ctx_r9 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r9.getText(dataItem_r1), \" \");\n} }\nfunction ListComponent_li_1_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 4);\n ɵngcc0.ɵɵtemplate(1, ListComponent_li_1_ng_template_2_span_1_Template, 1, 1, \"span\", 6);\n ɵngcc0.ɵɵtemplate(2, ListComponent_li_1_ng_template_2_img_2_Template, 1, 1, \"img\", 7);\n ɵngcc0.ɵɵtemplate(3, ListComponent_li_1_ng_template_2_span_3_Template, 2, 1, \"span\", 8);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const dataItem_r1 = ɵngcc0.ɵɵnextContext().$implicit;\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"k-disabled\", dataItem_r1.disabled);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", dataItem_r1.icon || dataItem_r1.iconClass);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", dataItem_r1.imageUrl);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.getText(dataItem_r1));\n} }\nfunction ListComponent_li_1_Template(rf, ctx) { if (rf & 1) {\n const _r15 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\", 2);\n ɵngcc0.ɵɵlistener(\"click\", function ListComponent_li_1_Template_li_click_0_listener() { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r15); const index_r2 = restoredCtx.index; const ctx_r14 = ɵngcc0.ɵɵnextContext(); return ctx_r14.onClick(index_r2); })(\"blur\", function ListComponent_li_1_Template_li_blur_0_listener() { ɵngcc0.ɵɵrestoreView(_r15); const ctx_r16 = ɵngcc0.ɵɵnextContext(); return ctx_r16.onBlur(); });\n ɵngcc0.ɵɵtemplate(1, ListComponent_li_1_ng_template_1_Template, 2, 6, \"ng-template\", 3);\n ɵngcc0.ɵɵtemplate(2, ListComponent_li_1_ng_template_2_Template, 4, 5, \"ng-template\", 3);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const dataItem_r1 = ctx.$implicit;\n const index_r2 = ctx.index;\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"index\", index_r2);\n ɵngcc0.ɵɵattribute(\"aria-disabled\", dataItem_r1.disabled ? true : false);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r0.itemTemplate == null ? null : ctx_r0.itemTemplate.templateRef);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !(ctx_r0.itemTemplate == null ? null : ctx_r0.itemTemplate.templateRef));\n} }\nconst _c3 = [\"button\"];\nconst _c4 = [\"arrowButton\"];\nconst _c5 = [\"popupTemplate\"];\nconst _c6 = [\"container\"];\nfunction SplitButtonComponent_span_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 9);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r1.text, \" \");\n} }\nfunction SplitButtonComponent_ng_template_8_Template(rf, ctx) { if (rf & 1) {\n const _r7 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-button-list\", 10);\n ɵngcc0.ɵɵlistener(\"onItemClick\", function SplitButtonComponent_ng_template_8_Template_kendo_button_list_onItemClick_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r7); const ctx_r6 = ɵngcc0.ɵɵnextContext(); return ctx_r6.onItemClick($event); })(\"keydown\", function SplitButtonComponent_ng_template_8_Template_kendo_button_list_keydown_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r7); const ctx_r8 = ɵngcc0.ɵɵnextContext(); return ctx_r8.keyDownHandler($event); })(\"keypress\", function SplitButtonComponent_ng_template_8_Template_kendo_button_list_keypress_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r7); const ctx_r9 = ɵngcc0.ɵɵnextContext(); return ctx_r9.keyPressHandler($event); })(\"keyup\", function SplitButtonComponent_ng_template_8_Template_kendo_button_list_keyup_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r7); const ctx_r10 = ɵngcc0.ɵɵnextContext(); return ctx_r10.keyUpHandler($event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"id\", ctx_r4.listId)(\"data\", ctx_r4.data)(\"textField\", ctx_r4.textField)(\"itemTemplate\", ctx_r4.itemTemplate)(\"size\", ctx_r4.size);\n ɵngcc0.ɵɵattribute(\"dir\", ctx_r4.dir);\n} }\nconst _c9 = [\"*\"];\nconst _c10 = [\"buttonList\"];\nfunction DropDownButtonComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {\n const _r6 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-button-list\", 4, 5);\n ɵngcc0.ɵɵlistener(\"onItemClick\", function DropDownButtonComponent_ng_template_3_Template_kendo_button_list_onItemClick_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r5 = ɵngcc0.ɵɵnextContext(); return ctx_r5.onItemClick($event); })(\"keydown\", function DropDownButtonComponent_ng_template_3_Template_kendo_button_list_keydown_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r7 = ɵngcc0.ɵɵnextContext(); return ctx_r7.keyDownHandler($event); })(\"keypress\", function DropDownButtonComponent_ng_template_3_Template_kendo_button_list_keypress_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r8 = ɵngcc0.ɵɵnextContext(); return ctx_r8.keyPressHandler($event); })(\"keyup\", function DropDownButtonComponent_ng_template_3_Template_kendo_button_list_keyup_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r9 = ɵngcc0.ɵɵnextContext(); return ctx_r9.keyUpHandler($event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"id\", ctx_r2.listId)(\"data\", ctx_r2.data)(\"textField\", ctx_r2.textField)(\"itemTemplate\", ctx_r2.itemTemplate)(\"size\", ctx_r2.size);\n ɵngcc0.ɵɵattribute(\"dir\", ctx_r2.dir);\n} }\nfunction ChipComponent_span_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 8);\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r0.kendoIconClass);\n} }\nfunction ChipComponent_span_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 9);\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r1.customIconClass);\n} }\nfunction ChipComponent_span_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 10);\n ɵngcc0.ɵɵelement(1, \"span\", 11);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r2.chipAvatarClass);\n} }\nfunction ChipComponent_span_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 12);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r3.label, \" \");\n} }\nfunction ChipComponent_ng_content_5_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojection(0, 0, [\"*ngIf\", \"!label\"]);\n} }\nfunction ChipComponent_span_7_Template(rf, ctx) { if (rf & 1) {\n const _r7 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"span\", 13);\n ɵngcc0.ɵɵlistener(\"click\", function ChipComponent_span_7_Template_span_click_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r7); const ctx_r6 = ɵngcc0.ɵɵnextContext(); return ctx_r6.onRemoveClick($event); });\n ɵngcc0.ɵɵelement(1, \"span\", 14);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r5 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r5.removeIconClass);\n} }\nfunction FloatingActionButtonComponent_2_ng_template_0_Template(rf, ctx) { }\nfunction FloatingActionButtonComponent_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, FloatingActionButtonComponent_2_ng_template_0_Template, 0, 0, \"ng-template\", 4);\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.fabTemplate == null ? null : ctx_r1.fabTemplate.templateRef);\n} }\nfunction FloatingActionButtonComponent_ng_container_3_span_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 7);\n} if (rf & 2) {\n const ctx_r6 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r6.iconClasses);\n} }\nfunction FloatingActionButtonComponent_ng_container_3_span_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 8);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r7 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r7.text);\n} }\nfunction FloatingActionButtonComponent_ng_container_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, FloatingActionButtonComponent_ng_container_3_span_1_Template, 1, 1, \"span\", 5);\n ɵngcc0.ɵɵtemplate(2, FloatingActionButtonComponent_ng_container_3_span_2_Template, 2, 1, \"span\", 6);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r2.icon || ctx_r2.iconClass);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r2.text);\n} }\nfunction FloatingActionButtonComponent_ng_template_4_Template(rf, ctx) { if (rf & 1) {\n const _r9 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"ul\", 9);\n ɵngcc0.ɵɵlistener(\"click\", function FloatingActionButtonComponent_ng_template_4_Template_ul_click_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r9); const ctx_r8 = ɵngcc0.ɵɵnextContext(); return ctx_r8.onItemClick($event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r4.dialClass)(\"dialItems\", ctx_r4.dialItems)(\"dialItemTemplate\", ctx_r4.dialItemTemplate == null ? null : ctx_r4.dialItemTemplate.templateRef)(\"align\", ctx_r4.align);\n ɵngcc0.ɵɵattribute(\"aria-labelledby\", ctx_r4.id);\n} }\nconst _c11 = function (a0, a1) { return { keydown: a0, click: a1 }; };\nconst _c12 = [\"kendoDialList\", \"\"];\nfunction DialListComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵelement(1, \"li\", 1);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const item_r1 = ctx.$implicit;\n const idx_r2 = ctx.index;\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"item\", ctx_r0.dialItems[idx_r2])(\"index\", idx_r2)(\"dialItemTemplate\", ctx_r0.dialItemTemplate)(\"isFocused\", ctx_r0.isFocused(idx_r2))(\"ngClass\", item_r1.cssClass)(\"ngStyle\", item_r1.cssStyle)(\"align\", ctx_r0.align);\n} }\nconst _c13 = [\"kendoDialItem\", \"\"];\nfunction DialItemComponent_0_ng_template_0_Template(rf, ctx) { }\nconst _c14 = function (a0, a1, a2) { return { $implicit: a0, index: a1, isFocused: a2 }; };\nfunction DialItemComponent_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DialItemComponent_0_ng_template_0_Template, 0, 0, \"ng-template\", 1);\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.dialItemTemplate)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction3(2, _c14, ctx_r0.item, ctx_r0.index, ctx_r0.isFocused));\n} }\nfunction DialItemComponent_ng_container_1_span_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 4);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r3.item.label);\n} }\nfunction DialItemComponent_ng_container_1_span_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 5);\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r4.iconClasses);\n} }\nfunction DialItemComponent_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, DialItemComponent_ng_container_1_span_1_Template, 2, 1, \"span\", 2);\n ɵngcc0.ɵɵtemplate(2, DialItemComponent_ng_container_1_span_2_Template, 1, 1, \"span\", 3);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r1.item.label);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r1.item.icon || ctx_r1.item.iconClass);\n} }\nlet KendoButtonService = class KendoButtonService {\n /**\n * @hidden\n */\n constructor() {\n this.buttonClicked = new Subject();\n this.buttonClicked$ = this.buttonClicked.asObservable();\n }\n click(button) {\n this.buttonClicked.next(button);\n }\n};\nKendoButtonService.ɵfac = function KendoButtonService_Factory(t) { return new (t || KendoButtonService)(); };\nKendoButtonService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: KendoButtonService, factory: function (t) { return KendoButtonService.ɵfac(t); } });\n\n/**\n * @hidden\n */\nconst packageMetadata = {\n name: '@progress/kendo-angular-buttons',\n productName: 'Kendo UI for Angular',\n productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],\n publishDate: 1648131806,\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\n/* tslint:disable:no-null-keyword */\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 * @hidden\n */\nconst replaceMessagePlaceholder = (message, name, value) => message.replace(new RegExp(`\\{\\\\s*${name}\\\\s*\\}`, 'g'), value);\n/**\n * @hidden\n */\nconst SIZES = {\n small: 'sm',\n medium: 'md',\n large: 'lg'\n};\nconst ROUNDNESS = {\n small: 'sm',\n medium: 'md',\n large: 'lg',\n full: 'full'\n};\n/**\n * @hidden\n *\n * Returns the styling classes to be added and removed\n */\nconst getStylingClasses = (componentType, stylingOption, previousValue, newValue) => {\n switch (stylingOption) {\n case 'size':\n return {\n toRemove: `k-${componentType}-${SIZES[previousValue]}`,\n toAdd: newValue ? `k-${componentType}-${SIZES[newValue]}` : null\n };\n case 'rounded':\n return {\n toRemove: `k-rounded-${ROUNDNESS[previousValue]}`,\n toAdd: newValue ? `k-rounded-${ROUNDNESS[newValue]}` : null\n };\n case 'fillMode':\n case 'shape':\n return {\n toRemove: `k-${componentType}-${previousValue}`,\n toAdd: newValue ? `k-${componentType}-${newValue}` : null\n };\n default:\n break;\n }\n};\n/**\n * @hidden\n *\n * Returns the themeColor classes to be added and removed\n */\nconst getThemeColorClasses = (componentType, prevFillMode, fillMode, previousValue, newValue) => {\n return {\n toRemove: `k-${componentType}-${prevFillMode}-${previousValue}`,\n toAdd: newValue ? `k-${componentType}-${fillMode}-${newValue}` : null\n };\n};\n/**\n * @hidden\n *\n * Returns true if the used browser is Firefox.\n */\nconst isFirefox = (userAgent) => {\n const desktopBrowser = detectDesktopBrowser(userAgent);\n const mobileOS = detectMobileOS(userAgent);\n return (desktopBrowser && desktopBrowser.mozilla) || (mobileOS && mobileOS.browser === 'firefox');\n};\n\nconst SPAN_TAG_NAME = 'SPAN';\n/**\n * Represents the Kendo UI Button component for Angular.\n */\nlet ButtonDirective = class 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 * @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._size = 'medium';\n this._rounded = 'medium';\n this._shape = 'rectangle';\n this._fillMode = 'solid';\n this._themeColor = 'base';\n this._focused = false;\n this.domEvents = [];\n validatePackage(packageMetadata);\n this.direction = localization.rtl ? 'rtl' : 'ltr';\n this.localizationChangeSubscription = localization.changes.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-button-icon 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 const classes = 'k-button-icon ' + iconClassName;\n this.addIcon(classes);\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 //Required, because in FF focused buttons are not blurred on disabled\n if (isFirefox(navigator.userAgent) && disabled) {\n this.blur();\n }\n this.isDisabled = disabled;\n this.renderer.setProperty(this.element, 'disabled', disabled);\n }\n get disabled() {\n return this.isDisabled;\n }\n /**\n * The size property specifies the padding of the Button\n * ([see example]({% slug appearance_button %}#toc-size)).\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `null`\n */\n set size(size) {\n this.handleClasses(size, 'size');\n this._size = size;\n }\n get size() {\n return this._size;\n }\n /**\n * The rounded property specifies the border radius of the Button\n * ([see example]({% slug appearance_button %}#toc-rounded)).\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `'full'`\n * * `null`\n */\n set rounded(rounded) {\n this.handleClasses(rounded, 'rounded');\n this._rounded = rounded;\n }\n get rounded() {\n return this._rounded;\n }\n /**\n * The fillMode property specifies the background and border styles of the Button\n * ([see example]({% slug appearance_button %}#toc-fillMode)).\n *\n * The possible values are:\n * * `'flat'`\n * * `'solid'` (default)\n * * `'outline'`\n * * `'clear'`\n * * `'link'`\n * * `null`\n */\n set fillMode(fillMode) {\n this.handleClasses(fillMode, 'fillMode');\n this._fillMode = fillMode;\n }\n get fillMode() {\n return this._fillMode;\n }\n /**\n * The Button allows you to specify predefined theme colors.\n * The theme color will be applied as a background and border color while also amending the text color accordingly\n * ([see example]({% slug appearance_button %}#toc-themeColor)).\n *\n * The possible values are:\n * * `'base'` (default)\n * * `'primary'`\n * * `'secondary'`\n * * `'tertiary'`\n * * `'info'`\n * * `'success'`\n * * `'warning'`\n * * `'error'`\n * * `'dark'`\n * * `'light`'\n * * `'inverse'`\n */\n set themeColor(themeColor) {\n this.handleThemeColor(themeColor);\n this._themeColor = themeColor;\n }\n get themeColor() {\n return this._themeColor;\n }\n /**\n * The shape property specifies if the Button will form a rectangle or square.\n * ([see example]({% slug appearance_button %}#toc-shape)).\n *\n * The possible values are:\n * * `'square'`\n * * `'rectangle'` (default)\n */\n set shape(shape) {\n this.handleClasses(shape, 'shape');\n this._shape = shape;\n }\n get shape() {\n return this._shape;\n }\n set isFocused(isFocused) {\n this.toggleClass('k-focus', isFocused);\n this._focused = isFocused;\n }\n get isFocused() {\n return this._focused;\n }\n get classButton() {\n return true;\n }\n get isToggleable() {\n return this.toggleable;\n }\n get roleSetter() {\n return this.role;\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 /**\n * @hidden\n */\n set primary(value) {\n this.themeColor = value ? 'primary' : 'base';\n }\n /**\n * @hidden\n */\n set look(value) {\n switch (value) {\n case 'default':\n this.fillMode = 'solid';\n break;\n default:\n this.fillMode = value;\n break;\n }\n }\n ngOnInit() {\n const isSpan = this.element.tagName === SPAN_TAG_NAME;\n this.addTextSpan();\n if (!this.element.hasAttribute('role') && this.togglable) {\n this.toggleAriaPressed(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 const isSpaceOrEnter = event.keyCode === Keys.Space || event.keyCode === Keys.Enter;\n if (isSpan && isSpaceOrEnter) {\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.toggleAriaPressed(this.toggleable);\n }\n }\n ngAfterViewInit() {\n const stylingOptions = ['size', 'rounded', 'shape', 'fillMode'];\n stylingOptions.forEach(input => {\n this.handleClasses(this[input], input);\n });\n }\n ngAfterViewChecked() {\n this.setIconTextClasses();\n }\n ngOnDestroy() {\n this.imageNode = null;\n this.iconNode = null;\n this.iconSpanNode = null;\n this.renderer = null;\n this.localizationChangeSubscription.unsubscribe();\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-pressed', this.selected.toString());\n this.toggleClass('k-selected', this.selected);\n if (changed && hasObservers(this.selectedChange)) {\n this.ngZone.run(() => {\n this.selectedChange.emit(value);\n });\n }\n }\n toggleAriaPressed(shouldSet) {\n if (!isDocumentAvailable()) {\n return;\n }\n if (shouldSet) {\n this.setAttribute('aria-pressed', this.selected.toString());\n }\n else {\n this.removeAttribute('aria-pressed');\n }\n }\n hasText() {\n return isDocumentAvailable() && this.element.textContent.trim().length > 0;\n }\n addImgIcon(imageUrl) {\n let renderer = this.renderer;\n if (!this.iconSpanNode) {\n this.iconSpanNode = renderer.createElement('span');\n renderer.setProperty(this.iconSpanNode, 'className', 'k-button-icon k-icon');\n }\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 }\n this.iconSpanNode.appendChild(this.imageNode);\n this.prependChild(this.iconSpanNode);\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 addTextSpan() {\n if (isDocumentAvailable() && this.hasText()) {\n const span = this.renderer.createElement('span');\n this.renderer.addClass(span, 'k-button-text');\n const buttonContentNodes = Array.from(this.element.childNodes);\n buttonContentNodes.forEach(node => this.renderer.appendChild(span, node));\n this.renderer.appendChild(this.element, span);\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.renderer.removeChild(this.element, this.iconSpanNode);\n this.imageNode = null;\n this.iconSpanNode = 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 if (this.iconSpanNode) {\n this.renderer.removeChild(this.element, this.iconSpanNode);\n this.iconSpanNode = 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 this.toggleClass('k-icon-button', hasIcon && !this.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 handleClasses(value, input) {\n const elem = this.element;\n const classes = getStylingClasses('button', input, this[input], value);\n if (input === 'fillMode') {\n this.handleThemeColor(this.themeColor, this[input], value);\n }\n if (classes.toRemove) {\n this.renderer.removeClass(elem, classes.toRemove);\n }\n if (classes.toAdd) {\n this.renderer.addClass(elem, classes.toAdd);\n }\n }\n handleThemeColor(value, prevFillMode, fillMode) {\n const elem = this.element;\n const removeFillMode = prevFillMode ? prevFillMode : this.fillMode;\n const addFillMode = fillMode ? fillMode : this.fillMode;\n const themeColorClass = getThemeColorClasses('button', removeFillMode, addFillMode, this.themeColor, value);\n this.renderer.removeClass(elem, themeColorClass.toRemove);\n if (addFillMode !== null && fillMode !== null) {\n if (themeColorClass.toAdd) {\n this.renderer.addClass(elem, themeColorClass.toAdd);\n }\n }\n }\n};\nButtonDirective.ɵfac = function ButtonDirective_Factory(t) { return new (t || ButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(KendoButtonService, 8), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ButtonDirective, selectors: [[\"button\", \"kendoButton\", \"\"], [\"span\", \"kendoButton\", \"\"]], hostVars: 11, hostBindings: function ButtonDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"focus\", function ButtonDirective_focus_HostBindingHandler() { return ctx.onFocus(); })(\"blur\", function ButtonDirective_blur_HostBindingHandler() { return ctx.onBlur(); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"role\", ctx.roleSetter)(\"aria-disabled\", ctx.classDisabled)(\"dir\", ctx.getDirection);\n ɵngcc0.ɵɵclassProp(\"k-button\", ctx.classButton)(\"k-toggle-button\", ctx.isToggleable)(\"k-disabled\", ctx.classDisabled)(\"k-selected\", ctx.classActive);\n } }, inputs: { toggleable: \"toggleable\", role: \"role\", togglable: \"togglable\", selected: \"selected\", tabIndex: \"tabIndex\", icon: \"icon\", iconClass: \"iconClass\", imageUrl: \"imageUrl\", disabled: \"disabled\", size: \"size\", rounded: \"rounded\", fillMode: \"fillMode\", themeColor: \"themeColor\", shape: \"shape\", primary: \"primary\", look: \"look\" }, outputs: { selectedChange: \"selectedChange\", click: \"click\" }, exportAs: [\"kendoButton\"], features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.button'\n }\n ]), ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ButtonDirective.prototype, \"toggleable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], ButtonDirective.prototype, \"togglable\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], ButtonDirective.prototype, \"selected\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], ButtonDirective.prototype, \"tabIndex\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ButtonDirective.prototype, \"icon\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ButtonDirective.prototype, \"iconClass\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ButtonDirective.prototype, \"imageUrl\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], ButtonDirective.prototype, \"disabled\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ButtonDirective.prototype, \"size\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ButtonDirective.prototype, \"rounded\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ButtonDirective.prototype, \"fillMode\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ButtonDirective.prototype, \"themeColor\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ButtonDirective.prototype, \"shape\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ButtonDirective.prototype, \"role\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ButtonDirective.prototype, \"selectedChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ButtonDirective.prototype, \"click\", void 0);\n__decorate([\n HostBinding('class.k-button'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ButtonDirective.prototype, \"classButton\", null);\n__decorate([\n HostBinding('class.k-toggle-button'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ButtonDirective.prototype, \"isToggleable\", null);\n__decorate([\n HostBinding('attr.role'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], ButtonDirective.prototype, \"roleSetter\", null);\n__decorate([\n HostBinding('attr.aria-disabled'),\n HostBinding('class.k-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ButtonDirective.prototype, \"classDisabled\", null);\n__decorate([\n HostBinding('class.k-selected'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ButtonDirective.prototype, \"classActive\", null);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], ButtonDirective.prototype, \"getDirection\", null);\n__decorate([\n HostListener('focus'),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], ButtonDirective.prototype, \"onFocus\", null);\n__decorate([\n HostListener('blur'),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], ButtonDirective.prototype, \"onBlur\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], ButtonDirective.prototype, \"primary\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ButtonDirective.prototype, \"look\", null);\nButtonDirective = __decorate([ __param(2, Optional()),\n __metadata(\"design:paramtypes\", [ElementRef,\n Renderer2,\n KendoButtonService,\n LocalizationService,\n NgZone])\n], ButtonDirective);\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 tabindex = 'tabindex';\n/**\n * Represents the Kendo UI ButtonGroup component for Angular.\n */\nlet ButtonGroupComponent = class 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 * Fires every time keyboard navigation occurs.\n */\n this.navigate = new EventEmitter();\n this._tabIndex = 0;\n this.currentTabIndex = 0;\n validatePackage(packageMetadata);\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 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.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 }\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 this.buttons.forEach((button) => {\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(tabindex, '-1');\n });\n }\n activate(buttons) {\n buttons.forEach((button) => {\n button.setSelected(true);\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.ɵfac = function ButtonGroupComponent_Factory(t) { return new (t || ButtonGroupComponent)(ɵngcc0.ɵɵdirectiveInject(KendoButtonService), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nButtonGroupComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ButtonGroupComponent, selectors: [[\"kendo-buttongroup\"]], contentQueries: function ButtonGroupComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, ButtonDirective, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.buttons = _t);\n } }, hostVars: 12, hostBindings: function ButtonGroupComponent_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"keydown\", function ButtonGroupComponent_keydown_HostBindingHandler($event) { return ctx.keydown($event); })(\"focus\", function ButtonGroupComponent_focus_HostBindingHandler() { return ctx.onFocus(); })(\"focusout\", function ButtonGroupComponent_focusout_HostBindingHandler($event) { return ctx.focusout($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"role\", ctx.getRole)(\"dir\", ctx.dir)(\"aria-disabled\", ctx.ariaDisabled)(\"tabindex\", ctx.wrapperTabIndex);\n ɵngcc0.ɵɵstyleProp(\"width\", ctx.wrapperWidth);\n ɵngcc0.ɵɵclassProp(\"k-button-group\", ctx.wrapperClass)(\"k-disabled\", ctx.disabledClass)(\"k-button-group-stretched\", ctx.stretchedClass);\n } }, inputs: { selection: \"selection\", tabIndex: \"tabIndex\", disabled: \"disabled\", width: \"width\" }, outputs: { navigate: \"navigate\" }, exportAs: [\"kendoButtonGroup\"], features: [ɵngcc0.ɵɵProvidersFeature([\n KendoButtonService,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.buttongroup'\n }\n ]), ɵngcc0.ɵɵNgOnChangesFeature], ngContentSelectors: _c1, decls: 1, vars: 0, template: function ButtonGroupComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef(_c0);\n ɵngcc0.ɵɵprojection(0);\n } }, encapsulation: 2 });\n__decorate([\n Input('disabled'),\n __metadata(\"design:type\", Boolean)\n], ButtonGroupComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input('selection'),\n __metadata(\"design:type\", String)\n], ButtonGroupComponent.prototype, \"selection\", void 0);\n__decorate([\n Input('width'),\n __metadata(\"design:type\", String)\n], ButtonGroupComponent.prototype, \"width\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], ButtonGroupComponent.prototype, \"tabIndex\", null);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ButtonGroupComponent.prototype, \"navigate\", void 0);\n__decorate([\n ContentChildren(ButtonDirective),\n __metadata(\"design:type\", QueryList)\n], ButtonGroupComponent.prototype, \"buttons\", void 0);\n__decorate([\n HostBinding('class.k-button-group'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ButtonGroupComponent.prototype, \"wrapperClass\", null);\n__decorate([\n HostBinding('class.k-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ButtonGroupComponent.prototype, \"disabledClass\", null);\n__decorate([\n HostBinding('class.k-button-group-stretched'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ButtonGroupComponent.prototype, \"stretchedClass\", null);\n__decorate([\n HostBinding('attr.role'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], ButtonGroupComponent.prototype, \"getRole\", null);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], ButtonGroupComponent.prototype, \"dir\", null);\n__decorate([\n HostBinding('attr.aria-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ButtonGroupComponent.prototype, \"ariaDisabled\", null);\n__decorate([\n HostBinding('style.width'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], ButtonGroupComponent.prototype, \"wrapperWidth\", null);\n__decorate([\n HostBinding('attr.tabindex'),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [])\n], ButtonGroupComponent.prototype, \"wrapperTabIndex\", null);\n__decorate([\n HostListener('keydown', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], ButtonGroupComponent.prototype, \"keydown\", null);\n__decorate([\n HostListener('focus'),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], ButtonGroupComponent.prototype, \"onFocus\", null);\n__decorate([\n HostListener('focusout', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], ButtonGroupComponent.prototype, \"focusout\", null);\nButtonGroupComponent = __decorate([ __metadata(\"design:paramtypes\", [KendoButtonService,\n LocalizationService,\n ElementRef])\n], ButtonGroupComponent);\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 */\nlet ButtonModule = class ButtonModule {\n};\nButtonModule.ɵfac = function ButtonModule_Factory(t) { return new (t || ButtonModule)(); };\nButtonModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: ButtonModule });\nButtonModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\n/**\n * @hidden\n *\n * The exported package module.\n *\n * The package exports:\n * - `ButtonGroupComponent`—The ButtonGroupComponent component class.\n */\nlet ButtonGroupModule = class ButtonGroupModule {\n};\nButtonGroupModule.ɵfac = function ButtonGroupModule_Factory(t) { return new (t || ButtonGroupModule)(); };\nButtonGroupModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: ButtonGroupModule });\nButtonGroupModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule, ButtonModule]] });\n\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 */\nlet ButtonItemTemplateDirective = class ButtonItemTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nButtonItemTemplateDirective.ɵfac = function ButtonItemTemplateDirective_Factory(t) { return new (t || ButtonItemTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nButtonItemTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ButtonItemTemplateDirective, selectors: [[\"\", \"kendoDropDownButtonItemTemplate\", \"\"], [\"\", \"kendoSplitButtonItemTemplate\", \"\"]] });\nButtonItemTemplateDirective = __decorate([ __metadata(\"design:paramtypes\", [TemplateRef])\n], ButtonItemTemplateDirective);\n\n/**\n * @hidden\n */\nlet ListComponent = class ListComponent {\n constructor() {\n this.onItemClick = new EventEmitter();\n this.onItemBlur = new EventEmitter();\n this.sizeClass = '';\n validatePackage(packageMetadata);\n }\n set size(size) {\n if (size) {\n this.sizeClass = `k-menu-group-${SIZES[size]}`;\n }\n else {\n this.sizeClass = '';\n }\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.ɵfac = function ListComponent_Factory(t) { return new (t || ListComponent)(); };\nListComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ListComponent, selectors: [[\"kendo-button-list\"]], inputs: { size: \"size\", data: \"data\", textField: \"textField\", itemTemplate: \"itemTemplate\" }, outputs: { onItemClick: \"onItemClick\", onItemBlur: \"onItemBlur\" }, decls: 2, vars: 2, consts: [[\"unselectable\", \"on\", \"role\", \"menu\", 1, \"k-group\", \"k-menu-group\", \"k-reset\", 3, \"ngClass\"], [\"role\", \"menuitem\", \"unselectable\", \"on\", \"kendoButtonFocusable\", \"\", \"tabindex\", \"-1\", \"class\", \"k-item k-menu-item\", 3, \"index\", \"click\", \"blur\", 4, \"ngFor\", \"ngForOf\"], [\"role\", \"menuitem\", \"unselectable\", \"on\", \"kendoButtonFocusable\", \"\", \"tabindex\", \"-1\", 1, \"k-item\", \"k-menu-item\", 3, \"index\", \"click\", \"blur\"], [3, \"ngIf\"], [1, \"k-link\", \"k-menu-link\"], [3, \"templateContext\"], [3, \"ngClass\", 4, \"ngIf\"], [\"class\", \"k-image\", \"alt\", \"\", 3, \"src\", 4, \"ngIf\"], [\"class\", \"k-menu-link-text\", 4, \"ngIf\"], [3, \"ngClass\"], [\"alt\", \"\", 1, \"k-image\", 3, \"src\"], [1, \"k-menu-link-text\"]], template: function ListComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"ul\", 0);\n ɵngcc0.ɵɵtemplate(1, ListComponent_li_1_Template, 3, 4, \"li\", 1);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx.sizeClass);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.data);\n } }, directives: function () { return [ɵngcc2.NgClass, ɵngcc2.NgForOf, FocusableDirective, ɵngcc2.NgIf, TemplateContextDirective]; }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], ListComponent.prototype, \"data\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ListComponent.prototype, \"textField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", ButtonItemTemplateDirective)\n], ListComponent.prototype, \"itemTemplate\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ListComponent.prototype, \"onItemClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ListComponent.prototype, \"onItemBlur\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ListComponent.prototype, \"size\", null);\nListComponent = __decorate([ __metadata(\"design:paramtypes\", [])\n], ListComponent);\n\n/**\n * @hidden\n */\nlet FocusService = class FocusService {\n /**\n * @hidden\n */\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.ɵfac = function FocusService_Factory(t) { return new (t || FocusService)(); };\nFocusService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: FocusService, factory: function (t) { return FocusService.ɵfac(t); } });\n\n/**\n * @hidden\n */\nlet FocusableDirective = class FocusableDirective {\n constructor(focusService, elementRef, renderer) {\n this.focusService = focusService;\n this.renderer = renderer;\n this.element = elementRef.nativeElement;\n this.subscribeEvents();\n }\n ngOnInit() {\n if (this.index === this.focusService.focused) {\n this.renderer.addClass(this.element, 'k-focus');\n }\n else {\n this.renderer.removeClass(this.element, 'k-focus');\n }\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.renderer.addClass(this.element, 'k-focus');\n this.element.focus();\n }\n else {\n this.renderer.removeClass(this.element, 'k-focus');\n }\n });\n }\n unsubscribeEvents() {\n if (!isDocumentAvailable()) {\n return;\n }\n if (this.focusSubscription) {\n this.focusSubscription.unsubscribe();\n }\n }\n};\nFocusableDirective.ɵfac = function FocusableDirective_Factory(t) { return new (t || FocusableDirective)(ɵngcc0.ɵɵdirectiveInject(FocusService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nFocusableDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: FocusableDirective, selectors: [[\"\", \"kendoButtonFocusable\", \"\"]], inputs: { index: \"index\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], FocusableDirective.prototype, \"index\", void 0);\nFocusableDirective = __decorate([ __metadata(\"design:paramtypes\", [FocusService, ElementRef, Renderer2])\n], FocusableDirective);\n\n/**\n * @hidden\n */\nlet TemplateContextDirective = class 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.ɵfac = function TemplateContextDirective_Factory(t) { return new (t || TemplateContextDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef)); };\nTemplateContextDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: TemplateContextDirective, selectors: [[\"\", \"templateContext\", \"\"]], inputs: { templateContext: \"templateContext\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], TemplateContextDirective.prototype, \"templateContext\", null);\nTemplateContextDirective = __decorate([ __metadata(\"design:paramtypes\", [ViewContainerRef])\n], TemplateContextDirective);\n\nconst EXPORTED_DIRECTIVES = [\n ListComponent,\n FocusableDirective,\n ButtonItemTemplateDirective,\n TemplateContextDirective\n];\n/**\n * @hidden\n */\nlet ListModule = class ListModule {\n};\nListModule.ɵfac = function ListModule_Factory(t) { return new (t || ListModule)(); };\nListModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: ListModule });\nListModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule]] });\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, cdr) {\n this.focusService = focusService;\n this.navigationService = navigationService;\n this.wrapperRef = wrapperRef;\n this._zone = _zone;\n this.cdr = cdr;\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 validatePackage(packageMetadata);\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-menu-popup'];\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.enterUpSubscription = this.navigationService.enterup.subscribe(() => {\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 if (event.keyCode === Keys.Space && action === NavigationAction.EnterUp) {\n this._open = false;\n }\n else {\n eventData.preventDefault();\n }\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 this.cdr.markForCheck();\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}\nListButton.ɵfac = function ListButton_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nListButton.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ListButton });\n\n/**\n * @hidden\n */\nconst NAVIGATION_CONFIG = new InjectionToken('navigation.config');\n\n/**\n * @hidden\n */\nlet NavigationService = class 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 const step = args.flipNavigation ? 1 : -1;\n const start = args.flipNavigation ? args.min : args.max;\n const end = args.flipNavigation ? args.max : args.min;\n index = this.next({\n current: args.current,\n start: start,\n end: end,\n step: step\n });\n action = NavigationAction.Navigate;\n }\n else if (keyCode === Keys.ArrowDown || (this.useLeftRightArrows && keyCode === Keys.ArrowRight)) {\n const step = args.flipNavigation ? -1 : 1;\n const start = args.flipNavigation ? args.max : args.min;\n const end = args.flipNavigation ? args.min : args.max;\n index = this.next({\n current: args.current,\n start: start,\n end: end,\n step: step\n });\n action = NavigationAction.Navigate;\n }\n else if (keyCode === Keys.Home) {\n index = args.min;\n action = NavigationAction.Navigate;\n }\n else if (keyCode === Keys.End) {\n index = args.max;\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.ɵfac = function NavigationService_Factory(t) { return new (t || NavigationService)(ɵngcc0.ɵɵinject(NAVIGATION_CONFIG)); };\nNavigationService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NavigationService, factory: function (t) { return NavigationService.ɵfac(t); } });\nNavigationService = __decorate([ __param(0, Inject(NAVIGATION_CONFIG)),\n __metadata(\"design:paramtypes\", [Object])\n], NavigationService);\n\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 */\nlet SplitButtonComponent = class SplitButtonComponent extends ListButton {\n constructor(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization, cdr, renderer) {\n super(focusService, navigationService, wrapperRef, zone, localization, cdr);\n this.popupService = popupService;\n this.elRef = elRef;\n this.localization = localization;\n this.renderer = renderer;\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 type attribute of the main button\n */\n this.type = 'button';\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 * The size property specifies the padding of the SplitButton\n * ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-size)).\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `null`\n */\n this.size = 'medium';\n /**\n * The SplitButton allows you to specify predefined theme colors.\n * The theme color will be applied as a background and border color while also amending the text color accordingly\n * ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-themeColor)).\n *\n * The possible values are:\n * * `base` —Applies coloring based on the `base` theme color. (default)\n * * `primary` —Applies coloring based on the `primary` theme color.\n * * `secondary`—Applies coloring based on the `secondary` theme color.\n * * `tertiary`— Applies coloring based on the `tertiary` theme color.\n * * `info`—Applies coloring based on the `info` theme color.\n * * `success`— Applies coloring based on the `success` theme color.\n * * `warning`— Applies coloring based on the `warning` theme color.\n * * `error`— Applies coloring based on the `error` theme color.\n * * `dark`— Applies coloring based on the `dark` theme color.\n * * `light`— Applies coloring based on the `light` theme color.\n * * `inverse`— Applies coloring based on the `inverse` theme color.\n */\n this.themeColor = 'base';\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 /**\n * @hidden\n */\n this.activeArrow = false;\n this.listId = guid();\n this.buttonText = '';\n this.lockFocus = false;\n this._rounded = 'medium';\n this._fillMode = \"solid\";\n this._itemClick = this.itemClick;\n this._blur = this.onBlur;\n }\n /**\n * The rounded property specifies the border radius of the SplitButton\n * ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-rounded)).\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `'full'`\n * * `null`\n */\n set rounded(rounded) {\n this.handleClasses(rounded, 'rounded');\n this._rounded = rounded;\n }\n get rounded() {\n return this._rounded;\n }\n /**\n * The fillMode property specifies the background and border styles of the SplitButton\n * ([see example]({% slug api_buttons_splitbuttoncomponent %}#toc-fillMode)).\n *\n * The available values are:\n * * `solid` (default)\n * * `flat`\n * * `outline`\n * * `link`\n */\n set fillMode(fillMode) {\n this._fillMode = fillMode === 'clear' ? 'flat' : fillMode;\n }\n get fillMode() {\n return this._fillMode;\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 if (this.isOpen) {\n this.toggle(false);\n }\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 const localizationMsg = this.localization.get('splitButtonLabel') || '';\n return replaceMessagePlaceholder(localizationMsg, 'buttonText', this.buttonText);\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 toggleButtonActiveState(enable) {\n this._active = enable;\n }\n /**\n * @hidden\n */\n toggleArrowButtonActiveState(enable) {\n this.activeArrow = enable;\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 if (event.keyCode === Keys.Space) {\n this._active = true;\n }\n }\n /**\n * @hidden\n */\n keypress(event) {\n this.keyPressHandler(event);\n }\n /**\n * @hidden\n */\n keyup(event) {\n this._active = false;\n if (event.keyCode !== Keys.Space) {\n this.keyUpHandler(event);\n }\n }\n /**\n * @hidden\n */\n ngAfterViewInit() {\n this.updateButtonText();\n this.handleClasses(this.rounded, 'rounded');\n }\n /**\n * @hidden\n */\n ngOnChanges(changes) {\n if (changes.hasOwnProperty('text')) {\n this.updateButtonText();\n }\n if (isChanged(\"popupSettings\", changes) && isPresent(this.popupRef)) {\n const popup = this.popupRef.popup.instance;\n const newSettings = changes.popupSettings.currentValue;\n popup.popupClass = newSettings.popupClass;\n popup.animate = newSettings.animate;\n popup.popupAlign = this.popupAlign;\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 handleClasses(value, input) {\n const elem = this.wrapperRef.nativeElement;\n const classes = getStylingClasses('button', input, this[input], value);\n if (classes.toRemove) {\n this.renderer.removeClass(elem, classes.toRemove);\n }\n if (classes.toAdd) {\n this.renderer.addClass(elem, classes.toAdd);\n }\n }\n};\nSplitButtonComponent.ɵfac = function SplitButtonComponent_Factory(t) { return new (t || SplitButtonComponent)(ɵngcc0.ɵɵdirectiveInject(FocusService), ɵngcc0.ɵɵdirectiveInject(NavigationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc3.PopupService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nSplitButtonComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SplitButtonComponent, selectors: [[\"kendo-splitbutton\"]], contentQueries: function SplitButtonComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, ButtonItemTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.itemTemplate = _t.first);\n } }, viewQuery: function SplitButtonComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c3, 7);\n ɵngcc0.ɵɵviewQuery(_c4, 7, ElementRef);\n ɵngcc0.ɵɵviewQuery(_c5, 7);\n ɵngcc0.ɵɵviewQuery(_c6, 7, ViewContainerRef);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.button = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.arrowButton = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.popupTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.containerRef = _t.first);\n } }, hostVars: 7, hostBindings: function SplitButtonComponent_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"keydown\", function SplitButtonComponent_keydown_HostBindingHandler($event) { return ctx.keydown($event); })(\"keypress\", function SplitButtonComponent_keypress_HostBindingHandler($event) { return ctx.keypress($event); })(\"keyup\", function SplitButtonComponent_keyup_HostBindingHandler($event) { return ctx.keyup($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"dir\", ctx.dir);\n ɵngcc0.ɵɵclassProp(\"k-focus\", ctx.isFocused)(\"k-split-button\", ctx.widgetClasses)(\"k-button-group\", ctx.widgetClasses);\n } }, inputs: { text: \"text\", icon: \"icon\", iconClass: \"iconClass\", type: \"type\", imageUrl: \"imageUrl\", size: \"size\", themeColor: \"themeColor\", tabIndex: \"tabIndex\", arrowButtonIcon: \"arrowButtonIcon\", rounded: \"rounded\", fillMode: \"fillMode\", disabled: \"disabled\", popupSettings: \"popupSettings\", data: \"data\", textField: \"textField\", buttonClass: \"buttonClass\", arrowButtonClass: \"arrowButtonClass\" }, outputs: { buttonClick: \"buttonClick\", itemClick: \"itemClick\", onFocus: \"focus\", onBlur: \"blur\", open: \"open\", close: \"close\" }, exportAs: [\"kendoSplitButton\"], features: [ɵngcc0.ɵɵProvidersFeature([\n FocusService,\n NavigationService,\n NAVIGATION_SETTINGS_PROVIDER,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.splitbutton'\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature, ɵngcc0.ɵɵNgOnChangesFeature], ngContentSelectors: _c9, decls: 12, vars: 32, consts: function () { let i18n_7; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text for the SplitButton aria-label\n * @meaning kendo.splitbutton.splitButtonLabel\n */\n const MSG_EXTERNAL_109169670915733361$$DIST_FESM2015_INDEX_JS_8 = goog.getMsg(\"{$interpolation}\", { \"interpolation\": \"\\uFFFD0\\uFFFD\" });\n i18n_7 = MSG_EXTERNAL_109169670915733361$$DIST_FESM2015_INDEX_JS_8;\n }\n else {\n i18n_7 = $localize `:kendo.splitbutton.splitButtonLabel|The text for the SplitButton aria-label␟ee2d4273142c9694614c71170691ca688717ef31␟109169670915733361:${\"\\uFFFD0\\uFFFD\"}:INTERPOLATION:`;\n } return [[\"kendoSplitButtonLocalizedMessages\", \"\", 6, \"splitButtonLabel\"], [\"splitButtonLabel\", i18n_7], [\"kendoButton\", \"\", 3, \"type\", \"tabindex\", \"disabled\", \"size\", \"rounded\", \"fillMode\", \"themeColor\", \"icon\", \"iconClass\", \"imageUrl\", \"ngClass\", \"focus\", \"click\", \"blur\", \"mousedown\", \"mouseup\"], [\"button\", \"\"], [\"class\", \"k-button-text\", 4, \"ngIf\"], [\"kendoButton\", \"\", \"type\", \"button\", 3, \"disabled\", \"icon\", \"size\", \"rounded\", \"fillMode\", \"themeColor\", \"tabindex\", \"ngClass\", \"click\", \"mousedown\", \"mouseup\"], [\"arrowButton\", \"\"], [\"popupTemplate\", \"\"], [\"container\", \"\"], [1, \"k-button-text\"], [3, \"id\", \"data\", \"textField\", \"itemTemplate\", \"size\", \"onItemClick\", \"keydown\", \"keypress\", \"keyup\"]]; }, template: function SplitButtonComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelementContainerStart(0, 0);\n ɵngcc0.ɵɵi18nAttributes(1, 1);\n ɵngcc0.ɵɵelementContainerEnd();\n ɵngcc0.ɵɵelementStart(2, \"button\", 2, 3);\n ɵngcc0.ɵɵlistener(\"focus\", function SplitButtonComponent_Template_button_focus_2_listener() { return ctx.onButtonFocus(); })(\"click\", function SplitButtonComponent_Template_button_click_2_listener() { return ctx.onButtonClick(); })(\"blur\", function SplitButtonComponent_Template_button_blur_2_listener() { return ctx.onButtonBlur(); })(\"mousedown\", function SplitButtonComponent_Template_button_mousedown_2_listener() { return ctx.toggleButtonActiveState(true); })(\"mouseup\", function SplitButtonComponent_Template_button_mouseup_2_listener() { return ctx.toggleButtonActiveState(false); });\n ɵngcc0.ɵɵtemplate(4, SplitButtonComponent_span_4_Template, 2, 1, \"span\", 4);\n ɵngcc0.ɵɵprojection(5);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(6, \"button\", 5, 6);\n ɵngcc0.ɵɵlistener(\"click\", function SplitButtonComponent_Template_button_click_6_listener() { return ctx.onArrowButtonClick(); })(\"mousedown\", function SplitButtonComponent_Template_button_mousedown_6_listener() { return ctx.toggleArrowButtonActiveState(true); })(\"mouseup\", function SplitButtonComponent_Template_button_mouseup_6_listener() { return ctx.toggleArrowButtonActiveState(false); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(8, SplitButtonComponent_ng_template_8_Template, 1, 6, \"ng-template\", null, 7, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵelementContainer(10, null, 8);\n } if (rf & 2) {\n ɵngcc0.ɵɵi18nExp(\"{buttonText} splitbutton\");\n ɵngcc0.ɵɵi18nApply(1);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵclassProp(\"k-active\", ctx.active)(\"k-icon-button\", !ctx.text && ctx.icon);\n ɵngcc0.ɵɵproperty(\"type\", ctx.type)(\"tabindex\", ctx.componentTabIndex)(\"disabled\", ctx.disabled)(\"size\", ctx.size)(\"rounded\", ctx.rounded)(\"fillMode\", ctx.fillMode)(\"themeColor\", ctx.themeColor)(\"icon\", ctx.icon)(\"iconClass\", ctx.iconClass)(\"imageUrl\", ctx.imageUrl)(\"ngClass\", ctx.buttonClass);\n ɵngcc0.ɵɵattribute(\"aria-disabled\", ctx.disabled)(\"aria-expanded\", ctx.openState)(\"aria-haspopup\", true)(\"aria-owns\", ctx.listId)(\"aria-label\", ctx.ariaLabel);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.text);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵclassProp(\"k-active\", ctx.activeArrow);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx.disabled)(\"icon\", ctx.arrowButtonIcon)(\"size\", ctx.size)(\"rounded\", ctx.rounded)(\"fillMode\", ctx.fillMode)(\"themeColor\", ctx.fillMode ? ctx.themeColor : null)(\"tabindex\", -1)(\"ngClass\", ctx.arrowButtonClass);\n } }, directives: function () { return [LocalizedSplitButtonMessagesDirective, ButtonDirective, ɵngcc2.NgClass, ɵngcc2.NgIf, ListComponent]; }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SplitButtonComponent.prototype, \"text\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SplitButtonComponent.prototype, \"icon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SplitButtonComponent.prototype, \"iconClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SplitButtonComponent.prototype, \"type\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SplitButtonComponent.prototype, \"imageUrl\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SplitButtonComponent.prototype, \"size\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], SplitButtonComponent.prototype, \"rounded\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], SplitButtonComponent.prototype, \"fillMode\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SplitButtonComponent.prototype, \"themeColor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], SplitButtonComponent.prototype, \"disabled\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], SplitButtonComponent.prototype, \"popupSettings\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SplitButtonComponent.prototype, \"tabIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SplitButtonComponent.prototype, \"textField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], SplitButtonComponent.prototype, \"data\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SplitButtonComponent.prototype, \"buttonClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SplitButtonComponent.prototype, \"arrowButtonClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SplitButtonComponent.prototype, \"arrowButtonIcon\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], SplitButtonComponent.prototype, \"buttonClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], SplitButtonComponent.prototype, \"itemClick\", void 0);\n__decorate([\n Output('focus'),\n __metadata(\"design:type\", EventEmitter)\n], SplitButtonComponent.prototype, \"onFocus\", void 0);\n__decorate([\n Output('blur'),\n __metadata(\"design:type\", EventEmitter)\n], SplitButtonComponent.prototype, \"onBlur\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], SplitButtonComponent.prototype, \"open\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], SplitButtonComponent.prototype, \"close\", void 0);\n__decorate([\n ContentChild(ButtonItemTemplateDirective, { static: false }),\n __metadata(\"design:type\", ButtonItemTemplateDirective)\n], SplitButtonComponent.prototype, \"itemTemplate\", void 0);\n__decorate([\n ViewChild('button', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], SplitButtonComponent.prototype, \"button\", void 0);\n__decorate([\n ViewChild('arrowButton', { static: true, read: ElementRef }),\n __metadata(\"design:type\", ElementRef)\n], SplitButtonComponent.prototype, \"arrowButton\", void 0);\n__decorate([\n ViewChild('popupTemplate', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], SplitButtonComponent.prototype, \"popupTemplate\", void 0);\n__decorate([\n ViewChild('container', { read: ViewContainerRef, static: true }),\n __metadata(\"design:type\", ViewContainerRef)\n], SplitButtonComponent.prototype, \"containerRef\", void 0);\n__decorate([\n HostBinding('class.k-focus'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], SplitButtonComponent.prototype, \"isFocused\", null);\n__decorate([\n HostBinding('class.k-split-button'),\n HostBinding('class.k-button-group'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], SplitButtonComponent.prototype, \"widgetClasses\", null);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], SplitButtonComponent.prototype, \"dir\", null);\n__decorate([\n HostListener('keydown', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], SplitButtonComponent.prototype, \"keydown\", null);\n__decorate([\n HostListener('keypress', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], SplitButtonComponent.prototype, \"keypress\", null);\n__decorate([\n HostListener('keyup', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], SplitButtonComponent.prototype, \"keyup\", null);\nSplitButtonComponent = __decorate([ __metadata(\"design:paramtypes\", [FocusService,\n NavigationService,\n ElementRef,\n NgZone,\n PopupService,\n ElementRef,\n LocalizationService,\n ChangeDetectorRef,\n Renderer2])\n], SplitButtonComponent);\n\n/**\n * @hidden\n */\nclass Messages extends ComponentMessages {\n}\nMessages.ɵfac = /*@__PURE__*/ function () { let ɵMessages_BaseFactory; return function Messages_Factory(t) { return (ɵMessages_BaseFactory || (ɵMessages_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(Messages)))(t || Messages); }; }();\nMessages.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: Messages, inputs: { splitButtonLabel: \"splitButtonLabel\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"splitButtonLabel\", void 0);\n\nvar LocalizedSplitButtonMessagesDirective_1;\n/**\n * @hidden\n */\nlet LocalizedSplitButtonMessagesDirective = LocalizedSplitButtonMessagesDirective_1 = class LocalizedSplitButtonMessagesDirective extends Messages {\n constructor(service) {\n super();\n this.service = service;\n }\n};\nLocalizedSplitButtonMessagesDirective.ɵfac = function LocalizedSplitButtonMessagesDirective_Factory(t) { return new (t || LocalizedSplitButtonMessagesDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nLocalizedSplitButtonMessagesDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LocalizedSplitButtonMessagesDirective, selectors: [[\"\", \"kendoSplitButtonLocalizedMessages\", \"\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: Messages,\n useExisting: forwardRef(() => LocalizedSplitButtonMessagesDirective_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature] });\nLocalizedSplitButtonMessagesDirective = LocalizedSplitButtonMessagesDirective_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], LocalizedSplitButtonMessagesDirective);\n\nvar SplitButtonCustomMessagesComponent_1;\n/**\n * Custom component messages override default component messages\n * ([see example]({% slug rtl_buttons %}).\n */\nlet SplitButtonCustomMessagesComponent = SplitButtonCustomMessagesComponent_1 = class SplitButtonCustomMessagesComponent extends Messages {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n};\nSplitButtonCustomMessagesComponent.ɵfac = function SplitButtonCustomMessagesComponent_Factory(t) { return new (t || SplitButtonCustomMessagesComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nSplitButtonCustomMessagesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SplitButtonCustomMessagesComponent, selectors: [[\"kendo-splitbutton-messages\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: Messages,\n useExisting: forwardRef(() => SplitButtonCustomMessagesComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function SplitButtonCustomMessagesComponent_Template(rf, ctx) { }, encapsulation: 2 });\nSplitButtonCustomMessagesComponent = SplitButtonCustomMessagesComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], SplitButtonCustomMessagesComponent);\n\n/**\n * @hidden\n *\n * The exported package module.\n *\n * The package exports:\n * - `SplitButtonComponent`—The SplitButtonComponent component class.\n */\nlet SplitButtonModule = class SplitButtonModule {\n};\nSplitButtonModule.ɵfac = function SplitButtonModule_Factory(t) { return new (t || SplitButtonModule)(); };\nSplitButtonModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: SplitButtonModule });\nSplitButtonModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule, PopupModule, ButtonModule, ListModule], ListModule] });\n\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 */\nlet DropDownButtonComponent = class DropDownButtonComponent extends ListButton {\n constructor(focusService, navigationService, wrapperRef, zone, popupService, elRef, localization, cdr) {\n super(focusService, navigationService, wrapperRef, zone, localization, cdr);\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 * The size property specifies the padding of the DropDownButton\n * ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-size)).\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `null`\n */\n this.size = 'medium';\n /**\n * The shape property specifies if the DropDownButton will be a square or rectangle.\n * ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-shape)).\n *\n * The possible values are:\n * * `'rectangle'` (default)\n * * `'square'`\n * * `null`\n */\n this.shape = 'rectangle';\n /**\n * The rounded property specifies the border radius of the DropDownButton\n * ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-rounded)).\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `'full'`\n * * `null`\n */\n this.rounded = 'medium';\n /**\n * The DropDownButton allows you to specify predefined theme colors.\n * The theme color will be applied as a background and border color while also amending the text color accordingly\n * ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-themeColor)).\n *\n * The possible values are:\n * * `base` —Applies coloring based on the `base` theme color. (default)\n * * `primary` —Applies coloring based on the `primary` theme color.\n * * `secondary`—Applies coloring based on the `secondary` theme color.\n * * `tertiary`— Applies coloring based on the `tertiary` theme color.\n * * `info`—Applies coloring based on the `info` theme color.\n * * `success`— Applies coloring based on the `success` theme color.\n * * `warning`— Applies coloring based on the `warning` theme color.\n * * `error`— Applies coloring based on the `error` theme color.\n * * `dark`— Applies coloring based on the `dark` theme color.\n * * `light`— Applies coloring based on the `light` theme color.\n * * `inverse`— Applies coloring based on the `inverse` theme color.\n * * `null` —Removes the default CSS class (no class would be rendered).\n */\n this.themeColor = 'base';\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._fillMode = 'solid';\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 * The fillMode property specifies the background and border styles of the DropDownButton\n * ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-fillMode)).\n *\n * The available values are:\n * * `solid` (default)\n * * `flat`\n * * `outline`\n * * `link`\n * * `null`\n */\n set fillMode(fillMode) {\n this._fillMode = fillMode === 'clear' ? 'flat' : fillMode;\n }\n get fillMode() {\n return this._fillMode;\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 if (event.keyCode === Keys.Space) {\n this._active = true;\n }\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 this._active = false;\n }\n /**\n * @hidden\n */\n mousedown(event) {\n if (this._disabled) {\n event.preventDefault();\n }\n this._active = true;\n }\n /**\n * @hidden\n */\n mouseup(event) {\n if (this._disabled) {\n event.preventDefault();\n }\n this._active = false;\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 ngOnChanges(changes) {\n if (isChanged(\"popupSettings\", changes) && isPresent(this.popupRef)) {\n const popup = this.popupRef.popup.instance;\n const newSettings = changes.popupSettings.currentValue;\n popup.popupClass = newSettings.popupClass;\n popup.animate = newSettings.animate;\n popup.popupAlign = this.popupAlign;\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.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 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.ɵfac = function DropDownButtonComponent_Factory(t) { return new (t || DropDownButtonComponent)(ɵngcc0.ɵɵdirectiveInject(FocusService), ɵngcc0.ɵɵdirectiveInject(NavigationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc3.PopupService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nDropDownButtonComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DropDownButtonComponent, selectors: [[\"kendo-dropdownbutton\"]], contentQueries: function DropDownButtonComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, ButtonItemTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.itemTemplate = _t.first);\n } }, viewQuery: function DropDownButtonComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c3, 7);\n ɵngcc0.ɵɵviewQuery(_c10, 5);\n ɵngcc0.ɵɵviewQuery(_c5, 7);\n ɵngcc0.ɵɵviewQuery(_c6, 7, ViewContainerRef);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.button = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.buttonList = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.popupTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.container = _t.first);\n } }, hostVars: 5, hostBindings: function DropDownButtonComponent_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"keydown\", function DropDownButtonComponent_keydown_HostBindingHandler($event) { return ctx.keydown($event); })(\"keypress\", function DropDownButtonComponent_keypress_HostBindingHandler($event) { return ctx.keypress($event); })(\"keyup\", function DropDownButtonComponent_keyup_HostBindingHandler($event) { return ctx.keyup($event); })(\"mousedown\", function DropDownButtonComponent_mousedown_HostBindingHandler($event) { return ctx.mousedown($event); })(\"mouseup\", function DropDownButtonComponent_mouseup_HostBindingHandler($event) { return ctx.mouseup($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"dir\", ctx.dir);\n ɵngcc0.ɵɵclassProp(\"k-focus\", ctx.focused)(\"k-dropdown-button\", ctx.widgetClasses);\n } }, inputs: { icon: \"icon\", iconClass: \"iconClass\", imageUrl: \"imageUrl\", size: \"size\", shape: \"shape\", rounded: \"rounded\", themeColor: \"themeColor\", tabIndex: \"tabIndex\", popupSettings: \"popupSettings\", disabled: \"disabled\", data: \"data\", fillMode: \"fillMode\", textField: \"textField\", buttonClass: \"buttonClass\" }, outputs: { itemClick: \"itemClick\", open: \"open\", close: \"close\", onFocus: \"focus\", onBlur: \"blur\" }, exportAs: [\"kendoDropDownButton\"], features: [ɵngcc0.ɵɵProvidersFeature([\n FocusService,\n NavigationService,\n NAVIGATION_SETTINGS_PROVIDER$1,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.dropdownbutton'\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature, ɵngcc0.ɵɵNgOnChangesFeature], ngContentSelectors: _c9, decls: 7, vars: 17, consts: [[\"kendoButton\", \"\", \"role\", \"menu\", \"type\", \"button\", 3, \"tabindex\", \"disabled\", \"icon\", \"iconClass\", \"imageUrl\", \"ngClass\", \"size\", \"shape\", \"rounded\", \"fillMode\", \"themeColor\", \"click\", \"focus\", \"blur\"], [\"button\", \"\"], [\"popupTemplate\", \"\"], [\"container\", \"\"], [3, \"id\", \"data\", \"textField\", \"itemTemplate\", \"size\", \"onItemClick\", \"keydown\", \"keypress\", \"keyup\"], [\"buttonList\", \"\"]], template: function DropDownButtonComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelementStart(0, \"button\", 0, 1);\n ɵngcc0.ɵɵlistener(\"click\", function DropDownButtonComponent_Template_button_click_0_listener() { return ctx.openPopup(); })(\"focus\", function DropDownButtonComponent_Template_button_focus_0_listener() { return ctx.handleFocus(); })(\"blur\", function DropDownButtonComponent_Template_button_blur_0_listener() { return ctx.onButtonBlur(); });\n ɵngcc0.ɵɵprojection(2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, DropDownButtonComponent_ng_template_3_Template, 2, 6, \"ng-template\", null, 2, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵelementContainer(5, null, 3);\n } if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-active\", ctx.active);\n ɵngcc0.ɵɵproperty(\"tabindex\", ctx.componentTabIndex)(\"disabled\", ctx.disabled)(\"icon\", ctx.icon)(\"iconClass\", ctx.iconClass)(\"imageUrl\", ctx.imageUrl)(\"ngClass\", ctx.buttonClass)(\"size\", ctx.size)(\"shape\", ctx.shape)(\"rounded\", ctx.rounded)(\"fillMode\", ctx.fillMode)(\"themeColor\", ctx.fillMode ? ctx.themeColor : null);\n ɵngcc0.ɵɵattribute(\"aria-disabled\", ctx.disabled)(\"aria-expanded\", ctx.openState)(\"aria-haspopup\", true)(\"aria-owns\", ctx.listId);\n } }, directives: [ButtonDirective, ɵngcc2.NgClass, ListComponent], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DropDownButtonComponent.prototype, \"icon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DropDownButtonComponent.prototype, \"iconClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DropDownButtonComponent.prototype, \"imageUrl\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], DropDownButtonComponent.prototype, \"popupSettings\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DropDownButtonComponent.prototype, \"textField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], DropDownButtonComponent.prototype, \"disabled\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], DropDownButtonComponent.prototype, \"data\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DropDownButtonComponent.prototype, \"size\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DropDownButtonComponent.prototype, \"shape\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DropDownButtonComponent.prototype, \"rounded\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], DropDownButtonComponent.prototype, \"fillMode\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DropDownButtonComponent.prototype, \"themeColor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DropDownButtonComponent.prototype, \"buttonClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], DropDownButtonComponent.prototype, \"tabIndex\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DropDownButtonComponent.prototype, \"itemClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DropDownButtonComponent.prototype, \"open\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DropDownButtonComponent.prototype, \"close\", void 0);\n__decorate([\n Output('focus'),\n __metadata(\"design:type\", EventEmitter)\n], DropDownButtonComponent.prototype, \"onFocus\", void 0);\n__decorate([\n Output('blur'),\n __metadata(\"design:type\", EventEmitter)\n], DropDownButtonComponent.prototype, \"onBlur\", void 0);\n__decorate([\n HostBinding('class.k-focus'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DropDownButtonComponent.prototype, \"focused\", null);\n__decorate([\n HostBinding('class.k-dropdown-button'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DropDownButtonComponent.prototype, \"widgetClasses\", null);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], DropDownButtonComponent.prototype, \"dir\", null);\n__decorate([\n ContentChild(ButtonItemTemplateDirective, { static: false }),\n __metadata(\"design:type\", ButtonItemTemplateDirective)\n], DropDownButtonComponent.prototype, \"itemTemplate\", void 0);\n__decorate([\n ViewChild('button', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], DropDownButtonComponent.prototype, \"button\", void 0);\n__decorate([\n ViewChild('buttonList', { static: false }),\n __metadata(\"design:type\", ListComponent)\n], DropDownButtonComponent.prototype, \"buttonList\", void 0);\n__decorate([\n ViewChild('popupTemplate', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], DropDownButtonComponent.prototype, \"popupTemplate\", void 0);\n__decorate([\n ViewChild('container', { read: ViewContainerRef, static: true }),\n __metadata(\"design:type\", ViewContainerRef)\n], DropDownButtonComponent.prototype, \"container\", void 0);\n__decorate([\n HostListener('keydown', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], DropDownButtonComponent.prototype, \"keydown\", null);\n__decorate([\n HostListener('keypress', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], DropDownButtonComponent.prototype, \"keypress\", null);\n__decorate([\n HostListener('keyup', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], DropDownButtonComponent.prototype, \"keyup\", null);\n__decorate([\n HostListener('mousedown', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], DropDownButtonComponent.prototype, \"mousedown\", null);\n__decorate([\n HostListener('mouseup', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], DropDownButtonComponent.prototype, \"mouseup\", null);\nDropDownButtonComponent = __decorate([ __metadata(\"design:paramtypes\", [FocusService,\n NavigationService,\n ElementRef,\n NgZone,\n PopupService,\n ElementRef,\n LocalizationService,\n ChangeDetectorRef])\n], DropDownButtonComponent);\n\n/**\n * @hidden\n *\n * The exported package module.\n *\n * The package exports:\n * - `DropDownButtonComponent`—The DropDownButtonComponent component class.\n */\nlet DropDownButtonModule = class DropDownButtonModule {\n};\nDropDownButtonModule.ɵfac = function DropDownButtonModule_Factory(t) { return new (t || DropDownButtonModule)(); };\nDropDownButtonModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: DropDownButtonModule });\nDropDownButtonModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule, PopupModule, ListModule, ButtonModule], ListModule] });\n\n/**\n * Displays a Chip that represents an input, attribute or an action.\n */\nlet ChipComponent = class ChipComponent {\n constructor(element, renderer, ngZone, localizationService) {\n this.element = element;\n this.renderer = renderer;\n this.ngZone = ngZone;\n this.localizationService = localizationService;\n /**\n * Specifies the selected state of the Chip.\n * @default false\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 * @default false\n */\n this.removable = false;\n /**\n * If set to `true`, the Chip will be disabled.\n * @default false\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 /**\n * Fires each time the user clicks the content of the Chip.\n */\n this.contentClick = new EventEmitter();\n this.tabIndex = 0;\n this.hostClass = true;\n this._size = 'medium';\n this._rounded = 'medium';\n this._fillMode = 'solid';\n this._themeColor = 'base';\n this.focused = false;\n validatePackage(packageMetadata);\n this.direction = localizationService.rtl ? 'rtl' : 'ltr';\n }\n /**\n * The size property specifies the padding of the Chip\n * ([see example]({% slug appearance_chip %}#toc-size)).\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `null`\n */\n set size(size) {\n this.handleClasses(size, 'size');\n this._size = size;\n }\n get size() {\n return this._size;\n }\n /**\n * The rounded property specifies the border radius of the Chip\n * ([see example]({% slug appearance_chip %}#toc-rounded)).\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `'full'`\n * * `null`\n */\n set rounded(rounded) {\n this.handleClasses(rounded, 'rounded');\n this._rounded = rounded;\n }\n get rounded() {\n return this._rounded;\n }\n /**\n * The fillMode property specifies the background and border styles of the Chip\n * ([see example]({% slug appearance_chip %}#toc-fillMode)).\n *\n * The possible values are:\n * * `'solid'` (default)\n * * `'outline'`\n * * `null`\n */\n set fillMode(fillMode) {\n this.handleClasses(fillMode, 'fillMode');\n this._fillMode = fillMode;\n }\n get fillMode() {\n return this._fillMode;\n }\n /**\n * The Chip allows you to specify predefined theme colors.\n * The theme color will be applied as a background and border color while also amending the text color accordingly\n * ([see example]({% slug appearance_chip %}#toc-themeColor)).\n *\n * The possible values are:\n * * `'base'` (default)\n * * `'info'`\n * * `'success'`\n * * `'warning'`\n * * `'error'`\n * * `null`\n */\n set themeColor(themeColor) {\n this.handleThemeColor(themeColor);\n this._themeColor = themeColor;\n }\n get themeColor() {\n return this._themeColor;\n }\n get ariaChecked() {\n return this.selected;\n }\n get hasIconClass() {\n return this.icon || this.iconClass || this.avatarClass ? 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 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 if (this.detachDomEvents) {\n this.detachDomEvents();\n }\n }\n ngAfterViewInit() {\n const chip = this.element.nativeElement;\n const stylingOptions = ['size', 'rounded', 'fillMode'];\n stylingOptions.forEach(input => {\n this.handleClasses(this[input], input);\n });\n this.attachElementEventHandlers(chip);\n }\n /**\n * @hidden\n */\n get kendoIconClass() {\n this.verifyIconSettings([this.iconClass, this.avatarClass]);\n return `k-i-${this.icon}`;\n }\n /**\n * @hidden\n */\n get customIconClass() {\n this.verifyIconSettings([this.icon, this.avatarClass]);\n return `${this.iconClass}`;\n }\n /**\n * @hidden\n */\n get chipAvatarClass() {\n this.verifyIconSettings([this.icon, this.iconClass]);\n return `${this.avatarClass}`;\n }\n /**\n * @hidden\n */\n get removeIconClass() {\n if (this.removeIcon) {\n return `${this.removeIcon}`;\n }\n return `k-i-close-circle`;\n }\n /**\n * Focuses the Chip component.\n */\n focus() {\n if (isDocumentAvailable()) {\n this.element.nativeElement.focus();\n }\n }\n /**\n * Blurs the Chip component.\n */\n blur() {\n if (isDocumentAvailable()) {\n this.element.nativeElement.blur();\n }\n }\n /**\n * @hidden\n */\n onRemoveClick(e) {\n if (this.removable) {\n this.remove.emit({ sender: this, originalEvent: e });\n }\n }\n attachElementEventHandlers(chip) {\n this.ngZone.runOutsideAngular(() => {\n const focusListener = this.renderer.listen(chip, 'focus', () => {\n this.renderer.addClass(chip, 'k-focus');\n });\n const blurListener = this.renderer.listen(chip, 'blur', () => {\n this.renderer.removeClass(chip, 'k-focus');\n });\n const contentClickListener = this.renderer.listen(chip, 'click', (e) => {\n const isRemoveClicked = closest(e.target, '.k-chip-remove-action');\n if (!isRemoveClicked) {\n this.ngZone.run(() => {\n this.contentClick.emit({ sender: this, originalEvent: e });\n });\n }\n });\n this.detachDomEvents = () => {\n focusListener();\n blurListener();\n contentClickListener();\n };\n });\n }\n /**\n * @hidden\n */\n verifyIconSettings(iconsToCheck) {\n if (isDevMode()) {\n if (iconsToCheck.filter(icon => icon !== null && icon !== undefined).length > 0) {\n this.renderer.removeClass(this.element.nativeElement, 'k-chip-has-icon');\n throw new Error('Invalid configuration: Having multiple icons is not supported. Only a single icon on a chip can be displayed.');\n }\n }\n }\n handleClasses(value, input) {\n const elem = this.element.nativeElement;\n const classes = getStylingClasses('chip', input, this[input], value);\n if (input === 'fillMode') {\n this.handleThemeColor(this.themeColor, this[input], value);\n }\n if (classes.toRemove) {\n this.renderer.removeClass(elem, classes.toRemove);\n }\n if (classes.toAdd) {\n this.renderer.addClass(elem, classes.toAdd);\n }\n }\n handleThemeColor(value, prevFillMode, fillMode) {\n const elem = this.element.nativeElement;\n const removeFillMode = prevFillMode ? prevFillMode : this.fillMode;\n const addFillMode = fillMode ? fillMode : this.fillMode;\n const themeColorClass = getThemeColorClasses('chip', removeFillMode, addFillMode, this.themeColor, value);\n this.renderer.removeClass(elem, themeColorClass.toRemove);\n if (addFillMode !== null && fillMode !== null) {\n if (themeColorClass.toAdd) {\n this.renderer.addClass(elem, themeColorClass.toAdd);\n }\n }\n }\n};\nChipComponent.ɵfac = function ChipComponent_Factory(t) { return new (t || ChipComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nChipComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ChipComponent, selectors: [[\"kendo-chip\"]], hostVars: 14, hostBindings: function ChipComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"tabindex\", ctx.tabIndex)(\"dir\", ctx.direction)(\"aria-checked\", ctx.ariaChecked)(\"aria-disabled\", ctx.disabledClass);\n ɵngcc0.ɵɵclassProp(\"k-chip\", ctx.hostClass)(\"k-chip-has-icon\", ctx.hasIconClass)(\"k-disabled\", ctx.disabledClass)(\"k-selected\", ctx.selectedClass)(\"k-focus\", ctx.focusedClass);\n } }, inputs: { selected: \"selected\", removable: \"removable\", disabled: \"disabled\", size: \"size\", rounded: \"rounded\", fillMode: \"fillMode\", themeColor: \"themeColor\", label: \"label\", icon: \"icon\", iconClass: \"iconClass\", avatarClass: \"avatarClass\", removeIcon: \"removeIcon\" }, outputs: { remove: \"remove\", contentClick: \"contentClick\" }, features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.chip'\n }\n ])], ngContentSelectors: _c9, decls: 8, vars: 6, consts: [[\"class\", \"k-chip-icon k-icon\", 3, \"ngClass\", 4, \"ngIf\"], [\"class\", \"k-chip-icon\", 3, \"ngClass\", 4, \"ngIf\"], [\"class\", \"k-chip-avatar k-avatar k-rounded-full\", 4, \"ngIf\"], [1, \"k-chip-content\"], [\"class\", \"k-chip-label\", 4, \"ngIf\"], [4, \"ngIf\"], [1, \"k-chip-actions\"], [\"class\", \"k-chip-action k-chip-remove-action\", 3, \"click\", 4, \"ngIf\"], [1, \"k-chip-icon\", \"k-icon\", 3, \"ngClass\"], [1, \"k-chip-icon\", 3, \"ngClass\"], [1, \"k-chip-avatar\", \"k-avatar\", \"k-rounded-full\"], [1, \"k-avatar-image\", 3, \"ngClass\"], [1, \"k-chip-label\"], [1, \"k-chip-action\", \"k-chip-remove-action\", 3, \"click\"], [1, \"k-icon\", 3, \"ngClass\"]], template: function ChipComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵtemplate(0, ChipComponent_span_0_Template, 1, 1, \"span\", 0);\n ɵngcc0.ɵɵtemplate(1, ChipComponent_span_1_Template, 1, 1, \"span\", 1);\n ɵngcc0.ɵɵtemplate(2, ChipComponent_span_2_Template, 2, 1, \"span\", 2);\n ɵngcc0.ɵɵelementStart(3, \"span\", 3);\n ɵngcc0.ɵɵtemplate(4, ChipComponent_span_4_Template, 2, 1, \"span\", 4);\n ɵngcc0.ɵɵtemplate(5, ChipComponent_ng_content_5_Template, 1, 0, \"ng-content\", 5);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(6, \"span\", 6);\n ɵngcc0.ɵɵtemplate(7, ChipComponent_span_7_Template, 2, 1, \"span\", 7);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.icon);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.iconClass);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.avatarClass);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.label);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.label);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.removable);\n } }, directives: [ɵngcc2.NgIf, ɵngcc2.NgClass], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ChipComponent.prototype, \"label\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ChipComponent.prototype, \"icon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ChipComponent.prototype, \"iconClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ChipComponent.prototype, \"avatarClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ChipComponent.prototype, \"selected\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ChipComponent.prototype, \"removable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ChipComponent.prototype, \"removeIcon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ChipComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ChipComponent.prototype, \"size\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ChipComponent.prototype, \"rounded\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ChipComponent.prototype, \"fillMode\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ChipComponent.prototype, \"themeColor\", null);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ChipComponent.prototype, \"remove\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ChipComponent.prototype, \"contentClick\", void 0);\n__decorate([\n HostBinding('attr.tabindex'),\n __metadata(\"design:type\", Number)\n], ChipComponent.prototype, \"tabIndex\", void 0);\n__decorate([\n HostBinding('attr.aria-checked'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ChipComponent.prototype, \"ariaChecked\", null);\n__decorate([\n HostBinding('class.k-chip'),\n __metadata(\"design:type\", Boolean)\n], ChipComponent.prototype, \"hostClass\", void 0);\n__decorate([\n HostBinding('class.k-chip-has-icon'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ChipComponent.prototype, \"hasIconClass\", null);\n__decorate([\n HostBinding('attr.aria-disabled'),\n HostBinding('class.k-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ChipComponent.prototype, \"disabledClass\", null);\n__decorate([\n HostBinding('class.k-selected'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ChipComponent.prototype, \"selectedClass\", null);\n__decorate([\n HostBinding('class.k-focus'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ChipComponent.prototype, \"focusedClass\", null);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String)\n], ChipComponent.prototype, \"direction\", void 0);\nChipComponent = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n Renderer2,\n NgZone,\n LocalizationService])\n], ChipComponent);\n\nlet ChipListComponent = class ChipListComponent {\n constructor(localizationService, renderer, element) {\n this.localizationService = localizationService;\n this.renderer = renderer;\n this.element = element;\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.role = 'listbox';\n this._size = 'medium';\n validatePackage(packageMetadata);\n this.direction = localizationService.rtl ? 'rtl' : 'ltr';\n }\n /**\n * The size property specifies the gap between the Chips in the ChipList\n * ([see example]({% slug appearance_chiplist %}#toc-size)).\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `null`\n */\n set size(size) {\n this.handleClasses(size, 'size');\n this._size = size;\n }\n get size() {\n return this._size;\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-chip-remove-action');\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 ngAfterViewInit() {\n const stylingInputs = ['size'];\n stylingInputs.forEach(input => {\n this.handleClasses(this[input], input);\n });\n }\n ngAfterContentInit() {\n this.chips.forEach((chip) => {\n this.renderer.setAttribute(chip.element.nativeElement, 'role', 'option');\n });\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 handleClasses(value, input) {\n const elem = this.element.nativeElement;\n const classes = getStylingClasses('chip-list', input, this[input], value);\n if (classes.toRemove) {\n this.renderer.removeClass(elem, classes.toRemove);\n }\n if (classes.toAdd) {\n this.renderer.addClass(elem, classes.toAdd);\n }\n }\n};\nChipListComponent.ɵfac = function ChipListComponent_Factory(t) { return new (t || ChipListComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nChipListComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ChipListComponent, selectors: [[\"kendo-chiplist\"], [\"kendo-chip-list\"]], contentQueries: function ChipListComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, ChipComponent, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.chips = _t);\n } }, hostVars: 8, hostBindings: function ChipListComponent_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function ChipListComponent_click_HostBindingHandler($event) { return ctx.onClick($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"role\", ctx.role)(\"dir\", ctx.direction);\n ɵngcc0.ɵɵclassProp(\"k-chip-list\", ctx.hostClass)(\"k-selection-single\", ctx.single)(\"k-selection-multiple\", ctx.multiple);\n } }, inputs: { selection: \"selection\", size: \"size\" }, outputs: { selectedChange: \"selectedChange\", remove: \"remove\" }, features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.chiplist'\n }\n ])], ngContentSelectors: _c9, decls: 1, vars: 0, template: function ChipListComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵprojection(0);\n } }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-chip-list'),\n __metadata(\"design:type\", Boolean)\n], ChipListComponent.prototype, \"hostClass\", void 0);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String)\n], ChipListComponent.prototype, \"direction\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ChipListComponent.prototype, \"selection\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ChipListComponent.prototype, \"size\", null);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ChipListComponent.prototype, \"selectedChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ChipListComponent.prototype, \"remove\", void 0);\n__decorate([\n ContentChildren(ChipComponent),\n __metadata(\"design:type\", QueryList)\n], ChipListComponent.prototype, \"chips\", void 0);\n__decorate([\n HostBinding('class.k-selection-single'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ChipListComponent.prototype, \"single\", null);\n__decorate([\n HostBinding('class.k-selection-multiple'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ChipListComponent.prototype, \"multiple\", null);\n__decorate([\n HostBinding('attr.role'),\n __metadata(\"design:type\", String)\n], ChipListComponent.prototype, \"role\", void 0);\n__decorate([\n HostListener('click', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], ChipListComponent.prototype, \"onClick\", null);\nChipListComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService,\n Renderer2,\n ElementRef])\n], ChipListComponent);\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 */\nlet ChipModule = class ChipModule {\n};\nChipModule.ɵfac = function ChipModule_Factory(t) { return new (t || ChipModule)(); };\nChipModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: ChipModule });\nChipModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule]] });\n\n/**\n * @hidden\n */\nfunction getAnchorAlign(fabAlign, rtl) {\n let align = { horizontal: (rtl ? 'right' : 'left'), vertical: 'bottom' };\n if (fabAlign.horizontal === 'end') {\n align.horizontal = rtl ? 'left' : 'right';\n }\n if (fabAlign.vertical === 'bottom') {\n align.vertical = 'top';\n }\n if (fabAlign.vertical === 'bottom' && fabAlign.horizontal === 'end') {\n align.horizontal = rtl ? 'left' : 'right';\n align.vertical = 'top';\n }\n return align;\n}\n/**\n * @hidden\n */\nfunction getPopupAlign(fabAlign, rtl) {\n let align = { horizontal: (rtl ? 'right' : 'left'), vertical: 'top' };\n if (fabAlign.horizontal === 'end') {\n align.horizontal = rtl ? 'left' : 'right';\n }\n if (fabAlign.vertical === 'bottom') {\n align.vertical = 'bottom';\n }\n if (fabAlign.vertical === 'bottom' && fabAlign.horizontal === 'end') {\n align.horizontal = rtl ? 'left' : 'right';\n align.vertical = 'bottom';\n }\n return align;\n}\n\n/**\n * @hidden\n */\nfunction openAnimation(animationSettings) {\n const isBottom = animationSettings.align.vertical === 'bottom';\n const duration = animationSettings.duration;\n const gap = animationSettings.gap;\n return sequence([\n query(`.k-fab-item`, [\n style({ opacity: 0, transform: `translateY(${isBottom ? '8px' : '-8px'})` }),\n stagger(gap, [animate(`${duration}ms ease-in`, style({ opacity: '*', transform: 'translateY(0)' }))])\n ], { optional: true })\n ]);\n}\n/**\n * @hidden\n */\nfunction closeAnimation(animationSettings) {\n const isBottom = animationSettings.align.vertical === 'bottom';\n const duration = animationSettings.duration;\n const gap = animationSettings.gap;\n return sequence([\n query(`.k-fab-item`, [\n style({ opacity: '*', transform: 'translateY(0)' }),\n stagger(-gap, [animate(`${duration}ms ease-in`, style({ opacity: 0, transform: `translateY(${isBottom ? '8px' : '-8px'})` }))])\n ], { optional: true })\n ]);\n}\n\n/**\n * Represents a template that defines the content of the whole dial item.\n * To define the template, nest an `` tag\n * with the `kendoDialItemTemplate` directive inside the `` tag\n * ([see example]({% slug templates_floatingactionbutton %}#toc-dial-item-template)).\n */\nlet DialItemTemplateDirective = class DialItemTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nDialItemTemplateDirective.ɵfac = function DialItemTemplateDirective_Factory(t) { return new (t || DialItemTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nDialItemTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DialItemTemplateDirective, selectors: [[\"\", \"kendoDialItemTemplate\", \"\"]] });\nDialItemTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], DialItemTemplateDirective);\n\n/**\n * Represents a template that defines the content of the FloatingActionButton.\n * To define the template, nest an `` tag\n * with the `kendoFloatingActionButtonTemplate` directive inside the `` tag\n * ([see example]({% slug templates_floatingactionbutton %}#toc-floatingactionbutton-template)).\n */\nlet FloatingActionButtonTemplateDirective = class FloatingActionButtonTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nFloatingActionButtonTemplateDirective.ɵfac = function FloatingActionButtonTemplateDirective_Factory(t) { return new (t || FloatingActionButtonTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nFloatingActionButtonTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: FloatingActionButtonTemplateDirective, selectors: [[\"\", \"kendoFloatingActionButtonTemplate\", \"\"]] });\nFloatingActionButtonTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], FloatingActionButtonTemplateDirective);\n\nconst NAVIGATION_SETTINGS$2 = {\n useLeftRightArrows: false\n};\nconst ɵ0$2 = NAVIGATION_SETTINGS$2;\nconst NAVIGATION_SETTINGS_PROVIDER$2 = {\n provide: NAVIGATION_CONFIG,\n useValue: ɵ0$2\n};\nconst SIZE_CLASSES = {\n small: 'k-fab-sm',\n medium: 'k-fab-md',\n large: 'k-fab-lg'\n};\nconst SHAPE_CLASSES = {\n rectangle: 'k-fab-rectangle',\n square: 'k-fab-square'\n};\nconst ROUNDED_CLASSES = {\n small: 'k-rounded-sm',\n medium: 'k-rounded-md',\n large: 'k-rounded-lg',\n full: 'k-rounded-full'\n};\nconst FILLMODE_CLASS = 'k-fab-solid';\nconst DEFAULT_DURATION = 180;\nconst DEFAULT_ITEM_GAP = 90;\nconst DEFAULT_OFFSET = '16px';\n/**\n *\n * Represents the [Kendo UI FloatingActionButton component for Angular]({% slug overview_floatingactionbutton %}).\n * Used to specify the primary or the most common action in an application.\n *\n */\nlet FloatingActionButtonComponent = class FloatingActionButtonComponent {\n constructor(renderer, element, focusService, navigationService, ngZone, popupService, builder, localizationService) {\n this.renderer = renderer;\n this.element = element;\n this.focusService = focusService;\n this.navigationService = navigationService;\n this.ngZone = ngZone;\n this.popupService = popupService;\n this.builder = builder;\n this.localizationService = localizationService;\n /**\n * Specifies the positionMode of the FloatingActionButton\n * ([see example]({% slug positioning_floatingactionbutton %}#toc-positionMode)).\n *\n * * The possible values are:\n * * `absolute`—Positions the FloatingActionButton absolutely to its first positioned parent element.\n * * `fixed` (Default)—Positions the FloatingActionButton relative to the viewport. It always stays in the same place even if the page is scrolled.\n */\n this.positionMode = 'fixed';\n /**\n * Specifies the animation settings of the FloatingActionButton dial items.\n * ([see example]({% slug dialitems_floatingactionbutton %}#toc-animation)).\n *\n * The possible values are:\n * * Boolean\n * * (Default) `true`—Applies the default [`DialItemAnimation`]({% slug api_buttons_dialitemanimation %}) settings.\n * * `false`\n * * `DialItemAnimation`\n * * `duration`—Specifies the animation duration in milliseconds for each dial item. Defaults to `180ms`.\n * * `gap`—Specifies the animation duration gap in milliseconds after each dial item is animated. Defaults to `90ms`.\n */\n this.dialItemAnimation = true;\n /**\n * Specifies the [`tabIndex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the FloatingActionButton.\n */\n this.tabIndex = 0;\n /**\n * Specifies the collection of the dial items that will be rendered in the FloatingActionButton popup.\n */\n this.dialItems = [];\n /**\n * Fires each time the FloatingActionButton gets blurred.\n */\n this.onBlur = new EventEmitter();\n /**\n * Fires each time the FloatingActionButton gets focused.\n */\n this.onFocus = new EventEmitter();\n /**\n * Fires each time a dial item is clicked.\n */\n this.dialItemClick = 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 * ([more information and example]({% slug overview_floatingactionbutton %}#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_floatingactionbutton %}#toc-events)).\n */\n this.close = new EventEmitter();\n /**\n * @hidden\n */\n this.id = `k-${guid()}`;\n this._themeColor = 'primary';\n this._size = 'medium';\n this._shape = 'rectangle';\n this._disabled = false;\n this._align = { horizontal: 'end', vertical: 'bottom' };\n this._offset = { x: DEFAULT_OFFSET, y: DEFAULT_OFFSET };\n this._rounded = 'full';\n this.subscriptions = new Subscription();\n this.rtl = false;\n this.animationEnd = new EventEmitter();\n this.initialSetup = true;\n validatePackage(packageMetadata);\n this.subscribeNavigationEvents();\n this.subscriptions.add(this.localizationService.changes.subscribe(({ rtl }) => {\n this.rtl = rtl;\n this.direction = this.rtl ? 'rtl' : 'ltr';\n }));\n }\n get fixedClass() {\n return this.positionMode === 'fixed';\n }\n get absoluteClass() {\n return this.positionMode === 'absolute';\n }\n /**\n * Specifies the theme color of the FloatingActionButton\n * ([see example]({% slug appearance_floatingactionbutton %}#toc-themeColor)).\n * The theme color will be applied as background color of the component.\n *\n * The possible values are:\n * * `'primary'` (Default)—Applies coloring based on the `primary` theme color.\n * * `'secondary'`—Applies coloring based on the `secondary` theme color.\n * * `'tertiary'`— Applies coloring based on the `tertiary` theme color.\n * * `'info'`—Applies coloring based on the `info` theme color.\n * * `'success'`— Applies coloring based on the `success` theme color.\n * * `'warning'`— Applies coloring based on the `warning` theme color.\n * * `'error'`— Applies coloring based on the `error` theme color.\n * * `'dark'`— Applies coloring based on the `dark` theme color.\n * * `'light'`— Applies coloring based on the `light` theme color.\n * * `'inverse'`— Applies coloring based on the `inverse` theme color.\n */\n set themeColor(themeColor) {\n this.handleClasses(themeColor, 'themeColor');\n this._themeColor = themeColor;\n }\n get themeColor() {\n return this._themeColor;\n }\n /**\n * Specifies the size of the FloatingActionButton\n * ([see example]({% slug appearance_floatingactionbutton %}#toc-size)).\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (Default)\n * * `'large'`\n */\n set size(size) {\n this.handleClasses(size, 'size');\n this._size = size;\n }\n get size() {\n return this._size;\n }\n /**\n * The rounded property specifies the border radius of the FloatingActionButton.\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'`\n * * `'large'`\n * * `'full'` (default)\n * * `null`\n */\n set rounded(rounded) {\n this.handleClasses(rounded, 'rounded');\n this._rounded = rounded;\n }\n get rounded() {\n return this._rounded;\n }\n /**\n * Specifies the shape of the FloatingActionButton\n * ([see example]({% slug appearance_floatingactionbutton %}#toc-shape)).\n *\n * The possible values are:\n * * `rectangle` (Default)—Applies rectangular shape on the FloatingActionButton.\n * * `square`—Applies square shape on the FloatingActionButton.\n *\n */\n set shape(shape) {\n this.handleClasses(shape, 'shape');\n this._shape = shape;\n }\n get shape() {\n return this._shape;\n }\n /**\n * Specifies whether the FloatingActionButton is disabled.\n */\n set disabled(disabled) {\n this._disabled = disabled;\n }\n get disabled() {\n return this._disabled;\n }\n /**\n * Specifies the horizontal and vertical alignment of the FloatingActionButton\n * ([see example]({% slug positioning_floatingactionbutton %}#toc-align)).\n *\n * The possible values are:\n * * `{ horizontal: 'start'|'center'|'end', vertical: 'top'|'middle'|'bottom' }`\n *\n * The default value is:\n * * `{ horizontal: 'end', vertical: 'bottom' }`\n *\n */\n set align(align) {\n this._align = Object.assign(this._align, align);\n }\n get align() {\n return this._align;\n }\n /**\n * Specifies the horizontal and vertical offset position of the FloatingActionButton\n * ([see example]({% slug positioning_floatingactionbutton %}#toc-offset)).\n *\n * * The default value is:\n * * `{ x: '16px', y: '16px' }`\n */\n set offset(offset) {\n this._offset = Object.assign(this._offset, offset);\n this.offsetStyles();\n }\n get offset() {\n return this._offset;\n }\n /**\n * @hidden\n */\n get componentTabIndex() {\n return this.disabled ? (-1) : this.tabIndex;\n }\n ngAfterViewInit() {\n ['shape', 'size', 'rounded', 'themeColor'].forEach(option => this.handleClasses(this[option], option));\n this.renderer.addClass(this.element.nativeElement, this.alignClass());\n this.offsetStyles();\n this.initialSetup = false;\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n /**\n * Indicates whether the FloatingActionButton is currently open.\n */\n get isOpen() { return isPresent(this.popupRef); }\n /**\n * Focuses the FloatingActionButton.\n */\n focus() {\n if (isDocumentAvailable()) {\n this.button.nativeElement.focus();\n }\n }\n /**\n * Blurs the FloatingActionButton.\n */\n blur() {\n if (isDocumentAvailable()) {\n this.button.nativeElement.blur();\n }\n }\n /**\n * Toggles the visibility of the FloatingActionButton dial items popup.\n *\n * If you use the `toggleDial` method to open or close the dial items,\n * the `open` and `close` events do not fire ([more information and examples]({% slug openstate_floatingactionbutton %}#toc-events)).\n *\n * @param open - The state of dial items popup.\n */\n toggleDial(open) {\n if (this.disabled || !this.hasDialItems) {\n return;\n }\n const shouldOpen = isPresent(open) ? open : !this.isOpen;\n if (this.disabled || shouldOpen === this.isOpen) {\n return;\n }\n shouldOpen ? setTimeout(() => this.openDial()) : this.closeDial();\n }\n /**\n * @hidden\n */\n get role() {\n return (this.dialItems && this.dialItems.length) ? 'menubutton' : 'button';\n }\n /**\n * @hidden\n */\n get ariaExpanded() {\n return isPresent(this.isOpen);\n }\n /**\n * @hidden\n */\n get ariaHasPopup() {\n return isPresent(this.isOpen);\n }\n /**\n * @hidden\n */\n get iconClasses() {\n const classes = [];\n if (this.iconClass) {\n classes.push(`${this.iconClass}`);\n }\n if (this.icon) {\n classes.push(`k-fab-icon k-icon k-i-${this.icon}`);\n }\n return classes;\n }\n /**\n * @hidden\n */\n clickHandler() {\n if (this.disabled || !this.hasDialItems) {\n return;\n }\n this.ngZone.run(() => {\n const shouldOpen = !this.isOpen;\n this.toggleDialWithEvents(shouldOpen);\n });\n }\n /**\n * @hidden\n */\n keyDownHandler(event) {\n this.keyHandler(event);\n }\n /**\n * @hidden\n */\n keyHandler(event, keyEvent) {\n if (this.disabled) {\n return;\n }\n const focused = this.focusService.focused || 0;\n const keyCode = event.keyCode;\n const action = this.navigationService.process({\n altKey: event.altKey,\n current: focused,\n keyCode,\n keyEvent: keyEvent,\n max: this.dialItems ? this.dialItems.length - 1 : 0,\n min: 0,\n flipNavigation: this.align.vertical === 'bottom'\n });\n if (action !== NavigationAction.Undefined &&\n action !== NavigationAction.Tab) {\n event.preventDefault();\n }\n }\n /**\n * @hidden\n */\n onItemClick(event) {\n const item = closest(event.target, '.k-fab-item');\n if (!item) {\n return;\n }\n const index = item.getAttribute('data-fab-item-index');\n this.emitItemClick(index);\n }\n /**\n * @hidden\n */\n focusHandler() {\n if (!this.disabled) {\n this.onFocus.emit();\n }\n }\n /**\n * @hidden\n */\n blurHandler() {\n this.onBlur.emit();\n this.toggleDialWithEvents(false);\n }\n handleClasses(inputValue, input) {\n if (isPresent(this.button) && (this[input] !== inputValue || this.initialSetup)) {\n const button = this.button.nativeElement;\n const classesToRemove = {\n themeColor: `${FILLMODE_CLASS}-${this.themeColor}`,\n size: SIZE_CLASSES[this.size],\n shape: SHAPE_CLASSES[this.shape],\n rounded: ROUNDED_CLASSES[this.rounded]\n };\n const classesToAdd = {\n themeColor: inputValue ? `${FILLMODE_CLASS}-${inputValue}` : null,\n size: SIZE_CLASSES[inputValue],\n shape: SHAPE_CLASSES[inputValue],\n rounded: ROUNDED_CLASSES[inputValue]\n };\n this.renderer.removeClass(button, classesToRemove[input]);\n if (classesToAdd[input]) {\n this.renderer.addClass(button, classesToAdd[input]);\n }\n }\n }\n onEnterPressed() {\n const index = this.focusService.focused;\n this.emitItemClick(index);\n }\n emitItemClick(index) {\n const item = this.dialItems[index];\n if (item && !item.disabled) {\n const clickEventArgs = { item: item, index: index };\n this.dialItemClick.emit(clickEventArgs);\n this.toggleDialWithEvents(false);\n }\n }\n subscribeNavigationEvents() {\n this.subscriptions.add(this.navigationService.navigate.subscribe(this.onArrowKeyNavigate.bind(this)));\n this.subscriptions.add(this.navigationService.enter.subscribe(this.onNavigationEnterPress.bind(this)));\n this.subscriptions.add(merge(this.navigationService.close, this.navigationService.esc).subscribe(this.onNavigationClose.bind(this)));\n }\n onArrowKeyNavigate(index) {\n this.focusService.focus(index);\n }\n onNavigationEnterPress() {\n this.ngZone.run(() => {\n if (this.isOpen) {\n let focusedIndex = this.focusService.focused;\n const focusedItem = this.dialItems[focusedIndex];\n if (focusedItem && focusedItem.disabled) {\n return;\n }\n if (isPresent(focusedIndex) && focusedIndex !== -1) {\n this.onEnterPressed();\n return;\n }\n }\n if (!this.isOpen && isDocumentAvailable()) {\n this.toggleDialWithEvents(true);\n this.button.nativeElement.focus();\n }\n });\n }\n onNavigationClose() {\n if (this.isOpen) {\n this.ngZone.run(() => {\n this.toggleDialWithEvents(false);\n if (isDocumentAvailable()) {\n this.button.nativeElement.focus();\n }\n });\n }\n }\n alignClass() {\n return `k-pos-${this.align.vertical}-${this.align.horizontal}`;\n }\n toggleDialWithEvents(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 open ? this.openDial() : this.closeDial();\n }\n openPopup() {\n if (this.isOpen) {\n return;\n }\n const isIconFab = this.icon && !this.text;\n const rtl = this.rtl;\n const align = this.align;\n this.popupRef = this.popupService.open({\n anchor: this.element.nativeElement,\n animate: false,\n content: this.popupTemplate,\n anchorAlign: getAnchorAlign(align, rtl),\n popupAlign: getPopupAlign(align, rtl),\n popupClass: 'k-fab-popup k-popup-transparent'\n });\n const popupElement = this.popupRef.popupElement;\n this.renderer.setStyle(popupElement, 'box-shadow', 'none');\n if (isIconFab) {\n this.subscriptions.add(this.popupRef.popupOpen.subscribe(() => this.positionPopup()));\n }\n this.ngZone.runOutsideAngular(() => {\n this.popupMouseDownListener = this.renderer.listen(popupElement, 'mousedown', (event) => {\n event.preventDefault();\n });\n });\n this.popupRef.popupAnchorViewportLeave.subscribe(() => this.toggleDialWithEvents(false));\n }\n closePopup() {\n if (this.isOpen) {\n if (this.popupMouseDownListener) {\n this.popupMouseDownListener();\n }\n this.popupRef.close();\n this.popupRef = null;\n }\n }\n openDial() {\n this.openPopup();\n this.focusService.focus(0);\n if (this.dialItemAnimation && this.isValidAnimation()) {\n this.playAnimation(true);\n }\n }\n closeDial() {\n if (this.dialItemAnimation && this.isValidAnimation()) {\n this.playAnimation(false);\n this.animationEnd.pipe(take(1)).subscribe(() => this.closePopup());\n }\n else {\n this.closePopup();\n }\n }\n isValidAnimation() {\n const animation = this.dialItemAnimation;\n if (typeof animation !== 'boolean') {\n return animation.duration !== 0;\n }\n return true;\n }\n positionPopup() {\n if (this.dialItemTemplate) {\n return;\n }\n const fab = this.element.nativeElement;\n const fabWidth = fab.getBoundingClientRect().width;\n const popupEl = this.popupRef.popupElement;\n const icon = popupEl.querySelector('.k-fab-item-icon');\n if (!icon) {\n return;\n }\n const iconWidth = icon.getBoundingClientRect().width;\n const left = (fabWidth / 2) - (iconWidth / 2);\n const popupLeft = popupEl.getBoundingClientRect().left;\n const isEndAlign = this.align.horizontal === 'end';\n const leftValue = isEndAlign ? (popupLeft - left) : (left + popupLeft);\n const rtlLeftValue = isEndAlign ? (left + popupLeft) : (popupLeft - left);\n popupEl.style.left = this.rtl ? `${rtlLeftValue}px` : `${leftValue}px`;\n }\n offsetStyles() {\n const hostElement = this.element.nativeElement;\n this.renderer.setStyle(hostElement, this.horizontalPosition, this.horizontalOffset);\n this.renderer.setStyle(hostElement, this.verticalPosition, this.verticalOffset);\n }\n get hasDialItems() {\n return isPresent(this.dialItems) && this.dialItems.length !== 0;\n }\n /**\n * Gets the CSS prop name of the selected vertical position (`top`/`bottom`);\n */\n get verticalPosition() {\n return {\n top: 'top',\n middle: 'top',\n bottom: 'bottom'\n }[this.align.vertical];\n }\n /**\n * Gets the offset according to the selected vertical position.\n */\n get verticalOffset() {\n if (this.align.vertical === 'middle') {\n return this.offset.y === DEFAULT_OFFSET ? '50%' : `calc(50% + ${this.offset.y})`;\n }\n return this.offset.y;\n }\n /**\n * Gets the CSS prop name of the selected horizontal position (`left`/`right`);\n */\n get horizontalPosition() {\n const { horizontal } = this.align;\n return {\n end: this.rtl ? 'left' : 'right',\n center: 'left',\n start: this.rtl ? 'right' : 'left'\n }[horizontal];\n }\n /**\n * Gets the offset according to the selected horizontal position.\n */\n get horizontalOffset() {\n if (this.align.horizontal === 'center') {\n return this.offset.x === DEFAULT_OFFSET ? '50%' : `calc(50% + ${this.offset.x})`;\n }\n return this.offset.x;\n }\n playerFor(element, animation) {\n const factory = this.builder.build(animation);\n return factory.create(element);\n }\n playAnimation(open) {\n const durationSettings = this.durationSettings();\n const animationSettings = {\n duration: durationSettings.duration,\n gap: durationSettings.gap,\n align: this.align\n };\n const animation = open ? openAnimation(animationSettings) : closeAnimation(animationSettings);\n let player = this.playerFor(this.popupRef.popupElement, animation);\n player.play();\n player.onDone(() => {\n if (player) {\n this.animationEnd.emit();\n player.destroy();\n player = null;\n }\n });\n }\n durationSettings() {\n return {\n duration: this.animationDuration(),\n gap: this.animationGap()\n };\n }\n animationGap() {\n const animation = this.dialItemAnimation;\n if (typeof animation !== 'boolean' && isPresent(animation.gap)) {\n return animation.gap;\n }\n return DEFAULT_ITEM_GAP;\n }\n animationDuration() {\n const animation = this.dialItemAnimation;\n if (typeof animation !== 'boolean' && isPresent(animation.duration)) {\n return animation.duration;\n }\n return DEFAULT_DURATION;\n }\n};\nFloatingActionButtonComponent.ɵfac = function FloatingActionButtonComponent_Factory(t) { return new (t || FloatingActionButtonComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(FocusService), ɵngcc0.ɵɵdirectiveInject(NavigationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc3.PopupService), ɵngcc0.ɵɵdirectiveInject(ɵngcc4.AnimationBuilder), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nFloatingActionButtonComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: FloatingActionButtonComponent, selectors: [[\"kendo-floatingactionbutton\"]], contentQueries: function FloatingActionButtonComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, DialItemTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, FloatingActionButtonTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.dialItemTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.fabTemplate = _t.first);\n } }, viewQuery: function FloatingActionButtonComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c3, 7);\n ɵngcc0.ɵɵviewQuery(_c5, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.button = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.popupTemplate = _t.first);\n } }, hostVars: 5, hostBindings: function FloatingActionButtonComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"dir\", ctx.direction);\n ɵngcc0.ɵɵclassProp(\"k-pos-fixed\", ctx.fixedClass)(\"k-pos-absolute\", ctx.absoluteClass);\n } }, inputs: { positionMode: \"positionMode\", dialItemAnimation: \"dialItemAnimation\", tabIndex: \"tabIndex\", dialItems: \"dialItems\", themeColor: \"themeColor\", size: \"size\", rounded: \"rounded\", shape: \"shape\", disabled: \"disabled\", align: \"align\", offset: \"offset\", icon: \"icon\", iconClass: \"iconClass\", buttonClass: \"buttonClass\", dialClass: \"dialClass\", text: \"text\" }, outputs: { onBlur: \"blur\", onFocus: \"focus\", dialItemClick: \"dialItemClick\", open: \"open\", close: \"close\" }, features: [ɵngcc0.ɵɵProvidersFeature([\n FocusService,\n NavigationService,\n NAVIGATION_SETTINGS_PROVIDER$2,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.floatingactionbutton'\n }\n ])], decls: 6, vars: 17, consts: [[\"type\", \"button\", 1, \"k-fab\", \"k-fab-solid\", 3, \"tabIndex\", \"ngClass\", \"disabled\", \"kendoEventsOutsideAngular\", \"scope\", \"focus\", \"blur\"], [\"button\", \"\"], [4, \"ngIf\"], [\"popupTemplate\", \"\"], [3, \"ngTemplateOutlet\"], [3, \"ngClass\", 4, \"ngIf\"], [\"class\", \"k-fab-text\", 4, \"ngIf\"], [3, \"ngClass\"], [1, \"k-fab-text\"], [\"kendoDialList\", \"\", 3, \"ngClass\", \"dialItems\", \"dialItemTemplate\", \"align\", \"click\"]], template: function FloatingActionButtonComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"button\", 0, 1);\n ɵngcc0.ɵɵlistener(\"focus\", function FloatingActionButtonComponent_Template_button_focus_0_listener() { return ctx.focusHandler(); })(\"blur\", function FloatingActionButtonComponent_Template_button_blur_0_listener() { return ctx.blurHandler(); });\n ɵngcc0.ɵɵtemplate(2, FloatingActionButtonComponent_2_Template, 1, 1, null, 2);\n ɵngcc0.ɵɵtemplate(3, FloatingActionButtonComponent_ng_container_3_Template, 3, 2, \"ng-container\", 2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(4, FloatingActionButtonComponent_ng_template_4_Template, 1, 5, \"ng-template\", null, 3, ɵngcc0.ɵɵtemplateRefExtractor);\n } if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-disabled\", ctx.disabled);\n ɵngcc0.ɵɵproperty(\"tabIndex\", ctx.componentTabIndex)(\"ngClass\", ctx.buttonClass)(\"disabled\", ctx.disabled)(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction2(14, _c11, ctx.keyDownHandler, ctx.clickHandler))(\"scope\", ctx);\n ɵngcc0.ɵɵattribute(\"id\", ctx.id)(\"role\", ctx.role)(\"aria-disabled\", ctx.disabled)(\"aria-expanded\", ctx.ariaExpanded)(\"aria-haspopup\", ctx.ariaHasPopup);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.fabTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.fabTemplate);\n } }, directives: function () { return [ɵngcc2.NgClass, ɵngcc5.EventsOutsideAngularDirective, ɵngcc2.NgIf, ɵngcc2.NgTemplateOutlet, DialListComponent]; }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-pos-fixed'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], FloatingActionButtonComponent.prototype, \"fixedClass\", null);\n__decorate([\n HostBinding('class.k-pos-absolute'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], FloatingActionButtonComponent.prototype, \"absoluteClass\", null);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String)\n], FloatingActionButtonComponent.prototype, \"direction\", void 0);\n__decorate([\n ViewChild('button', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], FloatingActionButtonComponent.prototype, \"button\", void 0);\n__decorate([\n ViewChild('popupTemplate', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], FloatingActionButtonComponent.prototype, \"popupTemplate\", void 0);\n__decorate([\n ContentChild(DialItemTemplateDirective, { static: false }),\n __metadata(\"design:type\", DialItemTemplateDirective)\n], FloatingActionButtonComponent.prototype, \"dialItemTemplate\", void 0);\n__decorate([\n ContentChild(FloatingActionButtonTemplateDirective, { static: false }),\n __metadata(\"design:type\", FloatingActionButtonTemplateDirective)\n], FloatingActionButtonComponent.prototype, \"fabTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], FloatingActionButtonComponent.prototype, \"themeColor\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], FloatingActionButtonComponent.prototype, \"size\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], FloatingActionButtonComponent.prototype, \"rounded\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], FloatingActionButtonComponent.prototype, \"shape\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], FloatingActionButtonComponent.prototype, \"disabled\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], FloatingActionButtonComponent.prototype, \"align\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], FloatingActionButtonComponent.prototype, \"offset\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FloatingActionButtonComponent.prototype, \"positionMode\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FloatingActionButtonComponent.prototype, \"icon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FloatingActionButtonComponent.prototype, \"iconClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], FloatingActionButtonComponent.prototype, \"buttonClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], FloatingActionButtonComponent.prototype, \"dialClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FloatingActionButtonComponent.prototype, \"text\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], FloatingActionButtonComponent.prototype, \"dialItemAnimation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], FloatingActionButtonComponent.prototype, \"tabIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], FloatingActionButtonComponent.prototype, \"dialItems\", void 0);\n__decorate([\n Output('blur'),\n __metadata(\"design:type\", EventEmitter)\n], FloatingActionButtonComponent.prototype, \"onBlur\", void 0);\n__decorate([\n Output('focus'),\n __metadata(\"design:type\", EventEmitter)\n], FloatingActionButtonComponent.prototype, \"onFocus\", void 0);\n__decorate([\n Output('dialItemClick'),\n __metadata(\"design:type\", EventEmitter)\n], FloatingActionButtonComponent.prototype, \"dialItemClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], FloatingActionButtonComponent.prototype, \"open\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], FloatingActionButtonComponent.prototype, \"close\", void 0);\nFloatingActionButtonComponent = __decorate([ __metadata(\"design:paramtypes\", [Renderer2,\n ElementRef,\n FocusService,\n NavigationService,\n NgZone,\n PopupService,\n AnimationBuilder,\n LocalizationService])\n], FloatingActionButtonComponent);\n\n/**\n * @hidden\n */\nlet DialListComponent = class DialListComponent {\n constructor(focusService, cdr) {\n this.focusService = focusService;\n this.cdr = cdr;\n this.hostClass = true;\n this.subscriptions = new Subscription();\n this.subscriptions.add(this.focusService.onFocus.subscribe(() => this.cdr.detectChanges()));\n }\n get bottomClass() {\n return this.align.vertical === 'top' || this.align.vertical === 'middle';\n }\n get topClass() {\n return this.align.vertical === 'bottom';\n }\n isFocused(index) {\n return this.focusService.isFocused(index);\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n};\nDialListComponent.ɵfac = function DialListComponent_Factory(t) { return new (t || DialListComponent)(ɵngcc0.ɵɵdirectiveInject(FocusService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nDialListComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DialListComponent, selectors: [[\"\", \"kendoDialList\", \"\"]], hostVars: 6, hostBindings: function DialListComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-fab-items\", ctx.hostClass)(\"k-fab-items-bottom\", ctx.bottomClass)(\"k-fab-items-top\", ctx.topClass);\n } }, inputs: { dialItems: \"dialItems\", dialItemTemplate: \"dialItemTemplate\", align: \"align\" }, attrs: _c12, decls: 1, vars: 1, consts: [[4, \"ngFor\", \"ngForOf\"], [\"kendoButtonFocusable\", \"\", \"kendoDialItem\", \"\", 3, \"item\", \"index\", \"dialItemTemplate\", \"isFocused\", \"ngClass\", \"ngStyle\", \"align\"]], template: function DialListComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DialListComponent_ng_container_0_Template, 2, 7, \"ng-container\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.dialItems);\n } }, directives: function () { return [ɵngcc2.NgForOf, FocusableDirective, DialItemComponent, ɵngcc2.NgClass, ɵngcc2.NgStyle]; }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-fab-items'),\n __metadata(\"design:type\", Boolean)\n], DialListComponent.prototype, \"hostClass\", void 0);\n__decorate([\n HostBinding('class.k-fab-items-bottom'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DialListComponent.prototype, \"bottomClass\", null);\n__decorate([\n HostBinding('class.k-fab-items-top'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DialListComponent.prototype, \"topClass\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], DialListComponent.prototype, \"dialItems\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], DialListComponent.prototype, \"dialItemTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DialListComponent.prototype, \"align\", void 0);\nDialListComponent = __decorate([ __metadata(\"design:paramtypes\", [FocusService, ChangeDetectorRef])\n], DialListComponent);\n\n/**\n * @hidden\n */\nlet DialItemComponent = class DialItemComponent {\n constructor(element, renderer, localisationService) {\n this.element = element;\n this.renderer = renderer;\n this.localisationService = localisationService;\n this.hostClass = true;\n this.role = 'menuitem';\n }\n get disabledClass() {\n return this.item.disabled;\n }\n get title() {\n const label = this.item.label;\n return label ? label : this.itemTitle;\n }\n get indexAttr() {\n return this.index;\n }\n get iconClasses() {\n const classes = [];\n if (this.item.iconClass) {\n classes.push(`${this.item.iconClass}`);\n }\n if (this.item.icon) {\n classes.push(`k-fab-item-icon k-icon k-i-${this.item.icon}`);\n }\n return classes;\n }\n get itemTitle() {\n const icon = this.item.icon;\n const itemTitle = this.item.itemTitle;\n return (icon && itemTitle) ? itemTitle : icon;\n }\n ngAfterViewInit() {\n const element = this.element.nativeElement;\n const rtl = this.localisationService.rtl;\n const hAlign = this.align.horizontal;\n this.renderer.addClass(element, this.getTextDirectionClass(rtl, hAlign));\n }\n getTextDirectionClass(rtl, hAlign) {\n const dir = rtl ? 'rtl' : 'ltr';\n const align = hAlign === 'end' ? 'end' : 'start';\n const directions = {\n rtl: { end: 'k-text-left', start: 'k-text-right' },\n ltr: { start: 'k-text-left', end: 'k-text-right' }\n };\n return directions[dir][align];\n }\n};\nDialItemComponent.ɵfac = function DialItemComponent_Factory(t) { return new (t || DialItemComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nDialItemComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DialItemComponent, selectors: [[\"\", \"kendoDialItem\", \"\"]], hostVars: 9, hostBindings: function DialItemComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"role\", ctx.role)(\"aria-disabled\", ctx.disabledClass)(\"title\", ctx.title)(\"aria-label\", ctx.title)(\"data-fab-item-index\", ctx.indexAttr);\n ɵngcc0.ɵɵclassProp(\"k-fab-item\", ctx.hostClass)(\"k-disabled\", ctx.disabledClass);\n } }, inputs: { cssClass: \"cssClass\", cssStyle: \"cssStyle\", isFocused: \"isFocused\", index: \"index\", item: \"item\", dialItemTemplate: \"dialItemTemplate\", align: \"align\" }, attrs: _c13, decls: 2, vars: 2, consts: [[4, \"ngIf\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"class\", \"k-fab-item-text\", 4, \"ngIf\"], [3, \"ngClass\", 4, \"ngIf\"], [1, \"k-fab-item-text\"], [3, \"ngClass\"]], template: function DialItemComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DialItemComponent_0_Template, 1, 6, null, 0);\n ɵngcc0.ɵɵtemplate(1, DialItemComponent_ng_container_1_Template, 3, 2, \"ng-container\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.dialItemTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.dialItemTemplate);\n } }, directives: [ɵngcc2.NgIf, ɵngcc2.NgTemplateOutlet, ɵngcc2.NgClass], encapsulation: 2 });\n__decorate([\n HostBinding('class.k-fab-item'),\n __metadata(\"design:type\", Boolean)\n], DialItemComponent.prototype, \"hostClass\", void 0);\n__decorate([\n HostBinding('attr.role'),\n __metadata(\"design:type\", String)\n], DialItemComponent.prototype, \"role\", void 0);\n__decorate([\n HostBinding('attr.aria-disabled'),\n HostBinding('class.k-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DialItemComponent.prototype, \"disabledClass\", null);\n__decorate([\n HostBinding('attr.title'),\n HostBinding('attr.aria-label'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], DialItemComponent.prototype, \"title\", null);\n__decorate([\n HostBinding('attr.data-fab-item-index'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], DialItemComponent.prototype, \"indexAttr\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DialItemComponent.prototype, \"cssClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DialItemComponent.prototype, \"cssStyle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DialItemComponent.prototype, \"isFocused\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DialItemComponent.prototype, \"index\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DialItemComponent.prototype, \"item\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], DialItemComponent.prototype, \"dialItemTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DialItemComponent.prototype, \"align\", void 0);\nDialItemComponent = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n Renderer2,\n LocalizationService])\n], DialItemComponent);\n\nconst exportedModules$1 = [\n FloatingActionButtonComponent,\n DialItemTemplateDirective,\n FloatingActionButtonTemplateDirective\n];\nconst declarations$1 = [\n ...exportedModules$1,\n DialListComponent,\n DialItemComponent\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the FloatingActionButton component.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the FloatingActionButton module\n * import { FloatingActionButtonModule } 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, FloatingActionButtonModule], // import FloatingActionButton module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * ```\n */\nlet FloatingActionButtonModule = class FloatingActionButtonModule {\n};\nFloatingActionButtonModule.ɵfac = function FloatingActionButtonModule_Factory(t) { return new (t || FloatingActionButtonModule)(); };\nFloatingActionButtonModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: FloatingActionButtonModule });\nFloatingActionButtonModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule, PopupModule, ListModule, EventsModule]] });\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 */\nlet ButtonsModule = class ButtonsModule {\n};\nButtonsModule.ɵfac = function ButtonsModule_Factory(t) { return new (t || ButtonsModule)(); };\nButtonsModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: ButtonsModule });\nButtonsModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [ButtonGroupModule, ButtonModule, SplitButtonModule, DropDownButtonModule, ChipModule, FloatingActionButtonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(KendoButtonService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ButtonDirective, [{\n type: Directive,\n 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]'\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: KendoButtonService, decorators: [{\n type: Optional\n }] }, { type: ɵngcc1.LocalizationService }, { type: ɵngcc0.NgZone }]; }, { toggleable: [{\n type: Input\n }], role: [{\n type: Input\n }], selectedChange: [{\n type: Output\n }], click: [{\n type: Output\n }], togglable: [{\n type: Input\n }], selected: [{\n type: Input\n }], tabIndex: [{\n type: Input\n }], icon: [{\n type: Input\n }], iconClass: [{\n type: Input\n }], imageUrl: [{\n type: Input\n }], disabled: [{\n type: Input\n }], size: [{\n type: Input\n }], rounded: [{\n type: Input\n }], fillMode: [{\n type: Input\n }], themeColor: [{\n type: Input\n }], shape: [{\n type: Input\n }], classButton: [{\n type: HostBinding,\n args: ['class.k-button']\n }], isToggleable: [{\n type: HostBinding,\n args: ['class.k-toggle-button']\n }], roleSetter: [{\n type: HostBinding,\n args: ['attr.role']\n }], classDisabled: [{\n type: HostBinding,\n args: ['attr.aria-disabled']\n }, {\n type: HostBinding,\n args: ['class.k-disabled']\n }], classActive: [{\n type: HostBinding,\n args: ['class.k-selected']\n }], getDirection: [{\n type: HostBinding,\n args: ['attr.dir']\n }], \n /**\n * @hidden\n */\n onFocus: [{\n type: HostListener,\n args: ['focus']\n }], \n /**\n * @hidden\n */\n onBlur: [{\n type: HostListener,\n args: ['blur']\n }], primary: [{\n type: Input\n }], look: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ButtonGroupComponent, [{\n type: Component,\n 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 }], function () { return [{ type: KendoButtonService }, { type: ɵngcc1.LocalizationService }, { type: ɵngcc0.ElementRef }]; }, { selection: [{\n type: Input,\n args: ['selection']\n }], navigate: [{\n type: Output\n }], tabIndex: [{\n type: Input\n }], wrapperClass: [{\n type: HostBinding,\n args: ['class.k-button-group']\n }], disabledClass: [{\n type: HostBinding,\n args: ['class.k-disabled']\n }], stretchedClass: [{\n type: HostBinding,\n args: ['class.k-button-group-stretched']\n }], getRole: [{\n type: HostBinding,\n args: ['attr.role']\n }], dir: [{\n type: HostBinding,\n args: ['attr.dir']\n }], ariaDisabled: [{\n type: HostBinding,\n args: ['attr.aria-disabled']\n }], wrapperWidth: [{\n type: HostBinding,\n args: ['style.width']\n }], wrapperTabIndex: [{\n type: HostBinding,\n args: ['attr.tabindex']\n }], \n /**\n * @hidden\n */\n keydown: [{\n type: HostListener,\n args: ['keydown', ['$event']]\n }], \n /**\n * @hidden\n */\n onFocus: [{\n type: HostListener,\n args: ['focus']\n }], \n /**\n * @hidden\n */\n focusout: [{\n type: HostListener,\n args: ['focusout', ['$event']]\n }], disabled: [{\n type: Input,\n args: ['disabled']\n }], width: [{\n type: Input,\n args: ['width']\n }], buttons: [{\n type: ContentChildren,\n args: [ButtonDirective]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ButtonModule, [{\n type: NgModule,\n args: [{\n declarations: [ButtonDirective],\n exports: [ButtonDirective]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(ButtonModule, { declarations: [ButtonDirective], exports: [ButtonDirective] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ButtonGroupModule, [{\n type: NgModule,\n args: [{\n declarations: [ButtonGroupComponent],\n exports: [ButtonGroupComponent],\n imports: [CommonModule, ButtonModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(ButtonGroupModule, { declarations: function () { return [ButtonGroupComponent]; }, imports: function () { return [CommonModule, ButtonModule]; }, exports: function () { return [ButtonGroupComponent]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ButtonItemTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoDropDownButtonItemTemplate],[kendoSplitButtonItemTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ListComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-button-list',\n template: `\n
    \n
  • \n \n \n \n \n \n \n \n \n \n \n {{ getText(dataItem) }}\n \n \n \n
  • \n
\n `\n }]\n }], function () { return []; }, { onItemClick: [{\n type: Output\n }], onItemBlur: [{\n type: Output\n }], size: [{\n type: Input\n }], data: [{\n type: Input\n }], textField: [{\n type: Input\n }], itemTemplate: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FocusService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FocusableDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoButtonFocusable]'\n }]\n }], function () { return [{ type: FocusService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }]; }, { index: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TemplateContextDirective, [{\n type: Directive,\n args: [{\n selector: '[templateContext]' // tslint:disable-line:directive-selector\n }]\n }], function () { return [{ type: ɵngcc0.ViewContainerRef }]; }, { templateContext: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ListModule, [{\n type: NgModule,\n args: [{\n declarations: [EXPORTED_DIRECTIVES],\n exports: [EXPORTED_DIRECTIVES],\n imports: [CommonModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(ListModule, { declarations: function () { return [ListComponent, FocusableDirective, ButtonItemTemplateDirective, TemplateContextDirective]; }, imports: function () { return [CommonModule]; }, exports: function () { return [ListComponent, FocusableDirective, ButtonItemTemplateDirective, TemplateContextDirective]; } }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigationService, [{\n type: Injectable\n }], function () { return [{ type: Object, decorators: [{\n type: Inject,\n args: [NAVIGATION_CONFIG]\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SplitButtonComponent, [{\n type: Component,\n 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 \n \n \n {{ text }}\n \n \n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: FocusService }, { type: NavigationService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }, { type: ɵngcc3.PopupService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc1.LocalizationService }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.Renderer2 }]; }, { text: [{\n type: Input\n }], icon: [{\n type: Input\n }], iconClass: [{\n type: Input\n }], type: [{\n type: Input\n }], imageUrl: [{\n type: Input\n }], size: [{\n type: Input\n }], themeColor: [{\n type: Input\n }], tabIndex: [{\n type: Input\n }], arrowButtonIcon: [{\n type: Input\n }], buttonClick: [{\n type: Output\n }], itemClick: [{\n type: Output\n }], onFocus: [{\n type: Output,\n args: ['focus']\n }], onBlur: [{\n type: Output,\n args: ['blur']\n }], open: [{\n type: Output\n }], close: [{\n type: Output\n }], rounded: [{\n type: Input\n }], fillMode: [{\n type: Input\n }], disabled: [{\n type: Input\n }], popupSettings: [{\n type: Input\n }], data: [{\n type: Input\n }], isFocused: [{\n type: HostBinding,\n args: ['class.k-focus']\n }], widgetClasses: [{\n type: HostBinding,\n args: ['class.k-split-button']\n }, {\n type: HostBinding,\n args: ['class.k-button-group']\n }], dir: [{\n type: HostBinding,\n args: ['attr.dir']\n }], \n /**\n * @hidden\n */\n keydown: [{\n type: HostListener,\n args: ['keydown', ['$event']]\n }], \n /**\n * @hidden\n */\n keypress: [{\n type: HostListener,\n args: ['keypress', ['$event']]\n }], \n /**\n * @hidden\n */\n keyup: [{\n type: HostListener,\n args: ['keyup', ['$event']]\n }], textField: [{\n type: Input\n }], buttonClass: [{\n type: Input\n }], arrowButtonClass: [{\n type: Input\n }], itemTemplate: [{\n type: ContentChild,\n args: [ButtonItemTemplateDirective, { static: false }]\n }], button: [{\n type: ViewChild,\n args: ['button', { static: true }]\n }], arrowButton: [{\n type: ViewChild,\n args: ['arrowButton', { static: true, read: ElementRef }]\n }], popupTemplate: [{\n type: ViewChild,\n args: ['popupTemplate', { static: true }]\n }], containerRef: [{\n type: ViewChild,\n args: ['container', { read: ViewContainerRef, static: true }]\n }] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LocalizedSplitButtonMessagesDirective, [{\n type: Directive,\n args: [{\n providers: [\n {\n provide: Messages,\n useExisting: forwardRef(() => LocalizedSplitButtonMessagesDirective_1)\n }\n ],\n selector: '[kendoSplitButtonLocalizedMessages]'\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SplitButtonCustomMessagesComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: Messages,\n useExisting: forwardRef(() => SplitButtonCustomMessagesComponent_1)\n }\n ],\n selector: 'kendo-splitbutton-messages',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SplitButtonModule, [{\n type: NgModule,\n args: [{\n declarations: [SplitButtonComponent, LocalizedSplitButtonMessagesDirective, SplitButtonCustomMessagesComponent],\n exports: [SplitButtonComponent, ListModule, LocalizedSplitButtonMessagesDirective, SplitButtonCustomMessagesComponent],\n imports: [CommonModule, PopupModule, ButtonModule, ListModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(SplitButtonModule, { declarations: function () { return [SplitButtonComponent, LocalizedSplitButtonMessagesDirective, SplitButtonCustomMessagesComponent]; }, imports: function () { return [CommonModule, PopupModule, ButtonModule, ListModule]; }, exports: function () { return [SplitButtonComponent, ListModule, LocalizedSplitButtonMessagesDirective, SplitButtonCustomMessagesComponent]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DropDownButtonComponent, [{\n type: Component,\n 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 }], function () { return [{ type: FocusService }, { type: NavigationService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }, { type: ɵngcc3.PopupService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc1.LocalizationService }, { type: ɵngcc0.ChangeDetectorRef }]; }, { icon: [{\n type: Input\n }], iconClass: [{\n type: Input\n }], imageUrl: [{\n type: Input\n }], size: [{\n type: Input\n }], shape: [{\n type: Input\n }], rounded: [{\n type: Input\n }], themeColor: [{\n type: Input\n }], tabIndex: [{\n type: Input\n }], itemClick: [{\n type: Output\n }], open: [{\n type: Output\n }], close: [{\n type: Output\n }], onFocus: [{\n type: Output,\n args: ['focus']\n }], onBlur: [{\n type: Output,\n args: ['blur']\n }], popupSettings: [{\n type: Input\n }], disabled: [{\n type: Input\n }], data: [{\n type: Input\n }], fillMode: [{\n type: Input\n }], focused: [{\n type: HostBinding,\n args: ['class.k-focus']\n }], widgetClasses: [{\n type: HostBinding,\n args: ['class.k-dropdown-button']\n }], dir: [{\n type: HostBinding,\n args: ['attr.dir']\n }], \n /**\n * @hidden\n */\n keydown: [{\n type: HostListener,\n args: ['keydown', ['$event']]\n }], \n /**\n * @hidden\n */\n keypress: [{\n type: HostListener,\n args: ['keypress', ['$event']]\n }], \n /**\n * @hidden\n */\n keyup: [{\n type: HostListener,\n args: ['keyup', ['$event']]\n }], \n /**\n * @hidden\n */\n mousedown: [{\n type: HostListener,\n args: ['mousedown', ['$event']]\n }], \n /**\n * @hidden\n */\n mouseup: [{\n type: HostListener,\n args: ['mouseup', ['$event']]\n }], textField: [{\n type: Input\n }], buttonClass: [{\n type: Input\n }], itemTemplate: [{\n type: ContentChild,\n args: [ButtonItemTemplateDirective, { static: false }]\n }], button: [{\n type: ViewChild,\n args: ['button', { static: true }]\n }], buttonList: [{\n type: ViewChild,\n args: ['buttonList', { static: false }]\n }], popupTemplate: [{\n type: ViewChild,\n args: ['popupTemplate', { static: true }]\n }], container: [{\n type: ViewChild,\n args: ['container', { read: ViewContainerRef, static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DropDownButtonModule, [{\n type: NgModule,\n args: [{\n declarations: [DropDownButtonComponent],\n exports: [DropDownButtonComponent, ListModule],\n imports: [CommonModule, PopupModule, ListModule, ButtonModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(DropDownButtonModule, { declarations: function () { return [DropDownButtonComponent]; }, imports: function () { return [CommonModule, PopupModule, ListModule, ButtonModule]; }, exports: function () { return [DropDownButtonComponent, ListModule]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ChipComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-chip',\n template: `\n \n \n\n \n \n\n \n \n \n\n \n \n {{ label }}\n \n \n \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 }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.NgZone }, { type: ɵngcc1.LocalizationService }]; }, { selected: [{\n type: Input\n }], removable: [{\n type: Input\n }], disabled: [{\n type: Input\n }], remove: [{\n type: Output\n }], contentClick: [{\n type: Output\n }], tabIndex: [{\n type: HostBinding,\n args: ['attr.tabindex']\n }], hostClass: [{\n type: HostBinding,\n args: ['class.k-chip']\n }], direction: [{\n type: HostBinding,\n args: ['attr.dir']\n }], size: [{\n type: Input\n }], rounded: [{\n type: Input\n }], fillMode: [{\n type: Input\n }], themeColor: [{\n type: Input\n }], ariaChecked: [{\n type: HostBinding,\n args: ['attr.aria-checked']\n }], hasIconClass: [{\n type: HostBinding,\n args: ['class.k-chip-has-icon']\n }], disabledClass: [{\n type: HostBinding,\n args: ['attr.aria-disabled']\n }, {\n type: HostBinding,\n args: ['class.k-disabled']\n }], selectedClass: [{\n type: HostBinding,\n args: ['class.k-selected']\n }], focusedClass: [{\n type: HostBinding,\n args: ['class.k-focus']\n }], label: [{\n type: Input\n }], icon: [{\n type: Input\n }], iconClass: [{\n type: Input\n }], avatarClass: [{\n type: Input\n }], removeIcon: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ChipListComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-chiplist, kendo-chip-list',\n template: `\n \n `,\n providers: [\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.chiplist'\n }\n ]\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }]; }, { hostClass: [{\n type: HostBinding,\n args: ['class.k-chip-list']\n }], selection: [{\n type: Input\n }], selectedChange: [{\n type: Output\n }], remove: [{\n type: Output\n }], role: [{\n type: HostBinding,\n args: ['attr.role']\n }], direction: [{\n type: HostBinding,\n args: ['attr.dir']\n }], size: [{\n type: Input\n }], single: [{\n type: HostBinding,\n args: ['class.k-selection-single']\n }], multiple: [{\n type: HostBinding,\n args: ['class.k-selection-multiple']\n }], \n /**\n * @hidden\n */\n onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }], chips: [{\n type: ContentChildren,\n args: [ChipComponent]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ChipModule, [{\n type: NgModule,\n args: [{\n declarations: [declarations],\n exports: [exportedModules],\n imports: [CommonModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(ChipModule, { declarations: function () { return [ChipComponent, ChipListComponent]; }, imports: function () { return [CommonModule]; }, exports: function () { return [ChipComponent, ChipListComponent]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DialItemTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoDialItemTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FloatingActionButtonTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoFloatingActionButtonTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FloatingActionButtonComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-floatingactionbutton',\n providers: [\n FocusService,\n NavigationService,\n NAVIGATION_SETTINGS_PROVIDER$2,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.floatingactionbutton'\n }\n ],\n template: `\n \n \n \n\n \n \n {{ text }}\n \n \n\n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }, { type: FocusService }, { type: NavigationService }, { type: ɵngcc0.NgZone }, { type: ɵngcc3.PopupService }, { type: ɵngcc4.AnimationBuilder }, { type: ɵngcc1.LocalizationService }]; }, { positionMode: [{\n type: Input\n }], dialItemAnimation: [{\n type: Input\n }], tabIndex: [{\n type: Input\n }], dialItems: [{\n type: Input\n }], onBlur: [{\n type: Output,\n args: ['blur']\n }], onFocus: [{\n type: Output,\n args: ['focus']\n }], dialItemClick: [{\n type: Output,\n args: ['dialItemClick']\n }], open: [{\n type: Output\n }], close: [{\n type: Output\n }], direction: [{\n type: HostBinding,\n args: ['attr.dir']\n }], fixedClass: [{\n type: HostBinding,\n args: ['class.k-pos-fixed']\n }], absoluteClass: [{\n type: HostBinding,\n args: ['class.k-pos-absolute']\n }], themeColor: [{\n type: Input\n }], size: [{\n type: Input\n }], rounded: [{\n type: Input\n }], shape: [{\n type: Input\n }], disabled: [{\n type: Input\n }], align: [{\n type: Input\n }], offset: [{\n type: Input\n }], button: [{\n type: ViewChild,\n args: ['button', { static: true }]\n }], popupTemplate: [{\n type: ViewChild,\n args: ['popupTemplate', { static: true }]\n }], dialItemTemplate: [{\n type: ContentChild,\n args: [DialItemTemplateDirective, { static: false }]\n }], fabTemplate: [{\n type: ContentChild,\n args: [FloatingActionButtonTemplateDirective, { static: false }]\n }], icon: [{\n type: Input\n }], iconClass: [{\n type: Input\n }], buttonClass: [{\n type: Input\n }], dialClass: [{\n type: Input\n }], text: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DialListComponent, [{\n type: Component,\n args: [{\n selector: '[kendoDialList]',\n template: `\n \n \n \n \n `\n }]\n }], function () { return [{ type: FocusService }, { type: ɵngcc0.ChangeDetectorRef }]; }, { hostClass: [{\n type: HostBinding,\n args: ['class.k-fab-items']\n }], bottomClass: [{\n type: HostBinding,\n args: ['class.k-fab-items-bottom']\n }], topClass: [{\n type: HostBinding,\n args: ['class.k-fab-items-top']\n }], dialItems: [{\n type: Input\n }], dialItemTemplate: [{\n type: Input\n }], align: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DialItemComponent, [{\n type: Component,\n args: [{\n selector: '[kendoDialItem]',\n template: `\n \n \n\n \n {{ item.label }}\n \n \n `\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc1.LocalizationService }]; }, { hostClass: [{\n type: HostBinding,\n args: ['class.k-fab-item']\n }], role: [{\n type: HostBinding,\n args: ['attr.role']\n }], disabledClass: [{\n type: HostBinding,\n args: ['attr.aria-disabled']\n }, {\n type: HostBinding,\n args: ['class.k-disabled']\n }], title: [{\n type: HostBinding,\n args: ['attr.title']\n }, {\n type: HostBinding,\n args: ['attr.aria-label']\n }], indexAttr: [{\n type: HostBinding,\n args: ['attr.data-fab-item-index']\n }], cssClass: [{\n type: Input\n }], cssStyle: [{\n type: Input\n }], isFocused: [{\n type: Input\n }], index: [{\n type: Input\n }], item: [{\n type: Input\n }], dialItemTemplate: [{\n type: Input\n }], align: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FloatingActionButtonModule, [{\n type: NgModule,\n args: [{\n declarations: [declarations$1],\n exports: [exportedModules$1],\n imports: [CommonModule, PopupModule, ListModule, EventsModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(FloatingActionButtonModule, { declarations: function () { return [FloatingActionButtonComponent, DialItemTemplateDirective, FloatingActionButtonTemplateDirective, DialListComponent, DialItemComponent]; }, imports: function () { return [CommonModule, PopupModule, ListModule, EventsModule]; }, exports: function () { return [FloatingActionButtonComponent, DialItemTemplateDirective, FloatingActionButtonTemplateDirective]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ButtonsModule, [{\n type: NgModule,\n args: [{\n exports: [ButtonGroupModule, ButtonModule, SplitButtonModule, DropDownButtonModule, ChipModule, FloatingActionButtonModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(ButtonsModule, { exports: [ButtonGroupModule, ButtonModule, SplitButtonModule, DropDownButtonModule, ChipModule, FloatingActionButtonModule] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { KendoButtonService, DialItemComponent, DialListComponent, FocusService, FocusableDirective, ButtonItemTemplateDirective, ListButton, ListComponent, ListModule, TemplateContextDirective, NAVIGATION_CONFIG, NavigationService, LocalizedSplitButtonMessagesDirective, Messages, ButtonDirective, ButtonDirective as Button, ButtonGroupComponent, ButtonGroupComponent as ButtonGroup, ButtonGroupModule, ButtonModule, ButtonsModule, SplitButtonComponent, SplitButtonComponent as SplitButton, SplitButtonModule, SplitButtonCustomMessagesComponent, DropDownButtonComponent, DropDownButtonComponent as DropDownButton, DropDownButtonModule, ChipComponent, ChipListComponent, ChipModule, FloatingActionButtonModule, FloatingActionButtonComponent, FloatingActionButtonTemplateDirective, DialItemTemplateDirective };\n\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 { EventEmitter, Input, Output, Injectable, NgZone, Directive, Optional, TemplateRef, SimpleChange, ContentChild, Component, ChangeDetectionStrategy, ElementRef, ViewChild, ViewChildren, QueryList, isDevMode, ContentChildren, ChangeDetectorRef, Renderer2, Inject, LOCALE_ID, InjectionToken, NgModule } from '@angular/core';\nimport { BehaviorSubject, Subject, combineLatest } from 'rxjs';\nimport { auditTime, tap } from 'rxjs/operators';\nimport { validatePackage } from '@progress/kendo-licensing';\nimport { chartBaseTheme, InstanceObserver, DateCategoryAxis, DateValueAxis, DomEventsBuilder, Chart, StockChart, Sparkline } from '@progress/kendo-charts';\nimport { isDocumentAvailable, ResizeSensorModule } from '@progress/kendo-angular-common';\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@progress/kendo-angular-popup';\nimport * as ɵngcc2 from '@progress/kendo-angular-l10n';\nimport * as ɵngcc3 from '@angular/common';\nimport * as ɵngcc4 from '@progress/kendo-angular-intl';\nimport * as ɵngcc5 from '@progress/kendo-angular-common';\n\nconst _c0 = [\"content\"];\nfunction TooltipPopupComponent_ng_template_0_1_ng_template_0_Template(rf, ctx) { }\nfunction TooltipPopupComponent_ng_template_0_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, TooltipPopupComponent_ng_template_0_1_ng_template_0_Template, 0, 0, \"ng-template\", 5);\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r4.seriesTooltipTemplateRef)(\"ngTemplateOutletContext\", ctx_r4.seriesTooltipContext);\n} }\nfunction TooltipPopupComponent_ng_template_0_2_ng_template_0_Template(rf, ctx) { }\nfunction TooltipPopupComponent_ng_template_0_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, TooltipPopupComponent_ng_template_0_2_ng_template_0_Template, 0, 0, \"ng-template\", 5);\n} if (rf & 2) {\n const ctx_r5 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r5.seriesSharedTooltipTemplateRef)(\"ngTemplateOutletContext\", ctx_r5.seriesSharedTooltipContext);\n} }\nfunction TooltipPopupComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 3);\n ɵngcc0.ɵɵtemplate(1, TooltipPopupComponent_ng_template_0_1_Template, 1, 2, null, 4);\n ɵngcc0.ɵɵtemplate(2, TooltipPopupComponent_ng_template_0_2_Template, 1, 2, null, 4);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r1.popupClasses)(\"ngStyle\", ctx_r1.style);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r1.shared);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r1.shared);\n} }\nfunction TooltipPopupComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 6);\n} if (rf & 2) {\n const formattedValue_r8 = ctx.formattedValue;\n ɵngcc0.ɵɵproperty(\"innerHTML\", formattedValue_r8, ɵngcc0.ɵɵsanitizeHtml);\n} }\nfunction TooltipPopupComponent_ng_template_3_tr_4_td_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"td\");\n ɵngcc0.ɵɵelement(1, \"span\", 8);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const point_r15 = ɵngcc0.ɵɵnextContext().$implicit;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵstyleProp(\"background-color\", point_r15.series.color);\n} }\nfunction TooltipPopupComponent_ng_template_3_tr_4_td_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const point_r15 = ɵngcc0.ɵɵnextContext(2).$implicit;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(point_r15.series.name);\n} }\nfunction TooltipPopupComponent_ng_template_3_tr_4_td_2_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtext(1, \"\\u00A0\");\n ɵngcc0.ɵɵelementContainerEnd();\n} }\nfunction TooltipPopupComponent_ng_template_3_tr_4_td_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"td\");\n ɵngcc0.ɵɵtemplate(1, TooltipPopupComponent_ng_template_3_tr_4_td_2_ng_container_1_Template, 2, 1, \"ng-container\", 4);\n ɵngcc0.ɵɵtemplate(2, TooltipPopupComponent_ng_template_3_tr_4_td_2_ng_container_2_Template, 2, 0, \"ng-container\", 4);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const point_r15 = ɵngcc0.ɵɵnextContext().$implicit;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", point_r15.series.name !== undefined);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", point_r15.series.name === undefined);\n} }\nfunction TooltipPopupComponent_ng_template_3_tr_4_ng_template_4_Template(rf, ctx) { }\nfunction TooltipPopupComponent_ng_template_3_tr_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"tr\");\n ɵngcc0.ɵɵtemplate(1, TooltipPopupComponent_ng_template_3_tr_4_td_1_Template, 2, 2, \"td\", 4);\n ɵngcc0.ɵɵtemplate(2, TooltipPopupComponent_ng_template_3_tr_4_td_2_Template, 3, 2, \"td\", 4);\n ɵngcc0.ɵɵelementStart(3, \"td\");\n ɵngcc0.ɵɵtemplate(4, TooltipPopupComponent_ng_template_3_tr_4_ng_template_4_Template, 0, 0, \"ng-template\", 5);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const point_r15 = ctx.$implicit;\n const ctx_r24 = ɵngcc0.ɵɵnextContext();\n const colorMarker_r12 = ctx_r24.colorMarker;\n const nameColumn_r13 = ctx_r24.nameColumn;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", colorMarker_r12);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", nameColumn_r13);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", point_r15.template)(\"ngTemplateOutletContext\", point_r15);\n} }\nfunction TooltipPopupComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"table\")(1, \"tr\")(2, \"th\");\n ɵngcc0.ɵɵtext(3);\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵtemplate(4, TooltipPopupComponent_ng_template_3_tr_4_Template, 5, 4, \"tr\", 7);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const points_r9 = ctx.points;\n const categoryText_r10 = ctx.categoryText;\n const colspan_r11 = ctx.colspan;\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵattribute(\"colspan\", colspan_r11);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", categoryText_r10, \" \");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", points_r9);\n} }\nfunction CrosshairTooltipComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 1);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngStyle\", ctx_r1.style);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r1.value, \" \");\n} }\nfunction CrosshairTooltipsContainerComponent_kendo_chart_crosshair_tooltip_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-chart-crosshair-tooltip\", 1);\n} if (rf & 2) {\n const key_r1 = ctx.$implicit;\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"key\", key_r1)(\"popupSettings\", ctx_r0.popupSettings);\n} }\nconst _c1 = [\"surface\"];\nfunction ChartComponent_div_5_ng_template_1_Template(rf, ctx) { }\nfunction ChartComponent_div_5_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 6);\n ɵngcc0.ɵɵtemplate(1, ChartComponent_div_5_ng_template_1_Template, 0, 0, \"ng-template\", 7);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngStyle\", ctx_r1.donutCenterStyle);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.donutCenterTemplate.templateRef);\n} }\nexport { ResizeSensorComponent } from '@progress/kendo-angular-common';\nimport { PopupService, POPUP_CONTAINER, PopupModule } from '@progress/kendo-angular-popup';\nexport { PopupComponent } from '@progress/kendo-angular-popup';\nimport { LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';\nimport { IntlService } from '@progress/kendo-angular-intl';\nimport { exportImage, exportSVG } from '@progress/kendo-drawing';\nimport { CommonModule } from '@angular/common';\n\n/**\n * @hidden\n */\nconst packageMetadata = {\n name: '@progress/kendo-angular-charts',\n productName: 'Kendo UI for Angular',\n productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],\n publishDate: 1646216940,\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\n/**\n * @hidden\n */\nclass ChartComponentGenerated {\n constructor(configurationService) {\n this.configurationService = configurationService;\n /**\n * Fires when the user clicks an axis label ([see example]({% slug overview_chart_charts %}#toc-events)).\n */\n this.axisLabelClick = new EventEmitter();\n /**\n * Fires as long as the user is dragging the Chart with the mouse or through swipe gestures.\n */\n this.drag = new EventEmitter();\n /**\n * Fires when the user stops dragging the Chart.\n */\n this.dragEnd = new EventEmitter();\n /**\n * Fires when the user starts dragging the Chart.\n */\n this.dragStart = new EventEmitter();\n /**\n * Fires when the user hovers over a legend item ([see example]({% slug overview_chart_charts %}#toc-events)).\n */\n this.legendItemHover = new EventEmitter();\n /**\n * Fires when the cursor leaves a legend item.\n */\n this.legendItemLeave = new EventEmitter();\n /**\n * Fires when the user clicks a note.\n */\n this.noteClick = new EventEmitter();\n /**\n * Fires when the user hovers over a note.\n */\n this.noteHover = new EventEmitter();\n /**\n * Fires when the cursor leaves a note.\n */\n this.noteLeave = new EventEmitter();\n /**\n * Fires when a pane is rendered because the Chart:\n * * Is rendered.\n * * Performs panning or zooming.\n * * Is exported with different options.\n * The event is used to render custom visuals in the panes.\n */\n this.paneRender = new EventEmitter();\n /**\n * Fires when the user clicks the plot area ([see example]({% slug overview_chart_charts %}#toc-events)).\n * The `click` event is triggered by the `tap` and `contextmenu` events.\n * To distinguish between the original events, inspect the `e.originalEvent.type` field.\n */\n this.plotAreaClick = new EventEmitter();\n /**\n * Fires when the user hovers the plot area ([see example]({% slug overview_chart_charts %}#toc-events)).\n */\n this.plotAreaHover = new EventEmitter();\n /**\n * Fires when the cursor leaves the plot area.\n */\n this.plotAreaLeave = new EventEmitter();\n /**\n * Fires when the Chart is ready to render on screen ([see example]({% slug overview_chart_charts %}#toc-events)).\n * For example, you can use it to remove loading indicators.\n * Any changes made to the options are ignored.\n */\n this.render = new EventEmitter();\n /**\n * Fires when the user modifies the selection.\n *\n * The range units are:\n * - Generic axis—Category index (0-based).\n * - Date axis—Date instance.\n */\n this.select = new EventEmitter();\n /**\n * Fires when the user completes the modification of the selection.\n *\n * The range units are:\n * - Generic axis—Category index (0-based).\n * - Date axis—Date instance.\n */\n this.selectEnd = new EventEmitter();\n /**\n * Fires when the user starts modifying the axis selection.\n *\n * The range units are:\n * - Generic axis—Category index (0-based).\n * - Date axis—Date instance.\n */\n this.selectStart = new EventEmitter();\n /**\n * Fires when the user clicks the Chart series.\n *\n * The `click` event will be triggered by the `tap` and `contextmenu` events ([see example]({% slug overview_chart_charts %}#toc-events)).\n * To distinguish between the original events, inspect the `e.originalEvent.type` field.\n */\n this.seriesClick = new EventEmitter();\n /**\n * Fires when the user hovers the Chart series ([see example]({% slug overview_chart_charts %}#toc-events)).\n */\n this.seriesHover = new EventEmitter();\n /**\n * Fires when the cursor enters a series.\n */\n this.seriesOver = new EventEmitter();\n /**\n * Fires when the cursor leaves a series.\n */\n this.seriesLeave = new EventEmitter();\n /**\n * Fires as long as the user is zooming the Chart by using the mousewheel operation.\n */\n this.zoom = new EventEmitter();\n /**\n * Fires when the user stops zooming the Chart.\n */\n this.zoomEnd = new EventEmitter();\n /**\n * Fires when the user uses the mousewheel to zoom the Chart.\n */\n this.zoomStart = new EventEmitter();\n }\n}\nChartComponentGenerated.ɵfac = function ChartComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nChartComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ChartComponentGenerated, inputs: { pannable: \"pannable\", renderAs: \"renderAs\", seriesColors: \"seriesColors\", title: \"title\", transitions: \"transitions\", zoomable: \"zoomable\", axisDefaults: \"axisDefaults\", categoryAxis: \"categoryAxis\", chartArea: \"chartArea\", legend: \"legend\", panes: \"panes\", paneDefaults: \"paneDefaults\", plotArea: \"plotArea\", series: \"series\", seriesDefaults: \"seriesDefaults\", tooltip: \"tooltip\", valueAxis: \"valueAxis\", xAxis: \"xAxis\", yAxis: \"yAxis\" }, outputs: { axisLabelClick: \"axisLabelClick\", drag: \"drag\", dragEnd: \"dragEnd\", dragStart: \"dragStart\", legendItemHover: \"legendItemHover\", legendItemLeave: \"legendItemLeave\", noteClick: \"noteClick\", noteHover: \"noteHover\", noteLeave: \"noteLeave\", paneRender: \"paneRender\", plotAreaClick: \"plotAreaClick\", plotAreaHover: \"plotAreaHover\", plotAreaLeave: \"plotAreaLeave\", render: \"render\", select: \"select\", selectEnd: \"selectEnd\", selectStart: \"selectStart\", seriesClick: \"seriesClick\", seriesHover: \"seriesHover\", seriesOver: \"seriesOver\", seriesLeave: \"seriesLeave\", zoom: \"zoom\", zoomEnd: \"zoomEnd\", zoomStart: \"zoomStart\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ChartComponentGenerated.prototype, \"pannable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ChartComponentGenerated.prototype, \"renderAs\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], ChartComponentGenerated.prototype, \"seriesColors\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ChartComponentGenerated.prototype, \"title\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ChartComponentGenerated.prototype, \"transitions\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ChartComponentGenerated.prototype, \"zoomable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ChartComponentGenerated.prototype, \"axisDefaults\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ChartComponentGenerated.prototype, \"categoryAxis\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ChartComponentGenerated.prototype, \"chartArea\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ChartComponentGenerated.prototype, \"legend\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], ChartComponentGenerated.prototype, \"panes\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ChartComponentGenerated.prototype, \"paneDefaults\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ChartComponentGenerated.prototype, \"plotArea\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], ChartComponentGenerated.prototype, \"series\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ChartComponentGenerated.prototype, \"seriesDefaults\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ChartComponentGenerated.prototype, \"tooltip\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ChartComponentGenerated.prototype, \"valueAxis\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ChartComponentGenerated.prototype, \"xAxis\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ChartComponentGenerated.prototype, \"yAxis\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ChartComponentGenerated.prototype, \"axisLabelClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ChartComponentGenerated.prototype, \"drag\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ChartComponentGenerated.prototype, \"dragEnd\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ChartComponentGenerated.prototype, \"dragStart\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ChartComponentGenerated.prototype, \"legendItemHover\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ChartComponentGenerated.prototype, \"legendItemLeave\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ChartComponentGenerated.prototype, \"noteClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ChartComponentGenerated.prototype, \"noteHover\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ChartComponentGenerated.prototype, \"noteLeave\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ChartComponentGenerated.prototype, \"paneRender\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ChartComponentGenerated.prototype, \"plotAreaClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ChartComponentGenerated.prototype, \"plotAreaHover\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ChartComponentGenerated.prototype, \"plotAreaLeave\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ChartComponentGenerated.prototype, \"render\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ChartComponentGenerated.prototype, \"select\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ChartComponentGenerated.prototype, \"selectEnd\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ChartComponentGenerated.prototype, \"selectStart\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ChartComponentGenerated.prototype, \"seriesClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ChartComponentGenerated.prototype, \"seriesHover\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ChartComponentGenerated.prototype, \"seriesOver\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ChartComponentGenerated.prototype, \"seriesLeave\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ChartComponentGenerated.prototype, \"zoom\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ChartComponentGenerated.prototype, \"zoomEnd\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ChartComponentGenerated.prototype, \"zoomStart\", void 0);\n\n/**\n * @hidden\n */\nconst THROTTLE_MS = 1000 / 60;\n/**\n * @hidden\n */\nclass Change {\n constructor(key, value) {\n this.key = key;\n this.value = value;\n }\n}\n/**\n * @hidden\n */\nlet ConfigurationService = class ConfigurationService {\n constructor(ngZone) {\n this.ngZone = ngZone;\n this.store = {};\n this.source = new BehaviorSubject({});\n this.initSource();\n }\n initSource() {\n this.onFastChange$ = this.source.asObservable();\n this.onChange$ = this.onFastChange$.pipe(auditTime(THROTTLE_MS));\n }\n push(store) {\n this.store = store;\n this.next();\n }\n notify(change) {\n this.set(change.key, change.value);\n this.next();\n }\n set(field, value) {\n let store = this.store;\n const parts = field.split('.');\n let key = parts.shift();\n while (parts.length > 0) {\n store = store[key] = store[key] || {};\n key = parts.shift();\n }\n store[key] = value;\n }\n next() {\n this.ngZone.runOutsideAngular(() => {\n this.source.next(this.store);\n });\n }\n};\nConfigurationService.ɵfac = function ConfigurationService_Factory(t) { return new (t || ConfigurationService)(ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nConfigurationService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ConfigurationService, factory: function (t) { return ConfigurationService.ɵfac(t); } });\nConfigurationService = __decorate([ __metadata(\"design:paramtypes\", [NgZone])\n], ConfigurationService);\n\n/**\n * @hidden\n */\nclass BaseEvent {\n /**\n * @hidden\n */\n constructor(sender) {\n this.sender = sender;\n }\n}\n\n/**\n * @hidden\n */\nclass PreventableEvent extends BaseEvent {\n constructor() {\n super(...arguments);\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 * @hidden\n */\nclass LegendEvent extends PreventableEvent {\n /**\n * @hidden\n */\n constructor(e, sender) {\n super(sender);\n this.series = e.series;\n this.seriesIndex = e.seriesIndex;\n this.pointIndex = e.pointIndex;\n this.text = e.text;\n }\n}\n\n/**\n * Arguments for the `legendItemClick` event.\n */\nclass LegendItemClickEvent extends LegendEvent {\n /**\n * If called, the series visibility is not toggled as a result of clicking the legend item.\n */\n preventDefault() {\n super.preventDefault();\n }\n}\n\n/**\n * Arguments for the `axisLabelClick` event.\n */\nclass AxisLabelClickEvent extends BaseEvent {\n /**\n * @hidden\n */\n constructor(e, sender) {\n super(sender);\n this.axis = e.axis;\n this.dataItem = e.dataItem;\n this.index = e.index;\n this.text = e.text;\n this.value = e.value;\n }\n}\n\n/**\n * Arguments for the `drag` event.\n */\nclass DragEvent extends PreventableEvent {\n /**\n * @hidden\n */\n constructor(e, sender) {\n super(sender);\n this.axisRanges = e.axisRanges;\n this.originalEvent = e.originalEvent;\n }\n}\n\n/**\n * Arguments for the `dragEnd` event.\n */\nclass DragEndEvent extends BaseEvent {\n /**\n * @hidden\n */\n constructor(e, sender) {\n super(sender);\n this.axisRanges = e.axisRanges;\n this.originalEvent = e.originalEvent;\n }\n}\n\n/**\n * Arguments for the `dragStart` event.\n */\nclass DragStartEvent extends PreventableEvent {\n /**\n * @hidden\n */\n constructor(e, sender) {\n super(sender);\n this.axisRanges = e.axisRanges;\n this.originalEvent = e.originalEvent;\n }\n}\n\n/**\n * Arguments for the `legendItemHover` event.\n */\nclass LegendItemHoverEvent extends LegendEvent {\n /**\n * If called, the series highlight is not shown as a result of hovering over the legend item.\n */\n preventDefault() {\n super.preventDefault();\n }\n}\n\n/* tslint:disable:no-empty */\n/**\n * Arguments for the `legendItemLeave` event.\n */\nclass LegendItemLeaveEvent extends LegendEvent {\n /**\n * @hidden\n */\n preventDefault() {\n }\n /**\n * @hidden\n */\n isDefaultPrevented() {\n return false;\n }\n}\n\n/**\n * @hidden\n */\nclass NoteEvent extends BaseEvent {\n /**\n * @hidden\n */\n constructor(e, sender) {\n super(sender);\n this.category = e.category;\n this.dataItem = e.dataItem;\n this.series = e.series;\n this.value = e.value;\n this.visual = e.visual;\n }\n}\n\n/**\n * Arguments for the `noteClick` event.\n */\nclass NoteClickEvent extends NoteEvent {\n}\n\n/**\n * Arguments for the `noteHover` event.\n */\nclass NoteHoverEvent extends NoteEvent {\n}\n\n/**\n * Arguments for the `noteLeave` event.\n */\nclass NoteLeaveEvent extends NoteEvent {\n}\n\n/**\n * Arguments for the `paneRender` event.\n */\nclass PaneRenderEvent extends BaseEvent {\n /**\n * @hidden\n */\n constructor(args, sender) {\n super(sender);\n Object.assign(this, args);\n }\n}\n\n/**\n * Arguments for the `plotAreaClick` event.\n */\nclass PlotAreaClickEvent extends BaseEvent {\n /**\n * @hidden\n */\n constructor(e, sender) {\n super(sender);\n this.category = e.category;\n this.originalEvent = e.originalEvent;\n this.value = e.value;\n this.x = e.x;\n this.y = e.y;\n }\n}\n\n/**\n * Arguments for the `plotAreaHover` event.\n */\nclass PlotAreaHoverEvent extends BaseEvent {\n /**\n * @hidden\n */\n constructor(e, sender) {\n super(sender);\n this.category = e.category;\n this.originalEvent = e.originalEvent;\n this.value = e.value;\n this.x = e.x;\n this.y = e.y;\n }\n}\n\nclass PlotAreaLeaveEvent extends BaseEvent {\n}\n\n/**\n * Arguments for the `render` event.\n */\nclass RenderEvent extends BaseEvent {\n /**\n * @hidden\n */\n constructor(_e, sender) {\n super(sender);\n }\n}\n\n/**\n * Arguments for the `select` event.\n */\nclass SelectEvent extends PreventableEvent {\n /**\n * @hidden\n */\n constructor(e, sender) {\n super(sender);\n this.axis = e.axis;\n this.from = e.from;\n this.to = e.to;\n }\n}\n\n/**\n * Arguments for the `selectEnd` event.\n */\nclass SelectEndEvent extends BaseEvent {\n /**\n * @hidden\n */\n constructor(e, sender) {\n super(sender);\n this.axis = e.axis;\n this.from = e.from;\n this.to = e.to;\n }\n}\n\n/**\n * Arguments for the `selectStart` event.\n */\nclass SelectStartEvent extends PreventableEvent {\n /**\n * @hidden\n */\n constructor(e, sender) {\n super(sender);\n this.axis = e.axis;\n this.from = e.from;\n this.to = e.to;\n }\n}\n\n/**\n * Arguments for the `seriesClick` event.\n */\nclass SeriesClickEvent extends BaseEvent {\n /**\n * @hidden\n */\n constructor(e, sender) {\n super(sender);\n this.category = e.category;\n this.dataItem = e.dataItem;\n this.originalEvent = e.originalEvent;\n this.percentage = e.percentage;\n this.point = e.point;\n this.series = e.series;\n this.stackValue = e.stackValue;\n this.value = e.value;\n }\n}\n\n/**\n * @hidden\n */\nclass SeriesEvent extends PreventableEvent {\n /**\n * @hidden\n */\n constructor(e, sender) {\n super(sender);\n this.category = e.category;\n this.dataItem = e.dataItem;\n this.originalEvent = e.originalEvent;\n this.percentage = e.percentage;\n this.point = e.point;\n this.series = e.series;\n this.stackValue = e.stackValue;\n this.value = e.value;\n }\n}\n\n/**\n * Arguments for the `seriesHover` event.\n */\nclass SeriesHoverEvent extends SeriesEvent {\n}\n\n/**\n * Arguments for the `seriesOver` event.\n */\nclass SeriesOverEvent extends SeriesEvent {\n}\n\n/**\n * Arguments for the `seriesLeave` event.\n */\nclass SeriesLeaveEvent extends SeriesEvent {\n}\n\n/**\n * Arguments for the `zoom` event.\n */\nclass ZoomEvent extends PreventableEvent {\n /**\n * @hidden\n */\n constructor(e, sender) {\n super(sender);\n this.axisRanges = e.axisRanges;\n this.delta = e.delta;\n this.originalEvent = e.originalEvent;\n }\n}\n\n/**\n * Arguments for the `zoomEnd` event.\n */\nclass ZoomEndEvent extends BaseEvent {\n /**\n * @hidden\n */\n constructor(e, sender) {\n super(sender);\n this.axisRanges = e.axisRanges;\n this.originalEvent = e.originalEvent;\n }\n}\n\n/**\n * Arguments for the `zoomStart` event.\n */\nclass ZoomStartEvent extends PreventableEvent {\n /**\n * @hidden\n */\n constructor(e, sender) {\n super(sender);\n this.axisRanges = e.axisRanges;\n this.originalEvent = e.originalEvent;\n }\n}\n\nconst EVENT_MAP = {\n axisLabelClick: AxisLabelClickEvent,\n drag: DragEvent,\n dragEnd: DragEndEvent,\n dragStart: DragStartEvent,\n legendItemHover: LegendItemHoverEvent,\n legendItemLeave: LegendItemLeaveEvent,\n noteClick: NoteClickEvent,\n noteHover: NoteHoverEvent,\n noteLeave: NoteLeaveEvent,\n paneRender: PaneRenderEvent,\n plotAreaClick: PlotAreaClickEvent,\n plotAreaHover: PlotAreaHoverEvent,\n plotAreaLeave: PlotAreaLeaveEvent,\n render: RenderEvent,\n select: SelectEvent,\n selectEnd: SelectEndEvent,\n selectStart: SelectStartEvent,\n seriesClick: SeriesClickEvent,\n seriesHover: SeriesHoverEvent,\n seriesOver: SeriesOverEvent,\n seriesLeave: SeriesLeaveEvent,\n zoom: ZoomEvent,\n zoomEnd: ZoomEndEvent,\n zoomStart: ZoomStartEvent\n};\n/**\n * @hidden\n */\nclass InstanceEventService {\n create(name, args, sender) {\n if (EVENT_MAP[name]) {\n return new EVENT_MAP[name](args, sender);\n }\n }\n}\nInstanceEventService.ɵfac = function InstanceEventService_Factory(t) { return new (t || InstanceEventService)(); };\nInstanceEventService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: InstanceEventService, factory: InstanceEventService.ɵfac });\n\n/**\n * A directive which selects a [template]({{ site.data.urls.angular['templatesyntax'] }})\n * within the `` component for the\n * [Donut center template]({% slug donut_seriestypes_charts %}).\n *\n * @example\n * ```ts\n * import { Component } from '@angular/core';\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n *

22.5%

\n * of which renewables\n *
\n * \n * \n * \n * \n * \n *
\n * `\n * })\n * export class AppComponent {\n * public data: any[] = [{\n * kind: 'Hydroelectric', share: 0.175\n * }, {\n * kind: 'Nuclear', share: 0.238\n * }, {\n * kind: 'Coal', share: 0.118\n * }, {\n * kind: 'Solar', share: 0.052\n * }, {\n * kind: 'Wind', share: 0.225\n * }, {\n * kind: 'Other', share: 0.192\n * }];\n * }\n *\n * ```\n */\nlet DonutCenterTemplateDirective = class DonutCenterTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nDonutCenterTemplateDirective.ɵfac = function DonutCenterTemplateDirective_Factory(t) { return new (t || DonutCenterTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nDonutCenterTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DonutCenterTemplateDirective, selectors: [[\"\", \"kendoChartDonutCenterTemplate\", \"\"]] });\nDonutCenterTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], DonutCenterTemplateDirective);\n\n/**\n * @hidden\n */\nclass ItemChange {\n constructor(sender, options) {\n this.sender = sender;\n this.options = options;\n }\n}\n/**\n * @hidden\n */\nlet CollectionService = class CollectionService {\n constructor() {\n this.source = new Subject();\n this.onItemChange$ = this.source.asObservable();\n }\n notify(change) {\n this.source.next(change);\n }\n};\nCollectionService.ɵfac = function CollectionService_Factory(t) { return new (t || CollectionService)(); };\nCollectionService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: CollectionService, factory: function (t) { return CollectionService.ɵfac(t); } });\nCollectionService = __decorate([ __metadata(\"design:paramtypes\", [])\n], CollectionService);\n\n/**\n * @hidden\n */\nfunction copyChanges(changes, options) {\n for (const propertyName in changes) {\n if (!changes.hasOwnProperty(propertyName)) {\n continue;\n }\n const value = changes[propertyName].currentValue;\n if (value === undefined) {\n delete options[propertyName];\n }\n else {\n options[propertyName] = value;\n }\n }\n}\n\n/**\n * @hidden\n */\nfunction toSimpleChanges(changes) {\n const result = {};\n for (const propertyName in changes) {\n if (!changes.hasOwnProperty(propertyName)) {\n continue;\n }\n result[propertyName] = new SimpleChange(null, changes[propertyName], false);\n }\n return result;\n}\n\n/**\n * @hidden\n */\nclass CollectionItemComponent {\n constructor(configurationService, collectionService) {\n this.configurationService = configurationService;\n this.collectionService = collectionService;\n this.options = {};\n this.subscription = configurationService.onFastChange$.subscribe(store => {\n this.options = store;\n this.notify();\n });\n }\n ngOnChanges(changes) {\n const store = this.configurationService.store;\n copyChanges(changes, store);\n this.configurationService.push(store);\n }\n /**\n * Updates the component fields with the specified values and refreshes the Chart.\n *\n * Use this method when the configuration values cannot be set through the template.\n *\n * @example\n * ```ts-no-run\n * item.notifyChanges({ visible: true });\n * ```\n *\n * @param changes An object containing the updated input fields.\n */\n notifyChanges(changes) {\n this.ngOnChanges(toSimpleChanges(changes));\n }\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n notify() {\n if (!this.collectionService) {\n return;\n }\n this.collectionService.notify(new ItemChange(this, this.options));\n }\n}\nCollectionItemComponent.ɵfac = function CollectionItemComponent_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nCollectionItemComponent.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CollectionItemComponent, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n\n/**\n * @hidden\n */\nclass SeriesItemComponentGenerated extends CollectionItemComponent {\n constructor(configurationService, collectionService) {\n super(configurationService, collectionService);\n this.configurationService = configurationService;\n this.collectionService = collectionService;\n }\n}\nSeriesItemComponentGenerated.ɵfac = function SeriesItemComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nSeriesItemComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SeriesItemComponentGenerated, inputs: { aggregate: \"aggregate\", autoFit: \"autoFit\", axis: \"axis\", border: \"border\", categoryAxis: \"categoryAxis\", categoryField: \"categoryField\", closeField: \"closeField\", color: \"color\", colorField: \"colorField\", connectors: \"connectors\", currentField: \"currentField\", dashType: \"dashType\", data: \"data\", downColor: \"downColor\", downColorField: \"downColorField\", dynamicHeight: \"dynamicHeight\", dynamicSlope: \"dynamicSlope\", errorHighField: \"errorHighField\", errorLowField: \"errorLowField\", explodeField: \"explodeField\", field: \"field\", fromField: \"fromField\", gap: \"gap\", highField: \"highField\", holeSize: \"holeSize\", line: \"line\", lowField: \"lowField\", lowerField: \"lowerField\", margin: \"margin\", maxSize: \"maxSize\", mean: \"mean\", meanField: \"meanField\", median: \"median\", medianField: \"medianField\", minSize: \"minSize\", missingValues: \"missingValues\", name: \"name\", neckRatio: \"neckRatio\", negativeColor: \"negativeColor\", negativeValues: \"negativeValues\", noteTextField: \"noteTextField\", opacity: \"opacity\", openField: \"openField\", outliersField: \"outliersField\", overlay: \"overlay\", padding: \"padding\", q1Field: \"q1Field\", q3Field: \"q3Field\", segmentSpacing: \"segmentSpacing\", size: \"size\", sizeField: \"sizeField\", spacing: \"spacing\", stack: \"stack\", startAngle: \"startAngle\", style: \"style\", summaryField: \"summaryField\", target: \"target\", toField: \"toField\", type: \"type\", upperField: \"upperField\", visible: \"visible\", visibleInLegend: \"visibleInLegend\", visibleInLegendField: \"visibleInLegendField\", visual: \"visual\", width: \"width\", whiskers: \"whiskers\", xAxis: \"xAxis\", xErrorHighField: \"xErrorHighField\", xErrorLowField: \"xErrorLowField\", xField: \"xField\", yAxis: \"yAxis\", yErrorHighField: \"yErrorHighField\", yErrorLowField: \"yErrorLowField\", yField: \"yField\", zIndex: \"zIndex\", errorBars: \"errorBars\", extremes: \"extremes\", highlight: \"highlight\", labels: \"labels\", markers: \"markers\", notes: \"notes\", outliers: \"outliers\", tooltip: \"tooltip\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesItemComponentGenerated.prototype, \"aggregate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SeriesItemComponentGenerated.prototype, \"autoFit\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"axis\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesItemComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"categoryAxis\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"categoryField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"closeField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesItemComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"colorField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesItemComponentGenerated.prototype, \"connectors\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"currentField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"dashType\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], SeriesItemComponentGenerated.prototype, \"data\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"downColor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"downColorField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SeriesItemComponentGenerated.prototype, \"dynamicHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SeriesItemComponentGenerated.prototype, \"dynamicSlope\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"errorHighField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"errorLowField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"explodeField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"field\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"fromField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SeriesItemComponentGenerated.prototype, \"gap\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"highField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SeriesItemComponentGenerated.prototype, \"holeSize\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesItemComponentGenerated.prototype, \"line\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"lowField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"lowerField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesItemComponentGenerated.prototype, \"margin\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SeriesItemComponentGenerated.prototype, \"maxSize\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesItemComponentGenerated.prototype, \"mean\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"meanField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesItemComponentGenerated.prototype, \"median\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"medianField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SeriesItemComponentGenerated.prototype, \"minSize\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"missingValues\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"name\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SeriesItemComponentGenerated.prototype, \"neckRatio\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"negativeColor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesItemComponentGenerated.prototype, \"negativeValues\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"noteTextField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SeriesItemComponentGenerated.prototype, \"opacity\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"openField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"outliersField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesItemComponentGenerated.prototype, \"overlay\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SeriesItemComponentGenerated.prototype, \"padding\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"q1Field\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"q3Field\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SeriesItemComponentGenerated.prototype, \"segmentSpacing\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SeriesItemComponentGenerated.prototype, \"size\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"sizeField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SeriesItemComponentGenerated.prototype, \"spacing\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesItemComponentGenerated.prototype, \"stack\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SeriesItemComponentGenerated.prototype, \"startAngle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"style\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"summaryField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesItemComponentGenerated.prototype, \"target\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"toField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"type\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"upperField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SeriesItemComponentGenerated.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SeriesItemComponentGenerated.prototype, \"visibleInLegend\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"visibleInLegendField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], SeriesItemComponentGenerated.prototype, \"visual\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SeriesItemComponentGenerated.prototype, \"width\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesItemComponentGenerated.prototype, \"whiskers\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"xAxis\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"xErrorHighField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"xErrorLowField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"xField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"yAxis\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"yErrorHighField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"yErrorLowField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesItemComponentGenerated.prototype, \"yField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SeriesItemComponentGenerated.prototype, \"zIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesItemComponentGenerated.prototype, \"errorBars\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesItemComponentGenerated.prototype, \"extremes\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesItemComponentGenerated.prototype, \"highlight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesItemComponentGenerated.prototype, \"labels\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesItemComponentGenerated.prototype, \"markers\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesItemComponentGenerated.prototype, \"notes\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesItemComponentGenerated.prototype, \"outliers\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesItemComponentGenerated.prototype, \"tooltip\", void 0);\n\n/**\n * @hidden\n */\nclass SettingsComponent {\n constructor(configKey, configurationService) {\n this.configKey = configKey;\n this.configurationService = configurationService;\n this.store = {};\n if (configKey === undefined) {\n throw new Error('Configuration key not set');\n }\n }\n ngOnDestroy() {\n this.store = undefined;\n this.notify();\n }\n ngOnChanges(changes) {\n copyChanges(changes, this.store);\n this.notify();\n }\n /**\n * Updates the component fields with the specified values and refreshes the Chart.\n *\n * Use this method when the configuration values cannot be set through the template.\n *\n * @example\n * ```ts-no-run\n * item.notifyChanges({ visible: true });\n * ```\n *\n * @param changes An object containing the updated input fields.\n */\n notifyChanges(changes) {\n this.ngOnChanges(toSimpleChanges(changes));\n }\n markAsVisible() {\n this.store.visible = true;\n this.notify();\n }\n notify() {\n this.configurationService.notify(new Change(this.configKey, this.store));\n }\n}\nSettingsComponent.ɵfac = function SettingsComponent_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nSettingsComponent.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SettingsComponent, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n\n/**\n * @hidden\n */\nclass SeriesTooltipComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('tooltip', configurationService);\n this.configurationService = configurationService;\n }\n}\nSeriesTooltipComponentGenerated.ɵfac = function SeriesTooltipComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nSeriesTooltipComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SeriesTooltipComponentGenerated, inputs: { background: \"background\", border: \"border\", color: \"color\", font: \"font\", format: \"format\", padding: \"padding\", visible: \"visible\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesTooltipComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesTooltipComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesTooltipComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesTooltipComponentGenerated.prototype, \"font\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesTooltipComponentGenerated.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesTooltipComponentGenerated.prototype, \"padding\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SeriesTooltipComponentGenerated.prototype, \"visible\", void 0);\n\n/**\n * The configuration options of the Chart series tooltip\n * ([see example]({% slug tooltips_chart_charts %})).\n */\nlet SeriesTooltipComponent = class SeriesTooltipComponent extends SeriesTooltipComponentGenerated {\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n this.markAsVisible();\n }\n get seriesTooltipTemplateRef() {\n return this.seriesTooltipTemplate;\n }\n};\nSeriesTooltipComponent.ɵfac = function SeriesTooltipComponent_Factory(t) { return new (t || SeriesTooltipComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nSeriesTooltipComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SeriesTooltipComponent, selectors: [[\"kendo-chart-series-item-tooltip\"]], contentQueries: function SeriesTooltipComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, TemplateRef, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.seriesTooltipTemplate = _t.first);\n } }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function SeriesTooltipComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\n__decorate([\n ContentChild(TemplateRef, { static: false }),\n __metadata(\"design:type\", TemplateRef)\n], SeriesTooltipComponent.prototype, \"seriesTooltipTemplate\", void 0);\nSeriesTooltipComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], SeriesTooltipComponent);\n\nconst toggle = (flag) => flag === undefined ? false : !flag;\n/**\n * The configuration component for a series item.\n */\nlet SeriesItemComponent = class SeriesItemComponent extends SeriesItemComponentGenerated {\n constructor(configurationService, collectionService) {\n super(configurationService, collectionService);\n this.configurationService = configurationService;\n this.collectionService = collectionService;\n }\n /**\n * Toggles the series visibility and updates the parent Chart\n * without animated transitions.\n */\n toggleVisibility() {\n this.options.visible = toggle(this.options.visible);\n this.notify();\n }\n /**\n * Toggles the visibility of a point with the given index.\n * Applicable for the Pie, Donut, and Funnel series.\n *\n * @param pointIndex - The zero-based index of the point to toggle.\n */\n togglePointVisibility(pointIndex) {\n const pv = this.options.pointVisibility = this.options.pointVisibility || {};\n pv[pointIndex] = toggle(pv[pointIndex]);\n this.notify();\n }\n get seriesTooltipTemplateRef() {\n if (this.seriesTooltip) {\n return this.seriesTooltip.seriesTooltipTemplateRef;\n }\n }\n};\nSeriesItemComponent.ɵfac = function SeriesItemComponent_Factory(t) { return new (t || SeriesItemComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService), ɵngcc0.ɵɵdirectiveInject(CollectionService)); };\nSeriesItemComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SeriesItemComponent, selectors: [[\"kendo-chart-series-item\"]], contentQueries: function SeriesItemComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, SeriesTooltipComponent, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.seriesTooltip = _t.first);\n } }, features: [ɵngcc0.ɵɵProvidersFeature([ConfigurationService]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function SeriesItemComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\n__decorate([\n ContentChild(SeriesTooltipComponent, { static: false }),\n __metadata(\"design:type\", SeriesTooltipComponent)\n], SeriesItemComponent.prototype, \"seriesTooltip\", void 0);\nSeriesItemComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService,\n CollectionService])\n], SeriesItemComponent);\n\n/**\n * Fallback theme in case the Theme Service fails\n * to read the variables from the main theme.\n *\n * @hidden\n */\nconst chartDefaultTheme = () => Object.assign({}, chartBaseTheme(), {\n axisDefaults: {\n crosshair: {\n color: 'rgba(0, 0, 0, 0.5)'\n },\n labels: {\n color: 'rgb(101, 101, 101)',\n font: '12px serif'\n },\n line: {\n color: 'rgba(0, 0, 0, 0.08)'\n },\n majorGridLines: {\n color: 'rgba(0, 0, 0, 0.08)'\n },\n minorGridLines: {\n color: 'rgba(0, 0, 0, 0.04)'\n },\n notes: {\n icon: {\n background: 'rgba(0, 0, 0, 0.5)',\n border: {\n color: 'rgba(0, 0, 0, 0.5)'\n }\n },\n line: {\n color: 'rgba(0, 0, 0, 0.5)'\n },\n label: {\n font: '14px serif'\n }\n },\n title: {\n color: 'rgb(101, 101, 101)',\n font: '14px serif'\n }\n },\n chartArea: {\n background: 'rgb(255, 255, 255)'\n },\n legend: {\n inactiveItems: {\n labels: {\n color: 'rgba(102, 102, 102, 0.5)'\n },\n markers: {\n color: 'rgba(102, 102, 102, 0.5)'\n }\n },\n labels: {\n color: 'rgb(101, 101, 101)',\n font: '14px serif'\n }\n },\n seriesDefaults: {\n boxPlot: {\n downColor: 'rgba(0, 0, 0, 0.08)',\n mean: {\n color: 'rgb(246, 246, 246)'\n },\n median: {\n color: 'rgb(246, 246, 246)'\n },\n whiskers: {\n color: 'rgb(255, 99, 88)'\n }\n },\n bullet: {\n target: {\n color: 'rgb(101, 101, 101)'\n }\n },\n candlestick: {\n downColor: 'rgb(101, 101, 101)',\n line: {\n color: 'rgb(101, 101, 101)'\n }\n },\n errorBars: {\n color: 'rgba(0, 0, 0, 0.5)'\n },\n horizontalWaterfall: {\n line: {\n color: 'rgba(0, 0, 0, 0.08)'\n }\n },\n icon: {\n border: {\n color: 'rgba(0, 0, 0, 0.08)'\n }\n },\n labels: {\n background: 'rgb(255, 255, 255)',\n color: 'rgb(101, 101, 101)',\n opacity: 0.8,\n font: '12px serif'\n },\n notes: {\n icon: {\n background: 'rgba(0, 0, 0, 0.5)',\n border: {\n color: 'rgba(0, 0, 0, 0.5)'\n }\n },\n line: {\n color: 'rgba(0, 0, 0, 0.5)'\n },\n label: {\n font: '14px serif'\n }\n },\n overlay: {\n gradient: \"none\"\n },\n verticalBoxPlot: {\n downColor: 'rgba(0, 0, 0, 0.08)',\n mean: {\n color: 'rgb(246, 246, 246)'\n },\n median: {\n color: 'rgb(246, 246, 246)'\n },\n whiskers: {\n color: 'rgb(255, 99, 88)'\n }\n },\n verticalBullet: {\n target: {\n color: 'rgb(101, 101, 101)'\n }\n },\n waterfall: {\n line: {\n color: 'rgba(0, 0, 0, 0.08)'\n }\n },\n area: {\n opacity: 0.8\n }\n },\n title: {\n color: 'rgb(101, 101, 101)',\n font: '16px serif'\n },\n seriesColors: [\n 'rgb(255, 99, 88)',\n 'rgb(255, 210, 70)',\n 'rgb(120, 210, 55)',\n 'rgb(40, 180, 200)',\n 'rgb(45, 115, 245)',\n 'rgb(170, 70, 190)'\n ]\n});\n\nconst font = (style) => `${style.fontWeight} ${style.fontSize} ${style.fontFamily}`;\nconst computedBackgroundColor = (element) => window.getComputedStyle(element).backgroundColor;\nconst letterPos = (letter) => letter.toLowerCase().charCodeAt(0) - 'a'.charCodeAt(0);\nconst seriesPos = (name) => {\n const alpha = name.match(/series-([a-z])$/);\n if (alpha !== null) {\n return letterPos(alpha[1]);\n }\n const num = name.split('--series-')[1];\n return parseInt(num, 10) - 1;\n};\nconst SERIES_COLORS = 30;\nconst seriesTemplate = () => {\n let template = `\n
\n
\n
\n
\n
\n
\n `;\n for (let i = 0; i < SERIES_COLORS; i++) {\n template += `\n
`;\n }\n return template;\n};\nconst 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 ${seriesTemplate()}\n
\n`;\n/**\n * @hidden\n */\nlet ThemeService = class ThemeService extends ConfigurationService {\n constructor(ngZone) {\n super(ngZone);\n this.loaded = false;\n }\n loadTheme() {\n if (this.loaded || !isDocumentAvailable()) {\n return;\n }\n if (!this.readTheme()) {\n this.readDefaultTheme();\n }\n this.loaded = true;\n this.next();\n }\n readTheme() {\n this.createElement();\n const available = this.queryColor('accent') !==\n this.queryColor('accent-contrast');\n try {\n if (available) {\n this.push(chartBaseTheme());\n this.setColors();\n this.setFonts();\n this.setSeriesColors();\n }\n }\n finally {\n this.destroyElement();\n }\n return available;\n }\n readDefaultTheme() {\n this.push(chartDefaultTheme());\n }\n createElement() {\n const container = this.element = document.createElement('div');\n container.style.display = 'none';\n container.innerHTML = template();\n document.body.appendChild(container);\n }\n destroyElement() {\n if (this.element) {\n document.body.removeChild(this.element);\n this.element = undefined;\n }\n }\n setStyle(key, value) {\n this.set(key, value);\n }\n setColors() {\n this.mapColor('axisDefaults.crosshair.color', 'chart-crosshair-background');\n this.mapColor('axisDefaults.labels.color', 'normal-text-color');\n this.mapColor('axisDefaults.line.color', 'chart-major-lines');\n this.mapColor('axisDefaults.majorGridLines.color', 'chart-major-lines');\n this.mapColor('axisDefaults.minorGridLines.color', 'chart-minor-lines');\n this.mapColor('axisDefaults.notes.icon.background', 'chart-notes-background');\n this.mapColor('axisDefaults.notes.icon.border.color', 'chart-notes-border');\n this.mapColor('axisDefaults.notes.line.color', 'chart-notes-lines');\n this.mapColor('axisDefaults.title.color', 'normal-text-color');\n this.mapColor('chartArea.background', 'background');\n this.mapColor('legend.inactiveItems.labels.color', 'chart-inactive');\n this.mapColor('legend.inactiveItems.markers.color', 'chart-inactive');\n this.mapColor('legend.labels.color', 'normal-text-color');\n this.mapColor('seriesDefaults.boxPlot.downColor', 'chart-major-lines');\n this.mapColor('seriesDefaults.boxPlot.mean.color', 'base');\n this.mapColor('seriesDefaults.boxPlot.median.color', 'base');\n this.mapColor('seriesDefaults.boxPlot.whiskers.color', 'accent');\n this.mapColor('seriesDefaults.bullet.target.color', 'normal-text-color');\n this.mapColor('seriesDefaults.candlestick.downColor', 'normal-text-color');\n this.mapColor('seriesDefaults.candlestick.line.color', 'normal-text-color');\n this.mapColor('seriesDefaults.errorBars.color', 'chart-error-bars-background');\n this.mapColor('seriesDefaults.horizontalWaterfall.line.color', 'chart-major-lines');\n this.mapColor('seriesDefaults.icon.border.color', 'chart-major-lines');\n this.mapColor('seriesDefaults.labels.background', 'background');\n this.mapColor('seriesDefaults.labels.color', 'normal-text-color');\n this.mapColor('seriesDefaults.notes.icon.background', 'chart-notes-background');\n this.mapColor('seriesDefaults.notes.icon.border.color', 'chart-notes-border');\n this.mapColor('seriesDefaults.notes.line.color', 'chart-notes-lines');\n this.mapColor('seriesDefaults.verticalBoxPlot.downColor', 'chart-major-lines');\n this.mapColor('seriesDefaults.verticalBoxPlot.mean.color', 'base');\n this.mapColor('seriesDefaults.verticalBoxPlot.median.color', 'base');\n this.mapColor('seriesDefaults.verticalBoxPlot.whiskers.color', 'accent');\n this.mapColor('seriesDefaults.verticalBullet.target.color', 'normal-text-color');\n this.mapColor('seriesDefaults.waterfall.line.color', 'chart-major-lines');\n this.mapColor('title.color', 'normal-text-color');\n const opacity = parseFloat(this.queryStyle('chart-area-opacity').opacity);\n if (!isNaN(opacity)) {\n this.setStyle('seriesDefaults.area.opacity', opacity);\n this.setStyle('seriesDefaults.radarArea.opacity', opacity);\n this.setStyle('seriesDefaults.verticalArea.opacity', opacity);\n this.setStyle('seriesDefaults.labels.opacity', opacity);\n }\n this.setInactiveOpacity(['area', 'verticalArea'], 'chart-area-inactive-opacity');\n this.setInactiveOpacity(['line', 'verticalLine'], 'chart-line-inactive-opacity');\n }\n setInactiveOpacity(seriesTypes, selector) {\n const inactiveOpacity = parseFloat(this.queryStyle(selector).opacity);\n if (!isNaN(inactiveOpacity) && inactiveOpacity < 1) {\n seriesTypes.forEach(type => this.setStyle(`seriesDefaults.${type}.highlight.inactiveOpacity`, inactiveOpacity));\n }\n }\n setFonts() {\n const defaultFont = font(this.queryStyle('chart-font'));\n const titleFont = font(this.queryStyle('chart-title-font'));\n const paneTitleFont = font(this.queryStyle('chart-pane-title-font'));\n const labelFont = font(this.queryStyle('chart-label-font'));\n this.setStyle('axisDefaults.labels.font', labelFont);\n this.setStyle('axisDefaults.notes.label.font', defaultFont);\n this.setStyle('axisDefaults.title.font', defaultFont);\n this.setStyle('legend.labels.font', defaultFont);\n this.setStyle('seriesDefaults.labels.font', labelFont);\n this.setStyle('seriesDefaults.notes.label.font', defaultFont);\n this.setStyle('title.font', titleFont);\n this.setStyle('paneDefaults.title.font', paneTitleFont);\n }\n setSeriesColors() {\n const element = this.element;\n const series = [].slice.call(element.querySelectorAll('.k-var--series div'));\n const unsetColor = computedBackgroundColor(element.querySelector('.k-var--series-unset'));\n const seriesColors = series.reduce((arr, el) => {\n const pos = seriesPos(el.className);\n const color = computedBackgroundColor(el);\n if (color !== unsetColor) {\n arr[pos] = color;\n }\n return arr;\n }, [] // Will populate the series colors in this array\n );\n this.setStyle('seriesColors', seriesColors);\n }\n mapColor(key, varName) {\n this.setStyle(key, this.queryColor(varName));\n }\n queryColor(varName) {\n return this.queryStyle(varName).backgroundColor;\n }\n queryStyle(varName) {\n const element = this.element.querySelector(`.k-var--${varName}`);\n return window.getComputedStyle(element);\n }\n};\nThemeService.ɵfac = function ThemeService_Factory(t) { return new (t || ThemeService)(ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nThemeService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ThemeService, factory: function (t) { return ThemeService.ɵfac(t); } });\nThemeService = __decorate([ __metadata(\"design:paramtypes\", [NgZone])\n], ThemeService);\n\n/**\n * @hidden\n */\nclass ChartInstanceObserver extends InstanceObserver {\n constructor(instance) {\n super(instance);\n this.handlerMap = {\n hideTooltip: 'onHideTooltip',\n legendItemClick: 'onLegendItemClick',\n render: 'onRender',\n showTooltip: 'onShowTooltip',\n init: 'onInit'\n };\n }\n}\n\n/**\n * @hidden\n */\nlet TooltipTemplateService = class TooltipTemplateService {\n setTemplate(template) {\n this.template = template;\n }\n getTemplate(seriesIndex) {\n if (this.seriesTemplates && this.seriesTemplates[seriesIndex]) {\n return this.seriesTemplates[seriesIndex];\n }\n return this.template;\n }\n setSeriesTemplates(seriesTemplates) {\n this.seriesTemplates = seriesTemplates;\n }\n setSharedTemplate(sharedTemplate) {\n this.sharedTemplate = sharedTemplate;\n }\n getSharedTemplate() {\n return this.sharedTemplate;\n }\n};\nTooltipTemplateService.ɵfac = function TooltipTemplateService_Factory(t) { return new (t || TooltipTemplateService)(); };\nTooltipTemplateService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: TooltipTemplateService, factory: function (t) { return TooltipTemplateService.ɵfac(t); } });\n\n/**\n * A directive that selects a [template]({{ site.data.urls.angular['templatesyntax'] }})\n * within the `` component for the\n * [series tooltip]({% slug tooltips_chart_charts %}#toc-series-tooltip).\n *\n * @example\n * ```ts\n * import { Component } from '@angular/core';\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * Value is {{value}}\n * \n * \n * \n * \n * \n * \n * \n * `\n * })\n * class AppComponent {\n * }\n *\n * ```\n */\nlet SeriesTooltipTemplateDirective = class SeriesTooltipTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nSeriesTooltipTemplateDirective.ɵfac = function SeriesTooltipTemplateDirective_Factory(t) { return new (t || SeriesTooltipTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nSeriesTooltipTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SeriesTooltipTemplateDirective, selectors: [[\"\", \"kendoChartSeriesTooltipTemplate\", \"\"]] });\nSeriesTooltipTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], SeriesTooltipTemplateDirective);\n\n/**\n * A directive that selects a [template]({{ site.data.urls.angular['templatesyntax'] }})\n * within the `` component for the\n * [shared series tooltip]({% slug tooltips_chart_charts %}#toc-shared-tooltip).\n *\n * @example\n * ```ts\n * import { Component } from '@angular/core';\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n *
{{ category }}
\n *
\n * {{ point.series.name }} : {{ point.value }}\n *
\n *
\n *
\n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n *
\n * `\n * })\n * class AppComponent {\n * }\n *\n * ```\n */\nlet SharedTooltipTemplateDirective = class SharedTooltipTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nSharedTooltipTemplateDirective.ɵfac = function SharedTooltipTemplateDirective_Factory(t) { return new (t || SharedTooltipTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nSharedTooltipTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SharedTooltipTemplateDirective, selectors: [[\"\", \"kendoChartSharedTooltipTemplate\", \"\"]] });\nSharedTooltipTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], SharedTooltipTemplateDirective);\n\n/**\n * The point that is passed to the tooltip template.\n */\nclass TooltipTemplatePoint {\n /**\n * @hidden\n */\n constructor(point, format, template) {\n this.value = point.value;\n this.category = point.category;\n this.categoryIndex = point.categoryIx;\n this.series = point.series;\n this.dataItem = point.dataItem;\n this.percentage = point.percentage;\n this.runningTotal = point.runningTotal;\n this.total = point.total;\n this.low = point.low;\n this.high = point.high;\n this.xLow = point.xLow;\n this.xHigh = point.xHigh;\n this.yLow = point.yLow;\n this.yHigh = point.yHigh;\n this.template = template;\n this.point = point;\n this.format = format;\n }\n /**\n * @hidden\n */\n get formattedValue() {\n return this.format ? this.point.formatValue(this.format) : String(this.value);\n }\n}\n\n/* tslint:disable:align no-empty */\nconst POSITION_MODE = 'absolute';\nconst COLLISION = { horizontal: \"fit\", vertical: \"fit\" };\n/**\n * @hidden\n */\nclass BaseTooltip {\n constructor(popupService, localizationService) {\n this.popupService = popupService;\n this.localizationService = localizationService;\n this.style = {};\n this.popupRef = null;\n }\n get active() {\n return this.popupRef !== null;\n }\n show(e) {\n const align = e.anchor.align;\n const offset = this.position(e.anchor.point);\n this.style = e.style;\n if (!this.popupRef) {\n this.popupRef = this.popupService.open(Object.assign({\n offset: offset,\n popupAlign: align,\n animate: this.animate,\n content: this.templateRef,\n collision: COLLISION,\n positionMode: POSITION_MODE\n }, this.popupSettings));\n if (this.localizationService.rtl) {\n this.popupRef.popupElement.setAttribute('dir', 'rtl');\n }\n this.onInit();\n }\n else {\n const popup = this.popupRef.popup.instance;\n popup.offset = offset;\n popup.popupAlign = align;\n }\n }\n hide() {\n if (this.popupRef) {\n this.popupRef.close();\n this.popupRef = null;\n }\n }\n onInit() {\n }\n ngOnDestroy() {\n this.hide();\n }\n position(offset) {\n if (!this.popupSettings || !this.popupSettings.appendTo) {\n return offset;\n }\n const appendTo = this.popupSettings.appendTo.element.nativeElement;\n console.log('appendTo', appendTo);\n const bbox = appendTo.getBoundingClientRect();\n const { scrollLeft, scrollTop } = this.scrollOffset(appendTo);\n return {\n left: offset.left - bbox.left - scrollLeft,\n top: offset.top - bbox.top - scrollTop\n };\n }\n scrollOffset(element) {\n if (!element) {\n return null;\n }\n let scrollLeft = element.scrollLeft;\n let scrollTop = element.scrollTop;\n let parent = element.parentElement;\n while (parent) {\n scrollLeft += parent.scrollLeft;\n scrollTop += parent.scrollTop;\n parent = parent.parentElement;\n }\n return { scrollLeft, scrollTop };\n }\n}\nBaseTooltip.ɵfac = function BaseTooltip_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nBaseTooltip.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: BaseTooltip });\n\n/**\n * @hidden\n */\nfunction hasParent(element, parent) {\n let current = element;\n while (current && current !== parent) {\n current = current.parentNode;\n }\n return current ? true : false;\n}\n\n/**\n * @hidden\n */\nfunction bodyFactory() {\n if (isDocumentAvailable()) {\n return new ElementRef(document.body);\n }\n}\n\nconst SHARED_TOOLTIP_CLASS = 'k-chart-shared-tooltip';\nconst TOOLTIP_CLASS = \"k-chart-tooltip\";\nconst ɵ0$2 = bodyFactory;\n// Codelyzer 2.0.0-beta2 doesn't handle inherited members\n/* tslint:disable:no-access-missing-member */\n/**\n * @hidden\n */\nlet TooltipPopupComponent = class TooltipPopupComponent extends BaseTooltip {\n constructor(popupService, templateService, localizationService, ngZone) {\n super(popupService, localizationService);\n this.popupService = popupService;\n this.templateService = templateService;\n this.localizationService = localizationService;\n this.ngZone = ngZone;\n this.seriesTooltipContext = {};\n this.seriesSharedTooltipContext = {};\n this.animate = true;\n this.wrapperClass = 'k-chart-tooltip-wrapper';\n this.leave = new EventEmitter();\n this.popupClasses = {};\n }\n show(e) {\n this.shared = e.shared;\n this.popupClasses = Object.assign({\n [SHARED_TOOLTIP_CLASS]: e.shared,\n [TOOLTIP_CLASS]: true,\n [e.className]: !!e.className\n }, this.classNames);\n if (!e.shared) {\n this.seriesTooltipContext = new TooltipTemplatePoint(e.point, e.format);\n this.seriesTooltipTemplateRef = this.pointTemplateRef(e.point);\n }\n else {\n this.seriesSharedTooltipTemplateRef = this.templateService.getSharedTemplate()\n || this.defaultSharedTooltipTemplate.templateRef;\n this.seriesSharedTooltipContext = this.sharedTemplateContext(e);\n }\n super.show(e);\n }\n containsElement(element) {\n if (this.popupRef) {\n return hasParent(element, this.popupRef.popupElement);\n }\n }\n sharedTemplateContext(e) {\n const points = e.points;\n const nameColumn = points.filter((point) => typeof point.series.name !== 'undefined').length > 0;\n const colorMarker = e.series.length > 1;\n let colspan = 1;\n if (nameColumn) {\n colspan++;\n }\n if (colorMarker) {\n colspan++;\n }\n return {\n category: e.category,\n categoryText: e.categoryText,\n colorMarker: colorMarker,\n colspan: colspan,\n nameColumn: nameColumn,\n points: this.wrapPoints(e.points, e.format)\n };\n }\n pointTemplateRef(point) {\n return this.templateService.getTemplate(point.series.index) || this.defaultSeriesTooltipTemplate.templateRef;\n }\n wrapPoints(points, format) {\n const result = [];\n for (let idx = 0; idx < points.length; idx++) {\n const point = points[idx];\n const template = this.pointTemplateRef(point);\n const pointFormat = ((point.options || {}).tooltip || {}).format || format;\n result.push(new TooltipTemplatePoint(point, pointFormat, template));\n }\n return result;\n }\n onInit() {\n this.ngZone.runOutsideAngular(() => {\n this.mouseleaveSubscription = this.popupRef.popupElement.addEventListener('mouseleave', (args) => {\n this.leave.emit(args);\n });\n });\n this.popupRef.popupElement.className += ` ${this.wrapperClass}`;\n }\n hide() {\n if (this.mouseleaveSubscription) {\n this.mouseleaveSubscription();\n this.mouseleaveSubscription = null;\n }\n super.hide();\n }\n};\nTooltipPopupComponent.ɵfac = function TooltipPopupComponent_Factory(t) { return new (t || TooltipPopupComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.PopupService), ɵngcc0.ɵɵdirectiveInject(TooltipTemplateService), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nTooltipPopupComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: TooltipPopupComponent, selectors: [[\"kendo-chart-tooltip-popup\"]], viewQuery: function TooltipPopupComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(SeriesTooltipTemplateDirective, 5);\n ɵngcc0.ɵɵviewQuery(SharedTooltipTemplateDirective, 5);\n ɵngcc0.ɵɵviewQuery(_c0, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.defaultSeriesTooltipTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.defaultSharedTooltipTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.templateRef = _t.first);\n } }, inputs: { animate: \"animate\", wrapperClass: \"wrapperClass\", classNames: \"classNames\", popupSettings: \"popupSettings\" }, outputs: { leave: \"leave\" }, features: [ɵngcc0.ɵɵProvidersFeature([PopupService, {\n provide: POPUP_CONTAINER,\n useFactory: ɵ0$2\n }]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 4, vars: 0, consts: [[\"content\", \"\"], [\"kendoChartSeriesTooltipTemplate\", \"\"], [\"kendoChartSharedTooltipTemplate\", \"\"], [3, \"ngClass\", \"ngStyle\"], [4, \"ngIf\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [3, \"innerHTML\"], [4, \"ngFor\", \"ngForOf\"], [1, \"k-chart-shared-tooltip-marker\"]], template: function TooltipPopupComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, TooltipPopupComponent_ng_template_0_Template, 3, 4, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(2, TooltipPopupComponent_ng_template_2_Template, 1, 1, \"ng-template\", 1);\n ɵngcc0.ɵɵtemplate(3, TooltipPopupComponent_ng_template_3_Template, 5, 3, \"ng-template\", 2);\n } }, directives: [ɵngcc3.NgClass, ɵngcc3.NgStyle, ɵngcc3.NgIf, ɵngcc3.NgTemplateOutlet, SeriesTooltipTemplateDirective, SharedTooltipTemplateDirective, ɵngcc3.NgForOf], encapsulation: 2 });\n__decorate([\n ViewChild(SeriesTooltipTemplateDirective, { static: false }),\n __metadata(\"design:type\", SeriesTooltipTemplateDirective)\n], TooltipPopupComponent.prototype, \"defaultSeriesTooltipTemplate\", void 0);\n__decorate([\n ViewChild(SharedTooltipTemplateDirective, { static: false }),\n __metadata(\"design:type\", SharedTooltipTemplateDirective)\n], TooltipPopupComponent.prototype, \"defaultSharedTooltipTemplate\", void 0);\n__decorate([\n ViewChild('content', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], TooltipPopupComponent.prototype, \"templateRef\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TooltipPopupComponent.prototype, \"animate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], TooltipPopupComponent.prototype, \"classNames\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], TooltipPopupComponent.prototype, \"popupSettings\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TooltipPopupComponent.prototype, \"wrapperClass\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TooltipPopupComponent.prototype, \"leave\", void 0);\nTooltipPopupComponent = __decorate([ __metadata(\"design:paramtypes\", [PopupService,\n TooltipTemplateService,\n LocalizationService,\n NgZone])\n], TooltipPopupComponent);\n\nconst ɵ0$3 = bodyFactory;\n// Codelyzer 2.0.0-beta2 doesn't handle inherited members\n/* tslint:disable:no-access-missing-member */\n/**\n * @hidden\n */\nlet CrosshairTooltipComponent = class CrosshairTooltipComponent extends BaseTooltip {\n constructor(popupService, localizationService) {\n super(popupService, localizationService);\n this.animate = false;\n }\n show(e) {\n super.show(e);\n this.value = e.value;\n this.popupRef.popup.changeDetectorRef.detectChanges();\n }\n};\nCrosshairTooltipComponent.ɵfac = function CrosshairTooltipComponent_Factory(t) { return new (t || CrosshairTooltipComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.PopupService), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nCrosshairTooltipComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CrosshairTooltipComponent, selectors: [[\"kendo-chart-crosshair-tooltip\"]], viewQuery: function CrosshairTooltipComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c0, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.templateRef = _t.first);\n } }, inputs: { key: \"key\", popupSettings: \"popupSettings\" }, features: [ɵngcc0.ɵɵProvidersFeature([PopupService, {\n provide: POPUP_CONTAINER,\n useFactory: ɵ0$3\n }]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 2, vars: 0, consts: [[\"content\", \"\"], [1, \"k-chart-tooltip\", \"k-chart-crosshair-tooltip\", 3, \"ngStyle\"]], template: function CrosshairTooltipComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, CrosshairTooltipComponent_ng_template_0_Template, 2, 2, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\n } }, directives: [ɵngcc3.NgStyle], encapsulation: 2 });\n__decorate([\n ViewChild('content', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], CrosshairTooltipComponent.prototype, \"templateRef\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CrosshairTooltipComponent.prototype, \"key\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CrosshairTooltipComponent.prototype, \"popupSettings\", void 0);\nCrosshairTooltipComponent = __decorate([ __metadata(\"design:paramtypes\", [PopupService, LocalizationService])\n], CrosshairTooltipComponent);\n\nconst AXES = [\"categoryAxis\", \"valueAxis\", \"xAxis\", \"yAxis\"];\n/**\n * @hidden\n */\nlet CrosshairTooltipsContainerComponent = class CrosshairTooltipsContainerComponent {\n /**\n * @hidden\n */\n constructor() {\n this.tooltipKeys = [];\n this.tooltipsMap = {};\n }\n show(e) {\n const tooltipComponents = this.crossahirTooltipComponents.toArray();\n const axisName = e.axisName;\n const axisIndex = e.axisIndex;\n for (let idx = 0; idx < tooltipComponents.length; idx++) {\n if (tooltipComponents[idx].key === axisName + axisIndex) {\n tooltipComponents[idx].show(e);\n break;\n }\n }\n }\n hide() {\n const tooltipComponents = this.crossahirTooltipComponents.toArray();\n for (let idx = 0; idx < tooltipComponents.length; idx++) {\n tooltipComponents[idx].hide();\n }\n }\n get active() {\n return this.tooltipKeys.length > 0;\n }\n createCrosshairTooltips(options) {\n const newMap = this.mapTooltips(options);\n const map = this.tooltipsMap;\n for (let key in map) {\n if (!newMap[key]) {\n this.removeTooltip(key);\n delete map[key];\n }\n }\n for (let key in newMap) {\n if (!map[key]) {\n map[key] = newMap[key];\n this.tooltipKeys.push(key);\n }\n }\n }\n removeTooltip(key) {\n const keys = this.tooltipKeys;\n for (let idx = 0; idx < keys.length; idx++) {\n if (keys[idx] === key) {\n keys.splice(idx, 1);\n break;\n }\n }\n }\n mapTooltips(options) {\n const map = {};\n for (let idx = 0; idx < AXES.length; idx++) {\n const tooltips = this.axesCrosshairTooltipOptions(options, AXES[idx]);\n for (let tooltipIdx = 0; tooltipIdx < tooltips.length; tooltipIdx++) {\n const tooltip = tooltips[tooltipIdx];\n map[tooltip.name + tooltip.index] = tooltip;\n }\n }\n return map;\n }\n axesCrosshairTooltipOptions(options, name) {\n const result = [];\n if (options[name]) {\n const axes = [].concat(options[name]);\n for (let idx = 0; idx < axes.length; idx++) {\n const tooltip = (axes[idx].crosshair || {}).tooltip;\n if (tooltip && tooltip.visible) {\n result.push({\n index: idx,\n name: name\n });\n }\n }\n }\n return result;\n }\n};\nCrosshairTooltipsContainerComponent.ɵfac = function CrosshairTooltipsContainerComponent_Factory(t) { return new (t || CrosshairTooltipsContainerComponent)(); };\nCrosshairTooltipsContainerComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CrosshairTooltipsContainerComponent, selectors: [[\"kendo-chart-crosshair-tooltips-container\"]], viewQuery: function CrosshairTooltipsContainerComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(CrosshairTooltipComponent, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.crossahirTooltipComponents = _t);\n } }, inputs: { popupSettings: \"popupSettings\" }, decls: 1, vars: 1, consts: [[3, \"key\", \"popupSettings\", 4, \"ngFor\", \"ngForOf\"], [3, \"key\", \"popupSettings\"]], template: function CrosshairTooltipsContainerComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, CrosshairTooltipsContainerComponent_kendo_chart_crosshair_tooltip_0_Template, 1, 2, \"kendo-chart-crosshair-tooltip\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.tooltipKeys);\n } }, directives: [ɵngcc3.NgForOf, CrosshairTooltipComponent], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CrosshairTooltipsContainerComponent.prototype, \"popupSettings\", void 0);\n__decorate([\n ViewChildren(CrosshairTooltipComponent),\n __metadata(\"design:type\", QueryList)\n], CrosshairTooltipsContainerComponent.prototype, \"crossahirTooltipComponents\", void 0);\n\nconst getTouch = (domEvent) => {\n return {\n x: {\n location: domEvent.pageX\n },\n y: {\n location: domEvent.pageY\n }\n };\n};\nconst eventArgs = (e, previousArgs) => {\n const pointers = e.pointers;\n const pointer = pointers[0];\n const xLocation = pointer.pageX;\n const yLocation = pointer.pageY;\n let distance = 0;\n if (pointers.length > 1) {\n const pointer1 = pointers[0];\n const pointer2 = pointers[1];\n distance = Math.sqrt(Math.pow(pointer1.pageX - pointer2.pageX, 2) + Math.pow(pointer1.pageY - pointer2.pageY, 2));\n }\n return {\n distance: distance,\n event: e.srcEvent,\n preventDefault: function () {\n e.preventDefault();\n },\n target: e.target,\n touches: pointers.map(getTouch),\n type: e.type,\n x: {\n delta: previousArgs ? xLocation - previousArgs.x.location : 0,\n initialDelta: e.deltaX,\n location: xLocation,\n startLocation: xLocation - e.deltaX\n },\n y: {\n delta: previousArgs ? yLocation - previousArgs.y.location : 0,\n initialDelta: e.deltaY,\n location: yLocation,\n startLocation: yLocation - e.deltaY\n }\n };\n};\nfunction shouldBindGroup(groupNames, events) {\n for (let idx = 0; idx < groupNames.length; idx++) {\n if (events[groupNames[idx]]) {\n return true;\n }\n }\n return false;\n}\nconst eventGroups = [{\n end: 'panend',\n move: 'panmove',\n start: 'panstart'\n }, {\n gesturechange: 'pinchmove',\n gestureend: 'pinchend',\n gesturestart: 'pinchstart'\n }, {\n press: 'press'\n }, {\n tap: 'tap'\n }];\n/**\n * @hidden\n */\nclass DomEvents {\n constructor(hammerInstance, events) {\n this.hammerInstance = hammerInstance;\n this.eventHandlers = {};\n this.tap = this.tap.bind(this);\n this.press = this.press.bind(this);\n this.panstart = this.panstart.bind(this);\n this.panmove = this.panmove.bind(this);\n this.panend = this.panend.bind(this);\n this.pinchstart = this.pinchstart.bind(this);\n this.pinchmove = this.pinchmove.bind(this);\n this.pinchend = this.pinchend.bind(this);\n if (events) {\n this.bind(events);\n }\n }\n tap(e) {\n this.trigger('tap', e);\n }\n press(e) {\n this.trigger('press', e);\n }\n panstart(e) {\n delete this.previous;\n this.previous = this.trigger('start', e);\n }\n panmove(e) {\n this.previous = this.trigger('move', e);\n }\n panend(e) {\n this.trigger('end', e);\n delete this.previous;\n }\n pinchstart(e) {\n this.trigger('gesturestart', e);\n }\n pinchmove(e) {\n this.trigger('gesturechange', e);\n }\n pinchend(e) {\n this.trigger('gestureend', e);\n }\n trigger(name, e) {\n const args = eventArgs(e, this.previous);\n if (this.eventHandlers[name]) {\n this.eventHandlers[name](args);\n }\n return args;\n }\n bind(events = {}) {\n this.unbind();\n this.eventHandlers = events;\n for (let idx = 0; idx < eventGroups.length; idx++) {\n const eventGroup = eventGroups[idx];\n const groupNames = Object.keys(eventGroup);\n if (shouldBindGroup(groupNames, events)) {\n for (let nameIdx = 0; nameIdx < groupNames.length; nameIdx++) {\n const name = eventGroup[groupNames[nameIdx]];\n this.hammerInstance.on(name, this[name]);\n }\n }\n }\n }\n unbind() {\n if (this.hammerInstance) {\n this.hammerInstance.off();\n }\n this.eventHandlers = {};\n }\n destroy() {\n if (this.hammerInstance) {\n this.hammerInstance.destroy();\n delete this.hammerInstance;\n }\n delete this.eventHandlers;\n }\n toggleDrag(enable) {\n this.toggle('pan', enable);\n }\n toggleZoom(enable) {\n this.toggle('pinch', enable);\n }\n toggle(recognizer, enable) {\n if (this.hammerInstance) {\n const instanceRecognizer = this.hammerInstance.get(recognizer);\n instanceRecognizer.set({\n enable: enable\n });\n }\n }\n}\n\nconst MISSING_HAMMER_MESSAGE = 'Hammerjs is not loaded.' +\n 'Solution: http://www.telerik.com/kendo-angular-ui/components/charts/troubleshooting/#toc-hammerjs-is-not-loaded';\n/**\n * @hidden\n */\nclass DomEventsBuilder$1 {\n static create(element, events) {\n if (typeof window !== 'undefined') {\n const HAMMER = window.Hammer;\n if (!HAMMER) {\n if (isDevMode()) {\n throw new Error(MISSING_HAMMER_MESSAGE);\n }\n return;\n }\n const hammerInstance = new HAMMER(element, {\n recognizers: [\n [HAMMER.Tap],\n [HAMMER.Pan],\n [HAMMER.Pinch],\n [HAMMER.Press, { time: 0 }]\n ]\n });\n return new DomEvents(hammerInstance, events);\n }\n }\n}\n\nconst dateCategoryAxisFormats = DateCategoryAxis.prototype.options.labels.dateFormats;\nconst dateValueAxisFormats = DateValueAxis.prototype.options.labels.dateFormats;\nconst dateFormats = {\n milliseconds: \"HH:mm:ss.SSS\",\n seconds: { time: 'medium' },\n minutes: { time: 'short' },\n hours: { time: 'short' },\n days: { skeleton: 'Md' },\n weeks: { skeleton: 'Md' },\n months: { skeleton: 'yyMMM' },\n years: { skeleton: 'y' }\n};\nObject.assign(dateCategoryAxisFormats, dateFormats);\nObject.assign(dateValueAxisFormats, dateFormats);\nDomEventsBuilder.register(DomEventsBuilder$1);\n\nfunction hasObservers(emitter) {\n return emitter.observers.length > 0;\n}\n/**\n * The root Chart component.\n *\n * @example\n * ```ts\n * import { Component } from '@angular/core';\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 legendVisible: boolean = true;\n * public seriesVisible: boolean = true;\n *\n * public toggleSeries(): void {\n * this.seriesVisible = !this.seriesVisible;\n * }\n *\n * public toggleLegend(): void {\n * this.legendVisible = !this.legendVisible;\n * }\n * }\n *\n * ```\n */\nlet ChartComponent = class ChartComponent extends ChartComponentGenerated {\n constructor(configurationService, themeService, element, intl, localizationService, ngZone, instanceEventService, changeDetector, renderer) {\n super(configurationService);\n this.configurationService = configurationService;\n this.themeService = themeService;\n this.element = element;\n this.intl = intl;\n this.localizationService = localizationService;\n this.ngZone = ngZone;\n this.instanceEventService = instanceEventService;\n this.changeDetector = changeDetector;\n this.renderer = renderer;\n /**\n * Fires when a legend item is clicked before the selected series visibility is toggled.\n * Can be prevented.\n */\n this.legendItemClick = new EventEmitter();\n /**\n * Limits the automatic resizing of the Chart. Sets the maximum number of times per second\n * that the component redraws its content when the size of its container changes.\n * Defaults to `10`. To disable the automatic resizing, set it to `0`.\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * \n * \n * `\n * })\n * export class AppComponent {\n * seriesData: number[] = [1, 2, 3, 5];\n * }\n * ```\n */\n this.resizeRateLimit = 10;\n this.theme = null;\n this.suppressTransitions = false;\n this.rtl = false;\n this.hostClasses = ['k-chart', 'k-widget'];\n validatePackage(packageMetadata);\n this.themeService.loadTheme();\n this.refreshWait();\n }\n ngOnInit() {\n if (this.element) {\n this.hostClasses.forEach(name => {\n this.renderer.addClass(this.element.nativeElement, name);\n });\n this.renderer.setStyle(this.element.nativeElement, 'position', 'relative');\n }\n }\n ngAfterViewInit() {\n if (this.canRender) {\n this.ngZone.runOutsideAngular(() => {\n const chartMouseleave = this.renderer.listen(this.surfaceElement.nativeElement, 'mouseleave', this.chartMouseleave.bind(this));\n this.domSubscriptions = () => {\n chartMouseleave();\n };\n });\n }\n this.setDirection();\n this.subscriptions = this.intl.changes.subscribe(this.intlChange.bind(this));\n this.subscriptions.add(this.localizationService.changes.subscribe(this.rtlChange.bind(this)));\n }\n ngAfterViewChecked() {\n if (this.instance && this.autoResize) {\n this.ngZone.runOutsideAngular(() => {\n clearTimeout(this.resizeTimeout);\n this.resizeTimeout = setTimeout(() => {\n this.resize();\n }, 0);\n });\n }\n }\n ngOnChanges(changes) {\n const store = this.configurationService.store;\n copyChanges(changes, store);\n store.popupSettings = null;\n this.configurationService.push(store);\n }\n /**\n * Updates the component fields with the specified values and refreshes the Chart.\n *\n * Use this method when the configuration values cannot be set through the template.\n *\n * @example\n * ```ts-no-run\n * chart.notifyChanges({ title: { text: 'New Title' } });\n * ```\n *\n * @param changes An object containing the updated input fields.\n */\n notifyChanges(changes) {\n this.ngOnChanges(toSimpleChanges(changes));\n }\n ngOnDestroy() {\n this.destroyed = true;\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n if (this.domSubscriptions) {\n this.domSubscriptions();\n this.domSubscriptions = null;\n }\n if (this.instance) {\n this.instance.destroy();\n this.instance = null;\n }\n if (this.subscriptions) {\n this.subscriptions.unsubscribe();\n }\n clearTimeout(this.resizeTimeout);\n clearTimeout(this.redrawTimeout);\n }\n createInstance(element, observer) {\n this.instance = new Chart(element, this.options, this.theme, {\n intlService: this.intl,\n observer: observer,\n rtl: this.rtl,\n sender: this\n });\n }\n /**\n * Exports the Chart as an image. The export operation is asynchronous and returns a promise.\n *\n * @param {ImageExportOptions} options - The parameters for the exported image.\n * @returns {Promise} - A promise that will be resolved with a PNG image encoded as a Data URI.\n */\n exportImage(options = {}) {\n return exportImage(this.exportVisual(options), options);\n }\n /**\n * Exports the Chart as an SVG document. The export operation is asynchronous and returns a promise.\n *\n * @param options - The parameters for the exported file.\n * @returns - A promise that will be resolved with an SVG document that is encoded as a Data URI.\n */\n exportSVG(options = {}) {\n return exportSVG(this.exportVisual(options), options);\n }\n /**\n * Exports the Chart as a Drawing `Scene`.\n *\n * @param options - The parameters for the export operation.\n * @returns - The root Group of the scene.\n */\n exportVisual(options = {}) {\n return this.instance.exportVisual(options);\n }\n /**\n * Returns the axis with the specified name.\n *\n * @param {string} name - The axis name.\n * @returns {ChartAxis} - The axis with a corresponding name.\n */\n findAxisByName(name) {\n if (this.instance) {\n return this.instance.findAxisByName(name);\n }\n }\n /**\n * Returns the pane at the specified index.\n *\n * @param {number} index - The pane index.\n * @returns {ChartPane} - The pane at the specified index.\n */\n findPaneByIndex(index) {\n if (this.instance) {\n return this.instance.findPaneByIndex(index);\n }\n }\n /**\n * Returns the pane with the specified name.\n *\n * @param {string} name - The name of the pane.\n * @returns {ChartPane} - The pane with the provided name.\n */\n findPaneByName(name) {\n if (this.instance) {\n return this.instance.findPaneByName(name);\n }\n }\n /**\n * Returns the plot area of the Chart.\n * @returns {ChartPlotArea} - The plot area of the Chart.\n */\n getPlotArea() {\n if (this.instance) {\n return this.instance.plotArea();\n }\n }\n /**\n * Highlights the series points or the segments of a Pie, Donut, or Funnel charts.\n *\n * See [Series Highlight]({% slug serieshighlight_chart_charts %}) for more details.\n *\n * In the following example, the callback is evaluated for each data point.\n * If the function returns `true`, the point is highlighted.\n *\n * {% meta height:500 %}\n * {% embed_file elements/highlight/api/app.component.ts preview %}\n * {% embed_file shared/app.module.ts hidden %}\n * {% embed_file shared/main.ts hidden %}\n * {% endmeta %}\n *\n * @param show - A Boolean value that indicates whether the highlight is shown or hidden.\n * @param filter - A string that represents the series or category name, an object with the series and category name, or a function which will be called for each point. The function should return `true` for the points for which the highlight is toggled.\n */\n toggleHighlight(show, filter) {\n if (this.instance) {\n this.instance.toggleHighlight(show, filter);\n }\n }\n /**\n * Hides the tooltip of the Chart.\n */\n hideTooltip() {\n if (this.instance) {\n this.instance.hideTooltip();\n }\n }\n /**\n * Shows the Chart tooltip of a specific point or the shared tooltip of a specific category.\n *\n * @param filter - The category for a shared tooltip or a function which will be called for each point until the function returns `true`.\n */\n showTooltip(filter) {\n if (this.instance) {\n this.instance.showTooltip(filter);\n }\n }\n init() {\n if (!this.canRender) {\n return;\n }\n const element = this.surfaceElement.nativeElement;\n const instanceObserver = new ChartInstanceObserver(this);\n this.createInstance(element, instanceObserver);\n }\n /**\n * Detects the size of the container and redraws the Chart.\n * Resizing is automatic unless you set the `resizeRateLimit` option to `0`.\n */\n resize() {\n if (this.instance) {\n this.instance.resize();\n }\n }\n /**\n * @hidden\n */\n onResize(_event) {\n if (this.autoResize) {\n this.resize();\n }\n }\n onLegendItemClick(e) {\n this.run(() => {\n const args = new LegendItemClickEvent(e, this);\n this.legendItemClick.emit(args);\n if (!args.isDefaultPrevented()) {\n const series = this.seriesComponents.toArray()[e.series.index];\n if (!series) {\n return;\n }\n if (e.pointIndex === undefined) {\n series.toggleVisibility();\n }\n else {\n series.togglePointVisibility(e.pointIndex);\n }\n this.suppressTransitions = true;\n }\n }, hasObservers(this.legendItemClick), this.seriesComponents.length > 0);\n }\n onInit(e) {\n this.instance = e.sender;\n }\n onRender(e) {\n const donutCenterStyle = this.getDonutCenterStyle();\n this.run(() => {\n const args = new RenderEvent(e, this);\n this.surface = e.sender.surface;\n this.render.emit(args);\n this.donutCenterStyle = donutCenterStyle;\n }, hasObservers(this.render), this.donutCenterStyle !== donutCenterStyle);\n }\n onShowTooltip(e) {\n this.run(() => {\n if (!e.crosshair) {\n this.tooltipInstance.show(e);\n }\n else {\n this.crossahirTooltips.show(e);\n }\n }, !e.crosshair, true);\n }\n onHideTooltip(e) {\n if (!e.crosshair) {\n if (this.tooltipInstance.active) {\n this.tooltipInstance.hide();\n this.detectChanges();\n }\n }\n else if (this.crossahirTooltips.active) {\n this.crossahirTooltips.hide();\n this.detectChanges();\n }\n }\n trigger(name, e) {\n if (name === 'resize') {\n return;\n }\n const emitter = this.activeEmitter(name);\n if (emitter) {\n const args = this.instanceEventService.create(name, e, this);\n this.run(() => {\n emitter.emit(args);\n });\n return args.isDefaultPrevented && args.isDefaultPrevented();\n }\n }\n requiresHandlers(names) {\n for (let idx = 0; idx < names.length; idx++) {\n if (this.activeEmitter(names[idx])) {\n return true;\n }\n }\n return false;\n }\n refresh() {\n clearTimeout(this.redrawTimeout);\n this.updateDirection();\n this.crossahirTooltips.createCrosshairTooltips(this.options);\n this.setChartAreaSize();\n if (!this.instance) {\n this.init();\n return;\n }\n const transitions = this.options.transitions;\n if (this.suppressTransitions) {\n this.options.transitions = false;\n }\n this.updateOptions();\n if (this.suppressTransitions) {\n this.options.transitions = transitions;\n this.suppressTransitions = false;\n }\n }\n setChartAreaSize() {\n if (!this.element) {\n return;\n }\n const element = this.element.nativeElement;\n const chartArea = this.options.chartArea || {};\n if (chartArea.width) {\n element.style.width = `${chartArea.width}px`;\n }\n if (chartArea.height) {\n element.style.height = `${chartArea.height}px`;\n }\n }\n updateOptions() {\n this.instance.setOptions(this.options);\n }\n /**\n * @hidden\n */\n tooltipMouseleave(e) {\n const relatedTarget = e.relatedTarget;\n const chartElement = this.element.nativeElement;\n if (this.instance && (!relatedTarget || !hasParent(relatedTarget, chartElement))) {\n this.instance.hideElements();\n }\n }\n /**\n * @hidden\n */\n chartMouseleave(e) {\n const relatedTarget = e.relatedTarget;\n const chartElement = this.element.nativeElement;\n if (this.instance && (!relatedTarget || !(this.tooltipInstance.containsElement(relatedTarget) || hasParent(relatedTarget, chartElement))) &&\n !this.instance.handlingTap) {\n this.instance.hideElements();\n }\n }\n get canRender() {\n return isDocumentAvailable() && Boolean(this.surfaceElement);\n }\n get autoResize() {\n return this.resizeRateLimit > 0;\n }\n activeEmitter(name) {\n const emitter = this[name];\n if (emitter && emitter.emit && hasObservers(emitter)) {\n return emitter;\n }\n }\n getDonutCenterStyle() {\n if (!this.instance || !this.options || !this.options.series) {\n return;\n }\n const firstSeries = this.options.series[0];\n const charts = this.instance._plotArea.charts;\n if (!firstSeries || firstSeries.type !== 'donut' || !charts || charts[0].points.length === 0) {\n return;\n }\n const firstPoint = charts[0].points[0];\n const center = firstPoint.box.center();\n const radius = firstPoint.sector.innerRadius;\n const top = center.y - radius;\n const left = center.x - radius;\n const size = radius * 2;\n return {\n height: size + 'px',\n left: left + 'px',\n top: top + 'px',\n width: size + 'px'\n };\n }\n refreshWait() {\n this.ngZone.runOutsideAngular(() => {\n this.subscription = combineLatest(this.configurationService.onChange$, this.themeService.onChange$).pipe(tap((result) => {\n this.options = result[0];\n this.theme = result[1];\n }), auditTime(THROTTLE_MS))\n .subscribe(() => {\n this.refresh();\n });\n });\n }\n run(callback, inZone = true, detectChanges) {\n if (inZone) {\n if (detectChanges) {\n this.changeDetector.markForCheck();\n }\n this.ngZone.run(callback);\n }\n else {\n callback();\n if (detectChanges) {\n this.detectChanges();\n }\n }\n }\n detectChanges() {\n if (!this.destroyed) {\n this.changeDetector.detectChanges();\n }\n }\n intlChange() {\n if (this.instance) {\n this.deferredRedraw();\n }\n }\n rtlChange() {\n if (this.instance && this.rtl !== this.isRTL) {\n this.deferredRedraw();\n }\n }\n deferredRedraw() {\n this.ngZone.runOutsideAngular(() => {\n clearTimeout(this.redrawTimeout);\n this.redrawTimeout = setTimeout(() => {\n this.updateDirection();\n this.instance.noTransitionsRedraw();\n }, 0);\n });\n }\n updateDirection() {\n const current = this.isRTL;\n if (this.rtl !== current) {\n this.setDirection();\n if (this.instance) {\n this.instance.setDirection(current);\n }\n }\n }\n setDirection() {\n this.rtl = this.isRTL;\n if (this.element) {\n this.renderer.setAttribute(this.element.nativeElement, 'dir', this.rtl ? 'rtl' : 'ltr');\n }\n }\n get isRTL() {\n return Boolean(this.localizationService.rtl);\n }\n};\nChartComponent.ɵfac = function ChartComponent_Factory(t) { return new (t || ChartComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService), ɵngcc0.ɵɵdirectiveInject(ThemeService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc4.IntlService), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(InstanceEventService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nChartComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ChartComponent, selectors: [[\"kendo-chart\"]], contentQueries: function ChartComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, DonutCenterTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, SeriesItemComponent, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.donutCenterTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.seriesComponents = _t);\n } }, viewQuery: function ChartComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(TooltipPopupComponent, 7);\n ɵngcc0.ɵɵviewQuery(CrosshairTooltipsContainerComponent, 7);\n ɵngcc0.ɵɵviewQuery(_c1, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.tooltipInstance = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.crossahirTooltips = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.surfaceElement = _t.first);\n } }, inputs: { resizeRateLimit: \"resizeRateLimit\", popupSettings: \"popupSettings\" }, outputs: { legendItemClick: \"legendItemClick\" }, exportAs: [\"kendoChart\"], features: [ɵngcc0.ɵɵProvidersFeature([\n ConfigurationService,\n TooltipTemplateService,\n InstanceEventService,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.chart'\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature, ɵngcc0.ɵɵNgOnChangesFeature], decls: 6, vars: 4, consts: [[1, \"k-chart-surface\"], [\"surface\", \"\"], [3, \"popupSettings\"], [3, \"popupSettings\", \"leave\"], [3, \"rateLimit\", \"resize\"], [\"class\", \"k-chart-donut-center\", 3, \"ngStyle\", 4, \"ngIf\"], [1, \"k-chart-donut-center\", 3, \"ngStyle\"], [3, \"ngTemplateOutlet\"]], template: function ChartComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"div\", 0, 1)(2, \"kendo-chart-crosshair-tooltips-container\", 2);\n ɵngcc0.ɵɵelementStart(3, \"kendo-chart-tooltip-popup\", 3);\n ɵngcc0.ɵɵlistener(\"leave\", function ChartComponent_Template_kendo_chart_tooltip_popup_leave_3_listener($event) { return ctx.tooltipMouseleave($event); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(4, \"kendo-resize-sensor\", 4);\n ɵngcc0.ɵɵlistener(\"resize\", function ChartComponent_Template_kendo_resize_sensor_resize_4_listener($event) { return ctx.onResize($event); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(5, ChartComponent_div_5_Template, 2, 2, \"div\", 5);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"popupSettings\", ctx.popupSettings);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"popupSettings\", ctx.popupSettings);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"rateLimit\", ctx.resizeRateLimit);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.donutCenterStyle && ctx.donutCenterTemplate);\n } }, directives: [CrosshairTooltipsContainerComponent, TooltipPopupComponent, ɵngcc5.ResizeSensorComponent, ɵngcc3.NgIf, ɵngcc3.NgStyle, ɵngcc3.NgTemplateOutlet], encapsulation: 2, changeDetection: 0 });\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ChartComponent.prototype, \"legendItemClick\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ChartComponent.prototype, \"resizeRateLimit\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ChartComponent.prototype, \"popupSettings\", void 0);\n__decorate([\n ContentChildren(SeriesItemComponent, { descendants: true }),\n __metadata(\"design:type\", QueryList)\n], ChartComponent.prototype, \"seriesComponents\", void 0);\n__decorate([\n ContentChild(DonutCenterTemplateDirective, { static: false }),\n __metadata(\"design:type\", DonutCenterTemplateDirective)\n], ChartComponent.prototype, \"donutCenterTemplate\", void 0);\n__decorate([\n ViewChild(TooltipPopupComponent, { static: true }),\n __metadata(\"design:type\", TooltipPopupComponent)\n], ChartComponent.prototype, \"tooltipInstance\", void 0);\n__decorate([\n ViewChild(CrosshairTooltipsContainerComponent, { static: true }),\n __metadata(\"design:type\", CrosshairTooltipsContainerComponent)\n], ChartComponent.prototype, \"crossahirTooltips\", void 0);\n__decorate([\n ViewChild('surface', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], ChartComponent.prototype, \"surfaceElement\", void 0);\nChartComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService,\n ThemeService,\n ElementRef,\n IntlService,\n LocalizationService,\n NgZone,\n InstanceEventService,\n ChangeDetectorRef,\n Renderer2])\n], ChartComponent);\n\n/**\n * @hidden\n */\nclass AxisDefaultsComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('axisDefaults', configurationService);\n this.configurationService = configurationService;\n }\n}\nAxisDefaultsComponentGenerated.ɵfac = function AxisDefaultsComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nAxisDefaultsComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: AxisDefaultsComponentGenerated, inputs: { background: \"background\", color: \"color\", line: \"line\", majorGridLines: \"majorGridLines\", majorTicks: \"majorTicks\", minorGridLines: \"minorGridLines\", minorTicks: \"minorTicks\", narrowRange: \"narrowRange\", pane: \"pane\", plotBands: \"plotBands\", reverse: \"reverse\", startAngle: \"startAngle\", visible: \"visible\", crosshair: \"crosshair\", labels: \"labels\", title: \"title\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AxisDefaultsComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AxisDefaultsComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AxisDefaultsComponentGenerated.prototype, \"line\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AxisDefaultsComponentGenerated.prototype, \"majorGridLines\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AxisDefaultsComponentGenerated.prototype, \"majorTicks\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AxisDefaultsComponentGenerated.prototype, \"minorGridLines\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AxisDefaultsComponentGenerated.prototype, \"minorTicks\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AxisDefaultsComponentGenerated.prototype, \"narrowRange\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AxisDefaultsComponentGenerated.prototype, \"pane\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], AxisDefaultsComponentGenerated.prototype, \"plotBands\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AxisDefaultsComponentGenerated.prototype, \"reverse\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AxisDefaultsComponentGenerated.prototype, \"startAngle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AxisDefaultsComponentGenerated.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AxisDefaultsComponentGenerated.prototype, \"crosshair\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AxisDefaultsComponentGenerated.prototype, \"labels\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AxisDefaultsComponentGenerated.prototype, \"title\", void 0);\n\n/**\n * The default options for all Chart axes.\n * Accepts the options which are supported by [`categoryAxis`]({% slug api_charts_categoryaxisitemcomponent %}),\n * [`valueAxis`]({% slug api_charts_valueaxisitemcomponent %}),\n * [`xAxis`]({% slug api_charts_xaxisitemcomponent %}),\n * and [`yAxis`]({% slug api_charts_yaxisitemcomponent %}).\n *\n * @example\n * ```ts-preview\n * import { Component } from '@angular/core';\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n *
\n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n *
\n * `\n * })\n * export class AppComponent {\n * public series: any[] = [{\n * name: \"India\",\n * data: [4, 8, 8, 9, 9, 9, 3, 8, 9, 6]\n * }, {\n * name: \"Russian Federation\",\n * data: [4, 7, 7, 6, 8, 8, 5, 8, 4, 4]\n * }, {\n * name: \"Germany\",\n * data: [0, 0, 1, 1, 4, 3, 1, 5, 4, 3]\n * },{\n * name: \"World\",\n * data: [2, 3, 4, 4, 4, 4, 1, 2, 4, 3]\n * }];\n *\n * public categories: number[] = [2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011];\n *\n * public background = 'white';\n * // public color = 'cyan'; // will override the line.color option\n * public crosshair = {\n * visible: true\n * };\n * public labels = {\n * font: 'bold 12px/30px Helvetica, Arial, sans-serif',\n * color: '#4CAF50',\n * padding: 5,\n * rotation: 45,\n * background: 'white',\n * border: {\n * color: '#4CAF50',\n * width: 2\n * },\n * };\n * public line = {\n * color: 'black',\n * width: 3\n * };\n *\n * public majorGridLines = {\n * color: 'black',\n * visible: true\n * }\n *\n * public minorGridLines = {\n * color: 'lightgray',\n * visible: true\n * }\n *\n * public majorTicks = {\n * color: 'black',\n * size: 15\n * }\n *\n * public minorTicks = {\n * color: 'lightgray',\n * size: 10\n * }\n *\n * public title = {\n * text: 'Default Axis Title',\n * color: 'black',\n * background: 'white',\n * border: {\n * color: 'black',\n * width: 2\n * },\n * padding: 10\n * }\n * }\n * ```\n */\nlet AxisDefaultsComponent = class AxisDefaultsComponent extends AxisDefaultsComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nAxisDefaultsComponent.ɵfac = function AxisDefaultsComponent_Factory(t) { return new (t || AxisDefaultsComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nAxisDefaultsComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: AxisDefaultsComponent, selectors: [[\"kendo-chart-axis-defaults\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function AxisDefaultsComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nAxisDefaultsComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], AxisDefaultsComponent);\n\n/**\n * @hidden\n */\nclass AxisDefaultsCrosshairComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('axisDefaults.crosshair', configurationService);\n this.configurationService = configurationService;\n }\n}\nAxisDefaultsCrosshairComponentGenerated.ɵfac = function AxisDefaultsCrosshairComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nAxisDefaultsCrosshairComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: AxisDefaultsCrosshairComponentGenerated, inputs: { color: \"color\", dashType: \"dashType\", opacity: \"opacity\", visible: \"visible\", width: \"width\", tooltip: \"tooltip\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AxisDefaultsCrosshairComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AxisDefaultsCrosshairComponentGenerated.prototype, \"dashType\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AxisDefaultsCrosshairComponentGenerated.prototype, \"opacity\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AxisDefaultsCrosshairComponentGenerated.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AxisDefaultsCrosshairComponentGenerated.prototype, \"width\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AxisDefaultsCrosshairComponentGenerated.prototype, \"tooltip\", void 0);\n\n/**\n * The crosshair configuration options ([see example]({% slug api_charts_axisdefaultscomponent %})).\n */\nlet AxisDefaultsCrosshairComponent = class AxisDefaultsCrosshairComponent extends AxisDefaultsCrosshairComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n this.markAsVisible();\n }\n};\nAxisDefaultsCrosshairComponent.ɵfac = function AxisDefaultsCrosshairComponent_Factory(t) { return new (t || AxisDefaultsCrosshairComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nAxisDefaultsCrosshairComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: AxisDefaultsCrosshairComponent, selectors: [[\"kendo-chart-axis-defaults-crosshair\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function AxisDefaultsCrosshairComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nAxisDefaultsCrosshairComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], AxisDefaultsCrosshairComponent);\n\n/**\n * @hidden\n */\nclass AxisDefaultsCrosshairTooltipComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('axisDefaults.crosshair.tooltip', configurationService);\n this.configurationService = configurationService;\n }\n}\nAxisDefaultsCrosshairTooltipComponentGenerated.ɵfac = function AxisDefaultsCrosshairTooltipComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nAxisDefaultsCrosshairTooltipComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: AxisDefaultsCrosshairTooltipComponentGenerated, inputs: { background: \"background\", border: \"border\", color: \"color\", font: \"font\", format: \"format\", padding: \"padding\", visible: \"visible\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AxisDefaultsCrosshairTooltipComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AxisDefaultsCrosshairTooltipComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AxisDefaultsCrosshairTooltipComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AxisDefaultsCrosshairTooltipComponentGenerated.prototype, \"font\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AxisDefaultsCrosshairTooltipComponentGenerated.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AxisDefaultsCrosshairTooltipComponentGenerated.prototype, \"padding\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AxisDefaultsCrosshairTooltipComponentGenerated.prototype, \"visible\", void 0);\n\n/**\n * The options of the crosshair tooltip ([see example]({% slug crosshairs_chart_charts %})).\n * The crosshair tooltip is displayed when the [`axisDefaults.crosshair.tooltip.visible`]({% slug api_charts_axisdefaultscrosshairtooltipcomponent %}#toc-visible)\n * option is set to `true`.\n */\nlet AxisDefaultsCrosshairTooltipComponent = class AxisDefaultsCrosshairTooltipComponent extends AxisDefaultsCrosshairTooltipComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n this.markAsVisible();\n }\n};\nAxisDefaultsCrosshairTooltipComponent.ɵfac = function AxisDefaultsCrosshairTooltipComponent_Factory(t) { return new (t || AxisDefaultsCrosshairTooltipComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nAxisDefaultsCrosshairTooltipComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: AxisDefaultsCrosshairTooltipComponent, selectors: [[\"kendo-chart-axis-defaults-crosshair-tooltip\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function AxisDefaultsCrosshairTooltipComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nAxisDefaultsCrosshairTooltipComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], AxisDefaultsCrosshairTooltipComponent);\n\n/**\n * @hidden\n */\nclass AxisDefaultsLabelsComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('axisDefaults.labels', configurationService);\n this.configurationService = configurationService;\n }\n}\nAxisDefaultsLabelsComponentGenerated.ɵfac = function AxisDefaultsLabelsComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nAxisDefaultsLabelsComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: AxisDefaultsLabelsComponentGenerated, inputs: { content: \"content\", font: \"font\", format: \"format\", margin: \"margin\", mirror: \"mirror\", padding: \"padding\", rotation: \"rotation\", skip: \"skip\", step: \"step\", visible: \"visible\", visual: \"visual\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AxisDefaultsLabelsComponentGenerated.prototype, \"content\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AxisDefaultsLabelsComponentGenerated.prototype, \"font\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AxisDefaultsLabelsComponentGenerated.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AxisDefaultsLabelsComponentGenerated.prototype, \"margin\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AxisDefaultsLabelsComponentGenerated.prototype, \"mirror\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AxisDefaultsLabelsComponentGenerated.prototype, \"padding\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AxisDefaultsLabelsComponentGenerated.prototype, \"rotation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AxisDefaultsLabelsComponentGenerated.prototype, \"skip\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AxisDefaultsLabelsComponentGenerated.prototype, \"step\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AxisDefaultsLabelsComponentGenerated.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AxisDefaultsLabelsComponentGenerated.prototype, \"visual\", void 0);\n\n/**\n * The configuration of the axis labels ([see example]({% slug api_charts_axisdefaultscomponent %})).\n */\nlet AxisDefaultsLabelsComponent = class AxisDefaultsLabelsComponent extends AxisDefaultsLabelsComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nAxisDefaultsLabelsComponent.ɵfac = function AxisDefaultsLabelsComponent_Factory(t) { return new (t || AxisDefaultsLabelsComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nAxisDefaultsLabelsComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: AxisDefaultsLabelsComponent, selectors: [[\"kendo-chart-axis-defaults-labels\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function AxisDefaultsLabelsComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nAxisDefaultsLabelsComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], AxisDefaultsLabelsComponent);\n\n/**\n * @hidden\n */\nclass AxisDefaultsTitleComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('axisDefaults.title', configurationService);\n this.configurationService = configurationService;\n }\n}\nAxisDefaultsTitleComponentGenerated.ɵfac = function AxisDefaultsTitleComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nAxisDefaultsTitleComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: AxisDefaultsTitleComponentGenerated, inputs: { background: \"background\", border: \"border\", color: \"color\", font: \"font\", margin: \"margin\", padding: \"padding\", position: \"position\", rotation: \"rotation\", text: \"text\", visible: \"visible\", visual: \"visual\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AxisDefaultsTitleComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AxisDefaultsTitleComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AxisDefaultsTitleComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AxisDefaultsTitleComponentGenerated.prototype, \"font\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AxisDefaultsTitleComponentGenerated.prototype, \"margin\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AxisDefaultsTitleComponentGenerated.prototype, \"padding\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AxisDefaultsTitleComponentGenerated.prototype, \"position\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AxisDefaultsTitleComponentGenerated.prototype, \"rotation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AxisDefaultsTitleComponentGenerated.prototype, \"text\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AxisDefaultsTitleComponentGenerated.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], AxisDefaultsTitleComponentGenerated.prototype, \"visual\", void 0);\n\n/**\n * The configuration of the axis title ([see example]({% slug api_charts_axisdefaultscomponent %})).\n */\nlet AxisDefaultsTitleComponent = class AxisDefaultsTitleComponent extends AxisDefaultsTitleComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nAxisDefaultsTitleComponent.ɵfac = function AxisDefaultsTitleComponent_Factory(t) { return new (t || AxisDefaultsTitleComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nAxisDefaultsTitleComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: AxisDefaultsTitleComponent, selectors: [[\"kendo-chart-axis-defaults-title\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function AxisDefaultsTitleComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nAxisDefaultsTitleComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], AxisDefaultsTitleComponent);\n\n/**\n * @hidden\n */\nclass CollectionComponent {\n constructor(configKey, configurationService, collectionService) {\n this.configKey = configKey;\n this.configurationService = configurationService;\n this.collectionService = collectionService;\n this.items = [];\n this.subscription = collectionService.onItemChange$.subscribe(changes => this.processChanges(changes));\n }\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n ngAfterContentInit() {\n this.readItems();\n this.children.changes.subscribe(() => this.readItems());\n }\n processChanges(changes) {\n if (!this.children) {\n return;\n }\n const index = this.children.toArray().indexOf(changes.sender);\n if (index < 0) {\n return;\n }\n this.items[index] = changes.options;\n this.change();\n }\n readItems() {\n this.items = this.children.map(s => s.options);\n this.change();\n }\n change() {\n this.configurationService.notify(new Change(this.configKey, this.items.length === 0 ? undefined : this.items));\n }\n}\nCollectionComponent.ɵfac = function CollectionComponent_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nCollectionComponent.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CollectionComponent });\n\n/**\n * Specifies the `weekStartDay` of a [CategoryAxisItemComponent]({% slug api_charts_categoryaxisitemcomponent %}).\n */\nvar WeekStartDay;\n(function (WeekStartDay) {\n /**\n * Specifies Sunday as the first day of the week.\n */\n WeekStartDay[WeekStartDay[\"Sunday\"] = 0] = \"Sunday\";\n /**\n * Specifies Monday as the first day of the week.\n */\n WeekStartDay[WeekStartDay[\"Monday\"] = 1] = \"Monday\";\n /**\n * Specifies Tuesday as the first day of the week.\n */\n WeekStartDay[WeekStartDay[\"Tuesday\"] = 2] = \"Tuesday\";\n /**\n * Specifies Wednesday as the first day of the week.\n */\n WeekStartDay[WeekStartDay[\"Wednesday\"] = 3] = \"Wednesday\";\n /**\n * Specifies Thursday as the first day of the week.\n */\n WeekStartDay[WeekStartDay[\"Thursday\"] = 4] = \"Thursday\";\n /**\n * Specifies Friday as the first day of the week.\n */\n WeekStartDay[WeekStartDay[\"Friday\"] = 5] = \"Friday\";\n /**\n * Specifies Saturday as the first day of the week.\n */\n WeekStartDay[WeekStartDay[\"Saturday\"] = 6] = \"Saturday\";\n})(WeekStartDay || (WeekStartDay = {}));\n\n/**\n * @hidden\n */\nclass CategoryAxisItemComponentGenerated extends CollectionItemComponent {\n constructor(configurationService, collectionService, intl, localeId) {\n super(configurationService, collectionService);\n this.configurationService = configurationService;\n this.collectionService = collectionService;\n this.notifyChanges({ weekStartDay: intl.firstDay(localeId) });\n }\n}\nCategoryAxisItemComponentGenerated.ɵfac = function CategoryAxisItemComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nCategoryAxisItemComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CategoryAxisItemComponentGenerated, inputs: { autoBaseUnitSteps: \"autoBaseUnitSteps\", axisCrossingValue: \"axisCrossingValue\", background: \"background\", baseUnit: \"baseUnit\", baseUnitStep: \"baseUnitStep\", categories: \"categories\", color: \"color\", justified: \"justified\", line: \"line\", majorGridLines: \"majorGridLines\", majorTicks: \"majorTicks\", max: \"max\", maxDateGroups: \"maxDateGroups\", maxDivisions: \"maxDivisions\", min: \"min\", minorGridLines: \"minorGridLines\", minorTicks: \"minorTicks\", name: \"name\", pane: \"pane\", plotBands: \"plotBands\", reverse: \"reverse\", roundToBaseUnit: \"roundToBaseUnit\", startAngle: \"startAngle\", type: \"type\", visible: \"visible\", weekStartDay: \"weekStartDay\", crosshair: \"crosshair\", labels: \"labels\", notes: \"notes\", select: \"select\", title: \"title\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisItemComponentGenerated.prototype, \"autoBaseUnitSteps\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisItemComponentGenerated.prototype, \"axisCrossingValue\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CategoryAxisItemComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CategoryAxisItemComponentGenerated.prototype, \"baseUnit\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisItemComponentGenerated.prototype, \"baseUnitStep\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], CategoryAxisItemComponentGenerated.prototype, \"categories\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CategoryAxisItemComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], CategoryAxisItemComponentGenerated.prototype, \"justified\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisItemComponentGenerated.prototype, \"line\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisItemComponentGenerated.prototype, \"majorGridLines\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisItemComponentGenerated.prototype, \"majorTicks\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisItemComponentGenerated.prototype, \"max\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], CategoryAxisItemComponentGenerated.prototype, \"maxDateGroups\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], CategoryAxisItemComponentGenerated.prototype, \"maxDivisions\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisItemComponentGenerated.prototype, \"min\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisItemComponentGenerated.prototype, \"minorGridLines\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisItemComponentGenerated.prototype, \"minorTicks\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CategoryAxisItemComponentGenerated.prototype, \"name\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CategoryAxisItemComponentGenerated.prototype, \"pane\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], CategoryAxisItemComponentGenerated.prototype, \"plotBands\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], CategoryAxisItemComponentGenerated.prototype, \"reverse\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], CategoryAxisItemComponentGenerated.prototype, \"roundToBaseUnit\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], CategoryAxisItemComponentGenerated.prototype, \"startAngle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CategoryAxisItemComponentGenerated.prototype, \"type\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], CategoryAxisItemComponentGenerated.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], CategoryAxisItemComponentGenerated.prototype, \"weekStartDay\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisItemComponentGenerated.prototype, \"crosshair\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisItemComponentGenerated.prototype, \"labels\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisItemComponentGenerated.prototype, \"notes\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisItemComponentGenerated.prototype, \"select\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisItemComponentGenerated.prototype, \"title\", void 0);\n\n/**\n * The configuration component for a category axis ([see example]({% slug axes_chart_charts %})).\n */\nlet CategoryAxisItemComponent = class CategoryAxisItemComponent extends CategoryAxisItemComponentGenerated {\n constructor(configurationService, collectionService, intl, localeId) {\n super(configurationService, collectionService, intl, localeId);\n this.configurationService = configurationService;\n this.collectionService = collectionService;\n }\n};\nCategoryAxisItemComponent.ɵfac = function CategoryAxisItemComponent_Factory(t) { return new (t || CategoryAxisItemComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService), ɵngcc0.ɵɵdirectiveInject(CollectionService), ɵngcc0.ɵɵdirectiveInject(ɵngcc4.IntlService), ɵngcc0.ɵɵdirectiveInject(LOCALE_ID)); };\nCategoryAxisItemComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CategoryAxisItemComponent, selectors: [[\"kendo-chart-category-axis-item\"]], inputs: { rangeLabels: \"rangeLabels\" }, features: [ɵngcc0.ɵɵProvidersFeature([ConfigurationService]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function CategoryAxisItemComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisItemComponent.prototype, \"rangeLabels\", void 0);\nCategoryAxisItemComponent = __decorate([ __param(3, Inject(LOCALE_ID)),\n __metadata(\"design:paramtypes\", [ConfigurationService,\n CollectionService,\n IntlService, String])\n], CategoryAxisItemComponent);\n\n/**\n * @hidden\n */\nclass CategoryAxisComponentGenerated extends CollectionComponent {\n constructor(configurationService, collectionService) {\n super('categoryAxis', configurationService, collectionService);\n this.configurationService = configurationService;\n this.collectionService = collectionService;\n }\n}\nCategoryAxisComponentGenerated.ɵfac = function CategoryAxisComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nCategoryAxisComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CategoryAxisComponentGenerated, contentQueries: function CategoryAxisComponentGenerated_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, CategoryAxisItemComponent, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.children = _t);\n } }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n ContentChildren(CategoryAxisItemComponent),\n __metadata(\"design:type\", QueryList)\n], CategoryAxisComponentGenerated.prototype, \"children\", void 0);\n\n/**\n * A collection of one or more category axis items.\n *\n * @example\n * ```ts\n * import { Component } from '@angular/core';\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 * }\n * ```\n */\nlet CategoryAxisComponent = class CategoryAxisComponent extends CategoryAxisComponentGenerated {\n // Place custom properties here\n constructor(configurationService, collectionService) {\n super(configurationService, collectionService);\n this.configurationService = configurationService;\n this.collectionService = collectionService;\n }\n};\nCategoryAxisComponent.ɵfac = function CategoryAxisComponent_Factory(t) { return new (t || CategoryAxisComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService), ɵngcc0.ɵɵdirectiveInject(CollectionService)); };\nCategoryAxisComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CategoryAxisComponent, selectors: [[\"kendo-chart-category-axis\"]], features: [ɵngcc0.ɵɵProvidersFeature([CollectionService]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function CategoryAxisComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nCategoryAxisComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService,\n CollectionService])\n], CategoryAxisComponent);\n\n/**\n * @hidden\n */\nclass CategoryAxisCrosshairComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('crosshair', configurationService);\n this.configurationService = configurationService;\n }\n}\nCategoryAxisCrosshairComponentGenerated.ɵfac = function CategoryAxisCrosshairComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nCategoryAxisCrosshairComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CategoryAxisCrosshairComponentGenerated, inputs: { color: \"color\", dashType: \"dashType\", opacity: \"opacity\", visible: \"visible\", width: \"width\", tooltip: \"tooltip\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CategoryAxisCrosshairComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CategoryAxisCrosshairComponentGenerated.prototype, \"dashType\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], CategoryAxisCrosshairComponentGenerated.prototype, \"opacity\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], CategoryAxisCrosshairComponentGenerated.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], CategoryAxisCrosshairComponentGenerated.prototype, \"width\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisCrosshairComponentGenerated.prototype, \"tooltip\", void 0);\n\n/**\n * The crosshair configuration options ([see example]({% slug crosshairs_chart_charts %})).\n */\nlet CategoryAxisCrosshairComponent = class CategoryAxisCrosshairComponent extends CategoryAxisCrosshairComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n this.markAsVisible();\n }\n};\nCategoryAxisCrosshairComponent.ɵfac = function CategoryAxisCrosshairComponent_Factory(t) { return new (t || CategoryAxisCrosshairComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nCategoryAxisCrosshairComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CategoryAxisCrosshairComponent, selectors: [[\"kendo-chart-category-axis-item-crosshair\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function CategoryAxisCrosshairComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nCategoryAxisCrosshairComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], CategoryAxisCrosshairComponent);\n\n/**\n * @hidden\n */\nclass CategoryAxisCrosshairTooltipComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('crosshair.tooltip', configurationService);\n this.configurationService = configurationService;\n }\n}\nCategoryAxisCrosshairTooltipComponentGenerated.ɵfac = function CategoryAxisCrosshairTooltipComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nCategoryAxisCrosshairTooltipComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CategoryAxisCrosshairTooltipComponentGenerated, inputs: { background: \"background\", border: \"border\", color: \"color\", font: \"font\", format: \"format\", padding: \"padding\", visible: \"visible\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CategoryAxisCrosshairTooltipComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisCrosshairTooltipComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CategoryAxisCrosshairTooltipComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CategoryAxisCrosshairTooltipComponentGenerated.prototype, \"font\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CategoryAxisCrosshairTooltipComponentGenerated.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisCrosshairTooltipComponentGenerated.prototype, \"padding\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], CategoryAxisCrosshairTooltipComponentGenerated.prototype, \"visible\", void 0);\n\n/**\n * The options of the crosshair tooltip ([see example]({% slug crosshairs_chart_charts %})).\n * The crosshair tooltip is displayed when the `visible` option is set to `true`.\n */\nlet CategoryAxisCrosshairTooltipComponent = class CategoryAxisCrosshairTooltipComponent extends CategoryAxisCrosshairTooltipComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n this.markAsVisible();\n }\n};\nCategoryAxisCrosshairTooltipComponent.ɵfac = function CategoryAxisCrosshairTooltipComponent_Factory(t) { return new (t || CategoryAxisCrosshairTooltipComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nCategoryAxisCrosshairTooltipComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CategoryAxisCrosshairTooltipComponent, selectors: [[\"kendo-chart-category-axis-item-crosshair-tooltip\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function CategoryAxisCrosshairTooltipComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nCategoryAxisCrosshairTooltipComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], CategoryAxisCrosshairTooltipComponent);\n\n/**\n * The configuration of the axis labels ([see example]({% slug labels_chart_charts %})).\n */\nlet CategoryAxisLabelsComponent = class CategoryAxisLabelsComponent extends SettingsComponent {\n constructor(configurationService) {\n super('labels', configurationService);\n this.configurationService = configurationService;\n }\n};\nCategoryAxisLabelsComponent.ɵfac = function CategoryAxisLabelsComponent_Factory(t) { return new (t || CategoryAxisLabelsComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nCategoryAxisLabelsComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CategoryAxisLabelsComponent, selectors: [[\"kendo-chart-category-axis-item-labels\"]], inputs: { background: \"background\", border: \"border\", color: \"color\", content: \"content\", culture: \"culture\", dateFormats: \"dateFormats\", font: \"font\", format: \"format\", margin: \"margin\", mirror: \"mirror\", padding: \"padding\", position: \"position\", rotation: \"rotation\", skip: \"skip\", step: \"step\", visible: \"visible\", visual: \"visual\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function CategoryAxisLabelsComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CategoryAxisLabelsComponent.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisLabelsComponent.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CategoryAxisLabelsComponent.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], CategoryAxisLabelsComponent.prototype, \"content\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CategoryAxisLabelsComponent.prototype, \"culture\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisLabelsComponent.prototype, \"dateFormats\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CategoryAxisLabelsComponent.prototype, \"font\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CategoryAxisLabelsComponent.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisLabelsComponent.prototype, \"margin\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], CategoryAxisLabelsComponent.prototype, \"mirror\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisLabelsComponent.prototype, \"padding\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CategoryAxisLabelsComponent.prototype, \"position\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisLabelsComponent.prototype, \"rotation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], CategoryAxisLabelsComponent.prototype, \"skip\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], CategoryAxisLabelsComponent.prototype, \"step\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], CategoryAxisLabelsComponent.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], CategoryAxisLabelsComponent.prototype, \"visual\", void 0);\nCategoryAxisLabelsComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], CategoryAxisLabelsComponent);\n\n/**\n * The configuration of the axis date range labels ([see example]({% slug labels_chart_charts %})).\n */\nlet CategoryAxisRangeLabelsComponent = class CategoryAxisRangeLabelsComponent extends CategoryAxisLabelsComponent {\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n this.configKey = 'rangeLabels';\n this.markAsVisible();\n }\n};\nCategoryAxisRangeLabelsComponent.ɵfac = function CategoryAxisRangeLabelsComponent_Factory(t) { return new (t || CategoryAxisRangeLabelsComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nCategoryAxisRangeLabelsComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CategoryAxisRangeLabelsComponent, selectors: [[\"kendo-chart-category-axis-item-range-labels\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function CategoryAxisRangeLabelsComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nCategoryAxisRangeLabelsComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], CategoryAxisRangeLabelsComponent);\n\n/**\n * @hidden\n */\nclass CategoryAxisNotesComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('notes', configurationService);\n this.configurationService = configurationService;\n }\n}\nCategoryAxisNotesComponentGenerated.ɵfac = function CategoryAxisNotesComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nCategoryAxisNotesComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CategoryAxisNotesComponentGenerated, inputs: { data: \"data\", line: \"line\", position: \"position\", visual: \"visual\", icon: \"icon\", label: \"label\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], CategoryAxisNotesComponentGenerated.prototype, \"data\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisNotesComponentGenerated.prototype, \"line\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CategoryAxisNotesComponentGenerated.prototype, \"position\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], CategoryAxisNotesComponentGenerated.prototype, \"visual\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisNotesComponentGenerated.prototype, \"icon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisNotesComponentGenerated.prototype, \"label\", void 0);\n\n/**\n * The configuration of the category axis notes ([see example]({% slug notes_chart_charts %}#toc-axis-notes)).\n */\nlet CategoryAxisNotesComponent = class CategoryAxisNotesComponent extends CategoryAxisNotesComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nCategoryAxisNotesComponent.ɵfac = function CategoryAxisNotesComponent_Factory(t) { return new (t || CategoryAxisNotesComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nCategoryAxisNotesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CategoryAxisNotesComponent, selectors: [[\"kendo-chart-category-axis-item-notes\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function CategoryAxisNotesComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nCategoryAxisNotesComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], CategoryAxisNotesComponent);\n\n/**\n * @hidden\n */\nclass CategoryAxisNotesIconComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('notes.icon', configurationService);\n this.configurationService = configurationService;\n }\n}\nCategoryAxisNotesIconComponentGenerated.ɵfac = function CategoryAxisNotesIconComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nCategoryAxisNotesIconComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CategoryAxisNotesIconComponentGenerated, inputs: { background: \"background\", border: \"border\", size: \"size\", type: \"type\", visible: \"visible\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CategoryAxisNotesIconComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisNotesIconComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], CategoryAxisNotesIconComponentGenerated.prototype, \"size\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CategoryAxisNotesIconComponentGenerated.prototype, \"type\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], CategoryAxisNotesIconComponentGenerated.prototype, \"visible\", void 0);\n\n/**\n * The icon of the notes.\n */\nlet CategoryAxisNotesIconComponent = class CategoryAxisNotesIconComponent extends CategoryAxisNotesIconComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nCategoryAxisNotesIconComponent.ɵfac = function CategoryAxisNotesIconComponent_Factory(t) { return new (t || CategoryAxisNotesIconComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nCategoryAxisNotesIconComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CategoryAxisNotesIconComponent, selectors: [[\"kendo-chart-category-axis-item-notes-icon\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function CategoryAxisNotesIconComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nCategoryAxisNotesIconComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], CategoryAxisNotesIconComponent);\n\n/**\n * @hidden\n */\nclass CategoryAxisNotesLabelComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('notes.label', configurationService);\n this.configurationService = configurationService;\n }\n}\nCategoryAxisNotesLabelComponentGenerated.ɵfac = function CategoryAxisNotesLabelComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nCategoryAxisNotesLabelComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CategoryAxisNotesLabelComponentGenerated, inputs: { background: \"background\", border: \"border\", color: \"color\", content: \"content\", font: \"font\", format: \"format\", position: \"position\", rotation: \"rotation\", visible: \"visible\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CategoryAxisNotesLabelComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisNotesLabelComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CategoryAxisNotesLabelComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], CategoryAxisNotesLabelComponentGenerated.prototype, \"content\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CategoryAxisNotesLabelComponentGenerated.prototype, \"font\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CategoryAxisNotesLabelComponentGenerated.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CategoryAxisNotesLabelComponentGenerated.prototype, \"position\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], CategoryAxisNotesLabelComponentGenerated.prototype, \"rotation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], CategoryAxisNotesLabelComponentGenerated.prototype, \"visible\", void 0);\n\n/**\n * The label of the notes.\n */\nlet CategoryAxisNotesLabelComponent = class CategoryAxisNotesLabelComponent extends CategoryAxisNotesLabelComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nCategoryAxisNotesLabelComponent.ɵfac = function CategoryAxisNotesLabelComponent_Factory(t) { return new (t || CategoryAxisNotesLabelComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nCategoryAxisNotesLabelComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CategoryAxisNotesLabelComponent, selectors: [[\"kendo-chart-category-axis-item-notes-label\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function CategoryAxisNotesLabelComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nCategoryAxisNotesLabelComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], CategoryAxisNotesLabelComponent);\n\n/**\n * @hidden\n */\nclass CategoryAxisSelectComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('select', configurationService);\n this.configurationService = configurationService;\n }\n}\nCategoryAxisSelectComponentGenerated.ɵfac = function CategoryAxisSelectComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nCategoryAxisSelectComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CategoryAxisSelectComponentGenerated, inputs: { from: \"from\", max: \"max\", min: \"min\", mousewheel: \"mousewheel\", to: \"to\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisSelectComponentGenerated.prototype, \"from\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisSelectComponentGenerated.prototype, \"max\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisSelectComponentGenerated.prototype, \"min\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisSelectComponentGenerated.prototype, \"mousewheel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisSelectComponentGenerated.prototype, \"to\", void 0);\n\n/**\n * The selected axis range. If set, the axis selection is enabled. The range is index-based and starts from zero.\n * Categories with indexes in the\n * ([`select.from`]({% slug api_charts_categoryaxisselectcomponent %}#toc-from)\n * —[`select.to`]({% slug api_charts_categoryaxisselectcomponent %}#toc-to)) range will be selected.\n * This means that the last category in the range will not be included in the selection.\n * If the categories are dates, the range has to be also specified with date values.\n */\nlet CategoryAxisSelectComponent = class CategoryAxisSelectComponent extends CategoryAxisSelectComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nCategoryAxisSelectComponent.ɵfac = function CategoryAxisSelectComponent_Factory(t) { return new (t || CategoryAxisSelectComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nCategoryAxisSelectComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CategoryAxisSelectComponent, selectors: [[\"kendo-chart-category-axis-item-select\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function CategoryAxisSelectComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nCategoryAxisSelectComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], CategoryAxisSelectComponent);\n\n/**\n * @hidden\n */\nclass CategoryAxisTitleComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('title', configurationService);\n this.configurationService = configurationService;\n }\n}\nCategoryAxisTitleComponentGenerated.ɵfac = function CategoryAxisTitleComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nCategoryAxisTitleComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CategoryAxisTitleComponentGenerated, inputs: { background: \"background\", border: \"border\", color: \"color\", font: \"font\", margin: \"margin\", padding: \"padding\", position: \"position\", rotation: \"rotation\", text: \"text\", visible: \"visible\", visual: \"visual\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CategoryAxisTitleComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisTitleComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CategoryAxisTitleComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CategoryAxisTitleComponentGenerated.prototype, \"font\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisTitleComponentGenerated.prototype, \"margin\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CategoryAxisTitleComponentGenerated.prototype, \"padding\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CategoryAxisTitleComponentGenerated.prototype, \"position\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], CategoryAxisTitleComponentGenerated.prototype, \"rotation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CategoryAxisTitleComponentGenerated.prototype, \"text\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], CategoryAxisTitleComponentGenerated.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], CategoryAxisTitleComponentGenerated.prototype, \"visual\", void 0);\n\n/**\n * The configuration of the category axis title.\n */\nlet CategoryAxisTitleComponent = class CategoryAxisTitleComponent extends CategoryAxisTitleComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nCategoryAxisTitleComponent.ɵfac = function CategoryAxisTitleComponent_Factory(t) { return new (t || CategoryAxisTitleComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nCategoryAxisTitleComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CategoryAxisTitleComponent, selectors: [[\"kendo-chart-category-axis-item-title\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function CategoryAxisTitleComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nCategoryAxisTitleComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], CategoryAxisTitleComponent);\n\n/**\n * @hidden\n */\nclass ChartAreaComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('chartArea', configurationService);\n this.configurationService = configurationService;\n }\n}\nChartAreaComponentGenerated.ɵfac = function ChartAreaComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nChartAreaComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ChartAreaComponentGenerated, inputs: { background: \"background\", border: \"border\", height: \"height\", margin: \"margin\", opacity: \"opacity\", width: \"width\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ChartAreaComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ChartAreaComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ChartAreaComponentGenerated.prototype, \"height\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ChartAreaComponentGenerated.prototype, \"margin\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ChartAreaComponentGenerated.prototype, \"opacity\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ChartAreaComponentGenerated.prototype, \"width\", void 0);\n\n/**\n * The configuration options of the Chart area.\n * Represents the entire visible area of the Chart\n * ([see example]({% slug chartarea_chart_charts %})).\n */\nlet ChartAreaComponent = class ChartAreaComponent extends ChartAreaComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nChartAreaComponent.ɵfac = function ChartAreaComponent_Factory(t) { return new (t || ChartAreaComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nChartAreaComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ChartAreaComponent, selectors: [[\"kendo-chart-area\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function ChartAreaComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nChartAreaComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], ChartAreaComponent);\n\n/**\n * @hidden\n */\nclass LegendComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('legend', configurationService);\n this.configurationService = configurationService;\n }\n}\nLegendComponentGenerated.ɵfac = function LegendComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nLegendComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LegendComponentGenerated, inputs: { align: \"align\", background: \"background\", border: \"border\", height: \"height\", labels: \"labels\", margin: \"margin\", offsetX: \"offsetX\", offsetY: \"offsetY\", orientation: \"orientation\", padding: \"padding\", position: \"position\", reverse: \"reverse\", visible: \"visible\", width: \"width\", markers: \"markers\", spacing: \"spacing\", inactiveItems: \"inactiveItems\", item: \"item\", title: \"title\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], LegendComponentGenerated.prototype, \"align\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], LegendComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], LegendComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], LegendComponentGenerated.prototype, \"height\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], LegendComponentGenerated.prototype, \"labels\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], LegendComponentGenerated.prototype, \"margin\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], LegendComponentGenerated.prototype, \"offsetX\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], LegendComponentGenerated.prototype, \"offsetY\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], LegendComponentGenerated.prototype, \"orientation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], LegendComponentGenerated.prototype, \"padding\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], LegendComponentGenerated.prototype, \"position\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], LegendComponentGenerated.prototype, \"reverse\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], LegendComponentGenerated.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], LegendComponentGenerated.prototype, \"width\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], LegendComponentGenerated.prototype, \"markers\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], LegendComponentGenerated.prototype, \"spacing\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], LegendComponentGenerated.prototype, \"inactiveItems\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], LegendComponentGenerated.prototype, \"item\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], LegendComponentGenerated.prototype, \"title\", void 0);\n\n/**\n * The configuration options of the Chart legend\n * ([see example]({% slug legend_chart_charts %})).\n */\nlet LegendComponent = class LegendComponent extends LegendComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n this.markAsVisible();\n }\n};\nLegendComponent.ɵfac = function LegendComponent_Factory(t) { return new (t || LegendComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nLegendComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: LegendComponent, selectors: [[\"kendo-chart-legend\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function LegendComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nLegendComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], LegendComponent);\n\n/**\n * @hidden\n */\nclass LegendInactiveItemsComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('legend.inactiveItems', configurationService);\n this.configurationService = configurationService;\n }\n}\nLegendInactiveItemsComponentGenerated.ɵfac = function LegendInactiveItemsComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nLegendInactiveItemsComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LegendInactiveItemsComponentGenerated, inputs: { labels: \"labels\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], LegendInactiveItemsComponentGenerated.prototype, \"labels\", void 0);\n\n/**\n * The configuration of the inactive Chart legend items.\n *\n * @example\n *\n * ```html-no-run\n * \n * \n * \n * \n * \n * ```\n */\nlet LegendInactiveItemsComponent = class LegendInactiveItemsComponent extends LegendInactiveItemsComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nLegendInactiveItemsComponent.ɵfac = function LegendInactiveItemsComponent_Factory(t) { return new (t || LegendInactiveItemsComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nLegendInactiveItemsComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: LegendInactiveItemsComponent, selectors: [[\"kendo-chart-legend-inactive-items\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function LegendInactiveItemsComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nLegendInactiveItemsComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], LegendInactiveItemsComponent);\n\n/**\n * @hidden\n */\nclass LegendItemComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('legend.item', configurationService);\n this.configurationService = configurationService;\n }\n}\nLegendItemComponentGenerated.ɵfac = function LegendItemComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nLegendItemComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LegendItemComponentGenerated, inputs: { cursor: \"cursor\", visual: \"visual\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], LegendItemComponentGenerated.prototype, \"cursor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], LegendItemComponentGenerated.prototype, \"visual\", void 0);\n\n/**\n * The configuration of the Chart legend item.\n *\n * @example\n *\n * ```html-no-run\n * \n * \n * \n * \n * \n * ```\n */\nlet LegendItemComponent = class LegendItemComponent extends LegendItemComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nLegendItemComponent.ɵfac = function LegendItemComponent_Factory(t) { return new (t || LegendItemComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nLegendItemComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: LegendItemComponent, selectors: [[\"kendo-chart-legend-item\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function LegendItemComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nLegendItemComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], LegendItemComponent);\n\n/**\n * @hidden\n */\nclass PaneComponentGenerated extends CollectionItemComponent {\n constructor(configurationService, collectionService) {\n super(configurationService, collectionService);\n this.configurationService = configurationService;\n this.collectionService = collectionService;\n }\n}\nPaneComponentGenerated.ɵfac = function PaneComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nPaneComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: PaneComponentGenerated, inputs: { background: \"background\", border: \"border\", clip: \"clip\", height: \"height\", margin: \"margin\", name: \"name\", padding: \"padding\", title: \"title\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], PaneComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], PaneComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], PaneComponentGenerated.prototype, \"clip\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], PaneComponentGenerated.prototype, \"height\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], PaneComponentGenerated.prototype, \"margin\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], PaneComponentGenerated.prototype, \"name\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], PaneComponentGenerated.prototype, \"padding\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], PaneComponentGenerated.prototype, \"title\", void 0);\n\n/**\n * The configuration component for a Chart pane.\n *\n * @example\n * ```ts\n * import { Component } from '@angular/core';\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 * \n * \n * \n * \n * \n * \n * \n * `\n * })\n * export class AppComponent {\n * public seriesData: number[][] = [[1, 2, 3, 5], [0, 1, 0, 1]];\n * }\n * ```\n */\nlet PaneComponent = class PaneComponent extends PaneComponentGenerated {\n // Place custom properties here\n constructor(configurationService, collectionService) {\n super(configurationService, collectionService);\n this.configurationService = configurationService;\n this.collectionService = collectionService;\n }\n};\nPaneComponent.ɵfac = function PaneComponent_Factory(t) { return new (t || PaneComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService), ɵngcc0.ɵɵdirectiveInject(CollectionService)); };\nPaneComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PaneComponent, selectors: [[\"kendo-chart-pane\"], [\"kendo-chart-panes-item\"]], features: [ɵngcc0.ɵɵProvidersFeature([ConfigurationService]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function PaneComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nPaneComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService,\n CollectionService])\n], PaneComponent);\n\n/**\n * The default options for all chart panes,\n * ([see example]({% slug panes_chart_charts %}#toc-default-panes-configuration)).\n */\nlet PaneDefaultsComponent = class PaneDefaultsComponent extends SettingsComponent {\n constructor(configurationService) {\n super('paneDefaults', configurationService);\n this.configurationService = configurationService;\n }\n};\nPaneDefaultsComponent.ɵfac = function PaneDefaultsComponent_Factory(t) { return new (t || PaneDefaultsComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nPaneDefaultsComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PaneDefaultsComponent, selectors: [[\"kendo-chart-pane-defaults\"]], inputs: { background: \"background\", border: \"border\", clip: \"clip\", height: \"height\", margin: \"margin\", padding: \"padding\", title: \"title\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function PaneDefaultsComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], PaneDefaultsComponent.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], PaneDefaultsComponent.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], PaneDefaultsComponent.prototype, \"clip\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], PaneDefaultsComponent.prototype, \"height\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], PaneDefaultsComponent.prototype, \"margin\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], PaneDefaultsComponent.prototype, \"padding\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], PaneDefaultsComponent.prototype, \"title\", void 0);\nPaneDefaultsComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], PaneDefaultsComponent);\n\n/**\n * The configuration of the pane default title.\n */\nlet PaneDefaultsTitleComponent = class PaneDefaultsTitleComponent extends SettingsComponent {\n constructor(configurationService) {\n super('paneDefaults.title', configurationService);\n this.configurationService = configurationService;\n }\n};\nPaneDefaultsTitleComponent.ɵfac = function PaneDefaultsTitleComponent_Factory(t) { return new (t || PaneDefaultsTitleComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nPaneDefaultsTitleComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PaneDefaultsTitleComponent, selectors: [[\"kendo-chart-pane-defaults-title\"]], inputs: { background: \"background\", border: \"border\", color: \"color\", font: \"font\", margin: \"margin\", position: \"position\", visible: \"visible\", visual: \"visual\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function PaneDefaultsTitleComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], PaneDefaultsTitleComponent.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], PaneDefaultsTitleComponent.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], PaneDefaultsTitleComponent.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], PaneDefaultsTitleComponent.prototype, \"font\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], PaneDefaultsTitleComponent.prototype, \"margin\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], PaneDefaultsTitleComponent.prototype, \"position\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], PaneDefaultsTitleComponent.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], PaneDefaultsTitleComponent.prototype, \"visual\", void 0);\nPaneDefaultsTitleComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], PaneDefaultsTitleComponent);\n\n/**\n * @hidden\n */\nclass PanesComponentGenerated extends CollectionComponent {\n constructor(configurationService, collectionService) {\n super('panes', configurationService, collectionService);\n this.configurationService = configurationService;\n this.collectionService = collectionService;\n }\n}\nPanesComponentGenerated.ɵfac = function PanesComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nPanesComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: PanesComponentGenerated, contentQueries: function PanesComponentGenerated_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, PaneComponent, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.children = _t);\n } }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n ContentChildren(PaneComponent),\n __metadata(\"design:type\", QueryList)\n], PanesComponentGenerated.prototype, \"children\", void 0);\n\n/**\n * A collection of one or more pane configuration components.\n *\n * @example\n * ```ts\n * import { Component } from '@angular/core';\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 * `\n * })\n * class AppComponent {\n * }\n *\n * ```\n */\nlet PanesComponent = class PanesComponent extends PanesComponentGenerated {\n // Place custom properties here\n constructor(configurationService, collectionService) {\n super(configurationService, collectionService);\n this.configurationService = configurationService;\n this.collectionService = collectionService;\n }\n};\nPanesComponent.ɵfac = function PanesComponent_Factory(t) { return new (t || PanesComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService), ɵngcc0.ɵɵdirectiveInject(CollectionService)); };\nPanesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PanesComponent, selectors: [[\"kendo-chart-panes\"]], features: [ɵngcc0.ɵɵProvidersFeature([CollectionService]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function PanesComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nPanesComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService,\n CollectionService])\n], PanesComponent);\n\n/**\n * @hidden\n */\nclass PanesTitleComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('title', configurationService);\n this.configurationService = configurationService;\n }\n}\nPanesTitleComponentGenerated.ɵfac = function PanesTitleComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nPanesTitleComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: PanesTitleComponentGenerated, inputs: { background: \"background\", border: \"border\", color: \"color\", font: \"font\", margin: \"margin\", position: \"position\", text: \"text\", visible: \"visible\", visual: \"visual\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], PanesTitleComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], PanesTitleComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], PanesTitleComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], PanesTitleComponentGenerated.prototype, \"font\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], PanesTitleComponentGenerated.prototype, \"margin\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], PanesTitleComponentGenerated.prototype, \"position\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], PanesTitleComponentGenerated.prototype, \"text\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], PanesTitleComponentGenerated.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], PanesTitleComponentGenerated.prototype, \"visual\", void 0);\n\n/**\n * The configuration of the Chart pane title.\n */\nlet PanesTitleComponent = class PanesTitleComponent extends PanesTitleComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nPanesTitleComponent.ɵfac = function PanesTitleComponent_Factory(t) { return new (t || PanesTitleComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nPanesTitleComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PanesTitleComponent, selectors: [[\"kendo-chart-pane-title\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function PanesTitleComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nPanesTitleComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], PanesTitleComponent);\n\n/**\n * @hidden\n */\nclass PlotAreaComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('plotArea', configurationService);\n this.configurationService = configurationService;\n }\n}\nPlotAreaComponentGenerated.ɵfac = function PlotAreaComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nPlotAreaComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: PlotAreaComponentGenerated, inputs: { background: \"background\", border: \"border\", margin: \"margin\", opacity: \"opacity\", padding: \"padding\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], PlotAreaComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], PlotAreaComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], PlotAreaComponentGenerated.prototype, \"margin\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], PlotAreaComponentGenerated.prototype, \"opacity\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], PlotAreaComponentGenerated.prototype, \"padding\", void 0);\n\n/**\n * The configuration options of the plot area\n * ([see example]({% slug plotarea_chart_charts %})).\n * The plot area is the area which displays the series.\n */\nlet PlotAreaComponent = class PlotAreaComponent extends PlotAreaComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nPlotAreaComponent.ɵfac = function PlotAreaComponent_Factory(t) { return new (t || PlotAreaComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nPlotAreaComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PlotAreaComponent, selectors: [[\"kendo-chart-plot-area\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function PlotAreaComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nPlotAreaComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], PlotAreaComponent);\n\n/**\n * @hidden\n */\nclass SeriesComponentGenerated extends CollectionComponent {\n constructor(configurationService, collectionService) {\n super('series', configurationService, collectionService);\n this.configurationService = configurationService;\n this.collectionService = collectionService;\n }\n}\nSeriesComponentGenerated.ɵfac = function SeriesComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nSeriesComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SeriesComponentGenerated, contentQueries: function SeriesComponentGenerated_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, SeriesItemComponent, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.children = _t);\n } }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n ContentChildren(SeriesItemComponent),\n __metadata(\"design:type\", QueryList)\n], SeriesComponentGenerated.prototype, \"children\", void 0);\n\n/**\n * A collection of one or more series items.\n *\n * @example\n * ```ts\n * import { Component } from '@angular/core';\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * \n * `\n * })\n * class AppComponent {\n * }\n *\n * ```\n */\nlet SeriesComponent = class SeriesComponent extends SeriesComponentGenerated {\n // Place custom properties here\n constructor(configurationService, collectionService, tooltipTemplateService) {\n super(configurationService, collectionService);\n this.configurationService = configurationService;\n this.collectionService = collectionService;\n this.tooltipTemplateService = tooltipTemplateService;\n }\n ngAfterContentChecked() {\n this.readTooltipTemplates();\n }\n readTooltipTemplates() {\n const templates = this.children.map((item) => item.seriesTooltipTemplateRef);\n this.tooltipTemplateService.setSeriesTemplates(templates);\n }\n};\nSeriesComponent.ɵfac = function SeriesComponent_Factory(t) { return new (t || SeriesComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService), ɵngcc0.ɵɵdirectiveInject(CollectionService), ɵngcc0.ɵɵdirectiveInject(TooltipTemplateService)); };\nSeriesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SeriesComponent, selectors: [[\"kendo-chart-series\"]], features: [ɵngcc0.ɵɵProvidersFeature([CollectionService]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function SeriesComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nSeriesComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService,\n CollectionService,\n TooltipTemplateService])\n], SeriesComponent);\n\n/**\n * @hidden\n */\nclass SeriesDefaultsComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('seriesDefaults', configurationService);\n this.configurationService = configurationService;\n }\n}\nSeriesDefaultsComponentGenerated.ɵfac = function SeriesDefaultsComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nSeriesDefaultsComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SeriesDefaultsComponentGenerated, inputs: { border: \"border\", gap: \"gap\", highlight: \"highlight\", overlay: \"overlay\", spacing: \"spacing\", stack: \"stack\", type: \"type\", visual: \"visual\", labels: \"labels\", notes: \"notes\", tooltip: \"tooltip\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesDefaultsComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SeriesDefaultsComponentGenerated.prototype, \"gap\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesDefaultsComponentGenerated.prototype, \"highlight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesDefaultsComponentGenerated.prototype, \"overlay\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SeriesDefaultsComponentGenerated.prototype, \"spacing\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesDefaultsComponentGenerated.prototype, \"stack\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesDefaultsComponentGenerated.prototype, \"type\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], SeriesDefaultsComponentGenerated.prototype, \"visual\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesDefaultsComponentGenerated.prototype, \"labels\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesDefaultsComponentGenerated.prototype, \"notes\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesDefaultsComponentGenerated.prototype, \"tooltip\", void 0);\n\n/**\n * The default options for all series\n * ([see example]({% slug series_chart_charts %}#toc-default-series-configuration)).\n */\nlet SeriesDefaultsComponent = class SeriesDefaultsComponent extends SeriesDefaultsComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nSeriesDefaultsComponent.ɵfac = function SeriesDefaultsComponent_Factory(t) { return new (t || SeriesDefaultsComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nSeriesDefaultsComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SeriesDefaultsComponent, selectors: [[\"kendo-chart-series-defaults\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function SeriesDefaultsComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nSeriesDefaultsComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], SeriesDefaultsComponent);\n\n/**\n * @hidden\n */\nclass SeriesDefaultsLabelsComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('seriesDefaults.labels', configurationService);\n this.configurationService = configurationService;\n }\n}\nSeriesDefaultsLabelsComponentGenerated.ɵfac = function SeriesDefaultsLabelsComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nSeriesDefaultsLabelsComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SeriesDefaultsLabelsComponentGenerated, inputs: { background: \"background\", border: \"border\", color: \"color\", content: \"content\", font: \"font\", format: \"format\", margin: \"margin\", padding: \"padding\", visible: \"visible\", visual: \"visual\", from: \"from\", to: \"to\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesDefaultsLabelsComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesDefaultsLabelsComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesDefaultsLabelsComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], SeriesDefaultsLabelsComponentGenerated.prototype, \"content\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesDefaultsLabelsComponentGenerated.prototype, \"font\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesDefaultsLabelsComponentGenerated.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesDefaultsLabelsComponentGenerated.prototype, \"margin\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesDefaultsLabelsComponentGenerated.prototype, \"padding\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SeriesDefaultsLabelsComponentGenerated.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], SeriesDefaultsLabelsComponentGenerated.prototype, \"visual\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesDefaultsLabelsComponentGenerated.prototype, \"from\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesDefaultsLabelsComponentGenerated.prototype, \"to\", void 0);\n\n/**\n * The configuration of the Chart series label.\n */\nlet SeriesDefaultsLabelsComponent = class SeriesDefaultsLabelsComponent extends SeriesDefaultsLabelsComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n this.markAsVisible();\n }\n};\nSeriesDefaultsLabelsComponent.ɵfac = function SeriesDefaultsLabelsComponent_Factory(t) { return new (t || SeriesDefaultsLabelsComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nSeriesDefaultsLabelsComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SeriesDefaultsLabelsComponent, selectors: [[\"kendo-chart-series-defaults-labels\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function SeriesDefaultsLabelsComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nSeriesDefaultsLabelsComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], SeriesDefaultsLabelsComponent);\n\n/**\n * @hidden\n */\nclass SeriesDefaultsLabelsFromComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('seriesDefaults.labels.from', configurationService);\n this.configurationService = configurationService;\n }\n}\nSeriesDefaultsLabelsFromComponentGenerated.ɵfac = function SeriesDefaultsLabelsFromComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nSeriesDefaultsLabelsFromComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SeriesDefaultsLabelsFromComponentGenerated, inputs: { background: \"background\", border: \"border\", color: \"color\", content: \"content\", font: \"font\", format: \"format\", margin: \"margin\", padding: \"padding\", visible: \"visible\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesDefaultsLabelsFromComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesDefaultsLabelsFromComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesDefaultsLabelsFromComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], SeriesDefaultsLabelsFromComponentGenerated.prototype, \"content\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesDefaultsLabelsFromComponentGenerated.prototype, \"font\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesDefaultsLabelsFromComponentGenerated.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesDefaultsLabelsFromComponentGenerated.prototype, \"margin\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesDefaultsLabelsFromComponentGenerated.prototype, \"padding\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SeriesDefaultsLabelsFromComponentGenerated.prototype, \"visible\", void 0);\n\n/**\n * The `from` label configuration of the Chart series.\n */\nlet SeriesDefaultsLabelsFromComponent = class SeriesDefaultsLabelsFromComponent extends SeriesDefaultsLabelsFromComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n this.markAsVisible();\n }\n};\nSeriesDefaultsLabelsFromComponent.ɵfac = function SeriesDefaultsLabelsFromComponent_Factory(t) { return new (t || SeriesDefaultsLabelsFromComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nSeriesDefaultsLabelsFromComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SeriesDefaultsLabelsFromComponent, selectors: [[\"kendo-chart-series-defaults-labels-from\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function SeriesDefaultsLabelsFromComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nSeriesDefaultsLabelsFromComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], SeriesDefaultsLabelsFromComponent);\n\n/**\n * @hidden\n */\nclass SeriesDefaultsLabelsToComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('seriesDefaults.labels.to', configurationService);\n this.configurationService = configurationService;\n }\n}\nSeriesDefaultsLabelsToComponentGenerated.ɵfac = function SeriesDefaultsLabelsToComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nSeriesDefaultsLabelsToComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SeriesDefaultsLabelsToComponentGenerated, inputs: { background: \"background\", border: \"border\", color: \"color\", content: \"content\", font: \"font\", format: \"format\", margin: \"margin\", padding: \"padding\", visible: \"visible\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesDefaultsLabelsToComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesDefaultsLabelsToComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesDefaultsLabelsToComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], SeriesDefaultsLabelsToComponentGenerated.prototype, \"content\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesDefaultsLabelsToComponentGenerated.prototype, \"font\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesDefaultsLabelsToComponentGenerated.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesDefaultsLabelsToComponentGenerated.prototype, \"margin\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesDefaultsLabelsToComponentGenerated.prototype, \"padding\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SeriesDefaultsLabelsToComponentGenerated.prototype, \"visible\", void 0);\n\n/**\n * The `to` label configuration of the Chart series.\n */\nlet SeriesDefaultsLabelsToComponent = class SeriesDefaultsLabelsToComponent extends SeriesDefaultsLabelsToComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n this.markAsVisible();\n }\n};\nSeriesDefaultsLabelsToComponent.ɵfac = function SeriesDefaultsLabelsToComponent_Factory(t) { return new (t || SeriesDefaultsLabelsToComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nSeriesDefaultsLabelsToComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SeriesDefaultsLabelsToComponent, selectors: [[\"kendo-chart-series-defaults-labels-to\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function SeriesDefaultsLabelsToComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nSeriesDefaultsLabelsToComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], SeriesDefaultsLabelsToComponent);\n\n/**\n * @hidden\n */\nclass SeriesDefaultsNotesComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('seriesDefaults.notes', configurationService);\n this.configurationService = configurationService;\n }\n}\nSeriesDefaultsNotesComponentGenerated.ɵfac = function SeriesDefaultsNotesComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nSeriesDefaultsNotesComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SeriesDefaultsNotesComponentGenerated, inputs: { line: \"line\", visual: \"visual\", icon: \"icon\", label: \"label\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesDefaultsNotesComponentGenerated.prototype, \"line\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], SeriesDefaultsNotesComponentGenerated.prototype, \"visual\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesDefaultsNotesComponentGenerated.prototype, \"icon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesDefaultsNotesComponentGenerated.prototype, \"label\", void 0);\n\n/**\n * The configuration of the [`seriesDefaults`]({% slug api_charts_seriesdefaultscomponent %}) notes.\n */\nlet SeriesDefaultsNotesComponent = class SeriesDefaultsNotesComponent extends SeriesDefaultsNotesComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nSeriesDefaultsNotesComponent.ɵfac = function SeriesDefaultsNotesComponent_Factory(t) { return new (t || SeriesDefaultsNotesComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nSeriesDefaultsNotesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SeriesDefaultsNotesComponent, selectors: [[\"kendo-chart-series-defaults-notes\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function SeriesDefaultsNotesComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nSeriesDefaultsNotesComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], SeriesDefaultsNotesComponent);\n\n/**\n * @hidden\n */\nclass SeriesDefaultsNotesIconComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('seriesDefaults.notes.icon', configurationService);\n this.configurationService = configurationService;\n }\n}\nSeriesDefaultsNotesIconComponentGenerated.ɵfac = function SeriesDefaultsNotesIconComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nSeriesDefaultsNotesIconComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SeriesDefaultsNotesIconComponentGenerated, inputs: { background: \"background\", border: \"border\", size: \"size\", type: \"type\", visible: \"visible\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesDefaultsNotesIconComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesDefaultsNotesIconComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SeriesDefaultsNotesIconComponentGenerated.prototype, \"size\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesDefaultsNotesIconComponentGenerated.prototype, \"type\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SeriesDefaultsNotesIconComponentGenerated.prototype, \"visible\", void 0);\n\n/**\n * The icon of the notes.\n */\nlet SeriesDefaultsNotesIconComponent = class SeriesDefaultsNotesIconComponent extends SeriesDefaultsNotesIconComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nSeriesDefaultsNotesIconComponent.ɵfac = function SeriesDefaultsNotesIconComponent_Factory(t) { return new (t || SeriesDefaultsNotesIconComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nSeriesDefaultsNotesIconComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SeriesDefaultsNotesIconComponent, selectors: [[\"kendo-chart-series-defaults-notes-icon\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function SeriesDefaultsNotesIconComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nSeriesDefaultsNotesIconComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], SeriesDefaultsNotesIconComponent);\n\n/**\n * @hidden\n */\nclass SeriesDefaultsNotesLabelComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('seriesDefaults.notes.label', configurationService);\n this.configurationService = configurationService;\n }\n}\nSeriesDefaultsNotesLabelComponentGenerated.ɵfac = function SeriesDefaultsNotesLabelComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nSeriesDefaultsNotesLabelComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SeriesDefaultsNotesLabelComponentGenerated, inputs: { background: \"background\", border: \"border\", color: \"color\", content: \"content\", font: \"font\", format: \"format\", position: \"position\", rotation: \"rotation\", visible: \"visible\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesDefaultsNotesLabelComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesDefaultsNotesLabelComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesDefaultsNotesLabelComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], SeriesDefaultsNotesLabelComponentGenerated.prototype, \"content\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesDefaultsNotesLabelComponentGenerated.prototype, \"font\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesDefaultsNotesLabelComponentGenerated.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesDefaultsNotesLabelComponentGenerated.prototype, \"position\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SeriesDefaultsNotesLabelComponentGenerated.prototype, \"rotation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SeriesDefaultsNotesLabelComponentGenerated.prototype, \"visible\", void 0);\n\n/**\n * The label of the notes.\n */\nlet SeriesDefaultsNotesLabelComponent = class SeriesDefaultsNotesLabelComponent extends SeriesDefaultsNotesLabelComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nSeriesDefaultsNotesLabelComponent.ɵfac = function SeriesDefaultsNotesLabelComponent_Factory(t) { return new (t || SeriesDefaultsNotesLabelComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nSeriesDefaultsNotesLabelComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SeriesDefaultsNotesLabelComponent, selectors: [[\"kendo-chart-series-defaults-notes-label\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function SeriesDefaultsNotesLabelComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nSeriesDefaultsNotesLabelComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], SeriesDefaultsNotesLabelComponent);\n\n/**\n * @hidden\n */\nclass SeriesDefaultsTooltipComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('seriesDefaults.tooltip', configurationService);\n this.configurationService = configurationService;\n }\n}\nSeriesDefaultsTooltipComponentGenerated.ɵfac = function SeriesDefaultsTooltipComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nSeriesDefaultsTooltipComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SeriesDefaultsTooltipComponentGenerated, inputs: { background: \"background\", border: \"border\", color: \"color\", font: \"font\", format: \"format\", padding: \"padding\", visible: \"visible\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesDefaultsTooltipComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesDefaultsTooltipComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesDefaultsTooltipComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesDefaultsTooltipComponentGenerated.prototype, \"font\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesDefaultsTooltipComponentGenerated.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesDefaultsTooltipComponentGenerated.prototype, \"padding\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SeriesDefaultsTooltipComponentGenerated.prototype, \"visible\", void 0);\n\n/**\n * The configuration options of the Chart series tooltip.\n */\nlet SeriesDefaultsTooltipComponent = class SeriesDefaultsTooltipComponent extends SeriesDefaultsTooltipComponentGenerated {\n // Place custom properties here.\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n this.markAsVisible();\n }\n};\nSeriesDefaultsTooltipComponent.ɵfac = function SeriesDefaultsTooltipComponent_Factory(t) { return new (t || SeriesDefaultsTooltipComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nSeriesDefaultsTooltipComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SeriesDefaultsTooltipComponent, selectors: [[\"kendo-chart-series-defaults-tooltip\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function SeriesDefaultsTooltipComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nSeriesDefaultsTooltipComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], SeriesDefaultsTooltipComponent);\n\n/**\n * @hidden\n */\nclass SeriesErrorBarsComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('errorBars', configurationService);\n this.configurationService = configurationService;\n }\n}\nSeriesErrorBarsComponentGenerated.ɵfac = function SeriesErrorBarsComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nSeriesErrorBarsComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SeriesErrorBarsComponentGenerated, inputs: { color: \"color\", endCaps: \"endCaps\", line: \"line\", value: \"value\", visual: \"visual\", xValue: \"xValue\", yValue: \"yValue\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesErrorBarsComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SeriesErrorBarsComponentGenerated.prototype, \"endCaps\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesErrorBarsComponentGenerated.prototype, \"line\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesErrorBarsComponentGenerated.prototype, \"value\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], SeriesErrorBarsComponentGenerated.prototype, \"visual\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesErrorBarsComponentGenerated.prototype, \"xValue\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesErrorBarsComponentGenerated.prototype, \"yValue\", void 0);\n\n/**\n * The error bars of the Chart series\n * ([see example]({% slug errorbars_chart_charts %})).\n */\nlet SeriesErrorBarsComponent = class SeriesErrorBarsComponent extends SeriesErrorBarsComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nSeriesErrorBarsComponent.ɵfac = function SeriesErrorBarsComponent_Factory(t) { return new (t || SeriesErrorBarsComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nSeriesErrorBarsComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SeriesErrorBarsComponent, selectors: [[\"kendo-chart-series-item-error-bars\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function SeriesErrorBarsComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nSeriesErrorBarsComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], SeriesErrorBarsComponent);\n\n/**\n * @hidden\n */\nclass SeriesExtremesComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('extremes', configurationService);\n this.configurationService = configurationService;\n }\n}\nSeriesExtremesComponentGenerated.ɵfac = function SeriesExtremesComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nSeriesExtremesComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SeriesExtremesComponentGenerated, inputs: { background: \"background\", border: \"border\", rotation: \"rotation\", size: \"size\", type: \"type\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesExtremesComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesExtremesComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SeriesExtremesComponentGenerated.prototype, \"rotation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SeriesExtremesComponentGenerated.prototype, \"size\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesExtremesComponentGenerated.prototype, \"type\", void 0);\n\n/**\n * The configuration of the Chart series extremes.\n * Applies to extreme outliers.\n * For more information, refer to [`series.outliers`]({% slug api_charts_seriesitemcomponent %}#toc-outliers).\n */\nlet SeriesExtremesComponent = class SeriesExtremesComponent extends SeriesExtremesComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nSeriesExtremesComponent.ɵfac = function SeriesExtremesComponent_Factory(t) { return new (t || SeriesExtremesComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nSeriesExtremesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SeriesExtremesComponent, selectors: [[\"kendo-chart-series-item-extremes\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function SeriesExtremesComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nSeriesExtremesComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], SeriesExtremesComponent);\n\n/**\n * @hidden\n */\nclass SeriesHighlightComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('highlight', configurationService);\n this.configurationService = configurationService;\n }\n}\nSeriesHighlightComponentGenerated.ɵfac = function SeriesHighlightComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nSeriesHighlightComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SeriesHighlightComponentGenerated, inputs: { border: \"border\", color: \"color\", line: \"line\", markers: \"markers\", opacity: \"opacity\", toggle: \"toggle\", visible: \"visible\", visual: \"visual\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesHighlightComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesHighlightComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesHighlightComponentGenerated.prototype, \"line\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesHighlightComponentGenerated.prototype, \"markers\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SeriesHighlightComponentGenerated.prototype, \"opacity\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], SeriesHighlightComponentGenerated.prototype, \"toggle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SeriesHighlightComponentGenerated.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], SeriesHighlightComponentGenerated.prototype, \"visual\", void 0);\n\n/**\n * The Chart series highlighting configuration options.\n */\nlet SeriesHighlightComponent = class SeriesHighlightComponent extends SeriesHighlightComponentGenerated {\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nSeriesHighlightComponent.ɵfac = function SeriesHighlightComponent_Factory(t) { return new (t || SeriesHighlightComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nSeriesHighlightComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SeriesHighlightComponent, selectors: [[\"kendo-chart-series-item-highlight\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function SeriesHighlightComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nSeriesHighlightComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], SeriesHighlightComponent);\n\n/**\n * @hidden\n */\nclass SeriesLabelsComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('labels', configurationService);\n this.configurationService = configurationService;\n }\n}\nSeriesLabelsComponentGenerated.ɵfac = function SeriesLabelsComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nSeriesLabelsComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SeriesLabelsComponentGenerated, inputs: { align: \"align\", background: \"background\", border: \"border\", color: \"color\", content: \"content\", distance: \"distance\", font: \"font\", format: \"format\", margin: \"margin\", padding: \"padding\", position: \"position\", rotation: \"rotation\", visible: \"visible\", visual: \"visual\", from: \"from\", to: \"to\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesLabelsComponentGenerated.prototype, \"align\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesLabelsComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesLabelsComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesLabelsComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], SeriesLabelsComponentGenerated.prototype, \"content\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SeriesLabelsComponentGenerated.prototype, \"distance\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesLabelsComponentGenerated.prototype, \"font\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesLabelsComponentGenerated.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesLabelsComponentGenerated.prototype, \"margin\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesLabelsComponentGenerated.prototype, \"padding\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesLabelsComponentGenerated.prototype, \"position\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SeriesLabelsComponentGenerated.prototype, \"rotation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SeriesLabelsComponentGenerated.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], SeriesLabelsComponentGenerated.prototype, \"visual\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesLabelsComponentGenerated.prototype, \"from\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesLabelsComponentGenerated.prototype, \"to\", void 0);\n\n/**\n * The configuration of the Chart series label\n * ([see example]({% slug labels_chart_charts %})).\n */\nlet SeriesLabelsComponent = class SeriesLabelsComponent extends SeriesLabelsComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n this.markAsVisible();\n }\n};\nSeriesLabelsComponent.ɵfac = function SeriesLabelsComponent_Factory(t) { return new (t || SeriesLabelsComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nSeriesLabelsComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SeriesLabelsComponent, selectors: [[\"kendo-chart-series-item-labels\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function SeriesLabelsComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nSeriesLabelsComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], SeriesLabelsComponent);\n\n/**\n * @hidden\n */\nclass SeriesLabelsFromComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('labels.from', configurationService);\n this.configurationService = configurationService;\n }\n}\nSeriesLabelsFromComponentGenerated.ɵfac = function SeriesLabelsFromComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nSeriesLabelsFromComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SeriesLabelsFromComponentGenerated, inputs: { background: \"background\", border: \"border\", color: \"color\", content: \"content\", font: \"font\", format: \"format\", margin: \"margin\", padding: \"padding\", position: \"position\", visible: \"visible\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesLabelsFromComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesLabelsFromComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesLabelsFromComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], SeriesLabelsFromComponentGenerated.prototype, \"content\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesLabelsFromComponentGenerated.prototype, \"font\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesLabelsFromComponentGenerated.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesLabelsFromComponentGenerated.prototype, \"margin\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesLabelsFromComponentGenerated.prototype, \"padding\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesLabelsFromComponentGenerated.prototype, \"position\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SeriesLabelsFromComponentGenerated.prototype, \"visible\", void 0);\n\n/**\n * The `from` label configuration of the Chart series.\n */\nlet SeriesLabelsFromComponent = class SeriesLabelsFromComponent extends SeriesLabelsFromComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n this.markAsVisible();\n }\n};\nSeriesLabelsFromComponent.ɵfac = function SeriesLabelsFromComponent_Factory(t) { return new (t || SeriesLabelsFromComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nSeriesLabelsFromComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SeriesLabelsFromComponent, selectors: [[\"kendo-chart-series-item-labels-from\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function SeriesLabelsFromComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nSeriesLabelsFromComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], SeriesLabelsFromComponent);\n\n/**\n * @hidden\n */\nclass SeriesLabelsToComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('labels.to', configurationService);\n this.configurationService = configurationService;\n }\n}\nSeriesLabelsToComponentGenerated.ɵfac = function SeriesLabelsToComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nSeriesLabelsToComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SeriesLabelsToComponentGenerated, inputs: { background: \"background\", border: \"border\", color: \"color\", content: \"content\", font: \"font\", format: \"format\", margin: \"margin\", padding: \"padding\", position: \"position\", visible: \"visible\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesLabelsToComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesLabelsToComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesLabelsToComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], SeriesLabelsToComponentGenerated.prototype, \"content\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesLabelsToComponentGenerated.prototype, \"font\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesLabelsToComponentGenerated.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesLabelsToComponentGenerated.prototype, \"margin\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesLabelsToComponentGenerated.prototype, \"padding\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesLabelsToComponentGenerated.prototype, \"position\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SeriesLabelsToComponentGenerated.prototype, \"visible\", void 0);\n\n/**\n * The `to` label configuration of the Chart series.\n */\nlet SeriesLabelsToComponent = class SeriesLabelsToComponent extends SeriesLabelsToComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n this.markAsVisible();\n }\n};\nSeriesLabelsToComponent.ɵfac = function SeriesLabelsToComponent_Factory(t) { return new (t || SeriesLabelsToComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nSeriesLabelsToComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SeriesLabelsToComponent, selectors: [[\"kendo-chart-series-item-labels-to\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function SeriesLabelsToComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nSeriesLabelsToComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], SeriesLabelsToComponent);\n\n/**\n * @hidden\n */\nclass SeriesMarkersComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('markers', configurationService);\n this.configurationService = configurationService;\n }\n}\nSeriesMarkersComponentGenerated.ɵfac = function SeriesMarkersComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nSeriesMarkersComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SeriesMarkersComponentGenerated, inputs: { background: \"background\", border: \"border\", rotation: \"rotation\", size: \"size\", type: \"type\", visible: \"visible\", visual: \"visual\", from: \"from\", to: \"to\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesMarkersComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesMarkersComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SeriesMarkersComponentGenerated.prototype, \"rotation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SeriesMarkersComponentGenerated.prototype, \"size\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesMarkersComponentGenerated.prototype, \"type\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SeriesMarkersComponentGenerated.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], SeriesMarkersComponentGenerated.prototype, \"visual\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesMarkersComponentGenerated.prototype, \"from\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesMarkersComponentGenerated.prototype, \"to\", void 0);\n\n/**\n * The configuration of the Chart series marker.\n *\n * @example\n * ```ts\n * import { Component } from '@angular/core';\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * \n * \n * \n * \n * `\n * })\n * export class AppComponent {\n * public series: any[] = [{\n * name: \"India\",\n * data: [3.907, 7.943, 7.848, 9.284, 9.263, 9.801, 3.890, 8.238, 9.552, 6.855],\n * markers: {\n * background: 'red',\n * size: 20,\n * type: 'circle'\n * }\n * }, {\n * name: \"Russian Federation\",\n * data: [4.743, 7.295, 7.175, 6.376, 8.153, 8.535, 5.247, -7.832, 4.3, 4.3],\n * markers: {\n * background: 'yellow',\n * size: 10,\n * type: 'square',\n * rotation: 45\n * }\n * }, {\n * name: \"Germany\",\n * data: [0.010, -0.375, 1.161, 0.684, 3.7, 3.269, 1.083, -5.127, 3.690, 2.995],\n * markers: {\n * background: 'green',\n * size: 20,\n * type: 'triangle'\n * }\n * },{\n * name: \"World\",\n * data: [1.988, 2.733, 3.994, 3.464, 4.001, 3.939, 1.333, -2.245, 4.339, 2.727],\n * markers: {\n * background: 'blue',\n * size: 10,\n * type: 'cross'\n * }\n * }];\n * public categories: number[] = [2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011];\n * }\n * ```\n */\nlet SeriesMarkersComponent = class SeriesMarkersComponent extends SeriesMarkersComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nSeriesMarkersComponent.ɵfac = function SeriesMarkersComponent_Factory(t) { return new (t || SeriesMarkersComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nSeriesMarkersComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SeriesMarkersComponent, selectors: [[\"kendo-chart-series-item-markers\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function SeriesMarkersComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nSeriesMarkersComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], SeriesMarkersComponent);\n\n/**\n * @hidden\n */\nclass SeriesNotesComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('notes', configurationService);\n this.configurationService = configurationService;\n }\n}\nSeriesNotesComponentGenerated.ɵfac = function SeriesNotesComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nSeriesNotesComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SeriesNotesComponentGenerated, inputs: { line: \"line\", position: \"position\", visual: \"visual\", icon: \"icon\", label: \"label\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesNotesComponentGenerated.prototype, \"line\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesNotesComponentGenerated.prototype, \"position\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], SeriesNotesComponentGenerated.prototype, \"visual\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesNotesComponentGenerated.prototype, \"icon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesNotesComponentGenerated.prototype, \"label\", void 0);\n\n/**\n * The series notes configuration\n * ([see example]({% slug notes_chart_charts %})).\n */\nlet SeriesNotesComponent = class SeriesNotesComponent extends SeriesNotesComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nSeriesNotesComponent.ɵfac = function SeriesNotesComponent_Factory(t) { return new (t || SeriesNotesComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nSeriesNotesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SeriesNotesComponent, selectors: [[\"kendo-chart-series-item-notes\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function SeriesNotesComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nSeriesNotesComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], SeriesNotesComponent);\n\n/**\n * @hidden\n */\nclass SeriesNotesIconComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('notes.icon', configurationService);\n this.configurationService = configurationService;\n }\n}\nSeriesNotesIconComponentGenerated.ɵfac = function SeriesNotesIconComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nSeriesNotesIconComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SeriesNotesIconComponentGenerated, inputs: { background: \"background\", border: \"border\", size: \"size\", type: \"type\", visible: \"visible\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesNotesIconComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesNotesIconComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SeriesNotesIconComponentGenerated.prototype, \"size\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesNotesIconComponentGenerated.prototype, \"type\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SeriesNotesIconComponentGenerated.prototype, \"visible\", void 0);\n\n/**\n * The icon of the notes.\n */\nlet SeriesNotesIconComponent = class SeriesNotesIconComponent extends SeriesNotesIconComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nSeriesNotesIconComponent.ɵfac = function SeriesNotesIconComponent_Factory(t) { return new (t || SeriesNotesIconComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nSeriesNotesIconComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SeriesNotesIconComponent, selectors: [[\"kendo-chart-series-item-notes-icon\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function SeriesNotesIconComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nSeriesNotesIconComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], SeriesNotesIconComponent);\n\n/**\n * @hidden\n */\nclass SeriesNotesLabelComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('notes.label', configurationService);\n this.configurationService = configurationService;\n }\n}\nSeriesNotesLabelComponentGenerated.ɵfac = function SeriesNotesLabelComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nSeriesNotesLabelComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SeriesNotesLabelComponentGenerated, inputs: { background: \"background\", border: \"border\", color: \"color\", content: \"content\", font: \"font\", format: \"format\", position: \"position\", rotation: \"rotation\", visible: \"visible\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesNotesLabelComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesNotesLabelComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesNotesLabelComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], SeriesNotesLabelComponentGenerated.prototype, \"content\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesNotesLabelComponentGenerated.prototype, \"font\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesNotesLabelComponentGenerated.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesNotesLabelComponentGenerated.prototype, \"position\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SeriesNotesLabelComponentGenerated.prototype, \"rotation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SeriesNotesLabelComponentGenerated.prototype, \"visible\", void 0);\n\n/**\n * The label of the notes.\n */\nlet SeriesNotesLabelComponent = class SeriesNotesLabelComponent extends SeriesNotesLabelComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nSeriesNotesLabelComponent.ɵfac = function SeriesNotesLabelComponent_Factory(t) { return new (t || SeriesNotesLabelComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nSeriesNotesLabelComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SeriesNotesLabelComponent, selectors: [[\"kendo-chart-series-item-notes-label\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function SeriesNotesLabelComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nSeriesNotesLabelComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], SeriesNotesLabelComponent);\n\n/**\n * @hidden\n */\nclass SeriesOutliersComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('outliers', configurationService);\n this.configurationService = configurationService;\n }\n}\nSeriesOutliersComponentGenerated.ɵfac = function SeriesOutliersComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nSeriesOutliersComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SeriesOutliersComponentGenerated, inputs: { background: \"background\", border: \"border\", rotation: \"rotation\", size: \"size\", type: \"type\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesOutliersComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SeriesOutliersComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SeriesOutliersComponentGenerated.prototype, \"rotation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SeriesOutliersComponentGenerated.prototype, \"size\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SeriesOutliersComponentGenerated.prototype, \"type\", void 0);\n\n/**\n * The configuration of the Chart series outliers.\n * Applies to mild outliers.\n * For more information, refer to the [`series.extremes`]({% slug api_charts_seriesitemcomponent %}#toc-extremes) option.\n */\nlet SeriesOutliersComponent = class SeriesOutliersComponent extends SeriesOutliersComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nSeriesOutliersComponent.ɵfac = function SeriesOutliersComponent_Factory(t) { return new (t || SeriesOutliersComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nSeriesOutliersComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SeriesOutliersComponent, selectors: [[\"kendo-chart-series-item-outliers\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function SeriesOutliersComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nSeriesOutliersComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], SeriesOutliersComponent);\n\n/**\n * @hidden\n */\nclass TitleComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('title', configurationService);\n this.configurationService = configurationService;\n }\n}\nTitleComponentGenerated.ɵfac = function TitleComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nTitleComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: TitleComponentGenerated, inputs: { align: \"align\", background: \"background\", border: \"border\", color: \"color\", font: \"font\", margin: \"margin\", padding: \"padding\", position: \"position\", text: \"text\", visible: \"visible\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TitleComponentGenerated.prototype, \"align\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TitleComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], TitleComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TitleComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TitleComponentGenerated.prototype, \"font\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], TitleComponentGenerated.prototype, \"margin\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], TitleComponentGenerated.prototype, \"padding\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TitleComponentGenerated.prototype, \"position\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TitleComponentGenerated.prototype, \"text\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TitleComponentGenerated.prototype, \"visible\", void 0);\n\n/**\n * The configuration options of the Chart title or text\n * ([see example]({% slug title_chart_charts %})).\n *\n * @example\n * ```ts-preview\n * import { Component } from '@angular/core';\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * \n * \n * \n * \n *

\n * \n * `\n * })\n * export class AppComponent {\n * public isVisible = true;\n * public borderOptions = {\n * color: \"rgba(255, 0, 0, 0.8)\",\n * dashType: 'dash',\n * width: 2\n * };\n *\n * public series: any[] = [{\n * name: \"India\",\n * data: [3.907, 7.943, 7.848, 9.284, 9.263, 9.801, 3.890, 8.238, 9.552, 6.855]\n * }, {\n * name: \"Russian Federation\",\n * data: [4.743, 7.295, 7.175, 6.376, 8.153, 8.535, 5.247, -7.832, 4.3, 4.3]\n * }, {\n * name: \"Germany\",\n * data: [0.010, -0.375, 1.161, 0.684, 3.7, 3.269, 1.083, -5.127, 3.690, 2.995]\n * },{\n * name: \"World\",\n * data: [1.988, 2.733, 3.994, 3.464, 4.001, 3.939, 1.333, -2.245, 4.339, 2.727]\n * }];\n * public categories: number[] = [2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011];\n * }\n * ```\n */\nlet TitleComponent = class TitleComponent extends TitleComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nTitleComponent.ɵfac = function TitleComponent_Factory(t) { return new (t || TitleComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nTitleComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: TitleComponent, selectors: [[\"kendo-chart-title\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function TitleComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nTitleComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], TitleComponent);\n\n/**\n * @hidden\n */\nclass TooltipComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('tooltip', configurationService);\n this.configurationService = configurationService;\n }\n}\nTooltipComponentGenerated.ɵfac = function TooltipComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nTooltipComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: TooltipComponentGenerated, inputs: { background: \"background\", border: \"border\", color: \"color\", font: \"font\", format: \"format\", opacity: \"opacity\", padding: \"padding\", shared: \"shared\", visible: \"visible\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TooltipComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], TooltipComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TooltipComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TooltipComponentGenerated.prototype, \"font\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TooltipComponentGenerated.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], TooltipComponentGenerated.prototype, \"opacity\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], TooltipComponentGenerated.prototype, \"padding\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TooltipComponentGenerated.prototype, \"shared\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TooltipComponentGenerated.prototype, \"visible\", void 0);\n\n/**\n * The configuration options of the Chart series tooltip\n * ([see example]({% slug tooltips_chart_charts %})).\n */\nlet TooltipComponent = class TooltipComponent extends TooltipComponentGenerated {\n constructor(configurationService, templateService) {\n super(configurationService);\n this.configurationService = configurationService;\n this.templateService = templateService;\n this.markAsVisible();\n }\n ngAfterContentChecked() {\n this.templateService.setTemplate(this.seriesTooltipTemplate ? this.seriesTooltipTemplate.templateRef : null);\n this.templateService.setSharedTemplate(this.sharedTooltipTemplate ? this.sharedTooltipTemplate.templateRef : null);\n }\n};\nTooltipComponent.ɵfac = function TooltipComponent_Factory(t) { return new (t || TooltipComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService), ɵngcc0.ɵɵdirectiveInject(TooltipTemplateService)); };\nTooltipComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: TooltipComponent, selectors: [[\"kendo-chart-tooltip\"]], contentQueries: function TooltipComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, SeriesTooltipTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, SharedTooltipTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.seriesTooltipTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.sharedTooltipTemplate = _t.first);\n } }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function TooltipComponent_Template(rf, ctx) { }, encapsulation: 2 });\n__decorate([\n ContentChild(SeriesTooltipTemplateDirective, { static: false }),\n __metadata(\"design:type\", SeriesTooltipTemplateDirective)\n], TooltipComponent.prototype, \"seriesTooltipTemplate\", void 0);\n__decorate([\n ContentChild(SharedTooltipTemplateDirective, { static: false }),\n __metadata(\"design:type\", SharedTooltipTemplateDirective)\n], TooltipComponent.prototype, \"sharedTooltipTemplate\", void 0);\nTooltipComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService,\n TooltipTemplateService])\n], TooltipComponent);\n\n/**\n * @hidden\n */\nclass ValueAxisItemComponentGenerated extends CollectionItemComponent {\n constructor(configurationService, collectionService) {\n super(configurationService, collectionService);\n this.configurationService = configurationService;\n this.collectionService = collectionService;\n }\n}\nValueAxisItemComponentGenerated.ɵfac = function ValueAxisItemComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nValueAxisItemComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ValueAxisItemComponentGenerated, inputs: { axisCrossingValue: \"axisCrossingValue\", background: \"background\", color: \"color\", line: \"line\", majorGridLines: \"majorGridLines\", majorTicks: \"majorTicks\", majorUnit: \"majorUnit\", max: \"max\", min: \"min\", minorGridLines: \"minorGridLines\", minorTicks: \"minorTicks\", minorUnit: \"minorUnit\", name: \"name\", narrowRange: \"narrowRange\", pane: \"pane\", plotBands: \"plotBands\", reverse: \"reverse\", type: \"type\", visible: \"visible\", crosshair: \"crosshair\", labels: \"labels\", notes: \"notes\", title: \"title\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ValueAxisItemComponentGenerated.prototype, \"axisCrossingValue\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ValueAxisItemComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ValueAxisItemComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ValueAxisItemComponentGenerated.prototype, \"line\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ValueAxisItemComponentGenerated.prototype, \"majorGridLines\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ValueAxisItemComponentGenerated.prototype, \"majorTicks\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ValueAxisItemComponentGenerated.prototype, \"majorUnit\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ValueAxisItemComponentGenerated.prototype, \"max\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ValueAxisItemComponentGenerated.prototype, \"min\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ValueAxisItemComponentGenerated.prototype, \"minorGridLines\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ValueAxisItemComponentGenerated.prototype, \"minorTicks\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ValueAxisItemComponentGenerated.prototype, \"minorUnit\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ValueAxisItemComponentGenerated.prototype, \"name\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ValueAxisItemComponentGenerated.prototype, \"narrowRange\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ValueAxisItemComponentGenerated.prototype, \"pane\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], ValueAxisItemComponentGenerated.prototype, \"plotBands\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ValueAxisItemComponentGenerated.prototype, \"reverse\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ValueAxisItemComponentGenerated.prototype, \"type\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ValueAxisItemComponentGenerated.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ValueAxisItemComponentGenerated.prototype, \"crosshair\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ValueAxisItemComponentGenerated.prototype, \"labels\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ValueAxisItemComponentGenerated.prototype, \"notes\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ValueAxisItemComponentGenerated.prototype, \"title\", void 0);\n\n/**\n * The configuration component for a value axis.\n */\nlet ValueAxisItemComponent = class ValueAxisItemComponent extends ValueAxisItemComponentGenerated {\n // Place custom properties here\n constructor(configurationService, collectionService) {\n super(configurationService, collectionService);\n this.configurationService = configurationService;\n this.collectionService = collectionService;\n }\n};\nValueAxisItemComponent.ɵfac = function ValueAxisItemComponent_Factory(t) { return new (t || ValueAxisItemComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService), ɵngcc0.ɵɵdirectiveInject(CollectionService)); };\nValueAxisItemComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ValueAxisItemComponent, selectors: [[\"kendo-chart-value-axis-item\"]], features: [ɵngcc0.ɵɵProvidersFeature([ConfigurationService]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function ValueAxisItemComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nValueAxisItemComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService,\n CollectionService])\n], ValueAxisItemComponent);\n\n/**\n * @hidden\n */\nclass ValueAxisComponentGenerated extends CollectionComponent {\n constructor(configurationService, collectionService) {\n super('valueAxis', configurationService, collectionService);\n this.configurationService = configurationService;\n this.collectionService = collectionService;\n }\n}\nValueAxisComponentGenerated.ɵfac = function ValueAxisComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nValueAxisComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ValueAxisComponentGenerated, contentQueries: function ValueAxisComponentGenerated_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, ValueAxisItemComponent, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.children = _t);\n } }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n ContentChildren(ValueAxisItemComponent),\n __metadata(\"design:type\", QueryList)\n], ValueAxisComponentGenerated.prototype, \"children\", void 0);\n\n/**\n * A collection of one or more value axis configuration components.\n *\n * @example\n * ```ts\n * import { Component } from '@angular/core';\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 * }\n *\n * ```\n */\nlet ValueAxisComponent = class ValueAxisComponent extends ValueAxisComponentGenerated {\n // Place custom properties here\n constructor(configurationService, collectionService) {\n super(configurationService, collectionService);\n this.configurationService = configurationService;\n this.collectionService = collectionService;\n }\n};\nValueAxisComponent.ɵfac = function ValueAxisComponent_Factory(t) { return new (t || ValueAxisComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService), ɵngcc0.ɵɵdirectiveInject(CollectionService)); };\nValueAxisComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ValueAxisComponent, selectors: [[\"kendo-chart-value-axis\"]], features: [ɵngcc0.ɵɵProvidersFeature([CollectionService]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function ValueAxisComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nValueAxisComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService,\n CollectionService])\n], ValueAxisComponent);\n\n/**\n * @hidden\n */\nclass ValueAxisCrosshairComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('crosshair', configurationService);\n this.configurationService = configurationService;\n }\n}\nValueAxisCrosshairComponentGenerated.ɵfac = function ValueAxisCrosshairComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nValueAxisCrosshairComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ValueAxisCrosshairComponentGenerated, inputs: { color: \"color\", opacity: \"opacity\", visible: \"visible\", width: \"width\", tooltip: \"tooltip\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ValueAxisCrosshairComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ValueAxisCrosshairComponentGenerated.prototype, \"opacity\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ValueAxisCrosshairComponentGenerated.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ValueAxisCrosshairComponentGenerated.prototype, \"width\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ValueAxisCrosshairComponentGenerated.prototype, \"tooltip\", void 0);\n\n/**\n * The crosshair configuration options ([see example]({% slug crosshairs_chart_charts %})).\n */\nlet ValueAxisCrosshairComponent = class ValueAxisCrosshairComponent extends ValueAxisCrosshairComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n this.markAsVisible();\n }\n};\nValueAxisCrosshairComponent.ɵfac = function ValueAxisCrosshairComponent_Factory(t) { return new (t || ValueAxisCrosshairComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nValueAxisCrosshairComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ValueAxisCrosshairComponent, selectors: [[\"kendo-chart-value-axis-item-crosshair\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function ValueAxisCrosshairComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nValueAxisCrosshairComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], ValueAxisCrosshairComponent);\n\n/**\n * @hidden\n */\nclass ValueAxisCrosshairTooltipComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('crosshair.tooltip', configurationService);\n this.configurationService = configurationService;\n }\n}\nValueAxisCrosshairTooltipComponentGenerated.ɵfac = function ValueAxisCrosshairTooltipComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nValueAxisCrosshairTooltipComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ValueAxisCrosshairTooltipComponentGenerated, inputs: { background: \"background\", border: \"border\", color: \"color\", font: \"font\", format: \"format\", padding: \"padding\", visible: \"visible\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ValueAxisCrosshairTooltipComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ValueAxisCrosshairTooltipComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ValueAxisCrosshairTooltipComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ValueAxisCrosshairTooltipComponentGenerated.prototype, \"font\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ValueAxisCrosshairTooltipComponentGenerated.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ValueAxisCrosshairTooltipComponentGenerated.prototype, \"padding\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ValueAxisCrosshairTooltipComponentGenerated.prototype, \"visible\", void 0);\n\n/**\n * The configuration options of the crosshair tooltip ([see example]({% slug crosshairs_chart_charts %})).\n * The crosshair tooltip is displayed when the `visible` option is set to `true`.\n */\nlet ValueAxisCrosshairTooltipComponent = class ValueAxisCrosshairTooltipComponent extends ValueAxisCrosshairTooltipComponentGenerated {\n // Place custom properties here.\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n this.markAsVisible();\n }\n};\nValueAxisCrosshairTooltipComponent.ɵfac = function ValueAxisCrosshairTooltipComponent_Factory(t) { return new (t || ValueAxisCrosshairTooltipComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nValueAxisCrosshairTooltipComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ValueAxisCrosshairTooltipComponent, selectors: [[\"kendo-chart-value-axis-item-crosshair-tooltip\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function ValueAxisCrosshairTooltipComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nValueAxisCrosshairTooltipComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], ValueAxisCrosshairTooltipComponent);\n\n/**\n * @hidden\n */\nclass ValueAxisLabelsComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('labels', configurationService);\n this.configurationService = configurationService;\n }\n}\nValueAxisLabelsComponentGenerated.ɵfac = function ValueAxisLabelsComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nValueAxisLabelsComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ValueAxisLabelsComponentGenerated, inputs: { background: \"background\", border: \"border\", color: \"color\", content: \"content\", font: \"font\", format: \"format\", margin: \"margin\", mirror: \"mirror\", padding: \"padding\", position: \"position\", rotation: \"rotation\", skip: \"skip\", step: \"step\", visible: \"visible\", visual: \"visual\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ValueAxisLabelsComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ValueAxisLabelsComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ValueAxisLabelsComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], ValueAxisLabelsComponentGenerated.prototype, \"content\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ValueAxisLabelsComponentGenerated.prototype, \"font\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ValueAxisLabelsComponentGenerated.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ValueAxisLabelsComponentGenerated.prototype, \"margin\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ValueAxisLabelsComponentGenerated.prototype, \"mirror\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ValueAxisLabelsComponentGenerated.prototype, \"padding\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ValueAxisLabelsComponentGenerated.prototype, \"position\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ValueAxisLabelsComponentGenerated.prototype, \"rotation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ValueAxisLabelsComponentGenerated.prototype, \"skip\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ValueAxisLabelsComponentGenerated.prototype, \"step\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ValueAxisLabelsComponentGenerated.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], ValueAxisLabelsComponentGenerated.prototype, \"visual\", void 0);\n\n/**\n * The axis labels configuration.\n */\nlet ValueAxisLabelsComponent = class ValueAxisLabelsComponent extends ValueAxisLabelsComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nValueAxisLabelsComponent.ɵfac = function ValueAxisLabelsComponent_Factory(t) { return new (t || ValueAxisLabelsComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nValueAxisLabelsComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ValueAxisLabelsComponent, selectors: [[\"kendo-chart-value-axis-item-labels\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function ValueAxisLabelsComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nValueAxisLabelsComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], ValueAxisLabelsComponent);\n\n/**\n * @hidden\n */\nclass ValueAxisNotesComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('notes', configurationService);\n this.configurationService = configurationService;\n }\n}\nValueAxisNotesComponentGenerated.ɵfac = function ValueAxisNotesComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nValueAxisNotesComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ValueAxisNotesComponentGenerated, inputs: { data: \"data\", line: \"line\", position: \"position\", visual: \"visual\", icon: \"icon\", label: \"label\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], ValueAxisNotesComponentGenerated.prototype, \"data\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ValueAxisNotesComponentGenerated.prototype, \"line\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ValueAxisNotesComponentGenerated.prototype, \"position\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], ValueAxisNotesComponentGenerated.prototype, \"visual\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ValueAxisNotesComponentGenerated.prototype, \"icon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ValueAxisNotesComponentGenerated.prototype, \"label\", void 0);\n\n/**\n * The configuration of the value axis notes ([see example]({% slug notes_chart_charts %}#toc-axis-notes)).\n */\nlet ValueAxisNotesComponent = class ValueAxisNotesComponent extends ValueAxisNotesComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nValueAxisNotesComponent.ɵfac = function ValueAxisNotesComponent_Factory(t) { return new (t || ValueAxisNotesComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nValueAxisNotesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ValueAxisNotesComponent, selectors: [[\"kendo-chart-value-axis-item-notes\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function ValueAxisNotesComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nValueAxisNotesComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], ValueAxisNotesComponent);\n\n/**\n * @hidden\n */\nclass ValueAxisNotesIconComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('notes.icon', configurationService);\n this.configurationService = configurationService;\n }\n}\nValueAxisNotesIconComponentGenerated.ɵfac = function ValueAxisNotesIconComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nValueAxisNotesIconComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ValueAxisNotesIconComponentGenerated, inputs: { background: \"background\", border: \"border\", size: \"size\", type: \"type\", visible: \"visible\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ValueAxisNotesIconComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ValueAxisNotesIconComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ValueAxisNotesIconComponentGenerated.prototype, \"size\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ValueAxisNotesIconComponentGenerated.prototype, \"type\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ValueAxisNotesIconComponentGenerated.prototype, \"visible\", void 0);\n\n/**\n * The icon of the notes.\n */\nlet ValueAxisNotesIconComponent = class ValueAxisNotesIconComponent extends ValueAxisNotesIconComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nValueAxisNotesIconComponent.ɵfac = function ValueAxisNotesIconComponent_Factory(t) { return new (t || ValueAxisNotesIconComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nValueAxisNotesIconComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ValueAxisNotesIconComponent, selectors: [[\"kendo-chart-value-axis-item-notes-icon\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function ValueAxisNotesIconComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nValueAxisNotesIconComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], ValueAxisNotesIconComponent);\n\n/**\n * @hidden\n */\nclass ValueAxisNotesLabelComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('notes.label', configurationService);\n this.configurationService = configurationService;\n }\n}\nValueAxisNotesLabelComponentGenerated.ɵfac = function ValueAxisNotesLabelComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nValueAxisNotesLabelComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ValueAxisNotesLabelComponentGenerated, inputs: { background: \"background\", border: \"border\", color: \"color\", content: \"content\", font: \"font\", format: \"format\", position: \"position\", rotation: \"rotation\", visible: \"visible\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ValueAxisNotesLabelComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ValueAxisNotesLabelComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ValueAxisNotesLabelComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], ValueAxisNotesLabelComponentGenerated.prototype, \"content\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ValueAxisNotesLabelComponentGenerated.prototype, \"font\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ValueAxisNotesLabelComponentGenerated.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ValueAxisNotesLabelComponentGenerated.prototype, \"position\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ValueAxisNotesLabelComponentGenerated.prototype, \"rotation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ValueAxisNotesLabelComponentGenerated.prototype, \"visible\", void 0);\n\n/**\n * The label of the notes.\n */\nlet ValueAxisNotesLabelComponent = class ValueAxisNotesLabelComponent extends ValueAxisNotesLabelComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nValueAxisNotesLabelComponent.ɵfac = function ValueAxisNotesLabelComponent_Factory(t) { return new (t || ValueAxisNotesLabelComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nValueAxisNotesLabelComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ValueAxisNotesLabelComponent, selectors: [[\"kendo-chart-value-axis-item-notes-label\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function ValueAxisNotesLabelComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nValueAxisNotesLabelComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], ValueAxisNotesLabelComponent);\n\n/**\n * @hidden\n */\nclass ValueAxisTitleComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('title', configurationService);\n this.configurationService = configurationService;\n }\n}\nValueAxisTitleComponentGenerated.ɵfac = function ValueAxisTitleComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nValueAxisTitleComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ValueAxisTitleComponentGenerated, inputs: { background: \"background\", border: \"border\", color: \"color\", font: \"font\", margin: \"margin\", padding: \"padding\", position: \"position\", rotation: \"rotation\", text: \"text\", visible: \"visible\", visual: \"visual\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ValueAxisTitleComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ValueAxisTitleComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ValueAxisTitleComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ValueAxisTitleComponentGenerated.prototype, \"font\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ValueAxisTitleComponentGenerated.prototype, \"margin\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ValueAxisTitleComponentGenerated.prototype, \"padding\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ValueAxisTitleComponentGenerated.prototype, \"position\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ValueAxisTitleComponentGenerated.prototype, \"rotation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ValueAxisTitleComponentGenerated.prototype, \"text\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ValueAxisTitleComponentGenerated.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], ValueAxisTitleComponentGenerated.prototype, \"visual\", void 0);\n\n/**\n * The title configuration of the value axis.\n */\nlet ValueAxisTitleComponent = class ValueAxisTitleComponent extends ValueAxisTitleComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nValueAxisTitleComponent.ɵfac = function ValueAxisTitleComponent_Factory(t) { return new (t || ValueAxisTitleComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nValueAxisTitleComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ValueAxisTitleComponent, selectors: [[\"kendo-chart-value-axis-item-title\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function ValueAxisTitleComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nValueAxisTitleComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], ValueAxisTitleComponent);\n\n/**\n * @hidden\n */\nclass XAxisItemComponentGenerated extends CollectionItemComponent {\n constructor(configurationService, collectionService, intl, localeId) {\n super(configurationService, collectionService);\n this.configurationService = configurationService;\n this.collectionService = collectionService;\n this.notifyChanges({ weekStartDay: intl.firstDay(localeId) });\n }\n}\nXAxisItemComponentGenerated.ɵfac = function XAxisItemComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nXAxisItemComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: XAxisItemComponentGenerated, inputs: { axisCrossingValue: \"axisCrossingValue\", background: \"background\", baseUnit: \"baseUnit\", color: \"color\", line: \"line\", majorGridLines: \"majorGridLines\", majorTicks: \"majorTicks\", majorUnit: \"majorUnit\", max: \"max\", min: \"min\", minorGridLines: \"minorGridLines\", minorTicks: \"minorTicks\", minorUnit: \"minorUnit\", name: \"name\", narrowRange: \"narrowRange\", pane: \"pane\", plotBands: \"plotBands\", reverse: \"reverse\", startAngle: \"startAngle\", type: \"type\", visible: \"visible\", weekStartDay: \"weekStartDay\", crosshair: \"crosshair\", labels: \"labels\", notes: \"notes\", title: \"title\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], XAxisItemComponentGenerated.prototype, \"axisCrossingValue\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], XAxisItemComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], XAxisItemComponentGenerated.prototype, \"baseUnit\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], XAxisItemComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], XAxisItemComponentGenerated.prototype, \"line\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], XAxisItemComponentGenerated.prototype, \"majorGridLines\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], XAxisItemComponentGenerated.prototype, \"majorTicks\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], XAxisItemComponentGenerated.prototype, \"majorUnit\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], XAxisItemComponentGenerated.prototype, \"max\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], XAxisItemComponentGenerated.prototype, \"min\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], XAxisItemComponentGenerated.prototype, \"minorGridLines\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], XAxisItemComponentGenerated.prototype, \"minorTicks\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], XAxisItemComponentGenerated.prototype, \"minorUnit\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], XAxisItemComponentGenerated.prototype, \"name\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], XAxisItemComponentGenerated.prototype, \"narrowRange\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], XAxisItemComponentGenerated.prototype, \"pane\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], XAxisItemComponentGenerated.prototype, \"plotBands\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], XAxisItemComponentGenerated.prototype, \"reverse\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], XAxisItemComponentGenerated.prototype, \"startAngle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], XAxisItemComponentGenerated.prototype, \"type\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], XAxisItemComponentGenerated.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], XAxisItemComponentGenerated.prototype, \"weekStartDay\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], XAxisItemComponentGenerated.prototype, \"crosshair\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], XAxisItemComponentGenerated.prototype, \"labels\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], XAxisItemComponentGenerated.prototype, \"notes\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], XAxisItemComponentGenerated.prototype, \"title\", void 0);\n\n/**\n * The configuration component for an X axis\n * ([see example]({% slug api_charts_xaxiscomponent %})).\n */\nlet XAxisItemComponent = class XAxisItemComponent extends XAxisItemComponentGenerated {\n constructor(configurationService, collectionService, intl, localeId) {\n super(configurationService, collectionService, intl, localeId);\n this.configurationService = configurationService;\n this.collectionService = collectionService;\n this.intl = intl;\n }\n};\nXAxisItemComponent.ɵfac = function XAxisItemComponent_Factory(t) { return new (t || XAxisItemComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService), ɵngcc0.ɵɵdirectiveInject(CollectionService), ɵngcc0.ɵɵdirectiveInject(ɵngcc4.IntlService), ɵngcc0.ɵɵdirectiveInject(LOCALE_ID)); };\nXAxisItemComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: XAxisItemComponent, selectors: [[\"kendo-chart-x-axis-item\"]], inputs: { categories: \"categories\" }, features: [ɵngcc0.ɵɵProvidersFeature([ConfigurationService]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function XAxisItemComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], XAxisItemComponent.prototype, \"categories\", void 0);\nXAxisItemComponent = __decorate([ __param(3, Inject(LOCALE_ID)),\n __metadata(\"design:paramtypes\", [ConfigurationService,\n CollectionService,\n IntlService, String])\n], XAxisItemComponent);\n\n/**\n * @hidden\n */\nclass XAxisComponentGenerated extends CollectionComponent {\n constructor(configurationService, collectionService) {\n super('xAxis', configurationService, collectionService);\n this.configurationService = configurationService;\n this.collectionService = collectionService;\n }\n}\nXAxisComponentGenerated.ɵfac = function XAxisComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nXAxisComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: XAxisComponentGenerated, contentQueries: function XAxisComponentGenerated_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, XAxisItemComponent, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.children = _t);\n } }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n ContentChildren(XAxisItemComponent),\n __metadata(\"design:type\", QueryList)\n], XAxisComponentGenerated.prototype, \"children\", void 0);\n\n/**\n * A collection of one or more X-axis configuration components.\n *\n * @example\n * ```ts\n * import { Component } from '@angular/core';\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 * export class AppComponent {\n * public notesConfig = {\n * data: [{\n * value: 0.2,\n * text: \"foo\"\n * }, {\n * value: 0.8,\n * text: \"bar\"\n * }],\n * label: {\n * content: (args: any) => args.dataItem.text,\n * background: 'red',\n * color: 'white'\n * },\n * line: {\n * color: 'blue',\n * dashType: 'dash',\n * length: 150,\n * width: 2\n * },\n * position: 'top'\n * };\n *\n * public crosshairConfig = {\n * color: 'green',\n * opacity: 0.8,\n * visible: true,\n * width: 3\n * };\n * }\n *\n * ```\n */\nlet XAxisComponent = class XAxisComponent extends XAxisComponentGenerated {\n // Place custom properties here\n constructor(configurationService, collectionService) {\n super(configurationService, collectionService);\n this.configurationService = configurationService;\n this.collectionService = collectionService;\n }\n};\nXAxisComponent.ɵfac = function XAxisComponent_Factory(t) { return new (t || XAxisComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService), ɵngcc0.ɵɵdirectiveInject(CollectionService)); };\nXAxisComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: XAxisComponent, selectors: [[\"kendo-chart-x-axis\"]], features: [ɵngcc0.ɵɵProvidersFeature([CollectionService]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function XAxisComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nXAxisComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService,\n CollectionService])\n], XAxisComponent);\n\n/**\n * @hidden\n */\nclass XAxisCrosshairComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('crosshair', configurationService);\n this.configurationService = configurationService;\n }\n}\nXAxisCrosshairComponentGenerated.ɵfac = function XAxisCrosshairComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nXAxisCrosshairComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: XAxisCrosshairComponentGenerated, inputs: { color: \"color\", opacity: \"opacity\", visible: \"visible\", width: \"width\", tooltip: \"tooltip\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], XAxisCrosshairComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], XAxisCrosshairComponentGenerated.prototype, \"opacity\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], XAxisCrosshairComponentGenerated.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], XAxisCrosshairComponentGenerated.prototype, \"width\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], XAxisCrosshairComponentGenerated.prototype, \"tooltip\", void 0);\n\n/**\n * The crosshair configuration options\n * ([see example]({% slug api_charts_xaxiscomponent %})).\n */\nlet XAxisCrosshairComponent = class XAxisCrosshairComponent extends XAxisCrosshairComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n this.markAsVisible();\n }\n};\nXAxisCrosshairComponent.ɵfac = function XAxisCrosshairComponent_Factory(t) { return new (t || XAxisCrosshairComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nXAxisCrosshairComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: XAxisCrosshairComponent, selectors: [[\"kendo-chart-x-axis-item-crosshair\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function XAxisCrosshairComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nXAxisCrosshairComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], XAxisCrosshairComponent);\n\n/**\n * @hidden\n */\nclass XAxisCrosshairTooltipComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('crosshair.tooltip', configurationService);\n this.configurationService = configurationService;\n }\n}\nXAxisCrosshairTooltipComponentGenerated.ɵfac = function XAxisCrosshairTooltipComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nXAxisCrosshairTooltipComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: XAxisCrosshairTooltipComponentGenerated, inputs: { background: \"background\", border: \"border\", color: \"color\", font: \"font\", format: \"format\", padding: \"padding\", visible: \"visible\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], XAxisCrosshairTooltipComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], XAxisCrosshairTooltipComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], XAxisCrosshairTooltipComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], XAxisCrosshairTooltipComponentGenerated.prototype, \"font\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], XAxisCrosshairTooltipComponentGenerated.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], XAxisCrosshairTooltipComponentGenerated.prototype, \"padding\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], XAxisCrosshairTooltipComponentGenerated.prototype, \"visible\", void 0);\n\n/**\n * The configuration options of the crosshair tooltip.\n * The crosshair tooltip is displayed when the `visible` option is set to `true`.\n */\nlet XAxisCrosshairTooltipComponent = class XAxisCrosshairTooltipComponent extends XAxisCrosshairTooltipComponentGenerated {\n // Place custom properties here.\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n this.markAsVisible();\n }\n};\nXAxisCrosshairTooltipComponent.ɵfac = function XAxisCrosshairTooltipComponent_Factory(t) { return new (t || XAxisCrosshairTooltipComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nXAxisCrosshairTooltipComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: XAxisCrosshairTooltipComponent, selectors: [[\"kendo-chart-x-axis-item-crosshair-tooltip\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function XAxisCrosshairTooltipComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nXAxisCrosshairTooltipComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], XAxisCrosshairTooltipComponent);\n\n/**\n * @hidden\n */\nclass XAxisLabelsComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('labels', configurationService);\n this.configurationService = configurationService;\n }\n}\nXAxisLabelsComponentGenerated.ɵfac = function XAxisLabelsComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nXAxisLabelsComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: XAxisLabelsComponentGenerated, inputs: { background: \"background\", border: \"border\", color: \"color\", content: \"content\", culture: \"culture\", dateFormats: \"dateFormats\", font: \"font\", format: \"format\", margin: \"margin\", mirror: \"mirror\", padding: \"padding\", position: \"position\", rotation: \"rotation\", skip: \"skip\", step: \"step\", visible: \"visible\", visual: \"visual\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], XAxisLabelsComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], XAxisLabelsComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], XAxisLabelsComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], XAxisLabelsComponentGenerated.prototype, \"content\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], XAxisLabelsComponentGenerated.prototype, \"culture\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], XAxisLabelsComponentGenerated.prototype, \"dateFormats\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], XAxisLabelsComponentGenerated.prototype, \"font\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], XAxisLabelsComponentGenerated.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], XAxisLabelsComponentGenerated.prototype, \"margin\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], XAxisLabelsComponentGenerated.prototype, \"mirror\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], XAxisLabelsComponentGenerated.prototype, \"padding\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], XAxisLabelsComponentGenerated.prototype, \"position\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], XAxisLabelsComponentGenerated.prototype, \"rotation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], XAxisLabelsComponentGenerated.prototype, \"skip\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], XAxisLabelsComponentGenerated.prototype, \"step\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], XAxisLabelsComponentGenerated.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], XAxisLabelsComponentGenerated.prototype, \"visual\", void 0);\n\n/**\n * The axis labels configuration.\n */\nlet XAxisLabelsComponent = class XAxisLabelsComponent extends XAxisLabelsComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nXAxisLabelsComponent.ɵfac = function XAxisLabelsComponent_Factory(t) { return new (t || XAxisLabelsComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nXAxisLabelsComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: XAxisLabelsComponent, selectors: [[\"kendo-chart-x-axis-item-labels\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function XAxisLabelsComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nXAxisLabelsComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], XAxisLabelsComponent);\n\n/**\n * @hidden\n */\nclass XAxisNotesComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('notes', configurationService);\n this.configurationService = configurationService;\n }\n}\nXAxisNotesComponentGenerated.ɵfac = function XAxisNotesComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nXAxisNotesComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: XAxisNotesComponentGenerated, inputs: { data: \"data\", line: \"line\", position: \"position\", visual: \"visual\", icon: \"icon\", label: \"label\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], XAxisNotesComponentGenerated.prototype, \"data\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], XAxisNotesComponentGenerated.prototype, \"line\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], XAxisNotesComponentGenerated.prototype, \"position\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], XAxisNotesComponentGenerated.prototype, \"visual\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], XAxisNotesComponentGenerated.prototype, \"icon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], XAxisNotesComponentGenerated.prototype, \"label\", void 0);\n\n/**\n * The configuration of the X-axis notes.\n * For an example on the basic usage of the XAxisNotesComponent,\n * refer to the [demo on the XAxisComponent]({% slug api_charts_xaxiscomponent %})\n * or to the documentation about the\n * [axis notes]({% slug notes_chart_charts %}#toc-axis-notes).\n */\nlet XAxisNotesComponent = class XAxisNotesComponent extends XAxisNotesComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nXAxisNotesComponent.ɵfac = function XAxisNotesComponent_Factory(t) { return new (t || XAxisNotesComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nXAxisNotesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: XAxisNotesComponent, selectors: [[\"kendo-chart-x-axis-item-notes\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function XAxisNotesComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nXAxisNotesComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], XAxisNotesComponent);\n\n/**\n * @hidden\n */\nclass XAxisNotesIconComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('notes.icon', configurationService);\n this.configurationService = configurationService;\n }\n}\nXAxisNotesIconComponentGenerated.ɵfac = function XAxisNotesIconComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nXAxisNotesIconComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: XAxisNotesIconComponentGenerated, inputs: { background: \"background\", border: \"border\", size: \"size\", type: \"type\", visible: \"visible\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], XAxisNotesIconComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], XAxisNotesIconComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], XAxisNotesIconComponentGenerated.prototype, \"size\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], XAxisNotesIconComponentGenerated.prototype, \"type\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], XAxisNotesIconComponentGenerated.prototype, \"visible\", void 0);\n\n/**\n * The icon of the notes.\n */\nlet XAxisNotesIconComponent = class XAxisNotesIconComponent extends XAxisNotesIconComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nXAxisNotesIconComponent.ɵfac = function XAxisNotesIconComponent_Factory(t) { return new (t || XAxisNotesIconComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nXAxisNotesIconComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: XAxisNotesIconComponent, selectors: [[\"kendo-chart-x-axis-item-notes-icon\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function XAxisNotesIconComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nXAxisNotesIconComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], XAxisNotesIconComponent);\n\n/**\n * @hidden\n */\nclass XAxisNotesLabelComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('notes.label', configurationService);\n this.configurationService = configurationService;\n }\n}\nXAxisNotesLabelComponentGenerated.ɵfac = function XAxisNotesLabelComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nXAxisNotesLabelComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: XAxisNotesLabelComponentGenerated, inputs: { background: \"background\", border: \"border\", color: \"color\", content: \"content\", font: \"font\", format: \"format\", position: \"position\", rotation: \"rotation\", visible: \"visible\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], XAxisNotesLabelComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], XAxisNotesLabelComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], XAxisNotesLabelComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], XAxisNotesLabelComponentGenerated.prototype, \"content\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], XAxisNotesLabelComponentGenerated.prototype, \"font\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], XAxisNotesLabelComponentGenerated.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], XAxisNotesLabelComponentGenerated.prototype, \"position\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], XAxisNotesLabelComponentGenerated.prototype, \"rotation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], XAxisNotesLabelComponentGenerated.prototype, \"visible\", void 0);\n\n/**\n * The label of the notes.\n */\nlet XAxisNotesLabelComponent = class XAxisNotesLabelComponent extends XAxisNotesLabelComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nXAxisNotesLabelComponent.ɵfac = function XAxisNotesLabelComponent_Factory(t) { return new (t || XAxisNotesLabelComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nXAxisNotesLabelComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: XAxisNotesLabelComponent, selectors: [[\"kendo-chart-x-axis-item-notes-label\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function XAxisNotesLabelComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nXAxisNotesLabelComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], XAxisNotesLabelComponent);\n\n/**\n * @hidden\n */\nclass XAxisTitleComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('title', configurationService);\n this.configurationService = configurationService;\n }\n}\nXAxisTitleComponentGenerated.ɵfac = function XAxisTitleComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nXAxisTitleComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: XAxisTitleComponentGenerated, inputs: { background: \"background\", border: \"border\", color: \"color\", font: \"font\", margin: \"margin\", padding: \"padding\", position: \"position\", rotation: \"rotation\", text: \"text\", visible: \"visible\", visual: \"visual\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], XAxisTitleComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], XAxisTitleComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], XAxisTitleComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], XAxisTitleComponentGenerated.prototype, \"font\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], XAxisTitleComponentGenerated.prototype, \"margin\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], XAxisTitleComponentGenerated.prototype, \"padding\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], XAxisTitleComponentGenerated.prototype, \"position\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], XAxisTitleComponentGenerated.prototype, \"rotation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], XAxisTitleComponentGenerated.prototype, \"text\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], XAxisTitleComponentGenerated.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], XAxisTitleComponentGenerated.prototype, \"visual\", void 0);\n\n/**\n * The title configuration of the Scatter Chart X axis.\n */\nlet XAxisTitleComponent = class XAxisTitleComponent extends XAxisTitleComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nXAxisTitleComponent.ɵfac = function XAxisTitleComponent_Factory(t) { return new (t || XAxisTitleComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nXAxisTitleComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: XAxisTitleComponent, selectors: [[\"kendo-chart-x-axis-item-title\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function XAxisTitleComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nXAxisTitleComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], XAxisTitleComponent);\n\n/**\n * @hidden\n */\nclass YAxisItemComponentGenerated extends CollectionItemComponent {\n constructor(configurationService, collectionService) {\n super(configurationService, collectionService);\n this.configurationService = configurationService;\n this.collectionService = collectionService;\n }\n}\nYAxisItemComponentGenerated.ɵfac = function YAxisItemComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nYAxisItemComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: YAxisItemComponentGenerated, inputs: { axisCrossingValue: \"axisCrossingValue\", background: \"background\", baseUnit: \"baseUnit\", color: \"color\", line: \"line\", majorGridLines: \"majorGridLines\", majorTicks: \"majorTicks\", majorUnit: \"majorUnit\", max: \"max\", min: \"min\", minorGridLines: \"minorGridLines\", minorTicks: \"minorTicks\", minorUnit: \"minorUnit\", name: \"name\", narrowRange: \"narrowRange\", pane: \"pane\", plotBands: \"plotBands\", reverse: \"reverse\", type: \"type\", visible: \"visible\", crosshair: \"crosshair\", labels: \"labels\", notes: \"notes\", title: \"title\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], YAxisItemComponentGenerated.prototype, \"axisCrossingValue\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], YAxisItemComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], YAxisItemComponentGenerated.prototype, \"baseUnit\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], YAxisItemComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], YAxisItemComponentGenerated.prototype, \"line\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], YAxisItemComponentGenerated.prototype, \"majorGridLines\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], YAxisItemComponentGenerated.prototype, \"majorTicks\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], YAxisItemComponentGenerated.prototype, \"majorUnit\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], YAxisItemComponentGenerated.prototype, \"max\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], YAxisItemComponentGenerated.prototype, \"min\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], YAxisItemComponentGenerated.prototype, \"minorGridLines\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], YAxisItemComponentGenerated.prototype, \"minorTicks\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], YAxisItemComponentGenerated.prototype, \"minorUnit\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], YAxisItemComponentGenerated.prototype, \"name\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], YAxisItemComponentGenerated.prototype, \"narrowRange\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], YAxisItemComponentGenerated.prototype, \"pane\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], YAxisItemComponentGenerated.prototype, \"plotBands\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], YAxisItemComponentGenerated.prototype, \"reverse\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], YAxisItemComponentGenerated.prototype, \"type\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], YAxisItemComponentGenerated.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], YAxisItemComponentGenerated.prototype, \"crosshair\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], YAxisItemComponentGenerated.prototype, \"labels\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], YAxisItemComponentGenerated.prototype, \"notes\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], YAxisItemComponentGenerated.prototype, \"title\", void 0);\n\n/**\n * The configuration component for the Y axis\n * ([see example]({% slug api_charts_yaxiscomponent %})).\n */\nlet YAxisItemComponent = class YAxisItemComponent extends YAxisItemComponentGenerated {\n constructor(configurationService, collectionService) {\n super(configurationService, collectionService);\n this.configurationService = configurationService;\n this.collectionService = collectionService;\n }\n};\nYAxisItemComponent.ɵfac = function YAxisItemComponent_Factory(t) { return new (t || YAxisItemComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService), ɵngcc0.ɵɵdirectiveInject(CollectionService)); };\nYAxisItemComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: YAxisItemComponent, selectors: [[\"kendo-chart-y-axis-item\"]], inputs: { categories: \"categories\" }, features: [ɵngcc0.ɵɵProvidersFeature([ConfigurationService]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function YAxisItemComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], YAxisItemComponent.prototype, \"categories\", void 0);\nYAxisItemComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService,\n CollectionService])\n], YAxisItemComponent);\n\n/**\n * @hidden\n */\nclass YAxisComponentGenerated extends CollectionComponent {\n constructor(configurationService, collectionService) {\n super('yAxis', configurationService, collectionService);\n this.configurationService = configurationService;\n this.collectionService = collectionService;\n }\n}\nYAxisComponentGenerated.ɵfac = function YAxisComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nYAxisComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: YAxisComponentGenerated, contentQueries: function YAxisComponentGenerated_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, YAxisItemComponent, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.children = _t);\n } }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n ContentChildren(YAxisItemComponent),\n __metadata(\"design:type\", QueryList)\n], YAxisComponentGenerated.prototype, \"children\", void 0);\n\n/**\n * A collection of one or more Y-axis configuration components.\n *\n * @example\n * ```ts\n * import { Component } from '@angular/core';\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 * export class AppComponent {\n * public notesConfig = {\n * data: [{\n * value: 0.2,\n * text: \"foo\"\n * }, {\n * value: 0.8,\n * text: \"bar\"\n * }],\n * label: {\n * content: (args: any) => args.dataItem.text,\n * background: 'red',\n * color: 'white'\n * },\n * line: {\n * color: 'blue',\n * dashType: 'dash',\n * length: 150,\n * width: 2\n * },\n * position: 'top'\n * };\n *\n * public crosshairConfig = {\n * color: 'green',\n * opacity: 0.8,\n * visible: true,\n * width: 3\n * };\n * }\n *\n * ```\n */\nlet YAxisComponent = class YAxisComponent extends YAxisComponentGenerated {\n // Place custom properties here\n constructor(configurationService, collectionService) {\n super(configurationService, collectionService);\n this.configurationService = configurationService;\n this.collectionService = collectionService;\n }\n};\nYAxisComponent.ɵfac = function YAxisComponent_Factory(t) { return new (t || YAxisComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService), ɵngcc0.ɵɵdirectiveInject(CollectionService)); };\nYAxisComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: YAxisComponent, selectors: [[\"kendo-chart-y-axis\"]], features: [ɵngcc0.ɵɵProvidersFeature([CollectionService]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function YAxisComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nYAxisComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService,\n CollectionService])\n], YAxisComponent);\n\n/**\n * @hidden\n */\nclass YAxisCrosshairComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('crosshair', configurationService);\n this.configurationService = configurationService;\n }\n}\nYAxisCrosshairComponentGenerated.ɵfac = function YAxisCrosshairComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nYAxisCrosshairComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: YAxisCrosshairComponentGenerated, inputs: { color: \"color\", opacity: \"opacity\", visible: \"visible\", width: \"width\", tooltip: \"tooltip\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], YAxisCrosshairComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], YAxisCrosshairComponentGenerated.prototype, \"opacity\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], YAxisCrosshairComponentGenerated.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], YAxisCrosshairComponentGenerated.prototype, \"width\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], YAxisCrosshairComponentGenerated.prototype, \"tooltip\", void 0);\n\n/**\n * The crosshair configuration options\n * ([see example]({% slug api_charts_yaxiscomponent %})).\n */\nlet YAxisCrosshairComponent = class YAxisCrosshairComponent extends YAxisCrosshairComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n this.markAsVisible();\n }\n};\nYAxisCrosshairComponent.ɵfac = function YAxisCrosshairComponent_Factory(t) { return new (t || YAxisCrosshairComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nYAxisCrosshairComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: YAxisCrosshairComponent, selectors: [[\"kendo-chart-y-axis-item-crosshair\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function YAxisCrosshairComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nYAxisCrosshairComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], YAxisCrosshairComponent);\n\n/**\n * @hidden\n */\nclass YAxisCrosshairTooltipComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('crosshair.tooltip', configurationService);\n this.configurationService = configurationService;\n }\n}\nYAxisCrosshairTooltipComponentGenerated.ɵfac = function YAxisCrosshairTooltipComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nYAxisCrosshairTooltipComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: YAxisCrosshairTooltipComponentGenerated, inputs: { background: \"background\", border: \"border\", color: \"color\", font: \"font\", format: \"format\", padding: \"padding\", visible: \"visible\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], YAxisCrosshairTooltipComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], YAxisCrosshairTooltipComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], YAxisCrosshairTooltipComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], YAxisCrosshairTooltipComponentGenerated.prototype, \"font\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], YAxisCrosshairTooltipComponentGenerated.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], YAxisCrosshairTooltipComponentGenerated.prototype, \"padding\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], YAxisCrosshairTooltipComponentGenerated.prototype, \"visible\", void 0);\n\n/**\n * The configuration options of the crosshair tooltip.\n * The crosshair tooltip is displayed when the `visible` option is set to `true`.\n */\nlet YAxisCrosshairTooltipComponent = class YAxisCrosshairTooltipComponent extends YAxisCrosshairTooltipComponentGenerated {\n // Place custom properties here.\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n this.markAsVisible();\n }\n};\nYAxisCrosshairTooltipComponent.ɵfac = function YAxisCrosshairTooltipComponent_Factory(t) { return new (t || YAxisCrosshairTooltipComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nYAxisCrosshairTooltipComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: YAxisCrosshairTooltipComponent, selectors: [[\"kendo-chart-y-axis-item-crosshair-tooltip\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function YAxisCrosshairTooltipComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nYAxisCrosshairTooltipComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], YAxisCrosshairTooltipComponent);\n\n/**\n * @hidden\n */\nclass YAxisLabelsComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('labels', configurationService);\n this.configurationService = configurationService;\n }\n}\nYAxisLabelsComponentGenerated.ɵfac = function YAxisLabelsComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nYAxisLabelsComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: YAxisLabelsComponentGenerated, inputs: { background: \"background\", border: \"border\", color: \"color\", content: \"content\", culture: \"culture\", dateFormats: \"dateFormats\", font: \"font\", format: \"format\", margin: \"margin\", mirror: \"mirror\", padding: \"padding\", position: \"position\", rotation: \"rotation\", skip: \"skip\", step: \"step\", visible: \"visible\", visual: \"visual\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], YAxisLabelsComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], YAxisLabelsComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], YAxisLabelsComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], YAxisLabelsComponentGenerated.prototype, \"content\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], YAxisLabelsComponentGenerated.prototype, \"culture\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], YAxisLabelsComponentGenerated.prototype, \"dateFormats\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], YAxisLabelsComponentGenerated.prototype, \"font\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], YAxisLabelsComponentGenerated.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], YAxisLabelsComponentGenerated.prototype, \"margin\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], YAxisLabelsComponentGenerated.prototype, \"mirror\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], YAxisLabelsComponentGenerated.prototype, \"padding\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], YAxisLabelsComponentGenerated.prototype, \"position\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], YAxisLabelsComponentGenerated.prototype, \"rotation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], YAxisLabelsComponentGenerated.prototype, \"skip\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], YAxisLabelsComponentGenerated.prototype, \"step\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], YAxisLabelsComponentGenerated.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], YAxisLabelsComponentGenerated.prototype, \"visual\", void 0);\n\n/**\n * The axis labels configuration.\n */\nlet YAxisLabelsComponent = class YAxisLabelsComponent extends YAxisLabelsComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nYAxisLabelsComponent.ɵfac = function YAxisLabelsComponent_Factory(t) { return new (t || YAxisLabelsComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nYAxisLabelsComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: YAxisLabelsComponent, selectors: [[\"kendo-chart-y-axis-item-labels\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function YAxisLabelsComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nYAxisLabelsComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], YAxisLabelsComponent);\n\n/**\n * @hidden\n */\nclass YAxisNotesComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('notes', configurationService);\n this.configurationService = configurationService;\n }\n}\nYAxisNotesComponentGenerated.ɵfac = function YAxisNotesComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nYAxisNotesComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: YAxisNotesComponentGenerated, inputs: { data: \"data\", line: \"line\", position: \"position\", visual: \"visual\", icon: \"icon\", label: \"label\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], YAxisNotesComponentGenerated.prototype, \"data\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], YAxisNotesComponentGenerated.prototype, \"line\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], YAxisNotesComponentGenerated.prototype, \"position\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], YAxisNotesComponentGenerated.prototype, \"visual\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], YAxisNotesComponentGenerated.prototype, \"icon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], YAxisNotesComponentGenerated.prototype, \"label\", void 0);\n\n/**\n * The configuration of the Y axis notes\n * ([see example]({% slug api_charts_yaxiscomponent %})).\n */\nlet YAxisNotesComponent = class YAxisNotesComponent extends YAxisNotesComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nYAxisNotesComponent.ɵfac = function YAxisNotesComponent_Factory(t) { return new (t || YAxisNotesComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nYAxisNotesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: YAxisNotesComponent, selectors: [[\"kendo-chart-y-axis-item-notes\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function YAxisNotesComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nYAxisNotesComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], YAxisNotesComponent);\n\n/**\n * @hidden\n */\nclass YAxisNotesIconComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('notes.icon', configurationService);\n this.configurationService = configurationService;\n }\n}\nYAxisNotesIconComponentGenerated.ɵfac = function YAxisNotesIconComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nYAxisNotesIconComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: YAxisNotesIconComponentGenerated, inputs: { background: \"background\", border: \"border\", size: \"size\", type: \"type\", visible: \"visible\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], YAxisNotesIconComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], YAxisNotesIconComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], YAxisNotesIconComponentGenerated.prototype, \"size\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], YAxisNotesIconComponentGenerated.prototype, \"type\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], YAxisNotesIconComponentGenerated.prototype, \"visible\", void 0);\n\n/**\n * The icon of the notes.\n */\nlet YAxisNotesIconComponent = class YAxisNotesIconComponent extends YAxisNotesIconComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nYAxisNotesIconComponent.ɵfac = function YAxisNotesIconComponent_Factory(t) { return new (t || YAxisNotesIconComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nYAxisNotesIconComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: YAxisNotesIconComponent, selectors: [[\"kendo-chart-y-axis-item-notes-icon\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function YAxisNotesIconComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nYAxisNotesIconComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], YAxisNotesIconComponent);\n\n/**\n * @hidden\n */\nclass YAxisNotesLabelComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('notes.label', configurationService);\n this.configurationService = configurationService;\n }\n}\nYAxisNotesLabelComponentGenerated.ɵfac = function YAxisNotesLabelComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nYAxisNotesLabelComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: YAxisNotesLabelComponentGenerated, inputs: { background: \"background\", border: \"border\", color: \"color\", content: \"content\", font: \"font\", format: \"format\", position: \"position\", rotation: \"rotation\", visible: \"visible\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], YAxisNotesLabelComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], YAxisNotesLabelComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], YAxisNotesLabelComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], YAxisNotesLabelComponentGenerated.prototype, \"content\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], YAxisNotesLabelComponentGenerated.prototype, \"font\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], YAxisNotesLabelComponentGenerated.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], YAxisNotesLabelComponentGenerated.prototype, \"position\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], YAxisNotesLabelComponentGenerated.prototype, \"rotation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], YAxisNotesLabelComponentGenerated.prototype, \"visible\", void 0);\n\n/**\n * The label of the notes.\n */\nlet YAxisNotesLabelComponent = class YAxisNotesLabelComponent extends YAxisNotesLabelComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nYAxisNotesLabelComponent.ɵfac = function YAxisNotesLabelComponent_Factory(t) { return new (t || YAxisNotesLabelComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nYAxisNotesLabelComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: YAxisNotesLabelComponent, selectors: [[\"kendo-chart-y-axis-item-notes-label\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function YAxisNotesLabelComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nYAxisNotesLabelComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], YAxisNotesLabelComponent);\n\n/**\n * @hidden\n */\nclass YAxisTitleComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('title', configurationService);\n this.configurationService = configurationService;\n }\n}\nYAxisTitleComponentGenerated.ɵfac = function YAxisTitleComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nYAxisTitleComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: YAxisTitleComponentGenerated, inputs: { background: \"background\", border: \"border\", color: \"color\", font: \"font\", margin: \"margin\", padding: \"padding\", position: \"position\", rotation: \"rotation\", text: \"text\", visible: \"visible\", visual: \"visual\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], YAxisTitleComponentGenerated.prototype, \"background\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], YAxisTitleComponentGenerated.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], YAxisTitleComponentGenerated.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], YAxisTitleComponentGenerated.prototype, \"font\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], YAxisTitleComponentGenerated.prototype, \"margin\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], YAxisTitleComponentGenerated.prototype, \"padding\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], YAxisTitleComponentGenerated.prototype, \"position\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], YAxisTitleComponentGenerated.prototype, \"rotation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], YAxisTitleComponentGenerated.prototype, \"text\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], YAxisTitleComponentGenerated.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], YAxisTitleComponentGenerated.prototype, \"visual\", void 0);\n\n/**\n * The title configuration of the Scatter Chart Y axis.\n */\nlet YAxisTitleComponent = class YAxisTitleComponent extends YAxisTitleComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nYAxisTitleComponent.ɵfac = function YAxisTitleComponent_Factory(t) { return new (t || YAxisTitleComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nYAxisTitleComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: YAxisTitleComponent, selectors: [[\"kendo-chart-y-axis-item-title\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function YAxisTitleComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nYAxisTitleComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], YAxisTitleComponent);\n\n/**\n * @hidden\n */\nclass ZoomableComponentGenerated extends SettingsComponent {\n constructor(configurationService) {\n super('zoomable', configurationService);\n this.configurationService = configurationService;\n }\n}\nZoomableComponentGenerated.ɵfac = function ZoomableComponentGenerated_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nZoomableComponentGenerated.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ZoomableComponentGenerated, inputs: { mousewheel: \"mousewheel\", selection: \"selection\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ZoomableComponentGenerated.prototype, \"mousewheel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ZoomableComponentGenerated.prototype, \"selection\", void 0);\n\n/**\n * Specifies if the Chart can be zoomed.\n *\n * @example\n *\n * ```html-no-run\n * \n * \n * \n * ```\n */\nlet ZoomableComponent = class ZoomableComponent extends ZoomableComponentGenerated {\n // Place custom properties here\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nZoomableComponent.ɵfac = function ZoomableComponent_Factory(t) { return new (t || ZoomableComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nZoomableComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ZoomableComponent, selectors: [[\"kendo-chart-zoomable\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function ZoomableComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nZoomableComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], ZoomableComponent);\n\n/**\n * @hidden\n */\nconst CHART_DIRECTIVES = [\n ChartComponent,\n TooltipPopupComponent,\n SeriesTooltipTemplateDirective,\n SharedTooltipTemplateDirective,\n CrosshairTooltipsContainerComponent,\n CrosshairTooltipComponent,\n DonutCenterTemplateDirective,\n AxisDefaultsComponent,\n AxisDefaultsCrosshairComponent,\n AxisDefaultsCrosshairTooltipComponent,\n AxisDefaultsLabelsComponent,\n AxisDefaultsTitleComponent,\n CategoryAxisComponent,\n CategoryAxisCrosshairComponent,\n CategoryAxisCrosshairTooltipComponent,\n CategoryAxisItemComponent,\n CategoryAxisLabelsComponent,\n CategoryAxisRangeLabelsComponent,\n CategoryAxisNotesComponent,\n CategoryAxisNotesIconComponent,\n CategoryAxisNotesLabelComponent,\n CategoryAxisSelectComponent,\n CategoryAxisTitleComponent,\n ChartAreaComponent,\n LegendComponent,\n LegendInactiveItemsComponent,\n LegendItemComponent,\n PaneComponent,\n PaneDefaultsComponent,\n PaneDefaultsTitleComponent,\n PanesComponent,\n PanesTitleComponent,\n PlotAreaComponent,\n SeriesComponent,\n SeriesDefaultsComponent,\n SeriesDefaultsLabelsComponent,\n SeriesDefaultsLabelsFromComponent,\n SeriesDefaultsLabelsToComponent,\n SeriesDefaultsNotesComponent,\n SeriesDefaultsNotesIconComponent,\n SeriesDefaultsNotesLabelComponent,\n SeriesDefaultsTooltipComponent,\n SeriesErrorBarsComponent,\n SeriesExtremesComponent,\n SeriesHighlightComponent,\n SeriesItemComponent,\n SeriesLabelsComponent,\n SeriesLabelsFromComponent,\n SeriesLabelsToComponent,\n SeriesMarkersComponent,\n SeriesNotesComponent,\n SeriesNotesIconComponent,\n SeriesNotesLabelComponent,\n SeriesOutliersComponent,\n SeriesTooltipComponent,\n TitleComponent,\n TooltipComponent,\n ValueAxisComponent,\n ValueAxisCrosshairComponent,\n ValueAxisCrosshairTooltipComponent,\n ValueAxisItemComponent,\n ValueAxisLabelsComponent,\n ValueAxisNotesComponent,\n ValueAxisNotesIconComponent,\n ValueAxisNotesLabelComponent,\n ValueAxisTitleComponent,\n XAxisComponent,\n XAxisCrosshairComponent,\n XAxisCrosshairTooltipComponent,\n XAxisItemComponent,\n XAxisLabelsComponent,\n XAxisNotesComponent,\n XAxisNotesIconComponent,\n XAxisNotesLabelComponent,\n XAxisTitleComponent,\n YAxisComponent,\n YAxisCrosshairComponent,\n YAxisCrosshairTooltipComponent,\n YAxisItemComponent,\n YAxisLabelsComponent,\n YAxisNotesComponent,\n YAxisNotesIconComponent,\n YAxisNotesLabelComponent,\n YAxisTitleComponent,\n ZoomableComponent\n];\n\n// Re-export event types\n\n/**\n * The arguments for the `navigatorFilter` event.\n */\nclass NavigatorFilterEvent extends BaseEvent {\n /**\n * Constructs the event arguments from a raw object.\n */\n constructor(e, sender) {\n super(sender);\n this.from = e.from;\n this.to = e.to;\n }\n}\n\n// Re-export event types\n\n/**\n * @hidden\n */\nlet RootConfigurationService = class RootConfigurationService extends ConfigurationService {\n};\nRootConfigurationService.ɵfac = /*@__PURE__*/ function () { let ɵRootConfigurationService_BaseFactory; return function RootConfigurationService_Factory(t) { return (ɵRootConfigurationService_BaseFactory || (ɵRootConfigurationService_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(RootConfigurationService)))(t || RootConfigurationService); }; }();\nRootConfigurationService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: RootConfigurationService, factory: function (t) { return RootConfigurationService.ɵfac(t); } });\n\nconst EVENT_MAP$1 = {\n navigatorFilter: NavigatorFilterEvent\n};\n/**\n * @hidden\n */\nclass StockInstanceEventService extends InstanceEventService {\n create(name, args, sender) {\n if (EVENT_MAP$1[name]) {\n return new EVENT_MAP$1[name](args, sender);\n }\n return super.create(name, args, sender);\n }\n}\nStockInstanceEventService.ɵfac = /*@__PURE__*/ function () { let ɵStockInstanceEventService_BaseFactory; return function StockInstanceEventService_Factory(t) { return (ɵStockInstanceEventService_BaseFactory || (ɵStockInstanceEventService_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(StockInstanceEventService)))(t || StockInstanceEventService); }; }();\nStockInstanceEventService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: StockInstanceEventService, factory: StockInstanceEventService.ɵfac });\n\nconst NAVIGATOR_DEFAULTS = {\n autoBindElements: true,\n liveDrag: false,\n partialRedraw: true\n};\n/* tslint:disable:no-access-missing-member */\n/**\n * The root StockChart component.\n *\n * @example\n * ```ts\n * import { Component } from '@angular/core';\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 data: any[] = [];\n *\n * constructor() {\n * for (let idx = 0; idx < 100; idx++) {\n * this.data.push({\n * date: new Date(2017, 0, idx),\n * value: Math.random() * 100\n * });\n * }\n * }\n * }\n *\n * ```\n */\nlet StockChartComponent = class StockChartComponent extends ChartComponent {\n constructor(configurationService, themeService, element, intl, localizationService, ngZone, instanceEventService, changeDetector, renderer) {\n super(configurationService, themeService, element, intl, localizationService, ngZone, instanceEventService, changeDetector, renderer);\n this.configurationService = configurationService;\n this.themeService = themeService;\n this.element = element;\n this.intl = intl;\n this.localizationService = localizationService;\n this.ngZone = ngZone;\n this.instanceEventService = instanceEventService;\n this.changeDetector = changeDetector;\n this.renderer = renderer;\n /**\n * Fires when the navigator range is changed.\n */\n this.navigatorFilter = new EventEmitter();\n this.redrawSlaves = false;\n this.hostClasses = ['k-chart', 'k-stockchart'];\n validatePackage(packageMetadata);\n }\n /**\n * If called, the navigator pane is not redrawn the next time the StockChart options are updated.\n * The method is useful if you need to update only the main series data for the selected period.\n */\n skipNavigatorRedraw() {\n this.redrawSlaves = true;\n }\n createInstance(element, observer) {\n this.applyNavigatorDefaults();\n if (this.isDevMode() && (this.options.zoomable || this.options.pannable)) {\n throw new Error('The pannable and zoomable options are not supported by the StockChart component.');\n }\n this.instance = new StockChart(element, this.options, this.theme, {\n intlService: this.intl,\n observer: observer,\n rtl: this.rtl,\n sender: this\n });\n }\n updateOptions() {\n this.applyNavigatorDefaults();\n if (this.redrawSlaves) {\n this.instance.applyOptions(this.options);\n this.instance.bindCategories();\n this.instance.navigator.redrawSlaves();\n }\n else {\n this.instance.setOptions(this.options);\n }\n this.redrawSlaves = false;\n }\n applyNavigatorDefaults() {\n this.options.navigator = Object.assign({}, this.options.navigator, NAVIGATOR_DEFAULTS);\n }\n isDevMode() {\n return isDevMode();\n }\n};\nStockChartComponent.ɵfac = function StockChartComponent_Factory(t) { return new (t || StockChartComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService), ɵngcc0.ɵɵdirectiveInject(ThemeService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc4.IntlService), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(StockInstanceEventService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nStockChartComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: StockChartComponent, selectors: [[\"kendo-stockchart\"]], inputs: { navigator: \"navigator\", pannable: \"pannable\", zoomable: \"zoomable\" }, outputs: { navigatorFilter: \"navigatorFilter\" }, exportAs: [\"kendoStockChart\"], features: [ɵngcc0.ɵɵProvidersFeature([\n ConfigurationService,\n TooltipTemplateService,\n { provide: RootConfigurationService, useExisting: ConfigurationService },\n StockInstanceEventService,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.chart'\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 5, vars: 2, consts: [[1, \"k-chart-surface\"], [\"surface\", \"\"], [3, \"popupSettings\"], [3, \"popupSettings\", \"leave\"], [3, \"resize\"]], template: function StockChartComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"div\", 0, 1)(2, \"kendo-chart-crosshair-tooltips-container\", 2);\n ɵngcc0.ɵɵelementStart(3, \"kendo-chart-tooltip-popup\", 3);\n ɵngcc0.ɵɵlistener(\"leave\", function StockChartComponent_Template_kendo_chart_tooltip_popup_leave_3_listener($event) { return ctx.tooltipMouseleave($event); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(4, \"kendo-resize-sensor\", 4);\n ɵngcc0.ɵɵlistener(\"resize\", function StockChartComponent_Template_kendo_resize_sensor_resize_4_listener($event) { return ctx.onResize($event); });\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"popupSettings\", ctx.popupSettings);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"popupSettings\", ctx.popupSettings);\n } }, directives: [CrosshairTooltipsContainerComponent, TooltipPopupComponent, ɵngcc5.ResizeSensorComponent], encapsulation: 2, changeDetection: 0 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], StockChartComponent.prototype, \"navigator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], StockChartComponent.prototype, \"pannable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], StockChartComponent.prototype, \"zoomable\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], StockChartComponent.prototype, \"navigatorFilter\", void 0);\nStockChartComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService,\n ThemeService,\n ElementRef,\n IntlService,\n LocalizationService,\n NgZone,\n StockInstanceEventService,\n ChangeDetectorRef,\n Renderer2])\n], StockChartComponent);\n\n/**\n * @hidden\n */\nconst PREFIX = new InjectionToken('configuration prefix');\n/**\n * @hidden\n */\nlet PrefixConfigurationService = class PrefixConfigurationService extends ConfigurationService {\n constructor(rootService, prefix, ngZone) {\n super(ngZone);\n this.rootService = rootService;\n this.prefix = prefix;\n }\n push(store) {\n this.rootService.notify(new Change(this.prefix, store));\n }\n notify(change) {\n change.key = this.prefix + (change.key ? `.${change.key}` : '');\n this.rootService.notify(change);\n }\n};\nPrefixConfigurationService.ɵfac = function PrefixConfigurationService_Factory(t) { return new (t || PrefixConfigurationService)(ɵngcc0.ɵɵinject(RootConfigurationService), ɵngcc0.ɵɵinject(PREFIX), ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nPrefixConfigurationService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: PrefixConfigurationService, factory: function (t) { return PrefixConfigurationService.ɵfac(t); } });\nPrefixConfigurationService = __decorate([ __param(0, Inject(RootConfigurationService)),\n __param(1, Inject(PREFIX)),\n __metadata(\"design:paramtypes\", [RootConfigurationService, String, NgZone])\n], PrefixConfigurationService);\n\n/**\n * The configuration options of the navigator\n * ([see runnable example]({% slug overview_stockchart_charts %}#toc-navigator)).\n *\n * @example\n * ```ts-no-run\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 */\nlet NavigatorComponent = class NavigatorComponent extends SettingsComponent {\n constructor(configurationService) {\n super('', configurationService);\n this.configurationService = configurationService;\n }\n};\nNavigatorComponent.ɵfac = function NavigatorComponent_Factory(t) { return new (t || NavigatorComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nNavigatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NavigatorComponent, selectors: [[\"kendo-chart-navigator\"]], inputs: { visible: \"visible\", categoryAxis: \"categoryAxis\", hint: \"hint\", pane: \"pane\", select: \"select\", series: \"series\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: PREFIX, useValue: 'navigator' }, { provide: ConfigurationService, useClass: PrefixConfigurationService }]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function NavigatorComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], NavigatorComponent.prototype, \"visible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], NavigatorComponent.prototype, \"categoryAxis\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], NavigatorComponent.prototype, \"hint\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], NavigatorComponent.prototype, \"pane\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], NavigatorComponent.prototype, \"select\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], NavigatorComponent.prototype, \"series\", void 0);\nNavigatorComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], NavigatorComponent);\n\n/**\n * The configuration component of the navigator category axis.\n *\n * @example\n *\n * ```html-no-run\n * \n * \n * \n * \n * \n * \n * ```\n */\nlet NavigatorCategoryAxisComponent = class NavigatorCategoryAxisComponent extends CategoryAxisItemComponent {\n constructor(configurationService, intl, localeId) {\n super(configurationService, null, intl, localeId);\n this.configurationService = configurationService;\n }\n};\nNavigatorCategoryAxisComponent.ɵfac = function NavigatorCategoryAxisComponent_Factory(t) { return new (t || NavigatorCategoryAxisComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc4.IntlService), ɵngcc0.ɵɵdirectiveInject(LOCALE_ID)); };\nNavigatorCategoryAxisComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NavigatorCategoryAxisComponent, selectors: [[\"kendo-chart-navigator-category-axis\"]], features: [ɵngcc0.ɵɵProvidersFeature([{\n provide: PREFIX,\n useValue: 'navigator.categoryAxis'\n }, {\n provide: ConfigurationService,\n useClass: PrefixConfigurationService\n }]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function NavigatorCategoryAxisComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nNavigatorCategoryAxisComponent = __decorate([ __param(2, Inject(LOCALE_ID)),\n __metadata(\"design:paramtypes\", [ConfigurationService,\n IntlService, String])\n], NavigatorCategoryAxisComponent);\n\n/**\n * The configuration options of the crosshair.\n */\nlet NavigatorCategoryAxisCrosshairComponent = class NavigatorCategoryAxisCrosshairComponent extends CategoryAxisCrosshairComponent {\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nNavigatorCategoryAxisCrosshairComponent.ɵfac = function NavigatorCategoryAxisCrosshairComponent_Factory(t) { return new (t || NavigatorCategoryAxisCrosshairComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nNavigatorCategoryAxisCrosshairComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NavigatorCategoryAxisCrosshairComponent, selectors: [[\"kendo-chart-navigator-category-axis-crosshair\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function NavigatorCategoryAxisCrosshairComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nNavigatorCategoryAxisCrosshairComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], NavigatorCategoryAxisCrosshairComponent);\n\n/**\n * The configuration options of the crosshair tooltip.\n * The crosshair tooltip is displayed when the `visible` option is set to `true`.\n */\nlet NavigatorCategoryAxisCrosshairTooltipComponent = class NavigatorCategoryAxisCrosshairTooltipComponent extends CategoryAxisCrosshairTooltipComponent {\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nNavigatorCategoryAxisCrosshairTooltipComponent.ɵfac = function NavigatorCategoryAxisCrosshairTooltipComponent_Factory(t) { return new (t || NavigatorCategoryAxisCrosshairTooltipComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nNavigatorCategoryAxisCrosshairTooltipComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NavigatorCategoryAxisCrosshairTooltipComponent, selectors: [[\"kendo-chart-navigator-category-axis-crosshair-tooltip\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function NavigatorCategoryAxisCrosshairTooltipComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nNavigatorCategoryAxisCrosshairTooltipComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], NavigatorCategoryAxisCrosshairTooltipComponent);\n\n/**\n * The configuration of the axis labels.\n */\nlet NavigatorCategoryAxisLabelsComponent = class NavigatorCategoryAxisLabelsComponent extends CategoryAxisLabelsComponent {\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nNavigatorCategoryAxisLabelsComponent.ɵfac = function NavigatorCategoryAxisLabelsComponent_Factory(t) { return new (t || NavigatorCategoryAxisLabelsComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nNavigatorCategoryAxisLabelsComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NavigatorCategoryAxisLabelsComponent, selectors: [[\"kendo-chart-navigator-category-axis-labels\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function NavigatorCategoryAxisLabelsComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nNavigatorCategoryAxisLabelsComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], NavigatorCategoryAxisLabelsComponent);\n\n/**\n * The configuration of the category axis notes.\n */\nlet NavigatorCategoryAxisNotesComponent = class NavigatorCategoryAxisNotesComponent extends CategoryAxisNotesComponent {\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nNavigatorCategoryAxisNotesComponent.ɵfac = function NavigatorCategoryAxisNotesComponent_Factory(t) { return new (t || NavigatorCategoryAxisNotesComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nNavigatorCategoryAxisNotesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NavigatorCategoryAxisNotesComponent, selectors: [[\"kendo-chart-navigator-category-axis-notes\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function NavigatorCategoryAxisNotesComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nNavigatorCategoryAxisNotesComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], NavigatorCategoryAxisNotesComponent);\n\n/**\n * The icon of the notes.\n */\nlet NavigatorCategoryAxisNotesIconComponent = class NavigatorCategoryAxisNotesIconComponent extends CategoryAxisNotesIconComponent {\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nNavigatorCategoryAxisNotesIconComponent.ɵfac = function NavigatorCategoryAxisNotesIconComponent_Factory(t) { return new (t || NavigatorCategoryAxisNotesIconComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nNavigatorCategoryAxisNotesIconComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NavigatorCategoryAxisNotesIconComponent, selectors: [[\"kendo-chart-navigator-category-axis-notes-icon\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function NavigatorCategoryAxisNotesIconComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nNavigatorCategoryAxisNotesIconComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], NavigatorCategoryAxisNotesIconComponent);\n\n/**\n * The label of the notes.\n */\nlet NavigatorCategoryAxisNotesLabelComponent = class NavigatorCategoryAxisNotesLabelComponent extends CategoryAxisNotesLabelComponent {\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nNavigatorCategoryAxisNotesLabelComponent.ɵfac = function NavigatorCategoryAxisNotesLabelComponent_Factory(t) { return new (t || NavigatorCategoryAxisNotesLabelComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nNavigatorCategoryAxisNotesLabelComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NavigatorCategoryAxisNotesLabelComponent, selectors: [[\"kendo-chart-navigator-category-axis-notes-label\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function NavigatorCategoryAxisNotesLabelComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nNavigatorCategoryAxisNotesLabelComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], NavigatorCategoryAxisNotesLabelComponent);\n\n/**\n * The selected axis range. If set, the axis selection is enabled. The range is index-based and starts from zero.\n * Categories with indexes in the range (`select.from`, `select.to`) will be selected.\n * This means that the last category in the range will not be included in the selection.\n * If the categories are dates, the range has also to be specified with date values.\n */\nlet NavigatorCategoryAxisSelectComponent = class NavigatorCategoryAxisSelectComponent extends CategoryAxisSelectComponent {\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nNavigatorCategoryAxisSelectComponent.ɵfac = function NavigatorCategoryAxisSelectComponent_Factory(t) { return new (t || NavigatorCategoryAxisSelectComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nNavigatorCategoryAxisSelectComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NavigatorCategoryAxisSelectComponent, selectors: [[\"kendo-chart-navigator-category-axis-select\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function NavigatorCategoryAxisSelectComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nNavigatorCategoryAxisSelectComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], NavigatorCategoryAxisSelectComponent);\n\n/**\n * The title configuration of the navigator category axis.\n */\nlet NavigatorCategoryAxisTitleComponent = class NavigatorCategoryAxisTitleComponent extends CategoryAxisTitleComponent {\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nNavigatorCategoryAxisTitleComponent.ɵfac = function NavigatorCategoryAxisTitleComponent_Factory(t) { return new (t || NavigatorCategoryAxisTitleComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nNavigatorCategoryAxisTitleComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NavigatorCategoryAxisTitleComponent, selectors: [[\"kendo-chart-navigator-category-axis-title\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function NavigatorCategoryAxisTitleComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nNavigatorCategoryAxisTitleComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], NavigatorCategoryAxisTitleComponent);\n\n/**\n * The default options of the navigator hint\n * ([see example]({% slug overview_stockchart_charts %}#toc-navigator)).\n */\nlet NavigatorHintComponent = class NavigatorHintComponent extends SettingsComponent {\n constructor(configurationService) {\n super('hint', configurationService);\n this.configurationService = configurationService;\n }\n};\nNavigatorHintComponent.ɵfac = function NavigatorHintComponent_Factory(t) { return new (t || NavigatorHintComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nNavigatorHintComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NavigatorHintComponent, selectors: [[\"kendo-chart-navigator-hint\"]], inputs: { content: \"content\", format: \"format\", visible: \"visible\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function NavigatorHintComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], NavigatorHintComponent.prototype, \"content\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], NavigatorHintComponent.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], NavigatorHintComponent.prototype, \"visible\", void 0);\nNavigatorHintComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], NavigatorHintComponent);\n\n/**\n * The configuration component of the navigator pane\n * ([see example]({% slug overview_stockchart_charts %}#toc-navigator)).\n */\nlet NavigatorPaneComponent = class NavigatorPaneComponent extends PaneComponentGenerated {\n constructor(configurationService) {\n super(configurationService, null);\n this.configurationService = configurationService;\n }\n};\nNavigatorPaneComponent.ɵfac = function NavigatorPaneComponent_Factory(t) { return new (t || NavigatorPaneComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nNavigatorPaneComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NavigatorPaneComponent, selectors: [[\"kendo-chart-navigator-pane\"]], features: [ɵngcc0.ɵɵProvidersFeature([{ provide: PREFIX, useValue: 'navigator.pane' }, { provide: ConfigurationService, useClass: PrefixConfigurationService }]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function NavigatorPaneComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nNavigatorPaneComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], NavigatorPaneComponent);\n\n/**\n * The title configuration of the StockChart navigator pane.\n */\nlet NavigatorPaneTitleComponent = class NavigatorPaneTitleComponent extends PanesTitleComponent {\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nNavigatorPaneTitleComponent.ɵfac = function NavigatorPaneTitleComponent_Factory(t) { return new (t || NavigatorPaneTitleComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nNavigatorPaneTitleComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NavigatorPaneTitleComponent, selectors: [[\"kendo-chart-navigator-pane-title\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function NavigatorPaneTitleComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nNavigatorPaneTitleComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], NavigatorPaneTitleComponent);\n\n/**\n * Specifies the initially selected range.\n * If no range is specified, the full range of values is rendered.\n */\nlet NavigatorSelectComponent = class NavigatorSelectComponent extends SettingsComponent {\n constructor(configurationService) {\n super('select', configurationService);\n this.configurationService = configurationService;\n }\n};\nNavigatorSelectComponent.ɵfac = function NavigatorSelectComponent_Factory(t) { return new (t || NavigatorSelectComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nNavigatorSelectComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NavigatorSelectComponent, selectors: [[\"kendo-chart-navigator-select\"]], inputs: { from: \"from\", to: \"to\", mousewheel: \"mousewheel\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function NavigatorSelectComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], NavigatorSelectComponent.prototype, \"from\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], NavigatorSelectComponent.prototype, \"to\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], NavigatorSelectComponent.prototype, \"mousewheel\", void 0);\nNavigatorSelectComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], NavigatorSelectComponent);\n\n/**\n * The configuration component of a navigator series item\n * ([see example]({% slug navigator_stockchart_charts %})).\n */\nlet NavigatorSeriesItemComponent = class NavigatorSeriesItemComponent extends SeriesItemComponent {\n constructor(configurationService, collectionService) {\n super(configurationService, collectionService);\n this.configurationService = configurationService;\n this.collectionService = collectionService;\n }\n};\nNavigatorSeriesItemComponent.ɵfac = function NavigatorSeriesItemComponent_Factory(t) { return new (t || NavigatorSeriesItemComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService), ɵngcc0.ɵɵdirectiveInject(CollectionService)); };\nNavigatorSeriesItemComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NavigatorSeriesItemComponent, selectors: [[\"kendo-chart-navigator-series-item\"]], features: [ɵngcc0.ɵɵProvidersFeature([ConfigurationService]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function NavigatorSeriesItemComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nNavigatorSeriesItemComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService,\n CollectionService])\n], NavigatorSeriesItemComponent);\n\n/**\n * A collection of one or more navigator series items.\n *\n * @example\n * ```ts\n * import { Component } from '@angular/core';\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[] = [];\n *\n * constructor() {\n * for (let idx = 0; idx < 100; idx++) {\n * this.data.push({\n * date: new Date(2017, 0, idx),\n * value: Math.random() * 100\n * });\n * }\n * }\n * }\n *\n * ```\n */\nlet NavigatorSeriesComponent = class NavigatorSeriesComponent extends SeriesComponent {\n constructor(configurationService, collectionService, tooltipTemplateService) {\n super(configurationService, collectionService, tooltipTemplateService);\n this.configurationService = configurationService;\n this.collectionService = collectionService;\n this.tooltipTemplateService = tooltipTemplateService;\n }\n readTooltipTemplates() {\n }\n};\nNavigatorSeriesComponent.ɵfac = function NavigatorSeriesComponent_Factory(t) { return new (t || NavigatorSeriesComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService), ɵngcc0.ɵɵdirectiveInject(CollectionService), ɵngcc0.ɵɵdirectiveInject(TooltipTemplateService)); };\nNavigatorSeriesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NavigatorSeriesComponent, selectors: [[\"kendo-chart-navigator-series\"]], contentQueries: function NavigatorSeriesComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NavigatorSeriesItemComponent, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.children = _t);\n } }, features: [ɵngcc0.ɵɵProvidersFeature([CollectionService]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function NavigatorSeriesComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\n__decorate([\n ContentChildren(NavigatorSeriesItemComponent),\n __metadata(\"design:type\", QueryList)\n], NavigatorSeriesComponent.prototype, \"children\", void 0);\nNavigatorSeriesComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService,\n CollectionService,\n TooltipTemplateService])\n], NavigatorSeriesComponent);\n\n/**\n * The error bars of the StockChart navigator series.\n */\nlet NavigatorSeriesErrorBarsComponent = class NavigatorSeriesErrorBarsComponent extends SeriesErrorBarsComponent {\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nNavigatorSeriesErrorBarsComponent.ɵfac = function NavigatorSeriesErrorBarsComponent_Factory(t) { return new (t || NavigatorSeriesErrorBarsComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nNavigatorSeriesErrorBarsComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NavigatorSeriesErrorBarsComponent, selectors: [[\"kendo-chart-navigator-series-item-error-bars\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function NavigatorSeriesErrorBarsComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nNavigatorSeriesErrorBarsComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], NavigatorSeriesErrorBarsComponent);\n\n/**\n * The extremes configuration of the StockChart navigator series. Applies to extreme outliers.\n */\nlet NavigatorSeriesExtremesComponent = class NavigatorSeriesExtremesComponent extends SeriesExtremesComponent {\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nNavigatorSeriesExtremesComponent.ɵfac = function NavigatorSeriesExtremesComponent_Factory(t) { return new (t || NavigatorSeriesExtremesComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nNavigatorSeriesExtremesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NavigatorSeriesExtremesComponent, selectors: [[\"kendo-chart-navigator-series-item-extremes\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function NavigatorSeriesExtremesComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nNavigatorSeriesExtremesComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], NavigatorSeriesExtremesComponent);\n\n/**\n * The configuration options of the StockChart series highlight.\n */\nlet NavigatorSeriesHighlightComponent = class NavigatorSeriesHighlightComponent extends SeriesHighlightComponent {\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nNavigatorSeriesHighlightComponent.ɵfac = function NavigatorSeriesHighlightComponent_Factory(t) { return new (t || NavigatorSeriesHighlightComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nNavigatorSeriesHighlightComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NavigatorSeriesHighlightComponent, selectors: [[\"kendo-chart-navigator-series-item-highlight\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function NavigatorSeriesHighlightComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nNavigatorSeriesHighlightComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], NavigatorSeriesHighlightComponent);\n\n/**\n * The label configuration of the StockChart navigator series.\n */\nlet NavigatorSeriesLabelsComponent = class NavigatorSeriesLabelsComponent extends SeriesLabelsComponent {\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n this.markAsVisible();\n }\n};\nNavigatorSeriesLabelsComponent.ɵfac = function NavigatorSeriesLabelsComponent_Factory(t) { return new (t || NavigatorSeriesLabelsComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nNavigatorSeriesLabelsComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NavigatorSeriesLabelsComponent, selectors: [[\"kendo-chart-navigator-series-item-labels\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function NavigatorSeriesLabelsComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nNavigatorSeriesLabelsComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], NavigatorSeriesLabelsComponent);\n\n/**\n * The `from` label configuration of the StockChart navigator series.\n */\nlet NavigatorSeriesLabelsFromComponent = class NavigatorSeriesLabelsFromComponent extends SeriesLabelsFromComponent {\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n this.markAsVisible();\n }\n};\nNavigatorSeriesLabelsFromComponent.ɵfac = function NavigatorSeriesLabelsFromComponent_Factory(t) { return new (t || NavigatorSeriesLabelsFromComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nNavigatorSeriesLabelsFromComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NavigatorSeriesLabelsFromComponent, selectors: [[\"kendo-chart-navigator-series-item-labels-from\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function NavigatorSeriesLabelsFromComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nNavigatorSeriesLabelsFromComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], NavigatorSeriesLabelsFromComponent);\n\n/**\n * The `to` label configuration of the StockChart navigator series.\n */\nlet NavigatorSeriesLabelsToComponent = class NavigatorSeriesLabelsToComponent extends SeriesLabelsToComponent {\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n this.markAsVisible();\n }\n};\nNavigatorSeriesLabelsToComponent.ɵfac = function NavigatorSeriesLabelsToComponent_Factory(t) { return new (t || NavigatorSeriesLabelsToComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nNavigatorSeriesLabelsToComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NavigatorSeriesLabelsToComponent, selectors: [[\"kendo-chart-navigator-series-item-labels-to\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function NavigatorSeriesLabelsToComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nNavigatorSeriesLabelsToComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], NavigatorSeriesLabelsToComponent);\n\n/**\n * The marker configuration of the StockChart navigator series.\n */\nlet NavigatorSeriesMarkersComponent = class NavigatorSeriesMarkersComponent extends SeriesMarkersComponent {\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nNavigatorSeriesMarkersComponent.ɵfac = function NavigatorSeriesMarkersComponent_Factory(t) { return new (t || NavigatorSeriesMarkersComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nNavigatorSeriesMarkersComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NavigatorSeriesMarkersComponent, selectors: [[\"kendo-chart-navigator-series-item-markers\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function NavigatorSeriesMarkersComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nNavigatorSeriesMarkersComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], NavigatorSeriesMarkersComponent);\n\n/**\n * The notes configuration of the StockChart navigator series.\n */\nlet NavigatorSeriesNotesComponent = class NavigatorSeriesNotesComponent extends SeriesNotesComponent {\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nNavigatorSeriesNotesComponent.ɵfac = function NavigatorSeriesNotesComponent_Factory(t) { return new (t || NavigatorSeriesNotesComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nNavigatorSeriesNotesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NavigatorSeriesNotesComponent, selectors: [[\"kendo-chart-navigator-series-item-notes\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function NavigatorSeriesNotesComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nNavigatorSeriesNotesComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], NavigatorSeriesNotesComponent);\n\n/**\n * The icon of the notes.\n */\nlet NavigatorSeriesNotesIconComponent = class NavigatorSeriesNotesIconComponent extends SeriesNotesIconComponent {\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nNavigatorSeriesNotesIconComponent.ɵfac = function NavigatorSeriesNotesIconComponent_Factory(t) { return new (t || NavigatorSeriesNotesIconComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nNavigatorSeriesNotesIconComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NavigatorSeriesNotesIconComponent, selectors: [[\"kendo-chart-navigator-series-item-notes-icon\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function NavigatorSeriesNotesIconComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nNavigatorSeriesNotesIconComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], NavigatorSeriesNotesIconComponent);\n\n/**\n * The label of the notes.\n */\nlet NavigatorSeriesNotesLabelComponent = class NavigatorSeriesNotesLabelComponent extends SeriesNotesLabelComponent {\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nNavigatorSeriesNotesLabelComponent.ɵfac = function NavigatorSeriesNotesLabelComponent_Factory(t) { return new (t || NavigatorSeriesNotesLabelComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nNavigatorSeriesNotesLabelComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NavigatorSeriesNotesLabelComponent, selectors: [[\"kendo-chart-navigator-series-item-notes-label\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function NavigatorSeriesNotesLabelComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nNavigatorSeriesNotesLabelComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], NavigatorSeriesNotesLabelComponent);\n\n/**\n * The outliers configuration of the StockChart navigator series. Applies to mild outliers.\n */\nlet NavigatorSeriesOutliersComponent = class NavigatorSeriesOutliersComponent extends SeriesOutliersComponent {\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nNavigatorSeriesOutliersComponent.ɵfac = function NavigatorSeriesOutliersComponent_Factory(t) { return new (t || NavigatorSeriesOutliersComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nNavigatorSeriesOutliersComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NavigatorSeriesOutliersComponent, selectors: [[\"kendo-chart-navigator-series-item-outliers\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function NavigatorSeriesOutliersComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nNavigatorSeriesOutliersComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], NavigatorSeriesOutliersComponent);\n\n/**\n * The tooltip configuration of the StockChart navigator series.\n * The StockChart navigator series tooltip is displayed when the `navigator.series.tooltip.visible` option is set to `true`.\n */\nlet NavigatorSeriesTooltipComponent = class NavigatorSeriesTooltipComponent extends SeriesTooltipComponent {\n constructor(configurationService) {\n super(configurationService);\n this.configurationService = configurationService;\n }\n};\nNavigatorSeriesTooltipComponent.ɵfac = function NavigatorSeriesTooltipComponent_Factory(t) { return new (t || NavigatorSeriesTooltipComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService)); };\nNavigatorSeriesTooltipComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NavigatorSeriesTooltipComponent, selectors: [[\"kendo-chart-navigator-series-item-tooltip\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function NavigatorSeriesTooltipComponent_Template(rf, ctx) { }, encapsulation: 2, changeDetection: 0 });\nNavigatorSeriesTooltipComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService])\n], NavigatorSeriesTooltipComponent);\n\n/**\n * @hidden\n */\nconst STOCK_CHART_DIRECTIVES = [\n StockChartComponent,\n NavigatorComponent,\n NavigatorCategoryAxisComponent,\n NavigatorCategoryAxisCrosshairComponent,\n NavigatorCategoryAxisCrosshairTooltipComponent,\n NavigatorCategoryAxisLabelsComponent,\n NavigatorCategoryAxisNotesComponent,\n NavigatorCategoryAxisNotesIconComponent,\n NavigatorCategoryAxisNotesLabelComponent,\n NavigatorCategoryAxisSelectComponent,\n NavigatorCategoryAxisTitleComponent,\n NavigatorHintComponent,\n NavigatorPaneComponent,\n NavigatorPaneTitleComponent,\n NavigatorSelectComponent,\n NavigatorSeriesComponent,\n NavigatorSeriesItemComponent,\n NavigatorSeriesErrorBarsComponent,\n NavigatorSeriesExtremesComponent,\n NavigatorSeriesHighlightComponent,\n NavigatorSeriesLabelsComponent,\n NavigatorSeriesLabelsFromComponent,\n NavigatorSeriesLabelsToComponent,\n NavigatorSeriesMarkersComponent,\n NavigatorSeriesNotesComponent,\n NavigatorSeriesNotesIconComponent,\n NavigatorSeriesNotesLabelComponent,\n NavigatorSeriesOutliersComponent,\n NavigatorSeriesTooltipComponent\n];\n\n/* tslint:disable:no-access-missing-member */\n/**\n * The root Chart component.\n *\n * @example\n * ```ts\n * import { Component } from '@angular/core';\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n * class AppComponent {\n * public data: any[] = [\n * 936, 968, 1025, 999, 998, 1014, 1017, 1010, 1010, 1007,\n * 1004, 988, 990, 988, 987, 995, 946, 954, 991, 984,\n * 974, 956, 986, 936, 955, 1021, 1013, 1005, 958, 953,\n * 952, 940, 937, 980, 966, 965, 928, 916, 910, 980\n * ];\n * }\n *\n * ```\n */\nlet SparklineComponent = class SparklineComponent extends ChartComponent {\n constructor(configurationService, themeService, element, intl, localizationService, ngZone, instanceEventService, changeDetector, renderer) {\n super(configurationService, themeService, element, intl, localizationService, ngZone, instanceEventService, changeDetector, renderer);\n this.configurationService = configurationService;\n this.themeService = themeService;\n this.element = element;\n this.intl = intl;\n this.localizationService = localizationService;\n this.ngZone = ngZone;\n this.instanceEventService = instanceEventService;\n this.changeDetector = changeDetector;\n this.renderer = renderer;\n /**\n * @hidden\n */\n this.tooltipWrapperClass = 'k-sparkline-tooltip-wrapper';\n /**\n * @hidden\n */\n this.tooltipContentClasses = {\n 'k-sparkline-tooltip': true\n };\n this.hostClasses = ['k-sparkline', 'k-widget'];\n validatePackage(packageMetadata);\n }\n createInstance(element, observer) {\n this.instance = new Sparkline(element, Sparkline.normalizeOptions(this.options), this.theme, {\n intlService: this.intl,\n observer: observer,\n rtl: this.rtl,\n sender: this\n });\n }\n updateOptions() {\n this.instance.setOptions(Sparkline.normalizeOptions(this.options));\n }\n};\nSparklineComponent.ɵfac = function SparklineComponent_Factory(t) { return new (t || SparklineComponent)(ɵngcc0.ɵɵdirectiveInject(ConfigurationService), ɵngcc0.ɵɵdirectiveInject(ThemeService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc4.IntlService), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(InstanceEventService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nSparklineComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SparklineComponent, selectors: [[\"kendo-sparkline\"]], inputs: { type: \"type\", data: \"data\" }, exportAs: [\"kendoSparkline\"], features: [ɵngcc0.ɵɵProvidersFeature([\n ConfigurationService,\n TooltipTemplateService,\n InstanceEventService,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.chart'\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 5, vars: 5, consts: [[1, \"k-chart-surface\"], [\"surface\", \"\"], [3, \"popupSettings\"], [3, \"animate\", \"wrapperClass\", \"classNames\", \"popupSettings\", \"leave\"], [3, \"resize\"]], template: function SparklineComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 0, 1)(2, \"kendo-chart-crosshair-tooltips-container\", 2);\n ɵngcc0.ɵɵelementStart(3, \"kendo-chart-tooltip-popup\", 3);\n ɵngcc0.ɵɵlistener(\"leave\", function SparklineComponent_Template_kendo_chart_tooltip_popup_leave_3_listener($event) { return ctx.tooltipMouseleave($event); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(4, \"kendo-resize-sensor\", 4);\n ɵngcc0.ɵɵlistener(\"resize\", function SparklineComponent_Template_kendo_resize_sensor_resize_4_listener($event) { return ctx.onResize($event); });\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"popupSettings\", ctx.popupSettings);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"animate\", false)(\"wrapperClass\", ctx.tooltipWrapperClass)(\"classNames\", ctx.tooltipContentClasses)(\"popupSettings\", ctx.popupSettings);\n } }, directives: [CrosshairTooltipsContainerComponent, TooltipPopupComponent, ɵngcc5.ResizeSensorComponent], encapsulation: 2, changeDetection: 0 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SparklineComponent.prototype, \"type\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], SparklineComponent.prototype, \"data\", void 0);\nSparklineComponent = __decorate([ __metadata(\"design:paramtypes\", [ConfigurationService,\n ThemeService,\n ElementRef,\n IntlService,\n LocalizationService,\n NgZone,\n InstanceEventService,\n ChangeDetectorRef,\n Renderer2])\n], SparklineComponent);\n\n/**\n * @hidden\n */\nconst SPARKLINE_DIRECTIVES = [\n SparklineComponent\n];\n\n/**\n * A [module]({{ site.data.urls.angular['ngmoduleapi'] }}) that includes the Chart component and directives.\n *\n * Imports the ChartModule into your application\n * [root module]({{ site.data.url.angular['ngmodules'] }}#angular-modularity) or any other sub-module\n * that will use the Chart component.\n *\n * @example\n * ```ts-no-run\n * import { NgModule } from '@angular/core';\n * import { BrowserModule } from '@angular/platform-browser';\n * import { ChartModule } from '@progress/kendo-angular-charts';\n * import { AppComponent } from './app.component';\n *\n * _@NgModule({\n * bootstrap: [AppComponent],\n * declarations: [AppComponent],\n * imports: [BrowserModule, ChartModule]\n * })\n * export class AppModule {\n * }\n * ```\n */\nlet ChartModule = class ChartModule {\n};\nChartModule.ɵfac = function ChartModule_Factory(t) { return new (t || ChartModule)(); };\nChartModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: ChartModule });\nChartModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ providers: [\n ThemeService\n ], imports: [[CommonModule, PopupModule, ResizeSensorModule]] });\n\n/**\n * A [module]({{ site.data.urls.angular['ngmoduleapi'] }}) that includes the StockChart component and directives.\n *\n * Imports the StockChartModule into your application\n * [root module]({{ site.data.urls.angular['ngmodules'] }}#angular-modularity) or any other sub-module\n * that will use the StockChart component.\n *\n * @example\n * ```ts-no-run\n * import { NgModule } from '@angular/core';\n * import { BrowserModule } from '@angular/platform-browser';\n * import { StockChartModule } from '@progress/kendo-angular-charts';\n * import { AppComponent } from './app.component';\n *\n * _@NgModule({\n * bootstrap: [AppComponent],\n * declarations: [AppComponent],\n * imports: [BrowserModule, StockChartModule]\n * })\n * export class AppModule {\n * }\n * ```\n */\nlet StockChartModule = class StockChartModule {\n};\nStockChartModule.ɵfac = function StockChartModule_Factory(t) { return new (t || StockChartModule)(); };\nStockChartModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: StockChartModule });\nStockChartModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[ChartModule, CommonModule, PopupModule, ResizeSensorModule], ChartModule] });\n\n/**\n * A [module]({{ site.data.urls.angular['ngmoduleapi'] }}) that includes the Sparkline component and directives.\n *\n * Imports the SparklineModule into your application\n * [root module]({{ site.data.urls.angular['ngmodules'] }}#angular-modularity) or any other sub-module\n * that will use the Sparkline component.\n *\n * @example\n * ```ts-no-run\n * import { NgModule } from '@angular/core';\n * import { BrowserModule } from '@angular/platform-browser';\n * import { SparklineModule } from '@progress/kendo-angular-charts';\n * import { AppComponent } from './app.component';\n *\n * _@NgModule({\n * bootstrap: [AppComponent],\n * declarations: [AppComponent],\n * imports: [BrowserModule, SparklineModule]\n * })\n * export class AppModule {\n * }\n * ```\n */\nlet SparklineModule = class SparklineModule {\n};\nSparklineModule.ɵfac = function SparklineModule_Factory(t) { return new (t || SparklineModule)(); };\nSparklineModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: SparklineModule });\nSparklineModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[ChartModule, CommonModule, PopupModule, ResizeSensorModule], ChartModule] });\n\n/**\n * A [module]({{ site.data.urls.angular['ngmoduleapi'] }}) that includes all Chart components and directives.\n *\n * Imports the ChartsModule into your application\n * [root module]({{ site.data.urls.angular['ngmodules'] }}#angular-modularity) or any other sub-module\n * that will use the Charts components.\n *\n * @example\n * ```ts-no-run\n * import { NgModule } from '@angular/core';\n * import { BrowserModule } from '@angular/platform-browser';\n * import { ChartsModule } from '@progress/kendo-angular-charts';\n * import { AppComponent } from './app.component';\n *\n * _@NgModule({\n * bootstrap: [AppComponent],\n * declarations: [AppComponent],\n * imports: [BrowserModule, ChartsModule]\n * })\n * export class AppModule {\n * }\n * ```\n */\nlet ChartsModule = class ChartsModule {\n};\nChartsModule.ɵfac = function ChartsModule_Factory(t) { return new (t || ChartsModule)(); };\nChartsModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: ChartsModule });\nChartsModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [ChartModule, SparklineModule, StockChartModule] });\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ConfigurationService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc0.NgZone }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DonutCenterTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoChartDonutCenterTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CollectionService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n\n\n\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SeriesTooltipComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-series-item-tooltip',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, { seriesTooltipTemplate: [{\n type: ContentChild,\n args: [TemplateRef, { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SeriesItemComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ConfigurationService],\n selector: 'kendo-chart-series-item',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }, { type: CollectionService }]; }, { seriesTooltip: [{\n type: ContentChild,\n args: [SeriesTooltipComponent, { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ThemeService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc0.NgZone }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TooltipTemplateService, [{\n type: Injectable\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SeriesTooltipTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoChartSeriesTooltipTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SharedTooltipTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoChartSharedTooltipTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TooltipPopupComponent, [{\n type: Component,\n args: [{\n providers: [PopupService, {\n provide: POPUP_CONTAINER,\n useFactory: ɵ0$2\n }],\n selector: 'kendo-chart-tooltip-popup',\n template: `\n \n
\n \n \n \n \n
\n
\n\n \n \n \n \n \n \n \n \n \n \n \n
{{ categoryText }}
\n {{ point.series.name }}\n  \n \n \n \n
\n
\n `\n }]\n }], function () { return [{ type: ɵngcc1.PopupService }, { type: TooltipTemplateService }, { type: ɵngcc2.LocalizationService }, { type: ɵngcc0.NgZone }]; }, { animate: [{\n type: Input\n }], wrapperClass: [{\n type: Input\n }], leave: [{\n type: Output\n }], defaultSeriesTooltipTemplate: [{\n type: ViewChild,\n args: [SeriesTooltipTemplateDirective, { static: false }]\n }], defaultSharedTooltipTemplate: [{\n type: ViewChild,\n args: [SharedTooltipTemplateDirective, { static: false }]\n }], templateRef: [{\n type: ViewChild,\n args: ['content', { static: true }]\n }], classNames: [{\n type: Input\n }], popupSettings: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CrosshairTooltipComponent, [{\n type: Component,\n args: [{\n providers: [PopupService, {\n provide: POPUP_CONTAINER,\n useFactory: ɵ0$3\n }],\n selector: 'kendo-chart-crosshair-tooltip',\n template: `\n \n
\n {{ value }}\n
\n
\n `\n }]\n }], function () { return [{ type: ɵngcc1.PopupService }, { type: ɵngcc2.LocalizationService }]; }, { templateRef: [{\n type: ViewChild,\n args: ['content', { static: true }]\n }], key: [{\n type: Input\n }], popupSettings: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CrosshairTooltipsContainerComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-chart-crosshair-tooltips-container',\n template: `\n \n \n `\n }]\n }], function () { return []; }, { popupSettings: [{\n type: Input\n }], crossahirTooltipComponents: [{\n type: ViewChildren,\n args: [CrosshairTooltipComponent]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ChartComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'kendoChart',\n providers: [\n ConfigurationService,\n TooltipTemplateService,\n InstanceEventService,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.chart'\n }\n ],\n selector: 'kendo-chart',\n template: `\n
\n \n \n \n \n \n
\n \n
\n `\n }]\n }], function () { return [{ type: ConfigurationService }, { type: ThemeService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc4.IntlService }, { type: ɵngcc2.LocalizationService }, { type: ɵngcc0.NgZone }, { type: InstanceEventService }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.Renderer2 }]; }, { legendItemClick: [{\n type: Output\n }], resizeRateLimit: [{\n type: Input\n }], popupSettings: [{\n type: Input\n }], seriesComponents: [{\n type: ContentChildren,\n args: [SeriesItemComponent, { descendants: true }]\n }], donutCenterTemplate: [{\n type: ContentChild,\n args: [DonutCenterTemplateDirective, { static: false }]\n }], tooltipInstance: [{\n type: ViewChild,\n args: [TooltipPopupComponent, { static: true }]\n }], crossahirTooltips: [{\n type: ViewChild,\n args: [CrosshairTooltipsContainerComponent, { static: true }]\n }], surfaceElement: [{\n type: ViewChild,\n args: ['surface', { static: true }]\n }] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AxisDefaultsComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-axis-defaults',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AxisDefaultsCrosshairComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-axis-defaults-crosshair',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AxisDefaultsCrosshairTooltipComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-axis-defaults-crosshair-tooltip',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AxisDefaultsLabelsComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-axis-defaults-labels',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AxisDefaultsTitleComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-axis-defaults-title',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CategoryAxisItemComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ConfigurationService],\n selector: 'kendo-chart-category-axis-item',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }, { type: CollectionService }, { type: ɵngcc4.IntlService }, { type: String, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }]; }, { rangeLabels: [{\n type: Input\n }] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CategoryAxisComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [CollectionService],\n selector: 'kendo-chart-category-axis',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }, { type: CollectionService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CategoryAxisCrosshairComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-category-axis-item-crosshair',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CategoryAxisCrosshairTooltipComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-category-axis-item-crosshair-tooltip',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CategoryAxisLabelsComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-category-axis-item-labels',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, { background: [{\n type: Input\n }], border: [{\n type: Input\n }], color: [{\n type: Input\n }], content: [{\n type: Input\n }], culture: [{\n type: Input\n }], dateFormats: [{\n type: Input\n }], font: [{\n type: Input\n }], format: [{\n type: Input\n }], margin: [{\n type: Input\n }], mirror: [{\n type: Input\n }], padding: [{\n type: Input\n }], position: [{\n type: Input\n }], rotation: [{\n type: Input\n }], skip: [{\n type: Input\n }], step: [{\n type: Input\n }], visible: [{\n type: Input\n }], visual: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CategoryAxisRangeLabelsComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-category-axis-item-range-labels',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CategoryAxisNotesComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-category-axis-item-notes',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CategoryAxisNotesIconComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-category-axis-item-notes-icon',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CategoryAxisNotesLabelComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-category-axis-item-notes-label',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CategoryAxisSelectComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-category-axis-item-select',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CategoryAxisTitleComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-category-axis-item-title',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ChartAreaComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-area',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LegendComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-legend',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LegendInactiveItemsComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-legend-inactive-items',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LegendItemComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-legend-item',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PaneComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ConfigurationService],\n selector: 'kendo-chart-pane, kendo-chart-panes-item',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }, { type: CollectionService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PaneDefaultsComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-pane-defaults',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, { background: [{\n type: Input\n }], border: [{\n type: Input\n }], clip: [{\n type: Input\n }], height: [{\n type: Input\n }], margin: [{\n type: Input\n }], padding: [{\n type: Input\n }], title: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PaneDefaultsTitleComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-pane-defaults-title',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, { background: [{\n type: Input\n }], border: [{\n type: Input\n }], color: [{\n type: Input\n }], font: [{\n type: Input\n }], margin: [{\n type: Input\n }], position: [{\n type: Input\n }], visible: [{\n type: Input\n }], visual: [{\n type: Input\n }] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PanesComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [CollectionService],\n selector: 'kendo-chart-panes',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }, { type: CollectionService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PanesTitleComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-pane-title',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PlotAreaComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-plot-area',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SeriesComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [CollectionService],\n selector: 'kendo-chart-series',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }, { type: CollectionService }, { type: TooltipTemplateService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SeriesDefaultsComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-series-defaults',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SeriesDefaultsLabelsComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-series-defaults-labels',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SeriesDefaultsLabelsFromComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-series-defaults-labels-from',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SeriesDefaultsLabelsToComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-series-defaults-labels-to',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SeriesDefaultsNotesComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-series-defaults-notes',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SeriesDefaultsNotesIconComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-series-defaults-notes-icon',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SeriesDefaultsNotesLabelComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-series-defaults-notes-label',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SeriesDefaultsTooltipComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-series-defaults-tooltip',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SeriesErrorBarsComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-series-item-error-bars',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SeriesExtremesComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-series-item-extremes',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SeriesHighlightComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-series-item-highlight',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SeriesLabelsComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-series-item-labels',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SeriesLabelsFromComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-series-item-labels-from',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SeriesLabelsToComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-series-item-labels-to',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SeriesMarkersComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-series-item-markers',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SeriesNotesComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-series-item-notes',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SeriesNotesIconComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-series-item-notes-icon',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SeriesNotesLabelComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-series-item-notes-label',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SeriesOutliersComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-series-item-outliers',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TitleComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-title',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TooltipComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-chart-tooltip',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }, { type: TooltipTemplateService }]; }, { seriesTooltipTemplate: [{\n type: ContentChild,\n args: [SeriesTooltipTemplateDirective, { static: false }]\n }], sharedTooltipTemplate: [{\n type: ContentChild,\n args: [SharedTooltipTemplateDirective, { static: false }]\n }] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ValueAxisItemComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ConfigurationService],\n selector: 'kendo-chart-value-axis-item',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }, { type: CollectionService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ValueAxisComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [CollectionService],\n selector: 'kendo-chart-value-axis',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }, { type: CollectionService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ValueAxisCrosshairComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-value-axis-item-crosshair',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ValueAxisCrosshairTooltipComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-value-axis-item-crosshair-tooltip',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ValueAxisLabelsComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-value-axis-item-labels',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ValueAxisNotesComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-value-axis-item-notes',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ValueAxisNotesIconComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-value-axis-item-notes-icon',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ValueAxisNotesLabelComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-value-axis-item-notes-label',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ValueAxisTitleComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-value-axis-item-title',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(XAxisItemComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ConfigurationService],\n selector: 'kendo-chart-x-axis-item',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }, { type: CollectionService }, { type: ɵngcc4.IntlService }, { type: String, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }]; }, { categories: [{\n type: Input\n }] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(XAxisComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [CollectionService],\n selector: 'kendo-chart-x-axis',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }, { type: CollectionService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(XAxisCrosshairComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-x-axis-item-crosshair',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(XAxisCrosshairTooltipComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-x-axis-item-crosshair-tooltip',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(XAxisLabelsComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-x-axis-item-labels',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(XAxisNotesComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-x-axis-item-notes',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(XAxisNotesIconComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-x-axis-item-notes-icon',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(XAxisNotesLabelComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-x-axis-item-notes-label',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(XAxisTitleComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-x-axis-item-title',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(YAxisItemComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ConfigurationService],\n selector: 'kendo-chart-y-axis-item',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }, { type: CollectionService }]; }, { categories: [{\n type: Input\n }] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(YAxisComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [CollectionService],\n selector: 'kendo-chart-y-axis',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }, { type: CollectionService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(YAxisCrosshairComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-y-axis-item-crosshair',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(YAxisCrosshairTooltipComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-y-axis-item-crosshair-tooltip',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(YAxisLabelsComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-y-axis-item-labels',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(YAxisNotesComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-y-axis-item-notes',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(YAxisNotesIconComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-y-axis-item-notes-icon',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(YAxisNotesLabelComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-y-axis-item-notes-label',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(YAxisTitleComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-y-axis-item-title',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ZoomableComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-zoomable',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(RootConfigurationService, [{\n type: Injectable\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(StockChartComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'kendoStockChart',\n providers: [\n ConfigurationService,\n TooltipTemplateService,\n { provide: RootConfigurationService, useExisting: ConfigurationService },\n StockInstanceEventService,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.chart'\n }\n ],\n selector: 'kendo-stockchart',\n template: `\n
\n \n \n \n \n \n `\n }]\n }], function () { return [{ type: ConfigurationService }, { type: ThemeService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc4.IntlService }, { type: ɵngcc2.LocalizationService }, { type: ɵngcc0.NgZone }, { type: StockInstanceEventService }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.Renderer2 }]; }, { navigatorFilter: [{\n type: Output\n }], navigator: [{\n type: Input\n }], pannable: [{\n type: Input\n }], zoomable: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PrefixConfigurationService, [{\n type: Injectable\n }], function () { return [{ type: RootConfigurationService, decorators: [{\n type: Inject,\n args: [RootConfigurationService]\n }] }, { type: String, decorators: [{\n type: Inject,\n args: [PREFIX]\n }] }, { type: ɵngcc0.NgZone }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigatorComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: PREFIX, useValue: 'navigator' }, { provide: ConfigurationService, useClass: PrefixConfigurationService }],\n selector: 'kendo-chart-navigator',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, { visible: [{\n type: Input\n }], categoryAxis: [{\n type: Input\n }], hint: [{\n type: Input\n }], pane: [{\n type: Input\n }], select: [{\n type: Input\n }], series: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigatorCategoryAxisComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{\n provide: PREFIX,\n useValue: 'navigator.categoryAxis'\n }, {\n provide: ConfigurationService,\n useClass: PrefixConfigurationService\n }],\n selector: 'kendo-chart-navigator-category-axis',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }, { type: ɵngcc4.IntlService }, { type: String, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigatorCategoryAxisCrosshairComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-navigator-category-axis-crosshair',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigatorCategoryAxisCrosshairTooltipComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-navigator-category-axis-crosshair-tooltip',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigatorCategoryAxisLabelsComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-navigator-category-axis-labels',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigatorCategoryAxisNotesComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-navigator-category-axis-notes',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigatorCategoryAxisNotesIconComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-navigator-category-axis-notes-icon',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigatorCategoryAxisNotesLabelComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-navigator-category-axis-notes-label',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigatorCategoryAxisSelectComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-navigator-category-axis-select',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigatorCategoryAxisTitleComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-navigator-category-axis-title',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigatorHintComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-navigator-hint',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, { content: [{\n type: Input\n }], format: [{\n type: Input\n }], visible: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigatorPaneComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: PREFIX, useValue: 'navigator.pane' }, { provide: ConfigurationService, useClass: PrefixConfigurationService }],\n selector: 'kendo-chart-navigator-pane',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigatorPaneTitleComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-navigator-pane-title',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigatorSelectComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-navigator-select',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, { from: [{\n type: Input\n }], to: [{\n type: Input\n }], mousewheel: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigatorSeriesItemComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ConfigurationService],\n selector: 'kendo-chart-navigator-series-item',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }, { type: CollectionService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigatorSeriesComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [CollectionService],\n selector: 'kendo-chart-navigator-series',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }, { type: CollectionService }, { type: TooltipTemplateService }]; }, { children: [{\n type: ContentChildren,\n args: [NavigatorSeriesItemComponent]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigatorSeriesErrorBarsComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-navigator-series-item-error-bars',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigatorSeriesExtremesComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-navigator-series-item-extremes',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigatorSeriesHighlightComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-navigator-series-item-highlight',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigatorSeriesLabelsComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-navigator-series-item-labels',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigatorSeriesLabelsFromComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-navigator-series-item-labels-from',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigatorSeriesLabelsToComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-navigator-series-item-labels-to',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigatorSeriesMarkersComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-navigator-series-item-markers',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigatorSeriesNotesComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-navigator-series-item-notes',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigatorSeriesNotesIconComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-navigator-series-item-notes-icon',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigatorSeriesNotesLabelComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-navigator-series-item-notes-label',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigatorSeriesOutliersComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-navigator-series-item-outliers',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigatorSeriesTooltipComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-chart-navigator-series-item-tooltip',\n template: ''\n }]\n }], function () { return [{ type: ConfigurationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SparklineComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'kendoSparkline',\n providers: [\n ConfigurationService,\n TooltipTemplateService,\n InstanceEventService,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.chart'\n }\n ],\n selector: 'kendo-sparkline',\n template: `\n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: ConfigurationService }, { type: ThemeService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc4.IntlService }, { type: ɵngcc2.LocalizationService }, { type: ɵngcc0.NgZone }, { type: InstanceEventService }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.Renderer2 }]; }, { type: [{\n type: Input\n }], data: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ChartModule, [{\n type: NgModule,\n args: [{\n declarations: [CHART_DIRECTIVES],\n exports: [CHART_DIRECTIVES],\n imports: [CommonModule, PopupModule, ResizeSensorModule],\n providers: [\n ThemeService\n ]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(ChartModule, { declarations: function () { return [ChartComponent, TooltipPopupComponent, SeriesTooltipTemplateDirective, SharedTooltipTemplateDirective, CrosshairTooltipsContainerComponent, CrosshairTooltipComponent, DonutCenterTemplateDirective, AxisDefaultsComponent, AxisDefaultsCrosshairComponent, AxisDefaultsCrosshairTooltipComponent, AxisDefaultsLabelsComponent, AxisDefaultsTitleComponent, CategoryAxisComponent, CategoryAxisCrosshairComponent, CategoryAxisCrosshairTooltipComponent, CategoryAxisItemComponent, CategoryAxisLabelsComponent, CategoryAxisRangeLabelsComponent, CategoryAxisNotesComponent, CategoryAxisNotesIconComponent, CategoryAxisNotesLabelComponent, CategoryAxisSelectComponent, CategoryAxisTitleComponent, ChartAreaComponent, LegendComponent, LegendInactiveItemsComponent, LegendItemComponent, PaneComponent, PaneDefaultsComponent, PaneDefaultsTitleComponent, PanesComponent, PanesTitleComponent, PlotAreaComponent, SeriesComponent, SeriesDefaultsComponent, SeriesDefaultsLabelsComponent, SeriesDefaultsLabelsFromComponent, SeriesDefaultsLabelsToComponent, SeriesDefaultsNotesComponent, SeriesDefaultsNotesIconComponent, SeriesDefaultsNotesLabelComponent, SeriesDefaultsTooltipComponent, SeriesErrorBarsComponent, SeriesExtremesComponent, SeriesHighlightComponent, SeriesItemComponent, SeriesLabelsComponent, SeriesLabelsFromComponent, SeriesLabelsToComponent, SeriesMarkersComponent, SeriesNotesComponent, SeriesNotesIconComponent, SeriesNotesLabelComponent, SeriesOutliersComponent, SeriesTooltipComponent, TitleComponent, TooltipComponent, ValueAxisComponent, ValueAxisCrosshairComponent, ValueAxisCrosshairTooltipComponent, ValueAxisItemComponent, ValueAxisLabelsComponent, ValueAxisNotesComponent, ValueAxisNotesIconComponent, ValueAxisNotesLabelComponent, ValueAxisTitleComponent, XAxisComponent, XAxisCrosshairComponent, XAxisCrosshairTooltipComponent, XAxisItemComponent, XAxisLabelsComponent, XAxisNotesComponent, XAxisNotesIconComponent, XAxisNotesLabelComponent, XAxisTitleComponent, YAxisComponent, YAxisCrosshairComponent, YAxisCrosshairTooltipComponent, YAxisItemComponent, YAxisLabelsComponent, YAxisNotesComponent, YAxisNotesIconComponent, YAxisNotesLabelComponent, YAxisTitleComponent, ZoomableComponent]; }, imports: function () { return [CommonModule, PopupModule, ResizeSensorModule]; }, exports: function () { return [ChartComponent, TooltipPopupComponent, SeriesTooltipTemplateDirective, SharedTooltipTemplateDirective, CrosshairTooltipsContainerComponent, CrosshairTooltipComponent, DonutCenterTemplateDirective, AxisDefaultsComponent, AxisDefaultsCrosshairComponent, AxisDefaultsCrosshairTooltipComponent, AxisDefaultsLabelsComponent, AxisDefaultsTitleComponent, CategoryAxisComponent, CategoryAxisCrosshairComponent, CategoryAxisCrosshairTooltipComponent, CategoryAxisItemComponent, CategoryAxisLabelsComponent, CategoryAxisRangeLabelsComponent, CategoryAxisNotesComponent, CategoryAxisNotesIconComponent, CategoryAxisNotesLabelComponent, CategoryAxisSelectComponent, CategoryAxisTitleComponent, ChartAreaComponent, LegendComponent, LegendInactiveItemsComponent, LegendItemComponent, PaneComponent, PaneDefaultsComponent, PaneDefaultsTitleComponent, PanesComponent, PanesTitleComponent, PlotAreaComponent, SeriesComponent, SeriesDefaultsComponent, SeriesDefaultsLabelsComponent, SeriesDefaultsLabelsFromComponent, SeriesDefaultsLabelsToComponent, SeriesDefaultsNotesComponent, SeriesDefaultsNotesIconComponent, SeriesDefaultsNotesLabelComponent, SeriesDefaultsTooltipComponent, SeriesErrorBarsComponent, SeriesExtremesComponent, SeriesHighlightComponent, SeriesItemComponent, SeriesLabelsComponent, SeriesLabelsFromComponent, SeriesLabelsToComponent, SeriesMarkersComponent, SeriesNotesComponent, SeriesNotesIconComponent, SeriesNotesLabelComponent, SeriesOutliersComponent, SeriesTooltipComponent, TitleComponent, TooltipComponent, ValueAxisComponent, ValueAxisCrosshairComponent, ValueAxisCrosshairTooltipComponent, ValueAxisItemComponent, ValueAxisLabelsComponent, ValueAxisNotesComponent, ValueAxisNotesIconComponent, ValueAxisNotesLabelComponent, ValueAxisTitleComponent, XAxisComponent, XAxisCrosshairComponent, XAxisCrosshairTooltipComponent, XAxisItemComponent, XAxisLabelsComponent, XAxisNotesComponent, XAxisNotesIconComponent, XAxisNotesLabelComponent, XAxisTitleComponent, YAxisComponent, YAxisCrosshairComponent, YAxisCrosshairTooltipComponent, YAxisItemComponent, YAxisLabelsComponent, YAxisNotesComponent, YAxisNotesIconComponent, YAxisNotesLabelComponent, YAxisTitleComponent, ZoomableComponent]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(StockChartModule, [{\n type: NgModule,\n args: [{\n declarations: [STOCK_CHART_DIRECTIVES],\n exports: [STOCK_CHART_DIRECTIVES, ChartModule],\n imports: [ChartModule, CommonModule, PopupModule, ResizeSensorModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(StockChartModule, { declarations: function () { return [StockChartComponent, NavigatorComponent, NavigatorCategoryAxisComponent, NavigatorCategoryAxisCrosshairComponent, NavigatorCategoryAxisCrosshairTooltipComponent, NavigatorCategoryAxisLabelsComponent, NavigatorCategoryAxisNotesComponent, NavigatorCategoryAxisNotesIconComponent, NavigatorCategoryAxisNotesLabelComponent, NavigatorCategoryAxisSelectComponent, NavigatorCategoryAxisTitleComponent, NavigatorHintComponent, NavigatorPaneComponent, NavigatorPaneTitleComponent, NavigatorSelectComponent, NavigatorSeriesComponent, NavigatorSeriesItemComponent, NavigatorSeriesErrorBarsComponent, NavigatorSeriesExtremesComponent, NavigatorSeriesHighlightComponent, NavigatorSeriesLabelsComponent, NavigatorSeriesLabelsFromComponent, NavigatorSeriesLabelsToComponent, NavigatorSeriesMarkersComponent, NavigatorSeriesNotesComponent, NavigatorSeriesNotesIconComponent, NavigatorSeriesNotesLabelComponent, NavigatorSeriesOutliersComponent, NavigatorSeriesTooltipComponent]; }, imports: function () { return [ChartModule, CommonModule, PopupModule, ResizeSensorModule]; }, exports: function () { return [StockChartComponent, NavigatorComponent, NavigatorCategoryAxisComponent, NavigatorCategoryAxisCrosshairComponent, NavigatorCategoryAxisCrosshairTooltipComponent, NavigatorCategoryAxisLabelsComponent, NavigatorCategoryAxisNotesComponent, NavigatorCategoryAxisNotesIconComponent, NavigatorCategoryAxisNotesLabelComponent, NavigatorCategoryAxisSelectComponent, NavigatorCategoryAxisTitleComponent, NavigatorHintComponent, NavigatorPaneComponent, NavigatorPaneTitleComponent, NavigatorSelectComponent, NavigatorSeriesComponent, NavigatorSeriesItemComponent, NavigatorSeriesErrorBarsComponent, NavigatorSeriesExtremesComponent, NavigatorSeriesHighlightComponent, NavigatorSeriesLabelsComponent, NavigatorSeriesLabelsFromComponent, NavigatorSeriesLabelsToComponent, NavigatorSeriesMarkersComponent, NavigatorSeriesNotesComponent, NavigatorSeriesNotesIconComponent, NavigatorSeriesNotesLabelComponent, NavigatorSeriesOutliersComponent, NavigatorSeriesTooltipComponent, ChartModule]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SparklineModule, [{\n type: NgModule,\n args: [{\n declarations: [SPARKLINE_DIRECTIVES],\n exports: [SPARKLINE_DIRECTIVES, ChartModule],\n imports: [ChartModule, CommonModule, PopupModule, ResizeSensorModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(SparklineModule, { declarations: function () { return [SparklineComponent]; }, imports: function () { return [ChartModule, CommonModule, PopupModule, ResizeSensorModule]; }, exports: function () { return [SparklineComponent, ChartModule]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ChartsModule, [{\n type: NgModule,\n args: [{\n exports: [ChartModule, SparklineModule, StockChartModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(ChartsModule, { exports: [ChartModule, SparklineModule, StockChartModule] }); })();\n\n\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ChartComponentGenerated, AxisDefaultsComponentGenerated, AxisDefaultsCrosshairComponentGenerated, AxisDefaultsCrosshairTooltipComponentGenerated, AxisDefaultsLabelsComponentGenerated, AxisDefaultsTitleComponentGenerated, CategoryAxisItemComponentGenerated, CategoryAxisCrosshairComponentGenerated, CategoryAxisCrosshairTooltipComponentGenerated, CategoryAxisNotesComponentGenerated, CategoryAxisNotesIconComponentGenerated, CategoryAxisNotesLabelComponentGenerated, CategoryAxisSelectComponentGenerated, CategoryAxisTitleComponentGenerated, CategoryAxisComponentGenerated, ChartAreaComponentGenerated, DonutCenterTemplateDirective, LegendComponentGenerated, LegendInactiveItemsComponentGenerated, LegendItemComponentGenerated, PaneComponentGenerated, PanesTitleComponentGenerated, PanesComponentGenerated, PlotAreaComponentGenerated, SeriesDefaultsComponentGenerated, SeriesDefaultsLabelsComponentGenerated, SeriesDefaultsLabelsFromComponentGenerated, SeriesDefaultsLabelsToComponentGenerated, SeriesDefaultsNotesComponentGenerated, SeriesDefaultsNotesIconComponentGenerated, SeriesDefaultsNotesLabelComponentGenerated, SeriesDefaultsTooltipComponentGenerated, SeriesItemComponentGenerated, SeriesErrorBarsComponentGenerated, SeriesExtremesComponentGenerated, SeriesHighlightComponentGenerated, SeriesLabelsComponentGenerated, SeriesLabelsFromComponentGenerated, SeriesLabelsToComponentGenerated, SeriesMarkersComponentGenerated, SeriesNotesComponentGenerated, SeriesNotesIconComponentGenerated, SeriesNotesLabelComponentGenerated, SeriesOutliersComponentGenerated, SeriesTooltipComponentGenerated, SeriesComponentGenerated, TitleComponentGenerated, TooltipComponentGenerated, BaseTooltip, bodyFactory, CrosshairTooltipComponent, SeriesTooltipTemplateDirective, SharedTooltipTemplateDirective, ValueAxisItemComponentGenerated, ValueAxisCrosshairComponentGenerated, ValueAxisCrosshairTooltipComponentGenerated, ValueAxisLabelsComponentGenerated, ValueAxisNotesComponentGenerated, ValueAxisNotesIconComponentGenerated, ValueAxisNotesLabelComponentGenerated, ValueAxisTitleComponentGenerated, ValueAxisComponentGenerated, XAxisItemComponentGenerated, XAxisCrosshairComponentGenerated, XAxisCrosshairTooltipComponentGenerated, XAxisLabelsComponentGenerated, XAxisNotesComponentGenerated, XAxisNotesIconComponentGenerated, XAxisNotesLabelComponentGenerated, XAxisTitleComponentGenerated, XAxisComponentGenerated, YAxisItemComponentGenerated, YAxisCrosshairComponentGenerated, YAxisCrosshairTooltipComponentGenerated, YAxisLabelsComponentGenerated, YAxisNotesComponentGenerated, YAxisNotesIconComponentGenerated, YAxisNotesLabelComponentGenerated, YAxisTitleComponentGenerated, YAxisComponentGenerated, ZoomableComponentGenerated, CollectionItemComponent, CollectionComponent, CollectionService, ConfigurationService, PREFIX, PrefixConfigurationService, RootConfigurationService, SettingsComponent, ThemeService, TooltipTemplateService, BaseEvent, InstanceEventService, LegendEvent, NoteEvent, PreventableEvent, SeriesEvent, StockInstanceEventService, NavigatorComponent, NavigatorCategoryAxisComponent, NavigatorCategoryAxisCrosshairComponent, NavigatorCategoryAxisCrosshairTooltipComponent, NavigatorCategoryAxisLabelsComponent, NavigatorCategoryAxisNotesComponent, NavigatorCategoryAxisNotesIconComponent, NavigatorCategoryAxisNotesLabelComponent, NavigatorCategoryAxisSelectComponent, NavigatorCategoryAxisTitleComponent, NavigatorHintComponent, NavigatorPaneComponent, NavigatorPaneTitleComponent, NavigatorSelectComponent, NavigatorSeriesItemComponent, NavigatorSeriesErrorBarsComponent, NavigatorSeriesExtremesComponent, NavigatorSeriesHighlightComponent, NavigatorSeriesLabelsComponent, NavigatorSeriesLabelsFromComponent, NavigatorSeriesLabelsToComponent, NavigatorSeriesMarkersComponent, NavigatorSeriesNotesComponent, NavigatorSeriesNotesIconComponent, NavigatorSeriesNotesLabelComponent, NavigatorSeriesOutliersComponent, NavigatorSeriesTooltipComponent, NavigatorSeriesComponent, ChartModule, StockChartModule, SparklineModule, ChartsModule, TooltipPopupComponent, CrosshairTooltipsContainerComponent, ChartComponent, AxisDefaultsComponent, AxisDefaultsCrosshairComponent, AxisDefaultsCrosshairTooltipComponent, AxisDefaultsLabelsComponent, AxisDefaultsTitleComponent, CategoryAxisComponent, CategoryAxisCrosshairComponent, CategoryAxisCrosshairTooltipComponent, CategoryAxisItemComponent, CategoryAxisLabelsComponent, CategoryAxisRangeLabelsComponent, CategoryAxisNotesComponent, CategoryAxisNotesIconComponent, CategoryAxisNotesLabelComponent, CategoryAxisSelectComponent, CategoryAxisTitleComponent, ChartAreaComponent, LegendComponent, LegendInactiveItemsComponent, LegendItemComponent, PaneComponent, PaneDefaultsComponent, PaneDefaultsTitleComponent, PanesComponent, PanesTitleComponent, PlotAreaComponent, SeriesComponent, SeriesDefaultsComponent, SeriesDefaultsLabelsComponent, SeriesDefaultsLabelsFromComponent, SeriesDefaultsLabelsToComponent, SeriesDefaultsNotesComponent, SeriesDefaultsNotesIconComponent, SeriesDefaultsNotesLabelComponent, SeriesDefaultsTooltipComponent, SeriesErrorBarsComponent, SeriesExtremesComponent, SeriesHighlightComponent, SeriesItemComponent, SeriesLabelsComponent, SeriesLabelsFromComponent, SeriesLabelsToComponent, SeriesMarkersComponent, SeriesNotesComponent, SeriesNotesIconComponent, SeriesNotesLabelComponent, SeriesOutliersComponent, SeriesTooltipComponent, TitleComponent, TooltipComponent, ValueAxisComponent, ValueAxisCrosshairComponent, ValueAxisCrosshairTooltipComponent, ValueAxisItemComponent, ValueAxisLabelsComponent, ValueAxisNotesComponent, ValueAxisNotesIconComponent, ValueAxisNotesLabelComponent, ValueAxisTitleComponent, XAxisComponent, XAxisCrosshairComponent, XAxisCrosshairTooltipComponent, XAxisItemComponent, XAxisLabelsComponent, XAxisNotesComponent, XAxisNotesIconComponent, XAxisNotesLabelComponent, XAxisTitleComponent, YAxisComponent, YAxisCrosshairComponent, YAxisCrosshairTooltipComponent, YAxisItemComponent, YAxisLabelsComponent, YAxisNotesComponent, YAxisNotesIconComponent, YAxisNotesLabelComponent, YAxisTitleComponent, ZoomableComponent, CHART_DIRECTIVES, AxisLabelClickEvent, DragEndEvent, DragEvent, DragStartEvent, LegendItemClickEvent, LegendItemHoverEvent, NoteClickEvent, NoteHoverEvent, PaneRenderEvent, PlotAreaClickEvent, PlotAreaHoverEvent, RenderEvent, SelectEndEvent, SelectEvent, SelectStartEvent, SeriesClickEvent, SeriesHoverEvent, ZoomEndEvent, ZoomEvent, ZoomStartEvent, WeekStartDay, NavigatorFilterEvent, StockChartComponent, STOCK_CHART_DIRECTIVES, SparklineComponent, SPARKLINE_DIRECTIVES };\n\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 } from 'tslib';\nimport { EventEmitter, Input, Output, Directive, ElementRef, NgZone, 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\nimport * as ɵngcc0 from '@angular/core';\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\nlet DraggableDirective = class 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.ɵfac = function DraggableDirective_Factory(t) { return new (t || DraggableDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nDraggableDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DraggableDirective, selectors: [[\"\", \"kendoDraggable\", \"\"]], inputs: { enableDrag: \"enableDrag\" }, outputs: { kendoPress: \"kendoPress\", kendoDrag: \"kendoDrag\", kendoRelease: \"kendoRelease\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DraggableDirective.prototype, \"enableDrag\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DraggableDirective.prototype, \"kendoPress\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DraggableDirective.prototype, \"kendoDrag\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DraggableDirective.prototype, \"kendoRelease\", void 0);\nDraggableDirective = __decorate([ __metadata(\"design:paramtypes\", [ElementRef, NgZone])\n], DraggableDirective);\n\n/**\n * @hidden\n */\nlet DraggableModule = class DraggableModule {\n};\nDraggableModule.ɵfac = function DraggableModule_Factory(t) { return new (t || DraggableModule)(); };\nDraggableModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: DraggableModule });\nDraggableModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule]] });\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\nconst closest = (node, predicate) => {\n while (node && !predicate(node)) {\n node = node.parentNode;\n }\n return node;\n};\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\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\nconst focusableRegex = /^(?:a|input|select|option|textarea|button|object)$/i;\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\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\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\nconst findFocusableChild = (element, checkVisibility = true) => {\n return findElement(element, (node) => isFocusableWithTabKey(node, checkVisibility), false);\n};\n\nconst findFocusable = (element, checkVisibility = true) => {\n return findElement(element, (node) => isFocusableWithTabKey(node, checkVisibility));\n};\n\nconst toClassList = (classNames) => String(classNames).trim().split(' ');\nconst hasClasses = (element, classNames) => {\n const namesList = toClassList(classNames);\n return Boolean(toClassList(element.className).find((className) => namesList.indexOf(className) >= 0));\n};\n\nconst matchesClasses = (classNames) => (element) => hasClasses(element, classNames);\n\nconst NODE_NAME_PREDICATES = {};\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/**\n * Normalizes a scroll position value in RTL mode.\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/* tslint:disable:no-input-rename */\n/**\n * @hidden\n */\nlet EventsOutsideAngularDirective = class 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.ɵfac = function EventsOutsideAngularDirective_Factory(t) { return new (t || EventsOutsideAngularDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nEventsOutsideAngularDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EventsOutsideAngularDirective, selectors: [[\"\", \"kendoEventsOutsideAngular\", \"\"]], inputs: { events: [\"kendoEventsOutsideAngular\", \"events\"], scope: \"scope\" } });\n__decorate([\n Input('kendoEventsOutsideAngular'),\n __metadata(\"design:type\", Object)\n], EventsOutsideAngularDirective.prototype, \"events\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], EventsOutsideAngularDirective.prototype, \"scope\", void 0);\nEventsOutsideAngularDirective = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n NgZone,\n Renderer2])\n], EventsOutsideAngularDirective);\n\n/**\n * @hidden\n */\nlet EventsModule = class EventsModule {\n};\nEventsModule.ɵfac = function EventsModule_Factory(t) { return new (t || EventsModule)(); };\nEventsModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: EventsModule });\nEventsModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\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/**\n * @hidden\n */\nlet ResizeBatchService = class 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.ɵfac = function ResizeBatchService_Factory(t) { return new (t || ResizeBatchService)(ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nResizeBatchService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ResizeBatchService, factory: function (t) { return ResizeBatchService.ɵfac(t); } });\nResizeBatchService = __decorate([ __metadata(\"design:paramtypes\", [NgZone])\n], ResizeBatchService);\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 */\nlet ResizeSensorComponent = class 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.ɵfac = function ResizeSensorComponent_Factory(t) { return new (t || ResizeSensorComponent)(ɵngcc0.ɵɵdirectiveInject(ResizeBatchService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nResizeSensorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ResizeSensorComponent, selectors: [[\"kendo-resize-sensor\"]], inputs: { rateLimit: \"rateLimit\" }, outputs: { resize: \"resize\" }, decls: 0, vars: 0, template: function ResizeSensorComponent_Template(rf, ctx) { }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ResizeSensorComponent.prototype, \"rateLimit\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ResizeSensorComponent.prototype, \"resize\", void 0);\nResizeSensorComponent = __decorate([ __metadata(\"design:paramtypes\", [ResizeBatchService, ElementRef, NgZone])\n], ResizeSensorComponent);\n\nconst COMPONENT_DIRECTIVES = [ResizeSensorComponent];\n/**\n * Resize Sensor module\n */\nlet ResizeSensorModule = class ResizeSensorModule {\n};\nResizeSensorModule.ɵfac = function ResizeSensorModule_Factory(t) { return new (t || ResizeSensorModule)(); };\nResizeSensorModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: ResizeSensorModule });\nResizeSensorModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ providers: [ResizeBatchService] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DraggableDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoDraggable]'\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }]; }, { enableDrag: [{\n type: Input\n }], kendoPress: [{\n type: Output\n }], kendoDrag: [{\n type: Output\n }], kendoRelease: [{\n type: Output\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DraggableModule, [{\n type: NgModule,\n args: [{\n declarations: [DraggableDirective],\n exports: [DraggableDirective],\n imports: [CommonModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(DraggableModule, { declarations: function () { return [DraggableDirective]; }, imports: function () { return [CommonModule]; }, exports: function () { return [DraggableDirective]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EventsOutsideAngularDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoEventsOutsideAngular]'\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.Renderer2 }]; }, { events: [{\n type: Input,\n args: ['kendoEventsOutsideAngular']\n }], scope: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EventsModule, [{\n type: NgModule,\n args: [{\n declarations: [EventsOutsideAngularDirective],\n exports: [EventsOutsideAngularDirective]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(EventsModule, { declarations: [EventsOutsideAngularDirective], exports: [EventsOutsideAngularDirective] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ResizeBatchService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc0.NgZone }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ResizeSensorComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-resize-sensor',\n template: ''\n }]\n }], function () { return [{ type: ResizeBatchService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }]; }, { rateLimit: [{\n type: Input\n }], resize: [{\n type: Output\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ResizeSensorModule, [{\n type: NgModule,\n args: [{\n declarations: [COMPONENT_DIRECTIVES],\n exports: [COMPONENT_DIRECTIVES],\n providers: [ResizeBatchService]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(ResizeSensorModule, { declarations: [ResizeSensorComponent], exports: [ResizeSensorComponent] }); })();\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\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 * Generated bundle index. Do not edit.\n */\n\nexport { ResizeService, PreventableEvent, DraggableDirective, DraggableModule, closestInScope, closest, contains, findElement, findFocusableChild, findFocusable, hasClasses, isFocusableWithTabKey, isFocusable, isVisible, matchesClasses, matchesNodeName, rtlScrollPosition, EventsOutsideAngularDirective, EventsModule, ResizeSensorComponent, ResizeBatchService, ResizeCompatService, ResizeObserverService, ResizeSensorModule, KendoInput, isDocumentAvailable, isChanged, anyChanged, hasObservers, guid, Keys };\n\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, EventEmitter, Injector, Input, TemplateRef, Output, HostBinding, Component, ChangeDetectionStrategy, ChangeDetectorRef, ElementRef, Renderer2, isDevMode, Directive, forwardRef, ContentChild, ViewChild, HostListener, Optional, NgZone, InjectionToken, Inject, ViewContainerRef, ViewChildren, QueryList, 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, lastYearOfDecade, lastMonthOfYear, lastDayOfMonth, durationInCenturies, addYears, durationInDecades, addWeeks, addMonths, firstDayOfMonth, dayOfWeek, durationInMonths, firstMonthOfYear, durationInYears, weekInYear } from '@progress/kendo-date-math';\nimport { isDocumentAvailable, guid, Keys, hasObservers, KendoInput, EventsModule, ResizeSensorModule } from '@progress/kendo-angular-common';\nimport { validatePackage } from '@progress/kendo-licensing';\nimport { IntlService, IntlModule } from '@progress/kendo-angular-intl';\nimport { Subject, Subscription, ReplaySubject, Observable, combineLatest, of, interval, animationFrameScheduler, fromEvent, EMPTY, from, 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 */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@progress/kendo-angular-intl';\nimport * as ɵngcc2 from '@angular/common';\nimport * as ɵngcc3 from '@progress/kendo-angular-l10n';\nimport * as ɵngcc4 from '@progress/kendo-angular-common';\nimport * as ɵngcc5 from '@progress/kendo-angular-popup';\n\nfunction HorizontalViewListComponent_ng_template_0_caption_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"caption\", 7);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const date_r5 = ɵngcc0.ɵɵnextContext().date;\n const ctx_r7 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r7.getCaptionClass());\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r7.getCaptionTitle(date_r5));\n} }\nfunction HorizontalViewListComponent_ng_template_0_thead_2_th_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"th\", 11);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const name_r11 = ctx.$implicit;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(name_r11);\n} }\nfunction HorizontalViewListComponent_ng_template_0_thead_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"thead\", 8)(1, \"tr\", 9);\n ɵngcc0.ɵɵtemplate(2, HorizontalViewListComponent_ng_template_0_thead_2_th_2_Template, 2, 1, \"th\", 10);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r8 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r8.weekNames);\n} }\nfunction HorizontalViewListComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n const _r13 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"table\", 3);\n ɵngcc0.ɵɵtemplate(1, HorizontalViewListComponent_ng_template_0_caption_1_Template, 2, 2, \"caption\", 4);\n ɵngcc0.ɵɵtemplate(2, HorizontalViewListComponent_ng_template_0_thead_2_Template, 3, 1, \"thead\", 5);\n ɵngcc0.ɵɵelementStart(3, \"tbody\", 6);\n ɵngcc0.ɵɵlistener(\"cellClick\", function HorizontalViewListComponent_ng_template_0_Template_tbody_cellClick_3_listener($event) { ɵngcc0.ɵɵrestoreView(_r13); const ctx_r12 = ɵngcc0.ɵɵnextContext(); return ctx_r12.cellClick.emit($event); })(\"weekNumberCellClick\", function HorizontalViewListComponent_ng_template_0_Template_tbody_weekNumberCellClick_3_listener($event) { ɵngcc0.ɵɵrestoreView(_r13); const ctx_r14 = ɵngcc0.ɵɵnextContext(); return ctx_r14.weekNumberCellClick.emit($event); })(\"cellEnter\", function HorizontalViewListComponent_ng_template_0_Template_tbody_cellEnter_3_listener($event) { ɵngcc0.ɵɵrestoreView(_r13); const ctx_r15 = ɵngcc0.ɵɵnextContext(); return ctx_r15.cellEnter.emit($event); })(\"cellLeave\", function HorizontalViewListComponent_ng_template_0_Template_tbody_cellLeave_3_listener($event) { ɵngcc0.ɵɵrestoreView(_r13); const ctx_r16 = ɵngcc0.ɵɵnextContext(); return ctx_r16.cellLeave.emit($event); });\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const date_r5 = ctx.date;\n const class_r6 = ctx.className;\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngClass\", class_r6);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r1.showViewHeader);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r1.isMonthView());\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"activeView\", ctx_r1.activeView)(\"isActive\", ctx_r1.isActive)(\"min\", ctx_r1.min)(\"max\", ctx_r1.max)(\"cellUID\", ctx_r1.cellUID)(\"focusedDate\", ctx_r1.focusedDate)(\"selectedDates\", ctx_r1.selectedDates)(\"selectionRange\", ctx_r1.selectionRange)(\"activeRangeEnd\", ctx_r1.activeRangeEnd)(\"weekNumber\", ctx_r1.weekNumber)(\"templateRef\", ctx_r1.cellTemplateRef)(\"weekNumberTemplateRef\", ctx_r1.weekNumberTemplateRef)(\"viewDate\", date_r5);\n} }\nfunction HorizontalViewListComponent_2_ng_template_0_Template(rf, ctx) { }\nconst _c0 = function (a0) { return { date: a0, className: \"k-pointer-events-none\" }; };\nfunction HorizontalViewListComponent_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, HorizontalViewListComponent_2_ng_template_0_Template, 0, 0, \"ng-template\", 12);\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n const _r0 = ɵngcc0.ɵɵreference(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", _r0)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction1(2, _c0, ctx_r2.nextAnimationDate));\n} }\nfunction HorizontalViewListComponent_3_ng_template_0_Template(rf, ctx) { }\nconst _c1 = function (a0) { return { date: a0 }; };\nfunction HorizontalViewListComponent_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, HorizontalViewListComponent_3_ng_template_0_Template, 0, 0, \"ng-template\", 12);\n} if (rf & 2) {\n const date_r18 = ctx.$implicit;\n ɵngcc0.ɵɵnextContext();\n const _r0 = ɵngcc0.ɵɵreference(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", _r0)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction1(2, _c1, date_r18));\n} }\nfunction HorizontalViewListComponent_4_ng_template_0_Template(rf, ctx) { }\nfunction HorizontalViewListComponent_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, HorizontalViewListComponent_4_ng_template_0_Template, 0, 0, \"ng-template\", 12);\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n const _r0 = ɵngcc0.ɵɵreference(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", _r0)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction1(2, _c0, ctx_r4.prevAnimationDate));\n} }\nfunction HeaderComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵtextInterpolate(ctx_r0.title);\n} }\nfunction HeaderComponent_ng_template_2_Template(rf, ctx) { }\nfunction HeaderComponent_button_5_Template(rf, ctx) { if (rf & 1) {\n const _r5 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 8);\n ɵngcc0.ɵɵlistener(\"click\", function HeaderComponent_button_5_Template_button_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r5); const ctx_r4 = ɵngcc0.ɵɵnextContext(); return ctx_r4.prevButtonClick.emit(); });\n ɵngcc0.ɵɵelement(1, \"span\", 9);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"disabled\", ctx_r2.isPrevDisabled)(\"title\", ctx_r2.prevButtonTitle);\n ɵngcc0.ɵɵattribute(\"aria-disabled\", ctx_r2.isPrevDisabled);\n} }\nfunction HeaderComponent_button_8_Template(rf, ctx) { if (rf & 1) {\n const _r7 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 10);\n ɵngcc0.ɵɵlistener(\"click\", function HeaderComponent_button_8_Template_button_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r7); const ctx_r6 = ɵngcc0.ɵɵnextContext(); return ctx_r6.nextButtonClick.emit(); });\n ɵngcc0.ɵɵelement(1, \"span\", 11);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"disabled\", ctx_r3.isNextDisabled)(\"title\", ctx_r3.nextButtonTitle);\n ɵngcc0.ɵɵattribute(\"aria-disabled\", ctx_r3.isNextDisabled);\n} }\nconst _c2 = function (a0) { return { click: a0 }; };\nconst _c3 = function (a0, a1, a2) { return { $implicit: a0, activeView: a1, date: a2 }; };\nconst _c10 = function (a0) { return { focusin: a0 }; };\nconst _c11 = [\"*\"];\nconst _c12 = [\"list\"];\nfunction NavigationComponent_li_4_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n} if (rf & 2) {\n const date_r2 = ɵngcc0.ɵɵnextContext().$implicit;\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵtextInterpolate(ctx_r4.service.navigationTitle(date_r2));\n} }\nfunction NavigationComponent_li_4_ng_template_3_Template(rf, ctx) { }\nfunction NavigationComponent_li_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"li\")(1, \"span\");\n ɵngcc0.ɵɵtemplate(2, NavigationComponent_li_4_ng_template_2_Template, 1, 1, \"ng-template\", 5);\n ɵngcc0.ɵɵtemplate(3, NavigationComponent_li_4_ng_template_3_Template, 0, 0, \"ng-template\", 6);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const date_r2 = ctx.$implicit;\n const index_r3 = ctx.index;\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵattribute(\"data-date-index\", index_r3);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"k-calendar-navigation-marker\", ctx_r1.service.isRangeStart(date_r2));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r1.templateRef);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r1.templateRef)(\"ngTemplateOutlet\", ctx_r1.templateRef)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction3(7, _c3, ctx_r1.service.navigationTitle(date_r2), ctx_r1.activeViewValue, date_r2));\n} }\nfunction ViewListComponent_table_1_th_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"th\", 11);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const name_r5 = ctx.$implicit;\n const ctx_r4 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵstyleProp(\"width\", ctx_r4.colWidth, \"%\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(name_r5);\n} }\nfunction ViewListComponent_table_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"table\", 7)(1, \"thead\", 8)(2, \"tr\", 9);\n ɵngcc0.ɵɵtemplate(3, ViewListComponent_table_1_th_3_Template, 2, 3, \"th\", 10);\n ɵngcc0.ɵɵelementEnd()()();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r0.weekNames);\n} }\nfunction ViewListComponent_col_6_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"col\");\n} }\nfunction ViewListComponent_tbody_7_Template(rf, ctx) { if (rf & 1) {\n const _r9 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"tbody\", 12);\n ɵngcc0.ɵɵlistener(\"cellClick\", function ViewListComponent_tbody_7_Template_tbody_cellClick_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r9); const ctx_r8 = ɵngcc0.ɵɵnextContext(); return ctx_r8.cellClick.emit($event); })(\"weekNumberCellClick\", function ViewListComponent_tbody_7_Template_tbody_weekNumberCellClick_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r9); const ctx_r10 = ɵngcc0.ɵɵnextContext(); return ctx_r10.weekNumberCellClick.emit($event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const date_r7 = ctx.$implicit;\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"activeView\", ctx_r3.activeView)(\"isActive\", ctx_r3.isActive)(\"min\", ctx_r3.min)(\"max\", ctx_r3.max)(\"cellUID\", ctx_r3.cellUID)(\"focusedDate\", ctx_r3.focusedDate)(\"selectedDates\", ctx_r3.selectedDates)(\"weekNumber\", ctx_r3.weekNumber)(\"templateRef\", ctx_r3.cellTemplateRef)(\"weekNumberTemplateRef\", ctx_r3.weekNumberTemplateRef)(\"viewDate\", date_r7);\n} }\nfunction CalendarComponent_ng_container_1_kendo_calendar_navigation_1_Template(rf, ctx) { if (rf & 1) {\n const _r4 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-calendar-navigation\", 5);\n ɵngcc0.ɵɵlistener(\"valueChange\", function CalendarComponent_ng_container_1_kendo_calendar_navigation_1_Template_kendo_calendar_navigation_valueChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r4); const ctx_r3 = ɵngcc0.ɵɵnextContext(2); return ctx_r3.handleNavigation($event); })(\"pageChange\", function CalendarComponent_ng_container_1_kendo_calendar_navigation_1_Template_kendo_calendar_navigation_pageChange_0_listener() { ɵngcc0.ɵɵrestoreView(_r4); const ctx_r5 = ɵngcc0.ɵɵnextContext(2); return ctx_r5.onPageChange(); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"activeView\", ctx_r2.activeViewEnum)(\"focusedDate\", ctx_r2.focusedDate)(\"min\", ctx_r2.min)(\"max\", ctx_r2.max)(\"templateRef\", ctx_r2.navigationItemTemplateRef == null ? null : ctx_r2.navigationItemTemplateRef.templateRef);\n} }\nfunction CalendarComponent_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n const _r7 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, CalendarComponent_ng_container_1_kendo_calendar_navigation_1_Template, 1, 5, \"kendo-calendar-navigation\", 2);\n ɵngcc0.ɵɵelementStart(2, \"kendo-calendar-viewlist\", 3);\n ɵngcc0.ɵɵlistener(\"todayButtonClick\", function CalendarComponent_ng_container_1_Template_kendo_calendar_viewlist_todayButtonClick_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r7); const ctx_r6 = ɵngcc0.ɵɵnextContext(); return ctx_r6.handleDateChange({ selectedDates: [$event], focusedDate: $event }); })(\"cellClick\", function CalendarComponent_ng_container_1_Template_kendo_calendar_viewlist_cellClick_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r7); const ctx_r8 = ɵngcc0.ɵɵnextContext(); return ctx_r8.handleCellClick($event); })(\"weekNumberCellClick\", function CalendarComponent_ng_container_1_Template_kendo_calendar_viewlist_weekNumberCellClick_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r7); const ctx_r9 = ɵngcc0.ɵɵnextContext(); return ctx_r9.handleWeekNumberClick($event); })(\"activeDateChange\", function CalendarComponent_ng_container_1_Template_kendo_calendar_viewlist_activeDateChange_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r7); const ctx_r10 = ɵngcc0.ɵɵnextContext(); return ctx_r10.handleActiveDateChange($event); })(\"pageChange\", function CalendarComponent_ng_container_1_Template_kendo_calendar_viewlist_pageChange_2_listener() { ɵngcc0.ɵɵrestoreView(_r7); const ctx_r11 = ɵngcc0.ɵɵnextContext(); return ctx_r11.onPageChange(); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(3, \"kendo-resize-sensor\", 4);\n ɵngcc0.ɵɵlistener(\"resize\", function CalendarComponent_ng_container_1_Template_kendo_resize_sensor_resize_3_listener() { ɵngcc0.ɵɵrestoreView(_r7); const ctx_r12 = ɵngcc0.ɵɵnextContext(); return ctx_r12.onResize(); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n let tmp_3_0;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r0.navigation);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"activeView\", ctx_r0.activeViewEnum)(\"isActive\", ctx_r0.isActive)(\"cellTemplateRef\", (tmp_3_0 = ctx_r0.activeCellTemplate()) == null ? null : tmp_3_0.templateRef)(\"headerTitleTemplateRef\", ctx_r0.headerTitleTemplateRef == null ? null : ctx_r0.headerTitleTemplateRef.templateRef)(\"weekNumberTemplateRef\", ctx_r0.weekNumberTemplateRef == null ? null : ctx_r0.weekNumberTemplateRef.templateRef)(\"cellUID\", ctx_r0.cellUID)(\"min\", ctx_r0.min)(\"max\", ctx_r0.max)(\"focusedDate\", ctx_r0.focusedDate)(\"weekNumber\", ctx_r0.weekNumber)(\"selectedDates\", ctx_r0.selectedDates);\n} }\nfunction CalendarComponent_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n const _r15 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵelementStart(1, \"kendo-multiviewcalendar\", 6, 7);\n ɵngcc0.ɵɵlistener(\"activeViewChange\", function CalendarComponent_ng_container_2_Template_kendo_multiviewcalendar_activeViewChange_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r15); const ctx_r14 = ɵngcc0.ɵɵnextContext(); return ctx_r14.handleActiveViewChange($event); })(\"navigate\", function CalendarComponent_ng_container_2_Template_kendo_multiviewcalendar_navigate_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r15); const ctx_r16 = ɵngcc0.ɵɵnextContext(); return ctx_r16.handleNavigate($event); })(\"valueChange\", function CalendarComponent_ng_container_2_Template_kendo_multiviewcalendar_valueChange_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r15); const _r13 = ɵngcc0.ɵɵreference(2); const ctx_r17 = ɵngcc0.ɵɵnextContext(); return ctx_r17.handleMultiViewCalendarValueChange($event, _r13.focusedDate); })(\"focus\", function CalendarComponent_ng_container_2_Template_kendo_multiviewcalendar_focus_1_listener() { ɵngcc0.ɵɵrestoreView(_r15); const ctx_r18 = ɵngcc0.ɵɵnextContext(); return ctx_r18.handleFocus(); })(\"blur\", function CalendarComponent_ng_container_2_Template_kendo_multiviewcalendar_blur_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r15); const ctx_r19 = ɵngcc0.ɵɵnextContext(); return ctx_r19.handleBlur($event); });\n ɵngcc0.ɵɵelement(3, \"kendo-multiviewcalendar-messages\", 8);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"views\", 1)(\"min\", ctx_r1.min)(\"max\", ctx_r1.max)(\"isActive\", ctx_r1.isActive)(\"activeView\", ctx_r1.activeView)(\"bottomView\", ctx_r1.bottomView)(\"topView\", ctx_r1.topView)(\"weekNumber\", ctx_r1.weekNumber)(\"animateNavigation\", ctx_r1.animateNavigation)(\"cellTemplate\", ctx_r1.activeCellTemplate())(\"monthCellTemplate\", ctx_r1.monthCellTemplateRef)(\"yearCellTemplate\", ctx_r1.yearCellTemplateRef)(\"decadeCellTemplate\", ctx_r1.decadeCellTemplateRef)(\"centuryCellTemplate\", ctx_r1.centuryCellTemplateRef)(\"headerTitleTemplate\", ctx_r1.headerTitleTemplateRef)(\"weekNumberTemplate\", ctx_r1.weekNumberTemplateRef)(\"focusedDate\", ctx_r1.focusedDate)(\"selection\", ctx_r1.selection)(\"value\", ctx_r1.value)(\"disabledDates\", ctx_r1.disabledDates);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"today\", ctx_r1.localization.get(\"today\"))(\"prevButtonTitle\", ctx_r1.localization.get(\"prevButtonTitle\"))(\"nextButtonTitle\", ctx_r1.localization.get(\"nextButtonTitle\"));\n} }\nconst _c19 = [\"dateInput\"];\nconst _c20 = [\"spinup\"];\nconst _c21 = [\"spindown\"];\nfunction DateInputComponent_span_3_Template(rf, ctx) { if (rf & 1) {\n const _r6 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"span\", 4);\n ɵngcc0.ɵɵlistener(\"mousedown\", function DateInputComponent_span_3_Template_span_mousedown_0_listener($event) { return $event.preventDefault(); });\n ɵngcc0.ɵɵelementStart(1, \"button\", 5, 6);\n ɵngcc0.ɵɵlistener(\"mousedown\", function DateInputComponent_span_3_Template_button_mousedown_1_listener() { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r5 = ɵngcc0.ɵɵnextContext(); return ctx_r5.arrowDirection = ctx_r5.arrow.Up; })(\"mouseleave\", function DateInputComponent_span_3_Template_button_mouseleave_1_listener() { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r7 = ɵngcc0.ɵɵnextContext(); return ctx_r7.arrowDirection = ctx_r7.arrow.None; })(\"click\", function DateInputComponent_span_3_Template_button_click_1_listener() { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r8 = ɵngcc0.ɵɵnextContext(); return ctx_r8.handleButtonClick(1); });\n ɵngcc0.ɵɵelement(3, \"span\", 7);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(4, \"button\", 8, 9);\n ɵngcc0.ɵɵlistener(\"click\", function DateInputComponent_span_3_Template_button_click_4_listener() { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r9 = ɵngcc0.ɵɵnextContext(); return ctx_r9.handleButtonClick(-1); })(\"mousedown\", function DateInputComponent_span_3_Template_button_mousedown_4_listener() { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r10 = ɵngcc0.ɵɵnextContext(); return ctx_r10.arrowDirection = ctx_r10.arrow.Down; })(\"mouseleave\", function DateInputComponent_span_3_Template_button_mouseleave_4_listener() { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r11 = ɵngcc0.ɵɵnextContext(); return ctx_r11.arrowDirection = ctx_r11.arrow.None; });\n ɵngcc0.ɵɵelement(6, \"span\", 10);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"k-active\", ctx_r1.arrowDirection === ctx_r1.arrow.Up);\n ɵngcc0.ɵɵproperty(\"title\", ctx_r1.localization.get(\"increment\"));\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx_r1.localization.get(\"increment\"));\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵclassProp(\"k-active\", ctx_r1.arrowDirection === ctx_r1.arrow.Down);\n ɵngcc0.ɵɵproperty(\"title\", ctx_r1.localization.get(\"decrement\"));\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx_r1.localization.get(\"decrement\"));\n} }\nconst _c26 = function (a0, a1, a2, a3, a4, a5, a6) { return { click: a0, focus: a1, mousedown: a2, touchstart: a3, dragstart: a4, drop: a5, blur: a6 }; };\nconst _c27 = [\"container\"];\nconst _c28 = [\"popupTemplate\"];\nconst _c29 = [\"toggleButton\"];\nfunction DatePickerComponent_ng_template_8_ng_template_3_Template(rf, ctx) { }\nconst _c38 = function (a0) { return { keydown: a0 }; };\nfunction DatePickerComponent_ng_template_8_Template(rf, ctx) { if (rf & 1) {\n const _r8 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-calendar\", 8, 9);\n ɵngcc0.ɵɵlistener(\"valueChange\", function DatePickerComponent_ng_template_8_Template_kendo_calendar_valueChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r8); const ctx_r7 = ɵngcc0.ɵɵnextContext(); return ctx_r7.handleChange(ctx_r7.mergeTime($event)); });\n ɵngcc0.ɵɵelement(2, \"kendo-calendar-messages\", 10);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, DatePickerComponent_ng_template_8_ng_template_3_Template, 0, 0, \"ng-template\");\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"type\", ctx_r4.calendarType)(\"min\", ctx_r4.min)(\"max\", ctx_r4.max)(\"navigation\", ctx_r4.navigation)(\"animateNavigation\", ctx_r4.animateCalendarNavigation)(\"activeView\", ctx_r4.activeView)(\"bottomView\", ctx_r4.bottomView)(\"topView\", ctx_r4.topView)(\"weekNumber\", ctx_r4.weekNumber)(\"cellTemplate\", ctx_r4.cellTemplate)(\"monthCellTemplate\", ctx_r4.monthCellTemplate)(\"yearCellTemplate\", ctx_r4.yearCellTemplate)(\"decadeCellTemplate\", ctx_r4.decadeCellTemplate)(\"centuryCellTemplate\", ctx_r4.centuryCellTemplate)(\"weekNumberTemplate\", ctx_r4.weekNumberTemplate)(\"headerTitleTemplate\", ctx_r4.headerTitleTemplate)(\"navigationItemTemplate\", ctx_r4.navigationItemTemplate)(\"focusedDate\", ctx_r4.focusedDate)(\"value\", ctx_r4.value)(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction1(25, _c38, ctx_r4.handleKeydown))(\"scope\", ctx_r4)(\"disabledDates\", ctx_r4.disabledDates);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"today\", ctx_r4.localization.get(\"today\"))(\"prevButtonTitle\", ctx_r4.localization.get(\"prevButtonTitle\"))(\"nextButtonTitle\", ctx_r4.localization.get(\"nextButtonTitle\"));\n} }\nconst _c39 = function (a0, a1) { return { click: a0, mousedown: a1 }; };\nconst _c54 = function (a0, a1) { return { keydown: a0, mousedown: a1 }; };\nfunction TimePickerComponent_ng_template_6_Template(rf, ctx) { if (rf & 1) {\n const _r7 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-timeselector\", 8, 9);\n ɵngcc0.ɵɵlistener(\"valueChange\", function TimePickerComponent_ng_template_6_Template_kendo_timeselector_valueChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r7); const ctx_r6 = ɵngcc0.ɵɵnextContext(); return ctx_r6.handleChange($event); })(\"valueReject\", function TimePickerComponent_ng_template_6_Template_kendo_timeselector_valueReject_0_listener() { ɵngcc0.ɵɵrestoreView(_r7); const ctx_r8 = ɵngcc0.ɵɵnextContext(); return ctx_r8.handleReject(); });\n ɵngcc0.ɵɵelement(2, \"kendo-timeselector-messages\", 10);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"cancelButton\", ctx_r3.cancelButton)(\"nowButton\", ctx_r3.nowButton)(\"format\", ctx_r3.format)(\"min\", ctx_r3.min)(\"max\", ctx_r3.max)(\"steps\", ctx_r3.steps)(\"value\", ctx_r3.value)(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction2(15, _c54, ctx_r3.handleKeydown, ctx_r3.handleMousedown))(\"scope\", ctx_r3);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"acceptLabel\", ctx_r3.localization.get(\"acceptLabel\"))(\"accept\", ctx_r3.localization.get(\"accept\"))(\"cancelLabel\", ctx_r3.localization.get(\"cancelLabel\"))(\"cancel\", ctx_r3.localization.get(\"cancel\"))(\"nowLabel\", ctx_r3.localization.get(\"nowLabel\"))(\"now\", ctx_r3.localization.get(\"now\"));\n} }\nfunction DateTimePickerComponent_ng_template_7_button_16_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"button\", 23);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r5 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r5.popupButtonsClasses())(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction1(6, _c2, ctx_r5.handleCancel))(\"scope\", ctx_r5);\n ɵngcc0.ɵɵattribute(\"title\", ctx_r5.localization.get(\"cancelLabel\"))(\"aria-label\", ctx_r5.localization.get(\"cancelLabel\"));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r5.localization.get(\"cancel\"), \" \");\n} }\nconst _c83 = function (a0, a1) { return { mousedown: a0, keydown: a1 }; };\nconst _c84 = function (a0, a1) { return { focusin: a0, focusout: a1 }; };\nconst _c85 = function (a0, a1) { return { click: a0, keydown: a1 }; };\nconst _c86 = function (a0) { return { transitionend: a0 }; };\nconst _c87 = function (a0, a1, a2) { return { keydown: a0, focusin: a1, focusout: a2 }; };\nfunction DateTimePickerComponent_ng_template_7_Template(rf, ctx) { if (rf & 1) {\n const _r7 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 7)(1, \"div\", 8)(2, \"div\", 9)(3, \"button\", 10);\n ɵngcc0.ɵɵtext(4);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(5, \"button\", 11);\n ɵngcc0.ɵɵtext(6);\n ɵngcc0.ɵɵelementEnd()()();\n ɵngcc0.ɵɵelementStart(7, \"div\", 12, 13)(9, \"div\", 14)(10, \"kendo-calendar\", 15);\n ɵngcc0.ɵɵlistener(\"valueChange\", function DateTimePickerComponent_ng_template_7_Template_kendo_calendar_valueChange_10_listener($event) { ɵngcc0.ɵɵrestoreView(_r7); const ctx_r6 = ɵngcc0.ɵɵnextContext(); return ctx_r6.calendarValue = $event; })(\"valueChange\", function DateTimePickerComponent_ng_template_7_Template_kendo_calendar_valueChange_10_listener() { ɵngcc0.ɵɵrestoreView(_r7); const ctx_r8 = ɵngcc0.ɵɵnextContext(); return ctx_r8.handleCalendarValueChange(); });\n ɵngcc0.ɵɵelement(11, \"kendo-calendar-messages\", 16);\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵelementStart(12, \"div\", 17)(13, \"kendo-timeselector\", 18);\n ɵngcc0.ɵɵelement(14, \"kendo-timeselector-messages\", 19);\n ɵngcc0.ɵɵelementEnd()()();\n ɵngcc0.ɵɵelementStart(15, \"div\", 20);\n ɵngcc0.ɵɵtemplate(16, DateTimePickerComponent_ng_template_7_button_16_Template, 2, 8, \"button\", 21);\n ɵngcc0.ɵɵelementStart(17, \"button\", 22);\n ɵngcc0.ɵɵtext(18);\n ɵngcc0.ɵɵelementEnd()()();\n} if (rf & 2) {\n const _r4 = ɵngcc0.ɵɵreference(8);\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassMapInterpolate1(\"k-datetime-wrap k-\", ctx_r3.activeTab, \"-tab\");\n ɵngcc0.ɵɵproperty(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction2(65, _c83, ctx_r3.preventMouseDown, ctx_r3.handleKeyDown))(\"scope\", ctx_r3);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction2(68, _c84, ctx_r3.handleFocus, ctx_r3.handleBlur))(\"scope\", ctx_r3);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵclassProp(\"k-active\", ctx_r3.activeTab === \"date\");\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r3.popupButtonsClasses())(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction2(71, _c85, ctx_r3.changeActiveTab.bind(ctx_r3, \"date\"), ctx_r3.handleBackTabOut))(\"scope\", ctx_r3);\n ɵngcc0.ɵɵattribute(\"title\", ctx_r3.localization.get(\"dateTabLabel\"))(\"aria-label\", ctx_r3.localization.get(\"dateTabLabel\"));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r3.localization.get(\"dateTab\"), \" \");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"k-active\", ctx_r3.activeTab === \"time\");\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r3.popupButtonsClasses())(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction1(74, _c2, ctx_r3.changeActiveTab.bind(ctx_r3, \"time\")));\n ɵngcc0.ɵɵattribute(\"title\", ctx_r3.localization.get(\"timeTabLabel\"))(\"aria-label\", ctx_r3.localization.get(\"timeTabLabel\"));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r3.localization.get(\"timeTab\"), \" \");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵstyleProp(\"transition\", ctx_r3.tabSwitchTransition);\n ɵngcc0.ɵɵproperty(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction1(76, _c86, ctx_r3.handleTabChangeTransitionEnd.bind(ctx_r3, _r4)));\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"value\", ctx_r3.calendarValue)(\"type\", ctx_r3.calendarType)(\"min\", ctx_r3.calendarMin)(\"max\", ctx_r3.calendarMax)(\"focusedDate\", ctx_r3.focusedDate)(\"weekNumber\", ctx_r3.weekNumber)(\"navigation\", false)(\"animateNavigation\", ctx_r3.animateCalendarNavigation)(\"cellTemplate\", ctx_r3.cellTemplate)(\"monthCellTemplate\", ctx_r3.monthCellTemplate)(\"yearCellTemplate\", ctx_r3.yearCellTemplate)(\"decadeCellTemplate\", ctx_r3.decadeCellTemplate)(\"centuryCellTemplate\", ctx_r3.centuryCellTemplate)(\"weekNumberTemplate\", ctx_r3.weekNumberTemplate)(\"headerTitleTemplate\", ctx_r3.headerTitleTemplate)(\"disabled\", ctx_r3.disableCalendar)(\"disabledDates\", ctx_r3.disabledDates);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"today\", ctx_r3.localization.get(\"today\"))(\"prevButtonTitle\", ctx_r3.localization.get(\"prevButtonTitle\"))(\"nextButtonTitle\", ctx_r3.localization.get(\"nextButtonTitle\"));\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"value\", ctx_r3.value)(\"format\", ctx_r3.timeSelectorFormat)(\"min\", ctx_r3.timeSelectorMin)(\"max\", ctx_r3.timeSelectorMax)(\"setButton\", false)(\"cancelButton\", false)(\"steps\", ctx_r3.steps)(\"disabled\", ctx_r3.disableTimeSelector);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"now\", ctx_r3.localization.get(\"now\"))(\"nowLabel\", ctx_r3.localization.get(\"nowLabel\"));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction3(78, _c87, ctx_r3.handleTabOut, ctx_r3.handleFocus, ctx_r3.handleBlur))(\"scope\", ctx_r3);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r3.cancelButton);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r3.popupButtonsClasses(\"primary\"))(\"disabled\", !ctx_r3.calendarValue)(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction1(82, _c2, ctx_r3.handleAccept))(\"scope\", ctx_r3);\n ɵngcc0.ɵɵattribute(\"title\", ctx_r3.localization.get(\"acceptLabel\"))(\"aria-label\", ctx_r3.localization.get(\"acceptLabel\"));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r3.localization.get(\"accept\"), \" \");\n} }\nconst _c88 = function (a0, a1) { return { mousedown: a0, click: a1 }; };\nconst _c89 = function (a0, a1) { return { \"k-i-calendar\": a0, \"k-i-clock\": a1 }; };\nconst _c90 = [\"defaultTemplate\"];\nfunction DateRangePopupComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-multiviewcalendar\", 2);\n} }\nfunction DateRangeComponent_kendo_daterange_popup_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-daterange-popup\");\n} }\nconst _c91 = [\"kendoCalendarView\", \"\"];\nfunction ViewComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"td\", 3);\n ɵngcc0.ɵɵtext(1, \"\\u00A0\");\n ɵngcc0.ɵɵelementEnd();\n} }\nfunction ViewComponent_tr_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"tr\", 4)(1, \"th\", 5);\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"colSpan\", ctx_r2.colSpan);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r2.title);\n} }\nfunction ViewComponent_tr_3_ng_template_1_td_0_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n} if (rf & 2) {\n const row_r4 = ɵngcc0.ɵɵnextContext(3).$implicit;\n const ctx_r9 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r9.getWeekNumber(ctx_r9.firstDate(row_r4)), \" \");\n} }\nfunction ViewComponent_tr_3_ng_template_1_td_0_ng_template_2_Template(rf, ctx) { }\nconst _c92 = function (a0, a1) { return { $implicit: a0, cellContext: a1 }; };\nfunction ViewComponent_tr_3_ng_template_1_td_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"td\", 9);\n ɵngcc0.ɵɵtemplate(1, ViewComponent_tr_3_ng_template_1_td_0_ng_template_1_Template, 1, 1, \"ng-template\", 6);\n ɵngcc0.ɵɵtemplate(2, ViewComponent_tr_3_ng_template_1_td_0_ng_template_2_Template, 0, 0, \"ng-template\", 10);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const row_r4 = ɵngcc0.ɵɵnextContext(2).$implicit;\n const ctx_r8 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction1(5, _c2, ctx_r8.handleWeekNumberClick.bind(ctx_r8, row_r4)));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r8.weekNumberTemplateRef);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r8.weekNumberTemplateRef)(\"ngTemplateOutlet\", ctx_r8.weekNumberTemplateRef)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction2(7, _c92, ctx_r8.firstDate(row_r4), ctx_r8.getWeekNumberContext(row_r4)));\n} }\nfunction ViewComponent_tr_3_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ViewComponent_tr_3_ng_template_1_td_0_Template, 3, 10, \"td\", 8);\n} if (rf & 2) {\n const row_r4 = ɵngcc0.ɵɵnextContext().$implicit;\n const ctx_r6 = ɵngcc0.ɵɵnextContext();\n const _r0 = ɵngcc0.ɵɵreference(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r6.firstDate(row_r4))(\"ngIfElse\", _r0);\n} }\nfunction ViewComponent_tr_3_ng_container_2_td_1_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n} if (rf & 2) {\n const cell_r14 = ɵngcc0.ɵɵnextContext(2).$implicit;\n ɵngcc0.ɵɵtextInterpolate(cell_r14.formattedValue);\n} }\nfunction ViewComponent_tr_3_ng_container_2_td_1_3_ng_template_0_Template(rf, ctx) { }\nfunction ViewComponent_tr_3_ng_container_2_td_1_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ViewComponent_tr_3_ng_container_2_td_1_3_ng_template_0_Template, 0, 0, \"ng-template\", 15);\n} if (rf & 2) {\n const cell_r14 = ɵngcc0.ɵɵnextContext(2).$implicit;\n const ctx_r18 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r18.templateRef)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction2(2, _c92, cell_r14.value, cell_r14));\n} }\nfunction ViewComponent_tr_3_ng_container_2_td_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"td\", 12)(1, \"span\", 13);\n ɵngcc0.ɵɵtemplate(2, ViewComponent_tr_3_ng_container_2_td_1_ng_template_2_Template, 1, 1, \"ng-template\", 6);\n ɵngcc0.ɵɵtemplate(3, ViewComponent_tr_3_ng_container_2_td_1_3_Template, 1, 5, null, 14);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r22 = ɵngcc0.ɵɵnextContext();\n const cell_r14 = ctx_r22.$implicit;\n const cellIndex_r15 = ctx_r22.index;\n const rowIndex_r5 = ɵngcc0.ɵɵnextContext().index;\n const ctx_r16 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r16.getStyles(cell_r14))(\"title\", cell_r14.title);\n ɵngcc0.ɵɵattribute(\"id\", cell_r14.id)(\"data-cell-index\", ctx_r16.tableCellIndex(rowIndex_r5, cellIndex_r15))(\"aria-selected\", cell_r14.isSelected || cell_r14.isRangeStart || cell_r14.isRangeMid || cell_r14.isRangeEnd)(\"aria-disabled\", cell_r14.isDisabled);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r16.templateRef);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r16.templateRef);\n} }\nfunction ViewComponent_tr_3_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, ViewComponent_tr_3_ng_container_2_td_1_Template, 4, 8, \"td\", 11);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const cell_r14 = ctx.$implicit;\n const ctx_r7 = ɵngcc0.ɵɵnextContext(2);\n const _r0 = ɵngcc0.ɵɵreference(1);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r7.shouldRenderCellContent(cell_r14))(\"ngIfElse\", _r0);\n} }\nfunction ViewComponent_tr_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"tr\", 4);\n ɵngcc0.ɵɵtemplate(1, ViewComponent_tr_3_ng_template_1_Template, 1, 2, \"ng-template\", 6);\n ɵngcc0.ɵɵtemplate(2, ViewComponent_tr_3_ng_container_2_Template, 2, 2, \"ng-container\", 7);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const row_r4 = ctx.$implicit;\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r3.weekNumber);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"kForOf\", row_r4);\n} }\nfunction TimeListComponent_li_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"li\", 3)(1, \"span\");\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const item_r1 = ctx.$implicit;\n const index_r2 = ctx.index;\n ɵngcc0.ɵɵattribute(\"data-timelist-item-index\", index_r2);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate(item_r1.text);\n} }\nconst _c93 = [\"accept\"];\nconst _c94 = [\"cancel\"];\nconst _c95 = [\"now\"];\nconst _c96 = [\"listWrapper\"];\nconst _c109 = function (a0, a1, a2) { return { click: a0, focus: a1, blur: a2 }; };\nfunction TimeSelectorComponent_button_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"button\", 8, 9);\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction3(6, _c109, ctx_r0.handleNow, ctx_r0.handleFocus, ctx_r0.handleBlur))(\"scope\", ctx_r0)(\"disabled\", ctx_r0.disabled);\n ɵngcc0.ɵɵattribute(\"title\", ctx_r0.localization.get(\"nowLabel\"))(\"aria-label\", ctx_r0.localization.get(\"nowLabel\"));\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate(ctx_r0.localization.get(\"now\"));\n} }\nconst _c110 = function (a0, a1) { return { focus: a0, blur: a1 }; };\nfunction TimeSelectorComponent_ng_template_7_div_0_Template(rf, ctx) { if (rf & 1) {\n const _r10 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 12, 13)(2, \"span\", 2);\n ɵngcc0.ɵɵtext(3);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(4, \"kendo-timelist\", 14);\n ɵngcc0.ɵɵlistener(\"valueChange\", function TimeSelectorComponent_ng_template_7_div_0_Template_kendo_timelist_valueChange_4_listener($event) { ɵngcc0.ɵɵrestoreView(_r10); const ctx_r9 = ɵngcc0.ɵɵnextContext(2); return ctx_r9.current = $event; });\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r11 = ɵngcc0.ɵɵnextContext();\n const part_r4 = ctx_r11.$implicit;\n const idx_r5 = ctx_r11.index;\n const ctx_r6 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵtextInterpolate(ctx_r6.intl.dateFieldName(part_r4));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"min\", ctx_r6.min)(\"max\", ctx_r6.max)(\"part\", part_r4)(\"step\", ctx_r6.partStep(part_r4))(\"disabled\", ctx_r6.disabled)(\"value\", ctx_r6.current)(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction2(10, _c110, ctx_r6.handleListFocus, ctx_r6.handleBlur))(\"scope\", ctx_r6);\n ɵngcc0.ɵɵattribute(\"data-timelist-index\", idx_r5);\n} }\nfunction TimeSelectorComponent_ng_template_7_div_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 15);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const part_r4 = ɵngcc0.ɵɵnextContext().$implicit;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", part_r4.pattern, \" \");\n} }\nfunction TimeSelectorComponent_ng_template_7_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, TimeSelectorComponent_ng_template_7_div_0_Template, 5, 13, \"div\", 10);\n ɵngcc0.ɵɵtemplate(1, TimeSelectorComponent_ng_template_7_div_1_Template, 2, 1, \"div\", 11);\n} if (rf & 2) {\n const part_r4 = ctx.$implicit;\n ɵngcc0.ɵɵproperty(\"ngIf\", part_r4.type !== \"literal\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", part_r4.type === \"literal\");\n} }\nfunction TimeSelectorComponent_div_8_button_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"button\", 19, 20);\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r13 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction3(6, _c109, ctx_r13.handleReject, ctx_r13.handleFocus, ctx_r13.handleBlur))(\"scope\", ctx_r13)(\"disabled\", ctx_r13.disabled);\n ɵngcc0.ɵɵattribute(\"title\", ctx_r13.localization.get(\"cancelLabel\"))(\"aria-label\", ctx_r13.localization.get(\"cancelLabel\"));\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate(ctx_r13.localization.get(\"cancel\"));\n} }\nfunction TimeSelectorComponent_div_8_button_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"button\", 21, 22);\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r14 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction3(6, _c109, ctx_r14.handleAccept, ctx_r14.handleFocus, ctx_r14.handleBlur))(\"scope\", ctx_r14)(\"disabled\", ctx_r14.disabled);\n ɵngcc0.ɵɵattribute(\"title\", ctx_r14.localization.get(\"acceptLabel\"))(\"aria-label\", ctx_r14.localization.get(\"acceptLabel\"));\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate(ctx_r14.localization.get(\"accept\"));\n} }\nfunction TimeSelectorComponent_div_8_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 16);\n ɵngcc0.ɵɵtemplate(1, TimeSelectorComponent_div_8_button_1_Template, 3, 10, \"button\", 17);\n ɵngcc0.ɵɵtemplate(2, TimeSelectorComponent_div_8_button_2_Template, 3, 10, \"button\", 18);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r2.cancelButton);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r2.setButton);\n} }\nconst packageMetadata = {\n name: '@progress/kendo-angular-dateinputs',\n productName: 'Kendo UI for Angular',\n productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],\n publishDate: 1647358649,\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\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/**\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\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 setYears = setter('setFullYear');\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 setMilliseconds = setter('setMilliseconds');\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 last = (list = []) => list && list[list.length - 1];\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 */\nconst areDatesEqual = (first, second) => {\n first = first || [];\n second = second || [];\n return first.length === second.length && first.every((date, index) => isEqual(date, second[index]));\n};\n/**\n * @hidden\n */\nconst sortDates = (dates) => {\n return dates.filter(date => isPresent(date)).sort((a, b) => a.getTime() - b.getTime());\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 * @hidden\n *\n * Crops the last two digits from the year of the provided date value.\n */\nconst cropTwoDigitYear = (date) => {\n if (!isPresent(date) || isNaN(date.getTime())) {\n return 0;\n }\n return Number(date\n .getFullYear()\n .toString()\n .slice(-2));\n};\n/**\n * @hidden\n *\n * Used when resetting millisecond segment value in the DateInput\n */\nconst msPaddingFromFormat = (format) => {\n return Array(format.match(/S+(\\1)/)[0].length).join(\"0\");\n};\n/**\n * @hidden\n */\nconst millisecondDigitsInFormat = (format) => {\n const result = format && format.match(/S+(\\1)/);\n return result ? result[0].length : 0;\n};\n/**\n * @hidden\n */\nconst millisecondStepFor = (digits) => {\n return Math.pow(10, 3 - digits);\n};\n/**\n * @hidden\n *\n * Checks if a tab keydown would would move the focus outside of the calendar.\n */\nconst isTabExitingCalendar = (calendarType, focusedElement, shiftKey) => {\n if (!isPresent(focusedElement)) {\n return false;\n }\n return calendarType === 'infinite' || ( // infinte calendar is always exited on first tab keydown\n calendarType === 'classic' &&\n (shiftKey && focusedElement.classList.contains('k-calendar')) || // exited on main calendar element focused and back-tab\n (!shiftKey && focusedElement.classList.contains('k-next-view')) // exited on next button focused and regular tab\n );\n};\n/**\n * @hidden\n * Returns the size class based on the component and size input.\n */\nconst getSizeClass = (component, size) => {\n const SIZE_CLASSES = {\n 'small': `k-${component}-sm`,\n 'medium': `k-${component}-md`,\n 'large': `k-${component}-lg`\n };\n return SIZE_CLASSES[size];\n};\n/**\n * @hidden\n * Returns the rounded class based on the rounded input.\n */\nconst getRoundedClass = (rounded) => {\n const ROUNDED_CLASSES = {\n 'small': 'k-rounded-sm',\n 'medium': 'k-rounded-md',\n 'large': 'k-rounded-lg',\n 'full': 'k-rounded-full'\n };\n return ROUNDED_CLASSES[rounded];\n};\n/**\n * @hidden\n * Return the fillMode class based on the component and fillMode input.\n */\nconst getFillModeClass = (component, fillMode) => {\n const FILLMODE_CLASSES = {\n 'solid': `k-${component}-solid`,\n 'flat': `k-${component}-flat`,\n 'outline': `k-${component}-outline`\n };\n return FILLMODE_CLASSES[fillMode];\n};\n\nconst EMPTY_DATA = [[]];\nconst CELLS_LENGTH = 4;\nconst ROWS_LENGTH = 3;\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 */\nlet CenturyViewService = class CenturyViewService {\n /**\n * @hidden\n */\n constructor() {\n this.dateRange = (start, end) => {\n if (!isPresent(start) || !isPresent(end)) {\n return [];\n }\n const result = [];\n let current = start;\n while (current <= end) {\n result.push(current);\n current = addDecades(current, 1);\n }\n return result;\n };\n }\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, selectedDates, 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 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 const nextCentury = cellDate.getFullYear() > lastDate.getFullYear();\n if (!this.isInRange(cellDate, min, max) || nextCentury) {\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 && selectedDates.some(date => this.isEqual(cellDate, date)),\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 lastDayOfPeriod(date) {\n const decade = lastDecadeOfCentury(date);\n const year = lastYearOfDecade(decade);\n const month = lastMonthOfYear(year);\n return lastDayOfMonth(month);\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.ɵfac = function CenturyViewService_Factory(t) { return new (t || CenturyViewService)(); };\nCenturyViewService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: CenturyViewService, factory: function (t) { return CenturyViewService.ɵfac(t); } });\n\nconst EMPTY_DATA$1 = [[]];\nconst CELLS_LENGTH$1 = 4;\nconst ROWS_LENGTH$1 = 3;\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 */\nlet DecadeViewService = class DecadeViewService {\n /**\n * @hidden\n */\n constructor() {\n this.dateRange = (start, end) => {\n if (!isPresent(start) || !isPresent(end)) {\n return [];\n }\n const result = [];\n let current = start;\n while (current <= end) {\n result.push(current);\n current = addYears(current, 1);\n }\n return result;\n };\n }\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, selectedDates, 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 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 const nextDecade = cellDate.getFullYear() > lastDate.getFullYear();\n if (!this.isInRange(cellDate, min, max) || nextDecade) {\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 && selectedDates.some(date => this.isEqual(cellDate, date)),\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 lastDayOfPeriod(date) {\n const year = lastYearOfDecade(date);\n const month = lastMonthOfYear(year);\n return lastDayOfMonth(month);\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.ɵfac = function DecadeViewService_Factory(t) { return new (t || DecadeViewService)(); };\nDecadeViewService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: DecadeViewService, factory: function (t) { return DecadeViewService.ɵfac(t); } });\n\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 */\nlet MonthViewService = class MonthViewService {\n constructor(_intlService) {\n this._intlService = _intlService;\n this.dateRange = (start, end) => {\n if (!isPresent(start) || !isPresent(end)) {\n return [];\n }\n const result = [];\n let current = start;\n while (current <= end) {\n result.push(current);\n current = addDays(current, 1);\n }\n return result;\n };\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, selectedDates, 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 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 (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 && selectedDates.some(date => this.isEqual(cellDate, date)),\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 isOtherMonth: otherMonth\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 lastDayOfPeriod(date) {\n return lastDayOfMonth(date);\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(options = {}) {\n return CELLS_LENGTH$2 + (options.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.ɵfac = function MonthViewService_Factory(t) { return new (t || MonthViewService)(ɵngcc0.ɵɵinject(ɵngcc1.IntlService)); };\nMonthViewService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: MonthViewService, factory: function (t) { return MonthViewService.ɵfac(t); } });\nMonthViewService = __decorate([ __metadata(\"design:paramtypes\", [IntlService])\n], MonthViewService);\n\nconst EMPTY_DATA$3 = [[]];\nconst CELLS_LENGTH$3 = 4;\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 */\nlet YearViewService = class YearViewService {\n constructor(_intlService) {\n this._intlService = _intlService;\n this.dateRange = (start, end) => {\n if (!isPresent(start) || !isPresent(end)) {\n return [];\n }\n const result = [];\n let current = start;\n while (current <= end) {\n result.push(current);\n current = addMonths(current, 1);\n }\n return result;\n };\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, selectedDates, selectionRange = EMPTY_SELECTIONRANGE, viewDate } = options;\n if (!viewDate) {\n return EMPTY_DATA$3;\n }\n const months = this.abbrMonthNames();\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 && selectedDates.some(date => this.isEqual(cellDate, date)),\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 lastDayOfPeriod(date) {\n const month = lastMonthOfYear(date);\n return lastDayOfMonth(month);\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.ɵfac = function YearViewService_Factory(t) { return new (t || YearViewService)(ɵngcc0.ɵɵinject(ɵngcc1.IntlService)); };\nYearViewService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: YearViewService, factory: function (t) { return YearViewService.ɵfac(t); } });\nYearViewService = __decorate([ __metadata(\"design:paramtypes\", [IntlService])\n], YearViewService);\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 */\nlet BusViewService = class 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.ɵfac = function BusViewService_Factory(t) { return new (t || BusViewService)(ɵngcc0.ɵɵinject(ɵngcc0.Injector)); };\nBusViewService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: BusViewService, factory: function (t) { return BusViewService.ɵfac(t); } });\nBusViewService = __decorate([ __metadata(\"design:paramtypes\", [Injector])\n], BusViewService);\n\n/**\n * @hidden\n */\nlet WeekNamesService = class 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.ɵfac = function WeekNamesService_Factory(t) { return new (t || WeekNamesService)(ɵngcc0.ɵɵinject(ɵngcc1.IntlService)); };\nWeekNamesService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: WeekNamesService, factory: function (t) { return WeekNamesService.ɵfac(t); } });\nWeekNamesService = __decorate([ __metadata(\"design:paramtypes\", [IntlService])\n], WeekNamesService);\n\nconst DEFAULT_VIEWS_LENGTH = 2;\n/**\n * @hidden\n */\nlet HorizontalViewListComponent = class HorizontalViewListComponent {\n constructor(bus, intl, weekService, cdr, element, renderer) {\n this.bus = bus;\n this.intl = intl;\n this.weekService = weekService;\n this.cdr = cdr;\n this.element = element;\n this.renderer = renderer;\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.selectedDates = [];\n this.views = DEFAULT_VIEWS_LENGTH;\n this.showViewHeader = false;\n this.animateNavigation = false;\n this.cellClick = new EventEmitter();\n this.weekNumberCellClick = new EventEmitter();\n this.cellEnter = new EventEmitter();\n this.cellLeave = new EventEmitter();\n this.activeDateChange = new EventEmitter();\n this.getComponentClass = true;\n this.weekNames = [];\n this.dates = [];\n this.intlSubscription = this.intl.changes.subscribe(this.intlChange.bind(this));\n }\n get weekNumber() {\n return this.showWeekNumbers && this.isMonthView();\n }\n set weekNumber(showWeekNumbers) {\n this.showWeekNumbers = showWeekNumbers;\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.weekNames.length === 0 || changes.weekNumber) {\n this.weekNames = this.weekService.getWeekNames(this.weekNumber);\n }\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 this.activeDateChange.emit(this.activeDate);\n }\n }\n ngAfterViewInit() {\n // make the calendar look the same in the different browsers\n // which also smoothens the navigation animation\n if (this.views === 1) {\n this.setTableMinWidth();\n }\n }\n ngOnDestroy() {\n this.intlSubscription.unsubscribe();\n }\n initService() {\n this.service = this.bus.service(this.activeView);\n }\n isMonthView() {\n return this.activeView === CalendarViewEnum.month;\n }\n getCaptionTitle(date) {\n return this.service.title(date);\n }\n getCaptionClass() {\n return this.isMonthView() ? 'k-month-header' : 'k-meta-header';\n }\n animateView(action) {\n const container = this.element.nativeElement;\n const table = container.querySelector('table');\n // the whole width excluding padding/margin\n const initialContainerWidth = parseFloat(getComputedStyle(container).width);\n // table width\n const tableWidth = parseFloat(getComputedStyle(table).width);\n this.renderer.setStyle(container, 'width', `${initialContainerWidth}px`);\n this.renderer.setStyle(container, 'overflow', 'visible');\n // initialize an additional view for the animation\n if (action === Action.NextView) {\n // animating Action.NextView requires adding an additional view before the rendered views\n this.nextAnimationDate = cloneDate(this.dates[0]);\n }\n else {\n // animating Action.PrevView requires adding an additional view after the rendered views\n this.prevAnimationDate = cloneDate(this.dates[this.dates.length - 1]);\n }\n // run cdr to render the additional view\n this.cdr.detectChanges();\n container.querySelectorAll('table').forEach(table => {\n this.renderer.setStyle(table, 'width', `${tableWidth}px`);\n if (this.views === 1) {\n this.renderer.setStyle(table, 'min-width', `${initialContainerWidth}px`);\n }\n });\n // we always slide by the width of 1 table\n // cross-browser compatibility is ensured by measuring the client rectangle and substracting the gap\n const tabRect = table.getBoundingClientRect();\n const containerGap = parseFloat(getComputedStyle(container).columnGap);\n const start = action === Action.NextView ? 'translateX(0)' : `translateX(-${tabRect.width + containerGap}px)`;\n const end = action === Action.NextView ? `translateX(-${tabRect.width + containerGap}px)` : 'translateX(0)';\n if (!this.animation) {\n this.animation = container.animate([\n { transform: start },\n { transform: end }\n ], {\n duration: 500,\n easing: 'ease-out'\n });\n this.animation.oncancel = this.animation.onfinish = () => {\n // clear all inline styles\n this.renderer.removeStyle(container, 'width');\n this.renderer.removeStyle(container, 'overflow');\n container.querySelectorAll('table').forEach(table => {\n this.renderer.removeStyle(table, 'width');\n });\n // clear the animation and the animation view\n this.animation = null;\n this.nextAnimationDate = null;\n this.prevAnimationDate = null;\n // run cdr to remove additional animation view from the markup\n this.cdr.detectChanges();\n };\n }\n else {\n // if animation is already running, cancel it and show the end navigation result on multiple prev/next button clicks\n this.animation.cancel();\n }\n }\n navigate(action) {\n if (this.animateNavigation && isDocumentAvailable() && isPresent(this.element.nativeElement.animate)) {\n this.animateView(action);\n }\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 this.activeDateChange.emit(this.activeDate);\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 setTableMinWidth() {\n const container = this.element.nativeElement;\n const table = container.querySelector('table');\n if (table) {\n const containerWidth = parseFloat(getComputedStyle(container).width);\n this.renderer.setStyle(table, 'min-width', `${containerWidth}px`);\n }\n }\n intlChange() {\n this.weekNames = this.weekService.getWeekNames(this.weekNumber);\n this.cdr.markForCheck();\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.ɵfac = function HorizontalViewListComponent_Factory(t) { return new (t || HorizontalViewListComponent)(ɵngcc0.ɵɵdirectiveInject(BusViewService), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.IntlService), ɵngcc0.ɵɵdirectiveInject(WeekNamesService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nHorizontalViewListComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: HorizontalViewListComponent, selectors: [[\"kendo-calendar-horizontal\"]], hostVars: 16, hostBindings: function HorizontalViewListComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-calendar-view\", ctx.getComponentClass)(\"k-hstack\", ctx.getComponentClass)(\"k-align-items-start\", ctx.getComponentClass)(\"k-justify-content-center\", ctx.getComponentClass)(\"k-calendar-monthview\", ctx.getComponentMonthClass)(\"k-calendar-yearview\", ctx.getComponentYearClass)(\"k-calendar-decadeview\", ctx.getComponentDecadeClass)(\"k-calendar-centuryview\", ctx.getComponentCenturyClass);\n } }, inputs: { activeView: \"activeView\", isActive: \"isActive\", min: \"min\", max: \"max\", selectedDates: \"selectedDates\", views: \"views\", showViewHeader: \"showViewHeader\", animateNavigation: \"animateNavigation\", weekNumber: \"weekNumber\", focusedDate: \"focusedDate\", cellTemplateRef: \"cellTemplateRef\", weekNumberTemplateRef: \"weekNumberTemplateRef\", activeRangeEnd: \"activeRangeEnd\", cellUID: \"cellUID\", selectionRange: \"selectionRange\" }, outputs: { cellClick: \"cellClick\", weekNumberCellClick: \"weekNumberCellClick\", cellEnter: \"cellEnter\", cellLeave: \"cellLeave\", activeDateChange: \"activeDateChange\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], decls: 5, vars: 3, consts: [[\"tableTemplate\", \"\"], [4, \"ngIf\"], [4, \"kFor\", \"kForOf\"], [\"role\", \"grid\", 1, \"k-content\", \"k-calendar-content\", \"k-calendar-table\", 3, \"ngClass\"], [3, \"ngClass\", 4, \"ngIf\"], [\"class\", \"k-calendar-thead\", 4, \"ngIf\"], [\"kendoCalendarView\", \"\", \"role\", \"rowgroup\", \"direction\", \"horizontal\", 1, \"k-calendar-tbody\", 3, \"activeView\", \"isActive\", \"min\", \"max\", \"cellUID\", \"focusedDate\", \"selectedDates\", \"selectionRange\", \"activeRangeEnd\", \"weekNumber\", \"templateRef\", \"weekNumberTemplateRef\", \"viewDate\", \"cellClick\", \"weekNumberCellClick\", \"cellEnter\", \"cellLeave\"], [3, \"ngClass\"], [1, \"k-calendar-thead\"], [\"role\", \"row\", 1, \"k-calendar-tr\"], [\"class\", \"k-calendar-th\", 4, \"ngFor\", \"ngForOf\"], [1, \"k-calendar-th\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]], template: function HorizontalViewListComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, HorizontalViewListComponent_ng_template_0_Template, 4, 16, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(2, HorizontalViewListComponent_2_Template, 1, 4, null, 1);\n ɵngcc0.ɵɵtemplate(3, HorizontalViewListComponent_3_Template, 1, 4, null, 2);\n ɵngcc0.ɵɵtemplate(4, HorizontalViewListComponent_4_Template, 1, 4, null, 1);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.nextAnimationDate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"kForOf\", ctx.dates);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.prevAnimationDate);\n } }, directives: function () { return [ɵngcc2.NgClass, ɵngcc2.NgIf, ɵngcc2.NgForOf, ViewComponent, ɵngcc2.NgTemplateOutlet, KForOf]; }, encapsulation: 2, changeDetection: 0 });\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], HorizontalViewListComponent.prototype, \"cellTemplateRef\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], HorizontalViewListComponent.prototype, \"weekNumberTemplateRef\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], HorizontalViewListComponent.prototype, \"activeRangeEnd\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], HorizontalViewListComponent.prototype, \"activeView\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], HorizontalViewListComponent.prototype, \"cellUID\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], HorizontalViewListComponent.prototype, \"focusedDate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], HorizontalViewListComponent.prototype, \"isActive\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], HorizontalViewListComponent.prototype, \"min\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], HorizontalViewListComponent.prototype, \"max\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], HorizontalViewListComponent.prototype, \"selectionRange\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], HorizontalViewListComponent.prototype, \"selectedDates\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], HorizontalViewListComponent.prototype, \"views\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], HorizontalViewListComponent.prototype, \"showViewHeader\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], HorizontalViewListComponent.prototype, \"animateNavigation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], HorizontalViewListComponent.prototype, \"weekNumber\", null);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], HorizontalViewListComponent.prototype, \"cellClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], HorizontalViewListComponent.prototype, \"weekNumberCellClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], HorizontalViewListComponent.prototype, \"cellEnter\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], HorizontalViewListComponent.prototype, \"cellLeave\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], HorizontalViewListComponent.prototype, \"activeDateChange\", void 0);\n__decorate([\n HostBinding(\"class.k-calendar-view\"),\n HostBinding(\"class.k-hstack\"),\n HostBinding(\"class.k-align-items-start\"),\n HostBinding(\"class.k-justify-content-center\"),\n __metadata(\"design:type\", Boolean)\n], HorizontalViewListComponent.prototype, \"getComponentClass\", void 0);\n__decorate([\n HostBinding(\"class.k-calendar-monthview\"),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], HorizontalViewListComponent.prototype, \"getComponentMonthClass\", null);\n__decorate([\n HostBinding(\"class.k-calendar-yearview\"),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], HorizontalViewListComponent.prototype, \"getComponentYearClass\", null);\n__decorate([\n HostBinding(\"class.k-calendar-decadeview\"),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], HorizontalViewListComponent.prototype, \"getComponentDecadeClass\", null);\n__decorate([\n HostBinding(\"class.k-calendar-centuryview\"),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], HorizontalViewListComponent.prototype, \"getComponentCenturyClass\", null);\nHorizontalViewListComponent = __decorate([ __metadata(\"design:paramtypes\", [BusViewService,\n IntlService,\n WeekNamesService,\n ChangeDetectorRef,\n ElementRef,\n Renderer2])\n], HorizontalViewListComponent);\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 */\nlet DisabledDatesService = class DisabledDatesService {\n /**\n * @hidden\n */\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.ɵfac = function DisabledDatesService_Factory(t) { return new (t || DisabledDatesService)(); };\nDisabledDatesService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: DisabledDatesService, factory: function (t) { return DisabledDatesService.ɵfac(t); } });\n\n/**\n * @hidden\n */\nlet HeaderComponent = class 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.isPrevDisabled = true;\n this.isNextDisabled = true;\n this.showNavigationButtons = false;\n this.todayButtonClick = new EventEmitter();\n this.prevButtonClick = new EventEmitter();\n this.nextButtonClick = new EventEmitter();\n this.getComponentClass = true;\n this.subscriptions = new Subscription();\n }\n ngOnInit() {\n this.subscriptions.add(this.intl.changes.subscribe(this.intlChange.bind(this)));\n this.subscriptions.add(this.localization.changes.subscribe(this.l10nChange.bind(this)));\n this.subscriptions.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.todayButtonClick.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.prevButtonTitle = this.localization.get('prevButtonTitle');\n this.nextButtonTitle = this.localization.get('nextButtonTitle');\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.ɵfac = function HeaderComponent_Factory(t) { return new (t || HeaderComponent)(ɵngcc0.ɵɵdirectiveInject(BusViewService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc3.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.IntlService), ɵngcc0.ɵɵdirectiveInject(DisabledDatesService)); };\nHeaderComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: HeaderComponent, selectors: [[\"kendo-calendar-header\"]], hostVars: 4, hostBindings: function HeaderComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-calendar-header\", ctx.getComponentClass)(\"k-hstack\", ctx.getComponentClass);\n } }, inputs: { min: \"min\", max: \"max\", rangeLength: \"rangeLength\", isPrevDisabled: \"isPrevDisabled\", isNextDisabled: \"isNextDisabled\", showNavigationButtons: \"showNavigationButtons\", activeView: \"activeView\", currentDate: \"currentDate\", templateRef: \"templateRef\" }, outputs: { todayButtonClick: \"todayButtonClick\", prevButtonClick: \"prevButtonClick\", nextButtonClick: \"nextButtonClick\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], decls: 9, vars: 23, consts: [[1, \"k-button\", \"k-button-md\", \"k-rounded-md\", \"k-button-flat\", \"k-button-flat-base\", \"k-calendar-title\", 3, \"kendoEventsOutsideAngular\", \"scope\"], [3, \"ngIf\"], [3, \"ngIf\", \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [1, \"k-spacer\"], [1, \"k-calendar-nav\", \"k-hstack\"], [\"class\", \"k-button k-button-md k-rounded-md k-button-flat k-button-flat-base k-icon-button k-prev-view\", \"type\", \"button\", 3, \"disabled\", \"title\", \"click\", 4, \"ngIf\"], [1, \"k-today\", \"k-nav-today\", 3, \"kendoEventsOutsideAngular\", \"scope\"], [\"class\", \"k-button k-button-md k-rounded-md k-button-flat k-button-flat-base k-icon-button k-next-view\", \"type\", \"button\", 3, \"disabled\", \"title\", \"click\", 4, \"ngIf\"], [\"type\", \"button\", 1, \"k-button\", \"k-button-md\", \"k-rounded-md\", \"k-button-flat\", \"k-button-flat-base\", \"k-icon-button\", \"k-prev-view\", 3, \"disabled\", \"title\", \"click\"], [1, \"k-icon\", \"k-i-arrow-60-left\"], [\"type\", \"button\", 1, \"k-button\", \"k-button-md\", \"k-rounded-md\", \"k-button-flat\", \"k-button-flat-base\", \"k-icon-button\", \"k-next-view\", 3, \"disabled\", \"title\", \"click\"], [1, \"k-icon\", \"k-i-arrow-60-right\"]], template: function HeaderComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 0);\n ɵngcc0.ɵɵtemplate(1, HeaderComponent_ng_template_1_Template, 1, 1, \"ng-template\", 1);\n ɵngcc0.ɵɵtemplate(2, HeaderComponent_ng_template_2_Template, 0, 0, \"ng-template\", 2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelement(3, \"span\", 3);\n ɵngcc0.ɵɵelementStart(4, \"span\", 4);\n ɵngcc0.ɵɵtemplate(5, HeaderComponent_button_5_Template, 2, 3, \"button\", 5);\n ɵngcc0.ɵɵelementStart(6, \"span\", 6);\n ɵngcc0.ɵɵtext(7);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(8, HeaderComponent_button_8_Template, 2, 3, \"button\", 7);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-disabled\", !ctx.navigate);\n ɵngcc0.ɵɵproperty(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction1(15, _c2, ctx.handleNavigation))(\"scope\", ctx);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.templateRef);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.templateRef)(\"ngTemplateOutlet\", ctx.templateRef)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction3(17, _c3, ctx.title, ctx.activeViewValue, ctx.currentDate));\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showNavigationButtons);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"k-disabled\", !ctx.todayAvailable);\n ɵngcc0.ɵɵproperty(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction1(21, _c2, ctx.handleTodayClick))(\"scope\", ctx);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx.todayMessage, \" \");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showNavigationButtons);\n } }, directives: [ɵngcc4.EventsOutsideAngularDirective, ɵngcc2.NgIf, ɵngcc2.NgTemplateOutlet], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], HeaderComponent.prototype, \"activeView\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], HeaderComponent.prototype, \"currentDate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], HeaderComponent.prototype, \"min\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], HeaderComponent.prototype, \"max\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], HeaderComponent.prototype, \"rangeLength\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], HeaderComponent.prototype, \"templateRef\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], HeaderComponent.prototype, \"isPrevDisabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], HeaderComponent.prototype, \"isNextDisabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], HeaderComponent.prototype, \"showNavigationButtons\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], HeaderComponent.prototype, \"todayButtonClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], HeaderComponent.prototype, \"prevButtonClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], HeaderComponent.prototype, \"nextButtonClick\", void 0);\n__decorate([\n HostBinding(\"class.k-calendar-header\"),\n HostBinding(\"class.k-hstack\"),\n __metadata(\"design:type\", Boolean)\n], HeaderComponent.prototype, \"getComponentClass\", void 0);\nHeaderComponent = __decorate([ __metadata(\"design:paramtypes\", [BusViewService,\n ChangeDetectorRef,\n LocalizationService,\n IntlService,\n DisabledDatesService])\n], HeaderComponent);\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 */\nlet NavigationService = class 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.ɵfac = function NavigationService_Factory(t) { return new (t || NavigationService)(ɵngcc0.ɵɵinject(BusViewService)); };\nNavigationService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NavigationService, factory: function (t) { return NavigationService.ɵfac(t); } });\nNavigationService = __decorate([ __metadata(\"design:paramtypes\", [BusViewService])\n], NavigationService);\n\n/**\n * @hidden\n */\nlet SelectionService = class SelectionService {\n constructor(bus) {\n this.bus = bus;\n }\n performSelection(args) {\n let { date, modifiers, selectionMode, activeViewEnum, rangePivot } = args;\n let selectedDates = args.selectedDates.slice();\n if (selectionMode === 'multiple') {\n if (modifiers.ctrlKey || modifiers.metaKey) {\n if (this.isDateSelected(selectedDates, date)) {\n selectedDates = selectedDates.filter(item => !isEqual(item, date));\n }\n else {\n selectedDates.push(date);\n }\n rangePivot = date;\n }\n else if (modifiers.shiftKey) {\n const [start, end] = sortDates([rangePivot || date, date]);\n selectedDates = this.bus.service(activeViewEnum).dateRange(start, end);\n rangePivot = date > selectedDates[0] ? selectedDates[0] : last(selectedDates);\n }\n else {\n selectedDates = [date];\n rangePivot = date;\n }\n }\n else {\n selectedDates = [date];\n rangePivot = date;\n }\n return { selectedDates, rangePivot };\n }\n isDateSelected(selectedDates, date) {\n return selectedDates.some(item => isEqual(item, date));\n }\n};\nSelectionService.ɵfac = function SelectionService_Factory(t) { return new (t || SelectionService)(ɵngcc0.ɵɵinject(BusViewService)); };\nSelectionService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: SelectionService, factory: function (t) { return SelectionService.ɵfac(t); } });\nSelectionService = __decorate([ __metadata(\"design:paramtypes\", [BusViewService])\n], SelectionService);\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 * export class AppComponent { }\n * ```\n */\nlet CellTemplateDirective = class CellTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nCellTemplateDirective.ɵfac = function CellTemplateDirective_Factory(t) { return new (t || CellTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nCellTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CellTemplateDirective, selectors: [[\"\", \"kendoCalendarCellTemplate\", \"\"]] });\nCellTemplateDirective = __decorate([ __metadata(\"design:paramtypes\", [TemplateRef])\n], CellTemplateDirective);\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 * export class AppComponent { }\n * ```\n */\nlet MonthCellTemplateDirective = class MonthCellTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nMonthCellTemplateDirective.ɵfac = function MonthCellTemplateDirective_Factory(t) { return new (t || MonthCellTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nMonthCellTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MonthCellTemplateDirective, selectors: [[\"\", \"kendoCalendarMonthCellTemplate\", \"\"]] });\nMonthCellTemplateDirective = __decorate([ __metadata(\"design:paramtypes\", [TemplateRef])\n], MonthCellTemplateDirective);\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 * export class AppComponent {\n * public activeView: CalendarView = 'year';\n * }\n * ```\n */\nlet YearCellTemplateDirective = class YearCellTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nYearCellTemplateDirective.ɵfac = function YearCellTemplateDirective_Factory(t) { return new (t || YearCellTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nYearCellTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: YearCellTemplateDirective, selectors: [[\"\", \"kendoCalendarYearCellTemplate\", \"\"]] });\nYearCellTemplateDirective = __decorate([ __metadata(\"design:paramtypes\", [TemplateRef])\n], YearCellTemplateDirective);\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 * export class AppComponent {\n * public activeView: CalendarView = 'decade';\n * }\n * ```\n */\nlet DecadeCellTemplateDirective = class DecadeCellTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nDecadeCellTemplateDirective.ɵfac = function DecadeCellTemplateDirective_Factory(t) { return new (t || DecadeCellTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nDecadeCellTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DecadeCellTemplateDirective, selectors: [[\"\", \"kendoCalendarDecadeCellTemplate\", \"\"]] });\nDecadeCellTemplateDirective = __decorate([ __metadata(\"design:paramtypes\", [TemplateRef])\n], DecadeCellTemplateDirective);\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 * export class AppComponent {\n * public activeView: CalendarView = 'century';\n * }\n * ```\n */\nlet CenturyCellTemplateDirective = class CenturyCellTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nCenturyCellTemplateDirective.ɵfac = function CenturyCellTemplateDirective_Factory(t) { return new (t || CenturyCellTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nCenturyCellTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CenturyCellTemplateDirective, selectors: [[\"\", \"kendoCalendarCenturyCellTemplate\", \"\"]] });\nCenturyCellTemplateDirective = __decorate([ __metadata(\"design:paramtypes\", [TemplateRef])\n], CenturyCellTemplateDirective);\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 * export class AppComponent { }\n * ```\n */\nlet WeekNumberCellTemplateDirective = class WeekNumberCellTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nWeekNumberCellTemplateDirective.ɵfac = function WeekNumberCellTemplateDirective_Factory(t) { return new (t || WeekNumberCellTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nWeekNumberCellTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: WeekNumberCellTemplateDirective, selectors: [[\"\", \"kendoCalendarWeekNumberCellTemplate\", \"\"]] });\nWeekNumberCellTemplateDirective = __decorate([ __metadata(\"design:paramtypes\", [TemplateRef])\n], WeekNumberCellTemplateDirective);\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 * export class AppComponent { }\n * ```\n */\nlet HeaderTitleTemplateDirective = class HeaderTitleTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nHeaderTitleTemplateDirective.ɵfac = function HeaderTitleTemplateDirective_Factory(t) { return new (t || HeaderTitleTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nHeaderTitleTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: HeaderTitleTemplateDirective, selectors: [[\"\", \"kendoCalendarHeaderTitleTemplate\", \"\"]] });\nHeaderTitleTemplateDirective = __decorate([ __metadata(\"design:paramtypes\", [TemplateRef])\n], HeaderTitleTemplateDirective);\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\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/**\n * @hidden\n */\nclass PickerService {\n constructor() {\n this.onFocus = new EventEmitter();\n this.onBlur = new EventEmitter();\n this.sameDateSelected = new EventEmitter();\n this.dateCompletenessChange = new EventEmitter();\n }\n}\nPickerService.ɵfac = function PickerService_Factory(t) { return new (t || PickerService)(); };\nPickerService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: PickerService, factory: PickerService.ɵfac });\n\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';\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 * export class AppComponent { }\n * ```\n */\nlet MultiViewCalendarComponent = class MultiViewCalendarComponent {\n constructor(bus, element, navigator, renderer, cdr, zone, disabledDatesService, selectionService, pickerService) {\n this.bus = bus;\n this.element = element;\n this.navigator = navigator;\n this.renderer = renderer;\n this.cdr = cdr;\n this.zone = zone;\n this.disabledDatesService = disabledDatesService;\n this.selectionService = selectionService;\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 * 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 the Calendar selection mode\n * ([see example]({% slug multiple_selection_multiviewcalendar %})).\n *\n * The available values are:\n * * `single` (default)\n * * `multiple`\n */\n this.selection = 'single';\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 * @hidden\n */\n this.isActive = false;\n /**\n * @hidden\n */\n this.isHeaderActive = false;\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 header for every view (for example the month name).\n */\n this.showViewHeader = false;\n /**\n * Determines whether to enable animation when navigating to previous/next view.\n *\n * > This feature uses the [Web Animations API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Animations_API). In order to run the animation in browsers that do not support it, you need the `web-animations-js` polyfill.\n *\n * @default false\n */\n this.animateNavigation = false;\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 navigating in the currently active view\n * ([more information and example]({% slug events_multiviewcalendar %})).\n */\n this.navigate = 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 /**\n * @hidden\n */\n this.blurEvent = new EventEmitter();\n this.cellUID = guid();\n this.isHovered = false;\n this.isPrevDisabled = true;\n this.isNextDisabled = true;\n this.prevView = Action.PrevView;\n this.nextView = Action.NextView;\n this.selectedDates = [];\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)\n * instance when in `single` selection mode or an array of valid JavaScript Date instances when in `multiple` selection mode.\n */\n get value() {\n return this._value;\n }\n set value(candidate) {\n this.verifyValue(candidate);\n this._value = Array.isArray(candidate) ?\n candidate.filter(date => isPresent(date)).map(element => cloneDate(element)) :\n cloneDate(candidate);\n const selection = [].concat(candidate).filter(date => isPresent(date)).map(date => cloneDate(date));\n if (!areDatesEqual(selection, this.selectedDates)) {\n const lastSelected = last(selection);\n this.rangePivot = cloneDate(lastSelected);\n this.focusedDate = cloneDate(lastSelected) || this.focusedDate;\n this.selectedDates = selection;\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 * 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 * Defines the template for each cell.\n * Takes precedence over nested templates in the KendoMultiViewCalendar tag.\n */\n set cellTemplateRef(template) {\n this._cellTemplateRef = template;\n }\n get cellTemplateRef() {\n return this._cellTemplateRef || this.cellTemplate;\n }\n /**\n * @hidden\n *\n * Defines the template for each month cell.\n * Takes precedence over nested templates in the KendoMultiViewCalendar tag.\n */\n set monthCellTemplateRef(template) {\n this._monthCellTemplateRef = template;\n }\n get monthCellTemplateRef() {\n return this._monthCellTemplateRef || this.monthCellTemplate;\n }\n /**\n * @hidden\n *\n * Defines the template for each year cell.\n * Takes precedence over nested templates in the KendoMultiViewCalendar tag.\n */\n set yearCellTemplateRef(template) {\n this._yearCellTemplateRef = template;\n }\n get yearCellTemplateRef() {\n return this._yearCellTemplateRef || this.yearCellTemplate;\n }\n /**\n * @hidden\n *\n * Defines the template for each decade cell.\n * Takes precedence over nested templates in the KendoMultiViewCalendar tag.\n */\n set decadeCellTemplateRef(template) {\n this._decadeCellTemplateRef = template;\n }\n get decadeCellTemplateRef() {\n return this._decadeCellTemplateRef || this.decadeCellTemplate;\n }\n /**\n * @hidden\n *\n * Defines the template for each century cell.\n * Takes precedence over nested templates in the KendoMultiViewCalendar tag.\n */\n set centuryCellTemplateRef(template) {\n this._centuryCellTemplateRef = template;\n }\n get centuryCellTemplateRef() {\n return this._centuryCellTemplateRef || this.centuryCellTemplate;\n }\n /**\n * @hidden\n *\n * Defines the template for the week cell.\n * Takes precedence over nested templates in the KendoMultiViewCalendar tag.\n */\n set weekNumberTemplateRef(template) {\n this._weekNumberTemplateRef = template;\n }\n get weekNumberTemplateRef() {\n return this._weekNumberTemplateRef || this.weekNumberTemplate;\n }\n /**\n * @hidden\n *\n * Defines the template for the header title.\n * Takes precedence over nested templates in the KendoMultiViewCalendar tag.\n */\n set headerTitleTemplateRef(template) {\n this._headerTitleTemplateRef = template;\n }\n get headerTitleTemplateRef() {\n return this._headerTitleTemplateRef || this.headerTitleTemplate;\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 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 handleFocusout(event) {\n const relatedTarget = event.relatedTarget;\n if (!this.element.nativeElement.contains(relatedTarget)) {\n this.blurEvent.emit(event);\n this.onControlTouched();\n }\n this.isActive = false;\n this.isHovered = false; //ensure that hovered is also not active\n this.isHeaderActive = this.headerElement.nativeElement.contains(relatedTarget);\n }\n /**\n * @hidden\n */\n handleFocus() {\n this.isActive = true;\n this.isHeaderActive = false;\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 if (this.isHeaderActive) {\n return;\n }\n if (event.keyCode === Keys.Enter) {\n if (isPresent(this.pickerService)) {\n event.preventDefault(); // Don't submit form from Datepicker popup\n }\n this.performSelection(this.focusedDate, event);\n }\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 const isSameView = this.bus.service(this.activeViewEnum).isInArray(this.focusedDate, this.viewList.dates);\n if (!isSameView) {\n this.emitNavigate(this.focusedDate);\n }\n }\n ngOnInit() {\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 if (hasExistingValue(changes, 'focusedDate')) {\n const focusedDate = changes.focusedDate.currentValue;\n this.focusedDate = dateInRange(focusedDate, this.min, this.max);\n }\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 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 * export 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 handleHeaderFocus() {\n this.isHeaderActive = true;\n }\n /**\n * @hidden\n */\n handleDateChange(args) {\n const canNavigateDown = this.bus.canMoveDown(this.activeViewEnum);\n const availableDates = args.selectedDates.filter(date => !this.disabledDatesService.isDateDisabled(date));\n this.focusedDate = args.focusedDate || this.focusedDate;\n const sameDates = !canNavigateDown && areDatesEqual(availableDates, this.selectedDates);\n if (this.disabled || sameDates) {\n return;\n }\n if (canNavigateDown) {\n this.bus.moveDown(this.activeViewEnum);\n return;\n }\n if (this.disabledDatesService.isDateDisabled(this.focusedDate)) {\n return;\n }\n this.selectedDates = availableDates.map(date => cloneDate(date));\n this.value = this.parseSelectionToValue(availableDates);\n this.onControlChange(this.parseSelectionToValue(availableDates));\n this.valueChange.emit(this.parseSelectionToValue(availableDates));\n }\n /**\n * @hidden\n */\n handleTodayButtonClick(args) {\n const todayDate = args.focusedDate;\n const isSameView = this.bus.service(this.activeViewEnum).isInArray(todayDate, this.viewList.dates);\n const isBottomView = !this.bus.canMoveDown(this.activeViewEnum);\n if (!isSameView && isBottomView) {\n this.emitNavigate(todayDate);\n }\n this.handleDateChange(args);\n }\n /**\n * @hidden\n */\n setActiveDate(date) {\n this.activeDate = cloneDate(date);\n this.cdr.detectChanges();\n }\n /**\n * @hidden\n */\n writeValue(candidate) {\n this.verifyValue(candidate);\n this.value = 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.monthCellTemplateRef || this.cellTemplateRef;\n case CalendarViewEnum.year:\n return this.yearCellTemplateRef;\n case CalendarViewEnum.decade:\n return this.decadeCellTemplateRef;\n case CalendarViewEnum.century:\n return this.centuryCellTemplateRef;\n default:\n return null;\n }\n }\n /**\n * @hidden\n */\n navigateView(action) {\n this.focusedDate = this.viewList.navigate(action);\n this.updateButtonState();\n this.emitNavigate(this.focusedDate);\n }\n /**\n * @hidden\n */\n emitNavigate(focusedDate) {\n const activeView = CalendarViewEnum[this.activeViewEnum];\n this.navigate.emit({ activeView, focusedDate });\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 /**\n * @hidden\n */\n handleCellClick({ date, modifiers }) {\n this.performSelection(date, modifiers);\n const isSameView = this.bus.service(this.activeViewEnum).isInArray(this.focusedDate, this.viewList.dates);\n if (!isSameView) {\n this.emitNavigate(this.focusedDate);\n }\n }\n /**\n * @hidden\n */\n handleWeekNumberClick(dates) {\n if (this.selection === 'single') {\n return;\n }\n this.zone.run(() => {\n this.handleDateChange({\n selectedDates: dates,\n focusedDate: last(dates)\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-range');\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 (this.selection === 'single' && 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 else if (this.selection === 'multiple' && candidate && Array.isArray(candidate)) {\n const onlyDates = candidate.every(value => value instanceof Date);\n if (!onlyDates) {\n throw new Error(`The 'value' should be an array of valid JavaScript Date instances. Check ${VALUE_DOC_LINK} for possible resolution.`);\n }\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 parseSelectionToValue(selection) {\n selection = selection || [];\n return this.selection === 'single' ? cloneDate(last(selection)) : selection.map(date => cloneDate(date));\n }\n performSelection(date, selectionModifiers) {\n const selection = this.selectionService.performSelection({\n date: date,\n modifiers: selectionModifiers,\n selectionMode: this.selection,\n activeViewEnum: this.activeViewEnum,\n rangePivot: this.rangePivot,\n selectedDates: this.selectedDates\n });\n this.rangePivot = selection.rangePivot;\n this.handleDateChange({\n selectedDates: selection.selectedDates,\n focusedDate: date\n });\n }\n};\nMultiViewCalendarComponent.ɵfac = function MultiViewCalendarComponent_Factory(t) { return new (t || MultiViewCalendarComponent)(ɵngcc0.ɵɵdirectiveInject(BusViewService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(NavigationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(DisabledDatesService), ɵngcc0.ɵɵdirectiveInject(SelectionService), ɵngcc0.ɵɵdirectiveInject(PickerService, 8)); };\nMultiViewCalendarComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: MultiViewCalendarComponent, selectors: [[\"kendo-multiviewcalendar\"]], contentQueries: function MultiViewCalendarComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, CellTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, MonthCellTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, YearCellTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, DecadeCellTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, CenturyCellTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, WeekNumberCellTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, HeaderTitleTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.cellTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.monthCellTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.yearCellTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.decadeCellTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.centuryCellTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.weekNumberTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.headerTitleTemplate = _t.first);\n } }, viewQuery: function MultiViewCalendarComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(HeaderComponent, 5, ElementRef);\n ɵngcc0.ɵɵviewQuery(HorizontalViewListComponent, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.headerElement = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.viewList = _t.first);\n } }, hostVars: 6, hostBindings: function MultiViewCalendarComponent_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"focusout\", function MultiViewCalendarComponent_focusout_HostBindingHandler($event) { return ctx.handleFocusout($event); })(\"focus\", function MultiViewCalendarComponent_focus_HostBindingHandler() { return ctx.handleFocus(); })(\"mouseenter\", function MultiViewCalendarComponent_mouseenter_HostBindingHandler() { return ctx.handleMouseEnter(); })(\"mouseleave\", function MultiViewCalendarComponent_mouseleave_HostBindingHandler() { return ctx.handleMouseLeave(); })(\"mousedown\", function MultiViewCalendarComponent_mousedown_HostBindingHandler($event) { return ctx.handleMousedown($event); })(\"click\", function MultiViewCalendarComponent_click_HostBindingHandler() { return ctx.handleClick(); })(\"keydown\", function MultiViewCalendarComponent_keydown_HostBindingHandler($event) { return ctx.keydown($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"id\", ctx.widgetId)(\"tabindex\", ctx.calendarTabIndex)(\"aria-disabled\", ctx.ariaDisabled)(\"aria-activedescendant\", ctx.ariaActivedescendant);\n ɵngcc0.ɵɵclassProp(\"k-disabled\", ctx.ariaDisabled);\n } }, inputs: { id: \"id\", rangeValidation: \"rangeValidation\", disabledDatesRangeValidation: \"disabledDatesRangeValidation\", selection: \"selection\", disabled: \"disabled\", tabindex: \"tabindex\", isActive: \"isActive\", activeView: \"activeView\", bottomView: \"bottomView\", topView: \"topView\", showViewHeader: \"showViewHeader\", animateNavigation: \"animateNavigation\", weekNumber: \"weekNumber\", views: \"views\", focusedDate: \"focusedDate\", min: \"min\", max: \"max\", value: \"value\", tabIndex: \"tabIndex\", disabledDates: \"disabledDates\", selectionRange: \"selectionRange\", cellTemplateRef: [\"cellTemplate\", \"cellTemplateRef\"], monthCellTemplateRef: [\"monthCellTemplate\", \"monthCellTemplateRef\"], yearCellTemplateRef: [\"yearCellTemplate\", \"yearCellTemplateRef\"], decadeCellTemplateRef: [\"decadeCellTemplate\", \"decadeCellTemplateRef\"], centuryCellTemplateRef: [\"centuryCellTemplate\", \"centuryCellTemplateRef\"], weekNumberTemplateRef: [\"weekNumberTemplate\", \"weekNumberTemplateRef\"], headerTitleTemplateRef: [\"headerTitleTemplate\", \"headerTitleTemplateRef\"], activeRangeEnd: \"activeRangeEnd\" }, outputs: { activeViewChange: \"activeViewChange\", navigate: \"navigate\", cellEnter: \"cellEnter\", cellLeave: \"cellLeave\", valueChange: \"valueChange\", blurEvent: \"blur\" }, exportAs: [\"kendo-multiviewcalendar\"], features: [ɵngcc0.ɵɵProvidersFeature([\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 SelectionService\n ]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 3, vars: 28, consts: function () { let i18n_4; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the today button in the calendar header\n * @meaning kendo.multiviewcalendar.today\n */\n const MSG_EXTERNAL_7780927771207785084$$DIST_FESM2015_INDEX_JS_5 = goog.getMsg(\"Today\");\n i18n_4 = MSG_EXTERNAL_7780927771207785084$$DIST_FESM2015_INDEX_JS_5;\n }\n else {\n i18n_4 = $localize `:kendo.multiviewcalendar.today|The label for the today button in the calendar header␟c237cef31a55d762ecfdcac701d283313f30bbfc␟7780927771207785084:Today`;\n } let i18n_6; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the previous button in the Multiview calendar\n * @meaning kendo.multiviewcalendar.prevButtonTitle\n */\n const MSG_EXTERNAL_9101635325676663492$$DIST_FESM2015_INDEX_JS_7 = goog.getMsg(\"Navigate to previous view\");\n i18n_6 = MSG_EXTERNAL_9101635325676663492$$DIST_FESM2015_INDEX_JS_7;\n }\n else {\n i18n_6 = $localize `:kendo.multiviewcalendar.prevButtonTitle|The label for the previous button in the Multiview calendar␟e783e2af4828224b846fa92148ea1cc52b21bb13␟9101635325676663492:Navigate to previous view`;\n } let i18n_8; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the next button in the Multiview calendar\n * @meaning kendo.multiviewcalendar.nextButtonTitle\n */\n const MSG_EXTERNAL_3994336778698343633$$DIST_FESM2015_INDEX_JS_9 = goog.getMsg(\"Navigate to next view\");\n i18n_8 = MSG_EXTERNAL_3994336778698343633$$DIST_FESM2015_INDEX_JS_9;\n }\n else {\n i18n_8 = $localize `:kendo.multiviewcalendar.nextButtonTitle|The label for the next button in the Multiview calendar␟3e3a529a242f39d22f841c3bd8045ec75b696b7a␟3994336778698343633:Navigate to next view`;\n } return [[\"kendoMultiViewCalendarLocalizedMessages\", \"\", \"today\", i18n_4, \"prevButtonTitle\", i18n_6, \"nextButtonTitle\", i18n_8], [3, \"activeView\", \"currentDate\", \"min\", \"max\", \"rangeLength\", \"templateRef\", \"isPrevDisabled\", \"isNextDisabled\", \"showNavigationButtons\", \"kendoEventsOutsideAngular\", \"scope\", \"todayButtonClick\", \"prevButtonClick\", \"nextButtonClick\"], [3, \"activeView\", \"isActive\", \"cellTemplateRef\", \"weekNumberTemplateRef\", \"cellUID\", \"views\", \"min\", \"max\", \"focusedDate\", \"animateNavigation\", \"showViewHeader\", \"weekNumber\", \"activeRangeEnd\", \"selectionRange\", \"selectedDates\", \"valueChange\", \"cellClick\", \"weekNumberCellClick\", \"cellEnter\", \"cellLeave\", \"activeDateChange\"]]; }, template: function MultiViewCalendarComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 0);\n ɵngcc0.ɵɵelementStart(1, \"kendo-calendar-header\", 1);\n ɵngcc0.ɵɵlistener(\"todayButtonClick\", function MultiViewCalendarComponent_Template_kendo_calendar_header_todayButtonClick_1_listener($event) { return ctx.handleTodayButtonClick({ selectedDates: [$event], focusedDate: $event }); })(\"prevButtonClick\", function MultiViewCalendarComponent_Template_kendo_calendar_header_prevButtonClick_1_listener() { return ctx.navigateView(ctx.prevView); })(\"nextButtonClick\", function MultiViewCalendarComponent_Template_kendo_calendar_header_nextButtonClick_1_listener() { return ctx.navigateView(ctx.nextView); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(2, \"kendo-calendar-horizontal\", 2);\n ɵngcc0.ɵɵlistener(\"valueChange\", function MultiViewCalendarComponent_Template_kendo_calendar_horizontal_valueChange_2_listener($event) { return ctx.handleDateChange($event); })(\"cellClick\", function MultiViewCalendarComponent_Template_kendo_calendar_horizontal_cellClick_2_listener($event) { return ctx.handleCellClick($event); })(\"weekNumberCellClick\", function MultiViewCalendarComponent_Template_kendo_calendar_horizontal_weekNumberCellClick_2_listener($event) { return ctx.handleWeekNumberClick($event); })(\"cellEnter\", function MultiViewCalendarComponent_Template_kendo_calendar_horizontal_cellEnter_2_listener($event) { return ctx.emitCellEvent(ctx.cellEnter, $event); })(\"cellLeave\", function MultiViewCalendarComponent_Template_kendo_calendar_horizontal_cellLeave_2_listener($event) { return ctx.emitCellEvent(ctx.cellLeave, $event); })(\"activeDateChange\", function MultiViewCalendarComponent_Template_kendo_calendar_horizontal_activeDateChange_2_listener($event) { return ctx.setActiveDate($event); });\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n let tmp_13_0;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"activeView\", ctx.activeViewEnum)(\"currentDate\", ctx.activeDate)(\"min\", ctx.min)(\"max\", ctx.max)(\"rangeLength\", ctx.views)(\"templateRef\", ctx.headerTitleTemplateRef == null ? null : ctx.headerTitleTemplateRef.templateRef)(\"isPrevDisabled\", ctx.isPrevDisabled)(\"isNextDisabled\", ctx.isNextDisabled)(\"showNavigationButtons\", true)(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction1(26, _c10, ctx.handleHeaderFocus))(\"scope\", ctx);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"activeView\", ctx.activeViewEnum)(\"isActive\", ctx.isActive || ctx.isHovered && !ctx.isHeaderActive)(\"cellTemplateRef\", (tmp_13_0 = ctx.activeCellTemplate()) == null ? null : tmp_13_0.templateRef)(\"weekNumberTemplateRef\", ctx.weekNumberTemplateRef == null ? null : ctx.weekNumberTemplateRef.templateRef)(\"cellUID\", ctx.cellUID)(\"views\", ctx.views)(\"min\", ctx.min)(\"max\", ctx.max)(\"focusedDate\", ctx.focusedDate)(\"animateNavigation\", ctx.animateNavigation)(\"showViewHeader\", ctx.showViewHeader)(\"weekNumber\", ctx.weekNumber)(\"activeRangeEnd\", ctx.activeRangeEnd)(\"selectionRange\", ctx.selectionRange)(\"selectedDates\", ctx.selectedDates);\n } }, directives: function () { return [MultiViewCalendarLocalizedMessagesDirective, HeaderComponent, ɵngcc4.EventsOutsideAngularDirective, HorizontalViewListComponent]; }, encapsulation: 2, changeDetection: 0 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], MultiViewCalendarComponent.prototype, \"id\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date),\n __metadata(\"design:paramtypes\", [Date])\n], MultiViewCalendarComponent.prototype, \"focusedDate\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date),\n __metadata(\"design:paramtypes\", [Date])\n], MultiViewCalendarComponent.prototype, \"min\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date),\n __metadata(\"design:paramtypes\", [Date])\n], MultiViewCalendarComponent.prototype, \"max\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], MultiViewCalendarComponent.prototype, \"rangeValidation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], MultiViewCalendarComponent.prototype, \"disabledDatesRangeValidation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], MultiViewCalendarComponent.prototype, \"selection\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], MultiViewCalendarComponent.prototype, \"value\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], MultiViewCalendarComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], MultiViewCalendarComponent.prototype, \"tabindex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], MultiViewCalendarComponent.prototype, \"tabIndex\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], MultiViewCalendarComponent.prototype, \"isActive\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], MultiViewCalendarComponent.prototype, \"disabledDates\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], MultiViewCalendarComponent.prototype, \"activeView\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], MultiViewCalendarComponent.prototype, \"bottomView\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], MultiViewCalendarComponent.prototype, \"topView\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], MultiViewCalendarComponent.prototype, \"showViewHeader\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], MultiViewCalendarComponent.prototype, \"animateNavigation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], MultiViewCalendarComponent.prototype, \"weekNumber\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], MultiViewCalendarComponent.prototype, \"activeRangeEnd\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], MultiViewCalendarComponent.prototype, \"selectionRange\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], MultiViewCalendarComponent.prototype, \"views\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], MultiViewCalendarComponent.prototype, \"activeViewChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], MultiViewCalendarComponent.prototype, \"navigate\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], MultiViewCalendarComponent.prototype, \"cellEnter\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], MultiViewCalendarComponent.prototype, \"cellLeave\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], MultiViewCalendarComponent.prototype, \"valueChange\", void 0);\n__decorate([\n Output('blur'),\n __metadata(\"design:type\", EventEmitter)\n], MultiViewCalendarComponent.prototype, \"blurEvent\", void 0);\n__decorate([\n ContentChild(CellTemplateDirective, { static: false }),\n __metadata(\"design:type\", CellTemplateDirective)\n], MultiViewCalendarComponent.prototype, \"cellTemplate\", void 0);\n__decorate([\n Input('cellTemplate'),\n __metadata(\"design:type\", CellTemplateDirective),\n __metadata(\"design:paramtypes\", [CellTemplateDirective])\n], MultiViewCalendarComponent.prototype, \"cellTemplateRef\", null);\n__decorate([\n ContentChild(MonthCellTemplateDirective, { static: false }),\n __metadata(\"design:type\", MonthCellTemplateDirective)\n], MultiViewCalendarComponent.prototype, \"monthCellTemplate\", void 0);\n__decorate([\n Input('monthCellTemplate'),\n __metadata(\"design:type\", MonthCellTemplateDirective),\n __metadata(\"design:paramtypes\", [MonthCellTemplateDirective])\n], MultiViewCalendarComponent.prototype, \"monthCellTemplateRef\", null);\n__decorate([\n ContentChild(YearCellTemplateDirective, { static: false }),\n __metadata(\"design:type\", YearCellTemplateDirective)\n], MultiViewCalendarComponent.prototype, \"yearCellTemplate\", void 0);\n__decorate([\n Input('yearCellTemplate'),\n __metadata(\"design:type\", YearCellTemplateDirective),\n __metadata(\"design:paramtypes\", [YearCellTemplateDirective])\n], MultiViewCalendarComponent.prototype, \"yearCellTemplateRef\", null);\n__decorate([\n ContentChild(DecadeCellTemplateDirective, { static: false }),\n __metadata(\"design:type\", DecadeCellTemplateDirective)\n], MultiViewCalendarComponent.prototype, \"decadeCellTemplate\", void 0);\n__decorate([\n Input('decadeCellTemplate'),\n __metadata(\"design:type\", DecadeCellTemplateDirective),\n __metadata(\"design:paramtypes\", [DecadeCellTemplateDirective])\n], MultiViewCalendarComponent.prototype, \"decadeCellTemplateRef\", null);\n__decorate([\n ContentChild(CenturyCellTemplateDirective, { static: false }),\n __metadata(\"design:type\", CenturyCellTemplateDirective)\n], MultiViewCalendarComponent.prototype, \"centuryCellTemplate\", void 0);\n__decorate([\n Input('centuryCellTemplate'),\n __metadata(\"design:type\", CenturyCellTemplateDirective),\n __metadata(\"design:paramtypes\", [CenturyCellTemplateDirective])\n], MultiViewCalendarComponent.prototype, \"centuryCellTemplateRef\", null);\n__decorate([\n ContentChild(WeekNumberCellTemplateDirective, { static: false }),\n __metadata(\"design:type\", WeekNumberCellTemplateDirective)\n], MultiViewCalendarComponent.prototype, \"weekNumberTemplate\", void 0);\n__decorate([\n Input('weekNumberTemplate'),\n __metadata(\"design:type\", WeekNumberCellTemplateDirective),\n __metadata(\"design:paramtypes\", [WeekNumberCellTemplateDirective])\n], MultiViewCalendarComponent.prototype, \"weekNumberTemplateRef\", null);\n__decorate([\n ContentChild(HeaderTitleTemplateDirective, { static: false }),\n __metadata(\"design:type\", HeaderTitleTemplateDirective)\n], MultiViewCalendarComponent.prototype, \"headerTitleTemplate\", void 0);\n__decorate([\n Input('headerTitleTemplate'),\n __metadata(\"design:type\", HeaderTitleTemplateDirective),\n __metadata(\"design:paramtypes\", [HeaderTitleTemplateDirective])\n], MultiViewCalendarComponent.prototype, \"headerTitleTemplateRef\", null);\n__decorate([\n ViewChild(HeaderComponent, { static: false, read: ElementRef }),\n __metadata(\"design:type\", ElementRef)\n], MultiViewCalendarComponent.prototype, \"headerElement\", void 0);\n__decorate([\n ViewChild(HorizontalViewListComponent, { static: false }),\n __metadata(\"design:type\", HorizontalViewListComponent)\n], MultiViewCalendarComponent.prototype, \"viewList\", void 0);\n__decorate([\n HostBinding('attr.id'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], MultiViewCalendarComponent.prototype, \"widgetId\", null);\n__decorate([\n HostBinding('attr.tabindex'),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [])\n], MultiViewCalendarComponent.prototype, \"calendarTabIndex\", null);\n__decorate([\n HostBinding('attr.aria-disabled'),\n HostBinding('class.k-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], MultiViewCalendarComponent.prototype, \"ariaDisabled\", null);\n__decorate([\n HostBinding('attr.aria-activedescendant'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], MultiViewCalendarComponent.prototype, \"ariaActivedescendant\", null);\n__decorate([\n HostListener('focusout', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], MultiViewCalendarComponent.prototype, \"handleFocusout\", null);\n__decorate([\n HostListener(\"focus\"),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], MultiViewCalendarComponent.prototype, \"handleFocus\", null);\n__decorate([\n HostListener(\"mouseenter\"),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], MultiViewCalendarComponent.prototype, \"handleMouseEnter\", null);\n__decorate([\n HostListener(\"mouseleave\"),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], MultiViewCalendarComponent.prototype, \"handleMouseLeave\", null);\n__decorate([\n HostListener(\"mousedown\", ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], MultiViewCalendarComponent.prototype, \"handleMousedown\", null);\n__decorate([\n HostListener(\"click\"),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], MultiViewCalendarComponent.prototype, \"handleClick\", null);\n__decorate([\n HostListener(\"keydown\", [\"$event\"]),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], MultiViewCalendarComponent.prototype, \"keydown\", null);\nMultiViewCalendarComponent = __decorate([ __param(8, Optional()),\n __metadata(\"design:paramtypes\", [BusViewService,\n ElementRef,\n NavigationService,\n Renderer2,\n ChangeDetectorRef,\n NgZone,\n DisabledDatesService,\n SelectionService,\n PickerService])\n], MultiViewCalendarComponent);\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 \n \n TODAY\n \n `, 'k-calendar-header k-hstack'));\nconst monthWeekHeader = () => (table([\n thead([\n tr([th('MO', 'k-calendar-th')], 'k-calendar-tr')\n ], 'k-calendar-thead')\n], 'k-calendar-weekdays k-calendar-table'));\nconst repeat = (count, mapper) => new Array(count).fill('1').map(mapper);\nconst content = (rows, cells = 1) => (table([\n tbody([tr([th('1', 'k-calendar-th')], 'k-calendar-tr')].concat(repeat(rows, () => tr(repeat(cells, c => td(`${c}`, 'k-calendar-td')), 'k-calendar-tr'))), 'k-calendar-tbody')\n], 'k-calendar-table'));\nconst scrollable = (children) => div(children, 'k-flex k-content k-calendar-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-vstack k-calendar-view k-calendar-monthview', true);\nconst yearView = viewFactory({ cells: 4, rows: 3 }, 'k-vstack k-calendar-view k-calendar-yearview', false);\nconst decadeView = viewFactory({ cells: 4, rows: 3 }, 'k-vstack 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 */\nlet CalendarDOMService = class 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 if (!isPresent(this.hostContainer)) {\n return;\n }\n const hostClone = this.hostContainer.cloneNode();\n document.body.appendChild(hostClone);\n try {\n const appendedContent = hostClone.appendChild(contentElement);\n action(appendedContent);\n }\n catch (error) {\n throw error;\n }\n finally {\n document.body.removeChild(hostClone);\n }\n }\n};\nCalendarDOMService.ɵfac = function CalendarDOMService_Factory(t) { return new (t || CalendarDOMService)(); };\nCalendarDOMService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: CalendarDOMService, factory: function (t) { return CalendarDOMService.ɵfac(t); } });\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 = new Observable(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/**\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 */\nlet VirtualizationComponent = class 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.wrapperClasses = true;\n this.resolvedPromise = Promise.resolve(null);\n this.dispatcher = new Subject();\n this.scroller = scrollerFactory(this.dispatcher);\n }\n get horizontalClass() {\n return this.direction === 'horizontal';\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 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.ɵfac = function VirtualizationComponent_Factory(t) { return new (t || VirtualizationComponent)(ɵngcc0.ɵɵdirectiveInject(SCROLLER_FACTORY_TOKEN), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nVirtualizationComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: VirtualizationComponent, selectors: [[\"kendo-virtualization\"]], hostVars: 10, hostBindings: function VirtualizationComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-flex\", ctx.wrapperClasses)(\"k-content\", ctx.wrapperClasses)(\"k-calendar-content\", ctx.wrapperClasses)(\"k-scrollable\", ctx.wrapperClasses)(\"k-scrollable-horizontal\", ctx.horizontalClass);\n } }, inputs: { direction: \"direction\", itemHeight: \"itemHeight\", itemWidth: \"itemWidth\", topOffset: \"topOffset\", bottomOffset: \"bottomOffset\", maxScrollDifference: \"maxScrollDifference\", scrollOffsetSize: \"scrollOffsetSize\", scrollDuration: \"scrollDuration\", skip: \"skip\", take: \"take\", total: \"total\" }, outputs: { activeIndexChange: \"activeIndexChange\", pageChange: \"pageChange\", scrollChange: \"scrollChange\" }, features: [ɵngcc0.ɵɵProvidersFeature([{\n provide: SCROLLER_FACTORY_TOKEN,\n useValue: DEFAULT_SCROLLER_FACTORY\n }]), ɵngcc0.ɵɵNgOnChangesFeature], ngContentSelectors: _c11, decls: 2, vars: 3, consts: [[1, \"k-scrollable-placeholder\", 3, \"ngStyle\"]], template: function VirtualizationComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵprojection(0);\n ɵngcc0.ɵɵelement(1, \"div\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"k-scrollable-horizontal-placeholder\", ctx.direction === \"horizontal\");\n ɵngcc0.ɵɵproperty(\"ngStyle\", ctx.totalVertexLength);\n } }, directives: [ɵngcc2.NgStyle], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], VirtualizationComponent.prototype, \"direction\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], VirtualizationComponent.prototype, \"itemHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], VirtualizationComponent.prototype, \"itemWidth\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], VirtualizationComponent.prototype, \"topOffset\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], VirtualizationComponent.prototype, \"bottomOffset\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], VirtualizationComponent.prototype, \"maxScrollDifference\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], VirtualizationComponent.prototype, \"scrollOffsetSize\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], VirtualizationComponent.prototype, \"scrollDuration\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], VirtualizationComponent.prototype, \"skip\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], VirtualizationComponent.prototype, \"take\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], VirtualizationComponent.prototype, \"total\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], VirtualizationComponent.prototype, \"activeIndexChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], VirtualizationComponent.prototype, \"pageChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], VirtualizationComponent.prototype, \"scrollChange\", void 0);\n__decorate([\n HostBinding('class.k-flex'),\n HostBinding('class.k-content'),\n HostBinding('class.k-calendar-content'),\n HostBinding('class.k-scrollable'),\n __metadata(\"design:type\", Boolean)\n], VirtualizationComponent.prototype, \"wrapperClasses\", void 0);\n__decorate([\n HostBinding('class.k-scrollable-horizontal'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], VirtualizationComponent.prototype, \"horizontalClass\", null);\nVirtualizationComponent = __decorate([ __param(0, Inject(SCROLLER_FACTORY_TOKEN)),\n __metadata(\"design:paramtypes\", [Object, ElementRef,\n Renderer2,\n NgZone])\n], VirtualizationComponent);\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\nconst ITEMS_COUNT = 30;\n/**\n * @hidden\n */\nlet NavigationComponent = class 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.ɵfac = function NavigationComponent_Factory(t) { return new (t || NavigationComponent)(ɵngcc0.ɵɵdirectiveInject(BusViewService), ɵngcc0.ɵɵdirectiveInject(CalendarDOMService), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.IntlService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nNavigationComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NavigationComponent, selectors: [[\"kendo-calendar-navigation\"]], viewQuery: function NavigationComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(VirtualizationComponent, 5);\n ɵngcc0.ɵɵviewQuery(_c12, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.virtualization = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.list = _t.first);\n } }, hostVars: 2, hostBindings: function NavigationComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-calendar-navigation\", ctx.getComponentClass);\n } }, inputs: { min: \"min\", max: \"max\", focusedDate: \"focusedDate\", activeView: \"activeView\", templateRef: \"templateRef\" }, outputs: { valueChange: \"valueChange\", pageChange: \"pageChange\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], decls: 5, vars: 12, consts: [[1, \"k-calendar-navigation-highlight\"], [3, \"skip\", \"take\", \"total\", \"itemHeight\", \"topOffset\", \"bottomOffset\", \"maxScrollDifference\", \"pageChange\", \"scrollChange\"], [1, \"k-reset\", 3, \"kendoEventsOutsideAngular\", \"scope\"], [\"list\", \"\"], [4, \"kFor\", \"kForOf\"], [3, \"ngIf\"], [3, \"ngIf\", \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]], template: function NavigationComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 0);\n ɵngcc0.ɵɵelementStart(1, \"kendo-virtualization\", 1);\n ɵngcc0.ɵɵlistener(\"pageChange\", function NavigationComponent_Template_kendo_virtualization_pageChange_1_listener($event) { return ctx.onPageChange($event); })(\"scrollChange\", function NavigationComponent_Template_kendo_virtualization_scrollChange_1_listener($event) { return ctx.scrollChange($event); });\n ɵngcc0.ɵɵelementStart(2, \"ul\", 2, 3);\n ɵngcc0.ɵɵtemplate(4, NavigationComponent_li_4_Template, 4, 11, \"li\", 4);\n ɵngcc0.ɵɵelementEnd()();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"skip\", ctx.skip)(\"take\", ctx.take)(\"total\", ctx.total)(\"itemHeight\", ctx.itemHeight)(\"topOffset\", ctx.topOffset)(\"bottomOffset\", ctx.bottomOffset)(\"maxScrollDifference\", ctx.maxViewHeight);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction1(10, _c2, ctx.handleDateChange))(\"scope\", ctx);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"kForOf\", ctx.dates);\n } }, directives: function () { return [VirtualizationComponent, ɵngcc4.EventsOutsideAngularDirective, KForOf, ɵngcc2.NgIf, ɵngcc2.NgTemplateOutlet]; }, encapsulation: 2, changeDetection: 0 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], NavigationComponent.prototype, \"activeView\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], NavigationComponent.prototype, \"min\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], NavigationComponent.prototype, \"max\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], NavigationComponent.prototype, \"focusedDate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], NavigationComponent.prototype, \"templateRef\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], NavigationComponent.prototype, \"valueChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], NavigationComponent.prototype, \"pageChange\", void 0);\n__decorate([\n ViewChild(VirtualizationComponent, { static: false }),\n __metadata(\"design:type\", VirtualizationComponent)\n], NavigationComponent.prototype, \"virtualization\", void 0);\n__decorate([\n ViewChild('list', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], NavigationComponent.prototype, \"list\", void 0);\n__decorate([\n HostBinding(\"class.k-calendar-navigation\"),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], NavigationComponent.prototype, \"getComponentClass\", null);\nNavigationComponent = __decorate([ __metadata(\"design:paramtypes\", [BusViewService,\n CalendarDOMService,\n IntlService,\n ChangeDetectorRef,\n Renderer2])\n], NavigationComponent);\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 */\nlet ViewListComponent = class 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.selectedDates = [];\n this.cellClick = new EventEmitter();\n this.weekNumberCellClick = new EventEmitter();\n this.activeDateChange = new EventEmitter();\n this.todayButtonClick = new EventEmitter();\n this.pageChange = new EventEmitter();\n this.getComponentClass = true;\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 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({ prependCell: 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 this.activeDate = candidate;\n this.activeDateChange.emit(candidate);\n this.cdr.detectChanges();\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.ɵfac = function ViewListComponent_Factory(t) { return new (t || ViewListComponent)(ɵngcc0.ɵɵdirectiveInject(BusViewService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.IntlService), ɵngcc0.ɵɵdirectiveInject(CalendarDOMService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nViewListComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ViewListComponent, selectors: [[\"kendo-calendar-viewlist\"]], viewQuery: function ViewListComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(VirtualizationComponent, 5);\n ɵngcc0.ɵɵviewQuery(_c12, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.virtualization = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.list = _t.first);\n } }, hostVars: 12, hostBindings: function ViewListComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-vstack\", ctx.getComponentClass)(\"k-calendar-view\", ctx.getComponentClass)(\"k-calendar-monthview\", ctx.getComponentMonthClass)(\"k-calendar-yearview\", ctx.getComponentYearClass)(\"k-calendar-decadeview\", ctx.getComponentDecadeClass)(\"k-calendar-centuryview\", ctx.getComponentCenturyClass);\n } }, inputs: { isActive: \"isActive\", min: \"min\", max: \"max\", selectedDates: \"selectedDates\", weekNumber: \"weekNumber\", cellTemplateRef: \"cellTemplateRef\", weekNumberTemplateRef: \"weekNumberTemplateRef\", headerTitleTemplateRef: \"headerTitleTemplateRef\", activeView: \"activeView\", cellUID: \"cellUID\", focusedDate: \"focusedDate\" }, outputs: { cellClick: \"cellClick\", weekNumberCellClick: \"weekNumberCellClick\", activeDateChange: \"activeDateChange\", todayButtonClick: \"todayButtonClick\", pageChange: \"pageChange\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], decls: 8, vars: 17, consts: [[3, \"currentDate\", \"min\", \"max\", \"activeView\", \"templateRef\", \"todayButtonClick\"], [\"class\", \"k-calendar-weekdays k-calendar-table\", \"style\", \"table-layout: auto;\", 4, \"ngIf\"], [3, \"tabindex\", \"skip\", \"take\", \"total\", \"itemHeight\", \"topOffset\", \"bottomOffset\", \"scrollOffsetSize\", \"maxScrollDifference\", \"pageChange\", \"scrollChange\", \"activeIndexChange\"], [\"role\", \"grid\", 1, \"k-calendar-table\"], [\"list\", \"\"], [4, \"ngFor\", \"ngForOf\"], [\"class\", \"k-calendar-tbody\", \"kendoCalendarView\", \"\", \"role\", \"rowgroup\", 3, \"activeView\", \"isActive\", \"min\", \"max\", \"cellUID\", \"focusedDate\", \"selectedDates\", \"weekNumber\", \"templateRef\", \"weekNumberTemplateRef\", \"viewDate\", \"cellClick\", \"weekNumberCellClick\", 4, \"kFor\", \"kForOf\"], [1, \"k-calendar-weekdays\", \"k-calendar-table\", 2, \"table-layout\", \"auto\"], [1, \"k-calendar-thead\"], [1, \"k-calendar-tr\"], [\"class\", \"k-calendar-th\", 3, \"width\", 4, \"ngFor\", \"ngForOf\"], [1, \"k-calendar-th\"], [\"kendoCalendarView\", \"\", \"role\", \"rowgroup\", 1, \"k-calendar-tbody\", 3, \"activeView\", \"isActive\", \"min\", \"max\", \"cellUID\", \"focusedDate\", \"selectedDates\", \"weekNumber\", \"templateRef\", \"weekNumberTemplateRef\", \"viewDate\", \"cellClick\", \"weekNumberCellClick\"]], template: function ViewListComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-calendar-header\", 0);\n ɵngcc0.ɵɵlistener(\"todayButtonClick\", function ViewListComponent_Template_kendo_calendar_header_todayButtonClick_0_listener($event) { return ctx.todayButtonClick.emit($event); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(1, ViewListComponent_table_1_Template, 4, 1, \"table\", 1);\n ɵngcc0.ɵɵelementStart(2, \"kendo-virtualization\", 2);\n ɵngcc0.ɵɵlistener(\"pageChange\", function ViewListComponent_Template_kendo_virtualization_pageChange_2_listener($event) { return ctx.onPageChange($event); })(\"scrollChange\", function ViewListComponent_Template_kendo_virtualization_scrollChange_2_listener($event) { return ctx.scrollChange($event); })(\"activeIndexChange\", function ViewListComponent_Template_kendo_virtualization_activeIndexChange_2_listener($event) { return ctx.setActiveDate($event); });\n ɵngcc0.ɵɵelementStart(3, \"table\", 3, 4)(5, \"colgroup\");\n ɵngcc0.ɵɵtemplate(6, ViewListComponent_col_6_Template, 1, 0, \"col\", 5);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(7, ViewListComponent_tbody_7_Template, 1, 11, \"tbody\", 6);\n ɵngcc0.ɵɵelementEnd()();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"currentDate\", ctx.activeDate)(\"min\", ctx.min)(\"max\", ctx.max)(\"activeView\", ctx.activeView)(\"templateRef\", ctx.headerTitleTemplateRef);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.isMonthView());\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"tabindex\", -1)(\"skip\", ctx.skip)(\"take\", ctx.take)(\"total\", ctx.total)(\"itemHeight\", ctx.viewHeight)(\"topOffset\", ctx.viewOffset)(\"bottomOffset\", ctx.bottomOffset)(\"scrollOffsetSize\", ctx.viewOffset)(\"maxScrollDifference\", ctx.viewHeight);\n ɵngcc0.ɵɵadvance(4);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.cols);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"kForOf\", ctx.dates);\n } }, directives: function () { return [HeaderComponent, ɵngcc2.NgIf, ɵngcc2.NgForOf, VirtualizationComponent, KForOf, ViewComponent]; }, encapsulation: 2, changeDetection: 0 });\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], ViewListComponent.prototype, \"cellTemplateRef\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], ViewListComponent.prototype, \"weekNumberTemplateRef\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], ViewListComponent.prototype, \"headerTitleTemplateRef\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ViewListComponent.prototype, \"activeView\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ViewListComponent.prototype, \"cellUID\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], ViewListComponent.prototype, \"focusedDate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ViewListComponent.prototype, \"isActive\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], ViewListComponent.prototype, \"min\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], ViewListComponent.prototype, \"max\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], ViewListComponent.prototype, \"selectedDates\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], ViewListComponent.prototype, \"weekNumber\", null);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ViewListComponent.prototype, \"cellClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ViewListComponent.prototype, \"weekNumberCellClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ViewListComponent.prototype, \"activeDateChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ViewListComponent.prototype, \"todayButtonClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ViewListComponent.prototype, \"pageChange\", void 0);\n__decorate([\n ViewChild(VirtualizationComponent, { static: false }),\n __metadata(\"design:type\", VirtualizationComponent)\n], ViewListComponent.prototype, \"virtualization\", void 0);\n__decorate([\n ViewChild('list', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], ViewListComponent.prototype, \"list\", void 0);\n__decorate([\n HostBinding(\"class.k-vstack\"),\n HostBinding(\"class.k-calendar-view\"),\n __metadata(\"design:type\", Boolean)\n], ViewListComponent.prototype, \"getComponentClass\", void 0);\n__decorate([\n HostBinding(\"class.k-calendar-monthview\"),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ViewListComponent.prototype, \"getComponentMonthClass\", null);\n__decorate([\n HostBinding(\"class.k-calendar-yearview\"),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ViewListComponent.prototype, \"getComponentYearClass\", null);\n__decorate([\n HostBinding(\"class.k-calendar-decadeview\"),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ViewListComponent.prototype, \"getComponentDecadeClass\", null);\n__decorate([\n HostBinding(\"class.k-calendar-centuryview\"),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ViewListComponent.prototype, \"getComponentCenturyClass\", null);\nViewListComponent = __decorate([ __metadata(\"design:paramtypes\", [BusViewService,\n ChangeDetectorRef,\n IntlService,\n CalendarDOMService,\n Renderer2])\n], ViewListComponent);\n\nconst divideByMagnitude = (magnitude) => x => Math.floor(x / magnitude);\nconst powerByMagnitude = (magnitude) => x => x * magnitude;\n/**\n * @hidden\n */\nlet ScrollSyncService = class 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.ɵfac = function ScrollSyncService_Factory(t) { return new (t || ScrollSyncService)(ɵngcc0.ɵɵinject(CalendarDOMService), ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nScrollSyncService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ScrollSyncService, factory: function (t) { return ScrollSyncService.ɵfac(t); } });\nScrollSyncService = __decorate([ __metadata(\"design:paramtypes\", [CalendarDOMService, NgZone])\n], ScrollSyncService);\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 * export class AppComponent { }\n * ```\n */\nlet NavigationItemTemplateDirective = class NavigationItemTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nNavigationItemTemplateDirective.ɵfac = function NavigationItemTemplateDirective_Factory(t) { return new (t || NavigationItemTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nNavigationItemTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NavigationItemTemplateDirective, selectors: [[\"\", \"kendoCalendarNavigationItemTemplate\", \"\"]] });\nNavigationItemTemplateDirective = __decorate([ __metadata(\"design:paramtypes\", [TemplateRef])\n], NavigationItemTemplateDirective);\n\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$1 = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/api/CalendarComponent/#toc-min';\nconst MAX_DOC_LINK$1 = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/api/CalendarComponent/#toc-max';\nconst VALUE_DOC_LINK$1 = '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 * export class AppComponent { }\n * ```\n */\nlet CalendarComponent = class CalendarComponent {\n constructor(bus, dom, element, navigator, renderer, cdr, ngZone, injector, scrollSyncService, disabledDatesService, localization, selectionService, 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.localization = localization;\n this.selectionService = selectionService;\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 the Calendar selection mode\n * ([see example]({% slug multiple_selection_calendar %})).\n *\n * The available values are:\n * * `single` (default)\n * * `multiple`\n */\n this.selection = 'single';\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 * Applies to the [`infinite`]({% slug api_dateinputs_calendarcomponent %}#toc-type) Calendar only.\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 enable animation when navigating to previous/next view.\n * Applies to the [`classic`]({% slug api_dateinputs_calendarcomponent %}#toc-type) Calendar only.\n *\n * > This feature uses the [Web Animations API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Animations_API). In order to run the animation in browsers that do not support it, you need the `web-animations-js` polyfill.\n *\n * @default false\n */\n this.animateNavigation = false;\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 navigating in the currently active view\n * ([more information and example]({% slug events_calendar %})).\n */\n this.navigate = new EventEmitter();\n /**\n * Fires when the active view date is changed\n * ([more information and example]({% slug overview_calendar %}#toc-events)).\n * Applies to the [`infinite`]({% slug api_dateinputs_calendarcomponent %}#toc-type) Calendar only.\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.selectedDates = [];\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._type = 'infinite';\n this.domEvents = [];\n this.resolvedPromise = Promise.resolve(null);\n this.destroyed = false;\n validatePackage(packageMetadata);\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 if (this.activeViewDate && !isEqual(this._focusedDate, focusedDate)) {\n const service = this.bus.service(this.activeViewEnum);\n const lastDayInPeriod = service.lastDayOfPeriod(this.activeViewDate);\n const isFocusedDateInRange = service.isInRange(focusedDate, this.activeViewDate, lastDayInPeriod);\n if (!isFocusedDateInRange) {\n this.emitNavigate(focusedDate);\n }\n }\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)\n * instance when in `single` selection mode or an array of valid JavaScript Date instances when in `multiple` selection mode.\n */\n get value() {\n return this._value;\n }\n set value(candidate) {\n this.verifyValue(candidate);\n this._value = Array.isArray(candidate) ?\n candidate.filter(date => isPresent(date)).map(element => cloneDate(element)) :\n cloneDate(candidate);\n const selection = [].concat(candidate).filter(date => isPresent(date)).map(date => cloneDate(date));\n if (!areDatesEqual(selection, this.selectedDates)) {\n const lastSelected = last(selection);\n this.rangePivot = cloneDate(lastSelected);\n this.focusedDate = cloneDate(lastSelected) || this.focusedDate;\n this.selectedDates = selection;\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 * 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 this._disabledDates = value;\n }\n get disabledDates() {\n return this._disabledDates;\n }\n /**\n * Specifies the Calendar type.\n *\n * The possible values are:\n * - `infinite` (default)\n * - `classic`\n *\n */\n set type(type) {\n this.renderer.removeClass(this.element.nativeElement, `k-calendar-${this.type}`);\n this.renderer.addClass(this.element.nativeElement, `k-calendar-${type}`);\n this._type = type;\n }\n get type() {\n return this._type;\n }\n /**\n * @hidden\n *\n * Defines the template for each cell.\n * Takes precedence over nested templates in the KendoCalendar tag.\n */\n set cellTemplateRef(template) {\n this._cellTemplateRef = template;\n }\n get cellTemplateRef() {\n return this._cellTemplateRef || this.cellTemplate;\n }\n /**\n * @hidden\n *\n * Defines the template for each month cell.\n * Takes precedence over nested templates in the KendoCalendar tag.\n */\n set monthCellTemplateRef(template) {\n this._monthCellTemplateRef = template;\n }\n get monthCellTemplateRef() {\n return this._monthCellTemplateRef || this.monthCellTemplate;\n }\n /**\n * @hidden\n *\n * Defines the template for each year cell.\n * Takes precedence over nested templates in the KendoCalendar tag.\n */\n set yearCellTemplateRef(template) {\n this._yearCellTemplateRef = template;\n }\n get yearCellTemplateRef() {\n return this._yearCellTemplateRef || this.yearCellTemplate;\n }\n /**\n * @hidden\n *\n * Defines the template for each decade cell.\n * Takes precedence over nested templates in the KendoCalendar tag.\n */\n set decadeCellTemplateRef(template) {\n this._decadeCellTemplateRef = template;\n }\n get decadeCellTemplateRef() {\n return this._decadeCellTemplateRef || this.decadeCellTemplate;\n }\n /**\n * @hidden\n *\n * Defines the template for each century cell.\n * Takes precedence over nested templates in the KendoCalendar tag.\n */\n set centuryCellTemplateRef(template) {\n this._centuryCellTemplateRef = template;\n }\n get centuryCellTemplateRef() {\n return this._centuryCellTemplateRef || this.centuryCellTemplate;\n }\n /**\n * @hidden\n *\n * Defines the template for the week cell.\n * Takes precedence over nested templates in the KendoCalendar tag.\n */\n set weekNumberTemplateRef(template) {\n this._weekNumberTemplateRef = template;\n }\n get weekNumberTemplateRef() {\n return this._weekNumberTemplateRef || this.weekNumberTemplate;\n }\n /**\n * @hidden\n *\n * Defines the template for the header title.\n * Takes precedence over nested templates in the KendoCalendar tag.\n */\n set headerTitleTemplateRef(template) {\n this._headerTitleTemplateRef = template;\n }\n get headerTitleTemplateRef() {\n return this._headerTitleTemplateRef || this.headerTitleTemplate;\n }\n /**\n * @hidden\n *\n * Defines the template for the navigation item.\n * Takes precedence over nested templates in the KendoCalendar tag.\n */\n set navigationItemTemplateRef(template) {\n this._navigationItemTemplateRef = template;\n }\n get navigationItemTemplateRef() {\n return this._navigationItemTemplateRef || this.navigationItemTemplate;\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 calendarTabIndex() {\n // in Classic mode, the inner MultiViewCalendar is the focusable element\n return this.disabled || this.type === 'classic' ? undefined : this.tabIndex;\n }\n get ariaDisabled() {\n // in Classic mode, the inner MultiViewCalendar should handle the disabled class and aria attr\n return this.type === 'classic' ? undefined : this.disabled;\n }\n ngOnInit() {\n this.dom.calculateHeights(this.element.nativeElement);\n this.scrollSyncService.configure(this.activeViewEnum);\n this.localizationChangeSubscription = this.localization.changes.subscribe(() => this.cdr.markForCheck());\n this.viewChangeSubscription = this.bus.viewChanged.subscribe(({ view }) => this.handleActiveViewChange(CalendarViewEnum[view]));\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 if (hasExistingValue(changes, 'focusedDate')) {\n const focusedDate = changes.focusedDate.currentValue;\n this.focusedDate = dateInRange(focusedDate, this.min, this.max);\n }\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.domEvents.forEach(unbindCallback => unbindCallback());\n if (this.pickerService) {\n this.pickerService.calendar = null;\n }\n if (this.viewChangeSubscription) {\n this.viewChangeSubscription.unsubscribe();\n }\n if (this.pageChangeSubscription) {\n this.pageChangeSubscription.unsubscribe();\n }\n if (this.localizationChangeSubscription) {\n this.localizationChangeSubscription.unsubscribe();\n }\n this.destroyed = true;\n }\n /**\n * @hidden\n */\n onResize() {\n this.focusedDate = new Date(this.focusedDate);\n this.cdr.detectChanges();\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 * export class AppComponent { }\n * ```\n */\n focus() {\n const focusTarget = this.type === 'infinite' ?\n this.element && this.element.nativeElement :\n this.multiViewCalendar;\n if (isPresent(focusTarget)) {\n focusTarget.focus();\n }\n }\n /**\n * Blurs the Calendar component.\n */\n blur() {\n const blurTarget = this.type === 'infinite' ?\n this.element && this.element.nativeElement :\n this.multiViewCalendar;\n if (isPresent(blurTarget)) {\n blurTarget.blur();\n }\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 const focusTarget = candidate ? new Date(cloneDate(candidate).setDate(1)) : this.focusedDate;\n this.focusedDate = dateInRange(focusTarget, 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 handleMultiViewCalendarValueChange(date, focusedDate) {\n const selectedDates = Array.isArray(date) ? date : [date];\n this.handleDateChange({ selectedDates, focusedDate });\n }\n /**\n * @hidden\n */\n handleDateChange(args) {\n const selectedDates = Array.isArray(args.selectedDates) ? args.selectedDates : [args.selectedDates];\n const canNavigateDown = this.bus.canMoveDown(this.activeViewEnum);\n const availableDates = selectedDates.filter(date => !this.disabledDatesService.isDateDisabled(date));\n this.focusedDate = args.focusedDate || this.focusedDate;\n if (this.disabled) {\n return;\n }\n if (!canNavigateDown && areDatesEqual(availableDates, this.selectedDates)) {\n this.emitSameDate();\n return;\n }\n if (canNavigateDown) {\n this.bus.moveDown(this.activeViewEnum);\n return;\n }\n if (this.disabledDatesService.isDateDisabled(this.focusedDate)) {\n return;\n }\n this.ngZone.run(() => {\n this.selectedDates = availableDates.map(date => cloneDate(date));\n this.value = this.parseSelectionToValue(availableDates);\n this.onControlChange(this.parseSelectionToValue(availableDates));\n this.valueChange.emit(this.parseSelectionToValue(availableDates));\n this.cdr.markForCheck();\n });\n }\n /**\n * @hidden\n */\n writeValue(candidate) {\n this.verifyValue(candidate);\n this.value = 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.monthCellTemplateRef || this.cellTemplateRef;\n case CalendarViewEnum.year:\n return this.yearCellTemplateRef;\n case CalendarViewEnum.decade:\n return this.decadeCellTemplateRef;\n case CalendarViewEnum.century:\n return this.centuryCellTemplateRef;\n default:\n return null;\n }\n }\n /**\n * @hidden\n */\n handleNavigate(event) {\n this.focusedDate = event.focusedDate;\n this.activeView = event.activeView;\n this.emitNavigate(this.focusedDate);\n }\n /**\n * @hidden\n */\n emitNavigate(focusedDate) {\n const activeView = CalendarViewEnum[this.activeViewEnum];\n this.navigate.emit({ activeView, focusedDate });\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 /**\n * @hidden\n */\n handleActiveDateChange(date) {\n this.activeViewDate = date;\n this.emitEvent(this.activeViewDateChange, date);\n }\n /**\n * @hidden\n */\n handleActiveViewChange(view) {\n this.activeView = view;\n this.emitEvent(this.activeViewChange, view);\n if (this.type === 'infinite') {\n this.scrollSyncService.configure(this.activeViewEnum);\n }\n this.detectChanges(); // requires zone if templates\n }\n handleCellClick({ date, modifiers }) {\n this.performSelection(date, modifiers);\n }\n /**\n * @hidden\n */\n handleWeekNumberClick(dates) {\n if (this.selection === 'single') {\n return;\n }\n this.ngZone.run(() => {\n this.handleDateChange({\n selectedDates: dates,\n focusedDate: last(dates)\n });\n });\n }\n /**\n * @hidden\n */\n handleBlur(args) {\n if (this.element.nativeElement.contains(args.relatedTarget)) {\n return;\n }\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 /**\n * @hidden\n */\n handleFocus() {\n this.isActive = true;\n if (!NgZone.isInAngularZone()) {\n this.detectChanges();\n }\n this.emitFocus();\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-${this.type}`);\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$1} and ${MAX_DOC_LINK$1}.`);\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 (this.selection === 'single' && candidate && !(candidate 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 else if (this.selection === 'multiple' && candidate && Array.isArray(candidate)) {\n const onlyDates = candidate.every(value => value instanceof Date);\n if (!onlyDates) {\n throw new Error(`The 'value' should be an array of valid JavaScript Date instances. Check ${VALUE_DOC_LINK$1} for possible resolution.`);\n }\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.handleComponentClick.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 handleComponentClick() {\n if (!this.isActive) {\n if (this.type === 'infinite' && 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 const headerActive = this.type === 'classic' && this.multiViewCalendar.isHeaderActive;\n if (headerActive) {\n return;\n }\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.performSelection(this.focusedDate, args);\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 // in Classic mode, the inner MultiViewCalendar handles the activedescendant\n if (!isPresent(this.element) || (this.type === 'classic' && !this.element.nativeElement.hasAttribute('aria-activedescendant'))) {\n return;\n }\n if (this.type === 'classic') {\n this.renderer.removeAttribute(this.element.nativeElement, 'aria-activedescendant');\n return;\n }\n const focusedCellId = this.cellUID + this.focusedDate.getTime();\n this.renderer.setAttribute(this.element.nativeElement, 'aria-activedescendant', focusedCellId);\n }\n parseSelectionToValue(selection) {\n selection = selection || [];\n return this.selection === 'single' ? cloneDate(last(selection)) : selection.map(date => cloneDate(date));\n }\n performSelection(date, selectionModifiers) {\n const selection = this.selectionService.performSelection({\n date: date,\n modifiers: selectionModifiers,\n selectionMode: this.selection,\n activeViewEnum: this.activeViewEnum,\n rangePivot: this.rangePivot,\n selectedDates: this.selectedDates\n });\n this.rangePivot = selection.rangePivot;\n this.handleDateChange({\n selectedDates: selection.selectedDates,\n focusedDate: date\n });\n }\n};\nCalendarComponent.ɵfac = function CalendarComponent_Factory(t) { return new (t || CalendarComponent)(ɵngcc0.ɵɵdirectiveInject(BusViewService), ɵngcc0.ɵɵdirectiveInject(CalendarDOMService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(NavigationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Injector), ɵngcc0.ɵɵdirectiveInject(ScrollSyncService), ɵngcc0.ɵɵdirectiveInject(DisabledDatesService), ɵngcc0.ɵɵdirectiveInject(ɵngcc3.LocalizationService), ɵngcc0.ɵɵdirectiveInject(SelectionService), ɵngcc0.ɵɵdirectiveInject(PickerService, 8)); };\nCalendarComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CalendarComponent, selectors: [[\"kendo-calendar\"]], contentQueries: function CalendarComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, CellTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, MonthCellTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, YearCellTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, DecadeCellTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, CenturyCellTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, WeekNumberCellTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, HeaderTitleTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NavigationItemTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.cellTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.monthCellTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.yearCellTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.decadeCellTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.centuryCellTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.weekNumberTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.headerTitleTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.navigationItemTemplate = _t.first);\n } }, viewQuery: function CalendarComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(NavigationComponent, 5);\n ɵngcc0.ɵɵviewQuery(ViewListComponent, 5);\n ɵngcc0.ɵɵviewQuery(MultiViewCalendarComponent, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.navigationView = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.monthView = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.multiViewCalendar = _t.first);\n } }, hostVars: 7, hostBindings: function CalendarComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"id\", ctx.widgetId)(\"tabindex\", ctx.calendarTabIndex)(\"aria-disabled\", ctx.ariaDisabled);\n ɵngcc0.ɵɵclassProp(\"k-week-number\", ctx.weekNumber)(\"k-disabled\", ctx.ariaDisabled);\n } }, inputs: { id: \"id\", rangeValidation: \"rangeValidation\", selection: \"selection\", disabled: \"disabled\", tabindex: \"tabindex\", navigation: \"navigation\", activeView: \"activeView\", bottomView: \"bottomView\", topView: \"topView\", animateNavigation: \"animateNavigation\", weekNumber: \"weekNumber\", focusedDate: \"focusedDate\", min: \"min\", max: \"max\", value: \"value\", tabIndex: \"tabIndex\", disabledDates: \"disabledDates\", type: \"type\", cellTemplateRef: [\"cellTemplate\", \"cellTemplateRef\"], monthCellTemplateRef: [\"monthCellTemplate\", \"monthCellTemplateRef\"], yearCellTemplateRef: [\"yearCellTemplate\", \"yearCellTemplateRef\"], decadeCellTemplateRef: [\"decadeCellTemplate\", \"decadeCellTemplateRef\"], centuryCellTemplateRef: [\"centuryCellTemplate\", \"centuryCellTemplateRef\"], weekNumberTemplateRef: [\"weekNumberTemplate\", \"weekNumberTemplateRef\"], headerTitleTemplateRef: [\"headerTitleTemplate\", \"headerTitleTemplateRef\"], navigationItemTemplateRef: [\"navigationItemTemplate\", \"navigationItemTemplateRef\"] }, outputs: { activeViewChange: \"activeViewChange\", navigate: \"navigate\", activeViewDateChange: \"activeViewDateChange\", valueChange: \"valueChange\" }, exportAs: [\"kendo-calendar\"], features: [ɵngcc0.ɵɵProvidersFeature([\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 SelectionService\n ]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 3, vars: 2, consts: function () { let i18n_13; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the today button in the calendar header\n * @meaning kendo.calendar.today\n */\n const MSG_EXTERNAL_4715594042078324085$$DIST_FESM2015_INDEX_JS_14 = goog.getMsg(\"Today\");\n i18n_13 = MSG_EXTERNAL_4715594042078324085$$DIST_FESM2015_INDEX_JS_14;\n }\n else {\n i18n_13 = $localize `:kendo.calendar.today|The label for the today button in the calendar header␟7a8b7961a5c754397897f39a824bdec621719040␟4715594042078324085:Today`;\n } let i18n_15; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the previous button in the Classic calendar\n * @meaning kendo.calendar.prevButtonTitle\n */\n const MSG_EXTERNAL_9114031309296786030$$DIST_FESM2015_INDEX_JS_16 = goog.getMsg(\"Navigate to previous view\");\n i18n_15 = MSG_EXTERNAL_9114031309296786030$$DIST_FESM2015_INDEX_JS_16;\n }\n else {\n i18n_15 = $localize `:kendo.calendar.prevButtonTitle|The title of the previous button in the Classic calendar␟031715cd6a995d5dd1f62365cfe1b9e6226ca185␟9114031309296786030:Navigate to previous view`;\n } let i18n_17; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the next button in the Classic calendar\n * @meaning kendo.calendar.nextButtonTitle\n */\n const MSG_EXTERNAL_7248948899360601102$$DIST_FESM2015_INDEX_JS_18 = goog.getMsg(\"Navigate to next view\");\n i18n_17 = MSG_EXTERNAL_7248948899360601102$$DIST_FESM2015_INDEX_JS_18;\n }\n else {\n i18n_17 = $localize `:kendo.calendar.nextButtonTitle|The title of the next button in the Classic calendar␟cd8c0952c72306cccf0973c8fd1957ef9da1f569␟7248948899360601102:Navigate to next view`;\n } return [[\"kendoCalendarLocalizedMessages\", \"\", \"today\", i18n_13, \"prevButtonTitle\", i18n_15, \"nextButtonTitle\", i18n_17], [4, \"ngIf\"], [3, \"activeView\", \"focusedDate\", \"min\", \"max\", \"templateRef\", \"valueChange\", \"pageChange\", 4, \"ngIf\"], [3, \"activeView\", \"isActive\", \"cellTemplateRef\", \"headerTitleTemplateRef\", \"weekNumberTemplateRef\", \"cellUID\", \"min\", \"max\", \"focusedDate\", \"weekNumber\", \"selectedDates\", \"todayButtonClick\", \"cellClick\", \"weekNumberCellClick\", \"activeDateChange\", \"pageChange\"], [3, \"resize\"], [3, \"activeView\", \"focusedDate\", \"min\", \"max\", \"templateRef\", \"valueChange\", \"pageChange\"], [3, \"views\", \"min\", \"max\", \"isActive\", \"activeView\", \"bottomView\", \"topView\", \"weekNumber\", \"animateNavigation\", \"cellTemplate\", \"monthCellTemplate\", \"yearCellTemplate\", \"decadeCellTemplate\", \"centuryCellTemplate\", \"headerTitleTemplate\", \"weekNumberTemplate\", \"focusedDate\", \"selection\", \"value\", \"disabledDates\", \"activeViewChange\", \"navigate\", \"valueChange\", \"focus\", \"blur\"], [\"multiviewcalendar\", \"\"], [3, \"today\", \"prevButtonTitle\", \"nextButtonTitle\"]]; }, template: function CalendarComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 0);\n ɵngcc0.ɵɵtemplate(1, CalendarComponent_ng_container_1_Template, 4, 12, \"ng-container\", 1);\n ɵngcc0.ɵɵtemplate(2, CalendarComponent_ng_container_2_Template, 4, 23, \"ng-container\", 1);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.type === \"infinite\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.type === \"classic\");\n } }, directives: function () { return [CalendarLocalizedMessagesDirective, ɵngcc2.NgIf, NavigationComponent, ViewListComponent, ɵngcc4.ResizeSensorComponent, MultiViewCalendarComponent, MultiViewCalendarCustomMessagesComponent]; }, encapsulation: 2, changeDetection: 0 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CalendarComponent.prototype, \"id\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date),\n __metadata(\"design:paramtypes\", [Date])\n], CalendarComponent.prototype, \"focusedDate\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date),\n __metadata(\"design:paramtypes\", [Date])\n], CalendarComponent.prototype, \"min\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date),\n __metadata(\"design:paramtypes\", [Date])\n], CalendarComponent.prototype, \"max\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], CalendarComponent.prototype, \"rangeValidation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CalendarComponent.prototype, \"selection\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], CalendarComponent.prototype, \"value\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], CalendarComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], CalendarComponent.prototype, \"tabindex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], CalendarComponent.prototype, \"tabIndex\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], CalendarComponent.prototype, \"disabledDates\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], CalendarComponent.prototype, \"navigation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CalendarComponent.prototype, \"activeView\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CalendarComponent.prototype, \"bottomView\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CalendarComponent.prototype, \"topView\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], CalendarComponent.prototype, \"type\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], CalendarComponent.prototype, \"animateNavigation\", void 0);\n__decorate([\n Input(),\n HostBinding('class.k-week-number'),\n __metadata(\"design:type\", Boolean)\n], CalendarComponent.prototype, \"weekNumber\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], CalendarComponent.prototype, \"activeViewChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], CalendarComponent.prototype, \"navigate\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], CalendarComponent.prototype, \"activeViewDateChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], CalendarComponent.prototype, \"valueChange\", void 0);\n__decorate([\n ContentChild(CellTemplateDirective, { static: false }),\n __metadata(\"design:type\", CellTemplateDirective)\n], CalendarComponent.prototype, \"cellTemplate\", void 0);\n__decorate([\n Input('cellTemplate'),\n __metadata(\"design:type\", CellTemplateDirective),\n __metadata(\"design:paramtypes\", [CellTemplateDirective])\n], CalendarComponent.prototype, \"cellTemplateRef\", null);\n__decorate([\n ContentChild(MonthCellTemplateDirective, { static: false }),\n __metadata(\"design:type\", MonthCellTemplateDirective)\n], CalendarComponent.prototype, \"monthCellTemplate\", void 0);\n__decorate([\n Input('monthCellTemplate'),\n __metadata(\"design:type\", MonthCellTemplateDirective),\n __metadata(\"design:paramtypes\", [MonthCellTemplateDirective])\n], CalendarComponent.prototype, \"monthCellTemplateRef\", null);\n__decorate([\n ContentChild(YearCellTemplateDirective, { static: false }),\n __metadata(\"design:type\", YearCellTemplateDirective)\n], CalendarComponent.prototype, \"yearCellTemplate\", void 0);\n__decorate([\n Input('yearCellTemplate'),\n __metadata(\"design:type\", YearCellTemplateDirective),\n __metadata(\"design:paramtypes\", [YearCellTemplateDirective])\n], CalendarComponent.prototype, \"yearCellTemplateRef\", null);\n__decorate([\n ContentChild(DecadeCellTemplateDirective, { static: false }),\n __metadata(\"design:type\", DecadeCellTemplateDirective)\n], CalendarComponent.prototype, \"decadeCellTemplate\", void 0);\n__decorate([\n Input('decadeCellTemplate'),\n __metadata(\"design:type\", DecadeCellTemplateDirective),\n __metadata(\"design:paramtypes\", [DecadeCellTemplateDirective])\n], CalendarComponent.prototype, \"decadeCellTemplateRef\", null);\n__decorate([\n ContentChild(CenturyCellTemplateDirective, { static: false }),\n __metadata(\"design:type\", CenturyCellTemplateDirective)\n], CalendarComponent.prototype, \"centuryCellTemplate\", void 0);\n__decorate([\n Input('centuryCellTemplate'),\n __metadata(\"design:type\", CenturyCellTemplateDirective),\n __metadata(\"design:paramtypes\", [CenturyCellTemplateDirective])\n], CalendarComponent.prototype, \"centuryCellTemplateRef\", null);\n__decorate([\n ContentChild(WeekNumberCellTemplateDirective, { static: false }),\n __metadata(\"design:type\", WeekNumberCellTemplateDirective)\n], CalendarComponent.prototype, \"weekNumberTemplate\", void 0);\n__decorate([\n Input('weekNumberTemplate'),\n __metadata(\"design:type\", WeekNumberCellTemplateDirective),\n __metadata(\"design:paramtypes\", [WeekNumberCellTemplateDirective])\n], CalendarComponent.prototype, \"weekNumberTemplateRef\", null);\n__decorate([\n ContentChild(HeaderTitleTemplateDirective, { static: false }),\n __metadata(\"design:type\", HeaderTitleTemplateDirective)\n], CalendarComponent.prototype, \"headerTitleTemplate\", void 0);\n__decorate([\n Input('headerTitleTemplate'),\n __metadata(\"design:type\", HeaderTitleTemplateDirective),\n __metadata(\"design:paramtypes\", [HeaderTitleTemplateDirective])\n], CalendarComponent.prototype, \"headerTitleTemplateRef\", null);\n__decorate([\n ContentChild(NavigationItemTemplateDirective, { static: false }),\n __metadata(\"design:type\", NavigationItemTemplateDirective)\n], CalendarComponent.prototype, \"navigationItemTemplate\", void 0);\n__decorate([\n Input('navigationItemTemplate'),\n __metadata(\"design:type\", NavigationItemTemplateDirective),\n __metadata(\"design:paramtypes\", [NavigationItemTemplateDirective])\n], CalendarComponent.prototype, \"navigationItemTemplateRef\", null);\n__decorate([\n ViewChild(NavigationComponent, { static: false }),\n __metadata(\"design:type\", NavigationComponent)\n], CalendarComponent.prototype, \"navigationView\", void 0);\n__decorate([\n ViewChild(ViewListComponent, { static: false }),\n __metadata(\"design:type\", ViewListComponent)\n], CalendarComponent.prototype, \"monthView\", void 0);\n__decorate([\n ViewChild(MultiViewCalendarComponent, { static: false }),\n __metadata(\"design:type\", MultiViewCalendarComponent)\n], CalendarComponent.prototype, \"multiViewCalendar\", void 0);\n__decorate([\n HostBinding('attr.id'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], CalendarComponent.prototype, \"widgetId\", null);\n__decorate([\n HostBinding('attr.tabindex'),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [])\n], CalendarComponent.prototype, \"calendarTabIndex\", null);\n__decorate([\n HostBinding('attr.aria-disabled'),\n HostBinding('class.k-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], CalendarComponent.prototype, \"ariaDisabled\", null);\nCalendarComponent = __decorate([ __param(12, Optional()),\n __metadata(\"design:paramtypes\", [BusViewService,\n CalendarDOMService,\n ElementRef,\n NavigationService,\n Renderer2,\n ChangeDetectorRef,\n NgZone,\n Injector,\n ScrollSyncService,\n DisabledDatesService,\n LocalizationService,\n SelectionService,\n PickerService])\n], CalendarComponent);\n\n/**\n * @hidden\n */\nconst incompleteDateValidator = () => {\n return (control, incomplete) => {\n if (!isPresent(control.value) && incomplete) {\n return { incompleteDate: true };\n }\n else {\n return null;\n }\n };\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\nvar DateInputComponent_1;\nconst MIN_DOC_LINK$2 = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/api/DateInputComponent/#toc-min';\nconst MAX_DOC_LINK$2 = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/api/DateInputComponent/#toc-max';\nconst VALUE_DOC_LINK$2 = '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 TWO_DIGIT_YEAR_MAX = 68;\nconst PREVIOUS_CENTURY_BASE = 1900;\nconst CURRENT_CENTURY_BASE = 2000;\nconst DEFAULT_FORMAT = 'd';\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, twoDigitYearMax = TWO_DIGIT_YEAR_MAX) {\n this.intl = intl;\n this.formatPlaceholder = formatPlaceholder;\n this.format = format;\n this.twoDigitYearMax = twoDigitYearMax;\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 = \"adHhmMsSEy\";\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 \"S\": \"S\",\n \"y\": \"y\"\n };\n validatePackage(packageMetadata);\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 shouldNormalizeCentury() {\n return this.intl.splitDateFormat(this.format).some(part => part.pattern === 'yy');\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(format) {\n return this.merge(this.intl.formatDate(this.value, format), this.dateFormatString(this.value, 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 case \"S\": return this.milliseconds;\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 case \"S\":\n this.milliseconds = 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 \"S\":\n newValue.setMilliseconds(newValue.getMilliseconds() + offset);\n break;\n case \"a\":\n newValue.setHours(newValue.getHours() + (12 * offset));\n break;\n default: break;\n }\n if (this.shouldNormalizeCentury()) {\n newValue = this.normalizeCentury(newValue);\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 if (symbol === \"S\" && resetSegmentValue) {\n // The \"S\" parser in intl parses \"1\" as 100ms in order to handle ISOString dates correctly, so to get 1ms, we need to pass \"001\"\n const padding = msPaddingFromFormat(baseFormat);\n middle = padding + middle;\n }\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 if (this.shouldNormalizeCentury()) {\n parsedDate = this.normalizeCentury(parsedDate);\n }\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 normalizeCentury(date) {\n if (!isPresent(date)) {\n return date;\n }\n const twoDigitYear = cropTwoDigitYear(date);\n const centuryBase = this.getNormalizedCenturyBase(twoDigitYear);\n const normalizedDate = setYears(date, centuryBase + twoDigitYear);\n return normalizedDate;\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 getNormalizedCenturyBase(twoDigitYear) {\n return twoDigitYear > this.twoDigitYearMax ?\n PREVIOUS_CENTURY_BASE :\n CURRENT_CENTURY_BASE;\n }\n}\n/**\n * Represents the [Kendo UI DateInput component for Angular]({% slug overview_dateinput %}#toc-basic-usage).\n */\nlet DateInputComponent = DateInputComponent_1 = class DateInputComponent {\n constructor(cdr, intl, renderer, wrapper, ngZone, injector, localization, pickerService) {\n this.cdr = cdr;\n this.intl = intl;\n this.renderer = renderer;\n this.wrapper = wrapper;\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 * Format value options:\n * - `string` - Provide a `string` if a single format is going to be used regardless whether the input is focused or blurred.\n * - [`FormatSettings`]({% slug api_dateinputs_formatsettings %}) - To display different formats when the component is focused or blurred, provide a settings object with specified `inputFormat` and `displayFormat` values.\n */\n this.format = DEFAULT_FORMAT;\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 * export class AppComponent { }\n * ```\n */\n this.placeholder = null;\n /**\n * Configures the incremental steps of the DateInput.\n * For more information, refer to the article on\n * [incremental steps]({% slug incrementalsteps_dateinput %}).\n *\n * @example\n * ```ts\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * `\n * })\n * export class AppComponent {\n * public steps = { year: 10, month: 1, day: 5 };\n * }\n * ```\n */\n this.steps = {};\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 * Determines whether the built-in validation for incomplete dates is to be enforced when a form is being validated.\n */\n this.incompleteDateValidation = false;\n /**\n * The maximum year to assume to be from the current century when typing two-digit year value\n * ([see example]({% slug formats_dateinput %}#toc-two-digit-year-format)).\n *\n * The default value is 68, indicating that typing any value less than 69\n * will be assumed to be 20xx, while 69 and larger will be assumed to be 19xx.\n */\n this.twoDigitYearMax = TWO_DIGIT_YEAR_MAX;\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 * @hidden\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 * export 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 * export 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 /**\n * @hidden\n */\n this.isDateIncomplete = false;\n this.currentValue = \"\";\n this.currentFormat = \"\";\n this.backspace = false;\n this.resetSegmentValue = true;\n this.minValidator = noop;\n this.maxValidator = noop;\n this.incompleteValidator = 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._size = 'medium';\n this._rounded = 'medium';\n this._fillMode = 'solid';\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 /**\n * Sets the size of the component.\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (Default)\n * * `'large'`\n * * `null`\n *\n */\n set size(size) {\n this.renderer.removeClass(this.wrapper.nativeElement, getSizeClass('input', this.size));\n if (size) {\n this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', size));\n }\n this._size = size;\n }\n get size() {\n return this._size;\n }\n /**\n * Sets the border radius of the component.\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (Default)\n * * `'large'`\n * * `'full'`\n * * `null`\n *\n */\n set rounded(rounded) {\n this.renderer.removeClass(this.wrapper.nativeElement, getRoundedClass(this.rounded));\n if (rounded) {\n this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(rounded));\n }\n this._rounded = rounded;\n }\n get rounded() {\n return this._rounded;\n }\n /**\n * Sets the fillMode of the component.\n *\n * The possible values are:\n * * `'solid'` (Default)\n * * `'flat'`\n * * `'outline'`\n * * `null`\n *\n */\n set fillMode(fillMode) {\n this.renderer.removeClass(this.wrapper.nativeElement, getFillModeClass('input', this.fillMode));\n if (fillMode) {\n this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', fillMode));\n if (this.spinners && this.spinup && this.spindown) {\n this.setSpinnerFill(this.spinup.nativeElement, fillMode, this.fillMode);\n this.setSpinnerFill(this.spindown.nativeElement, fillMode, this.fillMode);\n }\n }\n this._fillMode = fillMode;\n }\n get fillMode() {\n return this._fillMode;\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.wrapper) {\n return;\n }\n if (!isPresent(this.pickerService)) {\n const element = this.wrapper.nativeElement;\n if (value) {\n this.renderer.addClass(element, 'k-focus');\n }\n else {\n this.renderer.removeClass(element, 'k-focus');\n }\n }\n }\n get inputFormat() {\n if (!this.format) {\n return DEFAULT_FORMAT;\n }\n if (typeof this.format === 'string') {\n return this.format;\n }\n else {\n return this.format.inputFormat;\n }\n }\n get displayFormat() {\n if (!this.format) {\n return DEFAULT_FORMAT;\n }\n if (typeof this.format === 'string') {\n return this.format;\n }\n else {\n return this.format.displayFormat;\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.wrapper.nativeElement));\n }\n /**\n * @hidden\n */\n ngOnChanges(changes) {\n this.verifyRange();\n if (changes.min || changes.max || changes.rangeValidation || changes.incompleteDateValidation) {\n this.minValidator = this.rangeValidation ? minValidator(this.min) : noop;\n this.maxValidator = this.rangeValidation ? maxValidator(this.max) : noop;\n this.incompleteValidator = this.incompleteDateValidation ? incompleteDateValidator() : 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.minValidator(control) || this.maxValidator(control) || this.incompleteValidator(control, this.isDateIncomplete);\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.ngControl = this.injector.get(NgControl, null);\n if (this.wrapper) {\n this.renderer.removeAttribute(this.wrapper.nativeElement, 'tabindex');\n this.ngZone.runOutsideAngular(() => {\n this.bindEvents();\n });\n }\n }\n ngAfterViewInit() {\n this.setComponentClasses();\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 * export 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 let step = (this.steps || {})[this.symbolsMap[symbol]] || 1;\n if (symbol === \"S\" && !this.steps.millisecond) {\n const msDigits = millisecondDigitsInFormat(this.inputFormat);\n step = millisecondStepFor(msDigits);\n }\n this.kendoDate.modifyPart(symbol, offset * step);\n this.putDateInRange();\n this.updateElementValue(this.isActive);\n this.triggerChange();\n this.selectDateSegment(symbol);\n this.updateIncompleteValidationStatus();\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.ngControl)) {\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.inputFormat, value, this.twoDigitYearMax);\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.inputFormat).reduce(reducer, {});\n }\n updateElementValue(isActive) {\n const start = this.caret()[0]; //XXX: get caret position before input is updated\n const format = this.isActive ? this.inputFormat : this.displayFormat;\n const texts = this.kendoDate.getTextAndFormat(format);\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$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 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.inputFormat)\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 let value = this.intl.parseDate(this.inputValue, this.inputFormat) || this.value;\n if (isPresent(value) && this.kendoDate.shouldNormalizeCentury()) {\n value = this.kendoDate.normalizeCentury(value);\n }\n const notify = +value !== +this.value;\n this.writeValue(value);\n if (notify) {\n this.notify();\n }\n }\n bindEvents() {\n const element = this.wrapper.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 /* tslint:disable-next-line:deprecation */\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 this.updateIncompleteValidationStatus();\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 updateIncompleteValidationStatus() {\n const previousValue = this.isDateIncomplete;\n this.isDateIncomplete = this.kendoDate.hasValue() && this.value === null;\n if (previousValue === this.isDateIncomplete || !this.incompleteDateValidation) {\n return;\n }\n if (isPresent(this.ngControl) && !isPresent(this.pickerService)) {\n this.cdr.markForCheck();\n this.ngZone.run(() => this.onValidatorChange());\n }\n else if (isPresent(this.pickerService)) {\n this.pickerService.dateCompletenessChange.emit();\n }\n }\n setSpinnerFill(spinner, fill, oldFill) {\n if (oldFill) {\n this.renderer.removeClass(spinner, `k-button-${oldFill}`);\n this.renderer.removeClass(spinner, `k-button-${oldFill}-base`);\n }\n this.renderer.addClass(spinner, `k-button-${fill}`);\n this.renderer.addClass(spinner, `k-button-${fill}-base`);\n }\n setComponentClasses() {\n if (this.size) {\n this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', this.size));\n }\n if (this.rounded) {\n this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(this.rounded));\n }\n if (this.fillMode) {\n this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', this.fillMode));\n }\n if (this.spinners) {\n this.setSpinnerFill(this.spinup.nativeElement, this.fillMode);\n this.setSpinnerFill(this.spindown.nativeElement, this.fillMode);\n }\n }\n};\nDateInputComponent.ɵfac = function DateInputComponent_Factory(t) { return new (t || DateInputComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.IntlService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Injector), ɵngcc0.ɵɵdirectiveInject(ɵngcc3.LocalizationService), ɵngcc0.ɵɵdirectiveInject(PickerService, 8)); };\nDateInputComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DateInputComponent, selectors: [[\"kendo-dateinput\"]], viewQuery: function DateInputComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c19, 7);\n ɵngcc0.ɵɵviewQuery(_c20, 5);\n ɵngcc0.ɵɵviewQuery(_c21, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.dateInput = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.spinup = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.spindown = _t.first);\n } }, hostVars: 6, hostBindings: function DateInputComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-input\", ctx.wrapperClass)(\"k-dateinput\", ctx.wrapperClass)(\"k-disabled\", ctx.disabledClass);\n } }, inputs: { focusableId: \"focusableId\", disabled: \"disabled\", readonly: \"readonly\", title: \"title\", tabindex: \"tabindex\", role: \"role\", ariaReadOnly: \"ariaReadOnly\", format: \"format\", placeholder: \"placeholder\", steps: \"steps\", rangeValidation: \"rangeValidation\", autoCorrect: \"autoCorrect\", incompleteDateValidation: \"incompleteDateValidation\", twoDigitYearMax: \"twoDigitYearMax\", spinners: \"spinners\", isPopupOpen: \"isPopupOpen\", hasPopup: \"hasPopup\", tabIndex: \"tabIndex\", value: \"value\", size: \"size\", rounded: \"rounded\", fillMode: \"fillMode\", formatPlaceholder: \"formatPlaceholder\", max: \"max\", min: \"min\" }, outputs: { valueChange: \"valueChange\", valueUpdate: \"valueUpdate\", onFocus: \"focus\", onBlur: \"blur\" }, exportAs: [\"kendo-dateinput\"], features: [ɵngcc0.ɵɵProvidersFeature([\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateInputComponent_1), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => DateInputComponent_1), multi: true },\n { provide: L10N_PREFIX, useValue: 'kendo.dateinput' },\n { provide: KendoInput, useExisting: forwardRef(() => DateInputComponent_1) },\n LocalizationService\n ]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 4, vars: 21, consts: function () { let i18n_22; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the **Increment** button in the DateInput\n * @meaning kendo.dateinput.increment\n */\n const MSG_EXTERNAL_589112377451589685$$DIST_FESM2015_INDEX_JS_23 = goog.getMsg(\"Increase value\");\n i18n_22 = MSG_EXTERNAL_589112377451589685$$DIST_FESM2015_INDEX_JS_23;\n }\n else {\n i18n_22 = $localize `:kendo.dateinput.increment|The label for the **Increment** button in the DateInput␟a55944f9de69e7cc86b91200fe96f980a947d704␟589112377451589685:Increase value`;\n } let i18n_24; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the **Decrement** button in the DateInput\n * @meaning kendo.dateinput.decrement\n */\n const MSG_EXTERNAL_6980524091606682769$$DIST_FESM2015_INDEX_JS_25 = goog.getMsg(\"Decrease value\");\n i18n_24 = MSG_EXTERNAL_6980524091606682769$$DIST_FESM2015_INDEX_JS_25;\n }\n else {\n i18n_24 = $localize `:kendo.dateinput.decrement|The label for the **Decrement** button in the DateInput␟0eded761107e6dad120997006a7f915bade9b15c␟6980524091606682769:Decrease value`;\n } return [[\"kendoDateInputLocalizedMessages\", \"\", \"increment\", i18n_22, \"decrement\", i18n_24], [\"autocomplete\", \"off\", \"autocorrect\", \"off\", \"autocapitalize\", \"off\", \"spellcheck\", \"false\", 1, \"k-input-inner\", 3, \"id\", \"title\", \"tabindex\", \"disabled\", \"readonly\", \"placeholder\", \"kendoEventsOutsideAngular\", \"scope\"], [\"dateInput\", \"\"], [\"class\", \"k-input-spinner k-spin-button\", 3, \"mousedown\", 4, \"ngIf\"], [1, \"k-input-spinner\", \"k-spin-button\", 3, \"mousedown\"], [\"tabindex\", \"-1\", 1, \"k-spinner-increase\", \"k-button\", \"k-icon-button\", 3, \"title\", \"mousedown\", \"mouseleave\", \"click\"], [\"spinup\", \"\"], [1, \"k-button-icon\", \"k-icon\", \"k-i-arrow-n\"], [\"tabindex\", \"-1\", 1, \"k-spinner-decrease\", \"k-button\", \"k-icon-button\", 3, \"title\", \"click\", \"mousedown\", \"mouseleave\"], [\"spindown\", \"\"], [1, \"k-button-icon\", \"k-icon\", \"k-i-arrow-s\"]]; }, template: function DateInputComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 0);\n ɵngcc0.ɵɵelement(1, \"input\", 1, 2);\n ɵngcc0.ɵɵtemplate(3, DateInputComponent_span_3_Template, 7, 8, \"span\", 3);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"id\", ctx.focusableId)(\"title\", ctx.title)(\"tabindex\", ctx.tabindex)(\"disabled\", ctx.disabled)(\"readonly\", ctx.readonly)(\"placeholder\", ctx.placeholder)(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction7(13, _c26, ctx.handleClick, ctx.handleFocus, ctx.handleMousedown, ctx.handleMousedown, ctx.handleDragAndDrop, ctx.handleDragAndDrop, ctx.handleBlur))(\"scope\", ctx);\n ɵngcc0.ɵɵattribute(\"role\", ctx.role)(\"aria-readonly\", ctx.ariaReadOnly)(\"aria-expanded\", ctx.isPopupOpen)(\"aria-haspopup\", ctx.hasPopup);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.spinners);\n } }, directives: function () { return [DateInputLocalizedMessagesDirective, ɵngcc4.EventsOutsideAngularDirective, ɵngcc2.NgIf]; }, encapsulation: 2, changeDetection: 0 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateInputComponent.prototype, \"focusableId\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DateInputComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DateInputComponent.prototype, \"readonly\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateInputComponent.prototype, \"title\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], DateInputComponent.prototype, \"tabindex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateInputComponent.prototype, \"role\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DateInputComponent.prototype, \"ariaReadOnly\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], DateInputComponent.prototype, \"tabIndex\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DateInputComponent.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DateInputComponent.prototype, \"formatPlaceholder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateInputComponent.prototype, \"placeholder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DateInputComponent.prototype, \"steps\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], DateInputComponent.prototype, \"max\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], DateInputComponent.prototype, \"min\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DateInputComponent.prototype, \"rangeValidation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DateInputComponent.prototype, \"autoCorrect\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DateInputComponent.prototype, \"incompleteDateValidation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], DateInputComponent.prototype, \"twoDigitYearMax\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date),\n __metadata(\"design:paramtypes\", [Date])\n], DateInputComponent.prototype, \"value\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DateInputComponent.prototype, \"spinners\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DateInputComponent.prototype, \"isPopupOpen\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DateInputComponent.prototype, \"hasPopup\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], DateInputComponent.prototype, \"size\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], DateInputComponent.prototype, \"rounded\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], DateInputComponent.prototype, \"fillMode\", null);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DateInputComponent.prototype, \"valueChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DateInputComponent.prototype, \"valueUpdate\", void 0);\n__decorate([\n Output('focus'),\n __metadata(\"design:type\", EventEmitter)\n], DateInputComponent.prototype, \"onFocus\", void 0);\n__decorate([\n Output('blur'),\n __metadata(\"design:type\", EventEmitter)\n], DateInputComponent.prototype, \"onBlur\", void 0);\n__decorate([\n ViewChild('dateInput', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], DateInputComponent.prototype, \"dateInput\", void 0);\n__decorate([\n HostBinding('class.k-input'),\n HostBinding('class.k-dateinput'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DateInputComponent.prototype, \"wrapperClass\", null);\n__decorate([\n HostBinding('class.k-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DateInputComponent.prototype, \"disabledClass\", null);\n__decorate([\n ViewChild('spinup', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], DateInputComponent.prototype, \"spinup\", void 0);\n__decorate([\n ViewChild('spindown', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], DateInputComponent.prototype, \"spindown\", void 0);\nDateInputComponent = DateInputComponent_1 = __decorate([ __param(7, Optional()),\n __metadata(\"design:paramtypes\", [ChangeDetectorRef,\n IntlService,\n Renderer2,\n ElementRef,\n NgZone,\n Injector,\n LocalizationService,\n PickerService])\n], DateInputComponent);\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 */\nvar DatePickerComponent_1;\nconst MIN_DOC_LINK$3 = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/api/DatePickerComponent/#toc-min';\nconst MAX_DOC_LINK$3 = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/api/DatePickerComponent/#toc-max';\nconst VALUE_DOC_LINK$3 = 'http://www.telerik.com/kendo-angular-ui/components/dateinputs/datepicker/#toc-using-with-json';\nconst DEFAULT_FORMAT$1 = 'd';\nconst TWO_DIGIT_YEAR_MAX$1 = 68;\n/**\n * Represents the [Kendo UI DatePicker component for Angular]({% slug overview_datepicker %}#toc-basic-usage).\n */\nlet DatePickerComponent = DatePickerComponent_1 = class DatePickerComponent {\n constructor(zone, localization, cdr, popupService, wrapper, renderer, injector, pickerService, disabledDatesService, touchEnabled$$1) {\n this.zone = zone;\n this.localization = localization;\n this.cdr = cdr;\n this.popupService = popupService;\n this.wrapper = wrapper;\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 calendar_type_datepicker %}#toc-active-view)).\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 calendar_type_datepicker %}#toc-focused-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 calendar_type_datepicker %}#toc-focused-dates)).\n */\n this.topView = CalendarViewEnum[CalendarViewEnum.century];\n /**\n * Specifies the Calendar type.\n *\n * The possible values are:\n * - `infinite` (default)\n * - `classic`\n *\n */\n this.calendarType = 'infinite';\n /**\n * Determines whether to enable animation when navigating to previous/next Calendar view.\n * Applies to the [`classic`]({% slug api_dateinputs_datepickercomponent %}#toc-calendartype) Calendar only.\n *\n * > This feature uses the [Web Animations API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Animations_API). In order to run the animation in browsers that do not support it, you need the `web-animations-js` polyfill.\n *\n * @default false\n */\n this.animateCalendarNavigation = false;\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 * By default, the `min` value is `1900-1-1`.\n */\n this.min = cloneDate(MIN_DATE);\n /**\n * Specifies the biggest valid date\n * ([see example]({% slug dateranges_datepicker %})).\n * By default, the `max` value is `2099-12-31`.\n */\n this.max = cloneDate(MAX_DATE);\n /**\n * Determines whether the built-in validation for incomplete dates is to be enforced when a form is being validated.\n */\n this.incompleteDateValidation = false;\n /**\n * Specifies the focused date of the Calendar component\n * ([see example]({% slug calendar_type_datepicker %}#toc-focused-dates)).\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 * Format value options:\n * - `string` - Provide a `string` if a single format is going to be used regardless whether the input is focused or blurred.\n * - [`FormatSettings`]({% slug api_dateinputs_formatsettings %}) - To display different formats when the component is focused or blurred, provide a settings object with specified `inputFormat` and `displayFormat` values.\n */\n this.format = DEFAULT_FORMAT$1;\n /**\n * The maximum year to assume to be from the current century when typing two-digit year value\n * ([see example]({% slug formats_datepicker %}#toc-two-digit-year-format)).\n *\n * The default value is 68, indicating that typing any value less than 69\n * will be assumed to be 20xx, while 69 and larger will be assumed to be 19xx.\n */\n this.twoDigitYearMax = TWO_DIGIT_YEAR_MAX$1;\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 * export 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 calendar_type_datepicker %}#toc-week-number-column)).\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 * export 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 * export 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.incompleteValidator = noop;\n this.resolvedPromise = Promise.resolve(null);\n this.domEvents = [];\n this._size = 'medium';\n this._rounded = 'medium';\n this._fillMode = 'solid';\n validatePackage(packageMetadata);\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 this.pickerSubscriptions.add(this.pickerService.dateCompletenessChange.subscribe(this.handleDateCompletenessChange.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 * - `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 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 * Sets the size of the component.\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (Default)\n * * `'large'`\n * * `null`\n *\n */\n set size(size) {\n this.renderer.removeClass(this.wrapper.nativeElement, getSizeClass('input', this.size));\n this.renderer.removeClass(this.toggleButton.nativeElement, getSizeClass('input', this.size));\n if (size) {\n this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', size));\n this.renderer.addClass(this.toggleButton.nativeElement, getSizeClass('input', size));\n }\n this._size = size;\n }\n get size() {\n return this._size;\n }\n /**\n * Sets the border radius of the component.\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (Default)\n * * `'large'`\n * * `'full'`\n * * `null`\n *\n */\n set rounded(rounded) {\n this.renderer.removeClass(this.wrapper.nativeElement, getRoundedClass(this.rounded));\n if (rounded) {\n this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(rounded));\n }\n this._rounded = rounded;\n }\n get rounded() {\n return this._rounded;\n }\n /**\n * Sets the fillMode of the component.\n *\n * The possible values are:\n * * `'solid'` (Default)\n * * `'flat'`\n * * `'outline'`\n * * `null`\n *\n */\n set fillMode(fillMode) {\n this.renderer.removeClass(this.wrapper.nativeElement, getFillModeClass('input', this.fillMode));\n this.renderer.removeClass(this.toggleButton.nativeElement, getFillModeClass('button', this.fillMode));\n this.renderer.removeClass(this.toggleButton.nativeElement, `k-button-${this.fillMode}-base`);\n if (fillMode) {\n this.renderer.addClass(this.toggleButton.nativeElement, getFillModeClass('button', fillMode));\n this.renderer.addClass(this.toggleButton.nativeElement, `k-button-${fillMode}-base`);\n this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', fillMode));\n }\n this._fillMode = fillMode;\n }\n get fillMode() {\n return this._fillMode;\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-focus');\n }\n else {\n this.renderer.removeClass(element, 'k-focus');\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.wrapper) {\n this.renderer.removeAttribute(this.wrapper.nativeElement, 'tabindex');\n this.zone.runOutsideAngular(() => {\n this.bindEvents();\n });\n }\n }\n ngAfterViewInit() {\n this.setComponentClasses();\n }\n /**\n * @hidden\n */\n ngOnChanges(changes) {\n this.verifySettings();\n if (changes.min || changes.max || changes.rangeValidation || changes.disabledDatesValidation || changes.disabledDates || changes.incompleteDateValidation) {\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.incompleteValidator = this.incompleteDateValidation ? incompleteDateValidator() : 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) || this.incompleteValidator(control, this.input && this.input.isDateIncomplete);\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 * export 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, shiftKey, keyCode, target } = 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.Enter && target.classList.contains('k-calendar')) {\n e.preventDefault(); // Don't submit form on date selection in popup\n }\n if (keyCode === Keys.Tab && this.show && this.calendar.isActive && isTabExitingCalendar(this.calendarType, target, shiftKey)) {\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 if (show === this._show) {\n return;\n }\n this._show = show;\n if (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 else {\n this.popupRef.close();\n this.popupRef = null;\n this.subscription.unsubscribe();\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$3} and ${MAX_DOC_LINK$3}.`);\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 bindEvents() {\n const element = this.wrapper.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 handleDateCompletenessChange() {\n this.cdr.markForCheck();\n this.zone.run(() => this.onValidatorChange());\n }\n setComponentClasses() {\n if (this.size) {\n this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', this.size));\n this.renderer.addClass(this.toggleButton.nativeElement, getSizeClass('button', this.size));\n }\n if (this.rounded) {\n this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(this.rounded));\n }\n if (this.fillMode) {\n this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', this.fillMode));\n this.renderer.addClass(this.toggleButton.nativeElement, getFillModeClass('button', this.fillMode));\n this.renderer.addClass(this.toggleButton.nativeElement, `k-button-${this.fillMode}-base`);\n }\n }\n};\nDatePickerComponent.ɵfac = function DatePickerComponent_Factory(t) { return new (t || DatePickerComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc3.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc5.PopupService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Injector), ɵngcc0.ɵɵdirectiveInject(PickerService), ɵngcc0.ɵɵdirectiveInject(DisabledDatesService), ɵngcc0.ɵɵdirectiveInject(TOUCH_ENABLED, 8)); };\nDatePickerComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DatePickerComponent, selectors: [[\"kendo-datepicker\"]], contentQueries: function DatePickerComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, CellTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, MonthCellTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, YearCellTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, DecadeCellTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, CenturyCellTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, WeekNumberCellTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, HeaderTitleTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NavigationItemTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.cellTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.monthCellTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.yearCellTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.decadeCellTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.centuryCellTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.weekNumberTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.headerTitleTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.navigationItemTemplate = _t.first);\n } }, viewQuery: function DatePickerComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c27, 7, ViewContainerRef);\n ɵngcc0.ɵɵviewQuery(_c28, 7);\n ɵngcc0.ɵɵviewQuery(_c29, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.container = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.popupTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.toggleButton = _t.first);\n } }, hostVars: 6, hostBindings: function DatePickerComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-datepicker\", ctx.wrapperClasses)(\"k-input\", ctx.wrapperClasses)(\"k-disabled\", ctx.disabledClass);\n } }, inputs: { focusableId: \"focusableId\", activeView: \"activeView\", bottomView: \"bottomView\", topView: \"topView\", calendarType: \"calendarType\", animateCalendarNavigation: \"animateCalendarNavigation\", disabled: \"disabled\", readonly: \"readonly\", readOnlyInput: \"readOnlyInput\", navigation: \"navigation\", min: \"min\", max: \"max\", incompleteDateValidation: \"incompleteDateValidation\", focusedDate: \"focusedDate\", format: \"format\", twoDigitYearMax: \"twoDigitYearMax\", placeholder: \"placeholder\", tabindex: \"tabindex\", title: \"title\", rangeValidation: \"rangeValidation\", disabledDatesValidation: \"disabledDatesValidation\", weekNumber: \"weekNumber\", cellTemplateRef: [\"cellTemplate\", \"cellTemplateRef\"], monthCellTemplateRef: [\"monthCellTemplate\", \"monthCellTemplateRef\"], yearCellTemplateRef: [\"yearCellTemplate\", \"yearCellTemplateRef\"], decadeCellTemplateRef: [\"decadeCellTemplate\", \"decadeCellTemplateRef\"], centuryCellTemplateRef: [\"centuryCellTemplate\", \"centuryCellTemplateRef\"], weekNumberTemplateRef: [\"weekNumberTemplate\", \"weekNumberTemplateRef\"], headerTitleTemplateRef: [\"headerTitleTemplate\", \"headerTitleTemplateRef\"], navigationItemTemplateRef: [\"navigationItemTemplate\", \"navigationItemTemplateRef\"], popupSettings: \"popupSettings\", value: \"value\", tabIndex: \"tabIndex\", disabledDates: \"disabledDates\", size: \"size\", rounded: \"rounded\", fillMode: \"fillMode\", formatPlaceholder: \"formatPlaceholder\" }, outputs: { valueChange: \"valueChange\", onFocus: \"focus\", onBlur: \"blur\", open: \"open\", close: \"close\" }, exportAs: [\"kendo-datepicker\"], features: [ɵngcc0.ɵɵProvidersFeature([\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DatePickerComponent_1), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => DatePickerComponent_1), multi: true },\n { provide: KendoInput, useExisting: forwardRef(() => DatePickerComponent_1) },\n LocalizationService,\n PickerService,\n DisabledDatesService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.datepicker'\n }\n ]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 10, vars: 28, consts: function () { let i18n_30; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the today button in the calendar header\n * @meaning kendo.datepicker.today\n */\n const MSG_EXTERNAL_5799873230514803381$$DIST_FESM2015_INDEX_JS_31 = goog.getMsg(\"Today\");\n i18n_30 = MSG_EXTERNAL_5799873230514803381$$DIST_FESM2015_INDEX_JS_31;\n }\n else {\n i18n_30 = $localize `:kendo.datepicker.today|The label for the today button in the calendar header␟c8af34428eb25c8f689f0c19a9300394b07b5be3␟5799873230514803381:Today`;\n } let i18n_32; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the toggle button in the datepicker component\n * @meaning kendo.datepicker.toggle\n */\n const MSG_EXTERNAL_4817467473728423164$$DIST_FESM2015_INDEX_JS_33 = goog.getMsg(\"Toggle calendar\");\n i18n_32 = MSG_EXTERNAL_4817467473728423164$$DIST_FESM2015_INDEX_JS_33;\n }\n else {\n i18n_32 = $localize `:kendo.datepicker.toggle|The title of the toggle button in the datepicker component␟f6c28c2d80dbe993c4b33f4dc4010364f41cc2ae␟4817467473728423164:Toggle calendar`;\n } let i18n_34; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the previous button in the Classic calendar\n * @meaning kendo.datepicker.prevButtonTitle\n */\n const MSG_EXTERNAL_1741914107549506055$$DIST_FESM2015_INDEX_JS_35 = goog.getMsg(\"Navigate to previous view\");\n i18n_34 = MSG_EXTERNAL_1741914107549506055$$DIST_FESM2015_INDEX_JS_35;\n }\n else {\n i18n_34 = $localize `:kendo.datepicker.prevButtonTitle|The title of the previous button in the Classic calendar␟b24bedd31916ff8439cd7e3c46cbdabea3409dd1␟1741914107549506055:Navigate to previous view`;\n } let i18n_36; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the next button in the Classic calendar\n * @meaning kendo.datepicker.nextButtonTitle\n */\n const MSG_EXTERNAL_3363484587807059211$$DIST_FESM2015_INDEX_JS_37 = goog.getMsg(\"Navigate to next view\");\n i18n_36 = MSG_EXTERNAL_3363484587807059211$$DIST_FESM2015_INDEX_JS_37;\n }\n else {\n i18n_36 = $localize `:kendo.datepicker.nextButtonTitle|The title of the next button in the Classic calendar␟2f0e2a91beb7149035e42bd0d6663e8903dc3852␟3363484587807059211:Navigate to next view`;\n } return [[\"kendoDatePickerLocalizedMessages\", \"\", \"today\", i18n_30, \"toggle\", i18n_32, \"prevButtonTitle\", i18n_34, \"nextButtonTitle\", i18n_36], [3, \"role\", \"focusableId\", \"hasPopup\", \"isPopupOpen\", \"disabled\", \"readonly\", \"ariaReadOnly\", \"tabindex\", \"title\", \"format\", \"twoDigitYearMax\", \"formatPlaceholder\", \"placeholder\", \"min\", \"max\", \"incompleteDateValidation\", \"fillMode\", \"rounded\", \"size\", \"value\", \"valueChange\"], [\"input\", \"\"], [\"type\", \"button\", 1, \"k-input-button\", \"k-button\", \"k-icon-button\", 3, \"tabindex\", \"kendoEventsOutsideAngular\", \"scope\"], [\"toggleButton\", \"\"], [1, \"k-button-icon\", \"k-icon\", \"k-i-calendar\"], [\"container\", \"\"], [\"popupTemplate\", \"\"], [3, \"type\", \"min\", \"max\", \"navigation\", \"animateNavigation\", \"activeView\", \"bottomView\", \"topView\", \"weekNumber\", \"cellTemplate\", \"monthCellTemplate\", \"yearCellTemplate\", \"decadeCellTemplate\", \"centuryCellTemplate\", \"weekNumberTemplate\", \"headerTitleTemplate\", \"navigationItemTemplate\", \"focusedDate\", \"value\", \"kendoEventsOutsideAngular\", \"scope\", \"disabledDates\", \"valueChange\"], [\"calendar\", \"\"], [3, \"today\", \"prevButtonTitle\", \"nextButtonTitle\"]]; }, template: function DatePickerComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 0);\n ɵngcc0.ɵɵelementStart(1, \"kendo-dateinput\", 1, 2);\n ɵngcc0.ɵɵlistener(\"valueChange\", function DatePickerComponent_Template_kendo_dateinput_valueChange_1_listener($event) { return ctx.handleInputChange($event); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(3, \"button\", 3, 4);\n ɵngcc0.ɵɵelement(5, \"span\", 5);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementContainer(6, null, 6);\n ɵngcc0.ɵɵtemplate(8, DatePickerComponent_ng_template_8_Template, 4, 27, \"ng-template\", null, 7, ɵngcc0.ɵɵtemplateRefExtractor);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"role\", ctx.inputRole)(\"focusableId\", ctx.focusableId)(\"hasPopup\", true)(\"isPopupOpen\", ctx.show)(\"disabled\", ctx.disabled)(\"readonly\", ctx.readonly || ctx.readOnlyInput)(\"ariaReadOnly\", ctx.readonly)(\"tabindex\", ctx.tabindex)(\"title\", ctx.title)(\"format\", ctx.format)(\"twoDigitYearMax\", ctx.twoDigitYearMax)(\"formatPlaceholder\", ctx.formatPlaceholder)(\"placeholder\", ctx.placeholder)(\"min\", ctx.min)(\"max\", ctx.max)(\"incompleteDateValidation\", ctx.incompleteDateValidation)(\"fillMode\", null)(\"rounded\", null)(\"size\", null)(\"value\", ctx.value);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"tabindex\", -1)(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction2(25, _c39, ctx.handleIconClick, ctx.handleMousedown))(\"scope\", ctx);\n ɵngcc0.ɵɵattribute(\"title\", ctx.localization.get(\"toggle\"))(\"aria-label\", ctx.localization.get(\"toggle\"));\n } }, directives: function () { return [DatePickerLocalizedMessagesDirective, DateInputComponent, ɵngcc4.EventsOutsideAngularDirective, CalendarComponent, CalendarCustomMessagesComponent]; }, encapsulation: 2, changeDetection: 0 });\n__decorate([\n ViewChild('container', { read: ViewContainerRef, static: true }),\n __metadata(\"design:type\", ViewContainerRef)\n], DatePickerComponent.prototype, \"container\", void 0);\n__decorate([\n ViewChild('popupTemplate', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], DatePickerComponent.prototype, \"popupTemplate\", void 0);\n__decorate([\n ViewChild('toggleButton', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], DatePickerComponent.prototype, \"toggleButton\", void 0);\n__decorate([\n ContentChild(CellTemplateDirective, { static: false }),\n __metadata(\"design:type\", CellTemplateDirective)\n], DatePickerComponent.prototype, \"cellTemplate\", void 0);\n__decorate([\n Input('cellTemplate'),\n __metadata(\"design:type\", CellTemplateDirective),\n __metadata(\"design:paramtypes\", [CellTemplateDirective])\n], DatePickerComponent.prototype, \"cellTemplateRef\", null);\n__decorate([\n ContentChild(MonthCellTemplateDirective, { static: false }),\n __metadata(\"design:type\", MonthCellTemplateDirective)\n], DatePickerComponent.prototype, \"monthCellTemplate\", void 0);\n__decorate([\n Input('monthCellTemplate'),\n __metadata(\"design:type\", MonthCellTemplateDirective),\n __metadata(\"design:paramtypes\", [MonthCellTemplateDirective])\n], DatePickerComponent.prototype, \"monthCellTemplateRef\", null);\n__decorate([\n ContentChild(YearCellTemplateDirective, { static: false }),\n __metadata(\"design:type\", YearCellTemplateDirective)\n], DatePickerComponent.prototype, \"yearCellTemplate\", void 0);\n__decorate([\n Input('yearCellTemplate'),\n __metadata(\"design:type\", YearCellTemplateDirective),\n __metadata(\"design:paramtypes\", [YearCellTemplateDirective])\n], DatePickerComponent.prototype, \"yearCellTemplateRef\", null);\n__decorate([\n ContentChild(DecadeCellTemplateDirective, { static: false }),\n __metadata(\"design:type\", DecadeCellTemplateDirective)\n], DatePickerComponent.prototype, \"decadeCellTemplate\", void 0);\n__decorate([\n Input('decadeCellTemplate'),\n __metadata(\"design:type\", DecadeCellTemplateDirective),\n __metadata(\"design:paramtypes\", [DecadeCellTemplateDirective])\n], DatePickerComponent.prototype, \"decadeCellTemplateRef\", null);\n__decorate([\n ContentChild(CenturyCellTemplateDirective, { static: false }),\n __metadata(\"design:type\", CenturyCellTemplateDirective)\n], DatePickerComponent.prototype, \"centuryCellTemplate\", void 0);\n__decorate([\n Input('centuryCellTemplate'),\n __metadata(\"design:type\", CenturyCellTemplateDirective),\n __metadata(\"design:paramtypes\", [CenturyCellTemplateDirective])\n], DatePickerComponent.prototype, \"centuryCellTemplateRef\", null);\n__decorate([\n ContentChild(WeekNumberCellTemplateDirective, { static: false }),\n __metadata(\"design:type\", WeekNumberCellTemplateDirective)\n], DatePickerComponent.prototype, \"weekNumberTemplate\", void 0);\n__decorate([\n Input('weekNumberTemplate'),\n __metadata(\"design:type\", WeekNumberCellTemplateDirective),\n __metadata(\"design:paramtypes\", [WeekNumberCellTemplateDirective])\n], DatePickerComponent.prototype, \"weekNumberTemplateRef\", null);\n__decorate([\n ContentChild(HeaderTitleTemplateDirective, { static: false }),\n __metadata(\"design:type\", HeaderTitleTemplateDirective)\n], DatePickerComponent.prototype, \"headerTitleTemplate\", void 0);\n__decorate([\n Input('headerTitleTemplate'),\n __metadata(\"design:type\", HeaderTitleTemplateDirective),\n __metadata(\"design:paramtypes\", [HeaderTitleTemplateDirective])\n], DatePickerComponent.prototype, \"headerTitleTemplateRef\", null);\n__decorate([\n ContentChild(NavigationItemTemplateDirective, { static: false }),\n __metadata(\"design:type\", NavigationItemTemplateDirective)\n], DatePickerComponent.prototype, \"navigationItemTemplate\", void 0);\n__decorate([\n Input('navigationItemTemplate'),\n __metadata(\"design:type\", NavigationItemTemplateDirective),\n __metadata(\"design:paramtypes\", [NavigationItemTemplateDirective])\n], DatePickerComponent.prototype, \"navigationItemTemplateRef\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DatePickerComponent.prototype, \"focusableId\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DatePickerComponent.prototype, \"activeView\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DatePickerComponent.prototype, \"bottomView\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DatePickerComponent.prototype, \"topView\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DatePickerComponent.prototype, \"calendarType\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DatePickerComponent.prototype, \"animateCalendarNavigation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DatePickerComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DatePickerComponent.prototype, \"readonly\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DatePickerComponent.prototype, \"readOnlyInput\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], DatePickerComponent.prototype, \"popupSettings\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DatePickerComponent.prototype, \"navigation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], DatePickerComponent.prototype, \"min\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], DatePickerComponent.prototype, \"max\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DatePickerComponent.prototype, \"incompleteDateValidation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], DatePickerComponent.prototype, \"focusedDate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date),\n __metadata(\"design:paramtypes\", [Date])\n], DatePickerComponent.prototype, \"value\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DatePickerComponent.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], DatePickerComponent.prototype, \"twoDigitYearMax\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DatePickerComponent.prototype, \"formatPlaceholder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DatePickerComponent.prototype, \"placeholder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], DatePickerComponent.prototype, \"tabindex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], DatePickerComponent.prototype, \"tabIndex\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], DatePickerComponent.prototype, \"disabledDates\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DatePickerComponent.prototype, \"title\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DatePickerComponent.prototype, \"rangeValidation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DatePickerComponent.prototype, \"disabledDatesValidation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DatePickerComponent.prototype, \"weekNumber\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], DatePickerComponent.prototype, \"size\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], DatePickerComponent.prototype, \"rounded\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], DatePickerComponent.prototype, \"fillMode\", null);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DatePickerComponent.prototype, \"valueChange\", void 0);\n__decorate([\n Output('focus'),\n __metadata(\"design:type\", EventEmitter)\n], DatePickerComponent.prototype, \"onFocus\", void 0);\n__decorate([\n Output('blur'),\n __metadata(\"design:type\", EventEmitter)\n], DatePickerComponent.prototype, \"onBlur\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DatePickerComponent.prototype, \"open\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DatePickerComponent.prototype, \"close\", void 0);\n__decorate([\n HostBinding('class.k-datepicker'),\n HostBinding('class.k-input'),\n __metadata(\"design:type\", Boolean)\n], DatePickerComponent.prototype, \"wrapperClasses\", void 0);\n__decorate([\n HostBinding('class.k-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DatePickerComponent.prototype, \"disabledClass\", null);\nDatePickerComponent = DatePickerComponent_1 = __decorate([ __param(9, Optional()), __param(9, Inject(TOUCH_ENABLED)),\n __metadata(\"design:paramtypes\", [NgZone,\n LocalizationService,\n ChangeDetectorRef,\n PopupService,\n ElementRef,\n Renderer2,\n Injector,\n PickerService,\n DisabledDatesService, Boolean])\n], DatePickerComponent);\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\nvar TimePickerComponent_1;\nconst VALUE_DOC_LINK$4 = '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.millisecond}|${TIME_PART.dayperiod}|literal`);\n/**\n * Represents the [Kendo UI TimePicker component for Angular]({% slug overview_timepicker %}#toc-basic-usage).\n */\nlet TimePickerComponent = TimePickerComponent_1 = class TimePickerComponent {\n constructor(zone, localization, cdr, popupService, wrapper, renderer, injector, pickerService, intl, touchEnabled$$1) {\n this.zone = zone;\n this.localization = localization;\n this.cdr = cdr;\n this.popupService = popupService;\n this.wrapper = wrapper;\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 * export class AppComponent { }\n * ```\n */\n this.placeholder = null;\n /**\n * Determines whether the built-in validation for incomplete dates is to be enforced when a form is being validated.\n */\n this.incompleteDateValidation = false;\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 * export 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 * export 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.incompleteValidator = 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._size = 'medium';\n this._rounded = 'medium';\n this._fillMode = 'solid';\n validatePackage(packageMetadata);\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.dateCompletenessChange.subscribe(this.handleDateCompletenessChange.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, millisecond: 10 };\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 * - `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 * @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 * Sets the size of the component.\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (Default)\n * * `'large'`\n * * `null`\n *\n */\n set size(size) {\n this.renderer.removeClass(this.wrapper.nativeElement, getSizeClass('input', this.size));\n this.renderer.removeClass(this.toggleButton.nativeElement, getSizeClass('input', this.size));\n if (size) {\n this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', size));\n this.renderer.addClass(this.toggleButton.nativeElement, getSizeClass('input', size));\n }\n this._size = size;\n }\n get size() {\n return this._size;\n }\n /**\n * Sets the border radius of the component.\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (Default)\n * * `'large'`\n * * `'full'`\n * * `null`\n *\n */\n set rounded(rounded) {\n this.renderer.removeClass(this.wrapper.nativeElement, getRoundedClass(this.rounded));\n if (rounded) {\n this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(rounded));\n }\n this._rounded = rounded;\n }\n get rounded() {\n return this._rounded;\n }\n /**\n * Sets the fillMode of the component.\n *\n * The possible values are:\n * * `'solid'` (Default)\n * * `'flat'`\n * * `'outline'`\n * * `null`\n *\n */\n set fillMode(fillMode) {\n this.renderer.removeClass(this.wrapper.nativeElement, getFillModeClass('input', this.fillMode));\n this.renderer.removeClass(this.toggleButton.nativeElement, getFillModeClass('button', this.fillMode));\n this.renderer.removeClass(this.toggleButton.nativeElement, `k-button-${this.fillMode}-base`);\n if (fillMode) {\n this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', fillMode));\n this.renderer.addClass(this.toggleButton.nativeElement, getFillModeClass('button', fillMode));\n this.renderer.addClass(this.toggleButton.nativeElement, `k-button-${fillMode}-base`);\n }\n this._fillMode = fillMode;\n }\n get fillMode() {\n return this._fillMode;\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-focus');\n }\n else {\n this.renderer.removeClass(element, 'k-focus');\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.wrapper) {\n this.renderer.removeAttribute(this.wrapper.nativeElement, 'tabindex');\n this.zone.runOutsideAngular(() => {\n this.bindEvents();\n });\n }\n }\n /**\n * @hidden\n */\n ngAfterViewInit() {\n this.setComponentClasses();\n }\n /**\n * @hidden\n */\n ngOnChanges(changes) {\n if (changes.min || changes.max || changes.rangeValidation || changes.incompleteDateValidation) {\n this.timeRangeValidateFn = this.rangeValidation ? timeRangeValidator(this.min, this.max) : noop;\n this.incompleteValidator = this.incompleteDateValidation ? incompleteDateValidator() : 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) || this.incompleteValidator(control, this.input && this.input.isDateIncomplete);\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 * export 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 if (show === this.isOpen) {\n return;\n }\n this._show = show;\n this.cdr.markForCheck();\n if (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 else {\n this.popupRef.close();\n this.popupRef = null;\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$4} 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|S|a. See ${INTL_DATE_FORMAT}`);\n }\n }\n bindEvents() {\n const element = this.wrapper.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 handleDateCompletenessChange() {\n this.cdr.markForCheck();\n this.zone.run(() => this.onValidatorChange());\n }\n setComponentClasses() {\n if (this.size) {\n this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', this.size));\n this.renderer.addClass(this.toggleButton.nativeElement, getSizeClass('button', this.size));\n }\n if (this.rounded) {\n this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(this.rounded));\n }\n if (this.fillMode) {\n this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', this.fillMode));\n this.renderer.addClass(this.toggleButton.nativeElement, getFillModeClass('button', this.fillMode));\n this.renderer.addClass(this.toggleButton.nativeElement, `k-button-${this.fillMode}-base`);\n }\n }\n};\nTimePickerComponent.ɵfac = function TimePickerComponent_Factory(t) { return new (t || TimePickerComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc3.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc5.PopupService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Injector), ɵngcc0.ɵɵdirectiveInject(PickerService), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.IntlService), ɵngcc0.ɵɵdirectiveInject(TOUCH_ENABLED, 8)); };\nTimePickerComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: TimePickerComponent, selectors: [[\"kendo-timepicker\"]], viewQuery: function TimePickerComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c27, 5, ViewContainerRef);\n ɵngcc0.ɵɵviewQuery(_c28, 5);\n ɵngcc0.ɵɵviewQuery(_c29, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.container = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.popupTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.toggleButton = _t.first);\n } }, hostVars: 6, hostBindings: function TimePickerComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-timepicker\", ctx.wrapperClasses)(\"k-input\", ctx.wrapperClasses)(\"k-disabled\", ctx.disabledClass);\n } }, inputs: { focusableId: \"focusableId\", disabled: \"disabled\", readonly: \"readonly\", readOnlyInput: \"readOnlyInput\", format: \"format\", placeholder: \"placeholder\", incompleteDateValidation: \"incompleteDateValidation\", cancelButton: \"cancelButton\", nowButton: \"nowButton\", tabindex: \"tabindex\", title: \"title\", rangeValidation: \"rangeValidation\", min: \"min\", max: \"max\", steps: \"steps\", popupSettings: \"popupSettings\", tabIndex: \"tabIndex\", value: \"value\", size: \"size\", rounded: \"rounded\", fillMode: \"fillMode\", formatPlaceholder: \"formatPlaceholder\" }, outputs: { valueChange: \"valueChange\", onFocus: \"focus\", onBlur: \"blur\", open: \"open\", close: \"close\" }, exportAs: [\"kendo-timepicker\"], features: [ɵngcc0.ɵɵProvidersFeature([\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TimePickerComponent_1), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => TimePickerComponent_1), multi: true },\n { provide: KendoInput, useExisting: forwardRef(() => TimePickerComponent_1) },\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.timepicker'\n },\n PickerService\n ]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 10, vars: 27, consts: function () { let i18n_40; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The Accept button text in the timepicker component\n * @meaning kendo.timepicker.accept\n */\n const MSG_EXTERNAL_7519663530416240229$$DIST_FESM2015_INDEX_JS_41 = goog.getMsg(\"Set\");\n i18n_40 = MSG_EXTERNAL_7519663530416240229$$DIST_FESM2015_INDEX_JS_41;\n }\n else {\n i18n_40 = $localize `:kendo.timepicker.accept|The Accept button text in the timepicker component␟4c3bf42192220c7611c09ece1c5de14855139dd0␟7519663530416240229:Set`;\n } let i18n_42; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the Accept button in the timepicker component\n * @meaning kendo.timepicker.acceptLabel\n */\n const MSG_EXTERNAL_4355879331538595758$$DIST_FESM2015_INDEX_JS_43 = goog.getMsg(\"Set time\");\n i18n_42 = MSG_EXTERNAL_4355879331538595758$$DIST_FESM2015_INDEX_JS_43;\n }\n else {\n i18n_42 = $localize `:kendo.timepicker.acceptLabel|The label for the Accept button in the timepicker component␟93c2a9c3aa49f56e452c0aecbaabe3bb33fa4222␟4355879331538595758:Set time`;\n } let i18n_44; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The Cancel button text in the timepicker component\n * @meaning kendo.timepicker.cancel\n */\n const MSG_EXTERNAL_1086687567255473060$$DIST_FESM2015_INDEX_JS_45 = goog.getMsg(\"Cancel\");\n i18n_44 = MSG_EXTERNAL_1086687567255473060$$DIST_FESM2015_INDEX_JS_45;\n }\n else {\n i18n_44 = $localize `:kendo.timepicker.cancel|The Cancel button text in the timepicker component␟132eefca16bd41d489b4647724b91e93793603aa␟1086687567255473060:Cancel`;\n } let i18n_46; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the Cancel button in the timepicker component\n * @meaning kendo.timepicker.cancelLabel\n */\n const MSG_EXTERNAL_83621966901491941$$DIST_FESM2015_INDEX_JS_47 = goog.getMsg(\"Cancel changes\");\n i18n_46 = MSG_EXTERNAL_83621966901491941$$DIST_FESM2015_INDEX_JS_47;\n }\n else {\n i18n_46 = $localize `:kendo.timepicker.cancelLabel|The label for the Cancel button in the timepicker component␟2cf6f4ca4470810944b4016c9b6f87943d3390ab␟83621966901491941:Cancel changes`;\n } let i18n_48; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The Now button text in the timepicker component\n * @meaning kendo.timepicker.now\n */\n const MSG_EXTERNAL_5912507758515138116$$DIST_FESM2015_INDEX_JS_49 = goog.getMsg(\"Now\");\n i18n_48 = MSG_EXTERNAL_5912507758515138116$$DIST_FESM2015_INDEX_JS_49;\n }\n else {\n i18n_48 = $localize `:kendo.timepicker.now|The Now button text in the timepicker component␟bbc99bb74ae75a503bd813aad0c7253d3553e923␟5912507758515138116:Now`;\n } let i18n_50; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the Now button in the timepicker component\n * @meaning kendo.timepicker.nowLabel\n */\n const MSG_EXTERNAL_371982627910576599$$DIST_FESM2015_INDEX_JS_51 = goog.getMsg(\"Select now\");\n i18n_50 = MSG_EXTERNAL_371982627910576599$$DIST_FESM2015_INDEX_JS_51;\n }\n else {\n i18n_50 = $localize `:kendo.timepicker.nowLabel|The label for the Now button in the timepicker component␟df1a696f318275aa934e27850920889d494c2740␟371982627910576599:Select now`;\n } let i18n_52; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the toggle button in the timepicker component\n * @meaning kendo.timepicker.toggle\n */\n const MSG_EXTERNAL_6938407659294495526$$DIST_FESM2015_INDEX_JS_53 = goog.getMsg(\"Toggle time list\");\n i18n_52 = MSG_EXTERNAL_6938407659294495526$$DIST_FESM2015_INDEX_JS_53;\n }\n else {\n i18n_52 = $localize `:kendo.timepicker.toggle|The label for the toggle button in the timepicker component␟f2c196786ed2d3ecb2369750c36aac9a4053fb30␟6938407659294495526:Toggle time list`;\n } return [[\"kendoTimePickerLocalizedMessages\", \"\", \"accept\", i18n_40, \"acceptLabel\", i18n_42, \"cancel\", i18n_44, \"cancelLabel\", i18n_46, \"now\", i18n_48, \"nowLabel\", i18n_50, \"toggle\", i18n_52], [3, \"focusableId\", \"hasPopup\", \"isPopupOpen\", \"disabled\", \"readonly\", \"role\", \"ariaReadOnly\", \"format\", \"formatPlaceholder\", \"placeholder\", \"min\", \"max\", \"incompleteDateValidation\", \"fillMode\", \"rounded\", \"size\", \"steps\", \"tabindex\", \"title\", \"value\", \"valueChange\"], [\"input\", \"\"], [\"type\", \"button\", 1, \"k-input-button\", \"k-button\", \"k-icon-button\", 3, \"kendoEventsOutsideAngular\", \"scope\"], [\"toggleButton\", \"\"], [1, \"k-button-icon\", \"k-icon\", \"k-i-clock\"], [\"popupTemplate\", \"\"], [\"container\", \"\"], [3, \"cancelButton\", \"nowButton\", \"format\", \"min\", \"max\", \"steps\", \"value\", \"kendoEventsOutsideAngular\", \"scope\", \"valueChange\", \"valueReject\"], [\"timeSelector\", \"\"], [3, \"acceptLabel\", \"accept\", \"cancelLabel\", \"cancel\", \"nowLabel\", \"now\"]]; }, template: function TimePickerComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 0);\n ɵngcc0.ɵɵelementStart(1, \"kendo-dateinput\", 1, 2);\n ɵngcc0.ɵɵlistener(\"valueChange\", function TimePickerComponent_Template_kendo_dateinput_valueChange_1_listener($event) { return ctx.handleInputChange($event); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(3, \"button\", 3, 4);\n ɵngcc0.ɵɵelement(5, \"span\", 5);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(6, TimePickerComponent_ng_template_6_Template, 3, 18, \"ng-template\", null, 6, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵelementContainer(8, null, 7);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"focusableId\", ctx.focusableId)(\"hasPopup\", true)(\"isPopupOpen\", ctx.show)(\"disabled\", ctx.disabled)(\"readonly\", ctx.readonly || ctx.readOnlyInput)(\"role\", ctx.inputRole)(\"ariaReadOnly\", ctx.readonly)(\"format\", ctx.format)(\"formatPlaceholder\", ctx.formatPlaceholder)(\"placeholder\", ctx.placeholder)(\"min\", ctx.normalizeTime(ctx.min))(\"max\", ctx.normalizeTime(ctx.max))(\"incompleteDateValidation\", ctx.incompleteDateValidation)(\"fillMode\", ctx.fillMode)(\"rounded\", ctx.rounded)(\"size\", ctx.size)(\"steps\", ctx.steps)(\"tabindex\", !ctx.show ? ctx.tabindex : -1)(\"title\", ctx.title)(\"value\", ctx.value);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction2(24, _c39, ctx.handleIconClick, ctx.handleMousedown))(\"scope\", ctx);\n ɵngcc0.ɵɵattribute(\"title\", ctx.localization.get(\"toggle\"))(\"aria-label\", ctx.localization.get(\"toggle\"));\n } }, directives: function () { return [TimePickerLocalizedMessagesDirective, DateInputComponent, ɵngcc4.EventsOutsideAngularDirective, TimeSelectorComponent, TimeSelectorCustomMessagesComponent]; }, encapsulation: 2, changeDetection: 0 });\n__decorate([\n ViewChild('container', { read: ViewContainerRef, static: false }),\n __metadata(\"design:type\", ViewContainerRef)\n], TimePickerComponent.prototype, \"container\", void 0);\n__decorate([\n ViewChild('popupTemplate', { static: false }),\n __metadata(\"design:type\", TemplateRef)\n], TimePickerComponent.prototype, \"popupTemplate\", void 0);\n__decorate([\n ViewChild('toggleButton', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], TimePickerComponent.prototype, \"toggleButton\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TimePickerComponent.prototype, \"focusableId\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TimePickerComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TimePickerComponent.prototype, \"readonly\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TimePickerComponent.prototype, \"readOnlyInput\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TimePickerComponent.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], TimePickerComponent.prototype, \"formatPlaceholder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TimePickerComponent.prototype, \"placeholder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date),\n __metadata(\"design:paramtypes\", [Date])\n], TimePickerComponent.prototype, \"min\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date),\n __metadata(\"design:paramtypes\", [Date])\n], TimePickerComponent.prototype, \"max\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TimePickerComponent.prototype, \"incompleteDateValidation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TimePickerComponent.prototype, \"cancelButton\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TimePickerComponent.prototype, \"nowButton\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], TimePickerComponent.prototype, \"steps\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], TimePickerComponent.prototype, \"popupSettings\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], TimePickerComponent.prototype, \"tabindex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], TimePickerComponent.prototype, \"tabIndex\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TimePickerComponent.prototype, \"title\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TimePickerComponent.prototype, \"rangeValidation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date),\n __metadata(\"design:paramtypes\", [Date])\n], TimePickerComponent.prototype, \"value\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], TimePickerComponent.prototype, \"size\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], TimePickerComponent.prototype, \"rounded\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], TimePickerComponent.prototype, \"fillMode\", null);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TimePickerComponent.prototype, \"valueChange\", void 0);\n__decorate([\n Output('focus'),\n __metadata(\"design:type\", EventEmitter)\n], TimePickerComponent.prototype, \"onFocus\", void 0);\n__decorate([\n Output('blur'),\n __metadata(\"design:type\", EventEmitter)\n], TimePickerComponent.prototype, \"onBlur\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TimePickerComponent.prototype, \"open\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TimePickerComponent.prototype, \"close\", void 0);\n__decorate([\n HostBinding('class.k-timepicker'),\n HostBinding('class.k-input'),\n __metadata(\"design:type\", Boolean)\n], TimePickerComponent.prototype, \"wrapperClasses\", void 0);\n__decorate([\n HostBinding('class.k-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], TimePickerComponent.prototype, \"disabledClass\", null);\nTimePickerComponent = TimePickerComponent_1 = __decorate([ __param(9, Optional()), __param(9, Inject(TOUCH_ENABLED)),\n __metadata(\"design:paramtypes\", [NgZone,\n LocalizationService,\n ChangeDetectorRef,\n PopupService,\n ElementRef,\n Renderer2,\n Injector,\n PickerService,\n IntlService, Boolean])\n], TimePickerComponent);\n\nvar DateTimePickerComponent_1;\nconst timeFormatRegExp = new RegExp(`${TIME_PART.hour}|${TIME_PART.minute}|${TIME_PART.second}|${TIME_PART.dayperiod}|literal`);\nconst VALUE_DOC_LINK$5 = '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';\nconst TWO_DIGIT_YEAR_MAX$2 = 68;\n/**\n * Represents the [Kendo UI DateTimePicker component for Angular]({% slug overview_datetimepicker %}).\n */\nlet DateTimePickerComponent = DateTimePickerComponent_1 = class DateTimePickerComponent {\n constructor(popupService, intl, cdr, pickerService, ngZone, wrapper, touchEnabled$$1, localization, disabledDatesService, renderer) {\n this.popupService = popupService;\n this.intl = intl;\n this.cdr = cdr;\n this.pickerService = pickerService;\n this.ngZone = ngZone;\n this.wrapper = wrapper;\n this.touchEnabled = touchEnabled$$1;\n this.localization = localization;\n this.disabledDatesService = disabledDatesService;\n this.renderer = renderer;\n /**\n * @hidden\n */\n this.hostClasses = true;\n /**\n * The maximum year to assume to be from the current century when typing two-digit year value\n * ([see example]({% slug formats_datetimepicker %}#toc-two-digit-year-format)).\n *\n * The default value is 68, indicating that typing any value less than 69\n * will be assumed to be 20xx, while 69 and larger will be assumed to be 19xx.\n */\n this.twoDigitYearMax = TWO_DIGIT_YEAR_MAX$2;\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 * Configures the incremental steps of the DateInput and the popup component of the TimePicker\n * ([see example]({% slug incrementalsteps_datetimepicker %})).\n */\n this.steps = {};\n /**\n * Specifies the Calendar type.\n *\n * The possible values are:\n * - `infinite` (default)\n * - `classic`\n *\n */\n this.calendarType = 'infinite';\n /**\n * Determines whether to enable animation when navigating to previous/next Calendar view.\n * Applies to the [`classic`]({% slug api_dateinputs_datetimepickercomponent %}#toc-calendartype) Calendar only.\n *\n * > This feature uses the [Web Animations API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Animations_API). In order to run the animation in browsers that do not support it, you need the `web-animations-js` polyfill.\n *\n * @default false\n */\n this.animateCalendarNavigation = false;\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 * Determines whether the built-in validation for incomplete dates is to be enforced when a form is being validated.\n */\n this.incompleteDateValidation = false;\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 * @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._isActive = false;\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.incompleteValidator = noop;\n this.subscriptions = new Subscription();\n this._size = 'medium';\n this._rounded = 'medium';\n this._fillMode = 'solid';\n validatePackage(packageMetadata);\n }\n /**\n * @hidden\n */\n get disabledClass() {\n return this.disabled;\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 * Format value options:\n * - `string` - Provide a `string` if a single format is going to be used regardless whether the input is focused or blurred.\n * - [`FormatSettings`]({% slug api_dateinputs_formatsettings %}) - To display different formats when the component is focused or blurred, provide a settings object with specified `inputFormat` and `displayFormat` values.\n *\n * > If a [`FormatSettings`]({% slug api_dateinputs_formatsettings %}) object is provided, the `displayFormat` value will be used for the popup TimePicker.\n */\n set format(format) {\n this._format = format;\n const displayFormat = this.getDisplayFormat(format);\n this.timeSelectorFormat = this.getTimeSelectorFormat(displayFormat);\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 * Indicates whether the component or its popup content is focused.\n */\n get isActive() {\n return this._isActive;\n }\n set isActive(value) {\n if (value) {\n this.renderer.addClass(this.wrapper.nativeElement, 'k-focus');\n }\n else {\n this.renderer.removeClass(this.wrapper.nativeElement, 'k-focus');\n }\n this._isActive = value;\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 * Sets the size of the component.\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (Default)\n * * `'large'`\n * * `null`\n *\n */\n set size(size) {\n this.renderer.removeClass(this.wrapper.nativeElement, getSizeClass('input', this.size));\n this.renderer.removeClass(this.toggleButton.nativeElement, getSizeClass('input', this.size));\n if (size) {\n this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', size));\n this.renderer.addClass(this.toggleButton.nativeElement, getSizeClass('input', size));\n }\n this._size = size;\n }\n get size() {\n return this._size;\n }\n /**\n * Sets the border radius of the component.\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (Default)\n * * `'large'`\n * * `'full'`\n * * `null`\n *\n */\n set rounded(rounded) {\n this.renderer.removeClass(this.wrapper.nativeElement, getRoundedClass(this.rounded));\n if (rounded) {\n this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(rounded));\n }\n this._rounded = rounded;\n }\n get rounded() {\n return this._rounded;\n }\n /**\n * Sets the fillMode of the component.\n *\n * The possible values are:\n * * `'solid'` (Default)\n * * `'flat'`\n * * `'outline'`\n * * `null`\n *\n */\n set fillMode(fillMode) {\n this.renderer.removeClass(this.wrapper.nativeElement, getFillModeClass('input', this.fillMode));\n this.renderer.removeClass(this.toggleButton.nativeElement, getFillModeClass('button', this.fillMode));\n this.renderer.removeClass(this.toggleButton.nativeElement, `k-button-${this.fillMode}-base`);\n if (fillMode) {\n this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', fillMode));\n this.renderer.addClass(this.toggleButton.nativeElement, getFillModeClass('button', fillMode));\n this.renderer.addClass(this.toggleButton.nativeElement, `k-button-${fillMode}-base`);\n }\n this._fillMode = fillMode;\n }\n get fillMode() {\n return this._fillMode;\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 this.subscriptions.add(this.pickerService.dateCompletenessChange.subscribe(this.handleDateCompletenessChange.bind(this)));\n if (isWindowAvailable()) {\n this.subscriptions.add(this.ngZone.runOutsideAngular(() => fromEvent(window, 'blur').subscribe(this.handleCancel.bind(this))));\n }\n }\n ngAfterViewInit() {\n this.setComponentClasses();\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 || changes.incompleteDateValidation) {\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.incompleteValidator = this.incompleteDateValidation ? incompleteDateValidator() : 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 || show === this.isOpen) {\n return;\n }\n const shouldOpen = isPresent(show) ? show : !this.isOpen;\n if (shouldOpen) {\n this.openPopup();\n }\n else {\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 }\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) || this.incompleteValidator(control, this.input && this.input.isDateIncomplete);\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 const shouldOpen = !this.isOpen;\n // handle focus first to maintain correct event order `focus` => `open`\n this.handleFocus();\n this.togglePopup(shouldOpen);\n this.switchFocus();\n });\n }\n /**\n * @hidden\n */\n handleFocus() {\n if (this.isActive) {\n return;\n }\n this.isActive = true;\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 const isNgControlUntouched = this.wrapper.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 popupButtonsClasses(type) {\n const buttonType = type ? type : 'base';\n return `${this.size ? getSizeClass('button', this.size) : ''} ${this.rounded ? getRoundedClass(this.rounded) : ''} ${this.fillMode ? 'k-button-' + this.fillMode + ' ' + 'k-button-' + this.fillMode + '-' + buttonType : ''}`;\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$5} 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 * Extracts the `displayFormat` from the provided `string | FormatSettings` value.\n * Fallbacks to the default input value, if a falsy value param is passed.\n */\n getDisplayFormat(format) {\n if (!format) {\n return DEFAULT_DATEINPUT_FORMAT;\n }\n if (typeof format === 'string') {\n return format;\n }\n else {\n return format.displayFormat;\n }\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.onControlChange(cloneDate(value));\n this.valueChange.emit(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 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 handleDateCompletenessChange() {\n this.cdr.markForCheck();\n this.ngZone.run(() => this.onValidatorChange());\n }\n setComponentClasses() {\n if (this.size) {\n this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', this.size));\n this.renderer.addClass(this.toggleButton.nativeElement, getSizeClass('button', this.size));\n }\n if (this.rounded) {\n this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(this.rounded));\n }\n if (this.fillMode) {\n this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', this.fillMode));\n this.renderer.addClass(this.toggleButton.nativeElement, getFillModeClass('button', this.fillMode));\n this.renderer.addClass(this.toggleButton.nativeElement, `k-button-${this.fillMode}-base`);\n }\n }\n};\nDateTimePickerComponent.ɵfac = function DateTimePickerComponent_Factory(t) { return new (t || DateTimePickerComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc5.PopupService), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.IntlService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(PickerService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(TOUCH_ENABLED), ɵngcc0.ɵɵdirectiveInject(ɵngcc3.LocalizationService), ɵngcc0.ɵɵdirectiveInject(DisabledDatesService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nDateTimePickerComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DateTimePickerComponent, selectors: [[\"kendo-datetimepicker\"]], contentQueries: function DateTimePickerComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, CellTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, MonthCellTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, YearCellTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, DecadeCellTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, CenturyCellTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, WeekNumberCellTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, HeaderTitleTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.cellTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.monthCellTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.yearCellTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.decadeCellTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.centuryCellTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.weekNumberTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.headerTitleTemplate = _t.first);\n } }, viewQuery: function DateTimePickerComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c29, 7);\n ɵngcc0.ɵɵviewQuery(_c27, 7, ViewContainerRef);\n ɵngcc0.ɵɵviewQuery(_c28, 7, TemplateRef);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.toggleButton = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.container = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.popupTemplate = _t.first);\n } }, hostVars: 6, hostBindings: function DateTimePickerComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-datetimepicker\", ctx.hostClasses)(\"k-input\", ctx.hostClasses)(\"k-disabled\", ctx.disabledClass);\n } }, inputs: { twoDigitYearMax: \"twoDigitYearMax\", focusableId: \"focusableId\", title: \"title\", disabled: \"disabled\", readonly: \"readonly\", readOnlyInput: \"readOnlyInput\", cancelButton: \"cancelButton\", steps: \"steps\", calendarType: \"calendarType\", animateCalendarNavigation: \"animateCalendarNavigation\", weekNumber: \"weekNumber\", rangeValidation: \"rangeValidation\", disabledDatesValidation: \"disabledDatesValidation\", incompleteDateValidation: \"incompleteDateValidation\", value: \"value\", format: \"format\", tabindex: \"tabindex\", disabledDates: \"disabledDates\", popupSettings: \"popupSettings\", min: \"min\", max: \"max\", defaultTab: \"defaultTab\", size: \"size\", rounded: \"rounded\", fillMode: \"fillMode\", formatPlaceholder: \"formatPlaceholder\", placeholder: \"placeholder\", focusedDate: \"focusedDate\" }, outputs: { valueChange: \"valueChange\", open: \"open\", close: \"close\", onFocus: \"focus\", onBlur: \"blur\" }, exportAs: [\"kendo-datetimepicker\"], features: [ɵngcc0.ɵɵProvidersFeature([\n PickerService,\n LocalizationService,\n DisabledDatesService,\n { provide: L10N_PREFIX, useValue: 'kendo.datetimepicker' },\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateTimePickerComponent_1), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => DateTimePickerComponent_1), multi: true },\n { provide: KendoInput, useExisting: forwardRef(() => DateTimePickerComponent_1) }\n ]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 9, vars: 37, consts: function () { let i18n_55; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The Date tab text in the datetimepicker popup header\n * @meaning kendo.datetimepicker.dateTab\n */\n const MSG_EXTERNAL_3360129034450596425$$DIST_FESM2015_INDEX_JS_56 = goog.getMsg(\"Date\");\n i18n_55 = MSG_EXTERNAL_3360129034450596425$$DIST_FESM2015_INDEX_JS_56;\n }\n else {\n i18n_55 = $localize `:kendo.datetimepicker.dateTab|The Date tab text in the datetimepicker popup header␟5bb17f81ae8dbc109499ce3792afffa6b7cef855␟3360129034450596425:Date`;\n } let i18n_57; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the Date tab in the datetimepicker popup header\n * @meaning kendo.datetimepicker.dateTabLabel\n */\n const MSG_EXTERNAL_1810540079817643910$$DIST_FESM2015_INDEX_JS_58 = goog.getMsg(\"Date tab\");\n i18n_57 = MSG_EXTERNAL_1810540079817643910$$DIST_FESM2015_INDEX_JS_58;\n }\n else {\n i18n_57 = $localize `:kendo.datetimepicker.dateTabLabel|The label for the Date tab in the datetimepicker popup header␟2a400c9e364a4c6d83ac39b5513c962805db54b2␟1810540079817643910:Date tab`;\n } let i18n_59; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The Time tab text in the datetimepicker popup header\n * @meaning kendo.datetimepicker.timeTab\n */\n const MSG_EXTERNAL_3807284594201983607$$DIST_FESM2015_INDEX_JS_60 = goog.getMsg(\"Time\");\n i18n_59 = MSG_EXTERNAL_3807284594201983607$$DIST_FESM2015_INDEX_JS_60;\n }\n else {\n i18n_59 = $localize `:kendo.datetimepicker.timeTab|The Time tab text in the datetimepicker popup header␟e9b2b760a6916040e7520a9a2926d65de175944d␟3807284594201983607:Time`;\n } let i18n_61; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the Time tab in the datetimepicker popup header\n * @meaning kendo.datetimepicker.timeTabLabel\n */\n const MSG_EXTERNAL_2577682127494513393$$DIST_FESM2015_INDEX_JS_62 = goog.getMsg(\"Time tab\");\n i18n_61 = MSG_EXTERNAL_2577682127494513393$$DIST_FESM2015_INDEX_JS_62;\n }\n else {\n i18n_61 = $localize `:kendo.datetimepicker.timeTabLabel|The label for the Time tab in the datetimepicker popup header␟13bf7e3a1036140119732c6d5952f7a20c22999e␟2577682127494513393:Time tab`;\n } let i18n_63; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the toggle button in the datetimepicker component\n * @meaning kendo.datetimepicker.toggle\n */\n const MSG_EXTERNAL_3159207801887264026$$DIST_FESM2015_INDEX_JS_64 = goog.getMsg(\"Toggle popup\");\n i18n_63 = MSG_EXTERNAL_3159207801887264026$$DIST_FESM2015_INDEX_JS_64;\n }\n else {\n i18n_63 = $localize `:kendo.datetimepicker.toggle|The title of the toggle button in the datetimepicker component␟60296a83f0d3e3d07aaba87c4f8e91b0aca3c22a␟3159207801887264026:Toggle popup`;\n } let i18n_65; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The Accept button text in the datetimepicker component\n * @meaning kendo.datetimepicker.accept\n */\n const MSG_EXTERNAL_3915774704336012538$$DIST_FESM2015_INDEX_JS_66 = goog.getMsg(\"Set\");\n i18n_65 = MSG_EXTERNAL_3915774704336012538$$DIST_FESM2015_INDEX_JS_66;\n }\n else {\n i18n_65 = $localize `:kendo.datetimepicker.accept|The Accept button text in the datetimepicker component␟4359b59db7ded88e106ada877e744c71b188f8f9␟3915774704336012538:Set`;\n } let i18n_67; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the Accept button in the datetimepicker component\n * @meaning kendo.datetimepicker.acceptLabel\n */\n const MSG_EXTERNAL_4770689705864890748$$DIST_FESM2015_INDEX_JS_68 = goog.getMsg(\"Set\");\n i18n_67 = MSG_EXTERNAL_4770689705864890748$$DIST_FESM2015_INDEX_JS_68;\n }\n else {\n i18n_67 = $localize `:kendo.datetimepicker.acceptLabel|The label for the Accept button in the datetimepicker component␟cbea4571cca81ad9767a6b29f0287d1f3f6372dc␟4770689705864890748:Set`;\n } let i18n_69; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The Cancel button text in the datetimepicker component\n * @meaning kendo.datetimepicker.cancel\n */\n const MSG_EXTERNAL_5100781969600382158$$DIST_FESM2015_INDEX_JS_70 = goog.getMsg(\"Cancel\");\n i18n_69 = MSG_EXTERNAL_5100781969600382158$$DIST_FESM2015_INDEX_JS_70;\n }\n else {\n i18n_69 = $localize `:kendo.datetimepicker.cancel|The Cancel button text in the datetimepicker component␟17ab795d6f7527dd962a309759ca58cb4edd7e52␟5100781969600382158:Cancel`;\n } let i18n_71; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the Cancel button in the datetimepicker component\n * @meaning kendo.datetimepicker.cancelLabel\n */\n const MSG_EXTERNAL_3535986227615756275$$DIST_FESM2015_INDEX_JS_72 = goog.getMsg(\"Cancel\");\n i18n_71 = MSG_EXTERNAL_3535986227615756275$$DIST_FESM2015_INDEX_JS_72;\n }\n else {\n i18n_71 = $localize `:kendo.datetimepicker.cancelLabel|The label for the Cancel button in the datetimepicker component␟ba26795ab9f4c21d66b17549ba854a96fcdac1f9␟3535986227615756275:Cancel`;\n } let i18n_73; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The Now button text in the timepicker component\n * @meaning kendo.datetimepicker.now\n */\n const MSG_EXTERNAL_5497093725885127701$$DIST_FESM2015_INDEX_JS_74 = goog.getMsg(\"NOW\");\n i18n_73 = MSG_EXTERNAL_5497093725885127701$$DIST_FESM2015_INDEX_JS_74;\n }\n else {\n i18n_73 = $localize `:kendo.datetimepicker.now|The Now button text in the timepicker component␟7172e7e9a1741f6b63439ec89e498c995cb23b0d␟5497093725885127701:NOW`;\n } let i18n_75; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the Now button in the timepicker component\n * @meaning kendo.datetimepicker.nowLabel\n */\n const MSG_EXTERNAL_5046379108717037514$$DIST_FESM2015_INDEX_JS_76 = goog.getMsg(\"Select now\");\n i18n_75 = MSG_EXTERNAL_5046379108717037514$$DIST_FESM2015_INDEX_JS_76;\n }\n else {\n i18n_75 = $localize `:kendo.datetimepicker.nowLabel|The label for the Now button in the timepicker component␟52d90641b26b1ce4c011cadf0437ce36c1dac1d5␟5046379108717037514:Select now`;\n } let i18n_77; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the today button in the calendar header\n * @meaning kendo.datetimepicker.today\n */\n const MSG_EXTERNAL_2570147067439993260$$DIST_FESM2015_INDEX_JS_78 = goog.getMsg(\"Today\");\n i18n_77 = MSG_EXTERNAL_2570147067439993260$$DIST_FESM2015_INDEX_JS_78;\n }\n else {\n i18n_77 = $localize `:kendo.datetimepicker.today|The label for the today button in the calendar header␟9ef9db9ac4951523d519b989d223f507878c612d␟2570147067439993260:Today`;\n } let i18n_79; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the previous button in the Classic calendar\n * @meaning kendo.datetimepicker.prevButtonTitle\n */\n const MSG_EXTERNAL_6176055232586065404$$DIST_FESM2015_INDEX_JS_80 = goog.getMsg(\"Navigate to previous view\");\n i18n_79 = MSG_EXTERNAL_6176055232586065404$$DIST_FESM2015_INDEX_JS_80;\n }\n else {\n i18n_79 = $localize `:kendo.datetimepicker.prevButtonTitle|The title of the previous button in the Classic calendar␟447d09c4ecfc2ab2b84d708f4c07fa0fcda85167␟6176055232586065404:Navigate to previous view`;\n } let i18n_81; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the next button in the Classic calendar\n * @meaning kendo.datetimepicker.nextButtonTitle\n */\n const MSG_EXTERNAL_6424339255333594510$$DIST_FESM2015_INDEX_JS_82 = goog.getMsg(\"Navigate to next view\");\n i18n_81 = MSG_EXTERNAL_6424339255333594510$$DIST_FESM2015_INDEX_JS_82;\n }\n else {\n i18n_81 = $localize `:kendo.datetimepicker.nextButtonTitle|The title of the next button in the Classic calendar␟80fd3325bfe94a180fd27391f2245c024472ec58␟6424339255333594510:Navigate to next view`;\n } return [[\"kendoDateTimePickerLocalizedMessages\", \"\", \"dateTab\", i18n_55, \"dateTabLabel\", i18n_57, \"timeTab\", i18n_59, \"timeTabLabel\", i18n_61, \"toggle\", i18n_63, \"accept\", i18n_65, \"acceptLabel\", i18n_67, \"cancel\", i18n_69, \"cancelLabel\", i18n_71, \"now\", i18n_73, \"nowLabel\", i18n_75, \"today\", i18n_77, \"prevButtonTitle\", i18n_79, \"nextButtonTitle\", i18n_81], [3, \"value\", \"format\", \"twoDigitYearMax\", \"min\", \"max\", \"incompleteDateValidation\", \"formatPlaceholder\", \"placeholder\", \"disabled\", \"readonly\", \"role\", \"ariaReadOnly\", \"steps\", \"tabindex\", \"title\", \"focusableId\", \"hasPopup\", \"isPopupOpen\", \"kendoEventsOutsideAngular\", \"scope\", \"fillMode\", \"rounded\", \"size\", \"valueChange\"], [\"type\", \"button\", 1, \"k-input-button\", \"k-button\", \"k-icon-button\", 3, \"tabindex\", \"kendoEventsOutsideAngular\", \"scope\"], [\"toggleButton\", \"\"], [1, \"k-button-icon\", \"k-icon\", 3, \"ngClass\"], [\"container\", \"\"], [\"popupTemplate\", \"\"], [3, \"kendoEventsOutsideAngular\", \"scope\"], [1, \"k-datetime-buttongroup\", 3, \"kendoEventsOutsideAngular\", \"scope\"], [1, \"k-button-group\", \"k-button-group-stretched\"], [\"type\", \"button\", 1, \"k-button\", \"k-group-start\", \"k-date-tab\", 3, \"ngClass\", \"kendoEventsOutsideAngular\", \"scope\"], [\"type\", \"button\", 1, \"k-button\", \"k-group-end\", \"k-time-tab\", 3, \"ngClass\", \"kendoEventsOutsideAngular\"], [1, \"k-datetime-selector\", 3, \"kendoEventsOutsideAngular\"], [\"dateTimeSelector\", \"\"], [1, \"k-datetime-calendar-wrap\"], [3, \"value\", \"type\", \"min\", \"max\", \"focusedDate\", \"weekNumber\", \"navigation\", \"animateNavigation\", \"cellTemplate\", \"monthCellTemplate\", \"yearCellTemplate\", \"decadeCellTemplate\", \"centuryCellTemplate\", \"weekNumberTemplate\", \"headerTitleTemplate\", \"disabled\", \"disabledDates\", \"valueChange\"], [3, \"today\", \"prevButtonTitle\", \"nextButtonTitle\"], [1, \"k-datetime-time-wrap\"], [3, \"value\", \"format\", \"min\", \"max\", \"setButton\", \"cancelButton\", \"steps\", \"disabled\"], [3, \"now\", \"nowLabel\"], [1, \"k-datetime-footer\", \"k-action-buttons\", \"k-actions\", \"k-hstack\", \"k-justify-content-stretch\", 3, \"kendoEventsOutsideAngular\", \"scope\"], [\"type\", \"button\", \"class\", \"k-button k-time-cancel\", 3, \"ngClass\", \"kendoEventsOutsideAngular\", \"scope\", 4, \"ngIf\"], [\"type\", \"button\", 1, \"k-button\", \"k-time-accept\", 3, \"ngClass\", \"disabled\", \"kendoEventsOutsideAngular\", \"scope\"], [\"type\", \"button\", 1, \"k-button\", \"k-time-cancel\", 3, \"ngClass\", \"kendoEventsOutsideAngular\", \"scope\"]]; }, template: function DateTimePickerComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 0);\n ɵngcc0.ɵɵelementStart(1, \"kendo-dateinput\", 1);\n ɵngcc0.ɵɵlistener(\"valueChange\", function DateTimePickerComponent_Template_kendo_dateinput_valueChange_1_listener($event) { return ctx.handleInputValueChange($event); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(2, \"button\", 2, 3);\n ɵngcc0.ɵɵelement(4, \"span\", 4);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementContainer(5, null, 5);\n ɵngcc0.ɵɵtemplate(7, DateTimePickerComponent_ng_template_7_Template, 19, 84, \"ng-template\", null, 6, ɵngcc0.ɵɵtemplateRefExtractor);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"value\", ctx.value)(\"format\", ctx.format)(\"twoDigitYearMax\", ctx.twoDigitYearMax)(\"min\", ctx.min)(\"max\", ctx.max)(\"incompleteDateValidation\", ctx.incompleteDateValidation)(\"formatPlaceholder\", ctx.formatPlaceholder)(\"placeholder\", ctx.placeholder)(\"disabled\", ctx.disabled)(\"readonly\", ctx.readonly || ctx.readOnlyInput)(\"role\", ctx.inputRole)(\"ariaReadOnly\", ctx.readonly)(\"steps\", ctx.steps)(\"tabindex\", ctx.tabindex)(\"title\", ctx.title)(\"focusableId\", ctx.focusableId)(\"hasPopup\", true)(\"isPopupOpen\", ctx.isOpen)(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction1(29, _c38, ctx.handleKeyDown))(\"scope\", ctx)(\"fillMode\", ctx.fillMode)(\"rounded\", ctx.rounded)(\"size\", ctx.size);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"tabindex\", -1)(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction2(31, _c88, ctx.preventMouseDown, ctx.handleIconClick))(\"scope\", ctx);\n ɵngcc0.ɵɵattribute(\"title\", ctx.localization.get(\"toggle\"))(\"aria-label\", ctx.localization.get(\"toggle\"));\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction2(34, _c89, ctx.activeTab === \"date\", ctx.activeTab === \"time\"));\n } }, directives: function () { return [LocalizedMessagesDirective, DateInputComponent, ɵngcc4.EventsOutsideAngularDirective, ɵngcc2.NgClass, CalendarComponent, CalendarCustomMessagesComponent, TimeSelectorComponent, TimeSelectorCustomMessagesComponent, ɵngcc2.NgIf]; }, encapsulation: 2, changeDetection: 0 });\n__decorate([\n HostBinding('class.k-datetimepicker'),\n HostBinding('class.k-input'),\n __metadata(\"design:type\", Boolean)\n], DateTimePickerComponent.prototype, \"hostClasses\", void 0);\n__decorate([\n HostBinding('class.k-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DateTimePickerComponent.prototype, \"disabledClass\", null);\n__decorate([\n ViewChild('toggleButton', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], DateTimePickerComponent.prototype, \"toggleButton\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date),\n __metadata(\"design:paramtypes\", [Date])\n], DateTimePickerComponent.prototype, \"value\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], DateTimePickerComponent.prototype, \"format\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], DateTimePickerComponent.prototype, \"twoDigitYearMax\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], DateTimePickerComponent.prototype, \"tabindex\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], DateTimePickerComponent.prototype, \"disabledDates\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], DateTimePickerComponent.prototype, \"popupSettings\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateTimePickerComponent.prototype, \"focusableId\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateTimePickerComponent.prototype, \"title\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DateTimePickerComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DateTimePickerComponent.prototype, \"readonly\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DateTimePickerComponent.prototype, \"readOnlyInput\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DateTimePickerComponent.prototype, \"cancelButton\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DateTimePickerComponent.prototype, \"formatPlaceholder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateTimePickerComponent.prototype, \"placeholder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DateTimePickerComponent.prototype, \"steps\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], DateTimePickerComponent.prototype, \"focusedDate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateTimePickerComponent.prototype, \"calendarType\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DateTimePickerComponent.prototype, \"animateCalendarNavigation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DateTimePickerComponent.prototype, \"weekNumber\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date),\n __metadata(\"design:paramtypes\", [Date])\n], DateTimePickerComponent.prototype, \"min\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date),\n __metadata(\"design:paramtypes\", [Date])\n], DateTimePickerComponent.prototype, \"max\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DateTimePickerComponent.prototype, \"rangeValidation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DateTimePickerComponent.prototype, \"disabledDatesValidation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DateTimePickerComponent.prototype, \"incompleteDateValidation\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DateTimePickerComponent.prototype, \"valueChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DateTimePickerComponent.prototype, \"open\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DateTimePickerComponent.prototype, \"close\", void 0);\n__decorate([\n Output('focus'),\n __metadata(\"design:type\", EventEmitter)\n], DateTimePickerComponent.prototype, \"onFocus\", void 0);\n__decorate([\n Output('blur'),\n __metadata(\"design:type\", EventEmitter)\n], DateTimePickerComponent.prototype, \"onBlur\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], DateTimePickerComponent.prototype, \"defaultTab\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], DateTimePickerComponent.prototype, \"size\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], DateTimePickerComponent.prototype, \"rounded\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], DateTimePickerComponent.prototype, \"fillMode\", null);\n__decorate([\n ContentChild(CellTemplateDirective, { static: false }),\n __metadata(\"design:type\", CellTemplateDirective)\n], DateTimePickerComponent.prototype, \"cellTemplate\", void 0);\n__decorate([\n ContentChild(MonthCellTemplateDirective, { static: false }),\n __metadata(\"design:type\", MonthCellTemplateDirective)\n], DateTimePickerComponent.prototype, \"monthCellTemplate\", void 0);\n__decorate([\n ContentChild(YearCellTemplateDirective, { static: false }),\n __metadata(\"design:type\", YearCellTemplateDirective)\n], DateTimePickerComponent.prototype, \"yearCellTemplate\", void 0);\n__decorate([\n ContentChild(DecadeCellTemplateDirective, { static: false }),\n __metadata(\"design:type\", DecadeCellTemplateDirective)\n], DateTimePickerComponent.prototype, \"decadeCellTemplate\", void 0);\n__decorate([\n ContentChild(CenturyCellTemplateDirective, { static: false }),\n __metadata(\"design:type\", CenturyCellTemplateDirective)\n], DateTimePickerComponent.prototype, \"centuryCellTemplate\", void 0);\n__decorate([\n ContentChild(WeekNumberCellTemplateDirective, { static: false }),\n __metadata(\"design:type\", WeekNumberCellTemplateDirective)\n], DateTimePickerComponent.prototype, \"weekNumberTemplate\", void 0);\n__decorate([\n ContentChild(HeaderTitleTemplateDirective, { static: false }),\n __metadata(\"design:type\", HeaderTitleTemplateDirective)\n], DateTimePickerComponent.prototype, \"headerTitleTemplate\", void 0);\n__decorate([\n ViewChild('container', { read: ViewContainerRef, static: true }),\n __metadata(\"design:type\", ViewContainerRef)\n], DateTimePickerComponent.prototype, \"container\", void 0);\n__decorate([\n ViewChild('popupTemplate', { read: TemplateRef, static: true }),\n __metadata(\"design:type\", TemplateRef)\n], DateTimePickerComponent.prototype, \"popupTemplate\", void 0);\nDateTimePickerComponent = DateTimePickerComponent_1 = __decorate([ __param(6, Inject(TOUCH_ENABLED)),\n __metadata(\"design:paramtypes\", [PopupService,\n IntlService,\n ChangeDetectorRef,\n PickerService,\n NgZone,\n ElementRef, Boolean, LocalizationService,\n DisabledDatesService,\n Renderer2])\n], DateTimePickerComponent);\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 */\nlet DateRangePopupTemplateDirective = class DateRangePopupTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nDateRangePopupTemplateDirective.ɵfac = function DateRangePopupTemplateDirective_Factory(t) { return new (t || DateRangePopupTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nDateRangePopupTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DateRangePopupTemplateDirective, selectors: [[\"\", \"kendoDateRangePopupTemplate\", \"\"]] });\nDateRangePopupTemplateDirective = __decorate([ __metadata(\"design:paramtypes\", [TemplateRef])\n], DateRangePopupTemplateDirective);\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 */\nlet DateRangeService = class DateRangeService {\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 */\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.ɵfac = function DateRangeService_Factory(t) { return new (t || DateRangeService)(); };\nDateRangeService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: DateRangeService, factory: function (t) { return DateRangeService.ɵfac(t); } });\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 * export class AppComponent {\n * }\n * ```\n */\nlet DateRangePopupComponent = class DateRangePopupComponent {\n constructor(popupService, dateRangeService, ref, zone, rtl) {\n this.popupService = popupService;\n this.dateRangeService = dateRangeService;\n this.ref = ref;\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 if (this._show === show) {\n return;\n }\n const event = new PreventableEvent();\n if (show) {\n this.open.emit(event);\n }\n else {\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.destroyPopup();\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.ref.markForCheck();\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 if (!isPresent(this.popupSubscriptions)) {\n this.popupSubscriptions = new Subscription();\n }\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.destroyPopup();\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 destroyPopup() {\n if (isPresent(this.popupRef)) {\n this.popupRef.close();\n this.popupRef = null;\n }\n if (isPresent(this.popupSubscriptions)) {\n this.popupSubscriptions.unsubscribe();\n }\n }\n};\nDateRangePopupComponent.ɵfac = function DateRangePopupComponent_Factory(t) { return new (t || DateRangePopupComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc5.PopupService), ɵngcc0.ɵɵdirectiveInject(DateRangeService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(RTL, 8)); };\nDateRangePopupComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DateRangePopupComponent, selectors: [[\"kendo-daterange-popup\"]], contentQueries: function DateRangePopupComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, DateRangePopupTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, MultiViewCalendarComponent, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.contentTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.contentCalendar = _t);\n } }, viewQuery: function DateRangePopupComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c27, 5, ViewContainerRef);\n ɵngcc0.ɵɵviewQuery(_c90, 5);\n ɵngcc0.ɵɵviewQuery(MultiViewCalendarComponent, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.container = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.defaultTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.viewCalendar = _t);\n } }, inputs: { animate: \"animate\", collision: \"collision\", anchor: \"anchor\", anchorAlign: \"anchorAlign\", appendTo: \"appendTo\", popupAlign: \"popupAlign\", margin: \"margin\" }, outputs: { open: \"open\", close: \"close\", onBlur: \"blur\", onFocus: \"focus\", cancel: \"cancel\" }, exportAs: [\"kendo-daterange-popup\"], decls: 4, vars: 0, consts: [[\"container\", \"\"], [\"defaultTemplate\", \"\"], [\"kendoDateRangeSelection\", \"\"]], template: function DateRangePopupComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, null, 0);\n ɵngcc0.ɵɵtemplate(2, DateRangePopupComponent_ng_template_2_Template, 1, 0, \"ng-template\", null, 1, ɵngcc0.ɵɵtemplateRefExtractor);\n } }, directives: function () { return [MultiViewCalendarComponent, DateRangeSelectionDirective]; }, encapsulation: 2 });\n__decorate([\n ViewChild('container', { read: ViewContainerRef, static: false }),\n __metadata(\"design:type\", ViewContainerRef)\n], DateRangePopupComponent.prototype, \"container\", void 0);\n__decorate([\n ViewChild('defaultTemplate', { static: false }),\n __metadata(\"design:type\", TemplateRef)\n], DateRangePopupComponent.prototype, \"defaultTemplate\", void 0);\n__decorate([\n ContentChild(DateRangePopupTemplateDirective, { static: false }),\n __metadata(\"design:type\", DateRangePopupTemplateDirective)\n], DateRangePopupComponent.prototype, \"contentTemplate\", void 0);\n__decorate([\n ViewChildren(MultiViewCalendarComponent),\n __metadata(\"design:type\", QueryList)\n], DateRangePopupComponent.prototype, \"viewCalendar\", void 0);\n__decorate([\n ContentChildren(MultiViewCalendarComponent),\n __metadata(\"design:type\", QueryList)\n], DateRangePopupComponent.prototype, \"contentCalendar\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DateRangePopupComponent.prototype, \"animate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", ElementRef)\n], DateRangePopupComponent.prototype, \"anchor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DateRangePopupComponent.prototype, \"anchorAlign\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DateRangePopupComponent.prototype, \"appendTo\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DateRangePopupComponent.prototype, \"collision\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DateRangePopupComponent.prototype, \"popupAlign\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DateRangePopupComponent.prototype, \"margin\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DateRangePopupComponent.prototype, \"open\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DateRangePopupComponent.prototype, \"close\", void 0);\n__decorate([\n Output('blur'),\n __metadata(\"design:type\", EventEmitter)\n], DateRangePopupComponent.prototype, \"onBlur\", void 0);\n__decorate([\n Output('focus'),\n __metadata(\"design:type\", EventEmitter)\n], DateRangePopupComponent.prototype, \"onFocus\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DateRangePopupComponent.prototype, \"cancel\", void 0);\nDateRangePopupComponent = __decorate([ __param(4, Optional()), __param(4, Inject(RTL)),\n __metadata(\"design:paramtypes\", [PopupService,\n DateRangeService,\n ChangeDetectorRef,\n NgZone, Boolean])\n], DateRangePopupComponent);\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 * export class AppComponent {\n * public dateRange: any = { start: null, end: null };\n * }\n * ```\n */\nlet DateRangeComponent = class DateRangeComponent {\n constructor() {\n /**\n * @hidden\n */\n this.showDefault = false;\n validatePackage(packageMetadata);\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.ɵfac = function DateRangeComponent_Factory(t) { return new (t || DateRangeComponent)(); };\nDateRangeComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DateRangeComponent, selectors: [[\"kendo-daterange\"]], contentQueries: function DateRangeComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, DateRangePopupComponent, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.contentPopup = _t);\n } }, features: [ɵngcc0.ɵɵProvidersFeature([DateRangeService])], ngContentSelectors: _c11, decls: 2, vars: 1, consts: [[4, \"ngIf\"]], template: function DateRangeComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵprojection(0);\n ɵngcc0.ɵɵtemplate(1, DateRangeComponent_kendo_daterange_popup_1_Template, 1, 0, \"kendo-daterange-popup\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showDefault);\n } }, directives: [ɵngcc2.NgIf, DateRangePopupComponent], encapsulation: 2 });\n__decorate([\n ContentChildren(DateRangePopupComponent),\n __metadata(\"design:type\", QueryList)\n], DateRangeComponent.prototype, \"contentPopup\", void 0);\nDateRangeComponent = __decorate([ __metadata(\"design:paramtypes\", [])\n], DateRangeComponent);\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, 'k-focus');\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 */\nlet DateRangeEndInputDirective = class 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 * export 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 const shouldClamp = this.autoCorrectOn === correctOn && isPresent(value) && value < start;\n return shouldClamp ? 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.ɵfac = function DateRangeEndInputDirective_Factory(t) { return new (t || DateRangeEndInputDirective)(ɵngcc0.ɵɵdirectiveInject(DateRangeService), ɵngcc0.ɵɵdirectiveInject(DateInputComponent), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nDateRangeEndInputDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DateRangeEndInputDirective, selectors: [[\"\", \"kendoDateRangeEndInput\", \"\"]], inputs: { navigateCalendarOnFocus: \"navigateCalendarOnFocus\", autoCorrectOn: \"autoCorrectOn\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateRangeEndInputDirective.prototype, \"autoCorrectOn\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DateRangeEndInputDirective.prototype, \"navigateCalendarOnFocus\", void 0);\nDateRangeEndInputDirective = __decorate([ __metadata(\"design:paramtypes\", [DateRangeService,\n DateInputComponent,\n ElementRef,\n Renderer2,\n NgZone])\n], DateRangeEndInputDirective);\n\n/**\n * A directive which manages the start selection range.\n *\n * > You can use the DateRangeStartInputDirective only with a DateInput component.\n */\nlet DateRangeStartInputDirective = class 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 * export 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.ɵfac = function DateRangeStartInputDirective_Factory(t) { return new (t || DateRangeStartInputDirective)(ɵngcc0.ɵɵdirectiveInject(DateRangeService), ɵngcc0.ɵɵdirectiveInject(DateInputComponent), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nDateRangeStartInputDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DateRangeStartInputDirective, selectors: [[\"\", \"kendoDateRangeStartInput\", \"\"]], inputs: { navigateCalendarOnFocus: \"navigateCalendarOnFocus\", autoCorrectOn: \"autoCorrectOn\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateRangeStartInputDirective.prototype, \"autoCorrectOn\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DateRangeStartInputDirective.prototype, \"navigateCalendarOnFocus\", void 0);\nDateRangeStartInputDirective = __decorate([ __metadata(\"design:paramtypes\", [DateRangeService,\n DateInputComponent,\n ElementRef,\n Renderer2,\n NgZone])\n], DateRangeStartInputDirective);\n\n/**\n * A directive which manages the MultiViewCalendar range selection.\n */\nlet DateRangeSelectionDirective = class 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 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.ɵfac = function DateRangeSelectionDirective_Factory(t) { return new (t || DateRangeSelectionDirective)(ɵngcc0.ɵɵdirectiveInject(MultiViewCalendarComponent), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(DateRangeService, 8)); };\nDateRangeSelectionDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DateRangeSelectionDirective, selectors: [[\"\", \"kendoDateRangeSelection\", \"\"]], inputs: { autoCorrectOn: \"autoCorrectOn\", selectionRange: \"selectionRange\", activeRangeEnd: \"activeRangeEnd\" }, outputs: { activeRangeEndChange: \"activeRangeEndChange\", selectionRangeChange: \"selectionRangeChange\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateRangeSelectionDirective.prototype, \"autoCorrectOn\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], DateRangeSelectionDirective.prototype, \"selectionRange\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], DateRangeSelectionDirective.prototype, \"activeRangeEnd\", null);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DateRangeSelectionDirective.prototype, \"activeRangeEndChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DateRangeSelectionDirective.prototype, \"selectionRangeChange\", void 0);\nDateRangeSelectionDirective = __decorate([ __param(4, Optional()),\n __metadata(\"design:paramtypes\", [MultiViewCalendarComponent,\n ChangeDetectorRef,\n ElementRef,\n Renderer2,\n DateRangeService])\n], DateRangeSelectionDirective);\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 */\nlet KForOf = class 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.ɵfac = function KForOf_Factory(t) { return new (t || KForOf)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.IterableDiffers)); };\nKForOf.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: KForOf, selectors: [[\"\", \"kFor\", \"\", \"kForOf\", \"\"]], inputs: { kForTemplate: \"kForTemplate\", kForOf: \"kForOf\", kForTrackBy: \"kForTrackBy\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], KForOf.prototype, \"kForOf\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], KForOf.prototype, \"kForTrackBy\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], KForOf.prototype, \"kForTemplate\", null);\nKForOf = __decorate([ __metadata(\"design:paramtypes\", [ViewContainerRef,\n TemplateRef,\n IterableDiffers])\n], KForOf);\n/**\n * @hidden\n */\nfunction getTypeNameForDebugging(type) {\n return type.name || typeof type;\n}\n\n/**\n * @hidden\n */\nlet ViewComponent = class ViewComponent {\n constructor(bus, intl, cdr, element, zone, renderer, disabledDatesService) {\n this.bus = bus;\n this.intl = intl;\n this.cdr = cdr;\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.selectedDates = [];\n this.cellClick = new EventEmitter();\n this.weekNumberCellClick = new EventEmitter();\n this.cellEnter = new EventEmitter();\n this.cellLeave = new EventEmitter();\n this.colSpan = 0;\n this.subscriptions = new Subscription();\n this.domEvents = [];\n this.subscriptions.add(this.intl.changes.subscribe(this.intlChange.bind(this)));\n this.subscriptions.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 this.colSpan = this.service.rowLength({ prependCell: 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 shouldRenderCellContent(cellCtx) {\n return isPresent(cellCtx) && !(!this.isHorizontal() && cellCtx.isOtherMonth);\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': !context.isOtherMonth && isRangeEnd,\n 'k-range-mid': !context.isOtherMonth && context.isRangeMid,\n 'k-range-split-end': !context.isOtherMonth && context.isRangeSplitEnd,\n 'k-range-split-start': !context.isOtherMonth && context.isRangeSplitStart,\n 'k-range-start': !context.isOtherMonth && isRangeStart,\n 'k-state-active': isStartActive || isEndActive,\n 'k-state-focused': !context.isOtherMonth && this.isActive && context.isFocused,\n 'k-state-selected': !context.isOtherMonth && (context.isSelected || isRangeStart || isRangeEnd),\n 'k-today': !context.isOtherMonth && context.isToday,\n 'k-weekend': context.isWeekend,\n 'k-disabled': context.isDisabled,\n 'k-other-month': context.isOtherMonth\n });\n }\n tableCellIndex(rowIndex, cellIndex) {\n return `${rowIndex}:${cellIndex}`;\n }\n handleWeekNumberClick(week) {\n const availableDates = week.map(item => item.value).filter(date => !this.disabledDatesService.isDateDisabled(date));\n this.weekNumberCellClick.emit(availableDates);\n }\n firstWeekDateContext(rowCtx) {\n if (!this.weekNumber) {\n return null;\n }\n let idx = 0;\n let ctx = this.shouldRenderCellContent(rowCtx[idx]) ? rowCtx[idx] : null;\n while (!ctx && idx < rowCtx.length) {\n const cellCtx = rowCtx[++idx];\n ctx = this.shouldRenderCellContent(cellCtx) ? cellCtx : null;\n }\n return ctx;\n }\n updateData() {\n const time = last(this.selectedDates) || 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 selectedDates: this.selectedDates,\n selectionRange: this.selectionRange,\n viewDate: viewDate,\n isDateDisabled: this.disabledDatesService.isDateDisabled,\n direction: this.direction\n });\n }\n intlChange() {\n this.updateData();\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 return;\n }\n const index = cell.getAttribute('data-cell-index');\n const cellContext = this.cellByIndex(index);\n if (!cellContext.isDisabled) {\n const { ctrlKey, metaKey, shiftKey } = args;\n this.cellClick.emit({\n date: cellContext.value,\n modifiers: { ctrlKey, metaKey, shiftKey }\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.ɵfac = function ViewComponent_Factory(t) { return new (t || ViewComponent)(ɵngcc0.ɵɵdirectiveInject(BusViewService), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.IntlService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(DisabledDatesService)); };\nViewComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ViewComponent, selectors: [[\"\", \"kendoCalendarView\", \"\"]], inputs: { direction: \"direction\", isActive: \"isActive\", selectedDates: \"selectedDates\", weekNumber: \"weekNumber\", activeView: \"activeView\", cellUID: \"cellUID\", focusedDate: \"focusedDate\", viewDate: \"viewDate\", activeRangeEnd: \"activeRangeEnd\", selectionRange: \"selectionRange\", min: \"min\", max: \"max\", viewIndex: \"viewIndex\", templateRef: \"templateRef\", weekNumberTemplateRef: \"weekNumberTemplateRef\" }, outputs: { cellClick: \"cellClick\", weekNumberCellClick: \"weekNumberCellClick\", cellEnter: \"cellEnter\", cellLeave: \"cellLeave\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], attrs: _c91, decls: 4, vars: 2, consts: [[\"emptyCell\", \"\"], [\"class\", \"k-calendar-tr\", \"role\", \"row\", 4, \"ngIf\"], [\"class\", \"k-calendar-tr\", \"role\", \"row\", 4, \"kFor\", \"kForOf\"], [1, \"k-empty\", \"k-calendar-td\"], [\"role\", \"row\", 1, \"k-calendar-tr\"], [\"scope\", \"col\", 1, \"k-calendar-caption\", 3, \"colSpan\"], [3, \"ngIf\"], [4, \"kFor\", \"kForOf\"], [\"class\", \"k-alt k-calendar-td\", 3, \"kendoEventsOutsideAngular\", 4, \"ngIf\", \"ngIfElse\"], [1, \"k-alt\", \"k-calendar-td\", 3, \"kendoEventsOutsideAngular\"], [3, \"ngIf\", \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"class\", \"k-calendar-td\", \"role\", \"gridcell\", 3, \"ngClass\", \"title\", 4, \"ngIf\", \"ngIfElse\"], [\"role\", \"gridcell\", 1, \"k-calendar-td\", 3, \"ngClass\", \"title\"], [1, \"k-link\"], [4, \"ngIf\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]], template: function ViewComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ViewComponent_ng_template_0_Template, 2, 0, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(2, ViewComponent_tr_2_Template, 3, 2, \"tr\", 1);\n ɵngcc0.ɵɵtemplate(3, ViewComponent_tr_3_Template, 3, 2, \"tr\", 2);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.isHorizontal());\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"kForOf\", ctx.data);\n } }, directives: [ɵngcc2.NgIf, KForOf, ɵngcc4.EventsOutsideAngularDirective, ɵngcc2.NgTemplateOutlet, ɵngcc2.NgClass], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ViewComponent.prototype, \"direction\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ViewComponent.prototype, \"isActive\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ViewComponent.prototype, \"activeView\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ViewComponent.prototype, \"cellUID\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], ViewComponent.prototype, \"focusedDate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], ViewComponent.prototype, \"viewDate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ViewComponent.prototype, \"activeRangeEnd\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ViewComponent.prototype, \"selectionRange\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], ViewComponent.prototype, \"min\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], ViewComponent.prototype, \"max\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], ViewComponent.prototype, \"selectedDates\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], ViewComponent.prototype, \"weekNumber\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ViewComponent.prototype, \"viewIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], ViewComponent.prototype, \"templateRef\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], ViewComponent.prototype, \"weekNumberTemplateRef\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ViewComponent.prototype, \"cellClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ViewComponent.prototype, \"weekNumberCellClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ViewComponent.prototype, \"cellEnter\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ViewComponent.prototype, \"cellLeave\", void 0);\nViewComponent = __decorate([ __metadata(\"design:paramtypes\", [BusViewService,\n IntlService,\n ChangeDetectorRef,\n ElementRef,\n NgZone,\n Renderer2,\n DisabledDatesService])\n], ViewComponent);\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 */\nlet CalendarCommonModule = class CalendarCommonModule {\n};\nCalendarCommonModule.ɵfac = function CalendarCommonModule_Factory(t) { return new (t || CalendarCommonModule)(); };\nCalendarCommonModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: CalendarCommonModule });\nCalendarCommonModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule, EventsModule]] });\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 */\nlet TemplatesModule = class TemplatesModule {\n};\nTemplatesModule.ɵfac = function TemplatesModule_Factory(t) { return new (t || TemplatesModule)(); };\nTemplatesModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: TemplatesModule });\nTemplatesModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\n/**\n * @hidden\n */\nclass Messages extends ComponentMessages {\n}\nMessages.ɵfac = /*@__PURE__*/ function () { let ɵMessages_BaseFactory; return function Messages_Factory(t) { return (ɵMessages_BaseFactory || (ɵMessages_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(Messages)))(t || Messages); }; }();\nMessages.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: Messages, inputs: { today: \"today\", prevButtonTitle: \"prevButtonTitle\", nextButtonTitle: \"nextButtonTitle\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"today\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"prevButtonTitle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"nextButtonTitle\", void 0);\n\nvar MultiViewCalendarLocalizedMessagesDirective_1;\n/**\n * @hidden\n */\nlet MultiViewCalendarLocalizedMessagesDirective = MultiViewCalendarLocalizedMessagesDirective_1 = class MultiViewCalendarLocalizedMessagesDirective extends Messages {\n constructor(service) {\n super();\n this.service = service;\n }\n};\nMultiViewCalendarLocalizedMessagesDirective.ɵfac = function MultiViewCalendarLocalizedMessagesDirective_Factory(t) { return new (t || MultiViewCalendarLocalizedMessagesDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc3.LocalizationService)); };\nMultiViewCalendarLocalizedMessagesDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MultiViewCalendarLocalizedMessagesDirective, selectors: [[\"\", \"kendoMultiViewCalendarLocalizedMessages\", \"\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: Messages,\n useExisting: forwardRef(() => MultiViewCalendarLocalizedMessagesDirective_1) // tslint:disable-line:no-forward-ref\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature] });\nMultiViewCalendarLocalizedMessagesDirective = MultiViewCalendarLocalizedMessagesDirective_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], MultiViewCalendarLocalizedMessagesDirective);\n\nvar MultiViewCalendarCustomMessagesComponent_1;\n/**\n * Custom component messages override default component messages ([see example]({% slug globalization_dateinputs %}#toc-custom-messages)).\n */\nlet MultiViewCalendarCustomMessagesComponent = MultiViewCalendarCustomMessagesComponent_1 = class MultiViewCalendarCustomMessagesComponent extends Messages {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n};\nMultiViewCalendarCustomMessagesComponent.ɵfac = function MultiViewCalendarCustomMessagesComponent_Factory(t) { return new (t || MultiViewCalendarCustomMessagesComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc3.LocalizationService)); };\nMultiViewCalendarCustomMessagesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: MultiViewCalendarCustomMessagesComponent, selectors: [[\"kendo-multiviewcalendar-messages\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: Messages,\n useExisting: forwardRef(() => MultiViewCalendarCustomMessagesComponent_1) // tslint:disable-line:no-forward-ref\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function MultiViewCalendarCustomMessagesComponent_Template(rf, ctx) { }, encapsulation: 2 });\nMultiViewCalendarCustomMessagesComponent = MultiViewCalendarCustomMessagesComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], MultiViewCalendarCustomMessagesComponent);\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 */\nlet MultiViewCalendarModule = class MultiViewCalendarModule {\n};\nMultiViewCalendarModule.ɵfac = function MultiViewCalendarModule_Factory(t) { return new (t || MultiViewCalendarModule)(); };\nMultiViewCalendarModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: MultiViewCalendarModule });\nMultiViewCalendarModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ providers: [\n NavigationService,\n CenturyViewService,\n DecadeViewService,\n MonthViewService,\n YearViewService,\n WeekNamesService\n ], imports: [[\n CommonModule,\n CalendarCommonModule,\n IntlModule,\n TemplatesModule,\n PopupModule,\n EventsModule\n ], CalendarCommonModule, TemplatesModule] });\n\n/**\n * @hidden\n */\nclass CalendarMessages extends ComponentMessages {\n}\nCalendarMessages.ɵfac = /*@__PURE__*/ function () { let ɵCalendarMessages_BaseFactory; return function CalendarMessages_Factory(t) { return (ɵCalendarMessages_BaseFactory || (ɵCalendarMessages_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(CalendarMessages)))(t || CalendarMessages); }; }();\nCalendarMessages.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CalendarMessages, inputs: { today: \"today\", prevButtonTitle: \"prevButtonTitle\", nextButtonTitle: \"nextButtonTitle\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CalendarMessages.prototype, \"today\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CalendarMessages.prototype, \"prevButtonTitle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CalendarMessages.prototype, \"nextButtonTitle\", void 0);\n\nvar CalendarLocalizedMessagesDirective_1;\n/**\n * @hidden\n */\nlet CalendarLocalizedMessagesDirective = CalendarLocalizedMessagesDirective_1 = class CalendarLocalizedMessagesDirective extends CalendarMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n};\nCalendarLocalizedMessagesDirective.ɵfac = function CalendarLocalizedMessagesDirective_Factory(t) { return new (t || CalendarLocalizedMessagesDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc3.LocalizationService)); };\nCalendarLocalizedMessagesDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CalendarLocalizedMessagesDirective, selectors: [[\"\", \"kendoCalendarLocalizedMessages\", \"\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: CalendarMessages,\n useExisting: forwardRef(() => CalendarLocalizedMessagesDirective_1) // tslint:disable-line:no-forward-ref\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature] });\nCalendarLocalizedMessagesDirective = CalendarLocalizedMessagesDirective_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], CalendarLocalizedMessagesDirective);\n\nvar CalendarCustomMessagesComponent_1;\n/**\n * Custom component messages override default component messages ([see example]({% slug globalization_dateinputs %}#toc-custom-messages)).\n */\nlet CalendarCustomMessagesComponent = CalendarCustomMessagesComponent_1 = class CalendarCustomMessagesComponent extends CalendarMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n};\nCalendarCustomMessagesComponent.ɵfac = function CalendarCustomMessagesComponent_Factory(t) { return new (t || CalendarCustomMessagesComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc3.LocalizationService)); };\nCalendarCustomMessagesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CalendarCustomMessagesComponent, selectors: [[\"kendo-calendar-messages\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: CalendarMessages,\n useExisting: forwardRef(() => CalendarCustomMessagesComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function CalendarCustomMessagesComponent_Template(rf, ctx) { }, encapsulation: 2 });\nCalendarCustomMessagesComponent = CalendarCustomMessagesComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], CalendarCustomMessagesComponent);\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 */\nlet VirtualizationModule = class VirtualizationModule {\n};\nVirtualizationModule.ɵfac = function VirtualizationModule_Factory(t) { return new (t || VirtualizationModule)(); };\nVirtualizationModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: VirtualizationModule });\nVirtualizationModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule]] });\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 */\nlet CalendarModule = class CalendarModule {\n};\nCalendarModule.ɵfac = function CalendarModule_Factory(t) { return new (t || CalendarModule)(); };\nCalendarModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: CalendarModule });\nCalendarModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ providers: [\n CalendarDOMService,\n CenturyViewService,\n DecadeViewService,\n MonthViewService,\n YearViewService,\n WeekNamesService\n ], imports: [[\n CommonModule,\n CalendarCommonModule,\n MultiViewCalendarModule,\n IntlModule,\n TemplatesModule,\n VirtualizationModule,\n EventsModule,\n ResizeSensorModule\n ], CalendarCommonModule, TemplatesModule] });\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 */\nlet CalendarsModule = class CalendarsModule {\n};\nCalendarsModule.ɵfac = function CalendarsModule_Factory(t) { return new (t || CalendarsModule)(); };\nCalendarsModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: CalendarsModule });\nCalendarsModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[\n CalendarModule,\n MultiViewCalendarModule\n ], CalendarModule, MultiViewCalendarModule] });\n\n/**\n * @hidden\n */\nclass DateInputMessages extends ComponentMessages {\n}\nDateInputMessages.ɵfac = /*@__PURE__*/ function () { let ɵDateInputMessages_BaseFactory; return function DateInputMessages_Factory(t) { return (ɵDateInputMessages_BaseFactory || (ɵDateInputMessages_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(DateInputMessages)))(t || DateInputMessages); }; }();\nDateInputMessages.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DateInputMessages, inputs: { decrement: \"decrement\", increment: \"increment\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateInputMessages.prototype, \"decrement\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateInputMessages.prototype, \"increment\", void 0);\n\nvar DateInputLocalizedMessagesDirective_1;\n/**\n * @hidden\n */\nlet DateInputLocalizedMessagesDirective = DateInputLocalizedMessagesDirective_1 = class DateInputLocalizedMessagesDirective extends DateInputMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n};\nDateInputLocalizedMessagesDirective.ɵfac = function DateInputLocalizedMessagesDirective_Factory(t) { return new (t || DateInputLocalizedMessagesDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc3.LocalizationService)); };\nDateInputLocalizedMessagesDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DateInputLocalizedMessagesDirective, selectors: [[\"\", \"kendoDateInputLocalizedMessages\", \"\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: DateInputMessages,\n useExisting: forwardRef(() => DateInputLocalizedMessagesDirective_1) // tslint:disable-line:no-forward-ref\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature] });\nDateInputLocalizedMessagesDirective = DateInputLocalizedMessagesDirective_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], DateInputLocalizedMessagesDirective);\n\nvar DateInputCustomMessagesComponent_1;\n/**\n * Custom component messages override default component messages ([see example]({% slug globalization_dateinputs %}#toc-custom-messages)).\n */\nlet DateInputCustomMessagesComponent = DateInputCustomMessagesComponent_1 = class DateInputCustomMessagesComponent extends DateInputMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n};\nDateInputCustomMessagesComponent.ɵfac = function DateInputCustomMessagesComponent_Factory(t) { return new (t || DateInputCustomMessagesComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc3.LocalizationService)); };\nDateInputCustomMessagesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DateInputCustomMessagesComponent, selectors: [[\"kendo-dateinput-messages\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: DateInputMessages,\n useExisting: forwardRef(() => DateInputCustomMessagesComponent_1) // tslint:disable-line:no-forward-ref\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DateInputCustomMessagesComponent_Template(rf, ctx) { }, encapsulation: 2 });\nDateInputCustomMessagesComponent = DateInputCustomMessagesComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], DateInputCustomMessagesComponent);\n\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the DateInput component.\n */\nlet DateInputModule = class DateInputModule {\n};\nDateInputModule.ɵfac = function DateInputModule_Factory(t) { return new (t || DateInputModule)(); };\nDateInputModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: DateInputModule });\nDateInputModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule, IntlModule, EventsModule]] });\n\n/**\n * @hidden\n */\nclass DatePickerMessages extends ComponentMessages {\n}\nDatePickerMessages.ɵfac = /*@__PURE__*/ function () { let ɵDatePickerMessages_BaseFactory; return function DatePickerMessages_Factory(t) { return (ɵDatePickerMessages_BaseFactory || (ɵDatePickerMessages_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(DatePickerMessages)))(t || DatePickerMessages); }; }();\nDatePickerMessages.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DatePickerMessages, inputs: { today: \"today\", toggle: \"toggle\", prevButtonTitle: \"prevButtonTitle\", nextButtonTitle: \"nextButtonTitle\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DatePickerMessages.prototype, \"today\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DatePickerMessages.prototype, \"toggle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DatePickerMessages.prototype, \"prevButtonTitle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DatePickerMessages.prototype, \"nextButtonTitle\", void 0);\n\nvar DatePickerLocalizedMessagesDirective_1;\n/**\n * @hidden\n */\nlet DatePickerLocalizedMessagesDirective = DatePickerLocalizedMessagesDirective_1 = class DatePickerLocalizedMessagesDirective extends DatePickerMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n};\nDatePickerLocalizedMessagesDirective.ɵfac = function DatePickerLocalizedMessagesDirective_Factory(t) { return new (t || DatePickerLocalizedMessagesDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc3.LocalizationService)); };\nDatePickerLocalizedMessagesDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DatePickerLocalizedMessagesDirective, selectors: [[\"\", \"kendoDatePickerLocalizedMessages\", \"\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: DatePickerMessages,\n useExisting: forwardRef(() => DatePickerLocalizedMessagesDirective_1) // tslint:disable-line:no-forward-ref\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature] });\nDatePickerLocalizedMessagesDirective = DatePickerLocalizedMessagesDirective_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], DatePickerLocalizedMessagesDirective);\n\nvar DatePickerCustomMessagesComponent_1;\n/**\n * Custom component messages override default component messages ([see example]({% slug globalization_dateinputs %}#toc-custom-messages)).\n */\nlet DatePickerCustomMessagesComponent = DatePickerCustomMessagesComponent_1 = class DatePickerCustomMessagesComponent extends DatePickerMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n};\nDatePickerCustomMessagesComponent.ɵfac = function DatePickerCustomMessagesComponent_Factory(t) { return new (t || DatePickerCustomMessagesComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc3.LocalizationService)); };\nDatePickerCustomMessagesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DatePickerCustomMessagesComponent, selectors: [[\"kendo-datepicker-messages\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: DatePickerMessages,\n useExisting: forwardRef(() => DatePickerCustomMessagesComponent_1) // tslint:disable-line:no-forward-ref\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DatePickerCustomMessagesComponent_Template(rf, ctx) { }, encapsulation: 2 });\nDatePickerCustomMessagesComponent = DatePickerCustomMessagesComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], DatePickerCustomMessagesComponent);\n\nconst ɵ0$e = touchEnabled;\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the DatePicker component.\n */\nlet DatePickerModule = class DatePickerModule {\n};\nDatePickerModule.ɵfac = function DatePickerModule_Factory(t) { return new (t || DatePickerModule)(); };\nDatePickerModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: DatePickerModule });\nDatePickerModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ providers: [{ provide: TOUCH_ENABLED, useValue: ɵ0$e }], imports: [[\n CommonModule,\n DateInputModule,\n CalendarModule,\n IntlModule,\n PopupModule,\n TemplatesModule,\n EventsModule\n ], TemplatesModule] });\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 */\nlet DateRangeModule = class DateRangeModule {\n};\nDateRangeModule.ɵfac = function DateRangeModule_Factory(t) { return new (t || DateRangeModule)(); };\nDateRangeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: DateRangeModule });\nDateRangeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule, COMPONENT_MODULES]] });\n\nconst div$1 = domContainerFactory('div');\nconst ul$1 = domContainerFactory('ul');\nconst li$1 = domContainerFactory('li');\nconst span = domContainerFactory('span');\nconst listTitle = () => span('hour', 'k-title k-timeselector-title');\nconst listItem = () => li$1('02', 'k-item');\nconst list = () => ul$1([listItem()], 'k-reset');\nconst scrollable$1 = () => (div$1([list()], 'k-time-container k-flex k-content k-calendar-content k-scrollable'));\nconst timeListWrapper = () => {\n if (!isDocumentAvailable()) {\n return null;\n }\n return div$1([listTitle(), div$1([scrollable$1()], 'k-time-list')], 'k-time-list-wrapper', { left: '-10000px', position: 'absolute' });\n};\nconst TIMELIST_WRAPPER = timeListWrapper();\n/**\n * @hidden\n */\nlet TimePickerDOMService = class 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.ɵfac = function TimePickerDOMService_Factory(t) { return new (t || TimePickerDOMService)(); };\nTimePickerDOMService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: TimePickerDOMService, factory: function (t) { return TimePickerDOMService.ɵfac(t); } });\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 */\nlet HoursService = class 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.ɵfac = function HoursService_Factory(t) { return new (t || HoursService)(ɵngcc0.ɵɵinject(ɵngcc1.IntlService)); };\nHoursService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: HoursService, factory: function (t) { return HoursService.ɵfac(t); } });\nHoursService = __decorate([ __metadata(\"design:paramtypes\", [IntlService])\n], HoursService);\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 */\nlet MinutesService = class 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.ɵfac = function MinutesService_Factory(t) { return new (t || MinutesService)(ɵngcc0.ɵɵinject(ɵngcc1.IntlService)); };\nMinutesService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: MinutesService, factory: function (t) { return MinutesService.ɵfac(t); } });\nMinutesService = __decorate([ __metadata(\"design:paramtypes\", [IntlService])\n], MinutesService);\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 */\nlet SecondsService = class 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 = (second) => {\n const date = setSeconds(MIDNIGHT_DATE, second);\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.ɵfac = function SecondsService_Factory(t) { return new (t || SecondsService)(ɵngcc0.ɵɵinject(ɵngcc1.IntlService)); };\nSecondsService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: SecondsService, factory: function (t) { return SecondsService.ɵfac(t); } });\nSecondsService = __decorate([ __metadata(\"design:paramtypes\", [IntlService])\n], SecondsService);\n\nconst MILLISECONDS_IN_SECOND = 1000;\nconst clampToRange$3 = (rangeValue) => (value) => value % rangeValue;\nconst clamp$3 = clampToRange$3(MILLISECONDS_IN_SECOND);\nconst stepper$3 = (start, step) => (idx) => clamp$3(start + (idx * step));\nconst distanceFromMin$3 = (value, min) => clamp$3(MILLISECONDS_IN_SECOND + value - min);\nconst limit$3 = (borderValue) => (barrier, value) => {\n const useBarrier = !value ||\n (barrier.getHours() === value.getHours() &&\n barrier.getMinutes() === value.getMinutes() &&\n barrier.getSeconds() === value.getSeconds());\n return useBarrier ? barrier : setMilliseconds(barrier, borderValue);\n};\nconst limitDown$3 = limit$3(0);\nconst limitUp$3 = limit$3(MILLISECONDS_IN_SECOND - 1);\n/**\n * @hidden\n */\nlet MillisecondsService = class MillisecondsService {\n constructor(intl) {\n this.intl = intl;\n this.insertUndividedMax = false;\n }\n apply(value, candidate) {\n return setMilliseconds(value, candidate.getMilliseconds());\n }\n configure(settings) {\n const { insertUndividedMax = this.insertUndividedMax, min = this.min, max = this.max, step = this.step } = settings;\n this.insertUndividedMax = insertUndividedMax;\n this.toListItem = (millisecond) => {\n const date = setMilliseconds(MIDNIGHT_DATE, millisecond);\n return {\n text: this.intl.formatDate(date, \"SSS\"),\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 getMillisecond = stepper$3(min, this.step);\n const convertToItem = (idx) => (this.toListItem(getMillisecond(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$3(min, value), limitUp$3(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.lastMillisecond(value) === value.getMilliseconds();\n return matchMax || !this.isMissing(value);\n }\n divideByStep(value) {\n return distanceFromMin$3(value.getMilliseconds(), this.min.getMilliseconds()) / this.step;\n }\n addLast(data, value) {\n if (this.insertUndividedMax && this.isLastMissing(value)) {\n data.push(this.toListItem(this.lastMillisecond(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.getMilliseconds());\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$3(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(setMilliseconds(this.max, this.lastMillisecond(value)));\n }\n lastMillisecond(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.getMilliseconds(), max.getMilliseconds()];\n }\n};\nMillisecondsService.ɵfac = function MillisecondsService_Factory(t) { return new (t || MillisecondsService)(ɵngcc0.ɵɵinject(ɵngcc1.IntlService)); };\nMillisecondsService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: MillisecondsService, factory: function (t) { return MillisecondsService.ɵfac(t); } });\nMillisecondsService = __decorate([ __metadata(\"design:paramtypes\", [IntlService])\n], MillisecondsService);\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 */\nlet DayPeriodService = class 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.ɵfac = function DayPeriodService_Factory(t) { return new (t || DayPeriodService)(ɵngcc0.ɵɵinject(ɵngcc1.IntlService)); };\nDayPeriodService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: DayPeriodService, factory: function (t) { return DayPeriodService.ɵfac(t); } });\nDayPeriodService = __decorate([ __metadata(\"design:paramtypes\", [IntlService])\n], DayPeriodService);\n\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 [TIME_PART.millisecond]: MillisecondsService\n};\n/**\n * @hidden\n */\nlet TimeListComponent = class 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 * export 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.ɵfac = function TimeListComponent_Factory(t) { return new (t || TimeListComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Injector), ɵngcc0.ɵɵdirectiveInject(TimePickerDOMService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nTimeListComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: TimeListComponent, selectors: [[\"kendo-timelist\"]], viewQuery: function TimeListComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(VirtualizationComponent, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.virtualization = _t.first);\n } }, hostVars: 3, hostBindings: function TimeListComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"tabindex\", ctx.tabIndex);\n ɵngcc0.ɵɵclassProp(\"k-time-list\", ctx.componentClass);\n } }, inputs: { min: \"min\", max: \"max\", step: \"step\", disabled: \"disabled\", value: \"value\", part: \"part\" }, outputs: { valueChange: \"valueChange\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], decls: 3, vars: 13, consts: [[\"role\", \"presentation\", \"tabindex\", \"-1\", 1, \"k-time-container\", 3, \"skip\", \"take\", \"total\", \"itemHeight\", \"maxScrollDifference\", \"topOffset\", \"bottomOffset\"], [1, \"k-reset\", 3, \"ngStyle\", \"kendoEventsOutsideAngular\", \"scope\"], [\"class\", \"k-item\", 4, \"ngFor\", \"ngForOf\"], [1, \"k-item\"]], template: function TimeListComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-virtualization\", 0)(1, \"ul\", 1);\n ɵngcc0.ɵɵtemplate(2, TimeListComponent_li_2_Template, 3, 2, \"li\", 2);\n ɵngcc0.ɵɵelementEnd()();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"skip\", ctx.skip)(\"take\", ctx.total)(\"total\", ctx.total)(\"itemHeight\", ctx.itemHeight)(\"maxScrollDifference\", ctx.listHeight)(\"topOffset\", ctx.topOffset)(\"bottomOffset\", ctx.bottomOffset);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngStyle\", ctx.style)(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction1(11, _c2, ctx.handleItemClick))(\"scope\", ctx);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.data);\n } }, directives: [VirtualizationComponent, ɵngcc2.NgStyle, ɵngcc4.EventsOutsideAngularDirective, ɵngcc2.NgForOf], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], TimeListComponent.prototype, \"min\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], TimeListComponent.prototype, \"max\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], TimeListComponent.prototype, \"part\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], TimeListComponent.prototype, \"step\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TimeListComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], TimeListComponent.prototype, \"value\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TimeListComponent.prototype, \"valueChange\", void 0);\n__decorate([\n ViewChild(VirtualizationComponent, { static: true }),\n __metadata(\"design:type\", VirtualizationComponent)\n], TimeListComponent.prototype, \"virtualization\", void 0);\n__decorate([\n HostBinding(\"attr.tabindex\"),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [])\n], TimeListComponent.prototype, \"tabIndex\", null);\n__decorate([\n HostBinding(\"class.k-time-list\"),\n __metadata(\"design:type\", Boolean)\n], TimeListComponent.prototype, \"componentClass\", void 0);\nTimeListComponent = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n Injector,\n TimePickerDOMService,\n Renderer2,\n NgZone])\n], TimeListComponent);\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$7 = (value) => value.getHours(), ɵ4$3 = (_, 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$7,\n minGetter: ɵ4$3\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 */\nlet TimeSelectorComponent = class 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 * 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 * export 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.renderer.addClass(this.element.nativeElement, 'k-timeselector');\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 * export 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.ɵfac = function TimeSelectorComponent_Factory(t) { return new (t || TimeSelectorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc3.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.IntlService), ɵngcc0.ɵɵdirectiveInject(TimePickerDOMService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(PickerService, 8)); };\nTimeSelectorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: TimeSelectorComponent, selectors: [[\"kendo-timeselector\"]], viewQuery: function TimeSelectorComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c93, 5);\n ɵngcc0.ɵɵviewQuery(_c94, 5);\n ɵngcc0.ɵɵviewQuery(_c95, 5);\n ɵngcc0.ɵɵviewQuery(TimeListComponent, 5);\n ɵngcc0.ɵɵviewQuery(_c96, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.accept = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.cancel = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.now = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.timeLists = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.timeListWrappers = _t);\n } }, hostVars: 2, hostBindings: function TimeSelectorComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-disabled\", ctx.disabledClass);\n } }, inputs: { format: \"format\", min: \"min\", max: \"max\", cancelButton: \"cancelButton\", setButton: \"setButton\", nowButton: \"nowButton\", disabled: \"disabled\", value: \"value\", steps: \"steps\" }, outputs: { valueChange: \"valueChange\", valueReject: \"valueReject\" }, exportAs: [\"kendo-timeselector\"], features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.timeselector'\n }\n ]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 9, vars: 4, consts: function () { let i18n_97; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The Accept button text in the timeselector component\n * @meaning kendo.timeselector.accept\n */\n const MSG_EXTERNAL_5362895271044573681$$DIST_FESM2015_INDEX_JS_98 = goog.getMsg(\"Set\");\n i18n_97 = MSG_EXTERNAL_5362895271044573681$$DIST_FESM2015_INDEX_JS_98;\n }\n else {\n i18n_97 = $localize `:kendo.timeselector.accept|The Accept button text in the timeselector component␟801811aa1609e3f173c86baa82cee037f75a215f␟5362895271044573681:Set`;\n } let i18n_99; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the Accept button in the timeselector component\n * @meaning kendo.timeselector.acceptLabel\n */\n const MSG_EXTERNAL_3417396278000787211$$DIST_FESM2015_INDEX_JS_100 = goog.getMsg(\"Set time\");\n i18n_99 = MSG_EXTERNAL_3417396278000787211$$DIST_FESM2015_INDEX_JS_100;\n }\n else {\n i18n_99 = $localize `:kendo.timeselector.acceptLabel|The label for the Accept button in the timeselector component␟b4b1e5ac55f0330f6c4e32b866ae4339ad969978␟3417396278000787211:Set time`;\n } let i18n_101; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The Cancel button text in the timeselector component\n * @meaning kendo.timeselector.cancel\n */\n const MSG_EXTERNAL_1890188482755567622$$DIST_FESM2015_INDEX_JS_102 = goog.getMsg(\"Cancel\");\n i18n_101 = MSG_EXTERNAL_1890188482755567622$$DIST_FESM2015_INDEX_JS_102;\n }\n else {\n i18n_101 = $localize `:kendo.timeselector.cancel|The Cancel button text in the timeselector component␟3004d7704ffa6202a3b3925fcea490e486203a3e␟1890188482755567622:Cancel`;\n } let i18n_103; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the Cancel button in the timeselector component\n * @meaning kendo.timeselector.cancelLabel\n */\n const MSG_EXTERNAL_5738120209397145846$$DIST_FESM2015_INDEX_JS_104 = goog.getMsg(\"Cancel changes\");\n i18n_103 = MSG_EXTERNAL_5738120209397145846$$DIST_FESM2015_INDEX_JS_104;\n }\n else {\n i18n_103 = $localize `:kendo.timeselector.cancelLabel|The label for the Cancel button in the timeselector component␟08dfbdfffd662371a6ff4c0b6ed82b9faa48143b␟5738120209397145846:Cancel changes`;\n } let i18n_105; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The Now button text in the timeselector component\n * @meaning kendo.timeselector.now\n */\n const MSG_EXTERNAL_1926162752852226109$$DIST_FESM2015_INDEX_JS_106 = goog.getMsg(\"Now\");\n i18n_105 = MSG_EXTERNAL_1926162752852226109$$DIST_FESM2015_INDEX_JS_106;\n }\n else {\n i18n_105 = $localize `:kendo.timeselector.now|The Now button text in the timeselector component␟98cba1ae36a7bbe15e1bac1837e07922ec109e7d␟1926162752852226109:Now`;\n } let i18n_107; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the Now button in the timeselector component\n * @meaning kendo.timeselector.nowLabel\n */\n const MSG_EXTERNAL_7789175884909488647$$DIST_FESM2015_INDEX_JS_108 = goog.getMsg(\"Select now\");\n i18n_107 = MSG_EXTERNAL_7789175884909488647$$DIST_FESM2015_INDEX_JS_108;\n }\n else {\n i18n_107 = $localize `:kendo.timeselector.nowLabel|The label for the Now button in the timeselector component␟08e6a8a51d970609e138950fdd89c5cf201869f3␟7789175884909488647:Select now`;\n } return [[\"kendoTimeSelectorLocalizedMessages\", \"\", \"accept\", i18n_97, \"acceptLabel\", i18n_99, \"cancel\", i18n_101, \"cancelLabel\", i18n_103, \"now\", i18n_105, \"nowLabel\", i18n_107], [1, \"k-time-header\"], [1, \"k-title\", \"k-timeselector-title\"], [\"type\", \"button\", \"class\", \"k-button k-button-md k-rounded-md k-button-flat k-button-flat-base k-time-now\", 3, \"kendoEventsOutsideAngular\", \"scope\", \"disabled\", 4, \"ngIf\"], [1, \"k-time-list-container\"], [1, \"k-time-highlight\"], [\"ngFor\", \"\", 3, \"ngForOf\"], [\"class\", \"k-time-footer k-action-buttons k-actions k-hstack k-justify-content-stretch\", 4, \"ngIf\"], [\"type\", \"button\", 1, \"k-button\", \"k-button-md\", \"k-rounded-md\", \"k-button-flat\", \"k-button-flat-base\", \"k-time-now\", 3, \"kendoEventsOutsideAngular\", \"scope\", \"disabled\"], [\"now\", \"\"], [\"class\", \"k-time-list-wrapper\", \"role\", \"presentation\", \"tabindex\", \"-1\", 4, \"ngIf\"], [\"class\", \"k-time-separator\", 4, \"ngIf\"], [\"role\", \"presentation\", \"tabindex\", \"-1\", 1, \"k-time-list-wrapper\"], [\"listWrapper\", \"\"], [3, \"min\", \"max\", \"part\", \"step\", \"disabled\", \"value\", \"kendoEventsOutsideAngular\", \"scope\", \"valueChange\"], [1, \"k-time-separator\"], [1, \"k-time-footer\", \"k-action-buttons\", \"k-actions\", \"k-hstack\", \"k-justify-content-stretch\"], [\"class\", \"k-button k-time-cancel k-button-md k-rounded-md k-button-solid k-button-solid-base\", \"type\", \"button\", 3, \"kendoEventsOutsideAngular\", \"scope\", \"disabled\", 4, \"ngIf\"], [\"type\", \"button\", \"class\", \"k-button k-time-accept k-button-md k-rounded-md k-button-solid k-button-solid-primary\", 3, \"kendoEventsOutsideAngular\", \"scope\", \"disabled\", 4, \"ngIf\"], [\"type\", \"button\", 1, \"k-button\", \"k-time-cancel\", \"k-button-md\", \"k-rounded-md\", \"k-button-solid\", \"k-button-solid-base\", 3, \"kendoEventsOutsideAngular\", \"scope\", \"disabled\"], [\"cancel\", \"\"], [\"type\", \"button\", 1, \"k-button\", \"k-time-accept\", \"k-button-md\", \"k-rounded-md\", \"k-button-solid\", \"k-button-solid-primary\", 3, \"kendoEventsOutsideAngular\", \"scope\", \"disabled\"], [\"accept\", \"\"]]; }, template: function TimeSelectorComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 0);\n ɵngcc0.ɵɵelementStart(1, \"div\", 1)(2, \"span\", 2);\n ɵngcc0.ɵɵtext(3);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(4, TimeSelectorComponent_button_4_Template, 3, 10, \"button\", 3);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(5, \"div\", 4);\n ɵngcc0.ɵɵelement(6, \"span\", 5);\n ɵngcc0.ɵɵtemplate(7, TimeSelectorComponent_ng_template_7_Template, 2, 2, \"ng-template\", 6);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(8, TimeSelectorComponent_div_8_Template, 3, 2, \"div\", 7);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx.intl.formatDate(ctx.current, ctx.format), \" \");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showNowButton);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.dateFormatParts);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.setButton || ctx.cancelButton);\n } }, directives: function () { return [TimeSelectorLocalizedMessagesDirective, ɵngcc2.NgIf, ɵngcc4.EventsOutsideAngularDirective, ɵngcc2.NgForOf, TimeListComponent]; }, encapsulation: 2, changeDetection: 0 });\n__decorate([\n ViewChild('accept', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], TimeSelectorComponent.prototype, \"accept\", void 0);\n__decorate([\n ViewChild('cancel', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], TimeSelectorComponent.prototype, \"cancel\", void 0);\n__decorate([\n ViewChild('now', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], TimeSelectorComponent.prototype, \"now\", void 0);\n__decorate([\n ViewChildren(TimeListComponent),\n __metadata(\"design:type\", QueryList)\n], TimeSelectorComponent.prototype, \"timeLists\", void 0);\n__decorate([\n ViewChildren('listWrapper'),\n __metadata(\"design:type\", QueryList)\n], TimeSelectorComponent.prototype, \"timeListWrappers\", void 0);\n__decorate([\n HostBinding('class.k-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], TimeSelectorComponent.prototype, \"disabledClass\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TimeSelectorComponent.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], TimeSelectorComponent.prototype, \"min\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], TimeSelectorComponent.prototype, \"max\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TimeSelectorComponent.prototype, \"cancelButton\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TimeSelectorComponent.prototype, \"setButton\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TimeSelectorComponent.prototype, \"nowButton\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TimeSelectorComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], TimeSelectorComponent.prototype, \"steps\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], TimeSelectorComponent.prototype, \"value\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TimeSelectorComponent.prototype, \"valueChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TimeSelectorComponent.prototype, \"valueReject\", void 0);\nTimeSelectorComponent = __decorate([ __param(7, Optional()),\n __metadata(\"design:paramtypes\", [LocalizationService,\n ChangeDetectorRef,\n ElementRef,\n IntlService,\n TimePickerDOMService,\n NgZone,\n Renderer2,\n PickerService])\n], TimeSelectorComponent);\n\n/**\n * @hidden\n */\nclass TimePickerMessages extends ComponentMessages {\n}\nTimePickerMessages.ɵfac = /*@__PURE__*/ function () { let ɵTimePickerMessages_BaseFactory; return function TimePickerMessages_Factory(t) { return (ɵTimePickerMessages_BaseFactory || (ɵTimePickerMessages_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(TimePickerMessages)))(t || TimePickerMessages); }; }();\nTimePickerMessages.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: TimePickerMessages, inputs: { accept: \"accept\", acceptLabel: \"acceptLabel\", cancel: \"cancel\", cancelLabel: \"cancelLabel\", now: \"now\", nowLabel: \"nowLabel\", toggle: \"toggle\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TimePickerMessages.prototype, \"accept\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TimePickerMessages.prototype, \"acceptLabel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TimePickerMessages.prototype, \"cancel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TimePickerMessages.prototype, \"cancelLabel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TimePickerMessages.prototype, \"now\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TimePickerMessages.prototype, \"nowLabel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TimePickerMessages.prototype, \"toggle\", void 0);\n\nvar TimePickerLocalizedMessagesDirective_1;\n/**\n * @hidden\n */\nlet TimePickerLocalizedMessagesDirective = TimePickerLocalizedMessagesDirective_1 = class TimePickerLocalizedMessagesDirective extends TimePickerMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n};\nTimePickerLocalizedMessagesDirective.ɵfac = function TimePickerLocalizedMessagesDirective_Factory(t) { return new (t || TimePickerLocalizedMessagesDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc3.LocalizationService)); };\nTimePickerLocalizedMessagesDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: TimePickerLocalizedMessagesDirective, selectors: [[\"\", \"kendoTimePickerLocalizedMessages\", \"\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: TimePickerMessages,\n useExisting: forwardRef(() => TimePickerLocalizedMessagesDirective_1) // tslint:disable-line:no-forward-ref\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature] });\nTimePickerLocalizedMessagesDirective = TimePickerLocalizedMessagesDirective_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], TimePickerLocalizedMessagesDirective);\n\nvar TimePickerCustomMessagesComponent_1;\n/**\n * Custom component messages override default component messages ([see example]({% slug globalization_dateinputs %}#toc-custom-messages)).\n */\nlet TimePickerCustomMessagesComponent = TimePickerCustomMessagesComponent_1 = class TimePickerCustomMessagesComponent extends TimePickerMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n};\nTimePickerCustomMessagesComponent.ɵfac = function TimePickerCustomMessagesComponent_Factory(t) { return new (t || TimePickerCustomMessagesComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc3.LocalizationService)); };\nTimePickerCustomMessagesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: TimePickerCustomMessagesComponent, selectors: [[\"kendo-timepicker-messages\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: TimePickerMessages,\n useExisting: forwardRef(() => TimePickerCustomMessagesComponent_1) // tslint:disable-line:no-forward-ref\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function TimePickerCustomMessagesComponent_Template(rf, ctx) { }, encapsulation: 2 });\nTimePickerCustomMessagesComponent = TimePickerCustomMessagesComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], TimePickerCustomMessagesComponent);\n\nvar TimeSelectorLocalizedMessagesDirective_1;\n/**\n * @hidden\n */\nlet TimeSelectorLocalizedMessagesDirective = TimeSelectorLocalizedMessagesDirective_1 = class TimeSelectorLocalizedMessagesDirective extends TimePickerMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n};\nTimeSelectorLocalizedMessagesDirective.ɵfac = function TimeSelectorLocalizedMessagesDirective_Factory(t) { return new (t || TimeSelectorLocalizedMessagesDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc3.LocalizationService)); };\nTimeSelectorLocalizedMessagesDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: TimeSelectorLocalizedMessagesDirective, selectors: [[\"\", \"kendoTimeSelectorLocalizedMessages\", \"\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: TimePickerMessages,\n useExisting: forwardRef(() => TimeSelectorLocalizedMessagesDirective_1) // tslint:disable-line:no-forward-ref\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature] });\nTimeSelectorLocalizedMessagesDirective = TimeSelectorLocalizedMessagesDirective_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], TimeSelectorLocalizedMessagesDirective);\n\nvar TimeSelectorCustomMessagesComponent_1;\n/**\n * @hidden\n *\n * Custom component messages override default component messages.\n */\nlet TimeSelectorCustomMessagesComponent = TimeSelectorCustomMessagesComponent_1 = class TimeSelectorCustomMessagesComponent extends TimePickerMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n};\nTimeSelectorCustomMessagesComponent.ɵfac = function TimeSelectorCustomMessagesComponent_Factory(t) { return new (t || TimeSelectorCustomMessagesComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc3.LocalizationService)); };\nTimeSelectorCustomMessagesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: TimeSelectorCustomMessagesComponent, selectors: [[\"kendo-timeselector-messages\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: TimePickerMessages,\n useExisting: forwardRef(() => TimeSelectorCustomMessagesComponent_1) // tslint:disable-line:no-forward-ref\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function TimeSelectorCustomMessagesComponent_Template(rf, ctx) { }, encapsulation: 2 });\nTimeSelectorCustomMessagesComponent = TimeSelectorCustomMessagesComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], TimeSelectorCustomMessagesComponent);\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$o = touchEnabled;\nconst providers = [\n TimePickerDOMService,\n HoursService,\n MinutesService,\n SecondsService,\n MillisecondsService,\n DayPeriodService,\n {\n provide: TOUCH_ENABLED,\n useValue: ɵ0$o\n }\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the TimePicker component.\n */\nlet TimePickerModule = class TimePickerModule {\n};\nTimePickerModule.ɵfac = function TimePickerModule_Factory(t) { return new (t || TimePickerModule)(); };\nTimePickerModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: TimePickerModule });\nTimePickerModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ providers: providers, imports: [[CommonModule, ...COMPONENT_MODULES$1]] });\n\n/**\n * @hidden\n */\nclass Messages$1 extends ComponentMessages {\n}\nMessages$1.ɵfac = /*@__PURE__*/ function () { let ɵMessages$1_BaseFactory; return function Messages$1_Factory(t) { return (ɵMessages$1_BaseFactory || (ɵMessages$1_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(Messages$1)))(t || Messages$1); }; }();\nMessages$1.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: Messages$1, inputs: { toggle: \"toggle\", dateTab: \"dateTab\", dateTabLabel: \"dateTabLabel\", timeTab: \"timeTab\", timeTabLabel: \"timeTabLabel\", accept: \"accept\", acceptLabel: \"acceptLabel\", cancel: \"cancel\", cancelLabel: \"cancelLabel\", today: \"today\", now: \"now\", nowLabel: \"nowLabel\", prevButtonTitle: \"prevButtonTitle\", nextButtonTitle: \"nextButtonTitle\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages$1.prototype, \"toggle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages$1.prototype, \"dateTab\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages$1.prototype, \"dateTabLabel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages$1.prototype, \"timeTab\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages$1.prototype, \"timeTabLabel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages$1.prototype, \"accept\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages$1.prototype, \"acceptLabel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages$1.prototype, \"cancel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages$1.prototype, \"cancelLabel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages$1.prototype, \"today\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages$1.prototype, \"now\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages$1.prototype, \"nowLabel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages$1.prototype, \"prevButtonTitle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages$1.prototype, \"nextButtonTitle\", void 0);\n\nvar DateTimePickerCustomMessagesComponent_1;\n/**\n * Custom component messages override default component messages ([see example]({% slug globalization_dateinputs %}#toc-custom-messages)).\n */\nlet DateTimePickerCustomMessagesComponent = DateTimePickerCustomMessagesComponent_1 = class DateTimePickerCustomMessagesComponent extends Messages$1 {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n};\nDateTimePickerCustomMessagesComponent.ɵfac = function DateTimePickerCustomMessagesComponent_Factory(t) { return new (t || DateTimePickerCustomMessagesComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc3.LocalizationService)); };\nDateTimePickerCustomMessagesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DateTimePickerCustomMessagesComponent, selectors: [[\"kendo-datetimepicker-messages\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: Messages$1,\n useExisting: forwardRef(() => DateTimePickerCustomMessagesComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DateTimePickerCustomMessagesComponent_Template(rf, ctx) { }, encapsulation: 2 });\nDateTimePickerCustomMessagesComponent = DateTimePickerCustomMessagesComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], DateTimePickerCustomMessagesComponent);\n\nvar LocalizedMessagesDirective_1;\n/**\n * @hidden\n */\nlet LocalizedMessagesDirective = LocalizedMessagesDirective_1 = class LocalizedMessagesDirective extends Messages$1 {\n constructor(service) {\n super();\n this.service = service;\n }\n};\nLocalizedMessagesDirective.ɵfac = function LocalizedMessagesDirective_Factory(t) { return new (t || LocalizedMessagesDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc3.LocalizationService)); };\nLocalizedMessagesDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LocalizedMessagesDirective, selectors: [[\"\", \"kendoDateTimePickerLocalizedMessages\", \"\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: Messages$1,\n useExisting: forwardRef(() => LocalizedMessagesDirective_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature] });\nLocalizedMessagesDirective = LocalizedMessagesDirective_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], LocalizedMessagesDirective);\n\nconst COMPONENT_DIRECTIVES$3 = [\n DateTimePickerComponent,\n DateTimePickerCustomMessagesComponent,\n LocalizedMessagesDirective\n];\nconst ɵ0$p = touchEnabled;\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the DateTimePicker component.\n */\nlet DateTimePickerModule = class DateTimePickerModule {\n};\nDateTimePickerModule.ɵfac = function DateTimePickerModule_Factory(t) { return new (t || DateTimePickerModule)(); };\nDateTimePickerModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: DateTimePickerModule });\nDateTimePickerModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ providers: [\n { provide: TOUCH_ENABLED, useValue: ɵ0$p }\n ], imports: [[\n CommonModule,\n IntlModule,\n DateInputModule,\n CalendarModule,\n TimePickerModule,\n PopupModule,\n EventsModule,\n TemplatesModule\n ], TemplatesModule] });\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 */\nlet DateInputsModule = class DateInputsModule {\n};\nDateInputsModule.ɵfac = function DateInputsModule_Factory(t) { return new (t || DateInputsModule)(); };\nDateInputsModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: DateInputsModule });\nDateInputsModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [COMPONENT_MODULES$2, CalendarsModule, DateInputModule, DatePickerModule, TimePickerModule, DateRangeModule, DateTimePickerModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CenturyViewService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DecadeViewService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MonthViewService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc1.IntlService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(YearViewService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc1.IntlService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(BusViewService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc0.Injector }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WeekNamesService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc1.IntlService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(HorizontalViewListComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-calendar-horizontal',\n template: `\n \n \n {{ getCaptionTitle(date) }}\n \n \n {{name}}\n \n \n \n \n \n \n\n \n \n
\n\n \n
\n\n \n \n
\n `\n }]\n }], function () { return [{ type: BusViewService }, { type: ɵngcc1.IntlService }, { type: WeekNamesService }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }]; }, { activeView: [{\n type: Input\n }], isActive: [{\n type: Input\n }], min: [{\n type: Input\n }], max: [{\n type: Input\n }], selectedDates: [{\n type: Input\n }], views: [{\n type: Input\n }], showViewHeader: [{\n type: Input\n }], animateNavigation: [{\n type: Input\n }], cellClick: [{\n type: Output\n }], weekNumberCellClick: [{\n type: Output\n }], cellEnter: [{\n type: Output\n }], cellLeave: [{\n type: Output\n }], activeDateChange: [{\n type: Output\n }], getComponentClass: [{\n type: HostBinding,\n args: [\"class.k-calendar-view\"]\n }, {\n type: HostBinding,\n args: [\"class.k-hstack\"]\n }, {\n type: HostBinding,\n args: [\"class.k-align-items-start\"]\n }, {\n type: HostBinding,\n args: [\"class.k-justify-content-center\"]\n }], weekNumber: [{\n type: Input\n }], getComponentMonthClass: [{\n type: HostBinding,\n args: [\"class.k-calendar-monthview\"]\n }], getComponentYearClass: [{\n type: HostBinding,\n args: [\"class.k-calendar-yearview\"]\n }], getComponentDecadeClass: [{\n type: HostBinding,\n args: [\"class.k-calendar-decadeview\"]\n }], getComponentCenturyClass: [{\n type: HostBinding,\n args: [\"class.k-calendar-centuryview\"]\n }], focusedDate: [{\n type: Input\n }], cellTemplateRef: [{\n type: Input\n }], weekNumberTemplateRef: [{\n type: Input\n }], activeRangeEnd: [{\n type: Input\n }], cellUID: [{\n type: Input\n }], selectionRange: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DisabledDatesService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(HeaderComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-calendar-header',\n template: `\n \n {{title}}\n
\n \n \n \n \n \n \n \n {{ todayMessage }}\n \n \n \n \n \n `\n }]\n }], function () { return [{ type: BusViewService }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc3.LocalizationService }, { type: ɵngcc1.IntlService }, { type: DisabledDatesService }]; }, { min: [{\n type: Input\n }], max: [{\n type: Input\n }], rangeLength: [{\n type: Input\n }], isPrevDisabled: [{\n type: Input\n }], isNextDisabled: [{\n type: Input\n }], showNavigationButtons: [{\n type: Input\n }], todayButtonClick: [{\n type: Output\n }], prevButtonClick: [{\n type: Output\n }], nextButtonClick: [{\n type: Output\n }], getComponentClass: [{\n type: HostBinding,\n args: [\"class.k-calendar-header\"]\n }, {\n type: HostBinding,\n args: [\"class.k-hstack\"]\n }], activeView: [{\n type: Input\n }], currentDate: [{\n type: Input\n }], templateRef: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigationService, [{\n type: Injectable\n }], function () { return [{ type: BusViewService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SelectionService, [{\n type: Injectable\n }], function () { return [{ type: BusViewService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CellTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoCalendarCellTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MonthCellTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoCalendarMonthCellTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(YearCellTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoCalendarYearCellTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DecadeCellTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoCalendarDecadeCellTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CenturyCellTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoCalendarCenturyCellTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WeekNumberCellTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoCalendarWeekNumberCellTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(HeaderTitleTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoCalendarHeaderTitleTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MultiViewCalendarComponent, [{\n type: Component,\n 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 SelectionService\n ],\n selector: 'kendo-multiviewcalendar',\n template: `\n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: BusViewService }, { type: ɵngcc0.ElementRef }, { type: NavigationService }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.NgZone }, { type: DisabledDatesService }, { type: SelectionService }, { type: PickerService, decorators: [{\n type: Optional\n }] }]; }, { id: [{\n type: Input\n }], rangeValidation: [{\n type: Input\n }], disabledDatesRangeValidation: [{\n type: Input\n }], selection: [{\n type: Input\n }], disabled: [{\n type: Input\n }], tabindex: [{\n type: Input\n }], isActive: [{\n type: Input\n }], activeView: [{\n type: Input\n }], bottomView: [{\n type: Input\n }], topView: [{\n type: Input\n }], showViewHeader: [{\n type: Input\n }], animateNavigation: [{\n type: Input\n }], weekNumber: [{\n type: Input\n }], views: [{\n type: Input\n }], activeViewChange: [{\n type: Output\n }], navigate: [{\n type: Output\n }], cellEnter: [{\n type: Output\n }], cellLeave: [{\n type: Output\n }], valueChange: [{\n type: Output\n }], blurEvent: [{\n type: Output,\n args: ['blur']\n }], focusedDate: [{\n type: Input\n }], min: [{\n type: Input\n }], max: [{\n type: Input\n }], value: [{\n type: Input\n }], tabIndex: [{\n type: Input\n }], disabledDates: [{\n type: Input\n }], selectionRange: [{\n type: Input\n }], cellTemplateRef: [{\n type: Input,\n args: ['cellTemplate']\n }], monthCellTemplateRef: [{\n type: Input,\n args: ['monthCellTemplate']\n }], yearCellTemplateRef: [{\n type: Input,\n args: ['yearCellTemplate']\n }], decadeCellTemplateRef: [{\n type: Input,\n args: ['decadeCellTemplate']\n }], centuryCellTemplateRef: [{\n type: Input,\n args: ['centuryCellTemplate']\n }], weekNumberTemplateRef: [{\n type: Input,\n args: ['weekNumberTemplate']\n }], headerTitleTemplateRef: [{\n type: Input,\n args: ['headerTitleTemplate']\n }], widgetId: [{\n type: HostBinding,\n args: ['attr.id']\n }], calendarTabIndex: [{\n type: HostBinding,\n args: ['attr.tabindex']\n }], ariaDisabled: [{\n type: HostBinding,\n args: ['attr.aria-disabled']\n }, {\n type: HostBinding,\n args: ['class.k-disabled']\n }], ariaActivedescendant: [{\n type: HostBinding,\n args: ['attr.aria-activedescendant']\n }], \n /**\n * @hidden\n */\n handleFocusout: [{\n type: HostListener,\n args: ['focusout', ['$event']]\n }], \n /**\n * @hidden\n */\n handleFocus: [{\n type: HostListener,\n args: [\"focus\"]\n }], \n /**\n * @hidden\n */\n handleMouseEnter: [{\n type: HostListener,\n args: [\"mouseenter\"]\n }], \n /**\n * @hidden\n */\n handleMouseLeave: [{\n type: HostListener,\n args: [\"mouseleave\"]\n }], \n /**\n * @hidden\n */\n handleMousedown: [{\n type: HostListener,\n args: [\"mousedown\", ['$event']]\n }], \n /**\n * @hidden\n */\n handleClick: [{\n type: HostListener,\n args: [\"click\"]\n }], \n /**\n * @hidden\n */\n keydown: [{\n type: HostListener,\n args: [\"keydown\", [\"$event\"]]\n }], activeRangeEnd: [{\n type: Input\n }], cellTemplate: [{\n type: ContentChild,\n args: [CellTemplateDirective, { static: false }]\n }], monthCellTemplate: [{\n type: ContentChild,\n args: [MonthCellTemplateDirective, { static: false }]\n }], yearCellTemplate: [{\n type: ContentChild,\n args: [YearCellTemplateDirective, { static: false }]\n }], decadeCellTemplate: [{\n type: ContentChild,\n args: [DecadeCellTemplateDirective, { static: false }]\n }], centuryCellTemplate: [{\n type: ContentChild,\n args: [CenturyCellTemplateDirective, { static: false }]\n }], weekNumberTemplate: [{\n type: ContentChild,\n args: [WeekNumberCellTemplateDirective, { static: false }]\n }], headerTitleTemplate: [{\n type: ContentChild,\n args: [HeaderTitleTemplateDirective, { static: false }]\n }], headerElement: [{\n type: ViewChild,\n args: [HeaderComponent, { static: false, read: ElementRef }]\n }], viewList: [{\n type: ViewChild,\n args: [HorizontalViewListComponent, { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CalendarDOMService, [{\n type: Injectable\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(VirtualizationComponent, [{\n type: Component,\n 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 }], function () { return [{ type: Object, decorators: [{\n type: Inject,\n args: [SCROLLER_FACTORY_TOKEN]\n }] }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.NgZone }]; }, { direction: [{\n type: Input\n }], itemHeight: [{\n type: Input\n }], itemWidth: [{\n type: Input\n }], topOffset: [{\n type: Input\n }], bottomOffset: [{\n type: Input\n }], maxScrollDifference: [{\n type: Input\n }], scrollOffsetSize: [{\n type: Input\n }], scrollDuration: [{\n type: Input\n }], activeIndexChange: [{\n type: Output\n }], pageChange: [{\n type: Output\n }], scrollChange: [{\n type: Output\n }], wrapperClasses: [{\n type: HostBinding,\n args: ['class.k-flex']\n }, {\n type: HostBinding,\n args: ['class.k-content']\n }, {\n type: HostBinding,\n args: ['class.k-calendar-content']\n }, {\n type: HostBinding,\n args: ['class.k-scrollable']\n }], horizontalClass: [{\n type: HostBinding,\n args: ['class.k-scrollable-horizontal']\n }], skip: [{\n type: Input\n }], take: [{\n type: Input\n }], total: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigationComponent, [{\n type: Component,\n 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 }], function () { return [{ type: BusViewService }, { type: CalendarDOMService }, { type: ɵngcc1.IntlService }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.Renderer2 }]; }, { min: [{\n type: Input\n }], max: [{\n type: Input\n }], focusedDate: [{\n type: Input\n }], valueChange: [{\n type: Output\n }], pageChange: [{\n type: Output\n }], getComponentClass: [{\n type: HostBinding,\n args: [\"class.k-calendar-navigation\"]\n }], activeView: [{\n type: Input\n }], templateRef: [{\n type: Input\n }], virtualization: [{\n type: ViewChild,\n args: [VirtualizationComponent, { static: false }]\n }], list: [{\n type: ViewChild,\n args: ['list', { static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ViewListComponent, [{\n type: Component,\n 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 }], function () { return [{ type: BusViewService }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc1.IntlService }, { type: CalendarDOMService }, { type: ɵngcc0.Renderer2 }]; }, { isActive: [{\n type: Input\n }], min: [{\n type: Input\n }], max: [{\n type: Input\n }], selectedDates: [{\n type: Input\n }], cellClick: [{\n type: Output\n }], weekNumberCellClick: [{\n type: Output\n }], activeDateChange: [{\n type: Output\n }], todayButtonClick: [{\n type: Output\n }], pageChange: [{\n type: Output\n }], getComponentClass: [{\n type: HostBinding,\n args: [\"class.k-vstack\"]\n }, {\n type: HostBinding,\n args: [\"class.k-calendar-view\"]\n }], weekNumber: [{\n type: Input\n }], getComponentMonthClass: [{\n type: HostBinding,\n args: [\"class.k-calendar-monthview\"]\n }], getComponentYearClass: [{\n type: HostBinding,\n args: [\"class.k-calendar-yearview\"]\n }], getComponentDecadeClass: [{\n type: HostBinding,\n args: [\"class.k-calendar-decadeview\"]\n }], getComponentCenturyClass: [{\n type: HostBinding,\n args: [\"class.k-calendar-centuryview\"]\n }], cellTemplateRef: [{\n type: Input\n }], weekNumberTemplateRef: [{\n type: Input\n }], headerTitleTemplateRef: [{\n type: Input\n }], activeView: [{\n type: Input\n }], cellUID: [{\n type: Input\n }], focusedDate: [{\n type: Input\n }], virtualization: [{\n type: ViewChild,\n args: [VirtualizationComponent, { static: false }]\n }], list: [{\n type: ViewChild,\n args: ['list', { static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ScrollSyncService, [{\n type: Injectable\n }], function () { return [{ type: CalendarDOMService }, { type: ɵngcc0.NgZone }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigationItemTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoCalendarNavigationItemTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CalendarComponent, [{\n type: Component,\n 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 SelectionService\n ],\n selector: 'kendo-calendar',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: BusViewService }, { type: CalendarDOMService }, { type: ɵngcc0.ElementRef }, { type: NavigationService }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.Injector }, { type: ScrollSyncService }, { type: DisabledDatesService }, { type: ɵngcc3.LocalizationService }, { type: SelectionService }, { type: PickerService, decorators: [{\n type: Optional\n }] }]; }, { id: [{\n type: Input\n }], rangeValidation: [{\n type: Input\n }], selection: [{\n type: Input\n }], disabled: [{\n type: Input\n }], tabindex: [{\n type: Input\n }], navigation: [{\n type: Input\n }], activeView: [{\n type: Input\n }], bottomView: [{\n type: Input\n }], topView: [{\n type: Input\n }], animateNavigation: [{\n type: Input\n }], weekNumber: [{\n type: Input\n }, {\n type: HostBinding,\n args: ['class.k-week-number']\n }], activeViewChange: [{\n type: Output\n }], navigate: [{\n type: Output\n }], activeViewDateChange: [{\n type: Output\n }], valueChange: [{\n type: Output\n }], focusedDate: [{\n type: Input\n }], min: [{\n type: Input\n }], max: [{\n type: Input\n }], value: [{\n type: Input\n }], tabIndex: [{\n type: Input\n }], disabledDates: [{\n type: Input\n }], type: [{\n type: Input\n }], cellTemplateRef: [{\n type: Input,\n args: ['cellTemplate']\n }], monthCellTemplateRef: [{\n type: Input,\n args: ['monthCellTemplate']\n }], yearCellTemplateRef: [{\n type: Input,\n args: ['yearCellTemplate']\n }], decadeCellTemplateRef: [{\n type: Input,\n args: ['decadeCellTemplate']\n }], centuryCellTemplateRef: [{\n type: Input,\n args: ['centuryCellTemplate']\n }], weekNumberTemplateRef: [{\n type: Input,\n args: ['weekNumberTemplate']\n }], headerTitleTemplateRef: [{\n type: Input,\n args: ['headerTitleTemplate']\n }], navigationItemTemplateRef: [{\n type: Input,\n args: ['navigationItemTemplate']\n }], widgetId: [{\n type: HostBinding,\n args: ['attr.id']\n }], calendarTabIndex: [{\n type: HostBinding,\n args: ['attr.tabindex']\n }], ariaDisabled: [{\n type: HostBinding,\n args: ['attr.aria-disabled']\n }, {\n type: HostBinding,\n args: ['class.k-disabled']\n }], cellTemplate: [{\n type: ContentChild,\n args: [CellTemplateDirective, { static: false }]\n }], monthCellTemplate: [{\n type: ContentChild,\n args: [MonthCellTemplateDirective, { static: false }]\n }], yearCellTemplate: [{\n type: ContentChild,\n args: [YearCellTemplateDirective, { static: false }]\n }], decadeCellTemplate: [{\n type: ContentChild,\n args: [DecadeCellTemplateDirective, { static: false }]\n }], centuryCellTemplate: [{\n type: ContentChild,\n args: [CenturyCellTemplateDirective, { static: false }]\n }], weekNumberTemplate: [{\n type: ContentChild,\n args: [WeekNumberCellTemplateDirective, { static: false }]\n }], headerTitleTemplate: [{\n type: ContentChild,\n args: [HeaderTitleTemplateDirective, { static: false }]\n }], navigationItemTemplate: [{\n type: ContentChild,\n args: [NavigationItemTemplateDirective, { static: false }]\n }], navigationView: [{\n type: ViewChild,\n args: [NavigationComponent, { static: false }]\n }], monthView: [{\n type: ViewChild,\n args: [ViewListComponent, { static: false }]\n }], multiViewCalendar: [{\n type: ViewChild,\n args: [MultiViewCalendarComponent, { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DateInputComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'kendo-dateinput',\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateInputComponent_1), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => DateInputComponent_1), multi: true },\n { provide: L10N_PREFIX, useValue: 'kendo.dateinput' },\n { provide: KendoInput, useExisting: forwardRef(() => DateInputComponent_1) },\n LocalizationService\n ],\n selector: 'kendo-dateinput',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc1.IntlService }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.Injector }, { type: ɵngcc3.LocalizationService }, { type: PickerService, decorators: [{\n type: Optional\n }] }]; }, { focusableId: [{\n type: Input\n }], disabled: [{\n type: Input\n }], readonly: [{\n type: Input\n }], title: [{\n type: Input\n }], tabindex: [{\n type: Input\n }], role: [{\n type: Input\n }], ariaReadOnly: [{\n type: Input\n }], format: [{\n type: Input\n }], placeholder: [{\n type: Input\n }], steps: [{\n type: Input\n }], rangeValidation: [{\n type: Input\n }], autoCorrect: [{\n type: Input\n }], incompleteDateValidation: [{\n type: Input\n }], twoDigitYearMax: [{\n type: Input\n }], spinners: [{\n type: Input\n }], isPopupOpen: [{\n type: Input\n }], hasPopup: [{\n type: Input\n }], valueChange: [{\n type: Output\n }], valueUpdate: [{\n type: Output\n }], onFocus: [{\n type: Output,\n args: ['focus']\n }], onBlur: [{\n type: Output,\n args: ['blur']\n }], tabIndex: [{\n type: Input\n }], value: [{\n type: Input\n }], size: [{\n type: Input\n }], rounded: [{\n type: Input\n }], fillMode: [{\n type: Input\n }], wrapperClass: [{\n type: HostBinding,\n args: ['class.k-input']\n }, {\n type: HostBinding,\n args: ['class.k-dateinput']\n }], disabledClass: [{\n type: HostBinding,\n args: ['class.k-disabled']\n }], formatPlaceholder: [{\n type: Input\n }], max: [{\n type: Input\n }], min: [{\n type: Input\n }], dateInput: [{\n type: ViewChild,\n args: ['dateInput', { static: true }]\n }], spinup: [{\n type: ViewChild,\n args: ['spinup', { static: false }]\n }], spindown: [{\n type: ViewChild,\n args: ['spindown', { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DatePickerComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'kendo-datepicker',\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DatePickerComponent_1), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => DatePickerComponent_1), multi: true },\n { provide: KendoInput, useExisting: forwardRef(() => DatePickerComponent_1) },\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 }], function () { return [{ type: ɵngcc0.NgZone }, { type: ɵngcc3.LocalizationService }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc5.PopupService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.Injector }, { type: PickerService }, { type: DisabledDatesService }, { type: Boolean, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [TOUCH_ENABLED]\n }] }]; }, { focusableId: [{\n type: Input\n }], activeView: [{\n type: Input\n }], bottomView: [{\n type: Input\n }], topView: [{\n type: Input\n }], calendarType: [{\n type: Input\n }], animateCalendarNavigation: [{\n type: Input\n }], disabled: [{\n type: Input\n }], readonly: [{\n type: Input\n }], readOnlyInput: [{\n type: Input\n }], navigation: [{\n type: Input\n }], min: [{\n type: Input\n }], max: [{\n type: Input\n }], incompleteDateValidation: [{\n type: Input\n }], focusedDate: [{\n type: Input\n }], format: [{\n type: Input\n }], twoDigitYearMax: [{\n type: Input\n }], placeholder: [{\n type: Input\n }], tabindex: [{\n type: Input\n }], title: [{\n type: Input\n }], rangeValidation: [{\n type: Input\n }], disabledDatesValidation: [{\n type: Input\n }], weekNumber: [{\n type: Input\n }], valueChange: [{\n type: Output\n }], onFocus: [{\n type: Output,\n args: ['focus']\n }], onBlur: [{\n type: Output,\n args: ['blur']\n }], open: [{\n type: Output\n }], close: [{\n type: Output\n }], wrapperClasses: [{\n type: HostBinding,\n args: ['class.k-datepicker']\n }, {\n type: HostBinding,\n args: ['class.k-input']\n }], cellTemplateRef: [{\n type: Input,\n args: ['cellTemplate']\n }], cellTemplate: [{\n type: ContentChild,\n args: [CellTemplateDirective, { static: false }]\n }], monthCellTemplateRef: [{\n type: Input,\n args: ['monthCellTemplate']\n }], monthCellTemplate: [{\n type: ContentChild,\n args: [MonthCellTemplateDirective, { static: false }]\n }], yearCellTemplateRef: [{\n type: Input,\n args: ['yearCellTemplate']\n }], yearCellTemplate: [{\n type: ContentChild,\n args: [YearCellTemplateDirective, { static: false }]\n }], decadeCellTemplateRef: [{\n type: Input,\n args: ['decadeCellTemplate']\n }], decadeCellTemplate: [{\n type: ContentChild,\n args: [DecadeCellTemplateDirective, { static: false }]\n }], centuryCellTemplateRef: [{\n type: Input,\n args: ['centuryCellTemplate']\n }], centuryCellTemplate: [{\n type: ContentChild,\n args: [CenturyCellTemplateDirective, { static: false }]\n }], weekNumberTemplateRef: [{\n type: Input,\n args: ['weekNumberTemplate']\n }], weekNumberTemplate: [{\n type: ContentChild,\n args: [WeekNumberCellTemplateDirective, { static: false }]\n }], headerTitleTemplateRef: [{\n type: Input,\n args: ['headerTitleTemplate']\n }], headerTitleTemplate: [{\n type: ContentChild,\n args: [HeaderTitleTemplateDirective, { static: false }]\n }], navigationItemTemplateRef: [{\n type: Input,\n args: ['navigationItemTemplate']\n }], navigationItemTemplate: [{\n type: ContentChild,\n args: [NavigationItemTemplateDirective, { static: false }]\n }], popupSettings: [{\n type: Input\n }], value: [{\n type: Input\n }], tabIndex: [{\n type: Input\n }], disabledDates: [{\n type: Input\n }], size: [{\n type: Input\n }], rounded: [{\n type: Input\n }], fillMode: [{\n type: Input\n }], disabledClass: [{\n type: HostBinding,\n args: ['class.k-disabled']\n }], container: [{\n type: ViewChild,\n args: ['container', { read: ViewContainerRef, static: true }]\n }], popupTemplate: [{\n type: ViewChild,\n args: ['popupTemplate', { static: true }]\n }], toggleButton: [{\n type: ViewChild,\n args: ['toggleButton', { static: true }]\n }], formatPlaceholder: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TimePickerComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'kendo-timepicker',\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TimePickerComponent_1), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => TimePickerComponent_1), multi: true },\n { provide: KendoInput, useExisting: forwardRef(() => TimePickerComponent_1) },\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 }], function () { return [{ type: ɵngcc0.NgZone }, { type: ɵngcc3.LocalizationService }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc5.PopupService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.Injector }, { type: PickerService }, { type: ɵngcc1.IntlService }, { type: Boolean, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [TOUCH_ENABLED]\n }] }]; }, { focusableId: [{\n type: Input\n }], disabled: [{\n type: Input\n }], readonly: [{\n type: Input\n }], readOnlyInput: [{\n type: Input\n }], format: [{\n type: Input\n }], placeholder: [{\n type: Input\n }], incompleteDateValidation: [{\n type: Input\n }], cancelButton: [{\n type: Input\n }], nowButton: [{\n type: Input\n }], tabindex: [{\n type: Input\n }], title: [{\n type: Input\n }], rangeValidation: [{\n type: Input\n }], valueChange: [{\n type: Output\n }], onFocus: [{\n type: Output,\n args: ['focus']\n }], onBlur: [{\n type: Output,\n args: ['blur']\n }], open: [{\n type: Output\n }], close: [{\n type: Output\n }], wrapperClasses: [{\n type: HostBinding,\n args: ['class.k-timepicker']\n }, {\n type: HostBinding,\n args: ['class.k-input']\n }], min: [{\n type: Input\n }], max: [{\n type: Input\n }], steps: [{\n type: Input\n }], popupSettings: [{\n type: Input\n }], tabIndex: [{\n type: Input\n }], value: [{\n type: Input\n }], size: [{\n type: Input\n }], rounded: [{\n type: Input\n }], fillMode: [{\n type: Input\n }], disabledClass: [{\n type: HostBinding,\n args: ['class.k-disabled']\n }], container: [{\n type: ViewChild,\n args: ['container', { read: ViewContainerRef, static: false }]\n }], popupTemplate: [{\n type: ViewChild,\n args: ['popupTemplate', { static: false }]\n }], toggleButton: [{\n type: ViewChild,\n args: ['toggleButton', { static: true }]\n }], formatPlaceholder: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DateTimePickerComponent, [{\n type: Component,\n 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_1), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => DateTimePickerComponent_1), multi: true },\n { provide: KendoInput, useExisting: forwardRef(() => DateTimePickerComponent_1) }\n ],\n template: `\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 }], function () { return [{ type: ɵngcc5.PopupService }, { type: ɵngcc1.IntlService }, { type: ɵngcc0.ChangeDetectorRef }, { type: PickerService }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ElementRef }, { type: Boolean, decorators: [{\n type: Inject,\n args: [TOUCH_ENABLED]\n }] }, { type: ɵngcc3.LocalizationService }, { type: DisabledDatesService }, { type: ɵngcc0.Renderer2 }]; }, { hostClasses: [{\n type: HostBinding,\n args: ['class.k-datetimepicker']\n }, {\n type: HostBinding,\n args: ['class.k-input']\n }], twoDigitYearMax: [{\n type: Input\n }], focusableId: [{\n type: Input\n }], title: [{\n type: Input\n }], disabled: [{\n type: Input\n }], readonly: [{\n type: Input\n }], readOnlyInput: [{\n type: Input\n }], cancelButton: [{\n type: Input\n }], steps: [{\n type: Input\n }], calendarType: [{\n type: Input\n }], animateCalendarNavigation: [{\n type: Input\n }], weekNumber: [{\n type: Input\n }], rangeValidation: [{\n type: Input\n }], disabledDatesValidation: [{\n type: Input\n }], incompleteDateValidation: [{\n type: Input\n }], valueChange: [{\n type: Output\n }], open: [{\n type: Output\n }], close: [{\n type: Output\n }], onFocus: [{\n type: Output,\n args: ['focus']\n }], onBlur: [{\n type: Output,\n args: ['blur']\n }], disabledClass: [{\n type: HostBinding,\n args: ['class.k-disabled']\n }], value: [{\n type: Input\n }], format: [{\n type: Input\n }], tabindex: [{\n type: Input\n }], disabledDates: [{\n type: Input\n }], popupSettings: [{\n type: Input\n }], min: [{\n type: Input\n }], max: [{\n type: Input\n }], defaultTab: [{\n type: Input\n }], size: [{\n type: Input\n }], rounded: [{\n type: Input\n }], fillMode: [{\n type: Input\n }], toggleButton: [{\n type: ViewChild,\n args: ['toggleButton', { static: true }]\n }], formatPlaceholder: [{\n type: Input\n }], placeholder: [{\n type: Input\n }], focusedDate: [{\n type: Input\n }], cellTemplate: [{\n type: ContentChild,\n args: [CellTemplateDirective, { static: false }]\n }], monthCellTemplate: [{\n type: ContentChild,\n args: [MonthCellTemplateDirective, { static: false }]\n }], yearCellTemplate: [{\n type: ContentChild,\n args: [YearCellTemplateDirective, { static: false }]\n }], decadeCellTemplate: [{\n type: ContentChild,\n args: [DecadeCellTemplateDirective, { static: false }]\n }], centuryCellTemplate: [{\n type: ContentChild,\n args: [CenturyCellTemplateDirective, { static: false }]\n }], weekNumberTemplate: [{\n type: ContentChild,\n args: [WeekNumberCellTemplateDirective, { static: false }]\n }], headerTitleTemplate: [{\n type: ContentChild,\n args: [HeaderTitleTemplateDirective, { static: false }]\n }], container: [{\n type: ViewChild,\n args: ['container', { read: ViewContainerRef, static: true }]\n }], popupTemplate: [{\n type: ViewChild,\n args: ['popupTemplate', { read: TemplateRef, static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DateRangePopupTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoDateRangePopupTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DateRangeService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DateRangePopupComponent, [{\n type: Component,\n args: [{\n exportAs: 'kendo-daterange-popup',\n selector: 'kendo-daterange-popup',\n template: `\n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc5.PopupService }, { type: DateRangeService }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.NgZone }, { type: Boolean, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [RTL]\n }] }]; }, { animate: [{\n type: Input\n }], collision: [{\n type: Input\n }], open: [{\n type: Output\n }], close: [{\n type: Output\n }], onBlur: [{\n type: Output,\n args: ['blur']\n }], onFocus: [{\n type: Output,\n args: ['focus']\n }], cancel: [{\n type: Output\n }], container: [{\n type: ViewChild,\n args: ['container', { read: ViewContainerRef, static: false }]\n }], defaultTemplate: [{\n type: ViewChild,\n args: ['defaultTemplate', { static: false }]\n }], contentTemplate: [{\n type: ContentChild,\n args: [DateRangePopupTemplateDirective, { static: false }]\n }], viewCalendar: [{\n type: ViewChildren,\n args: [MultiViewCalendarComponent]\n }], contentCalendar: [{\n type: ContentChildren,\n args: [MultiViewCalendarComponent]\n }], anchor: [{\n type: Input\n }], anchorAlign: [{\n type: Input\n }], appendTo: [{\n type: Input\n }], popupAlign: [{\n type: Input\n }], margin: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DateRangeComponent, [{\n type: Component,\n args: [{\n providers: [DateRangeService],\n selector: 'kendo-daterange',\n template: `\n \n \n `\n }]\n }], function () { return []; }, { contentPopup: [{\n type: ContentChildren,\n args: [DateRangePopupComponent]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DateRangeEndInputDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoDateRangeEndInput]'\n }]\n }], function () { return [{ type: DateRangeService }, { type: DateInputComponent }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.NgZone }]; }, { navigateCalendarOnFocus: [{\n type: Input\n }], autoCorrectOn: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DateRangeStartInputDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoDateRangeStartInput]'\n }]\n }], function () { return [{ type: DateRangeService }, { type: DateInputComponent }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.NgZone }]; }, { navigateCalendarOnFocus: [{\n type: Input\n }], autoCorrectOn: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DateRangeSelectionDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoDateRangeSelection]'\n }]\n }], function () { return [{ type: MultiViewCalendarComponent }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: DateRangeService, decorators: [{\n type: Optional\n }] }]; }, { autoCorrectOn: [{\n type: Input\n }], activeRangeEndChange: [{\n type: Output\n }], selectionRangeChange: [{\n type: Output\n }], selectionRange: [{\n type: Input\n }], activeRangeEnd: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(KForOf, [{\n type: Directive,\n args: [{ selector: '[kFor][kForOf]' }]\n }], function () { return [{ type: ɵngcc0.ViewContainerRef }, { type: ɵngcc0.TemplateRef }, { type: ɵngcc0.IterableDiffers }]; }, { kForTemplate: [{\n type: Input\n }], kForOf: [{\n type: Input\n }], kForTrackBy: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ViewComponent, [{\n type: Component,\n args: [{\n selector: '[kendoCalendarView]',\n template: `\n  \n {{title}}\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 }], function () { return [{ type: BusViewService }, { type: ɵngcc1.IntlService }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.Renderer2 }, { type: DisabledDatesService }]; }, { direction: [{\n type: Input\n }], isActive: [{\n type: Input\n }], selectedDates: [{\n type: Input\n }], cellClick: [{\n type: Output\n }], weekNumberCellClick: [{\n type: Output\n }], cellEnter: [{\n type: Output\n }], cellLeave: [{\n type: Output\n }], weekNumber: [{\n type: Input\n }], activeView: [{\n type: Input\n }], cellUID: [{\n type: Input\n }], focusedDate: [{\n type: Input\n }], viewDate: [{\n type: Input\n }], activeRangeEnd: [{\n type: Input\n }], selectionRange: [{\n type: Input\n }], min: [{\n type: Input\n }], max: [{\n type: Input\n }], viewIndex: [{\n type: Input\n }], templateRef: [{\n type: Input\n }], weekNumberTemplateRef: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CalendarCommonModule, [{\n type: NgModule,\n 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 }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(CalendarCommonModule, { declarations: function () { return [KForOf, HeaderComponent, ViewComponent]; }, imports: function () { return [CommonModule, EventsModule]; }, exports: function () { return [KForOf, HeaderComponent, ViewComponent]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TemplatesModule, [{\n type: NgModule,\n 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 }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(TemplatesModule, { declarations: [CellTemplateDirective, MonthCellTemplateDirective, YearCellTemplateDirective, DecadeCellTemplateDirective, CenturyCellTemplateDirective, WeekNumberCellTemplateDirective, HeaderTitleTemplateDirective, NavigationItemTemplateDirective], exports: [CellTemplateDirective, MonthCellTemplateDirective, YearCellTemplateDirective, DecadeCellTemplateDirective, CenturyCellTemplateDirective, WeekNumberCellTemplateDirective, HeaderTitleTemplateDirective, NavigationItemTemplateDirective] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MultiViewCalendarLocalizedMessagesDirective, [{\n type: Directive,\n args: [{\n providers: [\n {\n provide: Messages,\n useExisting: forwardRef(() => MultiViewCalendarLocalizedMessagesDirective_1) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: '[kendoMultiViewCalendarLocalizedMessages]'\n }]\n }], function () { return [{ type: ɵngcc3.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MultiViewCalendarCustomMessagesComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: Messages,\n useExisting: forwardRef(() => MultiViewCalendarCustomMessagesComponent_1) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: 'kendo-multiviewcalendar-messages',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc3.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MultiViewCalendarModule, [{\n type: NgModule,\n 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: [\n CommonModule,\n CalendarCommonModule,\n IntlModule,\n TemplatesModule,\n PopupModule,\n EventsModule\n ],\n providers: [\n NavigationService,\n CenturyViewService,\n DecadeViewService,\n MonthViewService,\n YearViewService,\n WeekNamesService\n ]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(MultiViewCalendarModule, { declarations: function () { return [HorizontalViewListComponent, MultiViewCalendarLocalizedMessagesDirective, MultiViewCalendarCustomMessagesComponent, MultiViewCalendarComponent]; }, imports: function () { return [CommonModule, CalendarCommonModule, IntlModule, TemplatesModule, PopupModule,\n EventsModule]; }, exports: function () { return [HorizontalViewListComponent, MultiViewCalendarLocalizedMessagesDirective, MultiViewCalendarCustomMessagesComponent, MultiViewCalendarComponent, CalendarCommonModule, TemplatesModule]; } }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CalendarLocalizedMessagesDirective, [{\n type: Directive,\n args: [{\n providers: [\n {\n provide: CalendarMessages,\n useExisting: forwardRef(() => CalendarLocalizedMessagesDirective_1) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: '[kendoCalendarLocalizedMessages]'\n }]\n }], function () { return [{ type: ɵngcc3.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CalendarCustomMessagesComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: CalendarMessages,\n useExisting: forwardRef(() => CalendarCustomMessagesComponent_1)\n }\n ],\n selector: 'kendo-calendar-messages',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc3.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(VirtualizationModule, [{\n type: NgModule,\n args: [{\n declarations: [COMPONENT_DIRECTIVES],\n exports: [COMPONENT_DIRECTIVES],\n imports: [CommonModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(VirtualizationModule, { declarations: function () { return [VirtualizationComponent]; }, imports: function () { return [CommonModule]; }, exports: function () { return [VirtualizationComponent]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CalendarModule, [{\n type: NgModule,\n 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: [\n CommonModule,\n CalendarCommonModule,\n MultiViewCalendarModule,\n IntlModule,\n TemplatesModule,\n VirtualizationModule,\n EventsModule,\n ResizeSensorModule\n ],\n providers: [\n CalendarDOMService,\n CenturyViewService,\n DecadeViewService,\n MonthViewService,\n YearViewService,\n WeekNamesService\n ]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(CalendarModule, { declarations: function () { return [CalendarComponent, NavigationComponent, CalendarCustomMessagesComponent, CalendarLocalizedMessagesDirective, ViewListComponent]; }, imports: function () { return [CommonModule, CalendarCommonModule, MultiViewCalendarModule, IntlModule, TemplatesModule, VirtualizationModule, EventsModule,\n ResizeSensorModule]; }, exports: function () { return [CalendarComponent, NavigationComponent, CalendarCustomMessagesComponent, CalendarLocalizedMessagesDirective, ViewListComponent, CalendarCommonModule, TemplatesModule]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CalendarsModule, [{\n type: NgModule,\n args: [{\n exports: [\n CalendarModule,\n MultiViewCalendarModule\n ],\n imports: [\n CalendarModule,\n MultiViewCalendarModule\n ]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(CalendarsModule, { imports: [CalendarModule, MultiViewCalendarModule], exports: [CalendarModule, MultiViewCalendarModule] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DateInputLocalizedMessagesDirective, [{\n type: Directive,\n args: [{\n providers: [\n {\n provide: DateInputMessages,\n useExisting: forwardRef(() => DateInputLocalizedMessagesDirective_1) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: '[kendoDateInputLocalizedMessages]'\n }]\n }], function () { return [{ type: ɵngcc3.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DateInputCustomMessagesComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: DateInputMessages,\n useExisting: forwardRef(() => DateInputCustomMessagesComponent_1) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: 'kendo-dateinput-messages',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc3.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DateInputModule, [{\n type: NgModule,\n 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 }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(DateInputModule, { declarations: function () { return [DateInputComponent, DateInputCustomMessagesComponent, DateInputLocalizedMessagesDirective]; }, imports: function () { return [CommonModule, IntlModule, EventsModule]; }, exports: function () { return [DateInputComponent, DateInputCustomMessagesComponent, DateInputLocalizedMessagesDirective]; } }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DatePickerLocalizedMessagesDirective, [{\n type: Directive,\n args: [{\n providers: [\n {\n provide: DatePickerMessages,\n useExisting: forwardRef(() => DatePickerLocalizedMessagesDirective_1) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: '[kendoDatePickerLocalizedMessages]'\n }]\n }], function () { return [{ type: ɵngcc3.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DatePickerCustomMessagesComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: DatePickerMessages,\n useExisting: forwardRef(() => DatePickerCustomMessagesComponent_1) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: 'kendo-datepicker-messages',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc3.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DatePickerModule, [{\n type: NgModule,\n 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 }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(DatePickerModule, { declarations: function () { return [DatePickerComponent, DatePickerCustomMessagesComponent, DatePickerLocalizedMessagesDirective]; }, imports: function () { return [CommonModule, DateInputModule, CalendarModule, IntlModule,\n PopupModule, TemplatesModule, EventsModule]; }, exports: function () { return [DatePickerComponent, DatePickerCustomMessagesComponent, DatePickerLocalizedMessagesDirective, TemplatesModule]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DateRangeModule, [{\n type: NgModule,\n args: [{\n declarations: [COMPONENT_DIRECTIVES$1],\n exports: [COMPONENT_DIRECTIVES$1],\n imports: [CommonModule, COMPONENT_MODULES]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(DateRangeModule, { declarations: function () { return [DateRangeComponent, DateRangePopupComponent, DateRangePopupTemplateDirective, DateRangeSelectionDirective, DateRangeStartInputDirective, DateRangeEndInputDirective]; }, imports: function () { return [CommonModule, MultiViewCalendarModule, DateInputModule, PopupModule,\n EventsModule]; }, exports: function () { return [DateRangeComponent, DateRangePopupComponent, DateRangePopupTemplateDirective, DateRangeSelectionDirective, DateRangeStartInputDirective, DateRangeEndInputDirective]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TimePickerDOMService, [{\n type: Injectable\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(HoursService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc1.IntlService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MinutesService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc1.IntlService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SecondsService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc1.IntlService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MillisecondsService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc1.IntlService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DayPeriodService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc1.IntlService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TimeListComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-timelist',\n template: `\n \n
    \n
  • \n {{item.text}}\n
  • \n
\n \n `\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Injector }, { type: TimePickerDOMService }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.NgZone }]; }, { min: [{\n type: Input\n }], max: [{\n type: Input\n }], step: [{\n type: Input\n }], disabled: [{\n type: Input\n }], valueChange: [{\n type: Output\n }], componentClass: [{\n type: HostBinding,\n args: [\"class.k-time-list\"]\n }], tabIndex: [{\n type: HostBinding,\n args: [\"attr.tabindex\"]\n }], value: [{\n type: Input\n }], part: [{\n type: Input\n }], virtualization: [{\n type: ViewChild,\n args: [VirtualizationComponent, { static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TimeSelectorComponent, [{\n type: Component,\n 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 }], function () { return [{ type: ɵngcc3.LocalizationService }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.ElementRef }, { type: ɵngcc1.IntlService }, { type: TimePickerDOMService }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.Renderer2 }, { type: PickerService, decorators: [{\n type: Optional\n }] }]; }, { format: [{\n type: Input\n }], min: [{\n type: Input\n }], max: [{\n type: Input\n }], cancelButton: [{\n type: Input\n }], setButton: [{\n type: Input\n }], nowButton: [{\n type: Input\n }], disabled: [{\n type: Input\n }], value: [{\n type: Input\n }], valueChange: [{\n type: Output\n }], valueReject: [{\n type: Output\n }], disabledClass: [{\n type: HostBinding,\n args: ['class.k-disabled']\n }], steps: [{\n type: Input\n }], accept: [{\n type: ViewChild,\n args: ['accept', { static: false }]\n }], cancel: [{\n type: ViewChild,\n args: ['cancel', { static: false }]\n }], now: [{\n type: ViewChild,\n args: ['now', { static: false }]\n }], timeLists: [{\n type: ViewChildren,\n args: [TimeListComponent]\n }], timeListWrappers: [{\n type: ViewChildren,\n args: ['listWrapper']\n }] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TimePickerLocalizedMessagesDirective, [{\n type: Directive,\n args: [{\n providers: [\n {\n provide: TimePickerMessages,\n useExisting: forwardRef(() => TimePickerLocalizedMessagesDirective_1) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: '[kendoTimePickerLocalizedMessages]'\n }]\n }], function () { return [{ type: ɵngcc3.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TimePickerCustomMessagesComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: TimePickerMessages,\n useExisting: forwardRef(() => TimePickerCustomMessagesComponent_1) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: 'kendo-timepicker-messages',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc3.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TimeSelectorLocalizedMessagesDirective, [{\n type: Directive,\n args: [{\n providers: [\n {\n provide: TimePickerMessages,\n useExisting: forwardRef(() => TimeSelectorLocalizedMessagesDirective_1) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: '[kendoTimeSelectorLocalizedMessages]'\n }]\n }], function () { return [{ type: ɵngcc3.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TimeSelectorCustomMessagesComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: TimePickerMessages,\n useExisting: forwardRef(() => TimeSelectorCustomMessagesComponent_1) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: 'kendo-timeselector-messages',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc3.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TimePickerModule, [{\n type: NgModule,\n args: [{\n declarations: [COMPONENT_DIRECTIVES$2],\n exports: [COMPONENT_DIRECTIVES$2],\n imports: [CommonModule, ...COMPONENT_MODULES$1],\n providers: providers\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(TimePickerModule, { declarations: function () { return [TimePickerLocalizedMessagesDirective, TimeListComponent, TimePickerCustomMessagesComponent, TimePickerComponent, TimeSelectorLocalizedMessagesDirective, TimeSelectorCustomMessagesComponent, TimeSelectorComponent]; }, imports: function () { return [CommonModule, DateInputModule, IntlModule,\n PopupModule, VirtualizationModule, EventsModule]; }, exports: function () { return [TimePickerLocalizedMessagesDirective, TimeListComponent, TimePickerCustomMessagesComponent, TimePickerComponent, TimeSelectorLocalizedMessagesDirective, TimeSelectorCustomMessagesComponent, TimeSelectorComponent]; } }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DateTimePickerCustomMessagesComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: Messages$1,\n useExisting: forwardRef(() => DateTimePickerCustomMessagesComponent_1)\n }\n ],\n selector: 'kendo-datetimepicker-messages',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc3.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LocalizedMessagesDirective, [{\n type: Directive,\n args: [{\n providers: [\n {\n provide: Messages$1,\n useExisting: forwardRef(() => LocalizedMessagesDirective_1)\n }\n ],\n selector: '[kendoDateTimePickerLocalizedMessages]'\n }]\n }], function () { return [{ type: ɵngcc3.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DateTimePickerModule, [{\n type: NgModule,\n 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$p }\n ]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(DateTimePickerModule, { declarations: function () { return [DateTimePickerComponent, DateTimePickerCustomMessagesComponent, LocalizedMessagesDirective]; }, imports: function () { return [CommonModule,\n IntlModule, DateInputModule, CalendarModule, TimePickerModule, PopupModule,\n EventsModule, TemplatesModule]; }, exports: function () { return [DateTimePickerComponent, DateTimePickerCustomMessagesComponent, LocalizedMessagesDirective, TemplatesModule]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DateInputsModule, [{\n type: NgModule,\n args: [{\n exports: COMPONENT_MODULES$2,\n imports: COMPONENT_MODULES$2\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(DateInputsModule, { imports: [CalendarsModule, DateInputModule, DatePickerModule, TimePickerModule, DateRangeModule, DateTimePickerModule], exports: [CalendarsModule, DateInputModule, DatePickerModule, TimePickerModule, DateRangeModule, DateTimePickerModule] }); })();\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, SelectionService, 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, MillisecondsService, 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","/**-----------------------------------------------------------------------------------------\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 { EventEmitter, TemplateRef, Input, Output, HostBinding, Component, ElementRef, InjectionToken, Inject, Optional, NgZone, ContentChildren, QueryList, ViewChildren, ViewChild, Renderer2, ChangeDetectorRef, Injectable, isDevMode, ComponentFactoryResolver, Directive, Host, HostListener, ContentChild, ViewContainerRef, forwardRef, NgModule } from '@angular/core';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { Subscription, Subject, merge, of } from 'rxjs';\nimport { take, filter, map, share, tap, switchMap, takeUntil } from 'rxjs/operators';\nimport { LocalizationService, L10N_PREFIX, RTL, MessageService, ComponentMessages } from '@progress/kendo-angular-l10n';\nimport { validatePackage } from '@progress/kendo-licensing';\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 * @hidden\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/common';\nimport * as ɵngcc2 from '@progress/kendo-angular-l10n';\nimport * as ɵngcc3 from '@progress/kendo-angular-common';\n\nfunction DialogActionsComponent_ng_content_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojection(0, 0, [\"*ngIf\", \"!actions\"]);\n} }\nfunction DialogActionsComponent_ng_container_1_button_1_Template(rf, ctx) { if (rf & 1) {\n const _r6 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 2);\n ɵngcc0.ɵɵlistener(\"click\", function DialogActionsComponent_ng_container_1_button_1_Template_button_click_0_listener($event) { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r6); const action_r4 = restoredCtx.$implicit; const ctx_r5 = ɵngcc0.ɵɵnextContext(2); return ctx_r5.onButtonClick(action_r4, $event); });\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const action_r4 = ctx.$implicit;\n const ctx_r3 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r3.buttonClass(action_r4));\n ɵngcc0.ɵɵattribute(\"aria-label\", action_r4.text);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", action_r4.text, \" \");\n} }\nfunction DialogActionsComponent_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, DialogActionsComponent_ng_container_1_button_1_Template, 2, 3, \"button\", 1);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r1.actions);\n} }\nfunction DialogActionsComponent_2_ng_template_0_Template(rf, ctx) { }\nfunction DialogActionsComponent_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DialogActionsComponent_2_ng_template_0_Template, 0, 0, \"ng-template\", 3);\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.actions);\n} }\nconst _c0 = [\"*\"];\nfunction DialogComponent_kendo_dialog_titlebar_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-dialog-titlebar\", 7);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"closeTitle\", ctx_r0.closeTitle)(\"id\", ctx_r0.titleId);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r0.title);\n} }\nfunction DialogComponent_ng_content_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojection(0, 0, [\"*ngIf\", \"!title\"]);\n} }\nfunction DialogComponent_ng_content_6_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojection(0, 1, [\"*ngIf\", \"!contentTemplate\"]);\n} }\nfunction DialogComponent_7_ng_template_0_Template(rf, ctx) { }\nfunction DialogComponent_7_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DialogComponent_7_ng_template_0_Template, 0, 0, \"ng-template\", 8);\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.contentTemplate);\n} }\nfunction DialogComponent_ng_content_8_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojection(0, 2, [\"*ngIf\", \"!actions\"]);\n} }\nfunction DialogComponent_kendo_dialog_actions_9_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-dialog-actions\", 9);\n} if (rf & 2) {\n const ctx_r5 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"actions\", ctx_r5.actions)(\"layout\", ctx_r5.actionsLayout);\n} }\nconst _c5 = [[[\"kendo-dialog-titlebar\"]], \"*\", [[\"kendo-dialog-actions\"]]];\nconst _c6 = [\"kendo-dialog-titlebar\", \"*\", \"kendo-dialog-actions\"];\nfunction WindowTitleBarComponent_ng_content_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojection(0, 0, [\"*ngIf\", \"!template\"]);\n} }\nfunction WindowTitleBarComponent_1_ng_template_0_Template(rf, ctx) { }\nconst _c7 = function (a0) { return { \"$implicit\": a0 }; };\nfunction WindowTitleBarComponent_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, WindowTitleBarComponent_1_ng_template_0_Template, 0, 0, \"ng-template\", 1);\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.template)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction1(2, _c7, ctx_r1.service));\n} }\nfunction WindowComponent_kendo_window_titlebar_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-window-titlebar\", 5)(1, \"div\", 6);\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(3, \"div\", 7);\n ɵngcc0.ɵɵelement(4, \"button\", 8)(5, \"button\", 9)(6, \"button\", 10)(7, \"button\", 11);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"template\", ctx_r0.titleBarTemplate);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate(ctx_r0.title);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵattribute(\"title\", ctx_r0.minimizeButtonTitle)(\"aria-label\", ctx_r0.minimizeButtonTitle);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"title\", ctx_r0.maximizeButtonTitle)(\"aria-label\", ctx_r0.maximizeButtonTitle);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"title\", ctx_r0.restoreButtonTitle)(\"aria-label\", ctx_r0.restoreButtonTitle);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"title\", ctx_r0.closeButtonTitle)(\"aria-label\", ctx_r0.closeButtonTitle);\n} }\nfunction WindowComponent_ng_content_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojection(0, 0, [\"*ngIf\", \"!showDefaultTitleBar\"]);\n} }\nfunction WindowComponent_div_4_ng_content_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojection(0, 1, [\"*ngIf\", \"!contentTemplate\"]);\n} }\nfunction WindowComponent_div_4_2_ng_template_0_Template(rf, ctx) { }\nfunction WindowComponent_div_4_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, WindowComponent_div_4_2_ng_template_0_Template, 0, 0, \"ng-template\", 13);\n} if (rf & 2) {\n const ctx_r5 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r5.contentTemplate);\n} }\nfunction WindowComponent_div_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 12);\n ɵngcc0.ɵɵtemplate(1, WindowComponent_div_4_ng_content_1_Template, 1, 0, \"ng-content\", 2);\n ɵngcc0.ɵɵtemplate(2, WindowComponent_div_4_2_Template, 1, 1, null, 2);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"hidden\", ctx_r2.state === \"minimized\" && ctx_r2.keepContent);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r2.contentTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r2.contentTemplate);\n} }\nfunction WindowComponent_ng_template_5_div_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"div\", 15);\n} if (rf & 2) {\n const dir_r8 = ctx.$implicit;\n ɵngcc0.ɵɵproperty(\"direction\", dir_r8);\n} }\nfunction WindowComponent_ng_template_5_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, WindowComponent_ng_template_5_div_0_Template, 1, 1, \"div\", 14);\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r3.resizeDirections);\n} }\nconst _c16 = [[[\"kendo-window-titlebar\"]], \"*\"];\nconst _c17 = [\"kendo-window-titlebar\", \"*\"];\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 setHTMLAttributes = (attributes, renderer, element) => {\n for (const attribute in attributes) {\n if (attribute) {\n renderer.setAttribute(element, attribute, attributes[attribute]);\n }\n }\n};\n/**\n * Receives CSS class declarations either as an object, string or array and returns an array of the class names.\n *\n * @hidden\n */\nconst parseCSSClassNames = (value) => {\n if (isObject(value)) {\n return parseObjectClassNames(value);\n }\n if (isString(value)) {\n return parseStringClassNames(value);\n }\n if (Array.isArray(value)) {\n return parseArrayClassNames(value);\n }\n};\nconst parseObjectClassNames = (value) => {\n const classes = [];\n Object.keys(value).forEach(className => {\n const currentClassName = splitStringToArray(className);\n if (value[className] && currentClassName[0]) {\n classes.push(...currentClassName);\n }\n });\n return classes;\n};\nconst parseStringClassNames = (value) => {\n const classes = [];\n const classesArray = splitStringToArray(value);\n classesArray.forEach(className => {\n classes.push(className);\n });\n return classes;\n};\nconst parseArrayClassNames = (value) => {\n const classes = [];\n value.forEach((className) => {\n const current = splitStringToArray(className);\n if (current[0]) {\n classes.push(...current);\n }\n });\n return classes;\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 isObject = (value) => isPresent(value) && !Array.isArray(value) && typeof value === 'object';\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 * @hidden\n */\nconst splitStringToArray = (value) => value.trim().replace(/\\s+/g, \" \").split(' ');\n/**\n * @hidden\n */\nconst findPrimaryButton = (buttons) => {\n for (let i = buttons.length - 1; i >= 0; i--) {\n const classList = buttons[i].classList;\n for (let j = 0; j < classList.length; j++) {\n if (classList[j].endsWith('-primary')) {\n return buttons[i];\n }\n }\n }\n};\n\n/**\n * Specifies the action buttons of the Dialog\n * ([see example]({% slug actionbuttons_dialog %})).\n */\nlet DialogActionsComponent = class 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 let classes = ['k-button k-button-md k-rounded-md'];\n const fillMode = action.fillMode ? action.fillMode : 'solid';\n const themeColor = action.themeColor ? action.themeColor : 'base';\n const cssClasses = action.cssClass ? parseCSSClassNames(action.cssClass) : [];\n classes.push(`k-button-${fillMode} k-button-${fillMode}-${themeColor}`);\n if (cssClasses.length > 0) {\n classes = classes.concat(cssClasses);\n }\n return classes.join(' ');\n }\n};\nDialogActionsComponent.ɵfac = function DialogActionsComponent_Factory(t) { return new (t || DialogActionsComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nDialogActionsComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DialogActionsComponent, selectors: [[\"kendo-dialog-actions\"]], hostVars: 6, hostBindings: function DialogActionsComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-dialog-buttongroup\", ctx.buttonGroupClassName)(\"k-actions\", ctx.buttonGroupClassName)(\"k-actions-stretched\", ctx.className);\n } }, inputs: { layout: \"layout\", actions: \"actions\" }, outputs: { action: \"action\" }, ngContentSelectors: _c0, decls: 3, vars: 3, consts: [[4, \"ngIf\"], [\"type\", \"button\", 3, \"ngClass\", \"click\", 4, \"ngFor\", \"ngForOf\"], [\"type\", \"button\", 3, \"ngClass\", \"click\"], [3, \"ngTemplateOutlet\"]], template: function DialogActionsComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵtemplate(0, DialogActionsComponent_ng_content_0_Template, 1, 0, \"ng-content\", 0);\n ɵngcc0.ɵɵtemplate(1, DialogActionsComponent_ng_container_1_Template, 2, 1, \"ng-container\", 0);\n ɵngcc0.ɵɵtemplate(2, DialogActionsComponent_2_Template, 1, 1, null, 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.actions);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.actionTemplate());\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.actionTemplate());\n } }, directives: [ɵngcc1.NgIf, ɵngcc1.NgForOf, ɵngcc1.NgClass, ɵngcc1.NgTemplateOutlet], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DialogActionsComponent.prototype, \"actions\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DialogActionsComponent.prototype, \"layout\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DialogActionsComponent.prototype, \"action\", void 0);\n__decorate([\n HostBinding('class.k-dialog-buttongroup'),\n HostBinding('class.k-actions'),\n __metadata(\"design:type\", Boolean)\n], DialogActionsComponent.prototype, \"buttonGroupClassName\", void 0);\n__decorate([\n HostBinding('class.k-actions-stretched'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DialogActionsComponent.prototype, \"className\", null);\nDialogActionsComponent = __decorate([ __metadata(\"design:paramtypes\", [ElementRef])\n], DialogActionsComponent);\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 DIALOG_LOCALIZATION_SERVICE = new InjectionToken('Dialog LocalizationService');\n\n/**\n * @hidden\n */\nlet TitleBarLocalizationService = class 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};\nTitleBarLocalizationService.ɵfac = function TitleBarLocalizationService_Factory(t) { return new (t || TitleBarLocalizationService)(ɵngcc0.ɵɵinject(L10N_PREFIX), ɵngcc0.ɵɵinject(ɵngcc2.MessageService, 8), ɵngcc0.ɵɵinject(RTL, 8), ɵngcc0.ɵɵinject(DIALOG_LOCALIZATION_SERVICE, 8)); };\nTitleBarLocalizationService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: TitleBarLocalizationService, factory: function (t) { return TitleBarLocalizationService.ɵfac(t); } });\nTitleBarLocalizationService = __decorate([\n __param(0, Inject(L10N_PREFIX)),\n __param(1, Optional()),\n __param(2, Optional()), __param(2, Inject(RTL)),\n __param(3, Optional()), __param(3, Inject(DIALOG_LOCALIZATION_SERVICE)),\n __metadata(\"design:paramtypes\", [String, MessageService, Boolean, LocalizationService])\n], TitleBarLocalizationService);\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 */\nlet DialogTitleBarComponent = class DialogTitleBarComponent {\n constructor(zone, hostElement, localizationService) {\n this.zone = zone;\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 ngAfterViewInit() {\n this.zone.onStable.pipe(take(1)).subscribe(() => {\n const element = this.hostElement.nativeElement.querySelector('.k-dialog-title');\n element.setAttribute('id', this.id);\n });\n }\n /**\n * @hidden\n */\n onCloseClick(e) {\n e.preventDefault();\n const eventArgs = new PreventableEvent();\n this.close.emit(eventArgs);\n }\n};\nDialogTitleBarComponent.ɵfac = function DialogTitleBarComponent_Factory(t) { return new (t || DialogTitleBarComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService, 8)); };\nDialogTitleBarComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DialogTitleBarComponent, selectors: [[\"kendo-dialog-titlebar\"]], hostVars: 4, hostBindings: function DialogTitleBarComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-window-titlebar\", ctx.className)(\"k-dialog-titlebar\", ctx.className);\n } }, inputs: { id: \"id\", closeTitle: \"closeTitle\" }, outputs: { close: \"close\" }, features: [ɵngcc0.ɵɵProvidersFeature([\n TitleBarLocalizationService,\n {\n provide: LocalizationService,\n useExisting: TitleBarLocalizationService\n },\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.dialog'\n }\n ])], ngContentSelectors: _c0, decls: 6, vars: 2, consts: function () { let i18n_1; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the close button\n * @meaning kendo.dialog.closeTitle\n */\n const MSG_EXTERNAL_7499923323865444383$$DIST_FESM2015_INDEX_JS_2 = goog.getMsg(\"Close\");\n i18n_1 = MSG_EXTERNAL_7499923323865444383$$DIST_FESM2015_INDEX_JS_2;\n }\n else {\n i18n_1 = $localize `:kendo.dialog.closeTitle|The title of the close button␟9b2bd34897f127e69e5f02f64692fca98a5a7572␟7499923323865444383:Close`;\n } return [[\"kendoDialogTitleBarLocalizedMessages\", \"\", \"closeTitle\", i18n_1], [1, \"k-window-title\", \"k-dialog-title\"], [1, \"k-window-actions\", \"k-dialog-actions\"], [\"role\", \"button\", 1, \"k-button\", \"k-button-md\", \"k-rounded-md\", \"k-button-flat\", \"k-button-flat-base\", \"k-icon-button\", \"k-window-action\", \"k-dialog-action\", \"k-dialog-close\", 3, \"click\"], [1, \"k-button-icon\", \"k-icon\", \"k-i-x\"]]; }, template: function DialogTitleBarComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelementContainerStart(0, 0);\n ɵngcc0.ɵɵelementStart(1, \"div\", 1);\n ɵngcc0.ɵɵprojection(2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(3, \"div\", 2)(4, \"button\", 3);\n ɵngcc0.ɵɵlistener(\"click\", function DialogTitleBarComponent_Template_button_click_4_listener($event) { return ctx.onCloseClick($event); });\n ɵngcc0.ɵɵelement(5, \"span\", 4);\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵelementContainerEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(4);\n ɵngcc0.ɵɵattribute(\"title\", ctx.closeButtonTitle)(\"aria-label\", ctx.closeButtonTitle);\n } }, directives: function () { return [LocalizedMessagesDirective]; }, encapsulation: 2 });\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DialogTitleBarComponent.prototype, \"close\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DialogTitleBarComponent.prototype, \"id\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DialogTitleBarComponent.prototype, \"closeTitle\", void 0);\n__decorate([\n HostBinding('class.k-window-titlebar'),\n HostBinding('class.k-dialog-titlebar'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DialogTitleBarComponent.prototype, \"className\", null);\nDialogTitleBarComponent = __decorate([ __param(2, Optional()),\n __metadata(\"design:paramtypes\", [NgZone, ElementRef, LocalizationService])\n], DialogTitleBarComponent);\n\n/**\n * @hidden\n */\nconst packageMetadata = {\n name: '@progress/kendo-angular-dialog',\n productName: 'Kendo UI for Angular',\n productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],\n publishDate: 1646217112,\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\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 */\nlet DialogComponent = class DialogComponent {\n constructor(wrapper, renderer, localization, cdr, ngZone) {\n this.wrapper = wrapper;\n this.renderer = renderer;\n this.cdr = cdr;\n this.ngZone = ngZone;\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 * @hidden\n */\n this.contentId = 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 or the **ESC** key.\n */\n this.close = new EventEmitter();\n this.tabIndex = 0;\n this.subscriptions = [];\n this.domSubs = new Subscription();\n validatePackage(packageMetadata);\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 this.contentId = this.generateContentId();\n }\n /**\n * @hidden\n */\n set htmlAttributes(attributes) {\n setHTMLAttributes(attributes, this.renderer, this.wrapper.nativeElement);\n const el = this.wrapper.nativeElement;\n const dir = el.getAttribute('dir');\n const tIndex = el.getAttribute('tabindex');\n if (this.direction !== dir && dir) {\n this.direction = dir;\n }\n if (this.tabIndex !== tIndex && tIndex) {\n this.tabIndex = tIndex;\n }\n this._htmlAttributes = attributes;\n }\n get htmlAttributes() {\n return this._htmlAttributes;\n }\n /**\n * @hidden\n */\n set cssClass(classes) {\n this.setServiceClasses(this._cssClass, classes);\n this._cssClass = classes;\n }\n get cssClass() {\n return this._cssClass;\n }\n get dir() {\n return this.direction;\n }\n ngAfterContentInit() {\n this.bubble('close', this.titlebarContent.first);\n this.renderer.setAttribute(this.wrapper.nativeElement.querySelector('.k-dialog'), 'aria-describedby', this.contentId);\n if (this.titlebarContent.first) {\n this.titlebarContent.first.id = this.titleId;\n }\n else {\n this.subscriptions.push(this.titlebarContent.changes.subscribe(() => {\n if (isPresent(this.titlebarContent.first)) {\n this.titlebarContent.first.id = this.titleId;\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n this.bubble('close', this.titlebarContent.first);\n this.renderer.setAttribute(this.wrapper.nativeElement.querySelector('.k-dialog'), 'aria-labelledby', this.titleId);\n });\n }\n }));\n }\n }\n ngAfterViewInit() {\n this.handleInitialFocus();\n this.bubble('close', this.titlebarView.first);\n this.bubble('action', this.actionsView);\n if (this.titlebarView.first || this.titlebarContent.first) {\n //Needed for Dialogs created via service\n this.renderer.setAttribute(this.wrapper.nativeElement.querySelector('.k-dialog'), 'aria-labelledby', this.titleId);\n }\n else {\n this.subscriptions.push(this.titlebarView.changes.subscribe(() => {\n if (isPresent(this.titlebarView.first)) {\n this.titlebarView.first.id = this.titleId;\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n this.bubble('close', this.titlebarView.first);\n this.renderer.setAttribute(this.wrapper.nativeElement.querySelector('.k-dialog'), 'aria-labelledby', this.titleId);\n });\n }\n }));\n }\n this.initDomEvents();\n }\n ngOnInit() {\n this.renderer.removeAttribute(this.wrapper.nativeElement, 'title');\n this.cdr.detectChanges();\n }\n ngOnDestroy() {\n this.subscriptions.forEach(s => s.unsubscribe());\n this.subscriptions = [];\n if (this.domSubs) {\n this.domSubs.unsubscribe();\n }\n }\n /**\n * Focuses the wrapper of the Dialog component.\n */\n focus() {\n const wrapper = this.wrapper.nativeElement;\n if (isPresent(wrapper)) {\n wrapper.focus();\n }\n }\n initDomEvents() {\n if (!this.wrapper) {\n return;\n }\n this.ngZone.runOutsideAngular(() => {\n this.domSubs.add(this.renderer.listen(this.wrapper.nativeElement, 'keydown', (ev) => {\n this.onKeyDown(ev);\n }));\n });\n }\n onKeyDown(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.ngZone.run(() => {\n this.close.emit(new DialogCloseResult());\n });\n }\n }\n if (hasClasses(target, 'k-button') && hasClasses(parent, DIALOG_ELEMENTS_HANDLING_ARROWS) &&\n (event.keyCode === Keys.left || event.keyCode === Keys.right)) {\n this.ngZone.run(() => {\n this.handleActionButtonFocus(parent, event.keyCode);\n });\n }\n if (event.keyCode === Keys.tab) {\n this.ngZone.run(() => {\n this.keepFocusWithinComponent(target, event);\n });\n }\n }\n setServiceClasses(prevValue, value) {\n const el = this.wrapper.nativeElement;\n if (prevValue) {\n parseCSSClassNames(prevValue).forEach(className => {\n this.renderer.removeClass(el, className);\n });\n }\n if (value) {\n parseCSSClassNames(value).forEach(className => {\n this.renderer.addClass(el, className);\n });\n }\n }\n /**\n * @hidden\n */\n handleInitialFocus() {\n const wrapper = this.wrapper.nativeElement;\n const primaryButton = this.findPrimary(wrapper);\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 findPrimary(wrapper) {\n const actionBtns = wrapper.querySelectorAll('.k-actions .k-button');\n return findPrimaryButton(actionBtns);\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 wrapper = this.wrapper.nativeElement;\n const [firstFocusable, lastFocusable] = this.getFirstAndLastFocusable(wrapper);\n const tabAfterLastFocusable = !event.shiftKey && target === lastFocusable;\n const shiftTabAfterFirstFocusable = event.shiftKey && target === firstFocusable;\n if (tabAfterLastFocusable) {\n event.preventDefault();\n firstFocusable.focus();\n }\n if (shiftTabAfterFirstFocusable) {\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 getFirstAndLastFocusable(parent) {\n const all = this.getAllFocusableChildren(parent);\n const firstFocusable = all.length > 0 ? all[0] : parent;\n const lastFocusable = all.length > 0 ? all[all.length - 1] : parent;\n return [firstFocusable, lastFocusable];\n }\n /**\n * @hidden\n */\n generateTitleId() {\n return 'kendo-dialog-title-' + Math.ceil(Math.random() * 1000000).toString();\n }\n /**\n * @hidden\n */\n generateContentId() {\n return 'kendo-dialog-content-' + 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.ɵfac = function DialogComponent_Factory(t) { return new (t || DialogComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nDialogComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DialogComponent, selectors: [[\"kendo-dialog\"]], contentQueries: function DialogComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, DialogTitleBarComponent, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.titlebarContent = _t);\n } }, viewQuery: function DialogComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(DialogActionsComponent, 5);\n ɵngcc0.ɵɵviewQuery(DialogTitleBarComponent, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.actionsView = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.titlebarView = _t);\n } }, hostVars: 4, hostBindings: function DialogComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"tabIndex\", ctx.tabIndex)(\"dir\", ctx.dir);\n ɵngcc0.ɵɵclassProp(\"k-dialog-wrapper\", ctx.wrapperClass);\n } }, inputs: { actionsLayout: \"actionsLayout\", actions: \"actions\", autoFocusedElement: \"autoFocusedElement\", title: \"title\", width: \"width\", minWidth: \"minWidth\", maxWidth: \"maxWidth\", height: \"height\", minHeight: \"minHeight\", maxHeight: \"maxHeight\" }, outputs: { action: \"action\", close: \"close\" }, exportAs: [\"kendoDialog\"], features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n {\n provide: DIALOG_LOCALIZATION_SERVICE,\n useExisting: LocalizationService\n },\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.dialog'\n }\n ])], ngContentSelectors: _c6, decls: 10, vars: 10, consts: function () { let i18n_3; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the close button\n * @meaning kendo.dialog.closeTitle\n */\n const MSG_EXTERNAL_7499923323865444383$$DIST_FESM2015_INDEX_JS_4 = goog.getMsg(\"Close\");\n i18n_3 = MSG_EXTERNAL_7499923323865444383$$DIST_FESM2015_INDEX_JS_4;\n }\n else {\n i18n_3 = $localize `:kendo.dialog.closeTitle|The title of the close button␟9b2bd34897f127e69e5f02f64692fca98a5a7572␟7499923323865444383:Close`;\n } return [[\"kendoDialogLocalizedMessages\", \"\", \"closeTitle\", i18n_3], [1, \"k-overlay\"], [\"role\", \"dialog\", \"aria-modal\", \"true\", 1, \"k-window\", \"k-dialog\", 3, \"ngStyle\"], [3, \"closeTitle\", \"id\", 4, \"ngIf\"], [4, \"ngIf\"], [1, \"k-content\", \"k-window-content\", \"k-dialog-content\", 3, \"id\"], [3, \"actions\", \"layout\", 4, \"ngIf\"], [3, \"closeTitle\", \"id\"], [3, \"ngTemplateOutlet\"], [3, \"actions\", \"layout\"]]; }, template: function DialogComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef(_c5);\n ɵngcc0.ɵɵelementContainerStart(0, 0);\n ɵngcc0.ɵɵelement(1, \"div\", 1);\n ɵngcc0.ɵɵelementStart(2, \"div\", 2);\n ɵngcc0.ɵɵtemplate(3, DialogComponent_kendo_dialog_titlebar_3_Template, 2, 3, \"kendo-dialog-titlebar\", 3);\n ɵngcc0.ɵɵtemplate(4, DialogComponent_ng_content_4_Template, 1, 0, \"ng-content\", 4);\n ɵngcc0.ɵɵelementStart(5, \"div\", 5);\n ɵngcc0.ɵɵtemplate(6, DialogComponent_ng_content_6_Template, 1, 0, \"ng-content\", 4);\n ɵngcc0.ɵɵtemplate(7, DialogComponent_7_Template, 1, 1, null, 4);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(8, DialogComponent_ng_content_8_Template, 1, 0, \"ng-content\", 4);\n ɵngcc0.ɵɵtemplate(9, DialogComponent_kendo_dialog_actions_9_Template, 1, 2, \"kendo-dialog-actions\", 6);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementContainerEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"@overlayAppear\", undefined);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngStyle\", ctx.styles)(\"@dialogSlideInAppear\", undefined);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.title);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.title);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"id\", ctx.contentId);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.contentTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.contentTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.actions);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.actions);\n } }, directives: function () { return [LocalizedMessagesDirective, ɵngcc1.NgStyle, ɵngcc1.NgIf, DialogTitleBarComponent, ɵngcc1.NgTemplateOutlet, DialogActionsComponent]; }, encapsulation: 2, data: { animation: [\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__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], DialogComponent.prototype, \"actions\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DialogComponent.prototype, \"actionsLayout\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DialogComponent.prototype, \"autoFocusedElement\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DialogComponent.prototype, \"title\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DialogComponent.prototype, \"width\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DialogComponent.prototype, \"minWidth\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DialogComponent.prototype, \"maxWidth\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DialogComponent.prototype, \"height\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DialogComponent.prototype, \"minHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DialogComponent.prototype, \"maxHeight\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DialogComponent.prototype, \"action\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DialogComponent.prototype, \"close\", void 0);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], DialogComponent.prototype, \"dir\", null);\n__decorate([\n HostBinding('attr.tabIndex'),\n __metadata(\"design:type\", Number)\n], DialogComponent.prototype, \"tabIndex\", void 0);\n__decorate([\n ContentChildren(DialogTitleBarComponent, { descendants: false }),\n __metadata(\"design:type\", QueryList)\n], DialogComponent.prototype, \"titlebarContent\", void 0);\n__decorate([\n ViewChildren(DialogTitleBarComponent),\n __metadata(\"design:type\", QueryList)\n], DialogComponent.prototype, \"titlebarView\", void 0);\n__decorate([\n ViewChild(DialogActionsComponent, { static: false }),\n __metadata(\"design:type\", DialogActionsComponent)\n], DialogComponent.prototype, \"actionsView\", void 0);\n__decorate([\n HostBinding('class.k-dialog-wrapper'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DialogComponent.prototype, \"wrapperClass\", null);\nDialogComponent = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n Renderer2,\n LocalizationService,\n ChangeDetectorRef,\n NgZone])\n], DialogComponent);\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.ɵfac = function DialogContentBase_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nDialogContentBase.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DialogContentBase, viewQuery: function DialogContentBase_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(DialogTitleBarComponent, 5);\n ɵngcc0.ɵɵviewQuery(DialogActionsComponent, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.dialogTitleBar = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.dialogActions = _t.first);\n } } });\n__decorate([\n ViewChild(DialogTitleBarComponent, { static: false }),\n __metadata(\"design:type\", DialogTitleBarComponent)\n], DialogContentBase.prototype, \"dialogTitleBar\", void 0);\n__decorate([\n ViewChild(DialogActionsComponent, { static: false }),\n __metadata(\"design:type\", DialogActionsComponent)\n], DialogContentBase.prototype, \"dialogActions\", void 0);\n\nvar DialogContainerService_1;\n/**\n * @hidden\n */\nlet DialogContainerService = DialogContainerService_1 = class DialogContainerService {\n set container(container) {\n DialogContainerService_1.container = container;\n }\n get container() {\n return DialogContainerService_1.container;\n }\n};\nDialogContainerService.ɵfac = function DialogContainerService_Factory(t) { return new (t || DialogContainerService)(); };\nDialogContainerService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: DialogContainerService, factory: function (t) { return DialogContainerService.ɵfac(t); } });\nDialogContainerService.container = null;\n\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 */\nlet DialogService = class 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\", themeColor: 'primary' }\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 instance.cssClass = options.cssClass;\n instance.htmlAttributes = options.htmlAttributes;\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.ɵfac = function DialogService_Factory(t) { return new (t || DialogService)(ɵngcc0.ɵɵinject(ɵngcc0.ComponentFactoryResolver), ɵngcc0.ɵɵinject(DialogContainerService)); };\nDialogService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: DialogService, factory: function (t) { return DialogService.ɵfac(t); } });\nDialogService = __decorate([ __param(1, Inject(DialogContainerService)),\n __metadata(\"design:paramtypes\", [ComponentFactoryResolver,\n DialogContainerService])\n], DialogService);\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 */\nlet DragResizeService = class 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.ɵfac = function DragResizeService_Factory(t) { return new (t || DragResizeService)(ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nDragResizeService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: DragResizeService, factory: function (t) { return DragResizeService.ɵfac(t); } });\nDragResizeService = __decorate([ __metadata(\"design:paramtypes\", [NgZone])\n], DragResizeService);\n\n/**\n * @hidden\n */\nlet ResizeHandleDirective = class 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.ɵfac = function ResizeHandleDirective_Factory(t) { return new (t || ResizeHandleDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc3.DraggableDirective, 1), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(DragResizeService)); };\nResizeHandleDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ResizeHandleDirective, selectors: [[\"\", \"kendoWindowResizeHandle\", \"\"]], hostVars: 2, hostBindings: function ResizeHandleDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-resize-handle\", ctx.hostClass);\n } }, inputs: { direction: \"direction\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ResizeHandleDirective.prototype, \"direction\", void 0);\n__decorate([\n HostBinding('class.k-resize-handle'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ResizeHandleDirective.prototype, \"hostClass\", null);\nResizeHandleDirective = __decorate([ __param(0, Host()),\n __metadata(\"design:paramtypes\", [DraggableDirective,\n ElementRef,\n Renderer2,\n DragResizeService])\n], ResizeHandleDirective);\n\nlet WindowTitleBarComponent = class 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.ɵfac = function WindowTitleBarComponent_Factory(t) { return new (t || WindowTitleBarComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(DragResizeService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nWindowTitleBarComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: WindowTitleBarComponent, selectors: [[\"kendo-window-titlebar\"]], hostVars: 6, hostBindings: function WindowTitleBarComponent_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"dblclick\", function WindowTitleBarComponent_dblclick_HostBindingHandler($event) { return ctx.handle($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"touch-action\", ctx.touchAction);\n ɵngcc0.ɵɵclassProp(\"k-window-titlebar\", ctx.className)(\"k-dialog-titlebar\", ctx.className);\n } }, inputs: { template: \"template\" }, ngContentSelectors: _c0, decls: 2, vars: 2, consts: [[4, \"ngIf\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]], template: function WindowTitleBarComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵtemplate(0, WindowTitleBarComponent_ng_content_0_Template, 1, 0, \"ng-content\", 0);\n ɵngcc0.ɵɵtemplate(1, WindowTitleBarComponent_1_Template, 1, 4, null, 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.template);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.template);\n } }, directives: [ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], WindowTitleBarComponent.prototype, \"template\", void 0);\n__decorate([\n HostBinding('class.k-window-titlebar'),\n HostBinding('class.k-dialog-titlebar'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], WindowTitleBarComponent.prototype, \"className\", null);\n__decorate([\n HostBinding('style.touch-action'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], WindowTitleBarComponent.prototype, \"touchAction\", null);\n__decorate([\n HostListener('dblclick', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], WindowTitleBarComponent.prototype, \"handle\", null);\nWindowTitleBarComponent = __decorate([ __metadata(\"design:paramtypes\", [ElementRef, DragResizeService, NgZone])\n], WindowTitleBarComponent);\n\n/**\n * @hidden\n */\nlet NavigationService = class NavigationService {\n constructor(window, ngZone) {\n this.window = window;\n this.ngZone = ngZone;\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.ngZone.run(() => {\n this.handleArrow(key, ev);\n });\n break;\n }\n case Keys.esc:\n this.ngZone.run(() => {\n this.handleEscape();\n });\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.ɵfac = function NavigationService_Factory(t) { return new (t || NavigationService)(ɵngcc0.ɵɵinject(DragResizeService), ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nNavigationService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NavigationService, factory: function (t) { return NavigationService.ɵfac(t); } });\nNavigationService = __decorate([ __metadata(\"design:paramtypes\", [DragResizeService,\n NgZone])\n], NavigationService);\n\n/**\n * Represents the [Kendo UI Window component for Angular]({% slug overview_window_dialogs %}).\n */\nlet WindowComponent = class 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 /**\n * @hidden\n */\n this.messages = {};\n this.tabIndex = 0;\n this.draged = false;\n this.resized = false;\n this.windowSubscription = new Subscription();\n this.domSubs = new Subscription();\n validatePackage(packageMetadata);\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 * @hidden\n */\n set cssClass(classes) {\n this.setServiceClasses(this._cssClass, classes);\n this._cssClass = classes;\n }\n get cssClass() {\n return this._cssClass;\n }\n /**\n * @hidden\n */\n set htmlAttributes(attributes) {\n setHTMLAttributes(attributes, this.renderer, this.el.nativeElement);\n const el = this.el.nativeElement;\n const dir = el.getAttribute('dir');\n const tIndex = el.getAttribute('tabindex');\n if (this.direction !== dir) {\n this.direction = dir;\n }\n if (this.tabIndex !== tIndex) {\n this.tabIndex = tIndex;\n }\n this._htmlAttributes = attributes;\n }\n get htmlAttributes() {\n return this._htmlAttributes;\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 this.initDomEvents();\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 if (this.domSubs) {\n this.domSubs.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 onComponentFocus() {\n this.renderer.addClass(this.el.nativeElement, 'k-focus');\n this.setNextZIndex();\n }\n /**\n * @hidden\n */\n onComponentBlur() {\n this.renderer.removeClass(this.el.nativeElement, 'k-focus');\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 initDomEvents() {\n if (!this.el) {\n return;\n }\n this.ngZone.runOutsideAngular(() => {\n this.domSubs.add(this.renderer.listen(this.el.nativeElement, 'keydown', (ev) => {\n this.onKeyDown(ev);\n }));\n });\n }\n onKeyDown(event) {\n if (hasClasses(event.target, WINDOW_CLASSES)) {\n this.navigation.process(event);\n }\n }\n setServiceClasses(prevValue, value) {\n const el = this.el.nativeElement;\n if (prevValue) {\n parseCSSClassNames(prevValue).forEach(className => {\n this.renderer.removeClass(el, className);\n });\n }\n if (value) {\n parseCSSClassNames(value).forEach(className => {\n this.renderer.addClass(el, className);\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.ɵfac = function WindowComponent_Factory(t) { return new (t || WindowComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(DragResizeService), ɵngcc0.ɵɵdirectiveInject(NavigationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nWindowComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: WindowComponent, selectors: [[\"kendo-window\"]], contentQueries: function WindowComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, WindowTitleBarComponent, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.titleBarContent = _t.first);\n } }, viewQuery: function WindowComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(WindowTitleBarComponent, 5);\n ɵngcc0.ɵɵviewQuery(ResizeHandleDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.titleBarView = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.resizeHandles = _t);\n } }, hostVars: 14, hostBindings: function WindowComponent_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"focus\", function WindowComponent_focus_HostBindingHandler() { return ctx.onComponentFocus(); })(\"blur\", function WindowComponent_blur_HostBindingHandler() { return ctx.onComponentBlur(); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"tabIndex\", ctx.tabIndex)(\"dir\", ctx.dir);\n ɵngcc0.ɵɵstyleProp(\"min-width\", ctx.styleMinWidth)(\"min-height\", ctx.styleMinHeight)(\"position\", ctx.stylePosition);\n ɵngcc0.ɵɵclassProp(\"k-window\", ctx.hostClasses)(\"k-window-maximized\", ctx.wrapperMaximizedClass)(\"k-window-minimized\", ctx.wrapperMinimizedClass);\n } }, inputs: { keepContent: \"keepContent\", draggable: \"draggable\", resizable: \"resizable\", state: \"state\", minWidth: \"minWidth\", minHeight: \"minHeight\", width: \"width\", height: \"height\", top: \"top\", left: \"left\", autoFocusedElement: \"autoFocusedElement\", title: \"title\" }, outputs: { dragStart: \"dragStart\", dragEnd: \"dragEnd\", resizeStart: \"resizeStart\", resizeEnd: \"resizeEnd\", close: \"close\", widthChange: \"widthChange\", heightChange: \"heightChange\", topChange: \"topChange\", leftChange: \"leftChange\", stateChange: \"stateChange\" }, exportAs: [\"kendoWindow\"], features: [ɵngcc0.ɵɵProvidersFeature([\n DragResizeService,\n NavigationService,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.window'\n }\n ]), ɵngcc0.ɵɵNgOnChangesFeature], ngContentSelectors: _c17, decls: 6, vars: 4, consts: function () { let i18n_8; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the close button\n * @meaning kendo.window.closeTitle\n */\n const MSG_EXTERNAL_2849207436137160812$$DIST_FESM2015_INDEX_JS_9 = goog.getMsg(\"Close\");\n i18n_8 = MSG_EXTERNAL_2849207436137160812$$DIST_FESM2015_INDEX_JS_9;\n }\n else {\n i18n_8 = $localize `:kendo.window.closeTitle|The title of the close button␟bb50cb526949482fc976fd868573ab283580ee69␟2849207436137160812:Close`;\n } let i18n_10; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the restore button\n * @meaning kendo.window.restoreTitle\n */\n const MSG_EXTERNAL_3443120027481340803$$DIST_FESM2015_INDEX_JS_11 = goog.getMsg(\"Restore\");\n i18n_10 = MSG_EXTERNAL_3443120027481340803$$DIST_FESM2015_INDEX_JS_11;\n }\n else {\n i18n_10 = $localize `:kendo.window.restoreTitle|The title of the restore button␟9a9ce231f0396e40adcfa80bfa76e546e0085be0␟3443120027481340803:Restore`;\n } let i18n_12; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the maximize button\n * @meaning kendo.window.maximizeTitle\n */\n const MSG_EXTERNAL_7793415109119115257$$DIST_FESM2015_INDEX_JS_13 = goog.getMsg(\"Maximize\");\n i18n_12 = MSG_EXTERNAL_7793415109119115257$$DIST_FESM2015_INDEX_JS_13;\n }\n else {\n i18n_12 = $localize `:kendo.window.maximizeTitle|The title of the maximize button␟42bc654ef8767c5df5277aa88941b94f8d373b4d␟7793415109119115257:Maximize`;\n } let i18n_14; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the minimize button\n * @meaning kendo.window.minimizeTitle\n */\n const MSG_EXTERNAL_7581084655285341827$$DIST_FESM2015_INDEX_JS_15 = goog.getMsg(\"Minimize\");\n i18n_14 = MSG_EXTERNAL_7581084655285341827$$DIST_FESM2015_INDEX_JS_15;\n }\n else {\n i18n_14 = $localize `:kendo.window.minimizeTitle|The title of the minimize button␟7ca9f9b41a23760f7f74e91ee4c76d5a5f4a706c␟7581084655285341827:Minimize`;\n } return [[\"kendoWindowLocalizedMessages\", \"\", \"closeTitle\", i18n_8, \"restoreTitle\", i18n_10, \"maximizeTitle\", i18n_12, \"minimizeTitle\", i18n_14], [3, \"template\", 4, \"ngIf\"], [4, \"ngIf\"], [\"class\", \"k-content k-window-content\", 3, \"hidden\", 4, \"ngIf\"], [3, \"ngIf\"], [3, \"template\"], [1, \"k-window-title\"], [1, \"k-window-actions\"], [\"kendoWindowMinimizeAction\", \"\"], [\"kendoWindowMaximizeAction\", \"\"], [\"kendoWindowRestoreAction\", \"\"], [\"kendoWindowCloseAction\", \"\"], [1, \"k-content\", \"k-window-content\", 3, \"hidden\"], [3, \"ngTemplateOutlet\"], [\"kendoWindowResizeHandle\", \"\", \"kendoDraggable\", \"\", 3, \"direction\", 4, \"ngFor\", \"ngForOf\"], [\"kendoWindowResizeHandle\", \"\", \"kendoDraggable\", \"\", 3, \"direction\"]]; }, template: function WindowComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef(_c16);\n ɵngcc0.ɵɵelementContainerStart(0, 0)(1);\n ɵngcc0.ɵɵtemplate(2, WindowComponent_kendo_window_titlebar_2_Template, 8, 10, \"kendo-window-titlebar\", 1);\n ɵngcc0.ɵɵtemplate(3, WindowComponent_ng_content_3_Template, 1, 0, \"ng-content\", 2);\n ɵngcc0.ɵɵtemplate(4, WindowComponent_div_4_Template, 3, 3, \"div\", 3);\n ɵngcc0.ɵɵtemplate(5, WindowComponent_ng_template_5_Template, 1, 1, \"ng-template\", 4);\n ɵngcc0.ɵɵelementContainerEnd()();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showDefaultTitleBar);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.showDefaultTitleBar);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.state !== \"minimized\" || ctx.keepContent);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.resizable);\n } }, directives: function () { return [LocalizedMessagesDirective, ɵngcc1.NgIf, WindowTitleBarComponent, WindowMinimizeActionDirective, WindowMaximizeActionDirective, WindowRestoreActionDirective, WindowCloseActionDirective, ɵngcc1.NgTemplateOutlet, ɵngcc1.NgForOf, ResizeHandleDirective, ɵngcc3.DraggableDirective]; }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], WindowComponent.prototype, \"autoFocusedElement\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], WindowComponent.prototype, \"title\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], WindowComponent.prototype, \"draggable\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], WindowComponent.prototype, \"resizable\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], WindowComponent.prototype, \"keepContent\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], WindowComponent.prototype, \"state\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], WindowComponent.prototype, \"minWidth\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], WindowComponent.prototype, \"minHeight\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], WindowComponent.prototype, \"width\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], WindowComponent.prototype, \"height\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], WindowComponent.prototype, \"top\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], WindowComponent.prototype, \"left\", null);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], WindowComponent.prototype, \"dragStart\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], WindowComponent.prototype, \"dragEnd\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], WindowComponent.prototype, \"resizeStart\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], WindowComponent.prototype, \"resizeEnd\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], WindowComponent.prototype, \"close\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], WindowComponent.prototype, \"widthChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], WindowComponent.prototype, \"heightChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], WindowComponent.prototype, \"topChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], WindowComponent.prototype, \"leftChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], WindowComponent.prototype, \"stateChange\", void 0);\n__decorate([\n HostBinding('attr.tabIndex'),\n __metadata(\"design:type\", Number)\n], WindowComponent.prototype, \"tabIndex\", void 0);\n__decorate([\n HostBinding('class.k-window'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], WindowComponent.prototype, \"hostClasses\", null);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], WindowComponent.prototype, \"dir\", null);\n__decorate([\n ViewChild(WindowTitleBarComponent, { static: false }),\n __metadata(\"design:type\", WindowTitleBarComponent)\n], WindowComponent.prototype, \"titleBarView\", void 0);\n__decorate([\n ContentChild(WindowTitleBarComponent, { static: false }),\n __metadata(\"design:type\", WindowTitleBarComponent)\n], WindowComponent.prototype, \"titleBarContent\", void 0);\n__decorate([\n ViewChildren(ResizeHandleDirective),\n __metadata(\"design:type\", QueryList)\n], WindowComponent.prototype, \"resizeHandles\", void 0);\n__decorate([\n HostBinding('style.minWidth'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], WindowComponent.prototype, \"styleMinWidth\", null);\n__decorate([\n HostBinding('style.minHeight'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], WindowComponent.prototype, \"styleMinHeight\", null);\n__decorate([\n HostBinding('style.position'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], WindowComponent.prototype, \"stylePosition\", null);\n__decorate([\n HostBinding('class.k-window-maximized'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], WindowComponent.prototype, \"wrapperMaximizedClass\", null);\n__decorate([\n HostBinding('class.k-window-minimized'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], WindowComponent.prototype, \"wrapperMinimizedClass\", null);\n__decorate([\n HostListener('focus'),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], WindowComponent.prototype, \"onComponentFocus\", null);\n__decorate([\n HostListener('blur'),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], WindowComponent.prototype, \"onComponentBlur\", null);\nWindowComponent = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n Renderer2,\n DragResizeService,\n NavigationService,\n NgZone,\n LocalizationService])\n], WindowComponent);\n\nlet WindowMaximizeActionDirective = class 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.fillMode = 'flat';\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.ɵfac = function WindowMaximizeActionDirective_Factory(t) { return new (t || WindowMaximizeActionDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(DragResizeService, 8), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nWindowMaximizeActionDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: WindowMaximizeActionDirective, selectors: [[\"button\", \"kendoWindowMaximizeAction\", \"\"]], hostVars: 3, hostBindings: function WindowMaximizeActionDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function WindowMaximizeActionDirective_click_HostBindingHandler() { return ctx.onClick(); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"type\", ctx.buttonType);\n ɵngcc0.ɵɵstyleProp(\"display\", ctx.visible);\n } }, inputs: { window: \"window\" }, exportAs: [\"kendoWindowMaximizeAction\"], features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.button'\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], WindowMaximizeActionDirective.prototype, \"window\", void 0);\n__decorate([\n HostBinding('attr.type'),\n __metadata(\"design:type\", String)\n], WindowMaximizeActionDirective.prototype, \"buttonType\", void 0);\n__decorate([\n HostListener('click'),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], WindowMaximizeActionDirective.prototype, \"onClick\", null);\n__decorate([\n HostBinding('style.display'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], WindowMaximizeActionDirective.prototype, \"visible\", null);\nWindowMaximizeActionDirective = __decorate([ __param(2, Optional()),\n __metadata(\"design:paramtypes\", [ElementRef,\n Renderer2,\n DragResizeService,\n LocalizationService,\n NgZone])\n], WindowMaximizeActionDirective);\n\nlet WindowMinimizeActionDirective = class 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.fillMode = 'flat';\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.ɵfac = function WindowMinimizeActionDirective_Factory(t) { return new (t || WindowMinimizeActionDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(DragResizeService, 8), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nWindowMinimizeActionDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: WindowMinimizeActionDirective, selectors: [[\"button\", \"kendoWindowMinimizeAction\", \"\"]], hostVars: 3, hostBindings: function WindowMinimizeActionDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function WindowMinimizeActionDirective_click_HostBindingHandler() { return ctx.onClick(); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"type\", ctx.buttonType);\n ɵngcc0.ɵɵstyleProp(\"display\", ctx.visible);\n } }, inputs: { window: \"window\" }, exportAs: [\"kendoWindowMinimizeAction\"], features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.button'\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], WindowMinimizeActionDirective.prototype, \"window\", void 0);\n__decorate([\n HostBinding('attr.type'),\n __metadata(\"design:type\", String)\n], WindowMinimizeActionDirective.prototype, \"buttonType\", void 0);\n__decorate([\n HostListener('click'),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], WindowMinimizeActionDirective.prototype, \"onClick\", null);\n__decorate([\n HostBinding('style.display'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], WindowMinimizeActionDirective.prototype, \"visible\", null);\nWindowMinimizeActionDirective = __decorate([ __param(2, Optional()),\n __metadata(\"design:paramtypes\", [ElementRef,\n Renderer2,\n DragResizeService,\n LocalizationService,\n NgZone])\n], WindowMinimizeActionDirective);\n\nlet WindowCloseActionDirective = class 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.fillMode = 'flat';\n this.icon = 'close';\n }\n /**\n * @hidden\n */\n onClick() {\n if (!this.isDisabled) {\n this.window.closeAction();\n }\n }\n};\nWindowCloseActionDirective.ɵfac = function WindowCloseActionDirective_Factory(t) { return new (t || WindowCloseActionDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(DragResizeService, 8), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nWindowCloseActionDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: WindowCloseActionDirective, selectors: [[\"button\", \"kendoWindowCloseAction\", \"\"]], hostVars: 1, hostBindings: function WindowCloseActionDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function WindowCloseActionDirective_click_HostBindingHandler() { return ctx.onClick(); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"type\", ctx.buttonType);\n } }, inputs: { window: \"window\" }, exportAs: [\"kendoWindowCloseAction\"], features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.button'\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], WindowCloseActionDirective.prototype, \"window\", void 0);\n__decorate([\n HostBinding('attr.type'),\n __metadata(\"design:type\", String)\n], WindowCloseActionDirective.prototype, \"buttonType\", void 0);\n__decorate([\n HostListener('click'),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], WindowCloseActionDirective.prototype, \"onClick\", null);\nWindowCloseActionDirective = __decorate([ __param(2, Optional()),\n __metadata(\"design:paramtypes\", [ElementRef,\n Renderer2,\n DragResizeService,\n LocalizationService,\n NgZone])\n], WindowCloseActionDirective);\n\nlet WindowRestoreActionDirective = class 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.fillMode = 'flat';\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.ɵfac = function WindowRestoreActionDirective_Factory(t) { return new (t || WindowRestoreActionDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(DragResizeService, 8), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nWindowRestoreActionDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: WindowRestoreActionDirective, selectors: [[\"button\", \"kendoWindowRestoreAction\", \"\"]], hostVars: 3, hostBindings: function WindowRestoreActionDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function WindowRestoreActionDirective_click_HostBindingHandler() { return ctx.onClick(); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"type\", ctx.buttonType);\n ɵngcc0.ɵɵstyleProp(\"display\", ctx.visible);\n } }, inputs: { window: \"window\" }, exportAs: [\"kendoWindowRestoreAction\"], features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.button'\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], WindowRestoreActionDirective.prototype, \"window\", void 0);\n__decorate([\n HostBinding('attr.type'),\n __metadata(\"design:type\", String)\n], WindowRestoreActionDirective.prototype, \"buttonType\", void 0);\n__decorate([\n HostListener('click'),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], WindowRestoreActionDirective.prototype, \"onClick\", null);\n__decorate([\n HostBinding('style.display'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], WindowRestoreActionDirective.prototype, \"visible\", null);\nWindowRestoreActionDirective = __decorate([ __param(2, Optional()),\n __metadata(\"design:paramtypes\", [ElementRef,\n Renderer2,\n DragResizeService,\n LocalizationService,\n NgZone])\n], WindowRestoreActionDirective);\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\nvar WindowContainerService_1;\n/**\n * @hidden\n */\nlet WindowContainerService = WindowContainerService_1 = class WindowContainerService {\n set container(container) {\n WindowContainerService_1.container = container;\n }\n get container() {\n return WindowContainerService_1.container;\n }\n};\nWindowContainerService.ɵfac = function WindowContainerService_Factory(t) { return new (t || WindowContainerService)(); };\nWindowContainerService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: WindowContainerService, factory: function (t) { return WindowContainerService.ɵfac(t); } });\nWindowContainerService.container = null;\n\nconst isNotComponent$1 = (component) => isString(component) || component instanceof TemplateRef;\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 */\nlet WindowService = class 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(map(e => (e ? e : new WindowCloseResult())), filter((e) => {\n if (settings.preventClose) {\n // add windowRef only when using component\n const windowRefParameter = isNotComponent$1(settings.content) ? undefined : windowRef;\n return !settings.preventClose(e, windowRefParameter);\n }\n return true;\n }))).pipe(take(1), \n // Takes care for multiple subscriptions:\n // We subscribe internally and the user may subscribe to get a close result - window.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 windowRef.close = close;\n windowRef.result = result;\n window.changeDetectorRef.markForCheck();\n return windowRef;\n }\n applyOptions(instance, options) {\n if (isPresent(options.htmlAttributes)) {\n instance.htmlAttributes = options.htmlAttributes;\n }\n if (isPresent(options.cssClass)) {\n instance.cssClass = options.cssClass;\n }\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.ɵfac = function WindowService_Factory(t) { return new (t || WindowService)(ɵngcc0.ɵɵinject(ɵngcc0.ComponentFactoryResolver), ɵngcc0.ɵɵinject(WindowContainerService)); };\nWindowService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: WindowService, factory: function (t) { return WindowService.ɵfac(t); } });\nWindowService = __decorate([ __param(1, Inject(WindowContainerService)),\n __metadata(\"design:paramtypes\", [ComponentFactoryResolver,\n WindowContainerService])\n], WindowService);\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 */\nlet DialogContainerDirective = class DialogContainerDirective {\n constructor(container, service) {\n service.container = container;\n }\n};\nDialogContainerDirective.ɵfac = function DialogContainerDirective_Factory(t) { return new (t || DialogContainerDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(DialogContainerService)); };\nDialogContainerDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DialogContainerDirective, selectors: [[\"\", \"kendoDialogContainer\", \"\"]] });\nDialogContainerDirective = __decorate([ __metadata(\"design:paramtypes\", [ViewContainerRef,\n DialogContainerService])\n], DialogContainerDirective);\n\n/**\n * @hidden\n */\nclass Messages extends ComponentMessages {\n}\nMessages.ɵfac = /*@__PURE__*/ function () { let ɵMessages_BaseFactory; return function Messages_Factory(t) { return (ɵMessages_BaseFactory || (ɵMessages_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(Messages)))(t || Messages); }; }();\nMessages.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: Messages, inputs: { closeTitle: \"closeTitle\", restoreTitle: \"restoreTitle\", maximizeTitle: \"maximizeTitle\", minimizeTitle: \"minimizeTitle\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"closeTitle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"restoreTitle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"maximizeTitle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"minimizeTitle\", void 0);\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.ɵfac = function LocalizedMessagesDirective_Factory(t) { return new (t || LocalizedMessagesDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nLocalizedMessagesDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LocalizedMessagesDirective, selectors: [[\"\", \"kendoDialogLocalizedMessages\", \"\"], [\"\", \"kendoWindowLocalizedMessages\", \"\"], [\"\", \"kendoDialogTitleBarLocalizedMessages\", \"\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: Messages,\n useExisting: forwardRef(() => LocalizedMessagesDirective_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature] });\nLocalizedMessagesDirective = LocalizedMessagesDirective_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], LocalizedMessagesDirective);\n\nvar CustomMessagesComponent_1;\n/**\n * Custom component messages override default component messages\n * ([see example]({% slug globalization_dialogs %}#toc-localization)).\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.ɵfac = function CustomMessagesComponent_Factory(t) { return new (t || CustomMessagesComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nCustomMessagesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CustomMessagesComponent, selectors: [[\"kendo-dialog-messages\"], [\"kendo-window-messages\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: Messages,\n useExisting: forwardRef(() => CustomMessagesComponent_1) // tslint:disable-line:no-forward-ref\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function CustomMessagesComponent_Template(rf, ctx) { }, encapsulation: 2 });\nCustomMessagesComponent = CustomMessagesComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], CustomMessagesComponent);\n\n/**\n * @hidden\n */\nconst SHARED_DIRECTIVES = [\n DialogActionsComponent,\n CustomMessagesComponent,\n LocalizedMessagesDirective\n];\n/**\n * @hidden\n */\nlet SharedModule = class SharedModule {\n};\nSharedModule.ɵfac = function SharedModule_Factory(t) { return new (t || SharedModule)(); };\nSharedModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: SharedModule });\nSharedModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule], CommonModule] });\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 */\nlet DialogModule = class DialogModule {\n};\nDialogModule.ɵfac = function DialogModule_Factory(t) { return new (t || DialogModule)(); };\nDialogModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: DialogModule });\nDialogModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ providers: [DialogContainerService, DialogService], imports: [[SharedModule]] });\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 */\nlet WindowContainerDirective = class WindowContainerDirective {\n constructor(container, service) {\n service.container = container;\n }\n};\nWindowContainerDirective.ɵfac = function WindowContainerDirective_Factory(t) { return new (t || WindowContainerDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(WindowContainerService)); };\nWindowContainerDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: WindowContainerDirective, selectors: [[\"\", \"kendoWindowContainer\", \"\"]] });\nWindowContainerDirective = __decorate([ __metadata(\"design:paramtypes\", [ViewContainerRef,\n WindowContainerService])\n], WindowContainerDirective);\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 */\nlet WindowModule = class WindowModule {\n};\nWindowModule.ɵfac = function WindowModule_Factory(t) { return new (t || WindowModule)(); };\nWindowModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: WindowModule });\nWindowModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ providers: [WindowContainerService, WindowService], imports: [[SharedModule, DraggableModule]] });\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 */\nlet DialogsModule = class DialogsModule {\n};\nDialogsModule.ɵfac = function DialogsModule_Factory(t) { return new (t || DialogsModule)(); };\nDialogsModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: DialogsModule });\nDialogsModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [DialogModule, WindowModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DialogActionsComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-dialog-actions',\n template: `\n \n \n \n {{ action.text }}\n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }]; }, { layout: [{\n type: Input\n }], action: [{\n type: Output\n }], buttonGroupClassName: [{\n type: HostBinding,\n args: ['class.k-dialog-buttongroup']\n }, {\n type: HostBinding,\n args: ['class.k-actions']\n }], className: [{\n type: HostBinding,\n args: ['class.k-actions-stretched']\n }], actions: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DialogTitleBarComponent, [{\n type: Component,\n 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 }], function () { return [{ type: ɵngcc0.NgZone }, { type: ɵngcc0.ElementRef }, { type: ɵngcc2.LocalizationService, decorators: [{\n type: Optional\n }] }]; }, { close: [{\n type: Output\n }], className: [{\n type: HostBinding,\n args: ['class.k-window-titlebar']\n }, {\n type: HostBinding,\n args: ['class.k-dialog-titlebar']\n }], id: [{\n type: Input\n }], closeTitle: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DialogComponent, [{\n type: Component,\n 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
\n {{ title }}\n \n\n
\n \n \n
\n\n \n \n
\n \n `\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc2.LocalizationService }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.NgZone }]; }, { actionsLayout: [{\n type: Input\n }], action: [{\n type: Output\n }], close: [{\n type: Output\n }], tabIndex: [{\n type: HostBinding,\n args: ['attr.tabIndex']\n }], dir: [{\n type: HostBinding,\n args: ['attr.dir']\n }], wrapperClass: [{\n type: HostBinding,\n args: ['class.k-dialog-wrapper']\n }], actions: [{\n type: Input\n }], autoFocusedElement: [{\n type: Input\n }], title: [{\n type: Input\n }], width: [{\n type: Input\n }], minWidth: [{\n type: Input\n }], maxWidth: [{\n type: Input\n }], height: [{\n type: Input\n }], minHeight: [{\n type: Input\n }], maxHeight: [{\n type: Input\n }], titlebarContent: [{\n type: ContentChildren,\n args: [DialogTitleBarComponent, { descendants: false }]\n }], titlebarView: [{\n type: ViewChildren,\n args: [DialogTitleBarComponent]\n }], actionsView: [{\n type: ViewChild,\n args: [DialogActionsComponent, { static: false }]\n }] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DialogContainerService, [{\n type: Injectable\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DialogService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc0.ComponentFactoryResolver }, { type: DialogContainerService, decorators: [{\n type: Inject,\n args: [DialogContainerService]\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DragResizeService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc0.NgZone }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ResizeHandleDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoWindowResizeHandle]'\n }]\n }], function () { return [{ type: ɵngcc3.DraggableDirective, decorators: [{\n type: Host\n }] }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: DragResizeService }]; }, { hostClass: [{\n type: HostBinding,\n args: ['class.k-resize-handle']\n }], direction: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WindowTitleBarComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-window-titlebar',\n template: `\n \n \n
\n `\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: DragResizeService }, { type: ɵngcc0.NgZone }]; }, { className: [{\n type: HostBinding,\n args: ['class.k-window-titlebar']\n }, {\n type: HostBinding,\n args: ['class.k-dialog-titlebar']\n }], touchAction: [{\n type: HostBinding,\n args: ['style.touch-action']\n }], \n /**\n * @hidden\n */\n handle: [{\n type: HostListener,\n args: ['dblclick', ['$event']]\n }], template: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigationService, [{\n type: Injectable\n }], function () { return [{ type: DragResizeService }, { type: ɵngcc0.NgZone }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WindowComponent, [{\n type: Component,\n 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 }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: DragResizeService }, { type: NavigationService }, { type: ɵngcc0.NgZone }, { type: ɵngcc2.LocalizationService }]; }, { keepContent: [{\n type: Input\n }], dragStart: [{\n type: Output\n }], dragEnd: [{\n type: Output\n }], resizeStart: [{\n type: Output\n }], resizeEnd: [{\n type: Output\n }], close: [{\n type: Output\n }], widthChange: [{\n type: Output\n }], heightChange: [{\n type: Output\n }], topChange: [{\n type: Output\n }], leftChange: [{\n type: Output\n }], stateChange: [{\n type: Output\n }], tabIndex: [{\n type: HostBinding,\n args: ['attr.tabIndex']\n }], draggable: [{\n type: Input\n }], resizable: [{\n type: Input\n }], state: [{\n type: Input\n }], minWidth: [{\n type: Input\n }], minHeight: [{\n type: Input\n }], width: [{\n type: Input\n }], height: [{\n type: Input\n }], top: [{\n type: Input\n }], left: [{\n type: Input\n }], hostClasses: [{\n type: HostBinding,\n args: ['class.k-window']\n }], dir: [{\n type: HostBinding,\n args: ['attr.dir']\n }], styleMinWidth: [{\n type: HostBinding,\n args: ['style.minWidth']\n }], styleMinHeight: [{\n type: HostBinding,\n args: ['style.minHeight']\n }], stylePosition: [{\n type: HostBinding,\n args: ['style.position']\n }], wrapperMaximizedClass: [{\n type: HostBinding,\n args: ['class.k-window-maximized']\n }], wrapperMinimizedClass: [{\n type: HostBinding,\n args: ['class.k-window-minimized']\n }], \n /**\n * @hidden\n */\n onComponentFocus: [{\n type: HostListener,\n args: ['focus']\n }], \n /**\n * @hidden\n */\n onComponentBlur: [{\n type: HostListener,\n args: ['blur']\n }], autoFocusedElement: [{\n type: Input\n }], title: [{\n type: Input\n }], titleBarView: [{\n type: ViewChild,\n args: [WindowTitleBarComponent, { static: false }]\n }], titleBarContent: [{\n type: ContentChild,\n args: [WindowTitleBarComponent, { static: false }]\n }], resizeHandles: [{\n type: ViewChildren,\n args: [ResizeHandleDirective]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WindowMaximizeActionDirective, [{\n type: Directive,\n 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 }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: DragResizeService, decorators: [{\n type: Optional\n }] }, { type: ɵngcc2.LocalizationService }, { type: ɵngcc0.NgZone }]; }, { buttonType: [{\n type: HostBinding,\n args: ['attr.type']\n }], window: [{\n type: Input\n }], \n /**\n * @hidden\n */\n onClick: [{\n type: HostListener,\n args: ['click']\n }], visible: [{\n type: HostBinding,\n args: ['style.display']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WindowMinimizeActionDirective, [{\n type: Directive,\n 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 }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: DragResizeService, decorators: [{\n type: Optional\n }] }, { type: ɵngcc2.LocalizationService }, { type: ɵngcc0.NgZone }]; }, { buttonType: [{\n type: HostBinding,\n args: ['attr.type']\n }], window: [{\n type: Input\n }], \n /**\n * @hidden\n */\n onClick: [{\n type: HostListener,\n args: ['click']\n }], visible: [{\n type: HostBinding,\n args: ['style.display']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WindowCloseActionDirective, [{\n type: Directive,\n 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 }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: DragResizeService, decorators: [{\n type: Optional\n }] }, { type: ɵngcc2.LocalizationService }, { type: ɵngcc0.NgZone }]; }, { buttonType: [{\n type: HostBinding,\n args: ['attr.type']\n }], window: [{\n type: Input\n }], \n /**\n * @hidden\n */\n onClick: [{\n type: HostListener,\n args: ['click']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WindowRestoreActionDirective, [{\n type: Directive,\n 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 }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: DragResizeService, decorators: [{\n type: Optional\n }] }, { type: ɵngcc2.LocalizationService }, { type: ɵngcc0.NgZone }]; }, { buttonType: [{\n type: HostBinding,\n args: ['attr.type']\n }], window: [{\n type: Input\n }], \n /**\n * @hidden\n */\n onClick: [{\n type: HostListener,\n args: ['click']\n }], visible: [{\n type: HostBinding,\n args: ['style.display']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WindowContainerService, [{\n type: Injectable\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WindowService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc0.ComponentFactoryResolver }, { type: WindowContainerService, decorators: [{\n type: Inject,\n args: [WindowContainerService]\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DialogContainerDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoDialogContainer]'\n }]\n }], function () { return [{ type: ɵngcc0.ViewContainerRef }, { type: DialogContainerService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LocalizedMessagesDirective, [{\n type: Directive,\n args: [{\n providers: [\n {\n provide: Messages,\n useExisting: forwardRef(() => LocalizedMessagesDirective_1)\n }\n ],\n selector: `\n [kendoDialogLocalizedMessages],\n [kendoWindowLocalizedMessages],\n [kendoDialogTitleBarLocalizedMessages]\n `\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CustomMessagesComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: Messages,\n useExisting: forwardRef(() => CustomMessagesComponent_1) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: 'kendo-dialog-messages, kendo-window-messages',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SharedModule, [{\n type: NgModule,\n args: [{\n declarations: [SHARED_DIRECTIVES],\n exports: [SHARED_DIRECTIVES, CommonModule],\n imports: [CommonModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(SharedModule, { declarations: function () { return [DialogActionsComponent, CustomMessagesComponent, LocalizedMessagesDirective]; }, imports: function () { return [CommonModule]; }, exports: function () { return [DialogActionsComponent, CustomMessagesComponent, LocalizedMessagesDirective, CommonModule]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DialogModule, [{\n type: NgModule,\n 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 }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(DialogModule, { declarations: [DialogComponent, DialogTitleBarComponent, DialogContainerDirective], imports: [SharedModule], exports: [DialogComponent, DialogTitleBarComponent, DialogActionsComponent, CustomMessagesComponent, LocalizedMessagesDirective, DialogContainerDirective] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WindowContainerDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoWindowContainer]'\n }]\n }], function () { return [{ type: ɵngcc0.ViewContainerRef }, { type: WindowContainerService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WindowModule, [{\n type: NgModule,\n 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 }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(WindowModule, { declarations: function () { return [ResizeHandleDirective, WindowComponent, WindowTitleBarComponent, WindowCloseActionDirective, WindowMinimizeActionDirective, WindowMaximizeActionDirective, WindowRestoreActionDirective, WindowContainerDirective]; }, imports: function () { return [SharedModule, DraggableModule]; }, exports: function () { return [WindowComponent, WindowCloseActionDirective, WindowMinimizeActionDirective, WindowMaximizeActionDirective, WindowRestoreActionDirective, WindowTitleBarComponent, DialogActionsComponent, CustomMessagesComponent, LocalizedMessagesDirective, WindowContainerDirective]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DialogsModule, [{\n type: NgModule,\n args: [{\n exports: [DialogModule, WindowModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(DialogsModule, { exports: [DialogModule, WindowModule] }); })();\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","/**-----------------------------------------------------------------------------------------\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 { EventEmitter, Input, Output, ViewChild, ElementRef, HostBinding, Component, Renderer2, Directive, TemplateRef, Injectable, ViewChildren, QueryList, ChangeDetectorRef, NgZone, InjectionToken, forwardRef, isDevMode, ContentChild, ViewContainerRef, Optional, Inject, HostListener, KeyValueDiffers, ContentChildren, ChangeDetectionStrategy, NgModule } from '@angular/core';\nimport { isDocumentAvailable, Keys, isChanged, hasObservers, KendoInput, anyChanged, guid, ResizeSensorModule, EventsModule } from '@progress/kendo-angular-common';\nimport { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\nimport { validatePackage } from '@progress/kendo-licensing';\nimport { getter, pointers, touchEnabled } from '@progress/kendo-common';\nimport { LocalizationService, L10N_PREFIX, ComponentMessages } from '@progress/kendo-angular-l10n';\nimport { merge, fromEvent, Subject, Subscription, of, interval } from 'rxjs';\nimport { PopupService, PopupModule } from '@progress/kendo-angular-popup';\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@progress/kendo-angular-l10n';\nimport * as ɵngcc2 from '@progress/kendo-angular-common';\nimport * as ɵngcc3 from '@angular/common';\nimport * as ɵngcc4 from '@progress/kendo-angular-popup';\nimport * as ɵngcc5 from '@angular/forms';\nimport * as ɵngcc6 from '@progress/kendo-angular-treeview';\n\nconst _c0 = [\"input\"];\nconst _c1 = function (a0, a1) { return { focus: a0, blur: a1 }; };\nconst _c2 = [\"content\"];\nconst _c3 = [\"list\"];\nconst _c4 = [\"virtualContainer\"];\nfunction ListComponent_div_0_1_ng_template_0_Template(rf, ctx) { }\nconst _c5 = function (a0, a1) { return { templateRef: a0, $implicit: a1 }; };\nfunction ListComponent_div_0_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ListComponent_div_0_1_ng_template_0_Template, 0, 0, \"ng-template\", 10);\n} if (rf & 2) {\n const ctx_r7 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction2(1, _c5, ctx_r7.fixedGroupTemplate.templateRef, ctx_r7.currentGroup));\n} }\nfunction ListComponent_div_0_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\");\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r8 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵclassMap(ctx_r8.listGroupStickyHeaderTextClass);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r8.currentGroup);\n} }\nconst _c6 = function (a0, a1, a2) { return { \"height.px\": a0, \"minHeight.px\": a1, \"boxSizing\": a2 }; };\nfunction ListComponent_div_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 8);\n ɵngcc0.ɵɵtemplate(1, ListComponent_div_0_1_Template, 1, 4, null, 5);\n ɵngcc0.ɵɵtemplate(2, ListComponent_div_0_ng_template_2_Template, 2, 3, \"ng-template\", 9);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassMap(ctx_r0.listGroupStickyHeaderClass);\n ɵngcc0.ɵɵproperty(\"ngStyle\", ɵngcc0.ɵɵpureFunction3(5, _c6, ctx_r0.virtual == null ? null : ctx_r0.virtual.itemHeight, ctx_r0.virtual == null ? null : ctx_r0.virtual.itemHeight, ctx_r0.virtual ? \"border-box\" : \"inherit\"));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r0.fixedGroupTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r0.fixedGroupTemplate);\n} }\nfunction ListComponent_5_ng_template_0_input_1_Template(rf, ctx) { if (rf & 1) {\n const _r18 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"input\", 14);\n ɵngcc0.ɵɵlistener(\"change\", function ListComponent_5_ng_template_0_input_1_Template_input_change_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r18); const itemIndex_r12 = ɵngcc0.ɵɵnextContext().index; const ctx_r16 = ɵngcc0.ɵɵnextContext(2); return ctx_r16.onCheckedChange($event, itemIndex_r12); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const itemIndex_r12 = ɵngcc0.ɵɵnextContext().index;\n const ctx_r13 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r13.checkboxClasses)(\"checked\", ctx_r13.isChecked(itemIndex_r12));\n} }\nfunction ListComponent_5_ng_template_0_2_ng_template_0_Template(rf, ctx) { }\nfunction ListComponent_5_ng_template_0_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ListComponent_5_ng_template_0_2_ng_template_0_Template, 0, 0, \"ng-template\", 10);\n} if (rf & 2) {\n const dataItem_r11 = ɵngcc0.ɵɵnextContext().$implicit;\n const ctx_r14 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction2(1, _c5, ctx_r14.template.templateRef, dataItem_r11));\n} }\nfunction ListComponent_5_ng_template_0_ng_template_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 15);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const dataItem_r11 = ɵngcc0.ɵɵnextContext().$implicit;\n const ctx_r15 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r15.getText(dataItem_r11));\n} }\nconst _c7 = function (a0, a1) { return { \"k-disabled\": a0, \"k-table-alt-row\": a1 }; };\nfunction ListComponent_5_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"li\", 12);\n ɵngcc0.ɵɵtemplate(1, ListComponent_5_ng_template_0_input_1_Template, 1, 2, \"input\", 13);\n ɵngcc0.ɵɵtemplate(2, ListComponent_5_ng_template_0_2_Template, 1, 4, null, 5);\n ɵngcc0.ɵɵtemplate(3, ListComponent_5_ng_template_0_ng_template_3_Template, 2, 1, \"ng-template\", 9);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const dataItem_r11 = ctx.$implicit;\n const itemIndex_r12 = ctx.index;\n const ctx_r10 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵclassMap(ctx_r10.listItemClass);\n ɵngcc0.ɵɵproperty(\"checkboxes\", ctx_r10.checkboxes)(\"height\", ctx_r10.virtual == null ? null : ctx_r10.virtual.itemHeight)(\"index\", itemIndex_r12 + ctx_r10.startFrom)(\"multipleSelection\", ctx_r10.multipleSelection)(\"ngClass\", ɵngcc0.ɵɵpureFunction2(12, _c7, ctx_r10.isDisabled(itemIndex_r12), ctx_r10.isAltRow(itemIndex_r12)));\n ɵngcc0.ɵɵattribute(\"id\", ctx_r10.optionPrefix + \"-\" + ctx_r10.getValue(dataItem_r11))(\"tabIndex\", -1);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r10.checkboxes.enabled);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r10.template);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r10.template);\n} }\nfunction ListComponent_5_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ListComponent_5_ng_template_0_Template, 4, 15, \"ng-template\", 11);\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r3.data);\n} }\nfunction ListComponent_6_ng_template_0_li_0_2_ng_template_0_Template(rf, ctx) { }\nfunction ListComponent_6_ng_template_0_li_0_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ListComponent_6_ng_template_0_li_0_2_ng_template_0_Template, 0, 0, \"ng-template\", 10);\n} if (rf & 2) {\n const dataItem_r24 = ɵngcc0.ɵɵnextContext(2).$implicit;\n const ctx_r28 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction2(1, _c5, ctx_r28.groupTemplate.templateRef, dataItem_r24.value));\n} }\nfunction ListComponent_6_ng_template_0_li_0_ng_template_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n} if (rf & 2) {\n const dataItem_r24 = ɵngcc0.ɵɵnextContext(2).$implicit;\n ɵngcc0.ɵɵtextInterpolate(dataItem_r24.value);\n} }\nfunction ListComponent_6_ng_template_0_li_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"li\", 18)(1, \"span\");\n ɵngcc0.ɵɵtemplate(2, ListComponent_6_ng_template_0_li_0_2_Template, 1, 4, null, 5);\n ɵngcc0.ɵɵtemplate(3, ListComponent_6_ng_template_0_li_0_ng_template_3_Template, 1, 1, \"ng-template\", 9);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r33 = ɵngcc0.ɵɵnextContext();\n const itemIndex_r25 = ctx_r33.index;\n const dataItem_r24 = ctx_r33.$implicit;\n const ctx_r26 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵclassMap(ctx_r26.listGroupItemClass);\n ɵngcc0.ɵɵclassProp(\"k-table-alt-row\", ctx_r26.isAltRow(itemIndex_r25 - 1));\n ɵngcc0.ɵɵproperty(\"ngStyle\", ɵngcc0.ɵɵpureFunction3(12, _c6, ctx_r26.virtual == null ? null : ctx_r26.virtual.itemHeight, ctx_r26.virtual == null ? null : ctx_r26.virtual.itemHeight, ctx_r26.virtual ? \"border-box\" : \"inherit\"));\n ɵngcc0.ɵɵattribute(\"group-index\", dataItem_r24.index)(\"id\", ctx_r26.optionPrefix + \"-\" + ctx_r26.getValue(dataItem_r24.value))(\"tabIndex\", -1);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassMap(ctx_r26.listGroupItemTextClass);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r26.groupTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r26.groupTemplate);\n} }\nfunction ListComponent_6_ng_template_0_li_1_1_ng_template_0_Template(rf, ctx) { }\nfunction ListComponent_6_ng_template_0_li_1_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ListComponent_6_ng_template_0_li_1_1_ng_template_0_Template, 0, 0, \"ng-template\", 10);\n} if (rf & 2) {\n const dataItem_r24 = ɵngcc0.ɵɵnextContext(2).$implicit;\n const ctx_r34 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction2(1, _c5, ctx_r34.template.templateRef, dataItem_r24.value));\n} }\nfunction ListComponent_6_ng_template_0_li_1_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 15);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const dataItem_r24 = ɵngcc0.ɵɵnextContext(2).$implicit;\n const ctx_r35 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r35.getText(dataItem_r24.value));\n} }\nfunction ListComponent_6_ng_template_0_li_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"li\", 19);\n ɵngcc0.ɵɵtemplate(1, ListComponent_6_ng_template_0_li_1_1_Template, 1, 4, null, 5);\n ɵngcc0.ɵɵtemplate(2, ListComponent_6_ng_template_0_li_1_ng_template_2_Template, 2, 1, \"ng-template\", 9);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r39 = ɵngcc0.ɵɵnextContext();\n const dataItem_r24 = ctx_r39.$implicit;\n const itemIndex_r25 = ctx_r39.index;\n const ctx_r27 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵclassMap(ctx_r27.listItemClass);\n ɵngcc0.ɵɵproperty(\"height\", ctx_r27.virtual == null ? null : ctx_r27.virtual.itemHeight)(\"index\", dataItem_r24.offsetIndex)(\"multipleSelection\", ctx_r27.multipleSelection)(\"ngClass\", ɵngcc0.ɵɵpureFunction2(11, _c7, ctx_r27.isDisabled(dataItem_r24.offsetIndex), ctx_r27.isAltRow(itemIndex_r25 - 1)));\n ɵngcc0.ɵɵattribute(\"absolute-index\", dataItem_r24.index)(\"id\", ctx_r27.optionPrefix + \"-\" + ctx_r27.getValue(dataItem_r24.value))(\"tabIndex\", -1);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r27.template);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r27.template);\n} }\nfunction ListComponent_6_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ListComponent_6_ng_template_0_li_0_Template, 4, 16, \"li\", 16);\n ɵngcc0.ɵɵtemplate(1, ListComponent_6_ng_template_0_li_1_Template, 3, 14, \"li\", 17);\n} if (rf & 2) {\n const dataItem_r24 = ctx.$implicit;\n ɵngcc0.ɵɵproperty(\"ngIf\", dataItem_r24.header && dataItem_r24.index > 0);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !dataItem_r24.header);\n} }\nfunction ListComponent_6_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ListComponent_6_ng_template_0_Template, 2, 2, \"ng-template\", 11);\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r4.data);\n} }\nfunction ListComponent_kendo_resize_sensor_7_Template(rf, ctx) { if (rf & 1) {\n const _r41 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-resize-sensor\", 20);\n ɵngcc0.ɵɵlistener(\"resize\", function ListComponent_kendo_resize_sensor_7_Template_kendo_resize_sensor_resize_0_listener() { ɵngcc0.ɵɵrestoreView(_r41); const ctx_r40 = ɵngcc0.ɵɵnextContext(); return ctx_r40.listResize.emit(); });\n ɵngcc0.ɵɵelementEnd();\n} }\nfunction ListComponent_div_8_Template(rf, ctx) { if (rf & 1) {\n const _r44 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 21, 22)(2, \"div\")(3, \"kendo-resize-sensor\", 20);\n ɵngcc0.ɵɵlistener(\"resize\", function ListComponent_div_8_Template_kendo_resize_sensor_resize_3_listener() { ɵngcc0.ɵɵrestoreView(_r44); const ctx_r43 = ɵngcc0.ɵɵnextContext(); return ctx_r43.listResize.emit(); });\n ɵngcc0.ɵɵelementEnd()()();\n} if (rf & 2) {\n const ctx_r6 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵstyleProp(\"height\", ctx_r6.scrollHeight, \"px\");\n} }\nconst _c8 = [\"container\"];\nconst _c9 = [\"popupTemplate\"];\nconst _c10 = [\"optionsList\"];\nfunction AutoCompleteComponent_span_3_Template(rf, ctx) { if (rf & 1) {\n const _r8 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"span\", 8);\n ɵngcc0.ɵɵlistener(\"click\", function AutoCompleteComponent_span_3_Template_span_click_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r8); const ctx_r7 = ɵngcc0.ɵɵnextContext(); return ctx_r7.clearValue($event); })(\"mousedown\", function AutoCompleteComponent_span_3_Template_span_mousedown_0_listener($event) { return $event.preventDefault(); });\n ɵngcc0.ɵɵelement(1, \"span\", 9);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵstyleProp(\"visibility\", ctx_r1.clearButtonVisiblity);\n ɵngcc0.ɵɵattribute(\"title\", ctx_r1.messageFor(\"clearTitle\"));\n} }\nfunction AutoCompleteComponent_span_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 10);\n} }\nfunction AutoCompleteComponent_ng_template_5_0_ng_template_0_Template(rf, ctx) { }\nconst _c15 = function (a0) { return { templateRef: a0 }; };\nfunction AutoCompleteComponent_ng_template_5_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, AutoCompleteComponent_ng_template_5_0_ng_template_0_Template, 0, 0, \"ng-template\", 15);\n} if (rf & 2) {\n const ctx_r10 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction1(1, _c15, ctx_r10.headerTemplate.templateRef));\n} }\nfunction AutoCompleteComponent_ng_template_5_div_3_ng_template_1_Template(rf, ctx) { }\nfunction AutoCompleteComponent_ng_template_5_div_3_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\");\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r16 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r16.messageFor(\"noDataText\"));\n} }\nfunction AutoCompleteComponent_ng_template_5_div_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 16);\n ɵngcc0.ɵɵtemplate(1, AutoCompleteComponent_ng_template_5_div_3_ng_template_1_Template, 0, 0, \"ng-template\", 17);\n ɵngcc0.ɵɵtemplate(2, AutoCompleteComponent_ng_template_5_div_3_ng_template_2_Template, 2, 1, \"ng-template\", 6);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r12 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r12.noDataTemplate)(\"templateContext\", ɵngcc0.ɵɵpureFunction1(3, _c15, ctx_r12.noDataTemplate == null ? null : ctx_r12.noDataTemplate.templateRef));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r12.noDataTemplate);\n} }\nfunction AutoCompleteComponent_ng_template_5_4_ng_template_0_Template(rf, ctx) { }\nfunction AutoCompleteComponent_ng_template_5_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, AutoCompleteComponent_ng_template_5_4_ng_template_0_Template, 0, 0, \"ng-template\", 15);\n} if (rf & 2) {\n const ctx_r13 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction1(1, _c15, ctx_r13.footerTemplate.templateRef));\n} }\nfunction AutoCompleteComponent_ng_template_5_Template(rf, ctx) { if (rf & 1) {\n const _r19 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵtemplate(0, AutoCompleteComponent_ng_template_5_0_Template, 1, 3, null, 11);\n ɵngcc0.ɵɵelementStart(1, \"kendo-list\", 12, 13);\n ɵngcc0.ɵɵlistener(\"pageChange\", function AutoCompleteComponent_ng_template_5_Template_kendo_list_pageChange_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r19); const ctx_r18 = ɵngcc0.ɵɵnextContext(); return ctx_r18.pageChange($event); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, AutoCompleteComponent_ng_template_5_div_3_Template, 3, 5, \"div\", 14);\n ɵngcc0.ɵɵtemplate(4, AutoCompleteComponent_ng_template_5_4_Template, 1, 3, null, 11);\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.headerTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"size\", ctx_r4.size)(\"rounded\", ctx_r4.rounded)(\"id\", ctx_r4.listBoxId)(\"optionPrefix\", ctx_r4.optionPrefix)(\"data\", ctx_r4.data)(\"textField\", ctx_r4.valueField)(\"valueField\", ctx_r4.valueField)(\"template\", ctx_r4.template)(\"groupTemplate\", ctx_r4.groupTemplate)(\"fixedGroupTemplate\", ctx_r4.fixedGroupTemplate)(\"height\", ctx_r4.listHeight)(\"show\", ctx_r4.isOpen)(\"virtual\", ctx_r4.virtual);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.data.length === 0);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.footerTemplate);\n} }\nfunction AutoCompleteComponent_ng_template_7_Template(rf, ctx) { if (rf & 1) {\n const _r21 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-resize-sensor\", 18);\n ɵngcc0.ɵɵlistener(\"resize\", function AutoCompleteComponent_ng_template_7_Template_kendo_resize_sensor_resize_0_listener() { ɵngcc0.ɵɵrestoreView(_r21); const ctx_r20 = ɵngcc0.ɵɵnextContext(); return ctx_r20.onResize(); });\n ɵngcc0.ɵɵelementEnd();\n} }\nconst _c16 = [\"select\"];\nconst _c23 = function (a0) { return { mousedown: a0 }; };\nfunction ComboBoxComponent_span_3_Template(rf, ctx) { if (rf & 1) {\n const _r8 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"span\", 10);\n ɵngcc0.ɵɵlistener(\"click\", function ComboBoxComponent_span_3_Template_span_click_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r8); const ctx_r7 = ɵngcc0.ɵɵnextContext(); return ctx_r7.clearValue($event); });\n ɵngcc0.ɵɵelement(1, \"span\", 11);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵstyleProp(\"visibility\", ctx_r1.clearButtonVisiblity);\n ɵngcc0.ɵɵproperty(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction1(4, _c23, ctx_r1.preventEventDefault));\n ɵngcc0.ɵɵattribute(\"title\", ctx_r1.messageFor(\"clearTitle\"));\n} }\nfunction ComboBoxComponent_ng_template_7_0_ng_template_0_Template(rf, ctx) { }\nfunction ComboBoxComponent_ng_template_7_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ComboBoxComponent_ng_template_7_0_ng_template_0_Template, 0, 0, \"ng-template\", 16);\n} if (rf & 2) {\n const ctx_r9 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction1(1, _c15, ctx_r9.headerTemplate.templateRef));\n} }\nfunction ComboBoxComponent_ng_template_7_div_3_ng_template_1_Template(rf, ctx) { }\nfunction ComboBoxComponent_ng_template_7_div_3_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\");\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r15 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r15.messageFor(\"noDataText\"));\n} }\nfunction ComboBoxComponent_ng_template_7_div_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 17);\n ɵngcc0.ɵɵtemplate(1, ComboBoxComponent_ng_template_7_div_3_ng_template_1_Template, 0, 0, \"ng-template\", 18);\n ɵngcc0.ɵɵtemplate(2, ComboBoxComponent_ng_template_7_div_3_ng_template_2_Template, 2, 1, \"ng-template\", 8);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r11 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r11.noDataTemplate)(\"templateContext\", ɵngcc0.ɵɵpureFunction1(3, _c15, ctx_r11.noDataTemplate ? ctx_r11.noDataTemplate.templateRef : undefined));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r11.noDataTemplate);\n} }\nfunction ComboBoxComponent_ng_template_7_4_ng_template_0_Template(rf, ctx) { }\nfunction ComboBoxComponent_ng_template_7_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ComboBoxComponent_ng_template_7_4_ng_template_0_Template, 0, 0, \"ng-template\", 16);\n} if (rf & 2) {\n const ctx_r12 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction1(1, _c15, ctx_r12.footerTemplate.templateRef));\n} }\nfunction ComboBoxComponent_ng_template_7_Template(rf, ctx) { if (rf & 1) {\n const _r18 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵtemplate(0, ComboBoxComponent_ng_template_7_0_Template, 1, 3, null, 12);\n ɵngcc0.ɵɵelementStart(1, \"kendo-list\", 13, 14);\n ɵngcc0.ɵɵlistener(\"pageChange\", function ComboBoxComponent_ng_template_7_Template_kendo_list_pageChange_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r18); const ctx_r17 = ɵngcc0.ɵɵnextContext(); return ctx_r17.pageChange($event); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, ComboBoxComponent_ng_template_7_div_3_Template, 3, 5, \"div\", 15);\n ɵngcc0.ɵɵtemplate(4, ComboBoxComponent_ng_template_7_4_Template, 1, 3, null, 12);\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.headerTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"size\", ctx_r4.size)(\"rounded\", ctx_r4.rounded)(\"id\", ctx_r4.listBoxId)(\"optionPrefix\", ctx_r4.optionPrefix)(\"data\", ctx_r4.data)(\"textField\", ctx_r4.textField)(\"valueField\", ctx_r4.valueField)(\"template\", ctx_r4.template)(\"groupTemplate\", ctx_r4.groupTemplate)(\"fixedGroupTemplate\", ctx_r4.fixedGroupTemplate)(\"height\", ctx_r4.listHeight)(\"show\", ctx_r4.isOpen)(\"virtual\", ctx_r4.virtual);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.data.length === 0);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.footerTemplate);\n} }\nfunction ComboBoxComponent_ng_template_9_Template(rf, ctx) { if (rf & 1) {\n const _r20 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-resize-sensor\", 19);\n ɵngcc0.ɵɵlistener(\"resize\", function ComboBoxComponent_ng_template_9_Template_kendo_resize_sensor_resize_0_listener() { ɵngcc0.ɵɵrestoreView(_r20); const ctx_r19 = ɵngcc0.ɵɵnextContext(); return ctx_r19.onResize(); });\n ɵngcc0.ɵɵelementEnd();\n} }\nfunction DropDownListComponent_3_ng_template_0_Template(rf, ctx) { }\nfunction DropDownListComponent_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DropDownListComponent_3_ng_template_0_Template, 0, 0, \"ng-template\", 9);\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction2(1, _c5, ctx_r0.valueTemplate.templateRef, ctx_r0.dataItem));\n} }\nfunction DropDownListComponent_ng_template_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵtextInterpolate(ctx_r1.getText());\n} }\nfunction DropDownListComponent_ng_template_7_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n const _r16 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 13);\n ɵngcc0.ɵɵlistener(\"click\", function DropDownListComponent_ng_template_7_ng_template_0_Template_div_click_0_listener($event) { return $event.stopImmediatePropagation(); });\n ɵngcc0.ɵɵelementStart(1, \"span\", 14);\n ɵngcc0.ɵɵelement(2, \"span\", 15);\n ɵngcc0.ɵɵelementStart(3, \"input\", 16);\n ɵngcc0.ɵɵlistener(\"ngModelChange\", function DropDownListComponent_ng_template_7_ng_template_0_Template_input_ngModelChange_3_listener($event) { ɵngcc0.ɵɵrestoreView(_r16); const ctx_r15 = ɵngcc0.ɵɵnextContext(2); return ctx_r15.filterText = $event; })(\"keydown\", function DropDownListComponent_ng_template_7_ng_template_0_Template_input_keydown_3_listener($event) { ɵngcc0.ɵɵrestoreView(_r16); const ctx_r17 = ɵngcc0.ɵɵnextContext(2); return ctx_r17.keydown($event); })(\"input\", function DropDownListComponent_ng_template_7_ng_template_0_Template_input_input_3_listener($event) { ɵngcc0.ɵɵrestoreView(_r16); const ctx_r18 = ɵngcc0.ɵɵnextContext(2); return ctx_r18.handleFilter($event); })(\"focus\", function DropDownListComponent_ng_template_7_ng_template_0_Template_input_focus_3_listener() { ɵngcc0.ɵɵrestoreView(_r16); const ctx_r19 = ɵngcc0.ɵɵnextContext(2); return ctx_r19.onFilterFocus(); })(\"blur\", function DropDownListComponent_ng_template_7_ng_template_0_Template_input_blur_3_listener() { ɵngcc0.ɵɵrestoreView(_r16); const ctx_r20 = ɵngcc0.ɵɵnextContext(2); return ctx_r20.blurFilterInput(); });\n ɵngcc0.ɵɵelementEnd()()();\n} if (rf & 2) {\n const ctx_r7 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r7.filterInputClasses);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"filterInput\", ctx_r7.isFocused && !ctx_r7.touchEnabled)(\"dir\", ctx_r7.direction)(\"ngModel\", ctx_r7.filterText);\n ɵngcc0.ɵɵattribute(\"aria-owns\", ctx_r7.ariaOwns)(\"aria-activedescendant\", ctx_r7.ariaActivedescendant)(\"aria-label\", ctx_r7.noDataLabel);\n} }\nconst _c28 = function (a0) { return { \"k-disabled\": a0 }; };\nfunction DropDownListComponent_ng_template_7_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 17)(1, \"div\", 18);\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r8 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r8.optionLabelSizeClass);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction1(4, _c28, ctx_r8.isDisabledDefaultItem))(\"index\", -1);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r8.getDefaultItemText(), \" \");\n} }\nfunction DropDownListComponent_ng_template_7_ng_template_2_ng_template_2_Template(rf, ctx) { }\nfunction DropDownListComponent_ng_template_7_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 17)(1, \"div\", 18);\n ɵngcc0.ɵɵtemplate(2, DropDownListComponent_ng_template_7_ng_template_2_ng_template_2_Template, 0, 0, \"ng-template\", 9);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r9 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r9.optionLabelSizeClass);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction1(4, _c28, ctx_r9.isDisabledDefaultItem))(\"index\", -1);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction2(6, _c5, ctx_r9.itemTemplate.templateRef, ctx_r9.defaultItem));\n} }\nfunction DropDownListComponent_ng_template_7_3_ng_template_0_Template(rf, ctx) { }\nfunction DropDownListComponent_ng_template_7_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DropDownListComponent_ng_template_7_3_ng_template_0_Template, 0, 0, \"ng-template\", 9);\n} if (rf & 2) {\n const ctx_r10 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction1(1, _c15, ctx_r10.headerTemplate.templateRef));\n} }\nfunction DropDownListComponent_ng_template_7_div_6_ng_template_1_Template(rf, ctx) { }\nfunction DropDownListComponent_ng_template_7_div_6_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\");\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r24 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r24.messageFor(\"noDataText\"));\n} }\nfunction DropDownListComponent_ng_template_7_div_6_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 19);\n ɵngcc0.ɵɵtemplate(1, DropDownListComponent_ng_template_7_div_6_ng_template_1_Template, 0, 0, \"ng-template\", 20);\n ɵngcc0.ɵɵtemplate(2, DropDownListComponent_ng_template_7_div_6_ng_template_2_Template, 2, 1, \"ng-template\", 4);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r12 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r12.noDataTemplate)(\"templateContext\", ɵngcc0.ɵɵpureFunction1(3, _c15, ctx_r12.noDataTemplate ? ctx_r12.noDataTemplate.templateRef : undefined));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r12.noDataTemplate);\n} }\nfunction DropDownListComponent_ng_template_7_7_ng_template_0_Template(rf, ctx) { }\nfunction DropDownListComponent_ng_template_7_7_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DropDownListComponent_ng_template_7_7_ng_template_0_Template, 0, 0, \"ng-template\", 9);\n} if (rf & 2) {\n const ctx_r13 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction1(1, _c15, ctx_r13.footerTemplate.templateRef));\n} }\nfunction DropDownListComponent_ng_template_7_Template(rf, ctx) { if (rf & 1) {\n const _r27 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵtemplate(0, DropDownListComponent_ng_template_7_ng_template_0_Template, 4, 7, \"ng-template\", 4);\n ɵngcc0.ɵɵtemplate(1, DropDownListComponent_ng_template_7_ng_template_1_Template, 3, 6, \"ng-template\", 4);\n ɵngcc0.ɵɵtemplate(2, DropDownListComponent_ng_template_7_ng_template_2_Template, 3, 9, \"ng-template\", 4);\n ɵngcc0.ɵɵtemplate(3, DropDownListComponent_ng_template_7_3_Template, 1, 3, null, 3);\n ɵngcc0.ɵɵelementStart(4, \"kendo-list\", 10, 11);\n ɵngcc0.ɵɵlistener(\"pageChange\", function DropDownListComponent_ng_template_7_Template_kendo_list_pageChange_4_listener($event) { ɵngcc0.ɵɵrestoreView(_r27); const ctx_r26 = ɵngcc0.ɵɵnextContext(); return ctx_r26.pageChange($event); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(6, DropDownListComponent_ng_template_7_div_6_Template, 3, 5, \"div\", 12);\n ɵngcc0.ɵɵtemplate(7, DropDownListComponent_ng_template_7_7_Template, 1, 3, null, 3);\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r3.filterable);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r3.defaultItem && !ctx_r3.itemTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r3.defaultItem && ctx_r3.itemTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r3.headerTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"size\", ctx_r3.size)(\"rounded\", ctx_r3.rounded)(\"id\", ctx_r3.listBoxId)(\"optionPrefix\", ctx_r3.optionPrefix)(\"data\", ctx_r3.data)(\"textField\", ctx_r3.textField)(\"valueField\", ctx_r3.valueField)(\"template\", ctx_r3.itemTemplate)(\"groupTemplate\", ctx_r3.groupTemplate)(\"fixedGroupTemplate\", ctx_r3.fixedGroupTemplate)(\"height\", ctx_r3.listHeight)(\"show\", ctx_r3.isOpen)(\"virtual\", ctx_r3.virtual);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r3.data.length === 0);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r3.footerTemplate);\n} }\nfunction DropDownListComponent_ng_template_9_Template(rf, ctx) { if (rf & 1) {\n const _r29 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-resize-sensor\", 21);\n ɵngcc0.ɵɵlistener(\"resize\", function DropDownListComponent_ng_template_9_Template_kendo_resize_sensor_resize_0_listener() { ɵngcc0.ɵɵrestoreView(_r29); const ctx_r28 = ɵngcc0.ɵɵnextContext(); return ctx_r28.onResize(); });\n ɵngcc0.ɵɵelementEnd();\n} }\nfunction MultiSelectComponent_span_4_Template(rf, ctx) { if (rf & 1) {\n const _r8 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"span\", 9);\n ɵngcc0.ɵɵlistener(\"mousedown\", function MultiSelectComponent_span_4_Template_span_mousedown_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r8); const ctx_r7 = ɵngcc0.ɵɵnextContext(); return ctx_r7.clearAll($event); });\n ɵngcc0.ɵɵelement(1, \"span\", 10);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵstyleProp(\"visibility\", ctx_r1.clearButtonVisiblity);\n ɵngcc0.ɵɵattribute(\"title\", ctx_r1.messageFor(\"clearTitle\"));\n} }\nfunction MultiSelectComponent_span_5_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 11);\n} }\nfunction MultiSelectComponent_ng_template_6_0_ng_template_0_Template(rf, ctx) { }\nfunction MultiSelectComponent_ng_template_6_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, MultiSelectComponent_ng_template_6_0_ng_template_0_Template, 0, 0, \"ng-template\", 17);\n} if (rf & 2) {\n const ctx_r9 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction1(1, _c15, ctx_r9.headerTemplate.templateRef));\n} }\nfunction MultiSelectComponent_ng_template_6_div_1_2_ng_template_0_Template(rf, ctx) { }\nfunction MultiSelectComponent_ng_template_6_div_1_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, MultiSelectComponent_ng_template_6_div_1_2_ng_template_0_Template, 0, 0, \"ng-template\", 17);\n} if (rf & 2) {\n const ctx_r15 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction2(1, _c5, ctx_r15.customItemTemplate.templateRef, ctx_r15.text));\n} }\nfunction MultiSelectComponent_ng_template_6_div_1_ng_template_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n} if (rf & 2) {\n const ctx_r17 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵtextInterpolate(ctx_r17.text);\n} }\nfunction MultiSelectComponent_ng_template_6_div_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 18)(1, \"div\", 19);\n ɵngcc0.ɵɵtemplate(2, MultiSelectComponent_ng_template_6_div_1_2_Template, 1, 4, null, 20);\n ɵngcc0.ɵɵtemplate(3, MultiSelectComponent_ng_template_6_div_1_ng_template_3_Template, 1, 1, \"ng-template\", null, 21, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵelement(5, \"span\", 22);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const _r16 = ɵngcc0.ɵɵreference(4);\n const ctx_r10 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r10.customItemSizeClass);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"multipleSelection\", true)(\"index\", -1);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r10.customItemTemplate)(\"ngIfElse\", _r16);\n} }\nfunction MultiSelectComponent_ng_template_6_div_4_ng_template_1_Template(rf, ctx) { }\nfunction MultiSelectComponent_ng_template_6_div_4_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\");\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r20 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r20.messageFor(\"noDataText\"));\n} }\nfunction MultiSelectComponent_ng_template_6_div_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 23);\n ɵngcc0.ɵɵtemplate(1, MultiSelectComponent_ng_template_6_div_4_ng_template_1_Template, 0, 0, \"ng-template\", 24);\n ɵngcc0.ɵɵtemplate(2, MultiSelectComponent_ng_template_6_div_4_ng_template_2_Template, 2, 1, \"ng-template\", 7);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r12 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r12.noDataTemplate)(\"templateContext\", ɵngcc0.ɵɵpureFunction1(3, _c15, ctx_r12.noDataTemplate ? ctx_r12.noDataTemplate.templateRef : undefined));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r12.noDataTemplate);\n} }\nfunction MultiSelectComponent_ng_template_6_5_ng_template_0_Template(rf, ctx) { }\nfunction MultiSelectComponent_ng_template_6_5_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, MultiSelectComponent_ng_template_6_5_ng_template_0_Template, 0, 0, \"ng-template\", 17);\n} if (rf & 2) {\n const ctx_r13 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction1(1, _c15, ctx_r13.footerTemplate.templateRef));\n} }\nfunction MultiSelectComponent_ng_template_6_Template(rf, ctx) { if (rf & 1) {\n const _r23 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵtemplate(0, MultiSelectComponent_ng_template_6_0_Template, 1, 3, null, 12);\n ɵngcc0.ɵɵtemplate(1, MultiSelectComponent_ng_template_6_div_1_Template, 6, 5, \"div\", 13);\n ɵngcc0.ɵɵelementStart(2, \"kendo-list\", 14, 15);\n ɵngcc0.ɵɵlistener(\"pageChange\", function MultiSelectComponent_ng_template_6_Template_kendo_list_pageChange_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r23); const ctx_r22 = ɵngcc0.ɵɵnextContext(); return ctx_r22.pageChange($event); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(4, MultiSelectComponent_ng_template_6_div_4_Template, 3, 5, \"div\", 16);\n ɵngcc0.ɵɵtemplate(5, MultiSelectComponent_ng_template_6_5_Template, 1, 3, null, 12);\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.headerTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.allowCustom && ctx_r4.text);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"size\", ctx_r4.size)(\"rounded\", ctx_r4.rounded)(\"id\", ctx_r4.listBoxId)(\"optionPrefix\", ctx_r4.optionPrefix)(\"data\", ctx_r4.data)(\"textField\", ctx_r4.textField)(\"valueField\", ctx_r4.valueField)(\"height\", ctx_r4.listHeight)(\"template\", ctx_r4.template)(\"groupTemplate\", ctx_r4.groupTemplate)(\"fixedGroupTemplate\", ctx_r4.fixedGroupTemplate)(\"show\", ctx_r4.isOpen)(\"multipleSelection\", true)(\"virtual\", ctx_r4.virtual)(\"checkboxes\", ctx_r4.checkboxes);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.data.length === 0);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.footerTemplate);\n} }\nfunction MultiSelectComponent_ng_template_8_Template(rf, ctx) { if (rf & 1) {\n const _r25 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-resize-sensor\", 25);\n ɵngcc0.ɵɵlistener(\"resize\", function MultiSelectComponent_ng_template_8_Template_kendo_resize_sensor_resize_0_listener() { ɵngcc0.ɵɵrestoreView(_r25); const ctx_r24 = ɵngcc0.ɵɵnextContext(); return ctx_r24.onResize(); });\n ɵngcc0.ɵɵelementEnd();\n} }\nconst _c33 = [\"header\"];\nfunction MultiColumnComboBoxComponent_span_3_Template(rf, ctx) { if (rf & 1) {\n const _r8 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"span\", 10);\n ɵngcc0.ɵɵlistener(\"click\", function MultiColumnComboBoxComponent_span_3_Template_span_click_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r8); const ctx_r7 = ɵngcc0.ɵɵnextContext(); return ctx_r7.clearValue($event); });\n ɵngcc0.ɵɵelement(1, \"span\", 11);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵstyleProp(\"visibility\", ctx_r1.clearButtonVisiblity);\n ɵngcc0.ɵɵproperty(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction1(4, _c23, ctx_r1.preventEventDefault));\n ɵngcc0.ɵɵattribute(\"title\", ctx_r1.messageFor(\"clearTitle\"));\n} }\nfunction MultiColumnComboBoxComponent_ng_template_7_0_ng_template_0_Template(rf, ctx) { }\nfunction MultiColumnComboBoxComponent_ng_template_7_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, MultiColumnComboBoxComponent_ng_template_7_0_ng_template_0_Template, 0, 0, \"ng-template\", 25);\n} if (rf & 2) {\n const ctx_r9 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction1(1, _c15, ctx_r9.headerTemplate == null ? null : ctx_r9.headerTemplate.templateRef));\n} }\nfunction MultiColumnComboBoxComponent_ng_template_7_ng_container_7_col_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"col\");\n} if (rf & 2) {\n const column_r19 = ɵngcc0.ɵɵnextContext().$implicit;\n ɵngcc0.ɵɵstyleProp(\"width\", column_r19.width, \"px\");\n} }\nfunction MultiColumnComboBoxComponent_ng_template_7_ng_container_7_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, MultiColumnComboBoxComponent_ng_template_7_ng_container_7_col_1_Template, 1, 2, \"col\", 26);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const column_r19 = ctx.$implicit;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !column_r19.hidden && column_r19.matchesMedia);\n} }\nfunction MultiColumnComboBoxComponent_ng_template_7_ng_container_10_th_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const column_r22 = ɵngcc0.ɵɵnextContext(2).$implicit;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", column_r22.title || column_r22.field, \" \");\n} }\nfunction MultiColumnComboBoxComponent_ng_template_7_ng_container_10_th_1_2_ng_template_0_Template(rf, ctx) { }\nconst _c38 = function (a0, a1, a2) { return { templateRef: a0, $implicit: a1, column: a2 }; };\nfunction MultiColumnComboBoxComponent_ng_template_7_ng_container_10_th_1_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, MultiColumnComboBoxComponent_ng_template_7_ng_container_10_th_1_2_ng_template_0_Template, 0, 0, \"ng-template\", 25);\n} if (rf & 2) {\n const column_r22 = ɵngcc0.ɵɵnextContext(2).$implicit;\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction3(1, _c38, column_r22.headerTemplate == null ? null : column_r22.headerTemplate.templateRef, column_r22, column_r22));\n} }\nfunction MultiColumnComboBoxComponent_ng_template_7_ng_container_10_th_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"th\", 28);\n ɵngcc0.ɵɵtemplate(1, MultiColumnComboBoxComponent_ng_template_7_ng_container_10_th_1_ng_container_1_Template, 2, 1, \"ng-container\", 12);\n ɵngcc0.ɵɵtemplate(2, MultiColumnComboBoxComponent_ng_template_7_ng_container_10_th_1_2_Template, 1, 5, null, 12);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const column_r22 = ɵngcc0.ɵɵnextContext().$implicit;\n ɵngcc0.ɵɵproperty(\"ngStyle\", column_r22.headerStyle)(\"ngClass\", column_r22.headerClass);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !column_r22.headerTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", column_r22.headerTemplate);\n} }\nfunction MultiColumnComboBoxComponent_ng_template_7_ng_container_10_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, MultiColumnComboBoxComponent_ng_template_7_ng_container_10_th_1_Template, 3, 4, \"th\", 27);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const column_r22 = ctx.$implicit;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !column_r22.hidden && column_r22.matchesMedia);\n} }\nfunction MultiColumnComboBoxComponent_ng_template_7_ng_template_11_ng_container_0_span_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const column_r32 = ɵngcc0.ɵɵnextContext(2).$implicit;\n const dataItem_r30 = ɵngcc0.ɵɵnextContext().$implicit;\n const ctx_r34 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r34.textFrom(dataItem_r30, column_r32.field), \" \");\n} }\nfunction MultiColumnComboBoxComponent_ng_template_7_ng_template_11_ng_container_0_span_1_2_ng_template_0_Template(rf, ctx) { }\nconst _c39 = function (a0, a1, a2, a3) { return { templateRef: a0, $implicit: a1, dataItem: a2, column: a3 }; };\nfunction MultiColumnComboBoxComponent_ng_template_7_ng_template_11_ng_container_0_span_1_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, MultiColumnComboBoxComponent_ng_template_7_ng_template_11_ng_container_0_span_1_2_ng_template_0_Template, 0, 0, \"ng-template\", 25);\n} if (rf & 2) {\n const column_r32 = ɵngcc0.ɵɵnextContext(2).$implicit;\n const dataItem_r30 = ɵngcc0.ɵɵnextContext().$implicit;\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction4(1, _c39, column_r32.cellTemplate == null ? null : column_r32.cellTemplate.templateRef, dataItem_r30, dataItem_r30, column_r32));\n} }\nfunction MultiColumnComboBoxComponent_ng_template_7_ng_template_11_ng_container_0_span_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 30);\n ɵngcc0.ɵɵtemplate(1, MultiColumnComboBoxComponent_ng_template_7_ng_template_11_ng_container_0_span_1_ng_container_1_Template, 2, 1, \"ng-container\", 12);\n ɵngcc0.ɵɵtemplate(2, MultiColumnComboBoxComponent_ng_template_7_ng_template_11_ng_container_0_span_1_2_Template, 1, 6, null, 12);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const column_r32 = ɵngcc0.ɵɵnextContext().$implicit;\n ɵngcc0.ɵɵstyleProp(\"width\", column_r32.width, \"px\");\n ɵngcc0.ɵɵproperty(\"ngClass\", column_r32.class)(\"ngStyle\", column_r32.style);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !column_r32.cellTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", column_r32.cellTemplate);\n} }\nfunction MultiColumnComboBoxComponent_ng_template_7_ng_template_11_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, MultiColumnComboBoxComponent_ng_template_7_ng_template_11_ng_container_0_span_1_Template, 3, 6, \"span\", 29);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const column_r32 = ctx.$implicit;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !column_r32.hidden && column_r32.matchesMedia);\n} }\nfunction MultiColumnComboBoxComponent_ng_template_7_ng_template_11_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, MultiColumnComboBoxComponent_ng_template_7_ng_template_11_ng_container_0_Template, 2, 1, \"ng-container\", 18);\n} if (rf & 2) {\n const ctx_r14 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r14.columns);\n} }\nfunction MultiColumnComboBoxComponent_ng_template_7_div_15_ng_template_1_Template(rf, ctx) { }\nfunction MultiColumnComboBoxComponent_ng_template_7_div_15_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\");\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r43 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r43.messageFor(\"noDataText\"));\n} }\nfunction MultiColumnComboBoxComponent_ng_template_7_div_15_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 31);\n ɵngcc0.ɵɵtemplate(1, MultiColumnComboBoxComponent_ng_template_7_div_15_ng_template_1_Template, 0, 0, \"ng-template\", 32);\n ɵngcc0.ɵɵtemplate(2, MultiColumnComboBoxComponent_ng_template_7_div_15_ng_template_2_Template, 2, 1, \"ng-template\", 33);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r16 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r16.noDataTemplate)(\"templateContext\", ɵngcc0.ɵɵpureFunction1(3, _c15, ctx_r16.noDataTemplate == null ? null : ctx_r16.noDataTemplate.templateRef));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r16.noDataTemplate);\n} }\nfunction MultiColumnComboBoxComponent_ng_template_7_ng_container_16_ng_template_6_Template(rf, ctx) { }\nfunction MultiColumnComboBoxComponent_ng_template_7_ng_container_16_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵelementStart(1, \"div\", 34)(2, \"table\", 35)(3, \"tfoot\", 36)(4, \"tr\", 20)(5, \"td\", 37);\n ɵngcc0.ɵɵtemplate(6, MultiColumnComboBoxComponent_ng_template_7_ng_container_16_ng_template_6_Template, 0, 0, \"ng-template\", 25);\n ɵngcc0.ɵɵelementEnd()()()()();\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r17 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(6);\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction1(1, _c15, ctx_r17.footerTemplate.templateRef));\n} }\nfunction MultiColumnComboBoxComponent_ng_template_7_Template(rf, ctx) { if (rf & 1) {\n const _r46 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵtemplate(0, MultiColumnComboBoxComponent_ng_template_7_0_Template, 1, 3, null, 12);\n ɵngcc0.ɵɵelementStart(1, \"div\", 13)(2, \"div\", 14, 15)(4, \"div\", 16)(5, \"table\", 17)(6, \"colgroup\");\n ɵngcc0.ɵɵtemplate(7, MultiColumnComboBoxComponent_ng_template_7_ng_container_7_Template, 2, 1, \"ng-container\", 18);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(8, \"thead\", 19)(9, \"tr\", 20);\n ɵngcc0.ɵɵtemplate(10, MultiColumnComboBoxComponent_ng_template_7_ng_container_10_Template, 2, 1, \"ng-container\", 18);\n ɵngcc0.ɵɵelementEnd()()()()();\n ɵngcc0.ɵɵtemplate(11, MultiColumnComboBoxComponent_ng_template_7_ng_template_11_Template, 1, 1, \"ng-template\", null, 21, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵelementStart(13, \"kendo-list\", 22, 23);\n ɵngcc0.ɵɵlistener(\"pageChange\", function MultiColumnComboBoxComponent_ng_template_7_Template_kendo_list_pageChange_13_listener($event) { ɵngcc0.ɵɵrestoreView(_r46); const ctx_r45 = ɵngcc0.ɵɵnextContext(); return ctx_r45.pageChange($event); })(\"listResize\", function MultiColumnComboBoxComponent_ng_template_7_Template_kendo_list_listResize_13_listener() { ɵngcc0.ɵɵrestoreView(_r46); const _r10 = ɵngcc0.ɵɵreference(3); const ctx_r47 = ɵngcc0.ɵɵnextContext(); return ctx_r47.updateHeaderPadding(_r10); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(15, MultiColumnComboBoxComponent_ng_template_7_div_15_Template, 3, 5, \"div\", 24);\n ɵngcc0.ɵɵtemplate(16, MultiColumnComboBoxComponent_ng_template_7_ng_container_16_Template, 7, 3, \"ng-container\", 12);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const _r13 = ɵngcc0.ɵɵreference(12);\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.headerTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r4.tableSizeClass);\n ɵngcc0.ɵɵadvance(6);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r4.columns);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r4.columns);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"id\", ctx_r4.listBoxId)(\"optionPrefix\", ctx_r4.optionPrefix)(\"data\", ctx_r4.data)(\"textField\", ctx_r4.textField)(\"valueField\", ctx_r4.valueField)(\"template\", ɵngcc0.ɵɵpureFunction1(18, _c15, _r13))(\"groupTemplate\", ctx_r4.groupTemplate)(\"fixedGroupTemplate\", ctx_r4.fixedGroupTemplate)(\"height\", ctx_r4.listHeight)(\"show\", ctx_r4.isOpen)(\"virtual\", ctx_r4.virtual)(\"type\", \"dropdowngrid\");\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.data.length === 0);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.footerTemplate);\n} }\nfunction MultiColumnComboBoxComponent_kendo_resize_sensor_9_Template(rf, ctx) { if (rf & 1) {\n const _r49 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-resize-sensor\", 38);\n ɵngcc0.ɵɵlistener(\"resize\", function MultiColumnComboBoxComponent_kendo_resize_sensor_9_Template_kendo_resize_sensor_resize_0_listener() { ɵngcc0.ɵɵrestoreView(_r49); const ctx_r48 = ɵngcc0.ɵɵnextContext(); return ctx_r48.onResize(); });\n ɵngcc0.ɵɵelementEnd();\n} }\nconst _c40 = [\"treeview\"];\nconst _c41 = [\"filterInput\"];\nfunction DropDownTreeComponent_3_ng_template_0_Template(rf, ctx) { }\nfunction DropDownTreeComponent_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DropDownTreeComponent_3_ng_template_0_Template, 0, 0, \"ng-template\", 10);\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction2(1, _c5, ctx_r0.valueTemplate.templateRef, ctx_r0.dataItem));\n} }\nfunction DropDownTreeComponent_ng_template_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r1.text || ctx_r1.placeholder, \" \");\n} }\nfunction DropDownTreeComponent_span_5_Template(rf, ctx) { if (rf & 1) {\n const _r8 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"span\", 11);\n ɵngcc0.ɵɵlistener(\"click\", function DropDownTreeComponent_span_5_Template_span_click_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r8); const ctx_r7 = ɵngcc0.ɵɵnextContext(); return ctx_r7.clearValue($event); });\n ɵngcc0.ɵɵelement(1, \"span\", 12);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵstyleProp(\"visibility\", ctx_r2.clearButtonVisiblity);\n ɵngcc0.ɵɵattribute(\"title\", ctx_r2.messageFor(\"clearTitle\"));\n} }\nconst _c48 = function (a0) { return { blur: a0 }; };\nfunction DropDownTreeComponent_ng_template_8_span_0_Template(rf, ctx) { if (rf & 1) {\n const _r16 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"span\", 16)(1, \"span\", 17)(2, \"span\", 18);\n ɵngcc0.ɵɵelement(3, \"span\", 19);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(4, \"input\", 20, 21);\n ɵngcc0.ɵɵlistener(\"input\", function DropDownTreeComponent_ng_template_8_span_0_Template_input_input_4_listener($event) { ɵngcc0.ɵɵrestoreView(_r16); const ctx_r15 = ɵngcc0.ɵɵnextContext(2); return ctx_r15.handleFilterInputChange($event.target.value); })(\"keydown.arrowdown\", function DropDownTreeComponent_ng_template_8_span_0_Template_input_keydown_arrowdown_4_listener($event) { ɵngcc0.ɵɵrestoreView(_r16); const ctx_r17 = ɵngcc0.ɵɵnextContext(2); return ctx_r17.handleKeydown($event); })(\"keydown.alt.arrowup\", function DropDownTreeComponent_ng_template_8_span_0_Template_input_keydown_alt_arrowup_4_listener($event) { ɵngcc0.ɵɵrestoreView(_r16); const ctx_r18 = ɵngcc0.ɵɵnextContext(2); return ctx_r18.handleKeydown($event); })(\"ngModelChange\", function DropDownTreeComponent_ng_template_8_span_0_Template_input_ngModelChange_4_listener($event) { ɵngcc0.ɵɵrestoreView(_r16); const ctx_r19 = ɵngcc0.ɵɵnextContext(2); return ctx_r19.filter = $event; });\n ɵngcc0.ɵɵelementEnd()()();\n} if (rf & 2) {\n const ctx_r9 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r9.filterInputClasses);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"filterInput\", ctx_r9.filterable && !ctx_r9.touchEnabled)(\"ngModel\", ctx_r9.filter)(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction1(5, _c48, ctx_r9.handleBlur))(\"scope\", ctx_r9);\n} }\nfunction DropDownTreeComponent_ng_template_8_1_ng_template_0_Template(rf, ctx) { }\nfunction DropDownTreeComponent_ng_template_8_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DropDownTreeComponent_ng_template_8_1_ng_template_0_Template, 0, 0, \"ng-template\", 10);\n} if (rf & 2) {\n const ctx_r10 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction1(1, _c15, ctx_r10.headerTemplate == null ? null : ctx_r10.headerTemplate.templateRef));\n} }\nfunction DropDownTreeComponent_ng_template_8_kendo_treeview_2_Template(rf, ctx) { if (rf & 1) {\n const _r23 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-treeview\", 22, 23);\n ɵngcc0.ɵɵlistener(\"selectedKeysChange\", function DropDownTreeComponent_ng_template_8_kendo_treeview_2_Template_kendo_treeview_selectedKeysChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r23); const ctx_r22 = ɵngcc0.ɵɵnextContext(2); return ctx_r22.selectedKeys = $event; })(\"focusout\", function DropDownTreeComponent_ng_template_8_kendo_treeview_2_Template_kendo_treeview_focusout_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r23); const ctx_r24 = ɵngcc0.ɵɵnextContext(2); return ctx_r24.handleBlur($event); })(\"keydown\", function DropDownTreeComponent_ng_template_8_kendo_treeview_2_Template_kendo_treeview_keydown_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r23); const ctx_r25 = ɵngcc0.ɵɵnextContext(2); return ctx_r25.handleKeydown($event); })(\"selectionChange\", function DropDownTreeComponent_ng_template_8_kendo_treeview_2_Template_kendo_treeview_selectionChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r23); const ctx_r26 = ɵngcc0.ɵɵnextContext(2); return ctx_r26.onSelectionChange($event); })(\"expand\", function DropDownTreeComponent_ng_template_8_kendo_treeview_2_Template_kendo_treeview_expand_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r23); const ctx_r27 = ɵngcc0.ɵɵnextContext(2); return ctx_r27.nodeExpand.emit($event); })(\"collapse\", function DropDownTreeComponent_ng_template_8_kendo_treeview_2_Template_kendo_treeview_collapse_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r23); const ctx_r28 = ɵngcc0.ɵɵnextContext(2); return ctx_r28.nodeCollapse.emit($event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r11 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵstyleProp(\"max-height\", ctx_r11.listHeight, \"px\");\n ɵngcc0.ɵɵproperty(\"size\", ctx_r11.size)(\"nodes\", ctx_r11.data)(\"animate\", false)(\"selectedKeys\", ctx_r11.selectedKeys)(\"selectBy\", ctx_r11.selectBy)(\"textField\", ctx_r11.textField)(\"children\", ctx_r11.children)(\"hasChildren\", ctx_r11.hasChildren)(\"loadOnDemand\", ctx_r11.loadOnDemand)(\"isExpanded\", ctx_r11.isNodeExpanded)(\"isDisabled\", ctx_r11.itemDisabled)(\"nodeTemplate\", ctx_r11.nodeTemplate)(\"filter\", ctx_r11.filter)(\"isVisible\", ctx_r11.isNodeVisible);\n} }\nfunction DropDownTreeComponent_ng_template_8_3_ng_template_0_Template(rf, ctx) { }\nfunction DropDownTreeComponent_ng_template_8_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DropDownTreeComponent_ng_template_8_3_ng_template_0_Template, 0, 0, \"ng-template\", 10);\n} if (rf & 2) {\n const ctx_r12 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction1(1, _c15, ctx_r12.footerTemplate == null ? null : ctx_r12.footerTemplate.templateRef));\n} }\nfunction DropDownTreeComponent_ng_template_8_div_4_ng_template_1_Template(rf, ctx) { }\nfunction DropDownTreeComponent_ng_template_8_div_4_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\");\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r31 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r31.messageFor(\"noDataText\"));\n} }\nfunction DropDownTreeComponent_ng_template_8_div_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 24);\n ɵngcc0.ɵɵtemplate(1, DropDownTreeComponent_ng_template_8_div_4_ng_template_1_Template, 0, 0, \"ng-template\", 25);\n ɵngcc0.ɵɵtemplate(2, DropDownTreeComponent_ng_template_8_div_4_ng_template_2_Template, 2, 1, \"ng-template\", 4);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r13 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r13.noDataTemplate)(\"templateContext\", ɵngcc0.ɵɵpureFunction1(3, _c15, ctx_r13.noDataTemplate == null ? null : ctx_r13.noDataTemplate.templateRef));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r13.noDataTemplate);\n} }\nfunction DropDownTreeComponent_ng_template_8_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DropDownTreeComponent_ng_template_8_span_0_Template, 6, 7, \"span\", 13);\n ɵngcc0.ɵɵtemplate(1, DropDownTreeComponent_ng_template_8_1_Template, 1, 3, null, 3);\n ɵngcc0.ɵɵtemplate(2, DropDownTreeComponent_ng_template_8_kendo_treeview_2_Template, 2, 16, \"kendo-treeview\", 14);\n ɵngcc0.ɵɵtemplate(3, DropDownTreeComponent_ng_template_8_3_Template, 1, 3, null, 3);\n ɵngcc0.ɵɵtemplate(4, DropDownTreeComponent_ng_template_8_div_4_Template, 3, 5, \"div\", 15);\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.filterable);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.headerTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.data.length !== 0 && !ctx_r4.allNodesHidden);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.footerTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.data.length === 0 || ctx_r4.allNodesHidden);\n} }\nconst _c49 = [\"checkAllInput\"];\nfunction MultiSelectTreeComponent_span_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 7)(1, \"span\", 8);\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate(ctx_r0.placeholder);\n} }\nfunction MultiSelectTreeComponent_span_3_Template(rf, ctx) { if (rf & 1) {\n const _r7 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"span\", 9);\n ɵngcc0.ɵɵlistener(\"click\", function MultiSelectTreeComponent_span_3_Template_span_click_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r7); const ctx_r6 = ɵngcc0.ɵɵnextContext(); return ctx_r6.clearAll($event); });\n ɵngcc0.ɵɵelement(1, \"span\", 10);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵattribute(\"title\", ctx_r1.messageFor(\"clearTitle\"));\n} }\nfunction MultiSelectTreeComponent_span_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 11);\n} }\nfunction MultiSelectTreeComponent_ng_template_5_span_0_Template(rf, ctx) { if (rf & 1) {\n const _r16 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"span\", 18)(1, \"span\", 19)(2, \"span\", 20);\n ɵngcc0.ɵɵelement(3, \"span\", 21);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(4, \"input\", 22, 23);\n ɵngcc0.ɵɵlistener(\"input\", function MultiSelectTreeComponent_ng_template_5_span_0_Template_input_input_4_listener($event) { ɵngcc0.ɵɵrestoreView(_r16); const ctx_r15 = ɵngcc0.ɵɵnextContext(2); return ctx_r15.handleFilterInputChange($event.target.value); })(\"keydown\", function MultiSelectTreeComponent_ng_template_5_span_0_Template_input_keydown_4_listener($event) { ɵngcc0.ɵɵrestoreView(_r16); const ctx_r17 = ɵngcc0.ɵɵnextContext(2); return ctx_r17.handleKeydown($event); })(\"ngModelChange\", function MultiSelectTreeComponent_ng_template_5_span_0_Template_input_ngModelChange_4_listener($event) { ɵngcc0.ɵɵrestoreView(_r16); const ctx_r18 = ɵngcc0.ɵɵnextContext(2); return ctx_r18.filter = $event; });\n ɵngcc0.ɵɵelementEnd()()();\n} if (rf & 2) {\n const ctx_r8 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r8.filterInputClasses);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"filterInput\", ctx_r8.filterable && !ctx_r8.touchEnabled)(\"ngModel\", ctx_r8.filter)(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction1(5, _c48, ctx_r8.handleBlur))(\"scope\", ctx_r8);\n} }\nfunction MultiSelectTreeComponent_ng_template_5_1_ng_template_0_Template(rf, ctx) { }\nfunction MultiSelectTreeComponent_ng_template_5_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, MultiSelectTreeComponent_ng_template_5_1_ng_template_0_Template, 0, 0, \"ng-template\", 24);\n} if (rf & 2) {\n const ctx_r9 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction1(1, _c15, ctx_r9.headerTemplate == null ? null : ctx_r9.headerTemplate.templateRef));\n} }\nfunction MultiSelectTreeComponent_ng_template_5_div_2_Template(rf, ctx) { if (rf & 1) {\n const _r22 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 25)(1, \"input\", 26, 27);\n ɵngcc0.ɵɵlistener(\"checkedItemsChange\", function MultiSelectTreeComponent_ng_template_5_div_2_Template_input_checkedItemsChange_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r22); const ctx_r21 = ɵngcc0.ɵɵnextContext(2); return ctx_r21.handleCheckedItemsChange($event); })(\"keydown\", function MultiSelectTreeComponent_ng_template_5_div_2_Template_input_keydown_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r22); const ctx_r23 = ɵngcc0.ɵɵnextContext(2); return ctx_r23.handleKeydown($event); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(3, \"span\", 28);\n ɵngcc0.ɵɵlistener(\"click\", function MultiSelectTreeComponent_ng_template_5_div_2_Template_span_click_3_listener() { ɵngcc0.ɵɵrestoreView(_r22); const ctx_r24 = ɵngcc0.ɵɵnextContext(2); return ctx_r24.toggleCheckAll(); })(\"mousedown\", function MultiSelectTreeComponent_ng_template_5_div_2_Template_span_mousedown_3_listener($event) { return $event.preventDefault(); });\n ɵngcc0.ɵɵtext(4);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n ɵngcc0.ɵɵnextContext();\n const _r11 = ɵngcc0.ɵɵreference(4);\n const ctx_r10 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"checkAll\", !ctx_r10.filterable && !ctx_r10.touchEnabled)(\"ngClass\", ctx_r10.checkAllCheckboxClasses)(\"treeview\", _r11)(\"checkedItems\", ctx_r10.checkedItems)(\"valueField\", ctx_r10.valueField)(\"lastAction\", ctx_r10.lastAction)(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction1(9, _c48, ctx_r10.handleBlur))(\"scope\", ctx_r10);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r10.messageFor(\"checkAllText\"), \" \");\n} }\nfunction MultiSelectTreeComponent_ng_template_5_5_ng_template_0_Template(rf, ctx) { }\nfunction MultiSelectTreeComponent_ng_template_5_5_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, MultiSelectTreeComponent_ng_template_5_5_ng_template_0_Template, 0, 0, \"ng-template\", 24);\n} if (rf & 2) {\n const ctx_r12 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction1(1, _c15, ctx_r12.footerTemplate == null ? null : ctx_r12.footerTemplate.templateRef));\n} }\nfunction MultiSelectTreeComponent_ng_template_5_div_6_ng_template_1_Template(rf, ctx) { }\nfunction MultiSelectTreeComponent_ng_template_5_div_6_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\");\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r28 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r28.messageFor(\"noDataText\"));\n} }\nfunction MultiSelectTreeComponent_ng_template_5_div_6_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 29);\n ɵngcc0.ɵɵtemplate(1, MultiSelectTreeComponent_ng_template_5_div_6_ng_template_1_Template, 0, 0, \"ng-template\", 30);\n ɵngcc0.ɵɵtemplate(2, MultiSelectTreeComponent_ng_template_5_div_6_ng_template_2_Template, 2, 1, \"ng-template\", 31);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r13 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r13.noDataTemplate)(\"templateContext\", ɵngcc0.ɵɵpureFunction1(3, _c15, ctx_r13.noDataTemplate == null ? null : ctx_r13.noDataTemplate.templateRef));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r13.noDataTemplate);\n} }\nconst _c56 = function (a0) { return { focusout: a0 }; };\nfunction MultiSelectTreeComponent_ng_template_5_Template(rf, ctx) { if (rf & 1) {\n const _r30 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵtemplate(0, MultiSelectTreeComponent_ng_template_5_span_0_Template, 6, 7, \"span\", 12);\n ɵngcc0.ɵɵtemplate(1, MultiSelectTreeComponent_ng_template_5_1_Template, 1, 3, null, 13);\n ɵngcc0.ɵɵtemplate(2, MultiSelectTreeComponent_ng_template_5_div_2_Template, 5, 11, \"div\", 14);\n ɵngcc0.ɵɵelementStart(3, \"kendo-treeview\", 15, 16);\n ɵngcc0.ɵɵlistener(\"keydown\", function MultiSelectTreeComponent_ng_template_5_Template_kendo_treeview_keydown_3_listener($event) { ɵngcc0.ɵɵrestoreView(_r30); const ctx_r29 = ɵngcc0.ɵɵnextContext(); return ctx_r29.handleKeydown($event); })(\"nodeClick\", function MultiSelectTreeComponent_ng_template_5_Template_kendo_treeview_nodeClick_3_listener($event) { ɵngcc0.ɵɵrestoreView(_r30); const ctx_r31 = ɵngcc0.ɵɵnextContext(); return ctx_r31.handleNodeClick($event); })(\"expand\", function MultiSelectTreeComponent_ng_template_5_Template_kendo_treeview_expand_3_listener($event) { ɵngcc0.ɵɵrestoreView(_r30); const ctx_r32 = ɵngcc0.ɵɵnextContext(); return ctx_r32.nodeExpand.emit($event); })(\"collapse\", function MultiSelectTreeComponent_ng_template_5_Template_kendo_treeview_collapse_3_listener($event) { ɵngcc0.ɵɵrestoreView(_r30); const ctx_r33 = ɵngcc0.ɵɵnextContext(); return ctx_r33.nodeCollapse.emit($event); })(\"checkedItemsChange\", function MultiSelectTreeComponent_ng_template_5_Template_kendo_treeview_checkedItemsChange_3_listener($event) { ɵngcc0.ɵɵrestoreView(_r30); const ctx_r34 = ɵngcc0.ɵɵnextContext(); return ctx_r34.handleCheckedItemsChange($event); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(5, MultiSelectTreeComponent_ng_template_5_5_Template, 1, 3, null, 13);\n ɵngcc0.ɵɵtemplate(6, MultiSelectTreeComponent_ng_template_5_div_6_Template, 3, 5, \"div\", 17);\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.filterable);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.headerTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.checkAll);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵstyleProp(\"max-height\", ctx_r4.listHeight, \"px\");\n ɵngcc0.ɵɵproperty(\"size\", ctx_r4.size)(\"nodes\", ctx_r4.data)(\"animate\", false)(\"checkable\", ctx_r4.checkableSettings)(\"checkedItems\", ctx_r4.checkedItems)(\"valueField\", ctx_r4.valueField)(\"textField\", ctx_r4.textField)(\"children\", ctx_r4.children)(\"hasChildren\", ctx_r4.hasChildren)(\"isExpanded\", ctx_r4.isNodeExpanded)(\"isDisabled\", ctx_r4.itemDisabled)(\"nodeTemplate\", ctx_r4.nodeTemplate)(\"loadOnDemand\", ctx_r4.loadOnDemand)(\"filter\", ctx_r4.filter)(\"isVisible\", ctx_r4.isNodeVisible)(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction1(24, _c56, ctx_r4.handleBlur))(\"scope\", ctx_r4);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.footerTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", (ctx_r4.data == null ? null : ctx_r4.data.length) === 0 || ctx_r4.allNodesHidden);\n} }\nfunction TagListComponent_div_0_2_ng_template_0_Template(rf, ctx) { }\nfunction TagListComponent_div_0_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, TagListComponent_div_0_2_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nfunction TagListComponent_div_0_ng_template_3_1_ng_template_0_Template(rf, ctx) { }\nfunction TagListComponent_div_0_ng_template_3_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, TagListComponent_div_0_ng_template_3_1_ng_template_0_Template, 0, 0, \"ng-template\", 12);\n} if (rf & 2) {\n const tag_r1 = ɵngcc0.ɵɵnextContext(2).$implicit;\n const ctx_r9 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction2(1, _c5, ctx_r9.groupTemplate.templateRef, tag_r1));\n} }\nfunction TagListComponent_div_0_ng_template_3_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n} if (rf & 2) {\n const tag_r1 = ɵngcc0.ɵɵnextContext(2).$implicit;\n ɵngcc0.ɵɵtextInterpolate2(\"\", tag_r1.length, \" \", tag_r1.length === 1 ? \"item\" : \"items\", \" selected\");\n} }\nfunction TagListComponent_div_0_ng_template_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 9);\n ɵngcc0.ɵɵtemplate(1, TagListComponent_div_0_ng_template_3_1_Template, 1, 4, null, 10);\n ɵngcc0.ɵɵtemplate(2, TagListComponent_div_0_ng_template_3_ng_template_2_Template, 1, 2, \"ng-template\", 11);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r5 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r5.groupTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r5.groupTemplate);\n} }\nfunction TagListComponent_div_0_ng_template_5_1_ng_template_0_Template(rf, ctx) { }\nfunction TagListComponent_div_0_ng_template_5_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, TagListComponent_div_0_ng_template_5_1_ng_template_0_Template, 0, 0, \"ng-template\", 12);\n} if (rf & 2) {\n const tag_r1 = ɵngcc0.ɵɵnextContext(2).$implicit;\n const ctx_r14 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction2(1, _c5, ctx_r14.template.templateRef, tag_r1));\n} }\nfunction TagListComponent_div_0_ng_template_5_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n} if (rf & 2) {\n const ctx_r18 = ɵngcc0.ɵɵnextContext(2);\n const tag_r1 = ctx_r18.$implicit;\n const index_r2 = ctx_r18.index;\n const ctx_r15 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵtextInterpolate(ctx_r15.tagProp(tag_r1, ctx_r15.textField, index_r2));\n} }\nfunction TagListComponent_div_0_ng_template_5_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 9);\n ɵngcc0.ɵɵtemplate(1, TagListComponent_div_0_ng_template_5_1_Template, 1, 4, null, 10);\n ɵngcc0.ɵɵtemplate(2, TagListComponent_div_0_ng_template_5_ng_template_2_Template, 1, 1, \"ng-template\", 11);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r7 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r7.template);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r7.template);\n} }\nconst _c57 = function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) { return { \"k-focus\": a0, \"k-disabled\": a1, \"k-chip-sm\": a2, \"k-chip-md\": a3, \"k-chip-lg\": a4, \"k-rounded-sm\": a5, \"k-rounded-md\": a6, \"k-rounded-lg\": a7, \"k-rounded-full\": a8, \"k-chip-solid k-chip-solid-base\": a9, \"k-chip-flat k-chip-flat-base\": a10, \"k-chip-outline k-chip-outline-base\": a11 }; };\nfunction TagListComponent_div_0_Template(rf, ctx) { if (rf & 1) {\n const _r20 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 1)(1, \"span\", 2);\n ɵngcc0.ɵɵtemplate(2, TagListComponent_div_0_2_Template, 1, 0, null, 3);\n ɵngcc0.ɵɵtemplate(3, TagListComponent_div_0_ng_template_3_Template, 3, 2, \"ng-template\", null, 4, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(5, TagListComponent_div_0_ng_template_5_Template, 3, 2, \"ng-template\", null, 5, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(7, \"span\", 6)(8, \"span\", 7)(9, \"span\", 8);\n ɵngcc0.ɵɵlistener(\"mousedown\", function TagListComponent_div_0_Template_span_mousedown_9_listener($event) { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r20); const tag_r1 = restoredCtx.$implicit; const index_r2 = restoredCtx.index; const ctx_r19 = ɵngcc0.ɵɵnextContext(); return ctx_r19.deleteTag($event, tag_r1, index_r2); });\n ɵngcc0.ɵɵelementEnd()()()();\n} if (rf & 2) {\n const tag_r1 = ctx.$implicit;\n const index_r2 = ctx.index;\n const _r4 = ɵngcc0.ɵɵreference(4);\n const _r6 = ɵngcc0.ɵɵreference(6);\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunctionV(7, _c57, [index_r2 === ctx_r0.focused, ctx_r0.isTagDisabled(tag_r1, index_r2), ctx_r0.size === \"small\", ctx_r0.size === \"medium\", ctx_r0.size === \"large\", ctx_r0.rounded === \"small\", ctx_r0.rounded === \"medium\", ctx_r0.rounded === \"large\", ctx_r0.rounded === \"full\", ctx_r0.fillMode === \"solid\", ctx_r0.fillMode === \"flat\", ctx_r0.fillMode === \"outline\"]));\n ɵngcc0.ɵɵattribute(\"id\", ctx_r0.itemId(tag_r1, index_r2))(\"aria-hidden\", ctx_r0.tagAriaHidden(index_r2));\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r0.isGroupTag(tag_r1))(\"ngIfThen\", _r4)(\"ngIfElse\", _r6);\n ɵngcc0.ɵɵadvance(6);\n ɵngcc0.ɵɵattribute(\"aria-hidden\", index_r2 !== ctx_r0.focused);\n} }\nconst _c58 = [\"*\"];\nexport { PopupComponent } from '@progress/kendo-angular-popup';\nimport { map, switchMap, take, auditTime, tap, filter, partition, throttleTime, catchError, skipWhile, concatMap, takeUntil } from 'rxjs/operators';\nimport { TreeViewComponent, DataBoundComponent, ExpandableComponent, FlatDataBindingDirective, HierarchyBindingDirective, ExpandDirective, TreeViewModule } from '@progress/kendo-angular-treeview';\nimport { CommonModule } from '@angular/common';\n\n/**\n * @hidden\n */\nconst packageMetadata = {\n name: '@progress/kendo-angular-dropdowns',\n productName: 'Kendo UI for Angular',\n productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],\n publishDate: 1646640638,\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\n/* tslint:disable:no-bitwise */\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$1 = () => {\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 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 => getter$1(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) && isPresent(getter$1(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(getter$1(item, valueField)) ? getter$1(item, valueField) : item;\n });\n return values.reduce((arr, item) => {\n const value = isPresent(item) && isPresent(getter$1(item, valueField)) ? getter$1(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$1 = (dataItem, field) => {\n if (!isPresent(dataItem)) {\n return null;\n }\n if (!isPresent(field) || !isObject(dataItem)) {\n return dataItem;\n }\n // creates a field accessor supporting nested fields processing\n const valueFrom = getter(field);\n return valueFrom(dataItem);\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 * @hidden\n *\n * Checks whether an element is untouched by looking for the ng-untouched css class\n */\nconst isUntouched = (element) => element.className.includes('ng-untouched');\n/**\n * @hidden\n */\nconst noop = (_) => { };\n/**\n * IE element `matches` polyfill.\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/matches\n */\nconst matches = (element, selector) => {\n const matcher = element.matches || element.msMatchesSelector || element.webkitMatchesSelector;\n if (!matcher) {\n return false;\n }\n return matcher.call(element, selector);\n};\n/**\n * @hidden\n *\n * IE element `closest` polyfill.\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/closest\n */\nconst closest = (element, selector) => {\n let parent = element;\n while (parent !== null && parent.nodeType === 1) {\n if (matches(parent, selector)) {\n return parent;\n }\n parent = parent.parentElement || parent.parentNode;\n }\n return null;\n};\n/**\n * @hidden\n *\n * Parses a provided value to its type 'number' representation.\n * If the parsed value (via Number(value)) is NaN, the provided default value is returned.\n * Uses 0 as default value if a second param is not provided.\n */\nconst parseNumber = (num, defaultValue = 0) => {\n const normalizedValue = Number(num);\n return isNaN(normalizedValue) ? defaultValue : normalizedValue;\n};\n/**\n * @hidden\n *\n * Checks whether the passed target element is inside the provided host or popupRef.\n */\nconst inDropDown = (host, target, popupRef) => {\n return host.nativeElement.contains(target) || (popupRef && popupRef.popupElement.contains(target));\n};\n/**\n * @hidden\n *\n * Calculates the hierarchical level of an item, based on the provided index.\n * The result level is zero-based (starts from 0).\n */\nconst getHierarchicalItemLevel = (index) => {\n return (index || '').split('_').length - 1;\n};\n/**\n * @hidden\n *\n * Retrieves all descendant nodes' lookups which are currently registered in the provided lookup item as a flat array.\n */\nconst fetchDescendentNodes = (lookup, filterExpression) => {\n if (!isPresent(lookup) || lookup.children.length === 0) {\n return [];\n }\n let descendants = lookup.children;\n if (isPresent(filterExpression)) {\n descendants = descendants.filter(descendent => filterExpression(descendent.item));\n }\n descendants.forEach(child => descendants = descendants.concat(fetchDescendentNodes(child, filterExpression)));\n return descendants;\n};\n/**\n * @hidden\n *\n * Retrieves the correct value based on the item's level and the provided value field/s.\n * Used in the MultiSelectTree component.\n */\nconst valueFrom = ({ dataItem, index, level }, valueField) => {\n const fields = Array.isArray(valueField) ? valueField : [valueField];\n // either use the explicitly provided value level, or infer it from the item index\n const valueLevel = isPresent(level) ? level : getHierarchicalItemLevel(index);\n // fall-back to the last available one, if the current node is in a deeper level\n const normalizedLevel = Math.min(valueLevel, fields.length - 1);\n const field = fields[normalizedLevel];\n return getter(field)(dataItem);\n};\n/**\n * @hidden\n * Returns the size class based on the component and size input.\n */\nconst getSizeClass = (component, size) => {\n const SIZE_CLASSES = {\n 'small': `k-${component}-sm`,\n 'medium': `k-${component}-md`,\n 'large': `k-${component}-lg`\n };\n return SIZE_CLASSES[size];\n};\n/**\n * @hidden\n * Returns the rounded class based on the rounded input.\n */\nconst getRoundedClass = (rounded) => {\n const ROUNDED_CLASSES = {\n 'small': 'k-rounded-sm',\n 'medium': 'k-rounded-md',\n 'large': 'k-rounded-lg',\n 'full': 'k-rounded-full'\n };\n return ROUNDED_CLASSES[rounded];\n};\n/**\n * @hidden\n * Return the fillMode class based on the component and fillMode input.\n */\nconst getFillModeClass = (component, fillMode) => {\n const FILLMODE_CLASSES = {\n 'solid': `k-${component}-solid`,\n 'flat': `k-${component}-flat`,\n 'outline': `k-${component}-outline`\n };\n return FILLMODE_CLASSES[fillMode];\n};\n\n/* tslint:disable:member-ordering */\n/**\n * @hidden\n */\nlet SearchBarComponent = class 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 get ariaExpanded() {\n return this.role === 'combobox' ? this.popupOpen : null;\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.ArrowUp, Keys.ArrowDown, Keys.ArrowLeft, Keys.ArrowRight, Keys.Enter,\n Keys.Escape, 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.ɵfac = function SearchBarComponent_Factory(t) { return new (t || SearchBarComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nSearchBarComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SearchBarComponent, selectors: [[\"kendo-searchbar\"]], viewQuery: function SearchBarComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c0, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.input = _t.first);\n } }, hostVars: 2, hostBindings: function SearchBarComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-searchbar\", ctx.searchBarClass);\n } }, inputs: { userInput: \"userInput\", placeholder: \"placeholder\", id: \"id\", listId: \"listId\", tagListId: \"tagListId\", activeDescendant: \"activeDescendant\", noDataLabel: \"noDataLabel\", disabled: \"disabled\", readonly: \"readonly\", tabIndex: \"tabIndex\", popupOpen: \"popupOpen\", role: \"role\", suggestedText: \"suggestedText\" }, outputs: { valueChange: \"valueChange\", onBlur: \"onBlur\", onFocus: \"onFocus\", onClick: \"onClick\", onNavigate: \"onNavigate\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], decls: 2, vars: 21, consts: [[\"autocomplete\", \"off\", \"aria-haspopup\", \"listbox\", 3, \"id\", \"disabled\", \"readonly\", \"placeholder\", \"kendoEventsOutsideAngular\", \"scope\", \"input\", \"keydown\"], [\"input\", \"\"]], template: function SearchBarComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"input\", 0, 1);\n ɵngcc0.ɵɵlistener(\"input\", function SearchBarComponent_Template_input_input_0_listener($event) { return ctx.handleInput($event); })(\"keydown\", function SearchBarComponent_Template_input_keydown_0_listener($event) { return ctx.handleKeydown($event); });\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵclassMap(\"k-input-inner\");\n ɵngcc0.ɵɵproperty(\"id\", ctx.id)(\"disabled\", ctx.disabled)(\"readonly\", ctx.readonly)(\"placeholder\", ctx.placeholder)(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction2(18, _c1, ctx.handleFocus, ctx.handleBlur))(\"scope\", ctx);\n ɵngcc0.ɵɵattribute(\"tabIndex\", ctx.tabIndex)(\"dir\", ctx.direction)(\"role\", ctx.role)(\"aria-disabled\", ctx.disabled)(\"aria-readonly\", ctx.readonly)(\"aria-expanded\", ctx.ariaExpanded)(\"aria-owns\", ctx.listId)(\"aria-describedby\", ctx.tagListId)(\"aria-activedescendant\", ctx.activeDescendant)(\"aria-label\", ctx.noDataLabel);\n } }, directives: [ɵngcc2.EventsOutsideAngularDirective], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SearchBarComponent.prototype, \"id\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SearchBarComponent.prototype, \"listId\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SearchBarComponent.prototype, \"tagListId\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SearchBarComponent.prototype, \"activeDescendant\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SearchBarComponent.prototype, \"noDataLabel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SearchBarComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SearchBarComponent.prototype, \"readonly\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SearchBarComponent.prototype, \"tabIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SearchBarComponent.prototype, \"popupOpen\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SearchBarComponent.prototype, \"role\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], SearchBarComponent.prototype, \"userInput\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SearchBarComponent.prototype, \"suggestedText\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], SearchBarComponent.prototype, \"valueChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], SearchBarComponent.prototype, \"onBlur\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], SearchBarComponent.prototype, \"onFocus\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], SearchBarComponent.prototype, \"onClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], SearchBarComponent.prototype, \"onNavigate\", void 0);\n__decorate([\n ViewChild('input', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], SearchBarComponent.prototype, \"input\", void 0);\n__decorate([\n HostBinding('class.k-searchbar'),\n __metadata(\"design:type\", Boolean)\n], SearchBarComponent.prototype, \"searchBarClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], SearchBarComponent.prototype, \"placeholder\", null);\nSearchBarComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService,\n Renderer2])\n], SearchBarComponent);\n\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 */\nlet ItemTemplateDirective = class ItemTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nItemTemplateDirective.ɵfac = function ItemTemplateDirective_Factory(t) { return new (t || ItemTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nItemTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ItemTemplateDirective, selectors: [[\"\", \"kendoDropDownListItemTemplate\", \"\"], [\"\", \"kendoComboBoxItemTemplate\", \"\"], [\"\", \"kendoAutoCompleteItemTemplate\", \"\"], [\"\", \"kendoMultiSelectItemTemplate\", \"\"]] });\nItemTemplateDirective = __decorate([ __metadata(\"design:paramtypes\", [TemplateRef])\n], ItemTemplateDirective);\n\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 MultiColumnComboBox]({% slug templates_multicolumncombobox %}#toc-header-template)\n * - [Using `HeaderTemplate` with the DropDownList]({% slug templates_ddl %}#toc-header-template)\n * - [Using `HeaderTemplate` with the DropDownTree]({% slug templates_ddt %}#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 */\nlet HeaderTemplateDirective = class HeaderTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nHeaderTemplateDirective.ɵfac = function HeaderTemplateDirective_Factory(t) { return new (t || HeaderTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nHeaderTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: HeaderTemplateDirective, selectors: [[\"\", \"kendoDropDownListHeaderTemplate\", \"\"], [\"\", \"kendoComboBoxHeaderTemplate\", \"\"], [\"\", \"kendoDropDownTreeHeaderTemplate\", \"\"], [\"\", \"kendoMultiColumnComboBoxHeaderTemplate\", \"\"], [\"\", \"kendoAutoCompleteHeaderTemplate\", \"\"], [\"\", \"kendoMultiSelectHeaderTemplate\", \"\"], [\"\", \"kendoMultiSelectTreeHeaderTemplate\", \"\"]] });\nHeaderTemplateDirective = __decorate([ __metadata(\"design:paramtypes\", [TemplateRef])\n], HeaderTemplateDirective);\n\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 MultiColumnComboBox]({% slug templates_multicolumncombobox %}#toc-footer-template)\n * - [Using `FooterTemplate` with the DropDownList]({% slug templates_ddl %}#toc-footer-template)\n * - [Using `FooterTemplate` with the DropDownTree]({% slug templates_ddt %}#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 */\nlet FooterTemplateDirective = class FooterTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nFooterTemplateDirective.ɵfac = function FooterTemplateDirective_Factory(t) { return new (t || FooterTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nFooterTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: FooterTemplateDirective, selectors: [[\"\", \"kendoDropDownListFooterTemplate\", \"\"], [\"\", \"kendoComboBoxFooterTemplate\", \"\"], [\"\", \"kendoDropDownTreeFooterTemplate\", \"\"], [\"\", \"kendoMultiColumnComboBoxFooterTemplate\", \"\"], [\"\", \"kendoAutoCompleteFooterTemplate\", \"\"], [\"\", \"kendoMultiSelectFooterTemplate\", \"\"], [\"\", \"kendoMultiSelectTreeFooterTemplate\", \"\"]] });\nFooterTemplateDirective = __decorate([ __metadata(\"design:paramtypes\", [TemplateRef])\n], FooterTemplateDirective);\n\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 MultiColumnComboBox]({% slug templates_multicolumncombobox %}#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 */\nlet GroupTemplateDirective = class GroupTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nGroupTemplateDirective.ɵfac = function GroupTemplateDirective_Factory(t) { return new (t || GroupTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nGroupTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: GroupTemplateDirective, selectors: [[\"\", \"kendoDropDownListGroupTemplate\", \"\"], [\"\", \"kendoComboBoxGroupTemplate\", \"\"], [\"\", \"kendoMultiColumnComboBoxGroupTemplate\", \"\"], [\"\", \"kendoAutoCompleteGroupTemplate\", \"\"], [\"\", \"kendoMultiSelectGroupTemplate\", \"\"]] });\nGroupTemplateDirective = __decorate([ __metadata(\"design:paramtypes\", [TemplateRef])\n], GroupTemplateDirective);\n\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 MultiColumnComboBox]({% slug templates_multicolumncombobox %}#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 */\nlet FixedGroupTemplateDirective = class FixedGroupTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nFixedGroupTemplateDirective.ɵfac = function FixedGroupTemplateDirective_Factory(t) { return new (t || FixedGroupTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nFixedGroupTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: FixedGroupTemplateDirective, selectors: [[\"\", \"kendoDropDownListFixedGroupTemplate\", \"\"], [\"\", \"kendoComboBoxFixedGroupTemplate\", \"\"], [\"\", \"kendoMultiColumnComboBoxFixedGroupTemplate\", \"\"], [\"\", \"kendoAutoCompleteFixedGroupTemplate\", \"\"], [\"\", \"kendoMultiSelectFixedGroupTemplate\", \"\"]] });\nFixedGroupTemplateDirective = __decorate([ __metadata(\"design:paramtypes\", [TemplateRef])\n], FixedGroupTemplateDirective);\n\n/**\n * @hidden\n */\nlet SelectionService = class SelectionService {\n /**\n * @hidden\n */\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.ɵfac = function SelectionService_Factory(t) { return new (t || SelectionService)(); };\nSelectionService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: SelectionService, factory: function (t) { return SelectionService.ɵfac(t); } });\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 */\nlet DataService = class DataService {\n /**\n * @hidden\n */\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 null;\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 getter$1(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.ɵfac = function DataService_Factory(t) { return new (t || DataService)(); };\nDataService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: DataService, factory: function (t) { return DataService.ɵfac(t); } });\n\n/**\n * @hidden\n */\nlet DisabledItemsService = class 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.ɵfac = function DisabledItemsService_Factory(t) { return new (t || DisabledItemsService)(ɵngcc0.ɵɵinject(DataService)); };\nDisabledItemsService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: DisabledItemsService, factory: function (t) { return DisabledItemsService.ɵfac(t); } });\nDisabledItemsService = __decorate([ __metadata(\"design:paramtypes\", [DataService])\n], DisabledItemsService);\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 */\nlet NavigationService = class 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.ArrowDown) {\n action = NavigationAction.Open;\n }\n else if (altKey && keyCode === Keys.ArrowUp) {\n action = NavigationAction.Close;\n }\n else if (keyCode === Keys.Enter) {\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) {\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.ArrowLeft) {\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.ArrowDown) {\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.ArrowRight) {\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.ɵfac = function NavigationService_Factory(t) { return new (t || NavigationService)(ɵngcc0.ɵɵinject(DisabledItemsService), ɵngcc0.ɵɵinject(SelectionService)); };\nNavigationService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NavigationService, factory: function (t) { return NavigationService.ɵfac(t); } });\nNavigationService = __decorate([ __metadata(\"design:paramtypes\", [DisabledItemsService,\n SelectionService])\n], NavigationService);\n\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 MultiColumnComboBox]({% slug templates_multicolumncombobox %}#toc-no-data-template)\n * - [Using `NoDataTemplate` with the DropDownList]({% slug templates_ddl %}#toc-no-data-template)\n * - [Using `NoDataTemplate` with the DropDownTree]({% slug templates_ddt %}#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 */\nlet NoDataTemplateDirective = class NoDataTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nNoDataTemplateDirective.ɵfac = function NoDataTemplateDirective_Factory(t) { return new (t || NoDataTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nNoDataTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NoDataTemplateDirective, selectors: [[\"\", \"kendoDropDownListNoDataTemplate\", \"\"], [\"\", \"kendoDropDownTreeNoDataTemplate\", \"\"], [\"\", \"kendoComboBoxNoDataTemplate\", \"\"], [\"\", \"kendoMultiColumnComboBoxNoDataTemplate\", \"\"], [\"\", \"kendoAutoCompleteNoDataTemplate\", \"\"], [\"\", \"kendoMultiSelectNoDataTemplate\", \"\"], [\"\", \"kendoMultiSelectTreeNoDataTemplate\", \"\"]] });\nNoDataTemplateDirective = __decorate([ __metadata(\"design:paramtypes\", [TemplateRef])\n], NoDataTemplateDirective);\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 FilterableComponent {\n}\n\n/**\n * @hidden\n */\nlet ListItemDirective = class ListItemDirective {\n constructor(element) {\n this.element = element;\n }\n};\nListItemDirective.ɵfac = function ListItemDirective_Factory(t) { return new (t || ListItemDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nListItemDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ListItemDirective, selectors: [[\"li\", \"role\", \"option\"], [\"li\", \"role\", \"group\"]] });\nListItemDirective = __decorate([ __metadata(\"design:paramtypes\", [ElementRef])\n], ListItemDirective);\n\n/**\n * @hidden\n */\nlet ListComponent = class 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.type = 'list';\n this.checkboxes = { enabled: false };\n this.rounded = 'medium';\n this.onClick = new EventEmitter();\n this.pageChange = new EventEmitter();\n this.listResize = new EventEmitter();\n this.startFrom = 0;\n this.lastLoaded = 0;\n this.lastScrollTop = 0;\n this.scrollToFocused = false;\n this._size = 'medium';\n this.selectSubscription = merge(this.selectionService.onSelect.pipe(map((args) => args.indices[0])), this.selectionService.onFocus)\n .pipe(\n // handle only the very last onSelect/onFocus emission\n switchMap(event => this.zone.onStable.pipe(take(1), map(() => event))))\n .subscribe(this.scrollToItem.bind(this));\n this.prepareClasses();\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 size(size) {\n if (this.type === 'list') {\n this.renderer.removeClass(this.wrapper.nativeElement, getSizeClass('list', this.size));\n if (size) {\n this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('list', size));\n }\n this._size = size;\n }\n }\n get size() {\n return this._size;\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 get overflowY() {\n if (isPresent(this.virtual)) {\n const overflow = this.hasVirtualScrollbar() ? 'scroll' : 'hidden';\n return overflow;\n }\n }\n /**\n * @hidden\n */\n get checkboxClasses() {\n return `${this.size ? getSizeClass('checkbox', this.size) : ''} ${this.rounded ? getRoundedClass(this.rounded) : ''}`;\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 this.setOverflow();\n }\n if (isChanged('virtual', changes, false)) {\n this.setOverflow();\n }\n if (isChanged('type', changes, false)) {\n this.prepareClasses();\n }\n }\n ngAfterViewInit() {\n this.setComponentClasses();\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 this.setOverflow();\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 onCheckedChange(e, index) {\n const isChecked = e.target['checked'];\n if (isChecked && !this.selectionService.isSelected(index)) {\n this.selectionService.add(index);\n }\n if (!isChecked && this.selectionService.isSelected(index)) {\n this.selectionService.unselect(index);\n }\n }\n prepareClasses() {\n if (this.type === 'list') {\n this.listContentClass = 'k-list-content';\n this.listClass = 'k-list-ul';\n this.listItemClass = 'k-list-item';\n this.listVirtualClass = 'k-virtual-list';\n this.listGroupStickyHeaderClass = 'k-list-group-sticky-header';\n this.listGroupStickyHeaderTextClass = 'k-list-header-text';\n this.listGroupItemClass = 'k-list-group-item';\n this.listGroupItemTextClass = 'k-list-item-text';\n }\n else {\n this.listContentClass = 'k-table-body k-table-scroller';\n this.listClass = 'k-table k-table-list';\n this.listItemClass = 'k-table-row';\n this.listVirtualClass = 'k-virtual-table';\n this.listGroupStickyHeaderClass = 'k-table-group-sticky-header';\n this.listGroupStickyHeaderTextClass = 'k-table-th';\n this.listGroupItemClass = 'k-table-group-row';\n this.listGroupItemTextClass = 'k-table-th';\n }\n }\n isChecked(index) {\n const normalizedIndex = this.virtual ? index + this.virtual.skip : index;\n return this.selectionService.isSelected(normalizedIndex);\n }\n firstVisibleItem() {\n const content = this.content.nativeElement;\n const rect = content.getBoundingClientRect();\n // IE9 hack\n const disabled = Array.prototype.slice.call(content.querySelectorAll(\".k-disabled\"));\n // This is a workaround for finding elements with pointer-events: none;\n disabled.forEach((el) => this.renderer.setStyle(el, \"pointer-events\", \"auto\"));\n const item = document.elementFromPoint(rect.left + 1, rect.top + 1);\n disabled.forEach((el) => this.renderer.setStyle(el, \"pointer-events\", \"none\"));\n // return the closest `li` item to cover the custom template scenario\n return closest(item, 'li');\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$1(dataItem, this.textField);\n }\n getValue(dataItem) {\n return getter$1(dataItem, this.valueField);\n }\n isDisabled(index) {\n if (isPresent(this.virtual)) {\n index += this.virtual.skip;\n }\n return this.disabledItemsService.isIndexDisabled(index);\n }\n isAltRow(index) {\n return this.type === 'dropdowngrid' && index % 2 !== 0;\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 /**\n * Indicates whether a scrollbar is currently rendered in the list.\n */\n hasScrollbar() {\n if (!(isPresent(this.items) && this.items.length && isPresent(this.list) && isPresent(this.content))) {\n return false;\n }\n const hasVirtualScroll = isPresent(this.virtual) && this.hasVirtualScrollbar();\n return hasVirtualScroll || this.list.nativeElement.scrollHeight > this.content.nativeElement.offsetHeight;\n }\n /**\n * Sets the list's content overflow (hides/shows scrollbar)\n */\n setOverflow() {\n if (this.virtual) {\n const overflow = this.hasVirtualScrollbar() ? 'scroll' : 'hidden';\n this.renderer.setStyle(this.content.nativeElement, 'overflow-y', overflow);\n }\n }\n /**\n * Indicates whether the scrollbar should be visible in virtual mode.\n */\n hasVirtualScrollbar() {\n const contentOffsetHeight = this.content.nativeElement.offsetHeight;\n const virtualOffsetHeight = this.virtualContainer && this.virtualContainer.nativeElement.offsetHeight;\n return this.virtualContainer && virtualOffsetHeight > contentOffsetHeight;\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 setComponentClasses() {\n if (this.type === 'list') {\n this.renderer.addClass(this.wrapper.nativeElement, 'k-list');\n if (this.size) {\n this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('list', this.size));\n }\n }\n if (isPresent(this.virtual)) {\n this.renderer.addClass(this.wrapper.nativeElement, this.listVirtualClass);\n }\n }\n};\nListComponent.ɵfac = function ListComponent_Factory(t) { return new (t || ListComponent)(ɵngcc0.ɵɵdirectiveInject(DataService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(SelectionService), ɵngcc0.ɵɵdirectiveInject(DisabledItemsService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nListComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ListComponent, selectors: [[\"kendo-list\"]], viewQuery: function ListComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c2, 7);\n ɵngcc0.ɵɵviewQuery(_c3, 7);\n ɵngcc0.ɵɵviewQuery(_c4, 5);\n ɵngcc0.ɵɵviewQuery(ListItemDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.content = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.list = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.virtualContainer = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.items = _t);\n } }, inputs: { selected: \"selected\", focused: \"focused\", show: \"show\", multipleSelection: \"multipleSelection\", type: \"type\", checkboxes: \"checkboxes\", rounded: \"rounded\", data: \"data\", size: \"size\", textField: \"textField\", valueField: \"valueField\", height: \"height\", template: \"template\", groupTemplate: \"groupTemplate\", fixedGroupTemplate: \"fixedGroupTemplate\", id: \"id\", optionPrefix: \"optionPrefix\", virtual: \"virtual\" }, outputs: { onClick: \"onClick\", pageChange: \"pageChange\", listResize: \"listResize\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], decls: 9, vars: 15, consts: [[3, \"class\", \"ngStyle\", 4, \"ngIf\"], [\"unselectable\", \"on\"], [\"content\", \"\"], [\"role\", \"listbox\"], [\"list\", \"\"], [4, \"ngIf\"], [3, \"resize\", 4, \"ngIf\"], [\"class\", \"k-height-container\", \"role\", \"presentation\", 4, \"ngIf\"], [3, \"ngStyle\"], [3, \"ngIf\"], [3, \"templateContext\"], [\"ngFor\", \"\", 3, \"ngForOf\"], [\"role\", \"option\", \"kendoDropDownsSelectable\", \"\", 3, \"checkboxes\", \"height\", \"index\", \"multipleSelection\", \"ngClass\"], [\"type\", \"checkbox\", \"class\", \"k-checkbox\", 3, \"ngClass\", \"checked\", \"change\", 4, \"ngIf\"], [\"type\", \"checkbox\", 1, \"k-checkbox\", 3, \"ngClass\", \"checked\", \"change\"], [1, \"k-list-item-text\"], [\"role\", \"group\", 3, \"class\", \"k-table-alt-row\", \"ngStyle\", 4, \"ngIf\"], [\"role\", \"option\", \"kendoDropDownsSelectable\", \"\", 3, \"height\", \"index\", \"multipleSelection\", \"class\", \"ngClass\", 4, \"ngIf\"], [\"role\", \"group\", 3, \"ngStyle\"], [\"role\", \"option\", \"kendoDropDownsSelectable\", \"\", 3, \"height\", \"index\", \"multipleSelection\", \"ngClass\"], [3, \"resize\"], [\"role\", \"presentation\", 1, \"k-height-container\"], [\"virtualContainer\", \"\"]], template: function ListComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ListComponent_div_0_Template, 3, 9, \"div\", 0);\n ɵngcc0.ɵɵelementStart(1, \"div\", 1, 2)(3, \"ul\", 3, 4);\n ɵngcc0.ɵɵtemplate(5, ListComponent_5_Template, 1, 1, null, 5);\n ɵngcc0.ɵɵtemplate(6, ListComponent_6_Template, 1, 1, null, 5);\n ɵngcc0.ɵɵtemplate(7, ListComponent_kendo_resize_sensor_7_Template, 1, 0, \"kendo-resize-sensor\", 6);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(8, ListComponent_div_8_Template, 4, 2, \"div\", 7);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.dataService.grouped);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassMap(ctx.listContentClass);\n ɵngcc0.ɵɵstyleProp(\"overscroll-behavior\", \"none\")(\"max-height\", ctx.height, \"px\");\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵclassMap(ctx.listClass);\n ɵngcc0.ɵɵattribute(\"id\", ctx.id)(\"aria-hidden\", !ctx.show);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.dataService.grouped && ctx.show);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.dataService.grouped);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.virtual);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.virtual);\n } }, directives: function () { return [ɵngcc3.NgIf, ɵngcc3.NgStyle, TemplateContextDirective, ɵngcc3.NgForOf, ListItemDirective, SelectableDirective, ɵngcc3.NgClass, ɵngcc2.ResizeSensorComponent]; }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], ListComponent.prototype, \"selected\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ListComponent.prototype, \"focused\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ListComponent.prototype, \"textField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ListComponent.prototype, \"valueField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ListComponent.prototype, \"height\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", ItemTemplateDirective)\n], ListComponent.prototype, \"template\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", GroupTemplateDirective)\n], ListComponent.prototype, \"groupTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", FixedGroupTemplateDirective)\n], ListComponent.prototype, \"fixedGroupTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ListComponent.prototype, \"show\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ListComponent.prototype, \"id\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ListComponent.prototype, \"optionPrefix\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ListComponent.prototype, \"multipleSelection\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ListComponent.prototype, \"virtual\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ListComponent.prototype, \"type\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ListComponent.prototype, \"checkboxes\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], ListComponent.prototype, \"data\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ListComponent.prototype, \"size\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ListComponent.prototype, \"rounded\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ListComponent.prototype, \"onClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ListComponent.prototype, \"pageChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ListComponent.prototype, \"listResize\", void 0);\n__decorate([\n ViewChildren(ListItemDirective),\n __metadata(\"design:type\", QueryList)\n], ListComponent.prototype, \"items\", void 0);\n__decorate([\n ViewChild('content', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], ListComponent.prototype, \"content\", void 0);\n__decorate([\n ViewChild('list', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], ListComponent.prototype, \"list\", void 0);\n__decorate([\n ViewChild('virtualContainer', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], ListComponent.prototype, \"virtualContainer\", void 0);\nListComponent = __decorate([ __metadata(\"design:paramtypes\", [DataService,\n ElementRef,\n SelectionService,\n DisabledItemsService,\n ChangeDetectorRef,\n NgZone,\n Renderer2])\n], ListComponent);\n\n/**\n * @hidden\n */\nconst DEFAULTS = {\n pageSize: 50,\n itemHeight: 28\n};\n/**\n * @hidden\n */\nconst normalizeVirtualizationSettings = (settings, defaultOverrides) => {\n const defaults = Object.assign({}, DEFAULTS, defaultOverrides);\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/**\n * @hidden\n */\nconst TOUCH_ENABLED = new InjectionToken('dropdowns-touch-enabled');\n\n/* tslint:disable:member-ordering */\nvar AutoCompleteComponent_1;\nconst NO_VALUE = \"\";\n/**\n * @hidden\n */\nconst AUTOCOMPLETE_VALUE_ACCESSOR = {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\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 */\nlet AutoCompleteComponent = AutoCompleteComponent_1 = class AutoCompleteComponent {\n constructor(localization, dataService, popupService, selectionService, navigationService, disabledItemsService, _zone, cdr, renderer, hostElement, touchEnabled$$1) {\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 this.hostElement = hostElement;\n this.touchEnabled = touchEnabled$$1;\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$1()}`;\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 after the popup has been opened.\n */\n this.opened = 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 after the popup has been closed.\n */\n this.closed = new EventEmitter();\n /**\n * Fires each time the user focuses the AutoComplete.\n */\n this.onFocus = new EventEmitter();\n /**\n * Fires each time the AutoComplete gets blurred.\n */\n this.onBlur = new EventEmitter();\n this.widgetClasses = true;\n this.listBoxId = guid$1();\n this.optionPrefix = guid$1();\n this.onChangeCallback = noop;\n this.onTouchedCallback = noop;\n this.popupMouseDownHandler = (event) => event.preventDefault();\n this._popupSettings = { animate: true };\n this._open = false;\n this._value = \"\";\n this.valueChangeSubject = new Subject();\n this._isFocused = false;\n this._size = 'medium';\n this._rounded = 'medium';\n this._fillMode = 'solid';\n validatePackage(packageMetadata);\n this.direction = localization.rtl ? 'rtl' : 'ltr';\n this.wrapper = this.hostElement.nativeElement;\n this.data = [];\n this.subscribeEvents();\n this.subscribeTouchEvents();\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 get clearButtonVisiblity() {\n if (this.touchEnabled) {\n return 'visible';\n }\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 const shouldOpen = isPresent(open) ? open : !this._open;\n this._toggle(shouldOpen);\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$1(dataItem, this.valueField);\n }\n get noDataLabel() {\n if (this.data.length === 0) {\n return this.messageFor('noDataText');\n }\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 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$1(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.text = this.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 /**\n * Sets the size of the component.\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `null`\n *\n */\n set size(size) {\n this.renderer.removeClass(this.wrapper, getSizeClass('input', this.size));\n if (size) {\n this.renderer.addClass(this.wrapper, getSizeClass('input', size));\n }\n this._size = size;\n }\n get size() {\n return this._size;\n }\n /**\n * Sets the border radius of the component.\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `'full'`\n * * `null`\n *\n */\n set rounded(rounded) {\n this.renderer.removeClass(this.wrapper, getRoundedClass(this.rounded));\n if (rounded) {\n this.renderer.addClass(this.wrapper, getRoundedClass(rounded));\n }\n this._rounded = rounded;\n }\n get rounded() {\n return this._rounded;\n }\n /**\n * Sets the fillMode of the component.\n *\n * The possible values are:\n * * `'flat'`\n * * `'solid'` (default)\n * * `'outline'`\n * * `null`\n *\n */\n set fillMode(fillMode) {\n this.renderer.removeClass(this.wrapper, getFillModeClass('input', this.fillMode));\n if (fillMode) {\n this.renderer.addClass(this.wrapper, getFillModeClass('input', fillMode));\n }\n this._fillMode = fillMode;\n }\n get fillMode() {\n return this._fillMode;\n }\n get isFocused() {\n return this._isFocused;\n }\n set isFocused(isFocused) {\n this.renderer[isFocused ? 'addClass' : 'removeClass'](this.wrapper, \"k-focus\");\n this._isFocused = isFocused;\n }\n get isDisabled() {\n return this.disabled;\n }\n get isLoading() {\n return this.loading;\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.cdr.detectChanges();\n });\n this.setComponentClasses();\n }\n ngOnDestroy() {\n this.destroyPopup();\n this.unsubscribeEvents();\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 }\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.value = NO_VALUE;\n }\n /**\n * @hidden\n */\n messageFor(key) {\n return this.localization.get(key);\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.value = 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 a specific item of the AutoComplete based on a provided index.\n * If null or invalid index is provided the focus will be removed.\n */\n focusItemAt(index) {\n const isInRange = index >= 0 && index < this.data.length;\n if (isPresent(index) && isInRange && !this.disabledItemsService.isIndexDisabled(index)) {\n this.selectionService.focus(index);\n }\n else {\n this.selectionService.focus(-1);\n }\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(value) {\n this.onChangeCallback(value);\n this.valueChange.emit(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 https://www.telerik.com/kendo-angular-ui/components/dropdowns/autocomplete/value-binding/\");\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$1(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 if (this.isOpen) {\n event.originalEvent.preventDefault();\n }\n if (focused >= 0) {\n value = getter$1(this.dataService.itemAt(focused), this.valueField);\n }\n else {\n const match = this.suggest && this.suggestedText && this.data.length &&\n getter$1(this.dataService.itemAt(0), this.valueField).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 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 if (hasObservers(this.onFocus)) {\n this._zone.run(() => {\n this.onFocus.emit();\n });\n }\n }\n /**\n * @hidden\n */\n handleBlur() {\n const focused = this.filterable ? this.selectionService.focused : -1;\n this.searchbar.input.nativeElement.scrollLeft = 0; // Firefox doesn't auto-scroll to the left on blur like other browsers\n let dataItem;\n let text;\n if (focused !== -1) {\n dataItem = this.dataService.itemAt(focused);\n text = getter$1(dataItem, this.valueField) || \"\";\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.isFocused = false;\n const valueHasChanged = this.value !== this.text;\n const runInZone = hasObservers(this.onBlur) || hasObservers(this.close) || isUntouched(this.wrapper) || valueHasChanged;\n if (runInZone) {\n this._zone.run(() => {\n if (valueHasChanged) {\n this.change(this.searchbar.value);\n }\n this.onBlur.emit();\n this.onTouchedCallback();\n this.togglePopup(false);\n });\n }\n else {\n this.togglePopup(false);\n }\n }\n /**\n * @hidden\n */\n pageChange(event) {\n const virtual = this.virtual;\n virtual.skip = event.skip;\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\n .subscribe(value => {\n const hasChange = this.value !== value;\n this.value = value;\n this.text = value;\n // emit change after assigning `this.value` => allows the user to modify the component value on `valueChange`\n if (hasChange) {\n this.emitChange(value);\n }\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 subscribeTouchEvents() {\n if (!isDocumentAvailable() || !this.touchEnabled) {\n return;\n }\n this._zone.runOutsideAngular(() => \n // Roll up AutoComplete on iOS when tapped outside\n this.touchstartDisposeHandler = this.renderer.listen(document, 'touchstart', (e) => {\n const target = e.target;\n if (this.isFocused && !inDropDown(this.hostElement, target, this.popupRef)) {\n this._zone.run(() => this.blur());\n }\n }));\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 if (this.touchstartDisposeHandler) {\n this.touchstartDisposeHandler();\n }\n }\n handleItemChange(event) {\n const index = event.indices.length ? event.indices[0] : undefined;\n this.selectionService.resetSelection([-1]);\n if (!isPresent(index)) {\n return;\n }\n let text = getter$1(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$1(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 this.opened.emit();\n });\n this.popupRef.popupClose.subscribe(() => {\n this.closed.emit();\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;\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$1(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$1(item, this.valueField);\n itemText = !isPresent(itemText) ? \"\" : itemText.toString().toLowerCase();\n return itemText.startsWith(text.toLowerCase());\n };\n }\n }\n setComponentClasses() {\n if (this.size) {\n this.renderer.addClass(this.wrapper, getSizeClass('input', this.size));\n }\n if (this.rounded) {\n this.renderer.addClass(this.wrapper, getRoundedClass(this.rounded));\n }\n if (this.fillMode) {\n this.renderer.addClass(this.wrapper, getFillModeClass('input', this.fillMode));\n }\n }\n};\nAutoCompleteComponent.ɵfac = function AutoCompleteComponent_Factory(t) { return new (t || AutoCompleteComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(DataService), ɵngcc0.ɵɵdirectiveInject(ɵngcc4.PopupService), ɵngcc0.ɵɵdirectiveInject(SelectionService), ɵngcc0.ɵɵdirectiveInject(NavigationService), ɵngcc0.ɵɵdirectiveInject(DisabledItemsService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(TOUCH_ENABLED, 8)); };\nAutoCompleteComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: AutoCompleteComponent, selectors: [[\"kendo-autocomplete\"]], contentQueries: function AutoCompleteComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, ItemTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, HeaderTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, FooterTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NoDataTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, GroupTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, FixedGroupTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.template = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.headerTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.footerTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.noDataTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.groupTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.fixedGroupTemplate = _t.first);\n } }, viewQuery: function AutoCompleteComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c8, 7, ViewContainerRef);\n ɵngcc0.ɵɵviewQuery(_c9, 7);\n ɵngcc0.ɵɵviewQuery(SearchBarComponent, 7);\n ɵngcc0.ɵɵviewQuery(_c10, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.container = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.popupTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.searchbar = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.optionsList = _t.first);\n } }, hostVars: 9, hostBindings: function AutoCompleteComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"dir\", ctx.dir);\n ɵngcc0.ɵɵclassProp(\"k-autocomplete\", ctx.widgetClasses)(\"k-input\", ctx.widgetClasses)(\"k-disabled\", ctx.isDisabled)(\"k-loading\", ctx.isLoading);\n } }, inputs: { highlightFirst: \"highlightFirst\", focusableId: \"focusableId\", placeholder: \"placeholder\", listHeight: \"listHeight\", clearButton: \"clearButton\", disabled: \"disabled\", readonly: \"readonly\", tabindex: \"tabindex\", filterable: \"filterable\", data: \"data\", value: \"value\", popupSettings: \"popupSettings\", itemDisabled: \"itemDisabled\", tabIndex: \"tabIndex\", virtual: \"virtual\", size: \"size\", rounded: \"rounded\", fillMode: \"fillMode\", valueField: \"valueField\", loading: \"loading\", suggest: \"suggest\" }, outputs: { valueChange: \"valueChange\", filterChange: \"filterChange\", open: \"open\", opened: \"opened\", close: \"close\", closed: \"closed\", onFocus: \"focus\", onBlur: \"blur\" }, exportAs: [\"kendoAutoComplete\"], features: [ɵngcc0.ɵɵProvidersFeature([\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: FilterableComponent,\n useExisting: forwardRef(() => AutoCompleteComponent_1)\n },\n {\n provide: KendoInput,\n useExisting: forwardRef(() => AutoCompleteComponent_1)\n }\n ]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 10, vars: 15, consts: function () { let i18n_11; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text displayed in the popup when there are no items\n * @meaning kendo.autocomplete.noDataText\n */\n const MSG_EXTERNAL_2690656529626907484$$DIST_FESM2015_INDEX_JS_12 = goog.getMsg(\"NO DATA FOUND\");\n i18n_11 = MSG_EXTERNAL_2690656529626907484$$DIST_FESM2015_INDEX_JS_12;\n }\n else {\n i18n_11 = $localize `:kendo.autocomplete.noDataText|The text displayed in the popup when there are no items␟4e9993e088a293543eb0c2801343518c115b6f20␟2690656529626907484:NO DATA FOUND`;\n } let i18n_13; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the clear button\n * @meaning kendo.autocomplete.clearTitle\n */\n const MSG_EXTERNAL_4821453594854847070$$DIST_FESM2015_INDEX_JS_14 = goog.getMsg(\"clear\");\n i18n_13 = MSG_EXTERNAL_4821453594854847070$$DIST_FESM2015_INDEX_JS_14;\n }\n else {\n i18n_13 = $localize `:kendo.autocomplete.clearTitle|The title of the clear button␟7cf49cc2d50eebd29f8d61564512383caaaac7a6␟4821453594854847070:clear`;\n } return [[\"kendoAutoCompleteLocalizedMessages\", \"\", \"noDataText\", i18n_11, \"clearTitle\", i18n_13], [3, \"role\", \"id\", \"listId\", \"activeDescendant\", \"noDataLabel\", \"userInput\", \"suggestedText\", \"disabled\", \"readonly\", \"tabIndex\", \"popupOpen\", \"placeholder\", \"onNavigate\", \"valueChange\", \"onBlur\", \"onFocus\"], [\"searchbar\", \"\"], [\"class\", \"k-clear-value\", \"role\", \"button\", \"tabindex\", \"-1\", 3, \"visibility\", \"click\", \"mousedown\", 4, \"ngIf\"], [\"class\", \"k-icon k-i-loading\", 4, \"ngIf\"], [\"popupTemplate\", \"\"], [3, \"ngIf\"], [\"container\", \"\"], [\"role\", \"button\", \"tabindex\", \"-1\", 1, \"k-clear-value\", 3, \"click\", \"mousedown\"], [1, \"k-icon\", \"k-i-x\"], [1, \"k-icon\", \"k-i-loading\"], [4, \"ngIf\"], [3, \"size\", \"rounded\", \"id\", \"optionPrefix\", \"data\", \"textField\", \"valueField\", \"template\", \"groupTemplate\", \"fixedGroupTemplate\", \"height\", \"show\", \"virtual\", \"pageChange\"], [\"optionsList\", \"\"], [\"class\", \"k-no-data\", 4, \"ngIf\"], [3, \"templateContext\"], [1, \"k-no-data\"], [3, \"ngIf\", \"templateContext\"], [3, \"resize\"]]; }, template: function AutoCompleteComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 0);\n ɵngcc0.ɵɵelementStart(1, \"kendo-searchbar\", 1, 2);\n ɵngcc0.ɵɵlistener(\"onNavigate\", function AutoCompleteComponent_Template_kendo_searchbar_onNavigate_1_listener($event) { return ctx.handleNavigate($event); })(\"valueChange\", function AutoCompleteComponent_Template_kendo_searchbar_valueChange_1_listener($event) { return ctx.searchBarChange($event); })(\"onBlur\", function AutoCompleteComponent_Template_kendo_searchbar_onBlur_1_listener() { return ctx.handleBlur(); })(\"onFocus\", function AutoCompleteComponent_Template_kendo_searchbar_onFocus_1_listener() { return ctx.handleFocus(); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, AutoCompleteComponent_span_3_Template, 2, 3, \"span\", 3);\n ɵngcc0.ɵɵtemplate(4, AutoCompleteComponent_span_4_Template, 1, 0, \"span\", 4);\n ɵngcc0.ɵɵtemplate(5, AutoCompleteComponent_ng_template_5_Template, 5, 16, \"ng-template\", null, 5, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(7, AutoCompleteComponent_ng_template_7_Template, 1, 0, \"ng-template\", 6);\n ɵngcc0.ɵɵelementContainer(8, null, 7);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"role\", \"combobox\")(\"id\", ctx.focusableId)(\"listId\", ctx.listBoxId)(\"activeDescendant\", ctx.activeDescendant)(\"noDataLabel\", ctx.noDataLabel)(\"userInput\", ctx.text)(\"suggestedText\", ctx.suggestion)(\"disabled\", ctx.disabled)(\"readonly\", ctx.readonly)(\"tabIndex\", ctx.tabIndex)(\"popupOpen\", ctx.isOpen)(\"placeholder\", ctx.placeholder);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.loading && !ctx.readonly && (ctx.clearButton && (ctx.text == null ? null : ctx.text.length)));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.loading);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.isOpen);\n } }, directives: function () { return [LocalizedMessagesDirective, SearchBarComponent, ɵngcc3.NgIf, TemplateContextDirective, ListComponent, ɵngcc2.ResizeSensorComponent]; }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AutoCompleteComponent.prototype, \"highlightFirst\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AutoCompleteComponent.prototype, \"focusableId\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], AutoCompleteComponent.prototype, \"data\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], AutoCompleteComponent.prototype, \"value\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AutoCompleteComponent.prototype, \"valueField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AutoCompleteComponent.prototype, \"placeholder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], AutoCompleteComponent.prototype, \"popupSettings\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AutoCompleteComponent.prototype, \"listHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AutoCompleteComponent.prototype, \"loading\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AutoCompleteComponent.prototype, \"clearButton\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AutoCompleteComponent.prototype, \"suggest\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AutoCompleteComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Function])\n], AutoCompleteComponent.prototype, \"itemDisabled\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AutoCompleteComponent.prototype, \"readonly\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], AutoCompleteComponent.prototype, \"tabindex\", void 0);\n__decorate([\n Input(\"tabIndex\"),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], AutoCompleteComponent.prototype, \"tabIndex\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AutoCompleteComponent.prototype, \"filterable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], AutoCompleteComponent.prototype, \"virtual\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], AutoCompleteComponent.prototype, \"size\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], AutoCompleteComponent.prototype, \"rounded\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], AutoCompleteComponent.prototype, \"fillMode\", null);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AutoCompleteComponent.prototype, \"valueChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AutoCompleteComponent.prototype, \"filterChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AutoCompleteComponent.prototype, \"open\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AutoCompleteComponent.prototype, \"opened\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AutoCompleteComponent.prototype, \"close\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AutoCompleteComponent.prototype, \"closed\", void 0);\n__decorate([\n Output('focus'),\n __metadata(\"design:type\", EventEmitter)\n], AutoCompleteComponent.prototype, \"onFocus\", void 0);\n__decorate([\n Output('blur'),\n __metadata(\"design:type\", EventEmitter)\n], AutoCompleteComponent.prototype, \"onBlur\", void 0);\n__decorate([\n ContentChild(ItemTemplateDirective, { static: false }),\n __metadata(\"design:type\", ItemTemplateDirective)\n], AutoCompleteComponent.prototype, \"template\", void 0);\n__decorate([\n ContentChild(HeaderTemplateDirective, { static: false }),\n __metadata(\"design:type\", HeaderTemplateDirective)\n], AutoCompleteComponent.prototype, \"headerTemplate\", void 0);\n__decorate([\n ContentChild(FooterTemplateDirective, { static: false }),\n __metadata(\"design:type\", FooterTemplateDirective)\n], AutoCompleteComponent.prototype, \"footerTemplate\", void 0);\n__decorate([\n ContentChild(NoDataTemplateDirective, { static: false }),\n __metadata(\"design:type\", NoDataTemplateDirective)\n], AutoCompleteComponent.prototype, \"noDataTemplate\", void 0);\n__decorate([\n ContentChild(GroupTemplateDirective, { static: false }),\n __metadata(\"design:type\", GroupTemplateDirective)\n], AutoCompleteComponent.prototype, \"groupTemplate\", void 0);\n__decorate([\n ContentChild(FixedGroupTemplateDirective, { static: false }),\n __metadata(\"design:type\", FixedGroupTemplateDirective)\n], AutoCompleteComponent.prototype, \"fixedGroupTemplate\", void 0);\n__decorate([\n ViewChild('container', { read: ViewContainerRef, static: true }),\n __metadata(\"design:type\", ViewContainerRef)\n], AutoCompleteComponent.prototype, \"container\", void 0);\n__decorate([\n ViewChild('popupTemplate', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], AutoCompleteComponent.prototype, \"popupTemplate\", void 0);\n__decorate([\n ViewChild(SearchBarComponent, { static: true }),\n __metadata(\"design:type\", SearchBarComponent)\n], AutoCompleteComponent.prototype, \"searchbar\", void 0);\n__decorate([\n ViewChild('optionsList', { static: false }),\n __metadata(\"design:type\", ListComponent)\n], AutoCompleteComponent.prototype, \"optionsList\", void 0);\n__decorate([\n HostBinding('class.k-autocomplete'),\n HostBinding('class.k-input'),\n __metadata(\"design:type\", Boolean)\n], AutoCompleteComponent.prototype, \"widgetClasses\", void 0);\n__decorate([\n HostBinding('class.k-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], AutoCompleteComponent.prototype, \"isDisabled\", null);\n__decorate([\n HostBinding('class.k-loading'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], AutoCompleteComponent.prototype, \"isLoading\", null);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], AutoCompleteComponent.prototype, \"dir\", null);\nAutoCompleteComponent = AutoCompleteComponent_1 = __decorate([ __param(10, Optional()), __param(10, Inject(TOUCH_ENABLED)),\n __metadata(\"design:paramtypes\", [LocalizationService,\n DataService,\n PopupService,\n SelectionService,\n NavigationService,\n DisabledItemsService,\n NgZone,\n ChangeDetectorRef,\n Renderer2,\n ElementRef, Boolean])\n], AutoCompleteComponent);\n\n/* tslint:disable:variable-name */\n/**\n * @hidden\n */\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 */\nconst MultiSelectTreeMessages = {\n 'array': 'Expected values of array type. See http://www.telerik.com/kendo-angular-ui/components/dropdowns/multiselecttree/#value-selection',\n 'primitive': 'Expected values of primitive type. See http://www.telerik.com/kendo-angular-ui/components/dropdowns/multiselecttree/value-binding/#toc-primitive-values',\n 'object': 'Expected values of type Object. See http://www.telerik.com/kendo-angular-ui/components/dropdowns/multiselecttree/value-binding/#toc-object-values',\n 'dataItems': 'Expected dataItems of type Object[] to be set. See https://www.telerik.com/kendo-angular-ui/components/dropdowns/api/MultiSelectTreeComponent/#toc-dataitems',\n 'dataItemsLength': 'Expected dataItems length to match the number of provided values. See https://www.telerik.com/kendo-angular-ui/components/dropdowns/api/MultiSelectTreeComponent/#toc-dataitems',\n 'textAndValue': 'Expected textField and valueField options to be set. See https://www.telerik.com/kendo-angular-ui/components/dropdowns/multiselecttree/value-binding',\n 'valueDepth': 'Expected valueDepth of type number[] to be set. See https://www.telerik.com/kendo-angular-ui-develop/components/dropdowns/api/MultiSelectTreeComponent/#toc-valuedepth',\n 'valueDepthLength': 'Expected valueDepth length to match the number of provided values. See https://www.telerik.com/kendo-angular-ui-develop/components/dropdowns/api/MultiSelectTreeComponent/#toc-valuedepth'\n};\n/**\n * @hidden\n */\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 */\nconst MultiColumnComboBoxMessages = {\n 'data': 'Provided data must consist only of objects. See https://www.telerik.com/kendo-angular-ui/components/dropdowns/multicolumncombobox/data-binding/',\n 'textAndValue': 'Expected textField and valueField options to be set. See https://www.telerik.com/kendo-angular-ui/components/dropdowns/multicolumncombobox/data-binding/#toc-fields-configuration'\n};\n/**\n * @hidden\n */\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 * @hidden\n */\nconst DropDownTreeMessages = {\n 'primitive': 'Expected value of primitive type. See http://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdowntree/value-binding/#toc-primitive-values',\n 'object': 'Expected value of type Object. See http://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdowntree/value-binding/#toc-object-values',\n 'dataItem': 'Expected dataItem of type Object to be set. See https://www.telerik.com/kendo-angular-ui/components/dropdowns/api/DropDownTreeComponent/#toc-dataitem',\n 'textAndValue': 'Expected textField and valueField options to be set. See https://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdowntree/value-binding',\n 'valueDepth': 'Expected valueDepth to be set. See https://www.telerik.com/kendo-angular-ui-develop/components/dropdowns/api/DropDownTreeComponent/#toc-valuedepth'\n};\n\n/* tslint:disable:member-ordering */\nvar ComboBoxComponent_1;\n/**\n * @hidden\n */\nconst COMBOBOX_VALUE_ACCESSOR = {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\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 */\nlet ComboBoxComponent = ComboBoxComponent_1 = class ComboBoxComponent {\n constructor(wrapper, localization, popupService, selectionService, navigationService, disabledItemsService, dataService, zone, cdr, renderer, touchEnabled$$1) {\n this.wrapper = wrapper;\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$$1;\n this.selected = [];\n /**\n * @hidden\n */\n this.focusableId = `k-${guid$1()}`;\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 after the popup has been opened.\n */\n this.opened = 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 after the popup has been closed.\n */\n this.closed = new EventEmitter();\n /**\n * Fires each time the user focuses the ComboBox.\n */\n this.onFocus = new EventEmitter();\n /**\n * Fires each time the ComboBox gets blurred.\n */\n this.onBlur = new EventEmitter();\n this.widgetClasses = true;\n this._isFocused = false;\n this.listBoxId = guid$1();\n this.optionPrefix = guid$1();\n this.onChangeCallback = (_) => { };\n this.onTouchedCallback = (_) => { };\n /**\n * Used for the default virtualization settings config.\n */\n this.defaultVirtualItemHeight = 28;\n /**\n * Used for the default virtualization settings config.\n */\n this.defaultVirtualPageSize = 50;\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.subs = new Subscription();\n this._size = 'medium';\n this._rounded = 'medium';\n this._fillMode = 'solid';\n validatePackage(packageMetadata);\n this.direction = localization.rtl ? 'rtl' : 'ltr';\n this.data = [];\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$1(dataItem, this.valueField) : \"\");\n }\n get noDataLabel() {\n if (this.data.length === 0) {\n return this.messageFor('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 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$1(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._value = newValue;\n this.setState();\n this.cdr.markForCheck();\n }\n get value() {\n return this._value;\n }\n /**\n * Specifies the type of the selected value.\n * If set to `true`, the selected value has to be of the primitive type\n * ([more information and example]({% slug valuebinding_combobox %}#toc-primitive-values-from-object-fields)).\n */\n set valuePrimitive(isPrimitive) {\n this._valuePrimitive = isPrimitive;\n }\n get valuePrimitive() {\n if (!isPresent(this._valuePrimitive)) {\n return !isPresent(this.valueField);\n }\n return this._valuePrimitive;\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 itemHeight: this.defaultVirtualItemHeight,\n pageSize: this.defaultVirtualPageSize\n });\n }\n get virtual() {\n return this._virtualSettings;\n }\n /**\n * Sets the size of the component.\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `null`\n *\n */\n set size(size) {\n this.renderer.removeClass(this.wrapper.nativeElement, getSizeClass('input', this.size));\n if (size) {\n this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', size));\n }\n this._size = size;\n }\n get size() {\n return this._size;\n }\n /**\n * Sets the border radius of the component.\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `'full'`\n * * `null`\n *\n */\n set rounded(rounded) {\n this.renderer.removeClass(this.wrapper.nativeElement, getRoundedClass(this.rounded));\n if (rounded) {\n this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(rounded));\n }\n this._rounded = rounded;\n }\n get rounded() {\n return this._rounded;\n }\n /**\n * Sets the fillMode of the component.\n *\n * The possible values are:\n * * `'flat'`\n * * `'solid'` (default)\n * * `'outline'`\n * * `null`\n *\n */\n set fillMode(fillMode) {\n this.renderer.removeClass(this.wrapper.nativeElement, getFillModeClass('input', this.fillMode));\n if (fillMode) {\n this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', fillMode));\n }\n this._fillMode = fillMode;\n }\n get fillMode() {\n return this._fillMode;\n }\n get isDisabled() {\n return this.disabled;\n }\n get isLoading() {\n return this.loading;\n }\n get dir() {\n return this.direction;\n }\n get isFocused() {\n return this._isFocused;\n }\n set isFocused(value) {\n this.renderer[value ? 'addClass' : 'removeClass'](this.wrapper.nativeElement, \"k-focus\");\n this._isFocused = value;\n }\n get clearButtonVisiblity() {\n if (this.touchEnabled) {\n return 'visible';\n }\n }\n get popupWidth() {\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 popupHeight() {\n const popupHeight = this.popupSettings.height;\n return isPresent(popupHeight) ? `${popupHeight}px` : 'auto';\n }\n ngOnInit() {\n this.renderer.removeAttribute(this.wrapper.nativeElement, 'tabindex');\n this.attachStreams();\n this.createValueStream();\n this.subscribeTouchEvents();\n this.attachSelectClickHandler();\n this.setComponentClasses();\n }\n createValueStream() {\n const valueStream = this.valueSubject.pipe(filter((candidate) => {\n const current = getter$1(this.value, this.valueField);\n const newValue = getter$1(candidate, this.valueField);\n let newText = getter$1(candidate, this.textField);\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 newValue = getter$1(candidate, this.valueField);\n const newText = getter$1(candidate, this.textField);\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 hasChange = this.text !== getter$1(this.value, this.valueField);\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 const selectionChanged = getter$1(this.dataItem, this.valueField) !== undefined;\n this.dataItem = undefined;\n this.value = undefined;\n this.text = undefined;\n this.loading = false;\n this.disabled = false;\n if (selectionChanged) {\n this.selectionChange.emit(undefined);\n }\n this.emitValueChange();\n this.createValueStream();\n return of(null);\n }))\n .subscribe((state) => {\n const selectionChanged = getter$1(this.dataItem, this.valueField) !== getter$1(state.dataItem, this.valueField);\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 if (selectionChanged) {\n const selectionArgs = state.custom ? undefined : this.dataItem;\n this.selectionChange.emit(selectionArgs);\n }\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.cdr.detectChanges();\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 const selectionChanged = getter$1(dataItem, this.valueField) !== getter$1(this.dataItem, this.valueField);\n this.updateState({ dataItem });\n if (selectionChanged) {\n this.selectionChange.emit(dataItem);\n }\n }));\n }\n ngOnDestroy() {\n this.destroyPopup();\n this.subs.unsubscribe();\n if (isPresent(this.valueSubscription)) {\n this.valueSubscription.unsubscribe();\n }\n if (this.touchstartDisposeHandler) {\n this.touchstartDisposeHandler();\n }\n if (this.selectClickDisposeHandler) {\n this.selectClickDisposeHandler();\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 if (isChanged('valueNormalizer', changes)) {\n this.createValueStream();\n }\n if (anyChanged(['textField', 'valueField', 'valuePrimitive'], changes, false)) {\n this.setState();\n }\n }\n ngAfterContentChecked() {\n this.verifySettings();\n }\n /**\n * Focuses a specific item of the ComboBox based on a provided index.\n * If null or invalid index is provided the focus will be removed.\n */\n focusItemAt(index) {\n const isInRange = index >= 0 && index < this.data.length;\n if (isPresent(index) && isInRange && !this.disabledItemsService.isIndexDisabled(index)) {\n this.selectionService.focus(index);\n }\n else {\n this.selectionService.focus(-1);\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 const shouldOpen = isPresent(open) ? open : !this._open;\n this._toggle(shouldOpen);\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 }\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 messageFor(key) {\n return this.localization.get(key);\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.value = value === null ? undefined : 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 * @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 selectButtonClasses() {\n return `${this.size ? getSizeClass('button', this.size) : ''} ${this.fillMode ? 'k-button-' + this.fillMode : ''} ${this.fillMode ? 'k-button-' + this.fillMode + '-base' : ''}\n `;\n }\n /**\n * @hidden\n */\n onResize() {\n if (this.isOpen) {\n const popupWrapper = this.popupRef.popupElement;\n const { min, max } = this.popupWidth;\n popupWrapper.style.minWidth = min;\n popupWrapper.style.width = max;\n }\n }\n verifySettings() {\n if (!isDevMode()) {\n return;\n }\n if (this.valuePrimitive === true && isPresent(this.value) && typeof this.value === \"object\") {\n throw new Error(ComboBoxMessages.primitive);\n }\n if (this.valuePrimitive === false && isPresent(this.value) && typeof this.value !== \"object\") {\n throw new Error(ComboBoxMessages.object);\n }\n const valueOrText = !isPresent(this.valueField) !== !isPresent(this.textField);\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 resolved = this.findDataItem({ valueField, value });\n if (isPresent(resolved.index) && resolved.index !== -1) {\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 = getter$1(dataItem, this.textField);\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 = getter$1(item.value, this.textField);\n itemText = !isPresent(itemText) ? \"\" : itemText.toString().toLowerCase();\n return itemText.startsWith(text.toLowerCase());\n };\n }\n else {\n return (item) => {\n let itemText = getter$1(item, this.textField);\n itemText = !isPresent(itemText) ? \"\" : itemText.toString().toLowerCase();\n return itemText.startsWith(text.toLowerCase());\n };\n }\n }\n findDataItem({ valueField, value }) {\n const result = {\n dataItem: null,\n index: -1\n };\n const comparer = (element) => {\n const dataItem = this.dataService.grouped ? element.value : element;\n return getter$1(dataItem, valueField) === getter$1(value, valueField);\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$1(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 = getter$1(this.dataService.itemAt(index), this.textField);\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.ArrowDown) {\n offset = -1;\n }\n else if (event.keyCode === Keys.ArrowUp) {\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$1(this._previousDataItem, this.textField) || \"\";\n const focusedItemText = getter$1(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 this.searchbar.input.nativeElement.scrollLeft = 0; // Firefox doesn't auto-scroll to the left on blur like other browsers\n this.isFocused = false;\n const unresolvedSelection = getter$1(this.dataItem, this.valueField) !== getter$1(this.value, this.valueField);\n const currentText = this.searchbar.value;\n const textHasChanged = currentText !== (getter$1(this.dataItem, this.textField) || '');\n const valueHasChanged = unresolvedSelection || textHasChanged;\n const runInZone = valueHasChanged || hasObservers(this.onBlur) || hasObservers(this.close) || isUntouched(this.wrapper.nativeElement);\n if (runInZone) {\n this.zone.run(() => {\n if (valueHasChanged) {\n const lowerCaseMatch = isPresent(this.focusedItemText) && this.focusedItemText.toLowerCase() === currentText.toLowerCase();\n if (lowerCaseMatch || unresolvedSelection) {\n this.selectionService.change(this.selectionService.focused);\n }\n else {\n this.change(currentText, true);\n }\n }\n this.onBlur.emit();\n this.onTouchedCallback();\n this.togglePopup(false);\n });\n }\n else {\n this.togglePopup(false);\n }\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 if (hasObservers(this.onFocus)) {\n this.zone.run(() => this.onFocus.emit());\n }\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 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 return ['k-list-container', 'k-reset'].concat(this.popupSettings.popupClass || []);\n }\n /**\n * @hidden\n */\n preventEventDefault(event) {\n event.preventDefault();\n }\n get focusedItemText() {\n const focused = this.selectionService.focused;\n if (!isPresent(focused) || focused === -1) {\n return null;\n }\n const itemText = getter$1(this.dataService.itemAt(focused), this.textField);\n return !isPresent(itemText) ? \"\" : itemText.toString();\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 = getter$1(focusedDataItem, this.textField);\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.popupWidth;\n popupWrapper.addEventListener('mousedown', this.popupMouseDownHandler);\n popupWrapper.style.minWidth = min;\n popupWrapper.style.width = max;\n popupWrapper.style.height = this.popupHeight;\n popupWrapper.setAttribute(\"dir\", this.direction);\n this.popupRef.popupOpen.subscribe(() => {\n this.cdr.detectChanges();\n this.optionsList.scrollToItem(this.selectionService.focused);\n this.opened.emit();\n });\n this.popupRef.popupClose.subscribe(() => {\n this.closed.emit();\n });\n this.popupRef.popupAnchorViewportLeave.subscribe(() => this.togglePopup(false));\n }\n _toggle(open) {\n 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 subscribeTouchEvents() {\n if (!isDocumentAvailable() || !this.touchEnabled) {\n return;\n }\n this.zone.runOutsideAngular(() => \n // Roll up ComboBox on iOS when tapped outside\n this.touchstartDisposeHandler = this.renderer.listen(document, 'touchstart', (e) => {\n const target = e.target;\n const isInDropDown = inDropDown(this.wrapper, target, this.popupRef);\n if (this.isFocused && !isInDropDown) {\n // Close popup and mobile keyboard if searchbar is focused\n this.zone.run(() => this.blur());\n }\n else if (this.isOpen && !isInDropDown) {\n // Close popup if the popup is opened via the select click\n this.zone.run(() => this.togglePopup(false));\n }\n }));\n }\n attachSelectClickHandler() {\n const selectElement = this.select.nativeElement;\n const event = pointers ? 'pointerdown' : 'click';\n this.selectClickDisposeHandler = this.renderer.listen(selectElement, event, this.selectClick.bind(this));\n }\n setComponentClasses() {\n if (this.size) {\n this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', this.size));\n }\n if (this.rounded) {\n this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(this.rounded));\n }\n if (this.fillMode) {\n this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', this.fillMode));\n }\n }\n};\nComboBoxComponent.ɵfac = function ComboBoxComponent_Factory(t) { return new (t || ComboBoxComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc4.PopupService), ɵngcc0.ɵɵdirectiveInject(SelectionService), ɵngcc0.ɵɵdirectiveInject(NavigationService), ɵngcc0.ɵɵdirectiveInject(DisabledItemsService), ɵngcc0.ɵɵdirectiveInject(DataService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(TOUCH_ENABLED, 8)); };\nComboBoxComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ComboBoxComponent, selectors: [[\"kendo-combobox\"]], contentQueries: function ComboBoxComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, ItemTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, HeaderTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, FooterTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NoDataTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, GroupTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, FixedGroupTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.template = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.headerTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.footerTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.noDataTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.groupTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.fixedGroupTemplate = _t.first);\n } }, viewQuery: function ComboBoxComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c8, 7, ViewContainerRef);\n ɵngcc0.ɵɵviewQuery(_c9, 7);\n ɵngcc0.ɵɵviewQuery(SearchBarComponent, 7);\n ɵngcc0.ɵɵviewQuery(_c10, 5);\n ɵngcc0.ɵɵviewQuery(_c16, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.container = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.popupTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.searchbar = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.optionsList = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.select = _t.first);\n } }, hostVars: 9, hostBindings: function ComboBoxComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"dir\", ctx.dir);\n ɵngcc0.ɵɵclassProp(\"k-combobox\", ctx.widgetClasses)(\"k-input\", ctx.widgetClasses)(\"k-disabled\", ctx.isDisabled)(\"k-loading\", ctx.isLoading);\n } }, inputs: { focusableId: \"focusableId\", allowCustom: \"allowCustom\", valueNormalizer: \"valueNormalizer\", placeholder: \"placeholder\", listHeight: \"listHeight\", suggest: \"suggest\", clearButton: \"clearButton\", disabled: \"disabled\", readonly: \"readonly\", tabindex: \"tabindex\", filterable: \"filterable\", data: \"data\", value: \"value\", valuePrimitive: \"valuePrimitive\", popupSettings: \"popupSettings\", itemDisabled: \"itemDisabled\", tabIndex: \"tabIndex\", virtual: \"virtual\", size: \"size\", rounded: \"rounded\", fillMode: \"fillMode\", loading: \"loading\", textField: \"textField\", valueField: \"valueField\", iconClass: \"iconClass\" }, outputs: { valueChange: \"valueChange\", selectionChange: \"selectionChange\", filterChange: \"filterChange\", open: \"open\", opened: \"opened\", close: \"close\", closed: \"closed\", onFocus: \"focus\", onBlur: \"blur\" }, exportAs: [\"kendoComboBox\"], features: [ɵngcc0.ɵɵProvidersFeature([\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: FilterableComponent, useExisting: forwardRef(() => ComboBoxComponent_1)\n },\n {\n provide: KendoInput, useExisting: forwardRef(() => ComboBoxComponent_1)\n }\n ]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 12, vars: 20, consts: function () { let i18n_17; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text displayed in the popup when there are no items\n * @meaning kendo.combobox.noDataText\n */\n const MSG_EXTERNAL_7708502966028483300$$DIST_FESM2015_INDEX_JS_18 = goog.getMsg(\"NO DATA FOUND\");\n i18n_17 = MSG_EXTERNAL_7708502966028483300$$DIST_FESM2015_INDEX_JS_18;\n }\n else {\n i18n_17 = $localize `:kendo.combobox.noDataText|The text displayed in the popup when there are no items␟2b6e00c74a6d9c98c03a6274d0224e9bd457ff89␟7708502966028483300:NO DATA FOUND`;\n } let i18n_19; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the clear button\n * @meaning kendo.combobox.clearTitle\n */\n const MSG_EXTERNAL_2025597431468961462$$DIST_FESM2015_INDEX_JS_20 = goog.getMsg(\"clear\");\n i18n_19 = MSG_EXTERNAL_2025597431468961462$$DIST_FESM2015_INDEX_JS_20;\n }\n else {\n i18n_19 = $localize `:kendo.combobox.clearTitle|The title of the clear button␟069e8fae80677e3e785861123bef446b3ff41ab4␟2025597431468961462:clear`;\n } let i18n_21; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text set as aria-label on the select button\n * @meaning kendo.combobox.selectButtonText\n */\n const MSG_EXTERNAL_2552188253943233918$$DIST_FESM2015_INDEX_JS_22 = goog.getMsg(\"Select\");\n i18n_21 = MSG_EXTERNAL_2552188253943233918$$DIST_FESM2015_INDEX_JS_22;\n }\n else {\n i18n_21 = $localize `:kendo.combobox.selectButtonText|The text set as aria-label on the select button␟8cc898221b1419e23c0888a06dd1e174b78d32a4␟2552188253943233918:Select`;\n } return [[\"kendoComboBoxLocalizedMessages\", \"\", \"noDataText\", i18n_17, \"clearTitle\", i18n_19, \"selectButtonText\", i18n_21], [3, \"role\", \"id\", \"listId\", \"activeDescendant\", \"noDataLabel\", \"userInput\", \"suggestedText\", \"disabled\", \"readonly\", \"tabIndex\", \"popupOpen\", \"placeholder\", \"onNavigate\", \"valueChange\", \"onBlur\", \"onFocus\"], [\"searchbar\", \"\"], [\"class\", \"k-clear-value\", \"aria-hidden\", \"true\", 3, \"visibility\", \"kendoEventsOutsideAngular\", \"click\", 4, \"ngIf\"], [\"unselectable\", \"on\", \"type\", \"button\", 1, \"k-input-button\", \"k-button\", \"k-icon-button\", 3, \"ngClass\", \"kendoEventsOutsideAngular\"], [\"select\", \"\"], [1, \"k-button-icon\", \"k-icon\", 3, \"ngClass\"], [\"popupTemplate\", \"\"], [3, \"ngIf\"], [\"container\", \"\"], [\"aria-hidden\", \"true\", 1, \"k-clear-value\", 3, \"kendoEventsOutsideAngular\", \"click\"], [1, \"k-icon\", \"k-i-x\"], [4, \"ngIf\"], [3, \"size\", \"rounded\", \"id\", \"optionPrefix\", \"data\", \"textField\", \"valueField\", \"template\", \"groupTemplate\", \"fixedGroupTemplate\", \"height\", \"show\", \"virtual\", \"pageChange\"], [\"optionsList\", \"\"], [\"class\", \"k-no-data\", 4, \"ngIf\"], [3, \"templateContext\"], [1, \"k-no-data\"], [3, \"ngIf\", \"templateContext\"], [3, \"resize\"]]; }, template: function ComboBoxComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 0);\n ɵngcc0.ɵɵelementStart(1, \"kendo-searchbar\", 1, 2);\n ɵngcc0.ɵɵlistener(\"onNavigate\", function ComboBoxComponent_Template_kendo_searchbar_onNavigate_1_listener($event) { return ctx.handleNavigate($event); })(\"valueChange\", function ComboBoxComponent_Template_kendo_searchbar_valueChange_1_listener($event) { return ctx.searchBarChange($event); })(\"onBlur\", function ComboBoxComponent_Template_kendo_searchbar_onBlur_1_listener() { return ctx.handleBlur(); })(\"onFocus\", function ComboBoxComponent_Template_kendo_searchbar_onFocus_1_listener() { return ctx.handleFocus(); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, ComboBoxComponent_span_3_Template, 2, 6, \"span\", 3);\n ɵngcc0.ɵɵelementStart(4, \"button\", 4, 5);\n ɵngcc0.ɵɵelement(6, \"span\", 6);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(7, ComboBoxComponent_ng_template_7_Template, 5, 16, \"ng-template\", null, 7, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(9, ComboBoxComponent_ng_template_9_Template, 1, 0, \"ng-template\", 8);\n ɵngcc0.ɵɵelementContainer(10, null, 9);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"role\", \"combobox\")(\"id\", ctx.focusableId)(\"listId\", ctx.listBoxId)(\"activeDescendant\", ctx.activeDescendant)(\"noDataLabel\", ctx.noDataLabel)(\"userInput\", ctx.text)(\"suggestedText\", ctx.getSuggestion())(\"disabled\", ctx.disabled)(\"readonly\", ctx.readonly)(\"tabIndex\", ctx.tabIndex)(\"popupOpen\", ctx.isOpen)(\"placeholder\", ctx.placeholder);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.clearButton && !ctx.loading && !ctx.disabled && !ctx.readonly && (ctx.text == null ? null : ctx.text.length));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx.selectButtonClasses)(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction1(18, _c23, ctx.preventEventDefault));\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx.messageFor(\"selectButtonText\"));\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx.buttonClasses);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.isOpen);\n } }, directives: function () { return [LocalizedMessagesDirective, SearchBarComponent, ɵngcc3.NgIf, ɵngcc2.EventsOutsideAngularDirective, ɵngcc3.NgClass, TemplateContextDirective, ListComponent, ɵngcc2.ResizeSensorComponent]; }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ComboBoxComponent.prototype, \"focusableId\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ComboBoxComponent.prototype, \"allowCustom\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], ComboBoxComponent.prototype, \"data\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], ComboBoxComponent.prototype, \"value\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ComboBoxComponent.prototype, \"textField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ComboBoxComponent.prototype, \"valueField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], ComboBoxComponent.prototype, \"valuePrimitive\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], ComboBoxComponent.prototype, \"valueNormalizer\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ComboBoxComponent.prototype, \"placeholder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], ComboBoxComponent.prototype, \"popupSettings\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ComboBoxComponent.prototype, \"listHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ComboBoxComponent.prototype, \"iconClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ComboBoxComponent.prototype, \"loading\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ComboBoxComponent.prototype, \"suggest\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ComboBoxComponent.prototype, \"clearButton\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ComboBoxComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Function])\n], ComboBoxComponent.prototype, \"itemDisabled\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ComboBoxComponent.prototype, \"readonly\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ComboBoxComponent.prototype, \"tabindex\", void 0);\n__decorate([\n Input(\"tabIndex\"),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], ComboBoxComponent.prototype, \"tabIndex\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ComboBoxComponent.prototype, \"filterable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], ComboBoxComponent.prototype, \"virtual\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ComboBoxComponent.prototype, \"size\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ComboBoxComponent.prototype, \"rounded\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ComboBoxComponent.prototype, \"fillMode\", null);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ComboBoxComponent.prototype, \"valueChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ComboBoxComponent.prototype, \"selectionChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ComboBoxComponent.prototype, \"filterChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ComboBoxComponent.prototype, \"open\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ComboBoxComponent.prototype, \"opened\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ComboBoxComponent.prototype, \"close\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ComboBoxComponent.prototype, \"closed\", void 0);\n__decorate([\n Output('focus'),\n __metadata(\"design:type\", EventEmitter)\n], ComboBoxComponent.prototype, \"onFocus\", void 0);\n__decorate([\n Output('blur'),\n __metadata(\"design:type\", EventEmitter)\n], ComboBoxComponent.prototype, \"onBlur\", void 0);\n__decorate([\n ContentChild(ItemTemplateDirective, { static: false }),\n __metadata(\"design:type\", ItemTemplateDirective)\n], ComboBoxComponent.prototype, \"template\", void 0);\n__decorate([\n ContentChild(HeaderTemplateDirective, { static: false }),\n __metadata(\"design:type\", HeaderTemplateDirective)\n], ComboBoxComponent.prototype, \"headerTemplate\", void 0);\n__decorate([\n ContentChild(FooterTemplateDirective, { static: false }),\n __metadata(\"design:type\", FooterTemplateDirective)\n], ComboBoxComponent.prototype, \"footerTemplate\", void 0);\n__decorate([\n ContentChild(NoDataTemplateDirective, { static: false }),\n __metadata(\"design:type\", NoDataTemplateDirective)\n], ComboBoxComponent.prototype, \"noDataTemplate\", void 0);\n__decorate([\n ContentChild(GroupTemplateDirective, { static: false }),\n __metadata(\"design:type\", GroupTemplateDirective)\n], ComboBoxComponent.prototype, \"groupTemplate\", void 0);\n__decorate([\n ContentChild(FixedGroupTemplateDirective, { static: false }),\n __metadata(\"design:type\", FixedGroupTemplateDirective)\n], ComboBoxComponent.prototype, \"fixedGroupTemplate\", void 0);\n__decorate([\n ViewChild('container', { read: ViewContainerRef, static: true }),\n __metadata(\"design:type\", ViewContainerRef)\n], ComboBoxComponent.prototype, \"container\", void 0);\n__decorate([\n ViewChild('popupTemplate', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], ComboBoxComponent.prototype, \"popupTemplate\", void 0);\n__decorate([\n ViewChild(SearchBarComponent, { static: true }),\n __metadata(\"design:type\", SearchBarComponent)\n], ComboBoxComponent.prototype, \"searchbar\", void 0);\n__decorate([\n ViewChild('optionsList', { static: false }),\n __metadata(\"design:type\", ListComponent)\n], ComboBoxComponent.prototype, \"optionsList\", void 0);\n__decorate([\n ViewChild('select', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], ComboBoxComponent.prototype, \"select\", void 0);\n__decorate([\n HostBinding('class.k-combobox'),\n HostBinding('class.k-input'),\n __metadata(\"design:type\", Boolean)\n], ComboBoxComponent.prototype, \"widgetClasses\", void 0);\n__decorate([\n HostBinding('class.k-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ComboBoxComponent.prototype, \"isDisabled\", null);\n__decorate([\n HostBinding('class.k-loading'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ComboBoxComponent.prototype, \"isLoading\", null);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], ComboBoxComponent.prototype, \"dir\", null);\nComboBoxComponent = ComboBoxComponent_1 = __decorate([ __param(10, Optional()), __param(10, Inject(TOUCH_ENABLED)),\n __metadata(\"design:paramtypes\", [ElementRef,\n LocalizationService,\n PopupService,\n SelectionService,\n NavigationService,\n DisabledItemsService,\n DataService,\n NgZone,\n ChangeDetectorRef,\n Renderer2, Boolean])\n], ComboBoxComponent);\n\n/**\n * Renders the selected value of the dropdown. To define the header template, nest an `` tag\n * with the `kendoValueTemplate` directive inside the component tag.\n *\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 and DropDownTree components.\n *\n * - [Using `ValueTemplate` with the DropDownList]({% slug templates_ddl %}#toc-value-template)\n * - [Using `ValueTemplate` with the DropDownTree]({% slug templates_ddt %}#toc-value-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 */\nlet ValueTemplateDirective = class ValueTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nValueTemplateDirective.ɵfac = function ValueTemplateDirective_Factory(t) { return new (t || ValueTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nValueTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ValueTemplateDirective, selectors: [[\"\", \"kendoDropDownListValueTemplate\", \"\"], [\"\", \"kendoDropDownTreeValueTemplate\", \"\"]] });\nValueTemplateDirective = __decorate([ __metadata(\"design:paramtypes\", [TemplateRef])\n], ValueTemplateDirective);\n\n/* tslint:disable:member-ordering */\nvar DropDownListComponent_1;\n/**\n * @hidden\n */\nconst DROPDOWNLIST_VALUE_ACCESSOR = {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\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 */\nlet DropDownListComponent = DropDownListComponent_1 = class DropDownListComponent {\n constructor(wrapper, localization, popupService, selectionService, navigationService, disabledItemsService, dataService, _zone, renderer, cdr, touchEnabled$$1) {\n this.wrapper = wrapper;\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.cdr = cdr;\n this.touchEnabled = touchEnabled$$1;\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 after the popup has been opened.\n */\n this.opened = 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 after the popup has been closed.\n */\n this.closed = new EventEmitter();\n /**\n * Fires each time the user focuses the DropDownList.\n */\n this.onFocus = new EventEmitter();\n /**\n * Fires each time the DropDownList gets blurred.\n */\n this.onBlur = new EventEmitter();\n this.hostClasses = true;\n /**\n * @hidden\n */\n this.focusableId = `k-${guid$1()}`;\n this.role = 'listbox';\n this.groupIndices = [];\n this.listBoxId = guid$1();\n this.optionPrefix = guid$1();\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.hostElementFocused = new EventEmitter();\n this.hostElementBlurred = new EventEmitter();\n this.selectionSubscription = new Subscription();\n this._open = false;\n this._popupSettings = { animate: true };\n this._size = 'medium';\n this._rounded = 'medium';\n this._fillMode = 'solid';\n validatePackage(packageMetadata);\n this.direction = localization.rtl ? 'rtl' : 'ltr';\n this.data = [];\n this.subscribeEvents();\n this.subscribeTouchEvents();\n this.subscribeFocusEvents();\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) || !this.isOpen) {\n return;\n }\n return this.optionPrefix + \"-\" + getter$1(this.dataItem, this.valueField);\n }\n get noDataLabel() {\n if (this.dataService.itemsCount === 0) {\n return this.messageFor('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 if (!isPresent(newValue)) {\n this._previousDataItem = undefined;\n }\n this._value = newValue;\n this.setState();\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 * Specifies the type of the selected value\n * ([more information and example]({% slug valuebinding_ddl %}#toc-primitive-values-from-object-fields)).\n * If set to `true`, the selected value has to be of a primitive value.\n */\n set valuePrimitive(isPrimitive) {\n this._valuePrimitive = isPrimitive;\n }\n get valuePrimitive() {\n if (!isPresent(this._valuePrimitive)) {\n return !isPresent(this.valueField);\n }\n return this._valuePrimitive;\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 size of the component.\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `null`\n *\n */\n set size(size) {\n this.renderer.removeClass(this.wrapper.nativeElement, getSizeClass('picker', this.size));\n if (size) {\n this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('picker', size));\n }\n this._size = size;\n }\n get size() {\n return this._size;\n }\n /**\n * Sets the border radius of the component.\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `'full'`\n * * `null`\n *\n */\n set rounded(rounded) {\n this.renderer.removeClass(this.wrapper.nativeElement, getRoundedClass(this.rounded));\n if (rounded) {\n this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(rounded));\n }\n this._rounded = rounded;\n }\n get rounded() {\n return this._rounded;\n }\n /**\n * Sets the fillMode of the component.\n *\n * The possible values are:\n * * `'flat'`\n * * `'solid'` (default)\n * * `'outline'`\n * * `null`\n *\n */\n set fillMode(fillMode) {\n this.renderer.removeClass(this.wrapper.nativeElement, getFillModeClass('picker', this.fillMode));\n if (fillMode) {\n this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('picker', fillMode));\n }\n this._fillMode = fillMode;\n }\n get fillMode() {\n return this._fillMode;\n }\n /**\n * @hidden\n */\n blurComponent(event) {\n if (event.target !== this.wrapper.nativeElement) {\n return;\n }\n event.stopImmediatePropagation();\n this.hostElementBlurred.emit();\n }\n /**\n * @hidden\n */\n blurFilterInput() {\n this.filterBlurred.emit();\n }\n /**\n * @hidden\n */\n focusComponent(event) {\n if (event.target !== this.wrapper.nativeElement) {\n return;\n }\n event.stopImmediatePropagation();\n this.hostElementFocused.emit();\n if (!this.isFocused) {\n this.isFocused = true;\n if (hasObservers(this.onFocus)) {\n this._zone.run(() => {\n this.onFocus.emit();\n });\n }\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 get isDisabled() {\n return this.disabled;\n }\n get isLoading() {\n return this.loading;\n }\n get dir() {\n return this.direction;\n }\n get hostTabIndex() {\n return this.widgetTabIndex;\n }\n get isReadonly() {\n return this.readonly;\n }\n get isAriaExpanded() {\n return this.ariaExpanded;\n }\n get hostAriaOwns() {\n return this.ariaOwns;\n }\n get hostAriaActivedescendant() {\n return this.ariaActivedescendant;\n }\n get hostNoDataLabel() {\n return this.noDataLabel;\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.ArrowDown || event.keyCode === Keys.ArrowRight) {\n offset = -1;\n }\n else if (event.keyCode === Keys.ArrowUp || event.keyCode === Keys.ArrowLeft) {\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(event) {\n event.preventDefault();\n this.focus();\n this.togglePopup(!this.isOpen);\n }\n set isFocused(isFocused) {\n this.renderer[isFocused ? 'addClass' : 'removeClass'](this.wrapper.nativeElement, 'k-focus');\n this._isFocused = isFocused;\n }\n get isFocused() {\n return this._isFocused;\n }\n ngOnInit() {\n this.renderer.removeAttribute(this.wrapper.nativeElement, \"tabindex\");\n this.localizationChangesSubscription = this.localization\n .changes.subscribe(({ rtl }) => {\n this.direction = rtl ? 'rtl' : 'ltr';\n this.cdr.detectChanges();\n });\n this.assignAriaDescribedBy();\n this.setComponentClasses();\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 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 (isChanged('defaultItem', changes, false)) {\n this.disabledItemsService.defaultItem = this.defaultItem;\n }\n if (anyChanged(['textField', 'valueField', 'valuePrimitive', 'defaultItem', 'itemDisabled'], changes, false)) {\n this.setState();\n }\n }\n /**\n * @hidden\n */\n ngAfterContentChecked() {\n this.verifySettings();\n }\n /**\n * Focuses a specific item of the DropDownList based on a provided index.\n * If there is a default item it is positioned at index -1.\n * If null or invalid index is provided the focus will be removed.\n */\n focusItemAt(index) {\n const minIndex = isPresent(this.defaultItem) ? -1 : 0;\n const isInRange = minIndex <= index && index < this.data.length;\n if (isPresent(index) && isInRange && !this.disabledItemsService.isIndexDisabled(index)) {\n this.selectionService.focus(index);\n }\n else {\n this.selectionService.focus(null);\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 const shouldOpen = isPresent(open) ? open : !this._open;\n this._toggle(shouldOpen);\n });\n }\n _toggle(open) {\n 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.value = undefined;\n }\n /**\n * @hidden\n */\n messageFor(key) {\n return this.localization.get(key);\n }\n /**\n * @hidden\n */\n writeValue(value) {\n this.value = value === null ? undefined : 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 * @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 selectButtonClasses() {\n return `${this.size ? getSizeClass('button', this.size) : ''} ${this.fillMode ? 'k-button-' + this.fillMode : ''} ${this.fillMode ? 'k-button-' + this.fillMode + '-base' : ''}`;\n }\n /**\n * @hidden\n */\n get filterInputClasses() {\n return `${this.size ? getSizeClass('input', this.size) : ''} ${this.fillMode ? 'k-input-' + this.fillMode : ''} ${this.rounded ? getRoundedClass(this.rounded) : ''}`;\n }\n /**\n * @hidden\n */\n get optionLabelSizeClass() {\n return `${this.size ? getSizeClass('list', this.size) : ''}`;\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$1(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 this.opened.emit();\n });\n this.popupRef.popupClose.subscribe(() => {\n this.closed.emit();\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 = getter$1(dataItem, this.textField);\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 !== getter$1(this.value, this.valueField);\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.hostElementFocused))))\n .subscribe(() => {\n this.hostElementBlurred.emit();\n });\n this._zone.runOutsideAngular(() => {\n this.componentBlurredSubscription =\n merge(this.hostElementBlurred.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.componentBlur());\n });\n }\n subscribeTouchEvents() {\n if (!isDocumentAvailable() || !this.touchEnabled) {\n return;\n }\n this._zone.runOutsideAngular(() => \n // Roll up DropDownList on iOS when tapped outside\n this.touchstartDisposeHandler = this.renderer.listen(document, 'touchstart', (e) => {\n const target = e.target;\n if (this.isFocused && !inDropDown(this.wrapper, target, this.popupRef)) {\n this._zone.run(() => {\n if (this.filterFocused) {\n // Close popup if filter is focused\n this.togglePopup(false);\n }\n this.blur();\n });\n }\n }));\n }\n subscribeFocusEvents() {\n if (isDocumentAvailable()) {\n this.focusComponent = this.focusComponent.bind(this);\n this.blurComponent = this.blurComponent.bind(this);\n this._zone.runOutsideAngular(() => {\n const useCapture = true;\n document.addEventListener('focus', this.focusComponent, useCapture);\n document.addEventListener('blur', this.blurComponent, useCapture);\n });\n }\n }\n unSubscribeFocusEvents() {\n if (isDocumentAvailable()) {\n const useCapture = true;\n document.removeEventListener('focus', this.focusComponent, useCapture);\n document.removeEventListener('blur', this.blurComponent, useCapture);\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 this.unSubscribeFocusEvents();\n if (this.touchstartDisposeHandler) {\n this.touchstartDisposeHandler();\n }\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 = getter$1(dataItem, this.valueField);\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() {\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(this.value) && typeof this.value === \"object\") {\n throw new Error(DropDownListMessages.primitive);\n }\n if (this.valuePrimitive === false && isPresent(this.value) && typeof this.value !== \"object\") {\n throw new Error(DropDownListMessages.object);\n }\n const valueOrText = !isPresent(this.valueField) !== !isPresent(this.textField);\n if (valueOrText) {\n throw new Error(DropDownListMessages.textAndValue);\n }\n }\n componentBlur() {\n this.isFocused = false;\n const selectionPresent = isPresent(this.selectionService.selected[0]);\n const valueHasChanged = selectionPresent && getter$1(this.value, this.valueField) !== getter$1(this.dataService.itemAt(this.selectionService.selected[0]), this.valueField);\n if (valueHasChanged ||\n hasObservers(this.close) ||\n hasObservers(this.onBlur) ||\n hasObservers(this.filterChange) ||\n isUntouched(this.wrapper.nativeElement)) {\n this._zone.run(() => {\n if (valueHasChanged) {\n this.selectionService.change(this.selectionService.selected[0]);\n }\n this.togglePopup(false);\n this.clearFilter();\n this.onBlur.emit();\n this.onTouchedCallback();\n });\n }\n else {\n this.togglePopup(false);\n }\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$1(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 findDataItem({ valueField, value }) {\n const result = {\n dataItem: null,\n index: -1\n };\n const prop = dataItem => getter$1(dataItem, valueField);\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 = getter$1(this.defaultItem, valueField);\n const currentValue = getter$1(value, valueField);\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({ 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 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$1();\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 setComponentClasses() {\n if (this.size) {\n this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('picker', this.size));\n }\n if (this.rounded) {\n this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(this.rounded));\n }\n if (this.fillMode) {\n this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('picker', this.fillMode));\n }\n }\n};\nDropDownListComponent.ɵfac = function DropDownListComponent_Factory(t) { return new (t || DropDownListComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc4.PopupService), ɵngcc0.ɵɵdirectiveInject(SelectionService), ɵngcc0.ɵɵdirectiveInject(NavigationService), ɵngcc0.ɵɵdirectiveInject(DisabledItemsService), ɵngcc0.ɵɵdirectiveInject(DataService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(TOUCH_ENABLED, 8)); };\nDropDownListComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DropDownListComponent, selectors: [[\"kendo-dropdownlist\"]], contentQueries: function DropDownListComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, ItemTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, GroupTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, FixedGroupTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, ValueTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, HeaderTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, FooterTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NoDataTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.itemTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.groupTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.fixedGroupTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.valueTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.headerTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.footerTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.noDataTemplate = _t.first);\n } }, viewQuery: function DropDownListComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c8, 7, ViewContainerRef);\n ɵngcc0.ɵɵviewQuery(_c9, 7);\n ɵngcc0.ɵɵviewQuery(_c10, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.container = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.popupTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.optionsList = _t.first);\n } }, hostVars: 20, hostBindings: function DropDownListComponent_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"keydown\", function DropDownListComponent_keydown_HostBindingHandler($event) { return ctx.keydown($event); })(\"keypress\", function DropDownListComponent_keypress_HostBindingHandler($event) { return ctx.keypress($event); })(\"click\", function DropDownListComponent_click_HostBindingHandler($event) { return ctx.click($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"id\", ctx.focusableId)(\"role\", ctx.role)(\"aria-haspopup\", ctx.role)(\"aria-disabled\", ctx.isDisabled)(\"dir\", ctx.dir)(\"tabindex\", ctx.hostTabIndex)(\"readonly\", ctx.isReadonly)(\"aria-readonly\", ctx.isReadonly)(\"aria-expanded\", ctx.isAriaExpanded)(\"aria-owns\", ctx.hostAriaOwns)(\"aria-activedescendant\", ctx.hostAriaActivedescendant)(\"aria-label\", ctx.hostNoDataLabel);\n ɵngcc0.ɵɵclassProp(\"k-dropdownlist\", ctx.hostClasses)(\"k-picker\", ctx.hostClasses)(\"k-disabled\", ctx.isDisabled)(\"k-loading\", ctx.isLoading);\n } }, inputs: { listHeight: \"listHeight\", disabled: \"disabled\", readonly: \"readonly\", filterable: \"filterable\", ignoreCase: \"ignoreCase\", delay: \"delay\", tabindex: \"tabindex\", focusableId: [\"id\", \"focusableId\"], data: \"data\", value: \"value\", popupSettings: \"popupSettings\", itemDisabled: \"itemDisabled\", virtual: \"virtual\", valuePrimitive: \"valuePrimitive\", tabIndex: \"tabIndex\", size: \"size\", rounded: \"rounded\", fillMode: \"fillMode\", iconClass: \"iconClass\", loading: \"loading\", textField: \"textField\", valueField: \"valueField\", defaultItem: \"defaultItem\" }, outputs: { valueChange: \"valueChange\", filterChange: \"filterChange\", selectionChange: \"selectionChange\", open: \"open\", opened: \"opened\", close: \"close\", closed: \"closed\", onFocus: \"focus\", onBlur: \"blur\" }, exportAs: [\"kendoDropDownList\"], features: [ɵngcc0.ɵɵProvidersFeature([\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: FilterableComponent, useExisting: forwardRef(() => DropDownListComponent_1)\n },\n {\n provide: KendoInput, useExisting: forwardRef(() => DropDownListComponent_1)\n }\n ]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 12, vars: 10, consts: function () { let i18n_24; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text displayed in the popup when there are no items\n * @meaning kendo.dropdownlist.noDataText\n */\n const MSG_EXTERNAL_8289552890585138350$$DIST_FESM2015_INDEX_JS_25 = goog.getMsg(\"NO DATA FOUND\");\n i18n_24 = MSG_EXTERNAL_8289552890585138350$$DIST_FESM2015_INDEX_JS_25;\n }\n else {\n i18n_24 = $localize `:kendo.dropdownlist.noDataText|The text displayed in the popup when there are no items␟4fc2f70c9c8cf7b18affd6b938105996d6ac3306␟8289552890585138350:NO DATA FOUND`;\n } let i18n_26; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text set as aria-label on the select button\n * @meaning kendo.dropdownlist.selectButtonText\n */\n const MSG_EXTERNAL_502653685822533375$$DIST_FESM2015_INDEX_JS_27 = goog.getMsg(\"Select\");\n i18n_26 = MSG_EXTERNAL_502653685822533375$$DIST_FESM2015_INDEX_JS_27;\n }\n else {\n i18n_26 = $localize `:kendo.dropdownlist.selectButtonText|The text set as aria-label on the select button␟0c789b01a1fd1ca8a38d0ff85f8fb7df1a906306␟502653685822533375:Select`;\n } return [[\"kendoDropDownListLocalizedMessages\", \"\", \"noDataText\", i18n_24, \"selectButtonText\", i18n_26], [\"unselectable\", \"on\", \"role\", \"option\", 1, \"k-input-inner\", 3, \"id\"], [1, \"k-input-value-text\"], [4, \"ngIf\"], [3, \"ngIf\"], [\"tabindex\", \"-1\", \"unselectable\", \"on\", \"type\", \"button\", 1, \"k-input-button\", \"k-button\", \"k-icon-button\", 3, \"ngClass\", \"kendoEventsOutsideAngular\"], [\"unselectable\", \"on\", 1, \"k-button-icon\", \"k-icon\", 3, \"ngClass\"], [\"popupTemplate\", \"\"], [\"container\", \"\"], [3, \"templateContext\"], [3, \"size\", \"rounded\", \"id\", \"optionPrefix\", \"data\", \"textField\", \"valueField\", \"template\", \"groupTemplate\", \"fixedGroupTemplate\", \"height\", \"show\", \"virtual\", \"pageChange\"], [\"optionsList\", \"\"], [\"class\", \"k-no-data\", 4, \"ngIf\"], [1, \"k-list-filter\", 3, \"click\"], [1, \"k-searchbox\", \"k-input\", 3, \"ngClass\"], [\"unselectable\", \"on\", 1, \"k-input-icon\", \"k-icon\", \"k-i-search\"], [\"tabindex\", \"-1\", 1, \"k-input-inner\", 3, \"filterInput\", \"dir\", \"ngModel\", \"ngModelChange\", \"keydown\", \"input\", \"focus\", \"blur\"], [1, \"k-list\", 3, \"ngClass\"], [\"kendoDropDownsSelectable\", \"\", 1, \"k-list-optionlabel\", 3, \"ngClass\", \"index\"], [1, \"k-no-data\"], [3, \"ngIf\", \"templateContext\"], [3, \"resize\"]]; }, template: function DropDownListComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 0);\n ɵngcc0.ɵɵelementStart(1, \"span\", 1)(2, \"span\", 2);\n ɵngcc0.ɵɵtemplate(3, DropDownListComponent_3_Template, 1, 4, null, 3);\n ɵngcc0.ɵɵtemplate(4, DropDownListComponent_ng_template_4_Template, 1, 1, \"ng-template\", 4);\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵelementStart(5, \"button\", 5);\n ɵngcc0.ɵɵelement(6, \"span\", 6);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(7, DropDownListComponent_ng_template_7_Template, 8, 19, \"ng-template\", null, 7, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(9, DropDownListComponent_ng_template_9_Template, 1, 0, \"ng-template\", 4);\n ɵngcc0.ɵɵelementContainer(10, null, 8);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"id\", ctx.valueLabelId);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.valueTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.valueTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx.selectButtonClasses)(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction1(8, _c23, ctx.onMouseDown));\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx.messageFor(\"selectButtonText\"));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx.buttonClasses);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.isOpen);\n } }, directives: function () { return [LocalizedMessagesDirective, ɵngcc3.NgIf, TemplateContextDirective, ɵngcc3.NgClass, ɵngcc2.EventsOutsideAngularDirective, ɵngcc5.DefaultValueAccessor, FilterInputDirective, ɵngcc5.NgControlStatus, ɵngcc5.NgModel, SelectableDirective, ListComponent, ɵngcc2.ResizeSensorComponent]; }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DropDownListComponent.prototype, \"iconClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DropDownListComponent.prototype, \"loading\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], DropDownListComponent.prototype, \"data\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], DropDownListComponent.prototype, \"value\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DropDownListComponent.prototype, \"textField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DropDownListComponent.prototype, \"valueField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], DropDownListComponent.prototype, \"popupSettings\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], DropDownListComponent.prototype, \"listHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DropDownListComponent.prototype, \"defaultItem\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DropDownListComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Function])\n], DropDownListComponent.prototype, \"itemDisabled\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DropDownListComponent.prototype, \"readonly\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DropDownListComponent.prototype, \"filterable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], DropDownListComponent.prototype, \"virtual\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DropDownListComponent.prototype, \"ignoreCase\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], DropDownListComponent.prototype, \"delay\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], DropDownListComponent.prototype, \"valuePrimitive\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], DropDownListComponent.prototype, \"tabindex\", void 0);\n__decorate([\n Input(\"tabIndex\"),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], DropDownListComponent.prototype, \"tabIndex\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], DropDownListComponent.prototype, \"size\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], DropDownListComponent.prototype, \"rounded\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], DropDownListComponent.prototype, \"fillMode\", null);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DropDownListComponent.prototype, \"valueChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DropDownListComponent.prototype, \"filterChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DropDownListComponent.prototype, \"selectionChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DropDownListComponent.prototype, \"open\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DropDownListComponent.prototype, \"opened\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DropDownListComponent.prototype, \"close\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DropDownListComponent.prototype, \"closed\", void 0);\n__decorate([\n Output('focus'),\n __metadata(\"design:type\", EventEmitter)\n], DropDownListComponent.prototype, \"onFocus\", void 0);\n__decorate([\n Output('blur'),\n __metadata(\"design:type\", EventEmitter)\n], DropDownListComponent.prototype, \"onBlur\", void 0);\n__decorate([\n ContentChild(ItemTemplateDirective, { static: false }),\n __metadata(\"design:type\", ItemTemplateDirective)\n], DropDownListComponent.prototype, \"itemTemplate\", void 0);\n__decorate([\n ContentChild(GroupTemplateDirective, { static: false }),\n __metadata(\"design:type\", GroupTemplateDirective)\n], DropDownListComponent.prototype, \"groupTemplate\", void 0);\n__decorate([\n ContentChild(FixedGroupTemplateDirective, { static: false }),\n __metadata(\"design:type\", FixedGroupTemplateDirective)\n], DropDownListComponent.prototype, \"fixedGroupTemplate\", void 0);\n__decorate([\n ContentChild(ValueTemplateDirective, { static: false }),\n __metadata(\"design:type\", ValueTemplateDirective)\n], DropDownListComponent.prototype, \"valueTemplate\", void 0);\n__decorate([\n ContentChild(HeaderTemplateDirective, { static: false }),\n __metadata(\"design:type\", HeaderTemplateDirective)\n], DropDownListComponent.prototype, \"headerTemplate\", void 0);\n__decorate([\n ContentChild(FooterTemplateDirective, { static: false }),\n __metadata(\"design:type\", FooterTemplateDirective)\n], DropDownListComponent.prototype, \"footerTemplate\", void 0);\n__decorate([\n ContentChild(NoDataTemplateDirective, { static: false }),\n __metadata(\"design:type\", NoDataTemplateDirective)\n], DropDownListComponent.prototype, \"noDataTemplate\", void 0);\n__decorate([\n ViewChild('container', { read: ViewContainerRef, static: true }),\n __metadata(\"design:type\", ViewContainerRef)\n], DropDownListComponent.prototype, \"container\", void 0);\n__decorate([\n ViewChild('popupTemplate', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], DropDownListComponent.prototype, \"popupTemplate\", void 0);\n__decorate([\n ViewChild('optionsList', { static: false }),\n __metadata(\"design:type\", ListComponent)\n], DropDownListComponent.prototype, \"optionsList\", void 0);\n__decorate([\n HostBinding('class.k-dropdownlist'),\n HostBinding('class.k-picker'),\n __metadata(\"design:type\", Boolean)\n], DropDownListComponent.prototype, \"hostClasses\", void 0);\n__decorate([\n HostBinding('class.k-disabled'),\n HostBinding('attr.aria-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DropDownListComponent.prototype, \"isDisabled\", null);\n__decorate([\n HostBinding('class.k-loading'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DropDownListComponent.prototype, \"isLoading\", null);\n__decorate([\n Input('id'),\n HostBinding('attr.id'),\n __metadata(\"design:type\", String)\n], DropDownListComponent.prototype, \"focusableId\", void 0);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], DropDownListComponent.prototype, \"dir\", null);\n__decorate([\n HostBinding('attr.tabindex'),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [])\n], DropDownListComponent.prototype, \"hostTabIndex\", null);\n__decorate([\n HostBinding('attr.readonly'),\n HostBinding('attr.aria-readonly'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DropDownListComponent.prototype, \"isReadonly\", null);\n__decorate([\n HostBinding('attr.role'),\n HostBinding('attr.aria-haspopup'),\n __metadata(\"design:type\", String)\n], DropDownListComponent.prototype, \"role\", void 0);\n__decorate([\n HostBinding('attr.aria-expanded'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DropDownListComponent.prototype, \"isAriaExpanded\", null);\n__decorate([\n HostBinding('attr.aria-owns'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], DropDownListComponent.prototype, \"hostAriaOwns\", null);\n__decorate([\n HostBinding('attr.aria-activedescendant'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], DropDownListComponent.prototype, \"hostAriaActivedescendant\", null);\n__decorate([\n HostBinding('attr.aria-label'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], DropDownListComponent.prototype, \"hostNoDataLabel\", null);\n__decorate([\n HostListener('keydown', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], DropDownListComponent.prototype, \"keydown\", null);\n__decorate([\n HostListener('keypress', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], DropDownListComponent.prototype, \"keypress\", null);\n__decorate([\n HostListener('click', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], DropDownListComponent.prototype, \"click\", null);\nDropDownListComponent = DropDownListComponent_1 = __decorate([ __param(10, Optional()), __param(10, Inject(TOUCH_ENABLED)),\n __metadata(\"design:paramtypes\", [ElementRef,\n LocalizationService,\n PopupService,\n SelectionService,\n NavigationService,\n DisabledItemsService,\n DataService,\n NgZone,\n Renderer2,\n ChangeDetectorRef, Boolean])\n], DropDownListComponent);\n\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 */\nlet CustomItemTemplateDirective = class CustomItemTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nCustomItemTemplateDirective.ɵfac = function CustomItemTemplateDirective_Factory(t) { return new (t || CustomItemTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nCustomItemTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CustomItemTemplateDirective, selectors: [[\"\", \"kendoMultiSelectCustomItemTemplate\", \"\"]] });\nCustomItemTemplateDirective = __decorate([ __metadata(\"design:paramtypes\", [TemplateRef])\n], CustomItemTemplateDirective);\n\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 and MultiSelectTree components.\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 */\nlet TagTemplateDirective = class TagTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nTagTemplateDirective.ɵfac = function TagTemplateDirective_Factory(t) { return new (t || TagTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nTagTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: TagTemplateDirective, selectors: [[\"\", \"kendoMultiSelectTagTemplate\", \"\"], [\"\", \"kendoMultiSelectTreeTagTemplate\", \"\"]] });\nTagTemplateDirective = __decorate([ __metadata(\"design:paramtypes\", [TemplateRef])\n], TagTemplateDirective);\n\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 and MultiSelectTree components.\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 */\nlet GroupTagTemplateDirective = class GroupTagTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nGroupTagTemplateDirective.ɵfac = function GroupTagTemplateDirective_Factory(t) { return new (t || GroupTagTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nGroupTagTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: GroupTagTemplateDirective, selectors: [[\"\", \"kendoMultiSelectGroupTagTemplate\", \"\"], [\"\", \"kendoMultiSelectTreeGroupTagTemplate\", \"\"]] });\nGroupTagTemplateDirective = __decorate([ __metadata(\"design:paramtypes\", [TemplateRef])\n], GroupTagTemplateDirective);\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/**\n * @hidden\n */\nconst normalizeCheckboxesSettings = (settings) => {\n if (isObject(settings)) {\n const defaultSettings = { enabled: true, checkOnClick: true };\n return Object.assign({}, defaultSettings, settings);\n }\n return { enabled: Boolean(settings), checkOnClick: true };\n};\n\n/* tslint:disable:member-ordering */\nvar MultiSelectComponent_1;\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 */\nlet MultiSelectComponent = MultiSelectComponent_1 = class MultiSelectComponent {\n constructor(wrapper, localization, popupService, dataService, selectionService, navigationService, disabledItemsService, cdr, differs, renderer, _zone, touchEnabled$$1) {\n this.wrapper = wrapper;\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._zone = _zone;\n this.touchEnabled = touchEnabled$$1;\n this.listBoxId = guid$1();\n this.tagListId = guid$1();\n this.tagPrefix = \"tag-\" + guid$1();\n this.optionPrefix = \"option-\" + guid$1();\n this.focusedTagIndex = undefined;\n /**\n * @hidden\n */\n this.focusableId = `k-${guid$1()}`;\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 * ([see examples]({% slug summarytagmode_multiselect %}#toc-rendering-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 after the popup has been opened.\n */\n this.opened = 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 after the popup has been closed.\n */\n this.closed = 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.hostClasses = true;\n this.role = 'combobox';\n this.initialized = false;\n this._size = 'medium';\n this._rounded = 'medium';\n this._fillMode = 'solid';\n this.onChangeCallback = (_) => { };\n this.onTouchedCallback = (_) => { };\n this._placeholder = '';\n this._open = false;\n this._value = [];\n this._popupSettings = { animate: true };\n this._checkboxes = { enabled: false };\n this._isFocused = false;\n this.selectedDataItems = [];\n this.customValueSubject = new Subject();\n this.observableSubscriptions = new Subscription();\n validatePackage(packageMetadata);\n this.popupMouseDownHandler = this.onMouseDown.bind(this);\n this.data = [];\n this.direction = this.localization.rtl ? 'rtl' : 'ltr';\n this.subscribeEvents();\n this.subscribeTouchEvents();\n }\n /**\n * Focuses a specific item of the MultiSelect based on a provided index.\n * If there is a custom item it is positioned at index -1.\n * If null or invalid index is provided the focus will be removed.\n */\n focusItemAt(index) {\n const minIndex = this.allowCustom ? -1 : 0;\n const isInRange = minIndex <= 0 && index < this.data.length;\n if (isPresent(index) && isInRange && !this.disabledItemsService.isIndexDisabled(index)) {\n this.selectionService.focus(index);\n }\n else {\n this.selectionService.focus(null);\n }\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 if (hasObservers(this.onFocus)) {\n this._zone.run(() => {\n this.onFocus.emit();\n });\n }\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 return;\n }\n this.isFocused = false;\n if (hasObservers(this.onBlur) ||\n hasObservers(this.filterChange) ||\n hasObservers(this.close) ||\n isUntouched(this.wrapper.nativeElement)) {\n this._zone.run(() => {\n this.closePopup();\n if (!(this.isOpen && this.allowCustom)) {\n this.clearFilter();\n }\n this.onBlur.emit();\n this.onTouchedCallback();\n });\n }\n else {\n if (!this.allowCustom) {\n this.clearFilter();\n }\n this.closePopup();\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 if (this.initialized) {\n this.setState(this.value);\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 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 this.valueChangeDetected = true;\n if (this.initialized) {\n this.setState(this.value);\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 * Sets the size of the component.\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `null`\n *\n */\n set size(size) {\n this.renderer.removeClass(this.wrapper.nativeElement, getSizeClass('input', this.size));\n if (size) {\n this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', size));\n }\n this._size = size;\n }\n get size() {\n return this._size;\n }\n /**\n * Sets the border radius of the component.\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `'full'`\n * * `null`\n *\n */\n set rounded(rounded) {\n this.renderer.removeClass(this.wrapper.nativeElement, getRoundedClass(this.rounded));\n if (rounded) {\n this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(rounded));\n }\n this._rounded = rounded;\n }\n get rounded() {\n return this._rounded;\n }\n /**\n * Sets the fillMode of the component.\n *\n * The possible values are:\n * * `'flat'`\n * * `'solid'` (default)\n * * `'outline'`\n * * `null`\n *\n */\n set fillMode(fillMode) {\n this.renderer.removeClass(this.wrapper.nativeElement, getFillModeClass('input', this.fillMode));\n if (fillMode) {\n this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', fillMode));\n }\n this._fillMode = fillMode;\n }\n get fillMode() {\n return this._fillMode;\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 * Specifies whether checkboxes will be rendered before each item in the popup list.\n */\n set checkboxes(settings) {\n this._checkboxes = normalizeCheckboxesSettings(settings);\n }\n get checkboxes() {\n return this._checkboxes;\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 /**\n * Specifies the type of the selected value.\n * If set to `true`, the selected value has to be of the primitive type\n * ([more information and example]({% slug valuebinding_multiselect %}#toc-primitive-values-from-object-fields)).\n */\n set valuePrimitive(isPrimitive) {\n this._valuePrimitive = isPrimitive;\n }\n get valuePrimitive() {\n if (!isPresent(this._valuePrimitive)) {\n return !isPresent(this.valueField);\n }\n return this._valuePrimitive;\n }\n get dir() {\n return this.direction;\n }\n get disabledClass() {\n return this.disabled;\n }\n get isLoading() {\n return this.loading;\n }\n get isAriaExpanded() {\n return this.isOpen;\n }\n /**\n * @hidden\n */\n hostMousedown(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 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 customItemSizeClass() {\n return `${this.size ? getSizeClass('list', this.size) : ''}`;\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 + \"-\" + getter$1(item, this.valueField);\n }\n get noDataLabel() {\n if (this.dataService.itemsCount === 0) {\n return this.messageFor('noDataText');\n }\n }\n get clearButtonVisiblity() {\n if (this.touchEnabled) {\n return 'visible';\n }\n }\n /**\n * @hidden\n */\n verifySettings() {\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 const valueOrText = !isPresent(this.valueField) !== !isPresent(this.textField);\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 }\n if (isPresent(event.removed)) {\n const dataItem = this.dataService.itemAt(event.removed);\n const filter$$1 = (item) => getter$1(item, this.valueField) !== getter$1(dataItem, this.valueField);\n this.value = this.value.filter(filter$$1);\n this.selectionService.focused = event.removed;\n this.cdr.detectChanges();\n }\n this.emitValueChange();\n }\n /**\n * @hidden\n */\n setState(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.disabledItemsService.isIndexDisabled(this.selectionService.focused)) {\n this.selectionService.focused = this.firstFocusableIndex(0);\n }\n if (this.isOpen && this.selectionService.focused === undefined) {\n if (this.dataService.itemsCount > 0) {\n this.selectionService.focused = this.firstFocusableIndex(0);\n }\n else if (this.allowCustom) {\n this.selectionService.focused = -1;\n }\n }\n if (this.valuePrimitive && !this.valueField) {\n this.selectedDataItems = value.slice();\n }\n if (isObjectArray(value) || this.valuePrimitive && this.valueField) {\n this.selectedDataItems = resolveAllValues(value, data, this.valueField);\n }\n if (this.selectedDataItems.length < value.length) {\n this.selectedDataItems = value\n .map(current => {\n const dataItem = this.selectedDataItems.find(item => getter$1(item, this.valueField) === getter$1(current, this.valueField));\n return isPresent(dataItem) ? dataItem : this.resolveDataItemFromTags(current);\n })\n .filter(dataItem => isPresent(dataItem));\n }\n this.tags = this.tagMapper(this.selectedDataItems.slice(0));\n this.disabledIndices = this.disabledItemsMapper();\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.ArrowDown && event.keyCode !== Keys.ArrowUp;\n const selectValue = this.text && event.keyCode === Keys.Enter || event.keyCode === Keys.Escape;\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({ tag }) {\n const eventArgs = new RemoveTagEvent(tag);\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 (tag instanceof Array) {\n this.removeGroupTag(tag);\n }\n else {\n this.removeSingleTag(tag);\n }\n this.cdr.detectChanges();\n }\n /**\n * @hidden\n */\n clearAll(event) {\n event.stopImmediatePropagation();\n event.preventDefault();\n this.focus();\n this.clearFilter();\n const selected = this.selectionService.selected;\n this.value = this.value.filter((_item, index) => this.disabledItemsService.isIndexDisabled(selected[index]));\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 const valueChanges = this.differ && this.differ.diff(this.value);\n if (valueChanges && !this.valueChangeDetected) {\n this.setState(this.value);\n }\n this.valueChangeDetected = false;\n }\n ngOnInit() {\n this.renderer.removeAttribute(this.wrapper.nativeElement, \"tabindex\");\n this.createCustomValueStream();\n this.localizationChangeSubscription = this.localization\n .changes.subscribe(({ rtl }) => {\n this.direction = rtl ? 'rtl' : 'ltr';\n this.cdr.markForCheck();\n });\n this.setState(this.value);\n this.setComponentClasses();\n this.initialized = true;\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 (isChanged('valueNormalizer', changes)) {\n this.createCustomValueStream();\n }\n if (anyChanged(['textField', 'valueField', 'valuePrimitive'], changes)) {\n this.setState(this.value);\n }\n }\n ngAfterViewInit() {\n this.searchbar.setInputSize();\n }\n ngOnDestroy() {\n this._toggle(false);\n this.unsubscribeEvents();\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 const shouldOpen = isPresent(open) ? open : !this._open;\n this._toggle(shouldOpen);\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 }\n /**\n * @hidden\n */\n messageFor(key) {\n return this.localization.get(key);\n }\n // NG MODEL BINDINGS\n /**\n * @hidden\n */\n writeValue(value) {\n this.value = 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 * @hidden\n */\n onTagMapperChange() {\n this.tags = this.tagMapper(this.selectedDataItems.slice(0));\n this.cdr.markForCheck();\n }\n set isFocused(isFocused) {\n this.renderer[isFocused ? 'addClass' : 'removeClass'](this.wrapper.nativeElement, 'k-focus');\n this._isFocused = isFocused;\n }\n get isFocused() {\n return this._isFocused;\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.direction === 'rtl' ? this.handleRightKey.bind(this) : this.handleLeftKey.bind(this)),\n this.navigationService.right.subscribe(this.direction === 'rtl' ? this.handleLeftKey.bind(this) : this.handleRightKey.bind(this)),\n this.navigationService.down.subscribe((event) => this.handleDownKey(event.index))\n ].forEach(s => this.observableSubscriptions.add(s));\n }\n subscribeTouchEvents() {\n if (!isDocumentAvailable() || !this.touchEnabled) {\n return;\n }\n this._zone.runOutsideAngular(() => \n // Roll up MultiSelect on iOS when tapped outside\n this.touchstartDisposeHandler = this.renderer.listen(document, 'touchstart', (e) => {\n const target = e.target;\n if ((this.isFocused || this.isOpen) && !inDropDown(this.wrapper, target, this.popupRef)) {\n this._zone.run(() => {\n this.blur();\n if (this.isOpen) {\n this.togglePopup(false);\n }\n });\n }\n }));\n }\n unsubscribeEvents() {\n if (!isDocumentAvailable()) {\n return;\n }\n this.observableSubscriptions.unsubscribe();\n if (this.customValueSubscription) {\n this.customValueSubscription.unsubscribe();\n }\n if (this.localizationChangeSubscription) {\n this.localizationChangeSubscription.unsubscribe();\n }\n if (this.touchstartDisposeHandler) {\n this.touchstartDisposeHandler();\n }\n }\n removeGroupTag(dataItems) {\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 => getter$1(item, this.valueField)));\n this.value = this.value.filter(value => {\n const index = selectedIndices([value], data, this.valueField)[0];\n const isDataItemDisabled = this.disabledItemsService.isIndexDisabled(index);\n return !dataItemValues.has(getter$1(value, this.valueField)) || isDataItemDisabled;\n });\n this.emitValueChange();\n }\n removeSingleTag(dataItem) {\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 (this.disabledItemsService.isIndexDisabled(index)) {\n return;\n }\n if (isNumber(index)) {\n this.selectionService.unselect(index);\n this.selectionService.focused = index;\n this.togglePopup(false);\n }\n else { // the deleted item is not present in the source\n const filter$$1 = item => getter$1(item, this.valueField) !== getter$1(dataItem, this.valueField);\n this.value = this.value.filter(filter$$1);\n this.emitValueChange();\n }\n }\n /**\n * @hidden\n *\n * Determines which of the provided tags should be disabled and stores their position indices\n */\n disabledItemsMapper() {\n const { selected } = this.selectionService;\n return new Set(this.selectedDataItems.reduce((indices, _item, index) => {\n if (this.disabledItemsService.isIndexDisabled(selected[index])) {\n indices.push(index);\n }\n return indices;\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 if (this.autoClose) {\n this.togglePopup(false);\n }\n if (this.autoClose || !this.filterable) {\n this.clearFilter();\n }\n this.nextTick(() => {\n this.searchbar.focus();\n });\n this.createCustomValueStream();\n return of(null);\n }))\n .subscribe((normalizedValue) => {\n this.loading = false;\n this.disabled = false;\n if (isPresent(normalizedValue)) { // if valueNormalizer returns `null` or `undefined` custom value is discarded\n const newValue = this.valuePrimitive ? getter$1(normalizedValue, this.valueField) : normalizedValue;\n const itemIndex = this.dataService.indexOf(newValue);\n const customItem = itemIndex === -1;\n if (this.value.indexOf(newValue) === -1) {\n this.tags = this.tagMapper([...this.selectedDataItems, normalizedValue]);\n if (!customItem) {\n this.selectionService.add(itemIndex);\n }\n else {\n this.value = [...this.value, newValue];\n }\n }\n else {\n if (!customItem && this.selectionService.isSelected(itemIndex)) {\n this.selectionService.unselect(itemIndex);\n this.selectionService.focused = itemIndex;\n }\n else {\n this.value = this.value.filter(item => getter$1(item, this.valueField) !== newValue);\n }\n }\n this.emitValueChange();\n }\n if (this.autoClose) {\n this.togglePopup(false);\n }\n if (this.autoClose || !this.filterable) {\n this.clearFilter();\n }\n this.nextTick(() => {\n this.searchbar.focus();\n });\n });\n }\n handleItemChange(event) {\n this.change(event);\n if (this.autoClose) {\n this.togglePopup(false);\n }\n if (this.autoClose || !this.filterable) {\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 service.focused = focusedIndex;\n }\n else {\n service.add(focusedIndex);\n }\n if (this.autoClose) {\n this.togglePopup(false);\n }\n if (this.autoClose || !this.filterable) {\n this.clearFilter();\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({ tag: this.tags[this.tags.length - 1] });\n this.searchbar.focus();\n }\n }\n handleDelete() {\n this.handleRemoveTag({ tag: this.tags[this.focusedTagIndex] });\n if (this.focusedTagIndex === this.tags.length) {\n this.focusedTagIndex = undefined;\n }\n }\n handleLeftKey() {\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.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 = getter$1(item.value, this.textField);\n }\n else {\n itemText = getter$1(item, this.textField);\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;\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 this.opened.emit();\n });\n this.popupRef.popupClose.subscribe(() => {\n this.closed.emit();\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 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 return tags.find(tag => getter$1(tag, this.valueField) === getter$1(value, this.valueField));\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 setComponentClasses() {\n if (this.size) {\n this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', this.size));\n }\n if (this.rounded) {\n this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(this.rounded));\n }\n if (this.fillMode) {\n this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', this.fillMode));\n }\n }\n};\nMultiSelectComponent.ɵfac = function MultiSelectComponent_Factory(t) { return new (t || MultiSelectComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc4.PopupService), ɵngcc0.ɵɵdirectiveInject(DataService), ɵngcc0.ɵɵdirectiveInject(SelectionService), ɵngcc0.ɵɵdirectiveInject(NavigationService), ɵngcc0.ɵɵdirectiveInject(DisabledItemsService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.KeyValueDiffers), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(TOUCH_ENABLED, 8)); };\nMultiSelectComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: MultiSelectComponent, selectors: [[\"kendo-multiselect\"]], contentQueries: function MultiSelectComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, ItemTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, CustomItemTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, GroupTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, FixedGroupTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, HeaderTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, FooterTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, TagTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, GroupTagTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NoDataTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.template = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.customItemTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.groupTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.fixedGroupTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.headerTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.footerTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.tagTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.groupTagTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.noDataTemplate = _t.first);\n } }, viewQuery: function MultiSelectComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c8, 7, ViewContainerRef);\n ɵngcc0.ɵɵviewQuery(SearchBarComponent, 7);\n ɵngcc0.ɵɵviewQuery(_c9, 7);\n ɵngcc0.ɵɵviewQuery(_c10, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.container = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.searchbar = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.popupTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.optionsList = _t.first);\n } }, hostVars: 11, hostBindings: function MultiSelectComponent_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"mousedown\", function MultiSelectComponent_mousedown_HostBindingHandler($event) { return ctx.hostMousedown($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"role\", ctx.role)(\"dir\", ctx.dir)(\"aria-expanded\", ctx.isAriaExpanded);\n ɵngcc0.ɵɵclassProp(\"k-multiselect\", ctx.hostClasses)(\"k-input\", ctx.hostClasses)(\"k-disabled\", ctx.disabledClass)(\"k-loading\", ctx.isLoading);\n } }, inputs: { focusableId: \"focusableId\", autoClose: \"autoClose\", tabindex: \"tabindex\", disabled: \"disabled\", readonly: \"readonly\", filterable: \"filterable\", listHeight: \"listHeight\", clearButton: \"clearButton\", tagMapper: \"tagMapper\", allowCustom: \"allowCustom\", valueNormalizer: \"valueNormalizer\", data: \"data\", value: \"value\", tabIndex: \"tabIndex\", size: \"size\", rounded: \"rounded\", fillMode: \"fillMode\", placeholder: \"placeholder\", itemDisabled: \"itemDisabled\", checkboxes: \"checkboxes\", virtual: \"virtual\", popupSettings: \"popupSettings\", valuePrimitive: \"valuePrimitive\", loading: \"loading\", valueField: \"valueField\", textField: \"textField\" }, outputs: { filterChange: \"filterChange\", valueChange: \"valueChange\", open: \"open\", opened: \"opened\", close: \"close\", closed: \"closed\", onFocus: \"focus\", onBlur: \"blur\", removeTag: \"removeTag\" }, exportAs: [\"kendoMultiSelect\"], features: [ɵngcc0.ɵɵProvidersFeature([\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: FilterableComponent, useExisting: forwardRef(() => MultiSelectComponent_1)\n },\n {\n provide: KendoInput, useExisting: forwardRef(() => MultiSelectComponent_1)\n }\n ]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 11, vars: 27, consts: function () { let i18n_29; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text displayed in the popup when there are no items\n * @meaning kendo.multiselect.noDataText\n */\n const MSG_EXTERNAL_1450213984397806503$$DIST_FESM2015_INDEX_JS_30 = goog.getMsg(\"NO DATA FOUND\");\n i18n_29 = MSG_EXTERNAL_1450213984397806503$$DIST_FESM2015_INDEX_JS_30;\n }\n else {\n i18n_29 = $localize `:kendo.multiselect.noDataText|The text displayed in the popup when there are no items␟3cc1323f79a5fe012960578e513f8a35b2af1e96␟1450213984397806503:NO DATA FOUND`;\n } let i18n_31; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the clear button\n * @meaning kendo.multiselect.clearTitle\n */\n const MSG_EXTERNAL_4609022959269604009$$DIST_FESM2015_INDEX_JS_32 = goog.getMsg(\"clear\");\n i18n_31 = MSG_EXTERNAL_4609022959269604009$$DIST_FESM2015_INDEX_JS_32;\n }\n else {\n i18n_31 = $localize `:kendo.multiselect.clearTitle|The title of the clear button␟9443fc64ff58c498712dd853ba77ce5c8b978769␟4609022959269604009:clear`;\n } return [[\"kendoMultiSelectLocalizedMessages\", \"\", \"noDataText\", i18n_29, \"clearTitle\", i18n_31], [3, \"size\", \"rounded\", \"fillMode\", \"id\", \"tags\", \"textField\", \"valueField\", \"focused\", \"disabled\", \"template\", \"groupTemplate\", \"tagPrefix\", \"disabledIndices\", \"removeTag\"], [3, \"id\", \"role\", \"tagListId\", \"activeDescendant\", \"noDataLabel\", \"userInput\", \"disabled\", \"readonly\", \"tabIndex\", \"popupOpen\", \"placeholder\", \"onNavigate\", \"valueChange\", \"onBlur\", \"onFocus\"], [\"searchbar\", \"\"], [\"class\", \"k-clear-value\", \"role\", \"button\", \"tabindex\", \"-1\", 3, \"visibility\", \"mousedown\", 4, \"ngIf\"], [\"class\", \"k-icon k-i-loading\", 4, \"ngIf\"], [\"popupTemplate\", \"\"], [3, \"ngIf\"], [\"container\", \"\"], [\"role\", \"button\", \"tabindex\", \"-1\", 1, \"k-clear-value\", 3, \"mousedown\"], [1, \"k-icon\", \"k-i-x\"], [1, \"k-icon\", \"k-i-loading\"], [4, \"ngIf\"], [\"class\", \"k-list\", 3, \"ngClass\", 4, \"ngIf\"], [3, \"size\", \"rounded\", \"id\", \"optionPrefix\", \"data\", \"textField\", \"valueField\", \"height\", \"template\", \"groupTemplate\", \"fixedGroupTemplate\", \"show\", \"multipleSelection\", \"virtual\", \"checkboxes\", \"pageChange\"], [\"optionsList\", \"\"], [\"class\", \"k-no-data\", 4, \"ngIf\"], [3, \"templateContext\"], [1, \"k-list\", 3, \"ngClass\"], [\"kendoDropDownsSelectable\", \"\", 1, \"k-list-item\", \"k-custom-item\", 3, \"multipleSelection\", \"index\"], [4, \"ngIf\", \"ngIfElse\"], [\"default_custom_item_template\", \"\"], [1, \"k-icon\", \"k-i-plus\", 2, \"float\", \"right\"], [1, \"k-no-data\"], [3, \"ngIf\", \"templateContext\"], [3, \"resize\"]]; }, template: function MultiSelectComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 0);\n ɵngcc0.ɵɵelementStart(1, \"kendo-taglist\", 1);\n ɵngcc0.ɵɵlistener(\"removeTag\", function MultiSelectComponent_Template_kendo_taglist_removeTag_1_listener($event) { return ctx.handleRemoveTag($event); });\n ɵngcc0.ɵɵelementStart(2, \"kendo-searchbar\", 2, 3);\n ɵngcc0.ɵɵlistener(\"onNavigate\", function MultiSelectComponent_Template_kendo_searchbar_onNavigate_2_listener($event) { return ctx.handleNavigate($event); })(\"valueChange\", function MultiSelectComponent_Template_kendo_searchbar_valueChange_2_listener($event) { return ctx.handleFilter($event); })(\"onBlur\", function MultiSelectComponent_Template_kendo_searchbar_onBlur_2_listener() { return ctx.onSearchBarBlur(); })(\"onFocus\", function MultiSelectComponent_Template_kendo_searchbar_onFocus_2_listener() { return ctx.onSearchBarFocus(); });\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵtemplate(4, MultiSelectComponent_span_4_Template, 2, 3, \"span\", 4);\n ɵngcc0.ɵɵtemplate(5, MultiSelectComponent_span_5_Template, 1, 0, \"span\", 5);\n ɵngcc0.ɵɵtemplate(6, MultiSelectComponent_ng_template_6_Template, 6, 19, \"ng-template\", null, 6, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(8, MultiSelectComponent_ng_template_8_Template, 1, 0, \"ng-template\", 7);\n ɵngcc0.ɵɵelementContainer(9, null, 8);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"size\", ctx.size)(\"rounded\", ctx.rounded)(\"fillMode\", ctx.fillMode)(\"id\", ctx.tagListId)(\"tags\", ctx.tags)(\"textField\", ctx.textField)(\"valueField\", ctx.valueField)(\"focused\", ctx.focusedTagIndex)(\"disabled\", ctx.disabled)(\"template\", ctx.tagTemplate)(\"groupTemplate\", ctx.groupTagTemplate)(\"tagPrefix\", ctx.tagPrefix)(\"disabledIndices\", ctx.disabledIndices);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"id\", ctx.focusableId)(\"role\", \"textbox\")(\"tagListId\", ctx.tagListId)(\"activeDescendant\", ctx.activeDescendant)(\"noDataLabel\", ctx.noDataLabel)(\"userInput\", ctx.text)(\"disabled\", ctx.disabled)(\"readonly\", ctx.readonly)(\"tabIndex\", ctx.tabIndex)(\"popupOpen\", ctx.isOpen)(\"placeholder\", ctx.placeholder);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.loading && !ctx.readonly && ctx.clearButton && ((ctx.tags == null ? null : ctx.tags.length) || (ctx.text == null ? null : ctx.text.length)));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.loading);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.isOpen);\n } }, directives: function () { return [LocalizedMessagesDirective, TagListComponent, SearchBarComponent, ɵngcc3.NgIf, TemplateContextDirective, ɵngcc3.NgClass, SelectableDirective, ListComponent, ɵngcc2.ResizeSensorComponent]; }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], MultiSelectComponent.prototype, \"focusableId\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], MultiSelectComponent.prototype, \"autoClose\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], MultiSelectComponent.prototype, \"loading\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], MultiSelectComponent.prototype, \"data\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], MultiSelectComponent.prototype, \"value\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], MultiSelectComponent.prototype, \"valueField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], MultiSelectComponent.prototype, \"textField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], MultiSelectComponent.prototype, \"tabindex\", void 0);\n__decorate([\n Input(\"tabIndex\"),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], MultiSelectComponent.prototype, \"tabIndex\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], MultiSelectComponent.prototype, \"size\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], MultiSelectComponent.prototype, \"rounded\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], MultiSelectComponent.prototype, \"fillMode\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], MultiSelectComponent.prototype, \"placeholder\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], MultiSelectComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Function])\n], MultiSelectComponent.prototype, \"itemDisabled\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], MultiSelectComponent.prototype, \"checkboxes\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], MultiSelectComponent.prototype, \"readonly\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], MultiSelectComponent.prototype, \"filterable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], MultiSelectComponent.prototype, \"virtual\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], MultiSelectComponent.prototype, \"popupSettings\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], MultiSelectComponent.prototype, \"listHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], MultiSelectComponent.prototype, \"valuePrimitive\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], MultiSelectComponent.prototype, \"clearButton\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], MultiSelectComponent.prototype, \"tagMapper\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], MultiSelectComponent.prototype, \"allowCustom\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], MultiSelectComponent.prototype, \"valueNormalizer\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], MultiSelectComponent.prototype, \"filterChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], MultiSelectComponent.prototype, \"valueChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], MultiSelectComponent.prototype, \"open\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], MultiSelectComponent.prototype, \"opened\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], MultiSelectComponent.prototype, \"close\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], MultiSelectComponent.prototype, \"closed\", void 0);\n__decorate([\n Output('focus'),\n __metadata(\"design:type\", EventEmitter)\n], MultiSelectComponent.prototype, \"onFocus\", void 0);\n__decorate([\n Output('blur'),\n __metadata(\"design:type\", EventEmitter)\n], MultiSelectComponent.prototype, \"onBlur\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], MultiSelectComponent.prototype, \"removeTag\", void 0);\n__decorate([\n ViewChild('container', { read: ViewContainerRef, static: true }),\n __metadata(\"design:type\", ViewContainerRef)\n], MultiSelectComponent.prototype, \"container\", void 0);\n__decorate([\n ViewChild(SearchBarComponent, { static: true }),\n __metadata(\"design:type\", SearchBarComponent)\n], MultiSelectComponent.prototype, \"searchbar\", void 0);\n__decorate([\n ViewChild('popupTemplate', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], MultiSelectComponent.prototype, \"popupTemplate\", void 0);\n__decorate([\n ViewChild('optionsList', { static: false }),\n __metadata(\"design:type\", ListComponent)\n], MultiSelectComponent.prototype, \"optionsList\", void 0);\n__decorate([\n ContentChild(ItemTemplateDirective, { static: false }),\n __metadata(\"design:type\", ItemTemplateDirective)\n], MultiSelectComponent.prototype, \"template\", void 0);\n__decorate([\n ContentChild(CustomItemTemplateDirective, { static: false }),\n __metadata(\"design:type\", CustomItemTemplateDirective)\n], MultiSelectComponent.prototype, \"customItemTemplate\", void 0);\n__decorate([\n ContentChild(GroupTemplateDirective, { static: false }),\n __metadata(\"design:type\", GroupTemplateDirective)\n], MultiSelectComponent.prototype, \"groupTemplate\", void 0);\n__decorate([\n ContentChild(FixedGroupTemplateDirective, { static: false }),\n __metadata(\"design:type\", FixedGroupTemplateDirective)\n], MultiSelectComponent.prototype, \"fixedGroupTemplate\", void 0);\n__decorate([\n ContentChild(HeaderTemplateDirective, { static: false }),\n __metadata(\"design:type\", HeaderTemplateDirective)\n], MultiSelectComponent.prototype, \"headerTemplate\", void 0);\n__decorate([\n ContentChild(FooterTemplateDirective, { static: false }),\n __metadata(\"design:type\", FooterTemplateDirective)\n], MultiSelectComponent.prototype, \"footerTemplate\", void 0);\n__decorate([\n ContentChild(TagTemplateDirective, { static: false }),\n __metadata(\"design:type\", TagTemplateDirective)\n], MultiSelectComponent.prototype, \"tagTemplate\", void 0);\n__decorate([\n ContentChild(GroupTagTemplateDirective, { static: false }),\n __metadata(\"design:type\", GroupTagTemplateDirective)\n], MultiSelectComponent.prototype, \"groupTagTemplate\", void 0);\n__decorate([\n ContentChild(NoDataTemplateDirective, { static: false }),\n __metadata(\"design:type\", NoDataTemplateDirective)\n], MultiSelectComponent.prototype, \"noDataTemplate\", void 0);\n__decorate([\n HostBinding('class.k-multiselect'),\n HostBinding('class.k-input'),\n __metadata(\"design:type\", Boolean)\n], MultiSelectComponent.prototype, \"hostClasses\", void 0);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], MultiSelectComponent.prototype, \"dir\", null);\n__decorate([\n HostBinding('class.k-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], MultiSelectComponent.prototype, \"disabledClass\", null);\n__decorate([\n HostBinding('class.k-loading'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], MultiSelectComponent.prototype, \"isLoading\", null);\n__decorate([\n HostBinding('attr.role'),\n __metadata(\"design:type\", String)\n], MultiSelectComponent.prototype, \"role\", void 0);\n__decorate([\n HostBinding('attr.aria-expanded'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], MultiSelectComponent.prototype, \"isAriaExpanded\", null);\n__decorate([\n HostListener('mousedown', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], MultiSelectComponent.prototype, \"hostMousedown\", null);\nMultiSelectComponent = MultiSelectComponent_1 = __decorate([ __param(11, Optional()), __param(11, Inject(TOUCH_ENABLED)),\n __metadata(\"design:paramtypes\", [ElementRef,\n LocalizationService,\n PopupService,\n DataService,\n SelectionService,\n NavigationService,\n DisabledItemsService,\n ChangeDetectorRef,\n KeyValueDiffers,\n Renderer2,\n NgZone, Boolean])\n], MultiSelectComponent);\n\n/**\n * Renders the column cell content of the MultiColumnComboBox. To define a column cell template, nest an `` tag\n * with the `kendoMultiColumnComboBoxColumnCellTemplate` directive inside the [``]({% slug api_dropdowns_comboboxcolumncomponent %}) tag\n * ([see example]({% slug templates_multicolumncombobox %})).\n *\n * The current [`column`]({% slug api_dropdowns_comboboxcolumncomponent %}) and data item are available as context variables:\n *\n * - `let-dataItem=\"dataItem\"` (`any`) - The current data item. Also available as implicit context variable.\n * - `let-column=\"column\"` ([`ColumnComponent`]({% slug api_dropdowns_comboboxcolumncomponent %})) - The current column configuration obejct.\n */\nlet ColumnCellTemplateDirective = class ColumnCellTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nColumnCellTemplateDirective.ɵfac = function ColumnCellTemplateDirective_Factory(t) { return new (t || ColumnCellTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nColumnCellTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ColumnCellTemplateDirective, selectors: [[\"\", \"kendoMultiColumnComboBoxColumnCellTemplate\", \"\"]] });\nColumnCellTemplateDirective = __decorate([ __metadata(\"design:paramtypes\", [TemplateRef])\n], ColumnCellTemplateDirective);\n\n/**\n * Renders the column header content of the MultiColumnComboBox. To define a column header template, nest an `` tag\n * with the `kendoMultiColumnComboBoxColumnHeaderTemplate` directive inside the [``]({% slug api_dropdowns_comboboxcolumncomponent %}) tag\n * ([see example]({% slug templates_multicolumncombobox %})).\n *\n * The current [`column`]({% slug api_dropdowns_comboboxcolumncomponent %}) is available as implicit context variable.\n */\nlet ColumnHeaderTemplateDirective = class ColumnHeaderTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nColumnHeaderTemplateDirective.ɵfac = function ColumnHeaderTemplateDirective_Factory(t) { return new (t || ColumnHeaderTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nColumnHeaderTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ColumnHeaderTemplateDirective, selectors: [[\"\", \"kendoMultiColumnComboBoxColumnHeaderTemplate\", \"\"]] });\nColumnHeaderTemplateDirective = __decorate([ __metadata(\"design:paramtypes\", [TemplateRef])\n], ColumnHeaderTemplateDirective);\n\n/**\n * Represents the column definition of the [MultiColumnComboBox]({% slug overview_multicolumncombobox %})\n * ([see example]({% slug columns_multicolumncombobox %})).\n */\nlet ComboBoxColumnComponent = class ComboBoxColumnComponent {\n /**\n * Represents the column definition of the [MultiColumnComboBox]({% slug overview_multicolumncombobox %})\n * ([see example]({% slug columns_multicolumncombobox %})).\n */\n constructor() {\n /**\n * Sets the visibility of the column.\n *\n * @default false\n */\n this.hidden = false;\n /**\n * @hidden\n */\n this.matchesMedia = true;\n }\n};\nComboBoxColumnComponent.ɵfac = function ComboBoxColumnComponent_Factory(t) { return new (t || ComboBoxColumnComponent)(); };\nComboBoxColumnComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ComboBoxColumnComponent, selectors: [[\"kendo-combobox-column\"]], contentQueries: function ComboBoxColumnComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, ColumnCellTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, ColumnHeaderTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.cellTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.headerTemplate = _t.first);\n } }, inputs: { hidden: \"hidden\", field: \"field\", title: \"title\", width: \"width\", style: \"style\", headerStyle: \"headerStyle\", class: \"class\", headerClass: \"headerClass\", media: \"media\" }, decls: 0, vars: 0, template: function ComboBoxColumnComponent_Template(rf, ctx) { }, encapsulation: 2 });\n__decorate([\n ContentChild(ColumnCellTemplateDirective, { static: false }),\n __metadata(\"design:type\", ColumnCellTemplateDirective)\n], ComboBoxColumnComponent.prototype, \"cellTemplate\", void 0);\n__decorate([\n ContentChild(ColumnHeaderTemplateDirective, { static: false }),\n __metadata(\"design:type\", ColumnHeaderTemplateDirective)\n], ComboBoxColumnComponent.prototype, \"headerTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ComboBoxColumnComponent.prototype, \"field\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ComboBoxColumnComponent.prototype, \"title\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ComboBoxColumnComponent.prototype, \"width\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ComboBoxColumnComponent.prototype, \"hidden\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ComboBoxColumnComponent.prototype, \"style\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ComboBoxColumnComponent.prototype, \"headerStyle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ComboBoxColumnComponent.prototype, \"class\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ComboBoxColumnComponent.prototype, \"headerClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ComboBoxColumnComponent.prototype, \"media\", void 0);\n\n/**\n * Persists the intially resolved scrollbar width value.\n */\nlet SCROLLBAR_WIDTH;\n/**\n * @hidden\n *\n * Gets the default scrollbar width accoring to the current environment.\n */\nconst scrollbarWidth = () => {\n // calculate scrollbar width only once, then return the memoized value\n if (isNaN(SCROLLBAR_WIDTH)) {\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 SCROLLBAR_WIDTH = div.offsetWidth - div.scrollWidth;\n document.body.removeChild(div);\n }\n return SCROLLBAR_WIDTH;\n};\n/**\n * Checks if all columns have a valid user-defined width.\n */\nconst allColumnsWidthsSet = (columns) => {\n if (!isPresent(columns) || columns.length === 0) {\n return false;\n }\n return columns.toArray().every(column => !isNaN(column.width) && column.width > 0);\n};\n/**\n * @hidden\n *\n * Calculates the row width according to the passed columns width configuration.\n * Hidden columns and such that don't match the provided media query are ignored.\n * If some of the columns don't have a preset width or have an invalid width value, the function returns `null`.\n */\nconst getRowWidthFromColumnsMeta = (columns) => {\n if (!allColumnsWidthsSet(columns)) {\n return null;\n }\n const bordersWidth = 2;\n const initialRowWidht = scrollbarWidth() + bordersWidth;\n return columns.reduce((totalWidth, column) => {\n if (!column.hidden && column.matchesMedia) {\n totalWidth += parseInt(column.width, 10);\n }\n return totalWidth;\n }, initialRowWidht);\n};\n\nvar MultiColumnComboBoxComponent_1;\n/**\n * Represents the [Kendo UI MultiColumnComboBox component for Angular]({% slug overview_multicolumncombobox %}).\n */\nlet MultiColumnComboBoxComponent = MultiColumnComboBoxComponent_1 = class MultiColumnComboBoxComponent extends ComboBoxComponent {\n constructor(localization, popupService, selectionService, navigationService, disabledItemsService, dataService, zone, changeDetector, renderer, wrapper, touchEnabled$$1) {\n super(wrapper, localization, popupService, selectionService, navigationService, disabledItemsService, dataService, zone, changeDetector, renderer, touchEnabled$$1);\n /**\n * @hidden\n */\n this.hostClasses = true;\n this.removeWindowResizeListener = noop;\n // the row height in @progress/kendo-theme-default\n this.defaultVirtualItemHeight = 36;\n // use a smaller virtual page size as columns with multiple cells can cause poor performance\n this.defaultVirtualPageSize = 30;\n }\n /**\n * @hidden\n */\n get isDisabled() {\n return this.disabled;\n }\n /**\n * @hidden\n */\n set header(header) {\n // updates the header padding on initial render as the resize senzor doesn't kick in as early\n this.updateHeaderPadding(header && header.nativeElement);\n }\n get popupWidth() {\n const wrapperOffsetWidth = this.wrapper.nativeElement.offsetWidth;\n const min = `${wrapperOffsetWidth}px`;\n const width = this.popupSettings.width || getRowWidthFromColumnsMeta(this.columns) || wrapperOffsetWidth;\n const max = isNaN(width) ? width : `${width}px`;\n return { min, max };\n }\n /**\n * @hidden\n */\n get tableSizeClass() {\n return `${this.size ? getSizeClass('table', this.size) : ''}`;\n }\n /**\n * @hidden\n */\n get listContainerClasses() {\n return [\n 'k-popup',\n 'k-dropdowngrid-popup'\n ].concat(this.popupSettings.popupClass || []);\n }\n ngAfterViewInit() {\n this.updateColumnsMediaState();\n this.addWindowResizeListener();\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n this.removeWindowResizeListener();\n }\n /**\n * @hidden\n */\n textFrom(dataItem, field) {\n return getter$1(dataItem, field);\n }\n /**\n * @hidden\n *\n * Adds or removes a padding value at the end of the header container equal to the size of the scrollbar.\n * As when the items container has a scrollbar, the column headers and the cells are misaligned.\n * When the container has a scrollbar, the padding style is added, and when there is none - it is removed.\n */\n updateHeaderPadding(header) {\n if (!isPresent(header)) {\n return;\n }\n // the scrollbar is rendered on the left in rtl\n const headerPaddingPosition = this.localization.rtl ? 'padding-left' : 'padding-right';\n if (this.optionsList.hasScrollbar() && scrollbarWidth() > 0) {\n this.renderer.setStyle(header, headerPaddingPosition, `${scrollbarWidth()}px`);\n }\n else {\n this.renderer.removeStyle(header, headerPaddingPosition);\n }\n }\n verifySettings() {\n if (!isDevMode()) {\n return;\n }\n if (isPresent(this.data) && this.data.length > 0 && this.data.some(item => !isObject(item))) {\n throw new Error(MultiColumnComboBoxMessages.data);\n }\n if (!isPresent(this.valueField) || !isPresent(this.textField)) {\n throw new Error(MultiColumnComboBoxMessages.textAndValue);\n }\n super.verifySettings();\n }\n addWindowResizeListener() {\n if (!isDocumentAvailable()) {\n return;\n }\n this.zone.runOutsideAngular(() => this.removeWindowResizeListener = this.renderer.listen(window, 'resize', this.updateColumnsMediaState.bind(this)));\n }\n updateColumnsMediaState() {\n if (!(isPresent(this.columns) && isDocumentAvailable())) {\n return;\n }\n this.columns.forEach(column => {\n const matchesMedia = !column.media || window.matchMedia(column.media).matches;\n if (column.matchesMedia !== matchesMedia) {\n column.matchesMedia = matchesMedia;\n if (this.isOpen) {\n // enter the zone only if the popup is actually open\n // update its width in case it's dependent on the columns' width\n this.zone.run(() => this.popupRef.popupElement.style.width = this.popupWidth.max);\n }\n }\n });\n }\n};\nMultiColumnComboBoxComponent.ɵfac = function MultiColumnComboBoxComponent_Factory(t) { return new (t || MultiColumnComboBoxComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc4.PopupService), ɵngcc0.ɵɵdirectiveInject(SelectionService), ɵngcc0.ɵɵdirectiveInject(NavigationService), ɵngcc0.ɵɵdirectiveInject(DisabledItemsService), ɵngcc0.ɵɵdirectiveInject(DataService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(TOUCH_ENABLED)); };\nMultiColumnComboBoxComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: MultiColumnComboBoxComponent, selectors: [[\"kendo-multicolumncombobox\"]], contentQueries: function MultiColumnComboBoxComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, ComboBoxColumnComponent, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.columns = _t);\n } }, viewQuery: function MultiColumnComboBoxComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c33, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.header = _t.first);\n } }, hostVars: 4, hostBindings: function MultiColumnComboBoxComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-dropdowngrid\", ctx.hostClasses)(\"k-disabled\", ctx.isDisabled);\n } }, features: [ɵngcc0.ɵɵProvidersFeature([\n SelectionService,\n DataService,\n NavigationService,\n DisabledItemsService,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.multicolumncombobox'\n },\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MultiColumnComboBoxComponent_1)\n },\n {\n provide: KendoInput,\n useExisting: forwardRef(() => MultiColumnComboBoxComponent_1)\n },\n {\n provide: FilterableComponent,\n useExisting: forwardRef(() => MultiColumnComboBoxComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 12, vars: 20, consts: function () { let i18n_34; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text displayed in the popup when there are no items\n * @meaning kendo.multicolumncombobox.noDataText\n */\n const MSG_EXTERNAL_3227251500690942605$$DIST_FESM2015_INDEX_JS_35 = goog.getMsg(\"NO DATA FOUND\");\n i18n_34 = MSG_EXTERNAL_3227251500690942605$$DIST_FESM2015_INDEX_JS_35;\n }\n else {\n i18n_34 = $localize `:kendo.multicolumncombobox.noDataText|The text displayed in the popup when there are no items␟23a18095f2c16d40a04251fa2fb15d3927e7a79a␟3227251500690942605:NO DATA FOUND`;\n } let i18n_36; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the clear button\n * @meaning kendo.multicolumncombobox.clearTitle\n */\n const MSG_EXTERNAL_326603149056291198$$DIST_FESM2015_INDEX_JS_37 = goog.getMsg(\"clear\");\n i18n_36 = MSG_EXTERNAL_326603149056291198$$DIST_FESM2015_INDEX_JS_37;\n }\n else {\n i18n_36 = $localize `:kendo.multicolumncombobox.clearTitle|The title of the clear button␟6b371962a2564e2e50986f7ec238e513b466d553␟326603149056291198:clear`;\n } return [[\"kendoMultiColumnComboBoxLocalizedMessages\", \"\", \"noDataText\", i18n_34, \"clearTitle\", i18n_36], [3, \"role\", \"id\", \"listId\", \"activeDescendant\", \"noDataLabel\", \"userInput\", \"suggestedText\", \"disabled\", \"readonly\", \"tabIndex\", \"popupOpen\", \"placeholder\", \"onNavigate\", \"valueChange\", \"onBlur\", \"onFocus\"], [\"searchbar\", \"\"], [\"class\", \"k-clear-value\", \"aria-hidden\", \"true\", 3, \"visibility\", \"kendoEventsOutsideAngular\", \"click\", 4, \"ngIf\"], [\"tabindex\", \"-1\", \"aria-hidden\", \"true\", \"unselectable\", \"on\", \"type\", \"button\", 1, \"k-input-button\", \"k-button\", \"k-icon-button\", 3, \"ngClass\", \"kendoEventsOutsideAngular\"], [\"select\", \"\"], [1, \"k-button-icon\", \"k-icon\", 3, \"ngClass\"], [\"popupTemplate\", \"\"], [3, \"resize\", 4, \"ngIf\"], [\"container\", \"\"], [\"aria-hidden\", \"true\", 1, \"k-clear-value\", 3, \"kendoEventsOutsideAngular\", \"click\"], [1, \"k-icon\", \"k-i-x\"], [4, \"ngIf\"], [1, \"k-data-table\", 3, \"ngClass\"], [1, \"k-table-header\"], [\"header\", \"\"], [1, \"k-table-header-wrap\"], [\"role\", \"presentation\", 1, \"k-table\"], [4, \"ngFor\", \"ngForOf\"], [1, \"k-table-thead\"], [1, \"k-table-row\"], [\"rowTemplate\", \"\"], [3, \"id\", \"optionPrefix\", \"data\", \"textField\", \"valueField\", \"template\", \"groupTemplate\", \"fixedGroupTemplate\", \"height\", \"show\", \"virtual\", \"type\", \"pageChange\", \"listResize\"], [\"optionsList\", \"\"], [\"class\", \"k-no-data\", 4, \"ngIf\"], [3, \"templateContext\"], [3, \"width\", 4, \"ngIf\"], [\"class\", \"k-table-th\", 3, \"ngStyle\", \"ngClass\", 4, \"ngIf\"], [1, \"k-table-th\", 3, \"ngStyle\", \"ngClass\"], [\"class\", \"k-table-td\", 3, \"ngClass\", \"width\", \"ngStyle\", 4, \"ngIf\"], [1, \"k-table-td\", 3, \"ngClass\", \"ngStyle\"], [1, \"k-no-data\"], [3, \"ngIf\", \"templateContext\"], [3, \"ngIf\"], [1, \"k-table-footer\"], [1, \"k-table\"], [1, \"k-table-tfoot\"], [1, \"k-table-td\"], [3, \"resize\"]]; }, template: function MultiColumnComboBoxComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 0);\n ɵngcc0.ɵɵelementStart(1, \"kendo-searchbar\", 1, 2);\n ɵngcc0.ɵɵlistener(\"onNavigate\", function MultiColumnComboBoxComponent_Template_kendo_searchbar_onNavigate_1_listener($event) { return ctx.handleNavigate($event); })(\"valueChange\", function MultiColumnComboBoxComponent_Template_kendo_searchbar_valueChange_1_listener($event) { return ctx.searchBarChange($event); })(\"onBlur\", function MultiColumnComboBoxComponent_Template_kendo_searchbar_onBlur_1_listener() { return ctx.handleBlur(); })(\"onFocus\", function MultiColumnComboBoxComponent_Template_kendo_searchbar_onFocus_1_listener() { return ctx.handleFocus(); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, MultiColumnComboBoxComponent_span_3_Template, 2, 6, \"span\", 3);\n ɵngcc0.ɵɵelementStart(4, \"button\", 4, 5);\n ɵngcc0.ɵɵelement(6, \"span\", 6);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(7, MultiColumnComboBoxComponent_ng_template_7_Template, 17, 20, \"ng-template\", null, 7, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(9, MultiColumnComboBoxComponent_kendo_resize_sensor_9_Template, 1, 0, \"kendo-resize-sensor\", 8);\n ɵngcc0.ɵɵelementContainer(10, null, 9);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"role\", \"combobox\")(\"id\", ctx.focusableId)(\"listId\", ctx.listBoxId)(\"activeDescendant\", ctx.activeDescendant)(\"noDataLabel\", ctx.noDataLabel)(\"userInput\", ctx.text)(\"suggestedText\", ctx.getSuggestion())(\"disabled\", ctx.disabled)(\"readonly\", ctx.readonly)(\"tabIndex\", ctx.tabIndex)(\"popupOpen\", ctx.isOpen)(\"placeholder\", ctx.placeholder);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.clearButton && !ctx.loading && !ctx.disabled && !ctx.readonly && (ctx.text == null ? null : ctx.text.length));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx.selectButtonClasses)(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction1(18, _c23, ctx.preventEventDefault));\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx.messageFor(\"selectButtonText\"));\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx.buttonClasses);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.isOpen);\n } }, directives: function () { return [LocalizedMessagesDirective, SearchBarComponent, ɵngcc3.NgIf, ɵngcc2.EventsOutsideAngularDirective, ɵngcc3.NgClass, TemplateContextDirective, ɵngcc3.NgForOf, ɵngcc3.NgStyle, ListComponent, ɵngcc2.ResizeSensorComponent]; }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-dropdowngrid'),\n __metadata(\"design:type\", Boolean)\n], MultiColumnComboBoxComponent.prototype, \"hostClasses\", void 0);\n__decorate([\n HostBinding('class.k-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], MultiColumnComboBoxComponent.prototype, \"isDisabled\", null);\n__decorate([\n ContentChildren(ComboBoxColumnComponent),\n __metadata(\"design:type\", QueryList)\n], MultiColumnComboBoxComponent.prototype, \"columns\", void 0);\n__decorate([\n ViewChild('header', { static: false }),\n __metadata(\"design:type\", ElementRef),\n __metadata(\"design:paramtypes\", [ElementRef])\n], MultiColumnComboBoxComponent.prototype, \"header\", null);\nMultiColumnComboBoxComponent = MultiColumnComboBoxComponent_1 = __decorate([ __param(10, Inject(TOUCH_ENABLED)),\n __metadata(\"design:paramtypes\", [LocalizationService,\n PopupService,\n SelectionService,\n NavigationService,\n DisabledItemsService,\n DataService,\n NgZone,\n ChangeDetectorRef,\n Renderer2,\n ElementRef, Boolean])\n], MultiColumnComboBoxComponent);\n\n/**\n * Renders the content of each node in the DropDownTree. To define a node template, nest an `` tag\n * with the `kendoDropDownTreeNodeTemplate` directive inside the `` tag.\n *\n * The current data item and hierarchical index are available as context variables:\n *\n * - `let-dataItem` (`any`) - The current data item. Available as implicit context variable.\n * - `let-index=\"index\"` (`string`) - The current item hierarchical index.\n */\nlet NodeTemplateDirective = class NodeTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nNodeTemplateDirective.ɵfac = function NodeTemplateDirective_Factory(t) { return new (t || NodeTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nNodeTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NodeTemplateDirective, selectors: [[\"\", \"kendoDropDownTreeNodeTemplate\", \"\"], [\"\", \"kendoMultiSelectTreeNodeTemplate\", \"\"]] });\nNodeTemplateDirective = __decorate([ __metadata(\"design:paramtypes\", [TemplateRef])\n], NodeTemplateDirective);\n\nvar DropDownTreeComponent_1;\n/* tslint:disable:member-ordering */\nconst DEFAULT_POPUP_SETTINGS = { animate: true };\nconst hasChildren = () => false;\nconst fetchChildren = () => of([]);\nconst itemDisabled = () => false;\nconst isNodeVisible = () => true;\n/**\n * Represents the [Kendo UI DropDownTree component for Angular]({% slug overview_ddt %}).\n */\nlet DropDownTreeComponent = DropDownTreeComponent_1 = class DropDownTreeComponent {\n constructor(wrapper, popupService, navigationService, renderer, _zone, cdr, localization, touchEnabled$$1) {\n this.wrapper = wrapper;\n this.popupService = popupService;\n this.navigationService = navigationService;\n this.renderer = renderer;\n this._zone = _zone;\n this.cdr = cdr;\n this.localization = localization;\n this.touchEnabled = touchEnabled$$1;\n this.hostClasses = true;\n this.role = 'listbox';\n this.ariaHasPopup = 'tree';\n /**\n * Fires each time the popup is about to open\n * ([see example]({% slug openstate_ddt %})).\n * This event is preventable. If you cancel it, the popup will remain closed.\n */\n this.open = new EventEmitter();\n /**\n * Fires after the popup has been opened.\n */\n this.opened = new EventEmitter();\n /**\n * Fires each time the popup is about to close\n * ([see example]({% slug openstate_ddt %})).\n * This event is preventable. If you cancel it, the popup will remain open.\n */\n this.close = new EventEmitter();\n /**\n * Fires after the popup has been closed.\n */\n this.closed = new EventEmitter();\n /**\n * Fires when the user expands a node in the popup TreeView.\n */\n this.nodeExpand = new EventEmitter();\n /**\n * Fires when the user collapses a node in the popup TreeView.\n */\n this.nodeCollapse = new EventEmitter();\n /**\n * Fires each time the user focuses the DropDownTree.\n */\n this.onFocus = new EventEmitter();\n /**\n * Fires each time the DropDownTree gets blurred.\n */\n this.onBlur = new EventEmitter();\n /**\n * Fires each time the value is changed\n * ([see example]({% slug overview_ddt %}#toc-events)).\n */\n this.valueChange = new EventEmitter();\n /**\n * Fires when the value of the built-in filter input element changes.\n */\n this.filterChange = new EventEmitter();\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 * A function which determines if a specific node has child nodes.\n */\n this.hasChildren = hasChildren;\n /**\n * A function which provides the child nodes for a given parent node.\n */\n this.fetchChildren = fetchChildren;\n /**\n * The hint which is displayed when the component is empty.\n */\n this.placeholder = \"\";\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 * Specifies the type of the selected value\n * ([more information and example]({% slug valuebinding_ddt %}#toc-primitive-values)).\n * If set to `true`, the selected value has to be of a primitive value.\n */\n this.valuePrimitive = false;\n /**\n * A function that is executed for each data item and determines if a specific item is disabled.\n */\n this.itemDisabled = itemDisabled;\n /**\n * A callback which determines whether a tree node should be rendered as hidden. The utility .k-display-none class is used to hide the nodes.\n * Useful for custom filtering implementations.\n */\n this.isNodeVisible = isNodeVisible;\n /**\n * Indicates whether the child nodes will be fetched on node expand or will be initially prefetched.\n * @default true\n */\n this.loadOnDemand = true;\n /**\n * Renders the built-in input element for filtering the DropDownTree.\n * If set to `true`, the component emits the `filterChange` event, which can be used to [filter the DropDownTree manually]({% slug filtering_ddt %}#toc-manual-filtering).\n * A built-in filtering implementation is available to use with the [`kendoDropDownTreeHierarchyBinding`]({% slug api_dropdowns_dropdowntreehierarchybindingdirective %}) and [`kendoDropDownTreeFlatBinding`]({% slug api_dropdowns_dropdowntreeflatbindingdirective %}) directives.\n */\n this.filterable = false;\n /**\n * @hidden\n */\n this.filter = '';\n /**\n * @hidden\n *\n * Used by the kendo-label and kendo-floatinglabel to access and associate the focusable element with the provided label via aria-labelledby.\n */\n this.focusableId = `k-${guid()}`;\n /**\n * @hidden\n */\n this.selectedKeys = [];\n /**\n * @hidden\n */\n this.filterStateChange = new EventEmitter();\n /**\n * @hidden\n */\n this.allNodesHidden = false;\n /**\n * @hidden\n *\n * Used to associate the value label with the wrapper via aria-describedby.\n */\n this.valueLabelId = `k-${guid()}`;\n this._popupSettings = DEFAULT_POPUP_SETTINGS;\n this._tabindex = 0;\n this._isFocused = false;\n this._size = 'medium';\n this._rounded = 'medium';\n this._fillMode = 'solid';\n this.subscriptions = [];\n this.onTouchedCallback = noop;\n this.onChangeCallback = noop;\n this.direction = localization.rtl ? 'rtl' : 'ltr';\n this.subscribeEvents();\n this.subscribeTouchEvents();\n this.subscribeFocusEvents();\n }\n get isDisabled() {\n return this.disabled;\n }\n get isLoading() {\n return this.loading;\n }\n get id() {\n return this.focusableId;\n }\n get hostTabIndex() {\n return this.tabindex;\n }\n get isAriaExpanded() {\n return this.isOpen;\n }\n get isReadonly() {\n return this.readonly;\n }\n /**\n * @hidden\n */\n handleClick() {\n this.togglePopup(!this.isOpen);\n }\n /**\n * @hidden\n */\n handleKeydown(event) {\n if (this.disabled || this.readonly) {\n return;\n }\n const eventData = event;\n this.navigationService.process({\n originalEvent: eventData\n });\n }\n set treeview(treeview) {\n if (treeview) {\n if (this.isFocused && !this.filterable || this.touchEnabled) {\n treeview.focus();\n }\n // the treeview animations are initially disabled (we don't want expand animations during popup opening)\n // re-enables the animations for user interaction\n treeview.animate = true;\n this._treeview = treeview;\n }\n }\n get treeview() {\n return this._treeview;\n }\n /**\n * Sets the data of the DropDownTree.\n *\n * > The data has to be provided in an array-like list with objects.\n */\n set data(data) {\n this._nodes = data;\n this.setState();\n }\n get data() {\n return this._nodes;\n }\n /**\n * Sets the value of the DropDownTree.\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 */\n set value(newValue) {\n this._value = newValue;\n this.setState();\n }\n get value() {\n return this._value;\n }\n /**\n * Configures the popup of the DropDownTree.\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.\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({}, DEFAULT_POPUP_SETTINGS, settings);\n }\n get popupSettings() {\n return this._popupSettings;\n }\n /**\n * Keeps the current `dataItem` object in order to resolve selection.\n * Needs to be provided when `value` is bound in and `valuePrimitive` is set to true.\n */\n set dataItem(item) {\n this._dataItem = item;\n this.setState();\n }\n get dataItem() {\n return this._dataItem ? this._dataItem : 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 providedTabIndex = Number(value);\n const defaultTabIndex = 0;\n this._tabindex = !isNaN(providedTabIndex) ? providedTabIndex : defaultTabIndex;\n }\n get tabindex() {\n return this.disabled ? -1 : this._tabindex;\n }\n /**\n * Sets the size of the component.\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `null`\n *\n */\n set size(size) {\n this.renderer.removeClass(this.wrapper.nativeElement, getSizeClass('picker', this.size));\n if (size) {\n this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('picker', size));\n }\n this._size = size;\n }\n get size() {\n return this._size;\n }\n /**\n * Sets the border radius of the component.\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `'full'`\n * * `null`\n *\n */\n set rounded(rounded) {\n this.renderer.removeClass(this.wrapper.nativeElement, getRoundedClass(this.rounded));\n if (rounded) {\n this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(rounded));\n }\n this._rounded = rounded;\n }\n get rounded() {\n return this._rounded;\n }\n /**\n * Sets the fillMode of the component.\n *\n * The possible values are:\n * * `'flat'`\n * * `'solid'` (default)\n * * `'outline'`\n * * `null`\n *\n */\n set fillMode(fillMode) {\n this.renderer.removeClass(this.wrapper.nativeElement, getFillModeClass('picker', this.fillMode));\n if (fillMode) {\n this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('picker', fillMode));\n }\n this._fillMode = fillMode;\n }\n get fillMode() {\n return this._fillMode;\n }\n set isFocused(isFocused) {\n this.renderer[isFocused ? 'addClass' : 'removeClass'](this.wrapper.nativeElement, 'k-focus');\n this._isFocused = isFocused;\n }\n get isFocused() {\n return this._isFocused;\n }\n get width() {\n const wrapperWidth = this.wrapper.nativeElement.offsetWidth;\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 /**\n * Returns the current open state of the popup.\n */\n get isOpen() {\n return isPresent(this.popupRef);\n }\n get clearButtonVisiblity() {\n if (this.touchEnabled) {\n return 'visible';\n }\n }\n /**\n * @hidden\n *\n * Alias for `isNodeExpanded`. Used for compatibility with the `ExpandableComponent` interface.\n * Required for the expand-directive.\n */\n set isExpanded(callback) {\n this.isNodeExpanded = callback;\n }\n get isExpanded() {\n return this.isNodeExpanded;\n }\n /**\n * @hidden\n *\n * Alias for `nodeExpand`. Used for compatibility with the `ExpandableComponent` interface.\n * Required for the expand-directive.\n */\n get expand() {\n return this.nodeExpand;\n }\n /**\n * @hidden\n *\n * Alias for `nodeCollapse`. Used for compatibility with the `ExpandableComponent` interface.\n * Required for the expand-directive.\n */\n get collapse() {\n return this.nodeCollapse;\n }\n /**\n * @hidden\n *\n * Alias for `data`. Used for compatibility with the `DataBoundComponent` interface.\n * Required for the data-binding directives.\n */\n set nodes(nodes) {\n this.data = nodes;\n }\n get nodes() {\n return this.data;\n }\n /**\n * @hidden\n *\n * Alias for `fetchChildren`. Used for compatibility with the `DataBoundComponent` interface.\n * Required for the data-binding directives\n */\n set children(callback) {\n this.fetchChildren = callback;\n }\n get children() {\n return this.fetchChildren;\n }\n /**\n * @hidden\n *\n * Alias for `isNodeVisible`. Used for compatibility with the `DataBoundComponent` interface.\n * The `DataBoundComponent` interface is used in the data-binding directives.\n */\n set isVisible(callback) {\n this.isNodeVisible = callback;\n }\n get isVisible() {\n return this.isNodeVisible;\n }\n ngOnInit() {\n this.renderer.removeAttribute(this.wrapper.nativeElement, 'tabindex');\n this.assignAriaDescribedBy();\n this.subscriptions.push(this.localization\n .changes.subscribe(({ rtl }) => {\n this.direction = rtl ? 'rtl' : 'ltr';\n this.cdr.markForCheck();\n }));\n this.setComponentClasses();\n }\n /**\n * @hidden\n */\n ngOnDestroy() {\n this.destroyPopup();\n this.unsubscribeEvents();\n }\n /**\n * @hidden\n */\n ngOnChanges(changes) {\n if (anyChanged(['textField', 'valueField', 'valuePrimitive'], changes, false)) {\n this.setState();\n }\n }\n /**\n * @hidden\n */\n ngAfterContentChecked() {\n this.verifySettings();\n }\n /**\n * @hidden\n *\n * Used by the kendo-floatinglabel component to determine if the floating label\n * should be rendered inside the input when the component is not focused.\n */\n isEmpty() {\n return !this.text && !this.placeholder;\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 togglePrevented = this.triggerPopupEvents(open);\n if (!togglePrevented) {\n open ?\n this.createPopup() :\n this.destroyPopup();\n }\n }\n /**\n * @hidden\n */\n handleFocus(event) {\n if (event.target !== this.wrapper.nativeElement) {\n return;\n }\n event.stopImmediatePropagation();\n if (!this.isFocused) {\n this.isFocused = true;\n if (hasObservers(this.onFocus)) {\n this._zone.run(() => {\n this.onFocus.emit();\n });\n }\n }\n }\n /**\n * @hidden\n */\n handleBlur(e) {\n const relatedTarget = e && e.relatedTarget;\n if (this.wrapper.nativeElement.contains(relatedTarget) ||\n (this.isOpen && this.popupRef.popupElement.contains(relatedTarget))) {\n return;\n }\n this.isFocused = false;\n if (hasObservers(this.onBlur) ||\n isUntouched(this.wrapper.nativeElement)) {\n this._zone.run(() => {\n this.togglePopup(false);\n this.onBlur.emit();\n this.onTouchedCallback();\n });\n }\n else {\n this.togglePopup(false);\n }\n }\n /**\n * Focuses a specific item of the DropDownTree based on a provided index in the format of `1_1`.\n * The targeted item should be expanded in order for it to be focused.\n * If null or invalid index is provided the focus will be set on the first item.\n */\n focusItemAt(index) {\n if (this.treeview) {\n const lookup = this.treeview.itemLookup(index);\n let isItemDisabled = !isPresent(lookup) || this.treeview.isDisabled(lookup.item.dataItem, lookup.item.index);\n if (!isItemDisabled) {\n this.treeview.focus(index);\n }\n }\n }\n /**\n * Focuses the DropDownTree.\n */\n focus() {\n if (!this.disabled) {\n this.wrapper.nativeElement.focus();\n }\n }\n /**\n * Blurs the DropDownTree.\n */\n blur() {\n if (!this.disabled) {\n this.wrapper.nativeElement.blur();\n }\n }\n /**\n * Resets the value of the DropDownTree.\n * If you use the `reset` method to clear the value of the component,\n * the model will not update automatically and the `valueChange` event will not be fired.\n */\n reset() {\n this.value = undefined;\n this.dataItem = undefined;\n }\n /**\n * Toggles the visibility of the popup\n * ([see example]({% slug openstate_ddt %})).\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 \"ViewContainerRef not found...\" error will be thrown.\n Promise.resolve(null).then(() => {\n const shouldOpen = isPresent(open) ? open : !isPresent(this.popupRef);\n this.destroyPopup();\n if (shouldOpen) {\n this.createPopup();\n }\n });\n }\n /**\n * @hidden\n */\n get popupContainerClasses() {\n const containerClasses = ['k-popup-dropdowntree'];\n if (this.popupSettings.popupClass) {\n containerClasses.push(this.popupSettings.popupClass);\n }\n return containerClasses;\n }\n /**\n * @hidden\n */\n onSelectionChange({ dataItem, index }) {\n this.valueDepth = index.split('_').length - 1;\n const valueField = this.getField(this.valueField, dataItem);\n const newValue = this.valuePrimitive ?\n getter(valueField)(dataItem) :\n dataItem;\n const shouldUpdateValue = newValue !== this.value;\n if (shouldUpdateValue) {\n this.value = newValue;\n this.dataItem = dataItem;\n this.emitValueChange(this.value);\n }\n this.togglePopup(false);\n this.focus();\n }\n /**\n * @hidden\n */\n messageFor(key) {\n return this.localization.get(key);\n }\n /**\n * @hidden\n */\n clearValue(event) {\n event.stopImmediatePropagation();\n this.focus();\n this.value = undefined;\n this.dataItem = undefined;\n this.clearState();\n this.valueChange.emit(undefined);\n this.emitValueChange();\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 preventEventDefault(event) {\n event.preventDefault();\n }\n /**\n * @hidden\n */\n writeValue(value) {\n // If the user resets the value by providing null/undefined we need to reset the `dataItem`\n // Because upon initialization of the component the `writeValue` is being called twice -\n // first time with `null` value regardless of sync/async value - an extra check is added to\n // distinguish between client reset and initial phanotm 'null' value\n if (!isPresent(value) && isPresent(this.value)) {\n this.dataItem = null;\n }\n this.value = value === null ? undefined : 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 this.cdr.markForCheck();\n }\n /**\n * @hidden\n */\n handleFilterInputChange(term) {\n this.filterChange.next(term);\n this.allNodesHidden = this.nodes.every((node, index) => !this.isVisible(node, String(index)));\n }\n /**\n * @hidden\n */\n get buttonClasses() {\n return this.loading ? 'k-i-loading' : 'k-i-arrow-s';\n }\n /**\n * @hidden\n */\n get selectButtonClasses() {\n return `${this.size ? getSizeClass('button', this.size) : ''} ${this.fillMode ? 'k-button-' + this.fillMode : ''} ${this.fillMode ? 'k-button-' + this.fillMode + '-base' : ''}`;\n }\n /**\n * @hidden\n */\n get filterInputClasses() {\n return `${this.size ? getSizeClass('input', this.size) : ''} ${this.fillMode ? 'k-input-' + this.fillMode : ''} ${this.rounded ? getRoundedClass(this.rounded) : ''}`;\n }\n verifySettings() {\n if (!isDevMode()) {\n return;\n }\n if (this.valuePrimitive === true && isPresent(this.value) && typeof this.value === \"object\") {\n throw new Error(DropDownTreeMessages.primitive);\n }\n if (this.valuePrimitive === true && isPresent(this.value) && typeof this.dataItem !== \"object\") {\n throw new Error(DropDownTreeMessages.dataItem);\n }\n if (this.valuePrimitive === false && isPresent(this.value) && typeof this.value !== \"object\") {\n throw new Error(DropDownTreeMessages.object);\n }\n if (!isPresent(this.valueField) || !isPresent(this.textField)) {\n throw new Error(DropDownTreeMessages.textAndValue);\n }\n if ((isArray(this.valueField) || isArray(this.textField)) && isPresent(this.value) && !isPresent(this.valueDepth)) {\n throw new Error(DropDownTreeMessages.valueDepth);\n }\n }\n emitValueChange(value) {\n this.onChangeCallback(value);\n this.valueChange.emit(value);\n }\n getText(textField, dataItem) {\n if (isPresent(dataItem) && isPresent(textField)) {\n const field = this.getField(textField, dataItem);\n return getter(field)(dataItem);\n }\n return null;\n }\n /**\n * @hidden\n *\n * Determines the `valueField` and `textField` for a specific level in the data set\n * @param field - the field value (string | string[])\n * @param value - current value\n */\n getField(field, value) {\n const fieldsCount = field.length - 1;\n if (typeof field === 'string') {\n // If the `valueField` | `textField` is the same for all levels\n return field;\n }\n else if (isPresent(this.valueDepth)) {\n // When `valueDepth` can be defined from the index on selectionChange or provided by the user\n return fieldsCount < this.valueDepth ? field[fieldsCount] : field[this.valueDepth];\n }\n else {\n // Fallback: Look to find a match of each field in the current data item\n // Side effect may occur if all of the listed fields are present in the data item\n return field.find(item => item in value);\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 createPopup() {\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 appendTo: this.appendTo,\n anchorAlign: anchorPosition,\n content: this.popupTemplate,\n popupAlign: popupPosition,\n positionMode: 'absolute',\n popupClass: this.popupContainerClasses\n });\n const popupWrapper = this.popupRef.popupElement;\n const { min, max } = this.width;\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.opened.emit();\n });\n this.popupRef.popupClose.subscribe(() => {\n this.closed.emit();\n });\n }\n destroyPopup() {\n if (this.popupRef) {\n this.popupRef.close();\n this.popupRef = null;\n if (this.filter !== \"\") {\n this.filter = \"\";\n this.allNodesHidden = false;\n if (hasObservers(this.filterChange)) {\n this._zone.run(() => {\n this.filterChange.emit(\"\");\n });\n }\n }\n }\n }\n handleEscape() {\n this.togglePopup(false);\n this.focus();\n }\n setState() {\n if (isPresent(this.value) && isPresent(this.dataItem) && isPresent(this.valueField)) {\n this.text = this.getText(this.textField, this.dataItem);\n const valueField = this.getField(this.valueField, this.dataItem);\n this.selectBy = valueField;\n this.selectedKeys = [getter(valueField)(this.dataItem)];\n }\n else {\n this.clearState();\n }\n this.cdr.markForCheck();\n }\n clearState() {\n this.text = undefined;\n this.selectedKeys = [];\n }\n subscribeEvents() {\n this.subscriptions.push(this.navigationService.open.subscribe(() => this.togglePopup(true)), this.navigationService.close.subscribe(() => {\n this.togglePopup(false);\n this.focus();\n }), this.navigationService.enter\n .pipe(tap((event) => event.originalEvent.preventDefault()))\n .subscribe(() => this.togglePopup(true)), this.navigationService.esc\n .subscribe(() => this.handleEscape()), this.navigationService.tab.subscribe(() => this.focus()), this.navigationService.down.subscribe((event) => {\n if (!this.treeview) {\n return;\n }\n event.originalEvent.preventDefault();\n if (!this.treeview.isActive) {\n this.treeview.focus();\n }\n }), this.navigationService.up.subscribe((event) => {\n if (!this.treeview) {\n return;\n }\n event.originalEvent.preventDefault();\n if (this.filterable && this.treeview['navigationService']['activeIndex'] === '0') {\n this.filterInput.nativeElement.focus();\n }\n }));\n }\n subscribeTouchEvents() {\n if (!isDocumentAvailable() || !this.touchEnabled) {\n return;\n }\n this._zone.runOutsideAngular(() => \n // Roll up DropDownTree on iOS when tapped outside\n this.touchstartDisposeHandler = this.renderer.listen(document, 'touchstart', (e) => {\n const target = e.target;\n if (this.isFocused && !inDropDown(this.wrapper, target, this.popupRef)) {\n this._zone.run(() => {\n if (this.isOpen) {\n this.treeview.blur();\n }\n this.blur();\n });\n }\n }));\n }\n subscribeFocusEvents() {\n if (isDocumentAvailable()) {\n this.handleFocus = this.handleFocus.bind(this);\n this.handleDocumentBlur = this.handleDocumentBlur.bind(this);\n this._zone.runOutsideAngular(() => {\n const useCapture = true;\n document.addEventListener('focus', this.handleFocus, useCapture);\n document.addEventListener('blur', this.handleDocumentBlur, useCapture);\n });\n }\n }\n unSubscribeFocusEvents() {\n if (isDocumentAvailable()) {\n const useCapture = true;\n document.removeEventListener('focus', this.handleFocus, useCapture);\n document.removeEventListener('blur', this.handleDocumentBlur, useCapture);\n }\n }\n unsubscribeEvents() {\n this.subscriptions.forEach(sub => sub.unsubscribe());\n this.unSubscribeFocusEvents();\n if (this.touchstartDisposeHandler) {\n this.touchstartDisposeHandler();\n }\n }\n handleDocumentBlur(event) {\n if (event.target !== this.wrapper.nativeElement) {\n return;\n }\n event.stopImmediatePropagation();\n this.handleBlur(event);\n }\n assignAriaDescribedBy() {\n const currentValue = this.wrapper.nativeElement.getAttribute('aria-describedby') || '';\n // add to the current value - don't replace it (the aria-describedby is used by the FormField component as well)\n const newValue = `${this.valueLabelId} ${currentValue.trim()}`.trim();\n this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-describedby', newValue);\n }\n setComponentClasses() {\n if (this.size) {\n this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('picker', this.size));\n }\n if (this.rounded) {\n this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(this.rounded));\n }\n if (this.fillMode) {\n this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('picker', this.fillMode));\n }\n }\n};\nDropDownTreeComponent.ɵfac = function DropDownTreeComponent_Factory(t) { return new (t || DropDownTreeComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc4.PopupService), ɵngcc0.ɵɵdirectiveInject(NavigationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(TOUCH_ENABLED, 8)); };\nDropDownTreeComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DropDownTreeComponent, selectors: [[\"kendo-dropdowntree\"]], contentQueries: function DropDownTreeComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NoDataTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, HeaderTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, FooterTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NodeTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, ValueTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.noDataTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.headerTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.footerTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.nodeTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.valueTemplate = _t.first);\n } }, viewQuery: function DropDownTreeComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c40, 5);\n ɵngcc0.ɵɵviewQuery(_c9, 7);\n ɵngcc0.ɵɵviewQuery(_c8, 7, ViewContainerRef);\n ɵngcc0.ɵɵviewQuery(_c41, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.treeview = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.popupTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.container = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.filterInput = _t.first);\n } }, hostVars: 17, hostBindings: function DropDownTreeComponent_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function DropDownTreeComponent_click_HostBindingHandler() { return ctx.handleClick(); })(\"keydown\", function DropDownTreeComponent_keydown_HostBindingHandler($event) { return ctx.handleKeydown($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"role\", ctx.role)(\"aria-haspopup\", ctx.ariaHasPopup)(\"dir\", ctx.direction)(\"aria-disabled\", ctx.isDisabled)(\"id\", ctx.id)(\"tabindex\", ctx.hostTabIndex)(\"aria-expanded\", ctx.isAriaExpanded)(\"readonly\", ctx.isReadonly)(\"aria-readonly\", ctx.isReadonly);\n ɵngcc0.ɵɵclassProp(\"k-dropdowntree\", ctx.hostClasses)(\"k-picker\", ctx.hostClasses)(\"k-disabled\", ctx.isDisabled)(\"k-loading\", ctx.isLoading);\n } }, inputs: { clearButton: \"clearButton\", hasChildren: \"hasChildren\", fetchChildren: \"fetchChildren\", placeholder: \"placeholder\", listHeight: \"listHeight\", disabled: \"disabled\", readonly: \"readonly\", valuePrimitive: \"valuePrimitive\", itemDisabled: \"itemDisabled\", isNodeVisible: \"isNodeVisible\", loadOnDemand: \"loadOnDemand\", filterable: \"filterable\", filter: \"filter\", focusableId: \"focusableId\", data: \"data\", value: \"value\", popupSettings: \"popupSettings\", dataItem: \"dataItem\", tabindex: \"tabindex\", size: \"size\", rounded: \"rounded\", fillMode: \"fillMode\", isNodeExpanded: \"isNodeExpanded\", valueDepth: \"valueDepth\", loading: \"loading\", textField: \"textField\", valueField: \"valueField\" }, outputs: { open: \"open\", opened: \"opened\", close: \"close\", closed: \"closed\", nodeExpand: \"nodeExpand\", nodeCollapse: \"nodeCollapse\", onFocus: \"focus\", onBlur: \"blur\", valueChange: \"valueChange\", filterChange: \"filterChange\" }, exportAs: [\"kendoDropDownTree\"], features: [ɵngcc0.ɵɵProvidersFeature([\n DataService,\n SelectionService,\n NavigationService,\n DisabledItemsService,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.dropdowntree'\n },\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DropDownTreeComponent_1)\n },\n {\n provide: KendoInput,\n useExisting: forwardRef(() => DropDownTreeComponent_1)\n },\n {\n provide: DataBoundComponent,\n useExisting: forwardRef(() => DropDownTreeComponent_1)\n },\n {\n provide: ExpandableComponent,\n useExisting: forwardRef(() => DropDownTreeComponent_1)\n }\n ]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 12, vars: 7, consts: function () { let i18n_42; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text displayed in the popup when there are no items\n * @meaning kendo.dropdowntree.noDataText\n */\n const MSG_EXTERNAL_8377764809518564323$$DIST_FESM2015_INDEX_JS_43 = goog.getMsg(\"NO DATA FOUND\");\n i18n_42 = MSG_EXTERNAL_8377764809518564323$$DIST_FESM2015_INDEX_JS_43;\n }\n else {\n i18n_42 = $localize `:kendo.dropdowntree.noDataText|The text displayed in the popup when there are no items␟b5507b240a829a596159da3600ea1c73810d8708␟8377764809518564323:NO DATA FOUND`;\n } let i18n_44; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the clear button\n * @meaning kendo.dropdowntree.clearTitle\n */\n const MSG_EXTERNAL_5091538317194981642$$DIST_FESM2015_INDEX_JS_45 = goog.getMsg(\"clear\");\n i18n_44 = MSG_EXTERNAL_5091538317194981642$$DIST_FESM2015_INDEX_JS_45;\n }\n else {\n i18n_44 = $localize `:kendo.dropdowntree.clearTitle|The title of the clear button␟549a21c02a5be9711c5297a917390d5f4c06448b␟5091538317194981642:clear`;\n } let i18n_46; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text set as aria-label on the select button\n * @meaning kendo.dropdowntree.selectButtonText\n */\n const MSG_EXTERNAL_7607456189720144875$$DIST_FESM2015_INDEX_JS_47 = goog.getMsg(\"Select\");\n i18n_46 = MSG_EXTERNAL_7607456189720144875$$DIST_FESM2015_INDEX_JS_47;\n }\n else {\n i18n_46 = $localize `:kendo.dropdowntree.selectButtonText|The text set as aria-label on the select button␟21b7c8cbddfdd8513e788c3bddb60ebe8234a4b9␟7607456189720144875:Select`;\n } return [[\"kendoDropDownTreeLocalizedMessages\", \"\", \"noDataText\", i18n_42, \"clearTitle\", i18n_44, \"selectButtonText\", i18n_46], [\"role\", \"option\", 1, \"k-input-inner\"], [1, \"k-input-value-text\"], [4, \"ngIf\"], [3, \"ngIf\"], [\"class\", \"k-clear-value\", \"aria-hidden\", \"true\", 3, \"visibility\", \"click\", 4, \"ngIf\"], [\"tabindex\", \"-1\", \"type\", \"button\", \"aria-hidden\", \"true\", 1, \"k-input-button\", \"k-button\", \"k-icon-button\", 3, \"ngClass\"], [1, \"k-button-icon\", \"k-icon\", 3, \"ngClass\"], [\"popupTemplate\", \"\"], [\"container\", \"\"], [3, \"templateContext\"], [\"aria-hidden\", \"true\", 1, \"k-clear-value\", 3, \"click\"], [1, \"k-icon\", \"k-i-x\"], [\"class\", \"k-list-filter\", 4, \"ngIf\"], [\"kendoTreeViewSelectable\", \"\", 3, \"size\", \"nodes\", \"maxHeight\", \"animate\", \"selectedKeys\", \"selectBy\", \"textField\", \"children\", \"hasChildren\", \"loadOnDemand\", \"isExpanded\", \"isDisabled\", \"nodeTemplate\", \"filter\", \"isVisible\", \"selectedKeysChange\", \"focusout\", \"keydown\", \"selectionChange\", \"expand\", \"collapse\", 4, \"ngIf\"], [\"class\", \"k-no-data\", 4, \"ngIf\"], [1, \"k-list-filter\"], [1, \"k-textbox\", \"k-input\", 3, \"ngClass\"], [1, \"k-input-prefix\"], [1, \"k-input-icon\", \"k-icon\", \"k-i-search\"], [\"role\", \"textbox\", \"aria-haspopup\", \"true\", \"aria-expanded\", \"false\", \"tabindex\", \"0\", \"aria-disabled\", \"false\", \"aria-readonly\", \"false\", 1, \"k-input-inner\", 3, \"filterInput\", \"ngModel\", \"kendoEventsOutsideAngular\", \"scope\", \"input\", \"keydown.arrowdown\", \"keydown.alt.arrowup\", \"ngModelChange\"], [\"filterInput\", \"\"], [\"kendoTreeViewSelectable\", \"\", 3, \"size\", \"nodes\", \"animate\", \"selectedKeys\", \"selectBy\", \"textField\", \"children\", \"hasChildren\", \"loadOnDemand\", \"isExpanded\", \"isDisabled\", \"nodeTemplate\", \"filter\", \"isVisible\", \"selectedKeysChange\", \"focusout\", \"keydown\", \"selectionChange\", \"expand\", \"collapse\"], [\"treeview\", \"\"], [1, \"k-no-data\"], [3, \"ngIf\", \"templateContext\"]]; }, template: function DropDownTreeComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 0);\n ɵngcc0.ɵɵelementStart(1, \"span\", 1)(2, \"span\", 2);\n ɵngcc0.ɵɵtemplate(3, DropDownTreeComponent_3_Template, 1, 4, null, 3);\n ɵngcc0.ɵɵtemplate(4, DropDownTreeComponent_ng_template_4_Template, 1, 1, \"ng-template\", 4);\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵtemplate(5, DropDownTreeComponent_span_5_Template, 2, 3, \"span\", 5);\n ɵngcc0.ɵɵelementStart(6, \"button\", 6);\n ɵngcc0.ɵɵelement(7, \"span\", 7);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(8, DropDownTreeComponent_ng_template_8_Template, 5, 5, \"ng-template\", null, 8, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵelementContainer(10, null, 9);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"id\", ctx.valueLabelId);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.valueTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.valueTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.loading && !ctx.readonly && ctx.clearButton && (ctx.text == null ? null : ctx.text.length) && !ctx.disabled);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx.selectButtonClasses);\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx.messageFor(\"selectButtonText\"));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx.buttonClasses);\n } }, directives: function () { return [LocalizedMessagesDirective, ɵngcc3.NgIf, TemplateContextDirective, ɵngcc3.NgClass, ɵngcc5.DefaultValueAccessor, FilterInputDirective, ɵngcc5.NgControlStatus, ɵngcc5.NgModel, ɵngcc2.EventsOutsideAngularDirective, ɵngcc6.TreeViewComponent, ɵngcc6.SelectDirective]; }, encapsulation: 2, changeDetection: 0 });\n__decorate([\n HostBinding('class.k-dropdowntree'),\n HostBinding('class.k-picker'),\n __metadata(\"design:type\", Boolean)\n], DropDownTreeComponent.prototype, \"hostClasses\", void 0);\n__decorate([\n HostBinding('class.k-disabled'),\n HostBinding('attr.aria-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DropDownTreeComponent.prototype, \"isDisabled\", null);\n__decorate([\n HostBinding('class.k-loading'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DropDownTreeComponent.prototype, \"isLoading\", null);\n__decorate([\n HostBinding('attr.id'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], DropDownTreeComponent.prototype, \"id\", null);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String)\n], DropDownTreeComponent.prototype, \"direction\", void 0);\n__decorate([\n HostBinding('attr.tabindex'),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [])\n], DropDownTreeComponent.prototype, \"hostTabIndex\", null);\n__decorate([\n HostBinding('attr.role'),\n __metadata(\"design:type\", String)\n], DropDownTreeComponent.prototype, \"role\", void 0);\n__decorate([\n HostBinding('attr.aria-haspopup'),\n __metadata(\"design:type\", String)\n], DropDownTreeComponent.prototype, \"ariaHasPopup\", void 0);\n__decorate([\n HostBinding('attr.aria-expanded'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DropDownTreeComponent.prototype, \"isAriaExpanded\", null);\n__decorate([\n HostBinding('attr.readonly'),\n HostBinding('attr.aria-readonly'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DropDownTreeComponent.prototype, \"isReadonly\", null);\n__decorate([\n HostListener('click'),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], DropDownTreeComponent.prototype, \"handleClick\", null);\n__decorate([\n HostListener('keydown', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], DropDownTreeComponent.prototype, \"handleKeydown\", null);\n__decorate([\n ContentChild(NoDataTemplateDirective, { static: false }),\n __metadata(\"design:type\", NoDataTemplateDirective)\n], DropDownTreeComponent.prototype, \"noDataTemplate\", void 0);\n__decorate([\n ContentChild(HeaderTemplateDirective, { static: false }),\n __metadata(\"design:type\", HeaderTemplateDirective)\n], DropDownTreeComponent.prototype, \"headerTemplate\", void 0);\n__decorate([\n ContentChild(FooterTemplateDirective, { static: false }),\n __metadata(\"design:type\", FooterTemplateDirective)\n], DropDownTreeComponent.prototype, \"footerTemplate\", void 0);\n__decorate([\n ContentChild(NodeTemplateDirective, { static: false }),\n __metadata(\"design:type\", NodeTemplateDirective)\n], DropDownTreeComponent.prototype, \"nodeTemplate\", void 0);\n__decorate([\n ContentChild(ValueTemplateDirective, { static: false }),\n __metadata(\"design:type\", ValueTemplateDirective)\n], DropDownTreeComponent.prototype, \"valueTemplate\", void 0);\n__decorate([\n ViewChild('popupTemplate', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], DropDownTreeComponent.prototype, \"popupTemplate\", void 0);\n__decorate([\n ViewChild('container', { read: ViewContainerRef, static: true }),\n __metadata(\"design:type\", ViewContainerRef)\n], DropDownTreeComponent.prototype, \"container\", void 0);\n__decorate([\n ViewChild('treeview', { static: false }),\n __metadata(\"design:type\", TreeViewComponent),\n __metadata(\"design:paramtypes\", [TreeViewComponent])\n], DropDownTreeComponent.prototype, \"treeview\", null);\n__decorate([\n ViewChild('filterInput', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], DropDownTreeComponent.prototype, \"filterInput\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DropDownTreeComponent.prototype, \"open\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DropDownTreeComponent.prototype, \"opened\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DropDownTreeComponent.prototype, \"close\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DropDownTreeComponent.prototype, \"closed\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DropDownTreeComponent.prototype, \"nodeExpand\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DropDownTreeComponent.prototype, \"nodeCollapse\", void 0);\n__decorate([\n Output('focus'),\n __metadata(\"design:type\", EventEmitter)\n], DropDownTreeComponent.prototype, \"onFocus\", void 0);\n__decorate([\n Output('blur'),\n __metadata(\"design:type\", EventEmitter)\n], DropDownTreeComponent.prototype, \"onBlur\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DropDownTreeComponent.prototype, \"valueChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DropDownTreeComponent.prototype, \"filterChange\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DropDownTreeComponent.prototype, \"loading\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DropDownTreeComponent.prototype, \"clearButton\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], DropDownTreeComponent.prototype, \"data\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], DropDownTreeComponent.prototype, \"value\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DropDownTreeComponent.prototype, \"textField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DropDownTreeComponent.prototype, \"valueField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], DropDownTreeComponent.prototype, \"valueDepth\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], DropDownTreeComponent.prototype, \"hasChildren\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], DropDownTreeComponent.prototype, \"fetchChildren\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DropDownTreeComponent.prototype, \"placeholder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], DropDownTreeComponent.prototype, \"popupSettings\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], DropDownTreeComponent.prototype, \"dataItem\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], DropDownTreeComponent.prototype, \"listHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DropDownTreeComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DropDownTreeComponent.prototype, \"readonly\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DropDownTreeComponent.prototype, \"valuePrimitive\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], DropDownTreeComponent.prototype, \"tabindex\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], DropDownTreeComponent.prototype, \"size\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], DropDownTreeComponent.prototype, \"rounded\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], DropDownTreeComponent.prototype, \"fillMode\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], DropDownTreeComponent.prototype, \"itemDisabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], DropDownTreeComponent.prototype, \"isNodeExpanded\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], DropDownTreeComponent.prototype, \"isNodeVisible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DropDownTreeComponent.prototype, \"loadOnDemand\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DropDownTreeComponent.prototype, \"filterable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DropDownTreeComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DropDownTreeComponent.prototype, \"focusableId\", void 0);\nDropDownTreeComponent = DropDownTreeComponent_1 = __decorate([ __param(7, Optional()), __param(7, Inject(TOUCH_ENABLED)),\n __metadata(\"design:paramtypes\", [ElementRef,\n PopupService,\n NavigationService,\n Renderer2,\n NgZone,\n ChangeDetectorRef,\n LocalizationService, Boolean])\n], DropDownTreeComponent);\n\nvar MultiSelectTreeComponent_1;\n/* tslint:disable:member-ordering */\nconst DEFAULT_POPUP_SETTINGS$1 = { animate: true };\nconst DEFAULT_CHECKABLE_SETTINGS = { checkChildren: true, checkOnClick: true };\nconst hasChildren$1 = () => false;\nconst fetchChildren$1 = () => of([]);\nconst itemDisabled$1 = () => false;\nconst isNodeVisible$1 = () => true;\n/**\n * Represents the [Kendo UI MultiSelectTree component for Angular]({% slug overview_multiselecttree %}).\n */\nlet MultiSelectTreeComponent = MultiSelectTreeComponent_1 = class MultiSelectTreeComponent {\n constructor(wrapper, popupService, renderer, navigationService, _zone, localization, cdr, touchEnabled$$1) {\n this.wrapper = wrapper;\n this.popupService = popupService;\n this.renderer = renderer;\n this.navigationService = navigationService;\n this._zone = _zone;\n this.localization = localization;\n this.cdr = cdr;\n this.touchEnabled = touchEnabled$$1;\n this.hostClasses = true;\n this.role = 'combobox';\n this.ariaHasPopup = 'tree';\n /**\n * Sets the levels in the data set where the values can be found when `valueField` is an Array.\n * The field serves to correctly allocate a data item used when the MultiSelectTree is initialized with a value.\n */\n this.valueDepth = [];\n /**\n * The hint which is displayed when the component is empty.\n */\n this.placeholder = \"\";\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 * Specifies the type of the selected value\n * ([more information and example]({% slug valuebinding_multiselecttree %}#toc-primitive-values)).\n * If set to `true`, the selected value has to be a primitive one.\n */\n this.valuePrimitive = false;\n /**\n * Indicates whether the child nodes will be fetched on node expand or will be initially prefetched.\n * @default false\n */\n this.loadOnDemand = false;\n /**\n * @hidden\n *\n * Used by the kendo-label and kendo-floatinglabel to access and associate the focusable element with the provided label via aria-labelledby.\n */\n this.focusableId = `k-${guid()}`;\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 * @default true\n */\n this.clearButton = true;\n /**\n * Renders the built-in input element for filtering the MultiSelectTree.\n * If set to `true`, the component emits the `filterChange` event, which can be used to [filter the MultiSelectTree manually]({% slug filtering_multiselecttree %}#toc-manual-filtering).\n * A built-in filtering implementation is available to use with the [`kendoMultiSelectTreeHierarchyBinding`]({% slug api_dropdowns_multiselecttreehierarchybindingdirective %}) and [`kendoMultiSelectTreeFlatBinding`]({% slug api_dropdowns_multiselecttreeflatbindingdirective %}) directives.\n * @default false\n */\n this.filterable = false;\n /**\n * If `checkАll` is set to `true` and the checkboxes are enabled, a tri-state checkbox appears above the embedded treeview.\n * Clicking the checkbox checks or unchecks all enabled items of the treeview that are loaded.\n * @default false\n */\n this.checkAll = false;\n /**\n * A function which determines if a specific node has child nodes.\n */\n this.hasChildren = hasChildren$1;\n /**\n * A function which provides the child nodes for a given parent node.\n */\n this.fetchChildren = fetchChildren$1;\n /**\n * A callback which determines whether a tree node should be rendered as hidden. The utility .k-display-none class is used to hide the nodes.\n * Useful for custom filtering implementations.\n */\n this.isNodeVisible = isNodeVisible$1;\n /**\n * A function that is executed for each data item and determines if a specific item is disabled.\n */\n this.itemDisabled = itemDisabled$1;\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 * Fires each time the user focuses the MultiSelectTree.\n */\n this.onFocus = new EventEmitter();\n /**\n * Fires each time the MultiSelectTree gets blurred.\n */\n this.onBlur = new EventEmitter();\n /**\n * Fires each time the popup is about to open\n * ([see example]({% slug openstate_multiselecttree %})).\n * This event is preventable. If you cancel it, the popup will remain closed.\n */\n this.open = new EventEmitter();\n /**\n * Fires after the popup has been opened.\n */\n this.opened = new EventEmitter();\n /**\n * Fires each time the popup is about to close\n * ([see example]({% slug openstate_multiselecttree %})).\n * This event is preventable. If you cancel it, the popup will remain open.\n */\n this.close = new EventEmitter();\n /**\n * Fires after the popup has been closed.\n */\n this.closed = new EventEmitter();\n /**\n * Fires when the user expands a node in the popup TreeView.\n */\n this.nodeExpand = new EventEmitter();\n /**\n * Fires when the user collapses a node in the popup TreeView.\n */\n this.nodeCollapse = new EventEmitter();\n /**\n * Fires each time the value is changed\n * ([see example]({% slug overview_multiselecttree %}#toc-events)).\n */\n this.valueChange = new EventEmitter();\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 /**\n * Fires when the value of the built-in filter input element changes.\n */\n this.filterChange = new EventEmitter();\n /**\n * @hidden\n */\n this.filterStateChange = new EventEmitter();\n /**\n * @hidden\n */\n this.checkedItems = [];\n /**\n * @hidden\n */\n this.checkBy = (item) => item;\n /**\n * @hidden\n */\n this.showAfter = 0;\n /**\n * @hidden\n */\n this.allNodesHidden = false;\n this.tagListId = guid();\n this.tagPrefix = \"tag-\" + guid();\n this.focusedTagIndex = undefined;\n this._value = [];\n this._tabindex = 0;\n this._popupSettings = DEFAULT_POPUP_SETTINGS$1;\n this._checkableSettings = DEFAULT_CHECKABLE_SETTINGS;\n this._isFocused = false;\n this._size = 'medium';\n this._rounded = 'medium';\n this._fillMode = 'solid';\n this.subscriptions = [];\n this.lastAction = 'check';\n this.onTouchedCallback = noop;\n this.onChangeCallback = noop;\n this.direction = localization.rtl ? 'rtl' : 'ltr';\n this.subscribeEvents();\n this.subscribeFocusEvents();\n }\n get isDisabled() {\n return this.disabled;\n }\n get isLoading() {\n return this.loading;\n }\n get id() {\n return this.focusableId;\n }\n get hostTabIndex() {\n return this.tabindex;\n }\n get isAriaExpanded() {\n return this.isOpen;\n }\n get isReadonly() {\n return this.readonly;\n }\n get ariaDescribedBy() {\n return this.tagListId;\n }\n get ariaActiveDescendant() {\n return this.focusedTagId;\n }\n /**\n * @hidden\n */\n handleClick() {\n this.togglePopup(!this.isOpen);\n }\n /**\n * @hidden\n */\n handleKeydown(event) {\n const deleteTag = this.isWrapperActive && event.keyCode === Keys.Backspace && this.tags.length > 0;\n if (deleteTag) {\n this.handleBackspace();\n return;\n }\n if (this.disabled || this.readonly) {\n return;\n }\n const eventData = event;\n const action = this.navigationService.process({\n originalEvent: eventData\n });\n if (action === NavigationAction.Open) {\n eventData.preventDefault();\n }\n }\n set treeview(treeview) {\n this._treeview = treeview;\n if (treeview) {\n // If filtering is enabled, focus the TreeView on mobile devices instead of the filter input\n if (this.isFocused && !this.filterable && !this.checkAll || this.touchEnabled) {\n treeview.focus();\n }\n /**\n * the treeview animations are initially disabled (we don't want expand animations during popup opening)\n * re-enables the animations for user interaction\n * The Promise is required to properly change the `animate` property when\n * the popup is appended to a container and opened upon initialization.\n * Otherwise, the \"Expression has changed...\" type error will be thrown.\n */\n Promise.resolve(null).then(() => this.treeview.animate = true);\n }\n }\n get treeview() {\n return this._treeview;\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 providedTabIndex = parseNumber(value);\n const defaultTabIndex = 0;\n this._tabindex = !isNaN(providedTabIndex) ? providedTabIndex : defaultTabIndex;\n }\n get tabindex() {\n return this.disabled ? -1 : this._tabindex;\n }\n /**\n * Sets the size of the component.\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `null`\n *\n */\n set size(size) {\n this.renderer.removeClass(this.wrapper.nativeElement, getSizeClass('input', this.size));\n if (size) {\n this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', size));\n }\n this._size = size;\n }\n get size() {\n return this._size;\n }\n /**\n * Sets the border radius of the component.\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `'full'`\n * * `null`\n *\n */\n set rounded(rounded) {\n this.renderer.removeClass(this.wrapper.nativeElement, getRoundedClass(this.rounded));\n if (rounded) {\n this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(rounded));\n }\n this._rounded = rounded;\n }\n get rounded() {\n return this._rounded;\n }\n /**\n * Sets the fillMode of the component.\n *\n * The possible values are:\n * * `'flat'`\n * * `'solid'` (default)\n * * `'outline'`\n * * `null`\n *\n */\n set fillMode(fillMode) {\n this.renderer.removeClass(this.wrapper.nativeElement, getFillModeClass('input', this.fillMode));\n if (fillMode) {\n this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', fillMode));\n }\n this._fillMode = fillMode;\n }\n get fillMode() {\n return this._fillMode;\n }\n /**\n * Configures the popup of the MultiSelectTree.\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.\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({}, DEFAULT_POPUP_SETTINGS$1, settings);\n // `detectChanges` needed, otherwise upon value initialization and `appendTo` property\n // an error is thrown => ExpressionChangedAfterItHasBeenCheckedError\n this.cdr.detectChanges();\n }\n get popupSettings() {\n return this._popupSettings;\n }\n /**\n * Defines the checkable settings of the MultiSelecTree nodes.\n * If no value is provided, the default [`CheckableSettings`]({% slug api_dropdowns_multiselecttreecheckablesettings %}) are applied.\n */\n set checkableSettings(settings) {\n this._checkableSettings = Object.assign({}, DEFAULT_CHECKABLE_SETTINGS, settings);\n }\n get checkableSettings() {\n return this._checkableSettings;\n }\n /**\n * Sets the data of the MultiSelectTree.\n *\n * > The data has to be provided in an array-like list with objects.\n */\n set data(data) {\n this._nodes = data;\n this.setState();\n }\n get data() {\n return this._nodes;\n }\n /**\n * Sets the value of the MultiSelectTree.\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 */\n set value(value) {\n this._value = value ? value : [];\n this.setState();\n }\n get value() {\n return this._value;\n }\n /**\n * Keeps the current `dataItems` object in order to resolve selection.\n * Needs to be provided when when programmatically setting a `value` and `valuePrimitive` is set to `true`.\n */\n set dataItems(items) {\n this._dataItems = (items || []).map((item, index) => {\n if (hasProps(item, ['dataItem', 'index', 'level'])) {\n return item;\n }\n return {\n dataItem: item,\n index: null,\n level: this.valueDepth[index] || 0\n };\n });\n this.setState();\n }\n get dataItems() {\n return this._dataItems || this.value.map((value, index) => ({\n dataItem: value,\n index: null,\n level: this.valueDepth[index] || 0\n }));\n }\n /**\n * @hidden\n */\n get focusedTagId() {\n if (!isPresent(this.focusedTagIndex) || this.isOpen) {\n return null;\n }\n const dataItem = this.tags[this.focusedTagIndex];\n return `${this.tagPrefix}-${valueFrom({ dataItem }, this.valueField)}`;\n }\n set isFocused(isFocused) {\n this.renderer[isFocused ? 'addClass' : 'removeClass'](this.wrapper.nativeElement, 'k-focus');\n this._isFocused = isFocused;\n }\n get isFocused() {\n return this._isFocused;\n }\n /**\n * Returns the current open state of the popup.\n */\n get isOpen() {\n return isPresent(this.popupRef);\n }\n get width() {\n const wrapperWidth = this.wrapper.nativeElement.offsetWidth;\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 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 get popupContainerClasses() {\n const containerClasses = ['k-popup-dropdowntree'];\n if (this.popupSettings.popupClass) {\n containerClasses.push(this.popupSettings.popupClass);\n }\n return containerClasses;\n }\n /**\n * @hidden\n *\n * Alias for `data`. Used for compatibility with the `DataBoundComponent` interface.\n * Required for the data-binding directives.\n */\n set nodes(nodes) {\n this.data = nodes;\n }\n get nodes() {\n return this.data;\n }\n /**\n * @hidden\n *\n * Alias for `fetchChildren`. Used for compatibility with the `DataBoundComponent` interface.\n * Required for the data-binding directives\n */\n set children(callback) {\n this.fetchChildren = callback;\n }\n get children() {\n return this.fetchChildren;\n }\n /**\n * @hidden\n *\n * Alias for `nodeExpand`. Used for compatibility with the `ExpandableComponent` interface.\n * Required for the expand-directive.\n */\n get expand() {\n return this.nodeExpand;\n }\n /**\n * @hidden\n *\n * Alias for `nodeCollapse`. Used for compatibility with the `ExpandableComponent` interface.\n * Required for the expand-directive.\n */\n get collapse() {\n return this.nodeCollapse;\n }\n /**\n * @hidden\n *\n * Alias for `isNodeExpanded`. Used for compatibility with the `ExpandableComponent` interface.\n * Required for the expand-directive.\n */\n set isExpanded(callback) {\n this.isNodeExpanded = callback;\n }\n get isExpanded() {\n return this.isNodeExpanded;\n }\n /**\n * @hidden\n *\n * Alias for `isNodeVisible`. Used for compatibility with the `DataBoundComponent` interface.\n * The `DataBoundComponent` interface is used in the data-binding directives.\n */\n set isVisible(callback) {\n this.isNodeVisible = callback;\n }\n get isVisible() {\n return this.isNodeVisible;\n }\n get isTagFocused() {\n return !this.isOpen && this.focusedTagIndex !== undefined;\n }\n get isTreeViewActive() {\n return this.treeview && this.treeview.isActive;\n }\n get isWrapperActive() {\n return document.activeElement === this.wrapper.nativeElement;\n }\n get isFilterActive() {\n return this.filterInput && document.activeElement === this.filterInput.nativeElement;\n }\n get isCheckAllActive() {\n return this.checkAllInput && document.activeElement === this.checkAllInput.nativeElement;\n }\n ngOnInit() {\n this.renderer.removeAttribute(this.wrapper.nativeElement, 'tabindex');\n this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', String(this.isOpen));\n this.subscriptions.push(this.localization\n .changes.subscribe(({ rtl }) => {\n this.direction = rtl ? 'rtl' : 'ltr';\n this.cdr.markForCheck();\n }));\n this.setComponentClasses();\n }\n /**\n * @hidden\n */\n ngOnDestroy() {\n this.destroyPopup();\n this.unsubscribeEvents();\n }\n /**\n * @hidden\n */\n ngOnChanges(changes) {\n if (anyChanged(['textField', 'valueField', 'valuePrimitive'], changes, false)) {\n this.setState();\n }\n if (anyChanged(['valueDepth', 'value', 'dataItems'], changes, false)) {\n if (changes.value && !changes.dataItems && !this.valuePrimitive) {\n // Update the dataItems if the value is updated programmatically (non-primitive values only)\n // In the primitive case, the client should update the dataItems as well\n this.dataItems = this.value;\n }\n else {\n // Re-map the dataItems because `valueDepth` is not yet available when the check directive parses the items\n this.dataItems = this.dataItems.map((item, index) => (Object.assign({}, item, { level: this.valueDepth[index] || 0 })));\n }\n }\n }\n /**\n * @hidden\n */\n ngAfterContentChecked() {\n this.verifySettings();\n }\n /**\n * @hidden\n *\n * Used by the kendo-floatinglabel component to determine if the floating label\n * should be rendered inside the input when the component is not focused.\n */\n isEmpty() {\n return !Boolean(this.placeholder) && (!isPresent(this.value) || this.value.length === 0);\n }\n /**\n * Focuses the MultiSelectTree.\n */\n focus() {\n if (!this.disabled) {\n this.wrapper.nativeElement.focus();\n }\n }\n /**\n * Blurs the MultiSelectTree.\n */\n blur() {\n if (!this.disabled) {\n this.wrapper.nativeElement.blur();\n }\n }\n /**\n * Focuses a specific item of the MultiSelectTree based on a provided index in the format of `1_1`.\n * The targeted item should be expanded in order for it to be focused.\n * If null or invalid index is provided the focus will be set on the first item.\n */\n focusItemAt(index) {\n if (this.treeview) {\n const lookup = this.treeview.itemLookup(index);\n const isItemDisabled = !isPresent(lookup) || this.treeview.isDisabled(lookup.item.dataItem, lookup.item.index);\n if (!isItemDisabled) {\n this.treeview.focus(index);\n }\n }\n }\n /**\n * Resets the value of the MultiSelectTree.\n * If you use the `reset` method to clear the value of the component,\n * the model will not update automatically and the `valueChange` event will not be fired.\n */\n reset() {\n this.value = [];\n this.dataItems = [];\n this.valueDepth = [];\n }\n /**\n * Toggles the visibility of the popup\n * ([see example]({% slug openstate_multiselecttree %})).\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 \"ViewContainerRef not found...\" error will be thrown.\n Promise.resolve(null).then(() => {\n const shouldOpen = isPresent(open) ? open : !isPresent(this.popupRef);\n this.destroyPopup();\n if (shouldOpen) {\n this.createPopup();\n }\n });\n }\n /**\n * @hidden\n */\n handleFocus(event) {\n if (event.target !== this.wrapper.nativeElement) {\n return;\n }\n event.stopImmediatePropagation();\n if (!this.isFocused) {\n this.isFocused = true;\n if (hasObservers(this.onFocus)) {\n this._zone.run(() => {\n this.onFocus.emit();\n });\n }\n // Re-focus the treeview if `close` is prevented\n if (this.isOpen && this.treeview) {\n if (this.lastNodeOnFocus) {\n this.lastNodeOnFocus.setAttribute('tabindex', '0');\n }\n this.treeview.focus();\n }\n }\n }\n /**\n * @hidden\n */\n handleBlur(e) {\n const relatedTarget = e && e.relatedTarget;\n if (this.wrapper.nativeElement.contains(relatedTarget) ||\n (this.isOpen && this.popupRef.popupElement.contains(relatedTarget))) {\n return;\n }\n this.isFocused = false;\n this.togglePopup(false);\n if (hasObservers(this.onBlur) ||\n isUntouched(this.wrapper.nativeElement)) {\n this._zone.run(() => {\n this.onBlur.emit();\n this.onTouchedCallback();\n });\n }\n }\n /**\n * @hidden\n */\n handleNodeClick(node) {\n if (!this.isFocused) {\n // Re-focus the MultiSelectTree when popup close is prevented and a node is clicked\n // On click the focus should be on the clicked element which is why we need to update the lastNodeOnFocus\n const parent = node.originalEvent.target.parentElement.parentElement;\n this.lastNodeOnFocus = parent;\n this.focus();\n }\n }\n /**\n * @hidden\n */\n togglePopup(open) {\n const isDisabled = this.disabled || this.readonly;\n const sameState = this.isOpen === open;\n this._zone.run(() => {\n this.focusedTagIndex = undefined;\n });\n if (isDisabled || sameState) {\n return;\n }\n const togglePrevented = this.triggerPopupEvents(open);\n if (!togglePrevented) {\n open ?\n this.createPopup() :\n this.destroyPopup();\n }\n else {\n this.removeTreeViewFromTabOrder();\n }\n }\n /**\n * @hidden\n */\n messageFor(key) {\n return this.localization.get(key);\n }\n /**\n * @hidden\n */\n handleCheckedItemsChange(items) {\n this.valueDepth = items.map(item => item.level);\n this.lastAction = items.length > this.dataItems.length ? 'check' : 'uncheck';\n this.dataItems = items.slice();\n this.updateValue(this.dataItems);\n }\n /**\n * @hidden\n */\n handleRemoveTag({ tag, index }) {\n if (this.disabled || this.readonly) {\n return;\n }\n const eventArgs = new RemoveTagEvent(tag);\n this.removeTag.emit(eventArgs);\n if (eventArgs.isDefaultPrevented()) {\n return;\n }\n // Remove tags based on their position index\n if (tag instanceof Array) {\n // Remove group tag\n this.dataItems = this.dataItems.filter((_item, i) => i < this.showAfter || this.disabledIndices.has(i));\n this.valueDepth = this.valueDepth.filter((_item, i) => i < this.showAfter || this.disabledIndices.has(i));\n }\n else {\n // Remove single tag\n this.dataItems = this.dataItems.filter((_item, i) => i !== index || this.disabledIndices.has(i));\n this.valueDepth = this.valueDepth.filter((_item, i) => i !== index || this.disabledIndices.has(i));\n }\n this.updateValue(this.dataItems);\n // focus the wrapper if the component is not focused - the floating label reacts to focus/blur\n if (!this.isFocused) {\n this.focus();\n }\n }\n /**\n * @hidden\n */\n handleTagMapperChange(showAfter) {\n this.showAfter = parseNumber(showAfter);\n this.setTags();\n }\n /**\n * @hidden\n */\n clearAll(event) {\n event.stopImmediatePropagation();\n event.preventDefault();\n this.focus();\n this.value = this.value.filter((_item, index) => this.disabledIndices.has(index));\n this.dataItems = this.dataItems.filter((_item, index) => this.disabledIndices.has(index));\n this.valueDepth = this.valueDepth.filter((_depth, index) => this.disabledIndices.has(index));\n this.emitValueChange(this.value);\n }\n /**\n * @hidden\n */\n writeValue(value) {\n this.value = value || [];\n // Update the dataItems if the value is updated programmatically (non-primitive values only)\n // In the primitive case, the client should update the dataItems as well\n if (!this.valuePrimitive) {\n this.dataItems = this.value;\n }\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 this.cdr.markForCheck();\n }\n /**\n * @hidden\n */\n handleFilterInputChange(term) {\n this.filterChange.next(term);\n this.allNodesHidden = this.nodes.every((node, index) => !this.isVisible(node, String(index)));\n }\n /**\n * @hidden\n */\n get filterInputClasses() {\n return `${this.size ? getSizeClass('input', this.size) : ''} ${this.fillMode ? 'k-input-' + this.fillMode : ''} ${this.rounded ? getRoundedClass(this.rounded) : ''}`;\n }\n /**\n * @hidden\n */\n get checkAllCheckboxClasses() {\n return `${this.size ? getSizeClass('checkbox', this.size) : ''}`;\n }\n /**\n * @hidden\n */\n toggleCheckAll() {\n this.checkAllInput.nativeElement.focus();\n this.checkAllInput.nativeElement.click();\n }\n verifySettings() {\n if (!isDevMode()) {\n return;\n }\n if (!isPresent(this.valueField) || !isPresent(this.textField)) {\n throw new Error(MultiSelectTreeMessages.textAndValue);\n }\n if (!isArray(this.value)) {\n throw new Error(MultiSelectTreeMessages.array);\n }\n if (this.value.length > 0) {\n if (this.valuePrimitive && this.value.some(item => isObject(item))) {\n throw new Error(MultiSelectTreeMessages.primitive);\n }\n const isEveryDataItemObject = this.dataItems.every(item => isObject(item.dataItem));\n if (this.valuePrimitive && !isArray(this.dataItems)) {\n throw new Error(MultiSelectTreeMessages.dataItems);\n }\n if (this.valuePrimitive && !isEveryDataItemObject) {\n throw new Error(MultiSelectTreeMessages.dataItems);\n }\n if (this.valuePrimitive && this.dataItems.length !== this.value.length) {\n throw new Error(MultiSelectTreeMessages.dataItemsLength);\n }\n if (!this.valuePrimitive && !isObjectArray(this.value)) {\n throw new Error(MultiSelectTreeMessages.object);\n }\n if ((isArray(this.valueField) || isArray(this.textField)) && !isArray(this.valueDepth)) {\n throw new Error(MultiSelectTreeMessages.valueDepth);\n }\n if ((isArray(this.valueField) || isArray(this.textField)) && this.valueDepth.length === 0) {\n throw new Error(MultiSelectTreeMessages.valueDepth);\n }\n if ((isArray(this.valueField) || isArray(this.textField)) && this.valueDepth.length !== this.value.length) {\n throw new Error(MultiSelectTreeMessages.valueDepthLength);\n }\n }\n }\n emitValueChange(value) {\n this.onChangeCallback(value);\n this.valueChange.emit(value);\n }\n triggerPopupEvents(open) {\n const eventArgs = new PreventableEvent();\n open ?\n this.open.emit(eventArgs) :\n this.close.emit(eventArgs);\n return eventArgs.isDefaultPrevented();\n }\n createPopup() {\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 appendTo: this.appendTo,\n anchorAlign: anchorPosition,\n content: this.popupTemplate,\n popupAlign: popupPosition,\n positionMode: 'absolute',\n popupClass: this.popupContainerClasses\n });\n const popupWrapper = this.popupRef.popupElement;\n const { min, max } = this.width;\n popupWrapper.style.minWidth = min;\n popupWrapper.style.width = max;\n popupWrapper.style.height = this.height;\n this.renderer.setAttribute(popupWrapper, 'dir', this.direction);\n this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', 'true');\n this.popupRef.popupOpen.subscribe(() => {\n this.cdr.detectChanges();\n this.opened.emit();\n });\n this.popupRef.popupClose.subscribe(() => {\n this.closed.emit();\n });\n }\n destroyPopup() {\n if (this.popupRef) {\n this.popupRef.close();\n this.popupRef = null;\n this.renderer.setAttribute(this.wrapper.nativeElement, 'aria-expanded', 'false');\n if (this.filter !== \"\") {\n this.filter = \"\";\n this.allNodesHidden = false;\n if (hasObservers(this.filterChange)) {\n this._zone.run(() => {\n this.filterChange.emit(\"\");\n });\n }\n }\n }\n }\n subscribeEvents() {\n this.subscriptions.push(this.navigationService.open.subscribe(() => this.togglePopup(true)), this.navigationService.enter\n .pipe(tap((event) => event.originalEvent.preventDefault()))\n .subscribe(() => this.togglePopup(true)), merge(this.navigationService.close, this.navigationService.esc).subscribe(() => {\n this.focus();\n this.togglePopup(false);\n }), this.navigationService.tab.subscribe(this.handleTabKey.bind(this)), this.navigationService.up.subscribe(this.handleUpKey.bind(this)), this.navigationService.down.subscribe(this.handleDownKey.bind(this)), this.navigationService.left\n .pipe(filter(() => !this.isTreeViewActive))\n .subscribe(this.direction === 'rtl' ? this.handleRightKey.bind(this) : this.handleLeftKey.bind(this)), this.navigationService.right\n .pipe(filter(() => !this.isTreeViewActive))\n .subscribe(this.direction === 'rtl' ? this.handleLeftKey.bind(this) : this.handleRightKey.bind(this)), this.navigationService.home.pipe(filter(() => !this.isOpen)).subscribe(this.handleHome.bind(this)), this.navigationService.end.pipe(filter(() => !this.isOpen)).subscribe(this.handleEnd.bind(this)), this.navigationService.backspace.pipe(filter(() => this.isTagFocused)).subscribe(this.handleBackspace.bind(this)), this.navigationService.delete.pipe(filter(() => this.isTagFocused)).subscribe(this.handleDelete.bind(this)));\n }\n subscribeFocusEvents() {\n if (isDocumentAvailable()) {\n this.handleFocus = this.handleFocus.bind(this);\n this.handleDocumentBlur = this.handleDocumentBlur.bind(this);\n this._zone.runOutsideAngular(() => {\n const useCapture = true;\n document.addEventListener('focus', this.handleFocus, useCapture);\n document.addEventListener('blur', this.handleDocumentBlur, useCapture);\n });\n }\n }\n unSubscribeFocusEvents() {\n if (isDocumentAvailable()) {\n const useCapture = true;\n document.removeEventListener('focus', this.handleFocus, useCapture);\n document.removeEventListener('blur', this.handleDocumentBlur, useCapture);\n }\n }\n handleDocumentBlur(event) {\n if (event.target !== this.wrapper.nativeElement) {\n return;\n }\n event.stopImmediatePropagation();\n this.handleBlur(event);\n }\n handleTabKey() {\n this.focus();\n if (this.isOpen) {\n this.treeview.blur();\n this.removeTreeViewFromTabOrder();\n }\n }\n handleUpKey(event) {\n if (!this.treeview) {\n return;\n }\n event.originalEvent.preventDefault();\n // Prevent toggling the focus between the filterInput and the wrapper elements with `up` key\n if (this.isWrapperActive) {\n return;\n }\n const isFirstNodeActive = this.treeview['navigationService']['activeIndex'] === '0';\n // Current focus is on the filter input => should focus the wrapper\n if (this.filterable && this.isFilterActive) {\n this.focus();\n // Current focus is on the treeview first node => should focus the check all checkbox if enabled\n }\n else if (this.checkAll && !this.isCheckAllActive && isFirstNodeActive) {\n this.checkAllInput.nativeElement.focus();\n // Current focus is either on the check all checkbox or the treeview's first node\n // => should focus either the filter input (if enabled) or the wrapper\n }\n else if (this.isCheckAllActive || isFirstNodeActive) {\n this.filterable ?\n this.filterInput.nativeElement.focus() :\n this.focus();\n }\n }\n handleDownKey(event) {\n if (!this.treeview) {\n return;\n }\n event.originalEvent.preventDefault();\n // Current focus is on the wrapper => should focus the filter input\n if (this.filterable && this.isWrapperActive) {\n this.filterInput.nativeElement.focus();\n // Current focus is on the wrapper/filter input => should focus check all checkbox if enabled\n }\n else if (this.checkAll && (this.isWrapperActive || this.isFilterActive)) {\n this.checkAllInput.nativeElement.focus();\n // Should focus the treeview if filterable and check all are disabled\n }\n else if (!this.treeview.isActive) {\n this.treeview.focus();\n }\n this.focusedTagIndex = undefined;\n }\n handleRightKey(event) {\n event.originalEvent.preventDefault();\n const last = this.tags.length - 1;\n if (this.focusedTagIndex === last) {\n this.focusedTagIndex = undefined;\n }\n else if (this.focusedTagIndex < last) {\n this.focusedTagIndex++;\n }\n else if (!this.focusedTagIndex) {\n this.focusedTagIndex = 0;\n }\n }\n handleLeftKey(event) {\n event.originalEvent.preventDefault();\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 handleEnd(event) {\n event.originalEvent.preventDefault();\n this.focusedTagIndex = this.tags.length - 1;\n }\n handleHome(event) {\n event.originalEvent.preventDefault();\n this.focusedTagIndex = 0;\n }\n handleBackspace() {\n if (this.focusedTagIndex !== undefined) {\n this.handleDelete();\n }\n else {\n const tag = this.tags[this.tags.length - 1];\n const index = this.tags.length - 1;\n this.handleRemoveTag({ tag, index });\n }\n }\n handleDelete() {\n const tag = this.tags[this.focusedTagIndex];\n const index = this.focusedTagIndex;\n this.handleRemoveTag({ tag, index });\n if (this.focusedTagIndex === this.tags.length) {\n this.focusedTagIndex = undefined;\n }\n }\n unsubscribeEvents() {\n this.subscriptions.forEach(sub => sub.unsubscribe());\n this.unSubscribeFocusEvents();\n }\n /**\n * Remove the `TreeView` from the tab order, otherwise a focus loop between the page elements will occur\n * and the user will not be able to tab to the rest of the browser elements\n */\n removeTreeViewFromTabOrder() {\n const nodes = this.treeview.element.nativeElement.querySelectorAll('li');\n nodes.forEach(item => {\n if (item.getAttribute('tabindex') === '0') {\n this.lastNodeOnFocus = item;\n this.lastNodeOnFocus.setAttribute('tabindex', '-1');\n }\n });\n }\n setState() {\n if (isPresent(this.dataItems) && isPresent(this.valueField)) {\n this.setTags();\n this.checkedItems = this.dataItems.slice();\n }\n this.cdr.markForCheck();\n }\n setTags() {\n const source = this.dataItems.map(item => item.dataItem);\n this.tags = this.tagMapper(source);\n this.disabledIndices = this.disabledItemsMapper();\n }\n updateValue(value) {\n const newValue = this.valuePrimitive ?\n value.map(item => valueFrom(item, this.valueField)) :\n value.map(item => item.dataItem);\n this.value = newValue;\n this.emitValueChange(this.value);\n }\n /**\n * @hidden\n *\n * Determines which of the provided tags should be disabled and stores their position indices\n */\n disabledItemsMapper() {\n return new Set(this.dataItems.reduce((indices, item, index) => {\n if (this.itemDisabled(item.dataItem, item.index)) {\n indices.push(index);\n }\n return indices;\n }, []));\n }\n setComponentClasses() {\n if (this.size) {\n this.renderer.addClass(this.wrapper.nativeElement, getSizeClass('input', this.size));\n }\n if (this.rounded) {\n this.renderer.addClass(this.wrapper.nativeElement, getRoundedClass(this.rounded));\n }\n if (this.fillMode) {\n this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', this.fillMode));\n }\n }\n};\nMultiSelectTreeComponent.ɵfac = function MultiSelectTreeComponent_Factory(t) { return new (t || MultiSelectTreeComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc4.PopupService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(NavigationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(TOUCH_ENABLED, 8)); };\nMultiSelectTreeComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: MultiSelectTreeComponent, selectors: [[\"kendo-multiselecttree\"]], contentQueries: function MultiSelectTreeComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, HeaderTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, FooterTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NodeTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NoDataTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, TagTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, GroupTagTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.headerTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.footerTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.nodeTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.noDataTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.tagTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.groupTagTemplate = _t.first);\n } }, viewQuery: function MultiSelectTreeComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c40, 5);\n ɵngcc0.ɵɵviewQuery(_c9, 7);\n ɵngcc0.ɵɵviewQuery(_c8, 7, ViewContainerRef);\n ɵngcc0.ɵɵviewQuery(_c41, 5);\n ɵngcc0.ɵɵviewQuery(_c49, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.treeview = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.popupTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.container = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.filterInput = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.checkAllInput = _t.first);\n } }, hostVars: 19, hostBindings: function MultiSelectTreeComponent_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function MultiSelectTreeComponent_click_HostBindingHandler() { return ctx.handleClick(); })(\"keydown\", function MultiSelectTreeComponent_keydown_HostBindingHandler($event) { return ctx.handleKeydown($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"role\", ctx.role)(\"aria-haspopup\", ctx.ariaHasPopup)(\"dir\", ctx.direction)(\"aria-disabled\", ctx.isDisabled)(\"id\", ctx.id)(\"tabindex\", ctx.hostTabIndex)(\"aria-expanded\", ctx.isAriaExpanded)(\"readonly\", ctx.isReadonly)(\"aria-readonly\", ctx.isReadonly)(\"aria-describedby\", ctx.ariaDescribedBy)(\"aria-activedescendant\", ctx.ariaActiveDescendant);\n ɵngcc0.ɵɵclassProp(\"k-dropdowntree\", ctx.hostClasses)(\"k-input\", ctx.hostClasses)(\"k-disabled\", ctx.isDisabled)(\"k-loading\", ctx.isLoading);\n } }, inputs: { valueDepth: \"valueDepth\", placeholder: \"placeholder\", listHeight: \"listHeight\", disabled: \"disabled\", readonly: \"readonly\", valuePrimitive: \"valuePrimitive\", loadOnDemand: \"loadOnDemand\", focusableId: \"focusableId\", clearButton: \"clearButton\", filterable: \"filterable\", checkAll: \"checkAll\", hasChildren: \"hasChildren\", fetchChildren: \"fetchChildren\", isNodeVisible: \"isNodeVisible\", itemDisabled: \"itemDisabled\", tagMapper: \"tagMapper\", tabindex: \"tabindex\", size: \"size\", rounded: \"rounded\", fillMode: \"fillMode\", popupSettings: \"popupSettings\", checkableSettings: \"checkableSettings\", data: \"data\", value: \"value\", dataItems: \"dataItems\", isNodeExpanded: \"isNodeExpanded\", textField: \"textField\", valueField: \"valueField\", loading: \"loading\" }, outputs: { onFocus: \"focus\", onBlur: \"blur\", open: \"open\", opened: \"opened\", close: \"close\", closed: \"closed\", nodeExpand: \"nodeExpand\", nodeCollapse: \"nodeCollapse\", valueChange: \"valueChange\", removeTag: \"removeTag\", filterChange: \"filterChange\" }, exportAs: [\"kendoMultiSelectTree\"], features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n NavigationService,\n DataService,\n DisabledItemsService,\n SelectionService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.multiselecttree'\n },\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MultiSelectTreeComponent_1)\n },\n {\n provide: DataBoundComponent,\n useExisting: forwardRef(() => MultiSelectTreeComponent_1)\n },\n {\n provide: ExpandableComponent,\n useExisting: forwardRef(() => MultiSelectTreeComponent_1)\n },\n {\n provide: KendoInput,\n useExisting: forwardRef(() => MultiSelectTreeComponent_1)\n }\n ]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 9, vars: 17, consts: function () { let i18n_50; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text displayed in the popup when there are no items\n * @meaning kendo.multiselecttree.noDataText\n */\n const MSG_EXTERNAL_5589893825114548617$$DIST_FESM2015_INDEX_JS_51 = goog.getMsg(\"NO DATA FOUND\");\n i18n_50 = MSG_EXTERNAL_5589893825114548617$$DIST_FESM2015_INDEX_JS_51;\n }\n else {\n i18n_50 = $localize `:kendo.multiselecttree.noDataText|The text displayed in the popup when there are no items␟1689309191709bbbb071c889072707cb3f12dc93␟5589893825114548617:NO DATA FOUND`;\n } let i18n_52; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the clear button\n * @meaning kendo.multiselecttree.clearTitle\n */\n const MSG_EXTERNAL_7268188619735862842$$DIST_FESM2015_INDEX_JS_53 = goog.getMsg(\"clear\");\n i18n_52 = MSG_EXTERNAL_7268188619735862842$$DIST_FESM2015_INDEX_JS_53;\n }\n else {\n i18n_52 = $localize `:kendo.multiselecttree.clearTitle|The title of the clear button␟f99cf5ed2ae05c7d1df8dc97f56176a4934c8db9␟7268188619735862842:clear`;\n } let i18n_54; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text displayed for the check-all checkbox\n * @meaning kendo.multiselecttree.checkAllText\n */\n const MSG_EXTERNAL_4511060501589211517$$DIST_FESM2015_INDEX_JS_55 = goog.getMsg(\"Check all\");\n i18n_54 = MSG_EXTERNAL_4511060501589211517$$DIST_FESM2015_INDEX_JS_55;\n }\n else {\n i18n_54 = $localize `:kendo.multiselecttree.checkAllText|The text displayed for the check-all checkbox␟7213da1304801b92c6dd35231b5305408e2734e3␟4511060501589211517:Check all`;\n } return [[\"kendoMultiSelectTreeLocalizedMessages\", \"\", \"noDataText\", i18n_50, \"clearTitle\", i18n_52, \"checkAllText\", i18n_54], [3, \"size\", \"rounded\", \"fillMode\", \"id\", \"tags\", \"focused\", \"textField\", \"valueField\", \"valueDepth\", \"disabled\", \"tagPrefix\", \"template\", \"groupTemplate\", \"disabledIndices\", \"removeTag\"], [\"class\", \"k-input-inner k-readonly\", 4, \"ngIf\"], [\"class\", \"k-clear-value\", \"role\", \"button\", \"tabindex\", \"-1\", 3, \"click\", 4, \"ngIf\"], [\"class\", \"k-icon k-i-loading\", 4, \"ngIf\"], [\"popupTemplate\", \"\"], [\"container\", \"\"], [1, \"k-input-inner\", \"k-readonly\"], [1, \"k-input-value-text\"], [\"role\", \"button\", \"tabindex\", \"-1\", 1, \"k-clear-value\", 3, \"click\"], [1, \"k-icon\", \"k-i-x\"], [1, \"k-icon\", \"k-i-loading\"], [\"class\", \"k-list-filter\", 4, \"ngIf\"], [4, \"ngIf\"], [\"class\", \"k-check-all\", 4, \"ngIf\"], [\"kendoMultiSelectTreeCheckable\", \"\", 3, \"size\", \"nodes\", \"animate\", \"checkable\", \"checkedItems\", \"valueField\", \"textField\", \"children\", \"hasChildren\", \"isExpanded\", \"isDisabled\", \"nodeTemplate\", \"loadOnDemand\", \"filter\", \"isVisible\", \"kendoEventsOutsideAngular\", \"scope\", \"keydown\", \"nodeClick\", \"expand\", \"collapse\", \"checkedItemsChange\"], [\"treeview\", \"\"], [\"class\", \"k-no-data\", 4, \"ngIf\"], [1, \"k-list-filter\"], [1, \"k-textbox\", \"k-input\", 3, \"ngClass\"], [1, \"k-input-prefix\"], [1, \"k-input-icon\", \"k-icon\", \"k-i-search\"], [\"role\", \"textbox\", \"aria-haspopup\", \"true\", \"aria-expanded\", \"false\", \"tabindex\", \"0\", \"aria-disabled\", \"false\", \"aria-readonly\", \"false\", 1, \"k-input-inner\", 3, \"filterInput\", \"ngModel\", \"kendoEventsOutsideAngular\", \"scope\", \"input\", \"keydown\", \"ngModelChange\"], [\"filterInput\", \"\"], [3, \"templateContext\"], [1, \"k-check-all\"], [\"type\", \"checkbox\", \"role\", \"checkbox\", \"tabindex\", \"0\", \"aria-disabled\", \"false\", \"aria-readonly\", \"false\", 1, \"k-checkbox\", 3, \"checkAll\", \"ngClass\", \"treeview\", \"checkedItems\", \"valueField\", \"lastAction\", \"kendoEventsOutsideAngular\", \"scope\", \"checkedItemsChange\", \"keydown\"], [\"checkAllInput\", \"\"], [1, \"k-checkbox-label\", 3, \"click\", \"mousedown\"], [1, \"k-no-data\"], [3, \"ngIf\", \"templateContext\"], [3, \"ngIf\"]]; }, template: function MultiSelectTreeComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 0);\n ɵngcc0.ɵɵelementStart(1, \"kendo-taglist\", 1);\n ɵngcc0.ɵɵlistener(\"removeTag\", function MultiSelectTreeComponent_Template_kendo_taglist_removeTag_1_listener($event) { return ctx.handleRemoveTag($event); });\n ɵngcc0.ɵɵtemplate(2, MultiSelectTreeComponent_span_2_Template, 3, 1, \"span\", 2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, MultiSelectTreeComponent_span_3_Template, 2, 1, \"span\", 3);\n ɵngcc0.ɵɵtemplate(4, MultiSelectTreeComponent_span_4_Template, 1, 0, \"span\", 4);\n ɵngcc0.ɵɵtemplate(5, MultiSelectTreeComponent_ng_template_5_Template, 7, 26, \"ng-template\", null, 5, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵelementContainer(7, null, 6);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"size\", ctx.size)(\"rounded\", ctx.rounded)(\"fillMode\", ctx.fillMode)(\"id\", ctx.tagListId)(\"tags\", ctx.tags)(\"focused\", ctx.focusedTagIndex)(\"textField\", ctx.textField)(\"valueField\", ctx.valueField)(\"valueDepth\", ctx.valueDepth)(\"disabled\", ctx.disabled)(\"tagPrefix\", ctx.tagPrefix)(\"template\", ctx.tagTemplate)(\"groupTemplate\", ctx.groupTagTemplate)(\"disabledIndices\", ctx.disabledIndices);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.tags || !ctx.tags.length);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.disabled && !ctx.loading && !ctx.readonly && ctx.clearButton && (ctx.tags == null ? null : ctx.tags.length));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.loading);\n } }, directives: function () { return [LocalizedMessagesDirective, TagListComponent, ɵngcc3.NgIf, ɵngcc3.NgClass, ɵngcc5.DefaultValueAccessor, FilterInputDirective, ɵngcc5.NgControlStatus, ɵngcc5.NgModel, ɵngcc2.EventsOutsideAngularDirective, TemplateContextDirective, CheckAllDirective, ɵngcc6.TreeViewComponent, CheckDirective]; }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-dropdowntree'),\n HostBinding('class.k-input'),\n __metadata(\"design:type\", Boolean)\n], MultiSelectTreeComponent.prototype, \"hostClasses\", void 0);\n__decorate([\n HostBinding('class.k-disabled'),\n HostBinding('attr.aria-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], MultiSelectTreeComponent.prototype, \"isDisabled\", null);\n__decorate([\n HostBinding('class.k-loading'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], MultiSelectTreeComponent.prototype, \"isLoading\", null);\n__decorate([\n HostBinding('attr.id'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], MultiSelectTreeComponent.prototype, \"id\", null);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String)\n], MultiSelectTreeComponent.prototype, \"direction\", void 0);\n__decorate([\n HostBinding('attr.tabindex'),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [])\n], MultiSelectTreeComponent.prototype, \"hostTabIndex\", null);\n__decorate([\n HostBinding('attr.role'),\n __metadata(\"design:type\", String)\n], MultiSelectTreeComponent.prototype, \"role\", void 0);\n__decorate([\n HostBinding('attr.aria-expanded'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], MultiSelectTreeComponent.prototype, \"isAriaExpanded\", null);\n__decorate([\n HostBinding('attr.aria-haspopup'),\n __metadata(\"design:type\", String)\n], MultiSelectTreeComponent.prototype, \"ariaHasPopup\", void 0);\n__decorate([\n HostBinding('attr.readonly'),\n HostBinding('attr.aria-readonly'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], MultiSelectTreeComponent.prototype, \"isReadonly\", null);\n__decorate([\n HostBinding('attr.aria-describedby'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], MultiSelectTreeComponent.prototype, \"ariaDescribedBy\", null);\n__decorate([\n HostBinding('attr.aria-activedescendant'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], MultiSelectTreeComponent.prototype, \"ariaActiveDescendant\", null);\n__decorate([\n HostListener('click'),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], MultiSelectTreeComponent.prototype, \"handleClick\", null);\n__decorate([\n HostListener('keydown', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], MultiSelectTreeComponent.prototype, \"handleKeydown\", null);\n__decorate([\n ContentChild(HeaderTemplateDirective, { static: false }),\n __metadata(\"design:type\", HeaderTemplateDirective)\n], MultiSelectTreeComponent.prototype, \"headerTemplate\", void 0);\n__decorate([\n ContentChild(FooterTemplateDirective, { static: false }),\n __metadata(\"design:type\", FooterTemplateDirective)\n], MultiSelectTreeComponent.prototype, \"footerTemplate\", void 0);\n__decorate([\n ContentChild(NodeTemplateDirective, { static: false }),\n __metadata(\"design:type\", NodeTemplateDirective)\n], MultiSelectTreeComponent.prototype, \"nodeTemplate\", void 0);\n__decorate([\n ContentChild(NoDataTemplateDirective, { static: false }),\n __metadata(\"design:type\", NoDataTemplateDirective)\n], MultiSelectTreeComponent.prototype, \"noDataTemplate\", void 0);\n__decorate([\n ContentChild(TagTemplateDirective, { static: false }),\n __metadata(\"design:type\", TagTemplateDirective)\n], MultiSelectTreeComponent.prototype, \"tagTemplate\", void 0);\n__decorate([\n ContentChild(GroupTagTemplateDirective, { static: false }),\n __metadata(\"design:type\", GroupTagTemplateDirective)\n], MultiSelectTreeComponent.prototype, \"groupTagTemplate\", void 0);\n__decorate([\n ViewChild('popupTemplate', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], MultiSelectTreeComponent.prototype, \"popupTemplate\", void 0);\n__decorate([\n ViewChild('container', { read: ViewContainerRef, static: true }),\n __metadata(\"design:type\", ViewContainerRef)\n], MultiSelectTreeComponent.prototype, \"container\", void 0);\n__decorate([\n ViewChild('treeview', { static: false }),\n __metadata(\"design:type\", TreeViewComponent),\n __metadata(\"design:paramtypes\", [TreeViewComponent])\n], MultiSelectTreeComponent.prototype, \"treeview\", null);\n__decorate([\n ViewChild('filterInput', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], MultiSelectTreeComponent.prototype, \"filterInput\", void 0);\n__decorate([\n ViewChild('checkAllInput', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], MultiSelectTreeComponent.prototype, \"checkAllInput\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], MultiSelectTreeComponent.prototype, \"tabindex\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], MultiSelectTreeComponent.prototype, \"size\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], MultiSelectTreeComponent.prototype, \"rounded\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], MultiSelectTreeComponent.prototype, \"fillMode\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], MultiSelectTreeComponent.prototype, \"popupSettings\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], MultiSelectTreeComponent.prototype, \"checkableSettings\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], MultiSelectTreeComponent.prototype, \"data\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], MultiSelectTreeComponent.prototype, \"value\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], MultiSelectTreeComponent.prototype, \"dataItems\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], MultiSelectTreeComponent.prototype, \"textField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], MultiSelectTreeComponent.prototype, \"valueField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], MultiSelectTreeComponent.prototype, \"valueDepth\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], MultiSelectTreeComponent.prototype, \"loading\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], MultiSelectTreeComponent.prototype, \"placeholder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], MultiSelectTreeComponent.prototype, \"listHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], MultiSelectTreeComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], MultiSelectTreeComponent.prototype, \"readonly\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], MultiSelectTreeComponent.prototype, \"valuePrimitive\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], MultiSelectTreeComponent.prototype, \"loadOnDemand\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], MultiSelectTreeComponent.prototype, \"focusableId\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], MultiSelectTreeComponent.prototype, \"clearButton\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], MultiSelectTreeComponent.prototype, \"filterable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], MultiSelectTreeComponent.prototype, \"checkAll\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], MultiSelectTreeComponent.prototype, \"hasChildren\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], MultiSelectTreeComponent.prototype, \"fetchChildren\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], MultiSelectTreeComponent.prototype, \"isNodeExpanded\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], MultiSelectTreeComponent.prototype, \"isNodeVisible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], MultiSelectTreeComponent.prototype, \"itemDisabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], MultiSelectTreeComponent.prototype, \"tagMapper\", void 0);\n__decorate([\n Output('focus'),\n __metadata(\"design:type\", EventEmitter)\n], MultiSelectTreeComponent.prototype, \"onFocus\", void 0);\n__decorate([\n Output('blur'),\n __metadata(\"design:type\", EventEmitter)\n], MultiSelectTreeComponent.prototype, \"onBlur\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], MultiSelectTreeComponent.prototype, \"open\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], MultiSelectTreeComponent.prototype, \"opened\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], MultiSelectTreeComponent.prototype, \"close\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], MultiSelectTreeComponent.prototype, \"closed\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], MultiSelectTreeComponent.prototype, \"nodeExpand\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], MultiSelectTreeComponent.prototype, \"nodeCollapse\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], MultiSelectTreeComponent.prototype, \"valueChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], MultiSelectTreeComponent.prototype, \"removeTag\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], MultiSelectTreeComponent.prototype, \"filterChange\", void 0);\nMultiSelectTreeComponent = MultiSelectTreeComponent_1 = __decorate([ __param(7, Optional()), __param(7, Inject(TOUCH_ENABLED)),\n __metadata(\"design:paramtypes\", [ElementRef,\n PopupService,\n Renderer2,\n NavigationService,\n NgZone,\n LocalizationService,\n ChangeDetectorRef, Boolean])\n], MultiSelectTreeComponent);\n\n/**\n * A directive which encapsulates the retrieval of the child nodes when flat data is provided.\n */\nlet DropDownTreeFlatBindingDirective = class DropDownTreeFlatBindingDirective extends FlatDataBindingDirective {\n constructor(dropDownTree) {\n super(dropDownTree);\n }\n};\nDropDownTreeFlatBindingDirective.ɵfac = function DropDownTreeFlatBindingDirective_Factory(t) { return new (t || DropDownTreeFlatBindingDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc6.DataBoundComponent)); };\nDropDownTreeFlatBindingDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DropDownTreeFlatBindingDirective, selectors: [[\"\", \"kendoDropDownTreeFlatBinding\", \"\"]], inputs: { nodes: [\"kendoDropDownTreeFlatBinding\", \"nodes\"], idField: [\"valueField\", \"idField\"] }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input('kendoDropDownTreeFlatBinding'),\n __metadata(\"design:type\", Array)\n], DropDownTreeFlatBindingDirective.prototype, \"nodes\", void 0);\n__decorate([\n Input('valueField'),\n __metadata(\"design:type\", String)\n], DropDownTreeFlatBindingDirective.prototype, \"idField\", void 0);\nDropDownTreeFlatBindingDirective = __decorate([ __metadata(\"design:paramtypes\", [DataBoundComponent])\n], DropDownTreeFlatBindingDirective);\n\n/**\n * A directive which encapsulates the retrieval of the child nodes when hierarchical data is provided.\n */\nlet DropDownTreeHierarchyBindingDirective = class DropDownTreeHierarchyBindingDirective extends HierarchyBindingDirective {\n constructor(dropDownTree) {\n super(dropDownTree);\n this.dropDownTree = dropDownTree;\n }\n /**\n * The nodes which will be displayed by the DropDownTree.\n */\n set data(nodes) {\n this.dropDownTree.nodes = nodes;\n this.nodes = nodes;\n }\n};\nDropDownTreeHierarchyBindingDirective.ɵfac = function DropDownTreeHierarchyBindingDirective_Factory(t) { return new (t || DropDownTreeHierarchyBindingDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc6.DataBoundComponent)); };\nDropDownTreeHierarchyBindingDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DropDownTreeHierarchyBindingDirective, selectors: [[\"\", \"kendoDropDownTreeHierarchyBinding\", \"\"]], inputs: { data: [\"kendoDropDownTreeHierarchyBinding\", \"data\"] }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input('kendoDropDownTreeHierarchyBinding'),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], DropDownTreeHierarchyBindingDirective.prototype, \"data\", null);\nDropDownTreeHierarchyBindingDirective = __decorate([ __metadata(\"design:paramtypes\", [DataBoundComponent])\n], DropDownTreeHierarchyBindingDirective);\n\n/**\n * A directive which encapsulates the retrieval of the child nodes when flat data is provided.\n */\nlet MultiSelectTreeFlatBindingDirective = class MultiSelectTreeFlatBindingDirective extends FlatDataBindingDirective {\n constructor(multiSelectTree) {\n super(multiSelectTree);\n }\n};\nMultiSelectTreeFlatBindingDirective.ɵfac = function MultiSelectTreeFlatBindingDirective_Factory(t) { return new (t || MultiSelectTreeFlatBindingDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc6.DataBoundComponent)); };\nMultiSelectTreeFlatBindingDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MultiSelectTreeFlatBindingDirective, selectors: [[\"\", \"kendoMultiSelectTreeFlatBinding\", \"\"]], inputs: { nodes: [\"kendoMultiSelectTreeFlatBinding\", \"nodes\"], idField: [\"valueField\", \"idField\"] }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input('kendoMultiSelectTreeFlatBinding'),\n __metadata(\"design:type\", Array)\n], MultiSelectTreeFlatBindingDirective.prototype, \"nodes\", void 0);\n__decorate([\n Input('valueField'),\n __metadata(\"design:type\", String)\n], MultiSelectTreeFlatBindingDirective.prototype, \"idField\", void 0);\nMultiSelectTreeFlatBindingDirective = __decorate([ __metadata(\"design:paramtypes\", [DataBoundComponent])\n], MultiSelectTreeFlatBindingDirective);\n\n/**\n * A directive which encapsulates the retrieval of the child nodes when hierarchical data is provided.\n */\nlet MultiSelectTreeHierarchyBindingDirective = class MultiSelectTreeHierarchyBindingDirective extends HierarchyBindingDirective {\n constructor(multiSelectTree) {\n super(multiSelectTree);\n this.multiSelectTree = multiSelectTree;\n }\n /**\n * The nodes which will be displayed by the MultiSelectTree.\n */\n set data(nodes) {\n this.multiSelectTree.nodes = nodes;\n this.nodes = nodes;\n }\n};\nMultiSelectTreeHierarchyBindingDirective.ɵfac = function MultiSelectTreeHierarchyBindingDirective_Factory(t) { return new (t || MultiSelectTreeHierarchyBindingDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc6.DataBoundComponent)); };\nMultiSelectTreeHierarchyBindingDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MultiSelectTreeHierarchyBindingDirective, selectors: [[\"\", \"kendoMultiSelectTreeHierarchyBinding\", \"\"]], inputs: { data: [\"kendoMultiSelectTreeHierarchyBinding\", \"data\"] }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input('kendoMultiSelectTreeHierarchyBinding'),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], MultiSelectTreeHierarchyBindingDirective.prototype, \"data\", null);\nMultiSelectTreeHierarchyBindingDirective = __decorate([ __metadata(\"design:paramtypes\", [DataBoundComponent])\n], MultiSelectTreeHierarchyBindingDirective);\n\n/**\n * A directive which manages the expanded state of the popup TreeView.\n */\nlet DropDownTreesExpandDirective = class DropDownTreesExpandDirective extends ExpandDirective {\n constructor(dropDownTree) {\n super(dropDownTree);\n }\n};\nDropDownTreesExpandDirective.ɵfac = function DropDownTreesExpandDirective_Factory(t) { return new (t || DropDownTreesExpandDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc6.ExpandableComponent)); };\nDropDownTreesExpandDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DropDownTreesExpandDirective, selectors: [[\"\", \"kendoDropDownTreeExpandable\", \"\"], [\"\", \"kendoMultiSelectTreeExpandable\", \"\"]], inputs: { isExpanded: [\"isNodeExpanded\", \"isExpanded\"] }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input('isNodeExpanded'),\n __metadata(\"design:type\", Function)\n], DropDownTreesExpandDirective.prototype, \"isExpanded\", void 0);\nDropDownTreesExpandDirective = __decorate([ __metadata(\"design:paramtypes\", [ExpandableComponent])\n], DropDownTreesExpandDirective);\n\n/**\n * @hidden\n */\nlet TagListComponent = class TagListComponent {\n constructor(renderer, hostElement) {\n this.renderer = renderer;\n this.hostElement = hostElement;\n this.rounded = 'medium';\n this.fillMode = 'solid';\n /**\n * A collection with the disabled tags' indices.\n */\n this.disabledIndices = new Set();\n this.removeTag = new EventEmitter();\n this.hostClasses = true;\n this._size = 'medium';\n }\n set size(size) {\n this.renderer.removeClass(this.hostElement.nativeElement, getSizeClass('chip-list', this.size));\n if (size) {\n this.renderer.addClass(this.hostElement.nativeElement, getSizeClass('chip-list', size));\n }\n this._size = size;\n }\n get size() {\n return this._size;\n }\n get hostId() {\n return this.id;\n }\n tagProp(tag, prop, index) {\n const propField = prop && this.getPropField(tag, prop, index);\n return getter$1(tag, propField);\n }\n isTagDisabled(tag, positionIndex) {\n if (this.isGroupTag(tag)) {\n /** The `positionIndex` is used to determine after how many single tags is the group tag displayed =>\n * => it is used to increment the indices inside the group tag so that we determine the actual position index\n * of each group tag item as they appear in the `value` (important to check against `disabledIndices`)\n * e.g. `disabledIndices = [0, 1]` && `tags = ['Small', ['Medium', 'Large']]` => without the incrementation with\n * `positionIndex`, the group tag would yield [0, 1] as indices, while it should yield [1, 2]\n */\n return tag.every((_tag, index) => this.disabledIndices.has(index + positionIndex));\n }\n return this.disabledIndices.has(positionIndex);\n }\n deleteTag(event, tag, index) {\n event.preventDefault();\n event.stopImmediatePropagation();\n if (!this.disabled && event.which === 1) {\n this.removeTag.emit({ tag, index });\n }\n }\n itemId(tag, index) {\n if (tag) { //because of custom values\n return this.tagPrefix + \"-\" + this.tagProp(tag, this.valueField, index);\n }\n }\n isGroupTag(tag) {\n return tag instanceof Array;\n }\n tagAriaHidden(index) {\n return isPresent(this.focused) && this.focused !== index;\n }\n getPropField(tag, prop, index) {\n // Needed for MultiSelectTree value binding (Heterogeneous Data)\n const fieldsCount = prop.length - 1;\n if (typeof prop === 'string') {\n return prop;\n }\n else if (this.valueDepth) {\n const depth = this.valueDepth[index];\n return fieldsCount < depth ? prop[fieldsCount] : prop[depth];\n }\n else {\n return prop.find(item => item in tag);\n }\n }\n};\nTagListComponent.ɵfac = function TagListComponent_Factory(t) { return new (t || TagListComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nTagListComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: TagListComponent, selectors: [[\"kendo-taglist\"]], hostVars: 7, hostBindings: function TagListComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"id\", ctx.hostId);\n ɵngcc0.ɵɵclassProp(\"k-input-values\", ctx.hostClasses)(\"k-chip-list\", ctx.hostClasses)(\"k-selection-multiple\", ctx.hostClasses);\n } }, inputs: { rounded: \"rounded\", fillMode: \"fillMode\", disabledIndices: \"disabledIndices\", size: \"size\", tags: \"tags\", textField: \"textField\", valueField: \"valueField\", valueDepth: \"valueDepth\", focused: \"focused\", template: \"template\", groupTemplate: \"groupTemplate\", disabled: \"disabled\", tagPrefix: \"tagPrefix\", id: \"id\" }, outputs: { removeTag: \"removeTag\" }, ngContentSelectors: _c58, decls: 2, vars: 1, consts: [[\"class\", \"k-chip\", 3, \"ngClass\", 4, \"ngFor\", \"ngForOf\"], [1, \"k-chip\", 3, \"ngClass\"], [1, \"k-chip-content\"], [4, \"ngIf\", \"ngIfThen\", \"ngIfElse\"], [\"groupTag\", \"\"], [\"singleTag\", \"\"], [1, \"k-chip-actions\"], [\"aria-label\", \"delete\", 1, \"k-chip-action\", \"k-chip-remove-action\"], [1, \"k-icon\", \"k-i-x-circle\", 3, \"mousedown\"], [1, \"k-chip-label\", \"k-text-ellipsis\"], [4, \"ngIf\"], [3, \"ngIf\"], [3, \"templateContext\"]], template: function TagListComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵtemplate(0, TagListComponent_div_0_Template, 10, 20, \"div\", 0);\n ɵngcc0.ɵɵprojection(1);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.tags);\n } }, directives: function () { return [ɵngcc3.NgForOf, ɵngcc3.NgClass, ɵngcc3.NgIf, TemplateContextDirective]; }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], TagListComponent.prototype, \"tags\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], TagListComponent.prototype, \"textField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TagListComponent.prototype, \"valueField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], TagListComponent.prototype, \"valueDepth\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], TagListComponent.prototype, \"focused\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TagTemplateDirective)\n], TagListComponent.prototype, \"template\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", GroupTagTemplateDirective)\n], TagListComponent.prototype, \"groupTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TagListComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TagListComponent.prototype, \"tagPrefix\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TagListComponent.prototype, \"id\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], TagListComponent.prototype, \"size\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TagListComponent.prototype, \"rounded\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TagListComponent.prototype, \"fillMode\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Set)\n], TagListComponent.prototype, \"disabledIndices\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TagListComponent.prototype, \"removeTag\", void 0);\n__decorate([\n HostBinding('class.k-input-values'),\n HostBinding('class.k-chip-list'),\n HostBinding('class.k-selection-multiple'),\n __metadata(\"design:type\", Boolean)\n], TagListComponent.prototype, \"hostClasses\", void 0);\n__decorate([\n HostBinding('attr.id'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], TagListComponent.prototype, \"hostId\", null);\nTagListComponent = __decorate([ __metadata(\"design:paramtypes\", [Renderer2,\n ElementRef])\n], TagListComponent);\n\n/**\n * @hidden\n */\nclass Messages extends ComponentMessages {\n}\nMessages.ɵfac = /*@__PURE__*/ function () { let ɵMessages_BaseFactory; return function Messages_Factory(t) { return (ɵMessages_BaseFactory || (ɵMessages_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(Messages)))(t || Messages); }; }();\nMessages.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: Messages, inputs: { noDataText: \"noDataText\", clearTitle: \"clearTitle\", checkAllText: \"checkAllText\", selectButtonText: \"selectButtonText\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"noDataText\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"clearTitle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"checkAllText\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"selectButtonText\", void 0);\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.ɵfac = function LocalizedMessagesDirective_Factory(t) { return new (t || LocalizedMessagesDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nLocalizedMessagesDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LocalizedMessagesDirective, selectors: [[\"\", \"kendoDropDownListLocalizedMessages\", \"\"], [\"\", \"kendoDropDownTreeLocalizedMessages\", \"\"], [\"\", \"kendoComboBoxLocalizedMessages\", \"\"], [\"\", \"kendoMultiColumnComboBoxLocalizedMessages\", \"\"], [\"\", \"kendoAutoCompleteLocalizedMessages\", \"\"], [\"\", \"kendoMultiSelectLocalizedMessages\", \"\"], [\"\", \"kendoMultiSelectTreeLocalizedMessages\", \"\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: Messages,\n useExisting: forwardRef(() => LocalizedMessagesDirective_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature] });\nLocalizedMessagesDirective = LocalizedMessagesDirective_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], LocalizedMessagesDirective);\n\nvar CustomMessagesComponent_1;\n/**\n * Custom component messages override default component messages\n * ([see example]({% slug rtl_dropdowns %}#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.ɵfac = function CustomMessagesComponent_Factory(t) { return new (t || CustomMessagesComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nCustomMessagesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CustomMessagesComponent, selectors: [[\"kendo-dropdownlist-messages\"], [\"kendo-combobox-messages\"], [\"kendo-multicolumncombobox-messages\"], [\"kendo-autocomplete-messages\"], [\"kendo-multiselect-messages\"], [\"kendo-dropdowntree-messages\"], [\"kendo-multiselecttree-messages\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: Messages,\n useExisting: forwardRef(() => CustomMessagesComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function CustomMessagesComponent_Template(rf, ctx) { }, encapsulation: 2 });\nCustomMessagesComponent = CustomMessagesComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], CustomMessagesComponent);\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 * > Currently, the built-in filtering does not work with [grouped data]({% slug api_kendo-data-query_groupby %}).\n */\nlet FilterDirective = class 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 }\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 ngOnInit() {\n this.component.filterable = this.filterable;\n this.filterChangeSubscription = this.component.filterChange\n .subscribe(this.handleFilterChange.bind(this));\n }\n ngOnDestroy() {\n if (isPresent(this.filterChangeSubscription)) {\n this.filterChangeSubscription.unsubscribe();\n }\n }\n handleFilterChange(query) {\n this.component.data = this.data.filter(item => this.matchesAnyField(item, query));\n }\n matchesAnyField(item, query) {\n const normalizedQuery = this.normalizeValue(query);\n const { fields } = this.filterSettings;\n // if no filter fields are present, we are dealing with primitive data\n if (fields.length === 0) {\n return this.checkItem(item, normalizedQuery);\n }\n return fields.some(field => this.checkItem(getter$1(item, field), normalizedQuery));\n }\n checkItem(target, query) {\n target = this.normalizeValue(target);\n if (this.filterSettings.operator === 'contains') {\n return target.indexOf(query) !== -1;\n }\n else {\n return target.indexOf(query) === 0;\n }\n }\n normalizeValue(value) {\n const normalizedValue = isPresent(value) ? value.toString() : '';\n return this.filterSettings.caseSensitive ? normalizedValue : normalizedValue.toLowerCase();\n }\n getFilterFields(providedFields) {\n // ignore provided fields if the component deals with primitive data\n if (!this.component.textField && !this.component.valueField) {\n return [];\n }\n if (isArray(providedFields) && providedFields.length > 0) {\n return providedFields;\n }\n else {\n // the autocomplete uses `valueField` for text extraction\n const textField = this.component.textField || this.component.valueField;\n return [textField];\n }\n }\n get filterSettings() {\n const settings = this.rawSettings;\n const providedFields = isPresent(settings) && typeof settings === 'object' ? settings.fields : [];\n return Object.assign({}, DEFAULT_FILTER_SETTINGS, settings, { fields: this.getFilterFields(providedFields) });\n }\n};\nFilterDirective.ɵfac = function FilterDirective_Factory(t) { return new (t || FilterDirective)(ɵngcc0.ɵɵdirectiveInject(FilterableComponent)); };\nFilterDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: FilterDirective, selectors: [[\"\", \"kendoDropDownFilter\", \"\"]], inputs: { filterable: \"filterable\", data: \"data\", rawSettings: [\"kendoDropDownFilter\", \"rawSettings\"] } });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], FilterDirective.prototype, \"data\", null);\n__decorate([\n Input('kendoDropDownFilter'),\n __metadata(\"design:type\", Object)\n], FilterDirective.prototype, \"rawSettings\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], FilterDirective.prototype, \"filterable\", void 0);\nFilterDirective = __decorate([ __metadata(\"design:paramtypes\", [FilterableComponent])\n], FilterDirective);\n\n/**\n * @hidden\n */\nlet FilterInputDirective = class 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.ɵfac = function FilterInputDirective_Factory(t) { return new (t || FilterInputDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nFilterInputDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: FilterInputDirective, selectors: [[\"\", \"filterInput\", \"\"]], inputs: { focused: [\"filterInput\", \"focused\"] }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Input('filterInput'),\n __metadata(\"design:type\", Boolean)\n], FilterInputDirective.prototype, \"focused\", void 0);\nFilterInputDirective = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n NgZone])\n], FilterInputDirective);\n\nconst SHARED_DIRECTIVES = [\n HeaderTemplateDirective,\n FooterTemplateDirective,\n ItemTemplateDirective,\n GroupTemplateDirective,\n FixedGroupTemplateDirective,\n NoDataTemplateDirective,\n ValueTemplateDirective,\n TagTemplateDirective,\n GroupTagTemplateDirective,\n LocalizedMessagesDirective,\n CustomMessagesComponent,\n FilterDirective,\n FilterInputDirective\n];\n/**\n * @hidden\n *\n * The exported package module.\n *\n * The package exports:\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 * - `NoDataTemplateDirective`—The noData template directive.\n * - `TagTemplateDirective`—The tag template directive.\n * - `SummaryTagTemplateDirective`—The summary tag template directive.\n */\nlet SharedDirectivesModule = class SharedDirectivesModule {\n};\nSharedDirectivesModule.ɵfac = function SharedDirectivesModule_Factory(t) { return new (t || SharedDirectivesModule)(); };\nSharedDirectivesModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: SharedDirectivesModule });\nSharedDirectivesModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\n/**\n * @hidden\n */\nlet SelectableDirective = class SelectableDirective {\n constructor(selectionService) {\n this.checkboxes = { enabled: false };\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.checkboxes.enabled && this.selectionService.isSelected(this.index);\n }\n onClick(event) {\n event.stopPropagation();\n if (this.checkboxes.enabled && !this.checkboxes.checkOnClick) {\n return;\n }\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.ɵfac = function SelectableDirective_Factory(t) { return new (t || SelectableDirective)(ɵngcc0.ɵɵdirectiveInject(SelectionService)); };\nSelectableDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SelectableDirective, selectors: [[\"\", \"kendoDropDownsSelectable\", \"\"]], hostVars: 9, hostBindings: function SelectableDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function SelectableDirective_click_HostBindingHandler($event) { return ctx.onClick($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"index\", ctx.index);\n ɵngcc0.ɵɵstyleProp(\"height\", ctx.height, \"px\")(\"min-height\", ctx.height, \"px\");\n ɵngcc0.ɵɵclassProp(\"k-focus\", ctx.focusedClassName)(\"k-selected\", ctx.selectedClassName);\n } }, inputs: { checkboxes: \"checkboxes\", multipleSelection: \"multipleSelection\", index: \"index\", height: \"height\" } });\n__decorate([\n HostBinding('attr.index'),\n Input(),\n __metadata(\"design:type\", Number)\n], SelectableDirective.prototype, \"index\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SelectableDirective.prototype, \"checkboxes\", void 0);\n__decorate([\n HostBinding('style.height.px'),\n HostBinding('style.minHeight.px'),\n Input(),\n __metadata(\"design:type\", Number)\n], SelectableDirective.prototype, \"height\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SelectableDirective.prototype, \"multipleSelection\", void 0);\n__decorate([\n HostBinding('class.k-focus'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], SelectableDirective.prototype, \"focusedClassName\", null);\n__decorate([\n HostBinding('class.k-selected'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], SelectableDirective.prototype, \"selectedClassName\", null);\n__decorate([\n HostListener('click', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], SelectableDirective.prototype, \"onClick\", null);\nSelectableDirective = __decorate([ __metadata(\"design:paramtypes\", [SelectionService])\n], SelectableDirective);\n\n/**\n * @hidden\n */\nlet TemplateContextDirective = class 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.ɵfac = function TemplateContextDirective_Factory(t) { return new (t || TemplateContextDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef)); };\nTemplateContextDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: TemplateContextDirective, selectors: [[\"\", \"templateContext\", \"\"]], inputs: { templateContext: \"templateContext\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], TemplateContextDirective.prototype, \"templateContext\", null);\nTemplateContextDirective = __decorate([ __metadata(\"design:paramtypes\", [ViewContainerRef])\n], TemplateContextDirective);\n\n/**\n * @hidden\n *\n * A directive which manages the in-memory checked state of the MultiSelectTree nodes.\n */\nclass BaseCheckDirective {\n addItem(item) {\n if (this.isItemChecked(item)) {\n return;\n }\n const level = getHierarchicalItemLevel(item.index);\n const candidate = Object.assign({}, item, { level });\n this.checkedItems.push(candidate);\n this.checkedKeys.add(this.getKey(candidate));\n }\n removeItem(item) {\n if (!this.isItemChecked(item)) {\n return;\n }\n const level = getHierarchicalItemLevel(item.index);\n const candidate = Object.assign({}, item, { level });\n this.checkedItems = this.checkedItems\n .filter(item => valueFrom(item, this.valueField) !== valueFrom(candidate, this.valueField));\n this.checkedKeys.delete(this.getKey(candidate));\n }\n isItemChecked(item) {\n const level = item.index.split('_').length - 1;\n item.level = level;\n return this.checkedKeys.has(this.getKey(item));\n }\n updateItems() {\n this.checkedItems = this.checkedItems || [];\n this.checkedKeys = new Set(this.checkedItems.map(item => this.getKey(item)));\n }\n /**\n * Adds the item's depth to the item's value to allow duplicate values on different levels.\n *\n * @param item - The checked key.\n * @returns { string } - A string key consisting of the item's `valueField` value and its depth.\n */\n getKey(item) {\n if (isArray(this.valueField)) {\n return valueFrom(item, this.valueField) + '_' + item.level;\n }\n return valueFrom(item, this.valueField);\n }\n}\nBaseCheckDirective.ɵfac = function BaseCheckDirective_Factory(t) { return new (t || BaseCheckDirective)(); };\nBaseCheckDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: BaseCheckDirective, inputs: { checkedItems: \"checkedItems\", valueField: \"valueField\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], BaseCheckDirective.prototype, \"valueField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], BaseCheckDirective.prototype, \"checkedItems\", void 0);\n\n/**\n * @hidden\n *\n * A directive which manages the in-memory checked state of the MultiSelectTree nodes.\n */\nlet CheckDirective = class CheckDirective extends BaseCheckDirective {\n constructor(treeView) {\n super();\n this.treeView = treeView;\n /**\n * Fires when the `checkedItems` collection was updated.\n */\n this.checkedItemsChange = new EventEmitter();\n /**\n * Holds a Set with just the checked item keys.\n *\n * Should be updated each time the `checkedItems` value or content is changed.\n * Can be used for efficient look-up of whether an item is checked or not (O(1) access time).\n */\n this.checkedKeys = new Set();\n this.subscriptions = new Subscription();\n this.subscriptions.add(this.treeView.checkedChange\n .subscribe(this.handleCheckedChange.bind(this)));\n this.treeView.isChecked = this.getCheckedState.bind(this);\n }\n ngOnChanges(changes) {\n if (isPresent(changes.checkable)) {\n this.toggleCheckOnClick();\n }\n if (isPresent(changes.checkedItems)) {\n this.updateItems();\n }\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n this.unsubscribeClick();\n }\n getCheckedState(dataItem, index) {\n if (this.isItemChecked({ dataItem, index })) {\n return 'checked';\n }\n else if (this.checkable.checkChildren && this.isItemIndeterminate(this.treeView.itemLookup(index))) {\n return 'indeterminate';\n }\n else {\n return 'none';\n }\n }\n handleCheckedChange(node) {\n this.checkNode(node);\n // parents should be checked if `checkChildren` is set to `true` (single config option for both)\n const checkParents = this.checkable.checkChildren;\n if (checkParents) {\n this.checkParents(node.parent);\n }\n this.checkedItemsChange.emit(this.checkedItems.slice());\n }\n toggleCheckOnClick() {\n this.unsubscribeClick();\n if (this.checkable.checkOnClick) {\n this.clickSubscription = this.treeView.nodeClick\n .pipe(filter(event => event.type === 'click'))\n .subscribe(event => {\n const lookup = this.treeView.itemLookup(event.item.index);\n this.handleCheckedChange(lookup);\n });\n }\n }\n unsubscribeClick() {\n if (this.clickSubscription) {\n this.clickSubscription.unsubscribe();\n this.clickSubscription = null;\n }\n }\n checkNode(lookup) {\n if (this.treeView.isDisabled(lookup.item.dataItem, lookup.item.index)) {\n return;\n }\n const target = lookup.item;\n const pendingCheck = [target];\n // TODO: extract in a separate `checkChildren` method?\n if (this.checkable.checkChildren) {\n const filter$$1 = (item) => this.treeView.isVisible(item.dataItem, item.index) &&\n !this.treeView.isDisabled(item.dataItem, item.index);\n fetchDescendentNodes(lookup, filter$$1)\n .forEach(lookup => pendingCheck.push(lookup.item));\n }\n const shouldCheck = !this.isItemChecked(target);\n pendingCheck.forEach(item => {\n if (shouldCheck) {\n this.addItem(item);\n }\n else {\n this.removeItem(item);\n }\n });\n }\n checkParents(parent) {\n let currentParent = parent;\n while (currentParent) {\n const allChildrenSelected = currentParent.children.every(item => this.isItemChecked(item));\n if (allChildrenSelected) {\n this.addItem(currentParent.item);\n }\n else {\n this.removeItem(currentParent.item);\n }\n currentParent = currentParent.parent;\n }\n }\n isItemIndeterminate(lookup) {\n const children = lookup.children;\n if (!Array.isArray(children) || children.length === 0) {\n return false;\n }\n let index = 0;\n let child = children[index];\n while (isPresent(child)) {\n if (this.isItemChecked(child.item) || this.isItemIndeterminate(child)) {\n return true;\n }\n index += 1;\n child = children[index];\n }\n return false;\n }\n};\nCheckDirective.ɵfac = function CheckDirective_Factory(t) { return new (t || CheckDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc6.TreeViewComponent)); };\nCheckDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CheckDirective, selectors: [[\"\", \"kendoMultiSelectTreeCheckable\", \"\"]], inputs: { checkable: \"checkable\", valueField: \"valueField\", checkedItems: \"checkedItems\" }, outputs: { checkedItemsChange: \"checkedItemsChange\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature, ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CheckDirective.prototype, \"checkable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CheckDirective.prototype, \"valueField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], CheckDirective.prototype, \"checkedItems\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], CheckDirective.prototype, \"checkedItemsChange\", void 0);\nCheckDirective = __decorate([ __metadata(\"design:paramtypes\", [TreeViewComponent])\n], CheckDirective);\n\n/**\n * @hidden\n *\n * A directive which manages the in-memory checked state of the MultiSelectTree nodes.\n */\nlet CheckAllDirective = class CheckAllDirective extends BaseCheckDirective {\n constructor(element, zone, cdr, renderer) {\n super();\n this.element = element;\n this.zone = zone;\n this.cdr = cdr;\n this.renderer = renderer;\n /**\n * Fires when the `checkedItems` collection was updated.\n */\n this.checkedItemsChange = new EventEmitter();\n /**\n * Holds a Set with just the checked item keys.\n *\n * Should be updated each time the `checkedItems` value or content is changed.\n * Can be used for efficient look-up of whether an item is checked or not (O(1) access time).\n */\n this.checkedKeys = new Set();\n }\n handleChange(event) {\n // Need to store the current checkbox state at the moment of click\n this.currentCheckedState = event.checked;\n this.currentIndeterminateState = this.isIndeterminate;\n this.treeview.nodes.map((_value, index) => {\n const itemIndex = String(index);\n const itemLookup = this.treeview.itemLookup(itemIndex);\n this.checkNode(itemLookup);\n });\n this.checkedItemsChange.emit(this.checkedItems.slice());\n }\n get isIndeterminate() {\n const isIndeterminate = this.treeview.nodes.some((_node, index) => {\n const itemIndex = String(index);\n const itemLookup = this.treeview.itemLookup(itemIndex);\n return this.someChecked(itemLookup);\n });\n return this.isChecked ? false : isIndeterminate;\n }\n get isChecked() {\n const isChecked = this.treeview.nodes.every((_node, index) => {\n const itemIndex = String(index);\n const itemLookup = this.treeview.itemLookup(itemIndex);\n return this.allChecked(itemLookup);\n });\n return isChecked;\n }\n ngOnChanges(changes) {\n if (isPresent(changes.checkedItems)) {\n this.updateItems();\n this.renderer.setProperty(this.element.nativeElement, 'checked', this.isChecked);\n this.renderer.setProperty(this.element.nativeElement, 'indeterminate', this.isIndeterminate);\n }\n }\n ngOnInit() {\n if (this.focused) {\n this.nextTick(() => this.element.nativeElement.focus());\n }\n }\n nextTick(fn) {\n this.zone.runOutsideAngular(() => setTimeout(fn));\n }\n checkNode(itemLookup) {\n if (this.treeview.isDisabled(itemLookup.item.dataItem, itemLookup.item.index)) {\n return;\n }\n const pendingCheck = [];\n const filter$$1 = (item) => this.treeview.isVisible(item.dataItem, item.index) &&\n !this.treeview.isDisabled(item.dataItem, item.index);\n pendingCheck.push(itemLookup.item);\n fetchDescendentNodes(itemLookup, filter$$1)\n .forEach(lookup => pendingCheck.push(lookup.item));\n pendingCheck.forEach(item => {\n if (this.currentIndeterminateState) {\n this.lastAction === 'check' ?\n this.addItem(item) :\n this.removeItem(item);\n return;\n }\n this.currentCheckedState ?\n this.addItem(item) :\n this.removeItem(item);\n });\n }\n allChecked(lookup) {\n const children = lookup && lookup.children;\n if (!Array.isArray(children)) {\n return;\n }\n const childrenChecked = children.every(child => {\n if (child.children.length) {\n return this.isItemChecked(child.item) && this.allChecked(child);\n }\n return this.isItemChecked(child.item);\n });\n return childrenChecked && this.isItemChecked(lookup.item);\n }\n someChecked(lookup) {\n const children = lookup && lookup.children;\n if (!Array.isArray(children)) {\n return;\n }\n const childrenChecked = children.some(child => {\n if (child.children.length) {\n return this.isItemChecked(child.item) || this.someChecked(child);\n }\n return this.isItemChecked(child.item);\n });\n return childrenChecked || this.isItemChecked(lookup.item);\n }\n};\nCheckAllDirective.ɵfac = function CheckAllDirective_Factory(t) { return new (t || CheckAllDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nCheckAllDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CheckAllDirective, selectors: [[\"\", \"checkAll\", \"\"]], hostBindings: function CheckAllDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"change\", function CheckAllDirective_change_HostBindingHandler($event) { return ctx.handleChange($event.target); });\n } }, inputs: { lastAction: \"lastAction\", treeview: \"treeview\", checkedItems: \"checkedItems\", valueField: \"valueField\", focused: [\"checkAll\", \"focused\"] }, outputs: { checkedItemsChange: \"checkedItemsChange\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature, ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CheckAllDirective.prototype, \"lastAction\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TreeViewComponent)\n], CheckAllDirective.prototype, \"treeview\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], CheckAllDirective.prototype, \"checkedItems\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CheckAllDirective.prototype, \"valueField\", void 0);\n__decorate([\n Input('checkAll'),\n __metadata(\"design:type\", Boolean)\n], CheckAllDirective.prototype, \"focused\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], CheckAllDirective.prototype, \"checkedItemsChange\", void 0);\n__decorate([\n HostListener('change', ['$event.target']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], CheckAllDirective.prototype, \"handleChange\", null);\nCheckAllDirective = __decorate([ __metadata(\"design:paramtypes\", [ElementRef, NgZone, ChangeDetectorRef, Renderer2])\n], CheckAllDirective);\n\nconst INTERNAL_DIRECTIVES = [\n ListComponent,\n ListItemDirective,\n SelectableDirective,\n SearchBarComponent,\n TemplateContextDirective,\n TagListComponent,\n CheckDirective,\n CheckAllDirective\n];\n/**\n * @hidden\n */\nlet SharedModule = class SharedModule {\n};\nSharedModule.ɵfac = function SharedModule_Factory(t) { return new (t || SharedModule)(); };\nSharedModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: SharedModule });\nSharedModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule, FormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule], CommonModule, FormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule] });\n\n/**\n * A directive which configures the MultiSelectTree 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 api_dropdowns_multiselecttreesummarytagdirective %})).\n *\n * @example\n * ```ts-no-run\n * \n * ```\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet MultiSelectTreeSummaryTagDirective = class MultiSelectTreeSummaryTagDirective {\n constructor(multiSelectTreeComponent) {\n this.multiSelectTreeComponent = multiSelectTreeComponent;\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;\n this.createTagMapper();\n }\n ngOnChanges(changes) {\n if (isPresent(changes.showAfter)) {\n this.createTagMapper();\n this.multiSelectTreeComponent.handleTagMapperChange(this.showAfter);\n }\n }\n createTagMapper() {\n const showAfter = parseNumber(this.showAfter);\n this.multiSelectTreeComponent.tagMapper = (tags) => {\n if (tags.length > showAfter) {\n // tags provided in an array are rendered as a single group tag\n return [...tags.slice(0, showAfter), tags.slice(showAfter)];\n }\n else {\n return tags;\n }\n };\n }\n};\nMultiSelectTreeSummaryTagDirective.ɵfac = function MultiSelectTreeSummaryTagDirective_Factory(t) { return new (t || MultiSelectTreeSummaryTagDirective)(ɵngcc0.ɵɵdirectiveInject(MultiSelectTreeComponent)); };\nMultiSelectTreeSummaryTagDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MultiSelectTreeSummaryTagDirective, selectors: [[\"\", \"kendoMultiSelectTreeSummaryTag\", \"\"]], inputs: { showAfter: [\"kendoMultiSelectTreeSummaryTag\", \"showAfter\"] }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Input('kendoMultiSelectTreeSummaryTag'),\n __metadata(\"design:type\", Object)\n], MultiSelectTreeSummaryTagDirective.prototype, \"showAfter\", void 0);\nMultiSelectTreeSummaryTagDirective = __decorate([ __metadata(\"design:paramtypes\", [MultiSelectTreeComponent])\n], MultiSelectTreeSummaryTagDirective);\n\nconst DROPDOWNTREE_DIRECTIVES = [\n DropDownTreeComponent,\n MultiSelectTreeComponent,\n DropDownTreeFlatBindingDirective,\n DropDownTreeHierarchyBindingDirective,\n MultiSelectTreeFlatBindingDirective,\n MultiSelectTreeHierarchyBindingDirective,\n DropDownTreesExpandDirective,\n NodeTemplateDirective,\n MultiSelectTreeSummaryTagDirective\n];\n/**\n * @hidden\n */\nlet DropDownTreesModule = class DropDownTreesModule {\n};\nDropDownTreesModule.ɵfac = function DropDownTreesModule_Factory(t) { return new (t || DropDownTreesModule)(); };\nDropDownTreesModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: DropDownTreesModule });\nDropDownTreesModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[SharedModule, TreeViewModule], SharedDirectivesModule] });\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 */\nlet SummaryTagDirective = class 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;\n this.createTagMapper();\n }\n ngOnChanges(changes) {\n if (isPresent(changes.showAfter)) {\n this.createTagMapper();\n this.multiSelectComponent.onTagMapperChange();\n }\n }\n createTagMapper() {\n const showAfter = parseNumber(this.showAfter);\n this.multiSelectComponent.tagMapper = (tags) => {\n if (tags.length > showAfter) {\n let result;\n result = tags.slice(0, showAfter);\n result.push(tags.slice(showAfter, tags.length));\n return result;\n }\n else {\n return tags;\n }\n };\n }\n};\nSummaryTagDirective.ɵfac = function SummaryTagDirective_Factory(t) { return new (t || SummaryTagDirective)(ɵngcc0.ɵɵdirectiveInject(MultiSelectComponent)); };\nSummaryTagDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SummaryTagDirective, selectors: [[\"\", \"kendoMultiSelectSummaryTag\", \"\"]], inputs: { showAfter: [\"kendoMultiSelectSummaryTag\", \"showAfter\"] }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Input('kendoMultiSelectSummaryTag'),\n __metadata(\"design:type\", Object)\n], SummaryTagDirective.prototype, \"showAfter\", void 0);\nSummaryTagDirective = __decorate([ __metadata(\"design:paramtypes\", [MultiSelectComponent])\n], SummaryTagDirective);\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 */\nlet AutoCompleteModule = class AutoCompleteModule {\n};\nAutoCompleteModule.ɵfac = function AutoCompleteModule_Factory(t) { return new (t || AutoCompleteModule)(); };\nAutoCompleteModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: AutoCompleteModule });\nAutoCompleteModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[SharedModule], SharedDirectivesModule] });\n\nconst COMBOBOX_DIRECTIVES = [\n ComboBoxComponent,\n MultiColumnComboBoxComponent,\n ComboBoxColumnComponent,\n ColumnHeaderTemplateDirective,\n ColumnCellTemplateDirective\n];\nconst ɵ0$4 = touchEnabled;\n/**\n * @hidden\n *\n * The exported package module.\n *\n * The package exports:\n * - `ComboBoxComponent`—The ComboBox component class.\n * - `MultiColumnComboBoxComponent`—The MultiColumnComboBox component class.\n * - `ItemTemplateDirective`—The item template directive.\n * - `HeaderTemplateDirective`—The header template directive.\n * - `FooterTemplateDirective`—The footer template directive.\n * - `ColumnHeaderTemplateDirective`—The column header template directive.\n * - `ColumnCellTemplateDirective`—The column cell template directive.\n */\nlet ComboBoxModule = class ComboBoxModule {\n};\nComboBoxModule.ɵfac = function ComboBoxModule_Factory(t) { return new (t || ComboBoxModule)(); };\nComboBoxModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: ComboBoxModule });\nComboBoxModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ providers: [{ provide: TOUCH_ENABLED, useValue: ɵ0$4 }], imports: [[SharedModule], SharedDirectivesModule] });\n\nconst DROPDOWNLIST_DIRECTIVES = [\n DropDownListComponent\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 */\nlet DropDownListModule = class DropDownListModule {\n};\nDropDownListModule.ɵfac = function DropDownListModule_Factory(t) { return new (t || DropDownListModule)(); };\nDropDownListModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: DropDownListModule });\nDropDownListModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[SharedModule], SharedDirectivesModule] });\n\nconst MULTISELECT_DIRECTIVES = [\n MultiSelectComponent,\n SummaryTagDirective,\n CustomItemTemplateDirective\n];\nconst ɵ0$5 = 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 */\nlet MultiSelectModule = class MultiSelectModule {\n};\nMultiSelectModule.ɵfac = function MultiSelectModule_Factory(t) { return new (t || MultiSelectModule)(); };\nMultiSelectModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: MultiSelectModule });\nMultiSelectModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ providers: [{ provide: TOUCH_ENABLED, useValue: ɵ0$5 }], imports: [[SharedModule], SharedDirectivesModule] });\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 */\nlet DropDownsModule = class DropDownsModule {\n};\nDropDownsModule.ɵfac = function DropDownsModule_Factory(t) { return new (t || DropDownsModule)(); };\nDropDownsModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: DropDownsModule });\nDropDownsModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [AutoCompleteModule, ComboBoxModule, DropDownListModule, MultiSelectModule, DropDownTreesModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SearchBarComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-searchbar',\n template: `\n \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }, { type: ɵngcc0.Renderer2 }]; }, { valueChange: [{\n type: Output\n }], onBlur: [{\n type: Output\n }], onFocus: [{\n type: Output\n }], onClick: [{\n type: Output\n }], onNavigate: [{\n type: Output\n }], searchBarClass: [{\n type: HostBinding,\n args: ['class.k-searchbar']\n }], userInput: [{\n type: Input\n }], placeholder: [{\n type: Input\n }], id: [{\n type: Input\n }], listId: [{\n type: Input\n }], tagListId: [{\n type: Input\n }], activeDescendant: [{\n type: Input\n }], noDataLabel: [{\n type: Input\n }], disabled: [{\n type: Input\n }], readonly: [{\n type: Input\n }], tabIndex: [{\n type: Input\n }], popupOpen: [{\n type: Input\n }], role: [{\n type: Input\n }], suggestedText: [{\n type: Input\n }], input: [{\n type: ViewChild,\n args: ['input', { static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ItemTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoDropDownListItemTemplate],[kendoComboBoxItemTemplate],[kendoAutoCompleteItemTemplate],[kendoMultiSelectItemTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(HeaderTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoDropDownListHeaderTemplate],[kendoComboBoxHeaderTemplate],[kendoDropDownTreeHeaderTemplate],[kendoMultiColumnComboBoxHeaderTemplate],[kendoAutoCompleteHeaderTemplate],[kendoMultiSelectHeaderTemplate],[kendoMultiSelectTreeHeaderTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FooterTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoDropDownListFooterTemplate],[kendoComboBoxFooterTemplate],[kendoDropDownTreeFooterTemplate],[kendoMultiColumnComboBoxFooterTemplate],[kendoAutoCompleteFooterTemplate],[kendoMultiSelectFooterTemplate],[kendoMultiSelectTreeFooterTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(GroupTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoDropDownListGroupTemplate],[kendoComboBoxGroupTemplate],[kendoMultiColumnComboBoxGroupTemplate],[kendoAutoCompleteGroupTemplate],[kendoMultiSelectGroupTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FixedGroupTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoDropDownListFixedGroupTemplate],[kendoComboBoxFixedGroupTemplate],[kendoMultiColumnComboBoxFixedGroupTemplate],[kendoAutoCompleteFixedGroupTemplate],[kendoMultiSelectFixedGroupTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SelectionService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DataService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DisabledItemsService, [{\n type: Injectable\n }], function () { return [{ type: DataService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigationService, [{\n type: Injectable\n }], function () { return [{ type: DisabledItemsService }, { type: SelectionService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NoDataTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoDropDownListNoDataTemplate],[kendoDropDownTreeNoDataTemplate],[kendoComboBoxNoDataTemplate],[kendoMultiColumnComboBoxNoDataTemplate],[kendoAutoCompleteNoDataTemplate],[kendoMultiSelectNoDataTemplate],[kendoMultiSelectTreeNoDataTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ListItemDirective, [{\n type: Directive,\n args: [{\n selector: '\"li[role=option], li[role=group]\"' // tslint:disable-line\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ListComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-list',\n template: `\n
\n \n \n {{ currentGroup }}\n
\n
\n
    \n \n \n \n \n \n {{ getText(dataItem) }}\n \n \n \n 0\"\n role=\"group\"\n [class]=\"listGroupItemClass\"\n [class.k-table-alt-row]=\"isAltRow(itemIndex - 1)\"\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 \n {{ dataItem.value }}\n \n \n \n \n \n {{ getText(dataItem.value) }}\n \n \n \n \n
\n
\n
\n \n
\n
\n
\n `\n }]\n }], function () { return [{ type: DataService }, { type: ɵngcc0.ElementRef }, { type: SelectionService }, { type: DisabledItemsService }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.Renderer2 }]; }, { selected: [{\n type: Input\n }], focused: [{\n type: Input\n }], show: [{\n type: Input\n }], multipleSelection: [{\n type: Input\n }], type: [{\n type: Input\n }], checkboxes: [{\n type: Input\n }], rounded: [{\n type: Input\n }], onClick: [{\n type: Output\n }], pageChange: [{\n type: Output\n }], listResize: [{\n type: Output\n }], data: [{\n type: Input\n }], size: [{\n type: Input\n }], textField: [{\n type: Input\n }], valueField: [{\n type: Input\n }], height: [{\n type: Input\n }], template: [{\n type: Input\n }], groupTemplate: [{\n type: Input\n }], fixedGroupTemplate: [{\n type: Input\n }], id: [{\n type: Input\n }], optionPrefix: [{\n type: Input\n }], virtual: [{\n type: Input\n }], items: [{\n type: ViewChildren,\n args: [ListItemDirective]\n }], content: [{\n type: ViewChild,\n args: ['content', { static: true }]\n }], list: [{\n type: ViewChild,\n args: ['list', { static: true }]\n }], virtualContainer: [{\n type: ViewChild,\n args: ['virtualContainer', { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AutoCompleteComponent, [{\n type: Component,\n 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: FilterableComponent,\n useExisting: forwardRef(() => AutoCompleteComponent_1)\n },\n {\n provide: KendoInput,\n useExisting: forwardRef(() => AutoCompleteComponent_1)\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 \n
{{ messageFor('noDataText') }}
\n
\n
\n \n \n \n
\n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }, { type: DataService }, { type: ɵngcc4.PopupService }, { type: SelectionService }, { type: NavigationService }, { type: DisabledItemsService }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }, { type: Boolean, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [TOUCH_ENABLED]\n }] }]; }, { highlightFirst: [{\n type: Input\n }], focusableId: [{\n type: Input\n }], placeholder: [{\n type: Input\n }], listHeight: [{\n type: Input\n }], clearButton: [{\n type: Input\n }], disabled: [{\n type: Input\n }], readonly: [{\n type: Input\n }], tabindex: [{\n type: Input\n }], filterable: [{\n type: Input\n }], valueChange: [{\n type: Output\n }], filterChange: [{\n type: Output\n }], open: [{\n type: Output\n }], opened: [{\n type: Output\n }], close: [{\n type: Output\n }], closed: [{\n type: Output\n }], onFocus: [{\n type: Output,\n args: ['focus']\n }], onBlur: [{\n type: Output,\n args: ['blur']\n }], widgetClasses: [{\n type: HostBinding,\n args: ['class.k-autocomplete']\n }, {\n type: HostBinding,\n args: ['class.k-input']\n }], data: [{\n type: Input\n }], value: [{\n type: Input\n }], popupSettings: [{\n type: Input\n }], itemDisabled: [{\n type: Input\n }], tabIndex: [{\n type: Input,\n args: [\"tabIndex\"]\n }], virtual: [{\n type: Input\n }], size: [{\n type: Input\n }], rounded: [{\n type: Input\n }], fillMode: [{\n type: Input\n }], isDisabled: [{\n type: HostBinding,\n args: ['class.k-disabled']\n }], isLoading: [{\n type: HostBinding,\n args: ['class.k-loading']\n }], dir: [{\n type: HostBinding,\n args: ['attr.dir']\n }], valueField: [{\n type: Input\n }], loading: [{\n type: Input\n }], suggest: [{\n type: Input\n }], template: [{\n type: ContentChild,\n args: [ItemTemplateDirective, { static: false }]\n }], headerTemplate: [{\n type: ContentChild,\n args: [HeaderTemplateDirective, { static: false }]\n }], footerTemplate: [{\n type: ContentChild,\n args: [FooterTemplateDirective, { static: false }]\n }], noDataTemplate: [{\n type: ContentChild,\n args: [NoDataTemplateDirective, { static: false }]\n }], groupTemplate: [{\n type: ContentChild,\n args: [GroupTemplateDirective, { static: false }]\n }], fixedGroupTemplate: [{\n type: ContentChild,\n args: [FixedGroupTemplateDirective, { static: false }]\n }], container: [{\n type: ViewChild,\n args: ['container', { read: ViewContainerRef, static: true }]\n }], popupTemplate: [{\n type: ViewChild,\n args: ['popupTemplate', { static: true }]\n }], searchbar: [{\n type: ViewChild,\n args: [SearchBarComponent, { static: true }]\n }], optionsList: [{\n type: ViewChild,\n args: ['optionsList', { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ComboBoxComponent, [{\n type: Component,\n 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: FilterableComponent, useExisting: forwardRef(() => ComboBoxComponent_1)\n },\n {\n provide: KendoInput, useExisting: forwardRef(() => ComboBoxComponent_1)\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
{{ messageFor('noDataText') }}
\n
\n
\n \n \n \n
\n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc1.LocalizationService }, { type: ɵngcc4.PopupService }, { type: SelectionService }, { type: NavigationService }, { type: DisabledItemsService }, { type: DataService }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.Renderer2 }, { type: Boolean, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [TOUCH_ENABLED]\n }] }]; }, { focusableId: [{\n type: Input\n }], allowCustom: [{\n type: Input\n }], valueNormalizer: [{\n type: Input\n }], placeholder: [{\n type: Input\n }], listHeight: [{\n type: Input\n }], suggest: [{\n type: Input\n }], clearButton: [{\n type: Input\n }], disabled: [{\n type: Input\n }], readonly: [{\n type: Input\n }], tabindex: [{\n type: Input\n }], filterable: [{\n type: Input\n }], valueChange: [{\n type: Output\n }], selectionChange: [{\n type: Output\n }], filterChange: [{\n type: Output\n }], open: [{\n type: Output\n }], opened: [{\n type: Output\n }], close: [{\n type: Output\n }], closed: [{\n type: Output\n }], onFocus: [{\n type: Output,\n args: ['focus']\n }], onBlur: [{\n type: Output,\n args: ['blur']\n }], widgetClasses: [{\n type: HostBinding,\n args: ['class.k-combobox']\n }, {\n type: HostBinding,\n args: ['class.k-input']\n }], data: [{\n type: Input\n }], value: [{\n type: Input\n }], valuePrimitive: [{\n type: Input\n }], popupSettings: [{\n type: Input\n }], itemDisabled: [{\n type: Input\n }], tabIndex: [{\n type: Input,\n args: [\"tabIndex\"]\n }], virtual: [{\n type: Input\n }], size: [{\n type: Input\n }], rounded: [{\n type: Input\n }], fillMode: [{\n type: Input\n }], isDisabled: [{\n type: HostBinding,\n args: ['class.k-disabled']\n }], isLoading: [{\n type: HostBinding,\n args: ['class.k-loading']\n }], dir: [{\n type: HostBinding,\n args: ['attr.dir']\n }], loading: [{\n type: Input\n }], textField: [{\n type: Input\n }], valueField: [{\n type: Input\n }], iconClass: [{\n type: Input\n }], template: [{\n type: ContentChild,\n args: [ItemTemplateDirective, { static: false }]\n }], headerTemplate: [{\n type: ContentChild,\n args: [HeaderTemplateDirective, { static: false }]\n }], footerTemplate: [{\n type: ContentChild,\n args: [FooterTemplateDirective, { static: false }]\n }], noDataTemplate: [{\n type: ContentChild,\n args: [NoDataTemplateDirective, { static: false }]\n }], groupTemplate: [{\n type: ContentChild,\n args: [GroupTemplateDirective, { static: false }]\n }], fixedGroupTemplate: [{\n type: ContentChild,\n args: [FixedGroupTemplateDirective, { static: false }]\n }], container: [{\n type: ViewChild,\n args: ['container', { read: ViewContainerRef, static: true }]\n }], popupTemplate: [{\n type: ViewChild,\n args: ['popupTemplate', { static: true }]\n }], searchbar: [{\n type: ViewChild,\n args: [SearchBarComponent, { static: true }]\n }], optionsList: [{\n type: ViewChild,\n args: ['optionsList', { static: false }]\n }], select: [{\n type: ViewChild,\n args: ['select', { static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ValueTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoDropDownListValueTemplate],[kendoDropDownTreeValueTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DropDownListComponent, [{\n type: Component,\n 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: FilterableComponent, useExisting: forwardRef(() => DropDownListComponent_1)\n },\n {\n provide: KendoInput, useExisting: forwardRef(() => DropDownListComponent_1)\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 \n \n
\n {{ getDefaultItemText() }}\n
\n \n
\n \n \n
\n \n \n
\n \n
\n \n \n \n \n \n \n \n
\n \n \n \n
{{ messageFor('noDataText') }}
\n
\n
\n \n \n \n
\n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc1.LocalizationService }, { type: ɵngcc4.PopupService }, { type: SelectionService }, { type: NavigationService }, { type: DisabledItemsService }, { type: DataService }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ChangeDetectorRef }, { type: Boolean, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [TOUCH_ENABLED]\n }] }]; }, { listHeight: [{\n type: Input\n }], disabled: [{\n type: Input\n }], readonly: [{\n type: Input\n }], filterable: [{\n type: Input\n }], ignoreCase: [{\n type: Input\n }], delay: [{\n type: Input\n }], tabindex: [{\n type: Input\n }], valueChange: [{\n type: Output\n }], filterChange: [{\n type: Output\n }], selectionChange: [{\n type: Output\n }], open: [{\n type: Output\n }], opened: [{\n type: Output\n }], close: [{\n type: Output\n }], closed: [{\n type: Output\n }], onFocus: [{\n type: Output,\n args: ['focus']\n }], onBlur: [{\n type: Output,\n args: ['blur']\n }], hostClasses: [{\n type: HostBinding,\n args: ['class.k-dropdownlist']\n }, {\n type: HostBinding,\n args: ['class.k-picker']\n }], focusableId: [{\n type: Input,\n args: ['id']\n }, {\n type: HostBinding,\n args: ['attr.id']\n }], role: [{\n type: HostBinding,\n args: ['attr.role']\n }, {\n type: HostBinding,\n args: ['attr.aria-haspopup']\n }], data: [{\n type: Input\n }], value: [{\n type: Input\n }], popupSettings: [{\n type: Input\n }], itemDisabled: [{\n type: Input\n }], virtual: [{\n type: Input\n }], valuePrimitive: [{\n type: Input\n }], tabIndex: [{\n type: Input,\n args: [\"tabIndex\"]\n }], size: [{\n type: Input\n }], rounded: [{\n type: Input\n }], fillMode: [{\n type: Input\n }], isDisabled: [{\n type: HostBinding,\n args: ['class.k-disabled']\n }, {\n type: HostBinding,\n args: ['attr.aria-disabled']\n }], isLoading: [{\n type: HostBinding,\n args: ['class.k-loading']\n }], dir: [{\n type: HostBinding,\n args: ['attr.dir']\n }], hostTabIndex: [{\n type: HostBinding,\n args: ['attr.tabindex']\n }], isReadonly: [{\n type: HostBinding,\n args: ['attr.readonly']\n }, {\n type: HostBinding,\n args: ['attr.aria-readonly']\n }], isAriaExpanded: [{\n type: HostBinding,\n args: ['attr.aria-expanded']\n }], hostAriaOwns: [{\n type: HostBinding,\n args: ['attr.aria-owns']\n }], hostAriaActivedescendant: [{\n type: HostBinding,\n args: ['attr.aria-activedescendant']\n }], hostNoDataLabel: [{\n type: HostBinding,\n args: ['attr.aria-label']\n }], \n /**\n * @hidden\n */\n keydown: [{\n type: HostListener,\n args: ['keydown', ['$event']]\n }], \n /**\n * @hidden\n */\n keypress: [{\n type: HostListener,\n args: ['keypress', ['$event']]\n }], \n /**\n * @hidden\n */\n click: [{\n type: HostListener,\n args: ['click', ['$event']]\n }], iconClass: [{\n type: Input\n }], loading: [{\n type: Input\n }], textField: [{\n type: Input\n }], valueField: [{\n type: Input\n }], defaultItem: [{\n type: Input\n }], itemTemplate: [{\n type: ContentChild,\n args: [ItemTemplateDirective, { static: false }]\n }], groupTemplate: [{\n type: ContentChild,\n args: [GroupTemplateDirective, { static: false }]\n }], fixedGroupTemplate: [{\n type: ContentChild,\n args: [FixedGroupTemplateDirective, { static: false }]\n }], valueTemplate: [{\n type: ContentChild,\n args: [ValueTemplateDirective, { static: false }]\n }], headerTemplate: [{\n type: ContentChild,\n args: [HeaderTemplateDirective, { static: false }]\n }], footerTemplate: [{\n type: ContentChild,\n args: [FooterTemplateDirective, { static: false }]\n }], noDataTemplate: [{\n type: ContentChild,\n args: [NoDataTemplateDirective, { static: false }]\n }], container: [{\n type: ViewChild,\n args: ['container', { read: ViewContainerRef, static: true }]\n }], popupTemplate: [{\n type: ViewChild,\n args: ['popupTemplate', { static: true }]\n }], optionsList: [{\n type: ViewChild,\n args: ['optionsList', { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CustomItemTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoMultiSelectCustomItemTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TagTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoMultiSelectTagTemplate],[kendoMultiSelectTreeTagTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(GroupTagTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoMultiSelectGroupTagTemplate],[kendoMultiSelectTreeGroupTagTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MultiSelectComponent, [{\n type: Component,\n 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: FilterableComponent, useExisting: forwardRef(() => MultiSelectComponent_1)\n },\n {\n provide: KendoInput, useExisting: forwardRef(() => MultiSelectComponent_1)\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 \n \n {{ text }}\n \n
\n \n \n \n \n \n
\n \n \n \n
{{ messageFor('noDataText') }}
\n
\n
\n \n \n \n
\n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc1.LocalizationService }, { type: ɵngcc4.PopupService }, { type: DataService }, { type: SelectionService }, { type: NavigationService }, { type: DisabledItemsService }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.KeyValueDiffers }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.NgZone }, { type: Boolean, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [TOUCH_ENABLED]\n }] }]; }, { focusableId: [{\n type: Input\n }], autoClose: [{\n type: Input\n }], tabindex: [{\n type: Input\n }], disabled: [{\n type: Input\n }], readonly: [{\n type: Input\n }], filterable: [{\n type: Input\n }], listHeight: [{\n type: Input\n }], clearButton: [{\n type: Input\n }], tagMapper: [{\n type: Input\n }], allowCustom: [{\n type: Input\n }], valueNormalizer: [{\n type: Input\n }], filterChange: [{\n type: Output\n }], valueChange: [{\n type: Output\n }], open: [{\n type: Output\n }], opened: [{\n type: Output\n }], close: [{\n type: Output\n }], closed: [{\n type: Output\n }], onFocus: [{\n type: Output,\n args: ['focus']\n }], onBlur: [{\n type: Output,\n args: ['blur']\n }], removeTag: [{\n type: Output\n }], hostClasses: [{\n type: HostBinding,\n args: ['class.k-multiselect']\n }, {\n type: HostBinding,\n args: ['class.k-input']\n }], role: [{\n type: HostBinding,\n args: ['attr.role']\n }], data: [{\n type: Input\n }], value: [{\n type: Input\n }], tabIndex: [{\n type: Input,\n args: [\"tabIndex\"]\n }], size: [{\n type: Input\n }], rounded: [{\n type: Input\n }], fillMode: [{\n type: Input\n }], placeholder: [{\n type: Input\n }], itemDisabled: [{\n type: Input\n }], checkboxes: [{\n type: Input\n }], virtual: [{\n type: Input\n }], popupSettings: [{\n type: Input\n }], valuePrimitive: [{\n type: Input\n }], dir: [{\n type: HostBinding,\n args: ['attr.dir']\n }], disabledClass: [{\n type: HostBinding,\n args: ['class.k-disabled']\n }], isLoading: [{\n type: HostBinding,\n args: ['class.k-loading']\n }], isAriaExpanded: [{\n type: HostBinding,\n args: ['attr.aria-expanded']\n }], \n /**\n * @hidden\n */\n hostMousedown: [{\n type: HostListener,\n args: ['mousedown', ['$event']]\n }], loading: [{\n type: Input\n }], valueField: [{\n type: Input\n }], textField: [{\n type: Input\n }], container: [{\n type: ViewChild,\n args: ['container', { read: ViewContainerRef, static: true }]\n }], searchbar: [{\n type: ViewChild,\n args: [SearchBarComponent, { static: true }]\n }], popupTemplate: [{\n type: ViewChild,\n args: ['popupTemplate', { static: true }]\n }], optionsList: [{\n type: ViewChild,\n args: ['optionsList', { static: false }]\n }], template: [{\n type: ContentChild,\n args: [ItemTemplateDirective, { static: false }]\n }], customItemTemplate: [{\n type: ContentChild,\n args: [CustomItemTemplateDirective, { static: false }]\n }], groupTemplate: [{\n type: ContentChild,\n args: [GroupTemplateDirective, { static: false }]\n }], fixedGroupTemplate: [{\n type: ContentChild,\n args: [FixedGroupTemplateDirective, { static: false }]\n }], headerTemplate: [{\n type: ContentChild,\n args: [HeaderTemplateDirective, { static: false }]\n }], footerTemplate: [{\n type: ContentChild,\n args: [FooterTemplateDirective, { static: false }]\n }], tagTemplate: [{\n type: ContentChild,\n args: [TagTemplateDirective, { static: false }]\n }], groupTagTemplate: [{\n type: ContentChild,\n args: [GroupTagTemplateDirective, { static: false }]\n }], noDataTemplate: [{\n type: ContentChild,\n args: [NoDataTemplateDirective, { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnCellTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoMultiColumnComboBoxColumnCellTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnHeaderTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoMultiColumnComboBoxColumnHeaderTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ComboBoxColumnComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-combobox-column',\n template: ''\n }]\n }], function () { return []; }, { hidden: [{\n type: Input\n }], cellTemplate: [{\n type: ContentChild,\n args: [ColumnCellTemplateDirective, { static: false }]\n }], headerTemplate: [{\n type: ContentChild,\n args: [ColumnHeaderTemplateDirective, { static: false }]\n }], field: [{\n type: Input\n }], title: [{\n type: Input\n }], width: [{\n type: Input\n }], style: [{\n type: Input\n }], headerStyle: [{\n type: Input\n }], class: [{\n type: Input\n }], headerClass: [{\n type: Input\n }], media: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MultiColumnComboBoxComponent, [{\n type: Component,\n args: [{\n providers: [\n SelectionService,\n DataService,\n NavigationService,\n DisabledItemsService,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.multicolumncombobox'\n },\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MultiColumnComboBoxComponent_1)\n },\n {\n provide: KendoInput,\n useExisting: forwardRef(() => MultiColumnComboBoxComponent_1)\n },\n {\n provide: FilterableComponent,\n useExisting: forwardRef(() => MultiColumnComboBoxComponent_1)\n }\n ],\n selector: 'kendo-multicolumncombobox',\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 {{ column.title || column.field }}\n \n \n \n \n \n \n \n
\n
\n
\n\n \n \n \n \n \n {{ textFrom(dataItem, column.field) }}\n \n \n \n \n
\n
\n\n \n \n \n\n \n \n \n
\n \n
{{ messageFor('noDataText') }}
\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 }], function () { return [{ type: ɵngcc1.LocalizationService }, { type: ɵngcc4.PopupService }, { type: SelectionService }, { type: NavigationService }, { type: DisabledItemsService }, { type: DataService }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }, { type: Boolean, decorators: [{\n type: Inject,\n args: [TOUCH_ENABLED]\n }] }]; }, { hostClasses: [{\n type: HostBinding,\n args: ['class.k-dropdowngrid']\n }], isDisabled: [{\n type: HostBinding,\n args: ['class.k-disabled']\n }], header: [{\n type: ViewChild,\n args: ['header', { static: false }]\n }], columns: [{\n type: ContentChildren,\n args: [ComboBoxColumnComponent]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NodeTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoDropDownTreeNodeTemplate], [kendoMultiSelectTreeNodeTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DropDownTreeComponent, [{\n type: Component,\n args: [{\n exportAs: 'kendoDropDownTree',\n providers: [\n DataService,\n SelectionService,\n NavigationService,\n DisabledItemsService,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.dropdowntree'\n },\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DropDownTreeComponent_1)\n },\n {\n provide: KendoInput,\n useExisting: forwardRef(() => DropDownTreeComponent_1)\n },\n {\n provide: DataBoundComponent,\n useExisting: forwardRef(() => DropDownTreeComponent_1)\n },\n {\n provide: ExpandableComponent,\n useExisting: forwardRef(() => DropDownTreeComponent_1)\n }\n ],\n selector: 'kendo-dropdowntree',\n template: `\n \n \n \n \n \n \n {{ text || placeholder }} \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
{{ messageFor('noDataText') }}
\n
\n
\n
\n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc4.PopupService }, { type: NavigationService }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc1.LocalizationService }, { type: Boolean, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [TOUCH_ENABLED]\n }] }]; }, { hostClasses: [{\n type: HostBinding,\n args: ['class.k-dropdowntree']\n }, {\n type: HostBinding,\n args: ['class.k-picker']\n }], role: [{\n type: HostBinding,\n args: ['attr.role']\n }], ariaHasPopup: [{\n type: HostBinding,\n args: ['attr.aria-haspopup']\n }], open: [{\n type: Output\n }], opened: [{\n type: Output\n }], close: [{\n type: Output\n }], closed: [{\n type: Output\n }], nodeExpand: [{\n type: Output\n }], nodeCollapse: [{\n type: Output\n }], onFocus: [{\n type: Output,\n args: ['focus']\n }], onBlur: [{\n type: Output,\n args: ['blur']\n }], valueChange: [{\n type: Output\n }], filterChange: [{\n type: Output\n }], clearButton: [{\n type: Input\n }], hasChildren: [{\n type: Input\n }], fetchChildren: [{\n type: Input\n }], placeholder: [{\n type: Input\n }], listHeight: [{\n type: Input\n }], disabled: [{\n type: Input\n }], readonly: [{\n type: Input\n }], valuePrimitive: [{\n type: Input\n }], itemDisabled: [{\n type: Input\n }], isNodeVisible: [{\n type: Input\n }], loadOnDemand: [{\n type: Input\n }], filterable: [{\n type: Input\n }], filter: [{\n type: Input\n }], focusableId: [{\n type: Input\n }], direction: [{\n type: HostBinding,\n args: ['attr.dir']\n }], isDisabled: [{\n type: HostBinding,\n args: ['class.k-disabled']\n }, {\n type: HostBinding,\n args: ['attr.aria-disabled']\n }], isLoading: [{\n type: HostBinding,\n args: ['class.k-loading']\n }], id: [{\n type: HostBinding,\n args: ['attr.id']\n }], hostTabIndex: [{\n type: HostBinding,\n args: ['attr.tabindex']\n }], isAriaExpanded: [{\n type: HostBinding,\n args: ['attr.aria-expanded']\n }], isReadonly: [{\n type: HostBinding,\n args: ['attr.readonly']\n }, {\n type: HostBinding,\n args: ['attr.aria-readonly']\n }], \n /**\n * @hidden\n */\n handleClick: [{\n type: HostListener,\n args: ['click']\n }], \n /**\n * @hidden\n */\n handleKeydown: [{\n type: HostListener,\n args: ['keydown', ['$event']]\n }], treeview: [{\n type: ViewChild,\n args: ['treeview', { static: false }]\n }], data: [{\n type: Input\n }], value: [{\n type: Input\n }], popupSettings: [{\n type: Input\n }], dataItem: [{\n type: Input\n }], tabindex: [{\n type: Input\n }], size: [{\n type: Input\n }], rounded: [{\n type: Input\n }], fillMode: [{\n type: Input\n }], isNodeExpanded: [{\n type: Input\n }], valueDepth: [{\n type: Input\n }], noDataTemplate: [{\n type: ContentChild,\n args: [NoDataTemplateDirective, { static: false }]\n }], headerTemplate: [{\n type: ContentChild,\n args: [HeaderTemplateDirective, { static: false }]\n }], footerTemplate: [{\n type: ContentChild,\n args: [FooterTemplateDirective, { static: false }]\n }], nodeTemplate: [{\n type: ContentChild,\n args: [NodeTemplateDirective, { static: false }]\n }], valueTemplate: [{\n type: ContentChild,\n args: [ValueTemplateDirective, { static: false }]\n }], popupTemplate: [{\n type: ViewChild,\n args: ['popupTemplate', { static: true }]\n }], container: [{\n type: ViewChild,\n args: ['container', { read: ViewContainerRef, static: true }]\n }], filterInput: [{\n type: ViewChild,\n args: ['filterInput', { static: false }]\n }], loading: [{\n type: Input\n }], textField: [{\n type: Input\n }], valueField: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MultiSelectTreeComponent, [{\n type: Component,\n args: [{\n exportAs: 'kendoMultiSelectTree',\n providers: [\n LocalizationService,\n NavigationService,\n DataService,\n DisabledItemsService,\n SelectionService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.multiselecttree'\n },\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MultiSelectTreeComponent_1)\n },\n {\n provide: DataBoundComponent,\n useExisting: forwardRef(() => MultiSelectTreeComponent_1)\n },\n {\n provide: ExpandableComponent,\n useExisting: forwardRef(() => MultiSelectTreeComponent_1)\n },\n {\n provide: KendoInput,\n useExisting: forwardRef(() => MultiSelectTreeComponent_1)\n }\n ],\n selector: 'kendo-multiselecttree',\n template: `\n \n \n \n \n {{ placeholder }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n {{ messageFor('checkAllText') }}\n \n
\n \n \n \n \n
\n \n
\n \n \n \n
{{ messageFor('noDataText') }}
\n
\n
\n \n \n `\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc4.PopupService }, { type: ɵngcc0.Renderer2 }, { type: NavigationService }, { type: ɵngcc0.NgZone }, { type: ɵngcc1.LocalizationService }, { type: ɵngcc0.ChangeDetectorRef }, { type: Boolean, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [TOUCH_ENABLED]\n }] }]; }, { hostClasses: [{\n type: HostBinding,\n args: ['class.k-dropdowntree']\n }, {\n type: HostBinding,\n args: ['class.k-input']\n }], role: [{\n type: HostBinding,\n args: ['attr.role']\n }], ariaHasPopup: [{\n type: HostBinding,\n args: ['attr.aria-haspopup']\n }], valueDepth: [{\n type: Input\n }], placeholder: [{\n type: Input\n }], listHeight: [{\n type: Input\n }], disabled: [{\n type: Input\n }], readonly: [{\n type: Input\n }], valuePrimitive: [{\n type: Input\n }], loadOnDemand: [{\n type: Input\n }], focusableId: [{\n type: Input\n }], clearButton: [{\n type: Input\n }], filterable: [{\n type: Input\n }], checkAll: [{\n type: Input\n }], hasChildren: [{\n type: Input\n }], fetchChildren: [{\n type: Input\n }], isNodeVisible: [{\n type: Input\n }], itemDisabled: [{\n type: Input\n }], tagMapper: [{\n type: Input\n }], onFocus: [{\n type: Output,\n args: ['focus']\n }], onBlur: [{\n type: Output,\n args: ['blur']\n }], open: [{\n type: Output\n }], opened: [{\n type: Output\n }], close: [{\n type: Output\n }], closed: [{\n type: Output\n }], nodeExpand: [{\n type: Output\n }], nodeCollapse: [{\n type: Output\n }], valueChange: [{\n type: Output\n }], removeTag: [{\n type: Output\n }], filterChange: [{\n type: Output\n }], direction: [{\n type: HostBinding,\n args: ['attr.dir']\n }], isDisabled: [{\n type: HostBinding,\n args: ['class.k-disabled']\n }, {\n type: HostBinding,\n args: ['attr.aria-disabled']\n }], isLoading: [{\n type: HostBinding,\n args: ['class.k-loading']\n }], id: [{\n type: HostBinding,\n args: ['attr.id']\n }], hostTabIndex: [{\n type: HostBinding,\n args: ['attr.tabindex']\n }], isAriaExpanded: [{\n type: HostBinding,\n args: ['attr.aria-expanded']\n }], isReadonly: [{\n type: HostBinding,\n args: ['attr.readonly']\n }, {\n type: HostBinding,\n args: ['attr.aria-readonly']\n }], ariaDescribedBy: [{\n type: HostBinding,\n args: ['attr.aria-describedby']\n }], ariaActiveDescendant: [{\n type: HostBinding,\n args: ['attr.aria-activedescendant']\n }], \n /**\n * @hidden\n */\n handleClick: [{\n type: HostListener,\n args: ['click']\n }], \n /**\n * @hidden\n */\n handleKeydown: [{\n type: HostListener,\n args: ['keydown', ['$event']]\n }], treeview: [{\n type: ViewChild,\n args: ['treeview', { static: false }]\n }], tabindex: [{\n type: Input\n }], size: [{\n type: Input\n }], rounded: [{\n type: Input\n }], fillMode: [{\n type: Input\n }], popupSettings: [{\n type: Input\n }], checkableSettings: [{\n type: Input\n }], data: [{\n type: Input\n }], value: [{\n type: Input\n }], dataItems: [{\n type: Input\n }], isNodeExpanded: [{\n type: Input\n }], headerTemplate: [{\n type: ContentChild,\n args: [HeaderTemplateDirective, { static: false }]\n }], footerTemplate: [{\n type: ContentChild,\n args: [FooterTemplateDirective, { static: false }]\n }], nodeTemplate: [{\n type: ContentChild,\n args: [NodeTemplateDirective, { static: false }]\n }], noDataTemplate: [{\n type: ContentChild,\n args: [NoDataTemplateDirective, { static: false }]\n }], tagTemplate: [{\n type: ContentChild,\n args: [TagTemplateDirective, { static: false }]\n }], groupTagTemplate: [{\n type: ContentChild,\n args: [GroupTagTemplateDirective, { static: false }]\n }], popupTemplate: [{\n type: ViewChild,\n args: ['popupTemplate', { static: true }]\n }], container: [{\n type: ViewChild,\n args: ['container', { read: ViewContainerRef, static: true }]\n }], filterInput: [{\n type: ViewChild,\n args: ['filterInput', { static: false }]\n }], checkAllInput: [{\n type: ViewChild,\n args: ['checkAllInput', { static: false }]\n }], textField: [{\n type: Input\n }], valueField: [{\n type: Input\n }], loading: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DropDownTreeFlatBindingDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoDropDownTreeFlatBinding]'\n }]\n }], function () { return [{ type: ɵngcc6.DataBoundComponent }]; }, { nodes: [{\n type: Input,\n args: ['kendoDropDownTreeFlatBinding']\n }], idField: [{\n type: Input,\n args: ['valueField']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DropDownTreeHierarchyBindingDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoDropDownTreeHierarchyBinding]'\n }]\n }], function () { return [{ type: ɵngcc6.DataBoundComponent }]; }, { data: [{\n type: Input,\n args: ['kendoDropDownTreeHierarchyBinding']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MultiSelectTreeFlatBindingDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoMultiSelectTreeFlatBinding]'\n }]\n }], function () { return [{ type: ɵngcc6.DataBoundComponent }]; }, { nodes: [{\n type: Input,\n args: ['kendoMultiSelectTreeFlatBinding']\n }], idField: [{\n type: Input,\n args: ['valueField']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MultiSelectTreeHierarchyBindingDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoMultiSelectTreeHierarchyBinding]'\n }]\n }], function () { return [{ type: ɵngcc6.DataBoundComponent }]; }, { data: [{\n type: Input,\n args: ['kendoMultiSelectTreeHierarchyBinding']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DropDownTreesExpandDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoDropDownTreeExpandable], [kendoMultiSelectTreeExpandable]'\n }]\n }], function () { return [{ type: ɵngcc6.ExpandableComponent }]; }, { isExpanded: [{\n type: Input,\n args: ['isNodeExpanded']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TagListComponent, [{\n type: Component,\n 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, index) }}\n \n \n \n\n \n \n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }]; }, { rounded: [{\n type: Input\n }], fillMode: [{\n type: Input\n }], disabledIndices: [{\n type: Input\n }], removeTag: [{\n type: Output\n }], hostClasses: [{\n type: HostBinding,\n args: ['class.k-input-values']\n }, {\n type: HostBinding,\n args: ['class.k-chip-list']\n }, {\n type: HostBinding,\n args: ['class.k-selection-multiple']\n }], size: [{\n type: Input\n }], hostId: [{\n type: HostBinding,\n args: ['attr.id']\n }], tags: [{\n type: Input\n }], textField: [{\n type: Input\n }], valueField: [{\n type: Input\n }], valueDepth: [{\n type: Input\n }], focused: [{\n type: Input\n }], template: [{\n type: Input\n }], groupTemplate: [{\n type: Input\n }], disabled: [{\n type: Input\n }], tagPrefix: [{\n type: Input\n }], id: [{\n type: Input\n }] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LocalizedMessagesDirective, [{\n type: Directive,\n args: [{\n providers: [\n {\n provide: Messages,\n useExisting: forwardRef(() => LocalizedMessagesDirective_1)\n }\n ],\n selector: `\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CustomMessagesComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: Messages,\n useExisting: forwardRef(() => CustomMessagesComponent_1)\n }\n ],\n selector: 'kendo-dropdownlist-messages,kendo-combobox-messages,kendo-multicolumncombobox-messages,kendo-autocomplete-messages,kendo-multiselect-messages,kendo-dropdowntree-messages,kendo-multiselecttree-messages',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FilterDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoDropDownFilter]'\n }]\n }], function () { return [{ type: FilterableComponent }]; }, { filterable: [{\n type: Input\n }], data: [{\n type: Input\n }], rawSettings: [{\n type: Input,\n args: ['kendoDropDownFilter']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FilterInputDirective, [{\n type: Directive,\n args: [{\n selector: '[filterInput]' // tslint:disable-line\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }]; }, { focused: [{\n type: Input,\n args: ['filterInput']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SharedDirectivesModule, [{\n type: NgModule,\n args: [{\n declarations: [SHARED_DIRECTIVES],\n exports: [SHARED_DIRECTIVES]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(SharedDirectivesModule, { declarations: [HeaderTemplateDirective, FooterTemplateDirective, ItemTemplateDirective, GroupTemplateDirective, FixedGroupTemplateDirective, NoDataTemplateDirective, ValueTemplateDirective, TagTemplateDirective, GroupTagTemplateDirective, LocalizedMessagesDirective, CustomMessagesComponent, FilterDirective, FilterInputDirective], exports: [HeaderTemplateDirective, FooterTemplateDirective, ItemTemplateDirective, GroupTemplateDirective, FixedGroupTemplateDirective, NoDataTemplateDirective, ValueTemplateDirective, TagTemplateDirective, GroupTagTemplateDirective, LocalizedMessagesDirective, CustomMessagesComponent, FilterDirective, FilterInputDirective] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SelectableDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoDropDownsSelectable]'\n }]\n }], function () { return [{ type: SelectionService }]; }, { checkboxes: [{\n type: Input\n }], multipleSelection: [{\n type: Input\n }], focusedClassName: [{\n type: HostBinding,\n args: ['class.k-focus']\n }], selectedClassName: [{\n type: HostBinding,\n args: ['class.k-selected']\n }], onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }], index: [{\n type: HostBinding,\n args: ['attr.index']\n }, {\n type: Input\n }], height: [{\n type: HostBinding,\n args: ['style.height.px']\n }, {\n type: HostBinding,\n args: ['style.minHeight.px']\n }, {\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TemplateContextDirective, [{\n type: Directive,\n args: [{\n selector: '[templateContext]' // tslint:disable-line\n }]\n }], function () { return [{ type: ɵngcc0.ViewContainerRef }]; }, { templateContext: [{\n type: Input\n }] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CheckDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoMultiSelectTreeCheckable]'\n }]\n }], function () { return [{ type: ɵngcc6.TreeViewComponent }]; }, { checkedItemsChange: [{\n type: Output\n }], checkable: [{\n type: Input\n }], valueField: [{\n type: Input\n }], checkedItems: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CheckAllDirective, [{\n type: Directive,\n args: [{\n selector: '[checkAll]' // tslint:disable-line\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.Renderer2 }]; }, { checkedItemsChange: [{\n type: Output\n }], handleChange: [{\n type: HostListener,\n args: ['change', ['$event.target']]\n }], lastAction: [{\n type: Input\n }], treeview: [{\n type: Input\n }], checkedItems: [{\n type: Input\n }], valueField: [{\n type: Input\n }], focused: [{\n type: Input,\n args: ['checkAll']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SharedModule, [{\n type: NgModule,\n args: [{\n declarations: [INTERNAL_DIRECTIVES],\n exports: [INTERNAL_DIRECTIVES, CommonModule, FormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule],\n imports: [CommonModule, FormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(SharedModule, { declarations: function () { return [ListComponent, ListItemDirective, SelectableDirective, SearchBarComponent, TemplateContextDirective, TagListComponent, CheckDirective, CheckAllDirective]; }, imports: function () { return [CommonModule, FormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule]; }, exports: function () { return [ListComponent, ListItemDirective, SelectableDirective, SearchBarComponent, TemplateContextDirective, TagListComponent, CheckDirective, CheckAllDirective, CommonModule, FormsModule, PopupModule, ResizeSensorModule, SharedDirectivesModule, EventsModule]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MultiSelectTreeSummaryTagDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoMultiSelectTreeSummaryTag]'\n }]\n }], function () { return [{ type: MultiSelectTreeComponent }]; }, { showAfter: [{\n type: Input,\n args: ['kendoMultiSelectTreeSummaryTag']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DropDownTreesModule, [{\n type: NgModule,\n args: [{\n declarations: [DROPDOWNTREE_DIRECTIVES],\n exports: [DROPDOWNTREE_DIRECTIVES, SharedDirectivesModule],\n imports: [SharedModule, TreeViewModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(DropDownTreesModule, { declarations: function () { return [DropDownTreeComponent, MultiSelectTreeComponent, DropDownTreeFlatBindingDirective, DropDownTreeHierarchyBindingDirective, MultiSelectTreeFlatBindingDirective, MultiSelectTreeHierarchyBindingDirective, DropDownTreesExpandDirective, NodeTemplateDirective, MultiSelectTreeSummaryTagDirective]; }, imports: function () { return [SharedModule, TreeViewModule]; }, exports: function () { return [DropDownTreeComponent, MultiSelectTreeComponent, DropDownTreeFlatBindingDirective, DropDownTreeHierarchyBindingDirective, MultiSelectTreeFlatBindingDirective, MultiSelectTreeHierarchyBindingDirective, DropDownTreesExpandDirective, NodeTemplateDirective, MultiSelectTreeSummaryTagDirective, SharedDirectivesModule]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SummaryTagDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoMultiSelectSummaryTag]'\n }]\n }], function () { return [{ type: MultiSelectComponent }]; }, { showAfter: [{\n type: Input,\n args: ['kendoMultiSelectSummaryTag']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AutoCompleteModule, [{\n type: NgModule,\n args: [{\n declarations: [AUTOCOMPLETE_DIRECTIVES],\n exports: [AUTOCOMPLETE_DIRECTIVES, SharedDirectivesModule],\n imports: [SharedModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(AutoCompleteModule, { declarations: [AutoCompleteComponent], imports: [SharedModule], exports: [AutoCompleteComponent, SharedDirectivesModule] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ComboBoxModule, [{\n type: NgModule,\n args: [{\n declarations: [COMBOBOX_DIRECTIVES],\n exports: [COMBOBOX_DIRECTIVES, SharedDirectivesModule],\n imports: [SharedModule],\n providers: [{ provide: TOUCH_ENABLED, useValue: ɵ0$4 }]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(ComboBoxModule, { declarations: [ComboBoxComponent, MultiColumnComboBoxComponent, ComboBoxColumnComponent, ColumnHeaderTemplateDirective, ColumnCellTemplateDirective], imports: [SharedModule], exports: [ComboBoxComponent, MultiColumnComboBoxComponent, ComboBoxColumnComponent, ColumnHeaderTemplateDirective, ColumnCellTemplateDirective, SharedDirectivesModule] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DropDownListModule, [{\n type: NgModule,\n args: [{\n declarations: [DROPDOWNLIST_DIRECTIVES],\n exports: [DROPDOWNLIST_DIRECTIVES, SharedDirectivesModule],\n imports: [SharedModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(DropDownListModule, { declarations: [DropDownListComponent], imports: [SharedModule], exports: [DropDownListComponent, SharedDirectivesModule] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MultiSelectModule, [{\n type: NgModule,\n args: [{\n declarations: [MULTISELECT_DIRECTIVES],\n exports: [MULTISELECT_DIRECTIVES, SharedDirectivesModule],\n imports: [SharedModule],\n providers: [{ provide: TOUCH_ENABLED, useValue: ɵ0$5 }]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(MultiSelectModule, { declarations: [MultiSelectComponent, SummaryTagDirective, CustomItemTemplateDirective], imports: [SharedModule], exports: [MultiSelectComponent, SummaryTagDirective, CustomItemTemplateDirective, SharedDirectivesModule] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DropDownsModule, [{\n type: NgModule,\n args: [{\n exports: [AutoCompleteModule, ComboBoxModule, DropDownListModule, MultiSelectModule, DropDownTreesModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(DropDownsModule, { exports: [AutoCompleteModule, ComboBoxModule, DropDownListModule, MultiSelectModule, DropDownTreesModule] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AUTOCOMPLETE_VALUE_ACCESSOR, COMBOBOX_VALUE_ACCESSOR, TOUCH_ENABLED, DataService, DisabledItemsService, FilterInputDirective, FilterableComponent, ListItemDirective, CustomMessagesComponent, LocalizedMessagesDirective, Messages, NavigationService, SearchBarComponent, SelectionService, TagListComponent, NoDataTemplateDirective, TagTemplateDirective, DROPDOWNLIST_VALUE_ACCESSOR, BaseCheckDirective, CheckAllDirective, CheckDirective, MultiSelectTreeSummaryTagDirective, AutoCompleteComponent, ComboBoxComponent, DropDownListComponent, MultiSelectComponent, MultiColumnComboBoxComponent, ComboBoxColumnComponent, ColumnCellTemplateDirective, ColumnHeaderTemplateDirective, DropDownTreeComponent, MultiSelectTreeComponent, DropDownTreeFlatBindingDirective, DropDownTreeHierarchyBindingDirective, MultiSelectTreeFlatBindingDirective, MultiSelectTreeHierarchyBindingDirective, DropDownTreesExpandDirective, DropDownTreesModule, NodeTemplateDirective, ItemTemplateDirective, GroupTemplateDirective, FixedGroupTemplateDirective, CustomItemTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, ValueTemplateDirective, TemplateContextDirective, GroupTagTemplateDirective, SelectableDirective, SummaryTagDirective, FilterDirective, DropDownsModule, MultiSelectModule, SharedModule, AutoCompleteModule, ComboBoxModule, DropDownListModule, SharedDirectivesModule, ListComponent, PreventableEvent, RemoveTagEvent };\n\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, __param, __metadata } from 'tslib';\nimport { Inject, Optional, Input, ViewChild, ElementRef, Component, Injectable, EventEmitter, isDevMode, Output, HostBinding, ContentChild, ViewContainerRef, forwardRef, ChangeDetectorRef, NgZone, TemplateRef, Host, Directive, NgModule } from '@angular/core';\nimport { FormControl, Validators, FormGroup, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { Subject, BehaviorSubject, zip, fromEvent, interval } from 'rxjs';\nimport { take, map, filter, concatMap, takeUntil } from 'rxjs/operators';\nimport { ToolBarComponent, ToolBarToolComponent, ToolBarButtonComponent, ToolBarModule } from '@progress/kendo-angular-toolbar';\nimport { DialogContentBase, DialogRef, DialogService, DialogModule } from '@progress/kendo-angular-dialog';\nimport { isDocumentAvailable, guid, PreventableEvent, hasObservers, KendoInput, Keys } from '@progress/kendo-angular-common';\nimport { nodes, Schema, marks, createTable, insertNode, expandToWordWrap, toggleInlineFormat, bold, cleanFormatting, applyLink, applyInlineStyle, insertText, italic, strikethrough, subscript, superscript, underline, removeLink, link, selectAll, isAligned, alignCenterRules, alignBlocks, alignRemoveRules, alignJustifyRules, alignLeftRules, alignRightRules, formatBlockElements, getHtml, indent, insertImage, toggleOrderedList, toggleUnorderedList, outdent, redo, setHtml, undo, blockquote, addColumnBefore, addColumnAfter, addRowBefore, addRowAfter, deleteRow, deleteColumn, mergeCells, splitCell, deleteTable, hasMark, activeNode, canIndentAsListItem, canBeIndented, indentRules, hasNode, canOutdentAsListItem, outdentRules, isIndented, getActiveMarks, expandSelection, getNodeFromSelection, getMark, getSelectionText, pasteCleanup, parseContent, AllSelection, TextSelection, Plugin, PluginKey, history, keymap, buildListKeymap, buildKeymap, baseKeymap, gapCursor, imageResizing, tableEditing, caretColor, placeholder, EditorState, EditorView, removeComments, sanitize, removeAttribute, sanitizeStyleAttr, sanitizeClassAttr } from '@progress/kendo-editor-common';\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@progress/kendo-angular-dialog';\nimport * as ɵngcc2 from '@progress/kendo-angular-buttons';\nimport * as ɵngcc3 from '@angular/forms';\nimport * as ɵngcc4 from '@angular/common';\nimport * as ɵngcc5 from '@progress/kendo-angular-inputs';\nimport * as ɵngcc6 from '@progress/kendo-angular-l10n';\nimport * as ɵngcc7 from '@progress/kendo-angular-toolbar';\nimport * as ɵngcc8 from '@progress/kendo-angular-dropdowns';\nimport * as ɵngcc9 from '@progress/kendo-angular-popup';\n\nconst _c0 = [\"textarea\"];\nconst _c1 = [\"srcInput\"];\nconst _c2 = [\"hrefInput\"];\nfunction FileLinkDialogComponent_ng_container_24_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵelement(1, \"div\", 5);\n ɵngcc0.ɵɵelementStart(2, \"div\", 7);\n ɵngcc0.ɵɵelement(3, \"input\", 17);\n ɵngcc0.ɵɵelementStart(4, \"label\", 18);\n ɵngcc0.ɵɵtext(5);\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(5);\n ɵngcc0.ɵɵtextInterpolate(ctx_r3.textForWithPrefix(\"OpenInNewWindow\"));\n} }\nconst _c3 = [\"dialogsContainer\"];\nconst _c4 = [\"content\"];\nconst _c5 = [\"defaultToolbar\"];\nfunction EditorComponent_kendo_toolbar_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-toolbar\", 4, 5)(2, \"kendo-toolbar-buttongroup\");\n ɵngcc0.ɵɵelement(3, \"kendo-toolbar-button\", 6)(4, \"kendo-toolbar-button\", 7)(5, \"kendo-toolbar-button\", 8);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelement(6, \"kendo-toolbar-dropdownlist\", 9);\n ɵngcc0.ɵɵelementStart(7, \"kendo-toolbar-buttongroup\");\n ɵngcc0.ɵɵelement(8, \"kendo-toolbar-button\", 10)(9, \"kendo-toolbar-button\", 11)(10, \"kendo-toolbar-button\", 12)(11, \"kendo-toolbar-button\", 13);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(12, \"kendo-toolbar-buttongroup\");\n ɵngcc0.ɵɵelement(13, \"kendo-toolbar-button\", 14)(14, \"kendo-toolbar-button\", 15)(15, \"kendo-toolbar-button\", 16)(16, \"kendo-toolbar-button\", 17);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(17, \"kendo-toolbar-buttongroup\");\n ɵngcc0.ɵɵelement(18, \"kendo-toolbar-button\", 18)(19, \"kendo-toolbar-button\", 19);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelement(20, \"kendo-toolbar-button\", 20);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"overflow\", true)(\"tabindex\", ctx_r0.readonly ? -1 : 0);\n} }\nfunction EditorComponent_div_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"div\", 21, 22);\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵattribute(\"dir\", ctx_r1.direction);\n} }\nfunction EditorComponent_div_4_Template(rf, ctx) { if (rf & 1) {\n const _r8 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 21)(1, \"iframe\", 23, 22);\n ɵngcc0.ɵɵlistener(\"load\", function EditorComponent_div_4_Template_iframe_load_1_listener() { ɵngcc0.ɵɵrestoreView(_r8); const ctx_r7 = ɵngcc0.ɵɵnextContext(); return ctx_r7.iframeOnLoad(); });\n ɵngcc0.ɵɵelementEnd()();\n} }\nconst _c112 = [[[\"kendo-toolbar\"]]];\nconst _c113 = [\"kendo-toolbar\"];\nconst _c114 = [\"element\"];\nfunction FormatDropDownListComponent_ng_template_2_span_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 12);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const dataItem_r2 = ɵngcc0.ɵɵnextContext().$implicit;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", dataItem_r2.text, \" \");\n} }\nfunction FormatDropDownListComponent_ng_template_2_span_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 13);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const dataItem_r2 = ɵngcc0.ɵɵnextContext().$implicit;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", dataItem_r2.text, \" \");\n} }\nfunction FormatDropDownListComponent_ng_template_2_span_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 14);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const dataItem_r2 = ɵngcc0.ɵɵnextContext().$implicit;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", dataItem_r2.text, \" \");\n} }\nfunction FormatDropDownListComponent_ng_template_2_span_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 15);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const dataItem_r2 = ɵngcc0.ɵɵnextContext().$implicit;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", dataItem_r2.text, \" \");\n} }\nfunction FormatDropDownListComponent_ng_template_2_span_5_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 16);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const dataItem_r2 = ɵngcc0.ɵɵnextContext().$implicit;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", dataItem_r2.text, \" \");\n} }\nfunction FormatDropDownListComponent_ng_template_2_span_6_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 17);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const dataItem_r2 = ɵngcc0.ɵɵnextContext().$implicit;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", dataItem_r2.text, \" \");\n} }\nfunction FormatDropDownListComponent_ng_template_2_span_7_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 18);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const dataItem_r2 = ɵngcc0.ɵɵnextContext().$implicit;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", dataItem_r2.text, \" \");\n} }\nfunction FormatDropDownListComponent_ng_template_2_span_8_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\");\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const dataItem_r2 = ɵngcc0.ɵɵnextContext().$implicit;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(dataItem_r2.text);\n} }\nfunction FormatDropDownListComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0, 3);\n ɵngcc0.ɵɵtemplate(1, FormatDropDownListComponent_ng_template_2_span_1_Template, 2, 1, \"span\", 4);\n ɵngcc0.ɵɵtemplate(2, FormatDropDownListComponent_ng_template_2_span_2_Template, 2, 1, \"span\", 5);\n ɵngcc0.ɵɵtemplate(3, FormatDropDownListComponent_ng_template_2_span_3_Template, 2, 1, \"span\", 6);\n ɵngcc0.ɵɵtemplate(4, FormatDropDownListComponent_ng_template_2_span_4_Template, 2, 1, \"span\", 7);\n ɵngcc0.ɵɵtemplate(5, FormatDropDownListComponent_ng_template_2_span_5_Template, 2, 1, \"span\", 8);\n ɵngcc0.ɵɵtemplate(6, FormatDropDownListComponent_ng_template_2_span_6_Template, 2, 1, \"span\", 9);\n ɵngcc0.ɵɵtemplate(7, FormatDropDownListComponent_ng_template_2_span_7_Template, 2, 1, \"span\", 10);\n ɵngcc0.ɵɵtemplate(8, FormatDropDownListComponent_ng_template_2_span_8_Template, 2, 1, \"span\", 11);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const dataItem_r2 = ctx.$implicit;\n ɵngcc0.ɵɵproperty(\"ngSwitch\", dataItem_r2.tag);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngSwitchCase\", \"h1\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngSwitchCase\", \"h2\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngSwitchCase\", \"h3\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngSwitchCase\", \"h4\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngSwitchCase\", \"h5\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngSwitchCase\", \"h6\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngSwitchCase\", \"p\");\n} }\nconst _c115 = [\"formatDropDownList\"];\nconst _c116 = [\"colorpicker\"];\nconst _c117 = function (a0) { return { \"font-family\": a0 }; };\nfunction FontFamilyDropDownListComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 3);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const dataItem_r2 = ctx.$implicit;\n ɵngcc0.ɵɵproperty(\"ngStyle\", ɵngcc0.ɵɵpureFunction1(2, _c117, dataItem_r2.fontName));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", dataItem_r2.text, \" \");\n} }\nconst _c118 = \".k-dropdownlist[_ngcontent-%COMP%] {\\n width: 13em;\\n }\";\nconst _c119 = [\"fontFamilyDropDownList\"];\nconst _c120 = [\"toolbarTemplate\"];\nconst _c121 = [\"popupTemplate\"];\nconst _c122 = [\"formatButton\"];\nconst _c123 = [\"kendoEditorFormat\", \"\"];\nfunction EditorFormatComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n const _r6 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-editor-format-dropdownlist\", 2, 3);\n ɵngcc0.ɵɵlistener(\"valueChange\", function EditorFormatComponent_ng_template_0_Template_kendo_editor_format_dropdownlist_valueChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r5 = ɵngcc0.ɵɵnextContext(); return ctx_r5.value = $event; })(\"valueChange\", function EditorFormatComponent_ng_template_0_Template_kendo_editor_format_dropdownlist_valueChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r7 = ɵngcc0.ɵɵnextContext(); return ctx_r7.onValueChange($event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"defaultItem\", ctx_r1.defaultItem)(\"data\", ctx_r1.data)(\"value\", ctx_r1.value)(\"itemDisabled\", ctx_r1.itemDisabled)(\"title\", ctx_r1.title)(\"disabled\", ctx_r1.disabled)(\"tabindex\", ctx_r1.tabindex);\n} }\nfunction EditorFormatComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n const _r10 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 4, 5);\n ɵngcc0.ɵɵlistener(\"click\", function EditorFormatComponent_ng_template_2_Template_button_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r10); const ctx_r9 = ɵngcc0.ɵɵnextContext(); return ctx_r9.openDialog(); });\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"tabindex\", ctx_r3.tabindex)(\"icon\", \"apply-format\")(\"disabled\", ctx_r3.disabled)(\"tabindex\", ctx_r3.tabindex);\n ɵngcc0.ɵɵattribute(\"title\", ctx_r3.title);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r3.title, \" \");\n} }\nconst _c124 = [\"fontSizeDropDownList\"];\nconst _c125 = [\"fontSizeButton\"];\nconst _c126 = [\"kendoEditorFontSize\", \"\"];\nfunction EditorFontSizeComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n const _r6 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-editor-fontsize-dropdownlist\", 2, 3);\n ɵngcc0.ɵɵlistener(\"valueChange\", function EditorFontSizeComponent_ng_template_0_Template_kendo_editor_fontsize_dropdownlist_valueChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r5 = ɵngcc0.ɵɵnextContext(); return ctx_r5.value = $event; })(\"valueChange\", function EditorFontSizeComponent_ng_template_0_Template_kendo_editor_fontsize_dropdownlist_valueChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r7 = ɵngcc0.ɵɵnextContext(); return ctx_r7.onValueChange($event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"defaultItem\", ctx_r1.defaultItem)(\"data\", ctx_r1.data)(\"value\", ctx_r1.value)(\"itemDisabled\", ctx_r1.itemDisabled)(\"title\", ctx_r1.title)(\"disabled\", ctx_r1.disabled)(\"tabindex\", ctx_r1.tabindex);\n} }\nfunction EditorFontSizeComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n const _r10 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 4, 5);\n ɵngcc0.ɵɵlistener(\"click\", function EditorFontSizeComponent_ng_template_2_Template_button_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r10); const ctx_r9 = ɵngcc0.ɵɵnextContext(); return ctx_r9.openDialog(); });\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"icon\", \"font-size\")(\"disabled\", ctx_r3.disabled)(\"tabindex\", ctx_r3.tabindex);\n ɵngcc0.ɵɵattribute(\"title\", ctx_r3.title);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r3.title, \" \");\n} }\nconst _c127 = [\"fontFamilyButton\"];\nconst _c128 = [\"kendoEditorFontFamily\", \"\"];\nfunction EditorFontFamilyComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n const _r6 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-editor-fontfamily-dropdownlist\", 2, 3);\n ɵngcc0.ɵɵlistener(\"valueChange\", function EditorFontFamilyComponent_ng_template_0_Template_kendo_editor_fontfamily_dropdownlist_valueChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r5 = ɵngcc0.ɵɵnextContext(); return ctx_r5.value = $event; })(\"valueChange\", function EditorFontFamilyComponent_ng_template_0_Template_kendo_editor_fontfamily_dropdownlist_valueChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r7 = ɵngcc0.ɵɵnextContext(); return ctx_r7.onValueChange($event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"defaultItem\", ctx_r1.defaultItem)(\"data\", ctx_r1.data)(\"value\", ctx_r1.value)(\"itemDisabled\", ctx_r1.itemDisabled)(\"title\", ctx_r1.title)(\"disabled\", ctx_r1.disabled)(\"tabindex\", ctx_r1.tabindex);\n} }\nfunction EditorFontFamilyComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n const _r10 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 4, 5);\n ɵngcc0.ɵɵlistener(\"click\", function EditorFontFamilyComponent_ng_template_2_Template_button_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r10); const ctx_r9 = ɵngcc0.ɵɵnextContext(); return ctx_r9.openDialog(); });\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"icon\", \"font-family\")(\"disabled\", ctx_r3.disabled)(\"tabindex\", ctx_r3.tabindex);\n ɵngcc0.ɵɵattribute(\"title\", ctx_r3.title);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r3.title, \" \");\n} }\nconst _c129 = [\"colorPickerButton\"];\nfunction EditorColorPickerComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n const _r6 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-colorpicker\", 2, 3);\n ɵngcc0.ɵɵlistener(\"valueChange\", function EditorColorPickerComponent_ng_template_0_Template_kendo_colorpicker_valueChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r5 = ɵngcc0.ɵɵnextContext(); return ctx_r5.handleValueChange($event); })(\"activeColorClick\", function EditorColorPickerComponent_ng_template_0_Template_kendo_colorpicker_activeColorClick_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r7 = ɵngcc0.ɵɵnextContext(); return ctx_r7.handleActiveColorClick($event); })(\"open\", function EditorColorPickerComponent_ng_template_0_Template_kendo_colorpicker_open_0_listener() { ɵngcc0.ɵɵrestoreView(_r6); const _r4 = ɵngcc0.ɵɵreference(1); const ctx_r8 = ɵngcc0.ɵɵnextContext(); return ctx_r8.onOpen(_r4); })(\"close\", function EditorColorPickerComponent_ng_template_0_Template_kendo_colorpicker_close_0_listener() { ɵngcc0.ɵɵrestoreView(_r6); const _r4 = ɵngcc0.ɵɵreference(1); const ctx_r9 = ɵngcc0.ɵɵnextContext(); return ctx_r9.onClose(_r4); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"icon\", ctx_r1.icon)(\"views\", ctx_r1.views)(\"format\", \"hex\")(\"value\", ctx_r1.value)(\"paletteSettings\", ctx_r1.paletteSettings)(\"disabled\", ctx_r1.disabled)(\"tabindex\", ctx_r1.tabindex);\n ɵngcc0.ɵɵattribute(\"title\", ctx_r1.title);\n} }\nfunction EditorColorPickerComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n const _r12 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 4, 5);\n ɵngcc0.ɵɵlistener(\"click\", function EditorColorPickerComponent_ng_template_2_Template_button_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r12); const ctx_r11 = ɵngcc0.ɵɵnextContext(); return ctx_r11.openDialog(); });\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"icon\", ctx_r3.icon)(\"disabled\", ctx_r3.disabled)(\"tabindex\", ctx_r3.tabindex);\n ɵngcc0.ɵɵattribute(\"title\", ctx_r3.title);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r3.title, \" \");\n} }\nconst _c130 = [\"overflowElement\"];\nconst _c131 = [\"popupGridTemplate\"];\nfunction EditorInsertTableButtonComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n const _r8 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 3, 4);\n ɵngcc0.ɵɵlistener(\"click\", function EditorInsertTableButtonComponent_ng_template_0_Template_button_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r8); const ctx_r7 = ɵngcc0.ɵɵnextContext(); return ctx_r7.toggle(); })(\"blur\", function EditorInsertTableButtonComponent_ng_template_0_Template_button_blur_0_listener() { ɵngcc0.ɵɵrestoreView(_r8); const ctx_r9 = ɵngcc0.ɵɵnextContext(); return ctx_r9.onBlur(); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"icon\", \"table-insert\")(\"disabled\", ctx_r1.disabled);\n ɵngcc0.ɵɵattribute(\"title\", ctx_r1.title)(\"tabindex\", ctx_r1.tabIndex);\n} }\nfunction EditorInsertTableButtonComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n const _r12 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 5, 6);\n ɵngcc0.ɵɵlistener(\"click\", function EditorInsertTableButtonComponent_ng_template_2_Template_button_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r12); const ctx_r11 = ɵngcc0.ɵɵnextContext(); return ctx_r11.openDialog(); });\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"icon\", \"table-insert\")(\"disabled\", ctx_r3.disabled);\n ɵngcc0.ɵɵattribute(\"title\", ctx_r3.title)(\"tabindex\", ctx_r3.tabIndex);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r3.title, \" \");\n} }\nfunction EditorInsertTableButtonComponent_ng_template_4_Template(rf, ctx) { if (rf & 1) {\n const _r14 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-popup-table-grid\", 7);\n ɵngcc0.ɵɵlistener(\"cellClick\", function EditorInsertTableButtonComponent_ng_template_4_Template_kendo_popup_table_grid_cellClick_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r14); const ctx_r13 = ɵngcc0.ɵɵnextContext(); return ctx_r13.onCellClick($event); })(\"tableWizardClick\", function EditorInsertTableButtonComponent_ng_template_4_Template_kendo_popup_table_grid_tableWizardClick_0_listener() { ɵngcc0.ɵɵrestoreView(_r14); const ctx_r15 = ɵngcc0.ɵɵnextContext(); return ctx_r15.onTableWizardClick(); });\n ɵngcc0.ɵɵelementEnd();\n} }\nfunction PopupTableGridComponent_span_1_Template(rf, ctx) { if (rf & 1) {\n const _r3 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"span\", 3);\n ɵngcc0.ɵɵlistener(\"mouseenter\", function PopupTableGridComponent_span_1_Template_span_mouseenter_0_listener() { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r3); const i_r1 = restoredCtx.$implicit; const ctx_r2 = ɵngcc0.ɵɵnextContext(); return ctx_r2.setState(i_r1); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const i_r1 = ctx.$implicit;\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"k-state-selected\", ctx_r0.selected(i_r1))(\"k-state-disabled\", !ctx_r0.selected(i_r1));\n} }\nexport { Schema, EditorState, Plugin, PluginKey, Transaction, EditorView, Decoration, DecorationSet, NodeType, Node, MarkType, Mark, InputRule, inputRules, wrappingInputRule, textblockTypeInputRule, keymap, baseKeymap, history, dropCursor, gapCursor, tableNodes, getSelectionText } from '@progress/kendo-editor-common';\nimport { validatePackage } from '@progress/kendo-licensing';\nimport { LocalizationService, L10N_PREFIX, RTL, MessageService, ComponentMessages } from '@progress/kendo-angular-l10n';\nimport { CommonModule } from '@angular/common';\nimport { DropDownListComponent, DropDownsModule } from '@progress/kendo-angular-dropdowns';\nimport { ButtonModule } from '@progress/kendo-angular-buttons';\nimport { ColorPickerComponent, ColorPickerModule, NumericTextBoxModule, CheckBoxModule, TextBoxModule } from '@progress/kendo-angular-inputs';\nimport { PopupService } from '@progress/kendo-angular-popup';\n\n/**\n * @hidden\n */\nconst packageMetadata = {\n name: '@progress/kendo-angular-editor',\n productName: 'Kendo UI for Angular',\n productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],\n publishDate: 1646218976,\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\n/**\n * @hidden\n */\nconst hasAttrs = (attrs, exclude) => {\n for (let attr in attrs) {\n if (attr && attrs[attr] !== null && attr !== exclude) {\n return true;\n }\n }\n return false;\n};\n/**\n * @hidden\n */\nconst getAttrs = (attrs, exclude) => {\n const result = {};\n for (let attr in attrs) {\n if (attr && attrs[attr] !== null && attr !== exclude) {\n result[attr] = attrs[attr];\n }\n }\n return result;\n};\n/**\n * @hidden\n */\nconst getAttributes = (dom) => {\n const result = {};\n let attributes = dom.attributes, attr;\n for (let i = 0; i < attributes.length; i++) {\n attr = attributes[i];\n result[attr.name] = attr.value;\n }\n return result;\n};\n/**\n * @hidden\n */\nconst commonAttributes = () => {\n return Object.assign({}, createDefaultAttributes(['class', 'id', 'style']));\n};\n/**\n * @hidden\n */\nconst createDefaultAttributes = (attrs = []) => {\n return Object.assign({}, attrs.reduce((acc, curr) => (Object.assign({}, acc, { [curr]: { default: null } })), {}));\n};\n/**\n * @hidden\n */\nconst hole = 0;\n\nconst createSemanticNode = (tagName) => ({\n // Uncaught SyntaxError: Mixing inline and block content (in content expression '(block | inline)*')\n // content: '(block | inline)*',\n content: 'block*',\n group: 'block',\n attrs: Object.assign({}, commonAttributes()),\n parseDOM: [{\n tag: tagName,\n getAttrs: getAttributes\n }],\n toDOM: node => hasAttrs(node.attrs) ? [tagName, getAttrs(node.attrs), hole] : [tagName, hole]\n});\n/**\n * @hidden\n */\nconst semanticTagNames = ['article', 'main', 'nav', 'header', 'footer', 'aside', 'section'];\nconst ɵ1 = (acc, curr) => Object.assign(acc, { [curr]: createSemanticNode(curr) });\n/**\n * @hidden\n */\nconst semanticNodes = semanticTagNames.reduce(ɵ1, {});\n\n/**\n * @hidden\n */\nconst marks$1 = marks;\nconst nodes$1 = Object.assign(nodes, semanticNodes);\n/**\n * @hidden\n */\nconst schema = new Schema({\n marks: marks$1,\n nodes: nodes$1\n});\n\n/**\n * @hidden\n */\nconst insertTable = (attrs) => (state, dispatch) => {\n const newTable = createTable(state.schema.nodes, attrs.rows, attrs.cols);\n if (newTable) {\n insertNode(newTable, true)(state, dispatch);\n }\n};\n\nconst alignRemove = (state, dispatch) => alignBlocks(alignRemoveRules)(state, dispatch);\nconst ɵ1$1 = (applyToWord) => expandToWordWrap(toggleInlineFormat, Object.assign({}, bold, { applyToWord })), ɵ2 = (options) => cleanFormatting(options), ɵ3 = attrs => expandToWordWrap(applyLink, { mark: 'link', attrs: attrs.value, applyToWord: attrs.applyToWord }), ɵ4 = attrs => expandToWordWrap(applyInlineStyle, { style: 'font-family', value: attrs.value, applyToWord: attrs.applyToWord }), ɵ5 = attrs => expandToWordWrap(applyInlineStyle, { style: 'font-size', value: attrs.value + 'px', applyToWord: attrs.applyToWord }), ɵ6 = attrs => expandToWordWrap(applyLink, { mark: 'link', attrs: attrs, applyToWord: attrs.applyToWord }), ɵ7 = text => insertText(text), ɵ8 = (applyToWord) => expandToWordWrap(toggleInlineFormat, Object.assign({}, italic, { applyToWord })), ɵ9 = (applyToWord) => expandToWordWrap(toggleInlineFormat, Object.assign({}, strikethrough, { applyToWord })), ɵ10 = (applyToWord) => expandToWordWrap(toggleInlineFormat, Object.assign({}, subscript, { applyToWord })), ɵ11 = (applyToWord) => expandToWordWrap(toggleInlineFormat, Object.assign({}, superscript, { applyToWord })), ɵ12 = (applyToWord) => expandToWordWrap(toggleInlineFormat, Object.assign({}, underline, { applyToWord })), ɵ13 = () => removeLink(link), ɵ14 = attrs => expandToWordWrap(applyInlineStyle, { style: 'color', value: attrs.value, applyToWord: attrs.applyToWord }), ɵ15 = attrs => expandToWordWrap(applyInlineStyle, { style: 'background-color', value: attrs.value, applyToWord: attrs.applyToWord }), ɵ16 = () => (state, dispatch) => selectAll(state, dispatch);\nconst inlineCommand = {\n bold: ɵ1$1,\n cleanFormatting: ɵ2,\n createLink: ɵ3,\n fontFamily: ɵ4,\n fontSize: ɵ5,\n insertFile: ɵ6,\n insertText: ɵ7,\n italic: ɵ8,\n strikethrough: ɵ9,\n subscript: ɵ10,\n superscript: ɵ11,\n underline: ɵ12,\n unlink: ɵ13,\n foreColor: ɵ14,\n backColor: ɵ15,\n selectAll: ɵ16\n};\nconst ɵ17 = () => (state, dispatch) => isAligned(state, alignCenterRules) ? alignRemove(state, dispatch) : alignBlocks(alignCenterRules)(state, dispatch), ɵ18 = () => (state, dispatch) => isAligned(state, alignJustifyRules) ? alignRemove(state, dispatch) : alignBlocks(alignJustifyRules)(state, dispatch), ɵ19 = () => (state, dispatch) => isAligned(state, alignLeftRules) ? alignRemove(state, dispatch) : alignBlocks(alignLeftRules)(state, dispatch), ɵ20 = () => (state, dispatch) => isAligned(state, alignRightRules) ? alignRemove(state, dispatch) : alignBlocks(alignRightRules)(state, dispatch), ɵ21 = formatAttr => formatBlockElements(formatAttr.tag), ɵ22 = () => getHtml, ɵ23 = () => indent, ɵ24 = attrs => insertImage(attrs), ɵ25 = () => toggleOrderedList, ɵ26 = () => toggleUnorderedList, ɵ27 = () => outdent, ɵ28 = () => redo, ɵ29 = ({ content, parseOptions }) => setHtml(content, 'setHTML', parseOptions), ɵ30 = () => undo, ɵ31 = () => blockquote;\nconst blockCommand = {\n alignCenter: ɵ17,\n alignJustify: ɵ18,\n alignLeft: ɵ19,\n alignRight: ɵ20,\n format: ɵ21,\n getHTML: ɵ22,\n indent: ɵ23,\n insertImage: ɵ24,\n // think about changing the command name.\n insertOrderedList: ɵ25,\n // think about changing the command name.\n insertUnorderedList: ɵ26,\n outdent: ɵ27,\n redo: ɵ28,\n setHTML: ɵ29,\n undo: ɵ30,\n blockquote: ɵ31\n};\nconst ɵ32 = attr => insertTable(attr), ɵ33 = () => addColumnBefore, ɵ34 = () => addColumnAfter, ɵ35 = () => addRowBefore, ɵ36 = () => addRowAfter, ɵ37 = () => deleteRow, ɵ38 = () => deleteColumn, ɵ39 = () => mergeCells, ɵ40 = () => splitCell, ɵ41 = () => deleteTable;\nconst tableCommand = {\n insertTable: ɵ32,\n addColumnBefore: ɵ33,\n addColumnAfter: ɵ34,\n addRowBefore: ɵ35,\n addRowAfter: ɵ36,\n deleteRow: ɵ37,\n deleteColumn: ɵ38,\n mergeCells: ɵ39,\n splitCell: ɵ40,\n deleteTable: ɵ41\n};\n/**\n * @hidden\n */\nconst editorCommands = Object.assign({}, inlineCommand, blockCommand, tableCommand);\n\n/**\n * @hidden\n */\nconst getToolbarState = (state, options) => ({\n alignCenter: {\n selected: isAligned(state, alignCenterRules),\n disabled: false\n },\n alignJustify: {\n selected: isAligned(state, alignJustifyRules),\n disabled: false\n },\n alignLeft: {\n selected: isAligned(state, alignLeftRules),\n disabled: false\n },\n alignRight: {\n selected: isAligned(state, alignRightRules),\n disabled: false\n },\n bold: {\n selected: hasMark(state, bold),\n disabled: false\n },\n cleanFormatting: {\n selected: false,\n disabled: !cleanFormatting()(state)\n },\n format: {\n selected: activeNode(state),\n disabled: false\n },\n blockquote: {\n selected: false,\n disabled: !blockquote(state)\n },\n indent: {\n selected: false,\n disabled: !(canIndentAsListItem(state, state.schema.nodes.list_item) || canBeIndented(state, indentRules))\n },\n insertOrderedList: {\n selected: hasNode(state, state.schema.nodes.ordered_list),\n disabled: false\n },\n insertUnorderedList: {\n selected: hasNode(state, state.schema.nodes.bullet_list),\n disabled: false\n },\n italic: {\n selected: hasMark(state, italic),\n disabled: false\n },\n unlink: {\n selected: false,\n disabled: !hasMark(state, link)\n },\n outdent: {\n selected: false,\n get disabled() {\n return !(hasNode(state, state.schema.nodes.blockquote) ||\n canOutdentAsListItem(state, outdentRules) ||\n isIndented(state, outdentRules.nodes));\n }\n },\n redo: {\n selected: false,\n disabled: !redo(state)\n },\n selectAll: {\n selected: false,\n disabled: false\n },\n strikethrough: {\n selected: hasMark(state, strikethrough),\n disabled: false\n },\n style: {\n selected: getActiveMarks(state, state.schema.marks.style),\n disabled: false\n },\n subscript: {\n selected: hasMark(state, subscript),\n disabled: false\n },\n superscript: {\n selected: hasMark(state, superscript),\n disabled: false\n },\n underline: {\n selected: hasMark(state, underline),\n disabled: false\n },\n undo: {\n selected: false,\n disabled: !undo(state)\n },\n //dialogs\n createLink: {\n selected: false,\n get disabled() {\n const empty = state.selection.empty;\n const applyToWord = options && options.applyToWord;\n if (applyToWord && empty) {\n const extendedState = expandSelection(state, () => { }, options).state;\n return extendedState.selection.empty;\n }\n return empty;\n }\n },\n insertFile: {\n selected: false,\n disabled: state.selection.empty\n },\n insertImage: {\n selected: false,\n disabled: false\n },\n viewSource: {\n selected: false,\n disabled: false\n },\n // print\n print: {\n selected: false,\n disabled: false\n },\n // table\n insertTable: {\n selected: false,\n disabled: false\n },\n addColumnBefore: {\n selected: false,\n disabled: !addColumnBefore(state)\n },\n addColumnAfter: {\n selected: false,\n disabled: !addColumnAfter(state)\n },\n addRowBefore: {\n selected: false,\n disabled: !addRowBefore(state)\n },\n addRowAfter: {\n selected: false,\n disabled: !addRowAfter(state)\n },\n deleteRow: {\n selected: false,\n disabled: !deleteRow(state)\n },\n deleteColumn: {\n selected: false,\n disabled: !deleteColumn(state)\n },\n mergeCells: {\n selected: false,\n disabled: !mergeCells(state)\n },\n splitCell: {\n selected: false,\n disabled: !splitCell(state)\n },\n deleteTable: {\n selected: false,\n disabled: !deleteTable(state)\n }\n});\n/**\n * @hidden\n */\nconst initialToolBarState = {\n //alignment\n alignCenter: { selected: false, disabled: false },\n alignJustify: { selected: false, disabled: false },\n alignLeft: { selected: false, disabled: false },\n alignRight: { selected: false, disabled: false },\n //marks\n bold: { selected: false, disabled: false },\n italic: { selected: false, disabled: false },\n underline: { selected: false, disabled: false },\n strikethrough: { selected: false, disabled: false },\n subscript: { selected: false, disabled: false },\n superscript: { selected: false, disabled: false },\n //tools\n format: { selected: { text: 'Format', tag: null }, disabled: false },\n style: { selected: { marks: [], hasNodesWithoutMarks: false }, disabled: false },\n cleanFormatting: { selected: false, disabled: true },\n blockquote: { selected: false, disabled: false },\n //indent\n indent: { selected: false, disabled: false },\n outdent: { selected: false, disabled: false },\n //lists\n insertOrderedList: { selected: false, disabled: false },\n insertUnorderedList: { selected: false, disabled: false },\n //links\n unlink: { selected: false, disabled: true },\n //history\n redo: { selected: false, disabled: true },\n undo: { selected: false, disabled: true },\n // print\n print: { selected: false, disabled: false },\n //dialogs\n createLink: { selected: false, disabled: true },\n insertFile: { selected: false, disabled: true },\n insertImage: { selected: false, disabled: false },\n viewSource: { selected: false, disabled: false },\n //table\n insertTable: { selected: false, disabled: false },\n addColumnBefore: { selected: false, disabled: true },\n addColumnAfter: { selected: false, disabled: true },\n addRowBefore: { selected: false, disabled: true },\n addRowAfter: { selected: false, disabled: true },\n deleteRow: { selected: false, disabled: true },\n deleteColumn: { selected: false, disabled: true },\n mergeCells: { selected: false, disabled: true },\n splitCell: { selected: false, disabled: true },\n deleteTable: { selected: false, disabled: true },\n // select all\n selectAll: { selected: false, disabled: false }\n};\n/**\n * @hidden\n */\nconst disabledToolBarState = {\n //alignment\n alignCenter: { selected: false, disabled: true },\n alignJustify: { selected: false, disabled: true },\n alignLeft: { selected: false, disabled: true },\n alignRight: { selected: false, disabled: true },\n //marks\n bold: { selected: false, disabled: true },\n italic: { selected: false, disabled: true },\n underline: { selected: false, disabled: true },\n strikethrough: { selected: false, disabled: true },\n subscript: { selected: false, disabled: true },\n superscript: { selected: false, disabled: true },\n //tools\n format: { selected: { text: 'Format', tag: null }, disabled: true },\n style: { selected: { marks: [], hasNodesWithoutMarks: false }, disabled: true },\n cleanFormatting: { selected: false, disabled: true },\n blockquote: { selected: false, disabled: true },\n //indent\n indent: { selected: false, disabled: true },\n outdent: { selected: false, disabled: true },\n //lists\n insertOrderedList: { selected: false, disabled: true },\n insertUnorderedList: { selected: false, disabled: true },\n //links\n unlink: { selected: false, disabled: true },\n //history\n redo: { selected: false, disabled: true },\n undo: { selected: false, disabled: true },\n // print\n print: { selected: false, disabled: true },\n //dialogs\n createLink: { selected: false, disabled: true },\n insertFile: { selected: false, disabled: true },\n insertImage: { selected: false, disabled: true },\n viewSource: { selected: false, disabled: true },\n //table\n insertTable: { selected: false, disabled: true },\n addColumnBefore: { selected: false, disabled: true },\n addColumnAfter: { selected: false, disabled: true },\n addRowBefore: { selected: false, disabled: true },\n addRowAfter: { selected: false, disabled: true },\n deleteRow: { selected: false, disabled: true },\n deleteColumn: { selected: false, disabled: true },\n mergeCells: { selected: false, disabled: true },\n splitCell: { selected: false, disabled: true },\n deleteTable: { selected: false, disabled: true },\n // select all\n selectAll: { selected: false, disabled: true }\n};\n\n/**\n * @hidden\n */\nfunction outerWidth(element) {\n let width = element.offsetWidth;\n const style = getComputedStyle(element);\n width += parseFloat(style.marginLeft) || 0 + parseFloat(style.marginRight) || 0;\n return width;\n}\n/**\n * @hidden\n */\nconst removeEntries = (obj, predicate) => Object.keys(obj)\n .filter(key => predicate(key))\n .reduce((acc, curr) => Object.assign(acc, { [curr]: obj[curr] }), {});\n/**\n * @hidden\n */\nconst removeEmptyEntries = (obj) => {\n const predicate = key => obj[key] !== null && obj[key] !== undefined && obj[key] !== '';\n return removeEntries(obj, predicate);\n};\n/**\n * @hidden\n */\nconst isNullOrUndefined = (value) => value === undefined || value === null;\n/**\n * @hidden\n */\nconst isPresent = (value) => !isNullOrUndefined(value);\n/**\n * @hidden\n */\nconst detectIE = () => {\n if (!isDocumentAvailable()) {\n return false;\n }\n const ua = window.navigator.userAgent;\n const msie = ua.indexOf('MSIE ');\n const trident = ua.indexOf('Trident/');\n return msie > 0 || trident > 0;\n};\n/**\n * @hidden\n */\nconst safeString = (value) => (isNullOrUndefined(value) ? '' : value.toString());\n/**\n * @hidden\n */\nconst first = (arr) => arr[0];\n/**\n * @hidden\n */\nconst last = (arr) => arr[arr.length - 1];\n/**\n * @hidden\n */\nconst split = (splitter) => (value) => value.split(splitter);\n/**\n * @hidden\n */\nconst trim = (value) => value.trim();\n/**\n * @hidden\n */\nconst filter$1 = (predicate) => (arr) => arr.filter(predicate);\n/**\n * @hidden\n */\nconst getUniqueStyleValues = (style, cssStyle) => {\n if (style.hasNodesWithoutMarks) {\n return '';\n }\n const uniqueMarkValues = style.marks\n .filter(m => m.type.name === 'style')\n .map(m => m.attrs.style)\n .map(safeString)\n .map(split(';'))\n .map(filter$1((m) => m.includes(cssStyle)))\n // guards against empty array\n .map((cssStyleValues) => (cssStyleValues.length !== 0 ? cssStyleValues : [`${cssStyle}: INVALID`]))\n .map(first)\n .map(split(':'))\n .map(last)\n .map(trim)\n .reduce((acc, curr) => (acc.indexOf(curr) > -1 ? acc : [...acc, curr]), []);\n if (uniqueMarkValues.indexOf('INVALID') > -1 || uniqueMarkValues.length !== 1) {\n return '';\n }\n return uniqueMarkValues[0];\n};\n/**\n * @hidden\n */\nconst conditionallyExecute = (fn) => (condition) => (param) => (condition ? fn(param) : param);\n/**\n * @hidden\n */\nconst pipe = (...fns) => x => fns.reduce((y, f) => f(y), x);\n\n/**\n * @hidden\n */\nlet EditorLocalizationService = class EditorLocalizationService extends LocalizationService {\n constructor(prefix, messageService, _rtl) {\n super(prefix, messageService, _rtl);\n }\n};\nEditorLocalizationService.ɵfac = function EditorLocalizationService_Factory(t) { return new (t || EditorLocalizationService)(ɵngcc0.ɵɵinject(L10N_PREFIX), ɵngcc0.ɵɵinject(ɵngcc6.MessageService, 8), ɵngcc0.ɵɵinject(RTL, 8)); };\nEditorLocalizationService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: EditorLocalizationService, factory: function (t) { return EditorLocalizationService.ɵfac(t); } });\nEditorLocalizationService = __decorate([\n __param(0, Inject(L10N_PREFIX)),\n __param(1, Optional()),\n __param(2, Optional()), __param(2, Inject(RTL)),\n __metadata(\"design:paramtypes\", [String, MessageService, Boolean])\n], EditorLocalizationService);\n\n/**\n * @hidden\n */\nlet SourceDialogComponent = class SourceDialogComponent extends DialogContentBase {\n constructor(dialog, localization) {\n super(dialog);\n this.dialog = dialog;\n this.localization = localization;\n this.data = '';\n }\n ngAfterViewInit() {\n Promise.resolve(null).then(() => {\n this.textarea.nativeElement.focus();\n });\n }\n onCancelAction() {\n this.dialog.close();\n }\n onConfirmAction() {\n this.editor.exec('setHTML', this.getData());\n this.dialog.close();\n this.editor.view.focus();\n }\n getData() {\n return this.textarea.nativeElement.value;\n }\n setData() {\n this.data = this.indent(this.editor.getSource());\n }\n textFor(key) {\n return this.localization.get(key);\n }\n indent(content) {\n return content\n .replace(/<\\/(p|li|ul|ol|h[1-6]|table|tr|td|th)>/gi, '\\n')\n .replace(/<(ul|ol)([^>]*)>
  • \\n/gi, '
    \\n')\n .replace(/\\n$/, '');\n }\n};\nSourceDialogComponent.ɵfac = function SourceDialogComponent_Factory(t) { return new (t || SourceDialogComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.DialogRef), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService)); };\nSourceDialogComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SourceDialogComponent, selectors: [[\"ng-component\"]], viewQuery: function SourceDialogComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c0, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.textarea = _t.first);\n } }, inputs: { editor: \"editor\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 9, vars: 5, consts: [[3, \"close\"], [1, \"k-textarea\", \"k-editor-textarea\", 3, \"value\"], [\"textarea\", \"\"], [\"kendoButton\", \"\", 3, \"click\"], [\"kendoButton\", \"\", 3, \"primary\", \"click\"]], template: function SourceDialogComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-dialog-titlebar\", 0);\n ɵngcc0.ɵɵlistener(\"close\", function SourceDialogComponent_Template_kendo_dialog_titlebar_close_0_listener() { return ctx.onCancelAction(); });\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelement(2, \"textarea\", 1, 2);\n ɵngcc0.ɵɵelementStart(4, \"kendo-dialog-actions\")(5, \"button\", 3);\n ɵngcc0.ɵɵlistener(\"click\", function SourceDialogComponent_Template_button_click_5_listener() { return ctx.onCancelAction(); });\n ɵngcc0.ɵɵtext(6);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(7, \"button\", 4);\n ɵngcc0.ɵɵlistener(\"click\", function SourceDialogComponent_Template_button_click_7_listener() { return ctx.onConfirmAction(); });\n ɵngcc0.ɵɵtext(8);\n ɵngcc0.ɵɵelementEnd()();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx.textFor(\"viewSource\"), \" \");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"value\", ctx.data);\n ɵngcc0.ɵɵadvance(4);\n ɵngcc0.ɵɵtextInterpolate(ctx.textFor(\"dialogCancel\"));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"primary\", true);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx.textFor(\"dialogUpdate\"));\n } }, directives: [ɵngcc1.DialogTitleBarComponent, ɵngcc1.DialogActionsComponent, ɵngcc2.ButtonDirective], styles: [\".k-editor-textarea {\\n height: 100%;\\n }\"] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], SourceDialogComponent.prototype, \"editor\", void 0);\n__decorate([\n ViewChild('textarea', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], SourceDialogComponent.prototype, \"textarea\", void 0);\nSourceDialogComponent = __decorate([ __metadata(\"design:paramtypes\", [DialogRef,\n EditorLocalizationService])\n], SourceDialogComponent);\n\n/**\n * @hidden\n */\nlet ImageDialogComponent = class ImageDialogComponent extends DialogContentBase {\n constructor(dialog, localization) {\n super(dialog);\n this.dialog = dialog;\n this.localization = localization;\n this.src = new FormControl('', Validators.required);\n this.alt = new FormControl('');\n this.width = new FormControl('', Validators.min(1));\n this.height = new FormControl('', Validators.min(1));\n this.data = {\n alt: '',\n height: '',\n src: '',\n width: ''\n };\n this.imageData = new FormGroup({\n alt: this.alt,\n height: this.height,\n src: this.src,\n width: this.width\n });\n }\n ngOnInit() {\n this.srcInputId = `k-${guid()}`;\n this.altTextInputId = `k-${guid()}`;\n this.widthInputId = `k-${guid()}`;\n this.heightInputId = `k-${guid()}`;\n }\n ngAfterViewInit() {\n Promise.resolve(null).then(() => {\n this.srcInput.nativeElement.focus();\n });\n }\n onCancelAction() {\n this.dialog.close();\n }\n onConfirmAction() {\n if (this.src.value) {\n this.editor.exec('insertImage', this.getData());\n this.dialog.close();\n this.editor.view.focus();\n }\n }\n setData(state) {\n const node = getNodeFromSelection(state);\n if (node) {\n this.src.patchValue(node.attrs.src);\n this.alt.patchValue(node.attrs.alt);\n this.width.patchValue(node.attrs.width);\n this.height.patchValue(node.attrs.height);\n }\n }\n textFor(key) {\n return this.localization.get(key);\n }\n getData() {\n return {\n alt: this.alt.value,\n height: this.normalizeDimension(this.height.value),\n src: this.src.value,\n width: this.normalizeDimension(this.width.value)\n };\n }\n normalizeDimension(value) {\n return Number.isNaN(parseInt(value, 10)) || parseInt(value, 10) <= 0 ? '' : safeString(parseInt(value, 10));\n }\n};\nImageDialogComponent.ɵfac = function ImageDialogComponent_Factory(t) { return new (t || ImageDialogComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.DialogRef), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService)); };\nImageDialogComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ImageDialogComponent, selectors: [[\"ng-component\"]], viewQuery: function ImageDialogComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c1, 7, ElementRef);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.srcInput = _t.first);\n } }, inputs: { editor: \"editor\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 31, vars: 21, consts: [[3, \"close\"], [1, \"k-editor-dialog\"], [1, \"k-editor-dialog\", \"k-popup-edit-form\", \"k-window-content\", \"k-content\"], [1, \"k-edit-form-container\", \"k-window-content\"], [1, \"k-edit-label\"], [3, \"for\"], [1, \"k-edit-field\"], [\"type\", \"text\", 1, \"k-textbox\", \"k-input\", \"k-rounded-md\", 3, \"id\", \"formControl\"], [\"srcInput\", \"\"], [\"kendoButton\", \"\", 3, \"click\"], [\"kendoButton\", \"\", 3, \"disabled\", \"primary\", \"click\"]], template: function ImageDialogComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-dialog-titlebar\", 0);\n ɵngcc0.ɵɵlistener(\"close\", function ImageDialogComponent_Template_kendo_dialog_titlebar_close_0_listener() { return ctx.onCancelAction(); });\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(2, \"div\", 1)(3, \"div\", 2)(4, \"div\", 3)(5, \"div\", 4)(6, \"label\", 5);\n ɵngcc0.ɵɵtext(7);\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵelementStart(8, \"div\", 6);\n ɵngcc0.ɵɵelement(9, \"input\", 7, 8);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(11, \"div\", 4)(12, \"label\", 5);\n ɵngcc0.ɵɵtext(13);\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵelementStart(14, \"div\", 6);\n ɵngcc0.ɵɵelement(15, \"input\", 7);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(16, \"div\", 4)(17, \"label\", 5);\n ɵngcc0.ɵɵtext(18);\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵelementStart(19, \"div\", 6);\n ɵngcc0.ɵɵelement(20, \"input\", 7);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(21, \"div\", 4)(22, \"label\", 5);\n ɵngcc0.ɵɵtext(23);\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵelementStart(24, \"div\", 6);\n ɵngcc0.ɵɵelement(25, \"input\", 7);\n ɵngcc0.ɵɵelementEnd()()()();\n ɵngcc0.ɵɵelementStart(26, \"kendo-dialog-actions\")(27, \"button\", 9);\n ɵngcc0.ɵɵlistener(\"click\", function ImageDialogComponent_Template_button_click_27_listener() { return ctx.onCancelAction(); });\n ɵngcc0.ɵɵtext(28);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(29, \"button\", 10);\n ɵngcc0.ɵɵlistener(\"click\", function ImageDialogComponent_Template_button_click_29_listener() { return ctx.onConfirmAction(); });\n ɵngcc0.ɵɵtext(30);\n ɵngcc0.ɵɵelementEnd()();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx.textFor(\"insertImage\"), \" \");\n ɵngcc0.ɵɵadvance(5);\n ɵngcc0.ɵɵproperty(\"for\", ctx.srcInputId);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx.textFor(\"imageWebAddress\"));\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"id\", ctx.srcInputId)(\"formControl\", ctx.src);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"for\", ctx.altTextInputId);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx.textFor(\"imageAltText\"));\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"id\", ctx.altTextInputId)(\"formControl\", ctx.alt);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"for\", ctx.widthInputId);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx.textFor(\"imageWidth\"));\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"id\", ctx.widthInputId)(\"formControl\", ctx.width);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"for\", ctx.heightInputId);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx.textFor(\"imageHeight\"));\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"id\", ctx.heightInputId)(\"formControl\", ctx.height);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵtextInterpolate(ctx.textFor(\"dialogCancel\"));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx.imageData.invalid)(\"primary\", true);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx.textFor(\"dialogInsert\"));\n } }, directives: [ɵngcc1.DialogTitleBarComponent, ɵngcc3.DefaultValueAccessor, ɵngcc3.NgControlStatus, ɵngcc3.FormControlDirective, ɵngcc1.DialogActionsComponent, ɵngcc2.ButtonDirective], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ImageDialogComponent.prototype, \"editor\", void 0);\n__decorate([\n ViewChild('srcInput', { read: ElementRef, static: true }),\n __metadata(\"design:type\", ElementRef)\n], ImageDialogComponent.prototype, \"srcInput\", void 0);\nImageDialogComponent = __decorate([ __metadata(\"design:paramtypes\", [DialogRef,\n EditorLocalizationService])\n], ImageDialogComponent);\n\n/**\n * @hidden\n */\nlet FileLinkDialogComponent = class FileLinkDialogComponent extends DialogContentBase {\n constructor(dialog, localization) {\n super(dialog);\n this.dialog = dialog;\n this.localization = localization;\n this.linkForm = new FormGroup({\n 'href': new FormControl('', Validators.required),\n 'text': new FormControl({ value: '', disabled: true }, Validators.required),\n 'title': new FormControl('')\n });\n }\n ngAfterViewInit() {\n Promise.resolve(null).then(() => {\n this.hrefInput.nativeElement.focus();\n });\n }\n onCancelAction() {\n this.dialog.close();\n }\n onConfirmAction() {\n const linkData = this.getData();\n this.editor.exec(this.command, linkData);\n this.dialog.close();\n this.editor.view.focus();\n }\n get titleText() {\n return this.localization.get(this.command);\n }\n setData(state, options) {\n if (this.command === 'createLink') {\n this.linkForm.addControl('target', new FormControl());\n }\n const linkMark = getMark(state, state.schema.marks.link);\n if (linkMark) {\n // const linkMarkRange = getMarkRange(state.selection.$cursor, schema.marks.link);\n // const mark = parentNode.child(cursorNodeIndex).marks.find(m => m.type === markType);\n this.linkForm.reset({\n href: linkMark.attrs.href,\n title: linkMark.attrs.title,\n target: isPresent(linkMark.attrs.target),\n text: this.setLinkText(state)\n });\n return;\n }\n if (state.selection.empty) {\n const currentState = options.applyToWord ? expandSelection(state, () => { }, options).state : state;\n if (!currentState.selection.empty) {\n this.linkForm.patchValue({\n 'text': getSelectionText(currentState)\n });\n }\n }\n else {\n this.linkForm.patchValue({\n 'text': getSelectionText(state)\n });\n }\n }\n textForWithPrefix(key) {\n const prefix = this.command === 'createLink' ? 'link' : 'file';\n return this.textFor(prefix + key);\n }\n textFor(key) {\n return this.localization.get(key);\n }\n setLinkText(state) {\n const selection = state.selection;\n if (selection.empty && selection.$cursor) {\n const cursor = selection.$cursor;\n const cursorNodeIndex = cursor.index();\n const parentNode = cursor.parent;\n return parentNode.child(cursorNodeIndex).text;\n }\n else {\n return getSelectionText(state);\n }\n }\n getData() {\n let linkData = this.linkForm.value;\n if (isPresent(this.linkForm.controls.target)) {\n linkData.target = linkData.target ? '_blank' : null;\n }\n return linkData;\n }\n};\nFileLinkDialogComponent.ɵfac = function FileLinkDialogComponent_Factory(t) { return new (t || FileLinkDialogComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.DialogRef), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService)); };\nFileLinkDialogComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: FileLinkDialogComponent, selectors: [[\"ng-component\"]], viewQuery: function FileLinkDialogComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c2, 7, ElementRef);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.hrefInput = _t.first);\n } }, inputs: { editor: \"editor\", command: \"command\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 30, vars: 10, consts: [[3, \"close\"], [1, \"k-editor-dialog\"], [1, \"k-editor-dialog\", \"k-popup-edit-form\", \"k-window-content\", \"k-content\"], [1, \"k-edit-form-container\", \"k-window-content\"], [\"novalidate\", \"\", 3, \"formGroup\"], [1, \"k-edit-label\"], [3, \"click\"], [1, \"k-edit-field\"], [\"formControlName\", \"href\", \"type\", \"text\", 1, \"k-textbox\", \"k-input\", \"k-rounded-md\"], [\"hrefInput\", \"\"], [\"formControlName\", \"text\", \"type\", \"text\", 1, \"k-textbox\", \"k-input\", \"k-rounded-md\"], [\"textInput\", \"\"], [\"formControlName\", \"title\", \"type\", \"text\", 1, \"k-textbox\", \"k-input\", \"k-rounded-md\"], [\"titleInput\", \"\"], [4, \"ngIf\"], [\"kendoButton\", \"\", 3, \"click\"], [\"kendoButton\", \"\", 3, \"disabled\", \"primary\", \"click\"], [\"type\", \"checkbox\", \"id\", \"k-target-blank\", \"kendoCheckBox\", \"\", \"formControlName\", \"target\"], [\"for\", \"k-target-blank\", 1, \"k-checkbox-label\"]], template: function FileLinkDialogComponent_Template(rf, ctx) { if (rf & 1) {\n const _r4 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-dialog-titlebar\", 0);\n ɵngcc0.ɵɵlistener(\"close\", function FileLinkDialogComponent_Template_kendo_dialog_titlebar_close_0_listener() { return ctx.onCancelAction(); });\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(2, \"div\", 1)(3, \"div\", 2)(4, \"div\", 3)(5, \"form\", 4)(6, \"div\", 5)(7, \"label\", 6);\n ɵngcc0.ɵɵlistener(\"click\", function FileLinkDialogComponent_Template_label_click_7_listener() { ɵngcc0.ɵɵrestoreView(_r4); const _r0 = ɵngcc0.ɵɵreference(11); return _r0.focus(); });\n ɵngcc0.ɵɵtext(8);\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵelementStart(9, \"div\", 7);\n ɵngcc0.ɵɵelement(10, \"input\", 8, 9);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(12, \"div\", 5)(13, \"label\", 6);\n ɵngcc0.ɵɵlistener(\"click\", function FileLinkDialogComponent_Template_label_click_13_listener() { ɵngcc0.ɵɵrestoreView(_r4); const _r1 = ɵngcc0.ɵɵreference(17); return _r1.focus(); });\n ɵngcc0.ɵɵtext(14);\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵelementStart(15, \"div\", 7);\n ɵngcc0.ɵɵelement(16, \"input\", 10, 11);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(18, \"div\", 5)(19, \"label\", 6);\n ɵngcc0.ɵɵlistener(\"click\", function FileLinkDialogComponent_Template_label_click_19_listener() { ɵngcc0.ɵɵrestoreView(_r4); const _r2 = ɵngcc0.ɵɵreference(23); return _r2.focus(); });\n ɵngcc0.ɵɵtext(20);\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵelementStart(21, \"div\", 7);\n ɵngcc0.ɵɵelement(22, \"input\", 12, 13);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(24, FileLinkDialogComponent_ng_container_24_Template, 6, 1, \"ng-container\", 14);\n ɵngcc0.ɵɵelementEnd()()()();\n ɵngcc0.ɵɵelementStart(25, \"kendo-dialog-actions\")(26, \"button\", 15);\n ɵngcc0.ɵɵlistener(\"click\", function FileLinkDialogComponent_Template_button_click_26_listener() { return ctx.onCancelAction(); });\n ɵngcc0.ɵɵtext(27);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(28, \"button\", 16);\n ɵngcc0.ɵɵlistener(\"click\", function FileLinkDialogComponent_Template_button_click_28_listener() { return ctx.onConfirmAction(); });\n ɵngcc0.ɵɵtext(29);\n ɵngcc0.ɵɵelementEnd()();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx.titleText, \" \");\n ɵngcc0.ɵɵadvance(4);\n ɵngcc0.ɵɵproperty(\"formGroup\", ctx.linkForm);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵtextInterpolate(ctx.textForWithPrefix(\"WebAddress\"));\n ɵngcc0.ɵɵadvance(6);\n ɵngcc0.ɵɵtextInterpolate(ctx.textForWithPrefix(\"Text\"));\n ɵngcc0.ɵɵadvance(6);\n ɵngcc0.ɵɵtextInterpolate(ctx.textForWithPrefix(\"Title\"));\n ɵngcc0.ɵɵadvance(4);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.command === \"createLink\");\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵtextInterpolate(ctx.textFor(\"dialogCancel\"));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx.linkForm.invalid)(\"primary\", true);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx.textFor(\"dialogInsert\"), \" \");\n } }, directives: [ɵngcc1.DialogTitleBarComponent, ɵngcc3.ɵNgNoValidate, ɵngcc3.NgControlStatusGroup, ɵngcc3.FormGroupDirective, ɵngcc3.DefaultValueAccessor, ɵngcc3.NgControlStatus, ɵngcc3.FormControlName, ɵngcc4.NgIf, ɵngcc3.CheckboxControlValueAccessor, ɵngcc5.CheckBoxDirective, ɵngcc1.DialogActionsComponent, ɵngcc2.ButtonDirective], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], FileLinkDialogComponent.prototype, \"editor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FileLinkDialogComponent.prototype, \"command\", void 0);\n__decorate([\n ViewChild('hrefInput', { read: ElementRef, static: true }),\n __metadata(\"design:type\", ElementRef)\n], FileLinkDialogComponent.prototype, \"hrefInput\", void 0);\nFileLinkDialogComponent = __decorate([ __metadata(\"design:paramtypes\", [DialogRef, EditorLocalizationService])\n], FileLinkDialogComponent);\n\n/**\n * @hidden\n */\nconst defaultStyle = `\n html, body {\n margin: 0;\n height: 100%;\n padding: 0;\n }\n\n html {\n min-height: 100%;\n }\n\n body {\n box-sizing: border-box;\n position: relative;\n word-wrap: break-word;\n padding: 8px;\n }\n\n body > .k-content {\n outline: 0;\n height: 100%;\n white-space: pre-wrap;\n }\n\n div.ProseMirror {\n position: relative;\n word-wrap: break-word;\n white-space: pre-wrap;\n white-space: break-spaces;\n -webkit-font-variant-ligatures: none;\n font-variant-ligatures: none;\n font-feature-settings: \"liga\" 0; /* the above doesn't seem to work in Edge */\n }\n\n .ProseMirror pre {\n white-space: pre-wrap;\n }\n\n .k-content > p {\n margin: 0 0 1em;\n }\n\n .k-content table {\n white-space: pre-wrap;\n }\n\n .k-content .k-text-selected, .k-content::selection {\n color: HighlightText;\n background-color: Highlight;\n }\n\n .k-content .k-text-highlighted {\n background-color: #bbdefb;\n }\n\n .k-content .ProseMirror-selectednode {\n outline: 2px solid #8cf;\n }\n\n .ProseMirror-hideselection *::selection { background: transparent; }\n .ProseMirror-hideselection *::-moz-selection { background: transparent; }\n .ProseMirror-hideselection { caret-color: transparent; }\n\n .ProseMirror-gapcursor {\n display: none;\n pointer-events: none;\n position: absolute;\n }\n\n .ProseMirror-gapcursor:after {\n content: \"\";\n display: block;\n position: absolute;\n top: -2px;\n width: 20px;\n border-top: 1px solid black;\n animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite;\n }\n\n @keyframes ProseMirror-cursor-blink {\n to {\n visibility: hidden;\n }\n }\n\n .ProseMirror-focused .ProseMirror-gapcursor {\n display: block;\n }\n\n .k-editor-resize-handles-wrapper {\n position: absolute;\n visibility: hidden;\n }\n\n .k-editor-resize-handle {\n position: absolute;\n visibility: visible;\n background-color: #fff;\n border: 1px solid #000;\n z-index: 100;\n width: 5px;\n height: 5px;\n }\n\n .k-editor-resize-handle.northwest {\n top: 0;\n left: 0;\n transform: translate(-50%, -50%);\n cursor: nw-resize;\n }\n\n .k-editor-resize-handle.north {\n top: 0;\n left: 50%;\n transform: translate(-50%, -50%);\n cursor: n-resize;\n }\n\n .k-editor-resize-handle.northeast {\n top: 0;\n right: 0;\n transform: translate(50%, -50%);\n cursor: ne-resize;\n }\n\n .k-editor-resize-handle.southwest {\n left: 0;\n bottom: 0;\n transform: translate(-50%, 50%);\n cursor: sw-resize;\n }\n\n .k-editor-resize-handle.south {\n bottom: 0;\n left: 50%;\n transform: translate(-50%, 50%);\n cursor: s-resize;\n }\n\n .k-editor-resize-handle.southeast {\n right: 0;\n bottom: 0;\n transform: translate(50%, 50%);\n cursor: se-resize;\n }\n\n .k-editor-resize-handle.west {\n top: 50%;\n left: 0;\n transform: translate(-50%, -50%);\n cursor: w-resize;\n }\n\n .k-editor-resize-handle.east {\n top: 50%;\n right: 0;\n transform: translate(50%, -50%);\n cursor: e-resize;\n }\n\n .ProseMirror .k-placeholder::before {\n content: attr(data-placeholder);\n height: 0;\n color: #8a8a8a;\n float: left;\n opacity: 1;\n cursor: text;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n }\n\n .ProseMirror li {\n position: relative;\n }\n\n li.ProseMirror-selectednode {\n outline: none;\n }\n\n li.ProseMirror-selectednode:after {\n content: \"\";\n position: absolute;\n left: -32px;\n right: -2px;\n top: -2px;\n bottom: -2px;\n border: 2px solid #8cf;\n pointer-events: none;\n }\n`;\n/**\n * @hidden\n */\nconst tablesStyles = `\n.ProseMirror .tableWrapper {\n overflow-x: auto;\n margin: 1em 0;\n}\n\n.ProseMirror table {\n margin: 0;\n border-collapse: collapse;\n table-layout: fixed;\n width: 100%;\n overflow: hidden;\n}\n\n.ProseMirror td, .ProseMirror th {\n min-width: 1em;\n border: 1px solid #ddd;\n padding: 3px 5px;\n vertical-align: top;\n box-sizing: border-box;\n position: relative;\n}\n\n.ProseMirror th {\n font-weight: bold;\n text-align: left;\n}\n\n.ProseMirror .column-resize-handle {\n position: absolute;\n right: -2px; top: 0; bottom: 0;\n width: 4px;\n z-index: 20;\n background-color: #adf;\n pointer-events: none;\n}\n\n.ProseMirror.resize-cursor {\n cursor: ew-resize;\n cursor: col-resize;\n}\n\n/* Give selected cells a blue overlay */\n.ProseMirror .selectedCell:after {\n z-index: 2;\n position: absolute;\n content: \"\";\n left: 0; right: 0; top: 0; bottom: 0;\n background: rgba(200, 200, 255, 0.4);\n pointer-events: none;\n}\n`;\n/**\n * @hidden\n */\nconst rtlStyles = 'body { direction: rtl }';\n\nconst ɵ0$2 = (arg) => `plugins must be a function, but received ${JSON.stringify(arg)}.`, ɵ1$2 = (arg) => `pastedContent must be a function, but received ${JSON.stringify(arg)}.`;\n/* tslint:disable:variable-name */\n/**\n * @hidden\n */\nconst EditorErrorMessages = {\n schemaType: 'Expected value of type Schema. See http://www.telerik.com/kendo-angular-ui/components/editor/schema/',\n setSchemaOnce: 'The Schema cannot be changed dynamically. See http://www.telerik.com/kendo-angular-ui/components/editor/schema/',\n pluginsCallbackType: ɵ0$2,\n pastedContentCallbackType: ɵ1$2,\n setPluginsOnce: 'The plugins cannot be changed dynamically. See http://www.telerik.com/kendo-angular-ui/components/editor/plugins/',\n setPlaceHolderOnce: 'The placeholder cannot be changed dynamically. See https://www.telerik.com/kendo-angular-ui/components/editor/plugins/#toc-custom-plugins/',\n printTool: 'The Print tool and functionality are supported only in iframe mode. See https://www.telerik.com/kendo-angular-ui-develop/components/editor/api/EditorPrintButtonDirective/'\n};\n\n/**\n * @hidden\n */\nlet EditorToolsService = class EditorToolsService {\n /**\n * @hidden\n */\n constructor() {\n this.needsCheck = new Subject();\n }\n};\nEditorToolsService.ɵfac = function EditorToolsService_Factory(t) { return new (t || EditorToolsService)(); };\nEditorToolsService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: EditorToolsService, factory: function (t) { return EditorToolsService.ɵfac(t); } });\n\n/**\n * The Editor [`paste`]({% slug api_editor_editorcomponent %}#toc-paste) event.\n */\nclass EditorPasteEvent extends PreventableEvent {\n /**\n * Constructs the event arguments for the `paste` event.\n * @hidden\n */\n constructor(cleanedHtml, originalHtml, originalEvent) {\n super();\n this.cleanedHtml = cleanedHtml;\n this.originalHtml = originalHtml;\n this.originalEvent = originalEvent;\n }\n}\n\nvar EditorComponent_1;\nconst EMPTY_PARAGRAPH = '

    ';\nconst defaultPasteCleanupSettings = {\n convertMsLists: false,\n removeAttributes: [],\n removeHtmlComments: false,\n removeInvalidHTML: true,\n removeMsClasses: false,\n removeMsStyles: false,\n stripTags: []\n};\nconst removeCommentsIf = conditionallyExecute(removeComments);\nconst removeInvalidHTMLIf = conditionallyExecute(sanitize);\nconst getPasteCleanupAttributes = (config) => {\n if (config.removeAttributes === 'all') {\n return { '*': removeAttribute };\n }\n const initial = removeEmptyEntries({\n style: config.removeMsStyles ? sanitizeStyleAttr : undefined,\n class: config.removeMsClasses ? sanitizeClassAttr : undefined\n });\n return config.removeAttributes.reduce((acc, curr) => (Object.assign({}, acc, { [curr]: removeAttribute })), initial);\n};\n/**\n * Represents the [Kendo UI Editor component for Angular]({% slug overview_editor %}).\n */\nlet EditorComponent = EditorComponent_1 = class EditorComponent {\n constructor(dialogService, localization, cdr, ngZone, element, toolsService) {\n this.dialogService = dialogService;\n this.localization = localization;\n this.cdr = cdr;\n this.ngZone = ngZone;\n this.element = element;\n this.toolsService = toolsService;\n /**\n * If set to `false`, the Editor will run in style non-encapsulated mode. This means\n * that the styles of the page will be persisted in the Editor and its content will be affected by them.\n * @default true\n */\n this.iframe = true;\n /**\n * If set to `true` or `ApplyToWordOptions` object, commands that apply emphasis or inline styles will be applied to the whole word the cursor is in.\n * @default false\n */\n this.applyToWord = false;\n /**\n * By default, whitespace is collapsed as per HTML's rules.\n * Set to `true` to preserve whitespace, but normalize newlines to spaces.\n * Set to `'full'` to preserve whitespace entirely. In this case the default ProseMirror behavior is to parse white space into nodes.\n *\n * @default false\n */\n this.preserveWhitespace = false;\n /**\n * Determines whether the Editor can be resized ([see example]({% slug styling_editor %}#toc-resizable-editor)).\n * @default false\n */\n this.resizable = false;\n /**\n * Fires each time the value of the Editor is changed upon user interaction—\n * for example, when the value is updated through typing in the content area or using some of the Editor tools ([see example]({% slug overview_editor %}#toc-events)).\n * When the value of the Editor is programmatically changed through its API (`ngModel`) or form binding (`formControl`),\n * the `valueChange` event is not triggered because it might cause a mix-up with the\n * built-in `valueChange` mechanisms of the `ngModel` or `formControl` bindings.\n */\n this.valueChange = new EventEmitter();\n /**\n * Fires when the content area of the Editor is focused ([see example]({% slug overview_editor %}#toc-events)).\n */\n this.onFocus = new EventEmitter();\n /**\n * Fires when the user performs paste in the content area of the Editor ([see example]({% slug overview_editor %}#toc-events)).\n * The event is preventable. If you cancel it, the Editor content will not change.\n */\n this.paste = new EventEmitter();\n /**\n * Fires when the content area of the Editor is blurred ([see example]({% slug overview_editor %}#toc-events)).\n */\n this.onBlur = new EventEmitter();\n this.hostClass = true;\n /**\n * @hidden\n */\n this.stateChange = new BehaviorSubject(initialToolBarState);\n /**\n * @hidden\n */\n this.valueModified = new Subject();\n this._readonly = false;\n this._placeholder = '';\n this.inForm = false;\n this.afterViewInit = new Subject();\n this.contentAreaLoaded = new Subject();\n this.dispatchTransaction = (tr) => {\n const docChanged = tr.docChanged;\n if (this.disabled || (this.readonly && docChanged)) {\n return;\n }\n if (docChanged) {\n const doc = tr.doc;\n const html = getHtml({ doc });\n this.trOnChange = tr;\n this.htmlOnChange = html;\n this.ngZone.run(() => {\n this.valueModified.next(html);\n });\n }\n if (!docChanged || this.inForm) {\n this.view.updateState(this.view.state.apply(tr));\n }\n };\n this.transformPastedHTML = (dirtyHtml) => {\n const pasteCleanupSettings = Object.assign({}, defaultPasteCleanupSettings, this.pasteCleanupSettings);\n const html = pipe(removeInvalidHTMLIf(pasteCleanupSettings.removeInvalidHTML), removeCommentsIf(pasteCleanupSettings.removeHtmlComments))(dirtyHtml);\n const clean = pasteCleanup(html, {\n convertMsLists: pasteCleanupSettings.convertMsLists,\n stripTags: pasteCleanupSettings.stripTags.join('|'),\n attributes: getPasteCleanupAttributes(pasteCleanupSettings)\n });\n if (hasObservers(this.paste)) {\n const event = new EditorPasteEvent(clean, dirtyHtml, this._pasteEvent);\n this.ngZone.run(() => this.paste.emit(event));\n return event.isDefaultPrevented() ? '' : event.cleanedHtml;\n }\n return clean;\n };\n this.changeValue = (value) => {\n const prev = this._value;\n this._value = value;\n if (!this._view) {\n return;\n }\n if (this.htmlOnChange === value && this.trOnChange) {\n this.view.updateState(this.view.state.apply(this.trOnChange));\n }\n else {\n if ((prev || '') !== (value || '')) {\n const iframeContentWindowNotPresent = this.iframe && !this.container.element.nativeElement.contentWindow;\n if (iframeContentWindowNotPresent) {\n return;\n }\n const state = this.view.state;\n const nextDoc = parseContent(value || '', state.schema, { preserveWhitespace: this.preserveWhitespace });\n const tr = state.tr\n .setSelection(new AllSelection(state.doc))\n .replaceSelectionWith(nextDoc);\n this.view.updateState(state.apply(tr));\n }\n }\n this.trOnChange = null;\n this.htmlOnChange = null;\n };\n this.onChangeCallback = (value) => {\n this.changeValue(value);\n };\n this.onTouchedCallback = (_) => { }; // tslint:disable-line:no-empty\n this.onPaste = (_view, nativeEvent) => {\n this._pasteEvent = nativeEvent;\n return false;\n };\n validatePackage(packageMetadata);\n this.direction = localization.rtl ? 'rtl' : 'ltr';\n // https://stackoverflow.com/questions/56572483/chrome-is-synchronously-handling-iframe-loading-whereas-firefox-handles-it-asyn\n this.subs = zip(this.afterViewInit.asObservable(), this.contentAreaLoaded.asObservable()).subscribe(() => this.initialize());\n }\n /**\n * Sets the value of the Editor ([see example]({% slug overview_editor %}#toc-basic-usage)).\n */\n set value(value) {\n this.changeValue(value);\n }\n get value() {\n if (this.trOnChange) {\n return this.htmlOnChange;\n }\n let value = this._view ? this.getSource() : this._value;\n if (value === EMPTY_PARAGRAPH) {\n return this._value ? '' : this._value;\n }\n else {\n return value;\n }\n }\n /**\n * Sets the disabled state of the component.\n */\n set disabled(value) {\n this._disabled = value || false;\n if (this._view) {\n this._view.updateState(this._view.state);\n }\n if (this._disabled) {\n this.readonly = false;\n }\n if (this._disabled || this._readonly) {\n this.stateChange.next(disabledToolBarState);\n }\n else {\n this.stateChange.next(initialToolBarState);\n }\n }\n get disabled() {\n return this._disabled;\n }\n /**\n * Sets the read-only state of the component.\n */\n set readonly(value) {\n this._readonly = value || false;\n if (this._view) {\n // remove DOM selection\n let win;\n if (this.iframe) {\n win = this.container.element.nativeElement.contentWindow;\n }\n else {\n win = window;\n }\n const focusedNode = win.getSelection().focusNode;\n if (this._view.dom.contains(focusedNode)) {\n win.getSelection().removeAllRanges();\n }\n // remove ProseMirror selection\n const doc = this._view.state.doc;\n const tr = this._view.state.tr.setSelection(TextSelection.create(doc, 1));\n this._view.dispatch(tr);\n }\n if (this._readonly) {\n if (this.toolbar) {\n this.toolbar.tabindex = -1;\n }\n this.stateChange.next(disabledToolBarState);\n }\n else {\n if (this.toolbar) {\n this.toolbar.tabindex = 0;\n }\n this.stateChange.next(initialToolBarState);\n }\n }\n get readonly() {\n return this._readonly;\n }\n /**\n * Allows providing a custom schema. ([see example]({% slug schema_editor %}))\n */\n set schema(value) {\n if (isDevMode) {\n if (!(value instanceof Schema)) {\n throw new Error(EditorErrorMessages.schemaType);\n }\n if (this._view) {\n throw new Error(EditorErrorMessages.setSchemaOnce);\n }\n }\n this._schema = value;\n }\n get schema() {\n return this._schema;\n }\n /**\n * Defines a function which determines the plugins that will be used when initializing the Editor.\n * It exposes the default plugins collection as an argument, and returns\n * the plugins collection that will be used when creating the Editor component. ([see example]({% slug plugins_editor %}))\n *\n * ```ts-no-run\n * pluginsCallback(defaultPlugins: Plugin[]): Plugin[] {\n * const myPlugin = new Plugin({/custom plugin code/});\n * return [...defaultPlugins, myPlugin];\n * }\n * ```\n */\n set plugins(fn) {\n if (isDevMode) {\n if (typeof fn !== 'function') {\n throw new Error(EditorErrorMessages.pluginsCallbackType(fn));\n }\n if (this._view) {\n throw new Error(EditorErrorMessages.setPluginsOnce);\n }\n }\n this._plugins = fn;\n }\n get plugins() {\n return this._plugins;\n }\n /**\n * The hint, which is displayed when the component is empty.\n */\n set placeholder(value) {\n if (isDevMode && this._view) {\n throw new Error(EditorErrorMessages.setPlaceHolderOnce);\n }\n this._placeholder = value;\n }\n get placeholder() {\n return this._placeholder;\n }\n get resizableClass() {\n return !!this.resizable;\n }\n get isDisabled() {\n return this.disabled;\n }\n get isReadonly() {\n return this.readonly;\n }\n get isIE() {\n return this.iframe && detectIE();\n }\n get dir() {\n return this.direction;\n }\n get ariaDisabled() {\n return this.disabled;\n }\n get minWidth() {\n const resizableOptions = this.resizable;\n return resizableOptions.minWidth ? resizableOptions.minWidth + 'px' : undefined;\n }\n get maxWidth() {\n const resizableOptions = this.resizable;\n return resizableOptions.maxWidth ? resizableOptions.maxWidth + 'px' : undefined;\n }\n get minHeight() {\n const resizableOptions = this.resizable;\n return resizableOptions.minHeight ? resizableOptions.minHeight + 'px' : undefined;\n }\n get maxHeight() {\n const resizableOptions = this.resizable;\n return resizableOptions.maxHeight ? resizableOptions.maxHeight + 'px' : undefined;\n }\n get toolbar() {\n return this.defaultToolbarComponent || this.userToolBarComponent;\n }\n /**\n * Returns the ProseMirror [EditorView](https://prosemirror.net/docs/ref/#view.EditorView) object\n * that manages the DOM structure that represents an editable document.\n */\n get view() {\n return this._view;\n }\n /**\n * Returns the text which the current Editor selection contains ([see example]({% slug selection_editor %}#toc-retrieve-the-selected-text)).\n */\n get selectionText() {\n return this._view && this._view.state ? getSelectionText(this._view.state) : '';\n }\n ngOnInit() {\n this.subs.add(this.localization.changes.subscribe(({ rtl }) => {\n this.direction = rtl ? 'rtl' : 'ltr';\n }));\n this.subs.add(this.toolsService.needsCheck.subscribe(() => this.cdr.markForCheck()));\n }\n ngAfterViewInit() {\n this.afterViewInit.next();\n if (!this.iframe) {\n this.contentAreaLoaded.next();\n }\n if (this.resizable) {\n this.normalizeSize();\n }\n }\n ngOnChanges(changes) {\n if (changes.value && this.view) {\n this.changeValue(changes.value.currentValue);\n }\n if (changes.iframe && !changes.iframe.isFirstChange()) {\n this.ngZone.onStable.pipe(take(1)).subscribe(() => this.initialize());\n }\n if (changes.resizable && !changes.resizable.isFirstChange()) {\n this.normalizeSize();\n }\n }\n /**\n * @hidden\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n /**\n * @hidden\n */\n iframeOnLoad() {\n this.contentAreaLoaded.next();\n }\n /**\n * Executes a command on the currently selected text\n * ([more information and example]({% slug toolbartools_editor %}#toc-custom-tools)).\n *\n * @param {EditorCommand} commandName - The command that will be executed.\n * @param {any} attr - Optional parameters for the command. Apart from the following list,\n * the parameters do not expect specific attributes when you call them:\n * - `format` - Accepts an object with the `tag` property.\n * The supported tags are `p` and any of the `h1` to `h6` heading tags.\n * - `createLink` - Accepts an object with the `href`, `title`, and `target` properties. The `href` property is mandatory.\n * - `setHTML` - Accepts a `string` parameter.\n * - `insertTable` - Accepts an object with the `rows` and `cols` properties. The number values are zero based.\n *\n * @example\n * ```ts-no-run\n * // Toggles the bold styling.\n * editor.exec('bold');\n *\n * // Creates a bullet list.\n * editor.exec('insertUnorderedList');\n *\n * // Creates a link.\n * editor.exec('createLink', { href: 'www.progress.com', title: 'Progress', target: 'window' });\n *\n * // Inserts a file.\n * editor.exec('insertFile', { href: 'www.progress.com/resources/myfile.doc', title: 'My file', target: 'window' });\n *\n * // Inserts a image.\n * editor.exec('insertImage', { src: 'www.progress.com/resources/logo.jpg', title: 'Progress', target: 'window' });\n *\n * // Inserts a text at a given position. If no position is specified, the text will be inserted after the cursor.\n * editor.exec('insertText', { text: 'Hello World!', from: 0, to: 0 });\n *\n * // Changes the format of a text block.\n * editor.exec('format', { tag: 'h2' });\n *\n * // Changes the font size of the selected text.\n * editor.exec('fontSize', 24);\n *\n * // Changes the content of the Editor.\n * editor.exec('setHTML', '

    HTML content

    ');\n *\n * // Creates and inserts a table with the specified number of rows and columns. Numbers are zero based.\n * this.editor.exec(\"insertTable\", { rows: 3, cols: 5 });\n * ```\n */\n exec(commandName, attr) {\n // normalizes setHTML attributes\n if (commandName === 'setHTML' && typeof attr === 'string') {\n attr = {\n content: attr,\n parseOptions: {\n preserveWhitespace: this.preserveWhitespace\n }\n };\n }\n else if (['fontFamily', 'fontSize', 'foreColor', 'backColor', 'createLink'].some(name => name === commandName)) {\n attr = {\n value: attr,\n applyToWord: this.applyToWord\n };\n }\n // Finds a command and applies the attributes.\n const command = editorCommands[commandName](attr);\n // Executes a ProseMirror command.\n command(this._view.state, this._view.dispatch, this._view);\n }\n /**\n * Opens a dialog.\n * @param {DialogCommand} dialogName - The name of the dialog that will open.\n *\n * The supported values are:\n * * `createLink`\n * * `viewSource`\n * * `insertFile`\n * * `insertImage`\n * * `tableWizard`\n *\n * @example\n * ```ts-no-run\n * // Opens a `createLink` dialog.\n * editor.openDialog('createLink');\n *\n * // Opens a `viewSource` dialog.\n * editor.openDialog('viewSource');\n * ```\n */\n openDialog(dialogName) {\n const editorDialogs = {\n createLink: {\n content: FileLinkDialogComponent\n },\n insertFile: {\n content: FileLinkDialogComponent\n },\n insertImage: {\n content: ImageDialogComponent\n },\n viewSource: {\n content: SourceDialogComponent,\n height: 400,\n width: 500\n }\n // tableWizard: {\n // content: TableWizardDialogComponent\n // }\n };\n const dialog = Object.assign({ appendTo: this.dialogContainer }, editorDialogs[dialogName]);\n this.toolbar.toggle(false);\n const dialogContent = this.dialogService.open(dialog).content.instance;\n if (dialogName === 'createLink' || dialogName === 'insertFile') {\n dialogContent.command = dialogName;\n }\n dialogContent.editor = this;\n dialogContent.setData(this._view.state, { applyToWord: this.applyToWord });\n }\n /**\n * Manually focus the Editor.\n */\n focus() {\n this.focusChangedProgrammatically = true;\n this._view.focus();\n this.focusChangedProgrammatically = false;\n }\n /**\n * Manually blur the Editor.\n */\n blur() {\n this.focusChangedProgrammatically = true;\n this._view.dom.blur();\n this.focusChangedProgrammatically = false;\n }\n /**\n * @hidden\n */\n getSource() {\n return getHtml(this._view.state);\n }\n ngOnDestroy() {\n if (this.subs) {\n this.subs.unsubscribe();\n }\n if (this._styleObserver) {\n this._styleObserver.disconnect();\n }\n }\n /**\n * @hidden\n */\n writeValue(value) {\n this.inForm = true;\n // To avoid confusion, non-existent values are always undefined.\n this.value = value === null ? undefined : 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 * Used by the TextBoxContainer to determine if the component is empty.\n */\n isEmpty() {\n return false;\n }\n initialize() {\n if (!isDocumentAvailable()) {\n return;\n }\n const currentSchema = this.schema || schema;\n const containerNativeElement = this.container.element.nativeElement;\n const contentNode = parseContent((this.value || '').trim(), currentSchema, { preserveWhitespace: this.preserveWhitespace });\n if (this.iframe) {\n const iframeDoc = containerNativeElement.contentDocument;\n const meta = iframeDoc.createElement('meta');\n meta.setAttribute('charset', 'utf-8');\n iframeDoc.head.appendChild(meta);\n [defaultStyle, tablesStyles, this.dir === 'rtl' ? rtlStyles : undefined].forEach(styles => {\n if (styles) {\n const style = iframeDoc.createElement('style');\n style.appendChild(iframeDoc.createTextNode(styles));\n iframeDoc.head.appendChild(style);\n }\n });\n const element = iframeDoc.createElement('div');\n element.classList.add('k-content');\n iframeDoc.body.appendChild(element);\n }\n else {\n const element = document.createElement('div');\n containerNativeElement.appendChild(element);\n }\n const defaultPlugins = [\n new Plugin({\n key: new PluginKey('editor-tabindex'),\n props: {\n attributes: () => ({\n // set tabindex when contenteditable is false, so that the content area can be selected\n tabIndex: this.readonly ? '0' : ''\n })\n }\n }),\n new Plugin({\n key: new PluginKey('toolbar-tools-update'),\n view: () => ({\n update: editorView => {\n if (!this.disabled) {\n this.stateChange.next(this.readonly ? disabledToolBarState : getToolbarState(editorView.state, { applyToWord: this.applyToWord }));\n }\n }\n })\n }),\n history(),\n keymap(buildListKeymap(currentSchema)),\n keymap(buildKeymap(currentSchema, { applyToWord: this.applyToWord })),\n keymap(baseKeymap),\n gapCursor(),\n imageResizing(),\n tableEditing(),\n caretColor()\n ];\n if (this.placeholder) {\n defaultPlugins.push(placeholder(this.placeholder));\n }\n const state = EditorState.create({\n schema: currentSchema,\n doc: contentNode,\n plugins: isPresent(this.plugins) ? this.plugins(defaultPlugins) : defaultPlugins\n });\n if (this.iframe) {\n this.viewMountElement = containerNativeElement.contentDocument.querySelector('div');\n }\n else {\n this.viewMountElement = containerNativeElement.querySelector('div');\n }\n this.ngZone.runOutsideAngular(() => {\n this._view = new EditorView({ mount: this.viewMountElement }, {\n state,\n editable: () => !this.readonly,\n dispatchTransaction: this.dispatchTransaction,\n transformPastedHTML: this.transformPastedHTML,\n handleDOMEvents: {\n paste: this.onPaste\n }\n });\n });\n if (this._view) {\n let containerElement;\n const contentAreaClasslist = this.element.nativeElement.querySelector('.k-editor-content').classList;\n if (this.iframe) {\n containerElement = this.container.element.nativeElement.contentDocument;\n }\n else {\n containerElement = this.container.element.nativeElement;\n }\n this.subs.add(fromEvent(containerElement, 'focusin')\n .subscribe((e) => {\n if (this.readonly) {\n contentAreaClasslist.add('k-focus');\n }\n if (!this.focusChangedProgrammatically || this.shouldEmitFocus) {\n const relatedTarget = e.relatedTarget;\n const isActiveColorButton = relatedTarget && relatedTarget.classList.contains('k-colorpicker');\n if (!isActiveColorButton || this.shouldEmitFocus) {\n this.ngZone.run(() => this.onFocus.emit());\n }\n this.shouldEmitFocus = false;\n }\n }));\n this.subs.add(fromEvent(containerElement, 'focusout')\n .subscribe((e) => {\n if (this.readonly) {\n contentAreaClasslist.remove('k-focus');\n }\n if (!this.focusChangedProgrammatically) {\n const relatedTarget = e.relatedTarget;\n const isActiveColorButton = relatedTarget && relatedTarget.classList.contains('k-colorpicker');\n if (!isActiveColorButton) {\n this.ngZone.run(() => this.onBlur.emit());\n }\n }\n }));\n }\n this.subs.add(this.stateChange.subscribe(() => {\n if (this.userToolBarComponent) {\n this.userToolBarComponent.cdr.detectChanges();\n }\n else {\n this.cdr.detectChanges();\n }\n }));\n this.subs.add(this.valueModified.subscribe((value) => {\n this.onChangeCallback(value);\n this.valueChange.emit(value);\n this.cdr.markForCheck();\n }));\n this.subs.add(fromEvent(this.viewMountElement, 'keyup')\n .pipe(map((e) => e.keyCode), filter((code) => code === 121), // F10\n map(() => this.userToolBarElement || this.defaultToolbar))\n .subscribe((toolbar) => toolbar.nativeElement.focus()));\n this.subs.add(fromEvent(this.viewMountElement, 'blur')\n .pipe(filter((event) => !this.viewMountElement.contains(event.relatedTarget)))\n .subscribe(() => this.onTouchedCallback()));\n }\n normalizeSize() {\n if (typeof this.resizable === 'object' && !this._styleObserver) {\n const element = this.element.nativeElement;\n this._styleObserver = new MutationObserver(() => {\n this.ngZone.runOutsideAngular(() => this.normalizeProperties(element));\n });\n this._styleObserver.observe(element, { attributeFilter: ['style'] });\n }\n }\n normalizeProperties(element) {\n const props = Object.keys(this.resizable);\n const pixelWidth = parseInt(element.style.width, 10);\n const pixelHeight = parseInt(element.style.height, 10);\n const resizable = this.resizable;\n props.forEach(prop => {\n const isMinProp = prop.startsWith('min');\n const isMaxProp = !isMinProp;\n const isWidthProp = prop.endsWith('Width');\n const isHeightProp = !isWidthProp;\n if (isMinProp && isWidthProp) {\n if (pixelWidth < resizable.minWidth) {\n element.style.width = resizable.minWidth + 'px';\n }\n }\n else if (isMinProp && isHeightProp) {\n if (pixelHeight < resizable.minHeight) {\n element.style.height = resizable.minHeight + 'px';\n }\n }\n else if (isMaxProp && isWidthProp) {\n if (pixelWidth > resizable.maxWidth) {\n element.style.width = resizable.maxWidth + 'px';\n }\n }\n else {\n if (pixelHeight > resizable.maxHeight) {\n element.style.height = resizable.maxHeight + 'px';\n }\n }\n });\n }\n};\nEditorComponent.ɵfac = function EditorComponent_Factory(t) { return new (t || EditorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.DialogService), ɵngcc0.ɵɵdirectiveInject(ɵngcc6.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: EditorComponent, selectors: [[\"kendo-editor\"]], contentQueries: function EditorComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, ToolBarComponent, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, ToolBarComponent, 5, ElementRef);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.userToolBarComponent = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.userToolBarElement = _t.first);\n } }, viewQuery: function EditorComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c3, 7, ViewContainerRef);\n ɵngcc0.ɵɵviewQuery(_c4, 5, ViewContainerRef);\n ɵngcc0.ɵɵviewQuery(_c5, 5, ElementRef);\n ɵngcc0.ɵɵviewQuery(_c5, 5, ToolBarComponent);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.dialogContainer = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.container = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.defaultToolbar = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.defaultToolbarComponent = _t.first);\n } }, hostVars: 20, hostBindings: function EditorComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"dir\", ctx.dir)(\"ariaDisabled\", ctx.ariaDisabled);\n ɵngcc0.ɵɵstyleProp(\"min-width\", ctx.minWidth)(\"max-width\", ctx.maxWidth)(\"min-height\", ctx.minHeight)(\"max-height\", ctx.maxHeight);\n ɵngcc0.ɵɵclassProp(\"k-editor\", ctx.hostClass)(\"k-editor-resizable\", ctx.resizableClass)(\"k-disabled\", ctx.isDisabled)(\"k-readonly\", ctx.isReadonly)(\"k-ie\", ctx.isIE);\n } }, inputs: { iframe: \"iframe\", applyToWord: \"applyToWord\", preserveWhitespace: \"preserveWhitespace\", resizable: \"resizable\", value: \"value\", disabled: \"disabled\", readonly: \"readonly\", schema: \"schema\", plugins: \"plugins\", placeholder: \"placeholder\", pasteCleanupSettings: \"pasteCleanupSettings\" }, outputs: { valueChange: \"valueChange\", onFocus: \"focus\", paste: \"paste\", onBlur: \"blur\" }, features: [ɵngcc0.ɵɵProvidersFeature([\n EditorLocalizationService,\n EditorToolsService,\n {\n provide: LocalizationService,\n useExisting: EditorLocalizationService\n },\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.editor'\n },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EditorComponent_1),\n multi: true\n },\n {\n provide: KendoInput,\n useExisting: forwardRef(() => EditorComponent_1)\n }\n ]), ɵngcc0.ɵɵNgOnChangesFeature], ngContentSelectors: _c113, decls: 7, vars: 3, consts: function () { let i18n_6; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that aligns text in the center.\n * @meaning kendo.editor.alignCenter\n */\n const MSG_EXTERNAL_4529292660735098393$$DIST_FESM2015_INDEX_JS_7 = goog.getMsg(\"Center text\");\n i18n_6 = MSG_EXTERNAL_4529292660735098393$$DIST_FESM2015_INDEX_JS_7;\n }\n else {\n i18n_6 = $localize `:kendo.editor.alignCenter|The title of the tool that aligns text in the center.␟c19b9de1395639d8d6906083e06a682537d548b8␟4529292660735098393:Center text`;\n } let i18n_8; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that justifies text both left and right.\n * @meaning kendo.editor.alignJustify\n */\n const MSG_EXTERNAL_4684700365643535728$$DIST_FESM2015_INDEX_JS_9 = goog.getMsg(\"Justify\");\n i18n_8 = MSG_EXTERNAL_4684700365643535728$$DIST_FESM2015_INDEX_JS_9;\n }\n else {\n i18n_8 = $localize `:kendo.editor.alignJustify|The title of the tool that justifies text both left and right.␟6fd8af3052680f0e8af558f02aafbdae846763ad␟4684700365643535728:Justify`;\n } let i18n_10; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that aligns text on the left.\n * @meaning kendo.editor.alignLeft\n */\n const MSG_EXTERNAL_154382826604788564$$DIST_FESM2015_INDEX_JS_11 = goog.getMsg(\"Align text left\");\n i18n_10 = MSG_EXTERNAL_154382826604788564$$DIST_FESM2015_INDEX_JS_11;\n }\n else {\n i18n_10 = $localize `:kendo.editor.alignLeft|The title of the tool that aligns text on the left.␟0e6294e25d0445bf78814703fc3db0f9275cdfaf␟154382826604788564:Align text left`;\n } let i18n_12; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that aligns text on the right.\n * @meaning kendo.editor.alignRight\n */\n const MSG_EXTERNAL_947503876024297122$$DIST_FESM2015_INDEX_JS_13 = goog.getMsg(\"Align text right\");\n i18n_12 = MSG_EXTERNAL_947503876024297122$$DIST_FESM2015_INDEX_JS_13;\n }\n else {\n i18n_12 = $localize `:kendo.editor.alignRight|The title of the tool that aligns text on the right.␟e42635af2f5e2255fe4e5e4259139bed6771d5b0␟947503876024297122:Align text right`;\n } let i18n_14; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that changes the text background color.\n * @meaning kendo.editor.backColor\n */\n const MSG_EXTERNAL_6855434377775366481$$DIST_FESM2015_INDEX_JS_15 = goog.getMsg(\"Background color\");\n i18n_14 = MSG_EXTERNAL_6855434377775366481$$DIST_FESM2015_INDEX_JS_15;\n }\n else {\n i18n_14 = $localize `:kendo.editor.backColor|The title of the tool that changes the text background color.␟94feffd30b062ee0ef8aac49af5faebc986b79ee␟6855434377775366481:Background color`;\n } let i18n_16; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that wraps an element in a blockquote\n * @meaning kendo.editor.blockquote\n */\n const MSG_EXTERNAL_4674681465990637874$$DIST_FESM2015_INDEX_JS_17 = goog.getMsg(\"Quotation\");\n i18n_16 = MSG_EXTERNAL_4674681465990637874$$DIST_FESM2015_INDEX_JS_17;\n }\n else {\n i18n_16 = $localize `:kendo.editor.blockquote|The title of the tool that wraps an element in a blockquote␟4fba9bf07f0c760f857cc1bbbe34309c0d1e74ad␟4674681465990637874:Quotation`;\n } let i18n_18; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that makes text bold.\n * @meaning kendo.editor.bold\n */\n const MSG_EXTERNAL_2189266817166266173$$DIST_FESM2015_INDEX_JS_19 = goog.getMsg(\"Bold\");\n i18n_18 = MSG_EXTERNAL_2189266817166266173$$DIST_FESM2015_INDEX_JS_19;\n }\n else {\n i18n_18 = $localize `:kendo.editor.bold|The title of the tool that makes text bold.␟e1a1b567ad44320e7949153f90b735a000e0dd54␟2189266817166266173:Bold`;\n } let i18n_20; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the Clean Formatting tool.\n * @meaning kendo.editor.cleanFormatting\n */\n const MSG_EXTERNAL_6409775087646476318$$DIST_FESM2015_INDEX_JS_21 = goog.getMsg(\"Clean formatting\");\n i18n_20 = MSG_EXTERNAL_6409775087646476318$$DIST_FESM2015_INDEX_JS_21;\n }\n else {\n i18n_20 = $localize `:kendo.editor.cleanFormatting|The title of the Clean Formatting tool.␟6ee3ea0c48aeb94e9ed4b728391edc424c5b2b90␟6409775087646476318:Clean formatting`;\n } let i18n_22; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that creates hyperlinks.\n * @meaning kendo.editor.createLink\n */\n const MSG_EXTERNAL_2895696791468415067$$DIST_FESM2015_INDEX_JS_23 = goog.getMsg(\"Insert link\");\n i18n_22 = MSG_EXTERNAL_2895696791468415067$$DIST_FESM2015_INDEX_JS_23;\n }\n else {\n i18n_22 = $localize `:kendo.editor.createLink|The title of the tool that creates hyperlinks.␟a0857ff55fd21727d74e873d164f6785c4a1d2a4␟2895696791468415067:Insert link`;\n } let i18n_24; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label of the **Apply** button in all editor dialogs.\n * @meaning kendo.editor.dialogApply\n */\n const MSG_EXTERNAL_3478270206890847719$$DIST_FESM2015_INDEX_JS_25 = goog.getMsg(\"Apply\");\n i18n_24 = MSG_EXTERNAL_3478270206890847719$$DIST_FESM2015_INDEX_JS_25;\n }\n else {\n i18n_24 = $localize `:kendo.editor.dialogApply|The label of the **Apply** button in all editor dialogs.␟0205d0783c43657539254c5d8cd37d4a88911f1d␟3478270206890847719:Apply`;\n } let i18n_26; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label of the **Cancel** button in all editor dialogs.\n * @meaning kendo.editor.dialogCancel\n */\n const MSG_EXTERNAL_1436637880389464255$$DIST_FESM2015_INDEX_JS_27 = goog.getMsg(\"Cancel\");\n i18n_26 = MSG_EXTERNAL_1436637880389464255$$DIST_FESM2015_INDEX_JS_27;\n }\n else {\n i18n_26 = $localize `:kendo.editor.dialogCancel|The label of the **Cancel** button in all editor dialogs.␟62c847eb7dfe44fa70224659b77a69e04ad24e98␟1436637880389464255:Cancel`;\n } let i18n_28; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label of the **Insert** button in all editor dialogs.\n * @meaning kendo.editor.dialogInsert\n */\n const MSG_EXTERNAL_1902538342017591848$$DIST_FESM2015_INDEX_JS_29 = goog.getMsg(\"Insert\");\n i18n_28 = MSG_EXTERNAL_1902538342017591848$$DIST_FESM2015_INDEX_JS_29;\n }\n else {\n i18n_28 = $localize `:kendo.editor.dialogInsert|The label of the **Insert** button in all editor dialogs.␟e2897c2d92e5b0f60dbc34568ea63ee29aac72b1␟1902538342017591848:Insert`;\n } let i18n_30; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label of the **Update** button in all editor dialogs.\n * @meaning kendo.editor.dialogUpdate\n */\n const MSG_EXTERNAL_3131813297607973618$$DIST_FESM2015_INDEX_JS_31 = goog.getMsg(\"Update\");\n i18n_30 = MSG_EXTERNAL_3131813297607973618$$DIST_FESM2015_INDEX_JS_31;\n }\n else {\n i18n_30 = $localize `:kendo.editor.dialogUpdate|The label of the **Update** button in all editor dialogs.␟da599b240288c66d5682ecf53647fae17b1f255d␟3131813297607973618:Update`;\n } let i18n_32; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The caption for the file text in the insertFile dialog.\n * @meaning kendo.editor.fileText\n */\n const MSG_EXTERNAL_2994440335095238335$$DIST_FESM2015_INDEX_JS_33 = goog.getMsg(\"Text\");\n i18n_32 = MSG_EXTERNAL_2994440335095238335$$DIST_FESM2015_INDEX_JS_33;\n }\n else {\n i18n_32 = $localize `:kendo.editor.fileText|The caption for the file text in the insertFile dialog.␟b9e9c0726907339811d576fbecf9ee7ef25228dd␟2994440335095238335:Text`;\n } let i18n_34; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The caption for the file Title in the insertFile dialog.\n * @meaning kendo.editor.fileTitle\n */\n const MSG_EXTERNAL_2270852727137392864$$DIST_FESM2015_INDEX_JS_35 = goog.getMsg(\"Title\");\n i18n_34 = MSG_EXTERNAL_2270852727137392864$$DIST_FESM2015_INDEX_JS_35;\n }\n else {\n i18n_34 = $localize `:kendo.editor.fileTitle|The caption for the file Title in the insertFile dialog.␟773650e91245315dd99ba76678b651035d896449␟2270852727137392864:Title`;\n } let i18n_36; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The caption for the file URL in the insertFile dialog.\n * @meaning kendo.editor.fileWebAddress\n */\n const MSG_EXTERNAL_272090133902355251$$DIST_FESM2015_INDEX_JS_37 = goog.getMsg(\"Web address\");\n i18n_36 = MSG_EXTERNAL_272090133902355251$$DIST_FESM2015_INDEX_JS_37;\n }\n else {\n i18n_36 = $localize `:kendo.editor.fileWebAddress|The caption for the file URL in the insertFile dialog.␟920e262f27d93e37174869fe53fbda129edd6220␟272090133902355251:Web address`;\n } let i18n_38; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that changes the text font.\n * @meaning kendo.editor.fontFamily\n */\n const MSG_EXTERNAL_2242101754750506857$$DIST_FESM2015_INDEX_JS_39 = goog.getMsg(\"Select font family\");\n i18n_38 = MSG_EXTERNAL_2242101754750506857$$DIST_FESM2015_INDEX_JS_39;\n }\n else {\n i18n_38 = $localize `:kendo.editor.fontFamily|The title of the tool that changes the text font.␟b3c7dd6b566ab94cbad12176f608f617394069a5␟2242101754750506857:Select font family`;\n } let i18n_40; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that changes the text size.\n * @meaning kendo.editor.fontSize\n */\n const MSG_EXTERNAL_3134383620280891369$$DIST_FESM2015_INDEX_JS_41 = goog.getMsg(\"Select font size\");\n i18n_40 = MSG_EXTERNAL_3134383620280891369$$DIST_FESM2015_INDEX_JS_41;\n }\n else {\n i18n_40 = $localize `:kendo.editor.fontSize|The title of the tool that changes the text size.␟1e36b676782998a979c662191a815b60e212b1e4␟3134383620280891369:Select font size`;\n } let i18n_42; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that changes the text color.\n * @meaning kendo.editor.foreColor\n */\n const MSG_EXTERNAL_5478978124365341523$$DIST_FESM2015_INDEX_JS_43 = goog.getMsg(\"Color\");\n i18n_42 = MSG_EXTERNAL_5478978124365341523$$DIST_FESM2015_INDEX_JS_43;\n }\n else {\n i18n_42 = $localize `:kendo.editor.foreColor|The title of the tool that changes the text color.␟6b7246584279a0e44d9bd9cb953a0c701696d059␟5478978124365341523:Color`;\n } let i18n_44; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that lets users choose block formats.\n * @meaning kendo.editor.format\n */\n const MSG_EXTERNAL_7573626268088286043$$DIST_FESM2015_INDEX_JS_45 = goog.getMsg(\"Format\");\n i18n_44 = MSG_EXTERNAL_7573626268088286043$$DIST_FESM2015_INDEX_JS_45;\n }\n else {\n i18n_44 = $localize `:kendo.editor.format|The title of the tool that lets users choose block formats.␟27423769f36c1e1662739fe78b0a29f8449ca2ed␟7573626268088286043:Format`;\n } let i18n_46; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The caption for the image alternate text in the insertImage dialog.\n * @meaning kendo.editor.imageAltText\n */\n const MSG_EXTERNAL_2605419586703055723$$DIST_FESM2015_INDEX_JS_47 = goog.getMsg(\"Alternate text\");\n i18n_46 = MSG_EXTERNAL_2605419586703055723$$DIST_FESM2015_INDEX_JS_47;\n }\n else {\n i18n_46 = $localize `:kendo.editor.imageAltText|The caption for the image alternate text in the insertImage dialog.␟588c2538a305890410558065bbb376099873f059␟2605419586703055723:Alternate text`;\n } let i18n_48; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The caption for the image height in the insertImage dialog.\n * @meaning kendo.editor.imageHeight\n */\n const MSG_EXTERNAL_7389256657313538937$$DIST_FESM2015_INDEX_JS_49 = goog.getMsg(\"Height (px)\");\n i18n_48 = MSG_EXTERNAL_7389256657313538937$$DIST_FESM2015_INDEX_JS_49;\n }\n else {\n i18n_48 = $localize `:kendo.editor.imageHeight|The caption for the image height in the insertImage dialog.␟1f22b7da203eebe3e1efd22cc86aa9b990b0c16f␟7389256657313538937:Height (px)`;\n } let i18n_50; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The caption for the image URL in the insertImage dialog.\n * @meaning kendo.editor.imageWebAddress\n */\n const MSG_EXTERNAL_6975958345731927150$$DIST_FESM2015_INDEX_JS_51 = goog.getMsg(\"Web address\");\n i18n_50 = MSG_EXTERNAL_6975958345731927150$$DIST_FESM2015_INDEX_JS_51;\n }\n else {\n i18n_50 = $localize `:kendo.editor.imageWebAddress|The caption for the image URL in the insertImage dialog.␟31537a903057886e7fb1a79cd5cde73a649a8ed6␟6975958345731927150:Web address`;\n } let i18n_52; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The caption for the image width in the insertImage dialog.\n * @meaning kendo.editor.imageWidth\n */\n const MSG_EXTERNAL_8309100232203036921$$DIST_FESM2015_INDEX_JS_53 = goog.getMsg(\"Width (px)\");\n i18n_52 = MSG_EXTERNAL_8309100232203036921$$DIST_FESM2015_INDEX_JS_53;\n }\n else {\n i18n_52 = $localize `:kendo.editor.imageWidth|The caption for the image width in the insertImage dialog.␟4f26f47317f5b69c192fbc9cafecb432e8fa8ee5␟8309100232203036921:Width (px)`;\n } let i18n_54; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that indents the content.\n * @meaning kendo.editor.indent\n */\n const MSG_EXTERNAL_5647108364628468094$$DIST_FESM2015_INDEX_JS_55 = goog.getMsg(\"Indent\");\n i18n_54 = MSG_EXTERNAL_5647108364628468094$$DIST_FESM2015_INDEX_JS_55;\n }\n else {\n i18n_54 = $localize `:kendo.editor.indent|The title of the tool that indents the content.␟332319db3aabf32cd56e64e1569276c5f878fd5d␟5647108364628468094:Indent`;\n } let i18n_56; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that inserts links to files.\n * @meaning kendo.editor.insertFile\n */\n const MSG_EXTERNAL_539957110154874519$$DIST_FESM2015_INDEX_JS_57 = goog.getMsg(\"Insert file\");\n i18n_56 = MSG_EXTERNAL_539957110154874519$$DIST_FESM2015_INDEX_JS_57;\n }\n else {\n i18n_56 = $localize `:kendo.editor.insertFile|The title of the tool that inserts links to files.␟f57591626833e959e88b177754c2e996119a3c1a␟539957110154874519:Insert file`;\n } let i18n_58; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that inserts images.\n * @meaning kendo.editor.insertImage\n */\n const MSG_EXTERNAL_3091202802113261385$$DIST_FESM2015_INDEX_JS_59 = goog.getMsg(\"Insert image\");\n i18n_58 = MSG_EXTERNAL_3091202802113261385$$DIST_FESM2015_INDEX_JS_59;\n }\n else {\n i18n_58 = $localize `:kendo.editor.insertImage|The title of the tool that inserts images.␟759c8463401821450bfa80fd9106314adab25ca3␟3091202802113261385:Insert image`;\n } let i18n_60; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that inserts an ordered list.\n * @meaning kendo.editor.insertOrderedList\n */\n const MSG_EXTERNAL_4334727692818265844$$DIST_FESM2015_INDEX_JS_61 = goog.getMsg(\"Insert ordered list\");\n i18n_60 = MSG_EXTERNAL_4334727692818265844$$DIST_FESM2015_INDEX_JS_61;\n }\n else {\n i18n_60 = $localize `:kendo.editor.insertOrderedList|The title of the tool that inserts an ordered list.␟9de4d5df2c52ec20dda585ddf9046b64042a63dc␟4334727692818265844:Insert ordered list`;\n } let i18n_62; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that inserts an unordered list.\n * @meaning kendo.editor.insertUnorderedList\n */\n const MSG_EXTERNAL_6391583758449842507$$DIST_FESM2015_INDEX_JS_63 = goog.getMsg(\"Insert unordered list\");\n i18n_62 = MSG_EXTERNAL_6391583758449842507$$DIST_FESM2015_INDEX_JS_63;\n }\n else {\n i18n_62 = $localize `:kendo.editor.insertUnorderedList|The title of the tool that inserts an unordered list.␟2c56625f542e63a0fcb2cdfff32ac7958a773131␟6391583758449842507:Insert unordered list`;\n } let i18n_64; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that makes text italicized.\n * @meaning kendo.editor.italic\n */\n const MSG_EXTERNAL_7054357458452689543$$DIST_FESM2015_INDEX_JS_65 = goog.getMsg(\"Italic\");\n i18n_64 = MSG_EXTERNAL_7054357458452689543$$DIST_FESM2015_INDEX_JS_65;\n }\n else {\n i18n_64 = $localize `:kendo.editor.italic|The title of the tool that makes text italicized.␟0c2f657b2d63906813f0d999c34639d6703d29fe␟7054357458452689543:Italic`;\n } let i18n_66; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The caption for the checkbox for opening the link in a new window in the createLink dialog.\n * @meaning kendo.editor.linkOpenInNewWindow\n */\n const MSG_EXTERNAL_6304412528521452300$$DIST_FESM2015_INDEX_JS_67 = goog.getMsg(\"Open link in new window\");\n i18n_66 = MSG_EXTERNAL_6304412528521452300$$DIST_FESM2015_INDEX_JS_67;\n }\n else {\n i18n_66 = $localize `:kendo.editor.linkOpenInNewWindow|The caption for the checkbox for opening the link in a new window in the createLink dialog.␟7ddbe5ff681ec56e0a1d47f55baf03aae43143f0␟6304412528521452300:Open link in new window`;\n } let i18n_68; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The caption for the link text in the createLink dialog.\n * @meaning kendo.editor.linkText\n */\n const MSG_EXTERNAL_8060045722754477150$$DIST_FESM2015_INDEX_JS_69 = goog.getMsg(\"Text\");\n i18n_68 = MSG_EXTERNAL_8060045722754477150$$DIST_FESM2015_INDEX_JS_69;\n }\n else {\n i18n_68 = $localize `:kendo.editor.linkText|The caption for the link text in the createLink dialog.␟bc5096e9fa3fd49769d041a4734d5d5d8e6fd0e9␟8060045722754477150:Text`;\n } let i18n_70; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The caption for the link title in the createLink dialog.\n * @meaning kendo.editor.linkTitle\n */\n const MSG_EXTERNAL_330780229810449102$$DIST_FESM2015_INDEX_JS_71 = goog.getMsg(\"Title\");\n i18n_70 = MSG_EXTERNAL_330780229810449102$$DIST_FESM2015_INDEX_JS_71;\n }\n else {\n i18n_70 = $localize `:kendo.editor.linkTitle|The caption for the link title in the createLink dialog.␟e5c8208c08928222b713afcf80de78633236349d␟330780229810449102:Title`;\n } let i18n_72; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The caption for the URL in the createLink dialog.\n * @meaning kendo.editor.linkWebAddress\n */\n const MSG_EXTERNAL_6362180643798508446$$DIST_FESM2015_INDEX_JS_73 = goog.getMsg(\"Web address\");\n i18n_72 = MSG_EXTERNAL_6362180643798508446$$DIST_FESM2015_INDEX_JS_73;\n }\n else {\n i18n_72 = $localize `:kendo.editor.linkWebAddress|The caption for the URL in the createLink dialog.␟19f853c2933a9a1b71d96accf814e4f9e9e6e8dd␟6362180643798508446:Web address`;\n } let i18n_74; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that outdents the content.\n * @meaning kendo.editor.outdent\n */\n const MSG_EXTERNAL_8474960686200350213$$DIST_FESM2015_INDEX_JS_75 = goog.getMsg(\"Outdent\");\n i18n_74 = MSG_EXTERNAL_8474960686200350213$$DIST_FESM2015_INDEX_JS_75;\n }\n else {\n i18n_74 = $localize `:kendo.editor.outdent|The title of the tool that outdents the content.␟33a49dc9bce8c37c9c957a6cdb7fcd0b82b8bf58␟8474960686200350213:Outdent`;\n } let i18n_76; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the print tool.\n * @meaning kendo.editor.print\n */\n const MSG_EXTERNAL_80847516738809405$$DIST_FESM2015_INDEX_JS_77 = goog.getMsg(\"Print\");\n i18n_76 = MSG_EXTERNAL_80847516738809405$$DIST_FESM2015_INDEX_JS_77;\n }\n else {\n i18n_76 = $localize `:kendo.editor.print|The title of the print tool.␟9d52f416bc1f1a35c55906e927a19befea8a2b84␟80847516738809405:Print`;\n } let i18n_78; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that undos the last action.\n * @meaning kendo.editor.redo\n */\n const MSG_EXTERNAL_6526989398460728046$$DIST_FESM2015_INDEX_JS_79 = goog.getMsg(\"Redo\");\n i18n_78 = MSG_EXTERNAL_6526989398460728046$$DIST_FESM2015_INDEX_JS_79;\n }\n else {\n i18n_78 = $localize `:kendo.editor.redo|The title of the tool that undos the last action.␟117c237ef9fa6ff04fb4447fc233fe846ed366c1␟6526989398460728046:Redo`;\n } let i18n_80; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that selects all content.\n * @meaning kendo.editor.selectAll\n */\n const MSG_EXTERNAL_7460989834038782177$$DIST_FESM2015_INDEX_JS_81 = goog.getMsg(\"Select All\");\n i18n_80 = MSG_EXTERNAL_7460989834038782177$$DIST_FESM2015_INDEX_JS_81;\n }\n else {\n i18n_80 = $localize `:kendo.editor.selectAll|The title of the tool that selects all content.␟f2421e26609d5f0e84c4db8da0d8990a764eb604␟7460989834038782177:Select All`;\n } let i18n_82; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that strikes through text.\n * @meaning kendo.editor.strikethrough\n */\n const MSG_EXTERNAL_2488604920377820272$$DIST_FESM2015_INDEX_JS_83 = goog.getMsg(\"Strikethrough\");\n i18n_82 = MSG_EXTERNAL_2488604920377820272$$DIST_FESM2015_INDEX_JS_83;\n }\n else {\n i18n_82 = $localize `:kendo.editor.strikethrough|The title of the tool that strikes through text.␟6e38a1450b5d50601f44a665fbb329feca31e97b␟2488604920377820272:Strikethrough`;\n } let i18n_84; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that makes text subscript.\n * @meaning kendo.editor.subscript\n */\n const MSG_EXTERNAL_7270994954007735302$$DIST_FESM2015_INDEX_JS_85 = goog.getMsg(\"Subscript\");\n i18n_84 = MSG_EXTERNAL_7270994954007735302$$DIST_FESM2015_INDEX_JS_85;\n }\n else {\n i18n_84 = $localize `:kendo.editor.subscript|The title of the tool that makes text subscript.␟2bd31b9317a43ee8fb808b0c254b1bb200f908fa␟7270994954007735302:Subscript`;\n } let i18n_86; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that makes text superscript.\n * @meaning kendo.editor.superscript\n */\n const MSG_EXTERNAL_7596297815131300603$$DIST_FESM2015_INDEX_JS_87 = goog.getMsg(\"Superscript\");\n i18n_86 = MSG_EXTERNAL_7596297815131300603$$DIST_FESM2015_INDEX_JS_87;\n }\n else {\n i18n_86 = $localize `:kendo.editor.superscript|The title of the tool that makes text superscript.␟825050144d6680f962bf7ec296c42e08e6ac09d9␟7596297815131300603:Superscript`;\n } let i18n_88; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that underlines text.\n * @meaning kendo.editor.underline\n */\n const MSG_EXTERNAL_8473045911658532041$$DIST_FESM2015_INDEX_JS_89 = goog.getMsg(\"Underline\");\n i18n_88 = MSG_EXTERNAL_8473045911658532041$$DIST_FESM2015_INDEX_JS_89;\n }\n else {\n i18n_88 = $localize `:kendo.editor.underline|The title of the tool that underlines text.␟67eb1cff18f5e9a2e7d47aae052c666583bab261␟8473045911658532041:Underline`;\n } let i18n_90; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that removes hyperlinks.\n * @meaning kendo.editor.unlink\n */\n const MSG_EXTERNAL_1024469129593792947$$DIST_FESM2015_INDEX_JS_91 = goog.getMsg(\"Remove Link\");\n i18n_90 = MSG_EXTERNAL_1024469129593792947$$DIST_FESM2015_INDEX_JS_91;\n }\n else {\n i18n_90 = $localize `:kendo.editor.unlink|The title of the tool that removes hyperlinks.␟ad3a3c5c713542df87373b77cae8a124edb29c22␟1024469129593792947:Remove Link`;\n } let i18n_92; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that undos the last action.\n * @meaning kendo.editor.undo\n */\n const MSG_EXTERNAL_3987002812814489417$$DIST_FESM2015_INDEX_JS_93 = goog.getMsg(\"Undo\");\n i18n_92 = MSG_EXTERNAL_3987002812814489417$$DIST_FESM2015_INDEX_JS_93;\n }\n else {\n i18n_92 = $localize `:kendo.editor.undo|The title of the tool that undos the last action.␟18b488b145eeea939eecd65716bc3578939dcc0f␟3987002812814489417:Undo`;\n } let i18n_94; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that shows the editor value as HTML.\n * @meaning kendo.editor.viewSource\n */\n const MSG_EXTERNAL_3825180996241734650$$DIST_FESM2015_INDEX_JS_95 = goog.getMsg(\"View source\");\n i18n_94 = MSG_EXTERNAL_3825180996241734650$$DIST_FESM2015_INDEX_JS_95;\n }\n else {\n i18n_94 = $localize `:kendo.editor.viewSource|The title of the tool that shows the editor value as HTML.␟3caea7fc81a53a3e225561af33a56902f642ac26␟3825180996241734650:View source`;\n } let i18n_96; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that inserts table.\n * @meaning kendo.editor.insertTable\n */\n const MSG_EXTERNAL_5261534950694067764$$DIST_FESM2015_INDEX_JS_97 = goog.getMsg(\"Insert Table\");\n i18n_96 = MSG_EXTERNAL_5261534950694067764$$DIST_FESM2015_INDEX_JS_97;\n }\n else {\n i18n_96 = $localize `:kendo.editor.insertTable|The title of the tool that inserts table.␟32de5e66d4b2073bded7114d8a1ea1411cd7ceec␟5261534950694067764:Insert Table`;\n } let i18n_98; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that adds new column before currently selected column.\n * @meaning kendo.editor.addColumnBefore\n */\n const MSG_EXTERNAL_2967496815045471366$$DIST_FESM2015_INDEX_JS_99 = goog.getMsg(\"Add column before\");\n i18n_98 = MSG_EXTERNAL_2967496815045471366$$DIST_FESM2015_INDEX_JS_99;\n }\n else {\n i18n_98 = $localize `:kendo.editor.addColumnBefore|The title of the tool that adds new column before currently selected column.␟66c68280830690c0ebd374fd34dead01df2e7057␟2967496815045471366:Add column before`;\n } let i18n_100; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that adds new column after currently selected column.\n * @meaning kendo.editor.addColumnAfter\n */\n const MSG_EXTERNAL_1046762424668985150$$DIST_FESM2015_INDEX_JS_101 = goog.getMsg(\"Add column after\");\n i18n_100 = MSG_EXTERNAL_1046762424668985150$$DIST_FESM2015_INDEX_JS_101;\n }\n else {\n i18n_100 = $localize `:kendo.editor.addColumnAfter|The title of the tool that adds new column after currently selected column.␟24d531a9e3507a6ad02bff394c5030a25a731d66␟1046762424668985150:Add column after`;\n } let i18n_102; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that adds new row before currently selected row.\n * @meaning kendo.editor.addRowBefore\n */\n const MSG_EXTERNAL_5531388093960518917$$DIST_FESM2015_INDEX_JS_103 = goog.getMsg(\"Add row before\");\n i18n_102 = MSG_EXTERNAL_5531388093960518917$$DIST_FESM2015_INDEX_JS_103;\n }\n else {\n i18n_102 = $localize `:kendo.editor.addRowBefore|The title of the tool that adds new row before currently selected row.␟c42641b164ae5711cb01b88bcde664031cc230bf␟5531388093960518917:Add row before`;\n } let i18n_104; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that adds new row after currently selected row.\n * @meaning kendo.editor.addRowAfter\n */\n const MSG_EXTERNAL_6647582145372406524$$DIST_FESM2015_INDEX_JS_105 = goog.getMsg(\"Add row after\");\n i18n_104 = MSG_EXTERNAL_6647582145372406524$$DIST_FESM2015_INDEX_JS_105;\n }\n else {\n i18n_104 = $localize `:kendo.editor.addRowAfter|The title of the tool that adds new row after currently selected row.␟c852853beee80e68e673421fd4bc57fa49d417d9␟6647582145372406524:Add row after`;\n } let i18n_106; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that deletes a table column.\n * @meaning kendo.editor.deleteColumn\n */\n const MSG_EXTERNAL_7009319757848972360$$DIST_FESM2015_INDEX_JS_107 = goog.getMsg(\"Delete column\");\n i18n_106 = MSG_EXTERNAL_7009319757848972360$$DIST_FESM2015_INDEX_JS_107;\n }\n else {\n i18n_106 = $localize `:kendo.editor.deleteColumn|The title of the tool that deletes a table column.␟233fbf121ca8b9ea127211a83ab72f0daf01593a␟7009319757848972360:Delete column`;\n } let i18n_108; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that deletes a table row.\n * @meaning kendo.editor.deleteRow\n */\n const MSG_EXTERNAL_8410650025259601548$$DIST_FESM2015_INDEX_JS_109 = goog.getMsg(\"Delete row\");\n i18n_108 = MSG_EXTERNAL_8410650025259601548$$DIST_FESM2015_INDEX_JS_109;\n }\n else {\n i18n_108 = $localize `:kendo.editor.deleteRow|The title of the tool that deletes a table row.␟a7bf50c04d3769d4bde61bab60e6aaa0e982a488␟8410650025259601548:Delete row`;\n } let i18n_110; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the tool that deletes a table.\n * @meaning kendo.editor.deleteTable\n */\n const MSG_EXTERNAL_3609415533235721295$$DIST_FESM2015_INDEX_JS_111 = goog.getMsg(\"Delete table\");\n i18n_110 = MSG_EXTERNAL_3609415533235721295$$DIST_FESM2015_INDEX_JS_111;\n }\n else {\n i18n_110 = $localize `:kendo.editor.deleteTable|The title of the tool that deletes a table.␟2694410604d01084a49e5225a60fbe3eda3af5cc␟3609415533235721295:Delete table`;\n } return [[\"kendoEditorLocalizedMessages\", \"\", \"alignCenter\", i18n_6, \"alignJustify\", i18n_8, \"alignLeft\", i18n_10, \"alignRight\", i18n_12, \"backColor\", i18n_14, \"blockquote\", i18n_16, \"bold\", i18n_18, \"cleanFormatting\", i18n_20, \"createLink\", i18n_22, \"dialogApply\", i18n_24, \"dialogCancel\", i18n_26, \"dialogInsert\", i18n_28, \"dialogUpdate\", i18n_30, \"fileText\", i18n_32, \"fileTitle\", i18n_34, \"fileWebAddress\", i18n_36, \"fontFamily\", i18n_38, \"fontSize\", i18n_40, \"foreColor\", i18n_42, \"format\", i18n_44, \"imageAltText\", i18n_46, \"imageHeight\", i18n_48, \"imageWebAddress\", i18n_50, \"imageWidth\", i18n_52, \"indent\", i18n_54, \"insertFile\", i18n_56, \"insertImage\", i18n_58, \"insertOrderedList\", i18n_60, \"insertUnorderedList\", i18n_62, \"italic\", i18n_64, \"linkOpenInNewWindow\", i18n_66, \"linkText\", i18n_68, \"linkTitle\", i18n_70, \"linkWebAddress\", i18n_72, \"outdent\", i18n_74, \"print\", i18n_76, \"redo\", i18n_78, \"selectAll\", i18n_80, \"strikethrough\", i18n_82, \"subscript\", i18n_84, \"superscript\", i18n_86, \"underline\", i18n_88, \"unlink\", i18n_90, \"undo\", i18n_92, \"viewSource\", i18n_94, \"insertTable\", i18n_96, \"addColumnBefore\", i18n_98, \"addColumnAfter\", i18n_100, \"addRowBefore\", i18n_102, \"addRowAfter\", i18n_104, \"deleteColumn\", i18n_106, \"deleteRow\", i18n_108, \"deleteTable\", i18n_110], [3, \"overflow\", \"tabindex\", 4, \"ngIf\"], [\"class\", \"k-editor-content\", 4, \"ngIf\"], [\"dialogsContainer\", \"\"], [3, \"overflow\", \"tabindex\"], [\"defaultToolbar\", \"\"], [\"kendoEditorBoldButton\", \"\"], [\"kendoEditorItalicButton\", \"\"], [\"kendoEditorUnderlineButton\", \"\"], [\"kendoEditorFormat\", \"\"], [\"kendoEditorAlignLeftButton\", \"\"], [\"kendoEditorAlignCenterButton\", \"\"], [\"kendoEditorAlignRightButton\", \"\"], [\"kendoEditorAlignJustifyButton\", \"\"], [\"kendoEditorInsertUnorderedListButton\", \"\"], [\"kendoEditorInsertOrderedListButton\", \"\"], [\"kendoEditorIndentButton\", \"\"], [\"kendoEditorOutdentButton\", \"\"], [\"kendoEditorCreateLinkButton\", \"\"], [\"kendoEditorUnlinkButton\", \"\"], [\"kendoEditorInsertImageButton\", \"\"], [1, \"k-editor-content\"], [\"content\", \"\"], [\"srcdoc\", ɵngcc0.ɵɵtrustConstantHtml ``, \"frameborder\", \"0\", 1, \"k-iframe\", 3, \"load\"]]; }, template: function EditorComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef(_c112);\n ɵngcc0.ɵɵelementContainer(0, 0);\n ɵngcc0.ɵɵprojection(1);\n ɵngcc0.ɵɵtemplate(2, EditorComponent_kendo_toolbar_2_Template, 21, 2, \"kendo-toolbar\", 1);\n ɵngcc0.ɵɵtemplate(3, EditorComponent_div_3_Template, 2, 1, \"div\", 2);\n ɵngcc0.ɵɵtemplate(4, EditorComponent_div_4_Template, 3, 0, \"div\", 2);\n ɵngcc0.ɵɵelementContainer(5, null, 3);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.userToolBarElement);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.iframe);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.iframe);\n } }, directives: function () { return [LocalizedMessagesDirective, ɵngcc4.NgIf, ɵngcc7.ToolBarComponent, ɵngcc7.ToolBarButtonGroupComponent, ɵngcc7.ToolBarButtonComponent, EditorBoldButtonDirective, EditorItalicButtonDirective, EditorUnderlineButtonDirective, EditorFormatComponent, EditorAlignLeftButtonDirective, EditorAlignCenterButtonDirective, EditorAlignRightButtonDirective, EditorAlignJustifyButtonDirective, EditorInsertUnorderedListButtonDirective, EditorInsertOrderedListButtonDirective, EditorIndentButtonDirective, EditorOutdentButtonDirective, EditorCreateLinkButtonDirective, EditorUnlinkButtonDirective, EditorInsertImageButtonDirective]; }, styles: [\".k-editor-content > .ProseMirror {\\n height: 100%;\\n width: 100%;\\n box-sizing: border-box;\\n outline: none;\\n overflow: auto;\\n }\\n\\n .k-iframe[_ngcontent-%COMP%] {\\n width: 100%;\\n height: 100%;\\n display: block;\\n }\"] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], EditorComponent.prototype, \"value\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], EditorComponent.prototype, \"disabled\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], EditorComponent.prototype, \"readonly\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], EditorComponent.prototype, \"iframe\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], EditorComponent.prototype, \"applyToWord\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Schema),\n __metadata(\"design:paramtypes\", [Schema])\n], EditorComponent.prototype, \"schema\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Function])\n], EditorComponent.prototype, \"plugins\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], EditorComponent.prototype, \"placeholder\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], EditorComponent.prototype, \"preserveWhitespace\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], EditorComponent.prototype, \"pasteCleanupSettings\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], EditorComponent.prototype, \"resizable\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], EditorComponent.prototype, \"valueChange\", void 0);\n__decorate([\n Output('focus'),\n __metadata(\"design:type\", EventEmitter)\n], EditorComponent.prototype, \"onFocus\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], EditorComponent.prototype, \"paste\", void 0);\n__decorate([\n Output('blur'),\n __metadata(\"design:type\", EventEmitter)\n], EditorComponent.prototype, \"onBlur\", void 0);\n__decorate([\n HostBinding('class.k-editor'),\n __metadata(\"design:type\", Boolean)\n], EditorComponent.prototype, \"hostClass\", void 0);\n__decorate([\n HostBinding('class.k-editor-resizable'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], EditorComponent.prototype, \"resizableClass\", null);\n__decorate([\n HostBinding('class.k-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], EditorComponent.prototype, \"isDisabled\", null);\n__decorate([\n HostBinding('class.k-readonly'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], EditorComponent.prototype, \"isReadonly\", null);\n__decorate([\n HostBinding('class.k-ie'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], EditorComponent.prototype, \"isIE\", null);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], EditorComponent.prototype, \"dir\", null);\n__decorate([\n HostBinding('attr.ariaDisabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], EditorComponent.prototype, \"ariaDisabled\", null);\n__decorate([\n HostBinding('style.minWidth'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], EditorComponent.prototype, \"minWidth\", null);\n__decorate([\n HostBinding('style.maxWidth'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], EditorComponent.prototype, \"maxWidth\", null);\n__decorate([\n HostBinding('style.minHeight'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], EditorComponent.prototype, \"minHeight\", null);\n__decorate([\n HostBinding('style.maxHeight'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], EditorComponent.prototype, \"maxHeight\", null);\n__decorate([\n ContentChild(ToolBarComponent, { static: false }),\n __metadata(\"design:type\", ToolBarComponent)\n], EditorComponent.prototype, \"userToolBarComponent\", void 0);\n__decorate([\n ContentChild(ToolBarComponent, { read: ElementRef, static: false }),\n __metadata(\"design:type\", ElementRef)\n], EditorComponent.prototype, \"userToolBarElement\", void 0);\n__decorate([\n ViewChild('dialogsContainer', { read: ViewContainerRef, static: true }),\n __metadata(\"design:type\", ViewContainerRef)\n], EditorComponent.prototype, \"dialogContainer\", void 0);\n__decorate([\n ViewChild('content', { read: ViewContainerRef, static: false }),\n __metadata(\"design:type\", ViewContainerRef)\n], EditorComponent.prototype, \"container\", void 0);\n__decorate([\n ViewChild('defaultToolbar', { read: ElementRef, static: false }),\n __metadata(\"design:type\", ElementRef)\n], EditorComponent.prototype, \"defaultToolbar\", void 0);\n__decorate([\n ViewChild('defaultToolbar', { read: ToolBarComponent, static: false }),\n __metadata(\"design:type\", ToolBarComponent)\n], EditorComponent.prototype, \"defaultToolbarComponent\", void 0);\nEditorComponent = EditorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [DialogService,\n LocalizationService,\n ChangeDetectorRef,\n NgZone,\n ElementRef,\n EditorToolsService])\n], EditorComponent);\n\n/**\n * @hidden\n */\nlet FormatDropDownListComponent = class FormatDropDownListComponent {\n /**\n * @hidden\n */\n constructor() {\n this.valueChange = new EventEmitter();\n }\n onValueChange(tag) {\n this.valueChange.emit(tag);\n }\n focus() {\n this.dropDownList.focus();\n }\n};\nFormatDropDownListComponent.ɵfac = function FormatDropDownListComponent_Factory(t) { return new (t || FormatDropDownListComponent)(); };\nFormatDropDownListComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: FormatDropDownListComponent, selectors: [[\"kendo-editor-format-dropdownlist\"]], viewQuery: function FormatDropDownListComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c114, 7);\n ɵngcc0.ɵɵviewQuery(_c114, 7, DropDownListComponent);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.element = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.dropDownList = _t.first);\n } }, inputs: { data: \"data\", value: \"value\", defaultItem: \"defaultItem\", itemDisabled: \"itemDisabled\", title: \"title\", disabled: \"disabled\", tabindex: \"tabindex\" }, outputs: { valueChange: \"valueChange\" }, decls: 3, vars: 10, consts: [[\"kendoEditorDropDownTool\", \"\", 3, \"defaultItem\", \"textField\", \"valueField\", \"data\", \"value\", \"valuePrimitive\", \"itemDisabled\", \"disabled\", \"tabindex\", \"valueChange\"], [\"element\", \"\"], [\"kendoDropDownListItemTemplate\", \"\"], [3, \"ngSwitch\"], [\"style\", \"display: block; font-size: 2em; margin-left: 0; font-weight: bold;\", 4, \"ngSwitchCase\"], [\"style\", \"display: block; font-size: 1.5em; margin-left: 0; font-weight: bold;\", 4, \"ngSwitchCase\"], [\"style\", \"display: block; font-size: 1.17em; margin-left: 0; font-weight: bold;\", 4, \"ngSwitchCase\"], [\"style\", \"display: block; font-size: 1em; margin-left: 0; font-weight: bold;\", 4, \"ngSwitchCase\"], [\"style\", \"display: block; font-size: .83em; margin-left: 0; font-weight: bold;\", 4, \"ngSwitchCase\"], [\"style\", \"display: block; font-size: .67em; margin-left: 0; font-weight: bold;\", 4, \"ngSwitchCase\"], [\"style\", \"display: block; margin-left: 0;\", 4, \"ngSwitchCase\"], [4, \"ngSwitchDefault\"], [2, \"display\", \"block\", \"font-size\", \"2em\", \"margin-left\", \"0\", \"font-weight\", \"bold\"], [2, \"display\", \"block\", \"font-size\", \"1.5em\", \"margin-left\", \"0\", \"font-weight\", \"bold\"], [2, \"display\", \"block\", \"font-size\", \"1.17em\", \"margin-left\", \"0\", \"font-weight\", \"bold\"], [2, \"display\", \"block\", \"font-size\", \"1em\", \"margin-left\", \"0\", \"font-weight\", \"bold\"], [2, \"display\", \"block\", \"font-size\", \".83em\", \"margin-left\", \"0\", \"font-weight\", \"bold\"], [2, \"display\", \"block\", \"font-size\", \".67em\", \"margin-left\", \"0\", \"font-weight\", \"bold\"], [2, \"display\", \"block\", \"margin-left\", \"0\"]], template: function FormatDropDownListComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-dropdownlist\", 0, 1);\n ɵngcc0.ɵɵlistener(\"valueChange\", function FormatDropDownListComponent_Template_kendo_dropdownlist_valueChange_0_listener($event) { return ctx.value = $event; })(\"valueChange\", function FormatDropDownListComponent_Template_kendo_dropdownlist_valueChange_0_listener($event) { return ctx.onValueChange($event); });\n ɵngcc0.ɵɵtemplate(2, FormatDropDownListComponent_ng_template_2_Template, 9, 8, \"ng-template\", 2);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"defaultItem\", ctx.defaultItem)(\"textField\", \"text\")(\"valueField\", \"tag\")(\"data\", ctx.data)(\"value\", ctx.value)(\"valuePrimitive\", true)(\"itemDisabled\", ctx.itemDisabled)(\"disabled\", ctx.disabled)(\"tabindex\", ctx.tabindex);\n ɵngcc0.ɵɵattribute(\"title\", ctx.title);\n } }, directives: function () { return [ɵngcc8.DropDownListComponent, DropDownToolDirective, ɵngcc8.ItemTemplateDirective, ɵngcc4.NgSwitch, ɵngcc4.NgSwitchCase, ɵngcc4.NgSwitchDefault]; }, styles: [_c118] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], FormatDropDownListComponent.prototype, \"data\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FormatDropDownListComponent.prototype, \"value\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], FormatDropDownListComponent.prototype, \"defaultItem\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], FormatDropDownListComponent.prototype, \"itemDisabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FormatDropDownListComponent.prototype, \"title\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], FormatDropDownListComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], FormatDropDownListComponent.prototype, \"tabindex\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], FormatDropDownListComponent.prototype, \"valueChange\", void 0);\n__decorate([\n ViewChild('element', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], FormatDropDownListComponent.prototype, \"element\", void 0);\n__decorate([\n ViewChild('element', { read: DropDownListComponent, static: true }),\n __metadata(\"design:type\", DropDownListComponent)\n], FormatDropDownListComponent.prototype, \"dropDownList\", void 0);\n\n/**\n * @hidden\n */\nlet FormatDialogComponent = class FormatDialogComponent extends DialogContentBase {\n constructor(dialog, localization) {\n super(dialog);\n this.dialog = dialog;\n this.localization = localization;\n this.data = [];\n }\n ngAfterViewInit() {\n Promise.resolve(null).then(() => {\n this.formatDropDownList.dropDownList.focus();\n });\n }\n onCancelAction() {\n this.dialog.close();\n }\n onConfirmAction() {\n if (this.value) {\n this.editor.exec('format', { tag: this.value });\n }\n this.dialog.close();\n }\n setData(args) {\n this.editor = args.editor;\n this.data = args.data;\n this.defaultItem = args.defaultItem;\n this.value = args.value;\n this.itemDisabled = args.itemDisabled;\n }\n textFor(key) {\n return this.localization.get(key);\n }\n};\nFormatDialogComponent.ɵfac = function FormatDialogComponent_Factory(t) { return new (t || FormatDialogComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.DialogRef), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService)); };\nFormatDialogComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: FormatDialogComponent, selectors: [[\"ng-component\"]], viewQuery: function FormatDialogComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c115, 7, FormatDropDownListComponent);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.formatDropDownList = _t.first);\n } }, inputs: { editor: \"editor\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 12, vars: 8, consts: [[3, \"close\"], [1, \"k-editor-dialog\"], [1, \"k-editor-dialog\", \"k-popup-edit-form\", \"k-window-content\", \"k-content\"], [1, \"k-edit-form-container\", \"k-window-content\", 2, \"text-align\", \"center\"], [3, \"defaultItem\", \"data\", \"value\", \"itemDisabled\", \"valueChange\"], [\"formatDropDownList\", \"\"], [\"kendoButton\", \"\", 3, \"click\"], [\"kendoButton\", \"\", 3, \"primary\", \"click\"]], template: function FormatDialogComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-dialog-titlebar\", 0);\n ɵngcc0.ɵɵlistener(\"close\", function FormatDialogComponent_Template_kendo_dialog_titlebar_close_0_listener() { return ctx.onCancelAction(); });\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(2, \"div\", 1)(3, \"div\", 2)(4, \"div\", 3)(5, \"kendo-editor-format-dropdownlist\", 4, 5);\n ɵngcc0.ɵɵlistener(\"valueChange\", function FormatDialogComponent_Template_kendo_editor_format_dropdownlist_valueChange_5_listener($event) { return ctx.value = $event; });\n ɵngcc0.ɵɵelementEnd()()()();\n ɵngcc0.ɵɵelementStart(7, \"kendo-dialog-actions\")(8, \"button\", 6);\n ɵngcc0.ɵɵlistener(\"click\", function FormatDialogComponent_Template_button_click_8_listener() { return ctx.onCancelAction(); });\n ɵngcc0.ɵɵtext(9);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(10, \"button\", 7);\n ɵngcc0.ɵɵlistener(\"click\", function FormatDialogComponent_Template_button_click_10_listener() { return ctx.onConfirmAction(); });\n ɵngcc0.ɵɵtext(11);\n ɵngcc0.ɵɵelementEnd()();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx.textFor(\"format\"), \" \");\n ɵngcc0.ɵɵadvance(4);\n ɵngcc0.ɵɵproperty(\"defaultItem\", ctx.defaultItem)(\"data\", ctx.data)(\"value\", ctx.value)(\"itemDisabled\", ctx.itemDisabled);\n ɵngcc0.ɵɵadvance(4);\n ɵngcc0.ɵɵtextInterpolate(ctx.textFor(\"dialogCancel\"));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"primary\", true);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx.textFor(\"dialogApply\"));\n } }, directives: [ɵngcc1.DialogTitleBarComponent, FormatDropDownListComponent, ɵngcc1.DialogActionsComponent, ɵngcc2.ButtonDirective], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", EditorComponent)\n], FormatDialogComponent.prototype, \"editor\", void 0);\n__decorate([\n ViewChild('formatDropDownList', { read: FormatDropDownListComponent, static: true }),\n __metadata(\"design:type\", FormatDropDownListComponent)\n], FormatDialogComponent.prototype, \"formatDropDownList\", void 0);\nFormatDialogComponent = __decorate([ __metadata(\"design:paramtypes\", [DialogRef,\n EditorLocalizationService])\n], FormatDialogComponent);\n\n/**\n * @hidden\n */\nlet ColorPickerDialogComponent = class ColorPickerDialogComponent extends DialogContentBase {\n constructor(dialog, localization) {\n super(dialog);\n this.dialog = dialog;\n this.localization = localization;\n }\n ngAfterViewInit() {\n Promise.resolve(null).then(() => {\n this.colorPicker.focus();\n });\n }\n handleActiveColorClick(event) {\n event.preventOpen();\n this.value = event.color;\n }\n onCancelAction() {\n this.dialog.close();\n }\n onConfirmAction() {\n if (this.value) {\n this.editor.exec(this.editorCommand, this.value);\n }\n this.dialog.close();\n this.editor.view.focus();\n }\n setData(args) {\n this.editor = args.editor;\n this.value = args.value;\n this.editorCommand = args.editorCommand;\n this.paletteSettings = args.paletteSettings;\n this.icon = args.icon;\n this.views = args.view ? [args.view] : args.views;\n }\n textFor(key) {\n return this.localization.get(key);\n }\n};\nColorPickerDialogComponent.ɵfac = function ColorPickerDialogComponent_Factory(t) { return new (t || ColorPickerDialogComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.DialogRef), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService)); };\nColorPickerDialogComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColorPickerDialogComponent, selectors: [[\"ng-component\"]], viewQuery: function ColorPickerDialogComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c116, 7, ColorPickerComponent);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.colorPicker = _t.first);\n } }, inputs: { editor: \"editor\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 12, vars: 10, consts: [[3, \"close\"], [1, \"k-editor-dialog\"], [1, \"k-editor-dialog\", \"k-popup-edit-form\", \"k-window-content\", \"k-content\"], [1, \"k-edit-form-container\", \"k-window-content\", 2, \"text-align\", \"center\"], [3, \"views\", \"format\", \"icon\", \"value\", \"paletteSettings\", \"valueChange\", \"activeColorClick\"], [\"colorpicker\", \"\"], [\"kendoButton\", \"\", 3, \"click\"], [\"kendoButton\", \"\", 3, \"primary\", \"click\"]], template: function ColorPickerDialogComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-dialog-titlebar\", 0);\n ɵngcc0.ɵɵlistener(\"close\", function ColorPickerDialogComponent_Template_kendo_dialog_titlebar_close_0_listener() { return ctx.onCancelAction(); });\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(2, \"div\", 1)(3, \"div\", 2)(4, \"div\", 3)(5, \"kendo-colorpicker\", 4, 5);\n ɵngcc0.ɵɵlistener(\"valueChange\", function ColorPickerDialogComponent_Template_kendo_colorpicker_valueChange_5_listener($event) { return ctx.value = $event; })(\"activeColorClick\", function ColorPickerDialogComponent_Template_kendo_colorpicker_activeColorClick_5_listener($event) { return ctx.handleActiveColorClick($event); });\n ɵngcc0.ɵɵelementEnd()()()();\n ɵngcc0.ɵɵelementStart(7, \"kendo-dialog-actions\")(8, \"button\", 6);\n ɵngcc0.ɵɵlistener(\"click\", function ColorPickerDialogComponent_Template_button_click_8_listener() { return ctx.onCancelAction(); });\n ɵngcc0.ɵɵtext(9);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(10, \"button\", 7);\n ɵngcc0.ɵɵlistener(\"click\", function ColorPickerDialogComponent_Template_button_click_10_listener() { return ctx.onConfirmAction(); });\n ɵngcc0.ɵɵtext(11);\n ɵngcc0.ɵɵelementEnd()();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx.textFor(ctx.editorCommand), \" \");\n ɵngcc0.ɵɵadvance(4);\n ɵngcc0.ɵɵproperty(\"views\", ctx.views)(\"format\", \"hex\")(\"icon\", ctx.icon)(\"value\", ctx.value)(\"paletteSettings\", ctx.paletteSettings);\n ɵngcc0.ɵɵattribute(\"title\", ctx.title);\n ɵngcc0.ɵɵadvance(4);\n ɵngcc0.ɵɵtextInterpolate(ctx.textFor(\"dialogCancel\"));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"primary\", true);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx.textFor(\"dialogApply\"));\n } }, directives: [ɵngcc1.DialogTitleBarComponent, ɵngcc5.ColorPickerComponent, ɵngcc1.DialogActionsComponent, ɵngcc2.ButtonDirective], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", EditorComponent)\n], ColorPickerDialogComponent.prototype, \"editor\", void 0);\n__decorate([\n ViewChild('colorpicker', { read: ColorPickerComponent, static: true }),\n __metadata(\"design:type\", ColorPickerComponent)\n], ColorPickerDialogComponent.prototype, \"colorPicker\", void 0);\nColorPickerDialogComponent = __decorate([ __metadata(\"design:paramtypes\", [DialogRef,\n EditorLocalizationService])\n], ColorPickerDialogComponent);\n\n/**\n * @hidden\n */\nlet FontFamilyDropDownListComponent = class FontFamilyDropDownListComponent {\n /**\n * @hidden\n */\n constructor() {\n this.valueChange = new EventEmitter();\n }\n onValueChange(tag) {\n this.valueChange.emit(tag);\n }\n focus() {\n this.dropDownList.focus();\n }\n};\nFontFamilyDropDownListComponent.ɵfac = function FontFamilyDropDownListComponent_Factory(t) { return new (t || FontFamilyDropDownListComponent)(); };\nFontFamilyDropDownListComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: FontFamilyDropDownListComponent, selectors: [[\"kendo-editor-fontfamily-dropdownlist\"]], viewQuery: function FontFamilyDropDownListComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c114, 7);\n ɵngcc0.ɵɵviewQuery(_c114, 7, DropDownListComponent);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.element = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.dropDownList = _t.first);\n } }, inputs: { data: \"data\", value: \"value\", defaultItem: \"defaultItem\", itemDisabled: \"itemDisabled\", title: \"title\", disabled: \"disabled\", tabindex: \"tabindex\" }, outputs: { valueChange: \"valueChange\" }, decls: 3, vars: 10, consts: [[\"kendoEditorDropDownTool\", \"\", 3, \"defaultItem\", \"textField\", \"valueField\", \"data\", \"value\", \"valuePrimitive\", \"itemDisabled\", \"disabled\", \"tabindex\", \"valueChange\"], [\"element\", \"\"], [\"kendoDropDownListItemTemplate\", \"\"], [3, \"ngStyle\"]], template: function FontFamilyDropDownListComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-dropdownlist\", 0, 1);\n ɵngcc0.ɵɵlistener(\"valueChange\", function FontFamilyDropDownListComponent_Template_kendo_dropdownlist_valueChange_0_listener($event) { return ctx.value = $event; })(\"valueChange\", function FontFamilyDropDownListComponent_Template_kendo_dropdownlist_valueChange_0_listener($event) { return ctx.onValueChange($event); });\n ɵngcc0.ɵɵtemplate(2, FontFamilyDropDownListComponent_ng_template_2_Template, 2, 4, \"ng-template\", 2);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"defaultItem\", ctx.defaultItem)(\"textField\", \"text\")(\"valueField\", \"fontName\")(\"data\", ctx.data)(\"value\", ctx.value)(\"valuePrimitive\", true)(\"itemDisabled\", ctx.itemDisabled)(\"disabled\", ctx.disabled)(\"tabindex\", ctx.tabindex);\n ɵngcc0.ɵɵattribute(\"title\", ctx.title);\n } }, directives: function () { return [ɵngcc8.DropDownListComponent, DropDownToolDirective, ɵngcc8.ItemTemplateDirective, ɵngcc4.NgStyle]; }, styles: [_c118] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], FontFamilyDropDownListComponent.prototype, \"data\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FontFamilyDropDownListComponent.prototype, \"value\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], FontFamilyDropDownListComponent.prototype, \"defaultItem\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], FontFamilyDropDownListComponent.prototype, \"itemDisabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FontFamilyDropDownListComponent.prototype, \"title\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], FontFamilyDropDownListComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], FontFamilyDropDownListComponent.prototype, \"tabindex\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], FontFamilyDropDownListComponent.prototype, \"valueChange\", void 0);\n__decorate([\n ViewChild('element', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], FontFamilyDropDownListComponent.prototype, \"element\", void 0);\n__decorate([\n ViewChild('element', { read: DropDownListComponent, static: true }),\n __metadata(\"design:type\", DropDownListComponent)\n], FontFamilyDropDownListComponent.prototype, \"dropDownList\", void 0);\n\n/**\n * @hidden\n */\nlet FontFamilyDialogComponent = class FontFamilyDialogComponent extends DialogContentBase {\n constructor(dialog, localization) {\n super(dialog);\n this.dialog = dialog;\n this.localization = localization;\n this.data = [];\n }\n ngAfterViewInit() {\n Promise.resolve(null).then(() => {\n this.fontFamilyDropDownList.dropDownList.focus();\n });\n }\n onCancelAction() {\n this.dialog.close();\n }\n onConfirmAction() {\n if (this.value) {\n this.editor.exec('fontFamily', this.value);\n }\n this.dialog.close();\n }\n setData(args) {\n this.editor = args.editor;\n this.data = args.data;\n this.defaultItem = args.defaultItem;\n this.value = args.value;\n this.itemDisabled = args.itemDisabled;\n }\n textFor(key) {\n return this.localization.get(key);\n }\n};\nFontFamilyDialogComponent.ɵfac = function FontFamilyDialogComponent_Factory(t) { return new (t || FontFamilyDialogComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.DialogRef), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService)); };\nFontFamilyDialogComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: FontFamilyDialogComponent, selectors: [[\"ng-component\"]], viewQuery: function FontFamilyDialogComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c119, 7, FontFamilyDropDownListComponent);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.fontFamilyDropDownList = _t.first);\n } }, inputs: { editor: \"editor\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 12, vars: 8, consts: [[3, \"close\"], [1, \"k-editor-dialog\"], [1, \"k-editor-dialog\", \"k-popup-edit-form\", \"k-window-content\", \"k-content\"], [1, \"k-edit-form-container\", \"k-window-content\", 2, \"text-align\", \"center\"], [3, \"defaultItem\", \"data\", \"value\", \"itemDisabled\", \"valueChange\"], [\"fontFamilyDropDownList\", \"\"], [\"kendoButton\", \"\", 3, \"click\"], [\"kendoButton\", \"\", 3, \"primary\", \"click\"]], template: function FontFamilyDialogComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-dialog-titlebar\", 0);\n ɵngcc0.ɵɵlistener(\"close\", function FontFamilyDialogComponent_Template_kendo_dialog_titlebar_close_0_listener() { return ctx.onCancelAction(); });\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(2, \"div\", 1)(3, \"div\", 2)(4, \"div\", 3)(5, \"kendo-editor-fontfamily-dropdownlist\", 4, 5);\n ɵngcc0.ɵɵlistener(\"valueChange\", function FontFamilyDialogComponent_Template_kendo_editor_fontfamily_dropdownlist_valueChange_5_listener($event) { return ctx.value = $event; });\n ɵngcc0.ɵɵelementEnd()()()();\n ɵngcc0.ɵɵelementStart(7, \"kendo-dialog-actions\")(8, \"button\", 6);\n ɵngcc0.ɵɵlistener(\"click\", function FontFamilyDialogComponent_Template_button_click_8_listener() { return ctx.onCancelAction(); });\n ɵngcc0.ɵɵtext(9);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(10, \"button\", 7);\n ɵngcc0.ɵɵlistener(\"click\", function FontFamilyDialogComponent_Template_button_click_10_listener() { return ctx.onConfirmAction(); });\n ɵngcc0.ɵɵtext(11);\n ɵngcc0.ɵɵelementEnd()();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx.textFor(\"fontFamily\"), \" \");\n ɵngcc0.ɵɵadvance(4);\n ɵngcc0.ɵɵproperty(\"defaultItem\", ctx.defaultItem)(\"data\", ctx.data)(\"value\", ctx.value)(\"itemDisabled\", ctx.itemDisabled);\n ɵngcc0.ɵɵadvance(4);\n ɵngcc0.ɵɵtextInterpolate(ctx.textFor(\"dialogCancel\"));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"primary\", true);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx.textFor(\"dialogApply\"));\n } }, directives: [ɵngcc1.DialogTitleBarComponent, FontFamilyDropDownListComponent, ɵngcc1.DialogActionsComponent, ɵngcc2.ButtonDirective], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", EditorComponent)\n], FontFamilyDialogComponent.prototype, \"editor\", void 0);\n__decorate([\n ViewChild('fontFamilyDropDownList', { read: FontFamilyDropDownListComponent, static: true }),\n __metadata(\"design:type\", FontFamilyDropDownListComponent)\n], FontFamilyDialogComponent.prototype, \"fontFamilyDropDownList\", void 0);\nFontFamilyDialogComponent = __decorate([ __metadata(\"design:paramtypes\", [DialogRef,\n EditorLocalizationService])\n], FontFamilyDialogComponent);\n\n/**\n * @hidden\n */\nlet InsertTableDialogComponent = class InsertTableDialogComponent extends DialogContentBase {\n constructor(dialog, localization) {\n super(dialog);\n this.dialog = dialog;\n this.localization = localization;\n }\n onCancelAction() {\n this.dialog.close();\n this.editor.view.focus();\n }\n onCellClick(args) {\n this.dialog.close();\n this.editor.exec(\"insertTable\", args);\n this.editor.view.focus();\n }\n setData(args) {\n this.editor = args.editor;\n }\n textFor(key) {\n return this.localization.get(key);\n }\n};\nInsertTableDialogComponent.ɵfac = function InsertTableDialogComponent_Factory(t) { return new (t || InsertTableDialogComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.DialogRef), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService)); };\nInsertTableDialogComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: InsertTableDialogComponent, selectors: [[\"ng-component\"]], inputs: { editor: \"editor\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 9, vars: 2, consts: [[3, \"close\"], [1, \"k-editor-dialog\"], [1, \"k-editor-dialog\", \"k-popup-edit-form\", \"k-window-content\", \"k-content\"], [1, \"k-ct-popup\", \"k-window-content\", 2, \"text-align\", \"center\"], [3, \"cellClick\"], [\"kendoButton\", \"\", 3, \"click\"]], template: function InsertTableDialogComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-dialog-titlebar\", 0);\n ɵngcc0.ɵɵlistener(\"close\", function InsertTableDialogComponent_Template_kendo_dialog_titlebar_close_0_listener() { return ctx.onCancelAction(); });\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(2, \"div\", 1)(3, \"div\", 2)(4, \"div\", 3)(5, \"kendo-popup-table-grid\", 4);\n ɵngcc0.ɵɵlistener(\"cellClick\", function InsertTableDialogComponent_Template_kendo_popup_table_grid_cellClick_5_listener($event) { return ctx.onCellClick($event); });\n ɵngcc0.ɵɵelementEnd()()()();\n ɵngcc0.ɵɵelementStart(6, \"kendo-dialog-actions\")(7, \"button\", 5);\n ɵngcc0.ɵɵlistener(\"click\", function InsertTableDialogComponent_Template_button_click_7_listener() { return ctx.onCancelAction(); });\n ɵngcc0.ɵɵtext(8);\n ɵngcc0.ɵɵelementEnd()();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx.textFor(\"insertTable\"), \" \");\n ɵngcc0.ɵɵadvance(7);\n ɵngcc0.ɵɵtextInterpolate(ctx.textFor(\"dialogCancel\"));\n } }, directives: function () { return [ɵngcc1.DialogTitleBarComponent, PopupTableGridComponent, ɵngcc1.DialogActionsComponent, ɵngcc2.ButtonDirective]; }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", EditorComponent)\n], InsertTableDialogComponent.prototype, \"editor\", void 0);\nInsertTableDialogComponent = __decorate([ __metadata(\"design:paramtypes\", [DialogRef,\n EditorLocalizationService])\n], InsertTableDialogComponent);\n\nvar EditorFormatComponent_1;\n/**\n * A component which configures an existing `DropDownListComponent` as an Editor tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The component associates a `kendo-dropdownlist` with an Editor command that changes the format of a content block and\n * automatically defines the options of the drop-down list and sets its values.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorFormatComponent = EditorFormatComponent_1 = class EditorFormatComponent extends ToolBarToolComponent {\n constructor(editor, dialogService, localization, toolsService) {\n super();\n this.editor = editor;\n this.dialogService = dialogService;\n this.localization = localization;\n this.toolsService = toolsService;\n this.disabled = false;\n this.tabindex = -1;\n /**\n * Fires when the user updates the value of the drop-down list.\n */\n this.valueChange = new EventEmitter();\n this._data = [\n { text: 'Paragraph', tag: 'p' },\n { text: 'Heading 1', tag: 'h1' },\n { text: 'Heading 2', tag: 'h2' },\n { text: 'Heading 3', tag: 'h3' },\n { text: 'Heading 4', tag: 'h4' },\n { text: 'Heading 5', tag: 'h5' },\n { text: 'Heading 6', tag: 'h6' }\n ];\n }\n /**\n * Overrides the default format items list.\n */\n set data(formatItems) {\n this._data = formatItems || this._data;\n }\n get data() {\n return this._data;\n }\n ngOnInit() {\n this.itemDisabled = (itemArgs) => {\n if (!this.overflows && this.formatDropDownList && !this.formatDropDownList.dropDownList.isOpen) {\n return true; //disable all items in order to prevent navigation when DDL is closed\n }\n else {\n return itemArgs.dataItem.tag === null;\n }\n };\n setTimeout(() => {\n this.defaultItem = { text: this.title, tag: null };\n this.toolsService.needsCheck.next();\n });\n this.subs = this.editor.stateChange.subscribe(({ format }) => {\n const index = this.data.findIndex(item => item.tag === format.selected.tag);\n this.value = index !== -1 ? format.selected.tag : null;\n this.disabled = format.disabled;\n });\n }\n /**\n * @hidden\n */\n onValueChange(ev) {\n if (isPresent(ev)) {\n this.editor.exec('format', { tag: ev });\n this.editor.view.focus();\n this.valueChange.emit(this.data.find(d => d.tag === ev));\n }\n }\n ngOnDestroy() {\n if (this.subs) {\n this.subs.unsubscribe();\n }\n }\n get outerWidth() {\n const element = this.formatDropDownList.element;\n if (element) {\n return outerWidth(element.nativeElement);\n }\n }\n get title() {\n return this.localization.get('format');\n }\n /**\n * @hidden\n */\n openDialog() {\n const dialogSettings = {\n appendTo: this.editor.dialogContainer,\n content: FormatDialogComponent\n };\n this.editor.toolbar.toggle(false);\n const dialogContent = this.dialogService.open(dialogSettings).content.instance;\n dialogContent.setData({\n editor: this.editor,\n data: this.data,\n defaultItem: this.defaultItem,\n value: this.value,\n itemDisabled: this.itemDisabled\n });\n }\n /**\n * @hidden\n */\n canFocus() {\n return !this.disabled;\n }\n /**\n * @hidden\n */\n focus() {\n this.tabindex = 0;\n if (this.overflows) {\n this.formatButton.nativeElement.focus();\n }\n else {\n this.formatDropDownList.focus();\n }\n }\n /**\n * @hidden\n */\n handleKey() {\n this.tabindex = -1;\n return false;\n }\n};\nEditorFormatComponent.ɵfac = function EditorFormatComponent_Factory(t) { return new (t || EditorFormatComponent)(ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.DialogService), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorFormatComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: EditorFormatComponent, selectors: [[\"kendo-toolbar-dropdownlist\", \"kendoEditorFormat\", \"\"]], viewQuery: function EditorFormatComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c120, 7);\n ɵngcc0.ɵɵviewQuery(_c121, 7);\n ɵngcc0.ɵɵviewQuery(_c115, 5);\n ɵngcc0.ɵɵviewQuery(_c122, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.toolbarTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.popupTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.formatDropDownList = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.formatButton = _t.first);\n } }, inputs: { data: \"data\" }, outputs: { valueChange: \"valueChange\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: ToolBarToolComponent, useExisting: forwardRef(() => EditorFormatComponent_1) }]), ɵngcc0.ɵɵInheritDefinitionFeature], attrs: _c123, decls: 4, vars: 0, consts: [[\"toolbarTemplate\", \"\"], [\"popupTemplate\", \"\"], [3, \"defaultItem\", \"data\", \"value\", \"itemDisabled\", \"title\", \"disabled\", \"tabindex\", \"valueChange\"], [\"formatDropDownList\", \"\"], [\"type\", \"button\", \"kendoButton\", \"\", 1, \"k-overflow-button\", 3, \"tabindex\", \"icon\", \"disabled\", \"click\"], [\"formatButton\", \"\"]], template: function EditorFormatComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, EditorFormatComponent_ng_template_0_Template, 2, 7, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(2, EditorFormatComponent_ng_template_2_Template, 3, 6, \"ng-template\", null, 1, ɵngcc0.ɵɵtemplateRefExtractor);\n } }, directives: [FormatDropDownListComponent, ɵngcc2.ButtonDirective], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], EditorFormatComponent.prototype, \"data\", null);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], EditorFormatComponent.prototype, \"valueChange\", void 0);\n__decorate([\n ViewChild('toolbarTemplate', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], EditorFormatComponent.prototype, \"toolbarTemplate\", void 0);\n__decorate([\n ViewChild('popupTemplate', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], EditorFormatComponent.prototype, \"popupTemplate\", void 0);\n__decorate([\n ViewChild('formatDropDownList', { static: false }),\n __metadata(\"design:type\", FormatDropDownListComponent)\n], EditorFormatComponent.prototype, \"formatDropDownList\", void 0);\n__decorate([\n ViewChild('formatButton', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], EditorFormatComponent.prototype, \"formatButton\", void 0);\nEditorFormatComponent = EditorFormatComponent_1 = __decorate([ __param(0, Host()),\n __metadata(\"design:paramtypes\", [EditorComponent,\n DialogService,\n EditorLocalizationService,\n EditorToolsService])\n], EditorFormatComponent);\n\n/**\n * @hidden\n */\nlet FontSizeDropDownListComponent = class FontSizeDropDownListComponent {\n /**\n * @hidden\n */\n constructor() {\n this.valueChange = new EventEmitter();\n }\n onValueChange(size) {\n this.valueChange.emit(size);\n }\n focus() {\n this.dropDownList.focus();\n }\n};\nFontSizeDropDownListComponent.ɵfac = function FontSizeDropDownListComponent_Factory(t) { return new (t || FontSizeDropDownListComponent)(); };\nFontSizeDropDownListComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: FontSizeDropDownListComponent, selectors: [[\"kendo-editor-fontsize-dropdownlist\"]], viewQuery: function FontSizeDropDownListComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c114, 7);\n ɵngcc0.ɵɵviewQuery(_c114, 7, DropDownListComponent);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.element = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.dropDownList = _t.first);\n } }, inputs: { data: \"data\", value: \"value\", defaultItem: \"defaultItem\", itemDisabled: \"itemDisabled\", title: \"title\", disabled: \"disabled\", tabindex: \"tabindex\" }, outputs: { valueChange: \"valueChange\" }, decls: 2, vars: 10, consts: [[\"kendoEditorDropDownTool\", \"\", 3, \"defaultItem\", \"textField\", \"valueField\", \"data\", \"value\", \"valuePrimitive\", \"itemDisabled\", \"disabled\", \"tabindex\", \"valueChange\"], [\"element\", \"\"]], template: function FontSizeDropDownListComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-dropdownlist\", 0, 1);\n ɵngcc0.ɵɵlistener(\"valueChange\", function FontSizeDropDownListComponent_Template_kendo_dropdownlist_valueChange_0_listener($event) { return ctx.value = $event; })(\"valueChange\", function FontSizeDropDownListComponent_Template_kendo_dropdownlist_valueChange_0_listener($event) { return ctx.onValueChange($event); });\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"defaultItem\", ctx.defaultItem)(\"textField\", \"text\")(\"valueField\", \"size\")(\"data\", ctx.data)(\"value\", ctx.value)(\"valuePrimitive\", true)(\"itemDisabled\", ctx.itemDisabled)(\"disabled\", ctx.disabled)(\"tabindex\", ctx.tabindex);\n ɵngcc0.ɵɵattribute(\"title\", ctx.title);\n } }, directives: function () { return [ɵngcc8.DropDownListComponent, DropDownToolDirective]; }, styles: [_c118] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], FontSizeDropDownListComponent.prototype, \"data\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FontSizeDropDownListComponent.prototype, \"value\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], FontSizeDropDownListComponent.prototype, \"defaultItem\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], FontSizeDropDownListComponent.prototype, \"itemDisabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FontSizeDropDownListComponent.prototype, \"title\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], FontSizeDropDownListComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], FontSizeDropDownListComponent.prototype, \"tabindex\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], FontSizeDropDownListComponent.prototype, \"valueChange\", void 0);\n__decorate([\n ViewChild('element', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], FontSizeDropDownListComponent.prototype, \"element\", void 0);\n__decorate([\n ViewChild('element', { read: DropDownListComponent, static: true }),\n __metadata(\"design:type\", DropDownListComponent)\n], FontSizeDropDownListComponent.prototype, \"dropDownList\", void 0);\n\n/**\n * @hidden\n */\nlet FontSizeDialogComponent = class FontSizeDialogComponent extends DialogContentBase {\n constructor(dialog, localization) {\n super(dialog);\n this.dialog = dialog;\n this.localization = localization;\n this.data = [];\n }\n ngAfterViewInit() {\n Promise.resolve(null).then(() => {\n this.fontSizeDropDownList.dropDownList.focus();\n });\n }\n onCancelAction() {\n this.dialog.close();\n }\n onConfirmAction() {\n if (this.value) {\n this.editor.exec('fontSize', this.value);\n }\n this.dialog.close();\n }\n setData(args) {\n this.editor = args.editor;\n this.data = args.data;\n this.defaultItem = args.defaultItem;\n this.value = args.value;\n this.itemDisabled = args.itemDisabled;\n }\n textFor(key) {\n return this.localization.get(key);\n }\n};\nFontSizeDialogComponent.ɵfac = function FontSizeDialogComponent_Factory(t) { return new (t || FontSizeDialogComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.DialogRef), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService)); };\nFontSizeDialogComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: FontSizeDialogComponent, selectors: [[\"ng-component\"]], viewQuery: function FontSizeDialogComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c124, 7, FontSizeDropDownListComponent);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.fontSizeDropDownList = _t.first);\n } }, inputs: { editor: \"editor\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 12, vars: 8, consts: [[3, \"close\"], [1, \"k-editor-dialog\"], [1, \"k-editor-dialog\", \"k-popup-edit-form\", \"k-window-content\", \"k-content\"], [1, \"k-edit-form-container\", \"k-window-content\", 2, \"text-align\", \"center\"], [3, \"defaultItem\", \"data\", \"value\", \"itemDisabled\", \"valueChange\"], [\"fontSizeDropDownList\", \"\"], [\"kendoButton\", \"\", 3, \"click\"], [\"kendoButton\", \"\", 3, \"primary\", \"click\"]], template: function FontSizeDialogComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-dialog-titlebar\", 0);\n ɵngcc0.ɵɵlistener(\"close\", function FontSizeDialogComponent_Template_kendo_dialog_titlebar_close_0_listener() { return ctx.onCancelAction(); });\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(2, \"div\", 1)(3, \"div\", 2)(4, \"div\", 3)(5, \"kendo-editor-fontsize-dropdownlist\", 4, 5);\n ɵngcc0.ɵɵlistener(\"valueChange\", function FontSizeDialogComponent_Template_kendo_editor_fontsize_dropdownlist_valueChange_5_listener($event) { return ctx.value = $event; });\n ɵngcc0.ɵɵelementEnd()()()();\n ɵngcc0.ɵɵelementStart(7, \"kendo-dialog-actions\")(8, \"button\", 6);\n ɵngcc0.ɵɵlistener(\"click\", function FontSizeDialogComponent_Template_button_click_8_listener() { return ctx.onCancelAction(); });\n ɵngcc0.ɵɵtext(9);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(10, \"button\", 7);\n ɵngcc0.ɵɵlistener(\"click\", function FontSizeDialogComponent_Template_button_click_10_listener() { return ctx.onConfirmAction(); });\n ɵngcc0.ɵɵtext(11);\n ɵngcc0.ɵɵelementEnd()();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx.textFor(\"fontSize\"), \" \");\n ɵngcc0.ɵɵadvance(4);\n ɵngcc0.ɵɵproperty(\"defaultItem\", ctx.defaultItem)(\"data\", ctx.data)(\"value\", ctx.value)(\"itemDisabled\", ctx.itemDisabled);\n ɵngcc0.ɵɵadvance(4);\n ɵngcc0.ɵɵtextInterpolate(ctx.textFor(\"dialogCancel\"));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"primary\", true);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx.textFor(\"dialogApply\"));\n } }, directives: [ɵngcc1.DialogTitleBarComponent, FontSizeDropDownListComponent, ɵngcc1.DialogActionsComponent, ɵngcc2.ButtonDirective], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", EditorComponent)\n], FontSizeDialogComponent.prototype, \"editor\", void 0);\n__decorate([\n ViewChild('fontSizeDropDownList', { read: FontSizeDropDownListComponent, static: true }),\n __metadata(\"design:type\", FontSizeDropDownListComponent)\n], FontSizeDialogComponent.prototype, \"fontSizeDropDownList\", void 0);\nFontSizeDialogComponent = __decorate([ __metadata(\"design:paramtypes\", [DialogRef,\n EditorLocalizationService])\n], FontSizeDialogComponent);\n\nvar EditorFontSizeComponent_1;\n/**\n * A component which configures an existing `DropDownListComponent` as an Editor tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The component associates a `kendo-dropdownlist` with an Editor command that changes the font size of a content block and\n * automatically defines the options of the drop-down list and sets its values.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorFontSizeComponent = EditorFontSizeComponent_1 = class EditorFontSizeComponent extends ToolBarToolComponent {\n constructor(editor, dialogService, localization, toolsService) {\n super();\n this.editor = editor;\n this.dialogService = dialogService;\n this.localization = localization;\n this.toolsService = toolsService;\n this.disabled = false;\n this.tabindex = -1;\n /**\n * Fires when the user updates the value of the drop-down list.\n */\n this.valueChange = new EventEmitter();\n this._data = [\n { text: '8px', size: 8 },\n { text: '10px', size: 10 },\n { text: '12px', size: 12 },\n { text: '14px', size: 14 },\n { text: '18px', size: 18 },\n { text: '24px', size: 24 },\n { text: '36px', size: 36 }\n ];\n }\n /**\n * Overrides the default font size list.\n */\n set data(sizes) {\n this._data = sizes || this._data;\n }\n get data() {\n return this._data;\n }\n ngOnInit() {\n this.itemDisabled = itemArgs => {\n if (!this.overflows && this.fontSizeDropDownList && !this.fontSizeDropDownList.dropDownList.isOpen) {\n return true; //disable all items in order to prevent navigation when DDL is closed\n }\n else {\n return itemArgs.dataItem.size === null;\n }\n };\n setTimeout(() => {\n this.defaultItem = { text: this.title, size: null };\n this.toolsService.needsCheck.next();\n });\n this.subs = this.editor.stateChange.subscribe(({ style }) => {\n // remove units(px, em, rem...)\n // string#match returns array\n this.value = (getUniqueStyleValues(style.selected, 'font-size').match(/\\d+/g) || [null])[0];\n this.disabled = style.disabled;\n });\n }\n /**\n * @hidden\n */\n onValueChange(ev) {\n if (isPresent(ev)) {\n this.editor.exec('fontSize', ev);\n this.editor.view.focus();\n this.valueChange.emit(this.data.find(d => d.size === parseInt(ev, 10)));\n }\n }\n ngOnDestroy() {\n if (this.subs) {\n this.subs.unsubscribe();\n }\n }\n get outerWidth() {\n if (this.element) {\n return outerWidth(this.element.nativeElement);\n }\n }\n get title() {\n return this.localization.get('fontSize');\n }\n /**\n * @hidden\n */\n openDialog() {\n const dialogSettings = {\n appendTo: this.editor.dialogContainer,\n content: FontSizeDialogComponent\n };\n this.editor.toolbar.toggle(false);\n const dialogContent = this.dialogService.open(dialogSettings).content.instance;\n dialogContent.setData({\n editor: this.editor,\n data: this.data,\n defaultItem: this.defaultItem,\n value: this.value,\n itemDisabled: this.itemDisabled\n });\n }\n /**\n * @hidden\n */\n canFocus() {\n return !this.disabled;\n }\n /**\n * @hidden\n */\n focus() {\n this.tabindex = 0;\n if (this.overflows) {\n this.fontSizeButton.nativeElement.focus();\n }\n else {\n this.fontSizeDropDownList.focus();\n }\n }\n /**\n * @hidden\n */\n handleKey() {\n this.tabindex = -1;\n return false;\n }\n};\nEditorFontSizeComponent.ɵfac = function EditorFontSizeComponent_Factory(t) { return new (t || EditorFontSizeComponent)(ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.DialogService), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorFontSizeComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: EditorFontSizeComponent, selectors: [[\"kendo-toolbar-dropdownlist\", \"kendoEditorFontSize\", \"\"]], viewQuery: function EditorFontSizeComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c120, 7);\n ɵngcc0.ɵɵviewQuery(_c121, 7);\n ɵngcc0.ɵɵviewQuery(_c114, 5);\n ɵngcc0.ɵɵviewQuery(_c114, 5, FontSizeDropDownListComponent);\n ɵngcc0.ɵɵviewQuery(_c125, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.toolbarTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.popupTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.element = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.fontSizeDropDownList = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.fontSizeButton = _t.first);\n } }, inputs: { data: \"data\" }, outputs: { valueChange: \"valueChange\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: ToolBarToolComponent, useExisting: forwardRef(() => EditorFontSizeComponent_1) }]), ɵngcc0.ɵɵInheritDefinitionFeature], attrs: _c126, decls: 4, vars: 0, consts: [[\"toolbarTemplate\", \"\"], [\"popupTemplate\", \"\"], [3, \"defaultItem\", \"data\", \"value\", \"itemDisabled\", \"title\", \"disabled\", \"tabindex\", \"valueChange\"], [\"element\", \"\"], [\"tabindex\", \"-1\", \"type\", \"button\", \"kendoButton\", \"\", 1, \"k-overflow-button\", 3, \"icon\", \"disabled\", \"tabindex\", \"click\"], [\"fontSizeButton\", \"\"]], template: function EditorFontSizeComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, EditorFontSizeComponent_ng_template_0_Template, 2, 7, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(2, EditorFontSizeComponent_ng_template_2_Template, 3, 5, \"ng-template\", null, 1, ɵngcc0.ɵɵtemplateRefExtractor);\n } }, directives: [FontSizeDropDownListComponent, ɵngcc2.ButtonDirective], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], EditorFontSizeComponent.prototype, \"data\", null);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], EditorFontSizeComponent.prototype, \"valueChange\", void 0);\n__decorate([\n ViewChild('toolbarTemplate', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], EditorFontSizeComponent.prototype, \"toolbarTemplate\", void 0);\n__decorate([\n ViewChild('popupTemplate', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], EditorFontSizeComponent.prototype, \"popupTemplate\", void 0);\n__decorate([\n ViewChild('element', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], EditorFontSizeComponent.prototype, \"element\", void 0);\n__decorate([\n ViewChild('element', { read: FontSizeDropDownListComponent, static: false }),\n __metadata(\"design:type\", FontSizeDropDownListComponent)\n], EditorFontSizeComponent.prototype, \"fontSizeDropDownList\", void 0);\n__decorate([\n ViewChild('fontSizeButton', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], EditorFontSizeComponent.prototype, \"fontSizeButton\", void 0);\nEditorFontSizeComponent = EditorFontSizeComponent_1 = __decorate([ __param(0, Host()),\n __metadata(\"design:paramtypes\", [EditorComponent,\n DialogService,\n EditorLocalizationService,\n EditorToolsService])\n], EditorFontSizeComponent);\n\nvar EditorFontFamilyComponent_1;\n/**\n * A component which configures an existing `DropDownListComponent` as an Editor tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The component associates a `kendo-toolbar-dropdownlist` with an Editor command that changes the font family of a content block and\n * automatically defines the options of the drop-down list and sets its values.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorFontFamilyComponent = EditorFontFamilyComponent_1 = class EditorFontFamilyComponent extends ToolBarToolComponent {\n constructor(editor, dialogService, localization, toolsService) {\n super();\n this.editor = editor;\n this.dialogService = dialogService;\n this.localization = localization;\n this.toolsService = toolsService;\n this.disabled = false;\n this.tabindex = -1;\n /**\n * Fires when the user updates the value of the drop-down list.\n */\n this.valueChange = new EventEmitter();\n this._data = [\n { text: 'Arial', fontName: 'Arial,\"Helvetica Neue\",Helvetica,sans-serif' },\n { text: 'Courier New', fontName: '\"Courier New\",Courier,\"Lucida Sans Typewriter\",\"Lucida Typewriter\",monospace' },\n { text: 'Georgia', fontName: 'Georgia,Times,\"Times New Roman\",serif' },\n {\n fontName: \n // tslint:disable-next-line:max-line-length\n 'Impact,Haettenschweiler,\"Franklin Gothic Bold\",Charcoal,\"Helvetica Inserat\",\"Bitstream Vera Sans Bold\",\"Arial Black\",\"sans serif\"',\n text: 'Impact'\n },\n { text: 'Lucida Console', fontName: '\"Lucida Console\",\"Lucida Sans Typewriter\",monaco,\"Bitstream Vera Sans Mono\",monospace' },\n { text: 'Tahoma', fontName: 'Tahoma,Verdana,Segoe,sans-serif' },\n { text: 'Times New Roman', fontName: 'TimesNewRoman,\"Times New Roman\",Times,Baskerville,Georgia,serif' },\n { text: 'Trebuchet MS', fontName: '\"Trebuchet MS\",\"Lucida Grande\",\"Lucida Sans Unicode\",\"Lucida Sans\",Tahoma,sans-serif' },\n { text: 'Verdana', fontName: 'Verdana,Geneva,sans-serif' }\n ];\n }\n /**\n * Overrides the default font list.\n */\n set data(fonts) {\n this._data = fonts || this._data;\n }\n get data() {\n return this._data;\n }\n ngOnInit() {\n this.itemDisabled = (itemArgs) => {\n if (!this.overflows && this.fontFamilyDropDownList && !this.fontFamilyDropDownList.dropDownList.isOpen) {\n return true; //disable all items in order to prevent navigation when DDL is closed\n }\n else {\n return itemArgs.dataItem.fontName === null;\n }\n };\n setTimeout(() => {\n this.defaultItem = { text: this.title, fontName: null };\n this.toolsService.needsCheck.next();\n });\n this.subs = this.editor.stateChange.subscribe(({ style }) => {\n this.value = getUniqueStyleValues(style.selected, 'font-family') || null;\n this.disabled = style.disabled;\n });\n }\n /**\n * @hidden\n */\n onValueChange(ev) {\n if (isPresent(ev)) {\n this.editor.exec('fontFamily', ev);\n this.editor.view.focus();\n this.valueChange.emit(this.data.find(f => f.fontName === ev));\n }\n }\n ngOnDestroy() {\n if (this.subs) {\n this.subs.unsubscribe();\n }\n }\n get outerWidth() {\n if (this.element) {\n return outerWidth(this.element.nativeElement);\n }\n }\n get title() {\n return this.localization.get('fontFamily');\n }\n /**\n * @hidden\n */\n openDialog() {\n const dialogSettings = {\n appendTo: this.editor.dialogContainer,\n content: FontFamilyDialogComponent\n };\n this.editor.toolbar.toggle(false);\n const dialogContent = this.dialogService.open(dialogSettings).content.instance;\n dialogContent.setData({\n editor: this.editor,\n data: this.data,\n defaultItem: this.defaultItem,\n value: this.value,\n itemDisabled: this.itemDisabled\n });\n }\n /**\n * @hidden\n */\n canFocus() {\n return !this.disabled;\n }\n /**\n * @hidden\n */\n focus() {\n this.tabindex = 0;\n if (this.overflows) {\n this.fontFamilyButton.nativeElement.focus();\n }\n else {\n this.fontFamilyDropDownList.focus();\n }\n }\n /**\n * @hidden\n */\n handleKey() {\n this.tabindex = -1;\n return false;\n }\n};\nEditorFontFamilyComponent.ɵfac = function EditorFontFamilyComponent_Factory(t) { return new (t || EditorFontFamilyComponent)(ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.DialogService), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorFontFamilyComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: EditorFontFamilyComponent, selectors: [[\"kendo-toolbar-dropdownlist\", \"kendoEditorFontFamily\", \"\"]], viewQuery: function EditorFontFamilyComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c120, 7);\n ɵngcc0.ɵɵviewQuery(_c121, 7);\n ɵngcc0.ɵɵviewQuery(_c114, 5);\n ɵngcc0.ɵɵviewQuery(_c114, 5, FontFamilyDropDownListComponent);\n ɵngcc0.ɵɵviewQuery(_c127, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.toolbarTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.popupTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.element = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.fontFamilyDropDownList = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.fontFamilyButton = _t.first);\n } }, inputs: { data: \"data\" }, outputs: { valueChange: \"valueChange\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: ToolBarToolComponent, useExisting: forwardRef(() => EditorFontFamilyComponent_1) }]), ɵngcc0.ɵɵInheritDefinitionFeature], attrs: _c128, decls: 4, vars: 0, consts: [[\"toolbarTemplate\", \"\"], [\"popupTemplate\", \"\"], [3, \"defaultItem\", \"data\", \"value\", \"itemDisabled\", \"title\", \"disabled\", \"tabindex\", \"valueChange\"], [\"element\", \"\"], [\"tabindex\", \"-1\", \"type\", \"button\", \"kendoButton\", \"\", 1, \"k-overflow-button\", 3, \"icon\", \"disabled\", \"tabindex\", \"click\"], [\"fontFamilyButton\", \"\"]], template: function EditorFontFamilyComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, EditorFontFamilyComponent_ng_template_0_Template, 2, 7, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(2, EditorFontFamilyComponent_ng_template_2_Template, 3, 5, \"ng-template\", null, 1, ɵngcc0.ɵɵtemplateRefExtractor);\n } }, directives: [FontFamilyDropDownListComponent, ɵngcc2.ButtonDirective], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], EditorFontFamilyComponent.prototype, \"data\", null);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], EditorFontFamilyComponent.prototype, \"valueChange\", void 0);\n__decorate([\n ViewChild('toolbarTemplate', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], EditorFontFamilyComponent.prototype, \"toolbarTemplate\", void 0);\n__decorate([\n ViewChild('popupTemplate', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], EditorFontFamilyComponent.prototype, \"popupTemplate\", void 0);\n__decorate([\n ViewChild('element', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], EditorFontFamilyComponent.prototype, \"element\", void 0);\n__decorate([\n ViewChild('element', { read: FontFamilyDropDownListComponent, static: false }),\n __metadata(\"design:type\", FontFamilyDropDownListComponent)\n], EditorFontFamilyComponent.prototype, \"fontFamilyDropDownList\", void 0);\n__decorate([\n ViewChild('fontFamilyButton', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], EditorFontFamilyComponent.prototype, \"fontFamilyButton\", void 0);\nEditorFontFamilyComponent = EditorFontFamilyComponent_1 = __decorate([ __param(0, Host()),\n __metadata(\"design:paramtypes\", [EditorComponent,\n DialogService,\n EditorLocalizationService,\n EditorToolsService])\n], EditorFontFamilyComponent);\n\n// tslint:disable:no-forward-ref\nvar EditorColorPickerComponent_1;\n/**\n * A component which configures an existing ColorPickerComponent as a ToolBar tool.\n * To associate a `kendo-toolbar-colorpicker` with an Editor command that changes the\n * foreground or the background color of the text, use the `kendoEditorForeColor` or `kendoEditorBackColor` directive.\n */\nlet EditorColorPickerComponent = EditorColorPickerComponent_1 = class EditorColorPickerComponent extends ToolBarToolComponent {\n constructor(editor, localization, dialogService, ngZone) {\n super();\n this.editor = editor;\n this.localization = localization;\n this.dialogService = dialogService;\n this.ngZone = ngZone;\n this.tabindex = -1;\n /**\n * Specifies if the component should be disabled.\n */\n this.disabled = false;\n /**\n * Specifies whether the ColorPicker will render a gradient, palette, or both in its popup.\n *\n * @default ['palette']\n */\n this.views = ['palette'];\n }\n /**\n * @hidden\n *\n * For backward compatibility with configurations using the deprecated \"view\" input.\n */\n set view(view) {\n this.views = [view];\n }\n get view() {\n return (this.views && this.views.length > 0) ? this.views[0] : null;\n }\n /**\n * @hidden\n */\n get title() {\n return this.localization.get(this.editorCommand);\n }\n ngOnInit() {\n this.subs = this.editor.stateChange.subscribe(({ style }) => {\n this.disabled = style.disabled;\n });\n }\n ngOnDestroy() {\n if (this.subs) {\n this.subs.unsubscribe();\n }\n }\n /**\n * @hidden\n */\n handleValueChange(color) {\n this.editor.exec(this.editorCommand, color);\n this.editor.view.focus();\n }\n /**\n * @hidden\n */\n handleActiveColorClick(event) {\n event.preventOpen();\n this.handleValueChange(event.color);\n }\n /**\n * @hidden\n */\n onOpen(picker) {\n this.valueCache = picker.value;\n picker.reset();\n }\n /**\n * @hidden\n */\n onClose(picker) {\n if (!picker.value) {\n picker.value = this.valueCache;\n }\n this.editor.shouldEmitFocus = true;\n this.ngZone.onStable.pipe(take(1)).subscribe(() => this.editor.view.focus());\n }\n /**\n * @hidden\n */\n get outerWidth() {\n if (this.element) {\n return outerWidth(this.element.nativeElement);\n }\n }\n /**\n * @hidden\n */\n openDialog() {\n const dialogSettings = {\n appendTo: this.editor.dialogContainer,\n content: ColorPickerDialogComponent\n };\n this.editor.toolbar.toggle(false);\n const dialogContent = this.dialogService.open(dialogSettings).content.instance;\n dialogContent.setData({\n editor: this.editor,\n value: this.value,\n title: this.title,\n editorCommand: this.editorCommand,\n paletteSettings: this.paletteSettings,\n icon: this.icon,\n views: this.views\n });\n }\n /**\n * @hidden\n */\n canFocus() {\n return !this.disabled;\n }\n /**\n * @hidden\n */\n focus() {\n this.tabindex = 0;\n if (this.overflows) {\n this.colorPickerButton.nativeElement.focus();\n }\n else {\n this.colorPicker.focus();\n }\n }\n /**\n * @hidden\n */\n handleKey() {\n this.tabindex = -1;\n return false;\n }\n};\nEditorColorPickerComponent.ɵfac = function EditorColorPickerComponent_Factory(t) { return new (t || EditorColorPickerComponent)(ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.DialogService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nEditorColorPickerComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: EditorColorPickerComponent, selectors: [[\"kendo-toolbar-colorpicker\"]], viewQuery: function EditorColorPickerComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c120, 7);\n ɵngcc0.ɵɵviewQuery(_c121, 7);\n ɵngcc0.ɵɵviewQuery(_c116, 5, ElementRef);\n ɵngcc0.ɵɵviewQuery(_c116, 5, ColorPickerComponent);\n ɵngcc0.ɵɵviewQuery(_c129, 5, ElementRef);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.toolbarTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.popupTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.element = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.colorPicker = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.colorPickerButton = _t.first);\n } }, inputs: { disabled: \"disabled\", views: \"views\", view: \"view\", value: \"value\", icon: \"icon\", paletteSettings: \"paletteSettings\", editorCommand: \"editorCommand\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: ToolBarToolComponent, useExisting: forwardRef(() => EditorColorPickerComponent_1) }]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 4, vars: 0, consts: [[\"toolbarTemplate\", \"\"], [\"popupTemplate\", \"\"], [3, \"icon\", \"views\", \"format\", \"value\", \"paletteSettings\", \"disabled\", \"tabindex\", \"valueChange\", \"activeColorClick\", \"open\", \"close\"], [\"colorpicker\", \"\"], [\"tabindex\", \"-1\", \"type\", \"button\", \"kendoButton\", \"\", 1, \"k-overflow-button\", 3, \"icon\", \"disabled\", \"tabindex\", \"click\"], [\"colorPickerButton\", \"\"]], template: function EditorColorPickerComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, EditorColorPickerComponent_ng_template_0_Template, 2, 8, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(2, EditorColorPickerComponent_ng_template_2_Template, 3, 5, \"ng-template\", null, 1, ɵngcc0.ɵɵtemplateRefExtractor);\n } }, directives: [ɵngcc5.ColorPickerComponent, ɵngcc2.ButtonDirective], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], EditorColorPickerComponent.prototype, \"value\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], EditorColorPickerComponent.prototype, \"icon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], EditorColorPickerComponent.prototype, \"paletteSettings\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], EditorColorPickerComponent.prototype, \"editorCommand\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], EditorColorPickerComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], EditorColorPickerComponent.prototype, \"views\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], EditorColorPickerComponent.prototype, \"view\", null);\n__decorate([\n ViewChild('toolbarTemplate', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], EditorColorPickerComponent.prototype, \"toolbarTemplate\", void 0);\n__decorate([\n ViewChild('popupTemplate', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], EditorColorPickerComponent.prototype, \"popupTemplate\", void 0);\n__decorate([\n ViewChild('colorpicker', { read: ElementRef, static: false }),\n __metadata(\"design:type\", ElementRef)\n], EditorColorPickerComponent.prototype, \"element\", void 0);\n__decorate([\n ViewChild('colorpicker', { read: ColorPickerComponent, static: false }),\n __metadata(\"design:type\", ColorPickerComponent)\n], EditorColorPickerComponent.prototype, \"colorPicker\", void 0);\n__decorate([\n ViewChild('colorPickerButton', { read: ElementRef, static: false }),\n __metadata(\"design:type\", ElementRef)\n], EditorColorPickerComponent.prototype, \"colorPickerButton\", void 0);\nEditorColorPickerComponent = EditorColorPickerComponent_1 = __decorate([ __param(0, Host()),\n __metadata(\"design:paramtypes\", [EditorComponent,\n EditorLocalizationService,\n DialogService,\n NgZone])\n], EditorColorPickerComponent);\n\nvar EditorInsertTableButtonComponent_1;\nconst popupWrapperWidth = '190px';\nconst popupWrapperHeight = '164px'; // Set to '192px' when TableWizard button is added;\n/**\n * A toolbar component which allows the user to create and insert a table in the Editor's content.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorInsertTableButtonComponent = EditorInsertTableButtonComponent_1 = class EditorInsertTableButtonComponent extends ToolBarToolComponent {\n constructor(editor, localization, popupService, dialogService) {\n super();\n this.editor = editor;\n this.localization = localization;\n this.popupService = popupService;\n this.dialogService = dialogService;\n this.open = false;\n this.buttonBlurred = new EventEmitter();\n this.cellClicked = new EventEmitter();\n this.subs = this.editor.stateChange.subscribe(({ insertTable }) => {\n this.disabled = insertTable.disabled;\n });\n this.subs.add(this.buttonBlurred.pipe(concatMap(() => interval(200).pipe(take(1), takeUntil(this.cellClicked)))).subscribe(() => {\n this.toggle(false);\n }));\n }\n ngOnDestroy() {\n this.destroyPopup();\n if (this.subs) {\n this.subs.unsubscribe();\n }\n }\n get outerWidth() {\n if (this.element) {\n return outerWidth(this.element.nativeElement);\n }\n }\n get title() {\n return this.localization.get('insertTable');\n }\n /**\n * @hidden\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 /**\n * @hidden\n */\n openDialog() {\n const dialogSettings = {\n appendTo: this.editor.dialogContainer,\n content: InsertTableDialogComponent\n };\n this.editor.toolbar.toggle(false);\n const dialogContent = this.dialogService.open(dialogSettings).content.instance;\n dialogContent.setData({\n editor: this.editor\n });\n }\n /**\n * @hidden\n */\n onBlur() {\n this.tabIndex = -1;\n this.buttonBlurred.emit();\n }\n /**\n * @hidden\n */\n onCellClick(args) {\n this.cellClicked.emit();\n this.toggle(false);\n this.editor.exec('insertTable', args);\n }\n /**\n * @hidden\n */\n canFocus() {\n return !this.disabled;\n }\n /**\n * @hidden\n */\n focus() {\n this.tabIndex = 0;\n this.getButton().focus();\n }\n /**\n * @hidden\n */\n handleKey(ev) {\n if (ev.keyCode === Keys.Space || ev.keyCode === Keys.Enter) {\n return true;\n }\n this.tabIndex = -1;\n return false;\n }\n /**\n * @hidden\n */\n onTableWizardClick() {\n // this.toggle(false);\n // this.editor.openDialog(\"tableWizard\");\n }\n createPopup() {\n const horizontalAlign = this.editor.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.element,\n anchorAlign: anchorPosition,\n animate: true,\n content: this.popupGridTemplate,\n popupAlign: popupPosition,\n popupClass: 'k-ct-popup k-group k-reset k-state-border-up',\n positionMode: 'absolute'\n });\n const popupWrapper = this.popupRef.popupElement;\n popupWrapper.style.width = popupWrapperWidth;\n popupWrapper.style.height = popupWrapperHeight;\n popupWrapper.setAttribute('dir', this.editor.direction);\n }\n destroyPopup() {\n if (this.popupRef) {\n this.popupRef.close();\n this.popupRef = null;\n }\n }\n getButton() {\n return (this.overflows ? this.overflowElement : this.element).nativeElement;\n }\n};\nEditorInsertTableButtonComponent.ɵfac = function EditorInsertTableButtonComponent_Factory(t) { return new (t || EditorInsertTableButtonComponent)(ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc9.PopupService), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.DialogService)); };\nEditorInsertTableButtonComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: EditorInsertTableButtonComponent, selectors: [[\"kendo-editor-insert-table-button\"]], viewQuery: function EditorInsertTableButtonComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c120, 7);\n ɵngcc0.ɵɵviewQuery(_c121, 5);\n ɵngcc0.ɵɵviewQuery(_c114, 5);\n ɵngcc0.ɵɵviewQuery(_c130, 5);\n ɵngcc0.ɵɵviewQuery(_c131, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.toolbarTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.popupTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.element = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.overflowElement = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.popupGridTemplate = _t.first);\n } }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: ToolBarToolComponent, useExisting: forwardRef(() => EditorInsertTableButtonComponent_1) }]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 6, vars: 0, consts: [[\"toolbarTemplate\", \"\"], [\"popupTemplate\", \"\"], [\"popupGridTemplate\", \"\"], [\"type\", \"button\", \"kendoButton\", \"\", 3, \"icon\", \"disabled\", \"click\", \"blur\"], [\"element\", \"\"], [\"kendoButton\", \"\", 3, \"icon\", \"disabled\", \"click\"], [\"overflowElement\", \"\"], [3, \"cellClick\", \"tableWizardClick\"]], template: function EditorInsertTableButtonComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, EditorInsertTableButtonComponent_ng_template_0_Template, 2, 4, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(2, EditorInsertTableButtonComponent_ng_template_2_Template, 3, 5, \"ng-template\", null, 1, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(4, EditorInsertTableButtonComponent_ng_template_4_Template, 1, 0, \"ng-template\", null, 2, ɵngcc0.ɵɵtemplateRefExtractor);\n } }, directives: function () { return [ɵngcc2.ButtonDirective, PopupTableGridComponent]; }, encapsulation: 2 });\n__decorate([\n ViewChild('toolbarTemplate', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], EditorInsertTableButtonComponent.prototype, \"toolbarTemplate\", void 0);\n__decorate([\n ViewChild('popupTemplate', { static: false }),\n __metadata(\"design:type\", TemplateRef)\n], EditorInsertTableButtonComponent.prototype, \"popupTemplate\", void 0);\n__decorate([\n ViewChild('element', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], EditorInsertTableButtonComponent.prototype, \"element\", void 0);\n__decorate([\n ViewChild('overflowElement', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], EditorInsertTableButtonComponent.prototype, \"overflowElement\", void 0);\n__decorate([\n ViewChild('popupGridTemplate', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], EditorInsertTableButtonComponent.prototype, \"popupGridTemplate\", void 0);\nEditorInsertTableButtonComponent = EditorInsertTableButtonComponent_1 = __decorate([ __param(0, Host()),\n __metadata(\"design:paramtypes\", [EditorComponent,\n EditorLocalizationService,\n PopupService,\n DialogService])\n], EditorInsertTableButtonComponent);\n\n/**\n * @hidden\n */\nlet PopupTableGridComponent = class PopupTableGridComponent {\n /**\n * @hidden\n */\n constructor() {\n this.cellClick = new EventEmitter();\n this.tableWizardClick = new EventEmitter();\n this.state = { rows: -1, cols: -1 };\n this.rows = 6;\n this.cols = 8;\n }\n get message() {\n const { rows, cols } = this.state;\n return `Create a ${rows > -1 ? rows + 1 : ''} ${cols > -1 ? 'x' : ''} ${cols > -1 ? cols + 1 : ''} table`;\n }\n get cells() {\n return Array.from(Array(this.rows * this.cols).keys());\n }\n selected(index) {\n const { rows, cols } = this.state;\n const cellRow = Math.floor(index / this.cols);\n const cellCol = index % this.cols;\n return cellRow <= rows && cellCol <= cols;\n }\n setState(index) {\n const rows = Math.floor(index / this.cols);\n const cols = index % this.cols;\n this.state = { rows: rows, cols: cols };\n }\n resetState() {\n this.state = { rows: -1, cols: -1 };\n }\n insertTable() {\n this.cellClick.emit(this.state);\n }\n openTableWizard() {\n this.tableWizardClick.emit();\n }\n};\nPopupTableGridComponent.ɵfac = function PopupTableGridComponent_Factory(t) { return new (t || PopupTableGridComponent)(); };\nPopupTableGridComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PopupTableGridComponent, selectors: [[\"kendo-popup-table-grid\"]], outputs: { cellClick: \"cellClick\", tableWizardClick: \"tableWizardClick\" }, decls: 4, vars: 2, consts: [[2, \"border-color\", \"inherit\", 3, \"mouseleave\", \"click\"], [\"class\", \"k-ct-cell\", 3, \"k-state-selected\", \"k-state-disabled\", \"mouseenter\", 4, \"ngFor\", \"ngForOf\"], [\"unselectable\", \"on\", 1, \"k-status\"], [1, \"k-ct-cell\", 3, \"mouseenter\"]], template: function PopupTableGridComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 0);\n ɵngcc0.ɵɵlistener(\"mouseleave\", function PopupTableGridComponent_Template_div_mouseleave_0_listener() { return ctx.resetState(); })(\"click\", function PopupTableGridComponent_Template_div_click_0_listener() { return ctx.insertTable(); });\n ɵngcc0.ɵɵtemplate(1, PopupTableGridComponent_span_1_Template, 1, 4, \"span\", 1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(2, \"div\", 2);\n ɵngcc0.ɵɵtext(3);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.cells);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate(ctx.message);\n } }, directives: [ɵngcc4.NgForOf], encapsulation: 2 });\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], PopupTableGridComponent.prototype, \"cellClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], PopupTableGridComponent.prototype, \"tableWizardClick\", void 0);\n\n/**\n * @hidden\n */\nconst commandIcons = {\n alignCenter: 'align-center',\n alignJustify: 'align-justify',\n alignLeft: 'align-left',\n alignRight: 'align-right',\n backColor: 'background',\n blockquote: 'blockquote',\n bold: 'bold',\n cleanFormatting: 'clear-css',\n createLink: 'link-horizontal',\n foreColor: 'foreground-color',\n indent: 'indent-increase',\n insertFile: 'file-add',\n insertImage: 'image',\n insertOrderedList: 'list-ordered',\n insertUnorderedList: 'list-unordered',\n italic: 'italic',\n outdent: 'indent-decrease',\n print: 'print',\n redo: 'redo',\n selectAll: 'select-all',\n strikethrough: 'strikethrough',\n subscript: 'sub-script',\n superscript: 'sup-script',\n underline: 'underline',\n undo: 'undo',\n unlink: 'unlink-horizontal',\n viewSource: 'html',\n //table\n insertTable: 'table-insert',\n addColumnBefore: 'table-column-insert-left',\n addColumnAfter: 'table-column-insert-right',\n addRowBefore: 'table-row-insert-above',\n addRowAfter: 'table-row-insert-below',\n deleteRow: 'table-row-delete',\n deleteColumn: 'table-column-delete',\n mergeCells: 'cells-merge',\n splitCell: 'cell-split-horizontally',\n deleteTable: 'table-delete'\n // tableWizard: 'table-wizard'\n};\n\n/**\n * @hidden\n */\nclass EditorCommandBase {\n constructor(command, button, editor, localization, toolsService) {\n this.command = command;\n this.button = button;\n this.editor = editor;\n this.localization = localization;\n this.toolsService = toolsService;\n setTimeout(() => {\n const text = this.localization.get(this.command);\n if (text) {\n this.button.showText = 'overflow';\n this.button.showIcon = 'both';\n this.button.text = text;\n }\n if (!this.button.toolbarOptions.icon) {\n this.button.icon = commandIcons[this.command];\n }\n this.button.title = text;\n this.toolsService.needsCheck.next();\n });\n }\n ngOnInit() {\n this.subs = this.editor.stateChange.subscribe(this.onStateChange.bind(this));\n this.subs.add(this.button.click.subscribe((this.clickHandler.bind(this))));\n this.subs.add(this.button.pointerdown.subscribe((this.pointerdownHandler.bind(this))));\n }\n ngOnDestroy() {\n if (this.subs) {\n this.subs.unsubscribe();\n }\n }\n // tslint:disable-next-line\n clickHandler() { }\n // tslint:disable-next-line\n pointerdownHandler(_event) { }\n // tslint:disable-next-line\n onStateChange(_toolBarState) { }\n}\nEditorCommandBase.ɵfac = function EditorCommandBase_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nEditorCommandBase.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorCommandBase });\n\n/**\n * @hidden\n */\nclass EditorCommandButton extends EditorCommandBase {\n constructor(command, button, editor, localization, toolsService) {\n super(command, button, editor, localization, toolsService);\n this.command = command;\n this.button = button;\n this.editor = editor;\n this.localization = localization;\n this.toolsService = toolsService;\n }\n clickHandler() {\n this.editor.exec(this.command, this.editor.applyToWord);\n this.editor.focus();\n }\n pointerdownHandler(e) {\n e.preventDefault();\n }\n onStateChange(toolBarState) {\n this.button.selected = toolBarState[this.command].selected;\n this.button.disabled = toolBarState[this.command].disabled;\n }\n}\n\n/**\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor AlignLeft tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n * In addition, the directive updates the `selected` state of the button according to the cursor position in the editing area.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n *\n * The following example demonstrates how to change the default icon that is applied by the directive.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorAlignLeftButtonDirective = class EditorAlignLeftButtonDirective extends EditorCommandButton {\n constructor(button, editor, localization, toolsService) {\n super('alignLeft', button, editor, localization, toolsService);\n }\n};\nEditorAlignLeftButtonDirective.ɵfac = function EditorAlignLeftButtonDirective_Factory(t) { return new (t || EditorAlignLeftButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorAlignLeftButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorAlignLeftButtonDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorAlignLeftButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorAlignLeftButtonDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorAlignLeftButtonDirective);\n\n/**\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor AlignCenter tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n * In addition, the directive updates the `selected` state of the button according to the cursor position in the editing area.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n *\n * The following example demonstrates how to change the default icon that is applied by the directive.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorAlignCenterButtonDirective = class EditorAlignCenterButtonDirective extends EditorCommandButton {\n constructor(button, editor, localization, toolsService) {\n super('alignCenter', button, editor, localization, toolsService);\n }\n};\nEditorAlignCenterButtonDirective.ɵfac = function EditorAlignCenterButtonDirective_Factory(t) { return new (t || EditorAlignCenterButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorAlignCenterButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorAlignCenterButtonDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorAlignCenterButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorAlignCenterButtonDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorAlignCenterButtonDirective);\n\n/**\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor AlignRight tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n * In addition, the directive updates the `selected` state of the button according to the cursor position in the editing area.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n *\n * The following example demonstrates how to change the default icon that is applied by the directive.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorAlignRightButtonDirective = class EditorAlignRightButtonDirective extends EditorCommandButton {\n constructor(button, editor, localization, toolsService) {\n super('alignRight', button, editor, localization, toolsService);\n }\n};\nEditorAlignRightButtonDirective.ɵfac = function EditorAlignRightButtonDirective_Factory(t) { return new (t || EditorAlignRightButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorAlignRightButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorAlignRightButtonDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorAlignRightButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorAlignRightButtonDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorAlignRightButtonDirective);\n\n/**\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor AlignJustify tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n * In addition, the directive updates the `selected` state of the button according to the cursor position in the editing area.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n *\n * The following example demonstrates how to change the default icon that is applied by the directive.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorAlignJustifyButtonDirective = class EditorAlignJustifyButtonDirective extends EditorCommandButton {\n constructor(button, editor, localization, toolsService) {\n super('alignJustify', button, editor, localization, toolsService);\n }\n};\nEditorAlignJustifyButtonDirective.ɵfac = function EditorAlignJustifyButtonDirective_Factory(t) { return new (t || EditorAlignJustifyButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorAlignJustifyButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorAlignJustifyButtonDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorAlignJustifyButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorAlignJustifyButtonDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorAlignJustifyButtonDirective);\n\n/**\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor Blockquote tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n *\n * The following example demonstrates how to change the default icon that is applied by the directive.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorBlockquoteDirective = class EditorBlockquoteDirective extends EditorCommandButton {\n constructor(button, editor, localization, toolsService) {\n super('blockquote', button, editor, localization, toolsService);\n this.editor = editor;\n }\n};\nEditorBlockquoteDirective.ɵfac = function EditorBlockquoteDirective_Factory(t) { return new (t || EditorBlockquoteDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorBlockquoteDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorBlockquoteDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorBlockquoteButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorBlockquoteDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorBlockquoteDirective);\n\n/**\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor Redo tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n * In addition, the directive updates the `disabled` state of the button according to the cursor position in the editing area.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n *\n * The following example demonstrates how to change the default icon that is applied by the directive.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorRedoButtonDirective = class EditorRedoButtonDirective extends EditorCommandButton {\n constructor(button, editor, localization, toolsService) {\n super('redo', button, editor, localization, toolsService);\n }\n};\nEditorRedoButtonDirective.ɵfac = function EditorRedoButtonDirective_Factory(t) { return new (t || EditorRedoButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorRedoButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorRedoButtonDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorRedoButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorRedoButtonDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorRedoButtonDirective);\n\n/**\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor Undo tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n * In addition, the directive updates the `disabled` state of the button according to the cursor position in the editing area.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n *\n * The following example demonstrates how to change the default icon that is applied by the directive.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorUndoButtonDirective = class EditorUndoButtonDirective extends EditorCommandButton {\n constructor(button, editor, localization, toolsService) {\n super('undo', button, editor, localization, toolsService);\n }\n};\nEditorUndoButtonDirective.ɵfac = function EditorUndoButtonDirective_Factory(t) { return new (t || EditorUndoButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorUndoButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorUndoButtonDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorUndoButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorUndoButtonDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorUndoButtonDirective);\n\n/**\n * @hidden\n */\nclass EditorCommandDialog extends EditorCommandBase {\n constructor(dialog, button, editor, localization, toolsService) {\n super(dialog, button, editor, localization, toolsService);\n this.dialog = dialog;\n this.button = button;\n this.editor = editor;\n this.localization = localization;\n this.toolsService = toolsService;\n }\n clickHandler() {\n this.editor.openDialog(this.dialog);\n }\n onStateChange(toolBarState) {\n this.button.selected = toolBarState[this.command].selected;\n this.button.disabled = toolBarState[this.command].disabled;\n }\n}\n\n/**\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor InsertImage tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n *\n * The following example demonstrates how to change the default icon that is applied by the directive.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorInsertImageButtonDirective = class EditorInsertImageButtonDirective extends EditorCommandDialog {\n constructor(button, editor, localization, toolsService) {\n super('insertImage', button, editor, localization, toolsService);\n }\n};\nEditorInsertImageButtonDirective.ɵfac = function EditorInsertImageButtonDirective_Factory(t) { return new (t || EditorInsertImageButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorInsertImageButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorInsertImageButtonDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorInsertImageButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorInsertImageButtonDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorInsertImageButtonDirective);\n\n/**\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor Indent tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n * In addition, the directive updates the `disabled` state of the button according to the cursor position in the editing area.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n *\n * The following example demonstrates how to change the default icon that is applied by the directive.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorIndentButtonDirective = class EditorIndentButtonDirective extends EditorCommandButton {\n constructor(button, editor, localization, toolsService) {\n super('indent', button, editor, localization, toolsService);\n }\n};\nEditorIndentButtonDirective.ɵfac = function EditorIndentButtonDirective_Factory(t) { return new (t || EditorIndentButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorIndentButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorIndentButtonDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorIndentButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorIndentButtonDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorIndentButtonDirective);\n\n/**\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor Outdent tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n * In addition, the directive updates the `disabled` state of the button according to the cursor position in the editing area.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n *\n * The following example demonstrates how to change the default icon that is applied by the directive.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorOutdentButtonDirective = class EditorOutdentButtonDirective extends EditorCommandButton {\n constructor(button, editor, localization, toolsService) {\n super('outdent', button, editor, localization, toolsService);\n }\n};\nEditorOutdentButtonDirective.ɵfac = function EditorOutdentButtonDirective_Factory(t) { return new (t || EditorOutdentButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorOutdentButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorOutdentButtonDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorOutdentButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorOutdentButtonDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorOutdentButtonDirective);\n\n/**\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor CreateLink tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n * In addition, the directive updates the `disabled` state of the button according to the cursor position in the editing area.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n *\n * The following example demonstrates how to change the default icon that is applied by the directive.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorCreateLinkButtonDirective = class EditorCreateLinkButtonDirective extends EditorCommandDialog {\n constructor(button, editor, localization, toolsService) {\n super('createLink', button, editor, localization, toolsService);\n }\n};\nEditorCreateLinkButtonDirective.ɵfac = function EditorCreateLinkButtonDirective_Factory(t) { return new (t || EditorCreateLinkButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorCreateLinkButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorCreateLinkButtonDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorCreateLinkButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorCreateLinkButtonDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorCreateLinkButtonDirective);\n\n/**\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor Unlink tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n * In addition, the directive updates the `disabled` state of the button according to the cursor position in the editing area.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n *\n * The following example demonstrates how to change the default icon that is applied by the directive.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorUnlinkButtonDirective = class EditorUnlinkButtonDirective extends EditorCommandButton {\n constructor(button, editor, localization, toolsService) {\n super('unlink', button, editor, localization, toolsService);\n }\n};\nEditorUnlinkButtonDirective.ɵfac = function EditorUnlinkButtonDirective_Factory(t) { return new (t || EditorUnlinkButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorUnlinkButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorUnlinkButtonDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorUnlinkButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorUnlinkButtonDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorUnlinkButtonDirective);\n\n/**\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor InsertOrderedList tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n * In addition, the directive updates the `selected` state of the button according to the cursor position in the editing area.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n *\n * The following example demonstrates how to change the default icon that is applied by the directive.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorInsertOrderedListButtonDirective = class EditorInsertOrderedListButtonDirective extends EditorCommandButton {\n constructor(button, editor, localization, toolsService) {\n super('insertOrderedList', button, editor, localization, toolsService);\n }\n};\nEditorInsertOrderedListButtonDirective.ɵfac = function EditorInsertOrderedListButtonDirective_Factory(t) { return new (t || EditorInsertOrderedListButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorInsertOrderedListButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorInsertOrderedListButtonDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorInsertOrderedListButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorInsertOrderedListButtonDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorInsertOrderedListButtonDirective);\n\n/**\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor InsertUnorderedList tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n * In addition, the directive updates the `selected` state of the button according to the cursor position in the editing area.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n *\n * The following example demonstrates how to change the default icon that is applied by the directive.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorInsertUnorderedListButtonDirective = class EditorInsertUnorderedListButtonDirective extends EditorCommandButton {\n constructor(button, editor, localization, toolsService) {\n super('insertUnorderedList', button, editor, localization, toolsService);\n }\n};\nEditorInsertUnorderedListButtonDirective.ɵfac = function EditorInsertUnorderedListButtonDirective_Factory(t) { return new (t || EditorInsertUnorderedListButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorInsertUnorderedListButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorInsertUnorderedListButtonDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorInsertUnorderedListButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorInsertUnorderedListButtonDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorInsertUnorderedListButtonDirective);\n\n/**\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor ViewSource tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n *\n * The following example demonstrates how to change the default icon that is applied by the directive.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorViewSourceButtonDirective = class EditorViewSourceButtonDirective extends EditorCommandDialog {\n constructor(button, editor, localization, toolsService) {\n super('viewSource', button, editor, localization, toolsService);\n }\n};\nEditorViewSourceButtonDirective.ɵfac = function EditorViewSourceButtonDirective_Factory(t) { return new (t || EditorViewSourceButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorViewSourceButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorViewSourceButtonDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorViewSourceButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorViewSourceButtonDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorViewSourceButtonDirective);\n\n/**\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor Bold tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n * In addition, the directive updates the `selected` state of the button according to the cursor position in the editing area.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n *\n * The following example demonstrates how to change the default icon that is applied by the directive.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorBoldButtonDirective = class EditorBoldButtonDirective extends EditorCommandButton {\n constructor(button, editor, localization, toolsService) {\n super('bold', button, editor, localization, toolsService);\n }\n};\nEditorBoldButtonDirective.ɵfac = function EditorBoldButtonDirective_Factory(t) { return new (t || EditorBoldButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorBoldButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorBoldButtonDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorBoldButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorBoldButtonDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorBoldButtonDirective);\n\n/**\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor Italic tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n * In addition, the directive updates the `selected` state of the button according to the cursor position in the editing area.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n *\n * The following example demonstrates how to change the default icon that is applied by the directive.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorItalicButtonDirective = class EditorItalicButtonDirective extends EditorCommandButton {\n constructor(button, editor, localization, toolsService) {\n super('italic', button, editor, localization, toolsService);\n }\n};\nEditorItalicButtonDirective.ɵfac = function EditorItalicButtonDirective_Factory(t) { return new (t || EditorItalicButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorItalicButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorItalicButtonDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorItalicButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorItalicButtonDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorItalicButtonDirective);\n\n/**\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor Underline tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n * In addition, the directive updates the `selected` state of the button according to the cursor position in the editing area.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n *\n * The following example demonstrates how to change the default icon that is applied by the directive.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorUnderlineButtonDirective = class EditorUnderlineButtonDirective extends EditorCommandButton {\n constructor(button, editor, localization, toolsService) {\n super('underline', button, editor, localization, toolsService);\n }\n};\nEditorUnderlineButtonDirective.ɵfac = function EditorUnderlineButtonDirective_Factory(t) { return new (t || EditorUnderlineButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorUnderlineButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorUnderlineButtonDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorUnderlineButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorUnderlineButtonDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorUnderlineButtonDirective);\n\n/**\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor Strikethrough tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n * In addition, the directive updates the `selected` state of the button according to the cursor position in the editing area.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n *\n * The following example demonstrates how to change the default icon that is applied by the directive.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorStrikethroughButtonDirective = class EditorStrikethroughButtonDirective extends EditorCommandButton {\n constructor(button, editor, localization, toolsService) {\n super('strikethrough', button, editor, localization, toolsService);\n }\n};\nEditorStrikethroughButtonDirective.ɵfac = function EditorStrikethroughButtonDirective_Factory(t) { return new (t || EditorStrikethroughButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorStrikethroughButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorStrikethroughButtonDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorStrikethroughButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorStrikethroughButtonDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorStrikethroughButtonDirective);\n\n/**\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor Subscript tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n * In addition, the directive updates the `selected` state of the button according to the cursor position in the editing area.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n *\n * The following example demonstrates how to change the default icon that is applied by the directive.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorSubscriptButtonDirective = class EditorSubscriptButtonDirective extends EditorCommandButton {\n constructor(button, editor, localization, toolsService) {\n super('subscript', button, editor, localization, toolsService);\n }\n};\nEditorSubscriptButtonDirective.ɵfac = function EditorSubscriptButtonDirective_Factory(t) { return new (t || EditorSubscriptButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorSubscriptButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorSubscriptButtonDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorSubscriptButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorSubscriptButtonDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorSubscriptButtonDirective);\n\n/**\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor Superscript tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n * In addition, the directive updates the `selected` state of the button according to the cursor position in the editing area.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n *\n * The following example demonstrates how to change the default icon that is applied by the directive.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorSuperscriptButtonDirective = class EditorSuperscriptButtonDirective extends EditorCommandButton {\n constructor(button, editor, localization, toolsService) {\n super('superscript', button, editor, localization, toolsService);\n }\n};\nEditorSuperscriptButtonDirective.ɵfac = function EditorSuperscriptButtonDirective_Factory(t) { return new (t || EditorSuperscriptButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorSuperscriptButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorSuperscriptButtonDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorSuperscriptButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorSuperscriptButtonDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorSuperscriptButtonDirective);\n\n/**\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor 'Insert File' tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorInsertFileButtonDirective = class EditorInsertFileButtonDirective extends EditorCommandDialog {\n constructor(button, editor, localization, toolsService) {\n super('insertFile', button, editor, localization, toolsService);\n }\n};\nEditorInsertFileButtonDirective.ɵfac = function EditorInsertFileButtonDirective_Factory(t) { return new (t || EditorInsertFileButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorInsertFileButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorInsertFileButtonDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorInsertFileButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorInsertFileButtonDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorInsertFileButtonDirective);\n\n/**\n * A directive which configures an `EditorColorPickerComponent`\n * for manipulating the foreground color of the text\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n */\nlet EditorForeColorDirective = class EditorForeColorDirective {\n constructor(colorPicker) {\n this.colorPicker = colorPicker;\n this.colorPicker.icon = commandIcons.foreColor;\n this.colorPicker.editorCommand = 'foreColor';\n }\n};\nEditorForeColorDirective.ɵfac = function EditorForeColorDirective_Factory(t) { return new (t || EditorForeColorDirective)(ɵngcc0.ɵɵdirectiveInject(EditorColorPickerComponent)); };\nEditorForeColorDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorForeColorDirective, selectors: [[\"\", \"kendoEditorForeColor\", \"\"]] });\nEditorForeColorDirective = __decorate([ __metadata(\"design:paramtypes\", [EditorColorPickerComponent])\n], EditorForeColorDirective);\n\n/**\n * A directive which configures an `EditorColorPickerComponent`\n * for manipulating the background color of the text\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n */\nlet EditorBackColorDirective = class EditorBackColorDirective {\n constructor(colorPicker) {\n this.colorPicker = colorPicker;\n this.colorPicker.icon = commandIcons.backColor;\n this.colorPicker.editorCommand = 'backColor';\n }\n};\nEditorBackColorDirective.ɵfac = function EditorBackColorDirective_Factory(t) { return new (t || EditorBackColorDirective)(ɵngcc0.ɵɵdirectiveInject(EditorColorPickerComponent)); };\nEditorBackColorDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorBackColorDirective, selectors: [[\"\", \"kendoEditorBackColor\", \"\"]] });\nEditorBackColorDirective = __decorate([ __metadata(\"design:paramtypes\", [EditorColorPickerComponent])\n], EditorBackColorDirective);\n\n/**\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor Clean Formatting tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n *\n * The following example demonstrates how to change the default icon applied by the directive.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorCleanFormattingButtonDirective = class EditorCleanFormattingButtonDirective extends EditorCommandButton {\n constructor(button, editor, localization, toolsService) {\n super('cleanFormatting', button, editor, localization, toolsService);\n }\n};\nEditorCleanFormattingButtonDirective.ɵfac = function EditorCleanFormattingButtonDirective_Factory(t) { return new (t || EditorCleanFormattingButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorCleanFormattingButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorCleanFormattingButtonDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorCleanFormattingButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorCleanFormattingButtonDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorCleanFormattingButtonDirective);\n\n/**\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor AddColumnBefore tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n * In addition, the directive updates the `disabled` state of the button according to the cursor position in the editing area.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorAddColumnBeforeButtonDirective = class EditorAddColumnBeforeButtonDirective extends EditorCommandButton {\n constructor(button, editor, localization, toolsService) {\n super('addColumnBefore', button, editor, localization, toolsService);\n }\n};\nEditorAddColumnBeforeButtonDirective.ɵfac = function EditorAddColumnBeforeButtonDirective_Factory(t) { return new (t || EditorAddColumnBeforeButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorAddColumnBeforeButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorAddColumnBeforeButtonDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorAddColumnBeforeButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorAddColumnBeforeButtonDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorAddColumnBeforeButtonDirective);\n\n/**\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor AddColumnAfter tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n * In addition, the directive updates the `disabled` state of the button according to the cursor position in the editing area.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorAddColumnAfterButtonDirective = class EditorAddColumnAfterButtonDirective extends EditorCommandButton {\n constructor(button, editor, localization, toolsService) {\n super('addColumnAfter', button, editor, localization, toolsService);\n }\n};\nEditorAddColumnAfterButtonDirective.ɵfac = function EditorAddColumnAfterButtonDirective_Factory(t) { return new (t || EditorAddColumnAfterButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorAddColumnAfterButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorAddColumnAfterButtonDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorAddColumnAfterButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorAddColumnAfterButtonDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorAddColumnAfterButtonDirective);\n\n/**\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor AddRowBefore tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n * In addition, the directive updates the `disabled` state of the button according to the cursor position in the editing area.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorAddRowBeforeButtonDirective = class EditorAddRowBeforeButtonDirective extends EditorCommandButton {\n constructor(button, editor, localization, toolsService) {\n super('addRowBefore', button, editor, localization, toolsService);\n }\n};\nEditorAddRowBeforeButtonDirective.ɵfac = function EditorAddRowBeforeButtonDirective_Factory(t) { return new (t || EditorAddRowBeforeButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorAddRowBeforeButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorAddRowBeforeButtonDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorAddRowBeforeButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorAddRowBeforeButtonDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorAddRowBeforeButtonDirective);\n\n/**\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor AddRowAfter tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n * In addition, the directive updates the `disabled` state of the button according to the cursor position in the editing area.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorAddRowAfterButtonDirective = class EditorAddRowAfterButtonDirective extends EditorCommandButton {\n constructor(button, editor, localization, toolsService) {\n super('addRowAfter', button, editor, localization, toolsService);\n }\n};\nEditorAddRowAfterButtonDirective.ɵfac = function EditorAddRowAfterButtonDirective_Factory(t) { return new (t || EditorAddRowAfterButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorAddRowAfterButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorAddRowAfterButtonDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorAddRowAfterButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorAddRowAfterButtonDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorAddRowAfterButtonDirective);\n\n/**\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor DeleteColumn tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n * In addition, the directive updates the `disabled` state of the button according to the cursor position in the editing area.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorDeleteColumnButtonDirective = class EditorDeleteColumnButtonDirective extends EditorCommandButton {\n constructor(button, editor, localization, toolsService) {\n super('deleteColumn', button, editor, localization, toolsService);\n }\n};\nEditorDeleteColumnButtonDirective.ɵfac = function EditorDeleteColumnButtonDirective_Factory(t) { return new (t || EditorDeleteColumnButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorDeleteColumnButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorDeleteColumnButtonDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorDeleteColumnButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorDeleteColumnButtonDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorDeleteColumnButtonDirective);\n\n/**\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor DeleteRow tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n * In addition, the directive updates the `disabled` state of the button according to the cursor position in the editing area.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorDeleteRowButtonDirective = class EditorDeleteRowButtonDirective extends EditorCommandButton {\n constructor(button, editor, localization, toolsService) {\n super('deleteRow', button, editor, localization, toolsService);\n }\n};\nEditorDeleteRowButtonDirective.ɵfac = function EditorDeleteRowButtonDirective_Factory(t) { return new (t || EditorDeleteRowButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorDeleteRowButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorDeleteRowButtonDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorDeleteRowButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorDeleteRowButtonDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorDeleteRowButtonDirective);\n\n/**\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor DeleteTable tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n * In addition, the directive updates the `disabled` state of the button according to the cursor position in the editing area.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorDeleteTableButtonDirective = class EditorDeleteTableButtonDirective extends EditorCommandButton {\n constructor(button, editor, localization, toolsService) {\n super('deleteTable', button, editor, localization, toolsService);\n }\n};\nEditorDeleteTableButtonDirective.ɵfac = function EditorDeleteTableButtonDirective_Factory(t) { return new (t || EditorDeleteTableButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorDeleteTableButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorDeleteTableButtonDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorDeleteTableButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorDeleteTableButtonDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorDeleteTableButtonDirective);\n\n/**\n * @hidden\n *\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor MergeCells tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n * In addition, the directive updates the `disabled` state of the button according to the cursor position in the editing area.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorMergeCellsButtonDirective = class EditorMergeCellsButtonDirective extends EditorCommandButton {\n constructor(button, editor, localization, toolsService) {\n super('mergeCells', button, editor, localization, toolsService);\n }\n};\nEditorMergeCellsButtonDirective.ɵfac = function EditorMergeCellsButtonDirective_Factory(t) { return new (t || EditorMergeCellsButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorMergeCellsButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorMergeCellsButtonDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorMergeCellsButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorMergeCellsButtonDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorMergeCellsButtonDirective);\n\n/**\n * @hidden\n *\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor SplitCell tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n * In addition, the directive updates the `disabled` state of the button according to the cursor position in the editing area.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorSplitCellButtonDirective = class EditorSplitCellButtonDirective extends EditorCommandButton {\n constructor(button, editor, localization, toolsService) {\n super('splitCell', button, editor, localization, toolsService);\n }\n};\nEditorSplitCellButtonDirective.ɵfac = function EditorSplitCellButtonDirective_Factory(t) { return new (t || EditorSplitCellButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorSplitCellButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorSplitCellButtonDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorSplitCellButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorSplitCellButtonDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorSplitCellButtonDirective);\n\n/**\n * @hidden\n */\nclass Messages extends ComponentMessages {\n}\nMessages.ɵfac = /*@__PURE__*/ function () { let ɵMessages_BaseFactory; return function Messages_Factory(t) { return (ɵMessages_BaseFactory || (ɵMessages_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(Messages)))(t || Messages); }; }();\nMessages.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: Messages, inputs: { alignCenter: \"alignCenter\", alignJustify: \"alignJustify\", alignLeft: \"alignLeft\", alignRight: \"alignRight\", backColor: \"backColor\", blockquote: \"blockquote\", bold: \"bold\", cleanFormatting: \"cleanFormatting\", createLink: \"createLink\", fontFamily: \"fontFamily\", fontSize: \"fontSize\", foreColor: \"foreColor\", format: \"format\", indent: \"indent\", insertFile: \"insertFile\", insertImage: \"insertImage\", insertOrderedList: \"insertOrderedList\", insertUnorderedList: \"insertUnorderedList\", italic: \"italic\", outdent: \"outdent\", print: \"print\", redo: \"redo\", selectAll: \"selectAll\", strikethrough: \"strikethrough\", subscript: \"subscript\", superscript: \"superscript\", underline: \"underline\", undo: \"undo\", unlink: \"unlink\", viewSource: \"viewSource\", insertTable: \"insertTable\", addColumnBefore: \"addColumnBefore\", addColumnAfter: \"addColumnAfter\", addRowBefore: \"addRowBefore\", addRowAfter: \"addRowAfter\", deleteColumn: \"deleteColumn\", deleteRow: \"deleteRow\", deleteTable: \"deleteTable\", dialogApply: \"dialogApply\", dialogCancel: \"dialogCancel\", dialogInsert: \"dialogInsert\", dialogUpdate: \"dialogUpdate\", fileText: \"fileText\", fileTitle: \"fileTitle\", fileWebAddress: \"fileWebAddress\", imageAltText: \"imageAltText\", imageHeight: \"imageHeight\", imageWebAddress: \"imageWebAddress\", imageWidth: \"imageWidth\", linkOpenInNewWindow: \"linkOpenInNewWindow\", linkText: \"linkText\", linkTitle: \"linkTitle\", linkWebAddress: \"linkWebAddress\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"alignCenter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"alignJustify\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"alignLeft\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"alignRight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"backColor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"blockquote\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"bold\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"cleanFormatting\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"createLink\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"fontFamily\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"fontSize\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"foreColor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"indent\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"insertFile\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"insertImage\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"insertOrderedList\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"insertUnorderedList\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"italic\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"outdent\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"print\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"redo\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"selectAll\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"strikethrough\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"subscript\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"superscript\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"underline\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"undo\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"unlink\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"viewSource\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"insertTable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"addColumnBefore\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"addColumnAfter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"addRowBefore\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"addRowAfter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"deleteColumn\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"deleteRow\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"deleteTable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"dialogApply\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"dialogCancel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"dialogInsert\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"dialogUpdate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"fileText\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"fileTitle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"fileWebAddress\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"imageAltText\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"imageHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"imageWebAddress\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"imageWidth\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"linkOpenInNewWindow\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"linkText\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"linkTitle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"linkWebAddress\", void 0);\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.ɵfac = function LocalizedMessagesDirective_Factory(t) { return new (t || LocalizedMessagesDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc6.LocalizationService)); };\nLocalizedMessagesDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LocalizedMessagesDirective, selectors: [[\"\", \"kendoEditorLocalizedMessages\", \"\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: Messages,\n // tslint:disable-next-line:no-forward-ref\n useExisting: forwardRef(() => LocalizedMessagesDirective_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature] });\nLocalizedMessagesDirective = LocalizedMessagesDirective_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], LocalizedMessagesDirective);\n\nvar CustomMessagesComponent_1;\n/**\n * Custom component messages override default component messages\n * ([see example]({% slug globalization_editor %}#toc-localization)).\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.ɵfac = function CustomMessagesComponent_Factory(t) { return new (t || CustomMessagesComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc6.LocalizationService)); };\nCustomMessagesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CustomMessagesComponent, selectors: [[\"kendo-editor-messages\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: Messages,\n // tslint:disable-next-line:no-forward-ref\n useExisting: forwardRef(() => CustomMessagesComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function CustomMessagesComponent_Template(rf, ctx) { }, encapsulation: 2 });\nCustomMessagesComponent = CustomMessagesComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], CustomMessagesComponent);\n\n/**\n * @hidden\n */\nlet DropDownToolDirective = class DropDownToolDirective {\n constructor(hostEl, zone) {\n this.hostEl = hostEl;\n this.zone = zone;\n this.preventDefault = (event) => {\n event.preventDefault();\n };\n }\n get hostElement() {\n return this.hostEl.nativeElement;\n }\n ngAfterViewInit() {\n this.zone.runOutsideAngular(() => {\n this.hostElement.addEventListener('pointerdown', this.preventDefault);\n });\n }\n ngOnDestroy() {\n this.hostElement.removeEventListener('pointerdown', this.preventDefault);\n }\n};\nDropDownToolDirective.ɵfac = function DropDownToolDirective_Factory(t) { return new (t || DropDownToolDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nDropDownToolDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DropDownToolDirective, selectors: [[\"\", \"kendoEditorDropDownTool\", \"\"]] });\nDropDownToolDirective = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n NgZone])\n], DropDownToolDirective);\n\n/**\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor Print tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n *\n * > The Editor Print tool is supported in the default [`iframe`](https://www.telerik.com/kendo-angular-ui-develop/components/editor/api/EditorComponent/#toc-iframe) mode only.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n *\n * The following example demonstrates how to change the default icon that is applied by the directive.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorPrintDirective = class EditorPrintDirective extends EditorCommandButton {\n constructor(button, editor, localization, toolsService) {\n super('print', button, editor, localization, toolsService);\n this.editor = editor;\n }\n ngAfterViewInit() {\n if (isDevMode) {\n if (!this.editor.iframe) {\n throw new Error(EditorErrorMessages.printTool);\n }\n }\n }\n clickHandler() {\n if (this.editor.iframe) {\n const view = this.editor.view;\n const dom = view && view.dom;\n const doc = dom && dom.ownerDocument;\n const editorWindow = doc && doc.defaultView;\n if (editorWindow) {\n editorWindow.print();\n }\n }\n }\n};\nEditorPrintDirective.ɵfac = function EditorPrintDirective_Factory(t) { return new (t || EditorPrintDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorPrintDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorPrintDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorPrintButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorPrintDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorPrintDirective);\n\n/**\n * A directive which configures an existing `ToolBarButtonComponent` as an Editor SelectAll tool\n * ([see example]({% slug toolbartools_editor %}#toc-built-in-tools)).\n * The directive will predefine the `icon` and `click` event handlers of the button.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n *\n * The following example demonstrates how to change the default icon that is applied by the directive.\n *\n * @example\n * ```ts-no-run\n * \n * ```\n */\nlet EditorSelectAllButtonDirective = class EditorSelectAllButtonDirective extends EditorCommandButton {\n constructor(button, editor, localization, toolsService) {\n super('selectAll', button, editor, localization, toolsService);\n }\n clickHandler() {\n this.editor.shouldEmitFocus = true;\n super.clickHandler();\n }\n};\nEditorSelectAllButtonDirective.ɵfac = function EditorSelectAllButtonDirective_Factory(t) { return new (t || EditorSelectAllButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc7.ToolBarButtonComponent), ɵngcc0.ɵɵdirectiveInject(EditorComponent, 1), ɵngcc0.ɵɵdirectiveInject(EditorLocalizationService), ɵngcc0.ɵɵdirectiveInject(EditorToolsService)); };\nEditorSelectAllButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditorSelectAllButtonDirective, selectors: [[\"kendo-toolbar-button\", \"kendoEditorSelectAllButton\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nEditorSelectAllButtonDirective = __decorate([ __param(1, Host()),\n __metadata(\"design:paramtypes\", [ToolBarButtonComponent,\n EditorComponent,\n EditorLocalizationService,\n EditorToolsService])\n], EditorSelectAllButtonDirective);\n\nconst COMPONENT_DIRECTIVES = [\n //alignment\n EditorAlignLeftButtonDirective,\n EditorAlignCenterButtonDirective,\n EditorAlignRightButtonDirective,\n EditorAlignJustifyButtonDirective,\n //file\n EditorInsertFileButtonDirective,\n //history\n EditorRedoButtonDirective,\n EditorUndoButtonDirective,\n //image\n EditorInsertImageButtonDirective,\n //indent\n EditorIndentButtonDirective,\n EditorOutdentButtonDirective,\n //link\n EditorCreateLinkButtonDirective,\n EditorUnlinkButtonDirective,\n //list\n EditorInsertOrderedListButtonDirective,\n EditorInsertUnorderedListButtonDirective,\n //source\n EditorViewSourceButtonDirective,\n //typographical emphasis\n EditorBoldButtonDirective,\n EditorItalicButtonDirective,\n EditorUnderlineButtonDirective,\n EditorStrikethroughButtonDirective,\n EditorSubscriptButtonDirective,\n EditorSuperscriptButtonDirective,\n //color\n EditorForeColorDirective,\n EditorBackColorDirective,\n //clear format\n EditorCleanFormattingButtonDirective,\n //table\n EditorAddColumnBeforeButtonDirective,\n EditorAddColumnAfterButtonDirective,\n EditorAddRowBeforeButtonDirective,\n EditorAddRowAfterButtonDirective,\n EditorDeleteColumnButtonDirective,\n EditorDeleteRowButtonDirective,\n EditorDeleteTableButtonDirective,\n EditorMergeCellsButtonDirective,\n EditorSplitCellButtonDirective,\n // EditorTableWizardButtonDirective,\n //localization\n CustomMessagesComponent,\n LocalizedMessagesDirective,\n // dropdown tools\n DropDownToolDirective,\n // print\n EditorPrintDirective,\n // select all\n EditorSelectAllButtonDirective,\n // blockquote\n EditorBlockquoteDirective\n];\nconst TOOLBAR_TOOLS = [\n EditorFontSizeComponent,\n EditorFontFamilyComponent,\n EditorFormatComponent,\n EditorColorPickerComponent,\n EditorInsertTableButtonComponent\n];\nconst TOOLBAR_DIALOGS = [\n FileLinkDialogComponent,\n ImageDialogComponent,\n SourceDialogComponent,\n FormatDialogComponent,\n ColorPickerDialogComponent,\n FontFamilyDialogComponent,\n FontSizeDialogComponent,\n InsertTableDialogComponent\n // TableWizardDialogComponent\n // Table Wizard Building Blocks\n // TableSettingsComponent,\n // CellSettingsComponent,\n // AccessibilitySettingsComponent\n];\nconst INTERNAL_COMPONENTS = [\n PopupTableGridComponent,\n FormatDropDownListComponent,\n FontFamilyDropDownListComponent,\n FontSizeDropDownListComponent\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }}) definition for the Editor component.\n *\n * The package exports:\n * - `EditorComponent`—The `EditorComponent` class.\n * - `EditorButtonDirective`—The `EditorButton` directive class.\n * - `EditorDropDownDirective`—The `EditorDropDown` directive class.\n * - `EditorDialogDirective`—The `EditorDialog` directive class.\n * - `ToolBarDropDownListComponent`—The `ToolBarDropDownListComponent` directive class.\n * - `ButtonModule`—The `KendoButton` module.\n * - `ToolBarModule`—The `KendoToolBar` module.\n *\n * * @example\n *\n * ```ts-no-run\n * // Import the Editor module\n * import { EditorModule } from '@progress/kendo-angular-editor';\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, EditorModule], // import the Editor module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nlet EditorModule = class EditorModule {\n};\nEditorModule.ɵfac = function EditorModule_Factory(t) { return new (t || EditorModule)(); };\nEditorModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: EditorModule });\nEditorModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n //Kendo UI Angular Modules\n ButtonModule,\n ColorPickerModule,\n DialogModule,\n DropDownsModule,\n NumericTextBoxModule,\n CheckBoxModule,\n ToolBarModule,\n TextBoxModule\n ], ToolBarModule,\n ButtonModule,\n FormsModule,\n ReactiveFormsModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SourceDialogComponent, [{\n type: Component,\n args: [{\n styles: [\n `\n >>> .k-editor-textarea {\n height: 100%;\n }\n `\n ],\n template: `\n \n {{ textFor('viewSource') }}\n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.DialogRef }, { type: EditorLocalizationService }]; }, { editor: [{\n type: Input\n }], textarea: [{\n type: ViewChild,\n args: ['textarea', { static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ImageDialogComponent, [{\n type: Component,\n args: [{\n template: `\n \n {{ textFor('insertImage') }}\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 }], function () { return [{ type: ɵngcc1.DialogRef }, { type: EditorLocalizationService }]; }, { editor: [{\n type: Input\n }], srcInput: [{\n type: ViewChild,\n args: ['srcInput', { read: ElementRef, static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FileLinkDialogComponent, [{\n type: Component,\n args: [{\n template: `\n \n {{ titleText }}\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 }], function () { return [{ type: ɵngcc1.DialogRef }, { type: EditorLocalizationService }]; }, { editor: [{\n type: Input\n }], command: [{\n type: Input\n }], hrefInput: [{\n type: ViewChild,\n args: ['hrefInput', { read: ElementRef, static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorToolsService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-editor',\n providers: [\n EditorLocalizationService,\n EditorToolsService,\n {\n provide: LocalizationService,\n useExisting: EditorLocalizationService\n },\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.editor'\n },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EditorComponent_1),\n multi: true\n },\n {\n provide: KendoInput,\n useExisting: forwardRef(() => EditorComponent_1)\n }\n ],\n /* tslint:disable:max-line-length */\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 styles: [\n `\n >>> .k-editor-content > .ProseMirror {\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n outline: none;\n overflow: auto;\n }\n\n .k-iframe {\n width: 100%;\n height: 100%;\n display: block;\n }\n `\n ]\n }]\n }], function () { return [{ type: ɵngcc1.DialogService }, { type: ɵngcc6.LocalizationService }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ElementRef }, { type: EditorToolsService }]; }, { iframe: [{\n type: Input\n }], applyToWord: [{\n type: Input\n }], preserveWhitespace: [{\n type: Input\n }], resizable: [{\n type: Input\n }], valueChange: [{\n type: Output\n }], onFocus: [{\n type: Output,\n args: ['focus']\n }], paste: [{\n type: Output\n }], onBlur: [{\n type: Output,\n args: ['blur']\n }], hostClass: [{\n type: HostBinding,\n args: ['class.k-editor']\n }], value: [{\n type: Input\n }], disabled: [{\n type: Input\n }], readonly: [{\n type: Input\n }], schema: [{\n type: Input\n }], plugins: [{\n type: Input\n }], placeholder: [{\n type: Input\n }], resizableClass: [{\n type: HostBinding,\n args: ['class.k-editor-resizable']\n }], isDisabled: [{\n type: HostBinding,\n args: ['class.k-disabled']\n }], isReadonly: [{\n type: HostBinding,\n args: ['class.k-readonly']\n }], isIE: [{\n type: HostBinding,\n args: ['class.k-ie']\n }], dir: [{\n type: HostBinding,\n args: ['attr.dir']\n }], ariaDisabled: [{\n type: HostBinding,\n args: ['attr.ariaDisabled']\n }], minWidth: [{\n type: HostBinding,\n args: ['style.minWidth']\n }], maxWidth: [{\n type: HostBinding,\n args: ['style.maxWidth']\n }], minHeight: [{\n type: HostBinding,\n args: ['style.minHeight']\n }], maxHeight: [{\n type: HostBinding,\n args: ['style.maxHeight']\n }], pasteCleanupSettings: [{\n type: Input\n }], userToolBarComponent: [{\n type: ContentChild,\n args: [ToolBarComponent, { static: false }]\n }], userToolBarElement: [{\n type: ContentChild,\n args: [ToolBarComponent, { read: ElementRef, static: false }]\n }], dialogContainer: [{\n type: ViewChild,\n args: ['dialogsContainer', { read: ViewContainerRef, static: true }]\n }], container: [{\n type: ViewChild,\n args: ['content', { read: ViewContainerRef, static: false }]\n }], defaultToolbar: [{\n type: ViewChild,\n args: ['defaultToolbar', { read: ElementRef, static: false }]\n }], defaultToolbarComponent: [{\n type: ViewChild,\n args: ['defaultToolbar', { read: ToolBarComponent, static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FormatDropDownListComponent, [{\n type: Component,\n args: [{\n // tslint:disable-next-line:no-forward-ref\n selector: 'kendo-editor-format-dropdownlist',\n template: `\n \n \n \n \n {{ dataItem.text }}\n \n\n \n {{ dataItem.text }}\n \n\n \n {{ dataItem.text }}\n \n\n \n {{ dataItem.text }}\n \n\n \n {{ dataItem.text }}\n \n\n \n {{ dataItem.text }}\n \n\n \n {{ dataItem.text }}\n \n\n {{ dataItem.text }}\n \n \n \n `,\n styles: [`\n .k-dropdownlist {\n width: 13em;\n }\n `]\n }]\n }], function () { return []; }, { valueChange: [{\n type: Output\n }], data: [{\n type: Input\n }], value: [{\n type: Input\n }], defaultItem: [{\n type: Input\n }], itemDisabled: [{\n type: Input\n }], title: [{\n type: Input\n }], disabled: [{\n type: Input\n }], tabindex: [{\n type: Input\n }], element: [{\n type: ViewChild,\n args: ['element', { static: true }]\n }], dropDownList: [{\n type: ViewChild,\n args: ['element', { read: DropDownListComponent, static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FormatDialogComponent, [{\n type: Component,\n args: [{\n template: `\n \n {{ textFor('format') }}\n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.DialogRef }, { type: EditorLocalizationService }]; }, { editor: [{\n type: Input\n }], formatDropDownList: [{\n type: ViewChild,\n args: ['formatDropDownList', { read: FormatDropDownListComponent, static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColorPickerDialogComponent, [{\n type: Component,\n args: [{\n template: `\n \n {{ textFor(editorCommand) }}\n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.DialogRef }, { type: EditorLocalizationService }]; }, { editor: [{\n type: Input\n }], colorPicker: [{\n type: ViewChild,\n args: ['colorpicker', { read: ColorPickerComponent, static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FontFamilyDropDownListComponent, [{\n type: Component,\n args: [{\n // tslint:disable-next-line:no-forward-ref\n selector: 'kendo-editor-fontfamily-dropdownlist',\n template: `\n \n \n \n {{ dataItem.text }}\n \n \n \n `,\n styles: [`\n .k-dropdownlist {\n width: 13em;\n }\n `]\n }]\n }], function () { return []; }, { valueChange: [{\n type: Output\n }], data: [{\n type: Input\n }], value: [{\n type: Input\n }], defaultItem: [{\n type: Input\n }], itemDisabled: [{\n type: Input\n }], title: [{\n type: Input\n }], disabled: [{\n type: Input\n }], tabindex: [{\n type: Input\n }], element: [{\n type: ViewChild,\n args: ['element', { static: true }]\n }], dropDownList: [{\n type: ViewChild,\n args: ['element', { read: DropDownListComponent, static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FontFamilyDialogComponent, [{\n type: Component,\n args: [{\n template: `\n \n {{ textFor('fontFamily') }}\n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.DialogRef }, { type: EditorLocalizationService }]; }, { editor: [{\n type: Input\n }], fontFamilyDropDownList: [{\n type: ViewChild,\n args: ['fontFamilyDropDownList', { read: FontFamilyDropDownListComponent, static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(InsertTableDialogComponent, [{\n type: Component,\n args: [{\n template: `\n \n {{ textFor('insertTable') }}\n \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.DialogRef }, { type: EditorLocalizationService }]; }, { editor: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorFormatComponent, [{\n type: Component,\n args: [{\n // tslint:disable-next-line:no-forward-ref\n providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => EditorFormatComponent_1) }],\n selector: 'kendo-toolbar-dropdownlist[kendoEditorFormat]',\n template: `\n \n \n \n \n \n \n {{ title }}\n \n \n `\n }]\n }], function () { return [{ type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: ɵngcc1.DialogService }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, { valueChange: [{\n type: Output\n }], data: [{\n type: Input\n }], toolbarTemplate: [{\n type: ViewChild,\n args: ['toolbarTemplate', { static: true }]\n }], popupTemplate: [{\n type: ViewChild,\n args: ['popupTemplate', { static: true }]\n }], formatDropDownList: [{\n type: ViewChild,\n args: ['formatDropDownList', { static: false }]\n }], formatButton: [{\n type: ViewChild,\n args: ['formatButton', { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FontSizeDropDownListComponent, [{\n type: Component,\n args: [{\n // tslint:disable-next-line:no-forward-ref\n selector: 'kendo-editor-fontsize-dropdownlist',\n template: `\n \n \n `,\n styles: [`\n .k-dropdownlist {\n width: 13em;\n }\n `]\n }]\n }], function () { return []; }, { valueChange: [{\n type: Output\n }], data: [{\n type: Input\n }], value: [{\n type: Input\n }], defaultItem: [{\n type: Input\n }], itemDisabled: [{\n type: Input\n }], title: [{\n type: Input\n }], disabled: [{\n type: Input\n }], tabindex: [{\n type: Input\n }], element: [{\n type: ViewChild,\n args: ['element', { static: true }]\n }], dropDownList: [{\n type: ViewChild,\n args: ['element', { read: DropDownListComponent, static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FontSizeDialogComponent, [{\n type: Component,\n args: [{\n template: `\n \n {{ textFor('fontSize') }}\n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.DialogRef }, { type: EditorLocalizationService }]; }, { editor: [{\n type: Input\n }], fontSizeDropDownList: [{\n type: ViewChild,\n args: ['fontSizeDropDownList', { read: FontSizeDropDownListComponent, static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorFontSizeComponent, [{\n type: Component,\n args: [{\n // tslint:disable-next-line:no-forward-ref\n providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => EditorFontSizeComponent_1) }],\n selector: 'kendo-toolbar-dropdownlist[kendoEditorFontSize]',\n template: `\n \n \n \n \n \n \n {{ title }}\n \n \n `\n }]\n }], function () { return [{ type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: ɵngcc1.DialogService }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, { valueChange: [{\n type: Output\n }], data: [{\n type: Input\n }], toolbarTemplate: [{\n type: ViewChild,\n args: ['toolbarTemplate', { static: true }]\n }], popupTemplate: [{\n type: ViewChild,\n args: ['popupTemplate', { static: true }]\n }], element: [{\n type: ViewChild,\n args: ['element', { static: false }]\n }], fontSizeDropDownList: [{\n type: ViewChild,\n args: ['element', { read: FontSizeDropDownListComponent, static: false }]\n }], fontSizeButton: [{\n type: ViewChild,\n args: ['fontSizeButton', { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorFontFamilyComponent, [{\n type: Component,\n args: [{\n // tslint:disable-next-line:no-forward-ref\n providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => EditorFontFamilyComponent_1) }],\n selector: 'kendo-toolbar-dropdownlist[kendoEditorFontFamily]',\n template: `\n \n \n \n \n \n \n {{ title }}\n \n \n `\n }]\n }], function () { return [{ type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: ɵngcc1.DialogService }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, { valueChange: [{\n type: Output\n }], data: [{\n type: Input\n }], toolbarTemplate: [{\n type: ViewChild,\n args: ['toolbarTemplate', { static: true }]\n }], popupTemplate: [{\n type: ViewChild,\n args: ['popupTemplate', { static: true }]\n }], element: [{\n type: ViewChild,\n args: ['element', { static: false }]\n }], fontFamilyDropDownList: [{\n type: ViewChild,\n args: ['element', { read: FontFamilyDropDownListComponent, static: false }]\n }], fontFamilyButton: [{\n type: ViewChild,\n args: ['fontFamilyButton', { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorColorPickerComponent, [{\n type: Component,\n args: [{\n providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => EditorColorPickerComponent_1) }],\n selector: 'kendo-toolbar-colorpicker',\n template: `\n \n \n \n \n \n \n {{ title }}\n \n \n `\n }]\n }], function () { return [{ type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: ɵngcc1.DialogService }, { type: ɵngcc0.NgZone }]; }, { disabled: [{\n type: Input\n }], views: [{\n type: Input\n }], view: [{\n type: Input\n }], value: [{\n type: Input\n }], icon: [{\n type: Input\n }], paletteSettings: [{\n type: Input\n }], editorCommand: [{\n type: Input\n }], toolbarTemplate: [{\n type: ViewChild,\n args: ['toolbarTemplate', { static: true }]\n }], popupTemplate: [{\n type: ViewChild,\n args: ['popupTemplate', { static: true }]\n }], element: [{\n type: ViewChild,\n args: ['colorpicker', { read: ElementRef, static: false }]\n }], colorPicker: [{\n type: ViewChild,\n args: ['colorpicker', { read: ColorPickerComponent, static: false }]\n }], colorPickerButton: [{\n type: ViewChild,\n args: ['colorPickerButton', { read: ElementRef, static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorInsertTableButtonComponent, [{\n type: Component,\n args: [{\n // tslint:disable-next-line:no-forward-ref\n providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => EditorInsertTableButtonComponent_1) }],\n selector: 'kendo-editor-insert-table-button',\n template: `\n \n \n \n \n \n {{ title }}\n \n \n \n \n \n `\n }]\n }], function () { return [{ type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: ɵngcc9.PopupService }, { type: ɵngcc1.DialogService }]; }, { toolbarTemplate: [{\n type: ViewChild,\n args: ['toolbarTemplate', { static: true }]\n }], popupTemplate: [{\n type: ViewChild,\n args: ['popupTemplate', { static: false }]\n }], element: [{\n type: ViewChild,\n args: ['element', { static: false }]\n }], overflowElement: [{\n type: ViewChild,\n args: ['overflowElement', { static: false }]\n }], popupGridTemplate: [{\n type: ViewChild,\n args: ['popupGridTemplate', { static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PopupTableGridComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-popup-table-grid',\n template: `\n
    \n \n \n
    \n
    {{ message }}
    \n \n `\n }]\n }], function () { return []; }, { cellClick: [{\n type: Output\n }], tableWizardClick: [{\n type: Output\n }] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorAlignLeftButtonDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorAlignLeftButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorAlignCenterButtonDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorAlignCenterButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorAlignRightButtonDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorAlignRightButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorAlignJustifyButtonDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorAlignJustifyButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorBlockquoteDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorBlockquoteButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorRedoButtonDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorRedoButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorUndoButtonDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorUndoButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorInsertImageButtonDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorInsertImageButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorIndentButtonDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorIndentButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorOutdentButtonDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorOutdentButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorCreateLinkButtonDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorCreateLinkButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorUnlinkButtonDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorUnlinkButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorInsertOrderedListButtonDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorInsertOrderedListButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorInsertUnorderedListButtonDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorInsertUnorderedListButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorViewSourceButtonDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorViewSourceButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorBoldButtonDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorBoldButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorItalicButtonDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorItalicButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorUnderlineButtonDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorUnderlineButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorStrikethroughButtonDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorStrikethroughButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorSubscriptButtonDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorSubscriptButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorSuperscriptButtonDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorSuperscriptButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorInsertFileButtonDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorInsertFileButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorForeColorDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoEditorForeColor]'\n }]\n }], function () { return [{ type: EditorColorPickerComponent }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorBackColorDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoEditorBackColor]'\n }]\n }], function () { return [{ type: EditorColorPickerComponent }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorCleanFormattingButtonDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorCleanFormattingButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorAddColumnBeforeButtonDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorAddColumnBeforeButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorAddColumnAfterButtonDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorAddColumnAfterButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorAddRowBeforeButtonDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorAddRowBeforeButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorAddRowAfterButtonDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorAddRowAfterButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorDeleteColumnButtonDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorDeleteColumnButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorDeleteRowButtonDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorDeleteRowButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorDeleteTableButtonDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorDeleteTableButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorMergeCellsButtonDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorMergeCellsButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorSplitCellButtonDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorSplitCellButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LocalizedMessagesDirective, [{\n type: Directive,\n args: [{\n providers: [\n {\n provide: Messages,\n // tslint:disable-next-line:no-forward-ref\n useExisting: forwardRef(() => LocalizedMessagesDirective_1)\n }\n ],\n selector: '[kendoEditorLocalizedMessages]'\n }]\n }], function () { return [{ type: ɵngcc6.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CustomMessagesComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: Messages,\n // tslint:disable-next-line:no-forward-ref\n useExisting: forwardRef(() => CustomMessagesComponent_1)\n }\n ],\n selector: 'kendo-editor-messages',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc6.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DropDownToolDirective, [{\n type: Directive,\n args: [{ selector: '[kendoEditorDropDownTool]' }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorPrintDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorPrintButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorSelectAllButtonDirective, [{\n type: Directive,\n args: [{\n selector: 'kendo-toolbar-button[kendoEditorSelectAllButton]'\n }]\n }], function () { return [{ type: ɵngcc7.ToolBarButtonComponent }, { type: EditorComponent, decorators: [{\n type: Host\n }] }, { type: EditorLocalizationService }, { type: EditorToolsService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditorModule, [{\n type: NgModule,\n args: [{\n declarations: [\n EditorComponent,\n COMPONENT_DIRECTIVES,\n TOOLBAR_TOOLS,\n TOOLBAR_DIALOGS,\n INTERNAL_COMPONENTS\n ],\n entryComponents: [\n TOOLBAR_DIALOGS\n ],\n exports: [\n EditorComponent,\n COMPONENT_DIRECTIVES,\n TOOLBAR_TOOLS,\n ToolBarModule,\n ButtonModule,\n FormsModule,\n ReactiveFormsModule,\n //needed for unit tests\n INTERNAL_COMPONENTS\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n //Kendo UI Angular Modules\n ButtonModule,\n ColorPickerModule,\n DialogModule,\n DropDownsModule,\n NumericTextBoxModule,\n CheckBoxModule,\n ToolBarModule,\n TextBoxModule\n ]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(EditorModule, { declarations: function () { return [EditorComponent, EditorAlignLeftButtonDirective, EditorAlignCenterButtonDirective, EditorAlignRightButtonDirective, EditorAlignJustifyButtonDirective, EditorInsertFileButtonDirective, EditorRedoButtonDirective, EditorUndoButtonDirective, EditorInsertImageButtonDirective, EditorIndentButtonDirective, EditorOutdentButtonDirective, EditorCreateLinkButtonDirective, EditorUnlinkButtonDirective, EditorInsertOrderedListButtonDirective, EditorInsertUnorderedListButtonDirective, EditorViewSourceButtonDirective, EditorBoldButtonDirective, EditorItalicButtonDirective, EditorUnderlineButtonDirective, EditorStrikethroughButtonDirective, EditorSubscriptButtonDirective, EditorSuperscriptButtonDirective, EditorForeColorDirective, EditorBackColorDirective, EditorCleanFormattingButtonDirective, EditorAddColumnBeforeButtonDirective, EditorAddColumnAfterButtonDirective, EditorAddRowBeforeButtonDirective, EditorAddRowAfterButtonDirective, EditorDeleteColumnButtonDirective, EditorDeleteRowButtonDirective, EditorDeleteTableButtonDirective, EditorMergeCellsButtonDirective, EditorSplitCellButtonDirective, CustomMessagesComponent, LocalizedMessagesDirective, DropDownToolDirective, EditorPrintDirective, EditorSelectAllButtonDirective, EditorBlockquoteDirective, EditorFontSizeComponent, EditorFontFamilyComponent, EditorFormatComponent, EditorColorPickerComponent, EditorInsertTableButtonComponent, FileLinkDialogComponent, ImageDialogComponent, SourceDialogComponent, FormatDialogComponent, ColorPickerDialogComponent, FontFamilyDialogComponent, FontSizeDialogComponent, InsertTableDialogComponent, PopupTableGridComponent, FormatDropDownListComponent, FontFamilyDropDownListComponent, FontSizeDropDownListComponent]; }, imports: function () { return [CommonModule,\n FormsModule,\n ReactiveFormsModule,\n //Kendo UI Angular Modules\n ButtonModule,\n ColorPickerModule,\n DialogModule,\n DropDownsModule,\n NumericTextBoxModule,\n CheckBoxModule,\n ToolBarModule,\n TextBoxModule]; }, exports: function () { return [EditorComponent, EditorAlignLeftButtonDirective, EditorAlignCenterButtonDirective, EditorAlignRightButtonDirective, EditorAlignJustifyButtonDirective, EditorInsertFileButtonDirective, EditorRedoButtonDirective, EditorUndoButtonDirective, EditorInsertImageButtonDirective, EditorIndentButtonDirective, EditorOutdentButtonDirective, EditorCreateLinkButtonDirective, EditorUnlinkButtonDirective, EditorInsertOrderedListButtonDirective, EditorInsertUnorderedListButtonDirective, EditorViewSourceButtonDirective, EditorBoldButtonDirective, EditorItalicButtonDirective, EditorUnderlineButtonDirective, EditorStrikethroughButtonDirective, EditorSubscriptButtonDirective, EditorSuperscriptButtonDirective, EditorForeColorDirective, EditorBackColorDirective, EditorCleanFormattingButtonDirective, EditorAddColumnBeforeButtonDirective, EditorAddColumnAfterButtonDirective, EditorAddRowBeforeButtonDirective, EditorAddRowAfterButtonDirective, EditorDeleteColumnButtonDirective, EditorDeleteRowButtonDirective, EditorDeleteTableButtonDirective, EditorMergeCellsButtonDirective, EditorSplitCellButtonDirective, CustomMessagesComponent, LocalizedMessagesDirective, DropDownToolDirective, EditorPrintDirective, EditorSelectAllButtonDirective, EditorBlockquoteDirective, EditorFontSizeComponent, EditorFontFamilyComponent, EditorFormatComponent, EditorColorPickerComponent, EditorInsertTableButtonComponent, ToolBarModule,\n ButtonModule,\n FormsModule,\n ReactiveFormsModule, PopupTableGridComponent, FormatDropDownListComponent, FontFamilyDropDownListComponent, FontSizeDropDownListComponent]; } }); })();\n\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { semanticNodes, semanticTagNames, ColorPickerDialogComponent, FileLinkDialogComponent, FontFamilyDialogComponent, FontSizeDialogComponent, FormatDialogComponent, ImageDialogComponent, InsertTableDialogComponent, SourceDialogComponent, CustomMessagesComponent, EditorLocalizationService, LocalizedMessagesDirective, Messages, EditorAlignCenterButtonDirective, EditorAlignJustifyButtonDirective, EditorAlignLeftButtonDirective, EditorAlignRightButtonDirective, EditorBlockquoteDirective, EditorBackColorDirective, EditorColorPickerComponent, EditorForeColorDirective, EditorCleanFormattingButtonDirective, FontFamilyDropDownListComponent, EditorFontFamilyComponent, FontSizeDropDownListComponent, EditorFontSizeComponent, FormatDropDownListComponent, EditorFormatComponent, EditorRedoButtonDirective, EditorUndoButtonDirective, EditorInsertImageButtonDirective, EditorIndentButtonDirective, EditorOutdentButtonDirective, EditorCreateLinkButtonDirective, EditorInsertFileButtonDirective, EditorUnlinkButtonDirective, EditorInsertOrderedListButtonDirective, EditorInsertUnorderedListButtonDirective, EditorPrintDirective, EditorSelectAllButtonDirective, DropDownToolDirective, EditorCommandBase, EditorCommandButton, EditorCommandDialog, EditorViewSourceButtonDirective, EditorAddColumnAfterButtonDirective, EditorAddColumnBeforeButtonDirective, EditorAddRowAfterButtonDirective, EditorAddRowBeforeButtonDirective, EditorDeleteColumnButtonDirective, EditorDeleteRowButtonDirective, EditorDeleteTableButtonDirective, EditorInsertTableButtonComponent, EditorMergeCellsButtonDirective, EditorSplitCellButtonDirective, PopupTableGridComponent, EditorToolsService, EditorBoldButtonDirective, EditorItalicButtonDirective, EditorStrikethroughButtonDirective, EditorSubscriptButtonDirective, EditorSuperscriptButtonDirective, EditorUnderlineButtonDirective, EditorComponent, EditorModule, schema, EditorPasteEvent };\n\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, ContentChildren, QueryList, Component, NgZone, Directive, Optional, TemplateRef, ContentChild, forwardRef, SkipSelf, Host, NgModule } from '@angular/core';\nimport { saveAs } from '@progress/kendo-file-saver';\nimport { IntlService, ExcelExporter, Workbook } from '@progress/kendo-ooxml';\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@progress/kendo-angular-l10n';\nexport * from '@progress/kendo-ooxml';\nimport { toString } from '@telerik/kendo-intl';\nimport { LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';\nimport { validatePackage } from '@progress/kendo-licensing';\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.ɵfac = function ColumnBase_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nColumnBase.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ColumnBase, contentQueries: function ColumnBase_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, ColumnBase, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.children = _t);\n } }, inputs: { title: \"title\", width: \"width\", locked: \"locked\", hidden: \"hidden\", headerCellOptions: \"headerCellOptions\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColumnBase.prototype, \"title\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ColumnBase.prototype, \"width\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnBase.prototype, \"locked\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnBase.prototype, \"hidden\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColumnBase.prototype, \"headerCellOptions\", void 0);\n__decorate([\n ContentChildren(ColumnBase),\n __metadata(\"design:type\", QueryList)\n], ColumnBase.prototype, \"children\", void 0);\n\n/**\n * @hidden\n */\nconst packageMetadata = {\n name: '@progress/kendo-angular-excel-export',\n productName: 'Kendo UI for Angular',\n productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],\n publishDate: 1646218926,\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\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 */\nlet ExcelExportComponent = class 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 validatePackage(packageMetadata);\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.ɵfac = function ExcelExportComponent_Factory(t) { return new (t || ExcelExportComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nExcelExportComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ExcelExportComponent, selectors: [[\"kendo-excelexport\"]], contentQueries: function ExcelExportComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, ColumnBase, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.columns = _t);\n } }, inputs: { fileName: \"fileName\", filterable: \"filterable\", collapsible: \"collapsible\", creator: \"creator\", date: \"date\", forceProxy: \"forceProxy\", proxyURL: \"proxyURL\", data: \"data\", group: \"group\", paddingCellOptions: \"paddingCellOptions\", headerPaddingCellOptions: \"headerPaddingCellOptions\" }, exportAs: [\"kendoExcelExport\"], features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.excelexport'\n }\n ])], decls: 0, vars: 0, template: function ExcelExportComponent_Template(rf, ctx) { }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ExcelExportComponent.prototype, \"fileName\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ExcelExportComponent.prototype, \"filterable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ExcelExportComponent.prototype, \"collapsible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ExcelExportComponent.prototype, \"creator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], ExcelExportComponent.prototype, \"date\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ExcelExportComponent.prototype, \"forceProxy\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ExcelExportComponent.prototype, \"proxyURL\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], ExcelExportComponent.prototype, \"data\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], ExcelExportComponent.prototype, \"group\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ExcelExportComponent.prototype, \"paddingCellOptions\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ExcelExportComponent.prototype, \"headerPaddingCellOptions\", void 0);\n__decorate([\n ContentChildren(ColumnBase, { descendants: true }),\n __metadata(\"design:type\", QueryList)\n], ExcelExportComponent.prototype, \"columns\", void 0);\nExcelExportComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService, NgZone])\n], ExcelExportComponent);\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 */\nlet GroupHeaderTemplateDirective = class GroupHeaderTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nGroupHeaderTemplateDirective.ɵfac = function GroupHeaderTemplateDirective_Factory(t) { return new (t || GroupHeaderTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nGroupHeaderTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: GroupHeaderTemplateDirective, selectors: [[\"\", \"kendoExcelExportGroupHeaderTemplate\", \"\"]] });\nGroupHeaderTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], GroupHeaderTemplateDirective);\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 */\nlet GroupHeaderColumnTemplateDirective = class GroupHeaderColumnTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nGroupHeaderColumnTemplateDirective.ɵfac = function GroupHeaderColumnTemplateDirective_Factory(t) { return new (t || GroupHeaderColumnTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nGroupHeaderColumnTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: GroupHeaderColumnTemplateDirective, selectors: [[\"\", \"kendoExcelExportGroupHeaderColumnTemplate\", \"\"]] });\nGroupHeaderColumnTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], GroupHeaderColumnTemplateDirective);\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 */\nlet GroupFooterTemplateDirective = class GroupFooterTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nGroupFooterTemplateDirective.ɵfac = function GroupFooterTemplateDirective_Factory(t) { return new (t || GroupFooterTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nGroupFooterTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: GroupFooterTemplateDirective, selectors: [[\"\", \"kendoExcelExportGroupFooterTemplate\", \"\"]] });\nGroupFooterTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], GroupFooterTemplateDirective);\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 */\nlet FooterTemplateDirective = class FooterTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nFooterTemplateDirective.ɵfac = function FooterTemplateDirective_Factory(t) { return new (t || FooterTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nFooterTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: FooterTemplateDirective, selectors: [[\"\", \"kendoExcelExportFooterTemplate\", \"\"]] });\nFooterTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], FooterTemplateDirective);\n\nvar ColumnComponent_1;\n/**\n * Represents the columns of the Kendo UI Excel Export component for Angular.\n */\nlet ColumnComponent = ColumnComponent_1 = class ColumnComponent extends ColumnBase {\n constructor(parent) {\n super(parent);\n }\n};\nColumnComponent.ɵfac = function ColumnComponent_Factory(t) { return new (t || ColumnComponent)(ɵngcc0.ɵɵdirectiveInject(ColumnBase, 13)); };\nColumnComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColumnComponent, selectors: [[\"kendo-excelexport-column\"]], contentQueries: function ColumnComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, GroupHeaderTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, GroupHeaderColumnTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, GroupFooterTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, FooterTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.groupHeaderTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.groupHeaderColumnTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.groupFooterTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.footerTemplate = _t.first);\n } }, inputs: { field: \"field\", cellOptions: \"cellOptions\", groupHeaderCellOptions: \"groupHeaderCellOptions\", groupFooterCellOptions: \"groupFooterCellOptions\", footerCellOptions: \"footerCellOptions\" }, features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: ColumnBase,\n useExisting: forwardRef(() => ColumnComponent_1) // tslint:disable-line:no-forward-ref\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function ColumnComponent_Template(rf, ctx) { }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColumnComponent.prototype, \"field\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColumnComponent.prototype, \"cellOptions\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColumnComponent.prototype, \"groupHeaderCellOptions\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColumnComponent.prototype, \"groupFooterCellOptions\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColumnComponent.prototype, \"footerCellOptions\", void 0);\n__decorate([\n ContentChild(GroupHeaderTemplateDirective, { static: false }),\n __metadata(\"design:type\", GroupHeaderTemplateDirective)\n], ColumnComponent.prototype, \"groupHeaderTemplate\", void 0);\n__decorate([\n ContentChild(GroupHeaderColumnTemplateDirective, { static: false }),\n __metadata(\"design:type\", GroupHeaderColumnTemplateDirective)\n], ColumnComponent.prototype, \"groupHeaderColumnTemplate\", void 0);\n__decorate([\n ContentChild(GroupFooterTemplateDirective, { static: false }),\n __metadata(\"design:type\", GroupFooterTemplateDirective)\n], ColumnComponent.prototype, \"groupFooterTemplate\", void 0);\n__decorate([\n ContentChild(FooterTemplateDirective, { static: false }),\n __metadata(\"design:type\", FooterTemplateDirective)\n], ColumnComponent.prototype, \"footerTemplate\", void 0);\nColumnComponent = ColumnComponent_1 = __decorate([ __param(0, SkipSelf()), __param(0, Host()), __param(0, Optional()),\n __metadata(\"design:paramtypes\", [ColumnBase])\n], ColumnComponent);\n\nvar ColumnGroupComponent_1;\n/**\n * Represents the column group component of the Kendo UI Excel Export component.\n */\nlet ColumnGroupComponent = ColumnGroupComponent_1 = class ColumnGroupComponent extends ColumnBase {\n constructor(parent) {\n super(parent);\n this.parent = parent;\n }\n};\nColumnGroupComponent.ɵfac = function ColumnGroupComponent_Factory(t) { return new (t || ColumnGroupComponent)(ɵngcc0.ɵɵdirectiveInject(ColumnBase, 13)); };\nColumnGroupComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColumnGroupComponent, selectors: [[\"kendo-excelexport-column-group\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: ColumnBase,\n useExisting: forwardRef(() => ColumnGroupComponent_1) // tslint:disable-line:no-forward-ref\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function ColumnGroupComponent_Template(rf, ctx) { }, encapsulation: 2 });\nColumnGroupComponent = ColumnGroupComponent_1 = __decorate([ __param(0, SkipSelf()), __param(0, Host()), __param(0, Optional()),\n __metadata(\"design:paramtypes\", [ColumnBase])\n], ColumnGroupComponent);\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 */\nlet ExcelExportModule = class ExcelExportModule {\n};\nExcelExportModule.ɵfac = function ExcelExportModule_Factory(t) { return new (t || ExcelExportModule)(); };\nExcelExportModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: ExcelExportModule });\nExcelExportModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ExcelExportComponent, [{\n type: Component,\n 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 }], function () { return [{ type: ɵngcc1.LocalizationService }, { type: ɵngcc0.NgZone }]; }, { fileName: [{\n type: Input\n }], columns: [{\n type: ContentChildren,\n args: [ColumnBase, { descendants: true }]\n }], filterable: [{\n type: Input\n }], collapsible: [{\n type: Input\n }], creator: [{\n type: Input\n }], date: [{\n type: Input\n }], forceProxy: [{\n type: Input\n }], proxyURL: [{\n type: Input\n }], data: [{\n type: Input\n }], group: [{\n type: Input\n }], paddingCellOptions: [{\n type: Input\n }], headerPaddingCellOptions: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(GroupHeaderTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoExcelExportGroupHeaderTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(GroupHeaderColumnTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoExcelExportGroupHeaderColumnTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(GroupFooterTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoExcelExportGroupFooterTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FooterTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoExcelExportFooterTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: ColumnBase,\n useExisting: forwardRef(() => ColumnComponent_1) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: 'kendo-excelexport-column',\n template: ``\n }]\n }], function () { return [{ type: ColumnBase, decorators: [{\n type: SkipSelf\n }, {\n type: Host\n }, {\n type: Optional\n }] }]; }, { field: [{\n type: Input\n }], cellOptions: [{\n type: Input\n }], groupHeaderCellOptions: [{\n type: Input\n }], groupFooterCellOptions: [{\n type: Input\n }], footerCellOptions: [{\n type: Input\n }], groupHeaderTemplate: [{\n type: ContentChild,\n args: [GroupHeaderTemplateDirective, { static: false }]\n }], groupHeaderColumnTemplate: [{\n type: ContentChild,\n args: [GroupHeaderColumnTemplateDirective, { static: false }]\n }], groupFooterTemplate: [{\n type: ContentChild,\n args: [GroupFooterTemplateDirective, { static: false }]\n }], footerTemplate: [{\n type: ContentChild,\n args: [FooterTemplateDirective, { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnGroupComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: ColumnBase,\n useExisting: forwardRef(() => ColumnGroupComponent_1) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: 'kendo-excelexport-column-group',\n template: ``\n }]\n }], function () { return [{ type: ColumnBase, decorators: [{\n type: SkipSelf\n }, {\n type: Host\n }, {\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ExcelExportModule, [{\n type: NgModule,\n args: [{\n declarations: [declarations],\n exports: [declarations]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(ExcelExportModule, { declarations: [ExcelExportComponent, ColumnComponent, ColumnGroupComponent, FooterTemplateDirective, GroupFooterTemplateDirective, GroupHeaderTemplateDirective, GroupHeaderColumnTemplateDirective], exports: [ExcelExportComponent, ColumnComponent, ColumnGroupComponent, FooterTemplateDirective, GroupFooterTemplateDirective, GroupHeaderTemplateDirective, GroupHeaderColumnTemplateDirective] }); })();\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","/**-----------------------------------------------------------------------------------------\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 { InjectionToken, HostBinding, Input, Component, EventEmitter, Injectable, Optional, Inject, Directive, SkipSelf, ElementRef, Renderer2, NgZone, ChangeDetectorRef, TemplateRef, QueryList, ContentChildren, ContentChild, forwardRef, Host, Output, isDevMode, SecurityContext, ViewChild, ViewChildren, ViewEncapsulation, Self, ViewContainerRef, Pipe, NgModule, ComponentFactoryResolver, HostListener, ChangeDetectionStrategy } from '@angular/core';\nimport { isDocumentAvailable, Keys, DraggableDirective, isChanged, anyChanged, hasObservers, ResizeSensorComponent, KendoInput, DraggableModule, EventsModule, ResizeSensorModule, guid } from '@progress/kendo-angular-common';\nimport { merge, of, Subject, Subscription, from, interval, fromEvent, zip, BehaviorSubject, Observable } from 'rxjs';\nimport { LocalizationService, L10N_PREFIX, ComponentMessages } from '@progress/kendo-angular-l10n';\nimport { switchMap, take, filter, takeUntil, map, switchMapTo, delay, auditTime, distinctUntilChanged, tap, throttleTime, debounceTime, bufferCount } from 'rxjs/operators';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, FormGroup, NG_VALUE_ACCESSOR, ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport { validatePackage } from '@progress/kendo-licensing';\nimport { orderBy, process, isCompositeFilterDescriptor, filterBy } from '@progress/kendo-data-query';\nimport { PopupService, PopupModule } from '@progress/kendo-angular-popup';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { getter } from '@progress/kendo-common';\nimport { DropDownListComponent, DropDownListModule, AutoCompleteModule, DropDownsModule } 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 { LabelModule } from '@progress/kendo-angular-label';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { Button } from '@progress/kendo-angular-buttons';\nimport { PDFExportMarginComponent, PDFExportTemplateDirective, 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\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@progress/kendo-angular-l10n';\nimport * as ɵngcc2 from '@progress/kendo-angular-common';\nimport * as ɵngcc3 from '@progress/kendo-angular-popup';\nimport * as ɵngcc4 from '@angular/platform-browser';\nimport * as ɵngcc5 from '@angular/common';\nimport * as ɵngcc6 from '@progress/kendo-angular-inputs';\nimport * as ɵngcc7 from '@angular/forms';\nimport * as ɵngcc8 from '@progress/kendo-angular-dropdowns';\nimport * as ɵngcc9 from '@progress/kendo-angular-dateinputs';\nimport * as ɵngcc10 from '@progress/kendo-angular-intl';\nimport * as ɵngcc11 from '@progress/kendo-angular-label';\n\nconst _c0 = [\"lockedHeader\"];\nconst _c1 = [\"header\"];\nconst _c2 = [\"ariaRoot\"];\nconst _c3 = [\"footer\"];\nfunction GridComponent_kendo_grid_toolbar_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-grid-toolbar\", 11);\n} }\nfunction GridComponent_kendo_pager_3_Template(rf, ctx) { if (rf & 1) {\n const _r10 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-pager\", 12);\n ɵngcc0.ɵɵlistener(\"pageChange\", function GridComponent_kendo_pager_3_Template_kendo_pager_pageChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r10); const ctx_r9 = ɵngcc0.ɵɵnextContext(); return ctx_r9.notifyPageChange(\"pager\", $event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"tabindex\", ctx_r1.navigable ? \"0\" : \"-1\")(\"template\", ctx_r1.pagerTemplate)(\"pageSize\", ctx_r1.pageSize)(\"total\", ctx_r1.view.total)(\"skip\", ctx_r1.skip)(\"options\", ctx_r1.pageable);\n ɵngcc0.ɵɵattribute(\"role\", ctx_r1.navigable ? \"navigation\" : undefined);\n} }\nfunction GridComponent_kendo_grid_group_panel_4_Template(rf, ctx) { if (rf & 1) {\n const _r12 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-grid-group-panel\", 13);\n ɵngcc0.ɵɵlistener(\"change\", function GridComponent_kendo_grid_group_panel_4_Template_kendo_grid_group_panel_change_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r12); const ctx_r11 = ɵngcc0.ɵɵnextContext(); return ctx_r11.groupChange.emit($event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"text\", ctx_r2.groupableEmptyText)(\"groups\", ctx_r2.group);\n} }\nfunction GridComponent_ng_template_7_div_0_div_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 25, 26)(2, \"table\", 27);\n ɵngcc0.ɵɵelement(3, \"colgroup\", 22)(4, \"thead\", 28);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r15 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵstyleProp(\"width\", ctx_r15.lockedWidth, \"px\");\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵstyleProp(\"width\", ctx_r15.lockedWidth, \"px\");\n ɵngcc0.ɵɵproperty(\"locked\", true);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"columns\", ctx_r15.lockedLeafColumns)(\"groups\", ctx_r15.group)(\"detailTemplate\", ctx_r15.detailTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"resizable\", ctx_r15.resizable)(\"scrollable\", true)(\"columns\", ctx_r15.lockedColumns)(\"totalColumnLevels\", ctx_r15.totalColumnLevels)(\"sort\", ctx_r15.sort)(\"groups\", ctx_r15.group)(\"filter\", ctx_r15.filter)(\"filterable\", ctx_r15.filterable)(\"groupable\", ctx_r15.showGroupPanel)(\"reorderable\", ctx_r15.reorderable)(\"sortable\", ctx_r15.sortable)(\"columnMenu\", ctx_r15.columnMenuOptions)(\"columnMenuTemplate\", ctx_r15.columnMenuTemplate)(\"totalColumnsCount\", ctx_r15.leafColumns.length)(\"detailTemplate\", ctx_r15.detailTemplate)(\"tabIndex\", ctx_r15.navigable ? \"-1\" : \"0\");\n} }\nfunction GridComponent_ng_template_7_div_0_div_7_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 29);\n ɵngcc0.ɵɵelement(1, \"div\");\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r17 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵstyleProp(\"width\", ctx_r17.columnsContainer.unlockedWidth, \"px\");\n} }\nconst _c142 = function () { return []; };\nfunction GridComponent_ng_template_7_div_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 17);\n ɵngcc0.ɵɵtemplate(1, GridComponent_ng_template_7_div_0_div_1_Template, 5, 24, \"div\", 18);\n ɵngcc0.ɵɵelementStart(2, \"div\", 19, 20)(4, \"table\", 21);\n ɵngcc0.ɵɵelement(5, \"colgroup\", 22)(6, \"thead\", 23);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(7, GridComponent_ng_template_7_div_0_div_7_Template, 2, 2, \"div\", 24);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r13 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵstyleProp(\"padding\", ctx_r13.headerPadding);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r13.isLocked);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"kendoGridResizableContainer\", ctx_r13.lockedLeafColumns.length)(\"lockedWidth\", ctx_r13.lockedWidth + ctx_r13.scrollbarWidth + 2);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵstyleProp(\"width\", ctx_r13.nonLockedWidth, \"px\");\n ɵngcc0.ɵɵproperty(\"virtualColumns\", ctx_r13.virtualColumns);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"columns\", ctx_r13.headerLeafColumns)(\"groups\", ctx_r13.isLocked ? ɵngcc0.ɵɵpureFunction0(29, _c142) : ctx_r13.group)(\"detailTemplate\", ctx_r13.detailTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"resizable\", ctx_r13.resizable)(\"scrollable\", true)(\"columns\", ctx_r13.headerColumns)(\"totalColumnLevels\", ctx_r13.totalColumnLevels)(\"sort\", ctx_r13.sort)(\"filter\", ctx_r13.filter)(\"filterable\", ctx_r13.filterable)(\"groupable\", ctx_r13.showGroupPanel)(\"reorderable\", ctx_r13.reorderable)(\"groups\", ctx_r13.isLocked ? ɵngcc0.ɵɵpureFunction0(30, _c142) : ctx_r13.group)(\"sortable\", ctx_r13.sortable)(\"columnMenu\", ctx_r13.columnMenuOptions)(\"columnMenuTemplate\", ctx_r13.columnMenuTemplate)(\"lockedColumnsCount\", ctx_r13.lockedLeafColumns.length)(\"totalColumnsCount\", ctx_r13.leafColumns.length)(\"detailTemplate\", ctx_r13.detailTemplate)(\"tabIndex\", ctx_r13.navigable ? \"-1\" : \"0\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r13.virtualColumns);\n} }\nfunction GridComponent_ng_template_7_div_2_div_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 37)(1, \"table\", 27);\n ɵngcc0.ɵɵelement(2, \"colgroup\", 35)(3, \"tfoot\", 38);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r19 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵstyleProp(\"width\", ctx_r19.lockedWidth, \"px\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵstyleProp(\"width\", ctx_r19.lockedWidth, \"px\");\n ɵngcc0.ɵɵproperty(\"locked\", true);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"columns\", ctx_r19.lockedLeafColumns)(\"groups\", ctx_r19.group)(\"detailTemplate\", ctx_r19.detailTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"scrollable\", true)(\"groups\", ctx_r19.group)(\"columns\", ctx_r19.lockedLeafColumns)(\"detailTemplate\", ctx_r19.detailTemplate)(\"logicalRowIndex\", ctx_r19.ariaRowCount);\n} }\nfunction GridComponent_ng_template_7_div_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 30);\n ɵngcc0.ɵɵtemplate(1, GridComponent_ng_template_7_div_2_div_1_Template, 4, 13, \"div\", 31);\n ɵngcc0.ɵɵelementStart(2, \"div\", 32, 33)(4, \"table\", 34);\n ɵngcc0.ɵɵelement(5, \"colgroup\", 35)(6, \"tfoot\", 36);\n ɵngcc0.ɵɵelementEnd()()();\n} if (rf & 2) {\n const ctx_r14 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵstyleProp(\"padding\", ctx_r14.headerPadding);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r14.lockedLeafColumns.length);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"kendoGridResizableContainer\", ctx_r14.lockedLeafColumns.length)(\"lockedWidth\", ctx_r14.lockedWidth + ctx_r14.scrollbarWidth + 3);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵstyleProp(\"width\", ctx_r14.nonLockedWidth, \"px\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"columns\", ctx_r14.nonLockedLeafColumns)(\"groups\", ctx_r14.isLocked ? ɵngcc0.ɵɵpureFunction0(16, _c142) : ctx_r14.group)(\"detailTemplate\", ctx_r14.detailTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"logicalRowIndex\", ctx_r14.ariaRowCount)(\"scrollable\", true)(\"groups\", ctx_r14.isLocked ? ɵngcc0.ɵɵpureFunction0(17, _c142) : ctx_r14.group)(\"columns\", ctx_r14.nonLockedLeafColumns)(\"lockedColumnsCount\", ctx_r14.lockedLeafColumns.length)(\"detailTemplate\", ctx_r14.detailTemplate);\n} }\nfunction GridComponent_ng_template_7_Template(rf, ctx) { if (rf & 1) {\n const _r22 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵtemplate(0, GridComponent_ng_template_7_div_0_Template, 8, 31, \"div\", 14);\n ɵngcc0.ɵɵelementStart(1, \"kendo-grid-list\", 15);\n ɵngcc0.ɵɵlistener(\"pageChange\", function GridComponent_ng_template_7_Template_kendo_grid_list_pageChange_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r22); const ctx_r21 = ɵngcc0.ɵɵnextContext(); return ctx_r21.notifyPageChange(\"list\", $event); })(\"scrollBottom\", function GridComponent_ng_template_7_Template_kendo_grid_list_scrollBottom_1_listener() { ɵngcc0.ɵɵrestoreView(_r22); const ctx_r23 = ɵngcc0.ɵɵnextContext(); return ctx_r23.notifyScrollBottom(); })(\"contentScroll\", function GridComponent_ng_template_7_Template_kendo_grid_list_contentScroll_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r22); const ctx_r24 = ɵngcc0.ɵɵnextContext(); return ctx_r24.contentScroll.emit($event); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(2, GridComponent_ng_template_7_div_2_Template, 7, 18, \"div\", 16);\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r4.hideHeader);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"data\", ctx_r4.view)(\"rowHeight\", ctx_r4.rowHeight)(\"detailRowHeight\", ctx_r4.detailRowHeight)(\"total\", ctx_r4.totalCount)(\"take\", ctx_r4.pageSize)(\"groups\", ctx_r4.group)(\"groupable\", ctx_r4.groupable)(\"skip\", ctx_r4.skip)(\"trackBy\", ctx_r4.trackBy)(\"columns\", ctx_r4.columnsContainer)(\"selectable\", ctx_r4.selectable)(\"filterable\", ctx_r4.filterable)(\"detailTemplate\", ctx_r4.detailTemplate)(\"noRecordsTemplate\", ctx_r4.noRecordsTemplate)(\"rowClass\", ctx_r4.rowClass)(\"rowSticky\", ctx_r4.rowSticky)(\"loading\", ctx_r4.loading)(\"isVirtual\", ctx_r4.isVirtual)(\"cellLoadingTemplate\", ctx_r4.cellLoadingTemplate == null ? null : ctx_r4.cellLoadingTemplate.templateRef)(\"loadingTemplate\", ctx_r4.loadingTemplate == null ? null : ctx_r4.loadingTemplate.templateRef)(\"virtualColumns\", ctx_r4.virtualColumns)(\"enableDrag\", ctx_r4.marqueeSelection);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.showFooter);\n} }\nfunction GridComponent_ng_template_8_thead_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"thead\", 42);\n} if (rf & 2) {\n const ctx_r25 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"resizable\", ctx_r25.resizable)(\"scrollable\", false)(\"columns\", ctx_r25.visibleColumns)(\"totalColumnLevels\", ctx_r25.totalColumnLevels)(\"groups\", ctx_r25.group)(\"groupable\", ctx_r25.showGroupPanel)(\"reorderable\", ctx_r25.reorderable)(\"sort\", ctx_r25.sort)(\"sortable\", ctx_r25.sortable)(\"filter\", ctx_r25.filter)(\"filterable\", ctx_r25.filterable)(\"columnMenu\", ctx_r25.columnMenuOptions)(\"columnMenuTemplate\", ctx_r25.columnMenuTemplate)(\"detailTemplate\", ctx_r25.detailTemplate)(\"tabIndex\", ctx_r25.navigable ? \"-1\" : \"0\");\n} }\nfunction GridComponent_ng_template_8_tfoot_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"tfoot\", 43);\n} if (rf & 2) {\n const ctx_r26 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"scrollable\", false)(\"logicalRowIndex\", ctx_r26.ariaRowCount)(\"groups\", ctx_r26.group)(\"columns\", ctx_r26.leafColumns)(\"detailTemplate\", ctx_r26.detailTemplate);\n} }\nfunction GridComponent_ng_template_8_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"table\");\n ɵngcc0.ɵɵelement(1, \"colgroup\", 35);\n ɵngcc0.ɵɵtemplate(2, GridComponent_ng_template_8_thead_2_Template, 1, 15, \"thead\", 39);\n ɵngcc0.ɵɵelement(3, \"tbody\", 40);\n ɵngcc0.ɵɵtemplate(4, GridComponent_ng_template_8_tfoot_4_Template, 1, 5, \"tfoot\", 41);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r5 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵstyleProp(\"table-layout\", ctx_r5.resizable ? \"fixed\" : null);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"columns\", ctx_r5.leafColumns)(\"groups\", ctx_r5.group)(\"detailTemplate\", ctx_r5.detailTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r5.hideHeader);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"isLoading\", ctx_r5.loading)(\"groups\", ctx_r5.group)(\"data\", ctx_r5.view)(\"skip\", ctx_r5.skip)(\"columns\", ctx_r5.leafColumns)(\"selectable\", ctx_r5.selectable)(\"filterable\", ctx_r5.filterable)(\"noRecordsTemplate\", ctx_r5.noRecordsTemplate)(\"detailTemplate\", ctx_r5.detailTemplate)(\"showGroupFooters\", ctx_r5.showGroupFooters)(\"trackBy\", ctx_r5.trackBy)(\"rowClass\", ctx_r5.rowClass)(\"enableDrag\", ctx_r5.marqueeSelection);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r5.showFooter);\n} }\nfunction GridComponent_div_9_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"div\", 44);\n} if (rf & 2) {\n const ctx_r6 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"loadingTemplate\", ctx_r6.loadingTemplate);\n} }\nfunction GridComponent_kendo_pager_10_Template(rf, ctx) { if (rf & 1) {\n const _r28 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-pager\", 45);\n ɵngcc0.ɵɵlistener(\"pageChange\", function GridComponent_kendo_pager_10_Template_kendo_pager_pageChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r28); const ctx_r27 = ɵngcc0.ɵɵnextContext(); return ctx_r27.notifyPageChange(\"pager\", $event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r7 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"tabindex\", ctx_r7.navigable ? \"0\" : \"-1\")(\"template\", ctx_r7.pagerTemplate)(\"pageSize\", ctx_r7.pageSize)(\"total\", ctx_r7.view.total)(\"skip\", ctx_r7.skip)(\"options\", ctx_r7.pageable);\n ɵngcc0.ɵɵattribute(\"role\", ctx_r7.navigable ? \"navigation\" : undefined);\n} }\nfunction GridComponent_kendo_grid_toolbar_11_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-grid-toolbar\", 46);\n} }\nconst _c143 = [\"container\"];\nconst _c144 = [\"lockedContainer\"];\nconst _c145 = [\"lockedTable\"];\nconst _c146 = [\"table\"];\nconst _c147 = function (a0, a1, a2, a3) { return { keydown: a0, scroll: a1, mousewheel: a2, DOMMouseScroll: a3 }; };\nfunction ListComponent_div_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 11, 12)(2, \"div\", 3)(3, \"table\", 13, 14);\n ɵngcc0.ɵɵelement(5, \"colgroup\", 6)(6, \"tbody\", 15);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelement(7, \"kendo-resize-sensor\");\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(8, \"div\", 9);\n ɵngcc0.ɵɵelement(9, \"div\");\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵstyleProp(\"width\", ctx_r0.lockedWidth, \"px\");\n ɵngcc0.ɵɵproperty(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction4(28, _c147, ctx_r0.lockedKeydown, ctx_r0.lockedScroll, ctx_r0.lockedMousewheel, ctx_r0.lockedMousewheel))(\"scope\", ctx_r0);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵstyleProp(\"width\", ctx_r0.lockedWidth, \"px\");\n ɵngcc0.ɵɵproperty(\"locked\", true);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"groups\", ctx_r0.groups)(\"columns\", ctx_r0.lockedLeafColumns)(\"detailTemplate\", ctx_r0.detailTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"groups\", ctx_r0.groups)(\"isLocked\", true)(\"data\", ctx_r0.data)(\"noRecordsText\", \"\")(\"columns\", ctx_r0.lockedLeafColumns)(\"totalColumnsCount\", ctx_r0.leafColumns.length)(\"detailTemplate\", ctx_r0.detailTemplate)(\"showGroupFooters\", ctx_r0.showFooter)(\"skip\", ctx_r0.skip)(\"selectable\", ctx_r0.selectable)(\"trackBy\", ctx_r0.trackBy)(\"filterable\", ctx_r0.filterable)(\"rowClass\", ctx_r0.rowClass)(\"isLoading\", ctx_r0.loading)(\"isVirtual\", ctx_r0.isVirtual)(\"cellLoadingTemplate\", ctx_r0.cellLoadingTemplate);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵstyleProp(\"height\", ctx_r0.totalHeight, \"px\");\n} }\nfunction ListComponent_kendo_resize_sensor_8_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-resize-sensor\");\n} }\nfunction ListComponent_kendo_resize_sensor_9_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-resize-sensor\");\n} }\nfunction ListComponent_div_12_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 16);\n ɵngcc0.ɵɵelement(1, \"div\");\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r5 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵstyleProp(\"width\", ctx_r5.totalWidth, \"px\");\n} }\nconst _c148 = [\"kendoGridFilterRow\", \"\"];\nfunction FilterRowComponent_td_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"td\", 3);\n} if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-group-cell\", true);\n} }\nfunction FilterRowComponent_td_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"td\", 3);\n} if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-hierarchy-cell\", true);\n} }\nfunction FilterRowComponent_td_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"td\", 4);\n} if (rf & 2) {\n const column_r4 = ctx.$implicit;\n const columnIndex_r5 = ctx.index;\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"k-grid-header-sticky\", column_r4.sticky);\n ɵngcc0.ɵɵproperty(\"ngStyle\", ctx_r2.addStickyStyles(column_r4))(\"ngClass\", column_r4.filterClass)(\"column\", column_r4)(\"filter\", ctx_r2.filter)(\"logicalRowIndex\", ctx_r2.logicalRowIndex)(\"logicalColIndex\", ctx_r2.lockedColumnsCount + columnIndex_r5);\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx_r2.filterLabel(column_r4));\n} }\nconst _c149 = [\"kendoGridFilterCell\", \"\"];\nfunction FilterCellComponent_ng_template_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵelementContainer(1, 3);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"column\", ctx_r1.column)(\"filter\", ctx_r1.filter);\n} }\nfunction FilterCellComponent_ng_template_0_ng_container_2_1_ng_template_0_Template(rf, ctx) { }\nfunction FilterCellComponent_ng_template_0_ng_container_2_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, FilterCellComponent_ng_template_0_ng_container_2_1_ng_template_0_Template, 0, 0, \"ng-template\", 5);\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.column.filterCellTemplateRef)(\"ngTemplateOutletContext\", ctx_r3.templateContext);\n} }\nfunction FilterCellComponent_ng_template_0_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, FilterCellComponent_ng_template_0_ng_container_2_1_Template, 1, 2, null, 4);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r2.column.filterCellTemplateRef);\n} }\nfunction FilterCellComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0, 1);\n ɵngcc0.ɵɵtemplate(1, FilterCellComponent_ng_template_0_ng_container_1_Template, 2, 2, \"ng-container\", 2);\n ɵngcc0.ɵɵtemplate(2, FilterCellComponent_ng_template_0_ng_container_2_Template, 2, 1, \"ng-container\", 2);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngSwitch\", ctx_r0.hasTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngSwitchCase\", false);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngSwitchCase\", true);\n} }\nconst _c150 = [\"*\"];\nconst _c151 = [\"dropdown\"];\nconst _c152 = function () { return { width: \"auto\" }; };\nfunction FilterCellOperatorsComponent_kendo_dropdownlist_0_Template(rf, ctx) { if (rf & 1) {\n const _r4 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-dropdownlist\", 2, 3);\n ɵngcc0.ɵɵlistener(\"valueChange\", function FilterCellOperatorsComponent_kendo_dropdownlist_0_Template_kendo_dropdownlist_valueChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r4); const ctx_r3 = ɵngcc0.ɵɵnextContext(); return ctx_r3.onChange($event); })(\"keydown\", function FilterCellOperatorsComponent_kendo_dropdownlist_0_Template_kendo_dropdownlist_keydown_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r4); const ctx_r5 = ɵngcc0.ɵɵnextContext(); return ctx_r5.dropdownKeydown($event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"data\", ctx_r0.operators)(\"value\", ctx_r0.value)(\"valuePrimitive\", true)(\"popupSettings\", ɵngcc0.ɵɵpureFunction0(4, _c152));\n} }\nfunction FilterCellOperatorsComponent_button_1_Template(rf, ctx) { if (rf & 1) {\n const _r7 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 4);\n ɵngcc0.ɵɵlistener(\"click\", function FilterCellOperatorsComponent_button_1_Template_button_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r7); const ctx_r6 = ɵngcc0.ɵɵnextContext(); return ctx_r6.clearClick(); })(\"keydown\", function FilterCellOperatorsComponent_button_1_Template_button_keydown_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r7); const ctx_r8 = ɵngcc0.ɵɵnextContext(); return ctx_r8.clearKeydown($event); });\n ɵngcc0.ɵɵelement(1, \"span\", 5);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"title\", ctx_r1.clearText);\n} }\nconst _c153 = [\"kendoGridColGroup\", \"\"];\nfunction ColGroupComponent_ng_template_0_col_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"col\");\n} if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-group-col\", true);\n} }\nfunction ColGroupComponent_ng_template_0_col_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"col\");\n} if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-hierarchy-col\", true);\n} }\nfunction ColGroupComponent_ng_template_0_col_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"col\");\n} if (rf & 2) {\n const column_r5 = ctx.$implicit;\n ɵngcc0.ɵɵstyleProp(\"width\", column_r5.width, \"px\");\n} }\nfunction ColGroupComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ColGroupComponent_ng_template_0_col_0_Template, 1, 2, \"col\", 1);\n ɵngcc0.ɵɵtemplate(1, ColGroupComponent_ng_template_0_col_1_Template, 1, 2, \"col\", 2);\n ɵngcc0.ɵɵtemplate(2, ColGroupComponent_ng_template_0_col_2_Template, 1, 2, \"col\", 3);\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r0.groups);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r0.detailTemplate == null ? null : ctx_r0.detailTemplate.templateRef);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r0.columnsToRender)(\"ngForTrackBy\", ctx_r0.trackBy);\n} }\nconst _c154 = [\"kendoGridLoading\", \"\"];\nfunction LoadingComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵelementStart(1, \"span\", 1);\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelement(3, \"div\", 2)(4, \"div\", 3);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate(ctx_r0.loadingText);\n} }\nfunction LoadingComponent_1_ng_template_0_Template(rf, ctx) { }\nfunction LoadingComponent_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, LoadingComponent_1_ng_template_0_Template, 0, 0, \"ng-template\", 4);\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.loadingTemplate == null ? null : ctx_r1.loadingTemplate.templateRef);\n} }\nfunction PagerComponent_div_0_Template(rf, ctx) { if (rf & 1) {\n const _r6 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 4);\n ɵngcc0.ɵɵlistener(\"focusin\", function PagerComponent_div_0_Template_div_focusin_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r5 = ɵngcc0.ɵɵnextContext(); return ctx_r5.onInnerFocusIn($event, \"start\"); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"tabindex\", ctx_r0.focusTrapTabIndex);\n ɵngcc0.ɵɵattribute(\"aria-hidden\", true);\n} }\nfunction PagerComponent_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 5);\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.template.templateRef)(\"ngTemplateOutletContext\", ctx_r1.templateContext);\n} }\nfunction PagerComponent_ng_container_2_kendo_pager_prev_buttons_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-pager-prev-buttons\");\n} }\nfunction PagerComponent_ng_container_2_kendo_pager_numeric_buttons_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-pager-numeric-buttons\", 8);\n} if (rf & 2) {\n const ctx_r8 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"buttonCount\", ctx_r8.settings.buttonCount);\n} }\nfunction PagerComponent_ng_container_2_kendo_pager_input_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-pager-input\");\n} }\nfunction PagerComponent_ng_container_2_kendo_pager_next_buttons_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-pager-next-buttons\");\n} }\nfunction PagerComponent_ng_container_2_kendo_pager_info_5_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-pager-info\");\n} }\nfunction PagerComponent_ng_container_2_kendo_pager_page_sizes_6_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-pager-page-sizes\", 9, 10);\n} if (rf & 2) {\n const ctx_r12 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"pageSizes\", ctx_r12.settings.pageSizes);\n} }\nfunction PagerComponent_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, PagerComponent_ng_container_2_kendo_pager_prev_buttons_1_Template, 1, 0, \"kendo-pager-prev-buttons\", 2);\n ɵngcc0.ɵɵtemplate(2, PagerComponent_ng_container_2_kendo_pager_numeric_buttons_2_Template, 1, 1, \"kendo-pager-numeric-buttons\", 6);\n ɵngcc0.ɵɵtemplate(3, PagerComponent_ng_container_2_kendo_pager_input_3_Template, 1, 0, \"kendo-pager-input\", 2);\n ɵngcc0.ɵɵtemplate(4, PagerComponent_ng_container_2_kendo_pager_next_buttons_4_Template, 1, 0, \"kendo-pager-next-buttons\", 2);\n ɵngcc0.ɵɵtemplate(5, PagerComponent_ng_container_2_kendo_pager_info_5_Template, 1, 0, \"kendo-pager-info\", 2);\n ɵngcc0.ɵɵtemplate(6, PagerComponent_ng_container_2_kendo_pager_page_sizes_6_Template, 2, 1, \"kendo-pager-page-sizes\", 7);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r2.settings.previousNext);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r2.settings.type === \"numeric\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r2.settings.type === \"input\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r2.settings.previousNext);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r2.settings.info);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r2.settings.pageSizes);\n} }\nfunction PagerComponent_div_3_Template(rf, ctx) { if (rf & 1) {\n const _r15 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 4);\n ɵngcc0.ɵɵlistener(\"focusin\", function PagerComponent_div_3_Template_div_focusin_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r15); const ctx_r14 = ɵngcc0.ɵɵnextContext(); return ctx_r14.onInnerFocusIn($event, \"end\"); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"tabindex\", ctx_r3.focusTrapTabIndex);\n ɵngcc0.ɵɵattribute(\"aria-hidden\", true);\n} }\nfunction PagerComponent_kendo_resize_sensor_4_Template(rf, ctx) { if (rf & 1) {\n const _r17 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-resize-sensor\", 11);\n ɵngcc0.ɵɵlistener(\"resize\", function PagerComponent_kendo_resize_sensor_4_Template_kendo_resize_sensor_resize_0_listener() { ɵngcc0.ɵɵrestoreView(_r17); const ctx_r16 = ɵngcc0.ɵɵnextContext(); return ctx_r16.resizeHandler(); });\n ɵngcc0.ɵɵelementEnd();\n} }\nconst _c155 = function (a2) { return { \"k-link\": true, \"k-pager-nav\": true, \"k-state-disabled\": a2, \"k-pager-first\": true }; };\nconst _c156 = function () { return { \"k-icon\": true, \"k-i-seek-w\": true }; };\nconst _c157 = function (a2) { return { \"k-link\": true, \"k-pager-nav\": true, \"k-state-disabled\": a2, \"\": true }; };\nconst _c158 = function () { return { \"k-icon\": true, \"k-i-arrow-w\": true }; };\nconst _c159 = function () { return { \"k-icon\": true, \"k-i-arrow-e\": true }; };\nconst _c160 = function (a2) { return { \"k-link\": true, \"k-pager-nav\": true, \"k-state-disabled\": a2, \"k-pager-last\": true }; };\nconst _c161 = function () { return { \"k-icon\": true, \"k-i-seek-e\": true }; };\nfunction PagerNumericButtonsComponent_option_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"option\", 7);\n ɵngcc0.ɵɵtext(1, \"... \");\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx_r0.pageLabel(ctx_r0.start - 1));\n} }\nconst _c162 = function (a1) { return { \"k-link\": true, \"k-state-selected\": a1 }; };\nfunction PagerNumericButtonsComponent_option_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"option\", 8);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const num_r6 = ctx.$implicit;\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"value\", num_r6.toString())(\"ngClass\", ɵngcc0.ɵɵpureFunction1(5, _c162, ctx_r1.currentPage == num_r6));\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx_r1.pageLabel(num_r6))(\"aria-current\", ctx_r1.currentPage == num_r6 ? \"page\" : undefined);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", num_r6, \" \");\n} }\nfunction PagerNumericButtonsComponent_option_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"option\", 9);\n ɵngcc0.ɵɵtext(1, \"... \");\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx_r2.pageLabel(ctx_r2.end + 1));\n} }\nfunction PagerNumericButtonsComponent_li_5_Template(rf, ctx) { if (rf & 1) {\n const _r8 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\")(1, \"span\", 10);\n ɵngcc0.ɵɵlistener(\"click\", function PagerNumericButtonsComponent_li_5_Template_span_click_1_listener() { ɵngcc0.ɵɵrestoreView(_r8); const ctx_r7 = ɵngcc0.ɵɵnextContext(); return ctx_r7.changePage(ctx_r7.start - 2); })(\"keydown.enter\", function PagerNumericButtonsComponent_li_5_Template_span_keydown_enter_1_listener() { ɵngcc0.ɵɵrestoreView(_r8); const ctx_r9 = ɵngcc0.ɵɵnextContext(); return ctx_r9.changePage(ctx_r9.start - 2); });\n ɵngcc0.ɵɵtext(2, \"...\");\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx_r3.pageLabel(ctx_r3.start - 1));\n} }\nconst _c163 = function (a1) { return { \"k-link\": true, \"k-state-selected\": a1, \"k-pager-nav\": true }; };\nfunction PagerNumericButtonsComponent_li_6_Template(rf, ctx) { if (rf & 1) {\n const _r12 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\")(1, \"span\", 11);\n ɵngcc0.ɵɵlistener(\"click\", function PagerNumericButtonsComponent_li_6_Template_span_click_1_listener() { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r12); const num_r10 = restoredCtx.$implicit; const ctx_r11 = ɵngcc0.ɵɵnextContext(); return ctx_r11.changePage(num_r10 - 1); })(\"keydown.enter\", function PagerNumericButtonsComponent_li_6_Template_span_keydown_enter_1_listener() { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r12); const num_r10 = restoredCtx.$implicit; const ctx_r13 = ɵngcc0.ɵɵnextContext(); return ctx_r13.changePage(num_r10 - 1); });\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const num_r10 = ctx.$implicit;\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction1(3, _c163, ctx_r4.currentPage == num_r10));\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx_r4.pageLabel(num_r10));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", num_r10, \" \");\n} }\nfunction PagerNumericButtonsComponent_li_7_Template(rf, ctx) { if (rf & 1) {\n const _r15 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\")(1, \"span\", 10);\n ɵngcc0.ɵɵlistener(\"click\", function PagerNumericButtonsComponent_li_7_Template_span_click_1_listener() { ɵngcc0.ɵɵrestoreView(_r15); const ctx_r14 = ɵngcc0.ɵɵnextContext(); return ctx_r14.changePage(ctx_r14.end); })(\"keydown.enter\", function PagerNumericButtonsComponent_li_7_Template_span_keydown_enter_1_listener() { ɵngcc0.ɵɵrestoreView(_r15); const ctx_r16 = ɵngcc0.ɵɵnextContext(); return ctx_r16.changePage(ctx_r16.end); });\n ɵngcc0.ɵɵtext(2, \"...\");\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r5 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx_r5.pageLabel(ctx_r5.end + 1));\n} }\nconst _c164 = function () { return { \"k-pager-numbers\": true, \"k-reset\": true }; };\nconst _c165 = function () { return { \"k-pager-input\": true, \"k-label\": true }; };\nconst _c166 = function (a0, a1) { return { keydown: a0, focusout: a1 }; };\nconst _c167 = [\"kendoGridGroupHeader\", \"\"];\nfunction GroupHeaderComponent_ng_template_0_td_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"td\", 4);\n} }\nfunction GroupHeaderComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, GroupHeaderComponent_ng_template_0_td_0_Template, 1, 0, \"td\", 3);\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r0.prefixGroupCell(ctx_r0.item));\n} }\nfunction GroupHeaderComponent_td_1_ng_template_2_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n ɵngcc0.ɵɵpipe(1, \"valueOf\");\n} if (rf & 2) {\n const ctx_r6 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵtextInterpolate2(\" \", ctx_r6.groupTitle(ctx_r6.item), \": \", ɵngcc0.ɵɵpipeBind3(1, 2, ctx_r6.item.data, \"value\", ctx_r6.formatForGroup(ctx_r6.item)), \" \");\n} }\nfunction GroupHeaderComponent_td_1_ng_template_2_ng_template_2_Template(rf, ctx) { }\nconst _c168 = function (a0, a1) { return { \"k-i-collapse\": a0, \"k-i-expand\": a1 }; };\nconst _c169 = function (a0, a1, a2, a3, a4, a5, a6, a7) { return { templateRef: a0, group: a1, aggregates: a2, value: a3, field: a4, index: a5, expanded: a6, $implicit: a7 }; };\nfunction GroupHeaderComponent_td_1_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n const _r9 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"a\", 7);\n ɵngcc0.ɵɵlistener(\"click\", function GroupHeaderComponent_td_1_ng_template_2_Template_a_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r9); const ctx_r8 = ɵngcc0.ɵɵnextContext(2); return ctx_r8.toggleGroup(ctx_r8.item); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(1, GroupHeaderComponent_td_1_ng_template_2_ng_template_1_Template, 2, 6, \"ng-template\", 0);\n ɵngcc0.ɵɵtemplate(2, GroupHeaderComponent_td_1_ng_template_2_ng_template_2_Template, 0, 0, \"ng-template\", 8);\n} if (rf & 2) {\n const ctx_r5 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction2(5, _c168, ctx_r5.isExpanded, !ctx_r5.isExpanded));\n ɵngcc0.ɵɵattribute(\"title\", ctx_r5.groupButtonTitle)(\"aria-label\", ctx_r5.groupButtonTitle);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r5.groupHeaderTemplate(ctx_r5.item));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction8(8, _c169, ctx_r5.groupHeaderTemplate(ctx_r5.item), ctx_r5.item.data, ctx_r5.item.data == null ? null : ctx_r5.item.data.aggregates, ctx_r5.item.data == null ? null : ctx_r5.item.data.value, ctx_r5.item.data == null ? null : ctx_r5.item.data.field, ctx_r5.item.index, ctx_r5.isExpanded, ctx_r5.item.data));\n} }\nfunction GroupHeaderComponent_td_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"td\", 5)(1, \"p\", 6);\n ɵngcc0.ɵɵtemplate(2, GroupHeaderComponent_td_1_ng_template_2_Template, 3, 17, \"ng-template\", 0);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"logicalRowIndex\", ctx_r1.logicalRowIndex)(\"logicalColIndex\", 0)(\"logicalSlaveCell\", ctx_r1.skipGroupDecoration)(\"groupItem\", ctx_r1.item)(\"colSpan\", ctx_r1.logicalColSpan());\n ɵngcc0.ɵɵattribute(\"colspan\", ctx_r1.groupSpan(ctx_r1.item))(\"role\", ctx_r1.ariaRole())(\"aria-expanded\", ctx_r1.isExpanded);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r1.skipGroupDecoration);\n} }\nconst _c170 = function (a0, a1, a2, a3, a4, a5) { return { group: a0, aggregates: a1, value: a2, field: a3, index: a4, $implicit: a5 }; };\nfunction GroupHeaderComponent_ng_container_2_td_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 12);\n} if (rf & 2) {\n const column_r11 = ɵngcc0.ɵɵnextContext().$implicit;\n const ctx_r13 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", column_r11.groupHeaderColumnTemplateRef)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction6(2, _c170, ctx_r13.item.data, ctx_r13.item.data == null ? null : ctx_r13.item.data.aggregates, ctx_r13.item.data == null ? null : ctx_r13.item.data.value, ctx_r13.item.data == null ? null : ctx_r13.item.data.field, ctx_r13.item.index, ctx_r13.item.data));\n} }\nfunction GroupHeaderComponent_ng_container_2_td_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"td\", 10);\n ɵngcc0.ɵɵtemplate(1, GroupHeaderComponent_ng_container_2_td_1_ng_container_1_Template, 1, 9, \"ng-container\", 11);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const column_r11 = ctx.$implicit;\n const index_r12 = ctx.index;\n const ctx_r10 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"logicalRowIndex\", ctx_r10.logicalRowIndex)(\"logicalColIndex\", index_r12 + 1)(\"logicalSlaveCell\", false)(\"groupItem\", ctx_r10.item)(\"colSpan\", 1);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", column_r11.groupHeaderColumnTemplateRef);\n} }\nfunction GroupHeaderComponent_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, GroupHeaderComponent_ng_container_2_td_1_Template, 2, 6, \"td\", 9);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r2.groupHeaderColumns);\n} }\nconst _c171 = function () { return { lastTarget: true }; };\nfunction GroupPanelComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 3);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"context\", ɵngcc0.ɵɵpureFunction0(2, _c171));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r0.text, \" \");\n} }\nconst _c172 = function (a0) { return { field: a0 }; };\nconst _c173 = function (a0, a2) { return { field: a0, type: \"groupIndicator\", hint: a2 }; };\nfunction GroupPanelComponent_div_1_Template(rf, ctx) { if (rf & 1) {\n const _r6 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 3)(1, \"div\", 4);\n ɵngcc0.ɵɵlistener(\"directionChange\", function GroupPanelComponent_div_1_Template_div_directionChange_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r5 = ɵngcc0.ɵɵnextContext(); return ctx_r5.directionChange($event); })(\"remove\", function GroupPanelComponent_div_1_Template_div_remove_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r7 = ɵngcc0.ɵɵnextContext(); return ctx_r7.remove($event); });\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const group_r3 = ctx.$implicit;\n const index_r4 = ctx.index;\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"context\", ɵngcc0.ɵɵpureFunction1(5, _c172, group_r3.field));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"enableDrag\", true)(\"context\", ɵngcc0.ɵɵpureFunction2(7, _c173, group_r3.field, ctx_r1.groupTitles[index_r4]))(\"group\", group_r3)(\"groupTitle\", ctx_r1.groupTitles[index_r4]);\n} }\nfunction GroupPanelComponent_div_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 3);\n ɵngcc0.ɵɵtext(1, \"\\u00A0\");\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"context\", ɵngcc0.ɵɵpureFunction0(1, _c171));\n} }\nconst _c174 = [\"kendoGroupIndicator\", \"\"];\nconst _c175 = [\"anchor\"];\nconst _c176 = [\"template\"];\nfunction FilterMenuComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {\n const _r4 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-grid-filter-menu-container\", 4);\n ɵngcc0.ɵɵlistener(\"close\", function FilterMenuComponent_ng_template_3_Template_kendo_grid_filter_menu_container_close_0_listener() { ɵngcc0.ɵɵrestoreView(_r4); const ctx_r3 = ɵngcc0.ɵɵnextContext(); return ctx_r3.close(); })(\"keydown.escape\", function FilterMenuComponent_ng_template_3_Template_kendo_grid_filter_menu_container_keydown_escape_0_listener() { ɵngcc0.ɵɵrestoreView(_r4); const ctx_r5 = ɵngcc0.ɵɵnextContext(); return ctx_r5.close(); })(\"keydown.enter\", function FilterMenuComponent_ng_template_3_Template_kendo_grid_filter_menu_container_keydown_enter_0_listener($event) { return $event.stopImmediatePropagation(); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"column\", ctx_r2.column)(\"filter\", ctx_r2.filter);\n} }\nconst _c177 = function (a1) { return { \"k-grid-filter\": true, \"k-state-active\": a1 }; };\nconst _c178 = function (a0, a1) { return { service: a0, column: a1 }; };\nfunction ColumnMenuComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 5);\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n const _r3 = ɵngcc0.ɵɵreference(6);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.column.columnMenuTemplateRef || ctx_r2.columnMenuTemplate || _r3)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction2(2, _c178, ctx_r2.service, ctx_r2.column));\n} }\nfunction ColumnMenuComponent_ng_template_5_kendo_grid_columnmenu_sort_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-grid-columnmenu-sort\", 10, 11);\n} if (rf & 2) {\n const _r11 = ɵngcc0.ɵɵreference(1);\n const ctx_r5 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"kendoGridColumnMenuItem\", _r11)(\"service\", ctx_r5.service);\n} }\nfunction ColumnMenuComponent_ng_template_5_kendo_grid_columnmenu_lock_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-grid-columnmenu-lock\", 10, 12);\n} if (rf & 2) {\n const _r12 = ɵngcc0.ɵɵreference(1);\n const ctx_r6 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"kendoGridColumnMenuItem\", _r12)(\"service\", ctx_r6.service);\n} }\nfunction ColumnMenuComponent_ng_template_5_kendo_grid_columnmenu_stick_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-grid-columnmenu-stick\", 10, 13);\n} if (rf & 2) {\n const _r13 = ɵngcc0.ɵɵreference(1);\n const ctx_r7 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"kendoGridColumnMenuItem\", _r13)(\"service\", ctx_r7.service);\n} }\nfunction ColumnMenuComponent_ng_template_5_kendo_grid_columnmenu_position_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-grid-columnmenu-position\", 14, 15);\n} if (rf & 2) {\n const _r14 = ɵngcc0.ɵɵreference(1);\n const ctx_r8 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"showLock\", ctx_r8.hasLock)(\"showStick\", ctx_r8.hasStick)(\"kendoGridColumnMenuItem\", _r14)(\"service\", ctx_r8.service)(\"expanded\", ctx_r8.expandedPosition);\n} }\nfunction ColumnMenuComponent_ng_template_5_kendo_grid_columnmenu_chooser_5_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-grid-columnmenu-chooser\", 16, 17);\n} if (rf & 2) {\n const _r15 = ɵngcc0.ɵɵreference(1);\n const ctx_r9 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"kendoGridColumnMenuItem\", _r15)(\"service\", ctx_r9.service)(\"expanded\", ctx_r9.expandedColumns);\n} }\nfunction ColumnMenuComponent_ng_template_5_kendo_grid_columnmenu_filter_6_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-grid-columnmenu-filter\", 16, 18);\n} if (rf & 2) {\n const _r16 = ɵngcc0.ɵɵreference(1);\n const ctx_r10 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"kendoGridColumnMenuItem\", _r16)(\"service\", ctx_r10.service)(\"expanded\", ctx_r10.expandedFilter);\n} }\nfunction ColumnMenuComponent_ng_template_5_Template(rf, ctx) { if (rf & 1) {\n const _r18 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-grid-columnmenu-container\", 6);\n ɵngcc0.ɵɵlistener(\"keydown.escape\", function ColumnMenuComponent_ng_template_5_Template_kendo_grid_columnmenu_container_keydown_escape_0_listener() { ɵngcc0.ɵɵrestoreView(_r18); const ctx_r17 = ɵngcc0.ɵɵnextContext(); return ctx_r17.close(); })(\"keydown.enter\", function ColumnMenuComponent_ng_template_5_Template_kendo_grid_columnmenu_container_keydown_enter_0_listener($event) { return $event.stopImmediatePropagation(); });\n ɵngcc0.ɵɵtemplate(1, ColumnMenuComponent_ng_template_5_kendo_grid_columnmenu_sort_1_Template, 2, 2, \"kendo-grid-columnmenu-sort\", 7);\n ɵngcc0.ɵɵtemplate(2, ColumnMenuComponent_ng_template_5_kendo_grid_columnmenu_lock_2_Template, 2, 2, \"kendo-grid-columnmenu-lock\", 7);\n ɵngcc0.ɵɵtemplate(3, ColumnMenuComponent_ng_template_5_kendo_grid_columnmenu_stick_3_Template, 2, 2, \"kendo-grid-columnmenu-stick\", 7);\n ɵngcc0.ɵɵtemplate(4, ColumnMenuComponent_ng_template_5_kendo_grid_columnmenu_position_4_Template, 2, 5, \"kendo-grid-columnmenu-position\", 8);\n ɵngcc0.ɵɵtemplate(5, ColumnMenuComponent_ng_template_5_kendo_grid_columnmenu_chooser_5_Template, 2, 3, \"kendo-grid-columnmenu-chooser\", 9);\n ɵngcc0.ɵɵtemplate(6, ColumnMenuComponent_ng_template_5_kendo_grid_columnmenu_filter_6_Template, 2, 3, \"kendo-grid-columnmenu-filter\", 9);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.hasSort);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.hasLock && !ctx_r4.hasPosition);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.hasStick && !ctx_r4.hasPosition);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.hasPosition);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.hasColumnChooser);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.hasFilter);\n} }\nconst _c179 = function (a0) { return { \"k-state-active\": a0 }; };\nconst _c180 = [\"kendoGridHeader\", \"\"];\nfunction HeaderComponent_ng_template_0_tr_0_th_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"th\", 7);\n} }\nfunction HeaderComponent_ng_template_0_tr_0_th_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"th\", 8);\n} if (rf & 2) {\n const levelIndex_r4 = ɵngcc0.ɵɵnextContext().index;\n ɵngcc0.ɵɵproperty(\"logicalRowIndex\", levelIndex_r4)(\"logicalColIndex\", 0);\n} }\nfunction HeaderComponent_ng_template_0_tr_0_ng_template_3_th_0_ng_template_1_kendo_grid_filter_menu_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-grid-filter-menu\", 16);\n} if (rf & 2) {\n const column_r10 = ɵngcc0.ɵɵnextContext(3).$implicit;\n const ctx_r19 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"column\", column_r10)(\"filter\", ctx_r19.filter)(\"tabIndex\", ctx_r19.tabIndex);\n} }\nfunction HeaderComponent_ng_template_0_tr_0_ng_template_3_th_0_ng_template_1_kendo_grid_column_menu_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-grid-column-menu\", 17);\n} if (rf & 2) {\n const column_r10 = ɵngcc0.ɵɵnextContext(3).$implicit;\n const ctx_r20 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"standalone\", false)(\"settings\", ctx_r20.columnMenu)(\"column\", column_r10)(\"columnMenuTemplate\", ctx_r20.columnMenuTemplate)(\"sort\", ctx_r20.sort)(\"filter\", ctx_r20.filter)(\"sortable\", ctx_r20.sortable)(\"tabIndex\", ctx_r20.tabIndex);\n} }\nfunction HeaderComponent_ng_template_0_tr_0_ng_template_3_th_0_ng_template_1_ng_template_2_Template(rf, ctx) { }\nfunction HeaderComponent_ng_template_0_tr_0_ng_template_3_th_0_ng_template_1_ng_template_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n} if (rf & 2) {\n const column_r10 = ɵngcc0.ɵɵnextContext(3).$implicit;\n ɵngcc0.ɵɵtextInterpolate(column_r10.displayTitle);\n} }\nconst _c181 = function (a0, a1, a2, a3) { return { templateRef: a0, columnIndex: a1, column: a2, $implicit: a3 }; };\nfunction HeaderComponent_ng_template_0_tr_0_ng_template_3_th_0_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, HeaderComponent_ng_template_0_tr_0_ng_template_3_th_0_ng_template_1_kendo_grid_filter_menu_0_Template, 1, 3, \"kendo-grid-filter-menu\", 13);\n ɵngcc0.ɵɵtemplate(1, HeaderComponent_ng_template_0_tr_0_ng_template_3_th_0_ng_template_1_kendo_grid_column_menu_1_Template, 1, 8, \"kendo-grid-column-menu\", 14);\n ɵngcc0.ɵɵtemplate(2, HeaderComponent_ng_template_0_tr_0_ng_template_3_th_0_ng_template_1_ng_template_2_Template, 0, 0, \"ng-template\", 15);\n ɵngcc0.ɵɵtemplate(3, HeaderComponent_ng_template_0_tr_0_ng_template_3_th_0_ng_template_1_ng_template_3_Template, 1, 1, \"ng-template\", 0);\n} if (rf & 2) {\n const column_r10 = ɵngcc0.ɵɵnextContext(2).$implicit;\n const ctx_r15 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r15.showFilterMenu && ctx_r15.isFilterable(column_r10));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r15.showColumnMenu(column_r10));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction4(4, _c181, column_r10.headerTemplateRef, column_r10.leafIndex, column_r10, column_r10));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !column_r10.headerTemplateRef);\n} }\nfunction HeaderComponent_ng_template_0_tr_0_ng_template_3_th_0_ng_template_2_ng_template_3_Template(rf, ctx) { }\nfunction HeaderComponent_ng_template_0_tr_0_ng_template_3_th_0_ng_template_2_ng_template_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 24);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const column_r10 = ɵngcc0.ɵɵnextContext(3).$implicit;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(column_r10.displayTitle);\n} }\nfunction HeaderComponent_ng_template_0_tr_0_ng_template_3_th_0_ng_template_2_span_6_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 25);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const column_r10 = ɵngcc0.ɵɵnextContext(3).$implicit;\n const ctx_r30 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r30.sortOrder(column_r10.field));\n} }\nfunction HeaderComponent_ng_template_0_tr_0_ng_template_3_th_0_ng_template_2_kendo_grid_filter_menu_8_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-grid-filter-menu\", 16);\n} if (rf & 2) {\n const column_r10 = ɵngcc0.ɵɵnextContext(3).$implicit;\n const ctx_r31 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"column\", column_r10)(\"filter\", ctx_r31.filter)(\"tabIndex\", ctx_r31.tabIndex);\n} }\nfunction HeaderComponent_ng_template_0_tr_0_ng_template_3_th_0_ng_template_2_kendo_grid_column_menu_9_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-grid-column-menu\", 17);\n} if (rf & 2) {\n const column_r10 = ɵngcc0.ɵɵnextContext(3).$implicit;\n const ctx_r32 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"standalone\", false)(\"settings\", ctx_r32.columnMenu)(\"column\", column_r10)(\"columnMenuTemplate\", ctx_r32.columnMenuTemplate)(\"sort\", ctx_r32.sort)(\"filter\", ctx_r32.filter)(\"sortable\", ctx_r32.sortable)(\"tabIndex\", ctx_r32.tabIndex);\n} }\nfunction HeaderComponent_ng_template_0_tr_0_ng_template_3_th_0_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n const _r39 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"span\", 18)(1, \"span\", 19, 20);\n ɵngcc0.ɵɵlistener(\"click\", function HeaderComponent_ng_template_0_tr_0_ng_template_3_th_0_ng_template_2_Template_span_click_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r39); const _r27 = ɵngcc0.ɵɵreference(2); const column_r10 = ɵngcc0.ɵɵnextContext(2).$implicit; const ctx_r37 = ɵngcc0.ɵɵnextContext(3); return ctx_r37.onSortClick(column_r10, $event, _r27); });\n ɵngcc0.ɵɵtemplate(3, HeaderComponent_ng_template_0_tr_0_ng_template_3_th_0_ng_template_2_ng_template_3_Template, 0, 0, \"ng-template\", 15);\n ɵngcc0.ɵɵtemplate(4, HeaderComponent_ng_template_0_tr_0_ng_template_3_th_0_ng_template_2_ng_template_4_Template, 2, 1, \"ng-template\", 0);\n ɵngcc0.ɵɵelement(5, \"span\", 21);\n ɵngcc0.ɵɵtemplate(6, HeaderComponent_ng_template_0_tr_0_ng_template_3_th_0_ng_template_2_span_6_Template, 2, 1, \"span\", 22);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelement(7, \"span\", 23);\n ɵngcc0.ɵɵtemplate(8, HeaderComponent_ng_template_0_tr_0_ng_template_3_th_0_ng_template_2_kendo_grid_filter_menu_8_Template, 1, 3, \"kendo-grid-filter-menu\", 13);\n ɵngcc0.ɵɵtemplate(9, HeaderComponent_ng_template_0_tr_0_ng_template_3_th_0_ng_template_2_kendo_grid_column_menu_9_Template, 1, 8, \"kendo-grid-column-menu\", 14);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const column_r10 = ɵngcc0.ɵɵnextContext(2).$implicit;\n const ctx_r16 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction4(8, _c181, column_r10.headerTemplateRef, column_r10.leafIndex, column_r10, column_r10));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !column_r10.headerTemplateRef);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r16.sortIcon(column_r10.field));\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx_r16.sortableLabel);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r16.showSortNumbering(column_r10));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"innerHtml\", ctx_r16.sortStatus(column_r10), ɵngcc0.ɵɵsanitizeHtml);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r16.showFilterMenu && ctx_r16.isFilterable(column_r10));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r16.showColumnMenu(column_r10));\n} }\nfunction HeaderComponent_ng_template_0_tr_0_ng_template_3_th_0_ng_template_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"input\", 26);\n} if (rf & 2) {\n const ctx_r17 = ɵngcc0.ɵɵnextContext(5);\n ɵngcc0.ɵɵattribute(\"id\", ctx_r17.selectAllCheckboxId())(\"aria-label\", ctx_r17.selectAllCheckboxLabel);\n} }\nfunction HeaderComponent_ng_template_0_tr_0_ng_template_3_th_0_span_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 27);\n} if (rf & 2) {\n const column_r10 = ɵngcc0.ɵɵnextContext(2).$implicit;\n const ctx_r18 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"column\", column_r10)(\"columns\", ctx_r18.columns);\n} }\nconst _c182 = function (a0, a2, a3, a4) { return { field: a0, type: \"column\", column: a2, hint: a3, lastColumn: a4 }; };\nfunction HeaderComponent_ng_template_0_tr_0_ng_template_3_th_0_Template(rf, ctx) { if (rf & 1) {\n const _r44 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"th\", 11);\n ɵngcc0.ɵɵlistener(\"keydown\", function HeaderComponent_ng_template_0_tr_0_ng_template_3_th_0_Template_th_keydown_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r44); const column_r10 = ɵngcc0.ɵɵnextContext().$implicit; const ctx_r42 = ɵngcc0.ɵɵnextContext(3); return ctx_r42.onHeaderKeydown(column_r10, $event); });\n ɵngcc0.ɵɵtemplate(1, HeaderComponent_ng_template_0_tr_0_ng_template_3_th_0_ng_template_1_Template, 4, 9, \"ng-template\", 0);\n ɵngcc0.ɵɵtemplate(2, HeaderComponent_ng_template_0_tr_0_ng_template_3_th_0_ng_template_2_Template, 10, 13, \"ng-template\", 0);\n ɵngcc0.ɵɵtemplate(3, HeaderComponent_ng_template_0_tr_0_ng_template_3_th_0_ng_template_3_Template, 1, 2, \"ng-template\", 0);\n ɵngcc0.ɵɵtemplate(4, HeaderComponent_ng_template_0_tr_0_ng_template_3_th_0_span_4_Template, 1, 2, \"span\", 12);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r45 = ɵngcc0.ɵɵnextContext();\n const column_r10 = ctx_r45.$implicit;\n const columnIndex_r11 = ctx_r45.index;\n const last_r12 = ctx_r45.last;\n const levelIndex_r4 = ɵngcc0.ɵɵnextContext().index;\n const ctx_r13 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵclassProp(\"k-filterable\", ctx_r13.showFilterMenu && ctx_r13.isFilterable(column_r10) || ctx_r13.showColumnMenu(column_r10))(\"k-first\", ctx_r13.isFirstOnRow(column_r10, columnIndex_r11))(\"k-grid-header-sticky\", column_r10.sticky);\n ɵngcc0.ɵɵproperty(\"logicalRowIndex\", levelIndex_r4)(\"logicalColIndex\", ctx_r13.logicalColumnIndex(column_r10))(\"headerLabelText\", column_r10.title || column_r10.field)(\"colSpan\", column_r10.colspan)(\"rowSpan\", column_r10.rowspan(ctx_r13.totalColumnLevels))(\"enableDrag\", ctx_r13.shouldActivate(column_r10))(\"context\", ɵngcc0.ɵɵpureFunction4(22, _c182, column_r10.field, column_r10, column_r10.title || column_r10.field, last_r12 && columnIndex_r11 === 0))(\"ngClass\", column_r10.headerClass)(\"ngStyle\", column_r10.sticky ? ctx_r13.addStickyStyles(column_r10) : column_r10.headerStyle);\n ɵngcc0.ɵɵattribute(\"aria-sort\", ctx_r13.sortState(column_r10))(\"rowspan\", column_r10.rowspan(ctx_r13.totalColumnLevels))(\"colspan\", column_r10.colspan);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r13.isSortable(column_r10));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r13.isSortable(column_r10));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r13.isCheckboxColumn(column_r10) && !column_r10.headerTemplateRef && column_r10.showSelectAll);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r13.resizable);\n} }\nfunction HeaderComponent_ng_template_0_tr_0_ng_template_3_th_1_kendo_grid_column_menu_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-grid-column-menu\", 30);\n} if (rf & 2) {\n const column_r10 = ɵngcc0.ɵɵnextContext(2).$implicit;\n const ctx_r47 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"standalone\", false)(\"settings\", ctx_r47.columnMenu)(\"column\", column_r10)(\"columnMenuTemplate\", ctx_r47.columnMenuTemplate);\n} }\nfunction HeaderComponent_ng_template_0_tr_0_ng_template_3_th_1_ng_template_2_Template(rf, ctx) { }\nfunction HeaderComponent_ng_template_0_tr_0_ng_template_3_th_1_ng_template_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n} if (rf & 2) {\n const column_r10 = ɵngcc0.ɵɵnextContext(2).$implicit;\n ɵngcc0.ɵɵtextInterpolate(column_r10.displayTitle);\n} }\nfunction HeaderComponent_ng_template_0_tr_0_ng_template_3_th_1_span_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 27);\n} if (rf & 2) {\n const column_r10 = ɵngcc0.ɵɵnextContext(2).$implicit;\n const ctx_r50 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"column\", column_r10)(\"columns\", ctx_r50.columns);\n} }\nconst _c183 = function (a1, a2, a3) { return { type: \"columnGroup\", column: a1, hint: a2, lastColumn: a3 }; };\nfunction HeaderComponent_ng_template_0_tr_0_ng_template_3_th_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"th\", 28);\n ɵngcc0.ɵɵtemplate(1, HeaderComponent_ng_template_0_tr_0_ng_template_3_th_1_kendo_grid_column_menu_1_Template, 1, 4, \"kendo-grid-column-menu\", 29);\n ɵngcc0.ɵɵtemplate(2, HeaderComponent_ng_template_0_tr_0_ng_template_3_th_1_ng_template_2_Template, 0, 0, \"ng-template\", 15);\n ɵngcc0.ɵɵtemplate(3, HeaderComponent_ng_template_0_tr_0_ng_template_3_th_1_ng_template_3_Template, 1, 1, \"ng-template\", 0);\n ɵngcc0.ɵɵtemplate(4, HeaderComponent_ng_template_0_tr_0_ng_template_3_th_1_span_4_Template, 1, 2, \"span\", 12);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r54 = ɵngcc0.ɵɵnextContext();\n const column_r10 = ctx_r54.$implicit;\n const columnIndex_r11 = ctx_r54.index;\n const last_r12 = ctx_r54.last;\n const levelIndex_r4 = ɵngcc0.ɵɵnextContext().index;\n const ctx_r14 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵclassProp(\"k-first\", ctx_r14.isFirstOnRow(column_r10, columnIndex_r11))(\"k-filterable\", ctx_r14.showColumnMenu(column_r10))(\"k-grid-content-sticky\", column_r10.sticky);\n ɵngcc0.ɵɵproperty(\"logicalRowIndex\", levelIndex_r4)(\"logicalColIndex\", ctx_r14.logicalColumnIndex(column_r10))(\"rowSpan\", column_r10.rowspan(ctx_r14.totalColumnLevels))(\"colSpan\", column_r10.colspan)(\"headerLabelText\", column_r10.title || column_r10.field)(\"enableDrag\", ctx_r14.shouldActivate(column_r10))(\"context\", ɵngcc0.ɵɵpureFunction3(21, _c183, column_r10, column_r10.title, last_r12 && columnIndex_r11 === 0))(\"ngClass\", column_r10.headerClass)(\"ngStyle\", column_r10.headerStyle);\n ɵngcc0.ɵɵattribute(\"rowspan\", column_r10.rowspan(ctx_r14.totalColumnLevels))(\"colspan\", column_r10.colspan);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r14.showColumnMenu(column_r10));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction4(25, _c181, column_r10.headerTemplateRef, ctx_r14.lockedColumnsCount + columnIndex_r11, column_r10, column_r10));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !column_r10.headerTemplateRef);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r14.resizable);\n} }\nfunction HeaderComponent_ng_template_0_tr_0_ng_template_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, HeaderComponent_ng_template_0_tr_0_ng_template_3_th_0_Template, 5, 27, \"th\", 9);\n ɵngcc0.ɵɵtemplate(1, HeaderComponent_ng_template_0_tr_0_ng_template_3_th_1_Template, 5, 30, \"th\", 10);\n} if (rf & 2) {\n const column_r10 = ctx.$implicit;\n const ctx_r7 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r7.isColumnGroupComponent(column_r10));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r7.isColumnGroupComponent(column_r10));\n} }\nfunction HeaderComponent_ng_template_0_tr_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"tr\", 3);\n ɵngcc0.ɵɵtemplate(1, HeaderComponent_ng_template_0_tr_0_th_1_Template, 1, 0, \"th\", 4);\n ɵngcc0.ɵɵtemplate(2, HeaderComponent_ng_template_0_tr_0_th_2_Template, 1, 2, \"th\", 5);\n ɵngcc0.ɵɵtemplate(3, HeaderComponent_ng_template_0_tr_0_ng_template_3_Template, 2, 2, \"ng-template\", 6);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const levelIndex_r4 = ctx.index;\n const ctx_r1 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"logicalRowIndex\", levelIndex_r4)(\"logicalSlaveRow\", ctx_r1.lockedColumnsCount > 0)(\"logicalCellsCount\", ctx_r1.columns.length)(\"logicalSlaveCellsCount\", ctx_r1.unlockedColumnsCount);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r1.groups);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r1.detailTemplate == null ? null : ctx_r1.detailTemplate.templateRef);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r1.columnsForLevel(levelIndex_r4))(\"ngForTrackBy\", ctx_r1.trackByIndex);\n} }\nfunction HeaderComponent_ng_template_0_tr_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"tr\", 31);\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"columns\", ctx_r2.leafColumns)(\"filter\", ctx_r2.filter)(\"groups\", ctx_r2.groups)(\"detailTemplate\", ctx_r2.detailTemplate)(\"lockedColumnsCount\", ctx_r2.lockedColumnsCount)(\"logicalRowIndex\", ctx_r2.totalColumnLevels + 1)(\"logicalSlaveRow\", ctx_r2.lockedColumnsCount > 0)(\"logicalCellsCount\", ctx_r2.columns.length)(\"logicalSlaveCellsCount\", ctx_r2.unlockedColumnsCount);\n} }\nfunction HeaderComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, HeaderComponent_ng_template_0_tr_0_Template, 4, 8, \"tr\", 1);\n ɵngcc0.ɵɵtemplate(1, HeaderComponent_ng_template_0_tr_1_Template, 1, 9, \"tr\", 2);\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r0.columnLevels);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r0.showFilterRow);\n} }\nconst _c184 = [\"resetButton\"];\nconst _c185 = [\"filterButton\"];\nfunction FilterMenuContainerComponent_ng_container_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵelementContainer(1, 9);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"filterService\", ctx_r0.childService)(\"column\", ctx_r0.column)(\"filter\", ctx_r0.childFilter)(\"menuTabbingService\", ctx_r0.menuTabbingService);\n} }\nfunction FilterMenuContainerComponent_ng_container_4_1_ng_template_0_Template(rf, ctx) { }\nfunction FilterMenuContainerComponent_ng_container_4_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, FilterMenuContainerComponent_ng_container_4_1_ng_template_0_Template, 0, 0, \"ng-template\", 11);\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r4.column.filterMenuTemplateRef)(\"ngTemplateOutletContext\", ctx_r4.templateContext);\n} }\nfunction FilterMenuContainerComponent_ng_container_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, FilterMenuContainerComponent_ng_container_4_1_Template, 1, 2, null, 10);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r1.column.filterMenuTemplateRef);\n} }\nfunction StringFilterMenuComponent_kendo_dropdownlist_1_Template(rf, ctx) { if (rf & 1) {\n const _r3 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-dropdownlist\", 3);\n ɵngcc0.ɵɵlistener(\"valueChange\", function StringFilterMenuComponent_kendo_dropdownlist_1_Template_kendo_dropdownlist_valueChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r3); const ctx_r2 = ɵngcc0.ɵɵnextContext(); return ctx_r2.logicChange($event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"filterMenuDropDownLabel\", ctx_r0.filterMenuDropDownLabel)(\"data\", ctx_r0.logicOperators)(\"valuePrimitive\", true)(\"value\", ctx_r0.filter == null ? null : ctx_r0.filter.logic);\n} }\nfunction StringFilterMenuComponent_kendo_grid_string_filter_menu_input_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-grid-string-filter-menu-input\", 4);\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"operators\", ctx_r1.operators)(\"currentFilter\", ctx_r1.secondFilter)(\"filterService\", ctx_r1.filterService)(\"column\", ctx_r1.column)(\"filter\", ctx_r1.filter)(\"menuTabbingService\", ctx_r1.menuTabbingService);\n} }\nfunction NumericFilterMenuComponent_kendo_dropdownlist_1_Template(rf, ctx) { if (rf & 1) {\n const _r3 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-dropdownlist\", 3);\n ɵngcc0.ɵɵlistener(\"valueChange\", function NumericFilterMenuComponent_kendo_dropdownlist_1_Template_kendo_dropdownlist_valueChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r3); const ctx_r2 = ɵngcc0.ɵɵnextContext(); return ctx_r2.logicChange($event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"filterMenuDropDownLabel\", ctx_r0.filterMenuDropDownLabel)(\"data\", ctx_r0.logicOperators)(\"valuePrimitive\", true)(\"value\", ctx_r0.filter == null ? null : ctx_r0.filter.logic);\n} }\nfunction NumericFilterMenuComponent_kendo_grid_numeric_filter_menu_input_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-grid-numeric-filter-menu-input\", 4);\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"operators\", ctx_r1.operators)(\"currentFilter\", ctx_r1.secondFilter)(\"filterService\", ctx_r1.filterService)(\"column\", ctx_r1.column)(\"filter\", ctx_r1.filter)(\"format\", ctx_r1.format)(\"decimals\", ctx_r1.decimals)(\"spinners\", ctx_r1.spinners)(\"min\", ctx_r1.min)(\"max\", ctx_r1.max)(\"step\", ctx_r1.step)(\"menuTabbingService\", ctx_r1.menuTabbingService);\n} }\nfunction DateFilterMenuComponent_kendo_dropdownlist_1_Template(rf, ctx) { if (rf & 1) {\n const _r3 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-dropdownlist\", 3);\n ɵngcc0.ɵɵlistener(\"valueChange\", function DateFilterMenuComponent_kendo_dropdownlist_1_Template_kendo_dropdownlist_valueChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r3); const ctx_r2 = ɵngcc0.ɵɵnextContext(); return ctx_r2.logicChange($event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"filterMenuDropDownLabel\", ctx_r0.filterMenuDropDownLabel)(\"data\", ctx_r0.logicOperators)(\"valuePrimitive\", true)(\"value\", ctx_r0.filter == null ? null : ctx_r0.filter.logic);\n} }\nfunction DateFilterMenuComponent_kendo_grid_date_filter_menu_input_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-grid-date-filter-menu-input\", 4);\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"operators\", ctx_r1.operators)(\"currentFilter\", ctx_r1.secondFilter)(\"filterService\", ctx_r1.filterService)(\"column\", ctx_r1.column)(\"filter\", ctx_r1.filter)(\"activeView\", ctx_r1.activeView)(\"bottomView\", ctx_r1.bottomView)(\"topView\", ctx_r1.topView)(\"format\", ctx_r1.format)(\"formatPlaceholder\", ctx_r1.formatPlaceholder)(\"placeholder\", ctx_r1.placeholder)(\"min\", ctx_r1.min)(\"max\", ctx_r1.max)(\"weekNumber\", ctx_r1.weekNumber)(\"menuTabbingService\", ctx_r1.menuTabbingService);\n} }\nfunction BooleanFilterMenuComponent_li_1_Template(rf, ctx) { if (rf & 1) {\n const _r4 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\")(1, \"input\", 2, 3);\n ɵngcc0.ɵɵlistener(\"change\", function BooleanFilterMenuComponent_li_1_Template_input_change_1_listener() { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r4); const item_r1 = restoredCtx.$implicit; const _r2 = ɵngcc0.ɵɵreference(2); const ctx_r3 = ɵngcc0.ɵɵnextContext(); return ctx_r3.onChange(item_r1.value, _r2); })(\"keydown.shift.tab\", function BooleanFilterMenuComponent_li_1_Template_input_keydown_shift_tab_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r4); const ctx_r5 = ɵngcc0.ɵɵnextContext(); return ctx_r5.onShiftTab($event); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(3, \"label\", 4);\n ɵngcc0.ɵɵtext(4);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const item_r1 = ctx.$implicit;\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"columnLabel\", ctx_r0.columnLabel)(\"name\", ctx_r0.idPrefix)(\"checked\", ctx_r0.isSelected(item_r1.value));\n ɵngcc0.ɵɵattribute(\"id\", ctx_r0.radioId(item_r1.value));\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵattribute(\"for\", ctx_r0.radioId(item_r1.value));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(item_r1.text);\n} }\nconst _c186 = [\"applyButton\"];\nfunction ColumnListComponent_label_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"label\", 3);\n ɵngcc0.ɵɵelement(1, \"input\", 4);\n ɵngcc0.ɵɵelementStart(2, \"span\", 5);\n ɵngcc0.ɵɵtext(3);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const column_r2 = ctx.$implicit;\n const index_r3 = ctx.index;\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"checked\", !column_r2.hidden)(\"disabled\", ctx_r0.isDisabled(column_r2));\n ɵngcc0.ɵɵattribute(\"data-index\", index_r3);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate(column_r2.displayTitle);\n} }\nfunction ColumnListComponent_div_2_Template(rf, ctx) { if (rf & 1) {\n const _r6 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 6)(1, \"button\", 7);\n ɵngcc0.ɵɵlistener(\"click\", function ColumnListComponent_div_2_Template_button_click_1_listener() { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r5 = ɵngcc0.ɵɵnextContext(); return ctx_r5.cancelChanges(); });\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(3, \"button\", 8, 9);\n ɵngcc0.ɵɵlistener(\"keydown.tab\", function ColumnListComponent_div_2_Template_button_keydown_tab_3_listener($event) { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r7 = ɵngcc0.ɵɵnextContext(); return ctx_r7.onTab($event); })(\"click\", function ColumnListComponent_div_2_Template_button_click_3_listener() { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r8 = ɵngcc0.ɵɵnextContext(); return ctx_r8.applyChanges(); });\n ɵngcc0.ɵɵtext(5);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r1.actionsClass);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate(ctx_r1.resetText);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵtextInterpolate(ctx_r1.applyText);\n} }\nfunction ColumnChooserComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {\n const _r4 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"span\", 4);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(2, \"kendo-grid-columnlist\", 5);\n ɵngcc0.ɵɵlistener(\"apply\", function ColumnChooserComponent_ng_template_3_Template_kendo_grid_columnlist_apply_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r4); const ctx_r3 = ɵngcc0.ɵɵnextContext(); return ctx_r3.onApply($event); })(\"columnChange\", function ColumnChooserComponent_ng_template_3_Template_kendo_grid_columnlist_columnChange_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r4); const ctx_r5 = ɵngcc0.ɵɵnextContext(); return ctx_r5.onChange($event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r2.localization.get(\"columns\"));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"columns\", ctx_r2.columns)(\"applyText\", ctx_r2.localization.get(\"columnsApply\"))(\"resetText\", ctx_r2.localization.get(\"columnsReset\"))(\"autoSync\", ctx_r2.autoSync)(\"allowHideAll\", ctx_r2.allowHideAll);\n} }\nfunction ColumnMenuChooserComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n const _r2 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-grid-columnlist\", 2);\n ɵngcc0.ɵɵlistener(\"apply\", function ColumnMenuChooserComponent_ng_template_1_Template_kendo_grid_columnlist_apply_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r2); const ctx_r1 = ɵngcc0.ɵɵnextContext(); return ctx_r1.onApply($event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"applyText\", ctx_r0.localization.get(\"columnsApply\"))(\"resetText\", ctx_r0.localization.get(\"columnsReset\"))(\"columns\", ctx_r0.columns)(\"autoSync\", false)(\"allowHideAll\", false)(\"actionsClass\", ctx_r0.actionsClass)(\"isLast\", ctx_r0.isLast)(\"isExpanded\", ctx_r0.expanded)(\"service\", ctx_r0.service);\n} }\nfunction ColumnMenuFilterComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n const _r3 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-grid-filter-menu-container\", 2);\n ɵngcc0.ɵɵlistener(\"keydown.shift.tab\", function ColumnMenuFilterComponent_ng_template_1_Template_kendo_grid_filter_menu_container_keydown_shift_tab_0_listener($event) { return $event.stopImmediatePropagation(); })(\"close\", function ColumnMenuFilterComponent_ng_template_1_Template_kendo_grid_filter_menu_container_close_0_listener() { ɵngcc0.ɵɵrestoreView(_r3); const ctx_r2 = ɵngcc0.ɵɵnextContext(); return ctx_r2.close(); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"column\", ctx_r0.service.column)(\"menuTabbingService\", ctx_r0.service.menuTabbingService)(\"filter\", ctx_r0.service.filter)(\"actionsClass\", ctx_r0.actionsClass)(\"isLast\", ctx_r0.isLast)(\"isExpanded\", ctx_r0.expanded);\n} }\nfunction ColumnMenuItemComponent_span_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 3);\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r0.iconClass);\n} }\nfunction ColumnMenuItemComponent_div_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 4);\n ɵngcc0.ɵɵelementContainer(1, 5);\n ɵngcc0.ɵɵelement(2, \"div\");\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"@state\", ctx_r1.contentState);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.contentTemplate.templateRef);\n} }\nfunction ColumnMenuPositionComponent_ng_template_1_kendo_grid_columnmenu_lock_0_Template(rf, ctx) { if (rf & 1) {\n const _r4 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-grid-columnmenu-lock\", 3);\n ɵngcc0.ɵɵlistener(\"keydown.tab\", function ColumnMenuPositionComponent_ng_template_1_kendo_grid_columnmenu_lock_0_Template_kendo_grid_columnmenu_lock_keydown_tab_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r4); const ctx_r3 = ɵngcc0.ɵɵnextContext(2); return ctx_r3.onTab($event, !ctx_r3.showStick); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"service\", ctx_r1.service);\n} }\nfunction ColumnMenuPositionComponent_ng_template_1_kendo_grid_columnmenu_stick_1_Template(rf, ctx) { if (rf & 1) {\n const _r6 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-grid-columnmenu-stick\", 3);\n ɵngcc0.ɵɵlistener(\"keydown.tab\", function ColumnMenuPositionComponent_ng_template_1_kendo_grid_columnmenu_stick_1_Template_kendo_grid_columnmenu_stick_keydown_tab_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r5 = ɵngcc0.ɵɵnextContext(2); return ctx_r5.onTab($event, true); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"service\", ctx_r2.service);\n} }\nfunction ColumnMenuPositionComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ColumnMenuPositionComponent_ng_template_1_kendo_grid_columnmenu_lock_0_Template, 1, 1, \"kendo-grid-columnmenu-lock\", 2);\n ɵngcc0.ɵɵtemplate(1, ColumnMenuPositionComponent_ng_template_1_kendo_grid_columnmenu_stick_1_Template, 1, 1, \"kendo-grid-columnmenu-stick\", 2);\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r0.showLock);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r0.showStick);\n} }\nconst _c187 = [\"kendoGridTableBody\", \"\"];\nfunction TableBodyComponent_ng_template_0_ng_template_1_td_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"td\", 8);\n} }\nfunction TableBodyComponent_ng_template_0_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, TableBodyComponent_ng_template_0_ng_template_1_td_0_Template, 1, 0, \"td\", 7);\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r4.groups);\n} }\nfunction TableBodyComponent_ng_template_0_td_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"td\", 9);\n} if (rf & 2) {\n const ctx_r5 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"logicalRowIndex\", ctx_r5.addRowLogicalIndex())(\"logicalColIndex\", 0);\n} }\nfunction TableBodyComponent_ng_template_0_td_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"td\", 10);\n} if (rf & 2) {\n const column_r9 = ctx.$implicit;\n const columnIndex_r10 = ctx.index;\n const ctx_r6 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵstyleProp(\"left\", column_r9.sticky ? \"0\" : undefined);\n ɵngcc0.ɵɵclassProp(\"k-grid-content-sticky\", column_r9.sticky);\n ɵngcc0.ɵɵproperty(\"rowIndex\", -1)(\"columnIndex\", ctx_r6.lockedColumnsCount + columnIndex_r10)(\"isNew\", true)(\"column\", column_r9)(\"dataItem\", ctx_r6.newDataItem)(\"ngClass\", column_r9.cssClass)(\"ngStyle\", column_r9.sticky ? ctx_r6.addStickyColumnStyles(column_r9) : column_r9.style)(\"logicalRowIndex\", ctx_r6.addRowLogicalIndex())(\"logicalColIndex\", ctx_r6.logicalColIndex(column_r9))(\"colSpan\", column_r9.colspan);\n ɵngcc0.ɵɵattribute(\"colspan\", column_r9.colspan);\n} }\nfunction TableBodyComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"tr\", 4);\n ɵngcc0.ɵɵtemplate(1, TableBodyComponent_ng_template_0_ng_template_1_Template, 1, 1, \"ng-template\", 0);\n ɵngcc0.ɵɵtemplate(2, TableBodyComponent_ng_template_0_td_2_Template, 1, 2, \"td\", 5);\n ɵngcc0.ɵɵtemplate(3, TableBodyComponent_ng_template_0_td_3_Template, 1, 15, \"td\", 6);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"logicalRowIndex\", ctx_r0.addRowLogicalIndex())(\"logicalSlaveRow\", ctx_r0.lockedColumnsCount > 0)(\"logicalCellsCount\", ctx_r0.columns.length)(\"logicalSlaveCellsCount\", ctx_r0.unlockedColumnsCount);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r0.skipGroupDecoration);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r0.detailTemplate == null ? null : ctx_r0.detailTemplate.templateRef);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r0.columns)(\"ngForTrackBy\", ctx_r0.trackByColumns);\n} }\nfunction TableBodyComponent_tr_1_ng_template_2_Template(rf, ctx) { }\nfunction TableBodyComponent_tr_1_ng_container_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r12 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r12.noRecordsText, \" \");\n} }\nconst _c188 = function (a0) { return { templateRef: a0 }; };\nfunction TableBodyComponent_tr_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"tr\", 11)(1, \"td\");\n ɵngcc0.ɵɵtemplate(2, TableBodyComponent_tr_1_ng_template_2_Template, 0, 0, \"ng-template\", 12);\n ɵngcc0.ɵɵtemplate(3, TableBodyComponent_tr_1_ng_container_3_Template, 2, 1, \"ng-container\", 13);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"colspan\", ctx_r1.colSpan);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r1.noRecordsTemplate == null ? null : ctx_r1.noRecordsTemplate.templateRef)(\"templateContext\", ɵngcc0.ɵɵpureFunction1(4, _c188, ctx_r1.noRecordsTemplate == null ? null : ctx_r1.noRecordsTemplate.templateRef));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !(ctx_r1.noRecordsTemplate == null ? null : ctx_r1.noRecordsTemplate.templateRef));\n} }\nfunction TableBodyComponent_ng_template_2_tr_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"tr\", 18);\n} if (rf & 2) {\n const ctx_r19 = ɵngcc0.ɵɵnextContext();\n const item_r13 = ctx_r19.$implicit;\n const rowIndex_r14 = ctx_r19.index;\n const ctx_r15 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"columns\", ctx_r15.columns)(\"groups\", ctx_r15.groups)(\"item\", item_r13)(\"hasDetails\", ctx_r15.detailTemplate == null ? null : ctx_r15.detailTemplate.templateRef)(\"skipGroupDecoration\", ctx_r15.skipGroupDecoration)(\"hasGroupHeaderColumn\", ctx_r15.hasGroupHeaderColumn)(\"groupHeaderColumns\", ctx_r15.groupHeaderColumns)(\"rowIndex\", rowIndex_r14 + 1)(\"totalColumnsCount\", ctx_r15.totalColumnsCount)(\"logicalRowIndex\", ctx_r15.logicalRowIndex(rowIndex_r14))(\"logicalSlaveRow\", ctx_r15.lockedColumnsCount > 0)(\"logicalCellsCount\", ctx_r15.columns.length)(\"logicalSlaveCellsCount\", ctx_r15.groupHeaderSlaveCellsCount);\n} }\nfunction TableBodyComponent_ng_template_2_tr_1_ng_template_1_td_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"td\", 8);\n} }\nfunction TableBodyComponent_ng_template_2_tr_1_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, TableBodyComponent_ng_template_2_tr_1_ng_template_1_td_0_Template, 1, 0, \"td\", 7);\n} if (rf & 2) {\n const ctx_r20 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r20.groups);\n} }\nfunction TableBodyComponent_ng_template_2_tr_1_td_2_a_1_Template(rf, ctx) { if (rf & 1) {\n const _r28 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"a\", 24);\n ɵngcc0.ɵɵlistener(\"click\", function TableBodyComponent_ng_template_2_tr_1_td_2_a_1_Template_a_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r28); const item_r13 = ɵngcc0.ɵɵnextContext(3).$implicit; const ctx_r26 = ɵngcc0.ɵɵnextContext(); return ctx_r26.toggleRow(item_r13.index, item_r13.data); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const item_r13 = ɵngcc0.ɵɵnextContext(3).$implicit;\n const ctx_r25 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r25.detailButtonStyles(item_r13));\n ɵngcc0.ɵɵattribute(\"title\", ctx_r25.detailButtonTitle(item_r13))(\"aria-label\", ctx_r25.detailButtonTitle(item_r13));\n} }\nfunction TableBodyComponent_ng_template_2_tr_1_td_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"td\", 22);\n ɵngcc0.ɵɵtemplate(1, TableBodyComponent_ng_template_2_tr_1_td_2_a_1_Template, 1, 3, \"a\", 23);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r30 = ɵngcc0.ɵɵnextContext(2);\n const rowIndex_r14 = ctx_r30.index;\n const item_r13 = ctx_r30.$implicit;\n const ctx_r21 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"logicalRowIndex\", ctx_r21.logicalRowIndex(rowIndex_r14))(\"logicalColIndex\", 0)(\"dataRowIndex\", item_r13.index)(\"dataItem\", item_r13.data)(\"detailExpandCell\", true);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r21.detailTemplate.showIf(item_r13.data, item_r13.index));\n} }\nfunction TableBodyComponent_ng_template_2_tr_1_td_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"td\", 25);\n} if (rf & 2) {\n const column_r31 = ctx.$implicit;\n const columnIndex_r32 = ctx.index;\n const ctx_r33 = ɵngcc0.ɵɵnextContext(2);\n const item_r13 = ctx_r33.$implicit;\n const rowIndex_r14 = ctx_r33.index;\n const ctx_r22 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"k-grid-content-sticky\", column_r31.sticky)(\"k-touch-action-none\", ctx_r22.isSelectable() && ctx_r22.selectable.drag)(\"k-touch-action-auto\", !(ctx_r22.isSelectable() && ctx_r22.selectable.drag))(\"k-grid-edit-cell\", ctx_r22.isEditingCell(item_r13.index, column_r31))(\"k-state-selected\", ctx_r22.isSelectable && ctx_r22.cellSelectionService.isCellSelected(item_r13, column_r31));\n ɵngcc0.ɵɵproperty(\"rowIndex\", item_r13.index)(\"columnIndex\", ctx_r22.lockedColumnsCount + columnIndex_r32)(\"column\", column_r31)(\"dataItem\", item_r13.data)(\"isLoading\", ctx_r22.isLoading)(\"isVirtual\", ctx_r22.isVirtual)(\"loadingTemplate\", ctx_r22.cellLoadingTemplate)(\"logicalRowIndex\", ctx_r22.logicalRowIndex(rowIndex_r14))(\"logicalColIndex\", ctx_r22.logicalColIndex(column_r31))(\"dataRowIndex\", item_r13.index)(\"dataItem\", item_r13.data)(\"colIndex\", columnIndex_r32)(\"colSpan\", column_r31.colspan)(\"ngClass\", column_r31.cssClass)(\"ngStyle\", column_r31.sticky ? ctx_r22.addStickyColumnStyles(column_r31) : column_r31.style);\n ɵngcc0.ɵɵattribute(\"data-kendo-grid-column-index\", ctx_r22.lockedColumnsCount + columnIndex_r32)(\"aria-selected\", ctx_r22.isSelectable() ? ctx_r22.isAriaSelected(item_r13, column_r31) : undefined)(\"colspan\", column_r31.colspan);\n} }\nconst _c189 = function (a0, a1) { return { dataItem: a0, index: a1 }; };\nfunction TableBodyComponent_ng_template_2_tr_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"tr\", 19);\n ɵngcc0.ɵɵtemplate(1, TableBodyComponent_ng_template_2_tr_1_ng_template_1_Template, 1, 1, \"ng-template\", 0);\n ɵngcc0.ɵɵtemplate(2, TableBodyComponent_ng_template_2_tr_1_td_2_Template, 2, 6, \"td\", 20);\n ɵngcc0.ɵɵtemplate(3, TableBodyComponent_ng_template_2_tr_1_td_3_Template, 1, 28, \"td\", 21);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r34 = ɵngcc0.ɵɵnextContext();\n const item_r13 = ctx_r34.$implicit;\n const rowIndex_r14 = ctx_r34.index;\n const ctx_r16 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"k-grid-row-sticky\", ctx_r16.rowSticky ? ctx_r16.rowSticky(ɵngcc0.ɵɵpureFunction2(22, _c189, item_r13.data, item_r13.index)) : false)(\"k-alt\", ctx_r16.isOdd(item_r13))(\"k-master-row\", ctx_r16.detailTemplate == null ? null : ctx_r16.detailTemplate.templateRef)(\"k-grid-edit-row\", ctx_r16.isEditingRow(item_r13.index))(\"k-state-selected\", ctx_r16.isSelectable() && ctx_r16.isRowSelected(item_r13));\n ɵngcc0.ɵɵproperty(\"dataRowIndex\", item_r13.index)(\"dataItem\", item_r13.data)(\"logicalRowIndex\", ctx_r16.logicalRowIndex(rowIndex_r14))(\"logicalSlaveRow\", ctx_r16.lockedColumnsCount > 0)(\"logicalCellsCount\", ctx_r16.columns.length)(\"logicalSlaveCellsCount\", ctx_r16.unlockedColumnsCount)(\"ngClass\", ctx_r16.rowClass(ɵngcc0.ɵɵpureFunction2(25, _c189, item_r13.data, item_r13.index)));\n ɵngcc0.ɵɵattribute(\"data-kendo-grid-item-index\", item_r13.index);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r16.skipGroupDecoration);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r16.detailTemplate == null ? null : ctx_r16.detailTemplate.templateRef);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r16.columns)(\"ngForTrackBy\", ctx_r16.trackByColumns);\n} }\nfunction TableBodyComponent_ng_template_2_tr_2_td_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"td\", 31);\n} }\nfunction TableBodyComponent_ng_template_2_tr_2_ng_template_4_Template(rf, ctx) { }\nconst _c190 = function (a0, a1, a2) { return { dataItem: a0, rowIndex: a1, $implicit: a2 }; };\nfunction TableBodyComponent_ng_template_2_tr_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"tr\", 26);\n ɵngcc0.ɵɵtemplate(1, TableBodyComponent_ng_template_2_tr_2_td_1_Template, 1, 0, \"td\", 27);\n ɵngcc0.ɵɵelement(2, \"td\", 28);\n ɵngcc0.ɵɵelementStart(3, \"td\", 29);\n ɵngcc0.ɵɵtemplate(4, TableBodyComponent_ng_template_2_tr_2_ng_template_4_Template, 0, 0, \"ng-template\", 30);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r38 = ɵngcc0.ɵɵnextContext();\n const item_r13 = ctx_r38.$implicit;\n const rowIndex_r14 = ctx_r38.index;\n const ctx_r17 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"k-alt\", ctx_r17.isOdd(item_r13));\n ɵngcc0.ɵɵproperty(\"dataRowIndex\", item_r13.index)(\"dataItem\", item_r13.data)(\"logicalRowIndex\", ctx_r17.logicalRowIndex(rowIndex_r14) + 1)(\"logicalSlaveRow\", false)(\"logicalCellsCount\", 1);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r17.groups);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"logicalRowIndex\", ctx_r17.logicalRowIndex(rowIndex_r14) + 1)(\"logicalColIndex\", 0)(\"dataRowIndex\", item_r13.index)(\"dataItem\", item_r13.data)(\"colIndex\", 0)(\"colSpan\", ctx_r17.allColumnsSpan + 1);\n ɵngcc0.ɵɵattribute(\"colspan\", ctx_r17.columnsSpan);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r17.detailTemplate.templateRef)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction3(17, _c190, item_r13.data, item_r13.index, item_r13.data));\n} }\nfunction TableBodyComponent_ng_template_2_tr_3_ng_template_1_td_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"td\", 31);\n} }\nfunction TableBodyComponent_ng_template_2_tr_3_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, TableBodyComponent_ng_template_2_tr_3_ng_template_1_td_0_Template, 1, 0, \"td\", 27);\n} if (rf & 2) {\n const ctx_r39 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r39.groups);\n} }\nfunction TableBodyComponent_ng_template_2_tr_3_td_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"td\", 9);\n} if (rf & 2) {\n const rowIndex_r14 = ɵngcc0.ɵɵnextContext(2).index;\n const ctx_r40 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"logicalRowIndex\", ctx_r40.logicalRowIndex(rowIndex_r14))(\"logicalColIndex\", 0);\n} }\nfunction TableBodyComponent_ng_template_2_tr_3_td_3_ng_template_1_Template(rf, ctx) { }\nconst _c191 = function (a0, a1, a2, a3, a4, a5) { return { templateRef: a0, group: a1, field: a2, column: a3, aggregates: a4, $implicit: a5 }; };\nfunction TableBodyComponent_ng_template_2_tr_3_td_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"td\", 34);\n ɵngcc0.ɵɵtemplate(1, TableBodyComponent_ng_template_2_tr_3_td_3_ng_template_1_Template, 0, 0, \"ng-template\", 35);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const column_r45 = ctx.$implicit;\n const ctx_r48 = ɵngcc0.ɵɵnextContext(2);\n const rowIndex_r14 = ctx_r48.index;\n const item_r13 = ctx_r48.$implicit;\n const ctx_r41 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"logicalRowIndex\", ctx_r41.logicalRowIndex(rowIndex_r14))(\"logicalColIndex\", ctx_r41.logicalColIndex(column_r45));\n ɵngcc0.ɵɵattribute(\"data-skip\", ctx_r41.skipGroupDecoration);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction6(4, _c191, column_r45.groupFooterTemplateRef, item_r13.data, column_r45.field, column_r45, item_r13.data == null ? null : item_r13.data.aggregates, item_r13.data == null ? null : item_r13.data.aggregates));\n} }\nfunction TableBodyComponent_ng_template_2_tr_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"tr\", 32);\n ɵngcc0.ɵɵtemplate(1, TableBodyComponent_ng_template_2_tr_3_ng_template_1_Template, 1, 1, \"ng-template\", 0);\n ɵngcc0.ɵɵtemplate(2, TableBodyComponent_ng_template_2_tr_3_td_2_Template, 1, 2, \"td\", 5);\n ɵngcc0.ɵɵtemplate(3, TableBodyComponent_ng_template_2_tr_3_td_3_Template, 2, 11, \"td\", 33);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const rowIndex_r14 = ɵngcc0.ɵɵnextContext().index;\n const ctx_r18 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"logicalRowIndex\", ctx_r18.logicalRowIndex(rowIndex_r14))(\"logicalSlaveRow\", ctx_r18.lockedColumnsCount > 0)(\"logicalCellsCount\", ctx_r18.columns.length)(\"logicalSlaveCellsCount\", ctx_r18.unlockedColumnsCount);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r18.skipGroupDecoration);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r18.detailTemplate == null ? null : ctx_r18.detailTemplate.templateRef);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r18.footerColumns)(\"ngForTrackBy\", ctx_r18.trackByColumns);\n} }\nfunction TableBodyComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, TableBodyComponent_ng_template_2_tr_0_Template, 1, 13, \"tr\", 14);\n ɵngcc0.ɵɵtemplate(1, TableBodyComponent_ng_template_2_tr_1_Template, 4, 28, \"tr\", 15);\n ɵngcc0.ɵɵtemplate(2, TableBodyComponent_ng_template_2_tr_2_Template, 5, 21, \"tr\", 16);\n ɵngcc0.ɵɵtemplate(3, TableBodyComponent_ng_template_2_tr_3_Template, 4, 8, \"tr\", 17);\n} if (rf & 2) {\n const item_r13 = ctx.$implicit;\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r2.isGroup(item_r13) && ctx_r2.isParentGroupExpanded(item_r13) && ctx_r2.showGroupHeader(item_r13));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r2.isDataItem(item_r13) && (!item_r13.group || ctx_r2.isDataItemInExpandedGroup(item_r13)));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r2.isDataItem(item_r13) && (!item_r13.group || ctx_r2.isDataItemInExpandedGroup(item_r13)) && (ctx_r2.detailTemplate == null ? null : ctx_r2.detailTemplate.templateRef) && ctx_r2.detailTemplate.showIf(item_r13.data, item_r13.index) && ctx_r2.isExpanded(item_r13));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r2.isFooter(item_r13) && item_r13.group && (ctx_r2.isFooterItemInExpandedGroup(item_r13) || ctx_r2.showGroupFooters && ctx_r2.isParentGroupExpanded(item_r13.group)) && !item_r13.data.hideFooter);\n} }\nfunction TableBodyComponent_kendo_resize_sensor_3_Template(rf, ctx) { if (rf & 1) {\n const _r51 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-resize-sensor\", 36);\n ɵngcc0.ɵɵlistener(\"resize\", function TableBodyComponent_kendo_resize_sensor_3_Template_kendo_resize_sensor_resize_0_listener() { ɵngcc0.ɵɵrestoreView(_r51); const ctx_r50 = ɵngcc0.ɵɵnextContext(); return ctx_r50.resizeHandler(); });\n ɵngcc0.ɵɵelementEnd();\n} }\nconst _c192 = [\"kendoGridCell\", \"\"];\nfunction CellComponent_ng_container_1_ng_container_1_ng_template_1_Template(rf, ctx) { }\nfunction CellComponent_ng_container_1_ng_container_1_ng_template_2_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n ɵngcc0.ɵɵpipe(1, \"valueOf\");\n} if (rf & 2) {\n const childColumn_r10 = ctx.$implicit;\n const ctx_r9 = ɵngcc0.ɵɵnextContext(4);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ɵngcc0.ɵɵpipeBind3(1, 1, ctx_r9.dataItem, childColumn_r10.field, childColumn_r10.format), \" \");\n} }\nfunction CellComponent_ng_container_1_ng_container_1_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, CellComponent_ng_container_1_ng_container_1_ng_template_2_ng_template_0_Template, 2, 5, \"ng-template\", 6);\n} if (rf & 2) {\n const ctx_r6 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r6.childColumns);\n} }\nfunction CellComponent_ng_container_1_ng_container_1_ng_template_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n ɵngcc0.ɵɵpipe(1, \"valueOf\");\n} if (rf & 2) {\n const ctx_r7 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵtextInterpolate(ɵngcc0.ɵɵpipeBind3(1, 1, ctx_r7.dataItem, ctx_r7.column.field, ctx_r7.column.format));\n} }\nfunction CellComponent_ng_container_1_ng_container_1_ng_template_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"input\", 7);\n} if (rf & 2) {\n const ctx_r8 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"kendoGridSelectionCheckbox\", ctx_r8.rowIndex);\n ɵngcc0.ɵɵattribute(\"id\", ctx_r8.selectionCheckboxId)(\"aria-label\", ctx_r8.selectionCheckboxLabel);\n} }\nfunction CellComponent_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, CellComponent_ng_container_1_ng_container_1_ng_template_1_Template, 0, 0, \"ng-template\", 4);\n ɵngcc0.ɵɵtemplate(2, CellComponent_ng_container_1_ng_container_1_ng_template_2_Template, 1, 1, \"ng-template\", 5);\n ɵngcc0.ɵɵtemplate(3, CellComponent_ng_container_1_ng_container_1_ng_template_3_Template, 2, 5, \"ng-template\", 5);\n ɵngcc0.ɵɵtemplate(4, CellComponent_ng_container_1_ng_container_1_ng_template_4_Template, 1, 3, \"ng-template\", 5);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r2.column.templateRef)(\"ngTemplateOutlet\", ctx_r2.column.templateRef)(\"ngTemplateOutletContext\", ctx_r2.templateContext);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r2.isSpanColumn);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r2.isBoundColumn);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r2.isCheckboxColumn && !ctx_r2.isNew);\n} }\nfunction CellComponent_ng_container_1_ng_template_2_0_ng_template_0_Template(rf, ctx) { }\nconst _c193 = function (a0) { return { $implicit: a0 }; };\nfunction CellComponent_ng_container_1_ng_template_2_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, CellComponent_ng_container_1_ng_template_2_0_ng_template_0_Template, 0, 0, \"ng-template\", 10);\n} if (rf & 2) {\n const ctx_r11 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r11.loadingTemplate)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction1(2, _c193, ctx_r11.column));\n} }\nfunction CellComponent_ng_container_1_ng_template_2_div_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"div\", 11);\n} }\nfunction CellComponent_ng_container_1_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, CellComponent_ng_container_1_ng_template_2_0_Template, 1, 4, null, 8);\n ɵngcc0.ɵɵtemplate(1, CellComponent_ng_container_1_ng_template_2_div_1_Template, 1, 0, \"div\", 9);\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.loadingTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r4.loadingTemplate);\n} }\nfunction CellComponent_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, CellComponent_ng_container_1_ng_container_1_Template, 5, 6, \"ng-container\", 2);\n ɵngcc0.ɵɵtemplate(2, CellComponent_ng_container_1_ng_template_2_Template, 2, 2, \"ng-template\", null, 3, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const _r3 = ɵngcc0.ɵɵreference(3);\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r0.showLoading)(\"ngIfElse\", _r3);\n} }\nfunction CellComponent_ng_container_2_1_ng_template_0_Template(rf, ctx) { }\nfunction CellComponent_ng_container_2_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, CellComponent_ng_container_2_1_ng_template_0_Template, 0, 0, \"ng-template\", 10);\n} if (rf & 2) {\n const ctx_r14 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r14.column.editTemplateRef)(\"ngTemplateOutletContext\", ctx_r14.editTemplateContext);\n} }\nfunction CellComponent_ng_container_2_ng_container_2_kendo_numerictextbox_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-numerictextbox\", 16);\n} if (rf & 2) {\n const ctx_r17 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"format\", ctx_r17.format)(\"formControl\", ctx_r17.formGroup.get(ctx_r17.column.field));\n} }\nfunction CellComponent_ng_container_2_ng_container_2_kendo_datepicker_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-datepicker\", 16);\n} if (rf & 2) {\n const ctx_r18 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"format\", ctx_r18.format)(\"formControl\", ctx_r18.formGroup.get(ctx_r18.column.field));\n} }\nfunction CellComponent_ng_container_2_ng_container_2_input_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"input\", 17);\n} if (rf & 2) {\n const ctx_r19 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"formControl\", ctx_r19.formGroup.get(ctx_r19.column.field));\n} }\nfunction CellComponent_ng_container_2_ng_container_2_input_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"input\", 18);\n} if (rf & 2) {\n const ctx_r20 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"formControl\", ctx_r20.formGroup.get(ctx_r20.column.field));\n} }\nfunction CellComponent_ng_container_2_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0, 0);\n ɵngcc0.ɵɵtemplate(1, CellComponent_ng_container_2_ng_container_2_kendo_numerictextbox_1_Template, 1, 2, \"kendo-numerictextbox\", 13);\n ɵngcc0.ɵɵtemplate(2, CellComponent_ng_container_2_ng_container_2_kendo_datepicker_2_Template, 1, 2, \"kendo-datepicker\", 13);\n ɵngcc0.ɵɵtemplate(3, CellComponent_ng_container_2_ng_container_2_input_3_Template, 1, 1, \"input\", 14);\n ɵngcc0.ɵɵtemplate(4, CellComponent_ng_container_2_ng_container_2_input_4_Template, 1, 1, \"input\", 15);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r15 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngSwitch\", ctx_r15.column.editor);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngSwitchCase\", \"numeric\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngSwitchCase\", \"date\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngSwitchCase\", \"boolean\");\n} }\nfunction CellComponent_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, CellComponent_ng_container_2_1_Template, 1, 2, null, 8);\n ɵngcc0.ɵɵtemplate(2, CellComponent_ng_container_2_ng_container_2_Template, 5, 4, \"ng-container\", 12);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r1.column.editTemplateRef);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r1.column.editTemplateRef);\n} }\nconst _c194 = [\"kendoGridFooter\", \"\"];\nfunction FooterComponent_ng_template_0_td_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"td\", 5);\n} if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-group-cell\", true);\n} }\nfunction FooterComponent_ng_template_0_td_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"td\", 5);\n} if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-hierarchy-cell\", true);\n} }\nfunction FooterComponent_ng_template_0_td_3_ng_template_1_Template(rf, ctx) { }\nfunction FooterComponent_ng_template_0_td_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"td\", 6);\n ɵngcc0.ɵɵtemplate(1, FooterComponent_ng_template_0_td_3_ng_template_1_Template, 0, 0, \"ng-template\", 7);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const column_r5 = ctx.$implicit;\n const columnIndex_r6 = ctx.index;\n const ctx_r3 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵclassProp(\"k-grid-footer-sticky\", column_r5.sticky);\n ɵngcc0.ɵɵproperty(\"logicalRowIndex\", ctx_r3.logicalRowIndex)(\"logicalColIndex\", ctx_r3.logicalColumnIndex(column_r5))(\"ngClass\", column_r5.footerClass)(\"ngStyle\", column_r5.sticky ? ctx_r3.addStickyStyles(column_r5) : column_r5.footerStyle);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction4(7, _c181, column_r5.footerTemplateRef, ctx_r3.lockedColumnsCount + columnIndex_r6, column_r5, column_r5));\n} }\nfunction FooterComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"tr\", 1);\n ɵngcc0.ɵɵtemplate(1, FooterComponent_ng_template_0_td_1_Template, 1, 2, \"td\", 2);\n ɵngcc0.ɵɵtemplate(2, FooterComponent_ng_template_0_td_2_Template, 1, 2, \"td\", 3);\n ɵngcc0.ɵɵtemplate(3, FooterComponent_ng_template_0_td_3_Template, 2, 12, \"td\", 4);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"k-footer-template\", true);\n ɵngcc0.ɵɵproperty(\"logicalRowIndex\", ctx_r0.logicalRowIndex)(\"logicalSlaveRow\", ctx_r0.lockedColumnsCount > 0)(\"logicalCellsCount\", ctx_r0.columns.length)(\"logicalSlaveCellsCount\", ctx_r0.columns.length - ctx_r0.lockedColumnsCount);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r0.groups);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r0.detailTemplate == null ? null : ctx_r0.detailTemplate.templateRef);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r0.columnsToRender);\n} }\nfunction ToolbarComponent_0_ng_template_0_Template(rf, ctx) { }\nfunction ToolbarComponent_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ToolbarComponent_0_ng_template_0_Template, 0, 0, \"ng-template\", 1);\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.toolbarTemplateRef)(\"ngTemplateOutletContext\", ctx_r0.context);\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 * @hidden\n */\nconst detectIE = () => {\n if (!isDocumentAvailable()) {\n return;\n }\n const ua = window.navigator.userAgent;\n const msie = ua.indexOf('MSIE ');\n const trident = ua.indexOf('Trident/');\n return msie > 0 || trident > 0;\n};\n/**\n * @hidden\n */\nconst nodesToArray = (nodes) => [].slice.call(nodes);\n/**\n * @hidden\n */\nconst replaceMessagePlaceholder = (message, name, value) => message.replace(new RegExp(`\\{\\\\s*${name}\\\\s*\\}`, 'g'), value);\n\n/**\n * Represents the Kendo UI GridSpacer component for Angular.\n * Used to give additional white space between the Pager inner elements,\n * and provides a way for customizing the spacer width.\n * It can also be used in any flex container within the Grid.\n */\nlet GridSpacerComponent = class GridSpacerComponent {\n /**\n * Represents the Kendo UI GridSpacer component for Angular.\n * Used to give additional white space between the Pager inner elements,\n * and provides a way for customizing the spacer width.\n * It can also be used in any flex container within the Grid.\n */\n constructor() {\n this.hostClass = true;\n }\n get sizedClass() {\n return isPresent(this.width);\n }\n get flexBasisStyle() {\n return this.width;\n }\n};\nGridSpacerComponent.ɵfac = function GridSpacerComponent_Factory(t) { return new (t || GridSpacerComponent)(); };\nGridSpacerComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: GridSpacerComponent, selectors: [[\"kendo-grid-spacer\"], [\"kendo-pager-spacer\"]], hostVars: 6, hostBindings: function GridSpacerComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"flex-basis\", ctx.flexBasisStyle);\n ɵngcc0.ɵɵclassProp(\"k-spacer\", ctx.hostClass)(\"k-spacer-sized\", ctx.sizedClass);\n } }, inputs: { width: \"width\" }, decls: 0, vars: 0, template: function GridSpacerComponent_Template(rf, ctx) { }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-spacer'),\n __metadata(\"design:type\", Boolean)\n], GridSpacerComponent.prototype, \"hostClass\", void 0);\n__decorate([\n HostBinding('class.k-spacer-sized'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], GridSpacerComponent.prototype, \"sizedClass\", null);\n__decorate([\n HostBinding('style.flexBasis'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], GridSpacerComponent.prototype, \"flexBasisStyle\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], GridSpacerComponent.prototype, \"width\", void 0);\n\n/**\n * @hidden\n */\nlet DomEventsService = class DomEventsService {\n /**\n * @hidden\n */\n constructor() {\n this.cellClick = new EventEmitter();\n this.cellMousedown = new EventEmitter();\n this.cellMouseup = 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.ɵfac = function DomEventsService_Factory(t) { return new (t || DomEventsService)(); };\nDomEventsService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: DomEventsService, factory: function (t) { return DomEventsService.ɵfac(t); } });\n\n/**\n * @hidden\n */\nlet LocalDataChangesService = class LocalDataChangesService {\n /**\n * @hidden\n */\n constructor() {\n this.changes = new EventEmitter();\n }\n};\nLocalDataChangesService.ɵfac = function LocalDataChangesService_Factory(t) { return new (t || LocalDataChangesService)(); };\nLocalDataChangesService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: LocalDataChangesService, factory: function (t) { return LocalDataChangesService.ɵfac(t); } });\n\n/**\n * @hidden\n */\nconst FOCUS_ROOT_ACTIVE = new InjectionToken('focus-root-initial-active-state');\n/**\n * @hidden\n */\nlet FocusRoot = class FocusRoot {\n constructor(active = false) {\n this.active = active;\n this.groups = new Set();\n }\n registerGroup(group) {\n if (this.active) {\n this.groups.add(group);\n }\n }\n unregisterGroup(group) {\n if (this.active) {\n this.groups.delete(group);\n }\n }\n activate() {\n if (this.active) {\n this.groups.forEach(f => f.activate());\n }\n }\n deactivate() {\n if (this.active) {\n this.groups.forEach(f => f.deactivate());\n }\n }\n};\nFocusRoot.ɵfac = function FocusRoot_Factory(t) { return new (t || FocusRoot)(ɵngcc0.ɵɵinject(FOCUS_ROOT_ACTIVE, 8)); };\nFocusRoot.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: FocusRoot, factory: function (t) { return FocusRoot.ɵfac(t); } });\nFocusRoot = __decorate([ __param(0, Optional()), __param(0, Inject(FOCUS_ROOT_ACTIVE)),\n __metadata(\"design:paramtypes\", [Boolean])\n], FocusRoot);\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 visible = !checkVisibility || isVisible(element);\n const ariaHidden = element.getAttribute('aria-hidden') === 'true';\n const tabIndex = element.getAttribute('tabIndex');\n return visible && !ariaHidden && 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 findLastElement = (node, predicate, matchSelf = true) => {\n let last = null;\n findElement(node, (node) => {\n if (predicate(node)) {\n last = node;\n }\n return false;\n }, matchSelf);\n return last;\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 */\nconst findLastFocusableChild = (element, checkVisibility = true) => {\n return findLastElement(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\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 * @hidden\n */\nconst CELL_CONTEXT = new InjectionToken('grid-cell-context');\n/**\n * @hidden\n */\nconst EMPTY_CELL_CONTEXT = {};\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 */\nlet FocusableDirective = class FocusableDirective {\n constructor(cellContext, hostElement, renderer) {\n this.cellContext = cellContext;\n this.hostElement = hostElement;\n this.renderer = renderer;\n this.active = true;\n this._enabled = true;\n if (this.cellContext) {\n this.group = this.cellContext.focusGroup;\n }\n if (this.group) {\n this.group.registerElement(this);\n }\n }\n /**\n * @hidden\n */\n set enabled(value) {\n if (value === '') {\n value = true;\n }\n else {\n value = Boolean(value);\n }\n if (value !== this.enabled) {\n this._enabled = value;\n if (this.element) {\n this.element.toggle(this.active && value);\n }\n }\n }\n get enabled() {\n return this._enabled;\n }\n ngAfterViewInit() {\n if (!this.element) {\n this.element = new DefaultFocusableElement(this.hostElement, this.renderer);\n }\n if (this.group && this.element) {\n this.toggle(this.group.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.element.toggle(this.enabled && active);\n this.active = active;\n }\n }\n /**\n * @hidden\n */\n canFocus() {\n return this.enabled && this.element && this.element.canFocus();\n }\n /**\n * @hidden\n */\n isNavigable() {\n return this.enabled && this.element && this.element.isNavigable();\n }\n /**\n * @hidden\n */\n focus() {\n if (this.enabled && this.element) {\n this.element.focus();\n }\n }\n /**\n * @hidden\n */\n hasFocus() {\n return this.enabled && this.element && this.element.hasFocus();\n }\n /**\n * @hidden\n */\n registerElement(element) {\n this.element = element;\n }\n};\nFocusableDirective.ɵfac = function FocusableDirective_Factory(t) { return new (t || FocusableDirective)(ɵngcc0.ɵɵdirectiveInject(CELL_CONTEXT, 12), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nFocusableDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: FocusableDirective, selectors: [[\"\", \"kendoGridFocusable\", \"\"], [\"\", \"kendoGridEditCommand\", \"\"], [\"\", \"kendoGridRemoveCommand\", \"\"], [\"\", \"kendoGridSaveCommand\", \"\"], [\"\", \"kendoGridCancelCommand\", \"\"], [\"\", \"kendoGridSelectionCheckbox\", \"\"]], inputs: { enabled: [\"kendoGridFocusable\", \"enabled\"] } });\n__decorate([\n Input('kendoGridFocusable'),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], FocusableDirective.prototype, \"enabled\", null);\nFocusableDirective = __decorate([ __param(0, Optional()), __param(0, Inject(CELL_CONTEXT)), __param(0, SkipSelf()),\n __metadata(\"design:paramtypes\", [Object, ElementRef,\n Renderer2])\n], FocusableDirective);\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 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 */\nlet EditService = class 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.ɵfac = function EditService_Factory(t) { return new (t || EditService)(ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nEditService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: EditService, factory: function (t) { return EditService.ɵfac(t); } });\nEditService = __decorate([ __metadata(\"design:paramtypes\", [NgZone])\n], EditService);\n\n/**\n * @hidden\n */\nconst getGroupRowArgs = (groupItem) => {\n if (!isPresent(groupItem)) {\n return null;\n }\n return { group: groupItem.data, groupIndex: groupItem.index, parentGroup: getGroupRowArgs(groupItem.parentGroup) };\n};\n\nconst isChildIndex = (targetIndex, parentIndex) => parentIndex !== targetIndex && targetIndex.startsWith(parentIndex);\n/**\n * @hidden\n */\nlet GroupsService = class GroupsService {\n /**\n * @hidden\n */\n constructor() {\n this.changes = new Subject();\n this.rowState = new Set();\n }\n reset() {\n this.rowState.clear();\n }\n ngOnDestroy() {\n this.reset();\n }\n isExpanded(groupArgs) {\n if (this.userCallback) {\n return this.userCallback(groupArgs);\n }\n return !this.rowState.has(groupArgs.groupIndex);\n }\n isInExpandedGroup(groupItem) {\n let expanded = true;\n while (groupItem && expanded) {\n expanded = this.isExpanded({\n group: groupItem.data,\n groupIndex: groupItem.index,\n parentGroup: getGroupRowArgs(groupItem.parentGroup)\n });\n groupItem = groupItem.parentGroup;\n }\n return expanded;\n }\n toggleRow(groupItem) {\n const parentGroup = getGroupRowArgs(groupItem.parentGroup);\n const expand = !this.isExpanded({ group: groupItem.data, groupIndex: groupItem.index, parentGroup });\n this.changes.next({ group: groupItem.data, expand, groupIndex: groupItem.index, parentGroup });\n // if usercallback is given, the rowState should be ignored\n if (this.userCallback) {\n return;\n }\n if (expand) {\n this.rowState.delete(groupItem.index);\n }\n else {\n this.rowState.add(groupItem.index);\n }\n }\n expandChildren(parentIndex) {\n this.rowState.forEach(index => isChildIndex(index, parentIndex) && this.rowState.delete(index));\n }\n};\nGroupsService.ɵfac = function GroupsService_Factory(t) { return new (t || GroupsService)(); };\nGroupsService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: GroupsService, factory: function (t) { return GroupsService.ɵfac(t); } });\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}\nPagerContextService.ɵfac = function PagerContextService_Factory(t) { return new (t || PagerContextService)(); };\nPagerContextService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: PagerContextService, factory: PagerContextService.ɵfac });\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 */\nlet DetailsService = class DetailsService {\n /**\n * @hidden\n */\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.ɵfac = function DetailsService_Factory(t) { return new (t || DetailsService)(); };\nDetailsService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: DetailsService, factory: function (t) { return DetailsService.ɵfac(t); } });\n\n/**\n * @hidden\n */\nlet ScrollRequestService = class ScrollRequestService {\n /**\n * @hidden\n */\n constructor() {\n this.requests = new Subject();\n }\n scrollTo(request) {\n this.requests.next(request);\n }\n};\nScrollRequestService.ɵfac = function ScrollRequestService_Factory(t) { return new (t || ScrollRequestService)(); };\nScrollRequestService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ScrollRequestService, factory: function (t) { return ScrollRequestService.ɵfac(t); } });\n\nconst isInSameGrid = (element, gridElement) => closest(element, matchesNodeName('kendo-grid')) === gridElement;\nconst matchHeaderCell = matchesNodeName('th');\nconst matchDataCell = matchesNodeName('td');\nconst matchFooterCell = matchesNodeName('.k-grid-footer td');\nconst matchCell = (element) => matchDataCell(element) || matchHeaderCell(element) || matchFooterCell(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 */\nlet NavigationService = class 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.active = 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 const lastRow = this.model.lastRow;\n if (lastRow && this.mode === 0 /* Standby */) {\n const maxIndex = (this.needsViewport() && this.viewport) ? this.viewport.lastItemIndex : lastRow.index;\n if (this.activeRowIndex > maxIndex) {\n this.cursor.reset(0, 0);\n }\n }\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 focusCellByElement(el) {\n const cell = targetCell(el, this.meta.gridElement.nativeElement);\n if (cell) {\n return this.focusCell(cell.rowIndex, cell.colIndex);\n }\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));\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.closeCell(args);\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 &&\n args.rowIndex >= this.meta.headerRows &&\n 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.ɵfac = function NavigationService_Factory(t) { return new (t || NavigationService)(ɵngcc0.ɵɵinject(ɵngcc0.NgZone), ɵngcc0.ɵɵinject(DomEventsService), ɵngcc0.ɵɵinject(PagerContextService), ɵngcc0.ɵɵinject(ScrollRequestService), ɵngcc0.ɵɵinject(GroupsService), ɵngcc0.ɵɵinject(DetailsService), ɵngcc0.ɵɵinject(FocusRoot), ɵngcc0.ɵɵinject(EditService), ɵngcc0.ɵɵinject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵinject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵinject(FocusableDirective, 8)); };\nNavigationService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NavigationService, factory: function (t) { return NavigationService.ɵfac(t); } });\nNavigationService = __decorate([ __param(10, Optional()),\n __metadata(\"design:paramtypes\", [NgZone,\n DomEventsService,\n PagerContextService,\n ScrollRequestService,\n GroupsService,\n DetailsService,\n FocusRoot,\n EditService,\n ChangeDetectorRef,\n LocalizationService,\n FocusableDirective])\n], NavigationService);\n\n/**\n * @hidden\n */\nlet SelectionService = class SelectionService {\n constructor(domEvents, localDataChangesService, navigationService) {\n this.domEvents = domEvents;\n this.localDataChangesService = localDataChangesService;\n this.navigationService = navigationService;\n this.changes = new EventEmitter();\n this.lastSelectionStartIndex = 0;\n this.currentSelection = [];\n this.selectAllChecked = false;\n this.active = false;\n this.dragging = false;\n this.addSubscriptions();\n }\n get enableMarquee() {\n const checkboxOnly = this.settings && typeof this.settings === 'object' && this.settings.checkboxOnly;\n if (!this.settings || checkboxOnly) {\n return false;\n }\n const selectableSettings = this.settings.selectable;\n const dragAndMultiple = typeof (selectableSettings) === 'object' &&\n isPresent(selectableSettings) &&\n selectableSettings.mode === 'multiple' &&\n selectableSettings.enabled !== false &&\n !selectableSettings.checkboxOnly &&\n selectableSettings.drag;\n return this.active && dragAndMultiple;\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 let item = iterator$$1.next();\n while (!item.done) {\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 item = iterator$$1.next();\n }\n if (this.currentSelection.length === 0) {\n this._selectAllState = false;\n }\n }\n }\n isSelected(index) {\n if (this.settings && this.active) {\n return this.options.enabled && isPresent(this.currentSelection[index]);\n }\n }\n handleClick(item, event) {\n if (this.dragging) {\n this.dragging = false;\n return;\n }\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 = ctrlKey;\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 const rowArgs = { dataItem: item.data, index: item.index };\n if (this.isSelected(item.index)) {\n deselectedRows.push(rowArgs);\n }\n else {\n selectedRows.push(rowArgs);\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 let item = iterator$$1.next();\n while (!item.done) {\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 item = iterator$$1.next();\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 let item = iterator$$1.next();\n while (!item.done) {\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 item = iterator$$1.next();\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 let next = iterator$$1.next();\n while (!next.done) {\n if (next.value && next.value.type === \"data\") {\n const idx = next.value.index;\n const rowArgs = { dataItem: next.value.data, index: idx };\n if ((idx < start || idx > end) && this.isSelected(idx) && !ctrlKey) {\n deselectedRows.push(rowArgs);\n }\n if ((idx >= start && idx <= end) && !this.isSelected(idx)) {\n selectedRows.push(rowArgs);\n }\n }\n next = iterator$$1.next();\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 let next = iterator$$1.next();\n while (!next.done) {\n if (next.value && next.value.type === \"data\") {\n const idx = next.value.index;\n const rowArgs = { dataItem: next.value.data, index: idx };\n if (this.isSelected(idx) && !selectAllChecked) {\n deselectedRows.push(rowArgs);\n }\n if (!this.isSelected(idx) && selectAllChecked) {\n selectedRows.push(rowArgs);\n }\n }\n next = iterator$$1.next();\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 selectRange(startIndex, endIndex) {\n let selectedRows = [];\n let deselectedRows = [];\n const start = Math.min(startIndex, endIndex);\n const end = Math.max(startIndex, endIndex);\n const iterator$$1 = this.getIterator();\n let next = iterator$$1.next();\n while (!next.done) {\n if (next.value && next.value.type === \"data\") {\n const idx = next.value.index;\n const rowArgs = { dataItem: next.value.data, index: idx };\n if ((idx < start || idx > end) && this.isSelected(idx)) {\n deselectedRows.push(rowArgs);\n }\n if ((idx >= start && idx <= end) && !this.isSelected(idx)) {\n selectedRows.push(rowArgs);\n }\n }\n next = iterator$$1.next();\n }\n return {\n deselectedRows: deselectedRows,\n selectedRows: selectedRows\n };\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 this.removeSubscriptions();\n }\n targetArgs() {\n return {\n index: this.mouseDownEventArgs.rowIndex,\n dataItem: this.mouseDownEventArgs.dataItem\n };\n }\n addSubscriptions() {\n if (!this.cellClickSubscription) {\n this.cellClickSubscription = this.domEvents.cellClick.subscribe((args) => {\n if (this.options.enabled && !this.options.checkboxOnly && args.type !== 'contextmenu') {\n if (this.active) {\n this.handleClick({ index: args.rowIndex, data: args.dataItem }, args.originalEvent);\n }\n }\n });\n }\n if (!this.mousedownSubscription) {\n this.mousedownSubscription = this.domEvents.cellMousedown.subscribe((args) => {\n this.mouseDownEventArgs = args;\n if ((this.options.enabled && (!this.options.mode || this.options.mode === \"multiple\") &&\n !this.options.checkboxOnly && args.originalEvent.shiftKey)) {\n if (this.active) {\n args.originalEvent.preventDefault();\n this.navigationService.focusCellByElement(args.originalEvent.target);\n }\n }\n });\n }\n if (this.localDataChangesService && !this.dataChangedSubscription) {\n this.dataChangedSubscription = this.localDataChangesService.changes.subscribe((args) => {\n if (this.active) {\n if (isPresent(args.action) && args.action === 'remove') {\n this.deselect(args.item);\n }\n }\n });\n }\n }\n getIterator() {\n const accessor = this.settings.view.accessor();\n if (!accessor) {\n return;\n }\n return accessor[iterator]();\n }\n removeSubscriptions() {\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};\nSelectionService.ɵfac = function SelectionService_Factory(t) { return new (t || SelectionService)(ɵngcc0.ɵɵinject(DomEventsService), ɵngcc0.ɵɵinject(LocalDataChangesService), ɵngcc0.ɵɵinject(NavigationService)); };\nSelectionService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: SelectionService, factory: function (t) { return SelectionService.ɵfac(t); } });\nSelectionService = __decorate([ __metadata(\"design:paramtypes\", [DomEventsService,\n LocalDataChangesService,\n NavigationService])\n], SelectionService);\n\n/**\n * @hidden\n */\nlet CellSelectionService = class CellSelectionService {\n constructor(domEvents, localDataChangesService, navigationService) {\n this.domEvents = domEvents;\n this.localDataChangesService = localDataChangesService;\n this.navigationService = navigationService;\n this.changes = new EventEmitter();\n this.mouseUpEvent = new EventEmitter();\n this.currentSelection = [];\n this.active = false;\n this.dragging = false;\n this.dragSelectDeselect = false;\n this.lastSelectionItem = { itemKey: 0, columnKey: 0 };\n this.lastSelectionItemRowIndex = 0;\n this.lastSelectionItemColIndex = 0;\n this.addSubscriptions();\n }\n get enableMarquee() {\n const checkboxOnly = this.settings && typeof this.settings === 'object' && this.settings.checkboxOnly;\n if (!this.settings || checkboxOnly) {\n return false;\n }\n const selectableSettings = this.settings.selectable;\n const dragAndMultiple = typeof (selectableSettings) === 'object' &&\n isPresent(selectableSettings) &&\n selectableSettings.mode === 'multiple' &&\n selectableSettings.cell &&\n selectableSettings.enabled !== false &&\n selectableSettings.drag;\n return this.active && dragAndMultiple;\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 let item = iterator$$1.next();\n while (!item.done) {\n if (item.value && item.value.type === \"data\") {\n const rowArgs = {\n dataItem: item.value.data,\n index: item.value.index\n };\n settings.columns.forEach(col => {\n const selectedCellArgs = settings.cellSelected(rowArgs, col, col.leafIndex);\n if (selectedCellArgs.selected) {\n this.currentSelection.push(selectedCellArgs.item);\n }\n });\n }\n item = iterator$$1.next();\n }\n }\n }\n isCellSelected(item, col) {\n if (this.settings && this.active) {\n const selectedCellArgs = this.settings.cellSelected({ dataItem: item.data, index: item.index }, col, col.leafIndex);\n return this.options.enabled && selectedCellArgs.selected;\n }\n return false;\n }\n handleClick(item, event) {\n if (this.dragging) {\n this.dragging = false;\n return;\n }\n let ev;\n const ctrlKey = event.ctrlKey || event.metaKey;\n if (this.options.mode === \"single\" && ctrlKey && this.isCellSelected(item, item.column)) {\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 const startRowIndex = Math.min(this.lastSelectionItemRowIndex, item.index);\n const startColIndex = Math.min(this.lastSelectionItemColIndex, item.column.leafIndex);\n const endRowIndex = Math.max(this.lastSelectionItemRowIndex, item.index);\n const endColIndex = Math.max(this.lastSelectionItemColIndex, item.column.leafIndex);\n ev = this.selectRange(startRowIndex, startColIndex, endRowIndex, endColIndex);\n }\n }\n if (!isPresent(ev)) {\n ev = this.select(item);\n this.currentSelection = [this.lastSelectionItem];\n }\n if (!ev.selectedCells.length && !ev.deselectedCells.length) {\n return;\n }\n ev.ctrlKey = ctrlKey;\n ev.shiftKey = event.shiftKey;\n this.changes.emit(ev);\n }\n toggle(item) {\n let selectedCells = [];\n let deselectedCells = [];\n this.lastSelectionItem =\n this.settings.cellSelected({ dataItem: item.data, index: item.index }, item.column, item.column.leafIndex).item;\n this.lastSelectionItemRowIndex = item.index;\n this.lastSelectionItemColIndex = item.column.leafIndex;\n if (this.isCellSelected(item, item.column)) {\n deselectedCells.push(this.lastSelectionItem);\n }\n else {\n selectedCells.push(this.lastSelectionItem);\n }\n return {\n deselectedCells,\n selectedCells\n };\n }\n select(item) {\n const selectedCells = [];\n const deselectedCells = [];\n this.lastSelectionItem =\n this.settings.cellSelected({ dataItem: item.data, index: item.index }, item.column, item.column.leafIndex).item;\n this.lastSelectionItemRowIndex = item.index;\n this.lastSelectionItemColIndex = item.column.leafIndex;\n if (!this.isCellSelected(item, item.column)) {\n selectedCells.push(this.lastSelectionItem);\n }\n this.currentSelection.forEach((selectedItem) => {\n if (selectedItem.itemKey !== this.lastSelectionItem.itemKey || selectedItem.columnKey !== this.lastSelectionItem.columnKey) {\n deselectedCells.push(selectedItem);\n }\n });\n return {\n deselectedCells,\n selectedCells\n };\n }\n //Used to manually deselect removed items\n deselect(removedItem) {\n const iterator$$1 = this.getIterator();\n let item = iterator$$1.next();\n let rowArgs;\n while (!item.done) {\n if (item.value && item.value.type === \"data\" && item.value.data === removedItem) {\n rowArgs = {\n dataItem: item.value.data,\n index: item.value.index\n };\n break;\n }\n item = iterator$$1.next();\n }\n if (rowArgs) {\n const cellsToRemove = this.currentSelection.filter(selectedItem => {\n const contender = this.settings.cellSelected(rowArgs, null, null).item;\n return selectedItem.itemKey === contender.itemKey;\n });\n if (cellsToRemove.length) {\n let ev = {\n ctrlKey: false,\n deselectedCells: cellsToRemove,\n selectedCells: []\n };\n this.changes.emit(ev);\n }\n }\n }\n selectRange(startRowIndex, startColIndex, endRowIndex, endColIndex) {\n const selectedCells = [];\n const deselectedCells = [];\n const selectionStartRow = Math.min(startRowIndex, endRowIndex);\n const selectionStartCol = Math.min(startColIndex, endColIndex);\n const selectionEndRow = Math.max(startRowIndex, endRowIndex);\n const selectionEndCol = Math.max(startColIndex, endColIndex);\n const iterator$$1 = this.getIterator();\n let next = iterator$$1.next();\n while (!next.done) {\n if (next.value && next.value.type === \"data\") {\n const idx = next.value.index;\n const data = next.value.data;\n const rowArgs = {\n dataItem: data,\n index: idx\n };\n this.settings.columns.forEach(col => {\n const { item } = this.settings.cellSelected(rowArgs, col, col.leafIndex);\n const selected = this.isCellSelected(next.value, col);\n const isInRowRange = selectionStartRow <= idx && idx <= selectionEndRow;\n const isInColRange = selectionStartCol <= col.leafIndex && col.leafIndex <= selectionEndCol;\n const isInSelectionRect = isInRowRange && isInColRange;\n if (!isInSelectionRect && selected) {\n deselectedCells.push(item);\n }\n if (isInSelectionRect && !selected) {\n selectedCells.push(item);\n }\n });\n }\n next = iterator$$1.next();\n }\n return {\n deselectedCells,\n selectedCells\n };\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 this.removeSubscriptions();\n }\n addSubscriptions() {\n if (!this.cellClickSubscription) {\n this.cellClickSubscription = this.domEvents.cellClick.subscribe((args) => {\n if (this.options.enabled && !this.options.checkboxOnly && args.type !== 'contextmenu') {\n if (this.active) {\n this.handleClick({ index: args.rowIndex, data: args.dataItem, column: args.column }, args.originalEvent);\n }\n }\n });\n }\n if (!this.mousedownSubscription) {\n this.mousedownSubscription = this.domEvents.cellMousedown.subscribe((args) => {\n this.mouseDownEventArgs = args;\n if (this.options.enabled && (!this.options.mode || this.options.mode === \"multiple\") &&\n !this.options.checkboxOnly && args.originalEvent.shiftKey) {\n if (this.active) {\n args.originalEvent.preventDefault();\n this.navigationService.focusCellByElement(args.originalEvent.target);\n }\n }\n });\n }\n if (this.localDataChangesService && !this.dataChangedSubscription) {\n this.dataChangedSubscription = this.localDataChangesService.changes.subscribe((args) => {\n if (this.active) {\n if (isPresent(args.action) && args.action === 'remove') {\n this.deselect(args.item);\n }\n }\n });\n }\n }\n getIterator() {\n const accessor = this.settings.view.accessor();\n if (!accessor) {\n return;\n }\n return accessor[iterator]();\n }\n removeSubscriptions() {\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};\nCellSelectionService.ɵfac = function CellSelectionService_Factory(t) { return new (t || CellSelectionService)(ɵngcc0.ɵɵinject(DomEventsService), ɵngcc0.ɵɵinject(LocalDataChangesService), ɵngcc0.ɵɵinject(NavigationService)); };\nCellSelectionService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: CellSelectionService, factory: function (t) { return CellSelectionService.ɵfac(t); } });\nCellSelectionService = __decorate([ __metadata(\"design:paramtypes\", [DomEventsService,\n LocalDataChangesService,\n NavigationService])\n], CellSelectionService);\n\nconst createElement = () => {\n const marquee = document.createElement(\"div\");\n marquee.className = \"k-marquee\";\n const marqueeColor = document.createElement(\"div\");\n marqueeColor.className = \"k-marquee-color\";\n marquee.appendChild(marqueeColor);\n return marquee;\n};\nconst POINTER_OFFSET = 2;\nconst MINIMAL_DRAG_DISTANCE = 5;\nconst offsets = {\n topLeft: { x: POINTER_OFFSET, y: POINTER_OFFSET },\n topRight: { x: -POINTER_OFFSET, y: POINTER_OFFSET },\n bottomLeft: { x: POINTER_OFFSET, y: -POINTER_OFFSET },\n bottomRight: { x: -POINTER_OFFSET, y: -POINTER_OFFSET }\n};\n/**\n * @hidden\n */\nlet GridMarqueeDirective = class GridMarqueeDirective {\n constructor(draggable, selection, cellSelection, domEvents) {\n this.draggable = draggable;\n this.selection = selection;\n this.cellSelection = cellSelection;\n this.domEvents = domEvents;\n this.selectionStarted = false;\n }\n get webkitUserSelection() {\n return (this.cellSelection.enableMarquee || this.selection.enableMarquee) ? 'none' : null;\n }\n get userSelection() {\n return (this.cellSelection.enableMarquee || this.selection.enableMarquee);\n }\n ngOnInit() {\n this.subscriptions = (this.draggable.kendoPress.subscribe(this.start.bind(this)));\n this.subscriptions.add(this.draggable.kendoDrag.subscribe(this.moveMarquee.bind(this)));\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n this.clean();\n }\n start(args) {\n if (args.originalEvent.target.classList.contains('k-checkbox')) {\n this.pressArgs = null;\n return;\n }\n this.pressArgs = args;\n this.pressTarget = null;\n }\n moveMarquee(args) {\n if (!this.pressTarget) {\n this.pressTarget = this.cellSelection.active ? this.cellSelection.mouseDownEventArgs : this.selection.mouseDownEventArgs;\n }\n const press = this.pressArgs;\n if (!press) {\n return;\n }\n if (!this.selectionStarted) {\n const distance = Math.sqrt(Math.pow((args.pageX - press.pageX), 2) + Math.pow((args.pageY - press.pageY), 2));\n if (distance > MINIMAL_DRAG_DISTANCE) {\n this.selectionStarted = true;\n this.dragEndSubscription = merge(this.domEvents.cellMouseup.pipe(take(1)), this.draggable.kendoRelease.pipe(delay(1), take(1)))\n .subscribe(this.endSelection.bind(this));\n }\n else {\n return;\n }\n }\n this.initMarquee();\n const element = this.marqueeElement;\n const marqueeQuadrant = this.getMarqueeQuadrant(args.pageX, args.pageY, press.pageX, press.pageY);\n let left = Math.min(args.pageX, press.pageX);\n let top = Math.min(args.pageY, press.pageY);\n const width = Math.abs(args.pageX - press.pageX);\n const height = Math.abs(args.pageY - press.pageY);\n if (marqueeQuadrant) {\n left += offsets[marqueeQuadrant].x;\n top += offsets[marqueeQuadrant].y;\n }\n element.style.left = `${left}px`;\n element.style.top = `${top}px`;\n element.style.width = `${width}px`;\n element.style.height = `${height}px`;\n }\n endSelection(args) {\n if (args.type === 'mouseup' || args.type === 'touchend') {\n if (this.cellSelection.active) {\n this.cellSelection.dragging = true;\n this.cellSelection.changes.emit(this.cellSelection.selectRange(this.pressTarget.rowIndex, this.pressTarget.column.leafIndex, args.rowIndex, args.column.leafIndex));\n }\n else if (this.selection.active) {\n this.selection.dragging = true;\n this.selection.changes.emit(this.selection.selectRange(this.pressTarget.rowIndex, args.rowIndex));\n }\n }\n this.clean();\n }\n clean() {\n if (this.marqueeElement) {\n document.body.removeChild(this.marqueeElement);\n this.marqueeElement = null;\n }\n if (this.dragEndSubscription) {\n this.dragEndSubscription.unsubscribe();\n }\n this.dragEndSubscription = null;\n this.pressTarget = null;\n this.pressArgs = null;\n this.selectionStarted = false;\n this.cellSelection.active ? this.cellSelection.dragging = false : this.selection.dragging = false;\n }\n initMarquee() {\n if (!this.marqueeElement) {\n this.marqueeElement = createElement();\n document.body.appendChild(this.marqueeElement);\n }\n }\n getMarqueeQuadrant(pointerX, pointerY, startX, startY) {\n const leftHalf = pointerX < startX;\n const rightHalf = pointerX > startX;\n const topHalf = pointerY < startY;\n const bottomHalf = pointerY > startY;\n if (leftHalf && topHalf) {\n return 'topLeft';\n }\n if (leftHalf && bottomHalf) {\n return 'bottomLeft';\n }\n if (rightHalf && topHalf) {\n return 'topRight';\n }\n if (rightHalf && bottomHalf) {\n return 'bottomRight';\n }\n return null;\n }\n};\nGridMarqueeDirective.ɵfac = function GridMarqueeDirective_Factory(t) { return new (t || GridMarqueeDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.DraggableDirective), ɵngcc0.ɵɵdirectiveInject(SelectionService), ɵngcc0.ɵɵdirectiveInject(CellSelectionService), ɵngcc0.ɵɵdirectiveInject(DomEventsService)); };\nGridMarqueeDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: GridMarqueeDirective, selectors: [[\"\", \"kendoGridSelectionMarquee\", \"\"]], hostVars: 4, hostBindings: function GridMarqueeDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"-webkit-user-select\", ctx.webkitUserSelection);\n ɵngcc0.ɵɵclassProp(\"user-select-none\", ctx.userSelection);\n } } });\n__decorate([\n HostBinding('style.-webkit-user-select'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], GridMarqueeDirective.prototype, \"webkitUserSelection\", null);\n__decorate([\n HostBinding('class.user-select-none'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], GridMarqueeDirective.prototype, \"userSelection\", null);\nGridMarqueeDirective = __decorate([ __metadata(\"design:paramtypes\", [DraggableDirective,\n SelectionService,\n CellSelectionService,\n DomEventsService])\n], GridMarqueeDirective);\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 * @hidden\n */\nconst packageMetadata = {\n name: '@progress/kendo-angular-grid',\n productName: 'Kendo UI for Angular',\n productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],\n publishDate: 1647343373,\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\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 */\nlet CellTemplateDirective = class CellTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nCellTemplateDirective.ɵfac = function CellTemplateDirective_Factory(t) { return new (t || CellTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nCellTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CellTemplateDirective, selectors: [[\"\", \"kendoGridCellTemplate\", \"\"]] });\nCellTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], CellTemplateDirective);\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\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 */\nlet GroupHeaderTemplateDirective = class GroupHeaderTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nGroupHeaderTemplateDirective.ɵfac = function GroupHeaderTemplateDirective_Factory(t) { return new (t || GroupHeaderTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nGroupHeaderTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: GroupHeaderTemplateDirective, selectors: [[\"\", \"kendoGridGroupHeaderTemplate\", \"\"]] });\nGroupHeaderTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], GroupHeaderTemplateDirective);\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 ``. ([See example]({% slug groupable_grid_with_aggregates %})).\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 * ```ts\n * \n * \n * \n * Count: {{ aggregates.Discontinued.count }}\n * \n * \n * \n * ```\n */\nlet GroupHeaderColumnTemplateDirective = class GroupHeaderColumnTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nGroupHeaderColumnTemplateDirective.ɵfac = function GroupHeaderColumnTemplateDirective_Factory(t) { return new (t || GroupHeaderColumnTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nGroupHeaderColumnTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: GroupHeaderColumnTemplateDirective, selectors: [[\"\", \"kendoGridGroupHeaderColumnTemplate\", \"\"]] });\nGroupHeaderColumnTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], GroupHeaderColumnTemplateDirective);\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 is set to the current form group and the following additional fields are passed:\n * - `formGroup`—The current [FormGroup]({{ site.data.urls.angular['formgroupapi'] }}).\n * Represents the default context that will be assigned to any template variable which utilizes the `let-x` syntax—for example, `let-formGroup`.\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`. Use it as an alias for a template variable by utilizing the `let-rowIndex=\"rowIndex\"` syntax.\n * - `dataItem`—The current data item. Use it as an alias for a template variable by utilizing the `let-dataItem=\"dataItem\"` syntax.\n * - `column`—The current column instance. Use it as an alias for a template variable by utilizing the `let-column=\"column\"` syntax.\n * - `isNew`—The state of the current item. Use it as an alias for a template variable by utilizing the `let-isNew=\"isNew\"` syntax.\n */\nlet EditTemplateDirective = class EditTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nEditTemplateDirective.ɵfac = function EditTemplateDirective_Factory(t) { return new (t || EditTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nEditTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditTemplateDirective, selectors: [[\"\", \"kendoGridEditTemplate\", \"\"]] });\nEditTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], EditTemplateDirective);\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 */\nlet GroupFooterTemplateDirective = class GroupFooterTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nGroupFooterTemplateDirective.ɵfac = function GroupFooterTemplateDirective_Factory(t) { return new (t || GroupFooterTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nGroupFooterTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: GroupFooterTemplateDirective, selectors: [[\"\", \"kendoGridGroupFooterTemplate\", \"\"]] });\nGroupFooterTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], GroupFooterTemplateDirective);\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 */\nlet HeaderTemplateDirective = class HeaderTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nHeaderTemplateDirective.ɵfac = function HeaderTemplateDirective_Factory(t) { return new (t || HeaderTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nHeaderTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: HeaderTemplateDirective, selectors: [[\"\", \"kendoGridHeaderTemplate\", \"\"]] });\nHeaderTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], HeaderTemplateDirective);\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 */\nlet FooterTemplateDirective = class FooterTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nFooterTemplateDirective.ɵfac = function FooterTemplateDirective_Factory(t) { return new (t || FooterTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nFooterTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: FooterTemplateDirective, selectors: [[\"\", \"kendoGridFooterTemplate\", \"\"]] });\nFooterTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], FooterTemplateDirective);\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 */\nlet ColumnMenuTemplateDirective = class ColumnMenuTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nColumnMenuTemplateDirective.ɵfac = function ColumnMenuTemplateDirective_Factory(t) { return new (t || ColumnMenuTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nColumnMenuTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ColumnMenuTemplateDirective, selectors: [[\"\", \"kendoGridColumnMenuTemplate\", \"\"]] });\nColumnMenuTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], ColumnMenuTemplateDirective);\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 /**\n * @hidden\n */\n constructor(parent, idService) {\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 * Determines whether the column will be always visible when scrolling the Grid horizontally.\n *\n * @default false\n */\n this.sticky = 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 can be stuck or unstuck from the column menu.\n */\n this.stickable = 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 this.idService = idService;\n if (parent && idService && parent.idService.gridId() === idService.gridId() && !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.ɵfac = function ColumnBase$1_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nColumnBase$1.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ColumnBase$1, contentQueries: function ColumnBase$1_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, FooterTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, HeaderTemplateDirective, 4);\n ɵngcc0.ɵɵcontentQuery(dirIndex, ColumnMenuTemplateDirective, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.footerTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.headerTemplates = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.columnMenuTemplates = _t);\n } }, inputs: { resizable: \"resizable\", reorderable: \"reorderable\", minResizableWidth: \"minResizableWidth\", locked: \"locked\", sticky: \"sticky\", lockable: \"lockable\", stickable: \"stickable\", columnMenu: \"columnMenu\", includeInChooser: \"includeInChooser\", width: \"width\", title: \"title\", autoSize: \"autoSize\", hidden: \"hidden\", media: \"media\", style: \"style\", headerStyle: \"headerStyle\", filterStyle: \"filterStyle\", footerStyle: \"footerStyle\", cssClass: [\"class\", \"cssClass\"], headerClass: \"headerClass\", filterClass: \"filterClass\", footerClass: \"footerClass\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnBase$1.prototype, \"resizable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnBase$1.prototype, \"reorderable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ColumnBase$1.prototype, \"minResizableWidth\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColumnBase$1.prototype, \"title\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], ColumnBase$1.prototype, \"width\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnBase$1.prototype, \"autoSize\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnBase$1.prototype, \"locked\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnBase$1.prototype, \"sticky\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnBase$1.prototype, \"hidden\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColumnBase$1.prototype, \"media\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnBase$1.prototype, \"lockable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnBase$1.prototype, \"stickable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnBase$1.prototype, \"columnMenu\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnBase$1.prototype, \"includeInChooser\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColumnBase$1.prototype, \"style\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColumnBase$1.prototype, \"headerStyle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColumnBase$1.prototype, \"filterStyle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColumnBase$1.prototype, \"footerStyle\", void 0);\n__decorate([\n Input('class'),\n __metadata(\"design:type\", Object)\n], ColumnBase$1.prototype, \"cssClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColumnBase$1.prototype, \"headerClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColumnBase$1.prototype, \"filterClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColumnBase$1.prototype, \"footerClass\", void 0);\n__decorate([\n ContentChildren(HeaderTemplateDirective, { descendants: false }),\n __metadata(\"design:type\", QueryList)\n], ColumnBase$1.prototype, \"headerTemplates\", void 0);\n__decorate([\n ContentChild(FooterTemplateDirective, { static: false }),\n __metadata(\"design:type\", FooterTemplateDirective)\n], ColumnBase$1.prototype, \"footerTemplate\", void 0);\n__decorate([\n ContentChildren(ColumnMenuTemplateDirective),\n __metadata(\"design:type\", QueryList)\n], ColumnBase$1.prototype, \"columnMenuTemplates\", void 0);\n\n/**\n * Represents the filter-cell template ([see example]({% slug builtinfiltertemplate_grid %}#toc-customizing-filter-rows)).\n */\nlet FilterCellTemplateDirective = class FilterCellTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nFilterCellTemplateDirective.ɵfac = function FilterCellTemplateDirective_Factory(t) { return new (t || FilterCellTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nFilterCellTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: FilterCellTemplateDirective, selectors: [[\"\", \"kendoGridFilterCellTemplate\", \"\"]] });\nFilterCellTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], FilterCellTemplateDirective);\n\n/**\n * Represents the filter-menu template\n * ([see example]({% slug builtinfiltertemplate_grid %}#toc-customizing-filter-menus)).\n */\nlet FilterMenuTemplateDirective = class FilterMenuTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nFilterMenuTemplateDirective.ɵfac = function FilterMenuTemplateDirective_Factory(t) { return new (t || FilterMenuTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nFilterMenuTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: FilterMenuTemplateDirective, selectors: [[\"\", \"kendoGridFilterMenuTemplate\", \"\"]] });\nFilterMenuTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], FilterMenuTemplateDirective);\n\n// Incremented each time the service is instantiated.\nlet sequence = 0;\n/**\n * @hidden\n */\nlet IdService = class IdService {\n constructor() {\n this.prefix = `k-grid${sequence++}`;\n }\n gridId() {\n return this.prefix;\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.ɵfac = function IdService_Factory(t) { return new (t || IdService)(); };\nIdService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: IdService, factory: function (t) { return IdService.ɵfac(t); } });\nIdService = __decorate([ __metadata(\"design:paramtypes\", [])\n], IdService);\n\nvar ColumnComponent_1;\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 */\nlet ColumnComponent = ColumnComponent_1 = class ColumnComponent extends ColumnBase$1 {\n constructor(parent, idService) {\n super(parent, idService);\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.ɵfac = function ColumnComponent_Factory(t) { return new (t || ColumnComponent)(ɵngcc0.ɵɵdirectiveInject(ColumnBase$1, 13), ɵngcc0.ɵɵdirectiveInject(IdService, 8)); };\nColumnComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColumnComponent, selectors: [[\"kendo-grid-column\"]], contentQueries: function ColumnComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, CellTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, GroupHeaderTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, GroupHeaderColumnTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, GroupFooterTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, EditTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, FilterCellTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, FilterMenuTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.template = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.groupHeaderTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.groupHeaderColumnTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.groupFooterTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.editTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.filterCellTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.filterMenuTemplate = _t.first);\n } }, inputs: { sortable: \"sortable\", groupable: \"groupable\", editor: \"editor\", filter: \"filter\", filterable: \"filterable\", editable: \"editable\", field: \"field\", format: \"format\" }, features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: ColumnBase$1,\n useExisting: forwardRef(() => ColumnComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function ColumnComponent_Template(rf, ctx) { }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColumnComponent.prototype, \"field\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColumnComponent.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColumnComponent.prototype, \"sortable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnComponent.prototype, \"groupable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColumnComponent.prototype, \"editor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColumnComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnComponent.prototype, \"filterable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnComponent.prototype, \"editable\", void 0);\n__decorate([\n ContentChild(CellTemplateDirective, { static: false }),\n __metadata(\"design:type\", CellTemplateDirective)\n], ColumnComponent.prototype, \"template\", void 0);\n__decorate([\n ContentChild(GroupHeaderTemplateDirective, { static: false }),\n __metadata(\"design:type\", GroupHeaderTemplateDirective)\n], ColumnComponent.prototype, \"groupHeaderTemplate\", void 0);\n__decorate([\n ContentChild(GroupHeaderColumnTemplateDirective, { static: false }),\n __metadata(\"design:type\", GroupHeaderColumnTemplateDirective)\n], ColumnComponent.prototype, \"groupHeaderColumnTemplate\", void 0);\n__decorate([\n ContentChild(GroupFooterTemplateDirective, { static: false }),\n __metadata(\"design:type\", GroupFooterTemplateDirective)\n], ColumnComponent.prototype, \"groupFooterTemplate\", void 0);\n__decorate([\n ContentChild(EditTemplateDirective, { static: false }),\n __metadata(\"design:type\", EditTemplateDirective)\n], ColumnComponent.prototype, \"editTemplate\", void 0);\n__decorate([\n ContentChild(FilterCellTemplateDirective, { static: false }),\n __metadata(\"design:type\", FilterCellTemplateDirective)\n], ColumnComponent.prototype, \"filterCellTemplate\", void 0);\n__decorate([\n ContentChild(FilterMenuTemplateDirective, { static: false }),\n __metadata(\"design:type\", FilterMenuTemplateDirective)\n], ColumnComponent.prototype, \"filterMenuTemplate\", void 0);\nColumnComponent = ColumnComponent_1 = __decorate([ __param(0, SkipSelf()), __param(0, Host()), __param(0, Optional()), __param(1, Optional()),\n __metadata(\"design:paramtypes\", [ColumnBase$1, IdService])\n], ColumnComponent);\n\nvar SpanColumnComponent_1;\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 */\nlet SpanColumnComponent = SpanColumnComponent_1 = class SpanColumnComponent extends ColumnBase$1 {\n constructor(parent, idService) {\n super(parent, idService);\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.ɵfac = function SpanColumnComponent_Factory(t) { return new (t || SpanColumnComponent)(ɵngcc0.ɵɵdirectiveInject(ColumnBase$1, 13), ɵngcc0.ɵɵdirectiveInject(IdService, 8)); };\nSpanColumnComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SpanColumnComponent, selectors: [[\"kendo-grid-span-column\"]], contentQueries: function SpanColumnComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, CellTemplateDirective, 4);\n ɵngcc0.ɵɵcontentQuery(dirIndex, EditTemplateDirective, 4);\n ɵngcc0.ɵɵcontentQuery(dirIndex, ColumnComponent, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.template = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.editTemplate = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.childColumns = _t);\n } }, inputs: { editable: \"editable\", locked: \"locked\" }, features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: ColumnBase$1,\n useExisting: forwardRef(() => SpanColumnComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function SpanColumnComponent_Template(rf, ctx) { }, encapsulation: 2 });\n__decorate([\n ContentChildren(CellTemplateDirective, { descendants: false }),\n __metadata(\"design:type\", QueryList)\n], SpanColumnComponent.prototype, \"template\", void 0);\n__decorate([\n ContentChildren(EditTemplateDirective, { descendants: false }),\n __metadata(\"design:type\", QueryList)\n], SpanColumnComponent.prototype, \"editTemplate\", void 0);\n__decorate([\n ContentChildren(ColumnComponent),\n __metadata(\"design:type\", QueryList)\n], SpanColumnComponent.prototype, \"childColumns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], SpanColumnComponent.prototype, \"editable\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], SpanColumnComponent.prototype, \"locked\", null);\nSpanColumnComponent = SpanColumnComponent_1 = __decorate([ __param(0, SkipSelf()), __param(0, Host()), __param(0, Optional()), __param(1, Optional()),\n __metadata(\"design:paramtypes\", [ColumnBase$1, IdService])\n], SpanColumnComponent);\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\nvar ColumnGroupComponent_1;\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 */\nlet ColumnGroupComponent = ColumnGroupComponent_1 = class ColumnGroupComponent extends ColumnBase$1 {\n constructor(parent, idService) {\n super(parent, idService);\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.ɵfac = function ColumnGroupComponent_Factory(t) { return new (t || ColumnGroupComponent)(ɵngcc0.ɵɵdirectiveInject(ColumnBase$1, 13), ɵngcc0.ɵɵdirectiveInject(IdService, 8)); };\nColumnGroupComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColumnGroupComponent, selectors: [[\"kendo-grid-column-group\"]], contentQueries: function ColumnGroupComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, ColumnBase$1, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.children = _t);\n } }, features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: ColumnBase$1,\n useExisting: forwardRef(() => ColumnGroupComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function ColumnGroupComponent_Template(rf, ctx) { }, encapsulation: 2 });\n__decorate([\n ContentChildren(ColumnBase$1),\n __metadata(\"design:type\", QueryList)\n], ColumnGroupComponent.prototype, \"children\", void 0);\nColumnGroupComponent = ColumnGroupComponent_1 = __decorate([ __param(0, SkipSelf()), __param(0, Host()), __param(0, Optional()), __param(1, Optional()),\n __metadata(\"design:paramtypes\", [ColumnBase$1, IdService])\n], ColumnGroupComponent);\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 */\nlet DetailTemplateDirective = class 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.ɵfac = function DetailTemplateDirective_Factory(t) { return new (t || DetailTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nDetailTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DetailTemplateDirective, selectors: [[\"\", \"kendoGridDetailTemplate\", \"\"]], inputs: { showIf: [\"kendoGridDetailTemplateShowIf\", \"showIf\"] } });\n__decorate([\n Input(\"kendoGridDetailTemplateShowIf\"),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Function])\n], DetailTemplateDirective.prototype, \"showIf\", null);\nDetailTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], DetailTemplateDirective);\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 */\nlet BrowserSupportService = class 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.ɵfac = function BrowserSupportService_Factory(t) { return new (t || BrowserSupportService)(ɵngcc0.ɵɵinject(ɵngcc0.NgZone), ɵngcc0.ɵɵinject(ɵngcc0.ChangeDetectorRef)); };\nBrowserSupportService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: BrowserSupportService, factory: function (t) { return BrowserSupportService.ɵfac(t); } });\nBrowserSupportService = __decorate([ __metadata(\"design:paramtypes\", [NgZone, ChangeDetectorRef])\n], BrowserSupportService);\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, parentGroup }) => {\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, parentGroup);\n }\n //tslint:disable-next-line:no-use-before-declare\n return new ItemIterator(data, dataIndex, parentGroupIndex, parentGroup);\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, group) {\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 group\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, parentGroup = undefined) {\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.parentGroup = parentGroup;\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 parentGroup: this.parentGroup\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 group: {\n data: group,\n index: this.currentGroupIndex,\n level: this.level,\n type: 'group',\n parentGroup: this.parentGroup\n }\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 parentGroup: {\n data: this.current,\n index: this.currentGroupIndex,\n level: this.level,\n type: 'group',\n parentGroup: this.parentGroup\n }\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 *\n * Quick look-up structure for combinations of keys.\n * Similar to the native JS Set, however, working with a couple of keys instead of with a single key.\n * Supports both primitive keys and object keys (compared by reference).\n */\nclass PairSet {\n constructor(items, keyXField, keyYField) {\n /**\n * Holds a set of Y keys for each defined X key.\n * Each X key creates a map which holds a set of Y keys.\n *\n * Map { 1 => Set { 1, 2, 3 } } // pairs: [1, 1], [1, 2], [1, 3]\n */\n this.keysX = new Map();\n /**\n * Count the each added or deleted key manually to avoid iterating over all items when calling `this.size`.\n */\n this.totalKeysCount = 0;\n if (items && keyXField && keyYField) {\n items.forEach(item => this.add(item[keyXField], item[keyYField]));\n }\n }\n /**\n * Gets the total number of X/Y key pairs.\n */\n get size() {\n return this.totalKeysCount;\n }\n /**\n * Adds a couple of items identified as a combination.\n */\n add(keyX, keyY) {\n if (!this.keysX.has(keyX)) {\n this.keysX.set(keyX, new Set());\n }\n if (!this.has(keyX, keyY)) {\n this.keysX.get(keyX).add(keyY);\n this.totalKeysCount += 1;\n }\n }\n /**\n * Adds a combination of a couple of items identified together.\n */\n delete(keyX, keyY) {\n if (this.has(keyX, keyY)) {\n this.keysX.get(keyX).delete(keyY);\n this.totalKeysCount -= 1;\n }\n }\n /**\n * Checks whether the defined combination is stored.\n */\n has(keyX, keyY) {\n return this.keysX.has(keyX) && this.keysX.get(keyX).has(keyY);\n }\n /**\n * Clears all key combinations.\n */\n clear() {\n this.keysX.clear();\n this.totalKeysCount = 0;\n }\n /**\n * Converts the persisted data structure to an array of objects,\n * using the provided field names for the object props.\n */\n toArray(keyXField, keyYField) {\n return Array.from(this.keysX).reduce((pairs, pair) => {\n // Array.from(mapInstance) returns an array of arrays [[itemKey1, columnKeysSet1], [itemKey2, columnKeysSet2]]\n const [keyX, keysY] = pair;\n Array.from(keysY).forEach(keyY => pairs.push({ [keyXField]: keyX, [keyYField]: keyY }));\n return pairs;\n }, []);\n }\n}\n\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.rowSelectionState = new Set();\n this.cellSelectionState = new PairSet();\n this.init();\n }\n get isCellSelectionMode() {\n return isPresent(this.grid.selectable) && this.grid.selectable['cell'];\n }\n ngOnChanges(changes) {\n // skip reinitialization if the user data is the same as the last state change\n if (isPresent(changes.selectedKeys) && this.lastSelectionState !== this.selectedKeys) {\n this.setState(this.selectedKeys);\n }\n }\n init() {\n if (!isPresent(this.grid.rowSelected)) {\n this.grid.rowSelected = (row) => this.rowSelectionState.has(this.getItemKey(row));\n }\n if (!isPresent(this.grid.cellSelected)) {\n this.grid.cellSelected = (row, column, colIndex) => {\n const contender = this.getSelectionItem(row, column, colIndex);\n return {\n selected: this.cellSelectionState.has(contender.itemKey, contender.columnKey),\n item: contender\n };\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.rowSelectionState.clear();\n this.cellSelectionState.clear();\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 getSelectionItem(row, col, colIndex) {\n const itemIdentifiers = {};\n itemIdentifiers.itemKey = this.getItemKey(row);\n if (!isPresent(col) && !isPresent(colIndex)) {\n return itemIdentifiers;\n }\n if (this.columnKey) {\n if (typeof this.columnKey === \"string\") {\n itemIdentifiers.columnKey = row.dataItem[this.columnKey];\n }\n if (typeof this.columnKey === \"function\") {\n itemIdentifiers.columnKey = this.columnKey(col, colIndex);\n }\n }\n return {\n itemKey: itemIdentifiers.itemKey,\n columnKey: itemIdentifiers.columnKey ? itemIdentifiers.columnKey : colIndex\n };\n }\n onSelectionChange(selection) {\n if (selection.selectedRows) {\n selection.deselectedRows.forEach((item) => {\n const itemKey = this.getItemKey(item);\n this.rowSelectionState.delete(itemKey);\n });\n if (this.grid.selectableSettings.mode === \"single\" && this.rowSelectionState.size > 0) {\n this.reset();\n }\n selection.selectedRows.forEach((item) => {\n const itemKey = this.getItemKey(item);\n this.rowSelectionState.add(itemKey);\n });\n }\n else {\n selection.deselectedCells.forEach(({ itemKey, columnKey }) => {\n this.cellSelectionState.delete(itemKey, columnKey);\n });\n if (this.grid.selectableSettings.mode === \"single\" && this.cellSelectionState.size > 0) {\n this.reset();\n }\n selection.selectedCells.forEach(({ itemKey, columnKey }) => {\n this.cellSelectionState.add(itemKey, columnKey);\n });\n }\n this.cd.markForCheck();\n this.notifyChange();\n }\n notifyChange() {\n this.lastSelectionState = this.stateToArray();\n this.selectedKeysChange.emit(this.lastSelectionState);\n }\n setState(selectedKeys) {\n this.reset();\n if (this.isCellSelectionMode) {\n this.cellSelectionState = new PairSet(selectedKeys, 'itemKey', 'columnKey');\n }\n else {\n this.rowSelectionState = new Set(selectedKeys);\n }\n }\n stateToArray() {\n return this.isCellSelectionMode ?\n this.cellSelectionState.toArray('itemKey', 'columnKey') :\n Array.from(this.rowSelectionState);\n }\n}\nSelection.ɵfac = function Selection_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nSelection.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: Selection, inputs: { selectedKeys: \"selectedKeys\", selectionKey: [\"kendoGridSelectBy\", \"selectionKey\"], columnKey: \"columnKey\" }, outputs: { selectedKeysChange: \"selectedKeysChange\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], Selection.prototype, \"selectedKeys\", void 0);\n__decorate([\n Input(\"kendoGridSelectBy\"),\n __metadata(\"design:type\", Object)\n], Selection.prototype, \"selectionKey\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], Selection.prototype, \"columnKey\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], Selection.prototype, \"selectedKeysChange\", void 0);\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 totalColumnLevels() {\n let totalLevels = 0;\n this.forEach(column => {\n totalLevels = Math.max(column.level, totalLevels);\n });\n return totalLevels;\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}\nGroupInfoService.ɵfac = function GroupInfoService_Factory(t) { return new (t || GroupInfoService)(); };\nGroupInfoService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: GroupInfoService, factory: GroupInfoService.ɵfac });\n\n/**\n * @hidden\n */\nlet ChangeNotificationService = class 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.ɵfac = function ChangeNotificationService_Factory(t) { return new (t || ChangeNotificationService)(ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nChangeNotificationService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ChangeNotificationService, factory: function (t) { return ChangeNotificationService.ɵfac(t); } });\nChangeNotificationService = __decorate([ __metadata(\"design:paramtypes\", [NgZone])\n], ChangeNotificationService);\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 */\nlet NoRecordsTemplateDirective = class NoRecordsTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nNoRecordsTemplateDirective.ɵfac = function NoRecordsTemplateDirective_Factory(t) { return new (t || NoRecordsTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nNoRecordsTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NoRecordsTemplateDirective, selectors: [[\"\", \"kendoGridNoRecordsTemplate\", \"\"]] });\nNoRecordsTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], NoRecordsTemplateDirective);\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 */\nlet MenuTabbingService = class MenuTabbingService {\n /**\n * @hidden\n */\n constructor() {\n this.isColumnMenu = false;\n this.isPopupOpen = false;\n }\n};\nMenuTabbingService.ɵfac = function MenuTabbingService_Factory(t) { return new (t || MenuTabbingService)(); };\nMenuTabbingService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: MenuTabbingService, factory: function (t) { return MenuTabbingService.ɵfac(t); } });\n\n/**\n * Represents a service to set the filter descriptor\n * ([see example]({% slug reusablecustomfilters_grid %})).\n */\nlet FilterService = class FilterService {\n /**\n * @hidden\n */\n constructor(menuTabbingService) {\n /**\n * Fires when the filter descriptors is set.\n */\n this.changes = new Subject();\n this.menuTabbingService = menuTabbingService;\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};\nFilterService.ɵfac = function FilterService_Factory(t) { return new (t || FilterService)(ɵngcc0.ɵɵinject(MenuTabbingService, 8)); };\nFilterService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: FilterService, factory: function (t) { return FilterService.ɵfac(t); } });\nFilterService = __decorate([\n __param(0, Optional()),\n __metadata(\"design:paramtypes\", [MenuTabbingService])\n], FilterService);\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 * * Needs to be provided as an input to inner pager components used within the template when the Grid is navigable.\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 */\nlet PagerTemplateDirective = class PagerTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nPagerTemplateDirective.ɵfac = function PagerTemplateDirective_Factory(t) { return new (t || PagerTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nPagerTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: PagerTemplateDirective, selectors: [[\"\", \"kendoPagerTemplate\", \"\"]] });\nPagerTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], PagerTemplateDirective);\n\n/**\n * @hidden\n */\nlet PDFService = class PDFService {\n /**\n * @hidden\n */\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.ɵfac = function PDFService_Factory(t) { return new (t || PDFService)(); };\nPDFService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: PDFService, factory: function (t) { return PDFService.ɵfac(t); } });\n\n/**\n * Arguments for the `pdfExport` event.\n */\nclass PDFExportEvent extends PreventableEvent {\n}\n\n/**\n * @hidden\n */\nlet SuspendService = class SuspendService {\n /**\n * @hidden\n */\n constructor() {\n this.scroll = false;\n }\n};\nSuspendService.ɵfac = function SuspendService_Factory(t) { return new (t || SuspendService)(); };\nSuspendService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: SuspendService, factory: function (t) { return SuspendService.ɵfac(t); } });\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 */\nlet ResponsiveService = class ResponsiveService {\n /**\n * @hidden\n */\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.ɵfac = function ResponsiveService_Factory(t) { return new (t || ResponsiveService)(); };\nResponsiveService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ResponsiveService, factory: function (t) { return ResponsiveService.ɵfac(t); } });\n\n/**\n * @hidden\n */\nlet ExcelService = class ExcelService {\n /**\n * @hidden\n */\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.ɵfac = function ExcelService_Factory(t) { return new (t || ExcelService)(); };\nExcelService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ExcelService, factory: function (t) { return ExcelService.ɵfac(t); } });\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 */\nlet ToolbarTemplateDirective = class 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.ɵfac = function ToolbarTemplateDirective_Factory(t) { return new (t || ToolbarTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nToolbarTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ToolbarTemplateDirective, selectors: [[\"\", \"kendoGridToolbarTemplate\", \"\"]], inputs: { position: \"position\" } });\n__decorate([\n Input(\"position\"),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ToolbarTemplateDirective.prototype, \"position\", null);\nToolbarTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], ToolbarTemplateDirective);\n\n/**\n * @hidden\n */\nlet ScrollSyncService = class 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.ɵfac = function ScrollSyncService_Factory(t) { return new (t || ScrollSyncService)(ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nScrollSyncService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ScrollSyncService, factory: function (t) { return ScrollSyncService.ɵfac(t); } });\nScrollSyncService = __decorate([ __metadata(\"design:paramtypes\", [NgZone])\n], ScrollSyncService);\n\n/**\n * @hidden\n */\nlet ResizeService = class ResizeService {\n /**\n * @hidden\n */\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.ɵfac = function ResizeService_Factory(t) { return new (t || ResizeService)(); };\nResizeService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ResizeService, factory: function (t) { return ResizeService.ɵfac(t); } });\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 */\nlet ColumnResizingService = class ColumnResizingService {\n /**\n * @hidden\n */\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.ɵfac = function ColumnResizingService_Factory(t) { return new (t || ColumnResizingService)(); };\nColumnResizingService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ColumnResizingService, factory: function (t) { return ColumnResizingService.ɵfac(t); } });\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 */\nlet SinglePopupService = class 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.ɵfac = function SinglePopupService_Factory(t) { return new (t || SinglePopupService)(ɵngcc0.ɵɵinject(ɵngcc3.PopupService), ɵngcc0.ɵɵinject(ɵngcc0.Renderer2), ɵngcc0.ɵɵinject(ɵngcc0.NgZone), ɵngcc0.ɵɵinject(ScrollSyncService), ɵngcc0.ɵɵinject(ɵngcc1.LocalizationService)); };\nSinglePopupService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: SinglePopupService, factory: function (t) { return SinglePopupService.ɵfac(t); } });\nSinglePopupService = __decorate([ __metadata(\"design:paramtypes\", [PopupService,\n Renderer2,\n NgZone,\n ScrollSyncService,\n LocalizationService])\n], SinglePopupService);\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 */\nlet DragAndDropService = class DragAndDropService {\n /**\n * @hidden\n */\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.ɵfac = function DragAndDropService_Factory(t) { return new (t || DragAndDropService)(); };\nDragAndDropService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: DragAndDropService, factory: function (t) { return DragAndDropService.ɵfac(t); } });\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) => {\n element.className = 'k-header k-drag-clue';\n element.style.position = 'absolute';\n element.style.zIndex = '20000';\n};\n/**\n * @hidden\n */\nlet DragHintService = class DragHintService {\n constructor(santizer) {\n this.santizer = santizer;\n }\n create(title) {\n this.dom = document.createElement(\"div\");\n decorate(this.dom);\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 = move.pageY + 'px';\n this.dom.style.left = move.pageX + 'px';\n }\n};\nDragHintService.ɵfac = function DragHintService_Factory(t) { return new (t || DragHintService)(ɵngcc0.ɵɵinject(ɵngcc4.DomSanitizer)); };\nDragHintService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: DragHintService, factory: function (t) { return DragHintService.ɵfac(t); } });\nDragHintService = __decorate([ __metadata(\"design:paramtypes\", [DomSanitizer])\n], DragHintService);\n\n/**\n * @hidden\n */\nlet DropCueService = class 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.ɵfac = function DropCueService_Factory(t) { return new (t || DropCueService)(); };\nDropCueService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: DropCueService, factory: function (t) { return DropCueService.ɵfac(t); } });\n\n/**\n * @hidden\n */\nlet ColumnReorderService = class ColumnReorderService {\n /**\n * @hidden\n */\n constructor() {\n this.changes = new EventEmitter();\n }\n reorder(e) {\n this.changes.emit(e);\n }\n};\nColumnReorderService.ɵfac = function ColumnReorderService_Factory(t) { return new (t || ColumnReorderService)(); };\nColumnReorderService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ColumnReorderService, factory: function (t) { return ColumnReorderService.ɵfac(t); } });\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 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\nconst NO_STICKY = { left: '0px', right: '0px' };\n/**\n * @hidden\n */\nlet ColumnInfoService = class ColumnInfoService {\n /**\n * @hidden\n */\n constructor() {\n this.visibilityChange = new EventEmitter();\n this.lockedChange = new EventEmitter();\n this.stickyChange = 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 stickyColumnsStyles(column) {\n if (!this.stickyColumns) {\n this.stickyColumns = this.list().rootColumns().filter(column => column.sticky && !column.locked && column.isVisible);\n }\n if (this.stickyColumns.length === 0) {\n return NO_STICKY;\n }\n const result = this.stickyColumns.reduce((acc, curr) => {\n if (curr.leafIndex < column.leafIndex) {\n acc.left += curr.width;\n }\n else if (curr.leafIndex > column.leafIndex) {\n acc.right += curr.width;\n }\n return acc;\n }, { left: 0, right: 0 });\n return {\n left: `${result.left}px`,\n right: `${result.right}px`\n };\n }\n init(columns, list) {\n this.columnsContainer = columns;\n this.list = list;\n this.stickyColumns = null;\n }\n changeVisibility(columns) {\n this.stickyColumns = null;\n this.visibilityChange.emit(columns);\n }\n changeLocked(columns) {\n this.stickyColumns = null;\n this.lockedChange.emit(columns);\n }\n changeStuck(columns) {\n this.stickyColumns = null;\n this.stickyChange.emit(columns);\n }\n};\nColumnInfoService.ɵfac = function ColumnInfoService_Factory(t) { return new (t || ColumnInfoService)(); };\nColumnInfoService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ColumnInfoService, factory: function (t) { return ColumnInfoService.ɵfac(t); } });\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}\nSortService.ɵfac = function SortService_Factory(t) { return new (t || SortService)(); };\nSortService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: SortService, factory: SortService.ɵfac });\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 * @hidden\n */\nconst RESPONSIVE_BREAKPOINT_MEDIUM = 600;\n/**\n * @hidden\n */\nconst RESPONSIVE_BREAKPOINT_LARGE = 768;\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\n/**\n * Arguments for the `columnStickyChange` event.\n */\nclass ColumnStickyChangeEvent {\n /**\n * @hidden\n */\n constructor(columns) {\n this.columns = columns;\n }\n}\n\n/**\n * Represents the virtual scrolling cell template of the Grid while loading new data. Provides an option to customize the\n * appearance of the indicator that is displayed while new data is loading. To define the loading cell template,\n * nest an `` tag with the `kendoGridCellLoadingTemplate` directive inside `` ([see example]({% slug virtualscrolling_grid %}#toc-custom-loading-skeleton)).\n *\n * The template context is set to the current column, and utilizes the `let-x` syntax—for example, `let-column`.\n *\n * @example\n * ```ts-no-run\n * \n * \n * ...\n * \n * \n * ```\n */\nlet CellLoadingTemplateDirective = class CellLoadingTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nCellLoadingTemplateDirective.ɵfac = function CellLoadingTemplateDirective_Factory(t) { return new (t || CellLoadingTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nCellLoadingTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CellLoadingTemplateDirective, selectors: [[\"\", \"kendoGridCellLoadingTemplate\", \"\"]] });\nCellLoadingTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], CellLoadingTemplateDirective);\n\n/**\n * Creates a loading template that overrides the default loading indicator of the Grid Component.\n * To define a loading template, nest an `` tag with the `kendoGridLoadingTemplate` directive inside the `` tag\n * [see example]({% slug databinding_grid %}#toc-loading-template).\n */\nlet LoadingTemplateDirective = class LoadingTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nLoadingTemplateDirective.ɵfac = function LoadingTemplateDirective_Factory(t) { return new (t || LoadingTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nLoadingTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LoadingTemplateDirective, selectors: [[\"\", \"kendoGridLoadingTemplate\", \"\"]] });\nLoadingTemplateDirective = __decorate([ __metadata(\"design:paramtypes\", [TemplateRef])\n], LoadingTemplateDirective);\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 handleExpandCollapseGroupsService = (service, expandEmitter, collapseEmitter, map$$1) => (service.changes.pipe(filter(({ group }) => isPresent(group)))\n .subscribe((x) => x.expand ? expandEmitter.emit(map$$1(x)) : collapseEmitter.emit(map$$1(x))));\nconst handleExpandCollapseDetailsService = (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 ɵ5$1 = 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 */\nlet GridComponent = class GridComponent {\n constructor(supportService, selectionService, cellSelectionService, 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.cellSelectionService = cellSelectionService;\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 this.localization = localization;\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. Defaults to `10`.\n * - `info: Boolean`—Toggles the information about the current page and the total number of records. Defaults to `true`.\n * - `type: PagerType`—Accepts the `numeric` (buttons with numbers) and `input` (input for typing the page number) values. Defaults to `'numeric'`.\n * - `pageSizes: Boolean` or `Array`—Shows a menu for selecting the page size. Defaults to `false`.\n * - `previousNext: Boolean`—Toggles the **Previous** and **Next** buttons. Defaults to `true`.\n * - `responsive: Boolean`—Toggles the built-in responsive behavior of the Pager. Defaults to `true`.\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 changes the sticky state of the columns from the column menu.\n */\n this.columnStickyChange = 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._cellSelected = null;\n this.rtl = false;\n this._rowClass = () => null;\n validatePackage(packageMetadata);\n this.localizationSubscription = this.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 this.columnStickyChangeSubscription = this.columnInfoService.stickyChange.subscribe((changed) => {\n this.columnStickyChange.emit(new ColumnStickyChangeEvent(changed));\n });\n this.groupExpandCollapseSubscription = handleExpandCollapseGroupsService(groupsService, this.groupExpand, this.groupCollapse, ({ group, groupIndex, parentGroup }) => ({ group, groupIndex, parentGroup }));\n this.detailsServiceSubscription = handleExpandCollapseDetailsService(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 showTopPager() {\n const position = this.pageable.position;\n return !this.isVirtual && this.pageable !== false && ['top', 'both'].indexOf(position) > -1;\n }\n /**\n * @hidden\n */\n get showBottomPager() {\n const position = this.pageable.position;\n return !this.isVirtual && this.pageable !== false && position !== 'top';\n }\n /**\n * @hidden\n */\n get hasPager() {\n return this.showTopPager || this.showBottomPager;\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 get marqueeSelection() {\n return this.selectionService.enableMarquee || this.cellSelectionService.enableMarquee;\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 (isDevMode && 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 function that is executed for every data row in the component,\n * and determines whether the row will be sticky, i.e. always visible after scrolling.\n */\n set rowSticky(fn) {\n if (isDevMode && isPresent(fn) && typeof fn !== 'function') {\n throw new Error(`rowSticky must be a function, but received ${JSON.stringify(fn)}.`);\n }\n if (isPresent(fn)) {\n this._rowSticky = fn;\n }\n }\n get rowSticky() {\n return this._rowSticky;\n }\n /**\n * Defines a Boolean function that is executed for each data row in the component\n * ([see example]({% slug grid_selection_custom %}#toc-setting-the-selected-rows)).\n * Determines whether the row will be selected.\n */\n set rowSelected(fn) {\n if (isDevMode && 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 * Defines a function that determines the selected state of a data cell.\n * Returns an object with `selected` and `item` properties.\n * The cell is marked as selected only if the `selected` property equals `true`.\n *\n * The function is executed for each data cell and may be called more than once\n * as part of a change detection cycle. ([see example]({% slug grid_selection_custom %}#toc-setting-the-selected-cells))\n */\n set cellSelected(fn) {\n if (isDevMode && typeof fn !== 'function') {\n throw new Error(`cellSelected must be a function, but received ${JSON.stringify(fn)}.`);\n }\n this._cellSelected = fn;\n }\n get cellSelected() {\n return this._cellSelected;\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 cellLoadingTemplate() {\n if (this._cellLoadingTemplate) {\n return this._customDetailTemplate;\n }\n return this.cellLoadingTemplateChildren ? this.cellLoadingTemplateChildren.first : undefined;\n }\n set cellLoadingTemplate(cellLoadingTemplate) {\n this._cellLoadingTemplate = cellLoadingTemplate;\n }\n get loadingTemplate() {\n if (this._loadingTemplate) {\n return this._loadingTemplate;\n }\n return this.loadingTemplateChildren ? this.loadingTemplateChildren.first : undefined;\n }\n set loadingTemplate(loadingTemplate) {\n this._loadingTemplate = loadingTemplate;\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) + '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 stickyColumns() {\n return this.columns.filter(column => column.sticky);\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 * This method is provided only for backwards-compatibility with legacy versions.\n * These versions tracked the expanded group state internally using the hierarchical group index.\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 this.toggleGroupRowLegacy(index, true);\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 * This method is provided only for backwards-compatibility with legacy versions.\n * These versions tracked the expanded group state internally using the hierarchical group index.\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 this.toggleGroupRowLegacy(index, false);\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 if (isChanged(\"selectable\", changes) && this.shouldResetSelection(changes.selectable)) {\n if (this.defaultSelection) {\n this.defaultSelection.reset();\n }\n else if (this.selectionDirective) {\n this.selectionDirective.reset();\n }\n }\n if (isChanged('groupable', changes, true)) {\n this.groupable = changes.groupable.currentValue;\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.columnStickyChangeSubscription) {\n this.columnStickyChangeSubscription.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 * @hidden\n */\n get ariaLabel() {\n return this.localization.get('gridLabel');\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 ([see example]({% slug scrollmmodes_grid %}#toc-scrolling-to-a-specific-row-and-column-index)).\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 = sortColumns(this.allColumnsForLevel(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 * A function which determines if a specific group row is expanded.\n */\n set isGroupExpanded(callback) {\n this.groupsService.userCallback = callback;\n this.groupable = isPresent(callback);\n }\n get isGroupExpanded() {\n return this.groupsService.userCallback;\n }\n /**\n * @hidden\n */\n reorder({ target, source, before, changeContainer }) {\n this.ngZone.run(() => {\n const columnsForLevel = sortColumns(this.allColumnsForLevel(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({ columnsForLevel, 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({ columnsForLevel, source, target, before }) {\n const expandedColumns = expandColumnsWithSpan(columnsForLevel);\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.allColumnsForLevel(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.columnList.totalColumnLevels()) {\n this.updateIndicesForLevel(level + 1);\n }\n }\n allColumnsForLevel(level) {\n return this.columnList.toArray().filter(column => column.level === level);\n }\n initSelectionService() {\n if (!this.selectable) {\n this.selectionService.ngOnDestroy();\n this.cellSelectionService.ngOnDestroy();\n return;\n }\n if (!this.selectionDirective && !isPresent(this.defaultSelection)) {\n this.defaultSelection = new Selection(this, this.changeDetectorRef);\n }\n const cellSelectionMode = this.selectable['cell'];\n const activeService = cellSelectionMode ? this.cellSelectionService : this.selectionService;\n const inactiveService = cellSelectionMode ? this.selectionService : this.cellSelectionService;\n if (inactiveService.active) {\n inactiveService.ngOnDestroy();\n activeService.addSubscriptions();\n inactiveService.active = false;\n }\n activeService.active = true;\n activeService.init({\n cellSelected: cellSelectionMode ? this.cellSelected : undefined,\n rowSelected: cellSelectionMode ? undefined : this.rowSelected,\n selectable: this.selectable,\n view: this.view,\n columns: cellSelectionMode ? this.columnList.toArray() : undefined\n });\n if (!this.selectionDirective && !this.selectableSettings.enabled) {\n this.defaultSelection.reset();\n }\n if (this.selectionSubscription) {\n this.selectionSubscription.unsubscribe();\n }\n if (cellSelectionMode) {\n this.selectionSubscription = this.cellSelectionService.changes.subscribe((event) => {\n this.ngZone.run(() => this.selectionChange.emit(event));\n });\n }\n else {\n this.selectionSubscription = this.selectionService.changes.subscribe((event) => {\n this.ngZone.run(() => this.selectionChange.emit(event));\n });\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 const stickyColumns = this.stickyColumns.length || (this.columnMenu && this.columnMenu.stick);\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 if (stickyColumns && expandColumns(this.columnList.toArray()).filter(column => !column.width && !isColumnGroupComponent(column)).length) {\n throw new Error('Sticky columns feature requires all columns to have set width.');\n }\n if (stickyColumns && !this.isScrollable) {\n throw new Error('Sticky columns are only supported when scrolling is enabled.');\n }\n if (stickyColumns && this.virtualColumns) {\n throw new Error('Having both sticky columns and column virtualization is not supported.');\n }\n if (this.rowSticky && this.scrollable === 'virtual') {\n throw new Error('Having both sticky rows and row virtualization (scrollable=\"virtual\") is not supported.');\n }\n if (this.rowSticky && this.groupable) {\n throw new Error('Having both sticky rows and grouping is not supported.');\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.hasPager, 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 toggleGroupRowLegacy(index, expand) {\n const hasCallback = typeof this.isGroupExpanded === 'function';\n if (isDevMode() && hasCallback) {\n throw new Error('The expandGroup and collapseGroup methods should not be called when using the ' +\n 'kendoGridExpandGroupBy directive or the isGroupExpanded callback. ' +\n 'These methods are provided only for backwards compatibility with legacy versions.');\n }\n if (!isDevMode() && hasCallback) {\n return;\n }\n if (this.groupsService.isExpanded({ groupIndex: index }) !== expand) {\n this.groupsService.toggleRow({ index });\n }\n }\n shouldResetSelection(selectableChanges) {\n const previousValue = selectableChanges.previousValue;\n if (!previousValue) {\n // Selection was disabled, no need to reset.\n return false;\n }\n const currentValue = selectableChanges.currentValue;\n if (!currentValue || currentValue.enabled === false) {\n // Selection disabled, reset.\n return true;\n }\n return previousValue.cell !== currentValue.cell;\n }\n};\nGridComponent.ɵfac = function GridComponent_Factory(t) { return new (t || GridComponent)(ɵngcc0.ɵɵdirectiveInject(BrowserSupportService), ɵngcc0.ɵɵdirectiveInject(SelectionService), ɵngcc0.ɵɵdirectiveInject(CellSelectionService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(GroupInfoService), ɵngcc0.ɵɵdirectiveInject(GroupsService), ɵngcc0.ɵɵdirectiveInject(ChangeNotificationService), ɵngcc0.ɵɵdirectiveInject(DetailsService), ɵngcc0.ɵɵdirectiveInject(EditService), ɵngcc0.ɵɵdirectiveInject(FilterService), ɵngcc0.ɵɵdirectiveInject(PDFService), ɵngcc0.ɵɵdirectiveInject(ResponsiveService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ExcelService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ScrollSyncService), ɵngcc0.ɵɵdirectiveInject(DomEventsService), ɵngcc0.ɵɵdirectiveInject(ColumnResizingService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ColumnReorderService), ɵngcc0.ɵɵdirectiveInject(ColumnInfoService), ɵngcc0.ɵɵdirectiveInject(NavigationService), ɵngcc0.ɵɵdirectiveInject(SortService), ɵngcc0.ɵɵdirectiveInject(ScrollRequestService), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nGridComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: GridComponent, selectors: [[\"kendo-grid\"]], contentQueries: function GridComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, ColumnBase$1, 4);\n ɵngcc0.ɵɵcontentQuery(dirIndex, DetailTemplateDirective, 4);\n ɵngcc0.ɵɵcontentQuery(dirIndex, CellLoadingTemplateDirective, 4);\n ɵngcc0.ɵɵcontentQuery(dirIndex, LoadingTemplateDirective, 4);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NoRecordsTemplateDirective, 4);\n ɵngcc0.ɵɵcontentQuery(dirIndex, PagerTemplateDirective, 4);\n ɵngcc0.ɵɵcontentQuery(dirIndex, ToolbarTemplateDirective, 4);\n ɵngcc0.ɵɵcontentQuery(dirIndex, ColumnMenuTemplateDirective, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.columns = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.detailTemplateChildren = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.cellLoadingTemplateChildren = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.loadingTemplateChildren = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.noRecordsTemplateChildren = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.pagerTemplateChildren = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.toolbarTemplateChildren = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.columnMenuTemplates = _t);\n } }, viewQuery: function GridComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c0, 5);\n ɵngcc0.ɵɵviewQuery(_c1, 5);\n ɵngcc0.ɵɵviewQuery(_c2, 7);\n ɵngcc0.ɵɵviewQuery(_c3, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.lockedHeader = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.header = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.ariaRoot = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.footer = _t);\n } }, hostVars: 9, hostBindings: function GridComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"dir\", ctx.dir);\n ɵngcc0.ɵɵclassProp(\"k-grid\", ctx.hostClasses)(\"k-grid-lockedcolumns\", ctx.lockedClasses)(\"k-grid-virtual\", ctx.virtualClasses)(\"k-grid-no-scrollbar\", ctx.noScrollbarClass);\n } }, inputs: { data: \"data\", scrollable: \"scrollable\", selectable: \"selectable\", trackBy: \"trackBy\", virtualColumns: \"virtualColumns\", filterable: \"filterable\", sortable: \"sortable\", pageable: \"pageable\", groupable: \"groupable\", navigable: \"navigable\", autoSize: \"autoSize\", resizable: \"resizable\", reorderable: \"reorderable\", loading: \"loading\", columnMenu: \"columnMenu\", hideHeader: \"hideHeader\", skip: \"skip\", sort: \"sort\", group: \"group\", navigatable: \"navigatable\", rowClass: \"rowClass\", rowSticky: \"rowSticky\", rowSelected: \"rowSelected\", cellSelected: \"cellSelected\", isDetailExpanded: \"isDetailExpanded\", isGroupExpanded: \"isGroupExpanded\", pageSize: \"pageSize\", height: \"height\", rowHeight: \"rowHeight\", detailRowHeight: \"detailRowHeight\", filter: \"filter\" }, outputs: { filterChange: \"filterChange\", pageChange: \"pageChange\", groupChange: \"groupChange\", sortChange: \"sortChange\", selectionChange: \"selectionChange\", dataStateChange: \"dataStateChange\", groupExpand: \"groupExpand\", groupCollapse: \"groupCollapse\", detailExpand: \"detailExpand\", detailCollapse: \"detailCollapse\", edit: \"edit\", cancel: \"cancel\", save: \"save\", remove: \"remove\", add: \"add\", cellClose: \"cellClose\", cellClick: \"cellClick\", pdfExport: \"pdfExport\", excelExport: \"excelExport\", columnResize: \"columnResize\", columnReorder: \"columnReorder\", columnVisibilityChange: \"columnVisibilityChange\", columnLockedChange: \"columnLockedChange\", columnStickyChange: \"columnStickyChange\", scrollBottom: \"scrollBottom\", contentScroll: \"contentScroll\" }, exportAs: [\"kendoGrid\"], features: [ɵngcc0.ɵɵProvidersFeature([\n BrowserSupportService,\n LocalizationService,\n ColumnInfoService,\n SelectionService,\n CellSelectionService,\n DetailsService,\n GroupsService,\n GroupInfoService,\n ChangeNotificationService,\n EditService,\n PDFService,\n SuspendService,\n {\n provide: CELL_CONTEXT,\n useValue: ɵ5$1\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 ]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 12, vars: 17, consts: function () { let i18n_4; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label visible in the Grid group panel when it is empty\n * @meaning kendo.grid.groupPanelEmpty\n */\n const MSG_EXTERNAL_1430663748859427158$$DIST_FESM2015_INDEX_JS_5 = goog.getMsg(\"Drag a column header and drop it here to group by that column\");\n i18n_4 = MSG_EXTERNAL_1430663748859427158$$DIST_FESM2015_INDEX_JS_5;\n }\n else {\n i18n_4 = $localize `:kendo.grid.groupPanelEmpty|The label visible in the Grid group panel when it is empty␟30bcb3a2fbc22fcab6ca805e74b90adb8ba1ae96␟1430663748859427158:Drag a column header and drop it here to group by that column`;\n } let i18n_6; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label visible in the Grid when there are no records\n * @meaning kendo.grid.noRecords\n */\n const MSG_EXTERNAL_1243399825085142134$$DIST_FESM2015_INDEX_JS_7 = goog.getMsg(\"No records available.\");\n i18n_6 = MSG_EXTERNAL_1243399825085142134$$DIST_FESM2015_INDEX_JS_7;\n }\n else {\n i18n_6 = $localize `:kendo.grid.noRecords|The label visible in the Grid when there are no records␟ff9cfd4bf3e40305db251f2b6961796c0550b4b0␟1243399825085142134:No records available.`;\n } let i18n_8; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the first page button in Grid pager\n * @meaning kendo.grid.pagerFirstPage\n */\n const MSG_EXTERNAL_5647145449685906398$$DIST_FESM2015_INDEX_JS_9 = goog.getMsg(\"Go to the first page\");\n i18n_8 = MSG_EXTERNAL_5647145449685906398$$DIST_FESM2015_INDEX_JS_9;\n }\n else {\n i18n_8 = $localize `:kendo.grid.pagerFirstPage|The label for the first page button in Grid pager␟b405dfc5ee42415daa08d54847d3010de1821111␟5647145449685906398:Go to the first page`;\n } let i18n_10; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the previous page button in Grid pager\n * @meaning kendo.grid.pagerPreviousPage\n */\n const MSG_EXTERNAL_6745088753482690847$$DIST_FESM2015_INDEX_JS_11 = goog.getMsg(\"Go to the previous page\");\n i18n_10 = MSG_EXTERNAL_6745088753482690847$$DIST_FESM2015_INDEX_JS_11;\n }\n else {\n i18n_10 = $localize `:kendo.grid.pagerPreviousPage|The label for the previous page button in Grid pager␟47aa4fe05f5a2577d3336971d7c44ce48802b860␟6745088753482690847:Go to the previous page`;\n } let i18n_12; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the next page button in Grid pager\n * @meaning kendo.grid.pagerNextPage\n */\n const MSG_EXTERNAL_5510985262435270859$$DIST_FESM2015_INDEX_JS_13 = goog.getMsg(\"Go to the next page\");\n i18n_12 = MSG_EXTERNAL_5510985262435270859$$DIST_FESM2015_INDEX_JS_13;\n }\n else {\n i18n_12 = $localize `:kendo.grid.pagerNextPage|The label for the next page button in Grid pager␟90031133fca899b4e491d9fc51128c1a184afb30␟5510985262435270859:Go to the next page`;\n } let i18n_14; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the last page button in Grid pager\n * @meaning kendo.grid.pagerLastPage\n */\n const MSG_EXTERNAL_4539768510520419313$$DIST_FESM2015_INDEX_JS_15 = goog.getMsg(\"Go to the last page\");\n i18n_14 = MSG_EXTERNAL_4539768510520419313$$DIST_FESM2015_INDEX_JS_15;\n }\n else {\n i18n_14 = $localize `:kendo.grid.pagerLastPage|The label for the last page button in Grid pager␟fe84f2ea868286ce03e50b6e55558c16d675c753␟4539768510520419313:Go to the last page`;\n } let i18n_16; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label before the current page number in the Grid pager\n * @meaning kendo.grid.pagerPage\n */\n const MSG_EXTERNAL_5228228287003939680$$DIST_FESM2015_INDEX_JS_17 = goog.getMsg(\"Page\");\n i18n_16 = MSG_EXTERNAL_5228228287003939680$$DIST_FESM2015_INDEX_JS_17;\n }\n else {\n i18n_16 = $localize `:kendo.grid.pagerPage|The label before the current page number in the Grid pager␟89c1f616c25bb610824cd8a26473a03921df48bd␟5228228287003939680:Page`;\n } let i18n_18; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label before the total pages number in the Grid pager\n * @meaning kendo.grid.pagerOf\n */\n const MSG_EXTERNAL_7004642096327889102$$DIST_FESM2015_INDEX_JS_19 = goog.getMsg(\"of\");\n i18n_18 = MSG_EXTERNAL_7004642096327889102$$DIST_FESM2015_INDEX_JS_19;\n }\n else {\n i18n_18 = $localize `:kendo.grid.pagerOf|The label before the total pages number in the Grid pager␟0c9abe48f5d4bd2cb51846712e41864fc64aad6a␟7004642096327889102:of`;\n } let i18n_20; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label after the total pages number in the Grid pager\n * @meaning kendo.grid.pagerItems\n */\n const MSG_EXTERNAL_700193548223931835$$DIST_FESM2015_INDEX_JS_21 = goog.getMsg(\"items\");\n i18n_20 = MSG_EXTERNAL_700193548223931835$$DIST_FESM2015_INDEX_JS_21;\n }\n else {\n i18n_20 = $localize `:kendo.grid.pagerItems|The label after the total pages number in the Grid pager␟7c1704d11bfb77340485acd891439c2b6c6616ca␟700193548223931835:items`;\n } let i18n_22; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the pager input in the Grid pager\n * @meaning kendo.grid.pagerPageNumberInputTitle\n */\n const MSG_EXTERNAL_2090461908134774363$$DIST_FESM2015_INDEX_JS_23 = goog.getMsg(\"Page Number\");\n i18n_22 = MSG_EXTERNAL_2090461908134774363$$DIST_FESM2015_INDEX_JS_23;\n }\n else {\n i18n_22 = $localize `:kendo.grid.pagerPageNumberInputTitle|The label for the pager input in the Grid pager␟f8bad8f2c7345e4fe531480e3034f7d3e954d383␟2090461908134774363:Page Number`;\n } let i18n_24; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the page size chooser in the Grid pager\n * @meaning kendo.grid.pagerItemsPerPage\n */\n const MSG_EXTERNAL_8838594644885628398$$DIST_FESM2015_INDEX_JS_25 = goog.getMsg(\"items per page\");\n i18n_24 = MSG_EXTERNAL_8838594644885628398$$DIST_FESM2015_INDEX_JS_25;\n }\n else {\n i18n_24 = $localize `:kendo.grid.pagerItemsPerPage|The label for the page size chooser in the Grid pager␟3331fe7ec45f299afaa4c1e08ea25c493eda9144␟8838594644885628398:items per page`;\n } let i18n_26; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label of the filter cell or icon\n * @meaning kendo.grid.filter\n */\n const MSG_EXTERNAL_7977992299945497789$$DIST_FESM2015_INDEX_JS_27 = goog.getMsg(\"Filter\");\n i18n_26 = MSG_EXTERNAL_7977992299945497789$$DIST_FESM2015_INDEX_JS_27;\n }\n else {\n i18n_26 = $localize `:kendo.grid.filter|The label of the filter cell or icon␟21a04b7b090dac60e0449cb6e435b7e879173c75␟7977992299945497789:Filter`;\n } let i18n_28; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the equal filter operator\n * @meaning kendo.grid.filterEqOperator\n */\n const MSG_EXTERNAL_4328959145426393682$$DIST_FESM2015_INDEX_JS_29 = goog.getMsg(\"Is equal to\");\n i18n_28 = MSG_EXTERNAL_4328959145426393682$$DIST_FESM2015_INDEX_JS_29;\n }\n else {\n i18n_28 = $localize `:kendo.grid.filterEqOperator|The text of the equal filter operator␟8b31e1604d10a2f8709dcb1ed5c237e33cffc135␟4328959145426393682:Is equal to`;\n } let i18n_30; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the not equal filter operator\n * @meaning kendo.grid.filterNotEqOperator\n */\n const MSG_EXTERNAL_8497658332767349737$$DIST_FESM2015_INDEX_JS_31 = goog.getMsg(\"Is not equal to\");\n i18n_30 = MSG_EXTERNAL_8497658332767349737$$DIST_FESM2015_INDEX_JS_31;\n }\n else {\n i18n_30 = $localize `:kendo.grid.filterNotEqOperator|The text of the not equal filter operator␟d46e14d35d89d2fadf5c852abf5557643510a013␟8497658332767349737:Is not equal to`;\n } let i18n_32; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the is null filter operator\n * @meaning kendo.grid.filterIsNullOperator\n */\n const MSG_EXTERNAL_1298299704757177797$$DIST_FESM2015_INDEX_JS_33 = goog.getMsg(\"Is null\");\n i18n_32 = MSG_EXTERNAL_1298299704757177797$$DIST_FESM2015_INDEX_JS_33;\n }\n else {\n i18n_32 = $localize `:kendo.grid.filterIsNullOperator|The text of the is null filter operator␟078c50eb1fe8b2b43fcc40c5e7f4493152310c2f␟1298299704757177797:Is null`;\n } let i18n_34; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the is not null filter operator\n * @meaning kendo.grid.filterIsNotNullOperator\n */\n const MSG_EXTERNAL_8362279767336741540$$DIST_FESM2015_INDEX_JS_35 = goog.getMsg(\"Is not null\");\n i18n_34 = MSG_EXTERNAL_8362279767336741540$$DIST_FESM2015_INDEX_JS_35;\n }\n else {\n i18n_34 = $localize `:kendo.grid.filterIsNotNullOperator|The text of the is not null filter operator␟70b39eeaf2674907b2e59b414baf17e032b464dc␟8362279767336741540:Is not null`;\n } let i18n_36; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the is empty filter operator\n * @meaning kendo.grid.filterIsEmptyOperator\n */\n const MSG_EXTERNAL_4762263229995523226$$DIST_FESM2015_INDEX_JS_37 = goog.getMsg(\"Is empty\");\n i18n_36 = MSG_EXTERNAL_4762263229995523226$$DIST_FESM2015_INDEX_JS_37;\n }\n else {\n i18n_36 = $localize `:kendo.grid.filterIsEmptyOperator|The text of the is empty filter operator␟a4e77e444b4e9b63851ac818e20136212b06c750␟4762263229995523226:Is empty`;\n } let i18n_38; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the is not empty filter operator\n * @meaning kendo.grid.filterIsNotEmptyOperator\n */\n const MSG_EXTERNAL_8245213618709258015$$DIST_FESM2015_INDEX_JS_39 = goog.getMsg(\"Is not empty\");\n i18n_38 = MSG_EXTERNAL_8245213618709258015$$DIST_FESM2015_INDEX_JS_39;\n }\n else {\n i18n_38 = $localize `:kendo.grid.filterIsNotEmptyOperator|The text of the is not empty filter operator␟dee7553c341248e90aef4a8e7438c52e667e68be␟8245213618709258015:Is not empty`;\n } let i18n_40; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the starts with filter operator\n * @meaning kendo.grid.filterStartsWithOperator\n */\n const MSG_EXTERNAL_6087783423599420507$$DIST_FESM2015_INDEX_JS_41 = goog.getMsg(\"Starts with\");\n i18n_40 = MSG_EXTERNAL_6087783423599420507$$DIST_FESM2015_INDEX_JS_41;\n }\n else {\n i18n_40 = $localize `:kendo.grid.filterStartsWithOperator|The text of the starts with filter operator␟da43b363b636156e3ccdbb64a0788bdeab51e992␟6087783423599420507:Starts with`;\n } let i18n_42; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the contains filter operator\n * @meaning kendo.grid.filterContainsOperator\n */\n const MSG_EXTERNAL_3831180413287131758$$DIST_FESM2015_INDEX_JS_43 = goog.getMsg(\"Contains\");\n i18n_42 = MSG_EXTERNAL_3831180413287131758$$DIST_FESM2015_INDEX_JS_43;\n }\n else {\n i18n_42 = $localize `:kendo.grid.filterContainsOperator|The text of the contains filter operator␟5b568a46d2e34ebde7dd53a7e599cbbb7dc6bae1␟3831180413287131758:Contains`;\n } let i18n_44; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the does not contain filter operator\n * @meaning kendo.grid.filterNotContainsOperator\n */\n const MSG_EXTERNAL_7331253838216904826$$DIST_FESM2015_INDEX_JS_45 = goog.getMsg(\"Does not contain\");\n i18n_44 = MSG_EXTERNAL_7331253838216904826$$DIST_FESM2015_INDEX_JS_45;\n }\n else {\n i18n_44 = $localize `:kendo.grid.filterNotContainsOperator|The text of the does not contain filter operator␟be06aa4fde7fa722c9de5a45f241ff595071d718␟7331253838216904826:Does not contain`;\n } let i18n_46; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the ends with filter operator\n * @meaning kendo.grid.filterEndsWithOperator\n */\n const MSG_EXTERNAL_3662435311670509156$$DIST_FESM2015_INDEX_JS_47 = goog.getMsg(\"Ends with\");\n i18n_46 = MSG_EXTERNAL_3662435311670509156$$DIST_FESM2015_INDEX_JS_47;\n }\n else {\n i18n_46 = $localize `:kendo.grid.filterEndsWithOperator|The text of the ends with filter operator␟a54b2ecffb41f0603ceedc7ea5a40b7d130e2fa1␟3662435311670509156:Ends with`;\n } let i18n_48; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the greater than or equal filter operator\n * @meaning kendo.grid.filterGteOperator\n */\n const MSG_EXTERNAL_4542824413455511831$$DIST_FESM2015_INDEX_JS_49 = goog.getMsg(\"Is greater than or equal to\");\n i18n_48 = MSG_EXTERNAL_4542824413455511831$$DIST_FESM2015_INDEX_JS_49;\n }\n else {\n i18n_48 = $localize `:kendo.grid.filterGteOperator|The text of the greater than or equal filter operator␟68471603db771d0304d02fe086da9701c16911c3␟4542824413455511831:Is greater than or equal to`;\n } let i18n_50; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the greater than filter operator\n * @meaning kendo.grid.filterGtOperator\n */\n const MSG_EXTERNAL_1527483349261806183$$DIST_FESM2015_INDEX_JS_51 = goog.getMsg(\"Is greater than\");\n i18n_50 = MSG_EXTERNAL_1527483349261806183$$DIST_FESM2015_INDEX_JS_51;\n }\n else {\n i18n_50 = $localize `:kendo.grid.filterGtOperator|The text of the greater than filter operator␟ae68acc0e18252a348bdfb32112996d81e5305de␟1527483349261806183:Is greater than`;\n } let i18n_52; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the less than or equal filter operator\n * @meaning kendo.grid.filterLteOperator\n */\n const MSG_EXTERNAL_4840714404733417604$$DIST_FESM2015_INDEX_JS_53 = goog.getMsg(\"Is less than or equal to\");\n i18n_52 = MSG_EXTERNAL_4840714404733417604$$DIST_FESM2015_INDEX_JS_53;\n }\n else {\n i18n_52 = $localize `:kendo.grid.filterLteOperator|The text of the less than or equal filter operator␟e48d50a6422c616a00b95025adc5283aff4fa8cb␟4840714404733417604:Is less than or equal to`;\n } let i18n_54; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the less than filter operator\n * @meaning kendo.grid.filterLtOperator\n */\n const MSG_EXTERNAL_498627126459578706$$DIST_FESM2015_INDEX_JS_55 = goog.getMsg(\"Is less than\");\n i18n_54 = MSG_EXTERNAL_498627126459578706$$DIST_FESM2015_INDEX_JS_55;\n }\n else {\n i18n_54 = $localize `:kendo.grid.filterLtOperator|The text of the less than filter operator␟c4d58f0e509cb7e37014715dd91546a724210d70␟498627126459578706:Is less than`;\n } let i18n_56; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the IsTrue boolean filter option\n * @meaning kendo.grid.filterIsTrue\n */\n const MSG_EXTERNAL_2361673238316312251$$DIST_FESM2015_INDEX_JS_57 = goog.getMsg(\"Is True\");\n i18n_56 = MSG_EXTERNAL_2361673238316312251$$DIST_FESM2015_INDEX_JS_57;\n }\n else {\n i18n_56 = $localize `:kendo.grid.filterIsTrue|The text of the IsTrue boolean filter option␟d5f1e9028bc60c30e8f8e0f9cfeb872512446cea␟2361673238316312251:Is True`;\n } let i18n_58; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the IsFalse boolean filter option\n * @meaning kendo.grid.filterIsFalse\n */\n const MSG_EXTERNAL_7759366406135608407$$DIST_FESM2015_INDEX_JS_59 = goog.getMsg(\"Is False\");\n i18n_58 = MSG_EXTERNAL_7759366406135608407$$DIST_FESM2015_INDEX_JS_59;\n }\n else {\n i18n_58 = $localize `:kendo.grid.filterIsFalse|The text of the IsFalse boolean filter option␟6d34731320e2536fd78f4a9e08f0b8dcd01edf3d␟7759366406135608407:Is False`;\n } let i18n_60; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the (All) boolean filter option\n * @meaning kendo.grid.filterBooleanAll\n */\n const MSG_EXTERNAL_9215343856736761875$$DIST_FESM2015_INDEX_JS_61 = goog.getMsg(\"(All)\");\n i18n_60 = MSG_EXTERNAL_9215343856736761875$$DIST_FESM2015_INDEX_JS_61;\n }\n else {\n i18n_60 = $localize `:kendo.grid.filterBooleanAll|The text of the (All) boolean filter option␟4da1456a62bafe2614ed2bc05a2c790a64a4dd0b␟9215343856736761875:(All)`;\n } let i18n_62; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the after or equal date filter operator\n * @meaning kendo.grid.filterAfterOrEqualOperator\n */\n const MSG_EXTERNAL_1964413288176201979$$DIST_FESM2015_INDEX_JS_63 = goog.getMsg(\"Is after or equal to\");\n i18n_62 = MSG_EXTERNAL_1964413288176201979$$DIST_FESM2015_INDEX_JS_63;\n }\n else {\n i18n_62 = $localize `:kendo.grid.filterAfterOrEqualOperator|The text of the after or equal date filter operator␟d7dac1bbc2372d578a9d2bca099de766043aed7e␟1964413288176201979:Is after or equal to`;\n } let i18n_64; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the after date filter operator\n * @meaning kendo.grid.filterAfterOperator\n */\n const MSG_EXTERNAL_3078502182807244703$$DIST_FESM2015_INDEX_JS_65 = goog.getMsg(\"Is after\");\n i18n_64 = MSG_EXTERNAL_3078502182807244703$$DIST_FESM2015_INDEX_JS_65;\n }\n else {\n i18n_64 = $localize `:kendo.grid.filterAfterOperator|The text of the after date filter operator␟bff777df0d0831cc02679227422fab4ef2763fa9␟3078502182807244703:Is after`;\n } let i18n_66; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the before date filter operator\n * @meaning kendo.grid.filterBeforeOperator\n */\n const MSG_EXTERNAL_3348865631071358219$$DIST_FESM2015_INDEX_JS_67 = goog.getMsg(\"Is before\");\n i18n_66 = MSG_EXTERNAL_3348865631071358219$$DIST_FESM2015_INDEX_JS_67;\n }\n else {\n i18n_66 = $localize `:kendo.grid.filterBeforeOperator|The text of the before date filter operator␟35ef5cf367670f15432c9f8761bc85fbdb2b1830␟3348865631071358219:Is before`;\n } let i18n_68; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the before or equal date filter operator\n * @meaning kendo.grid.filterBeforeOrEqualOperator\n */\n const MSG_EXTERNAL_6582064037090631388$$DIST_FESM2015_INDEX_JS_69 = goog.getMsg(\"Is before or equal to\");\n i18n_68 = MSG_EXTERNAL_6582064037090631388$$DIST_FESM2015_INDEX_JS_69;\n }\n else {\n i18n_68 = $localize `:kendo.grid.filterBeforeOrEqualOperator|The text of the before or equal date filter operator␟27a6b29ffbc1eb498de8d7af20051461a2e842ec␟6582064037090631388:Is before or equal to`;\n } let i18n_70; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the filter button\n * @meaning kendo.grid.filterFilterButton\n */\n const MSG_EXTERNAL_5185263258022896121$$DIST_FESM2015_INDEX_JS_71 = goog.getMsg(\"Filter\");\n i18n_70 = MSG_EXTERNAL_5185263258022896121$$DIST_FESM2015_INDEX_JS_71;\n }\n else {\n i18n_70 = $localize `:kendo.grid.filterFilterButton|The text of the filter button␟4f1c08d0b056646cdb668da669e2e15825adfe4d␟5185263258022896121:Filter`;\n } let i18n_72; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the clear filter button\n * @meaning kendo.grid.filterClearButton\n */\n const MSG_EXTERNAL_3031209415830321799$$DIST_FESM2015_INDEX_JS_73 = goog.getMsg(\"Clear\");\n i18n_72 = MSG_EXTERNAL_3031209415830321799$$DIST_FESM2015_INDEX_JS_73;\n }\n else {\n i18n_72 = $localize `:kendo.grid.filterClearButton|The text of the clear filter button␟06e4e4dadede6f91f261cdbb7fb174246a135238␟3031209415830321799:Clear`;\n } let i18n_74; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the And filter logic\n * @meaning kendo.grid.filterAndLogic\n */\n const MSG_EXTERNAL_512662285155477884$$DIST_FESM2015_INDEX_JS_75 = goog.getMsg(\"And\");\n i18n_74 = MSG_EXTERNAL_512662285155477884$$DIST_FESM2015_INDEX_JS_75;\n }\n else {\n i18n_74 = $localize `:kendo.grid.filterAndLogic|The text of the And filter logic␟f73fbcc2f813d469e4a34491950ca01ea1ac8f60␟512662285155477884:And`;\n } let i18n_76; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the Or filter logic\n * @meaning kendo.grid.filterOrLogic\n */\n const MSG_EXTERNAL_1964926727342405367$$DIST_FESM2015_INDEX_JS_77 = goog.getMsg(\"Or\");\n i18n_76 = MSG_EXTERNAL_1964926727342405367$$DIST_FESM2015_INDEX_JS_77;\n }\n else {\n i18n_76 = $localize `:kendo.grid.filterOrLogic|The text of the Or filter logic␟04e64780de0fc1c3a9986997e0808ec53a5f2a63␟1964926727342405367:Or`;\n } let i18n_78; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The loading text\n * @meaning kendo.grid.loading\n */\n const MSG_EXTERNAL_5425510787229531767$$DIST_FESM2015_INDEX_JS_79 = goog.getMsg(\"Loading\");\n i18n_78 = MSG_EXTERNAL_5425510787229531767$$DIST_FESM2015_INDEX_JS_79;\n }\n else {\n i18n_78 = $localize `:kendo.grid.loading|The loading text␟781c049cc69efc30bc8053af9ace3cb4b04bd438␟5425510787229531767:Loading`;\n } let i18n_80; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The Grid aria-label\n * @meaning kendo.grid.gridLabel\n */\n const MSG_EXTERNAL_1756559638952980203$$DIST_FESM2015_INDEX_JS_81 = goog.getMsg(\"Data table\");\n i18n_80 = MSG_EXTERNAL_1756559638952980203$$DIST_FESM2015_INDEX_JS_81;\n }\n else {\n i18n_80 = $localize `:kendo.grid.gridLabel|The Grid aria-label␟03316b5e0c6e91f110c8f015ca63318ced71b1ab␟1756559638952980203:Data table`;\n } let i18n_82; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text shown in the column menu for the columns item\n * @meaning kendo.grid.columns\n */\n const MSG_EXTERNAL_5332162737795508854$$DIST_FESM2015_INDEX_JS_83 = goog.getMsg(\"Columns\");\n i18n_82 = MSG_EXTERNAL_5332162737795508854$$DIST_FESM2015_INDEX_JS_83;\n }\n else {\n i18n_82 = $localize `:kendo.grid.columns|The text shown in the column menu for the columns item␟9b841399fbb3d81f2401f98b4f4763834b72a1e5␟5332162737795508854:Columns`;\n } let i18n_84; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text shown in the column menu for the lock item\n * @meaning kendo.grid.lock\n */\n const MSG_EXTERNAL_5849203148124173556$$DIST_FESM2015_INDEX_JS_85 = goog.getMsg(\"Lock\");\n i18n_84 = MSG_EXTERNAL_5849203148124173556$$DIST_FESM2015_INDEX_JS_85;\n }\n else {\n i18n_84 = $localize `:kendo.grid.lock|The text shown in the column menu for the lock item␟f356cae509dec3dc1b7156326b9a0328a79c62a8␟5849203148124173556:Lock`;\n } let i18n_86; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text shown in the column menu for the unlock item\n * @meaning kendo.grid.unlock\n */\n const MSG_EXTERNAL_6968586378603932789$$DIST_FESM2015_INDEX_JS_87 = goog.getMsg(\"Unlock\");\n i18n_86 = MSG_EXTERNAL_6968586378603932789$$DIST_FESM2015_INDEX_JS_87;\n }\n else {\n i18n_86 = $localize `:kendo.grid.unlock|The text shown in the column menu for the unlock item␟f33355540003068372e39ba7f3def794869ea9f8␟6968586378603932789:Unlock`;\n } let i18n_88; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text shown in the column menu for the set column position item\n * @meaning kendo.grid.setColumnPosition\n */\n const MSG_EXTERNAL_4152513791950180353$$DIST_FESM2015_INDEX_JS_89 = goog.getMsg(\"Set Column Position\");\n i18n_88 = MSG_EXTERNAL_4152513791950180353$$DIST_FESM2015_INDEX_JS_89;\n }\n else {\n i18n_88 = $localize `:kendo.grid.setColumnPosition|The text shown in the column menu for the set column position item␟e5b09fd8ecea276841b1018a376a43d5f26cf187␟4152513791950180353:Set Column Position`;\n } let i18n_90; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text shown in the column menu for the stick item\n * @meaning kendo.grid.stick\n */\n const MSG_EXTERNAL_2051035907018784050$$DIST_FESM2015_INDEX_JS_91 = goog.getMsg(\"Stick\");\n i18n_90 = MSG_EXTERNAL_2051035907018784050$$DIST_FESM2015_INDEX_JS_91;\n }\n else {\n i18n_90 = $localize `:kendo.grid.stick|The text shown in the column menu for the stick item␟31d7229bfb18a112e19a6e8040d7d2e261293dca␟2051035907018784050:Stick`;\n } let i18n_92; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text shown in the column menu for the unstick item\n * @meaning kendo.grid.unstick\n */\n const MSG_EXTERNAL_7237321134369658080$$DIST_FESM2015_INDEX_JS_93 = goog.getMsg(\"Unstick\");\n i18n_92 = MSG_EXTERNAL_7237321134369658080$$DIST_FESM2015_INDEX_JS_93;\n }\n else {\n i18n_92 = $localize `:kendo.grid.unstick|The text shown in the column menu for the unstick item␟01d4c7e75b7fadc09544cf2277208d39b4eef86a␟7237321134369658080:Unstick`;\n } let i18n_94; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label of the sort icon\n * @meaning kendo.grid.sortable\n */\n const MSG_EXTERNAL_3824304972336788145$$DIST_FESM2015_INDEX_JS_95 = goog.getMsg(\"Sortable\");\n i18n_94 = MSG_EXTERNAL_3824304972336788145$$DIST_FESM2015_INDEX_JS_95;\n }\n else {\n i18n_94 = $localize `:kendo.grid.sortable|The label of the sort icon␟a692ba271be066ce379f942ff67094e1ea989f4c␟3824304972336788145:Sortable`;\n } let i18n_96; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text shown in the column menu for the sort ascending item\n * @meaning kendo.grid.sortAscending\n */\n const MSG_EXTERNAL_6297762560864270240$$DIST_FESM2015_INDEX_JS_97 = goog.getMsg(\"Sort Ascending\");\n i18n_96 = MSG_EXTERNAL_6297762560864270240$$DIST_FESM2015_INDEX_JS_97;\n }\n else {\n i18n_96 = $localize `:kendo.grid.sortAscending|The text shown in the column menu for the sort ascending item␟96beffd8446c5455f3bbdc313c946db32df7dcc2␟6297762560864270240:Sort Ascending`;\n } let i18n_98; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text shown in the column menu for the sort descending item\n * @meaning kendo.grid.sortDescending\n */\n const MSG_EXTERNAL_5605073536641230977$$DIST_FESM2015_INDEX_JS_99 = goog.getMsg(\"Sort Descending\");\n i18n_98 = MSG_EXTERNAL_5605073536641230977$$DIST_FESM2015_INDEX_JS_99;\n }\n else {\n i18n_98 = $localize `:kendo.grid.sortDescending|The text shown in the column menu for the sort descending item␟208d0538d4c2537a1cbf456941e34a2884053d52␟5605073536641230977:Sort Descending`;\n } let i18n_100; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The status announcement when a column is sorted ascending\n * @meaning kendo.grid.sortedAscending\n */\n const MSG_EXTERNAL_6275944032047713540$$DIST_FESM2015_INDEX_JS_101 = goog.getMsg(\"Sorted Ascending\");\n i18n_100 = MSG_EXTERNAL_6275944032047713540$$DIST_FESM2015_INDEX_JS_101;\n }\n else {\n i18n_100 = $localize `:kendo.grid.sortedAscending|The status announcement when a column is sorted ascending␟947c64329461efd9f8a9aa2c51acbbd099170aa5␟6275944032047713540:Sorted Ascending`;\n } let i18n_102; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The status announcement when a column is sorted descending\n * @meaning kendo.grid.sortedDescending\n */\n const MSG_EXTERNAL_8155280769473236383$$DIST_FESM2015_INDEX_JS_103 = goog.getMsg(\"Sorted Descending\");\n i18n_102 = MSG_EXTERNAL_8155280769473236383$$DIST_FESM2015_INDEX_JS_103;\n }\n else {\n i18n_102 = $localize `:kendo.grid.sortedDescending|The status announcement when a column is sorted descending␟092a688d1b2b6d873bdc29beaaf43c3f45336581␟8155280769473236383:Sorted Descending`;\n } let i18n_104; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The status announcement when a column is no longer sorted\n * @meaning kendo.grid.sortedDefault\n */\n const MSG_EXTERNAL_5229177293891232538$$DIST_FESM2015_INDEX_JS_105 = goog.getMsg(\"Not Sorted\");\n i18n_104 = MSG_EXTERNAL_5229177293891232538$$DIST_FESM2015_INDEX_JS_105;\n }\n else {\n i18n_104 = $localize `:kendo.grid.sortedDefault|The status announcement when a column is no longer sorted␟66e99ea340974022c07c52a6f668f5573e7edab0␟5229177293891232538:Not Sorted`;\n } let i18n_106; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text shown in the column menu or column chooser for the columns apply button\n * @meaning kendo.grid.columnsApply\n */\n const MSG_EXTERNAL_34213208292862969$$DIST_FESM2015_INDEX_JS_107 = goog.getMsg(\"Apply\");\n i18n_106 = MSG_EXTERNAL_34213208292862969$$DIST_FESM2015_INDEX_JS_107;\n }\n else {\n i18n_106 = $localize `:kendo.grid.columnsApply|The text shown in the column menu or column chooser for the columns apply button␟04600bd6e362cf9da9f7f9c4666eab2c88eb6a90␟34213208292862969:Apply`;\n } let i18n_108; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text shown in the column menu or column chooser for the columns reset button\n * @meaning kendo.grid.columnsReset\n */\n const MSG_EXTERNAL_4465838259914958827$$DIST_FESM2015_INDEX_JS_109 = goog.getMsg(\"Reset\");\n i18n_108 = MSG_EXTERNAL_4465838259914958827$$DIST_FESM2015_INDEX_JS_109;\n }\n else {\n i18n_108 = $localize `:kendo.grid.columnsReset|The text shown in the column menu or column chooser for the columns reset button␟94d3b472d99994a5cca9930afd4cf0ac2774c382␟4465838259914958827:Reset`;\n } let i18n_110; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the expand icon of detail rows.\n * @meaning kendo.grid.detailExpand\n */\n const MSG_EXTERNAL_6952757249912226136$$DIST_FESM2015_INDEX_JS_111 = goog.getMsg(\"Expand Details\");\n i18n_110 = MSG_EXTERNAL_6952757249912226136$$DIST_FESM2015_INDEX_JS_111;\n }\n else {\n i18n_110 = $localize `:kendo.grid.detailExpand|The title of the expand icon of detail rows.␟ad6629bb6e79235623cfce486ef48087dbe96fb5␟6952757249912226136:Expand Details`;\n } let i18n_112; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the collapse icon of detail rows.\n * @meaning kendo.grid.detailCollapse\n */\n const MSG_EXTERNAL_6065477639036399169$$DIST_FESM2015_INDEX_JS_113 = goog.getMsg(\"Collapse Details\");\n i18n_112 = MSG_EXTERNAL_6065477639036399169$$DIST_FESM2015_INDEX_JS_113;\n }\n else {\n i18n_112 = $localize `:kendo.grid.detailCollapse|The title of the collapse icon of detail rows.␟ace0c0a58fbb211e8678efb3bd6ac9bb587144c3␟6065477639036399169:Collapse Details`;\n } let i18n_114; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the Today button of the Date filter.\n * @meaning kendo.grid.filterDateToday\n */\n const MSG_EXTERNAL_1656723147090613075$$DIST_FESM2015_INDEX_JS_115 = goog.getMsg(\"TODAY\");\n i18n_114 = MSG_EXTERNAL_1656723147090613075$$DIST_FESM2015_INDEX_JS_115;\n }\n else {\n i18n_114 = $localize `:kendo.grid.filterDateToday|The text of the Today button of the Date filter.␟745058f85d92ee5228977277195262978828c4c8␟1656723147090613075:TODAY`;\n } let i18n_116; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the Toggle button of the Date filter.\n * @meaning kendo.grid.filterDateToggle\n */\n const MSG_EXTERNAL_15438307630389352$$DIST_FESM2015_INDEX_JS_117 = goog.getMsg(\"Toggle Calendar\");\n i18n_116 = MSG_EXTERNAL_15438307630389352$$DIST_FESM2015_INDEX_JS_117;\n }\n else {\n i18n_116 = $localize `:kendo.grid.filterDateToggle|The title of the Toggle button of the Date filter.␟2c916ea2cbd37665e512219650c37dc17b9ef0c0␟15438307630389352:Toggle Calendar`;\n } let i18n_118; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the Decrement button of the Numeric filter.\n * @meaning kendo.grid.filterNumericDecrement\n */\n const MSG_EXTERNAL_534533728304192410$$DIST_FESM2015_INDEX_JS_119 = goog.getMsg(\"Decrement\");\n i18n_118 = MSG_EXTERNAL_534533728304192410$$DIST_FESM2015_INDEX_JS_119;\n }\n else {\n i18n_118 = $localize `:kendo.grid.filterNumericDecrement|The title of the Decrement button of the Numeric filter.␟7f991d698abebb2e50570f9aef14126ae931c513␟534533728304192410:Decrement`;\n } let i18n_120; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the Increment button of the Numeric filter.\n * @meaning kendo.grid.filterNumericIncrement\n */\n const MSG_EXTERNAL_5462143714591662391$$DIST_FESM2015_INDEX_JS_121 = goog.getMsg(\"Increment\");\n i18n_120 = MSG_EXTERNAL_5462143714591662391$$DIST_FESM2015_INDEX_JS_121;\n }\n else {\n i18n_120 = $localize `:kendo.grid.filterNumericIncrement|The title of the Increment button of the Numeric filter.␟25bc8b86968819d3f687aa6dde652800bd4b6b2a␟5462143714591662391:Increment`;\n } let i18n_122; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The labels of the checkbox column checkboxes.\n * @meaning kendo.grid.selectionCheckboxLabel\n */\n const MSG_EXTERNAL_8181603152758207780$$DIST_FESM2015_INDEX_JS_123 = goog.getMsg(\"Select Row\");\n i18n_122 = MSG_EXTERNAL_8181603152758207780$$DIST_FESM2015_INDEX_JS_123;\n }\n else {\n i18n_122 = $localize `:kendo.grid.selectionCheckboxLabel|The labels of the checkbox column checkboxes.␟be92546944c9cb75e92f8b968456d82a101fc35b␟8181603152758207780:Select Row`;\n } let i18n_124; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label of the checkbox column select all checkbox.\n * @meaning kendo.grid.selectAllCheckboxLabel\n */\n const MSG_EXTERNAL_6136285170059274319$$DIST_FESM2015_INDEX_JS_125 = goog.getMsg(\"Select All Rows\");\n i18n_124 = MSG_EXTERNAL_6136285170059274319$$DIST_FESM2015_INDEX_JS_125;\n }\n else {\n i18n_124 = $localize `:kendo.grid.selectAllCheckboxLabel|The label of the checkbox column select all checkbox.␟20fbea69eff950cbfcf690203ca6104e8346fa48␟6136285170059274319:Select All Rows`;\n } let i18n_126; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the title and aria-label attributes applied to the collapse icon of group rows.\n * @meaning kendo.grid.groupCollapse\n */\n const MSG_EXTERNAL_7772550046681609079$$DIST_FESM2015_INDEX_JS_127 = goog.getMsg(\"Collapse Group\");\n i18n_126 = MSG_EXTERNAL_7772550046681609079$$DIST_FESM2015_INDEX_JS_127;\n }\n else {\n i18n_126 = $localize `:kendo.grid.groupCollapse|The text of the title and aria-label attributes applied to the collapse icon of group rows.␟caf1557000de0fb3c367fc81500d19fb534c165a␟7772550046681609079:Collapse Group`;\n } let i18n_128; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the title and aria-label attributes applied to the expand icon of group rows.\n * @meaning kendo.grid.groupExpand\n */\n const MSG_EXTERNAL_1232300275422220104$$DIST_FESM2015_INDEX_JS_129 = goog.getMsg(\"Expand Group\");\n i18n_128 = MSG_EXTERNAL_1232300275422220104$$DIST_FESM2015_INDEX_JS_129;\n }\n else {\n i18n_128 = $localize `:kendo.grid.groupExpand|The text of the title and aria-label attributes applied to the expand icon of group rows.␟ac06c8a43721591f02bbb3414bc1f4088853fbd8␟1232300275422220104:Expand Group`;\n } let i18n_130; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the Grid pager\n * @meaning kendo.grid.pagerLabel\n */\n const MSG_EXTERNAL_941504587982751782$$DIST_FESM2015_INDEX_JS_131 = goog.getMsg(\"{$interpolation}\", { \"interpolation\": \"\\uFFFD0\\uFFFD\" });\n i18n_130 = MSG_EXTERNAL_941504587982751782$$DIST_FESM2015_INDEX_JS_131;\n }\n else {\n i18n_130 = $localize `:kendo.grid.pagerLabel|The label for the Grid pager␟03a0df03d11d80b3aeca50cf4827096a51a853fc␟941504587982751782:${\"\\uFFFD0\\uFFFD\"}:INTERPOLATION:`;\n } let i18n_132; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label of the filter row and menu inputs\n * @meaning kendo.grid.filterInputLabel\n */\n const MSG_EXTERNAL_3836147469421132954$$DIST_FESM2015_INDEX_JS_133 = goog.getMsg(\"{$interpolation}\", { \"interpolation\": \"\\uFFFD0\\uFFFD\" });\n i18n_132 = MSG_EXTERNAL_3836147469421132954$$DIST_FESM2015_INDEX_JS_133;\n }\n else {\n i18n_132 = $localize `:kendo.grid.filterInputLabel|The label of the filter row and menu inputs␟491dbf44b1ca040395b94229d00d4109af48e64c␟3836147469421132954:${\"\\uFFFD0\\uFFFD\"}:INTERPOLATION:`;\n } let i18n_134; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the filter menu icon\n * @meaning kendo.grid.filterMenuTitle\n */\n const MSG_EXTERNAL_7968307322474586314$$DIST_FESM2015_INDEX_JS_135 = goog.getMsg(\"{$interpolation}\", { \"interpolation\": \"\\uFFFD0\\uFFFD\" });\n i18n_134 = MSG_EXTERNAL_7968307322474586314$$DIST_FESM2015_INDEX_JS_135;\n }\n else {\n i18n_134 = $localize `:kendo.grid.filterMenuTitle|The title of the filter menu icon␟04e8a1bee6d2dd6edfc921e890fae44a01ceb18c␟7968307322474586314:${\"\\uFFFD0\\uFFFD\"}:INTERPOLATION:`;\n } let i18n_136; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label of the filter menu operators dropdown\n * @meaning kendo.grid.filterMenuOperatorsDropDownLabel\n */\n const MSG_EXTERNAL_1505989735336544615$$DIST_FESM2015_INDEX_JS_137 = goog.getMsg(\"{$interpolation}\", { \"interpolation\": \"\\uFFFD0\\uFFFD\" });\n i18n_136 = MSG_EXTERNAL_1505989735336544615$$DIST_FESM2015_INDEX_JS_137;\n }\n else {\n i18n_136 = $localize `:kendo.grid.filterMenuOperatorsDropDownLabel|The label of the filter menu operators dropdown␟884eac0bb5b4a01ea36fea20ffa29c6dfe1987e0␟1505989735336544615:${\"\\uFFFD0\\uFFFD\"}:INTERPOLATION:`;\n } let i18n_138; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label of the filter menu logic dropdown\n * @meaning kendo.grid.filterMenuLogicDropDownLabel\n */\n const MSG_EXTERNAL_7212349983175276206$$DIST_FESM2015_INDEX_JS_139 = goog.getMsg(\"{$interpolation}\", { \"interpolation\": \"\\uFFFD0\\uFFFD\" });\n i18n_138 = MSG_EXTERNAL_7212349983175276206$$DIST_FESM2015_INDEX_JS_139;\n }\n else {\n i18n_138 = $localize `:kendo.grid.filterMenuLogicDropDownLabel|The label of the filter menu logic dropdown␟c9ba4917588987b943dc414dc6ca108392d8cb40␟7212349983175276206:${\"\\uFFFD0\\uFFFD\"}:INTERPOLATION:`;\n } let i18n_140; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the column menu icon\n * @meaning kendo.grid.columnMenu\n */\n const MSG_EXTERNAL_8738132440639204439$$DIST_FESM2015_INDEX_JS_141 = goog.getMsg(\"{$interpolation}\", { \"interpolation\": \"\\uFFFD0\\uFFFD\" });\n i18n_140 = MSG_EXTERNAL_8738132440639204439$$DIST_FESM2015_INDEX_JS_141;\n }\n else {\n i18n_140 = $localize `:kendo.grid.columnMenu|The title of the column menu icon␟28d8b294e285a6c34641eb1c7982870b412ef106␟8738132440639204439:${\"\\uFFFD0\\uFFFD\"}:INTERPOLATION:`;\n } return [[\"kendoGridLocalizedMessages\", \"\", \"groupPanelEmpty\", i18n_4, \"noRecords\", i18n_6, \"pagerFirstPage\", i18n_8, \"pagerPreviousPage\", i18n_10, \"pagerNextPage\", i18n_12, \"pagerLastPage\", i18n_14, \"pagerPage\", i18n_16, \"pagerOf\", i18n_18, \"pagerItems\", i18n_20, \"pagerPageNumberInputTitle\", i18n_22, \"pagerItemsPerPage\", i18n_24, \"filter\", i18n_26, \"filterEqOperator\", i18n_28, \"filterNotEqOperator\", i18n_30, \"filterIsNullOperator\", i18n_32, \"filterIsNotNullOperator\", i18n_34, \"filterIsEmptyOperator\", i18n_36, \"filterIsNotEmptyOperator\", i18n_38, \"filterStartsWithOperator\", i18n_40, \"filterContainsOperator\", i18n_42, \"filterNotContainsOperator\", i18n_44, \"filterEndsWithOperator\", i18n_46, \"filterGteOperator\", i18n_48, \"filterGtOperator\", i18n_50, \"filterLteOperator\", i18n_52, \"filterLtOperator\", i18n_54, \"filterIsTrue\", i18n_56, \"filterIsFalse\", i18n_58, \"filterBooleanAll\", i18n_60, \"filterAfterOrEqualOperator\", i18n_62, \"filterAfterOperator\", i18n_64, \"filterBeforeOperator\", i18n_66, \"filterBeforeOrEqualOperator\", i18n_68, \"filterFilterButton\", i18n_70, \"filterClearButton\", i18n_72, \"filterAndLogic\", i18n_74, \"filterOrLogic\", i18n_76, \"loading\", i18n_78, \"gridLabel\", i18n_80, \"columns\", i18n_82, \"lock\", i18n_84, \"unlock\", i18n_86, \"setColumnPosition\", i18n_88, \"stick\", i18n_90, \"unstick\", i18n_92, \"sortable\", i18n_94, \"sortAscending\", i18n_96, \"sortDescending\", i18n_98, \"sortedAscending\", i18n_100, \"sortedDescending\", i18n_102, \"sortedDefault\", i18n_104, \"columnsApply\", i18n_106, \"columnsReset\", i18n_108, \"detailExpand\", i18n_110, \"detailCollapse\", i18n_112, \"filterDateToday\", i18n_114, \"filterDateToggle\", i18n_116, \"filterNumericDecrement\", i18n_118, \"filterNumericIncrement\", i18n_120, \"selectionCheckboxLabel\", i18n_122, \"selectAllCheckboxLabel\", i18n_124, \"groupCollapse\", i18n_126, \"groupExpand\", i18n_128, 6, \"pagerLabel\", \"filterInputLabel\", \"filterMenuTitle\", \"filterMenuOperatorsDropDownLabel\", \"filterMenuLogicDropDownLabel\", \"columnMenu\"], [\"pagerLabel\", i18n_130, \"filterInputLabel\", i18n_132, \"filterMenuTitle\", i18n_134, \"filterMenuOperatorsDropDownLabel\", i18n_136, \"filterMenuLogicDropDownLabel\", i18n_138, \"columnMenu\", i18n_140], [\"class\", \"k-toolbar k-grid-toolbar\", \"position\", \"top\", 4, \"ngIf\"], [\"class\", \"k-grid-pager-top\", 3, \"tabindex\", \"template\", \"pageSize\", \"total\", \"skip\", \"options\", \"pageChange\", 4, \"ngIf\"], [3, \"text\", \"groups\", \"change\", 4, \"ngIf\"], [\"role\", \"grid\", 1, \"k-grid-aria-root\"], [\"ariaRoot\", \"\"], [3, \"ngIf\"], [\"kendoGridLoading\", \"\", 3, \"loadingTemplate\", 4, \"ngIf\"], [3, \"tabindex\", \"template\", \"pageSize\", \"total\", \"skip\", \"options\", \"pageChange\", 4, \"ngIf\"], [\"class\", \"k-toolbar k-grid-toolbar k-grid-toolbar-bottom\", \"position\", \"bottom\", 4, \"ngIf\"], [\"position\", \"top\", 1, \"k-toolbar\", \"k-grid-toolbar\"], [1, \"k-grid-pager-top\", 3, \"tabindex\", \"template\", \"pageSize\", \"total\", \"skip\", \"options\", \"pageChange\"], [3, \"text\", \"groups\", \"change\"], [\"class\", \"k-grid-header\", \"role\", \"presentation\", 3, \"padding\", 4, \"ngIf\"], [\"kendoDraggable\", \"\", \"kendoGridSelectionMarquee\", \"\", 3, \"data\", \"rowHeight\", \"detailRowHeight\", \"total\", \"take\", \"groups\", \"groupable\", \"skip\", \"trackBy\", \"columns\", \"selectable\", \"filterable\", \"detailTemplate\", \"noRecordsTemplate\", \"rowClass\", \"rowSticky\", \"loading\", \"isVirtual\", \"cellLoadingTemplate\", \"loadingTemplate\", \"virtualColumns\", \"enableDrag\", \"pageChange\", \"scrollBottom\", \"contentScroll\"], [\"class\", \"k-grid-footer\", 3, \"padding\", 4, \"ngIf\"], [\"role\", \"presentation\", 1, \"k-grid-header\"], [\"role\", \"presentation\", \"class\", \"k-grid-header-locked\", 3, \"width\", 4, \"ngIf\"], [\"role\", \"presentation\", \"data-scrollable\", \"\", 1, \"k-grid-header-wrap\", 3, \"kendoGridResizableContainer\", \"lockedWidth\"], [\"header\", \"\"], [\"role\", \"presentation\", 3, \"virtualColumns\"], [\"kendoGridColGroup\", \"\", \"role\", \"presentation\", 3, \"columns\", \"groups\", \"detailTemplate\"], [\"kendoGridHeader\", \"\", \"role\", \"presentation\", 3, \"resizable\", \"scrollable\", \"columns\", \"totalColumnLevels\", \"sort\", \"filter\", \"filterable\", \"groupable\", \"reorderable\", \"groups\", \"sortable\", \"columnMenu\", \"columnMenuTemplate\", \"lockedColumnsCount\", \"totalColumnsCount\", \"detailTemplate\", \"tabIndex\"], [\"class\", \"k-width-container\", \"role\", \"presentation\", 4, \"ngIf\"], [\"role\", \"presentation\", 1, \"k-grid-header-locked\"], [\"lockedHeader\", \"\"], [\"role\", \"presentation\", 3, \"locked\"], [\"kendoGridHeader\", \"\", 3, \"resizable\", \"scrollable\", \"columns\", \"totalColumnLevels\", \"sort\", \"groups\", \"filter\", \"filterable\", \"groupable\", \"reorderable\", \"sortable\", \"columnMenu\", \"columnMenuTemplate\", \"totalColumnsCount\", \"detailTemplate\", \"tabIndex\"], [\"role\", \"presentation\", 1, \"k-width-container\"], [1, \"k-grid-footer\"], [\"class\", \"k-grid-footer-locked\", 3, \"width\", 4, \"ngIf\"], [\"data-scrollable\", \"\", 1, \"k-grid-footer-wrap\", 3, \"kendoGridResizableContainer\", \"lockedWidth\"], [\"footer\", \"\"], [\"role\", \"presentation\"], [\"kendoGridColGroup\", \"\", 3, \"columns\", \"groups\", \"detailTemplate\"], [\"kendoGridFooter\", \"\", 3, \"logicalRowIndex\", \"scrollable\", \"groups\", \"columns\", \"lockedColumnsCount\", \"detailTemplate\"], [1, \"k-grid-footer-locked\"], [\"kendoGridFooter\", \"\", 3, \"scrollable\", \"groups\", \"columns\", \"detailTemplate\", \"logicalRowIndex\"], [\"kendoGridHeader\", \"\", 3, \"resizable\", \"scrollable\", \"columns\", \"totalColumnLevels\", \"groups\", \"groupable\", \"reorderable\", \"sort\", \"sortable\", \"filter\", \"filterable\", \"columnMenu\", \"columnMenuTemplate\", \"detailTemplate\", \"tabIndex\", 4, \"ngIf\"], [\"kendoGridTableBody\", \"\", \"kendoDraggable\", \"\", \"kendoGridSelectionMarquee\", \"\", 3, \"isLoading\", \"groups\", \"data\", \"skip\", \"columns\", \"selectable\", \"filterable\", \"noRecordsTemplate\", \"detailTemplate\", \"showGroupFooters\", \"trackBy\", \"rowClass\", \"enableDrag\"], [\"kendoGridFooter\", \"\", 3, \"scrollable\", \"logicalRowIndex\", \"groups\", \"columns\", \"detailTemplate\", 4, \"ngIf\"], [\"kendoGridHeader\", \"\", 3, \"resizable\", \"scrollable\", \"columns\", \"totalColumnLevels\", \"groups\", \"groupable\", \"reorderable\", \"sort\", \"sortable\", \"filter\", \"filterable\", \"columnMenu\", \"columnMenuTemplate\", \"detailTemplate\", \"tabIndex\"], [\"kendoGridFooter\", \"\", 3, \"scrollable\", \"logicalRowIndex\", \"groups\", \"columns\", \"detailTemplate\"], [\"kendoGridLoading\", \"\", 3, \"loadingTemplate\"], [3, \"tabindex\", \"template\", \"pageSize\", \"total\", \"skip\", \"options\", \"pageChange\"], [\"position\", \"bottom\", 1, \"k-toolbar\", \"k-grid-toolbar\", \"k-grid-toolbar-bottom\"]]; }, template: function GridComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0, 0);\n ɵngcc0.ɵɵi18nAttributes(1, 1);\n ɵngcc0.ɵɵelementContainerEnd();\n ɵngcc0.ɵɵtemplate(2, GridComponent_kendo_grid_toolbar_2_Template, 1, 0, \"kendo-grid-toolbar\", 2);\n ɵngcc0.ɵɵtemplate(3, GridComponent_kendo_pager_3_Template, 1, 7, \"kendo-pager\", 3);\n ɵngcc0.ɵɵtemplate(4, GridComponent_kendo_grid_group_panel_4_Template, 1, 2, \"kendo-grid-group-panel\", 4);\n ɵngcc0.ɵɵelementStart(5, \"div\", 5, 6);\n ɵngcc0.ɵɵtemplate(7, GridComponent_ng_template_7_Template, 3, 24, \"ng-template\", 7);\n ɵngcc0.ɵɵtemplate(8, GridComponent_ng_template_8_Template, 5, 20, \"ng-template\", 7);\n ɵngcc0.ɵɵtemplate(9, GridComponent_div_9_Template, 1, 1, \"div\", 8);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(10, GridComponent_kendo_pager_10_Template, 1, 7, \"kendo-pager\", 9);\n ɵngcc0.ɵɵtemplate(11, GridComponent_kendo_grid_toolbar_11_Template, 1, 0, \"kendo-grid-toolbar\", 10);\n } if (rf & 2) {\n ɵngcc0.ɵɵi18nExp(\"Page navigation, page {currentPage} of {totalPages}\")(\"{columnName} Filter\")(\"{columnName} Filter Menu\")(\"{columnName} Filter Operators\")(\"{columnName} Filter Logic\")(\"{columnName} Column Menu\");\n ɵngcc0.ɵɵi18nApply(1);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showTopToolbar);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showTopPager);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showGroupPanel);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx.ariaLabel)(\"aria-rowcount\", ctx.ariaRowCount)(\"aria-colcount\", ctx.ariaColCount);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.isScrollable);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.isScrollable);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.loading);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showBottomPager);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showBottomToolbar);\n } }, directives: function () { return [LocalizedMessagesDirective, ɵngcc5.NgIf, ToolbarComponent, PagerComponent, GroupPanelComponent, TableDirective, ColGroupComponent, HeaderComponent, ResizableContainerDirective, ListComponent, ɵngcc2.DraggableDirective, GridMarqueeDirective, FooterComponent, TableBodyComponent, LoadingComponent]; }, styles: [\" .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 }\"], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], GridComponent.prototype, \"data\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], GridComponent.prototype, \"pageSize\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], GridComponent.prototype, \"height\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], GridComponent.prototype, \"rowHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], GridComponent.prototype, \"detailRowHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], GridComponent.prototype, \"skip\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], GridComponent.prototype, \"scrollable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], GridComponent.prototype, \"selectable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], GridComponent.prototype, \"sort\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], GridComponent.prototype, \"trackBy\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], GridComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], GridComponent.prototype, \"group\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], GridComponent.prototype, \"virtualColumns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], GridComponent.prototype, \"filterable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], GridComponent.prototype, \"sortable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], GridComponent.prototype, \"pageable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], GridComponent.prototype, \"groupable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], GridComponent.prototype, \"navigable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], GridComponent.prototype, \"navigatable\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], GridComponent.prototype, \"autoSize\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Function])\n], GridComponent.prototype, \"rowClass\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Function])\n], GridComponent.prototype, \"rowSticky\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Function])\n], GridComponent.prototype, \"rowSelected\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Function])\n], GridComponent.prototype, \"cellSelected\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], GridComponent.prototype, \"resizable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], GridComponent.prototype, \"reorderable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], GridComponent.prototype, \"loading\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], GridComponent.prototype, \"columnMenu\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], GridComponent.prototype, \"hideHeader\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], GridComponent.prototype, \"filterChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], GridComponent.prototype, \"pageChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], GridComponent.prototype, \"groupChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], GridComponent.prototype, \"sortChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], GridComponent.prototype, \"selectionChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], GridComponent.prototype, \"dataStateChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], GridComponent.prototype, \"groupExpand\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], GridComponent.prototype, \"groupCollapse\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], GridComponent.prototype, \"detailExpand\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], GridComponent.prototype, \"detailCollapse\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], GridComponent.prototype, \"edit\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], GridComponent.prototype, \"cancel\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], GridComponent.prototype, \"save\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], GridComponent.prototype, \"remove\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], GridComponent.prototype, \"add\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], GridComponent.prototype, \"cellClose\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], GridComponent.prototype, \"cellClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], GridComponent.prototype, \"pdfExport\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], GridComponent.prototype, \"excelExport\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], GridComponent.prototype, \"columnResize\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], GridComponent.prototype, \"columnReorder\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], GridComponent.prototype, \"columnVisibilityChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], GridComponent.prototype, \"columnLockedChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], GridComponent.prototype, \"columnStickyChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], GridComponent.prototype, \"scrollBottom\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], GridComponent.prototype, \"contentScroll\", void 0);\n__decorate([\n ContentChildren(ColumnBase$1),\n __metadata(\"design:type\", QueryList)\n], GridComponent.prototype, \"columns\", void 0);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], GridComponent.prototype, \"dir\", null);\n__decorate([\n HostBinding('class.k-grid'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], GridComponent.prototype, \"hostClasses\", null);\n__decorate([\n HostBinding('class.k-grid-lockedcolumns'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], GridComponent.prototype, \"lockedClasses\", null);\n__decorate([\n HostBinding('class.k-grid-virtual'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], GridComponent.prototype, \"virtualClasses\", null);\n__decorate([\n HostBinding('class.k-grid-no-scrollbar'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], GridComponent.prototype, \"noScrollbarClass\", null);\n__decorate([\n ContentChildren(DetailTemplateDirective),\n __metadata(\"design:type\", QueryList)\n], GridComponent.prototype, \"detailTemplateChildren\", void 0);\n__decorate([\n ContentChildren(CellLoadingTemplateDirective),\n __metadata(\"design:type\", QueryList)\n], GridComponent.prototype, \"cellLoadingTemplateChildren\", void 0);\n__decorate([\n ContentChildren(LoadingTemplateDirective),\n __metadata(\"design:type\", QueryList)\n], GridComponent.prototype, \"loadingTemplateChildren\", void 0);\n__decorate([\n ContentChildren(NoRecordsTemplateDirective),\n __metadata(\"design:type\", QueryList)\n], GridComponent.prototype, \"noRecordsTemplateChildren\", void 0);\n__decorate([\n ContentChildren(PagerTemplateDirective),\n __metadata(\"design:type\", QueryList)\n], GridComponent.prototype, \"pagerTemplateChildren\", void 0);\n__decorate([\n ContentChildren(ToolbarTemplateDirective),\n __metadata(\"design:type\", QueryList)\n], GridComponent.prototype, \"toolbarTemplateChildren\", void 0);\n__decorate([\n ContentChildren(ColumnMenuTemplateDirective),\n __metadata(\"design:type\", QueryList)\n], GridComponent.prototype, \"columnMenuTemplates\", void 0);\n__decorate([\n ViewChild('lockedHeader', { static: false }),\n __metadata(\"design:type\", Object)\n], GridComponent.prototype, \"lockedHeader\", void 0);\n__decorate([\n ViewChild('header', { static: false }),\n __metadata(\"design:type\", Object)\n], GridComponent.prototype, \"header\", void 0);\n__decorate([\n ViewChildren('footer'),\n __metadata(\"design:type\", QueryList)\n], GridComponent.prototype, \"footer\", void 0);\n__decorate([\n ViewChild('ariaRoot', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], GridComponent.prototype, \"ariaRoot\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Function])\n], GridComponent.prototype, \"isDetailExpanded\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Function])\n], GridComponent.prototype, \"isGroupExpanded\", null);\nGridComponent = __decorate([ __metadata(\"design:paramtypes\", [BrowserSupportService,\n SelectionService,\n CellSelectionService,\n ElementRef,\n GroupInfoService,\n GroupsService,\n ChangeNotificationService,\n DetailsService,\n EditService,\n FilterService,\n PDFService,\n ResponsiveService,\n Renderer2,\n ExcelService,\n NgZone,\n ScrollSyncService,\n DomEventsService,\n ColumnResizingService,\n ChangeDetectorRef,\n ColumnReorderService,\n ColumnInfoService,\n NavigationService,\n SortService,\n ScrollRequestService,\n LocalizationService])\n], GridComponent);\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 = 2;\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-grid 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 */\nlet ListComponent = class 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 = detailsService.changes.subscribe(x => this.detailExpand(x));\n this.subscriptions.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 const hasInitialSkip = changes.skip && changes.skip.firstChange && changes.skip.currentValue > 0;\n if (hasInitialSkip) {\n this.handleInitialScrollToSkip();\n }\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 handleInitialScrollToSkip() {\n const shouldScroll = () => this.isVirtual && this.skip > 0 && this.total > 0;\n const sub = this.changeNotification.changes\n .pipe(filter(shouldScroll))\n .subscribe(_ => {\n this.scrollTo({ row: this.skip });\n sub.unsubscribe();\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.ɵfac = function ListComponent_Factory(t) { return new (t || ListComponent)(ɵngcc0.ɵɵdirectiveInject(SCROLLER_FACTORY_TOKEN), ɵngcc0.ɵɵdirectiveInject(DetailsService), ɵngcc0.ɵɵdirectiveInject(ChangeNotificationService), ɵngcc0.ɵɵdirectiveInject(SuspendService), ɵngcc0.ɵɵdirectiveInject(GroupsService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ScrollSyncService), ɵngcc0.ɵɵdirectiveInject(ResizeService), ɵngcc0.ɵɵdirectiveInject(EditService), ɵngcc0.ɵɵdirectiveInject(BrowserSupportService), ɵngcc0.ɵɵdirectiveInject(NavigationService), ɵngcc0.ɵɵdirectiveInject(ScrollRequestService), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ColumnResizingService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(PDFService), ɵngcc0.ɵɵdirectiveInject(ColumnInfoService)); };\nListComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ListComponent, selectors: [[\"kendo-grid-list\"]], viewQuery: function ListComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c143, 7);\n ɵngcc0.ɵɵviewQuery(_c144, 5);\n ɵngcc0.ɵɵviewQuery(_c145, 5);\n ɵngcc0.ɵɵviewQuery(_c146, 7);\n ɵngcc0.ɵɵviewQuery(ResizeSensorComponent, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.container = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.lockedContainer = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.lockedTable = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.table = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.resizeSensors = _t);\n } }, hostVars: 3, hostBindings: function ListComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"role\", ctx.hostRole);\n ɵngcc0.ɵɵclassProp(\"k-grid-container\", ctx.hostClass);\n } }, inputs: { groups: \"groups\", skip: \"skip\", columns: \"columns\", selectable: \"selectable\", groupable: \"groupable\", trackBy: \"trackBy\", data: \"data\", total: \"total\", rowHeight: \"rowHeight\", stickyRowHeight: \"stickyRowHeight\", detailRowHeight: \"detailRowHeight\", take: \"take\", detailTemplate: \"detailTemplate\", noRecordsTemplate: \"noRecordsTemplate\", filterable: \"filterable\", rowClass: \"rowClass\", rowSticky: \"rowSticky\", loading: \"loading\", virtualColumns: \"virtualColumns\", isVirtual: \"isVirtual\", cellLoadingTemplate: \"cellLoadingTemplate\", loadingTemplate: \"loadingTemplate\" }, outputs: { contentScroll: \"contentScroll\", pageChange: \"pageChange\", scrollBottom: \"scrollBottom\" }, features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: SCROLLER_FACTORY_TOKEN,\n useValue: DEFAULT_SCROLLER_FACTORY\n }\n ]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 13, vars: 35, consts: [[\"class\", \"k-grid-content-locked\", \"role\", \"presentation\", \"tabindex\", \"-1\", 3, \"width\", \"kendoEventsOutsideAngular\", \"scope\", 4, \"ngIf\"], [\"role\", \"presentation\", \"tabindex\", \"-1\", 1, \"k-grid-content\", \"k-virtual-content\", 3, \"kendoGridResizableContainer\", \"lockedWidth\"], [\"container\", \"\"], [\"role\", \"presentation\", 1, \"k-grid-table-wrap\"], [\"role\", \"presentation\", 1, \"k-grid-table\", 3, \"virtualColumns\"], [\"table\", \"\"], [\"kendoGridColGroup\", \"\", \"role\", \"presentation\", 3, \"groups\", \"columns\", \"detailTemplate\"], [\"kendoGridTableBody\", \"\", \"role\", \"presentation\", 3, \"skipGroupDecoration\", \"data\", \"groups\", \"showGroupFooters\", \"columns\", \"allColumns\", \"detailTemplate\", \"noRecordsTemplate\", \"lockedColumnsCount\", \"totalColumnsCount\", \"skip\", \"selectable\", \"trackBy\", \"filterable\", \"rowClass\", \"rowSticky\", \"virtualColumns\", \"isLoading\", \"isVirtual\", \"cellLoadingTemplate\"], [4, \"ngIf\"], [\"role\", \"presentation\", 1, \"k-height-container\"], [\"class\", \"k-width-container\", \"role\", \"presentation\", 4, \"ngIf\"], [\"role\", \"presentation\", \"tabindex\", \"-1\", 1, \"k-grid-content-locked\", 3, \"kendoEventsOutsideAngular\", \"scope\"], [\"lockedContainer\", \"\"], [\"role\", \"presentation\", 1, \"k-grid-table\", 3, \"locked\"], [\"lockedTable\", \"\"], [\"kendoGridTableBody\", \"\", \"role\", \"presentation\", 3, \"groups\", \"isLocked\", \"data\", \"noRecordsText\", \"columns\", \"totalColumnsCount\", \"detailTemplate\", \"showGroupFooters\", \"skip\", \"selectable\", \"trackBy\", \"filterable\", \"rowClass\", \"isLoading\", \"isVirtual\", \"cellLoadingTemplate\"], [\"role\", \"presentation\", 1, \"k-width-container\"]], template: function ListComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ListComponent_div_0_Template, 10, 33, \"div\", 0);\n ɵngcc0.ɵɵelementStart(1, \"div\", 1, 2)(3, \"div\", 3)(4, \"table\", 4, 5);\n ɵngcc0.ɵɵelement(6, \"colgroup\", 6)(7, \"tbody\", 7);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(8, ListComponent_kendo_resize_sensor_8_Template, 1, 0, \"kendo-resize-sensor\", 8);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(9, ListComponent_kendo_resize_sensor_9_Template, 1, 0, \"kendo-resize-sensor\", 8);\n ɵngcc0.ɵɵelementStart(10, \"div\", 9);\n ɵngcc0.ɵɵelement(11, \"div\");\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(12, ListComponent_div_12_Template, 2, 2, \"div\", 10);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.isLocked);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"kendoGridResizableContainer\", ctx.lockedLeafColumns.length)(\"lockedWidth\", ctx.lockedWidth + 1);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵstyleProp(\"width\", ctx.nonLockedWidth, \"px\");\n ɵngcc0.ɵɵproperty(\"virtualColumns\", ctx.virtualColumns);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"groups\", ctx.isLocked ? ɵngcc0.ɵɵpureFunction0(34, _c142) : ctx.groups)(\"columns\", ctx.nonLockedColumnsToRender)(\"detailTemplate\", ctx.detailTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"skipGroupDecoration\", ctx.isLocked)(\"data\", ctx.data)(\"groups\", ctx.groups)(\"showGroupFooters\", ctx.showFooter)(\"columns\", ctx.nonLockedColumnsToRender)(\"allColumns\", ctx.nonLockedLeafColumns)(\"detailTemplate\", ctx.detailTemplate)(\"noRecordsTemplate\", ctx.noRecordsTemplate)(\"lockedColumnsCount\", ctx.lockedLeafColumns.length)(\"totalColumnsCount\", ctx.leafColumns.length)(\"skip\", ctx.skip)(\"selectable\", ctx.selectable)(\"trackBy\", ctx.trackBy)(\"filterable\", ctx.filterable)(\"rowClass\", ctx.rowClass)(\"rowSticky\", ctx.rowSticky)(\"virtualColumns\", ctx.virtualColumns)(\"isLoading\", ctx.loading)(\"isVirtual\", ctx.isVirtual)(\"cellLoadingTemplate\", ctx.cellLoadingTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.isLocked);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.isLocked || ctx.virtualColumns);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵstyleProp(\"height\", ctx.totalHeight, \"px\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.virtualColumns);\n } }, directives: function () { return [ɵngcc5.NgIf, ɵngcc2.EventsOutsideAngularDirective, TableDirective, ColGroupComponent, TableBodyComponent, ɵngcc2.ResizeSensorComponent, ResizableContainerDirective]; }, encapsulation: 2 });\n__decorate([\n HostBinding(\"class.k-grid-container\"),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ListComponent.prototype, \"hostClass\", null);\n__decorate([\n HostBinding(\"attr.role\"),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], ListComponent.prototype, \"hostRole\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], ListComponent.prototype, \"data\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], ListComponent.prototype, \"groups\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ListComponent.prototype, \"total\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ListComponent.prototype, \"rowHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ListComponent.prototype, \"stickyRowHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ListComponent.prototype, \"detailRowHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ListComponent.prototype, \"take\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ListComponent.prototype, \"skip\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnsContainer)\n], ListComponent.prototype, \"columns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", DetailTemplateDirective)\n], ListComponent.prototype, \"detailTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", NoRecordsTemplateDirective)\n], ListComponent.prototype, \"noRecordsTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ListComponent.prototype, \"selectable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ListComponent.prototype, \"groupable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ListComponent.prototype, \"filterable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], ListComponent.prototype, \"rowClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], ListComponent.prototype, \"rowSticky\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ListComponent.prototype, \"loading\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], ListComponent.prototype, \"trackBy\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ListComponent.prototype, \"virtualColumns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ListComponent.prototype, \"isVirtual\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], ListComponent.prototype, \"cellLoadingTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], ListComponent.prototype, \"loadingTemplate\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ListComponent.prototype, \"contentScroll\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ListComponent.prototype, \"pageChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ListComponent.prototype, \"scrollBottom\", void 0);\n__decorate([\n ViewChild('container', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], ListComponent.prototype, \"container\", void 0);\n__decorate([\n ViewChild('lockedContainer', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], ListComponent.prototype, \"lockedContainer\", void 0);\n__decorate([\n ViewChild('lockedTable', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], ListComponent.prototype, \"lockedTable\", void 0);\n__decorate([\n ViewChild('table', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], ListComponent.prototype, \"table\", void 0);\n__decorate([\n ViewChildren(ResizeSensorComponent),\n __metadata(\"design:type\", QueryList)\n], ListComponent.prototype, \"resizeSensors\", void 0);\nListComponent = __decorate([ __param(0, Inject(SCROLLER_FACTORY_TOKEN)),\n __metadata(\"design:paramtypes\", [Object, DetailsService,\n ChangeNotificationService,\n SuspendService,\n GroupsService,\n NgZone,\n Renderer2,\n ScrollSyncService,\n ResizeService,\n EditService,\n BrowserSupportService,\n NavigationService,\n ScrollRequestService,\n LocalizationService,\n ColumnResizingService,\n ChangeDetectorRef,\n PDFService,\n ColumnInfoService])\n], ListComponent);\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 */\nlet DataBindingDirective = class 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.ɵfac = function DataBindingDirective_Factory(t) { return new (t || DataBindingDirective)(ɵngcc0.ɵɵdirectiveInject(GridComponent), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(LocalDataChangesService)); };\nDataBindingDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DataBindingDirective, selectors: [[\"\", \"kendoGridBinding\", \"\"]], inputs: { skip: \"skip\", sort: \"sort\", filter: \"filter\", pageSize: \"pageSize\", group: \"group\", data: [\"kendoGridBinding\", \"data\"] }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], DataBindingDirective.prototype, \"skip\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], DataBindingDirective.prototype, \"sort\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], DataBindingDirective.prototype, \"filter\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], DataBindingDirective.prototype, \"pageSize\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], DataBindingDirective.prototype, \"group\", null);\n__decorate([\n Input(\"kendoGridBinding\"),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], DataBindingDirective.prototype, \"data\", null);\nDataBindingDirective = __decorate([ __metadata(\"design:paramtypes\", [GridComponent,\n ChangeDetectorRef,\n LocalDataChangesService])\n], DataBindingDirective);\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 */\nlet SelectionDirective = class 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 = this;\n }\n /**\n * @hidden\n */\n ngOnDestroy() {\n super.destroy();\n }\n};\nSelectionDirective.ɵfac = function SelectionDirective_Factory(t) { return new (t || SelectionDirective)(ɵngcc0.ɵɵdirectiveInject(GridComponent), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nSelectionDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SelectionDirective, selectors: [[\"\", \"kendoGridSelectBy\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nSelectionDirective = __decorate([ __metadata(\"design:paramtypes\", [GridComponent, ChangeDetectorRef])\n], SelectionDirective);\n\n/**\n * A directive which controls the expanded state of the master detail rows.\n */\nlet ExpandDetailsDirective = class 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 * When set to `true` items added to the `expandedDetailKeys` collection will be collapsed, and items that are not present in it will be expanded.\n *\n * @default false\n */\n this.initiallyExpanded = false;\n this.expandedState = new Set();\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 ([see example]({% slug master_detail_expanded_state_grid %}#toc-built-in-directive)).\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 ngOnChanges(changes) {\n // skip reinitialization if the user data is the same as the last state change\n if (isPresent(changes.expandedDetailKeys) && this.lastExpandedState !== this.expandedDetailKeys) {\n this.expandedState = new Set(this.expandedDetailKeys);\n }\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 const hasKey = this.expandedState.has(key);\n // when [initiallyExpanded]=\"true\" a present key means the corresponding detail row is collapsed\n return this.initiallyExpanded ? !hasKey : hasKey;\n }\n toggleState(args) {\n const key = this.keyGetter(args.dataItem);\n if (Boolean(this.initiallyExpanded) !== args.expand) {\n this.expandedState.add(key);\n }\n else {\n this.expandedState.delete(key);\n }\n this.notifyChange();\n }\n notifyChange() {\n this.lastExpandedState = Array.from(this.expandedState);\n this.expandedDetailKeysChange.emit(this.lastExpandedState);\n }\n};\nExpandDetailsDirective.ɵfac = function ExpandDetailsDirective_Factory(t) { return new (t || ExpandDetailsDirective)(ɵngcc0.ɵɵdirectiveInject(GridComponent)); };\nExpandDetailsDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ExpandDetailsDirective, selectors: [[\"\", \"kendoGridExpandDetailsBy\", \"\"]], inputs: { expandedDetailKeys: \"expandedDetailKeys\", initiallyExpanded: \"initiallyExpanded\", expandDetailsKey: [\"kendoGridExpandDetailsBy\", \"expandDetailsKey\"], expandDetailBy: \"expandDetailBy\" }, outputs: { expandedDetailKeysChange: \"expandedDetailKeysChange\" }, exportAs: [\"kendoGridExpandDetailsBy\"], features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ExpandDetailsDirective.prototype, \"expandedDetailKeysChange\", void 0);\n__decorate([\n Input('kendoGridExpandDetailsBy'),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], ExpandDetailsDirective.prototype, \"expandDetailsKey\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], ExpandDetailsDirective.prototype, \"expandDetailBy\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], ExpandDetailsDirective.prototype, \"expandedDetailKeys\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ExpandDetailsDirective.prototype, \"initiallyExpanded\", void 0);\nExpandDetailsDirective = __decorate([ __metadata(\"design:paramtypes\", [GridComponent])\n], ExpandDetailsDirective);\n\nconst mapParentGroup = (parentGroup) => {\n const parentGroupKeys = [];\n while (parentGroup) {\n parentGroupKeys.push({ field: parentGroup.group.field, value: parentGroup.group.value });\n parentGroup = parentGroup.parentGroup;\n }\n return parentGroupKeys;\n};\nconst DEFAULT_KEY_GETTER = (groupRowArgs) => ({\n field: groupRowArgs.group.field,\n value: groupRowArgs.group.value,\n parentGroupKeys: mapParentGroup(groupRowArgs.parentGroup)\n});\n/**\n * A directive which controls the expanded state of the group rows\n * ([see example]({% slug groups_expanded_state_grid %}#toc-built-in-directive)).\n */\nlet ExpandGroupDirective = class ExpandGroupDirective {\n constructor(grid) {\n this.grid = grid;\n /**\n * Fires when the expandedGroupKeys are changed.\n */\n this.expandedGroupKeysChange = new EventEmitter();\n /**\n * Specifies if the group items should be initially expanded.\n * @default false\n */\n this.groupsInitiallyExpanded = false;\n this.subscriptions = new Subscription();\n this.grid.isGroupExpanded = this.isExpanded.bind(this);\n this.subscriptions.add(merge(this.grid.groupExpand.pipe(map(e => (Object.assign({ expand: true }, e)))), this.grid.groupCollapse.pipe(map(e => (Object.assign({ expand: false }, e))))).subscribe(this.toggleState.bind(this)));\n }\n /**\n * Defines the item format that will be stored in the `expandedGroupKeys`\n * ([see example]({% slug groups_expanded_state_grid %}#toc-custom-group-key-format)).\n */\n get expandGroupBy() {\n return this._expandGroupBy;\n }\n set expandGroupBy(key) {\n if (typeof key === 'function') {\n this._expandGroupBy = key;\n }\n }\n /**\n * Defines the collection that will store the expanded group keys.\n */\n get expandedGroupKeys() {\n return this._expandedGroupKeys;\n }\n set expandedGroupKeys(expandedGroups) {\n this._expandedGroupKeys = (expandedGroups || []).slice();\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n get keyGetter() {\n return this.expandGroupBy || DEFAULT_KEY_GETTER;\n }\n /**\n * @hidden\n */\n isExpanded(groupArgs) {\n const itemIndex = this.getItemIndex(groupArgs);\n return itemIndex > -1 ? !this.groupsInitiallyExpanded : this.groupsInitiallyExpanded;\n }\n getItemIndex(groupArgs) {\n if (this.expandGroupBy) {\n return this.expandedGroupKeys.indexOf(this.keyGetter(groupArgs));\n }\n return this.expandedGroupKeys.findIndex(item => {\n let index = 0;\n let parentGroup = groupArgs.parentGroup;\n while (isPresent(parentGroup)) {\n if (!isPresent(item.parentGroupKeys) || !isPresent(item.parentGroupKeys[index]) ||\n parentGroup.group.value !== item.parentGroupKeys[index].value ||\n parentGroup.group.field !== item.parentGroupKeys[index].field) {\n return false;\n }\n parentGroup = parentGroup.parentGroup;\n index++;\n }\n return item.value === groupArgs.group.value && item.field === groupArgs.group.field;\n });\n }\n toggleState(groupArgs) {\n const key = this.keyGetter(groupArgs);\n if (Boolean(this.groupsInitiallyExpanded) !== groupArgs.expand) {\n this.expandedGroupKeys.push(key);\n }\n else {\n const index = this.expandedGroupKeys.indexOf(key);\n this.expandedGroupKeys.splice(index, 1);\n }\n this.expandedGroupKeysChange.emit(this.expandedGroupKeys.slice());\n }\n};\nExpandGroupDirective.ɵfac = function ExpandGroupDirective_Factory(t) { return new (t || ExpandGroupDirective)(ɵngcc0.ɵɵdirectiveInject(GridComponent)); };\nExpandGroupDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ExpandGroupDirective, selectors: [[\"\", \"kendoGridExpandGroupBy\", \"\"]], inputs: { groupsInitiallyExpanded: \"groupsInitiallyExpanded\", expandGroupBy: [\"kendoGridExpandGroupBy\", \"expandGroupBy\"], expandedGroupKeys: \"expandedGroupKeys\" }, outputs: { expandedGroupKeysChange: \"expandedGroupKeysChange\" }, exportAs: [\"kendoGridExpandGroupBy\"] });\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ExpandGroupDirective.prototype, \"expandedGroupKeysChange\", void 0);\n__decorate([\n Input('kendoGridExpandGroupBy'),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], ExpandGroupDirective.prototype, \"expandGroupBy\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], ExpandGroupDirective.prototype, \"expandedGroupKeys\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ExpandGroupDirective.prototype, \"groupsInitiallyExpanded\", void 0);\nExpandGroupDirective = __decorate([ __metadata(\"design:paramtypes\", [GridComponent])\n], ExpandGroupDirective);\n\n/**\n * @hidden\n */\nclass Messages extends ComponentMessages {\n}\nMessages.ɵfac = /*@__PURE__*/ function () { let ɵMessages_BaseFactory; return function Messages_Factory(t) { return (ɵMessages_BaseFactory || (ɵMessages_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(Messages)))(t || Messages); }; }();\nMessages.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: Messages, inputs: { groupPanelEmpty: \"groupPanelEmpty\", noRecords: \"noRecords\", pagerLabel: \"pagerLabel\", pagerFirstPage: \"pagerFirstPage\", pagerLastPage: \"pagerLastPage\", pagerPreviousPage: \"pagerPreviousPage\", pagerNextPage: \"pagerNextPage\", pagerPage: \"pagerPage\", pagerItemsPerPage: \"pagerItemsPerPage\", pagerOf: \"pagerOf\", pagerItems: \"pagerItems\", pagerPageNumberInputTitle: \"pagerPageNumberInputTitle\", filter: \"filter\", filterInputLabel: \"filterInputLabel\", filterMenuTitle: \"filterMenuTitle\", filterMenuOperatorsDropDownLabel: \"filterMenuOperatorsDropDownLabel\", filterMenuLogicDropDownLabel: \"filterMenuLogicDropDownLabel\", filterEqOperator: \"filterEqOperator\", filterNotEqOperator: \"filterNotEqOperator\", filterIsNullOperator: \"filterIsNullOperator\", filterIsNotNullOperator: \"filterIsNotNullOperator\", filterIsEmptyOperator: \"filterIsEmptyOperator\", filterIsNotEmptyOperator: \"filterIsNotEmptyOperator\", filterStartsWithOperator: \"filterStartsWithOperator\", filterContainsOperator: \"filterContainsOperator\", filterNotContainsOperator: \"filterNotContainsOperator\", filterEndsWithOperator: \"filterEndsWithOperator\", filterGteOperator: \"filterGteOperator\", filterGtOperator: \"filterGtOperator\", filterLteOperator: \"filterLteOperator\", filterLtOperator: \"filterLtOperator\", filterIsTrue: \"filterIsTrue\", filterIsFalse: \"filterIsFalse\", filterBooleanAll: \"filterBooleanAll\", filterAfterOrEqualOperator: \"filterAfterOrEqualOperator\", filterAfterOperator: \"filterAfterOperator\", filterBeforeOperator: \"filterBeforeOperator\", filterBeforeOrEqualOperator: \"filterBeforeOrEqualOperator\", filterFilterButton: \"filterFilterButton\", filterClearButton: \"filterClearButton\", filterAndLogic: \"filterAndLogic\", filterOrLogic: \"filterOrLogic\", loading: \"loading\", gridLabel: \"gridLabel\", columnMenu: \"columnMenu\", setColumnPosition: \"setColumnPosition\", columns: \"columns\", lock: \"lock\", unlock: \"unlock\", stick: \"stick\", unstick: \"unstick\", sortable: \"sortable\", sortAscending: \"sortAscending\", sortDescending: \"sortDescending\", sortedAscending: \"sortedAscending\", sortedDescending: \"sortedDescending\", sortedDefault: \"sortedDefault\", columnsApply: \"columnsApply\", columnsReset: \"columnsReset\", detailExpand: \"detailExpand\", detailCollapse: \"detailCollapse\", filterDateToday: \"filterDateToday\", filterDateToggle: \"filterDateToggle\", filterNumericDecrement: \"filterNumericDecrement\", filterNumericIncrement: \"filterNumericIncrement\", selectionCheckboxLabel: \"selectionCheckboxLabel\", selectAllCheckboxLabel: \"selectAllCheckboxLabel\", groupCollapse: \"groupCollapse\", groupExpand: \"groupExpand\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"groupPanelEmpty\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"noRecords\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"pagerLabel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"pagerFirstPage\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"pagerLastPage\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"pagerPreviousPage\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"pagerNextPage\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"pagerPage\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"pagerItemsPerPage\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"pagerOf\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"pagerItems\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"pagerPageNumberInputTitle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterInputLabel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterMenuTitle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterMenuOperatorsDropDownLabel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterMenuLogicDropDownLabel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterEqOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterNotEqOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterIsNullOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterIsNotNullOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterIsEmptyOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterIsNotEmptyOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterStartsWithOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterContainsOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterNotContainsOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterEndsWithOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterGteOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterGtOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterLteOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterLtOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterIsTrue\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterIsFalse\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterBooleanAll\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterAfterOrEqualOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterAfterOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterBeforeOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterBeforeOrEqualOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterFilterButton\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterClearButton\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterAndLogic\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterOrLogic\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"loading\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"gridLabel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"columnMenu\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"setColumnPosition\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"columns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"lock\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"unlock\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"stick\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"unstick\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"sortable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"sortAscending\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"sortDescending\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"sortedAscending\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"sortedDescending\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"sortedDefault\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"columnsApply\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"columnsReset\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"detailExpand\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"detailCollapse\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterDateToday\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterDateToggle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterNumericDecrement\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterNumericIncrement\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"selectionCheckboxLabel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"selectAllCheckboxLabel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"groupCollapse\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"groupExpand\", void 0);\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.ɵfac = function LocalizedMessagesDirective_Factory(t) { return new (t || LocalizedMessagesDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nLocalizedMessagesDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LocalizedMessagesDirective, selectors: [[\"\", \"kendoGridLocalizedMessages\", \"\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: Messages,\n useExisting: forwardRef(() => LocalizedMessagesDirective_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature] });\nLocalizedMessagesDirective = LocalizedMessagesDirective_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], LocalizedMessagesDirective);\n\nvar CustomMessagesComponent_1;\n/**\n * Custom component messages override default component messages\n * ([see example]({% slug globalization_grid %}#toc-localization)).\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.ɵfac = function CustomMessagesComponent_Factory(t) { return new (t || CustomMessagesComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nCustomMessagesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CustomMessagesComponent, selectors: [[\"kendo-grid-messages\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: Messages,\n useExisting: forwardRef(() => CustomMessagesComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function CustomMessagesComponent_Template(rf, ctx) { }, encapsulation: 2 });\nCustomMessagesComponent = CustomMessagesComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], CustomMessagesComponent);\n\n/**\n * @hidden\n */\nlet FilterRowComponent = class FilterRowComponent {\n constructor(localization, columnInfoService) {\n this.localization = localization;\n this.columnInfoService = columnInfoService;\n this.columns = [];\n this.groups = [];\n this.filterRowClass = true;\n }\n addStickyStyles(column) {\n const sticky = column.sticky ? this.columnInfoService.stickyColumnsStyles(column) : null;\n return Object.assign({}, sticky, column.filterStyle);\n }\n filterLabel(column) {\n const localizationMsg = this.localization.get('filterInputLabel') || '';\n const columnName = column.title || column.field;\n return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);\n }\n};\nFilterRowComponent.ɵfac = function FilterRowComponent_Factory(t) { return new (t || FilterRowComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ColumnInfoService)); };\nFilterRowComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: FilterRowComponent, selectors: [[\"\", \"kendoGridFilterRow\", \"\"]], hostVars: 2, hostBindings: function FilterRowComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-filter-row\", ctx.filterRowClass);\n } }, inputs: { columns: \"columns\", groups: \"groups\", filter: \"filter\", detailTemplate: \"detailTemplate\", logicalRowIndex: \"logicalRowIndex\", lockedColumnsCount: \"lockedColumnsCount\" }, attrs: _c148, decls: 3, vars: 3, consts: [[\"role\", \"presentation\", 3, \"k-group-cell\", 4, \"ngFor\", \"ngForOf\"], [\"role\", \"presentation\", 3, \"k-hierarchy-cell\", 4, \"ngIf\"], [\"kendoGridFilterCell\", \"\", \"kendoGridLogicalCell\", \"\", 3, \"k-grid-header-sticky\", \"ngStyle\", \"ngClass\", \"column\", \"filter\", \"logicalRowIndex\", \"logicalColIndex\", 4, \"ngFor\", \"ngForOf\"], [\"role\", \"presentation\"], [\"kendoGridFilterCell\", \"\", \"kendoGridLogicalCell\", \"\", 3, \"ngStyle\", \"ngClass\", \"column\", \"filter\", \"logicalRowIndex\", \"logicalColIndex\"]], template: function FilterRowComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, FilterRowComponent_td_0_Template, 1, 2, \"td\", 0);\n ɵngcc0.ɵɵtemplate(1, FilterRowComponent_td_1_Template, 1, 2, \"td\", 1);\n ɵngcc0.ɵɵtemplate(2, FilterRowComponent_td_2_Template, 1, 9, \"td\", 2);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.groups);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.detailTemplate == null ? null : ctx.detailTemplate.templateRef);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.columns);\n } }, directives: function () { return [ɵngcc5.NgForOf, ɵngcc5.NgIf, FilterCellComponent, LogicalCellDirective, ɵngcc5.NgStyle, ɵngcc5.NgClass]; }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], FilterRowComponent.prototype, \"columns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], FilterRowComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], FilterRowComponent.prototype, \"groups\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", DetailTemplateDirective)\n], FilterRowComponent.prototype, \"detailTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], FilterRowComponent.prototype, \"logicalRowIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], FilterRowComponent.prototype, \"lockedColumnsCount\", void 0);\n__decorate([\n HostBinding('class.k-filter-row'),\n __metadata(\"design:type\", Boolean)\n], FilterRowComponent.prototype, \"filterRowClass\", void 0);\nFilterRowComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService,\n ColumnInfoService])\n], FilterRowComponent);\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 */\nlet FilterCellComponent = class FilterCellComponent {\n /**\n * @hidden\n */\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.ɵfac = function FilterCellComponent_Factory(t) { return new (t || FilterCellComponent)(); };\nFilterCellComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: FilterCellComponent, selectors: [[\"\", \"kendoGridFilterCell\", \"\"]], inputs: { filter: \"filter\", column: \"column\" }, attrs: _c149, decls: 1, vars: 1, consts: [[3, \"ngIf\"], [3, \"ngSwitch\"], [4, \"ngSwitchCase\"], [\"kendoFilterCellHost\", \"\", 3, \"column\", \"filter\"], [4, \"ngIf\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]], template: function FilterCellComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, FilterCellComponent_ng_template_0_Template, 3, 3, \"ng-template\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.isFilterable);\n } }, directives: function () { return [ɵngcc5.NgIf, ɵngcc5.NgSwitch, ɵngcc5.NgSwitchCase, FilterCellHostDirective, ɵngcc5.NgTemplateOutlet]; }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnComponent)\n], FilterCellComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], FilterCellComponent.prototype, \"filter\", null);\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.ɵfac = function FilterOperatorBase_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nFilterOperatorBase.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: FilterOperatorBase, inputs: { text: \"text\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], FilterOperatorBase.prototype, \"text\", null);\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.ɵfac = function BaseFilterCellComponent_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nBaseFilterCellComponent.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: BaseFilterCellComponent, contentQueries: function BaseFilterCellComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, FilterOperatorBase, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.operatorList = _t);\n } }, hostVars: 2, hostBindings: function BaseFilterCellComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-filtercell\", ctx.hostClasses);\n } } });\n__decorate([\n HostBinding('class.k-filtercell'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], BaseFilterCellComponent.prototype, \"hostClasses\", null);\n__decorate([\n ContentChildren(FilterOperatorBase),\n __metadata(\"design:type\", QueryList)\n], BaseFilterCellComponent.prototype, \"operatorList\", void 0);\n\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 * @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.ɵfac = function NumericFilterComponent_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nNumericFilterComponent.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NumericFilterComponent, inputs: { operator: \"operator\", step: \"step\", spinners: \"spinners\", format: \"format\", column: \"column\", filter: \"filter\", min: \"min\", max: \"max\", decimals: \"decimals\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnComponent)\n], NumericFilterComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], NumericFilterComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], NumericFilterComponent.prototype, \"operator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], NumericFilterComponent.prototype, \"step\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], NumericFilterComponent.prototype, \"min\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], NumericFilterComponent.prototype, \"max\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], NumericFilterComponent.prototype, \"spinners\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], NumericFilterComponent.prototype, \"decimals\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], NumericFilterComponent.prototype, \"format\", null);\n\n/**\n * Represents a numeric filter cell.\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * \n * ```\n */\nlet NumericFilterCellComponent = class 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 /**\n * @hidden\n */\n messageFor(key) {\n return this.localization.get(key);\n }\n /**\n * @hidden\n */\n get columnLabel() {\n const localizationMsg = this.localization.get('filterInputLabel') || '';\n const columnName = this.column.title || this.column.field;\n return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);\n }\n};\nNumericFilterCellComponent.ɵfac = function NumericFilterCellComponent_Factory(t) { return new (t || NumericFilterCellComponent)(ɵngcc0.ɵɵdirectiveInject(FilterService), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nNumericFilterCellComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NumericFilterCellComponent, selectors: [[\"kendo-grid-numeric-filter-cell\"]], inputs: { filterDelay: \"filterDelay\", showOperators: \"showOperators\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 3, vars: 17, consts: [[3, \"column\", \"filter\", \"operators\", \"defaultOperator\", \"showOperators\"], [\"kendoGridFocusable\", \"\", \"kendoFilterInput\", \"\", 3, \"columnLabel\", \"filterDelay\", \"autoCorrect\", \"value\", \"format\", \"decimals\", \"spinners\", \"min\", \"max\", \"step\"], [3, \"increment\", \"decrement\"]], template: function NumericFilterCellComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-grid-filter-wrapper-cell\", 0)(1, \"kendo-numerictextbox\", 1);\n ɵngcc0.ɵɵelement(2, \"kendo-numerictextbox-messages\", 2);\n ɵngcc0.ɵɵelementEnd()();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"column\", ctx.column)(\"filter\", ctx.filter)(\"operators\", ctx.operators)(\"defaultOperator\", ctx.operator)(\"showOperators\", ctx.showOperators);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"columnLabel\", ctx.columnLabel)(\"filterDelay\", ctx.filterDelay)(\"autoCorrect\", true)(\"value\", ctx.currentFilter == null ? null : ctx.currentFilter.value)(\"format\", ctx.format)(\"decimals\", ctx.decimals)(\"spinners\", ctx.spinners)(\"min\", ctx.min)(\"max\", ctx.max)(\"step\", ctx.step);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"increment\", ctx.messageFor(\"filterNumericIncrement\"))(\"decrement\", ctx.messageFor(\"filterNumericDecrement\"));\n } }, directives: function () { return [FilterCellWrapperComponent, ɵngcc6.NumericTextBoxComponent, FocusableDirective, FilterInputDirective, ɵngcc6.NumericTextBoxCustomMessagesComponent]; }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], NumericFilterCellComponent.prototype, \"filterDelay\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], NumericFilterCellComponent.prototype, \"showOperators\", void 0);\nNumericFilterCellComponent = __decorate([ __metadata(\"design:paramtypes\", [FilterService,\n LocalizationService])\n], NumericFilterCellComponent);\n\n/**\n * @hidden\n */\nlet FilterInputDirective = class FilterInputDirective {\n constructor(valueAccessors, ngZone, element, renderer) {\n this.element = element;\n this.renderer = 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.addAriaAttributes();\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 addAriaAttributes() {\n const ariaValue = this.columnLabel;\n if (this.kendoInput && this.kendoInput.focusableId && isDocumentAvailable()) {\n const focusableElement = this.element.nativeElement.querySelector(`#${this.kendoInput.focusableId}`) ||\n this.element.nativeElement;\n this.renderer.setAttribute(focusableElement, 'aria-label', ariaValue);\n }\n else {\n this.renderer.setAttribute(this.element.nativeElement, 'aria-label', ariaValue);\n }\n }\n};\nFilterInputDirective.ɵfac = function FilterInputDirective_Factory(t) { return new (t || FilterInputDirective)(ɵngcc0.ɵɵdirectiveInject(NG_VALUE_ACCESSOR, 2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nFilterInputDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: FilterInputDirective, selectors: [[\"\", \"kendoFilterInput\", \"\"]], contentQueries: function FilterInputDirective_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, KendoInput, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.kendoInput = _t.first);\n } }, inputs: { filterDelay: \"filterDelay\", value: \"value\", columnLabel: \"columnLabel\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n ContentChild(KendoInput, { static: true }),\n __metadata(\"design:type\", Object)\n], FilterInputDirective.prototype, \"kendoInput\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], FilterInputDirective.prototype, \"filterDelay\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FilterInputDirective.prototype, \"columnLabel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], FilterInputDirective.prototype, \"value\", null);\nFilterInputDirective = __decorate([ __param(0, Self()), __param(0, Inject(NG_VALUE_ACCESSOR)),\n __metadata(\"design:paramtypes\", [Array, NgZone,\n ElementRef,\n Renderer2])\n], FilterInputDirective);\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.ɵfac = function FilterInputWrapperComponent_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nFilterInputWrapperComponent.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: FilterInputWrapperComponent, contentQueries: function FilterInputWrapperComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, FilterInputDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.input = _t.first);\n } }, inputs: { operators: \"operators\", defaultOperator: \"defaultOperator\", column: \"column\", filter: \"filter\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature, ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], FilterInputWrapperComponent.prototype, \"operators\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnComponent)\n], FilterInputWrapperComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], FilterInputWrapperComponent.prototype, \"filter\", void 0);\n__decorate([\n ContentChild(FilterInputDirective, { static: false }),\n __metadata(\"design:type\", FilterInputDirective)\n], FilterInputWrapperComponent.prototype, \"input\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], FilterInputWrapperComponent.prototype, \"defaultOperator\", null);\n\nconst EMPTY_FILTER_OPERATORS = ['isnull', 'isnotnull', 'isempty', 'isnotempty'];\n/**\n * @hidden\n */\nlet FilterCellWrapperComponent = class 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.ɵfac = function FilterCellWrapperComponent_Factory(t) { return new (t || FilterCellWrapperComponent)(ɵngcc0.ɵɵdirectiveInject(FilterService)); };\nFilterCellWrapperComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: FilterCellWrapperComponent, selectors: [[\"kendo-grid-filter-wrapper-cell\"]], hostVars: 4, hostBindings: function FilterCellWrapperComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-filtercell-wrapper\", ctx.hostClasses)(\"k-filtercell\", ctx.overrideBaseClasses);\n } }, inputs: { showOperators: \"showOperators\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c150, decls: 2, vars: 4, consts: [[3, \"showOperators\", \"operators\", \"showButton\", \"value\", \"clear\", \"valueChange\"]], template: function FilterCellWrapperComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵprojection(0);\n ɵngcc0.ɵɵelementStart(1, \"kendo-grid-filter-cell-operators\", 0);\n ɵngcc0.ɵɵlistener(\"clear\", function FilterCellWrapperComponent_Template_kendo_grid_filter_cell_operators_clear_1_listener() { return ctx.onClear(); })(\"valueChange\", function FilterCellWrapperComponent_Template_kendo_grid_filter_cell_operators_valueChange_1_listener($event) { return ctx.currentOperator = $event; });\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"showOperators\", ctx.showOperators)(\"operators\", ctx.operators)(\"showButton\", ctx.showButton)(\"value\", ctx.currentOperator);\n } }, directives: function () { return [FilterCellOperatorsComponent]; }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-filtercell-wrapper'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], FilterCellWrapperComponent.prototype, \"hostClasses\", null);\n__decorate([\n HostBinding('class.k-filtercell'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], FilterCellWrapperComponent.prototype, \"overrideBaseClasses\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], FilterCellWrapperComponent.prototype, \"showOperators\", void 0);\nFilterCellWrapperComponent = __decorate([ __metadata(\"design:paramtypes\", [FilterService])\n], FilterCellWrapperComponent);\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.ɵfac = function StringFilterComponent_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nStringFilterComponent.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: StringFilterComponent, inputs: { operator: \"operator\", column: \"column\", filter: \"filter\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnComponent)\n], StringFilterComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], StringFilterComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], StringFilterComponent.prototype, \"operator\", void 0);\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 */\nlet StringFilterCellComponent = class 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 /**\n * @hidden\n */\n get columnLabel() {\n const localizationMsg = this.localization.get('filterInputLabel') || '';\n const columnName = this.column.title || this.column.field;\n return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);\n }\n};\nStringFilterCellComponent.ɵfac = function StringFilterCellComponent_Factory(t) { return new (t || StringFilterCellComponent)(ɵngcc0.ɵɵdirectiveInject(FilterService), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nStringFilterCellComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: StringFilterCellComponent, selectors: [[\"kendo-grid-string-filter-cell\"]], inputs: { filterDelay: \"filterDelay\", showOperators: \"showOperators\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 2, vars: 8, consts: [[3, \"column\", \"filter\", \"operators\", \"defaultOperator\", \"showOperators\"], [\"kendoTextBox\", \"\", \"kendoGridFocusable\", \"\", \"kendoFilterInput\", \"\", 3, \"columnLabel\", \"filterDelay\", \"ngModel\"]], template: function StringFilterCellComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-grid-filter-wrapper-cell\", 0);\n ɵngcc0.ɵɵelement(1, \"input\", 1);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"column\", ctx.column)(\"filter\", ctx.filter)(\"operators\", ctx.operators)(\"defaultOperator\", ctx.operator)(\"showOperators\", ctx.showOperators);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"columnLabel\", ctx.columnLabel)(\"filterDelay\", ctx.filterDelay)(\"ngModel\", ctx.currentFilter == null ? null : ctx.currentFilter.value);\n } }, directives: [FilterCellWrapperComponent, ɵngcc6.TextBoxDirective, ɵngcc7.DefaultValueAccessor, FocusableDirective, FilterInputDirective, ɵngcc7.NgControlStatus, ɵngcc7.NgModel], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], StringFilterCellComponent.prototype, \"filterDelay\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], StringFilterCellComponent.prototype, \"showOperators\", void 0);\nStringFilterCellComponent = __decorate([ __metadata(\"design:paramtypes\", [FilterService,\n LocalizationService])\n], StringFilterCellComponent);\n\n/**\n * Represents a component which accommodates the filter operators.\n */\nlet FilterCellOperatorsComponent = class 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.ɵfac = function FilterCellOperatorsComponent_Factory(t) { return new (t || FilterCellOperatorsComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nFilterCellOperatorsComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: FilterCellOperatorsComponent, selectors: [[\"kendo-grid-filter-cell-operators\"]], viewQuery: function FilterCellOperatorsComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c151, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.dropdown = _t.first);\n } }, hostVars: 2, hostBindings: function FilterCellOperatorsComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-filtercell-operator\", ctx.hostClasses);\n } }, inputs: { operators: \"operators\", showOperators: \"showOperators\", showButton: \"showButton\", value: \"value\" }, outputs: { valueChange: \"valueChange\", clear: \"clear\" }, decls: 2, vars: 2, consts: [[\"kendoGridFocusable\", \"\", \"class\", \"k-dropdown-operator\", \"iconClass\", \"k-i-filter\", \"textField\", \"text\", \"valueField\", \"value\", 3, \"data\", \"value\", \"valuePrimitive\", \"popupSettings\", \"valueChange\", \"keydown\", 4, \"ngIf\"], [\"type\", \"button\", \"kendoGridFocusable\", \"\", \"class\", \"k-button k-button-solid-base k-button-solid k-button-md k-rounded-md k-button-rectangle k-icon-button\", 3, \"title\", \"click\", \"keydown\", 4, \"ngIf\"], [\"kendoGridFocusable\", \"\", \"iconClass\", \"k-i-filter\", \"textField\", \"text\", \"valueField\", \"value\", 1, \"k-dropdown-operator\", 3, \"data\", \"value\", \"valuePrimitive\", \"popupSettings\", \"valueChange\", \"keydown\"], [\"dropdown\", \"\"], [\"type\", \"button\", \"kendoGridFocusable\", \"\", 1, \"k-button\", \"k-button-solid-base\", \"k-button-solid\", \"k-button-md\", \"k-rounded-md\", \"k-button-rectangle\", \"k-icon-button\", 3, \"title\", \"click\", \"keydown\"], [1, \"k-icon\", \"k-button-icon\", \"k-i-filter-clear\"]], template: function FilterCellOperatorsComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, FilterCellOperatorsComponent_kendo_dropdownlist_0_Template, 2, 5, \"kendo-dropdownlist\", 0);\n ɵngcc0.ɵɵtemplate(1, FilterCellOperatorsComponent_button_1_Template, 2, 1, \"button\", 1);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showOperators);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showButton);\n } }, directives: [ɵngcc5.NgIf, ɵngcc8.DropDownListComponent, FocusableDirective], encapsulation: 2 });\n__decorate([\n HostBinding('class.k-filtercell-operator'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], FilterCellOperatorsComponent.prototype, \"hostClasses\", null);\n__decorate([\n ViewChild('dropdown', { static: false }),\n __metadata(\"design:type\", DropDownListComponent)\n], FilterCellOperatorsComponent.prototype, \"dropdown\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], FilterCellOperatorsComponent.prototype, \"operators\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], FilterCellOperatorsComponent.prototype, \"showButton\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], FilterCellOperatorsComponent.prototype, \"showOperators\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FilterCellOperatorsComponent.prototype, \"value\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], FilterCellOperatorsComponent.prototype, \"valueChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], FilterCellOperatorsComponent.prototype, \"clear\", void 0);\nFilterCellOperatorsComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], FilterCellOperatorsComponent);\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 */\nlet AutoCompleteFilterCellComponent = class 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.ɵfac = function AutoCompleteFilterCellComponent_Factory(t) { return new (t || AutoCompleteFilterCellComponent)(ɵngcc0.ɵɵdirectiveInject(FilterService), ɵngcc0.ɵɵdirectiveInject(ColumnComponent), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nAutoCompleteFilterCellComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: AutoCompleteFilterCellComponent, selectors: [[\"kendo-grid-autocomplete-filter-cell\"]], inputs: { showOperators: \"showOperators\", column: \"column\", valueField: \"valueField\", filter: \"filter\", data: \"data\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 2, vars: 7, consts: [[3, \"column\", \"filter\", \"operators\", \"showOperators\"], [\"kendoFilterInput\", \"\", 3, \"data\", \"valueField\", \"value\"]], template: function AutoCompleteFilterCellComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-grid-filter-wrapper-cell\", 0);\n ɵngcc0.ɵɵelement(1, \"kendo-autocomplete\", 1);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"column\", ctx.column)(\"filter\", ctx.filter)(\"operators\", ctx.operators)(\"showOperators\", ctx.showOperators);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"data\", ctx.data)(\"valueField\", ctx.valueField)(\"value\", ctx.currentFilter == null ? null : ctx.currentFilter.value);\n } }, directives: [FilterCellWrapperComponent, ɵngcc8.AutoCompleteComponent, FilterInputDirective], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AutoCompleteFilterCellComponent.prototype, \"showOperators\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnComponent)\n], AutoCompleteFilterCellComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AutoCompleteFilterCellComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], AutoCompleteFilterCellComponent.prototype, \"data\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], AutoCompleteFilterCellComponent.prototype, \"valueField\", null);\nAutoCompleteFilterCellComponent = __decorate([ __metadata(\"design:paramtypes\", [FilterService,\n ColumnComponent,\n LocalizationService])\n], AutoCompleteFilterCellComponent);\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.ɵfac = function BooleanFilterComponent_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nBooleanFilterComponent.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: BooleanFilterComponent, hostVars: 2, hostBindings: function BooleanFilterComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-filtercell-boolean\", ctx.hostClasses);\n } }, inputs: { column: \"column\", filter: \"filter\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n HostBinding('class.k-filtercell-boolean'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], BooleanFilterComponent.prototype, \"hostClasses\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnComponent)\n], BooleanFilterComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], BooleanFilterComponent.prototype, \"filter\", void 0);\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 */\nlet BooleanFilterCellComponent = class 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 /**\n * @hidden\n */\n get columnLabel() {\n const localizationMsg = this.localization.get('filterInputLabel') || '';\n const columnName = this.column.title || this.column.field;\n return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);\n }\n};\nBooleanFilterCellComponent.ɵfac = function BooleanFilterCellComponent_Factory(t) { return new (t || BooleanFilterCellComponent)(ɵngcc0.ɵɵdirectiveInject(FilterService), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nBooleanFilterCellComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: BooleanFilterCellComponent, selectors: [[\"kendo-grid-boolean-filter-cell\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 2, vars: 11, consts: [[3, \"column\", \"filter\", \"showOperators\", \"defaultOperator\"], [\"kendoFilterInput\", \"\", \"kendoGridFocusable\", \"\", \"textField\", \"text\", \"valueField\", \"value\", 3, \"columnLabel\", \"defaultItem\", \"data\", \"popupSettings\", \"valuePrimitive\", \"value\"]], template: function BooleanFilterCellComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-grid-filter-wrapper-cell\", 0);\n ɵngcc0.ɵɵelement(1, \"kendo-dropdownlist\", 1);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"column\", ctx.column)(\"filter\", ctx.filter)(\"showOperators\", false)(\"defaultOperator\", ctx.operator);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"columnLabel\", ctx.columnLabel)(\"defaultItem\", ctx.defaultItem)(\"data\", ctx.items)(\"popupSettings\", ɵngcc0.ɵɵpureFunction0(10, _c152))(\"valuePrimitive\", true)(\"value\", ctx.currentFilter == null ? null : ctx.currentFilter.value);\n } }, directives: [FilterCellWrapperComponent, ɵngcc8.DropDownListComponent, FilterInputDirective, FocusableDirective], encapsulation: 2 });\nBooleanFilterCellComponent = __decorate([ __metadata(\"design:paramtypes\", [FilterService,\n LocalizationService,\n ChangeDetectorRef])\n], BooleanFilterCellComponent);\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.ɵfac = function DateFilterComponent_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nDateFilterComponent.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DateFilterComponent, inputs: { operator: \"operator\", activeView: \"activeView\", bottomView: \"bottomView\", topView: \"topView\", weekNumber: \"weekNumber\", format: \"format\", column: \"column\", filter: \"filter\", min: \"min\", max: \"max\", formatPlaceholder: \"formatPlaceholder\", placeholder: \"placeholder\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnComponent)\n], DateFilterComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DateFilterComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateFilterComponent.prototype, \"operator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], DateFilterComponent.prototype, \"format\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], DateFilterComponent.prototype, \"min\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], DateFilterComponent.prototype, \"max\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DateFilterComponent.prototype, \"formatPlaceholder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateFilterComponent.prototype, \"placeholder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateFilterComponent.prototype, \"activeView\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateFilterComponent.prototype, \"bottomView\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateFilterComponent.prototype, \"topView\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DateFilterComponent.prototype, \"weekNumber\", void 0);\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 */\nlet DateFilterCellComponent = class 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 /**\n * @hidden\n */\n messageFor(key) {\n return this.localization.get(key);\n }\n /**\n * @hidden\n */\n get columnLabel() {\n const localizationMsg = this.localization.get('filterInputLabel') || '';\n const columnName = this.column.title || this.column.field;\n return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);\n }\n};\nDateFilterCellComponent.ɵfac = function DateFilterCellComponent_Factory(t) { return new (t || DateFilterCellComponent)(ɵngcc0.ɵɵdirectiveInject(FilterService), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nDateFilterCellComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DateFilterCellComponent, selectors: [[\"kendo-grid-date-filter-cell\"]], inputs: { showOperators: \"showOperators\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 3, vars: 18, consts: [[3, \"column\", \"filter\", \"operators\", \"defaultOperator\", \"showOperators\"], [\"kendoFilterInput\", \"\", \"kendoGridFocusable\", \"\", 3, \"columnLabel\", \"value\", \"format\", \"formatPlaceholder\", \"placeholder\", \"activeView\", \"bottomView\", \"topView\", \"min\", \"max\", \"weekNumber\"], [3, \"toggle\", \"today\"]], template: function DateFilterCellComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-grid-filter-wrapper-cell\", 0)(1, \"kendo-datepicker\", 1);\n ɵngcc0.ɵɵelement(2, \"kendo-datepicker-messages\", 2);\n ɵngcc0.ɵɵelementEnd()();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"column\", ctx.column)(\"filter\", ctx.filter)(\"operators\", ctx.operators)(\"defaultOperator\", ctx.operator)(\"showOperators\", ctx.showOperators);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"columnLabel\", ctx.columnLabel)(\"value\", ctx.currentFilter == null ? null : ctx.currentFilter.value)(\"format\", ctx.format)(\"formatPlaceholder\", ctx.formatPlaceholder)(\"placeholder\", ctx.placeholder)(\"activeView\", ctx.activeView)(\"bottomView\", ctx.bottomView)(\"topView\", ctx.topView)(\"min\", ctx.min)(\"max\", ctx.max)(\"weekNumber\", ctx.weekNumber);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"toggle\", ctx.messageFor(\"filterDateToggle\"))(\"today\", ctx.messageFor(\"filterDateToday\"));\n } }, directives: [FilterCellWrapperComponent, ɵngcc9.DatePickerComponent, FilterInputDirective, FocusableDirective, ɵngcc9.DatePickerCustomMessagesComponent], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DateFilterCellComponent.prototype, \"showOperators\", void 0);\nDateFilterCellComponent = __decorate([ __metadata(\"design:paramtypes\", [FilterService,\n LocalizationService])\n], DateFilterCellComponent);\n\n/**\n * @hidden\n */\nlet ColGroupComponent = class ColGroupComponent {\n /**\n * @hidden\n */\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.ɵfac = function ColGroupComponent_Factory(t) { return new (t || ColGroupComponent)(); };\nColGroupComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColGroupComponent, selectors: [[\"\", \"kendoGridColGroup\", \"\"]], inputs: { columns: \"columns\", groups: \"groups\", detailTemplate: \"detailTemplate\" }, attrs: _c153, decls: 1, vars: 1, consts: [[3, \"ngIf\"], [3, \"k-group-col\", 4, \"ngFor\", \"ngForOf\"], [3, \"k-hierarchy-col\", 4, \"ngIf\"], [3, \"width\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"]], template: function ColGroupComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ColGroupComponent_ng_template_0_Template, 3, 4, \"ng-template\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", true);\n } }, directives: [ɵngcc5.NgIf, ɵngcc5.NgForOf], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], ColGroupComponent.prototype, \"columns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], ColGroupComponent.prototype, \"groups\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", DetailTemplateDirective)\n], ColGroupComponent.prototype, \"detailTemplate\", void 0);\n\n/**\n * @hidden\n */\nlet LoadingComponent = class 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.ɵfac = function LoadingComponent_Factory(t) { return new (t || LoadingComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nLoadingComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: LoadingComponent, selectors: [[\"\", \"kendoGridLoading\", \"\"]], hostVars: 2, hostBindings: function LoadingComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-loading-mask\", ctx.hostClass);\n } }, inputs: { loadingTemplate: \"loadingTemplate\" }, attrs: _c154, decls: 2, vars: 2, consts: [[4, \"ngIf\"], [1, \"k-loading-text\"], [1, \"k-loading-image\"], [1, \"k-loading-color\"], [3, \"ngTemplateOutlet\"]], template: function LoadingComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, LoadingComponent_ng_container_0_Template, 5, 1, \"ng-container\", 0);\n ɵngcc0.ɵɵtemplate(1, LoadingComponent_1_Template, 1, 1, null, 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.loadingTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.loadingTemplate);\n } }, directives: [ɵngcc5.NgIf, ɵngcc5.NgTemplateOutlet], encapsulation: 2 });\n__decorate([\n HostBinding('class.k-loading-mask'),\n __metadata(\"design:type\", Boolean)\n], LoadingComponent.prototype, \"hostClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", LoadingTemplateDirective)\n], LoadingComponent.prototype, \"loadingTemplate\", void 0);\nLoadingComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], LoadingComponent);\n\n/**\n * @hidden\n */\nlet ResizableContainerDirective = class 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.ɵfac = function ResizableContainerDirective_Factory(t) { return new (t || ResizableContainerDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ResizeService), ɵngcc0.ɵɵdirectiveInject(GridComponent, 8)); };\nResizableContainerDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ResizableContainerDirective, selectors: [[\"\", \"kendoGridResizableContainer\", \"\"]], inputs: { lockedWidth: \"lockedWidth\", kendoGridResizableContainer: \"kendoGridResizableContainer\" } });\n__decorate([\n Input('lockedWidth'),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], ResizableContainerDirective.prototype, \"lockedWidth\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], ResizableContainerDirective.prototype, \"kendoGridResizableContainer\", null);\nResizableContainerDirective = __decorate([ __param(3, Optional()),\n __metadata(\"design:paramtypes\", [ElementRef,\n Renderer2,\n ResizeService,\n GridComponent])\n], ResizableContainerDirective);\n\n/**\n * @hidden\n */\nlet TemplateContextDirective = class 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.ɵfac = function TemplateContextDirective_Factory(t) { return new (t || TemplateContextDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef)); };\nTemplateContextDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: TemplateContextDirective, selectors: [[\"\", \"templateContext\", \"\"]], inputs: { templateContext: \"templateContext\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], TemplateContextDirective.prototype, \"templateContext\", null);\nTemplateContextDirective = __decorate([ __metadata(\"design:paramtypes\", [ViewContainerRef])\n], TemplateContextDirective);\n\n/**\n * @hidden\n */\nlet FocusGroup = class 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.ɵfac = function FocusGroup_Factory(t) { return new (t || FocusGroup)(ɵngcc0.ɵɵinject(FocusRoot)); };\nFocusGroup.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: FocusGroup, factory: function (t) { return FocusGroup.ɵfac(t); } });\nFocusGroup = __decorate([ __metadata(\"design:paramtypes\", [FocusRoot])\n], FocusGroup);\n\nlet id = 0;\nfunction nextId() {\n return id++;\n}\n/**\n * @hidden\n */\nlet LogicalCellDirective = class 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 if (this.headerLabelText) {\n el.setAttribute('aria-label', '');\n }\n }\n else {\n this.renderer.removeClass(el, 'k-state-focused');\n if (this.headerLabelText) {\n el.setAttribute('aria-label', this.headerLabelText);\n }\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.ɵfac = function LogicalCellDirective_Factory(t) { return new (t || LogicalCellDirective)(ɵngcc0.ɵɵdirectiveInject(FocusGroup), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ColumnInfoService), ɵngcc0.ɵɵdirectiveInject(IdService), ɵngcc0.ɵɵdirectiveInject(NavigationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(CELL_CONTEXT, 8)); };\nLogicalCellDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LogicalCellDirective, selectors: [[\"\", \"kendoGridLogicalCell\", \"\"]], hostVars: 2, hostBindings: function LogicalCellDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"id\", ctx.id)(\"aria-colindex\", ctx.ariaColIndex);\n } }, inputs: { logicalSlaveCell: \"logicalSlaveCell\", colSpan: \"colSpan\", rowSpan: \"rowSpan\", dataRowIndex: \"dataRowIndex\", detailExpandCell: \"detailExpandCell\", logicalColIndex: \"logicalColIndex\", logicalRowIndex: \"logicalRowIndex\", colIndex: \"colIndex\", groupItem: \"groupItem\", dataItem: \"dataItem\", headerLabelText: \"headerLabelText\" }, features: [ɵngcc0.ɵɵProvidersFeature([{\n provide: FocusGroup,\n deps: [FocusRoot],\n useClass: FocusGroup\n }]), ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], LogicalCellDirective.prototype, \"logicalColIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], LogicalCellDirective.prototype, \"logicalRowIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], LogicalCellDirective.prototype, \"logicalSlaveCell\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], LogicalCellDirective.prototype, \"colIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], LogicalCellDirective.prototype, \"colSpan\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], LogicalCellDirective.prototype, \"rowSpan\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], LogicalCellDirective.prototype, \"groupItem\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], LogicalCellDirective.prototype, \"dataRowIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], LogicalCellDirective.prototype, \"dataItem\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], LogicalCellDirective.prototype, \"detailExpandCell\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], LogicalCellDirective.prototype, \"headerLabelText\", void 0);\n__decorate([\n HostBinding('attr.id'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], LogicalCellDirective.prototype, \"id\", null);\n__decorate([\n HostBinding('attr.aria-colindex'),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [])\n], LogicalCellDirective.prototype, \"ariaColIndex\", null);\nLogicalCellDirective = __decorate([ __param(7, Optional()), __param(7, Inject(CELL_CONTEXT)),\n __metadata(\"design:paramtypes\", [FocusGroup,\n ElementRef,\n ColumnInfoService,\n IdService,\n NavigationService,\n Renderer2,\n NgZone, Object])\n], LogicalCellDirective);\n\nlet id$1 = 0;\nfunction nextId$1() {\n return id$1++;\n}\n/**\n * @hidden\n */\nlet LogicalRowDirective = class 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 return this.logicalRowIndex + 1;\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.ɵfac = function LogicalRowDirective_Factory(t) { return new (t || LogicalRowDirective)(ɵngcc0.ɵɵdirectiveInject(IdService), ɵngcc0.ɵɵdirectiveInject(NavigationService)); };\nLogicalRowDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LogicalRowDirective, selectors: [[\"\", \"kendoGridLogicalRow\", \"\"]], hostVars: 3, hostBindings: function LogicalRowDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"role\", ctx.hostRole)(\"aria-rowindex\", ctx.ariaRowIndex)(\"aria-owns\", ctx.ariaOwns);\n } }, inputs: { logicalSlaveRow: \"logicalSlaveRow\", logicalSlaveCellsCount: \"logicalSlaveCellsCount\", dataRowIndex: \"dataRowIndex\", logicalRowIndex: \"logicalRowIndex\", logicalCellsCount: \"logicalCellsCount\", dataItem: \"dataItem\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], LogicalRowDirective.prototype, \"logicalRowIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], LogicalRowDirective.prototype, \"logicalSlaveRow\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], LogicalRowDirective.prototype, \"logicalCellsCount\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], LogicalRowDirective.prototype, \"logicalSlaveCellsCount\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], LogicalRowDirective.prototype, \"dataRowIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], LogicalRowDirective.prototype, \"dataItem\", void 0);\n__decorate([\n HostBinding('attr.role'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], LogicalRowDirective.prototype, \"hostRole\", null);\n__decorate([\n HostBinding('attr.aria-rowindex'),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [])\n], LogicalRowDirective.prototype, \"ariaRowIndex\", null);\n__decorate([\n HostBinding('attr.aria-owns'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], LogicalRowDirective.prototype, \"ariaOwns\", null);\nLogicalRowDirective = __decorate([ __metadata(\"design:paramtypes\", [IdService,\n NavigationService])\n], LogicalRowDirective);\n\nconst FORMAT_REGEX = /\\{\\d+:?/;\n/**\n * @hidden\n */\nlet FieldAccessorPipe = class 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.ɵfac = function FieldAccessorPipe_Factory(t) { return new (t || FieldAccessorPipe)(ɵngcc0.ɵɵdirectiveInject(ɵngcc10.IntlService, 16)); };\nFieldAccessorPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"valueOf\", type: FieldAccessorPipe, pure: false });\nFieldAccessorPipe = __decorate([ __metadata(\"design:paramtypes\", [IntlService])\n], FieldAccessorPipe);\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 */\nlet TableDirective = class 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.ɵfac = function TableDirective_Factory(t) { return new (t || TableDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ColumnResizingService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nTableDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: TableDirective, selectors: [[\"table\"]], hostVars: 2, hostBindings: function TableDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"min-width\", ctx.minWidth);\n } }, inputs: { locked: \"locked\", virtualColumns: \"virtualColumns\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TableDirective.prototype, \"locked\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TableDirective.prototype, \"virtualColumns\", void 0);\n__decorate([\n HostBinding('style.min-width'),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [])\n], TableDirective.prototype, \"minWidth\", null);\nTableDirective = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n Renderer2,\n ColumnResizingService,\n NgZone,\n ChangeDetectorRef])\n], TableDirective);\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 */\nlet SharedModule = class SharedModule {\n static exports() {\n return [\n ColumnComponent,\n SpanColumnComponent,\n ColumnGroupComponent,\n FooterTemplateDirective,\n DetailTemplateDirective,\n FocusableDirective\n ];\n }\n};\nSharedModule.ɵfac = function SharedModule_Factory(t) { return new (t || SharedModule)(); };\nSharedModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: SharedModule });\nSharedModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule], DraggableModule, EventsModule] });\n\nvar ContainsFilterOperatorComponent_1;\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 */\nlet ContainsFilterOperatorComponent = ContainsFilterOperatorComponent_1 = class ContainsFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"contains\", localization); }\n};\nContainsFilterOperatorComponent.ɵfac = function ContainsFilterOperatorComponent_Factory(t) { return new (t || ContainsFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nContainsFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ContainsFilterOperatorComponent, selectors: [[\"kendo-filter-contains-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => ContainsFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function ContainsFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nContainsFilterOperatorComponent = ContainsFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], ContainsFilterOperatorComponent);\n\nvar DoesNotContainFilterOperatorComponent_1;\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 */\nlet DoesNotContainFilterOperatorComponent = DoesNotContainFilterOperatorComponent_1 = class DoesNotContainFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"doesnotcontain\", localization); }\n};\nDoesNotContainFilterOperatorComponent.ɵfac = function DoesNotContainFilterOperatorComponent_Factory(t) { return new (t || DoesNotContainFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nDoesNotContainFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DoesNotContainFilterOperatorComponent, selectors: [[\"kendo-filter-not-contains-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => DoesNotContainFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DoesNotContainFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nDoesNotContainFilterOperatorComponent = DoesNotContainFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], DoesNotContainFilterOperatorComponent);\n\nvar EndsWithFilterOperatorComponent_1;\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 */\nlet EndsWithFilterOperatorComponent = EndsWithFilterOperatorComponent_1 = class EndsWithFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"endswith\", localization); }\n};\nEndsWithFilterOperatorComponent.ɵfac = function EndsWithFilterOperatorComponent_Factory(t) { return new (t || EndsWithFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nEndsWithFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: EndsWithFilterOperatorComponent, selectors: [[\"kendo-filter-endswith-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => EndsWithFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function EndsWithFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nEndsWithFilterOperatorComponent = EndsWithFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], EndsWithFilterOperatorComponent);\n\nvar EqualFilterOperatorComponent_1;\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 */\nlet EqualFilterOperatorComponent = EqualFilterOperatorComponent_1 = class EqualFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"eq\", localization); }\n};\nEqualFilterOperatorComponent.ɵfac = function EqualFilterOperatorComponent_Factory(t) { return new (t || EqualFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nEqualFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: EqualFilterOperatorComponent, selectors: [[\"kendo-filter-eq-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => EqualFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function EqualFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nEqualFilterOperatorComponent = EqualFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], EqualFilterOperatorComponent);\n\nvar IsEmptyFilterOperatorComponent_1;\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 */\nlet IsEmptyFilterOperatorComponent = IsEmptyFilterOperatorComponent_1 = class IsEmptyFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"isempty\", localization); }\n};\nIsEmptyFilterOperatorComponent.ɵfac = function IsEmptyFilterOperatorComponent_Factory(t) { return new (t || IsEmptyFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nIsEmptyFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: IsEmptyFilterOperatorComponent, selectors: [[\"kendo-filter-isempty-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => IsEmptyFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function IsEmptyFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nIsEmptyFilterOperatorComponent = IsEmptyFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], IsEmptyFilterOperatorComponent);\n\nvar IsNotEmptyFilterOperatorComponent_1;\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 */\nlet IsNotEmptyFilterOperatorComponent = IsNotEmptyFilterOperatorComponent_1 = class IsNotEmptyFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"isnotempty\", localization); }\n};\nIsNotEmptyFilterOperatorComponent.ɵfac = function IsNotEmptyFilterOperatorComponent_Factory(t) { return new (t || IsNotEmptyFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nIsNotEmptyFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: IsNotEmptyFilterOperatorComponent, selectors: [[\"kendo-filter-isnotempty-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => IsNotEmptyFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function IsNotEmptyFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nIsNotEmptyFilterOperatorComponent = IsNotEmptyFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], IsNotEmptyFilterOperatorComponent);\n\nvar IsNotNullFilterOperatorComponent_1;\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 */\nlet IsNotNullFilterOperatorComponent = IsNotNullFilterOperatorComponent_1 = class IsNotNullFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"isnotnull\", localization); }\n};\nIsNotNullFilterOperatorComponent.ɵfac = function IsNotNullFilterOperatorComponent_Factory(t) { return new (t || IsNotNullFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nIsNotNullFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: IsNotNullFilterOperatorComponent, selectors: [[\"kendo-filter-isnotnull-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => IsNotNullFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function IsNotNullFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nIsNotNullFilterOperatorComponent = IsNotNullFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], IsNotNullFilterOperatorComponent);\n\nvar IsNullFilterOperatorComponent_1;\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 */\nlet IsNullFilterOperatorComponent = IsNullFilterOperatorComponent_1 = class IsNullFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"isnull\", localization); }\n};\nIsNullFilterOperatorComponent.ɵfac = function IsNullFilterOperatorComponent_Factory(t) { return new (t || IsNullFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nIsNullFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: IsNullFilterOperatorComponent, selectors: [[\"kendo-filter-isnull-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => IsNullFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function IsNullFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nIsNullFilterOperatorComponent = IsNullFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], IsNullFilterOperatorComponent);\n\nvar NotEqualFilterOperatorComponent_1;\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 */\nlet NotEqualFilterOperatorComponent = NotEqualFilterOperatorComponent_1 = class NotEqualFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"neq\", localization); }\n};\nNotEqualFilterOperatorComponent.ɵfac = function NotEqualFilterOperatorComponent_Factory(t) { return new (t || NotEqualFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nNotEqualFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NotEqualFilterOperatorComponent, selectors: [[\"kendo-filter-neq-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => NotEqualFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function NotEqualFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nNotEqualFilterOperatorComponent = NotEqualFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], NotEqualFilterOperatorComponent);\n\nvar StartsWithFilterOperatorComponent_1;\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 */\nlet StartsWithFilterOperatorComponent = StartsWithFilterOperatorComponent_1 = class StartsWithFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"startswith\", localization); }\n};\nStartsWithFilterOperatorComponent.ɵfac = function StartsWithFilterOperatorComponent_Factory(t) { return new (t || StartsWithFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nStartsWithFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: StartsWithFilterOperatorComponent, selectors: [[\"kendo-filter-startswith-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => StartsWithFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function StartsWithFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nStartsWithFilterOperatorComponent = StartsWithFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], StartsWithFilterOperatorComponent);\n\nvar GreaterFilterOperatorComponent_1;\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 */\nlet GreaterFilterOperatorComponent = GreaterFilterOperatorComponent_1 = class GreaterFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"gt\", localization); }\n};\nGreaterFilterOperatorComponent.ɵfac = function GreaterFilterOperatorComponent_Factory(t) { return new (t || GreaterFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nGreaterFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: GreaterFilterOperatorComponent, selectors: [[\"kendo-filter-gt-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => GreaterFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function GreaterFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nGreaterFilterOperatorComponent = GreaterFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], GreaterFilterOperatorComponent);\n\nvar GreaterOrEqualToFilterOperatorComponent_1;\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 */\nlet GreaterOrEqualToFilterOperatorComponent = GreaterOrEqualToFilterOperatorComponent_1 = class GreaterOrEqualToFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"gte\", localization); }\n};\nGreaterOrEqualToFilterOperatorComponent.ɵfac = function GreaterOrEqualToFilterOperatorComponent_Factory(t) { return new (t || GreaterOrEqualToFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nGreaterOrEqualToFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: GreaterOrEqualToFilterOperatorComponent, selectors: [[\"kendo-filter-gte-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => GreaterOrEqualToFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function GreaterOrEqualToFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nGreaterOrEqualToFilterOperatorComponent = GreaterOrEqualToFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], GreaterOrEqualToFilterOperatorComponent);\n\nvar LessFilterOperatorComponent_1;\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 */\nlet LessFilterOperatorComponent = LessFilterOperatorComponent_1 = class LessFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"lt\", localization); }\n};\nLessFilterOperatorComponent.ɵfac = function LessFilterOperatorComponent_Factory(t) { return new (t || LessFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nLessFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: LessFilterOperatorComponent, selectors: [[\"kendo-filter-lt-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => LessFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function LessFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nLessFilterOperatorComponent = LessFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], LessFilterOperatorComponent);\n\nvar LessOrEqualToFilterOperatorComponent_1;\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 */\nlet LessOrEqualToFilterOperatorComponent = LessOrEqualToFilterOperatorComponent_1 = class LessOrEqualToFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"lte\", localization); }\n};\nLessOrEqualToFilterOperatorComponent.ɵfac = function LessOrEqualToFilterOperatorComponent_Factory(t) { return new (t || LessOrEqualToFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nLessOrEqualToFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: LessOrEqualToFilterOperatorComponent, selectors: [[\"kendo-filter-lte-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => LessOrEqualToFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function LessOrEqualToFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nLessOrEqualToFilterOperatorComponent = LessOrEqualToFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], LessOrEqualToFilterOperatorComponent);\n\nvar AfterFilterOperatorComponent_1;\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 */\nlet AfterFilterOperatorComponent = AfterFilterOperatorComponent_1 = class 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.ɵfac = function AfterFilterOperatorComponent_Factory(t) { return new (t || AfterFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nAfterFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: AfterFilterOperatorComponent, selectors: [[\"kendo-filter-after-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => AfterFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function AfterFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nAfterFilterOperatorComponent = AfterFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], AfterFilterOperatorComponent);\n\nvar AfterEqFilterOperatorComponent_1;\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 */\nlet AfterEqFilterOperatorComponent = AfterEqFilterOperatorComponent_1 = class 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.ɵfac = function AfterEqFilterOperatorComponent_Factory(t) { return new (t || AfterEqFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nAfterEqFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: AfterEqFilterOperatorComponent, selectors: [[\"kendo-filter-after-eq-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => AfterEqFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function AfterEqFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nAfterEqFilterOperatorComponent = AfterEqFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], AfterEqFilterOperatorComponent);\n\nvar BeforeEqFilterOperatorComponent_1;\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 */\nlet BeforeEqFilterOperatorComponent = BeforeEqFilterOperatorComponent_1 = class 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.ɵfac = function BeforeEqFilterOperatorComponent_Factory(t) { return new (t || BeforeEqFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nBeforeEqFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: BeforeEqFilterOperatorComponent, selectors: [[\"kendo-filter-before-eq-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => BeforeEqFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function BeforeEqFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nBeforeEqFilterOperatorComponent = BeforeEqFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], BeforeEqFilterOperatorComponent);\n\nvar BeforeFilterOperatorComponent_1;\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 */\nlet BeforeFilterOperatorComponent = BeforeFilterOperatorComponent_1 = class 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.ɵfac = function BeforeFilterOperatorComponent_Factory(t) { return new (t || BeforeFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nBeforeFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: BeforeFilterOperatorComponent, selectors: [[\"kendo-filter-before-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => BeforeFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function BeforeFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nBeforeFilterOperatorComponent = BeforeFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], BeforeFilterOperatorComponent);\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 */\nlet SharedFilterModule = class SharedFilterModule {\n static exports() {\n return [\n ...FILTER_OPERATORS\n ];\n }\n};\nSharedFilterModule.ɵfac = function SharedFilterModule_Factory(t) { return new (t || SharedFilterModule)(); };\nSharedFilterModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: SharedFilterModule });\nSharedFilterModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[...importedModules], CommonModule,\n ReactiveFormsModule,\n FormsModule,\n DropDownListModule,\n AutoCompleteModule,\n InputsModule,\n DatePickerModule,\n PopupModule, SharedModule] });\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.ɵfac = function FilterHostDirective_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nFilterHostDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: FilterHostDirective, inputs: { column: \"column\", filter: \"filter\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnComponent)\n], FilterHostDirective.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], FilterHostDirective.prototype, \"filter\", void 0);\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 */\nlet FilterCellHostDirective = class 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.ɵfac = function FilterCellHostDirective_Factory(t) { return new (t || FilterCellHostDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ComponentFactoryResolver)); };\nFilterCellHostDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: FilterCellHostDirective, selectors: [[\"\", \"kendoFilterCellHost\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nFilterCellHostDirective = __decorate([ __metadata(\"design:paramtypes\", [ViewContainerRef,\n ComponentFactoryResolver])\n], FilterCellHostDirective);\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 */\nlet RowFilterModule = class 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.ɵfac = function RowFilterModule_Factory(t) { return new (t || RowFilterModule)(); };\nRowFilterModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: RowFilterModule });\nRowFilterModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[SharedFilterModule], SharedFilterModule] });\n\n/**\n * @hidden\n */\nlet PagerInputDirective = class PagerInputDirective {\n constructor(host, renderer) {\n this.host = host;\n this.renderer = renderer;\n }\n ngAfterViewInit() {\n const inputElement = this.host.numericInput.nativeElement;\n this.renderer.addClass(inputElement, 'k-pager-nav');\n }\n};\nPagerInputDirective.ɵfac = function PagerInputDirective_Factory(t) { return new (t || PagerInputDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc6.NumericTextBoxComponent), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nPagerInputDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: PagerInputDirective, selectors: [[\"\", \"kendoGridPagerInput\", \"\"]] });\nPagerInputDirective = __decorate([ __metadata(\"design:paramtypes\", [NumericTextBoxComponent,\n Renderer2])\n], PagerInputDirective);\n\n/**\n * @hidden\n */\nlet PagerDropDownListDirective = class PagerDropDownListDirective {\n constructor(host) {\n this.host = host;\n this.keydownHandler = (e) => {\n if (e.keyCode === Keys.Escape && this.host.isOpen) {\n e.stopPropagation();\n this.host.toggle(false);\n }\n };\n }\n ngAfterViewInit() {\n const wrapperElement = this.host.wrapper.nativeElement;\n wrapperElement.addEventListener('keydown', this.keydownHandler, true);\n }\n ngOnDestroy() {\n this.host.wrapper.nativeElement.removeEventListener('keydown', this.keydownHandler);\n }\n};\nPagerDropDownListDirective.ɵfac = function PagerDropDownListDirective_Factory(t) { return new (t || PagerDropDownListDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc8.DropDownListComponent)); };\nPagerDropDownListDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: PagerDropDownListDirective, selectors: [[\"\", \"kendoGridPagerDropDown\", \"\"]] });\nPagerDropDownListDirective = __decorate([ __metadata(\"design:paramtypes\", [DropDownListComponent])\n], PagerDropDownListDirective);\n\n/**\n * @hidden\n */\nconst normalizeSettings = ({ buttonCount = 10, info = true, type = 'numeric', pageSizes = false, previousNext = true, responsive = true, position = 'bottom' }) => ({\n buttonCount,\n info,\n pageSizes: pageSizes === true ? [5, 10, 20] : pageSizes,\n previousNext,\n type,\n responsive,\n position\n});\n/**\n * @hidden\n */\nconst normalize = (settings) => normalizeSettings(settings === true ? {} : settings);\n\n/**\n * @hidden\n */\nlet PagerComponent = class PagerComponent {\n constructor(pagerContext, navigationService, element, renderer, zone, localizationService, cellContext, focusRoot, focusGroup) {\n this.pagerContext = pagerContext;\n this.navigationService = navigationService;\n this.element = element;\n this.renderer = renderer;\n this.zone = zone;\n this.localizationService = localizationService;\n this.cellContext = cellContext;\n this.focusRoot = focusRoot;\n this.focusGroup = focusGroup;\n this.total = 0;\n this.skip = 1;\n this.pageChange = new EventEmitter();\n this.pagerWrapClass = true;\n this.gridPagerClass = true;\n this.settings = normalize({});\n this.subscriptions = new Subscription();\n this._templateContext = {};\n this._isFocused = false;\n this.resizeHandler = () => {\n const element = this.element.nativeElement;\n if (this.template || !element) {\n return;\n }\n const width = element.offsetWidth;\n if (width < RESPONSIVE_BREAKPOINT_MEDIUM) {\n this.renderer.removeClass(element, 'k-pager-md');\n this.renderer.addClass(element, 'k-pager-sm');\n }\n else if (width >= RESPONSIVE_BREAKPOINT_MEDIUM && width < RESPONSIVE_BREAKPOINT_LARGE) {\n this.renderer.addClass(element, 'k-pager-md');\n this.renderer.removeClass(element, 'k-pager-sm');\n }\n else {\n this.clearResponsiveClasses();\n }\n };\n }\n set options(value) {\n this.settings = normalize(value);\n }\n get isFocused() {\n return this._isFocused;\n }\n get pagerAriaLabel() {\n return this.navigationService.enabled ? this.pagerLabel : undefined;\n }\n /**\n * @hidden\n */\n get pagerLabel() {\n const localizationMsg = this.localizationService.get('pagerLabel') || '';\n return replaceMessagePlaceholder(replaceMessagePlaceholder(localizationMsg, 'currentPage', this.currentPage.toString()), 'totalPages', this.totalPages.toString());\n }\n get focusTrapTabIndex() {\n return this.focusGroup.isActive ? '0' : '-1';\n }\n onFocusIn(event) {\n if (this.navigationService.enabled) {\n const shouldFocusPager = event.target === this.element.nativeElement;\n if (shouldFocusPager) {\n this._isFocused = true;\n this.focusRoot.deactivate();\n }\n else {\n this.focusRoot.activate();\n }\n }\n }\n onFocusOut() {\n if (this.navigationService.enabled) {\n this._isFocused = false;\n }\n }\n onEscape() {\n if (this.navigationService.enabled) {\n this.focusRoot.deactivate();\n this.element.nativeElement.focus();\n }\n }\n onEnter(event) {\n if (this.navigationService.enabled && event.target === this.element.nativeElement) {\n this.focusRoot.activate();\n this.focusFirstElement();\n }\n }\n navigateToPreviousPage(e) {\n if (this.shouldTriggerPageChange(e.target, this.currentPage > 1)) {\n this.pagerContext.prevPage();\n }\n }\n navigateToNextPage(e) {\n if (this.shouldTriggerPageChange(e.target, this.currentPage < this.totalPages)) {\n this.pagerContext.nextPage();\n }\n }\n navigateToFirstPage(e) {\n if (this.shouldTriggerPageChange(e.target, this.currentPage > 1)) {\n this.pagerContext.changePage(0);\n }\n }\n navigateToLastPage(e) {\n if (this.shouldTriggerPageChange(e.target, this.currentPage < this.totalPages)) {\n this.pagerContext.changePage(this.totalPages - 1);\n }\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.subscriptions.add(this.pagerContext.pageChange.subscribe(this.changePage.bind(this)));\n if (this.navigationService.enabled) {\n this.focusRoot.deactivate();\n }\n }\n ngDoCheck() {\n this.updateCellContext();\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 if (changes.template) {\n changes.template.currentValue ? this.clearResponsiveClasses() : this.resizeHandler();\n }\n if (changes.options) {\n this.settings.responsive ? this.resizeHandler() : this.clearResponsiveClasses();\n }\n }\n ngOnDestroy() {\n if (this.subscriptions) {\n this.subscriptions.unsubscribe();\n }\n }\n changePage(event) {\n this.pageChange.emit(event);\n }\n onInnerFocusIn(event, position) {\n this.zone.onStable.pipe(take(1)).subscribe(() => {\n if (position === 'start') {\n if (event.relatedTarget === this.element.nativeElement) {\n this.focusFirstElement();\n }\n else {\n this.focusLastElement();\n }\n }\n else {\n this.focusFirstElement();\n }\n });\n }\n clearResponsiveClasses() {\n const element = this.element.nativeElement;\n this.renderer.removeClass(element, 'k-pager-sm');\n this.renderer.removeClass(element, 'k-pager-md');\n }\n shouldTriggerPageChange(target, condition) {\n return this.navigationService.enabled &&\n target === this.element.nativeElement &&\n condition;\n }\n focusFirstElement() {\n const first = findFocusableChild(this.element.nativeElement, true);\n if (first) {\n first.focus();\n }\n }\n focusLastElement() {\n const last = findLastFocusableChild(this.element.nativeElement, true);\n if (last) {\n last.focus();\n }\n }\n updateCellContext() {\n if (this.cellContext) {\n this.cellContext.focusGroup = this.focusGroup;\n }\n }\n};\nPagerComponent.ɵfac = function PagerComponent_Factory(t) { return new (t || PagerComponent)(ɵngcc0.ɵɵdirectiveInject(PagerContextService), ɵngcc0.ɵɵdirectiveInject(NavigationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(CELL_CONTEXT, 8), ɵngcc0.ɵɵdirectiveInject(FocusRoot), ɵngcc0.ɵɵdirectiveInject(FocusGroup)); };\nPagerComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PagerComponent, selectors: [[\"kendo-pager\"]], hostVars: 7, hostBindings: function PagerComponent_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"focusin\", function PagerComponent_focusin_HostBindingHandler($event) { return ctx.onFocusIn($event); })(\"focusout\", function PagerComponent_focusout_HostBindingHandler() { return ctx.onFocusOut(); })(\"keydown.escape\", function PagerComponent_keydown_escape_HostBindingHandler() { return ctx.onEscape(); })(\"keydown.enter\", function PagerComponent_keydown_enter_HostBindingHandler($event) { return ctx.onEnter($event); })(\"keydown.arrowleft\", function PagerComponent_keydown_arrowleft_HostBindingHandler($event) { return ctx.navigateToPreviousPage($event); })(\"keydown.pageup\", function PagerComponent_keydown_pageup_HostBindingHandler($event) { return ctx.navigateToPreviousPage($event); })(\"keydown.arrowright\", function PagerComponent_keydown_arrowright_HostBindingHandler($event) { return ctx.navigateToNextPage($event); })(\"keydown.pagedown\", function PagerComponent_keydown_pagedown_HostBindingHandler($event) { return ctx.navigateToNextPage($event); })(\"keydown.home\", function PagerComponent_keydown_home_HostBindingHandler($event) { return ctx.navigateToFirstPage($event); })(\"keydown.end\", function PagerComponent_keydown_end_HostBindingHandler($event) { return ctx.navigateToLastPage($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx.pagerAriaLabel);\n ɵngcc0.ɵɵclassProp(\"k-pager-wrap\", ctx.pagerWrapClass)(\"k-grid-pager\", ctx.gridPagerClass)(\"k-state-focused\", ctx.isFocused);\n } }, inputs: { total: \"total\", skip: \"skip\", options: \"options\", pageSize: \"pageSize\", template: \"template\" }, outputs: { pageChange: \"pageChange\" }, features: [ɵngcc0.ɵɵProvidersFeature([{\n provide: FOCUS_ROOT_ACTIVE,\n useValue: true\n }, {\n provide: FocusRoot,\n deps: [FOCUS_ROOT_ACTIVE],\n useClass: FocusRoot\n }, {\n provide: FocusGroup,\n deps: [FocusRoot],\n useClass: FocusGroup\n }]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 5, vars: 5, consts: [[\"class\", \"k-sr-only\", 3, \"tabindex\", \"focusin\", 4, \"ngIf\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\", 4, \"ngIf\"], [4, \"ngIf\"], [3, \"resize\", 4, \"ngIf\"], [1, \"k-sr-only\", 3, \"tabindex\", \"focusin\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [3, \"buttonCount\", 4, \"ngIf\"], [3, \"pageSizes\", 4, \"ngIf\"], [3, \"buttonCount\"], [3, \"pageSizes\"], [\"pageSizes\", \"\"], [3, \"resize\"]], template: function PagerComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, PagerComponent_div_0_Template, 1, 2, \"div\", 0);\n ɵngcc0.ɵɵtemplate(1, PagerComponent_ng_container_1_Template, 1, 2, \"ng-container\", 1);\n ɵngcc0.ɵɵtemplate(2, PagerComponent_ng_container_2_Template, 7, 6, \"ng-container\", 2);\n ɵngcc0.ɵɵtemplate(3, PagerComponent_div_3_Template, 1, 2, \"div\", 0);\n ɵngcc0.ɵɵtemplate(4, PagerComponent_kendo_resize_sensor_4_Template, 1, 0, \"kendo-resize-sensor\", 3);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.navigationService.enabled);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.template == null ? null : ctx.template.templateRef);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !(ctx.template == null ? null : ctx.template.templateRef));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.navigationService.enabled);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.settings.responsive);\n } }, directives: function () { return [ɵngcc5.NgIf, ɵngcc5.NgTemplateOutlet, PagerPrevButtonsComponent, PagerNumericButtonsComponent, PagerInputComponent, PagerNextButtonsComponent, PagerInfoComponent, PagerPageSizesComponent, ɵngcc2.ResizeSensorComponent]; }, encapsulation: 2 });\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\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], PagerComponent.prototype, \"options\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", PagerTemplateDirective)\n], PagerComponent.prototype, \"template\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], PagerComponent.prototype, \"pageChange\", 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-grid-pager'),\n __metadata(\"design:type\", Boolean)\n], PagerComponent.prototype, \"gridPagerClass\", void 0);\n__decorate([\n HostBinding('class.k-state-focused'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], PagerComponent.prototype, \"isFocused\", null);\n__decorate([\n HostBinding('attr.aria-label'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], PagerComponent.prototype, \"pagerAriaLabel\", null);\n__decorate([\n HostListener('focusin', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], PagerComponent.prototype, \"onFocusIn\", null);\n__decorate([\n HostListener('focusout'),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], PagerComponent.prototype, \"onFocusOut\", null);\n__decorate([\n HostListener('keydown.escape'),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], PagerComponent.prototype, \"onEscape\", null);\n__decorate([\n HostListener('keydown.enter', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], PagerComponent.prototype, \"onEnter\", null);\n__decorate([\n HostListener('keydown.arrowleft', ['$event']),\n HostListener('keydown.pageup', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], PagerComponent.prototype, \"navigateToPreviousPage\", null);\n__decorate([\n HostListener('keydown.arrowright', ['$event']),\n HostListener('keydown.pagedown', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], PagerComponent.prototype, \"navigateToNextPage\", null);\n__decorate([\n HostListener('keydown.home', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], PagerComponent.prototype, \"navigateToFirstPage\", null);\n__decorate([\n HostListener('keydown.end', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], PagerComponent.prototype, \"navigateToLastPage\", null);\nPagerComponent = __decorate([ __param(6, Optional()), __param(6, Inject(CELL_CONTEXT)),\n __metadata(\"design:paramtypes\", [PagerContextService,\n NavigationService,\n ElementRef,\n Renderer2,\n NgZone,\n LocalizationService, Object, FocusRoot,\n FocusGroup])\n], PagerComponent);\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}\nPagerElementComponent.ɵfac = function PagerElementComponent_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nPagerElementComponent.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: PagerElementComponent });\n\n/**\n * Displays buttons for navigating to the first and to the previous page ([see example]({% slug paging_grid %}#toc-pager-templates)).\n */\nlet PagerPrevButtonsComponent = class PagerPrevButtonsComponent extends PagerElementComponent {\n constructor(localization, pagerContext, cd, navigationService) {\n super(localization, pagerContext, cd);\n this.navigationService = navigationService;\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.ɵfac = function PagerPrevButtonsComponent_Factory(t) { return new (t || PagerPrevButtonsComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(PagerContextService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(NavigationService)); };\nPagerPrevButtonsComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PagerPrevButtonsComponent, selectors: [[\"kendo-pager-prev-buttons\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 4, vars: 16, consts: [[\"role\", \"button\", 3, \"kendoGridFocusable\", \"title\", \"ngClass\", \"click\", \"keydown.enter\"], [\"role\", \"note\", 3, \"ngClass\"]], template: function PagerPrevButtonsComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 0);\n ɵngcc0.ɵɵlistener(\"click\", function PagerPrevButtonsComponent_Template_span_click_0_listener() { return ctx.currentPage !== 1 ? ctx.changePage(0) : false; })(\"keydown.enter\", function PagerPrevButtonsComponent_Template_span_keydown_enter_0_listener() { return ctx.currentPage !== 1 ? ctx.changePage(0) : false; });\n ɵngcc0.ɵɵelement(1, \"span\", 1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(2, \"span\", 0);\n ɵngcc0.ɵɵlistener(\"click\", function PagerPrevButtonsComponent_Template_span_click_2_listener() { return ctx.currentPage !== 1 ? ctx.changePage(ctx.currentPage - 2) : false; })(\"keydown.enter\", function PagerPrevButtonsComponent_Template_span_keydown_enter_2_listener() { return ctx.currentPage !== 1 ? ctx.changePage(ctx.currentPage - 2) : false; });\n ɵngcc0.ɵɵelement(3, \"span\", 1);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"kendoGridFocusable\", !ctx.disabled)(\"title\", ctx.textFor(\"pagerFirstPage\"))(\"ngClass\", ɵngcc0.ɵɵpureFunction1(10, _c155, ctx.disabled));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction0(12, _c156));\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx.textFor(\"pagerFirstPage\"));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"kendoGridFocusable\", !ctx.disabled)(\"title\", ctx.textFor(\"pagerPreviousPage\"))(\"ngClass\", ɵngcc0.ɵɵpureFunction1(13, _c157, ctx.disabled));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction0(15, _c158));\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx.textFor(\"pagerPreviousPage\"));\n } }, directives: [FocusableDirective, ɵngcc5.NgClass], encapsulation: 2, changeDetection: 0 });\nPagerPrevButtonsComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService,\n PagerContextService,\n ChangeDetectorRef,\n NavigationService])\n], PagerPrevButtonsComponent);\n\n/**\n * Displays buttons for navigating to the next and to the last page ([see example]({% slug paging_grid %}#toc-pager-template)).\n */\nlet PagerNextButtonsComponent = class PagerNextButtonsComponent extends PagerElementComponent {\n constructor(localization, pagerContext, cd, navigationService) {\n super(localization, pagerContext, cd);\n this.navigationService = navigationService;\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.ɵfac = function PagerNextButtonsComponent_Factory(t) { return new (t || PagerNextButtonsComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(PagerContextService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(NavigationService)); };\nPagerNextButtonsComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PagerNextButtonsComponent, selectors: [[\"kendo-pager-next-buttons\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 4, vars: 16, consts: [[\"tabindex\", \"0\", \"role\", \"button\", 3, \"kendoGridFocusable\", \"title\", \"ngClass\", \"click\", \"keydown.enter\"], [\"role\", \"note\", 3, \"ngClass\"]], template: function PagerNextButtonsComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 0);\n ɵngcc0.ɵɵlistener(\"click\", function PagerNextButtonsComponent_Template_span_click_0_listener() { return ctx.currentPage !== ctx.totalPages ? ctx.changePage(ctx.currentPage) : false; })(\"keydown.enter\", function PagerNextButtonsComponent_Template_span_keydown_enter_0_listener() { return ctx.currentPage !== ctx.totalPages ? ctx.changePage(ctx.currentPage) : false; });\n ɵngcc0.ɵɵelement(1, \"span\", 1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(2, \"span\", 0);\n ɵngcc0.ɵɵlistener(\"click\", function PagerNextButtonsComponent_Template_span_click_2_listener() { return ctx.currentPage !== ctx.totalPages ? ctx.changePage(ctx.totalPages - 1) : false; })(\"keydown.enter\", function PagerNextButtonsComponent_Template_span_keydown_enter_2_listener() { return ctx.currentPage !== ctx.totalPages ? ctx.changePage(ctx.totalPages - 1) : false; });\n ɵngcc0.ɵɵelement(3, \"span\", 1);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"kendoGridFocusable\", !ctx.disabled)(\"title\", ctx.textFor(\"pagerNextPage\"))(\"ngClass\", ɵngcc0.ɵɵpureFunction1(10, _c157, ctx.disabled));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction0(12, _c159));\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx.textFor(\"pagerNextPage\"));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"kendoGridFocusable\", !ctx.disabled)(\"title\", ctx.textFor(\"pagerLastPage\"))(\"ngClass\", ɵngcc0.ɵɵpureFunction1(13, _c160, ctx.disabled));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction0(15, _c161));\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx.textFor(\"pagerLastPage\"));\n } }, directives: [FocusableDirective, ɵngcc5.NgClass], encapsulation: 2, changeDetection: 0 });\nPagerNextButtonsComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService,\n PagerContextService,\n ChangeDetectorRef,\n NavigationService])\n], PagerNextButtonsComponent);\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('pagerPage');\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};\nPagerNumericButtonsComponent.ɵfac = function PagerNumericButtonsComponent_Factory(t) { return new (t || PagerNumericButtonsComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(PagerContextService)); };\nPagerNumericButtonsComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PagerNumericButtonsComponent, selectors: [[\"kendo-pager-numeric-buttons\"]], hostVars: 2, hostBindings: function PagerNumericButtonsComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-pager-numbers-wrap\", ctx.numbersWrapClass);\n } }, inputs: { buttonCount: \"buttonCount\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 8, vars: 9, consts: [[\"kendoGridFocusable\", \"\", \"tabindex\", \"0\", 1, \"k-dropdownlist\", \"k-pager-nav\", 3, \"value\", \"change\"], [\"class\", \"k-link\", \"value\", \"previousButtons\", 4, \"ngIf\"], [3, \"value\", \"ngClass\", 4, \"ngFor\", \"ngForOf\"], [\"value\", \"nextButtons\", \"class\", \"k-link\", 4, \"ngIf\"], [3, \"ngClass\"], [4, \"ngIf\"], [4, \"ngFor\", \"ngForOf\"], [\"value\", \"previousButtons\", 1, \"k-link\"], [3, \"value\", \"ngClass\"], [\"value\", \"nextButtons\", 1, \"k-link\"], [\"kendoGridFocusable\", \"\", \"tabindex\", \"0\", \"role\", \"button\", 1, \"k-link\", \"k-pager-nav\", 3, \"click\", \"keydown.enter\"], [\"kendoGridFocusable\", \"\", \"tabindex\", \"0\", \"role\", \"button\", 3, \"ngClass\", \"click\", \"keydown.enter\"]], template: function PagerNumericButtonsComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"select\", 0);\n ɵngcc0.ɵɵlistener(\"change\", function PagerNumericButtonsComponent_Template_select_change_0_listener($event) { return ctx.onSelectChange($event); });\n ɵngcc0.ɵɵtemplate(1, PagerNumericButtonsComponent_option_1_Template, 2, 1, \"option\", 1);\n ɵngcc0.ɵɵtemplate(2, PagerNumericButtonsComponent_option_2_Template, 2, 7, \"option\", 2);\n ɵngcc0.ɵɵtemplate(3, PagerNumericButtonsComponent_option_3_Template, 2, 1, \"option\", 3);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(4, \"ul\", 4);\n ɵngcc0.ɵɵtemplate(5, PagerNumericButtonsComponent_li_5_Template, 3, 1, \"li\", 5);\n ɵngcc0.ɵɵtemplate(6, PagerNumericButtonsComponent_li_6_Template, 3, 5, \"li\", 6);\n ɵngcc0.ɵɵtemplate(7, PagerNumericButtonsComponent_li_7_Template, 3, 1, \"li\", 5);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"value\", ctx.currentPage.toString());\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.start > 1);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.buttons);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.end < ctx.totalPages);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction0(8, _c164));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.start > 1);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.buttons);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.end < ctx.totalPages);\n } }, directives: [FocusableDirective, ɵngcc5.NgIf, ɵngcc5.NgForOf, ɵngcc5.NgClass], encapsulation: 2, changeDetection: 0 });\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([ __metadata(\"design:paramtypes\", [LocalizationService,\n ChangeDetectorRef,\n PagerContextService])\n], PagerNumericButtonsComponent);\n\n/**\n * Displays an input element which allows the typing and rendering of page numbers.\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 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 */\nlet PagerInputComponent = class PagerInputComponent extends PagerElementComponent {\n constructor(localization, pagerContext, zone, navigationService, cd) {\n super(localization, pagerContext, cd);\n this.pagerContext = pagerContext;\n this.zone = zone;\n this.navigationService = navigationService;\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.ɵfac = function PagerInputComponent_Factory(t) { return new (t || PagerInputComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(PagerContextService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(NavigationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nPagerInputComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PagerInputComponent, selectors: [[\"kendo-pager-input\"]], viewQuery: function PagerInputComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(NumericTextBoxComponent, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.numericInput = _t.first);\n } }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 4, vars: 18, consts: [[3, \"ngClass\"], [\"kendoGridPagerInput\", \"\", \"tabindex\", \"0\", \"format\", \"n0\", 3, \"kendoGridFocusable\", \"spinners\", \"decimals\", \"disabled\", \"value\", \"min\", \"max\", \"autoCorrect\", \"title\", \"kendoEventsOutsideAngular\"]], template: function PagerInputComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 0);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelement(2, \"kendo-numerictextbox\", 1);\n ɵngcc0.ɵɵtext(3);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction0(14, _c165));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx.textFor(\"pagerPage\"), \" \");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"kendoGridFocusable\", ctx.hasPages)(\"spinners\", false)(\"decimals\", 0)(\"disabled\", !ctx.hasPages)(\"value\", ctx.current)(\"min\", ctx.hasPages ? 1 : 0)(\"max\", ctx.totalPages)(\"autoCorrect\", true)(\"title\", ctx.textFor(\"pagerPageNumberInputTitle\"))(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction2(15, _c166, ctx.handleKeyDown, ctx.handleBlur));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate2(\" \", ctx.textFor(\"pagerOf\"), \" \", ctx.totalPages, \" \");\n } }, directives: [ɵngcc5.NgClass, ɵngcc6.NumericTextBoxComponent, PagerInputDirective, FocusableDirective, ɵngcc2.EventsOutsideAngularDirective], encapsulation: 2 });\n__decorate([\n ViewChild(NumericTextBoxComponent, { static: false }),\n __metadata(\"design:type\", NumericTextBoxComponent)\n], PagerInputComponent.prototype, \"numericInput\", void 0);\nPagerInputComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService,\n PagerContextService,\n NgZone,\n NavigationService,\n ChangeDetectorRef])\n], PagerInputComponent);\n\n/**\n * Displays information about the current page and the total number of records ([see example]({% slug paging_grid %}#toc-pager-templates)).\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};\nPagerInfoComponent.ɵfac = function PagerInfoComponent_Factory(t) { return new (t || PagerInfoComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(PagerContextService)); };\nPagerInfoComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PagerInfoComponent, selectors: [[\"kendo-pager-info\"]], hostVars: 4, hostBindings: function PagerInfoComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-pager-info\", ctx.classes)(\"k-label\", ctx.classes);\n } }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 1, vars: 5, template: function PagerInfoComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n } if (rf & 2) {\n ɵngcc0.ɵɵtextInterpolate5(\"\", ctx.currentPageText, \" - \", ctx.maxItems, \" \", ctx.textFor(\"pagerOf\"), \" \", ctx.total, \" \", ctx.textFor(\"pagerItems\"), \"\");\n } }, encapsulation: 2, changeDetection: 0 });\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([ __metadata(\"design:paramtypes\", [LocalizationService,\n ChangeDetectorRef,\n PagerContextService])\n], PagerInfoComponent);\n\n/**\n * Displays a drop-down list for the page size selection ([see example]({% slug paging_grid %}#toc-pager-templates)).\n */\nlet PagerPageSizesComponent = class PagerPageSizesComponent extends PagerElementComponent {\n constructor(localization, cd, pagerContext, navigationService) {\n super(localization, pagerContext, cd);\n this.pagerContext = pagerContext;\n this.navigationService = navigationService;\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 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 /**\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 = typeof value === 'number' ? value : this.total;\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 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.ɵfac = function PagerPageSizesComponent_Factory(t) { return new (t || PagerPageSizesComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(PagerContextService), ɵngcc0.ɵɵdirectiveInject(NavigationService)); };\nPagerPageSizesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PagerPageSizesComponent, selectors: [[\"kendo-pager-page-sizes\"]], hostVars: 4, hostBindings: function PagerPageSizesComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-pager-sizes\", ctx.classes)(\"k-label\", ctx.classes);\n } }, inputs: { pageSizes: \"pageSizes\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 3, vars: 5, consts: [[\"kendoGridPagerDropDown\", \"\", \"tabindex\", \"0\", \"kendoGridFocusable\", \"\", \"textField\", \"text\", \"valueField\", \"value\", 3, \"data\", \"valuePrimitive\", \"value\", \"valueChange\"], [\"dropdownlist\", \"\"], [3, \"for\", \"text\"]], template: function PagerPageSizesComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-dropdownlist\", 0, 1);\n ɵngcc0.ɵɵlistener(\"valueChange\", function PagerPageSizesComponent_Template_kendo_dropdownlist_valueChange_0_listener($event) { return ctx.pageSizeChange($event); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelement(2, \"kendo-label\", 2);\n } if (rf & 2) {\n const _r0 = ɵngcc0.ɵɵreference(1);\n ɵngcc0.ɵɵproperty(\"data\", ctx.pageSizes)(\"valuePrimitive\", true)(\"value\", ctx.pageSize);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"for\", _r0)(\"text\", ctx.textFor(\"pagerItemsPerPage\"));\n } }, directives: [ɵngcc8.DropDownListComponent, PagerDropDownListDirective, FocusableDirective, ɵngcc11.LabelComponent], encapsulation: 2, changeDetection: 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([ __metadata(\"design:paramtypes\", [LocalizationService,\n ChangeDetectorRef,\n PagerContextService,\n NavigationService])\n], PagerPageSizesComponent);\n\nconst importedModules$1 = [\n CommonModule,\n InputsModule,\n LabelModule,\n DropDownsModule,\n ResizeSensorModule,\n SharedModule\n];\nconst INTERNAL_COMPONENTS$1 = [\n PagerComponent,\n PagerPrevButtonsComponent,\n PagerNextButtonsComponent,\n PagerNumericButtonsComponent,\n PagerInputComponent,\n PagerInfoComponent,\n PagerPageSizesComponent,\n PagerTemplateDirective,\n PagerDropDownListDirective,\n PagerInputDirective\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 PagerDropDownListDirective,\n PagerInputDirective\n ];\n }\n};\nPagerModule.ɵfac = function PagerModule_Factory(t) { return new (t || PagerModule)(); };\nPagerModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: PagerModule });\nPagerModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[...importedModules$1]] });\n\n/**\n * @hidden\n */\nlet GroupHeaderComponent = class GroupHeaderComponent {\n constructor(groupsService, groupInfoService, localization) {\n this.groupsService = groupsService;\n this.groupInfoService = groupInfoService;\n this.localization = localization;\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 const groupArgs = {\n group: this.item.data,\n groupIndex: this.item.index,\n parentGroup: getGroupRowArgs(this.item.parentGroup)\n };\n this.isExpanded = this.groupsService.isExpanded(groupArgs);\n }\n prefixGroupCell(item) {\n return new Array(item.level);\n }\n toggleGroup(item) {\n this.groupsService.toggleRow(item);\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 get groupButtonTitle() {\n const messageKey = this.isExpanded ? 'groupCollapse' : 'groupExpand';\n return this.localization.get(messageKey);\n }\n};\nGroupHeaderComponent.ɵfac = function GroupHeaderComponent_Factory(t) { return new (t || GroupHeaderComponent)(ɵngcc0.ɵɵdirectiveInject(GroupsService), ɵngcc0.ɵɵdirectiveInject(GroupInfoService), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nGroupHeaderComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: GroupHeaderComponent, selectors: [[\"\", \"kendoGridGroupHeader\", \"\"]], hostVars: 2, hostBindings: function GroupHeaderComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-grouping-row\", ctx.groupItemClass);\n } }, inputs: { skipGroupDecoration: \"skipGroupDecoration\", hasDetails: \"hasDetails\", totalColumnsCount: \"totalColumnsCount\", groups: \"groups\", rowIndex: \"rowIndex\", logicalRowIndex: \"logicalRowIndex\", item: \"item\", hasGroupHeaderColumn: \"hasGroupHeaderColumn\", groupHeaderColumns: \"groupHeaderColumns\", columns: \"columns\" }, attrs: _c167, decls: 3, vars: 3, consts: [[3, \"ngIf\"], [\"aria-selected\", \"false\", \"kendoGridLogicalCell\", \"\", 3, \"logicalRowIndex\", \"logicalColIndex\", \"logicalSlaveCell\", \"groupItem\", \"colSpan\", 4, \"ngIf\"], [4, \"ngIf\"], [\"class\", \"k-group-cell\", \"role\", \"presentation\", 4, \"ngFor\", \"ngForOf\"], [\"role\", \"presentation\", 1, \"k-group-cell\"], [\"aria-selected\", \"false\", \"kendoGridLogicalCell\", \"\", 3, \"logicalRowIndex\", \"logicalColIndex\", \"logicalSlaveCell\", \"groupItem\", \"colSpan\"], [1, \"k-reset\"], [\"href\", \"#\", \"tabindex\", \"-1\", \"role\", \"presentation\", 1, \"k-icon\", 3, \"ngClass\", \"click\"], [3, \"templateContext\"], [\"role\", \"gridcell\", \"aria-selected\", \"false\", \"kendoGridLogicalCell\", \"\", 3, \"logicalRowIndex\", \"logicalColIndex\", \"logicalSlaveCell\", \"groupItem\", \"colSpan\", 4, \"ngFor\", \"ngForOf\"], [\"role\", \"gridcell\", \"aria-selected\", \"false\", \"kendoGridLogicalCell\", \"\", 3, \"logicalRowIndex\", \"logicalColIndex\", \"logicalSlaveCell\", \"groupItem\", \"colSpan\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\", 4, \"ngIf\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]], template: function GroupHeaderComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, GroupHeaderComponent_ng_template_0_Template, 1, 1, \"ng-template\", 0);\n ɵngcc0.ɵɵtemplate(1, GroupHeaderComponent_td_1_Template, 3, 9, \"td\", 1);\n ɵngcc0.ɵɵtemplate(2, GroupHeaderComponent_ng_container_2_Template, 2, 1, \"ng-container\", 2);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.skipGroupDecoration);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !(ctx.skipGroupDecoration && ctx.hasGroupHeaderColumn));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.hasGroupHeaderColumn);\n } }, directives: [ɵngcc5.NgIf, ɵngcc5.NgForOf, LogicalCellDirective, ɵngcc5.NgClass, TemplateContextDirective, ɵngcc5.NgTemplateOutlet], pipes: [FieldAccessorPipe], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], GroupHeaderComponent.prototype, \"rowIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], GroupHeaderComponent.prototype, \"logicalRowIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], GroupHeaderComponent.prototype, \"item\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], GroupHeaderComponent.prototype, \"skipGroupDecoration\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], GroupHeaderComponent.prototype, \"hasDetails\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], GroupHeaderComponent.prototype, \"totalColumnsCount\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], GroupHeaderComponent.prototype, \"hasGroupHeaderColumn\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], GroupHeaderComponent.prototype, \"groupHeaderColumns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], GroupHeaderComponent.prototype, \"columns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], GroupHeaderComponent.prototype, \"groups\", void 0);\n__decorate([\n HostBinding('class.k-grouping-row'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], GroupHeaderComponent.prototype, \"groupItemClass\", null);\nGroupHeaderComponent = __decorate([ __metadata(\"design:paramtypes\", [GroupsService,\n GroupInfoService,\n LocalizationService])\n], GroupHeaderComponent);\n\n/**\n * @hidden\n */\nlet DropTargetDirective = class 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.ɵfac = function DropTargetDirective_Factory(t) { return new (t || DropTargetDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(DragAndDropService)); };\nDropTargetDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DropTargetDirective, selectors: [[\"\", \"kendoDropTarget\", \"\"]], inputs: { context: \"context\" }, outputs: { enter: \"enter\", leave: \"leave\", drop: \"drop\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DropTargetDirective.prototype, \"context\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DropTargetDirective.prototype, \"enter\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DropTargetDirective.prototype, \"leave\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DropTargetDirective.prototype, \"drop\", void 0);\nDropTargetDirective = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n DragAndDropService])\n], DropTargetDirective);\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 */\nlet GroupPanelComponent = class 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.ɵfac = function GroupPanelComponent_Factory(t) { return new (t || GroupPanelComponent)(ɵngcc0.ɵɵdirectiveInject(DragHintService), ɵngcc0.ɵɵdirectiveInject(DropCueService), ɵngcc0.ɵɵdirectiveInject(GroupInfoService), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nGroupPanelComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: GroupPanelComponent, selectors: [[\"kendo-grid-group-panel\"]], viewQuery: function GroupPanelComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(DropTargetDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.dropTargets = _t);\n } }, hostVars: 4, hostBindings: function GroupPanelComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-grouping-header\", ctx.groupHeaderClass)(\"k-grouping-header-flex\", ctx.groupHeaderClass);\n } }, inputs: { groups: \"groups\", text: \"text\" }, outputs: { change: \"change\" }, decls: 3, vars: 3, consts: [[3, \"ngIf\"], [\"class\", \"k-indicator-container\", \"kendoDropTarget\", \"\", 3, \"context\", 4, \"ngFor\", \"ngForOf\"], [\"class\", \"k-indicator-container\", \"kendoDropTarget\", \"\", 3, \"context\", 4, \"ngIf\"], [\"kendoDropTarget\", \"\", 1, \"k-indicator-container\", 3, \"context\"], [\"kendoDraggableColumn\", \"\", \"kendoGroupIndicator\", \"\", \"kendoDraggable\", \"\", 3, \"enableDrag\", \"context\", \"group\", \"groupTitle\", \"directionChange\", \"remove\"]], template: function GroupPanelComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, GroupPanelComponent_ng_template_0_Template, 2, 3, \"ng-template\", 0);\n ɵngcc0.ɵɵtemplate(1, GroupPanelComponent_div_1_Template, 2, 10, \"div\", 1);\n ɵngcc0.ɵɵtemplate(2, GroupPanelComponent_div_2_Template, 2, 2, \"div\", 2);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.groups.length === 0);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.groups);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.groups.length !== 0);\n } }, directives: function () { return [ɵngcc5.NgIf, DropTargetDirective, ɵngcc5.NgForOf, DraggableColumnDirective, GroupIndicatorComponent, ɵngcc2.DraggableDirective]; }, encapsulation: 2, changeDetection: 0 });\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], GroupPanelComponent.prototype, \"change\", void 0);\n__decorate([\n HostBinding(\"class.k-grouping-header\"),\n HostBinding(\"class.k-grouping-header-flex\"),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], GroupPanelComponent.prototype, \"groupHeaderClass\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], GroupPanelComponent.prototype, \"text\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], GroupPanelComponent.prototype, \"groups\", void 0);\n__decorate([\n ViewChildren(DropTargetDirective),\n __metadata(\"design:type\", QueryList)\n], GroupPanelComponent.prototype, \"dropTargets\", void 0);\nGroupPanelComponent = __decorate([ __metadata(\"design:paramtypes\", [DragHintService,\n DropCueService,\n GroupInfoService,\n LocalizationService,\n ChangeDetectorRef])\n], GroupPanelComponent);\n\n/**\n * @hidden\n */\nlet GroupIndicatorComponent = class GroupIndicatorComponent {\n /**\n * @hidden\n */\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.ɵfac = function GroupIndicatorComponent_Factory(t) { return new (t || GroupIndicatorComponent)(); };\nGroupIndicatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: GroupIndicatorComponent, selectors: [[\"\", \"kendoGroupIndicator\", \"\"]], hostVars: 2, hostBindings: function GroupIndicatorComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-group-indicator\", ctx.groupIndicatorClass);\n } }, inputs: { group: \"group\", groupTitle: \"groupTitle\" }, outputs: { directionChange: \"directionChange\", remove: \"remove\" }, attrs: _c174, decls: 5, vars: 5, consts: [[\"href\", \"#\", \"tabindex\", \"-1\", 1, \"k-link\", 3, \"click\"], [1, \"k-icon\"], [\"tabindex\", \"-1\", 1, \"k-button\", \"k-button-flat-base\", \"k-button-flat\", \"k-icon-button\", \"k-button-md\", \"k-rounded-md\", \"k-button-rectangle\", \"k-icon-button\", 3, \"click\"], [1, \"k-button-icon\", \"k-icon\", \"k-i-group-delete\"]], template: function GroupIndicatorComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"a\", 0);\n ɵngcc0.ɵɵlistener(\"click\", function GroupIndicatorComponent_Template_a_click_0_listener() { return ctx.toggleDirection(); });\n ɵngcc0.ɵɵelement(1, \"span\", 1);\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(3, \"a\", 2);\n ɵngcc0.ɵɵlistener(\"click\", function GroupIndicatorComponent_Template_a_click_3_listener() { return ctx.removeDescriptor(); });\n ɵngcc0.ɵɵelement(4, \"span\", 3);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"k-i-sort-asc-sm\", ctx.dir === \"asc\")(\"k-i-sort-desc-sm\", ctx.dir === \"desc\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx.groupTitle, \"\");\n } }, encapsulation: 2, changeDetection: 0 });\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], GroupIndicatorComponent.prototype, \"directionChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], GroupIndicatorComponent.prototype, \"remove\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], GroupIndicatorComponent.prototype, \"group\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], GroupIndicatorComponent.prototype, \"groupTitle\", void 0);\n__decorate([\n HostBinding(\"class.k-group-indicator\"),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], GroupIndicatorComponent.prototype, \"groupIndicatorClass\", null);\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-icon-button'));\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 */\nlet DraggableColumnDirective = class 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((_) => {\n this.hint.create(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.enabled ? this.renderer.addClass(this.element.nativeElement, 'k-touch-action-none') :\n this.renderer.removeClass(this.element.nativeElement, 'k-touch-action-none');\n }\n};\nDraggableColumnDirective.ɵfac = function DraggableColumnDirective_Factory(t) { return new (t || DraggableColumnDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.DraggableDirective, 1), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(DragAndDropService), ɵngcc0.ɵɵdirectiveInject(DragHintService), ɵngcc0.ɵɵdirectiveInject(DropCueService), ɵngcc0.ɵɵdirectiveInject(NavigationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nDraggableColumnDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DraggableColumnDirective, selectors: [[\"\", \"kendoDraggableColumn\", \"\"]], hostVars: 2, hostBindings: function DraggableColumnDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-grid-draggable-header\", ctx.hostClass);\n } }, inputs: { context: \"context\", enableDrag: \"enableDrag\" }, outputs: { drag: \"drag\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DraggableColumnDirective.prototype, \"context\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], DraggableColumnDirective.prototype, \"enableDrag\", null);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DraggableColumnDirective.prototype, \"drag\", void 0);\n__decorate([\n HostBinding('class.k-grid-draggable-header'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DraggableColumnDirective.prototype, \"hostClass\", null);\nDraggableColumnDirective = __decorate([ __param(0, Host()),\n __metadata(\"design:paramtypes\", [DraggableDirective,\n ElementRef,\n NgZone,\n DragAndDropService,\n DragHintService,\n DropCueService,\n NavigationService,\n Renderer2])\n], DraggableColumnDirective);\n\nconst exported = [\n DraggableColumnDirective,\n DropTargetDirective\n];\n/**\n * @hidden\n */\nlet DragAndDropModule = class DragAndDropModule {\n};\nDragAndDropModule.ɵfac = function DragAndDropModule_Factory(t) { return new (t || DragAndDropModule)(); };\nDragAndDropModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: DragAndDropModule });\nDragAndDropModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nconst exportedModules$1 = [\n GroupHeaderTemplateDirective,\n GroupHeaderColumnTemplateDirective,\n GroupFooterTemplateDirective,\n GroupHeaderComponent,\n GroupPanelComponent,\n GroupIndicatorComponent\n];\n/**\n * @hidden\n */\nlet GroupModule = class GroupModule {\n static exports() {\n return [\n GroupHeaderTemplateDirective,\n GroupHeaderColumnTemplateDirective,\n GroupFooterTemplateDirective\n ];\n }\n};\nGroupModule.ɵfac = function GroupModule_Factory(t) { return new (t || GroupModule)(); };\nGroupModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: GroupModule });\nGroupModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule, SharedModule, DragAndDropModule]] });\n\n/**\n * @hidden\n */\nconst DEFAULTS = {\n allowUnsort: true,\n mode: 'single',\n showIndexes: true,\n initialDirection: 'asc',\n multiSortKey: 'none'\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 hasStick = (settings, column) => settings.stick && column.stickable && !(column.parent && !column.parent.isSpanColumn);\n/**\n * @hidden\n */\nconst hasPosition = (settings, column) => settings.setColumnPosition && (column.stickable || 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\n/**\n * @hidden\n */\nlet FilterMenuComponent = class FilterMenuComponent {\n constructor(filterService, popupService, localization, navigationService) {\n this.filterService = filterService;\n this.popupService = popupService;\n this.localization = localization;\n this.navigationService = navigationService;\n this.tabIndex = '-1';\n }\n get hasFilters() {\n return filtersByField(this.filter, (this.column || {}).field).length > 0;\n }\n /**\n * @hidden\n */\n get filterLabel() {\n const localizationMsg = this.localization.get('filterMenuTitle') || '';\n const columnName = this.column.title || this.column.field;\n return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);\n }\n toggle(anchor, template) {\n this.popupRef = this.popupService.open(anchor, template, this.popupRef);\n if (!this.popupRef) {\n if (this.navigationService.enabled) {\n this.navigationService.focusCell(0, this.column.leafIndex);\n }\n else {\n this.anchor.nativeElement.focus();\n }\n }\n return false;\n }\n close() {\n this.popupService.destroy();\n if (this.navigationService.enabled) {\n this.navigationService.focusCell(0, this.column.leafIndex);\n }\n else {\n this.anchor.nativeElement.focus();\n }\n }\n};\nFilterMenuComponent.ɵfac = function FilterMenuComponent_Factory(t) { return new (t || FilterMenuComponent)(ɵngcc0.ɵɵdirectiveInject(FilterService), ɵngcc0.ɵɵdirectiveInject(SinglePopupService), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(NavigationService)); };\nFilterMenuComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: FilterMenuComponent, selectors: [[\"kendo-grid-filter-menu\"]], viewQuery: function FilterMenuComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c175, 7);\n ɵngcc0.ɵɵviewQuery(_c176, 7, TemplateRef);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.anchor = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.template = _t.first);\n } }, inputs: { tabIndex: \"tabIndex\", column: \"column\", filter: \"filter\" }, decls: 5, vars: 5, consts: [[\"href\", \"#\", 3, \"ngClass\", \"tabindex\", \"click\", \"keydown.enter\"], [\"anchor\", \"\"], [1, \"k-icon\", \"k-i-filter\"], [\"template\", \"\"], [3, \"column\", \"filter\", \"close\", \"keydown.escape\", \"keydown.enter\"]], template: function FilterMenuComponent_Template(rf, ctx) { if (rf & 1) {\n const _r7 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"a\", 0, 1);\n ɵngcc0.ɵɵlistener(\"click\", function FilterMenuComponent_Template_a_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r7); const _r0 = ɵngcc0.ɵɵreference(1); const _r1 = ɵngcc0.ɵɵreference(4); return ctx.toggle(_r0, _r1); })(\"keydown.enter\", function FilterMenuComponent_Template_a_keydown_enter_0_listener($event) { return $event.stopImmediatePropagation(); });\n ɵngcc0.ɵɵelement(2, \"span\", 2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, FilterMenuComponent_ng_template_3_Template, 1, 2, \"ng-template\", null, 3, ɵngcc0.ɵɵtemplateRefExtractor);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction1(3, _c177, ctx.hasFilters))(\"tabindex\", ctx.tabIndex);\n ɵngcc0.ɵɵattribute(\"title\", ctx.filterLabel);\n } }, directives: function () { return [ɵngcc5.NgClass, FilterMenuContainerComponent]; }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnComponent)\n], FilterMenuComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], FilterMenuComponent.prototype, \"filter\", void 0);\n__decorate([\n ViewChild('anchor', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], FilterMenuComponent.prototype, \"anchor\", void 0);\n__decorate([\n ViewChild('template', { static: true, read: TemplateRef }),\n __metadata(\"design:type\", TemplateRef)\n], FilterMenuComponent.prototype, \"template\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FilterMenuComponent.prototype, \"tabIndex\", void 0);\nFilterMenuComponent = __decorate([ __metadata(\"design:paramtypes\", [FilterService,\n SinglePopupService,\n LocalizationService,\n NavigationService])\n], FilterMenuComponent);\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 */\nlet ColumnMenuService = class ColumnMenuService {\n /**\n * @hidden\n */\n constructor(menuTabbingService) {\n /**\n * @hidden\n */\n this.closeMenu = new EventEmitter();\n this.menuTabbingService = menuTabbingService;\n }\n /**\n * Closes the column menu.\n */\n close() {\n this.closeMenu.emit();\n }\n};\nColumnMenuService.ɵfac = function ColumnMenuService_Factory(t) { return new (t || ColumnMenuService)(ɵngcc0.ɵɵinject(MenuTabbingService)); };\nColumnMenuService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ColumnMenuService, factory: function (t) { return ColumnMenuService.ɵfac(t); } });\nColumnMenuService = __decorate([ __metadata(\"design:paramtypes\", [MenuTabbingService])\n], ColumnMenuService);\n\nconst POPUP_CLASS = 'k-grid-columnmenu-popup';\n/**\n * Represents the [column menu]({% slug columnmenu_grid %}) component.\n */\nlet ColumnMenuComponent = class ColumnMenuComponent {\n constructor(popupService, localization, service, navigationService) {\n this.popupService = popupService;\n this.localization = localization;\n this.service = service;\n this.navigationService = navigationService;\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.tabIndex = '-1';\n /**\n * @hidden\n */\n this.expandedFilter = false;\n /**\n * @hidden\n */\n this.expandedColumns = false;\n /**\n * @hidden\n */\n this.expandedPosition = 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 /**\n * @hidden\n */\n get hasStick() {\n return hasStick(this.settings, this.column);\n }\n /**\n * @hidden\n */\n get hasPosition() {\n return hasPosition(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 if (e) {\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n this.expandedFilter = this.getExpandedState(this.settings.filter);\n this.expandedColumns = this.getExpandedState(this.settings.columnChooser);\n this.expandedPosition = this.getExpandedState(this.settings.setColumnPosition);\n this.popupRef = this.popupService.open(anchor, template, this.popupRef, POPUP_CLASS);\n if (!this.popupRef) {\n if (this.navigationService.enabled) {\n this.navigationService.focusCell(0, this.column.leafIndex);\n }\n else {\n this.anchor.nativeElement.focus();\n }\n }\n }\n /**\n * @hidden\n */\n close() {\n this.popupService.destroy();\n this.popupRef = null;\n if (this.navigationService.enabled) {\n this.navigationService.focusCell(0, this.column.leafIndex);\n }\n else {\n this.anchor.nativeElement.focus();\n }\n }\n /**\n * @hidden\n */\n get columnMenuTitle() {\n const localizationMsg = this.localization.get('columnMenu') || '';\n const columnName = this.column.title || this.column.field;\n return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);\n }\n getExpandedState(menuItemSettings) {\n return typeof (menuItemSettings) === 'object' ? menuItemSettings.expanded : false;\n }\n};\nColumnMenuComponent.ɵfac = function ColumnMenuComponent_Factory(t) { return new (t || ColumnMenuComponent)(ɵngcc0.ɵɵdirectiveInject(SinglePopupService), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ColumnMenuService), ɵngcc0.ɵɵdirectiveInject(NavigationService)); };\nColumnMenuComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColumnMenuComponent, selectors: [[\"kendo-grid-column-menu\"]], viewQuery: function ColumnMenuComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c175, 7);\n ɵngcc0.ɵɵviewQuery(_c176, 7, TemplateRef);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.anchor = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.template = _t.first);\n } }, hostVars: 2, hostBindings: function ColumnMenuComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-grid-column-menu-standalone\", ctx.standalone);\n } }, inputs: { standalone: \"standalone\", settings: \"settings\", sortable: \"sortable\", tabIndex: \"tabIndex\", column: \"column\", sort: \"sort\", filter: \"filter\", columnMenuTemplate: \"columnMenuTemplate\" }, features: [ɵngcc0.ɵɵProvidersFeature([\n ColumnMenuService,\n MenuTabbingService\n ]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 7, vars: 5, consts: [[\"href\", \"#\", 1, \"k-grid-column-menu\", \"k-grid-filter\", 3, \"ngClass\", \"tabindex\", \"click\", \"keydown.enter\"], [\"anchor\", \"\"], [1, \"k-icon\", \"k-i-more-vertical\"], [\"template\", \"\"], [\"defaultTemplate\", \"\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [3, \"keydown.escape\", \"keydown.enter\"], [3, \"kendoGridColumnMenuItem\", \"service\", 4, \"ngIf\"], [3, \"showLock\", \"showStick\", \"kendoGridColumnMenuItem\", \"service\", \"expanded\", 4, \"ngIf\"], [3, \"kendoGridColumnMenuItem\", \"service\", \"expanded\", 4, \"ngIf\"], [3, \"kendoGridColumnMenuItem\", \"service\"], [\"sortItem\", \"\"], [\"lockItem\", \"\"], [\"stickItem\", \"\"], [3, \"showLock\", \"showStick\", \"kendoGridColumnMenuItem\", \"service\", \"expanded\"], [\"positionItem\", \"\"], [3, \"kendoGridColumnMenuItem\", \"service\", \"expanded\"], [\"chooserItem\", \"\"], [\"filterItem\", \"\"]], template: function ColumnMenuComponent_Template(rf, ctx) { if (rf & 1) {\n const _r20 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"a\", 0, 1);\n ɵngcc0.ɵɵlistener(\"click\", function ColumnMenuComponent_Template_a_click_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r20); const _r0 = ɵngcc0.ɵɵreference(1); const _r1 = ɵngcc0.ɵɵreference(4); return ctx.toggle($event, _r0, _r1); })(\"keydown.enter\", function ColumnMenuComponent_Template_a_keydown_enter_0_listener($event) { return $event.stopImmediatePropagation(); });\n ɵngcc0.ɵɵelement(2, \"span\", 2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, ColumnMenuComponent_ng_template_3_Template, 1, 5, \"ng-template\", null, 3, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(5, ColumnMenuComponent_ng_template_5_Template, 7, 6, \"ng-template\", null, 4, ɵngcc0.ɵɵtemplateRefExtractor);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction1(3, _c179, ctx.isActive))(\"tabindex\", ctx.tabIndex);\n ɵngcc0.ɵɵattribute(\"title\", ctx.columnMenuTitle);\n } }, directives: function () { return [ɵngcc5.NgClass, ɵngcc5.NgTemplateOutlet, ColumnMenuContainerComponent, ɵngcc5.NgIf, ColumnMenuSortComponent, ColumnMenuItemDirective, ColumnMenuLockComponent, ColumnMenuStickComponent, ColumnMenuPositionComponent, ColumnMenuChooserComponent, ColumnMenuFilterComponent]; }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-grid-column-menu-standalone'),\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnMenuComponent.prototype, \"standalone\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColumnMenuComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColumnMenuComponent.prototype, \"settings\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColumnMenuComponent.prototype, \"sort\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColumnMenuComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColumnMenuComponent.prototype, \"sortable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], ColumnMenuComponent.prototype, \"columnMenuTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColumnMenuComponent.prototype, \"tabIndex\", void 0);\n__decorate([\n ViewChild('anchor', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], ColumnMenuComponent.prototype, \"anchor\", void 0);\n__decorate([\n ViewChild('template', { static: true, read: TemplateRef }),\n __metadata(\"design:type\", TemplateRef)\n], ColumnMenuComponent.prototype, \"template\", void 0);\nColumnMenuComponent = __decorate([ __metadata(\"design:paramtypes\", [SinglePopupService,\n LocalizationService,\n ColumnMenuService,\n NavigationService])\n], ColumnMenuComponent);\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);\nconst modifierKeys = ['alt', 'ctrl', 'shift', 'meta'];\n/**\n * @hidden\n */\nlet HeaderComponent = class HeaderComponent {\n constructor(popupService, hint, cue, reorderService, idService, sortService, localization, columnInfoService, 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.columnInfoService = columnInfoService;\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(descriptor) {\n this.sortService.sort(descriptor);\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 const modifier = this.matchModifier(event);\n const toggledColumn = this.toggleSort(column, modifier);\n this.sortColumn(toggledColumn);\n }\n onHeaderKeydown(column, args) {\n if (args.keyCode === Keys.ArrowDown && args.altKey && this.showFilterMenu) {\n args.preventDefault();\n args.stopImmediatePropagation();\n const filterMenu = this.filterMenus.find(fm => fm.column === column);\n filterMenu.toggle(filterMenu.anchor.nativeElement, filterMenu.template);\n }\n if (args.keyCode === Keys.ArrowDown && args.altKey && this.showColumnMenu(column)) {\n args.preventDefault();\n args.stopImmediatePropagation();\n const columnMenu = this.columnMenus.find(cm => cm.column === column);\n columnMenu.toggle(null, columnMenu.anchor.nativeElement, columnMenu.template);\n }\n if (!this.sortable || args.defaultPrevented || column.sortable === false) {\n return;\n }\n if (args.keyCode === Keys.Enter && isPresent(column.field)) {\n const modifier = this.matchModifier(args);\n this.sortService.sort(this.toggleSort(column, modifier));\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 /**\n *\n * @param column\n * @param modifier - Indicates whether the client-defined `multiSortKey` modifier is met. Defaults to `true`.\n * @returns - SortDescriptor[]\n */\n toggleSort(column, modifier = true) {\n const { allowUnsort, mode, initialDirection } = normalize$1(this.sortable, column.sortable);\n const descriptor = this.toggleDirection(column.field, allowUnsort, initialDirection);\n if (mode === 'single' || !modifier) {\n return [descriptor];\n }\n return [...this.sort.filter(desc => desc.field !== column.field), descriptor];\n }\n /**\n *\n * Determines whether the modifier key (if any) passed\n * with a click/keyboard event matches the user-defined multiSortKey.\n */\n matchModifier(event) {\n const { multiSortKey } = normalize$1(this.sortable);\n if (multiSortKey === 'none') {\n return modifierKeys.every(key => !event[`${key}Key`]);\n }\n return multiSortKey === 'ctrl'\n ? event.ctrlKey || event.metaKey\n : event[`${multiSortKey}Key`];\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 get selectAllCheckboxLabel() {\n return this.localization.get('selectAllCheckboxLabel');\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 addStickyStyles(column) {\n const stickyStyles = this.columnInfoService.stickyColumnsStyles(column);\n return Object.assign({}, column.style, stickyStyles);\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.ɵfac = function HeaderComponent_Factory(t) { return new (t || HeaderComponent)(ɵngcc0.ɵɵdirectiveInject(SinglePopupService), ɵngcc0.ɵɵdirectiveInject(DragHintService), ɵngcc0.ɵɵdirectiveInject(DropCueService), ɵngcc0.ɵɵdirectiveInject(ColumnReorderService), ɵngcc0.ɵɵdirectiveInject(IdService), ɵngcc0.ɵɵdirectiveInject(SortService), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ColumnInfoService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nHeaderComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: HeaderComponent, selectors: [[\"\", \"kendoGridHeader\", \"\"]], viewQuery: function HeaderComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(DropTargetDirective, 5);\n ɵngcc0.ɵɵviewQuery(FilterMenuComponent, 5);\n ɵngcc0.ɵɵviewQuery(ColumnMenuComponent, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.dropTargets = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.filterMenus = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.columnMenus = _t);\n } }, hostVars: 2, hostBindings: function HeaderComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-grid-header\", ctx.headerClass);\n } }, inputs: { columns: \"columns\", groups: \"groups\", sort: \"sort\", sortable: \"sortable\", groupable: \"groupable\", lockedColumnsCount: \"lockedColumnsCount\", resizable: \"resizable\", reorderable: \"reorderable\", columnMenu: \"columnMenu\", totalColumnsCount: \"totalColumnsCount\", totalColumnLevels: \"totalColumnLevels\", detailTemplate: \"detailTemplate\", scrollable: \"scrollable\", filterable: \"filterable\", filter: \"filter\", columnMenuTemplate: \"columnMenuTemplate\", tabIndex: \"tabIndex\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], attrs: _c180, decls: 1, vars: 1, consts: [[3, \"ngIf\"], [\"kendoGridLogicalRow\", \"\", 3, \"logicalRowIndex\", \"logicalSlaveRow\", \"logicalCellsCount\", \"logicalSlaveCellsCount\", 4, \"ngFor\", \"ngForOf\"], [\"kendoGridFilterRow\", \"\", \"kendoGridLogicalRow\", \"\", 3, \"columns\", \"filter\", \"groups\", \"detailTemplate\", \"lockedColumnsCount\", \"logicalRowIndex\", \"logicalSlaveRow\", \"logicalCellsCount\", \"logicalSlaveCellsCount\", 4, \"ngIf\"], [\"kendoGridLogicalRow\", \"\", 3, \"logicalRowIndex\", \"logicalSlaveRow\", \"logicalCellsCount\", \"logicalSlaveCellsCount\"], [\"class\", \"k-group-cell k-header\", \"role\", \"presentation\", 4, \"ngFor\", \"ngForOf\"], [\"class\", \"k-hierarchy-cell k-header\", \"role\", \"presentation\", \"kendoGridLogicalCell\", \"\", \"aria-selected\", \"false\", 3, \"logicalRowIndex\", \"logicalColIndex\", 4, \"ngIf\"], [\"ngFor\", \"\", 3, \"ngForOf\", \"ngForTrackBy\"], [\"role\", \"presentation\", 1, \"k-group-cell\", \"k-header\"], [\"role\", \"presentation\", \"kendoGridLogicalCell\", \"\", \"aria-selected\", \"false\", 1, \"k-hierarchy-cell\", \"k-header\", 3, \"logicalRowIndex\", \"logicalColIndex\"], [\"kendoGridLogicalCell\", \"\", \"role\", \"columnheader\", \"aria-selected\", \"false\", \"kendoDropTarget\", \"\", \"kendoDraggable\", \"\", \"kendoDraggableColumn\", \"\", \"class\", \"k-header\", 3, \"logicalRowIndex\", \"logicalColIndex\", \"headerLabelText\", \"colSpan\", \"rowSpan\", \"enableDrag\", \"context\", \"k-filterable\", \"k-first\", \"k-grid-header-sticky\", \"ngClass\", \"ngStyle\", \"keydown\", 4, \"ngIf\"], [\"kendoGridLogicalCell\", \"\", \"kendoDropTarget\", \"\", \"kendoDraggable\", \"\", \"kendoDraggableColumn\", \"\", \"class\", \"k-header\", 3, \"logicalRowIndex\", \"logicalColIndex\", \"rowSpan\", \"colSpan\", \"headerLabelText\", \"enableDrag\", \"context\", \"k-first\", \"k-filterable\", \"k-grid-content-sticky\", \"ngClass\", \"ngStyle\", 4, \"ngIf\"], [\"kendoGridLogicalCell\", \"\", \"role\", \"columnheader\", \"aria-selected\", \"false\", \"kendoDropTarget\", \"\", \"kendoDraggable\", \"\", \"kendoDraggableColumn\", \"\", 1, \"k-header\", 3, \"logicalRowIndex\", \"logicalColIndex\", \"headerLabelText\", \"colSpan\", \"rowSpan\", \"enableDrag\", \"context\", \"ngClass\", \"ngStyle\", \"keydown\"], [\"kendoGridColumnHandle\", \"\", \"kendoDraggable\", \"\", \"class\", \"k-column-resizer\", 3, \"column\", \"columns\", 4, \"ngIf\"], [3, \"column\", \"filter\", \"tabIndex\", 4, \"ngIf\"], [3, \"standalone\", \"settings\", \"column\", \"columnMenuTemplate\", \"sort\", \"filter\", \"sortable\", \"tabIndex\", 4, \"ngIf\"], [3, \"templateContext\"], [3, \"column\", \"filter\", \"tabIndex\"], [3, \"standalone\", \"settings\", \"column\", \"columnMenuTemplate\", \"sort\", \"filter\", \"sortable\", \"tabIndex\"], [1, \"k-cell-inner\"], [1, \"k-link\", 3, \"click\"], [\"link\", \"\"], [\"role\", \"note\", 3, \"ngClass\"], [\"class\", \"k-sort-order\", 4, \"ngIf\"], [\"role\", \"status\", 1, \"k-sort-status\", 2, \"position\", \"absolute\", \"left\", \"-10000px\", 3, \"innerHtml\"], [1, \"k-column-title\"], [1, \"k-sort-order\"], [\"kendoGridSelectAllCheckbox\", \"\", \"kendoGridFocusable\", \"\", 1, \"k-checkbox\", \"k-checkbox-md\", \"k-rounded-md\"], [\"kendoGridColumnHandle\", \"\", \"kendoDraggable\", \"\", 1, \"k-column-resizer\", 3, \"column\", \"columns\"], [\"kendoGridLogicalCell\", \"\", \"kendoDropTarget\", \"\", \"kendoDraggable\", \"\", \"kendoDraggableColumn\", \"\", 1, \"k-header\", 3, \"logicalRowIndex\", \"logicalColIndex\", \"rowSpan\", \"colSpan\", \"headerLabelText\", \"enableDrag\", \"context\", \"ngClass\", \"ngStyle\"], [3, \"standalone\", \"settings\", \"column\", \"columnMenuTemplate\", 4, \"ngIf\"], [3, \"standalone\", \"settings\", \"column\", \"columnMenuTemplate\"], [\"kendoGridFilterRow\", \"\", \"kendoGridLogicalRow\", \"\", 3, \"columns\", \"filter\", \"groups\", \"detailTemplate\", \"lockedColumnsCount\", \"logicalRowIndex\", \"logicalSlaveRow\", \"logicalCellsCount\", \"logicalSlaveCellsCount\"]], template: function HeaderComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, HeaderComponent_ng_template_0_Template, 2, 2, \"ng-template\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", true);\n } }, directives: function () { return [ɵngcc5.NgIf, ɵngcc5.NgForOf, LogicalRowDirective, LogicalCellDirective, DropTargetDirective, ɵngcc2.DraggableDirective, DraggableColumnDirective, ɵngcc5.NgClass, ɵngcc5.NgStyle, FilterMenuComponent, ColumnMenuComponent, TemplateContextDirective, SelectAllCheckboxDirective, FocusableDirective, ColumnHandleDirective, FilterRowComponent]; }, styles: [\".k-column-resizer[_ngcontent-%COMP%] {\\n cursor: col-resize;\\n display: block;\\n height: 1000%;\\n position: absolute;\\n top: 0;\\n width: .5em;\\n }\"] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], HeaderComponent.prototype, \"totalColumnLevels\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], HeaderComponent.prototype, \"columns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], HeaderComponent.prototype, \"groups\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", DetailTemplateDirective)\n], HeaderComponent.prototype, \"detailTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], HeaderComponent.prototype, \"scrollable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], HeaderComponent.prototype, \"filterable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], HeaderComponent.prototype, \"sort\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], HeaderComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], HeaderComponent.prototype, \"sortable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], HeaderComponent.prototype, \"groupable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], HeaderComponent.prototype, \"lockedColumnsCount\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], HeaderComponent.prototype, \"resizable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], HeaderComponent.prototype, \"reorderable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], HeaderComponent.prototype, \"columnMenu\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], HeaderComponent.prototype, \"columnMenuTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], HeaderComponent.prototype, \"totalColumnsCount\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], HeaderComponent.prototype, \"tabIndex\", void 0);\n__decorate([\n HostBinding('class.k-grid-header'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], HeaderComponent.prototype, \"headerClass\", null);\n__decorate([\n ViewChildren(DropTargetDirective),\n __metadata(\"design:type\", QueryList)\n], HeaderComponent.prototype, \"dropTargets\", void 0);\n__decorate([\n ViewChildren(FilterMenuComponent),\n __metadata(\"design:type\", QueryList)\n], HeaderComponent.prototype, \"filterMenus\", void 0);\n__decorate([\n ViewChildren(ColumnMenuComponent),\n __metadata(\"design:type\", QueryList)\n], HeaderComponent.prototype, \"columnMenus\", void 0);\nHeaderComponent = __decorate([ __metadata(\"design:paramtypes\", [SinglePopupService,\n DragHintService,\n DropCueService,\n ColumnReorderService,\n IdService,\n SortService,\n LocalizationService,\n ColumnInfoService,\n ChangeDetectorRef])\n], HeaderComponent);\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 */\nlet ColumnHandleDirective = class 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.ɵfac = function ColumnHandleDirective_Factory(t) { return new (t || ColumnHandleDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.DraggableDirective, 1), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ColumnResizingService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nColumnHandleDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ColumnHandleDirective, selectors: [[\"\", \"kendoGridColumnHandle\", \"\"]], hostVars: 6, hostBindings: function ColumnHandleDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"dblclick\", function ColumnHandleDirective_dblclick_HostBindingHandler() { return ctx.autoFit(); });\n } if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"display\", ctx.visible)(\"left\", ctx.leftStyle)(\"right\", ctx.rightStyle);\n } }, inputs: { columns: \"columns\", column: \"column\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], ColumnHandleDirective.prototype, \"columns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnBase$1)\n], ColumnHandleDirective.prototype, \"column\", void 0);\n__decorate([\n HostBinding('style.display'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], ColumnHandleDirective.prototype, \"visible\", null);\n__decorate([\n HostBinding('style.left'),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [])\n], ColumnHandleDirective.prototype, \"leftStyle\", null);\n__decorate([\n HostBinding('style.right'),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [])\n], ColumnHandleDirective.prototype, \"rightStyle\", null);\n__decorate([\n HostListener('dblclick'),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], ColumnHandleDirective.prototype, \"autoFit\", null);\nColumnHandleDirective = __decorate([ __param(0, Host()),\n __metadata(\"design:paramtypes\", [DraggableDirective,\n ElementRef,\n ColumnResizingService,\n NgZone,\n ChangeDetectorRef,\n LocalizationService])\n], ColumnHandleDirective);\n\n/**\n * Represents the select-all checkbox feature of the Grid ([see example]({% slug selection_grid %}#toc-select-all-feature)).\n */\nlet SelectAllCheckboxDirective = class 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 // yields consistent cross-browser behavior when clicking an indeterminate checkbox\n const undefinedCheckedStateInIE = detectIE() && this.selectionService.selectAllState === undefined;\n const isChecked = undefinedCheckedStateInIE ? true : this.el.nativeElement.checked;\n const options = this.selectionService.options;\n const enabledAndMultiple = options.enabled && options.mode === 'multiple';\n const shouldEmitSelectAll = hasObservers(this.selectAllChange);\n if (enabledAndMultiple || shouldEmitSelectAll) {\n this.ngZone.run(() => {\n if (enabledAndMultiple) {\n this.selectionService.updateAll(isChecked);\n }\n if (shouldEmitSelectAll) {\n this.selectAllChange.emit(isChecked ? 'checked' : 'unchecked');\n }\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.ɵfac = function SelectAllCheckboxDirective_Factory(t) { return new (t || SelectAllCheckboxDirective)(ɵngcc0.ɵɵdirectiveInject(SelectionService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nSelectAllCheckboxDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SelectAllCheckboxDirective, selectors: [[\"\", \"kendoGridSelectAllCheckbox\", \"\"]], hostVars: 1, hostBindings: function SelectAllCheckboxDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"type\", ctx.type);\n } }, inputs: { state: \"state\" }, outputs: { selectAllChange: \"selectAllChange\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SelectAllCheckboxDirective.prototype, \"state\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], SelectAllCheckboxDirective.prototype, \"selectAllChange\", void 0);\n__decorate([\n HostBinding('attr.type'),\n __metadata(\"design:type\", String)\n], SelectAllCheckboxDirective.prototype, \"type\", void 0);\nSelectAllCheckboxDirective = __decorate([ __metadata(\"design:paramtypes\", [SelectionService,\n ElementRef,\n Renderer2,\n NgZone])\n], SelectAllCheckboxDirective);\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 */\nlet FilterMenuContainerComponent = class FilterMenuContainerComponent {\n constructor(parentService, childService, localization, cd, menuTabbingService) {\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 this.menuTabbingService = menuTabbingService;\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 ngAfterViewChecked() {\n if (!this.menuTabbingService.isColumnMenu || (this.isLast && this.isExpanded)) {\n this.menuTabbingService.lastFocusable = this.disabled ?\n this.resetButton.nativeElement : this.filterButton.nativeElement;\n }\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n this.menuTabbingService.lastFocusable = undefined;\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 onTab(e, buttonType) {\n if (this.menuTabbingService.firstFocusable && (!this.menuTabbingService.isColumnMenu || this.isLast)) {\n e.preventDefault();\n if (buttonType === 'reset') {\n this.disabled ? this.menuTabbingService.firstFocusable.focus() : this.filterButton.nativeElement.focus();\n }\n else {\n this.menuTabbingService.firstFocusable.focus();\n }\n }\n }\n get clearText() {\n return this.localization.get(\"filterClearButton\");\n }\n get filterText() {\n return this.localization.get(\"filterFilterButton\");\n }\n};\nFilterMenuContainerComponent.ɵfac = function FilterMenuContainerComponent_Factory(t) { return new (t || FilterMenuContainerComponent)(ɵngcc0.ɵɵdirectiveInject(FilterService, 4), ɵngcc0.ɵɵdirectiveInject(FilterService), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(MenuTabbingService)); };\nFilterMenuContainerComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: FilterMenuContainerComponent, selectors: [[\"kendo-grid-filter-menu-container\"]], viewQuery: function FilterMenuContainerComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c184, 5);\n ɵngcc0.ɵɵviewQuery(_c185, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.resetButton = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.filterButton = _t.first);\n } }, inputs: { actionsClass: \"actionsClass\", menuTabbingService: \"menuTabbingService\", filter: \"filter\", column: \"column\", isLast: \"isLast\", isExpanded: \"isExpanded\" }, outputs: { close: \"close\" }, features: [ɵngcc0.ɵɵProvidersFeature([\n FilterService,\n MenuTabbingService\n ])], decls: 12, vars: 7, consts: [[1, \"k-filter-menu\", \"k-group\", \"k-reset\", \"k-state-border-up\", 3, \"submit\", \"reset\"], [1, \"k-filter-menu-container\"], [3, \"ngSwitch\"], [4, \"ngSwitchCase\"], [3, \"ngClass\"], [\"type\", \"reset\", 1, \"k-button\", \"k-button-solid-base\", \"k-button-solid\", \"k-button-md\", \"k-rounded-md\", \"k-button-rectangle\", 3, \"keydown.tab\"], [\"resetButton\", \"\"], [\"type\", \"submit\", 1, \"k-button\", \"k-button-solid-primary\", \"k-button-solid\", \"k-button-md\", \"k-rounded-md\", \"k-button-rectangle\", 3, \"disabled\", \"keydown.tab\"], [\"filterButton\", \"\"], [\"kendoFilterMenuHost\", \"\", 3, \"filterService\", \"column\", \"filter\", \"menuTabbingService\"], [4, \"ngIf\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]], template: function FilterMenuContainerComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"form\", 0);\n ɵngcc0.ɵɵlistener(\"submit\", function FilterMenuContainerComponent_Template_form_submit_0_listener() { return ctx.submit(); })(\"reset\", function FilterMenuContainerComponent_Template_form_reset_0_listener() { return ctx.reset(); });\n ɵngcc0.ɵɵelementStart(1, \"div\", 1);\n ɵngcc0.ɵɵelementContainerStart(2, 2);\n ɵngcc0.ɵɵtemplate(3, FilterMenuContainerComponent_ng_container_3_Template, 2, 4, \"ng-container\", 3);\n ɵngcc0.ɵɵtemplate(4, FilterMenuContainerComponent_ng_container_4_Template, 2, 1, \"ng-container\", 3);\n ɵngcc0.ɵɵelementContainerEnd();\n ɵngcc0.ɵɵelementStart(5, \"div\", 4)(6, \"button\", 5, 6);\n ɵngcc0.ɵɵlistener(\"keydown.tab\", function FilterMenuContainerComponent_Template_button_keydown_tab_6_listener($event) { return ctx.onTab($event, \"reset\"); });\n ɵngcc0.ɵɵtext(8);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(9, \"button\", 7, 8);\n ɵngcc0.ɵɵlistener(\"keydown.tab\", function FilterMenuContainerComponent_Template_button_keydown_tab_9_listener($event) { return ctx.onTab($event, \"filter\"); });\n ɵngcc0.ɵɵtext(11);\n ɵngcc0.ɵɵelementEnd()()()();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngSwitch\", ctx.hasTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngSwitchCase\", false);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngSwitchCase\", true);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx.actionsClass);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵtextInterpolate(ctx.clearText);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx.disabled);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate(ctx.filterText);\n } }, directives: function () { return [ɵngcc7.ɵNgNoValidate, ɵngcc7.NgControlStatusGroup, ɵngcc7.NgForm, ɵngcc5.NgSwitch, ɵngcc5.NgSwitchCase, FilterMenuHostDirective, ɵngcc5.NgIf, ɵngcc5.NgTemplateOutlet, ɵngcc5.NgClass]; }, encapsulation: 2 });\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], FilterMenuContainerComponent.prototype, \"close\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnComponent)\n], FilterMenuContainerComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], FilterMenuContainerComponent.prototype, \"isLast\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], FilterMenuContainerComponent.prototype, \"isExpanded\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", MenuTabbingService)\n], FilterMenuContainerComponent.prototype, \"menuTabbingService\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], FilterMenuContainerComponent.prototype, \"filter\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FilterMenuContainerComponent.prototype, \"actionsClass\", void 0);\n__decorate([\n ViewChild('resetButton', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], FilterMenuContainerComponent.prototype, \"resetButton\", void 0);\n__decorate([\n ViewChild('filterButton', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], FilterMenuContainerComponent.prototype, \"filterButton\", void 0);\nFilterMenuContainerComponent = __decorate([ __param(0, SkipSelf()),\n __metadata(\"design:paramtypes\", [FilterService,\n FilterService,\n LocalizationService,\n ChangeDetectorRef,\n MenuTabbingService])\n], FilterMenuContainerComponent);\n\n/**\n * @hidden\n */\nlet FilterMenuInputWrapperComponent = class FilterMenuInputWrapperComponent extends FilterInputWrapperComponent {\n constructor(localizationService) {\n super(null);\n this.localizationService = localizationService;\n }\n /**\n * @hidden\n */\n get hostClasses() {\n return false;\n }\n ngAfterViewInit() {\n if (this.isFirstDropDown && this.filterService && this.filterService.menuTabbingService) {\n this.filterService.menuTabbingService.firstFocusable = this.firstOperatorDropDown;\n this.firstOperatorDropDown.focus();\n }\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 onShiftTab(e) {\n e.stopImmediatePropagation();\n if ((!this.menuTabbingService || !this.menuTabbingService.isColumnMenu) && this.isFirstDropDown && this.filterService.menuTabbingService.lastFocusable) {\n e.preventDefault();\n this.filterService.menuTabbingService.lastFocusable.focus();\n }\n }\n get filterMenuDropDownLabel() {\n const localizationMsg = this.localizationService.get('filterMenuOperatorsDropDownLabel') || '';\n const columnName = this.column ? this.column.title || this.column.field : '';\n return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);\n }\n};\nFilterMenuInputWrapperComponent.ɵfac = function FilterMenuInputWrapperComponent_Factory(t) { return new (t || FilterMenuInputWrapperComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nFilterMenuInputWrapperComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: FilterMenuInputWrapperComponent, selectors: [[\"kendo-grid-filter-menu-input-wrapper\"]], viewQuery: function FilterMenuInputWrapperComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(DropDownListComponent, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.firstOperatorDropDown = _t.first);\n } }, inputs: { currentFilter: \"currentFilter\", filterService: \"filterService\", isFirstDropDown: \"isFirstDropDown\", menuTabbingService: \"menuTabbingService\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c150, decls: 2, vars: 4, consts: [[\"kendoFilterMenuDropDown\", \"\", \"textField\", \"text\", \"valueField\", \"value\", 3, \"filterMenuDropDownLabel\", \"data\", \"value\", \"valuePrimitive\", \"valueChange\", \"keydown.shift.tab\"]], template: function FilterMenuInputWrapperComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelementStart(0, \"kendo-dropdownlist\", 0);\n ɵngcc0.ɵɵlistener(\"valueChange\", function FilterMenuInputWrapperComponent_Template_kendo_dropdownlist_valueChange_0_listener($event) { return ctx.operatorChange($event); })(\"keydown.shift.tab\", function FilterMenuInputWrapperComponent_Template_kendo_dropdownlist_keydown_shift_tab_0_listener($event) { return ctx.onShiftTab($event); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵprojection(1);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"filterMenuDropDownLabel\", ctx.filterMenuDropDownLabel)(\"data\", ctx.operators)(\"value\", ctx.currentOperator)(\"valuePrimitive\", true);\n } }, directives: function () { return [ɵngcc8.DropDownListComponent, FilterMenuDropDownListDirective]; }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", FilterService)\n], FilterMenuInputWrapperComponent.prototype, \"filterService\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], FilterMenuInputWrapperComponent.prototype, \"isFirstDropDown\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", MenuTabbingService)\n], FilterMenuInputWrapperComponent.prototype, \"menuTabbingService\", void 0);\n__decorate([\n ViewChild(DropDownListComponent, { static: false }),\n __metadata(\"design:type\", DropDownListComponent)\n], FilterMenuInputWrapperComponent.prototype, \"firstOperatorDropDown\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], FilterMenuInputWrapperComponent.prototype, \"currentFilter\", null);\nFilterMenuInputWrapperComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], FilterMenuInputWrapperComponent);\n\n/**\n * @hidden\n */\nlet StringFilterMenuInputComponent = class StringFilterMenuInputComponent {\n constructor(localizationService) {\n this.localizationService = localizationService;\n this.operators = [];\n }\n get columnLabel() {\n const localizationMsg = this.localizationService.get('filterInputLabel') || '';\n const columnName = this.column ? this.column.title || this.column.field : '';\n return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);\n }\n};\nStringFilterMenuInputComponent.ɵfac = function StringFilterMenuInputComponent_Factory(t) { return new (t || StringFilterMenuInputComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nStringFilterMenuInputComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: StringFilterMenuInputComponent, selectors: [[\"kendo-grid-string-filter-menu-input\"]], inputs: { operators: \"operators\", column: \"column\", filter: \"filter\", operator: \"operator\", currentFilter: \"currentFilter\", filterService: \"filterService\", isFirstDropDown: \"isFirstDropDown\", menuTabbingService: \"menuTabbingService\" }, decls: 2, vars: 11, consts: [[3, \"column\", \"filter\", \"operators\", \"defaultOperator\", \"currentFilter\", \"filterService\", \"isFirstDropDown\", \"menuTabbingService\"], [\"kendoTextBox\", \"\", \"kendoFilterInput\", \"\", 3, \"columnLabel\", \"filterDelay\", \"ngModel\"]], template: function StringFilterMenuInputComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-grid-filter-menu-input-wrapper\", 0);\n ɵngcc0.ɵɵelement(1, \"input\", 1);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"column\", ctx.column)(\"filter\", ctx.filter)(\"operators\", ctx.operators)(\"defaultOperator\", ctx.operator)(\"currentFilter\", ctx.currentFilter)(\"filterService\", ctx.filterService)(\"isFirstDropDown\", ctx.isFirstDropDown)(\"menuTabbingService\", ctx.menuTabbingService);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"columnLabel\", ctx.columnLabel)(\"filterDelay\", 0)(\"ngModel\", ctx.currentFilter == null ? null : ctx.currentFilter.value);\n } }, directives: [FilterMenuInputWrapperComponent, ɵngcc6.TextBoxDirective, ɵngcc7.DefaultValueAccessor, FilterInputDirective, ɵngcc7.NgControlStatus, ɵngcc7.NgModel], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], StringFilterMenuInputComponent.prototype, \"operators\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnComponent)\n], StringFilterMenuInputComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], StringFilterMenuInputComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], StringFilterMenuInputComponent.prototype, \"operator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], StringFilterMenuInputComponent.prototype, \"currentFilter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", FilterService)\n], StringFilterMenuInputComponent.prototype, \"filterService\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], StringFilterMenuInputComponent.prototype, \"isFirstDropDown\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", MenuTabbingService)\n], StringFilterMenuInputComponent.prototype, \"menuTabbingService\", void 0);\nStringFilterMenuInputComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], StringFilterMenuInputComponent);\n\n/**\n * Represents a string-filter menu component.\n * ([see example]({% slug builtinfiltertemplate_grid %}#toc-configuration-components-for-filter-templates)).\n */\nlet StringFilterMenuComponent = class 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 get filterMenuDropDownLabel() {\n const localizationMsg = this.localization.get('filterMenuLogicDropDownLabel') || '';\n const columnName = this.column ? this.column.title || this.column.field : '';\n return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);\n }\n localizationChange() {\n this.logicOperators = logicOperators(this.localization);\n super.localizationChange();\n }\n};\nStringFilterMenuComponent.ɵfac = function StringFilterMenuComponent_Factory(t) { return new (t || StringFilterMenuComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nStringFilterMenuComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: StringFilterMenuComponent, selectors: [[\"kendo-grid-string-filter-menu\"]], hostVars: 2, hostBindings: function StringFilterMenuComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-filtercell\", ctx.hostClasses);\n } }, inputs: { filter: \"filter\", extra: \"extra\", column: \"column\", filterService: \"filterService\", menuTabbingService: \"menuTabbingService\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 3, vars: 9, consts: [[3, \"currentFilter\", \"operators\", \"filterService\", \"column\", \"filter\", \"isFirstDropDown\", \"menuTabbingService\"], [\"kendoFilterMenuDropDown\", \"\", \"class\", \"k-filter-and\", \"textField\", \"text\", \"valueField\", \"value\", 3, \"filterMenuDropDownLabel\", \"data\", \"valuePrimitive\", \"value\", \"valueChange\", 4, \"ngIf\"], [3, \"operators\", \"currentFilter\", \"filterService\", \"column\", \"filter\", \"menuTabbingService\", 4, \"ngIf\"], [\"kendoFilterMenuDropDown\", \"\", \"textField\", \"text\", \"valueField\", \"value\", 1, \"k-filter-and\", 3, \"filterMenuDropDownLabel\", \"data\", \"valuePrimitive\", \"value\", \"valueChange\"], [3, \"operators\", \"currentFilter\", \"filterService\", \"column\", \"filter\", \"menuTabbingService\"]], template: function StringFilterMenuComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-grid-string-filter-menu-input\", 0);\n ɵngcc0.ɵɵtemplate(1, StringFilterMenuComponent_kendo_dropdownlist_1_Template, 1, 4, \"kendo-dropdownlist\", 1);\n ɵngcc0.ɵɵtemplate(2, StringFilterMenuComponent_kendo_grid_string_filter_menu_input_2_Template, 1, 6, \"kendo-grid-string-filter-menu-input\", 2);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"currentFilter\", ctx.firstFilter)(\"operators\", ctx.operators)(\"filterService\", ctx.filterService)(\"column\", ctx.column)(\"filter\", ctx.filter)(\"isFirstDropDown\", true)(\"menuTabbingService\", ctx.menuTabbingService);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.extra);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.extra);\n } }, directives: function () { return [StringFilterMenuInputComponent, ɵngcc5.NgIf, ɵngcc8.DropDownListComponent, FilterMenuDropDownListDirective]; }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-filtercell'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], StringFilterMenuComponent.prototype, \"hostClasses\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnComponent)\n], StringFilterMenuComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], StringFilterMenuComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], StringFilterMenuComponent.prototype, \"extra\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", FilterService)\n], StringFilterMenuComponent.prototype, \"filterService\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", MenuTabbingService)\n], StringFilterMenuComponent.prototype, \"menuTabbingService\", void 0);\nStringFilterMenuComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], StringFilterMenuComponent);\n\n/**\n * Represents a numeric-filter menu component.\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * \n * ```\n */\nlet NumericFilterMenuComponent = class 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 get filterMenuDropDownLabel() {\n const localizationMsg = this.localization.get('filterMenuLogicDropDownLabel') || '';\n const columnName = this.column ? this.column.title || this.column.field : '';\n return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);\n }\n localizationChange() {\n this.logicOperators = logicOperators(this.localization);\n super.localizationChange();\n }\n};\nNumericFilterMenuComponent.ɵfac = function NumericFilterMenuComponent_Factory(t) { return new (t || NumericFilterMenuComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nNumericFilterMenuComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NumericFilterMenuComponent, selectors: [[\"kendo-grid-numeric-filter-menu\"]], hostVars: 2, hostBindings: function NumericFilterMenuComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-filtercell\", ctx.hostClasses);\n } }, inputs: { filter: \"filter\", extra: \"extra\", column: \"column\", filterService: \"filterService\", menuTabbingService: \"menuTabbingService\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 3, vars: 15, consts: [[3, \"currentFilter\", \"operators\", \"filterService\", \"column\", \"filter\", \"format\", \"decimals\", \"spinners\", \"min\", \"max\", \"step\", \"menuTabbingService\", \"isFirstDropDown\"], [\"kendoFilterMenuDropDown\", \"\", \"class\", \"k-filter-and\", \"textField\", \"text\", \"valueField\", \"value\", 3, \"filterMenuDropDownLabel\", \"data\", \"valuePrimitive\", \"value\", \"valueChange\", 4, \"ngIf\"], [3, \"operators\", \"currentFilter\", \"filterService\", \"column\", \"filter\", \"format\", \"decimals\", \"spinners\", \"min\", \"max\", \"step\", \"menuTabbingService\", 4, \"ngIf\"], [\"kendoFilterMenuDropDown\", \"\", \"textField\", \"text\", \"valueField\", \"value\", 1, \"k-filter-and\", 3, \"filterMenuDropDownLabel\", \"data\", \"valuePrimitive\", \"value\", \"valueChange\"], [3, \"operators\", \"currentFilter\", \"filterService\", \"column\", \"filter\", \"format\", \"decimals\", \"spinners\", \"min\", \"max\", \"step\", \"menuTabbingService\"]], template: function NumericFilterMenuComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-grid-numeric-filter-menu-input\", 0);\n ɵngcc0.ɵɵtemplate(1, NumericFilterMenuComponent_kendo_dropdownlist_1_Template, 1, 4, \"kendo-dropdownlist\", 1);\n ɵngcc0.ɵɵtemplate(2, NumericFilterMenuComponent_kendo_grid_numeric_filter_menu_input_2_Template, 1, 12, \"kendo-grid-numeric-filter-menu-input\", 2);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"currentFilter\", ctx.firstFilter)(\"operators\", ctx.operators)(\"filterService\", ctx.filterService)(\"column\", ctx.column)(\"filter\", ctx.filter)(\"format\", ctx.format)(\"decimals\", ctx.decimals)(\"spinners\", ctx.spinners)(\"min\", ctx.min)(\"max\", ctx.max)(\"step\", ctx.step)(\"menuTabbingService\", ctx.menuTabbingService)(\"isFirstDropDown\", true);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.extra);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.extra);\n } }, directives: function () { return [NumericFilterMenuInputComponent, ɵngcc5.NgIf, ɵngcc8.DropDownListComponent, FilterMenuDropDownListDirective]; }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-filtercell'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], NumericFilterMenuComponent.prototype, \"hostClasses\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnComponent)\n], NumericFilterMenuComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], NumericFilterMenuComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], NumericFilterMenuComponent.prototype, \"extra\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", FilterService)\n], NumericFilterMenuComponent.prototype, \"filterService\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", MenuTabbingService)\n], NumericFilterMenuComponent.prototype, \"menuTabbingService\", void 0);\nNumericFilterMenuComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], NumericFilterMenuComponent);\n\n/**\n * @hidden\n */\nlet NumericFilterMenuInputComponent = class NumericFilterMenuInputComponent {\n constructor(localization) {\n this.localization = localization;\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 messageFor(key) {\n return this.localization.get(key);\n }\n /**\n * @hidden\n */\n get columnLabel() {\n const localizationMsg = this.localization.get('filterInputLabel') || '';\n const columnName = this.column ? this.column.title || this.column.field : '';\n return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);\n }\n};\nNumericFilterMenuInputComponent.ɵfac = function NumericFilterMenuInputComponent_Factory(t) { return new (t || NumericFilterMenuInputComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nNumericFilterMenuInputComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NumericFilterMenuInputComponent, selectors: [[\"kendo-grid-numeric-filter-menu-input\"]], inputs: { operators: \"operators\", step: \"step\", spinners: \"spinners\", column: \"column\", filter: \"filter\", operator: \"operator\", currentFilter: \"currentFilter\", filterService: \"filterService\", isFirstDropDown: \"isFirstDropDown\", menuTabbingService: \"menuTabbingService\", min: \"min\", max: \"max\", decimals: \"decimals\", format: \"format\" }, decls: 3, vars: 20, consts: [[3, \"column\", \"filter\", \"operators\", \"defaultOperator\", \"currentFilter\", \"filterService\", \"isFirstDropDown\", \"menuTabbingService\"], [\"kendoFilterInput\", \"\", 3, \"columnLabel\", \"filterDelay\", \"autoCorrect\", \"value\", \"format\", \"decimals\", \"spinners\", \"min\", \"max\", \"step\"], [3, \"increment\", \"decrement\"]], template: function NumericFilterMenuInputComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-grid-filter-menu-input-wrapper\", 0)(1, \"kendo-numerictextbox\", 1);\n ɵngcc0.ɵɵelement(2, \"kendo-numerictextbox-messages\", 2);\n ɵngcc0.ɵɵelementEnd()();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"column\", ctx.column)(\"filter\", ctx.filter)(\"operators\", ctx.operators)(\"defaultOperator\", ctx.operator)(\"currentFilter\", ctx.currentFilter)(\"filterService\", ctx.filterService)(\"isFirstDropDown\", ctx.isFirstDropDown)(\"menuTabbingService\", ctx.menuTabbingService);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"columnLabel\", ctx.columnLabel)(\"filterDelay\", 0)(\"autoCorrect\", true)(\"value\", ctx.currentFilter == null ? null : ctx.currentFilter.value)(\"format\", ctx.format)(\"decimals\", ctx.decimals)(\"spinners\", ctx.spinners)(\"min\", ctx.min)(\"max\", ctx.max)(\"step\", ctx.step);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"increment\", ctx.messageFor(\"filterNumericIncrement\"))(\"decrement\", ctx.messageFor(\"filterNumericDecrement\"));\n } }, directives: [FilterMenuInputWrapperComponent, ɵngcc6.NumericTextBoxComponent, FilterInputDirective, ɵngcc6.NumericTextBoxCustomMessagesComponent], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], NumericFilterMenuInputComponent.prototype, \"operators\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnComponent)\n], NumericFilterMenuInputComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], NumericFilterMenuInputComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], NumericFilterMenuInputComponent.prototype, \"operator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], NumericFilterMenuInputComponent.prototype, \"currentFilter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", FilterService)\n], NumericFilterMenuInputComponent.prototype, \"filterService\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], NumericFilterMenuInputComponent.prototype, \"isFirstDropDown\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", MenuTabbingService)\n], NumericFilterMenuInputComponent.prototype, \"menuTabbingService\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], NumericFilterMenuInputComponent.prototype, \"step\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], NumericFilterMenuInputComponent.prototype, \"min\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], NumericFilterMenuInputComponent.prototype, \"max\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], NumericFilterMenuInputComponent.prototype, \"spinners\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], NumericFilterMenuInputComponent.prototype, \"decimals\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], NumericFilterMenuInputComponent.prototype, \"format\", void 0);\nNumericFilterMenuInputComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], NumericFilterMenuInputComponent);\n\n/**\n * Represents a date-filter menu component.\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * \n * ```\n */\nlet DateFilterMenuComponent = class 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 get filterMenuDropDownLabel() {\n const localizationMsg = this.localization.get('filterMenuLogicDropDownLabel') || '';\n const columnName = this.column ? this.column.title || this.column.field : '';\n return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);\n }\n localizationChange() {\n this.logicOperators = logicOperators(this.localization);\n super.localizationChange();\n }\n};\nDateFilterMenuComponent.ɵfac = function DateFilterMenuComponent_Factory(t) { return new (t || DateFilterMenuComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nDateFilterMenuComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DateFilterMenuComponent, selectors: [[\"kendo-grid-date-filter-menu\"]], hostVars: 2, hostBindings: function DateFilterMenuComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-filtercell\", ctx.hostClasses);\n } }, inputs: { filter: \"filter\", extra: \"extra\", column: \"column\", filterService: \"filterService\", menuTabbingService: \"menuTabbingService\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 3, vars: 18, consts: [[3, \"currentFilter\", \"operators\", \"filterService\", \"column\", \"filter\", \"activeView\", \"bottomView\", \"topView\", \"format\", \"formatPlaceholder\", \"placeholder\", \"min\", \"max\", \"weekNumber\", \"isFirstDropDown\", \"menuTabbingService\"], [\"kendoFilterMenuDropDown\", \"\", \"class\", \"k-filter-and\", \"textField\", \"text\", \"valueField\", \"value\", 3, \"filterMenuDropDownLabel\", \"data\", \"valuePrimitive\", \"value\", \"valueChange\", 4, \"ngIf\"], [3, \"operators\", \"currentFilter\", \"filterService\", \"column\", \"filter\", \"activeView\", \"bottomView\", \"topView\", \"format\", \"formatPlaceholder\", \"placeholder\", \"min\", \"max\", \"weekNumber\", \"menuTabbingService\", 4, \"ngIf\"], [\"kendoFilterMenuDropDown\", \"\", \"textField\", \"text\", \"valueField\", \"value\", 1, \"k-filter-and\", 3, \"filterMenuDropDownLabel\", \"data\", \"valuePrimitive\", \"value\", \"valueChange\"], [3, \"operators\", \"currentFilter\", \"filterService\", \"column\", \"filter\", \"activeView\", \"bottomView\", \"topView\", \"format\", \"formatPlaceholder\", \"placeholder\", \"min\", \"max\", \"weekNumber\", \"menuTabbingService\"]], template: function DateFilterMenuComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-grid-date-filter-menu-input\", 0);\n ɵngcc0.ɵɵtemplate(1, DateFilterMenuComponent_kendo_dropdownlist_1_Template, 1, 4, \"kendo-dropdownlist\", 1);\n ɵngcc0.ɵɵtemplate(2, DateFilterMenuComponent_kendo_grid_date_filter_menu_input_2_Template, 1, 15, \"kendo-grid-date-filter-menu-input\", 2);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"currentFilter\", ctx.firstFilter)(\"operators\", ctx.operators)(\"filterService\", ctx.filterService)(\"column\", ctx.column)(\"filter\", ctx.filter)(\"activeView\", ctx.activeView)(\"bottomView\", ctx.bottomView)(\"topView\", ctx.topView)(\"format\", ctx.format)(\"formatPlaceholder\", ctx.formatPlaceholder)(\"placeholder\", ctx.placeholder)(\"min\", ctx.min)(\"max\", ctx.max)(\"weekNumber\", ctx.weekNumber)(\"isFirstDropDown\", true)(\"menuTabbingService\", ctx.menuTabbingService);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.extra);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.extra);\n } }, directives: function () { return [DateFilterMenuInputComponent, ɵngcc5.NgIf, ɵngcc8.DropDownListComponent, FilterMenuDropDownListDirective]; }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-filtercell'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DateFilterMenuComponent.prototype, \"hostClasses\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnComponent)\n], DateFilterMenuComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DateFilterMenuComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DateFilterMenuComponent.prototype, \"extra\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", FilterService)\n], DateFilterMenuComponent.prototype, \"filterService\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", MenuTabbingService)\n], DateFilterMenuComponent.prototype, \"menuTabbingService\", void 0);\nDateFilterMenuComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], DateFilterMenuComponent);\n\n/**\n * @hidden\n */\nlet BooleanFilterRadioButtonDirective = class BooleanFilterRadioButtonDirective {\n constructor(hostElement, renderer) {\n this.hostElement = hostElement;\n this.renderer = renderer;\n }\n ngAfterViewInit() {\n this.radioButtonEl = this.hostElement.nativeElement;\n this.renderer.setAttribute(this.hostElement.nativeElement, 'aria-label', this.columnLabel);\n }\n};\nBooleanFilterRadioButtonDirective.ɵfac = function BooleanFilterRadioButtonDirective_Factory(t) { return new (t || BooleanFilterRadioButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nBooleanFilterRadioButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: BooleanFilterRadioButtonDirective, selectors: [[\"\", \"kendoFilterMenuRadioButton\", \"\"]], inputs: { columnLabel: \"columnLabel\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], BooleanFilterRadioButtonDirective.prototype, \"columnLabel\", void 0);\nBooleanFilterRadioButtonDirective = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n Renderer2])\n], BooleanFilterRadioButtonDirective);\n\n/**\n * Represents a Boolean-filter menu component.\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * \n * ```\n */\nlet BooleanFilterMenuComponent = class 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 ngAfterViewInit() {\n this.filterService.menuTabbingService.firstFocusable = this.radioButtons.first.radioButtonEl;\n this.radioButtons.first.radioButtonEl.focus();\n }\n /**\n * @hidden\n */\n radioId(value) {\n return `${this.idPrefix}_${value}`;\n }\n /**\n * @hidden\n */\n onChange(value, input) {\n this.applyFilter(this.updateFilter({\n field: this.column.field,\n operator: \"eq\",\n value: value\n }));\n this.filterService.menuTabbingService.firstFocusable = input;\n }\n /**\n * @hidden\n */\n isSelected(radioValue) {\n return this.filtersByField(this.column.field).some(({ value }) => value === radioValue);\n }\n /**\n * @hidden\n */\n onShiftTab(e) {\n if ((!this.menuTabbingService || !this.menuTabbingService.isColumnMenu) && this.filterService.menuTabbingService.lastFocusable) {\n e.preventDefault();\n this.filterService.menuTabbingService.lastFocusable.focus();\n }\n }\n /**\n * @hidden\n */\n get columnLabel() {\n const localizationMsg = this.localization.get('filterInputLabel') || '';\n const columnName = this.column.title || this.column.field;\n return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);\n }\n};\nBooleanFilterMenuComponent.ɵfac = function BooleanFilterMenuComponent_Factory(t) { return new (t || BooleanFilterMenuComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nBooleanFilterMenuComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: BooleanFilterMenuComponent, selectors: [[\"kendo-grid-boolean-filter-menu\"]], viewQuery: function BooleanFilterMenuComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(BooleanFilterRadioButtonDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.radioButtons = _t);\n } }, hostVars: 2, hostBindings: function BooleanFilterMenuComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-filtercell\", ctx.hostClasses);\n } }, inputs: { filter: \"filter\", filterService: \"filterService\", menuTabbingService: \"menuTabbingService\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 2, vars: 1, consts: [[1, \"k-radio-list\", \"k-reset\"], [4, \"ngFor\", \"ngForOf\"], [\"type\", \"radio\", \"kendoFilterMenuRadioButton\", \"\", \"kendoRadioButton\", \"\", 3, \"columnLabel\", \"name\", \"checked\", \"change\", \"keydown.shift.tab\"], [\"input\", \"\"], [1, \"k-radio-label\"]], template: function BooleanFilterMenuComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"ul\", 0);\n ɵngcc0.ɵɵtemplate(1, BooleanFilterMenuComponent_li_1_Template, 5, 6, \"li\", 1);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.items);\n } }, directives: [ɵngcc5.NgForOf, ɵngcc6.RadioButtonDirective, BooleanFilterRadioButtonDirective], encapsulation: 2 });\n__decorate([\n HostBinding('class.k-filtercell'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], BooleanFilterMenuComponent.prototype, \"hostClasses\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], BooleanFilterMenuComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", FilterService)\n], BooleanFilterMenuComponent.prototype, \"filterService\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", MenuTabbingService)\n], BooleanFilterMenuComponent.prototype, \"menuTabbingService\", void 0);\n__decorate([\n ViewChildren(BooleanFilterRadioButtonDirective),\n __metadata(\"design:type\", QueryList)\n], BooleanFilterMenuComponent.prototype, \"radioButtons\", void 0);\nBooleanFilterMenuComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], BooleanFilterMenuComponent);\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 */\nlet FilterMenuHostDirective = class 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 this.component.instance.menuTabbingService = this.menuTabbingService;\n }\n};\nFilterMenuHostDirective.ɵfac = function FilterMenuHostDirective_Factory(t) { return new (t || FilterMenuHostDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ComponentFactoryResolver)); };\nFilterMenuHostDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: FilterMenuHostDirective, selectors: [[\"\", \"kendoFilterMenuHost\", \"\"]], inputs: { filterService: \"filterService\", menuTabbingService: \"menuTabbingService\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", FilterService)\n], FilterMenuHostDirective.prototype, \"filterService\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", MenuTabbingService)\n], FilterMenuHostDirective.prototype, \"menuTabbingService\", void 0);\nFilterMenuHostDirective = __decorate([ __metadata(\"design:paramtypes\", [ViewContainerRef,\n ComponentFactoryResolver])\n], FilterMenuHostDirective);\n\n/**\n * @hidden\n */\nlet DateFilterMenuInputComponent = class DateFilterMenuInputComponent {\n constructor(popupService, localizationService) {\n this.popupService = popupService;\n this.localizationService = localizationService;\n this.operators = [];\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n open(picker) {\n this.subscription = this.popupService.onClose\n .pipe(filter(() => picker.isActive))\n .subscribe(e => e.preventDefault());\n }\n messageFor(key) {\n return this.localizationService.get(key);\n }\n get columnLabel() {\n const localizationMsg = this.localizationService.get('filterInputLabel') || '';\n const columnName = this.column ? this.column.title || this.column.field : '';\n return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);\n }\n};\nDateFilterMenuInputComponent.ɵfac = function DateFilterMenuInputComponent_Factory(t) { return new (t || DateFilterMenuInputComponent)(ɵngcc0.ɵɵdirectiveInject(SinglePopupService), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nDateFilterMenuInputComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DateFilterMenuInputComponent, selectors: [[\"kendo-grid-date-filter-menu-input\"]], inputs: { operators: \"operators\", column: \"column\", filter: \"filter\", operator: \"operator\", currentFilter: \"currentFilter\", filterService: \"filterService\", menuTabbingService: \"menuTabbingService\", format: \"format\", formatPlaceholder: \"formatPlaceholder\", placeholder: \"placeholder\", min: \"min\", max: \"max\", activeView: \"activeView\", bottomView: \"bottomView\", topView: \"topView\", weekNumber: \"weekNumber\", isFirstDropDown: \"isFirstDropDown\" }, decls: 4, vars: 22, consts: [[3, \"column\", \"filter\", \"operators\", \"defaultOperator\", \"currentFilter\", \"filterService\", \"isFirstDropDown\", \"menuTabbingService\"], [\"kendoFilterInput\", \"\", 3, \"columnLabel\", \"filterDelay\", \"value\", \"placeholder\", \"formatPlaceholder\", \"format\", \"min\", \"max\", \"activeView\", \"bottomView\", \"topView\", \"weekNumber\", \"open\"], [\"picker\", \"\"], [3, \"toggle\", \"today\"]], template: function DateFilterMenuInputComponent_Template(rf, ctx) { if (rf & 1) {\n const _r1 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-grid-filter-menu-input-wrapper\", 0)(1, \"kendo-datepicker\", 1, 2);\n ɵngcc0.ɵɵlistener(\"open\", function DateFilterMenuInputComponent_Template_kendo_datepicker_open_1_listener() { ɵngcc0.ɵɵrestoreView(_r1); const _r0 = ɵngcc0.ɵɵreference(2); return ctx.open(_r0); });\n ɵngcc0.ɵɵelement(3, \"kendo-datepicker-messages\", 3);\n ɵngcc0.ɵɵelementEnd()();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"column\", ctx.column)(\"filter\", ctx.filter)(\"operators\", ctx.operators)(\"defaultOperator\", ctx.operator)(\"currentFilter\", ctx.currentFilter)(\"filterService\", ctx.filterService)(\"isFirstDropDown\", ctx.isFirstDropDown)(\"menuTabbingService\", ctx.menuTabbingService);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"columnLabel\", ctx.columnLabel)(\"filterDelay\", 0)(\"value\", ctx.currentFilter == null ? null : ctx.currentFilter.value)(\"placeholder\", ctx.placeholder)(\"formatPlaceholder\", ctx.formatPlaceholder)(\"format\", ctx.format)(\"min\", ctx.min)(\"max\", ctx.max)(\"activeView\", ctx.activeView)(\"bottomView\", ctx.bottomView)(\"topView\", ctx.topView)(\"weekNumber\", ctx.weekNumber);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"toggle\", ctx.messageFor(\"filterDateToggle\"))(\"today\", ctx.messageFor(\"filterDateToday\"));\n } }, directives: [FilterMenuInputWrapperComponent, ɵngcc9.DatePickerComponent, FilterInputDirective, ɵngcc9.DatePickerCustomMessagesComponent], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], DateFilterMenuInputComponent.prototype, \"operators\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnComponent)\n], DateFilterMenuInputComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DateFilterMenuInputComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateFilterMenuInputComponent.prototype, \"operator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DateFilterMenuInputComponent.prototype, \"currentFilter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", FilterService)\n], DateFilterMenuInputComponent.prototype, \"filterService\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", MenuTabbingService)\n], DateFilterMenuInputComponent.prototype, \"menuTabbingService\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateFilterMenuInputComponent.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DateFilterMenuInputComponent.prototype, \"formatPlaceholder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateFilterMenuInputComponent.prototype, \"placeholder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], DateFilterMenuInputComponent.prototype, \"min\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], DateFilterMenuInputComponent.prototype, \"max\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateFilterMenuInputComponent.prototype, \"activeView\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateFilterMenuInputComponent.prototype, \"bottomView\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateFilterMenuInputComponent.prototype, \"topView\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DateFilterMenuInputComponent.prototype, \"weekNumber\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DateFilterMenuInputComponent.prototype, \"isFirstDropDown\", void 0);\nDateFilterMenuInputComponent = __decorate([ __metadata(\"design:paramtypes\", [SinglePopupService,\n LocalizationService])\n], DateFilterMenuInputComponent);\n\n/**\n * @hidden\n */\nlet FilterMenuDropDownListDirective = class FilterMenuDropDownListDirective {\n constructor(host) {\n this.host = host;\n this.keydownHandler = (e) => {\n if (e.keyCode === Keys.Escape && this.host.isOpen) {\n e.stopPropagation();\n this.host.toggle(false);\n }\n };\n }\n ngAfterViewInit() {\n const wrapperElement = this.host.wrapper.nativeElement;\n wrapperElement.setAttribute('aria-label', this.filterMenuDropDownLabel);\n wrapperElement.addEventListener('keydown', this.keydownHandler, true);\n }\n ngOnDestroy() {\n this.host.wrapper.nativeElement.removeEventListener('keydown', this.keydownHandler);\n }\n};\nFilterMenuDropDownListDirective.ɵfac = function FilterMenuDropDownListDirective_Factory(t) { return new (t || FilterMenuDropDownListDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc8.DropDownListComponent)); };\nFilterMenuDropDownListDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: FilterMenuDropDownListDirective, selectors: [[\"\", \"kendoFilterMenuDropDown\", \"\"]], inputs: { filterMenuDropDownLabel: \"filterMenuDropDownLabel\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FilterMenuDropDownListDirective.prototype, \"filterMenuDropDownLabel\", void 0);\nFilterMenuDropDownListDirective = __decorate([ __metadata(\"design:paramtypes\", [DropDownListComponent])\n], FilterMenuDropDownListDirective);\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 FilterMenuDropDownListDirective,\n BooleanFilterRadioButtonDirective\n];\nconst ENTRY_COMPONENTS$1 = [\n StringFilterMenuComponent,\n NumericFilterMenuComponent,\n DateFilterMenuComponent,\n BooleanFilterMenuComponent\n];\n/**\n * @hidden\n */\nlet FilterMenuModule = class FilterMenuModule {\n static exports() {\n return [\n StringFilterMenuComponent,\n FilterMenuTemplateDirective,\n NumericFilterMenuComponent,\n DateFilterMenuComponent,\n BooleanFilterMenuComponent,\n FilterMenuDropDownListDirective,\n BooleanFilterRadioButtonDirective,\n SharedFilterModule.exports()\n ];\n }\n};\nFilterMenuModule.ɵfac = function FilterMenuModule_Factory(t) { return new (t || FilterMenuModule)(); };\nFilterMenuModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: FilterMenuModule });\nFilterMenuModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[SharedFilterModule], SharedFilterModule] });\n\n/**\n * @hidden\n */\nlet ColumnListComponent = class 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 ngOnChanges(changes) {\n if (!this.service) {\n return;\n }\n if (changes.isLast && this.isLast) {\n this.service.menuTabbingService.lastFocusable = this.applyButton.nativeElement;\n }\n if (changes.isExpanded && this.isExpanded && this.isLast && this.applyButton) {\n this.service.menuTabbingService.lastFocusable = this.applyButton.nativeElement;\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 onTab(e) {\n if (this.isLast) {\n e.preventDefault();\n if (this.service) {\n this.service.menuTabbingService.firstFocusable.focus();\n }\n }\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.ɵfac = function ColumnListComponent_Factory(t) { return new (t || ColumnListComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nColumnListComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColumnListComponent, selectors: [[\"kendo-grid-columnlist\"]], viewQuery: function ColumnListComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c186, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.applyButton = _t.first);\n } }, hostVars: 2, hostBindings: function ColumnListComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-column-list-wrapper\", ctx.className);\n } }, inputs: { autoSync: \"autoSync\", allowHideAll: \"allowHideAll\", actionsClass: \"actionsClass\", columns: \"columns\", applyText: \"applyText\", resetText: \"resetText\", isLast: \"isLast\", isExpanded: \"isExpanded\", service: \"service\" }, outputs: { reset: \"reset\", apply: \"apply\", columnChange: \"columnChange\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], decls: 3, vars: 2, consts: [[1, \"k-column-list\"], [\"class\", \"k-column-list-item\", 4, \"ngFor\", \"ngForOf\"], [3, \"ngClass\", 4, \"ngIf\"], [1, \"k-column-list-item\"], [\"type\", \"checkbox\", 1, \"k-checkbox\", \"k-checkbox-md\", \"k-rounded-md\", 3, \"checked\", \"disabled\"], [1, \"k-checkbox-label\"], [3, \"ngClass\"], [\"type\", \"button\", 1, \"k-button\", \"k-button-solid-base\", \"k-button-solid\", \"k-button-md\", \"k-rounded-md\", \"k-button-rectangle\", 3, \"click\"], [\"type\", \"button\", 1, \"k-button\", \"k-button-solid-primary\", \"k-button-solid\", \"k-button-md\", \"k-rounded-md\", \"k-button-rectangle\", 3, \"keydown.tab\", \"click\"], [\"applyButton\", \"\"]], template: function ColumnListComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 0);\n ɵngcc0.ɵɵtemplate(1, ColumnListComponent_label_1_Template, 4, 4, \"label\", 1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(2, ColumnListComponent_div_2_Template, 6, 3, \"div\", 2);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.columns);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.autoSync);\n } }, directives: [ɵngcc5.NgForOf, ɵngcc5.NgIf, ɵngcc5.NgClass], encapsulation: 2 });\n__decorate([\n HostBinding(\"class.k-column-list-wrapper\"),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ColumnListComponent.prototype, \"className\", null);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ColumnListComponent.prototype, \"reset\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ColumnListComponent.prototype, \"apply\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ColumnListComponent.prototype, \"columnChange\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], ColumnListComponent.prototype, \"columns\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnListComponent.prototype, \"autoSync\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnListComponent.prototype, \"allowHideAll\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColumnListComponent.prototype, \"applyText\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColumnListComponent.prototype, \"resetText\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColumnListComponent.prototype, \"actionsClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnListComponent.prototype, \"isLast\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnListComponent.prototype, \"isExpanded\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnMenuService)\n], ColumnListComponent.prototype, \"service\", void 0);\n__decorate([\n ViewChild('applyButton', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], ColumnListComponent.prototype, \"applyButton\", void 0);\nColumnListComponent = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n NgZone,\n Renderer2])\n], ColumnListComponent);\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 */\nlet ColumnChooserComponent = class 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.ɵfac = function ColumnChooserComponent_Factory(t) { return new (t || ColumnChooserComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ColumnInfoService), ɵngcc0.ɵɵdirectiveInject(ɵngcc3.PopupService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nColumnChooserComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColumnChooserComponent, selectors: [[\"kendo-grid-column-chooser\"]], inputs: { autoSync: \"autoSync\", allowHideAll: \"allowHideAll\" }, decls: 5, vars: 1, consts: [[\"type\", \"button\", 1, \"k-button\", \"k-button-flat-base\", \"k-button-flat\", \"k-icon-button\", \"k-button-md\", \"k-rounded-md\", \"k-button-rectangle\", \"k-icon-button\", 3, \"click\"], [\"anchor\", \"\"], [1, \"k-button-icon\", \"k-icon\", \"k-i-columns\"], [\"template\", \"\"], [1, \"k-column-chooser-title\"], [3, \"columns\", \"applyText\", \"resetText\", \"autoSync\", \"allowHideAll\", \"apply\", \"columnChange\"]], template: function ColumnChooserComponent_Template(rf, ctx) { if (rf & 1) {\n const _r6 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 0, 1);\n ɵngcc0.ɵɵlistener(\"click\", function ColumnChooserComponent_Template_button_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r6); const _r0 = ɵngcc0.ɵɵreference(1); const _r1 = ɵngcc0.ɵɵreference(4); return ctx.toggle(_r0, _r1); });\n ɵngcc0.ɵɵelement(2, \"span\", 2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, ColumnChooserComponent_ng_template_3_Template, 3, 6, \"ng-template\", null, 3, ɵngcc0.ɵɵtemplateRefExtractor);\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"title\", ctx.localization.get(\"columns\"));\n } }, directives: [ColumnListComponent], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnChooserComponent.prototype, \"autoSync\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnChooserComponent.prototype, \"allowHideAll\", void 0);\nColumnChooserComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService,\n ColumnInfoService,\n PopupService,\n NgZone,\n Renderer2,\n ChangeDetectorRef])\n], ColumnChooserComponent);\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.ɵfac = function ColumnMenuItemBase_Factory(t) { return new (t || ColumnMenuItemBase)(); };\nColumnMenuItemBase.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ColumnMenuItemBase, hostVars: 2, hostBindings: function ColumnMenuItemBase_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-columnmenu-item-wrapper\", ctx.hostClass);\n } }, inputs: { service: \"service\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnMenuService)\n], ColumnMenuItemBase.prototype, \"service\", void 0);\n__decorate([\n HostBinding('class.k-columnmenu-item-wrapper'),\n __metadata(\"design:type\", Boolean)\n], ColumnMenuItemBase.prototype, \"hostClass\", void 0);\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 */\nlet ColumnMenuChooserComponent = class ColumnMenuChooserComponent extends ColumnMenuItemBase {\n constructor(localization, columnInfoService, changeDetector, hostElement) {\n super();\n this.localization = localization;\n this.columnInfoService = columnInfoService;\n this.changeDetector = changeDetector;\n this.hostElement = hostElement;\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.isLast = 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 /**\n * @hidden\n */\n onCollapse() {\n this.expanded = false;\n if (this.isLast) {\n this.service.menuTabbingService.lastFocusable = this.hostElement.nativeElement.querySelector('.k-columnmenu-item');\n }\n this.collapse.emit();\n }\n /**\n * @hidden\n */\n onExpand() {\n this.expanded = true;\n this.expand.emit();\n }\n};\nColumnMenuChooserComponent.ɵfac = function ColumnMenuChooserComponent_Factory(t) { return new (t || ColumnMenuChooserComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ColumnInfoService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nColumnMenuChooserComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColumnMenuChooserComponent, selectors: [[\"kendo-grid-columnmenu-chooser\"]], inputs: { expanded: \"expanded\", isLast: \"isLast\" }, outputs: { expand: \"expand\", collapse: \"collapse\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 2, vars: 2, consts: [[\"icon\", \"columns\", 3, \"text\", \"expanded\", \"collapse\", \"expand\"], [\"kendoGridColumnMenuItemContentTemplate\", \"\"], [3, \"applyText\", \"resetText\", \"columns\", \"autoSync\", \"allowHideAll\", \"actionsClass\", \"isLast\", \"isExpanded\", \"service\", \"apply\"]], template: function ColumnMenuChooserComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-grid-columnmenu-item\", 0);\n ɵngcc0.ɵɵlistener(\"collapse\", function ColumnMenuChooserComponent_Template_kendo_grid_columnmenu_item_collapse_0_listener() { return ctx.onCollapse(); })(\"expand\", function ColumnMenuChooserComponent_Template_kendo_grid_columnmenu_item_expand_0_listener() { return ctx.onExpand(); });\n ɵngcc0.ɵɵtemplate(1, ColumnMenuChooserComponent_ng_template_1_Template, 1, 9, \"ng-template\", 1);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"text\", ctx.localization.get(\"columns\"))(\"expanded\", ctx.expanded);\n } }, directives: function () { return [ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnListComponent]; }, encapsulation: 2 });\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ColumnMenuChooserComponent.prototype, \"expand\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ColumnMenuChooserComponent.prototype, \"collapse\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnMenuChooserComponent.prototype, \"expanded\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnMenuChooserComponent.prototype, \"isLast\", void 0);\nColumnMenuChooserComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService,\n ColumnInfoService,\n ChangeDetectorRef,\n ElementRef])\n], ColumnMenuChooserComponent);\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 * ```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 */\nlet ColumnMenuFilterComponent = class ColumnMenuFilterComponent extends ColumnMenuItemBase {\n constructor(localization, hostElement) {\n super();\n this.localization = localization;\n this.hostElement = hostElement;\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.isLast = false;\n /**\n * @hidden\n */\n this.actionsClass = 'k-columnmenu-actions';\n }\n /**\n * @hidden\n */\n onCollapse() {\n this.expanded = false;\n if (this.isLast) {\n this.service.menuTabbingService.lastFocusable = this.hostElement.nativeElement.querySelector('.k-columnmenu-item');\n }\n this.collapse.emit();\n }\n /**\n * @hidden\n */\n onExpand() {\n this.expanded = true;\n this.expand.emit();\n }\n};\nColumnMenuFilterComponent.ɵfac = function ColumnMenuFilterComponent_Factory(t) { return new (t || ColumnMenuFilterComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nColumnMenuFilterComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColumnMenuFilterComponent, selectors: [[\"kendo-grid-columnmenu-filter\"]], inputs: { expanded: \"expanded\", isLast: \"isLast\" }, outputs: { expand: \"expand\", collapse: \"collapse\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 2, vars: 2, consts: [[\"icon\", \"filter\", 3, \"text\", \"expanded\", \"collapse\", \"expand\"], [\"kendoGridColumnMenuItemContentTemplate\", \"\"], [3, \"column\", \"menuTabbingService\", \"filter\", \"actionsClass\", \"isLast\", \"isExpanded\", \"keydown.shift.tab\", \"close\"]], template: function ColumnMenuFilterComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-grid-columnmenu-item\", 0);\n ɵngcc0.ɵɵlistener(\"collapse\", function ColumnMenuFilterComponent_Template_kendo_grid_columnmenu_item_collapse_0_listener() { return ctx.onCollapse(); })(\"expand\", function ColumnMenuFilterComponent_Template_kendo_grid_columnmenu_item_expand_0_listener() { return ctx.onExpand(); });\n ɵngcc0.ɵɵtemplate(1, ColumnMenuFilterComponent_ng_template_1_Template, 1, 6, \"ng-template\", 1);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"text\", ctx.localization.get(\"filter\"))(\"expanded\", ctx.expanded);\n } }, directives: function () { return [ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, FilterMenuContainerComponent]; }, encapsulation: 2 });\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ColumnMenuFilterComponent.prototype, \"expand\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ColumnMenuFilterComponent.prototype, \"collapse\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnMenuFilterComponent.prototype, \"expanded\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnMenuFilterComponent.prototype, \"isLast\", void 0);\nColumnMenuFilterComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService,\n ElementRef])\n], ColumnMenuFilterComponent);\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 */\nlet ColumnMenuItemContentTemplateDirective = class ColumnMenuItemContentTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nColumnMenuItemContentTemplateDirective.ɵfac = function ColumnMenuItemContentTemplateDirective_Factory(t) { return new (t || ColumnMenuItemContentTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nColumnMenuItemContentTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ColumnMenuItemContentTemplateDirective, selectors: [[\"\", \"kendoGridColumnMenuItemContentTemplate\", \"\"]] });\nColumnMenuItemContentTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], ColumnMenuItemContentTemplateDirective);\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 */\nlet ColumnMenuItemComponent = class ColumnMenuItemComponent {\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 */\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.ɵfac = function ColumnMenuItemComponent_Factory(t) { return new (t || ColumnMenuItemComponent)(); };\nColumnMenuItemComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColumnMenuItemComponent, selectors: [[\"kendo-grid-columnmenu-item\"]], contentQueries: function ColumnMenuItemComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, ColumnMenuItemContentTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.contentTemplate = _t.first);\n } }, inputs: { expanded: \"expanded\", icon: \"icon\", text: \"text\", selected: \"selected\", disabled: \"disabled\" }, outputs: { itemClick: \"itemClick\", expand: \"expand\", collapse: \"collapse\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], decls: 4, vars: 8, consts: [[\"role\", \"button\", 1, \"k-columnmenu-item\", 3, \"click\", \"keydown.enter\"], [\"class\", \"k-icon\", 3, \"ngClass\", 4, \"ngIf\"], [\"style\", \"overflow:hidden;\", \"class\", \"k-columnmenu-item-content\", 4, \"ngIf\"], [1, \"k-icon\", 3, \"ngClass\"], [1, \"k-columnmenu-item-content\", 2, \"overflow\", \"hidden\"], [3, \"ngTemplateOutlet\"]], template: function ColumnMenuItemComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 0);\n ɵngcc0.ɵɵlistener(\"click\", function ColumnMenuItemComponent_Template_div_click_0_listener($event) { return ctx.onClick($event); })(\"keydown.enter\", function ColumnMenuItemComponent_Template_div_keydown_enter_0_listener($event) { return ctx.onClick($event); });\n ɵngcc0.ɵɵtemplate(1, ColumnMenuItemComponent_span_1_Template, 1, 1, \"span\", 1);\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, ColumnMenuItemComponent_div_3_Template, 3, 2, \"div\", 2);\n } if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-state-selected\", ctx.selected)(\"k-state-disabled\", ctx.disabled);\n ɵngcc0.ɵɵattribute(\"aria-expanded\", ctx.expanded);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.icon);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx.text, \" \");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.contentTemplate);\n } }, directives: [ɵngcc5.NgIf, ɵngcc5.NgClass, ɵngcc5.NgTemplateOutlet], encapsulation: 2, data: { animation: [\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__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ColumnMenuItemComponent.prototype, \"itemClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ColumnMenuItemComponent.prototype, \"expand\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ColumnMenuItemComponent.prototype, \"collapse\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColumnMenuItemComponent.prototype, \"icon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColumnMenuItemComponent.prototype, \"text\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnMenuItemComponent.prototype, \"selected\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnMenuItemComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnMenuItemComponent.prototype, \"expanded\", void 0);\n__decorate([\n ContentChild(ColumnMenuItemContentTemplateDirective, { static: false }),\n __metadata(\"design:type\", ColumnMenuItemContentTemplateDirective)\n], ColumnMenuItemComponent.prototype, \"contentTemplate\", void 0);\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 */\nlet ColumnMenuSortComponent = class ColumnMenuSortComponent extends ColumnMenuItemBase {\n constructor(localization, sortService, renderer) {\n super();\n this.localization = localization;\n this.sortService = sortService;\n this.renderer = renderer;\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.ɵfac = function ColumnMenuSortComponent_Factory(t) { return new (t || ColumnMenuSortComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(SortService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nColumnMenuSortComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColumnMenuSortComponent, selectors: [[\"kendo-grid-columnmenu-sort\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 2, vars: 4, consts: [[\"icon\", \"sort-asc-sm\", 3, \"text\", \"selected\", \"itemClick\"], [\"icon\", \"sort-desc-sm\", 3, \"text\", \"selected\", \"itemClick\"]], template: function ColumnMenuSortComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-grid-columnmenu-item\", 0);\n ɵngcc0.ɵɵlistener(\"itemClick\", function ColumnMenuSortComponent_Template_kendo_grid_columnmenu_item_itemClick_0_listener() { return ctx.toggleSort(\"asc\"); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(1, \"kendo-grid-columnmenu-item\", 1);\n ɵngcc0.ɵɵlistener(\"itemClick\", function ColumnMenuSortComponent_Template_kendo_grid_columnmenu_item_itemClick_1_listener() { return ctx.toggleSort(\"desc\"); });\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"text\", ctx.localization.get(\"sortAscending\"))(\"selected\", ctx.sortedAsc);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"text\", ctx.localization.get(\"sortDescending\"))(\"selected\", ctx.sortedDesc);\n } }, directives: [ColumnMenuItemComponent], encapsulation: 2 });\nColumnMenuSortComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService,\n SortService,\n Renderer2])\n], ColumnMenuSortComponent);\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 */\nlet ColumnMenuLockComponent = class 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.ɵfac = function ColumnMenuLockComponent_Factory(t) { return new (t || ColumnMenuLockComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ColumnInfoService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nColumnMenuLockComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColumnMenuLockComponent, selectors: [[\"kendo-grid-columnmenu-lock\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 1, vars: 3, consts: [[3, \"text\", \"icon\", \"disabled\", \"itemClick\"]], template: function ColumnMenuLockComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-grid-columnmenu-item\", 0);\n ɵngcc0.ɵɵlistener(\"itemClick\", function ColumnMenuLockComponent_Template_kendo_grid_columnmenu_item_itemClick_0_listener() { return ctx.toggleColumn(); });\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"text\", ctx.text)(\"icon\", ctx.icon)(\"disabled\", ctx.disabled);\n } }, directives: [ColumnMenuItemComponent], encapsulation: 2 });\nColumnMenuLockComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService,\n ColumnInfoService,\n ChangeDetectorRef])\n], ColumnMenuLockComponent);\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 * ```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 */\nlet ColumnMenuPositionComponent = class ColumnMenuPositionComponent extends ColumnMenuItemBase {\n constructor(localization, hostElement) {\n super();\n this.localization = localization;\n this.hostElement = hostElement;\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 this._isLast = false;\n }\n /**\n * @hidden\n */\n set isLast(value) {\n this.service.menuTabbingService.lastFocusable = this.getLastFocusableItem();\n this._isLast = value;\n }\n /**\n * @hidden\n */\n get isLast() {\n return this._isLast;\n }\n /**\n * @hidden\n */\n onTab(e, isLastItem) {\n if (this.isLast && isLastItem) {\n e.preventDefault();\n e.stopImmediatePropagation();\n if (this.service) {\n this.service.menuTabbingService.firstFocusable.focus();\n }\n }\n }\n /**\n * @hidden\n */\n onCollapse() {\n this.expanded = false;\n if (this.isLast) {\n this.service.menuTabbingService.lastFocusable = this.getLastFocusableItem();\n }\n this.collapse.emit();\n }\n /**\n * @hidden\n */\n onExpand() {\n this.expanded = true;\n if (this.isLast) {\n this.service.menuTabbingService.lastFocusable = this.getLastFocusableItem();\n }\n this.expand.emit();\n }\n getLastFocusableItem() {\n const menuItems = this.hostElement.nativeElement.querySelectorAll('.k-columnmenu-item');\n const lastFocusableIndex = this.expanded ? menuItems.length - 1 : 0;\n return menuItems[lastFocusableIndex];\n }\n};\nColumnMenuPositionComponent.ɵfac = function ColumnMenuPositionComponent_Factory(t) { return new (t || ColumnMenuPositionComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nColumnMenuPositionComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColumnMenuPositionComponent, selectors: [[\"kendo-grid-columnmenu-position\"]], inputs: { expanded: \"expanded\", isLast: \"isLast\", showLock: \"showLock\", showStick: \"showStick\" }, outputs: { expand: \"expand\", collapse: \"collapse\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 2, vars: 2, consts: [[\"icon\", \"set-column-position\", 3, \"text\", \"expanded\", \"keydown.tab\", \"collapse\", \"expand\"], [\"kendoGridColumnMenuItemContentTemplate\", \"\"], [3, \"service\", \"keydown.tab\", 4, \"ngIf\"], [3, \"service\", \"keydown.tab\"]], template: function ColumnMenuPositionComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-grid-columnmenu-item\", 0);\n ɵngcc0.ɵɵlistener(\"keydown.tab\", function ColumnMenuPositionComponent_Template_kendo_grid_columnmenu_item_keydown_tab_0_listener($event) { return ctx.onTab($event, !ctx.expanded); })(\"collapse\", function ColumnMenuPositionComponent_Template_kendo_grid_columnmenu_item_collapse_0_listener() { return ctx.onCollapse(); })(\"expand\", function ColumnMenuPositionComponent_Template_kendo_grid_columnmenu_item_expand_0_listener() { return ctx.onExpand(); });\n ɵngcc0.ɵɵtemplate(1, ColumnMenuPositionComponent_ng_template_1_Template, 2, 2, \"ng-template\", 1);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"text\", ctx.localization.get(\"setColumnPosition\"))(\"expanded\", ctx.expanded);\n } }, directives: function () { return [ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ɵngcc5.NgIf, ColumnMenuLockComponent, ColumnMenuStickComponent]; }, encapsulation: 2 });\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ColumnMenuPositionComponent.prototype, \"expand\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ColumnMenuPositionComponent.prototype, \"collapse\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnMenuPositionComponent.prototype, \"expanded\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnMenuPositionComponent.prototype, \"showLock\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnMenuPositionComponent.prototype, \"showStick\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], ColumnMenuPositionComponent.prototype, \"isLast\", null);\nColumnMenuPositionComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService,\n ElementRef])\n], ColumnMenuPositionComponent);\n\n/**\n * @hidden\n */\nlet ColumnMenuItemDirective = class ColumnMenuItemDirective {\n constructor(hostElement, renderer, ngZone) {\n this.hostElement = hostElement;\n this.renderer = renderer;\n this.ngZone = ngZone;\n this._isFirst = false;\n this._isLast = false;\n this.subs = new Subscription();\n this.onTab = (e) => {\n if (e.keyCode !== Keys.Tab) {\n return;\n }\n if (this.isFirst && e.shiftKey && e.target === this.columnMenuItems[0]) {\n e.preventDefault();\n this.menuItemComponent.service.menuTabbingService.lastFocusable.focus();\n }\n if (this.isLast && !e.shiftKey) {\n const lastColumnMenuItem = this.getLastColumnMenuItem();\n const isExpanded = this.menuItemComponent.expanded;\n if (lastColumnMenuItem === e.target && !isExpanded) {\n e.preventDefault();\n this.menuItemComponent.service.menuTabbingService.firstFocusable.focus();\n }\n }\n };\n }\n set isFirst(value) {\n if (value) {\n const focusableElement = this.columnMenuItems[0];\n this.menuItemComponent.service.menuTabbingService.firstFocusable = focusableElement;\n this.ngZone.runOutsideAngular(() => {\n const firstItemKeydownSub = this.renderer.listen(focusableElement, 'keydown', this.onTab);\n this.subs.add(firstItemKeydownSub);\n });\n }\n this._isFirst = value;\n }\n get isFirst() {\n return this._isFirst;\n }\n set isLast(value) {\n if (!this.columnMenuItems) {\n return;\n }\n if (value) {\n const lastFocusableElement = this.getLastColumnMenuItem();\n this.menuItemComponent.service.menuTabbingService.lastFocusable = lastFocusableElement;\n this.ngZone.runOutsideAngular(() => {\n const lastItemKeydownSub = this.renderer.listen(lastFocusableElement, 'keydown', this.onTab);\n this.subs.add(lastItemKeydownSub);\n });\n if (this.isExpandableItem()) {\n this.menuItemComponent.isLast = true;\n }\n }\n this._isLast = value;\n }\n get isLast() {\n return this._isLast;\n }\n ngAfterViewInit() {\n this.columnMenuItems = this.hostElement.nativeElement.querySelectorAll('.k-columnmenu-item');\n [].slice.apply(this.columnMenuItems).forEach(el => this.renderer.setAttribute(el, 'tabindex', '0'));\n if (this.menuItemComponent instanceof ColumnMenuFilterComponent) {\n this.menuItemComponent.service.menuTabbingService.isColumnMenu = true;\n }\n }\n ngOnDestroy() {\n if (this.subs) {\n this.subs.unsubscribe();\n }\n }\n getLastColumnMenuItem() {\n return (this.columnMenuItems.length === 1 ? this.columnMenuItems[0] : this.columnMenuItems[1]);\n }\n isExpandableItem() {\n return this.menuItemComponent instanceof ColumnMenuFilterComponent ||\n this.menuItemComponent instanceof ColumnMenuChooserComponent ||\n this.menuItemComponent instanceof ColumnMenuPositionComponent;\n }\n};\nColumnMenuItemDirective.ɵfac = function ColumnMenuItemDirective_Factory(t) { return new (t || ColumnMenuItemDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nColumnMenuItemDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ColumnMenuItemDirective, selectors: [[\"\", \"kendoGridColumnMenuItem\", \"\"]], inputs: { menuItemComponent: [\"kendoGridColumnMenuItem\", \"menuItemComponent\"] } });\n__decorate([\n Input('kendoGridColumnMenuItem'),\n __metadata(\"design:type\", Object)\n], ColumnMenuItemDirective.prototype, \"menuItemComponent\", void 0);\nColumnMenuItemDirective = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n Renderer2,\n NgZone])\n], ColumnMenuItemDirective);\n\n/**\n * @hidden\n */\nlet ColumnMenuContainerComponent = class ColumnMenuContainerComponent {\n constructor(service, ngZone) {\n this.service = service;\n this.ngZone = ngZone;\n }\n ngAfterContentInit() {\n if (!this.columnMenuItems.length) {\n return;\n }\n this.columnMenuItems.first.isFirst = true;\n this.columnMenuItems.last.isLast = true;\n this.ngZone.onStable.pipe(take(1)).subscribe(() => this.service.menuTabbingService.firstFocusable.focus());\n }\n};\nColumnMenuContainerComponent.ɵfac = function ColumnMenuContainerComponent_Factory(t) { return new (t || ColumnMenuContainerComponent)(ɵngcc0.ɵɵdirectiveInject(ColumnMenuService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nColumnMenuContainerComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColumnMenuContainerComponent, selectors: [[\"kendo-grid-columnmenu-container\"]], contentQueries: function ColumnMenuContainerComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, ColumnMenuItemDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.columnMenuItems = _t);\n } }, ngContentSelectors: _c150, decls: 1, vars: 0, template: function ColumnMenuContainerComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵprojection(0);\n } }, encapsulation: 2 });\n__decorate([\n ContentChildren(ColumnMenuItemDirective, { descendants: true }),\n __metadata(\"design:type\", QueryList)\n], ColumnMenuContainerComponent.prototype, \"columnMenuItems\", void 0);\nColumnMenuContainerComponent = __decorate([ __metadata(\"design:paramtypes\", [ColumnMenuService,\n NgZone])\n], ColumnMenuContainerComponent);\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 stick or unstick 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-stick` 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 */\nlet ColumnMenuStickComponent = class ColumnMenuStickComponent 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.sticky ? 'unstick' : 'stick');\n }\n get icon() {\n return this.sticky ? 'unstick' : 'stick';\n }\n get disabled() {\n return !this.sticky && this.columnInfoService.unlockedRootCount < 2;\n }\n /**\n * @hidden\n */\n toggleColumn() {\n this.toggleHierarchy(!this.sticky);\n this.close();\n this.changeDetector.markForCheck();\n }\n toggleHierarchy(sticky) {\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.sticky = sticky;\n allChanged.push(column);\n if (column.hasChildren) {\n columns.push(...column.childrenArray);\n }\n }\n this.columnInfoService.changeStuck(allChanged);\n }\n get sticky() {\n return this.service.column.sticky;\n }\n};\nColumnMenuStickComponent.ɵfac = function ColumnMenuStickComponent_Factory(t) { return new (t || ColumnMenuStickComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ColumnInfoService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nColumnMenuStickComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColumnMenuStickComponent, selectors: [[\"kendo-grid-columnmenu-stick\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 1, vars: 3, consts: [[3, \"text\", \"icon\", \"disabled\", \"itemClick\"]], template: function ColumnMenuStickComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-grid-columnmenu-item\", 0);\n ɵngcc0.ɵɵlistener(\"itemClick\", function ColumnMenuStickComponent_Template_kendo_grid_columnmenu_item_itemClick_0_listener() { return ctx.toggleColumn(); });\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"text\", ctx.text)(\"icon\", ctx.icon)(\"disabled\", ctx.disabled);\n } }, directives: [ColumnMenuItemComponent], encapsulation: 2 });\nColumnMenuStickComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService,\n ColumnInfoService,\n ChangeDetectorRef])\n], ColumnMenuStickComponent);\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 ColumnMenuContainerComponent,\n ColumnMenuItemDirective,\n ColumnMenuStickComponent,\n ColumnMenuPositionComponent\n];\n/**\n * @hidden\n */\nlet ColumnMenuModule = class ColumnMenuModule {\n static exports() {\n return [\n ColumnChooserComponent,\n ColumnMenuFilterComponent,\n ColumnMenuItemComponent,\n ColumnMenuItemContentTemplateDirective,\n ColumnMenuSortComponent,\n ColumnMenuLockComponent,\n ColumnMenuStickComponent,\n ColumnMenuPositionComponent,\n ColumnMenuChooserComponent,\n ColumnMenuTemplateDirective,\n ColumnMenuContainerComponent,\n ColumnMenuItemDirective,\n ColumnMenuComponent\n ];\n }\n};\nColumnMenuModule.ɵfac = function ColumnMenuModule_Factory(t) { return new (t || ColumnMenuModule)(); };\nColumnMenuModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: ColumnMenuModule });\nColumnMenuModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule, FilterMenuModule]] });\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 */\nlet HeaderModule = class HeaderModule {\n static exports() {\n return [\n HeaderTemplateDirective,\n SelectAllCheckboxDirective\n ];\n }\n};\nHeaderModule.ɵfac = function HeaderModule_Factory(t) { return new (t || HeaderModule)(); };\nHeaderModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: HeaderModule });\nHeaderModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[...importedModules$2]] });\n\nvar CommandColumnComponent_1;\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 */\nlet CommandColumnComponent = CommandColumnComponent_1 = class CommandColumnComponent extends ColumnBase$1 {\n constructor(parent, idService) {\n super(parent, idService);\n this.parent = parent;\n }\n get templateRef() {\n return this.template ? this.template.templateRef : undefined;\n }\n};\nCommandColumnComponent.ɵfac = function CommandColumnComponent_Factory(t) { return new (t || CommandColumnComponent)(ɵngcc0.ɵɵdirectiveInject(ColumnBase$1, 13), ɵngcc0.ɵɵdirectiveInject(IdService, 8)); };\nCommandColumnComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CommandColumnComponent, selectors: [[\"kendo-grid-command-column\"]], contentQueries: function CommandColumnComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, CellTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.template = _t.first);\n } }, features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: ColumnBase$1,\n useExisting: forwardRef(() => CommandColumnComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function CommandColumnComponent_Template(rf, ctx) { }, encapsulation: 2 });\n__decorate([\n ContentChild(CellTemplateDirective, { static: false }),\n __metadata(\"design:type\", CellTemplateDirective)\n], CommandColumnComponent.prototype, \"template\", void 0);\nCommandColumnComponent = CommandColumnComponent_1 = __decorate([ __param(0, SkipSelf()), __param(0, Host()), __param(0, Optional()), __param(1, Optional()),\n __metadata(\"design:paramtypes\", [ColumnBase$1, IdService])\n], CommandColumnComponent);\n\nvar CheckboxColumnComponent_1;\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 */\nlet CheckboxColumnComponent = CheckboxColumnComponent_1 = class CheckboxColumnComponent extends ColumnBase$1 {\n constructor(parent, idService) {\n super(parent, idService);\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.ɵfac = function CheckboxColumnComponent_Factory(t) { return new (t || CheckboxColumnComponent)(ɵngcc0.ɵɵdirectiveInject(ColumnBase$1, 13), ɵngcc0.ɵɵdirectiveInject(IdService, 8)); };\nCheckboxColumnComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CheckboxColumnComponent, selectors: [[\"kendo-grid-checkbox-column\"]], contentQueries: function CheckboxColumnComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, CellTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.template = _t.first);\n } }, inputs: { showSelectAll: \"showSelectAll\" }, features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: ColumnBase$1,\n useExisting: forwardRef(() => CheckboxColumnComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function CheckboxColumnComponent_Template(rf, ctx) { }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], CheckboxColumnComponent.prototype, \"showSelectAll\", void 0);\n__decorate([\n ContentChild(CellTemplateDirective, { static: false }),\n __metadata(\"design:type\", CellTemplateDirective)\n], CheckboxColumnComponent.prototype, \"template\", void 0);\nCheckboxColumnComponent = CheckboxColumnComponent_1 = __decorate([ __param(0, SkipSelf()), __param(0, Host()), __param(0, Optional()), __param(1, Optional()),\n __metadata(\"design:paramtypes\", [ColumnBase$1, IdService])\n], CheckboxColumnComponent);\n\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 * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * Select row \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 */\nlet SelectionCheckboxDirective = class 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.ɵfac = function SelectionCheckboxDirective_Factory(t) { return new (t || SelectionCheckboxDirective)(ɵngcc0.ɵɵdirectiveInject(SelectionService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nSelectionCheckboxDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SelectionCheckboxDirective, selectors: [[\"\", \"kendoGridSelectionCheckbox\", \"\"]], hostVars: 1, hostBindings: function SelectionCheckboxDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"type\", ctx.type);\n } }, inputs: { itemIndex: [\"kendoGridSelectionCheckbox\", \"itemIndex\"] } });\n__decorate([\n Input(\"kendoGridSelectionCheckbox\"),\n __metadata(\"design:type\", Number)\n], SelectionCheckboxDirective.prototype, \"itemIndex\", void 0);\n__decorate([\n HostBinding('attr.type'),\n __metadata(\"design:type\", String)\n], SelectionCheckboxDirective.prototype, \"type\", void 0);\nSelectionCheckboxDirective = __decorate([ __metadata(\"design:paramtypes\", [SelectionService,\n ElementRef,\n Renderer2,\n NgZone])\n], SelectionCheckboxDirective);\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 */\nlet TableBodyComponent = class TableBodyComponent {\n constructor(detailsService, groupsService, changeNotification, editService, localization, ngZone, renderer, element, domEvents, selectionService, cellSelectionService, 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.cellSelectionService = cellSelectionService;\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 isAriaSelected(item, column) {\n return this.cellSelectionService.isCellSelected(item, column) ||\n this.isRowSelected(item) ? 'true' : 'false';\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-i-minus' : 'k-i-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 isFooterItemInExpandedGroup(item) {\n const footerItem = { data: item.data, index: item.groupIndex, parentGroup: item.group.parentGroup };\n return this.isInExpandedGroup(footerItem);\n }\n isDataItemInExpandedGroup(item) {\n const dataItem = { data: item.group.data, index: item.groupIndex, parentGroup: item.group.parentGroup };\n return this.isInExpandedGroup(dataItem);\n }\n isInExpandedGroup(item) {\n return this.groupsService.isInExpandedGroup(item);\n }\n isParentGroupExpanded(item) {\n return this.groupsService.isInExpandedGroup(item.parentGroup);\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 ngAfterViewChecked() {\n if (this.rowSticky) {\n this.applyStickyRowsStyling();\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 (hasFilterRow(this.filterable) ? 1 : 0);\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 mouseupSubscription = this.renderer.listen(this.element.nativeElement, 'mouseup', clickHandler);\n const clickSubscription = this.renderer.listen(this.element.nativeElement, 'click', clickHandler);\n const contextmenuSubscription = this.renderer.listen(this.element.nativeElement, 'contextmenu', clickHandler);\n const touchstartSubscription = this.renderer.listen(this.element.nativeElement, 'touchstart', clickHandler);\n const touchendSubscription = this.renderer.listen(this.element.nativeElement, 'touchend', clickHandler);\n this.clickSubscription = () => {\n mousedownSubscription();\n mouseupSubscription();\n clickSubscription();\n contextmenuSubscription();\n };\n this.touchSubscription = () => {\n touchstartSubscription();\n touchendSubscription();\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 if (this.touchSubscription) {\n this.touchSubscription();\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 addStickyColumnStyles(column) {\n const stickyStyles = this.columnInfoService.stickyColumnsStyles(column);\n return Object.assign({}, column.style, stickyStyles);\n }\n resizeHandler() {\n this.applyStickyRowsStyling();\n }\n get hasDetailTemplate() {\n return isPresent(this.detailTemplate);\n }\n clickHandler(eventArg) {\n const element = this.element.nativeElement;\n const target = this.eventTarget(eventArg);\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' || eventArg.type === 'touchstart') {\n this.domEvents.cellMousedown.emit(args);\n }\n else if (eventArg.type === 'mouseup' || eventArg.type === 'touchend') {\n this.domEvents.cellMouseup.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 eventTarget(args) {\n if (args.type === 'touchend') {\n const touch = args.changedTouches[0];\n return document.elementFromPoint(touch.clientX, touch.clientY);\n }\n return args.target;\n }\n applyStickyRowsStyling() {\n const stickyRows = nodesToArray(this.element.nativeElement.querySelectorAll('.k-grid-row-sticky'));\n const length = stickyRows.length;\n if (length) {\n let accumulatedHeight = 0;\n const stickyRowsOffsets = [];\n stickyRows.forEach(row => {\n const rowHeight = row.getBoundingClientRect().height;\n stickyRowsOffsets.push({ accumulatedHeight, rowHeight });\n accumulatedHeight += rowHeight;\n });\n stickyRows.forEach((row, index) => {\n this.renderer.setStyle(row, 'top', `${stickyRowsOffsets[index].accumulatedHeight}px`);\n this.renderer.setStyle(row, 'bottom', `${accumulatedHeight - stickyRowsOffsets[index].accumulatedHeight - stickyRowsOffsets[index].rowHeight}px`);\n });\n }\n }\n};\nTableBodyComponent.ɵfac = function TableBodyComponent_Factory(t) { return new (t || TableBodyComponent)(ɵngcc0.ɵɵdirectiveInject(DetailsService), ɵngcc0.ɵɵdirectiveInject(GroupsService), ɵngcc0.ɵɵdirectiveInject(ChangeNotificationService), ɵngcc0.ɵɵdirectiveInject(EditService), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(DomEventsService), ɵngcc0.ɵɵdirectiveInject(SelectionService), ɵngcc0.ɵɵdirectiveInject(CellSelectionService), ɵngcc0.ɵɵdirectiveInject(ColumnInfoService), ɵngcc0.ɵɵdirectiveInject(NavigationService)); };\nTableBodyComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: TableBodyComponent, selectors: [[\"\", \"kendoGridTableBody\", \"\"]], inputs: { columns: \"columns\", groups: \"groups\", skip: \"skip\", noRecordsText: \"noRecordsText\", isLocked: \"isLocked\", skipGroupDecoration: \"skipGroupDecoration\", showGroupFooters: \"showGroupFooters\", lockedColumnsCount: \"lockedColumnsCount\", totalColumnsCount: \"totalColumnsCount\", trackBy: \"trackBy\", rowClass: \"rowClass\", allColumns: \"allColumns\", detailTemplate: \"detailTemplate\", noRecordsTemplate: \"noRecordsTemplate\", data: \"data\", selectable: \"selectable\", filterable: \"filterable\", isLoading: \"isLoading\", isVirtual: \"isVirtual\", cellLoadingTemplate: \"cellLoadingTemplate\", virtualColumns: \"virtualColumns\", rowSticky: \"rowSticky\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], attrs: _c187, decls: 4, vars: 5, consts: [[3, \"ngIf\"], [\"class\", \"k-grid-norecords\", 4, \"ngIf\"], [\"ngFor\", \"\", 3, \"ngForOf\", \"ngForTrackBy\"], [3, \"resize\", 4, \"ngIf\"], [\"kendoGridLogicalRow\", \"\", 1, \"k-grid-add-row\", \"k-grid-edit-row\", 3, \"logicalRowIndex\", \"logicalSlaveRow\", \"logicalCellsCount\", \"logicalSlaveCellsCount\"], [\"class\", \"k-hierarchy-cell\", \"kendoGridLogicalCell\", \"\", \"aria-selected\", \"false\", 3, \"logicalRowIndex\", \"logicalColIndex\", 4, \"ngIf\"], [\"kendoGridCell\", \"\", \"kendoGridLogicalCell\", \"\", \"role\", \"gridcell\", 3, \"rowIndex\", \"columnIndex\", \"isNew\", \"column\", \"dataItem\", \"k-grid-content-sticky\", \"ngClass\", \"left\", \"ngStyle\", \"logicalRowIndex\", \"logicalColIndex\", \"colSpan\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"class\", \"k-group-cell\", \"role\", \"presentation\", 4, \"ngFor\", \"ngForOf\"], [\"role\", \"presentation\", 1, \"k-group-cell\"], [\"kendoGridLogicalCell\", \"\", \"aria-selected\", \"false\", 1, \"k-hierarchy-cell\", 3, \"logicalRowIndex\", \"logicalColIndex\"], [\"kendoGridCell\", \"\", \"kendoGridLogicalCell\", \"\", \"role\", \"gridcell\", 3, \"rowIndex\", \"columnIndex\", \"isNew\", \"column\", \"dataItem\", \"ngClass\", \"ngStyle\", \"logicalRowIndex\", \"logicalColIndex\", \"colSpan\"], [1, \"k-grid-norecords\"], [3, \"ngIf\", \"templateContext\"], [4, \"ngIf\"], [\"kendoGridGroupHeader\", \"\", \"kendoGridLogicalRow\", \"\", 3, \"columns\", \"groups\", \"item\", \"hasDetails\", \"skipGroupDecoration\", \"hasGroupHeaderColumn\", \"groupHeaderColumns\", \"rowIndex\", \"totalColumnsCount\", \"logicalRowIndex\", \"logicalSlaveRow\", \"logicalCellsCount\", \"logicalSlaveCellsCount\", 4, \"ngIf\"], [\"kendoGridLogicalRow\", \"\", 3, \"dataRowIndex\", \"dataItem\", \"logicalRowIndex\", \"logicalSlaveRow\", \"logicalCellsCount\", \"logicalSlaveCellsCount\", \"k-grid-row-sticky\", \"ngClass\", \"k-alt\", \"k-master-row\", \"k-grid-edit-row\", \"k-state-selected\", 4, \"ngIf\"], [\"class\", \"k-detail-row\", \"kendoGridLogicalRow\", \"\", 3, \"k-alt\", \"dataRowIndex\", \"dataItem\", \"logicalRowIndex\", \"logicalSlaveRow\", \"logicalCellsCount\", 4, \"ngIf\"], [\"class\", \"k-group-footer\", \"kendoGridLogicalRow\", \"\", 3, \"logicalRowIndex\", \"logicalSlaveRow\", \"logicalCellsCount\", \"logicalSlaveCellsCount\", 4, \"ngIf\"], [\"kendoGridGroupHeader\", \"\", \"kendoGridLogicalRow\", \"\", 3, \"columns\", \"groups\", \"item\", \"hasDetails\", \"skipGroupDecoration\", \"hasGroupHeaderColumn\", \"groupHeaderColumns\", \"rowIndex\", \"totalColumnsCount\", \"logicalRowIndex\", \"logicalSlaveRow\", \"logicalCellsCount\", \"logicalSlaveCellsCount\"], [\"kendoGridLogicalRow\", \"\", 3, \"dataRowIndex\", \"dataItem\", \"logicalRowIndex\", \"logicalSlaveRow\", \"logicalCellsCount\", \"logicalSlaveCellsCount\", \"ngClass\"], [\"class\", \"k-hierarchy-cell\", \"kendoGridLogicalCell\", \"\", \"aria-selected\", \"false\", 3, \"logicalRowIndex\", \"logicalColIndex\", \"dataRowIndex\", \"dataItem\", \"detailExpandCell\", 4, \"ngIf\"], [\"kendoGridCell\", \"\", \"kendoGridLogicalCell\", \"\", \"role\", \"gridcell\", 3, \"rowIndex\", \"columnIndex\", \"column\", \"dataItem\", \"isLoading\", \"isVirtual\", \"loadingTemplate\", \"logicalRowIndex\", \"logicalColIndex\", \"dataRowIndex\", \"colIndex\", \"colSpan\", \"k-grid-content-sticky\", \"k-touch-action-none\", \"k-touch-action-auto\", \"ngClass\", \"k-grid-edit-cell\", \"ngStyle\", \"k-state-selected\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"kendoGridLogicalCell\", \"\", \"aria-selected\", \"false\", 1, \"k-hierarchy-cell\", 3, \"logicalRowIndex\", \"logicalColIndex\", \"dataRowIndex\", \"dataItem\", \"detailExpandCell\"], [\"class\", \"k-icon\", \"href\", \"#\", \"tabindex\", \"-1\", 3, \"ngClass\", \"click\", 4, \"ngIf\"], [\"href\", \"#\", \"tabindex\", \"-1\", 1, \"k-icon\", 3, \"ngClass\", \"click\"], [\"kendoGridCell\", \"\", \"kendoGridLogicalCell\", \"\", \"role\", \"gridcell\", 3, \"rowIndex\", \"columnIndex\", \"column\", \"dataItem\", \"isLoading\", \"isVirtual\", \"loadingTemplate\", \"logicalRowIndex\", \"logicalColIndex\", \"dataRowIndex\", \"colIndex\", \"colSpan\", \"ngClass\", \"ngStyle\"], [\"kendoGridLogicalRow\", \"\", 1, \"k-detail-row\", 3, \"dataRowIndex\", \"dataItem\", \"logicalRowIndex\", \"logicalSlaveRow\", \"logicalCellsCount\"], [\"class\", \"k-group-cell\", 4, \"ngFor\", \"ngForOf\"], [1, \"k-hierarchy-cell\"], [\"kendoGridLogicalCell\", \"\", \"role\", \"gridcell\", \"aria-selected\", \"false\", 1, \"k-detail-cell\", 3, \"logicalRowIndex\", \"logicalColIndex\", \"dataRowIndex\", \"dataItem\", \"colIndex\", \"colSpan\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [1, \"k-group-cell\"], [\"kendoGridLogicalRow\", \"\", 1, \"k-group-footer\", 3, \"logicalRowIndex\", \"logicalSlaveRow\", \"logicalCellsCount\", \"logicalSlaveCellsCount\"], [\"kendoGridLogicalCell\", \"\", 3, \"logicalRowIndex\", \"logicalColIndex\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"kendoGridLogicalCell\", \"\", 3, \"logicalRowIndex\", \"logicalColIndex\"], [3, \"templateContext\"], [3, \"resize\"]], template: function TableBodyComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, TableBodyComponent_ng_template_0_Template, 4, 8, \"ng-template\", 0);\n ɵngcc0.ɵɵtemplate(1, TableBodyComponent_tr_1_Template, 4, 6, \"tr\", 1);\n ɵngcc0.ɵɵtemplate(2, TableBodyComponent_ng_template_2_Template, 4, 4, \"ng-template\", 2);\n ɵngcc0.ɵɵtemplate(3, TableBodyComponent_kendo_resize_sensor_3_Template, 1, 0, \"kendo-resize-sensor\", 3);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.editService.hasNewItem);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", (ctx.data == null ? null : ctx.data.length) === 0 || ctx.data == null);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.data)(\"ngForTrackBy\", ctx.trackByWrapper);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.rowSticky);\n } }, directives: function () { return [ɵngcc5.NgIf, LogicalRowDirective, ɵngcc5.NgForOf, LogicalCellDirective, CellComponent, ɵngcc5.NgClass, ɵngcc5.NgStyle, TemplateContextDirective, GroupHeaderComponent, ɵngcc5.NgTemplateOutlet, ɵngcc2.ResizeSensorComponent]; }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], TableBodyComponent.prototype, \"columns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], TableBodyComponent.prototype, \"allColumns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], TableBodyComponent.prototype, \"groups\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", DetailTemplateDirective)\n], TableBodyComponent.prototype, \"detailTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", NoRecordsTemplateDirective)\n], TableBodyComponent.prototype, \"noRecordsTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], TableBodyComponent.prototype, \"data\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], TableBodyComponent.prototype, \"skip\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], TableBodyComponent.prototype, \"selectable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], TableBodyComponent.prototype, \"filterable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TableBodyComponent.prototype, \"noRecordsText\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TableBodyComponent.prototype, \"isLocked\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TableBodyComponent.prototype, \"isLoading\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TableBodyComponent.prototype, \"isVirtual\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], TableBodyComponent.prototype, \"cellLoadingTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TableBodyComponent.prototype, \"skipGroupDecoration\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TableBodyComponent.prototype, \"showGroupFooters\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], TableBodyComponent.prototype, \"lockedColumnsCount\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], TableBodyComponent.prototype, \"totalColumnsCount\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TableBodyComponent.prototype, \"virtualColumns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], TableBodyComponent.prototype, \"trackBy\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], TableBodyComponent.prototype, \"rowSticky\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], TableBodyComponent.prototype, \"rowClass\", void 0);\nTableBodyComponent = __decorate([ __metadata(\"design:paramtypes\", [DetailsService,\n GroupsService,\n ChangeNotificationService,\n EditService,\n LocalizationService,\n NgZone,\n Renderer2,\n ElementRef,\n DomEventsService,\n SelectionService,\n CellSelectionService,\n ColumnInfoService,\n NavigationService])\n], TableBodyComponent);\n\n/**\n * @hidden\n */\nlet CellComponent = class CellComponent {\n constructor(editService, idService, localizationService, cellContext) {\n this.editService = editService;\n this.idService = idService;\n this.localizationService = localizationService;\n this.cellContext = cellContext;\n this.isNew = false;\n this.isLoading = false;\n this.isVirtual = 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 showLoading() {\n return this.isVirtual && this.isLoading;\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 selectionCheckboxLabel() {\n return this.localizationService.get('selectionCheckboxLabel');\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 ngAfterContentChecked() {\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.ɵfac = function CellComponent_Factory(t) { return new (t || CellComponent)(ɵngcc0.ɵɵdirectiveInject(EditService), ɵngcc0.ɵɵdirectiveInject(IdService), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(CELL_CONTEXT, 8)); };\nCellComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CellComponent, selectors: [[\"\", \"kendoGridCell\", \"\"]], hostVars: 2, hostBindings: function CellComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-command-cell\", ctx.commandCellClass);\n } }, inputs: { isNew: \"isNew\", isLoading: \"isLoading\", isVirtual: \"isVirtual\", rowIndex: \"rowIndex\", column: \"column\", columnIndex: \"columnIndex\", loadingTemplate: \"loadingTemplate\", dataItem: \"dataItem\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], attrs: _c192, decls: 3, vars: 3, consts: [[3, \"ngSwitch\"], [4, \"ngSwitchCase\"], [4, \"ngIf\", \"ngIfElse\"], [\"loading\", \"\"], [3, \"ngIf\", \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [3, \"ngIf\"], [\"ngFor\", \"\", 3, \"ngForOf\"], [1, \"k-checkbox\", \"k-checkbox-md\", \"k-rounded-md\", 3, \"kendoGridSelectionCheckbox\"], [4, \"ngIf\"], [\"class\", \"k-skeleton-text k-skeleton\", 4, \"ngIf\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [1, \"k-skeleton-text\", \"k-skeleton\"], [3, \"ngSwitch\", 4, \"ngIf\"], [\"kendoGridFocusable\", \"\", 3, \"format\", \"formControl\", 4, \"ngSwitchCase\"], [\"type\", \"checkbox\", \"class\", \"k-checkbox k-checkbox-md k-rounded-md\", \"kendoGridFocusable\", \"\", 3, \"formControl\", 4, \"ngSwitchCase\"], [\"type\", \"text\", \"class\", \"k-textbox k-input k-rounded-md\", \"kendoGridFocusable\", \"\", 3, \"formControl\", 4, \"ngSwitchDefault\"], [\"kendoGridFocusable\", \"\", 3, \"format\", \"formControl\"], [\"type\", \"checkbox\", \"kendoGridFocusable\", \"\", 1, \"k-checkbox\", \"k-checkbox-md\", \"k-rounded-md\", 3, \"formControl\"], [\"type\", \"text\", \"kendoGridFocusable\", \"\", 1, \"k-textbox\", \"k-input\", \"k-rounded-md\", 3, \"formControl\"]], template: function CellComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0, 0);\n ɵngcc0.ɵɵtemplate(1, CellComponent_ng_container_1_Template, 4, 2, \"ng-container\", 1);\n ɵngcc0.ɵɵtemplate(2, CellComponent_ng_container_2_Template, 3, 2, \"ng-container\", 1);\n ɵngcc0.ɵɵelementContainerEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngSwitch\", ctx.isEdited);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngSwitchCase\", false);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngSwitchCase\", true);\n } }, directives: [ɵngcc5.NgSwitch, ɵngcc5.NgSwitchCase, ɵngcc5.NgIf, ɵngcc5.NgTemplateOutlet, ɵngcc5.NgForOf, FocusableDirective, SelectionCheckboxDirective, ɵngcc6.NumericTextBoxComponent, ɵngcc7.NgControlStatus, ɵngcc7.FormControlDirective, ɵngcc9.DatePickerComponent, ɵngcc7.CheckboxControlValueAccessor, ɵngcc5.NgSwitchDefault, ɵngcc7.DefaultValueAccessor], pipes: [FieldAccessorPipe], encapsulation: 2 });\n__decorate([\n HostBinding('class.k-command-cell'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], CellComponent.prototype, \"commandCellClass\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CellComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], CellComponent.prototype, \"columnIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], CellComponent.prototype, \"isNew\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], CellComponent.prototype, \"isLoading\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], CellComponent.prototype, \"isVirtual\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], CellComponent.prototype, \"loadingTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], CellComponent.prototype, \"rowIndex\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CellComponent.prototype, \"dataItem\", void 0);\nCellComponent = __decorate([ __param(3, Optional()), __param(3, Inject(CELL_CONTEXT)),\n __metadata(\"design:paramtypes\", [EditService,\n IdService,\n LocalizationService, Object])\n], CellComponent);\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 */\nlet EditCommandDirective = class 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.ɵfac = function EditCommandDirective_Factory(t) { return new (t || EditCommandDirective)(ɵngcc0.ɵɵdirectiveInject(EditService), ɵngcc0.ɵɵdirectiveInject(CELL_CONTEXT), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nEditCommandDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditCommandDirective, selectors: [[\"\", \"kendoGridEditCommand\", \"\"]], hostVars: 4, hostBindings: function EditCommandDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function EditCommandDirective_click_HostBindingHandler($event) { return ctx.onClick($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"display\", ctx.visible);\n ɵngcc0.ɵɵclassProp(\"k-grid-edit-command\", ctx.commandClass);\n } }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n HostBinding('style.display'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], EditCommandDirective.prototype, \"visible\", null);\n__decorate([\n HostBinding('class.k-grid-edit-command'),\n __metadata(\"design:type\", Boolean)\n], EditCommandDirective.prototype, \"commandClass\", void 0);\n__decorate([\n HostListener('click', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], EditCommandDirective.prototype, \"onClick\", null);\nEditCommandDirective = __decorate([ __param(1, Inject(CELL_CONTEXT)),\n __metadata(\"design:paramtypes\", [EditService, Object, ElementRef,\n Renderer2,\n LocalizationService,\n NgZone])\n], EditCommandDirective);\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 */\nlet CancelCommandDirective = class 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.ɵfac = function CancelCommandDirective_Factory(t) { return new (t || CancelCommandDirective)(ɵngcc0.ɵɵdirectiveInject(EditService), ɵngcc0.ɵɵdirectiveInject(CELL_CONTEXT), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nCancelCommandDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CancelCommandDirective, selectors: [[\"\", \"kendoGridCancelCommand\", \"\"]], hostVars: 4, hostBindings: function CancelCommandDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function CancelCommandDirective_click_HostBindingHandler($event) { return ctx.onClick($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"display\", ctx.visible);\n ɵngcc0.ɵɵclassProp(\"k-grid-cancel-command\", ctx.commandClass);\n } }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n HostBinding('style.display'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], CancelCommandDirective.prototype, \"visible\", null);\n__decorate([\n HostBinding('class.k-grid-cancel-command'),\n __metadata(\"design:type\", Boolean)\n], CancelCommandDirective.prototype, \"commandClass\", void 0);\n__decorate([\n HostListener('click', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], CancelCommandDirective.prototype, \"onClick\", null);\nCancelCommandDirective = __decorate([ __param(1, Inject(CELL_CONTEXT)),\n __metadata(\"design:paramtypes\", [EditService, Object, ElementRef,\n Renderer2,\n LocalizationService,\n NgZone])\n], CancelCommandDirective);\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 */\nlet SaveCommandDirective = class 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.ɵfac = function SaveCommandDirective_Factory(t) { return new (t || SaveCommandDirective)(ɵngcc0.ɵɵdirectiveInject(EditService), ɵngcc0.ɵɵdirectiveInject(CELL_CONTEXT), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nSaveCommandDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SaveCommandDirective, selectors: [[\"\", \"kendoGridSaveCommand\", \"\"]], hostVars: 4, hostBindings: function SaveCommandDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function SaveCommandDirective_click_HostBindingHandler($event) { return ctx.onClick($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"display\", ctx.visible);\n ɵngcc0.ɵɵclassProp(\"k-grid-save-command\", ctx.commandClass);\n } }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n HostBinding('style.display'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], SaveCommandDirective.prototype, \"visible\", null);\n__decorate([\n HostBinding('class.k-grid-save-command'),\n __metadata(\"design:type\", Boolean)\n], SaveCommandDirective.prototype, \"commandClass\", void 0);\n__decorate([\n HostListener('click', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], SaveCommandDirective.prototype, \"onClick\", null);\nSaveCommandDirective = __decorate([ __param(1, Inject(CELL_CONTEXT)),\n __metadata(\"design:paramtypes\", [EditService, Object, ElementRef,\n Renderer2,\n LocalizationService,\n NgZone])\n], SaveCommandDirective);\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 */\nlet RemoveCommandDirective = class 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.ɵfac = function RemoveCommandDirective_Factory(t) { return new (t || RemoveCommandDirective)(ɵngcc0.ɵɵdirectiveInject(EditService), ɵngcc0.ɵɵdirectiveInject(CELL_CONTEXT), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nRemoveCommandDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: RemoveCommandDirective, selectors: [[\"\", \"kendoGridRemoveCommand\", \"\"]], hostVars: 4, hostBindings: function RemoveCommandDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function RemoveCommandDirective_click_HostBindingHandler($event) { return ctx.onClick($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"display\", ctx.visible);\n ɵngcc0.ɵɵclassProp(\"k-grid-remove-command\", ctx.commandClass);\n } }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n HostBinding('style.display'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], RemoveCommandDirective.prototype, \"visible\", null);\n__decorate([\n HostBinding('class.k-grid-remove-command'),\n __metadata(\"design:type\", Boolean)\n], RemoveCommandDirective.prototype, \"commandClass\", void 0);\n__decorate([\n HostListener('click', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], RemoveCommandDirective.prototype, \"onClick\", null);\nRemoveCommandDirective = __decorate([ __param(1, Inject(CELL_CONTEXT)),\n __metadata(\"design:paramtypes\", [EditService, Object, ElementRef,\n Renderer2,\n LocalizationService,\n NgZone])\n], RemoveCommandDirective);\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 */\nlet AddCommandDirective = class 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.ɵfac = function AddCommandDirective_Factory(t) { return new (t || AddCommandDirective)(ɵngcc0.ɵɵdirectiveInject(EditService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nAddCommandDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: AddCommandDirective, selectors: [[\"\", \"kendoGridAddCommand\", \"\"]], hostVars: 2, hostBindings: function AddCommandDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function AddCommandDirective_click_HostBindingHandler($event) { return ctx.onClick($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-grid-add-command\", ctx.commandClass);\n } }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n HostListener('click', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], AddCommandDirective.prototype, \"onClick\", null);\n__decorate([\n HostBinding('class.k-grid-add-command'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], AddCommandDirective.prototype, \"commandClass\", null);\nAddCommandDirective = __decorate([ __metadata(\"design:paramtypes\", [EditService,\n ElementRef,\n Renderer2,\n LocalizationService,\n NgZone])\n], AddCommandDirective);\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 CellLoadingTemplateDirective,\n LoadingTemplateDirective\n];\nconst importedModules$3 = [\n CommonModule,\n ReactiveFormsModule,\n FormsModule,\n SharedModule,\n GroupModule,\n NumericTextBoxModule,\n DatePickerModule,\n ResizeSensorModule\n];\n/**\n * @hidden\n */\nlet BodyModule = class 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 CellLoadingTemplateDirective,\n LoadingTemplateDirective\n ];\n }\n};\nBodyModule.ɵfac = function BodyModule_Factory(t) { return new (t || BodyModule)(); };\nBodyModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: BodyModule });\nBodyModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[...importedModules$3]] });\n\n/**\n * @hidden\n */\nlet FooterComponent = class FooterComponent {\n constructor(columnInfoService) {\n this.columnInfoService = columnInfoService;\n this.columns = [];\n this.groups = [];\n this.lockedColumnsCount = 0;\n this.logicalRowIndex = 0;\n }\n get footerClass() {\n return !this.scrollable;\n }\n get columnsToRender() {\n return columnsToRender(this.columns || []);\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 addStickyStyles(column) {\n const stickyStyles = this.columnInfoService.stickyColumnsStyles(column);\n return Object.assign({}, column.style, stickyStyles);\n }\n};\nFooterComponent.ɵfac = function FooterComponent_Factory(t) { return new (t || FooterComponent)(ɵngcc0.ɵɵdirectiveInject(ColumnInfoService)); };\nFooterComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: FooterComponent, selectors: [[\"\", \"kendoGridFooter\", \"\"]], hostVars: 2, hostBindings: function FooterComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-grid-footer\", ctx.footerClass);\n } }, inputs: { columns: \"columns\", groups: \"groups\", lockedColumnsCount: \"lockedColumnsCount\", logicalRowIndex: \"logicalRowIndex\", detailTemplate: \"detailTemplate\", scrollable: \"scrollable\" }, attrs: _c194, decls: 1, vars: 1, consts: [[3, \"ngIf\"], [\"kendoGridLogicalRow\", \"\", 3, \"logicalRowIndex\", \"logicalSlaveRow\", \"logicalCellsCount\", \"logicalSlaveCellsCount\"], [\"role\", \"presentation\", 3, \"k-group-cell\", 4, \"ngFor\", \"ngForOf\"], [\"role\", \"presentation\", 3, \"k-hierarchy-cell\", 4, \"ngIf\"], [\"kendoGridLogicalCell\", \"\", \"role\", \"columnfooter\", \"aria-selected\", \"false\", 3, \"logicalRowIndex\", \"logicalColIndex\", \"k-grid-footer-sticky\", \"ngClass\", \"ngStyle\", 4, \"ngFor\", \"ngForOf\"], [\"role\", \"presentation\"], [\"kendoGridLogicalCell\", \"\", \"role\", \"columnfooter\", \"aria-selected\", \"false\", 3, \"logicalRowIndex\", \"logicalColIndex\", \"ngClass\", \"ngStyle\"], [3, \"templateContext\"]], template: function FooterComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, FooterComponent_ng_template_0_Template, 4, 9, \"ng-template\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", true);\n } }, directives: [ɵngcc5.NgIf, LogicalRowDirective, ɵngcc5.NgForOf, LogicalCellDirective, ɵngcc5.NgClass, ɵngcc5.NgStyle, TemplateContextDirective], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], FooterComponent.prototype, \"columns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], FooterComponent.prototype, \"groups\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", DetailTemplateDirective)\n], FooterComponent.prototype, \"detailTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], FooterComponent.prototype, \"scrollable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], FooterComponent.prototype, \"lockedColumnsCount\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], FooterComponent.prototype, \"logicalRowIndex\", void 0);\n__decorate([\n HostBinding('class.k-grid-footer'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], FooterComponent.prototype, \"footerClass\", null);\nFooterComponent = __decorate([ __metadata(\"design:paramtypes\", [ColumnInfoService])\n], FooterComponent);\n\nconst exportedModules$3 = [\n FooterComponent\n];\nconst importedModules$4 = [\n CommonModule,\n SharedModule\n];\n/**\n * @hidden\n */\nlet FooterModule = class FooterModule {\n static exports() {\n return [];\n }\n};\nFooterModule.ɵfac = function FooterModule_Factory(t) { return new (t || FooterModule)(); };\nFooterModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: FooterModule });\nFooterModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[...importedModules$4]] });\n\n/**\n * @hidden\n */\nlet ToolbarComponent = class ToolbarComponent {\n constructor(grid) {\n this.grid = grid;\n this.context = {};\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.ɵfac = function ToolbarComponent_Factory(t) { return new (t || ToolbarComponent)(ɵngcc0.ɵɵdirectiveInject(GridComponent)); };\nToolbarComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ToolbarComponent, selectors: [[\"kendo-grid-toolbar\"]], inputs: { position: \"position\" }, decls: 1, vars: 1, consts: [[4, \"ngIf\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]], template: function ToolbarComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ToolbarComponent_0_Template, 1, 2, null, 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.toolbarTemplateRef);\n } }, directives: [ɵngcc5.NgIf, ɵngcc5.NgTemplateOutlet], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ToolbarComponent.prototype, \"position\", null);\nToolbarComponent = __decorate([ __metadata(\"design:paramtypes\", [GridComponent])\n], ToolbarComponent);\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.ɵfac = function EditingDirectiveBase_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nEditingDirectiveBase.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditingDirectiveBase, inputs: { editService: \"editService\", removeConfirmation: \"removeConfirmation\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], EditingDirectiveBase.prototype, \"editService\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], EditingDirectiveBase.prototype, \"removeConfirmation\", void 0);\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}\nRowEditingDirectiveBase.ɵfac = /*@__PURE__*/ function () { let ɵRowEditingDirectiveBase_BaseFactory; return function RowEditingDirectiveBase_Factory(t) { return (ɵRowEditingDirectiveBase_BaseFactory || (ɵRowEditingDirectiveBase_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(RowEditingDirectiveBase)))(t || RowEditingDirectiveBase); }; }();\nRowEditingDirectiveBase.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: RowEditingDirectiveBase, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\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 */\nlet TemplateEditingDirective = class 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.ɵfac = function TemplateEditingDirective_Factory(t) { return new (t || TemplateEditingDirective)(ɵngcc0.ɵɵdirectiveInject(GridComponent), ɵngcc0.ɵɵdirectiveInject(LocalDataChangesService)); };\nTemplateEditingDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: TemplateEditingDirective, selectors: [[\"\", \"kendoGridTemplateEditing\", \"\"]], inputs: { createNewItem: [\"kendoGridTemplateEditing\", \"createNewItem\"] }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input('kendoGridTemplateEditing'),\n __metadata(\"design:type\", Function)\n], TemplateEditingDirective.prototype, \"createNewItem\", void 0);\nTemplateEditingDirective = __decorate([ __metadata(\"design:paramtypes\", [GridComponent, LocalDataChangesService])\n], TemplateEditingDirective);\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 */\nlet ReactiveEditingDirective = class 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.ɵfac = function ReactiveEditingDirective_Factory(t) { return new (t || ReactiveEditingDirective)(ɵngcc0.ɵɵdirectiveInject(GridComponent), ɵngcc0.ɵɵdirectiveInject(LocalDataChangesService)); };\nReactiveEditingDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ReactiveEditingDirective, selectors: [[\"\", \"kendoGridReactiveEditing\", \"\"]], inputs: { createFormGroup: [\"kendoGridReactiveEditing\", \"createFormGroup\"] }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input('kendoGridReactiveEditing'),\n __metadata(\"design:type\", Function)\n], ReactiveEditingDirective.prototype, \"createFormGroup\", void 0);\nReactiveEditingDirective = __decorate([ __metadata(\"design:paramtypes\", [GridComponent, LocalDataChangesService])\n], ReactiveEditingDirective);\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 */\nlet InCellEditingDirective = class InCellEditingDirective extends EditingDirectiveBase {\n constructor(grid, localDataChangesService, cdr) {\n super(grid, localDataChangesService);\n this.grid = grid;\n this.localDataChangesService = localDataChangesService;\n this.cdr = cdr;\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 this.cdr.markForCheck();\n }\n }\n cellCloseHandler(args) {\n const { formGroup, dataItem } = args;\n if (!formGroup.valid) {\n args.preventDefault();\n }\n else if (formGroup.dirty) {\n if (args.originalEvent && args.originalEvent.keyCode === Keys.Escape) {\n return;\n }\n this.editService.assignValues(dataItem, formGroup.value);\n this.editService.update(dataItem);\n }\n }\n};\nInCellEditingDirective.ɵfac = function InCellEditingDirective_Factory(t) { return new (t || InCellEditingDirective)(ɵngcc0.ɵɵdirectiveInject(GridComponent), ɵngcc0.ɵɵdirectiveInject(LocalDataChangesService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nInCellEditingDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: InCellEditingDirective, selectors: [[\"\", \"kendoGridInCellEditing\", \"\"]], inputs: { createFormGroup: [\"kendoGridInCellEditing\", \"createFormGroup\"] }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input('kendoGridInCellEditing'),\n __metadata(\"design:type\", Function)\n], InCellEditingDirective.prototype, \"createFormGroup\", void 0);\nInCellEditingDirective = __decorate([ __metadata(\"design:paramtypes\", [GridComponent,\n LocalDataChangesService,\n ChangeDetectorRef])\n], InCellEditingDirective);\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 */\nlet GroupBindingDirective = class 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 ngAfterContentInit() {\n if (isDevMode() && this.grid.isGroupExpanded) {\n throw new Error('Using the `kendoGridGroupBinding` directive in combination with the `kendoGridExpandGroupBy` directive ' +\n 'or the `isGroupExpanded` callback is not supported. To use grouping with the `kendoGridGroupBinding` directive, ' +\n 'set the Grid `groupable` property to `true`.');\n }\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.ɵfac = function GroupBindingDirective_Factory(t) { return new (t || GroupBindingDirective)(ɵngcc0.ɵɵdirectiveInject(GridComponent), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(LocalDataChangesService)); };\nGroupBindingDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: GroupBindingDirective, selectors: [[\"\", \"kendoGridGroupBinding\", \"\"]], inputs: { kendoGridGroupBinding: \"kendoGridGroupBinding\", sort: \"sort\", filter: \"filter\", group: \"group\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(\"kendoGridGroupBinding\"),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], GroupBindingDirective.prototype, \"kendoGridGroupBinding\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], GroupBindingDirective.prototype, \"sort\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], GroupBindingDirective.prototype, \"filter\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], GroupBindingDirective.prototype, \"group\", null);\nGroupBindingDirective = __decorate([ __metadata(\"design:paramtypes\", [GridComponent, ChangeDetectorRef, LocalDataChangesService])\n], GroupBindingDirective);\n\nconst exportedModules$4 = [\n GridComponent,\n ToolbarTemplateDirective,\n ToolbarComponent,\n GridSpacerComponent,\n DataBindingDirective,\n SelectionDirective,\n CustomMessagesComponent,\n GroupBindingDirective,\n TemplateEditingDirective,\n ReactiveEditingDirective,\n InCellEditingDirective,\n ExpandDetailsDirective,\n ExpandGroupDirective,\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 ExpandGroupDirective,\n GroupBindingDirective,\n GridMarqueeDirective,\n GridSpacerComponent\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 */\nlet GridModule = class GridModule {\n};\nGridModule.ɵfac = function GridModule_Factory(t) { return new (t || GridModule)(); };\nGridModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: GridModule });\nGridModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ 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\nlet PDFMarginComponent = class PDFMarginComponent extends PDFExportMarginComponent {\n};\nPDFMarginComponent.ɵfac = /*@__PURE__*/ function () { let ɵPDFMarginComponent_BaseFactory; return function PDFMarginComponent_Factory(t) { return (ɵPDFMarginComponent_BaseFactory || (ɵPDFMarginComponent_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(PDFMarginComponent)))(t || PDFMarginComponent); }; }();\nPDFMarginComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PDFMarginComponent, selectors: [[\"kendo-grid-pdf-margin\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function PDFMarginComponent_Template(rf, ctx) { }, encapsulation: 2 });\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 */\nlet PDFTemplateDirective = class PDFTemplateDirective extends PDFExportTemplateDirective {\n constructor(templateRef) {\n super(templateRef);\n }\n};\nPDFTemplateDirective.ɵfac = function PDFTemplateDirective_Factory(t) { return new (t || PDFTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nPDFTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: PDFTemplateDirective, selectors: [[\"\", \"kendoGridPDFTemplate\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nPDFTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], PDFTemplateDirective);\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-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$1 = (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$1('div', className);\n};\n/**\n * Configures the settings for the export of Grid in PDF ([see example]({% slug pdfexport_grid %})).\n */\nlet PDFComponent = class 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 /**\n * The delay in milliseconds before exporting the Grid content.\n * Useful for scenarios which involve exporting complex components used in the Grid\n * templates such as charts or data-bound components with asynchronous data retrieval ([see example]({% slug pdfexport_grid %}#toc-exporting-all-pages)).\n *\n * @default 0\n */\n this.delay = 0;\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 /**\n * @hidden\n */\n saveAs(_) {\n throw new Error('Not supported. Use GridComponent.saveAsPDF');\n }\n /**\n * @hidden\n */\n export() {\n throw new Error('Not supported. Use GridComponent.drawPDF');\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$1('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 let onStable = this.ngZone.onStable.asObservable().pipe(take(1));\n if (this.delay > 0) {\n onStable = onStable.pipe(delay(this.delay));\n }\n onStable.subscribe(callback);\n }, 0); // tslint:disable-line: align\n }\n};\nPDFComponent.ɵfac = function PDFComponent_Factory(t) { return new (t || PDFComponent)(ɵngcc0.ɵɵdirectiveInject(PDFService), ɵngcc0.ɵɵdirectiveInject(SuspendService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nPDFComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PDFComponent, selectors: [[\"kendo-grid-pdf\"]], contentQueries: function PDFComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, PDFMarginComponent, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, PDFTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, ColumnBase$1, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.marginComponent = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.pageTemplateDirective = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.columns = _t);\n } }, inputs: { delay: \"delay\", allPages: \"allPages\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function PDFComponent_Template(rf, ctx) { }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], PDFComponent.prototype, \"allPages\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], PDFComponent.prototype, \"delay\", void 0);\n__decorate([\n ContentChildren(ColumnBase$1),\n __metadata(\"design:type\", QueryList)\n], PDFComponent.prototype, \"columns\", void 0);\n__decorate([\n ContentChild(PDFMarginComponent, { static: false }),\n __metadata(\"design:type\", PDFMarginComponent)\n], PDFComponent.prototype, \"marginComponent\", void 0);\n__decorate([\n ContentChild(PDFTemplateDirective, { static: false }),\n __metadata(\"design:type\", PDFTemplateDirective)\n], PDFComponent.prototype, \"pageTemplateDirective\", void 0);\nPDFComponent = __decorate([ __metadata(\"design:paramtypes\", [PDFService,\n SuspendService,\n NgZone,\n ElementRef])\n], PDFComponent);\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 */\nlet PDFCommandDirective = class 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.ɵfac = function PDFCommandDirective_Factory(t) { return new (t || PDFCommandDirective)(ɵngcc0.ɵɵdirectiveInject(PDFService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nPDFCommandDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: PDFCommandDirective, selectors: [[\"\", \"kendoGridPDFCommand\", \"\"]], hostVars: 2, hostBindings: function PDFCommandDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function PDFCommandDirective_click_HostBindingHandler($event) { return ctx.onClick($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-grid-pdf\", ctx.pdfClass);\n } }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n HostListener('click', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], PDFCommandDirective.prototype, \"onClick\", null);\n__decorate([\n HostBinding('class.k-grid-pdf'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], PDFCommandDirective.prototype, \"pdfClass\", null);\nPDFCommandDirective = __decorate([ __metadata(\"design:paramtypes\", [PDFService,\n ElementRef,\n Renderer2,\n LocalizationService,\n NgZone])\n], PDFCommandDirective);\n\nconst exportedModules$5 = [\n PDFComponent,\n PDFMarginComponent,\n PDFCommandDirective,\n PDFTemplateDirective\n];\nconst declarations$1 = [\n PDFComponent,\n PDFMarginComponent,\n PDFCommandDirective,\n PDFTemplateDirective\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 */\nlet PDFModule = class PDFModule {\n};\nPDFModule.ɵfac = function PDFModule_Factory(t) { return new (t || PDFModule)(); };\nPDFModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: PDFModule });\nPDFModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\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 */\nlet ExcelComponent = class 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.ɵfac = function ExcelComponent_Factory(t) { return new (t || ExcelComponent)(ɵngcc0.ɵɵdirectiveInject(ExcelService), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nExcelComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ExcelComponent, selectors: [[\"kendo-grid-excel\"]], contentQueries: function ExcelComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, ColumnBase, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.columns = _t);\n } }, inputs: { fileName: \"fileName\", filterable: \"filterable\", creator: \"creator\", date: \"date\", forceProxy: \"forceProxy\", proxyURL: \"proxyURL\", fetchData: \"fetchData\", paddingCellOptions: \"paddingCellOptions\", headerPaddingCellOptions: \"headerPaddingCellOptions\", collapsible: \"collapsible\" }, decls: 0, vars: 0, template: function ExcelComponent_Template(rf, ctx) { }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ExcelComponent.prototype, \"fileName\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ExcelComponent.prototype, \"filterable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ExcelComponent.prototype, \"creator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], ExcelComponent.prototype, \"date\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ExcelComponent.prototype, \"forceProxy\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ExcelComponent.prototype, \"proxyURL\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], ExcelComponent.prototype, \"fetchData\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ExcelComponent.prototype, \"paddingCellOptions\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ExcelComponent.prototype, \"headerPaddingCellOptions\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ExcelComponent.prototype, \"collapsible\", void 0);\n__decorate([\n ContentChildren(ColumnBase, { descendants: true }),\n __metadata(\"design:type\", QueryList)\n], ExcelComponent.prototype, \"columns\", void 0);\nExcelComponent = __decorate([ __metadata(\"design:paramtypes\", [ExcelService,\n LocalizationService,\n NgZone])\n], ExcelComponent);\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 */\nlet ExcelCommandDirective = class 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.ɵfac = function ExcelCommandDirective_Factory(t) { return new (t || ExcelCommandDirective)(ɵngcc0.ɵɵdirectiveInject(ExcelService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nExcelCommandDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ExcelCommandDirective, selectors: [[\"\", \"kendoGridExcelCommand\", \"\"]], hostVars: 2, hostBindings: function ExcelCommandDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function ExcelCommandDirective_click_HostBindingHandler($event) { return ctx.onClick($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-grid-excel\", ctx.excelClass);\n } }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n HostListener('click', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], ExcelCommandDirective.prototype, \"onClick\", null);\n__decorate([\n HostBinding('class.k-grid-excel'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ExcelCommandDirective.prototype, \"excelClass\", null);\nExcelCommandDirective = __decorate([ __metadata(\"design:paramtypes\", [ExcelService,\n ElementRef,\n Renderer2,\n LocalizationService,\n NgZone])\n], ExcelCommandDirective);\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 */\nlet ExcelModule = class ExcelModule {\n};\nExcelModule.ɵfac = function ExcelModule_Factory(t) { return new (t || ExcelModule)(); };\nExcelModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: ExcelModule });\nExcelModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [ExcelExportModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(GridSpacerComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-grid-spacer, kendo-pager-spacer',\n template: ``\n }]\n }], function () { return []; }, { hostClass: [{\n type: HostBinding,\n args: ['class.k-spacer']\n }], sizedClass: [{\n type: HostBinding,\n args: ['class.k-spacer-sized']\n }], flexBasisStyle: [{\n type: HostBinding,\n args: ['style.flexBasis']\n }], width: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DomEventsService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LocalDataChangesService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FocusRoot, [{\n type: Injectable\n }], function () { return [{ type: Boolean, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [FOCUS_ROOT_ACTIVE]\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FocusableDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridFocusable]' + `,\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n `\n }]\n }], function () { return [{ type: Object, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [CELL_CONTEXT]\n }, {\n type: SkipSelf\n }] }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }]; }, { enabled: [{\n type: Input,\n args: ['kendoGridFocusable']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc0.NgZone }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(GroupsService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DetailsService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ScrollRequestService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigationService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc0.NgZone }, { type: DomEventsService }, { type: PagerContextService }, { type: ScrollRequestService }, { type: GroupsService }, { type: DetailsService }, { type: FocusRoot }, { type: EditService }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc1.LocalizationService }, { type: FocusableDirective, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SelectionService, [{\n type: Injectable\n }], function () { return [{ type: DomEventsService }, { type: LocalDataChangesService }, { type: NavigationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CellSelectionService, [{\n type: Injectable\n }], function () { return [{ type: DomEventsService }, { type: LocalDataChangesService }, { type: NavigationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(GridMarqueeDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridSelectionMarquee]'\n }]\n }], function () { return [{ type: ɵngcc2.DraggableDirective }, { type: SelectionService }, { type: CellSelectionService }, { type: DomEventsService }]; }, { webkitUserSelection: [{\n type: HostBinding,\n args: ['style.-webkit-user-select']\n }], userSelection: [{\n type: HostBinding,\n args: ['class.user-select-none']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CellTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridCellTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(GroupHeaderTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridGroupHeaderTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(GroupHeaderColumnTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridGroupHeaderColumnTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridEditTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(GroupFooterTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridGroupFooterTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(HeaderTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridHeaderTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FooterTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridFooterTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnMenuTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridColumnMenuTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FilterCellTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridFilterCellTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FilterMenuTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridFilterMenuTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IdService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: ColumnBase$1,\n useExisting: forwardRef(() => ColumnComponent_1)\n }\n ],\n selector: 'kendo-grid-column',\n template: ``\n }]\n }], function () { return [{ type: ColumnBase$1, decorators: [{\n type: SkipSelf\n }, {\n type: Host\n }, {\n type: Optional\n }] }, { type: IdService, decorators: [{\n type: Optional\n }] }]; }, { sortable: [{\n type: Input\n }], groupable: [{\n type: Input\n }], editor: [{\n type: Input\n }], filter: [{\n type: Input\n }], filterable: [{\n type: Input\n }], editable: [{\n type: Input\n }], field: [{\n type: Input\n }], format: [{\n type: Input\n }], template: [{\n type: ContentChild,\n args: [CellTemplateDirective, { static: false }]\n }], groupHeaderTemplate: [{\n type: ContentChild,\n args: [GroupHeaderTemplateDirective, { static: false }]\n }], groupHeaderColumnTemplate: [{\n type: ContentChild,\n args: [GroupHeaderColumnTemplateDirective, { static: false }]\n }], groupFooterTemplate: [{\n type: ContentChild,\n args: [GroupFooterTemplateDirective, { static: false }]\n }], editTemplate: [{\n type: ContentChild,\n args: [EditTemplateDirective, { static: false }]\n }], filterCellTemplate: [{\n type: ContentChild,\n args: [FilterCellTemplateDirective, { static: false }]\n }], filterMenuTemplate: [{\n type: ContentChild,\n args: [FilterMenuTemplateDirective, { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SpanColumnComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: ColumnBase$1,\n useExisting: forwardRef(() => SpanColumnComponent_1)\n }\n ],\n selector: 'kendo-grid-span-column',\n template: ``\n }]\n }], function () { return [{ type: ColumnBase$1, decorators: [{\n type: SkipSelf\n }, {\n type: Host\n }, {\n type: Optional\n }] }, { type: IdService, decorators: [{\n type: Optional\n }] }]; }, { template: [{\n type: ContentChildren,\n args: [CellTemplateDirective, { descendants: false }]\n }], editTemplate: [{\n type: ContentChildren,\n args: [EditTemplateDirective, { descendants: false }]\n }], childColumns: [{\n type: ContentChildren,\n args: [ColumnComponent]\n }], editable: [{\n type: Input\n }], locked: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnGroupComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: ColumnBase$1,\n useExisting: forwardRef(() => ColumnGroupComponent_1)\n }\n ],\n selector: 'kendo-grid-column-group',\n template: ``\n }]\n }], function () { return [{ type: ColumnBase$1, decorators: [{\n type: SkipSelf\n }, {\n type: Host\n }, {\n type: Optional\n }] }, { type: IdService, decorators: [{\n type: Optional\n }] }]; }, { children: [{\n type: ContentChildren,\n args: [ColumnBase$1]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DetailTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridDetailTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, { showIf: [{\n type: Input,\n args: [\"kendoGridDetailTemplateShowIf\"]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(BrowserSupportService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc0.NgZone }, { type: ɵngcc0.ChangeDetectorRef }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ChangeNotificationService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc0.NgZone }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NoRecordsTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridNoRecordsTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MenuTabbingService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PagerTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoPagerTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PDFService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SuspendService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ResponsiveService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ExcelService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ToolbarTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridToolbarTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, { position: [{\n type: Input,\n args: [\"position\"]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ScrollSyncService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc0.NgZone }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ResizeService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnResizingService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SinglePopupService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc3.PopupService }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.NgZone }, { type: ScrollSyncService }, { type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DragAndDropService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DragHintService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc4.DomSanitizer }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DropCueService, [{\n type: Injectable\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnReorderService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnInfoService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CellLoadingTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridCellLoadingTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LoadingTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridLoadingTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(GridComponent, [{\n type: Component,\n args: [{\n encapsulation: ViewEncapsulation.None,\n exportAs: 'kendoGrid',\n providers: [\n BrowserSupportService,\n LocalizationService,\n ColumnInfoService,\n SelectionService,\n CellSelectionService,\n DetailsService,\n GroupsService,\n GroupInfoService,\n ChangeNotificationService,\n EditService,\n PDFService,\n SuspendService,\n {\n provide: CELL_CONTEXT,\n useValue: ɵ5$1\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 }]\n }], function () { return [{ type: BrowserSupportService }, { type: SelectionService }, { type: CellSelectionService }, { type: ɵngcc0.ElementRef }, { type: GroupInfoService }, { type: GroupsService }, { type: ChangeNotificationService }, { type: DetailsService }, { type: EditService }, { type: FilterService }, { type: PDFService }, { type: ResponsiveService }, { type: ɵngcc0.Renderer2 }, { type: ExcelService }, { type: ɵngcc0.NgZone }, { type: ScrollSyncService }, { type: DomEventsService }, { type: ColumnResizingService }, { type: ɵngcc0.ChangeDetectorRef }, { type: ColumnReorderService }, { type: ColumnInfoService }, { type: NavigationService }, { type: SortService }, { type: ScrollRequestService }, { type: ɵngcc1.LocalizationService }]; }, { data: [{\n type: Input\n }], scrollable: [{\n type: Input\n }], selectable: [{\n type: Input\n }], trackBy: [{\n type: Input\n }], virtualColumns: [{\n type: Input\n }], filterable: [{\n type: Input\n }], sortable: [{\n type: Input\n }], pageable: [{\n type: Input\n }], groupable: [{\n type: Input\n }], navigable: [{\n type: Input\n }], autoSize: [{\n type: Input\n }], resizable: [{\n type: Input\n }], reorderable: [{\n type: Input\n }], loading: [{\n type: Input\n }], columnMenu: [{\n type: Input\n }], hideHeader: [{\n type: Input\n }], filterChange: [{\n type: Output\n }], pageChange: [{\n type: Output\n }], groupChange: [{\n type: Output\n }], sortChange: [{\n type: Output\n }], selectionChange: [{\n type: Output\n }], dataStateChange: [{\n type: Output\n }], groupExpand: [{\n type: Output\n }], groupCollapse: [{\n type: Output\n }], detailExpand: [{\n type: Output\n }], detailCollapse: [{\n type: Output\n }], edit: [{\n type: Output\n }], cancel: [{\n type: Output\n }], save: [{\n type: Output\n }], remove: [{\n type: Output\n }], add: [{\n type: Output\n }], cellClose: [{\n type: Output\n }], cellClick: [{\n type: Output\n }], pdfExport: [{\n type: Output\n }], excelExport: [{\n type: Output\n }], columnResize: [{\n type: Output\n }], columnReorder: [{\n type: Output\n }], columnVisibilityChange: [{\n type: Output\n }], columnLockedChange: [{\n type: Output\n }], columnStickyChange: [{\n type: Output\n }], scrollBottom: [{\n type: Output\n }], contentScroll: [{\n type: Output\n }], columns: [{\n type: ContentChildren,\n args: [ColumnBase$1]\n }], footer: [{\n type: ViewChildren,\n args: ['footer']\n }], skip: [{\n type: Input\n }], sort: [{\n type: Input\n }], group: [{\n type: Input\n }], navigatable: [{\n type: Input\n }], rowClass: [{\n type: Input\n }], rowSticky: [{\n type: Input\n }], rowSelected: [{\n type: Input\n }], cellSelected: [{\n type: Input\n }], dir: [{\n type: HostBinding,\n args: ['attr.dir']\n }], hostClasses: [{\n type: HostBinding,\n args: ['class.k-grid']\n }], lockedClasses: [{\n type: HostBinding,\n args: ['class.k-grid-lockedcolumns']\n }], virtualClasses: [{\n type: HostBinding,\n args: ['class.k-grid-virtual']\n }], noScrollbarClass: [{\n type: HostBinding,\n args: ['class.k-grid-no-scrollbar']\n }], isDetailExpanded: [{\n type: Input\n }], isGroupExpanded: [{\n type: Input\n }], pageSize: [{\n type: Input\n }], height: [{\n type: Input\n }], rowHeight: [{\n type: Input\n }], detailRowHeight: [{\n type: Input\n }], filter: [{\n type: Input\n }], detailTemplateChildren: [{\n type: ContentChildren,\n args: [DetailTemplateDirective]\n }], cellLoadingTemplateChildren: [{\n type: ContentChildren,\n args: [CellLoadingTemplateDirective]\n }], loadingTemplateChildren: [{\n type: ContentChildren,\n args: [LoadingTemplateDirective]\n }], noRecordsTemplateChildren: [{\n type: ContentChildren,\n args: [NoRecordsTemplateDirective]\n }], pagerTemplateChildren: [{\n type: ContentChildren,\n args: [PagerTemplateDirective]\n }], toolbarTemplateChildren: [{\n type: ContentChildren,\n args: [ToolbarTemplateDirective]\n }], columnMenuTemplates: [{\n type: ContentChildren,\n args: [ColumnMenuTemplateDirective]\n }], lockedHeader: [{\n type: ViewChild,\n args: ['lockedHeader', { static: false }]\n }], header: [{\n type: ViewChild,\n args: ['header', { static: false }]\n }], ariaRoot: [{\n type: ViewChild,\n args: ['ariaRoot', { static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ListComponent, [{\n type: Component,\n 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 }], function () { return [{ type: Object, decorators: [{\n type: Inject,\n args: [SCROLLER_FACTORY_TOKEN]\n }] }, { type: DetailsService }, { type: ChangeNotificationService }, { type: SuspendService }, { type: GroupsService }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.Renderer2 }, { type: ScrollSyncService }, { type: ResizeService }, { type: EditService }, { type: BrowserSupportService }, { type: NavigationService }, { type: ScrollRequestService }, { type: ɵngcc1.LocalizationService }, { type: ColumnResizingService }, { type: ɵngcc0.ChangeDetectorRef }, { type: PDFService }, { type: ColumnInfoService }]; }, { groups: [{\n type: Input\n }], skip: [{\n type: Input\n }], columns: [{\n type: Input\n }], selectable: [{\n type: Input\n }], groupable: [{\n type: Input\n }], trackBy: [{\n type: Input\n }], contentScroll: [{\n type: Output\n }], pageChange: [{\n type: Output\n }], scrollBottom: [{\n type: Output\n }], resizeSensors: [{\n type: ViewChildren,\n args: [ResizeSensorComponent]\n }], hostClass: [{\n type: HostBinding,\n args: [\"class.k-grid-container\"]\n }], hostRole: [{\n type: HostBinding,\n args: [\"attr.role\"]\n }], data: [{\n type: Input\n }], total: [{\n type: Input\n }], rowHeight: [{\n type: Input\n }], stickyRowHeight: [{\n type: Input\n }], detailRowHeight: [{\n type: Input\n }], take: [{\n type: Input\n }], detailTemplate: [{\n type: Input\n }], noRecordsTemplate: [{\n type: Input\n }], filterable: [{\n type: Input\n }], rowClass: [{\n type: Input\n }], rowSticky: [{\n type: Input\n }], loading: [{\n type: Input\n }], virtualColumns: [{\n type: Input\n }], isVirtual: [{\n type: Input\n }], cellLoadingTemplate: [{\n type: Input\n }], loadingTemplate: [{\n type: Input\n }], container: [{\n type: ViewChild,\n args: ['container', { static: true }]\n }], lockedContainer: [{\n type: ViewChild,\n args: ['lockedContainer', { static: false }]\n }], lockedTable: [{\n type: ViewChild,\n args: ['lockedTable', { static: false }]\n }], table: [{\n type: ViewChild,\n args: ['table', { static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DataBindingDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridBinding]'\n }]\n }], function () { return [{ type: GridComponent }, { type: ɵngcc0.ChangeDetectorRef }, { type: LocalDataChangesService }]; }, { skip: [{\n type: Input\n }], sort: [{\n type: Input\n }], filter: [{\n type: Input\n }], pageSize: [{\n type: Input\n }], group: [{\n type: Input\n }], data: [{\n type: Input,\n args: [\"kendoGridBinding\"]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SelectionDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridSelectBy]'\n }]\n }], function () { return [{ type: GridComponent }, { type: ɵngcc0.ChangeDetectorRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ExpandDetailsDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridExpandDetailsBy]',\n exportAs: 'kendoGridExpandDetailsBy'\n }]\n }], function () { return [{ type: GridComponent }]; }, { expandedDetailKeysChange: [{\n type: Output\n }], expandedDetailKeys: [{\n type: Input\n }], initiallyExpanded: [{\n type: Input\n }], expandDetailsKey: [{\n type: Input,\n args: ['kendoGridExpandDetailsBy']\n }], expandDetailBy: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ExpandGroupDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridExpandGroupBy]',\n exportAs: 'kendoGridExpandGroupBy'\n }]\n }], function () { return [{ type: GridComponent }]; }, { expandedGroupKeysChange: [{\n type: Output\n }], groupsInitiallyExpanded: [{\n type: Input\n }], expandGroupBy: [{\n type: Input,\n args: ['kendoGridExpandGroupBy']\n }], expandedGroupKeys: [{\n type: Input\n }] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LocalizedMessagesDirective, [{\n type: Directive,\n args: [{\n providers: [\n {\n provide: Messages,\n useExisting: forwardRef(() => LocalizedMessagesDirective_1)\n }\n ],\n selector: '[kendoGridLocalizedMessages]'\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CustomMessagesComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: Messages,\n useExisting: forwardRef(() => CustomMessagesComponent_1)\n }\n ],\n selector: 'kendo-grid-messages',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FilterRowComponent, [{\n type: Component,\n args: [{\n selector: '[kendoGridFilterRow]',\n template: `\n \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }, { type: ColumnInfoService }]; }, { columns: [{\n type: Input\n }], groups: [{\n type: Input\n }], filterRowClass: [{\n type: HostBinding,\n args: ['class.k-filter-row']\n }], filter: [{\n type: Input\n }], detailTemplate: [{\n type: Input\n }], logicalRowIndex: [{\n type: Input\n }], lockedColumnsCount: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FilterCellComponent, [{\n type: Component,\n args: [{\n selector: '[kendoGridFilterCell]',\n template: `\n \n \n \n \n \n \n \n \n \n \n
    \n `\n }]\n }], function () { return []; }, { filter: [{\n type: Input\n }], column: [{\n type: Input\n }] }); })();\n\n\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NumericFilterCellComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-grid-numeric-filter-cell',\n template: `\n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: FilterService }, { type: ɵngcc1.LocalizationService }]; }, { filterDelay: [{\n type: Input\n }], showOperators: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FilterInputDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoFilterInput]'\n }]\n }], function () { return [{ type: Array, decorators: [{\n type: Self\n }, {\n type: Inject,\n args: [NG_VALUE_ACCESSOR]\n }] }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }]; }, { filterDelay: [{\n type: Input\n }], value: [{\n type: Input\n }], kendoInput: [{\n type: ContentChild,\n args: [KendoInput, { static: true }]\n }], columnLabel: [{\n type: Input\n }] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FilterCellWrapperComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-grid-filter-wrapper-cell',\n template: `\n \n \n \n `\n }]\n }], function () { return [{ type: FilterService }]; }, { showOperators: [{\n type: Input\n }], hostClasses: [{\n type: HostBinding,\n args: ['class.k-filtercell-wrapper']\n }], overrideBaseClasses: [{\n type: HostBinding,\n args: ['class.k-filtercell']\n }] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(StringFilterCellComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-grid-string-filter-cell',\n template: `\n \n \n \n `\n }]\n }], function () { return [{ type: FilterService }, { type: ɵngcc1.LocalizationService }]; }, { filterDelay: [{\n type: Input\n }], showOperators: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FilterCellOperatorsComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-grid-filter-cell-operators',\n template: `\n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, { operators: [{\n type: Input\n }], showOperators: [{\n type: Input\n }], valueChange: [{\n type: Output\n }], clear: [{\n type: Output\n }], hostClasses: [{\n type: HostBinding,\n args: ['class.k-filtercell-operator']\n }], dropdown: [{\n type: ViewChild,\n args: ['dropdown', { static: false }]\n }], showButton: [{\n type: Input\n }], value: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AutoCompleteFilterCellComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-grid-autocomplete-filter-cell',\n template: `\n \n \n \n \n `\n }]\n }], function () { return [{ type: FilterService }, { type: ColumnComponent }, { type: ɵngcc1.LocalizationService }]; }, { showOperators: [{\n type: Input\n }], column: [{\n type: Input\n }], valueField: [{\n type: Input\n }], filter: [{\n type: Input\n }], data: [{\n type: Input\n }] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(BooleanFilterCellComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-grid-boolean-filter-cell',\n template: `\n \n \n \n \n `\n }]\n }], function () { return [{ type: FilterService }, { type: ɵngcc1.LocalizationService }, { type: ɵngcc0.ChangeDetectorRef }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DateFilterCellComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-grid-date-filter-cell',\n template: `\n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: FilterService }, { type: ɵngcc1.LocalizationService }]; }, { showOperators: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColGroupComponent, [{\n type: Component,\n args: [{\n selector: '[kendoGridColGroup]',\n template: `\n \n \n \n \n \n `\n }]\n }], function () { return []; }, { columns: [{\n type: Input\n }], groups: [{\n type: Input\n }], detailTemplate: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LoadingComponent, [{\n type: Component,\n args: [{\n selector: '[kendoGridLoading]',\n template: `\n \n {{ loadingText }}\n
    \n
    \n
    \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, { hostClass: [{\n type: HostBinding,\n args: ['class.k-loading-mask']\n }], loadingTemplate: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ResizableContainerDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridResizableContainer]'\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ResizeService }, { type: GridComponent, decorators: [{\n type: Optional\n }] }]; }, { lockedWidth: [{\n type: Input,\n args: ['lockedWidth']\n }], kendoGridResizableContainer: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TemplateContextDirective, [{\n type: Directive,\n args: [{\n selector: '[templateContext]' // tslint:disable-line:directive-selector\n }]\n }], function () { return [{ type: ɵngcc0.ViewContainerRef }]; }, { templateContext: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FocusGroup, [{\n type: Injectable\n }], function () { return [{ type: FocusRoot }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LogicalCellDirective, [{\n type: Directive,\n args: [{\n providers: [{\n provide: FocusGroup,\n deps: [FocusRoot],\n useClass: FocusGroup\n }],\n selector: '[kendoGridLogicalCell]'\n }]\n }], function () { return [{ type: FocusGroup }, { type: ɵngcc0.ElementRef }, { type: ColumnInfoService }, { type: IdService }, { type: NavigationService }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.NgZone }, { type: Object, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [CELL_CONTEXT]\n }] }]; }, { logicalSlaveCell: [{\n type: Input\n }], colSpan: [{\n type: Input\n }], rowSpan: [{\n type: Input\n }], dataRowIndex: [{\n type: Input\n }], detailExpandCell: [{\n type: Input\n }], id: [{\n type: HostBinding,\n args: ['attr.id']\n }], ariaColIndex: [{\n type: HostBinding,\n args: ['attr.aria-colindex']\n }], logicalColIndex: [{\n type: Input\n }], logicalRowIndex: [{\n type: Input\n }], colIndex: [{\n type: Input\n }], groupItem: [{\n type: Input\n }], dataItem: [{\n type: Input\n }], headerLabelText: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LogicalRowDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridLogicalRow]'\n }]\n }], function () { return [{ type: IdService }, { type: NavigationService }]; }, { logicalSlaveRow: [{\n type: Input\n }], logicalSlaveCellsCount: [{\n type: Input\n }], dataRowIndex: [{\n type: Input\n }], hostRole: [{\n type: HostBinding,\n args: ['attr.role']\n }], ariaRowIndex: [{\n type: HostBinding,\n args: ['attr.aria-rowindex']\n }], ariaOwns: [{\n type: HostBinding,\n args: ['attr.aria-owns']\n }], logicalRowIndex: [{\n type: Input\n }], logicalCellsCount: [{\n type: Input\n }], dataItem: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FieldAccessorPipe, [{\n type: Pipe,\n args: [{\n name: 'valueOf',\n pure: false\n }]\n }], function () { return [{ type: ɵngcc10.IntlService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TableDirective, [{\n type: Directive,\n args: [{\n selector: 'table' // tslint:disable-line:directive-selector\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ColumnResizingService }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ChangeDetectorRef }]; }, { locked: [{\n type: Input\n }], minWidth: [{\n type: HostBinding,\n args: ['style.min-width']\n }], virtualColumns: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SharedModule, [{\n type: NgModule,\n args: [{\n declarations: [exportedModules],\n exports: [exportedModules, DraggableModule, EventsModule],\n imports: [CommonModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(SharedModule, { declarations: function () { return [ColumnComponent, ColumnGroupComponent, LogicalCellDirective, LogicalRowDirective, FocusableDirective, FooterTemplateDirective, ColGroupComponent, ResizableContainerDirective, TemplateContextDirective, FieldAccessorPipe, DetailTemplateDirective, SpanColumnComponent, TableDirective, LoadingComponent]; }, imports: function () { return [CommonModule]; }, exports: function () { return [ColumnComponent, ColumnGroupComponent, LogicalCellDirective, LogicalRowDirective, FocusableDirective, FooterTemplateDirective, ColGroupComponent, ResizableContainerDirective, TemplateContextDirective, FieldAccessorPipe, DetailTemplateDirective, SpanColumnComponent, TableDirective, LoadingComponent, DraggableModule, EventsModule]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ContainsFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => ContainsFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-filter-contains-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DoesNotContainFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => DoesNotContainFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-filter-not-contains-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EndsWithFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => EndsWithFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-filter-endswith-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EqualFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => EqualFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-filter-eq-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IsEmptyFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => IsEmptyFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-filter-isempty-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IsNotEmptyFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => IsNotEmptyFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-filter-isnotempty-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IsNotNullFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => IsNotNullFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-filter-isnotnull-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IsNullFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => IsNullFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-filter-isnull-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NotEqualFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => NotEqualFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-filter-neq-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(StartsWithFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => StartsWithFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-filter-startswith-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(GreaterFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => GreaterFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-filter-gt-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(GreaterOrEqualToFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => GreaterOrEqualToFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-filter-gte-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LessFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => LessFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-filter-lt-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LessOrEqualToFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => LessOrEqualToFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-filter-lte-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AfterFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => AfterFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-filter-after-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AfterEqFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => AfterEqFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-filter-after-eq-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(BeforeEqFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => BeforeEqFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-filter-before-eq-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(BeforeFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => BeforeFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-filter-before-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SharedFilterModule, [{\n type: NgModule,\n args: [{\n declarations: [FILTER_OPERATORS, COMPONENTS],\n exports: [FILTER_OPERATORS, importedModules, COMPONENTS],\n imports: [...importedModules]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(SharedFilterModule, { declarations: [FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, FilterInputDirective], imports: [CommonModule,\n ReactiveFormsModule,\n FormsModule,\n DropDownListModule,\n AutoCompleteModule,\n InputsModule,\n DatePickerModule,\n PopupModule, SharedModule], exports: [FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, CommonModule,\n ReactiveFormsModule,\n FormsModule,\n DropDownListModule,\n AutoCompleteModule,\n InputsModule,\n DatePickerModule,\n PopupModule, SharedModule, FilterInputDirective] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FilterCellHostDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoFilterCellHost]'\n }]\n }], function () { return [{ type: ɵngcc0.ViewContainerRef }, { type: ɵngcc0.ComponentFactoryResolver }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(RowFilterModule, [{\n type: NgModule,\n args: [{\n declarations: [INTERNAL_COMPONENTS],\n entryComponents: ENTRY_COMPONENTS,\n exports: [INTERNAL_COMPONENTS, SharedFilterModule],\n imports: [SharedFilterModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(RowFilterModule, { declarations: [FilterRowComponent, FilterCellComponent, FilterCellTemplateDirective, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, FilterCellHostDirective, FilterCellWrapperComponent, DateFilterCellComponent], imports: [SharedFilterModule], exports: [FilterRowComponent, FilterCellComponent, FilterCellTemplateDirective, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, FilterCellHostDirective, FilterCellWrapperComponent, DateFilterCellComponent, SharedFilterModule] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PagerInputDirective, [{\n type: Directive,\n args: [{ selector: '[kendoGridPagerInput]' }]\n }], function () { return [{ type: ɵngcc6.NumericTextBoxComponent }, { type: ɵngcc0.Renderer2 }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PagerDropDownListDirective, [{\n type: Directive,\n args: [{ selector: '[kendoGridPagerDropDown]' }]\n }], function () { return [{ type: ɵngcc8.DropDownListComponent }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PagerComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-pager',\n providers: [{\n provide: FOCUS_ROOT_ACTIVE,\n useValue: true\n }, {\n provide: FocusRoot,\n deps: [FOCUS_ROOT_ACTIVE],\n useClass: FocusRoot\n }, {\n provide: FocusGroup,\n deps: [FocusRoot],\n useClass: FocusGroup\n }],\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: PagerContextService }, { type: NavigationService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.NgZone }, { type: ɵngcc1.LocalizationService }, { type: Object, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [CELL_CONTEXT]\n }] }, { type: FocusRoot }, { type: FocusGroup }]; }, { total: [{\n type: Input\n }], skip: [{\n type: Input\n }], pageChange: [{\n type: Output\n }], pagerWrapClass: [{\n type: HostBinding,\n args: ['class.k-pager-wrap']\n }], gridPagerClass: [{\n type: HostBinding,\n args: ['class.k-grid-pager']\n }], options: [{\n type: Input\n }], isFocused: [{\n type: HostBinding,\n args: ['class.k-state-focused']\n }], pagerAriaLabel: [{\n type: HostBinding,\n args: ['attr.aria-label']\n }], onFocusIn: [{\n type: HostListener,\n args: ['focusin', ['$event']]\n }], onFocusOut: [{\n type: HostListener,\n args: ['focusout']\n }], onEscape: [{\n type: HostListener,\n args: ['keydown.escape']\n }], onEnter: [{\n type: HostListener,\n args: ['keydown.enter', ['$event']]\n }], navigateToPreviousPage: [{\n type: HostListener,\n args: ['keydown.arrowleft', ['$event']]\n }, {\n type: HostListener,\n args: ['keydown.pageup', ['$event']]\n }], navigateToNextPage: [{\n type: HostListener,\n args: ['keydown.arrowright', ['$event']]\n }, {\n type: HostListener,\n args: ['keydown.pagedown', ['$event']]\n }], navigateToFirstPage: [{\n type: HostListener,\n args: ['keydown.home', ['$event']]\n }], navigateToLastPage: [{\n type: HostListener,\n args: ['keydown.end', ['$event']]\n }], pageSize: [{\n type: Input\n }], template: [{\n type: Input\n }] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PagerPrevButtonsComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-pager-prev-buttons',\n template: `\n \n \n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }, { type: PagerContextService }, { type: ɵngcc0.ChangeDetectorRef }, { type: NavigationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PagerNextButtonsComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-pager-next-buttons',\n template: `\n \n \n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }, { type: PagerContextService }, { type: ɵngcc0.ChangeDetectorRef }, { type: NavigationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PagerNumericButtonsComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-pager-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 }], function () { return [{ type: ɵngcc1.LocalizationService }, { type: ɵngcc0.ChangeDetectorRef }, { type: PagerContextService }]; }, { numbersWrapClass: [{\n type: HostBinding,\n args: ['class.k-pager-numbers-wrap']\n }], buttonCount: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PagerInputComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-pager-input',\n template: `\n \n {{textFor('pagerPage')}}\n \n \n {{textFor('pagerOf')}} {{totalPages}}\n \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }, { type: PagerContextService }, { type: ɵngcc0.NgZone }, { type: NavigationService }, { type: ɵngcc0.ChangeDetectorRef }]; }, { numericInput: [{\n type: ViewChild,\n args: [NumericTextBoxComponent, { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PagerInfoComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-pager-info',\n template: `{{currentPageText}} - {{maxItems}} {{textFor('pagerOf')}} {{total}} {{textFor('pagerItems')}}`\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }, { type: ɵngcc0.ChangeDetectorRef }, { type: PagerContextService }]; }, { classes: [{\n type: HostBinding,\n args: [\"class.k-pager-info\"]\n }, {\n type: HostBinding,\n args: [\"class.k-label\"]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PagerPageSizesComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-pager-page-sizes',\n template: `\n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }, { type: ɵngcc0.ChangeDetectorRef }, { type: PagerContextService }, { type: NavigationService }]; }, { pageSizes: [{\n type: Input\n }], classes: [{\n type: HostBinding,\n args: ['class.k-pager-sizes']\n }, {\n type: HostBinding,\n args: ['class.k-label']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PagerModule, [{\n type: NgModule,\n args: [{\n declarations: [INTERNAL_COMPONENTS$1],\n exports: [INTERNAL_COMPONENTS$1],\n imports: [...importedModules$1]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(PagerModule, { declarations: [PagerComponent, PagerPrevButtonsComponent, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerInputComponent, PagerInfoComponent, PagerPageSizesComponent, PagerTemplateDirective, PagerDropDownListDirective, PagerInputDirective], imports: [CommonModule,\n InputsModule,\n LabelModule,\n DropDownsModule,\n ResizeSensorModule, SharedModule], exports: [PagerComponent, PagerPrevButtonsComponent, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerInputComponent, PagerInfoComponent, PagerPageSizesComponent, PagerTemplateDirective, PagerDropDownListDirective, PagerInputDirective] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(GroupHeaderComponent, [{\n type: Component,\n 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 }], function () { return [{ type: GroupsService }, { type: GroupInfoService }, { type: ɵngcc1.LocalizationService }]; }, { skipGroupDecoration: [{\n type: Input\n }], hasDetails: [{\n type: Input\n }], totalColumnsCount: [{\n type: Input\n }], groups: [{\n type: Input\n }], groupItemClass: [{\n type: HostBinding,\n args: ['class.k-grouping-row']\n }], rowIndex: [{\n type: Input\n }], logicalRowIndex: [{\n type: Input\n }], item: [{\n type: Input\n }], hasGroupHeaderColumn: [{\n type: Input\n }], groupHeaderColumns: [{\n type: Input\n }], columns: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DropTargetDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoDropTarget]'\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: DragAndDropService }]; }, { context: [{\n type: Input\n }], enter: [{\n type: Output\n }], leave: [{\n type: Output\n }], drop: [{\n type: Output\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(GroupPanelComponent, [{\n type: Component,\n 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 }], function () { return [{ type: DragHintService }, { type: DropCueService }, { type: GroupInfoService }, { type: ɵngcc1.LocalizationService }, { type: ɵngcc0.ChangeDetectorRef }]; }, { change: [{\n type: Output\n }], groups: [{\n type: Input\n }], dropTargets: [{\n type: ViewChildren,\n args: [DropTargetDirective]\n }], groupHeaderClass: [{\n type: HostBinding,\n args: [\"class.k-grouping-header\"]\n }, {\n type: HostBinding,\n args: [\"class.k-grouping-header-flex\"]\n }], text: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(GroupIndicatorComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: '[kendoGroupIndicator]',\n template: `\n \n \n {{groupTitle}}\n \n \n \n `\n }]\n }], function () { return []; }, { directionChange: [{\n type: Output\n }], remove: [{\n type: Output\n }], groupIndicatorClass: [{\n type: HostBinding,\n args: [\"class.k-group-indicator\"]\n }], group: [{\n type: Input\n }], groupTitle: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DraggableColumnDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoDraggableColumn]'\n }]\n }], function () { return [{ type: ɵngcc2.DraggableDirective, decorators: [{\n type: Host\n }] }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }, { type: DragAndDropService }, { type: DragHintService }, { type: DropCueService }, { type: NavigationService }, { type: ɵngcc0.Renderer2 }]; }, { context: [{\n type: Input\n }], drag: [{\n type: Output\n }], enableDrag: [{\n type: Input\n }], hostClass: [{\n type: HostBinding,\n args: ['class.k-grid-draggable-header']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DragAndDropModule, [{\n type: NgModule,\n args: [{\n declarations: [exported],\n exports: [exported]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(DragAndDropModule, { declarations: [DraggableColumnDirective, DropTargetDirective], exports: [DraggableColumnDirective, DropTargetDirective] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(GroupModule, [{\n type: NgModule,\n args: [{\n declarations: [exportedModules$1],\n exports: [exportedModules$1],\n imports: [CommonModule, SharedModule, DragAndDropModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(GroupModule, { declarations: function () { return [GroupHeaderTemplateDirective, GroupHeaderColumnTemplateDirective, GroupFooterTemplateDirective, GroupHeaderComponent, GroupPanelComponent, GroupIndicatorComponent]; }, imports: function () { return [CommonModule, SharedModule, DragAndDropModule]; }, exports: function () { return [GroupHeaderTemplateDirective, GroupHeaderColumnTemplateDirective, GroupFooterTemplateDirective, GroupHeaderComponent, GroupPanelComponent, GroupIndicatorComponent]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FilterMenuComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-grid-filter-menu',\n template: `\n \n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: FilterService }, { type: SinglePopupService }, { type: ɵngcc1.LocalizationService }, { type: NavigationService }]; }, { tabIndex: [{\n type: Input\n }], column: [{\n type: Input\n }], filter: [{\n type: Input\n }], anchor: [{\n type: ViewChild,\n args: ['anchor', { static: true }]\n }], template: [{\n type: ViewChild,\n args: ['template', { static: true, read: TemplateRef }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnMenuService, [{\n type: Injectable\n }], function () { return [{ type: MenuTabbingService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnMenuComponent, [{\n type: Component,\n args: [{\n providers: [\n ColumnMenuService,\n MenuTabbingService\n ],\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 \n \n \n `\n }]\n }], function () { return [{ type: SinglePopupService }, { type: ɵngcc1.LocalizationService }, { type: ColumnMenuService }, { type: NavigationService }]; }, { standalone: [{\n type: HostBinding,\n args: ['class.k-grid-column-menu-standalone']\n }, {\n type: Input\n }], settings: [{\n type: Input\n }], sortable: [{\n type: Input\n }], tabIndex: [{\n type: Input\n }], column: [{\n type: Input\n }], sort: [{\n type: Input\n }], filter: [{\n type: Input\n }], columnMenuTemplate: [{\n type: Input\n }], anchor: [{\n type: ViewChild,\n args: ['anchor', { static: true }]\n }], template: [{\n type: ViewChild,\n args: ['template', { static: true, read: TemplateRef }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(HeaderComponent, [{\n type: Component,\n 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 \n {{column.displayTitle}}\n \n\n \n \n \n \n \n \n {{column.displayTitle}}\n \n \n {{sortOrder(column.field)}}\n \n \n \n \n \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 }], function () { return [{ type: SinglePopupService }, { type: DragHintService }, { type: DropCueService }, { type: ColumnReorderService }, { type: IdService }, { type: SortService }, { type: ɵngcc1.LocalizationService }, { type: ColumnInfoService }, { type: ɵngcc0.ChangeDetectorRef }]; }, { columns: [{\n type: Input\n }], groups: [{\n type: Input\n }], sort: [{\n type: Input\n }], sortable: [{\n type: Input\n }], groupable: [{\n type: Input\n }], lockedColumnsCount: [{\n type: Input\n }], resizable: [{\n type: Input\n }], reorderable: [{\n type: Input\n }], columnMenu: [{\n type: Input\n }], totalColumnsCount: [{\n type: Input\n }], dropTargets: [{\n type: ViewChildren,\n args: [DropTargetDirective]\n }], headerClass: [{\n type: HostBinding,\n args: ['class.k-grid-header']\n }], totalColumnLevels: [{\n type: Input\n }], detailTemplate: [{\n type: Input\n }], scrollable: [{\n type: Input\n }], filterable: [{\n type: Input\n }], filter: [{\n type: Input\n }], columnMenuTemplate: [{\n type: Input\n }], tabIndex: [{\n type: Input\n }], filterMenus: [{\n type: ViewChildren,\n args: [FilterMenuComponent]\n }], columnMenus: [{\n type: ViewChildren,\n args: [ColumnMenuComponent]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnHandleDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridColumnHandle]'\n }]\n }], function () { return [{ type: ɵngcc2.DraggableDirective, decorators: [{\n type: Host\n }] }, { type: ɵngcc0.ElementRef }, { type: ColumnResizingService }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc1.LocalizationService }]; }, { columns: [{\n type: Input\n }], visible: [{\n type: HostBinding,\n args: ['style.display']\n }], leftStyle: [{\n type: HostBinding,\n args: ['style.left']\n }], rightStyle: [{\n type: HostBinding,\n args: ['style.right']\n }], autoFit: [{\n type: HostListener,\n args: ['dblclick']\n }], column: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SelectAllCheckboxDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridSelectAllCheckbox]'\n }]\n }], function () { return [{ type: SelectionService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.NgZone }]; }, { selectAllChange: [{\n type: Output\n }], type: [{\n type: HostBinding,\n args: ['attr.type']\n }], state: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FilterMenuContainerComponent, [{\n type: Component,\n args: [{\n providers: [\n FilterService,\n MenuTabbingService\n ],\n selector: 'kendo-grid-filter-menu-container',\n template: `\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n
    \n {{clearText}}\n \n
    \n
    \n
    \n `\n }]\n }], function () { return [{ type: FilterService, decorators: [{\n type: SkipSelf\n }] }, { type: FilterService }, { type: ɵngcc1.LocalizationService }, { type: ɵngcc0.ChangeDetectorRef }, { type: MenuTabbingService }]; }, { close: [{\n type: Output\n }], actionsClass: [{\n type: Input\n }], menuTabbingService: [{\n type: Input\n }], filter: [{\n type: Input\n }], column: [{\n type: Input\n }], isLast: [{\n type: Input\n }], isExpanded: [{\n type: Input\n }], resetButton: [{\n type: ViewChild,\n args: ['resetButton', { static: false }]\n }], filterButton: [{\n type: ViewChild,\n args: ['filterButton', { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FilterMenuInputWrapperComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-grid-filter-menu-input-wrapper',\n template: `\n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, { currentFilter: [{\n type: Input\n }], filterService: [{\n type: Input\n }], isFirstDropDown: [{\n type: Input\n }], menuTabbingService: [{\n type: Input\n }], firstOperatorDropDown: [{\n type: ViewChild,\n args: [DropDownListComponent, { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(StringFilterMenuInputComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-grid-string-filter-menu-input',\n template: `\n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, { operators: [{\n type: Input\n }], column: [{\n type: Input\n }], filter: [{\n type: Input\n }], operator: [{\n type: Input\n }], currentFilter: [{\n type: Input\n }], filterService: [{\n type: Input\n }], isFirstDropDown: [{\n type: Input\n }], menuTabbingService: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(StringFilterMenuComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-grid-string-filter-menu',\n template: `\n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, { filter: [{\n type: Input\n }], extra: [{\n type: Input\n }], hostClasses: [{\n type: HostBinding,\n args: ['class.k-filtercell']\n }], column: [{\n type: Input\n }], filterService: [{\n type: Input\n }], menuTabbingService: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NumericFilterMenuComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-grid-numeric-filter-menu',\n template: `\n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, { filter: [{\n type: Input\n }], extra: [{\n type: Input\n }], hostClasses: [{\n type: HostBinding,\n args: ['class.k-filtercell']\n }], column: [{\n type: Input\n }], filterService: [{\n type: Input\n }], menuTabbingService: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NumericFilterMenuInputComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-grid-numeric-filter-menu-input',\n template: `\n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, { operators: [{\n type: Input\n }], step: [{\n type: Input\n }], spinners: [{\n type: Input\n }], column: [{\n type: Input\n }], filter: [{\n type: Input\n }], operator: [{\n type: Input\n }], currentFilter: [{\n type: Input\n }], filterService: [{\n type: Input\n }], isFirstDropDown: [{\n type: Input\n }], menuTabbingService: [{\n type: Input\n }], min: [{\n type: Input\n }], max: [{\n type: Input\n }], decimals: [{\n type: Input\n }], format: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DateFilterMenuComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-grid-date-filter-menu',\n template: `\n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, { filter: [{\n type: Input\n }], extra: [{\n type: Input\n }], hostClasses: [{\n type: HostBinding,\n args: ['class.k-filtercell']\n }], column: [{\n type: Input\n }], filterService: [{\n type: Input\n }], menuTabbingService: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(BooleanFilterRadioButtonDirective, [{\n type: Directive,\n args: [{ selector: '[kendoFilterMenuRadioButton]' }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }]; }, { columnLabel: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(BooleanFilterMenuComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-grid-boolean-filter-menu',\n template: `\n
      \n
    • \n \n \n
    • \n
    \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, { filter: [{\n type: Input\n }], hostClasses: [{\n type: HostBinding,\n args: ['class.k-filtercell']\n }], filterService: [{\n type: Input\n }], menuTabbingService: [{\n type: Input\n }], radioButtons: [{\n type: ViewChildren,\n args: [BooleanFilterRadioButtonDirective]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FilterMenuHostDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoFilterMenuHost]'\n }]\n }], function () { return [{ type: ɵngcc0.ViewContainerRef }, { type: ɵngcc0.ComponentFactoryResolver }]; }, { filterService: [{\n type: Input\n }], menuTabbingService: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DateFilterMenuInputComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-grid-date-filter-menu-input',\n template: `\n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: SinglePopupService }, { type: ɵngcc1.LocalizationService }]; }, { operators: [{\n type: Input\n }], column: [{\n type: Input\n }], filter: [{\n type: Input\n }], operator: [{\n type: Input\n }], currentFilter: [{\n type: Input\n }], filterService: [{\n type: Input\n }], menuTabbingService: [{\n type: Input\n }], format: [{\n type: Input\n }], formatPlaceholder: [{\n type: Input\n }], placeholder: [{\n type: Input\n }], min: [{\n type: Input\n }], max: [{\n type: Input\n }], activeView: [{\n type: Input\n }], bottomView: [{\n type: Input\n }], topView: [{\n type: Input\n }], weekNumber: [{\n type: Input\n }], isFirstDropDown: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FilterMenuDropDownListDirective, [{\n type: Directive,\n args: [{ selector: '[kendoFilterMenuDropDown]' }]\n }], function () { return [{ type: ɵngcc8.DropDownListComponent }]; }, { filterMenuDropDownLabel: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FilterMenuModule, [{\n type: NgModule,\n args: [{\n declarations: [INTERNAL_COMPONENTS$2],\n entryComponents: ENTRY_COMPONENTS$1,\n exports: [INTERNAL_COMPONENTS$2, SharedFilterModule],\n imports: [SharedFilterModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(FilterMenuModule, { declarations: [FilterMenuComponent, FilterMenuContainerComponent, FilterMenuInputWrapperComponent, StringFilterMenuInputComponent, StringFilterMenuComponent, FilterMenuTemplateDirective, NumericFilterMenuComponent, NumericFilterMenuInputComponent, DateFilterMenuInputComponent, DateFilterMenuComponent, FilterMenuHostDirective, BooleanFilterMenuComponent, FilterMenuDropDownListDirective, BooleanFilterRadioButtonDirective], imports: [SharedFilterModule], exports: [FilterMenuComponent, FilterMenuContainerComponent, FilterMenuInputWrapperComponent, StringFilterMenuInputComponent, StringFilterMenuComponent, FilterMenuTemplateDirective, NumericFilterMenuComponent, NumericFilterMenuInputComponent, DateFilterMenuInputComponent, DateFilterMenuComponent, FilterMenuHostDirective, BooleanFilterMenuComponent, FilterMenuDropDownListDirective, BooleanFilterRadioButtonDirective, SharedFilterModule] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnListComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-grid-columnlist',\n template: `\n
    \n \n
    \n
    \n \n \n
    \n `\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.Renderer2 }]; }, { reset: [{\n type: Output\n }], apply: [{\n type: Output\n }], columnChange: [{\n type: Output\n }], autoSync: [{\n type: Input\n }], allowHideAll: [{\n type: Input\n }], actionsClass: [{\n type: Input\n }], className: [{\n type: HostBinding,\n args: [\"class.k-column-list-wrapper\"]\n }], columns: [{\n type: Input\n }], applyText: [{\n type: Input\n }], resetText: [{\n type: Input\n }], isLast: [{\n type: Input\n }], isExpanded: [{\n type: Input\n }], service: [{\n type: Input\n }], applyButton: [{\n type: ViewChild,\n args: ['applyButton', { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnChooserComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-grid-column-chooser',\n template: `\n \n \n {{ localization.get('columns') }}\n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }, { type: ColumnInfoService }, { type: ɵngcc3.PopupService }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ChangeDetectorRef }]; }, { autoSync: [{\n type: Input\n }], allowHideAll: [{\n type: Input\n }] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnMenuChooserComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-grid-columnmenu-chooser',\n template: `\n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }, { type: ColumnInfoService }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.ElementRef }]; }, { expand: [{\n type: Output\n }], collapse: [{\n type: Output\n }], expanded: [{\n type: Input\n }], isLast: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnMenuFilterComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-grid-columnmenu-filter',\n template: `\n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }, { type: ɵngcc0.ElementRef }]; }, { expand: [{\n type: Output\n }], collapse: [{\n type: Output\n }], expanded: [{\n type: Input\n }], isLast: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnMenuItemContentTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridColumnMenuItemContentTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnMenuItemComponent, [{\n type: Component,\n 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 }], function () { return []; }, { itemClick: [{\n type: Output\n }], expand: [{\n type: Output\n }], collapse: [{\n type: Output\n }], expanded: [{\n type: Input\n }], icon: [{\n type: Input\n }], text: [{\n type: Input\n }], selected: [{\n type: Input\n }], disabled: [{\n type: Input\n }], contentTemplate: [{\n type: ContentChild,\n args: [ColumnMenuItemContentTemplateDirective, { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnMenuSortComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-grid-columnmenu-sort',\n template: `\n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }, { type: SortService }, { type: ɵngcc0.Renderer2 }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnMenuLockComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-grid-columnmenu-lock',\n template: `\n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }, { type: ColumnInfoService }, { type: ɵngcc0.ChangeDetectorRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnMenuPositionComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-grid-columnmenu-position',\n template: `\n \n \n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }, { type: ɵngcc0.ElementRef }]; }, { expand: [{\n type: Output\n }], collapse: [{\n type: Output\n }], expanded: [{\n type: Input\n }], isLast: [{\n type: Input\n }], showLock: [{\n type: Input\n }], showStick: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnMenuItemDirective, [{\n type: Directive,\n args: [{ selector: '[kendoGridColumnMenuItem]' }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.NgZone }]; }, { menuItemComponent: [{\n type: Input,\n args: ['kendoGridColumnMenuItem']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnMenuContainerComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-grid-columnmenu-container',\n template: `\n \n `\n }]\n }], function () { return [{ type: ColumnMenuService }, { type: ɵngcc0.NgZone }]; }, { columnMenuItems: [{\n type: ContentChildren,\n args: [ColumnMenuItemDirective, { descendants: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnMenuStickComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-grid-columnmenu-stick',\n template: `\n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }, { type: ColumnInfoService }, { type: ɵngcc0.ChangeDetectorRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnMenuModule, [{\n type: NgModule,\n args: [{\n declarations: [COMPONENTS$1],\n imports: [CommonModule, FilterMenuModule],\n exports: [COMPONENTS$1]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(ColumnMenuModule, { declarations: function () { return [ColumnListComponent, ColumnChooserComponent, ColumnMenuChooserComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuSortComponent, ColumnMenuComponent, ColumnMenuLockComponent, ColumnMenuTemplateDirective, ColumnMenuContainerComponent, ColumnMenuItemDirective, ColumnMenuStickComponent, ColumnMenuPositionComponent]; }, imports: function () { return [CommonModule, FilterMenuModule]; }, exports: function () { return [ColumnListComponent, ColumnChooserComponent, ColumnMenuChooserComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuSortComponent, ColumnMenuComponent, ColumnMenuLockComponent, ColumnMenuTemplateDirective, ColumnMenuContainerComponent, ColumnMenuItemDirective, ColumnMenuStickComponent, ColumnMenuPositionComponent]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(HeaderModule, [{\n type: NgModule,\n args: [{\n declarations: [exportedModules$2],\n exports: [exportedModules$2],\n imports: [...importedModules$2]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(HeaderModule, { declarations: [HeaderComponent, HeaderTemplateDirective, ColumnHandleDirective, SelectAllCheckboxDirective], imports: [CommonModule, GroupModule, RowFilterModule, FilterMenuModule, SharedModule, DragAndDropModule, ColumnMenuModule], exports: [HeaderComponent, HeaderTemplateDirective, ColumnHandleDirective, SelectAllCheckboxDirective] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CommandColumnComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: ColumnBase$1,\n useExisting: forwardRef(() => CommandColumnComponent_1)\n }\n ],\n selector: 'kendo-grid-command-column',\n template: ``\n }]\n }], function () { return [{ type: ColumnBase$1, decorators: [{\n type: SkipSelf\n }, {\n type: Host\n }, {\n type: Optional\n }] }, { type: IdService, decorators: [{\n type: Optional\n }] }]; }, { template: [{\n type: ContentChild,\n args: [CellTemplateDirective, { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CheckboxColumnComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: ColumnBase$1,\n useExisting: forwardRef(() => CheckboxColumnComponent_1)\n }\n ],\n selector: 'kendo-grid-checkbox-column',\n template: ``\n }]\n }], function () { return [{ type: ColumnBase$1, decorators: [{\n type: SkipSelf\n }, {\n type: Host\n }, {\n type: Optional\n }] }, { type: IdService, decorators: [{\n type: Optional\n }] }]; }, { showSelectAll: [{\n type: Input\n }], template: [{\n type: ContentChild,\n args: [CellTemplateDirective, { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SelectionCheckboxDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridSelectionCheckbox]'\n }]\n }], function () { return [{ type: SelectionService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.NgZone }]; }, { type: [{\n type: HostBinding,\n args: ['attr.type']\n }], itemIndex: [{\n type: Input,\n args: [\"kendoGridSelectionCheckbox\"]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TableBodyComponent, [{\n type: Component,\n 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 \n 0\"\n [logicalCellsCount]=\"columns.length\"\n [logicalSlaveCellsCount]=\"groupHeaderSlaveCellsCount\">\n \n 0\"\n [logicalCellsCount]=\"columns.length\"\n [logicalSlaveCellsCount]=\"unlockedColumnsCount\"\n [class.k-grid-row-sticky]=\"rowSticky ? rowSticky({ dataItem: item.data, index: item.index }) : false\"\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 }], function () { return [{ type: DetailsService }, { type: GroupsService }, { type: ChangeNotificationService }, { type: EditService }, { type: ɵngcc1.LocalizationService }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }, { type: DomEventsService }, { type: SelectionService }, { type: CellSelectionService }, { type: ColumnInfoService }, { type: NavigationService }]; }, { columns: [{\n type: Input\n }], groups: [{\n type: Input\n }], skip: [{\n type: Input\n }], noRecordsText: [{\n type: Input\n }], isLocked: [{\n type: Input\n }], skipGroupDecoration: [{\n type: Input\n }], showGroupFooters: [{\n type: Input\n }], lockedColumnsCount: [{\n type: Input\n }], totalColumnsCount: [{\n type: Input\n }], trackBy: [{\n type: Input\n }], rowClass: [{\n type: Input\n }], allColumns: [{\n type: Input\n }], detailTemplate: [{\n type: Input\n }], noRecordsTemplate: [{\n type: Input\n }], data: [{\n type: Input\n }], selectable: [{\n type: Input\n }], filterable: [{\n type: Input\n }], isLoading: [{\n type: Input\n }], isVirtual: [{\n type: Input\n }], cellLoadingTemplate: [{\n type: Input\n }], virtualColumns: [{\n type: Input\n }], rowSticky: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CellComponent, [{\n type: Component,\n args: [{\n selector: '[kendoGridCell]',\n template: `\n \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 \n \n
    \n `\n }]\n }], function () { return [{ type: EditService }, { type: IdService }, { type: ɵngcc1.LocalizationService }, { type: Object, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [CELL_CONTEXT]\n }] }]; }, { isNew: [{\n type: Input\n }], isLoading: [{\n type: Input\n }], isVirtual: [{\n type: Input\n }], commandCellClass: [{\n type: HostBinding,\n args: ['class.k-command-cell']\n }], rowIndex: [{\n type: Input\n }], column: [{\n type: Input\n }], columnIndex: [{\n type: Input\n }], loadingTemplate: [{\n type: Input\n }], dataItem: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditCommandDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridEditCommand]'\n }]\n }], function () { return [{ type: EditService }, { type: Object, decorators: [{\n type: Inject,\n args: [CELL_CONTEXT]\n }] }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc1.LocalizationService }, { type: ɵngcc0.NgZone }]; }, { commandClass: [{\n type: HostBinding,\n args: ['class.k-grid-edit-command']\n }], visible: [{\n type: HostBinding,\n args: ['style.display']\n }], \n /**\n * @hidden\n */\n onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CancelCommandDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridCancelCommand]'\n }]\n }], function () { return [{ type: EditService }, { type: Object, decorators: [{\n type: Inject,\n args: [CELL_CONTEXT]\n }] }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc1.LocalizationService }, { type: ɵngcc0.NgZone }]; }, { commandClass: [{\n type: HostBinding,\n args: ['class.k-grid-cancel-command']\n }], visible: [{\n type: HostBinding,\n args: ['style.display']\n }], \n /**\n * @hidden\n */\n onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SaveCommandDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridSaveCommand]'\n }]\n }], function () { return [{ type: EditService }, { type: Object, decorators: [{\n type: Inject,\n args: [CELL_CONTEXT]\n }] }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc1.LocalizationService }, { type: ɵngcc0.NgZone }]; }, { commandClass: [{\n type: HostBinding,\n args: ['class.k-grid-save-command']\n }], visible: [{\n type: HostBinding,\n args: ['style.display']\n }], \n /**\n * @hidden\n */\n onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(RemoveCommandDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridRemoveCommand]'\n }]\n }], function () { return [{ type: EditService }, { type: Object, decorators: [{\n type: Inject,\n args: [CELL_CONTEXT]\n }] }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc1.LocalizationService }, { type: ɵngcc0.NgZone }]; }, { commandClass: [{\n type: HostBinding,\n args: ['class.k-grid-remove-command']\n }], visible: [{\n type: HostBinding,\n args: ['style.display']\n }], \n /**\n * @hidden\n */\n onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AddCommandDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridAddCommand]'\n }]\n }], function () { return [{ type: EditService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc1.LocalizationService }, { type: ɵngcc0.NgZone }]; }, { \n /**\n * @hidden\n */\n onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }], commandClass: [{\n type: HostBinding,\n args: ['class.k-grid-add-command']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(BodyModule, [{\n type: NgModule,\n args: [{\n declarations: [exported$1],\n exports: [exported$1],\n imports: [...importedModules$3]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(BodyModule, { declarations: [CommandColumnComponent, CheckboxColumnComponent, SelectionCheckboxDirective, CellTemplateDirective, EditTemplateDirective, TableBodyComponent, NoRecordsTemplateDirective, CellComponent, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, CellLoadingTemplateDirective, LoadingTemplateDirective], imports: [CommonModule,\n ReactiveFormsModule,\n FormsModule, SharedModule, GroupModule, NumericTextBoxModule,\n DatePickerModule,\n ResizeSensorModule], exports: [CommandColumnComponent, CheckboxColumnComponent, SelectionCheckboxDirective, CellTemplateDirective, EditTemplateDirective, TableBodyComponent, NoRecordsTemplateDirective, CellComponent, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, CellLoadingTemplateDirective, LoadingTemplateDirective] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FooterComponent, [{\n type: Component,\n args: [{\n selector: '[kendoGridFooter]',\n template: `\n \n 0\"\n [logicalCellsCount]=\"columns.length\"\n [logicalSlaveCellsCount]=\"columns.length - lockedColumnsCount\"\n >\n \n \n \n \n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: ColumnInfoService }]; }, { columns: [{\n type: Input\n }], groups: [{\n type: Input\n }], lockedColumnsCount: [{\n type: Input\n }], logicalRowIndex: [{\n type: Input\n }], footerClass: [{\n type: HostBinding,\n args: ['class.k-grid-footer']\n }], detailTemplate: [{\n type: Input\n }], scrollable: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FooterModule, [{\n type: NgModule,\n args: [{\n declarations: [exportedModules$3],\n exports: [exportedModules$3],\n imports: [...importedModules$4]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(FooterModule, { declarations: [FooterComponent], imports: [CommonModule, SharedModule], exports: [FooterComponent] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ToolbarComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-grid-toolbar',\n template: `\n \n \n `\n }]\n }], function () { return [{ type: GridComponent }]; }, { position: [{\n type: Input\n }] }); })();\n\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TemplateEditingDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridTemplateEditing]'\n }]\n }], function () { return [{ type: GridComponent }, { type: LocalDataChangesService }]; }, { createNewItem: [{\n type: Input,\n args: ['kendoGridTemplateEditing']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ReactiveEditingDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridReactiveEditing]'\n }]\n }], function () { return [{ type: GridComponent }, { type: LocalDataChangesService }]; }, { createFormGroup: [{\n type: Input,\n args: ['kendoGridReactiveEditing']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(InCellEditingDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridInCellEditing]'\n }]\n }], function () { return [{ type: GridComponent }, { type: LocalDataChangesService }, { type: ɵngcc0.ChangeDetectorRef }]; }, { createFormGroup: [{\n type: Input,\n args: ['kendoGridInCellEditing']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(GroupBindingDirective, [{\n type: Directive,\n args: [{ selector: '[kendoGridGroupBinding]' }]\n }], function () { return [{ type: GridComponent }, { type: ɵngcc0.ChangeDetectorRef }, { type: LocalDataChangesService }]; }, { kendoGridGroupBinding: [{\n type: Input,\n args: [\"kendoGridGroupBinding\"]\n }], sort: [{\n type: Input\n }], filter: [{\n type: Input\n }], group: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(GridModule, [{\n type: NgModule,\n 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 }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(GridModule, { declarations: function () { return [GridComponent, ListComponent, ToolbarComponent, LocalizedMessagesDirective, CustomMessagesComponent, DataBindingDirective, ToolbarTemplateDirective, SelectionDirective, TemplateEditingDirective, ReactiveEditingDirective, InCellEditingDirective, ExpandDetailsDirective, ExpandGroupDirective, GroupBindingDirective, GridMarqueeDirective, GridSpacerComponent]; }, imports: function () { return [CommonModule, GroupModule, SharedModule, BodyModule, HeaderModule, FooterModule, PagerModule, RowFilterModule, FilterMenuModule, ResizeSensorModule, ColumnMenuModule]; }, exports: function () { return [GridComponent, ToolbarTemplateDirective, ToolbarComponent, GridSpacerComponent, DataBindingDirective, SelectionDirective, CustomMessagesComponent, GroupBindingDirective, TemplateEditingDirective, ReactiveEditingDirective, InCellEditingDirective, ExpandDetailsDirective, ExpandGroupDirective, GroupHeaderTemplateDirective, GroupHeaderColumnTemplateDirective, GroupFooterTemplateDirective, ColumnComponent, SpanColumnComponent, ColumnGroupComponent, FooterTemplateDirective, DetailTemplateDirective, FocusableDirective, CommandColumnComponent, CheckboxColumnComponent, SelectionCheckboxDirective, CellTemplateDirective, NoRecordsTemplateDirective, EditTemplateDirective, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, CellLoadingTemplateDirective, LoadingTemplateDirective, HeaderTemplateDirective, SelectAllCheckboxDirective, PagerComponent, PagerPrevButtonsComponent, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerInputComponent, PagerInfoComponent, PagerPageSizesComponent, PagerTemplateDirective, PagerDropDownListDirective, PagerInputDirective, FilterRowComponent, FilterCellComponent, FilterCellTemplateDirective, FilterCellOperatorsComponent, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, DateFilterCellComponent, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, StringFilterMenuComponent, FilterMenuTemplateDirective, NumericFilterMenuComponent, DateFilterMenuComponent, BooleanFilterMenuComponent, FilterMenuDropDownListDirective, BooleanFilterRadioButtonDirective, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, ColumnChooserComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuSortComponent, ColumnMenuLockComponent, ColumnMenuStickComponent, ColumnMenuPositionComponent, ColumnMenuChooserComponent, ColumnMenuTemplateDirective, ColumnMenuContainerComponent, ColumnMenuItemDirective, ColumnMenuComponent]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PDFMarginComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-grid-pdf-margin',\n template: ''\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PDFTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridPDFTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PDFComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-grid-pdf',\n template: ''\n }]\n }], function () { return [{ type: PDFService }, { type: SuspendService }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ElementRef }]; }, { delay: [{\n type: Input\n }], columns: [{\n type: ContentChildren,\n args: [ColumnBase$1]\n }], allPages: [{\n type: Input\n }], marginComponent: [{\n type: ContentChild,\n args: [PDFMarginComponent, { static: false }]\n }], pageTemplateDirective: [{\n type: ContentChild,\n args: [PDFTemplateDirective, { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PDFCommandDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridPDFCommand]'\n }]\n }], function () { return [{ type: PDFService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc1.LocalizationService }, { type: ɵngcc0.NgZone }]; }, { \n /**\n * @hidden\n */\n onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }], pdfClass: [{\n type: HostBinding,\n args: ['class.k-grid-pdf']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PDFModule, [{\n type: NgModule,\n args: [{\n declarations: [declarations$1],\n exports: [exportedModules$5]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(PDFModule, { declarations: [PDFComponent, PDFMarginComponent, PDFCommandDirective, PDFTemplateDirective], exports: [PDFComponent, PDFMarginComponent, PDFCommandDirective, PDFTemplateDirective] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ExcelComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-grid-excel',\n template: ``\n }]\n }], function () { return [{ type: ExcelService }, { type: ɵngcc1.LocalizationService }, { type: ɵngcc0.NgZone }]; }, { fileName: [{\n type: Input\n }], columns: [{\n type: ContentChildren,\n args: [ColumnBase, { descendants: true }]\n }], filterable: [{\n type: Input\n }], creator: [{\n type: Input\n }], date: [{\n type: Input\n }], forceProxy: [{\n type: Input\n }], proxyURL: [{\n type: Input\n }], fetchData: [{\n type: Input\n }], paddingCellOptions: [{\n type: Input\n }], headerPaddingCellOptions: [{\n type: Input\n }], collapsible: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ExcelCommandDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoGridExcelCommand]'\n }]\n }], function () { return [{ type: ExcelService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc1.LocalizationService }, { type: ɵngcc0.NgZone }]; }, { \n /**\n * @hidden\n */\n onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }], excelClass: [{\n type: HostBinding,\n args: ['class.k-grid-excel']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ExcelModule, [{\n type: NgModule,\n args: [{\n declarations: [declarations$2],\n exports: [declarations$2, ExcelExportModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(ExcelModule, { declarations: function () { return [ExcelComponent, ExcelCommandDirective]; }, exports: function () { return [ExcelComponent, ExcelCommandDirective, ExcelExportModule]; } }); })();\n\n\n\n\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ColumnChooserComponent, ColumnListComponent, ColumnMenuChooserComponent, ColumnMenuContainerComponent, ColumnMenuFilterComponent, ColumnMenuItemBase, ColumnMenuItemContentTemplateDirective, ColumnMenuItemComponent, ColumnMenuItemDirective, ColumnMenuLockComponent, ColumnMenuPositionComponent, ColumnMenuSortComponent, ColumnMenuStickComponent, ColumnMenuTemplateDirective, ColumnMenuModule, ColumnMenuService, ColumnHandleDirective, ColumnResizingService, TableDirective, ColumnInfoService, DomEventsService, 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, FilterMenuDropDownListDirective, FilterMenuHostDirective, FilterMenuInputWrapperComponent, FilterMenuComponent, BooleanFilterRadioButtonDirective, NumericFilterMenuInputComponent, StringFilterMenuInputComponent, NumericFilterComponent, FilterOperatorBase, SharedFilterModule, StringFilterComponent, GroupHeaderComponent, GroupIndicatorComponent, GroupInfoService, GroupPanelComponent, GroupsService, BrowserSupportService, ResizeService, ResponsiveService, LocalizedMessagesDirective, Messages, FocusGroup, FOCUS_ROOT_ACTIVE, FocusRoot, LogicalCellDirective, LogicalRowDirective, NavigationService, PagerContextService, PagerDropDownListDirective, PagerElementComponent, PagerInputDirective, PDFCommandDirective, PDFTemplateDirective, CellComponent, CELL_CONTEXT, EMPTY_CELL_CONTEXT, FieldAccessorPipe, DetailsService, DEFAULT_SCROLLER_FACTORY, SCROLLER_FACTORY_TOKEN, ScrollRequestService, ScrollSyncService, ScrollerService, CellSelectionService, GridMarqueeDirective, SelectAllCheckboxDirective, SelectionCheckboxDirective, Selection, SelectionService, GridModule, SharedModule, GridComponent, ColumnBase$1 as ColumnBase, ColumnComponent, CommandColumnComponent, SpanColumnComponent, ColumnGroupComponent, CheckboxColumnComponent, ToolbarComponent, ToolbarTemplateDirective, CellTemplateDirective, CellLoadingTemplateDirective, LoadingTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, PagerTemplateDirective, GridSpacerComponent, ExpandDetailsDirective, ExpandGroupDirective, 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, PDFService, ExcelModule, ExcelComponent, ExcelService, ExcelExportEvent, CellCloseEvent, SuspendService, GroupBindingDirective, slice, count, Skip, ColumnReorderEvent, FocusableDirective, ColumnVisibilityChangeEvent, ColumnMenuComponent, ColumnLockedChangeEvent, ColumnStickyChangeEvent, SinglePopupService, PopupCloseEvent, MenuTabbingService };\n\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 } from 'tslib';\nimport { HostBinding, Input, Component, ElementRef, Renderer2, isDevMode, NgModule } from '@angular/core';\nimport { validatePackage } from '@progress/kendo-licensing';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { isDocumentAvailable } from '@progress/kendo-angular-common';\nimport { CommonModule } from '@angular/common';\n\n/**\n * @hidden\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/platform-browser';\nimport * as ɵngcc2 from '@angular/common';\n\nfunction SVGIconComponent__svg_svg_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵnamespaceSVG();\n ɵngcc0.ɵɵelement(0, \"svg\", 1);\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"innerHTML\", ctx_r0.content, ɵngcc0.ɵɵsanitizeHtml);\n ɵngcc0.ɵɵattribute(\"viewBox\", ctx_r0.icon.viewBox);\n} }\nconst packageMetadata = {\n name: '@progress/kendo-angular-icons',\n productName: 'Kendo UI for Angular',\n productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],\n publishDate: 1646218985,\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 sizeClasses = {\n 'default': 'k-icon',\n 'xsmall': 'k-icon-xs',\n 'small': 'k-icon-sm',\n 'medium': 'k-icon-md',\n 'large': 'k-icon-lg',\n 'xlarge': 'k-icon-xl'\n};\n/**\n * @hidden\n */\nclass IconBase {\n constructor(element, renderer) {\n this.element = element;\n this.renderer = renderer;\n validatePackage(packageMetadata);\n }\n get horizontalFlip() {\n return this.flip === 'horizontal' || this.flip === 'both';\n }\n get verticalFlip() {\n return this.flip === 'vertical' || this.flip === 'both';\n }\n /**\n * Specifies the theme color for the Icon.\n *\n * The possible values are:\n * * `inherit` (Default)—Applies coloring based on the current color.\n * * `primary` —Applies coloring based on primary theme color.\n * * `secondary`—Applies coloring based on secondary theme color.\n * * `tertiary`— Applies coloring based on tertiary theme color.\n * * `info`—Applies coloring based on info theme color.\n * * `success`— Applies coloring based on success theme color.\n * * `warning`— Applies coloring based on warning theme color.\n * * `error`— Applies coloring based on error theme color.\n * * `dark`— Applies coloring based on dark theme color.\n * * `light`— Applies coloring based on light theme color.\n * * `inverse`— Applies coloring based on inverse theme color.\n *\n */\n set themeColor(themeColor) {\n const element = this.element.nativeElement;\n this._themeColor = themeColor;\n this.renderer.removeClass(element, `k-color-${themeColor}`);\n if (themeColor) {\n this.renderer.addClass(element, `k-color-${themeColor}`);\n }\n }\n get themeColor() {\n return this._themeColor;\n }\n /**\n * Specifies the size of the Icon.\n *\n * The possible values are:\n * * `default` (Default) (Font-size: 16px; Width: 16px; Height: 16px)\n * * `xsmall` (Font-size: 8px; Width: 8px; Height: 8px;)\n * * `small` (Font-size: 12px; Width: 12px; Height: 12px;)\n * * `medium` (Font-size: 32px; Width: 32px; Height: 32px;)\n * * `large` (Font-size: 48px; Width: 48px; Height: 48px;)\n * * `xlarge` (Font-size: 64px; Width: 64px; Height: 64px;)\n *\n */\n set size(size) {\n const element = this.element.nativeElement;\n this._size = size;\n const sizeClass = sizeClasses[this.size];\n this.renderer.removeClass(element, sizeClass);\n if (size !== 'default') {\n this.renderer.addClass(element, sizeClass);\n }\n }\n get size() {\n return this._size;\n }\n}\nIconBase.ɵfac = function IconBase_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nIconBase.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: IconBase, hostVars: 4, hostBindings: function IconBase_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-flip-h\", ctx.horizontalFlip)(\"k-flip-v\", ctx.verticalFlip);\n } }, inputs: { themeColor: \"themeColor\", size: \"size\", flip: \"flip\" } });\n__decorate([\n HostBinding('class.k-flip-h'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], IconBase.prototype, \"horizontalFlip\", null);\n__decorate([\n HostBinding('class.k-flip-v'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], IconBase.prototype, \"verticalFlip\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], IconBase.prototype, \"flip\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], IconBase.prototype, \"themeColor\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], IconBase.prototype, \"size\", null);\n\n/**\n * Represents the Kendo UI Icon component for Angular.\n */\nlet IconComponent = class IconComponent extends IconBase {\n constructor(element, renderer) {\n super(element, renderer);\n this.element = element;\n this.renderer = renderer;\n this.hostClass = true;\n }\n /**\n * Defines the name for an existing icon in a Kendo UI theme, which will be rendered.\n * All [Kendo UI Icons]({% slug icons %}#toc-list-of-font-icons) are supported.\n */\n set name(name) {\n const element = this.element.nativeElement;\n this.renderer.removeClass(element, `k-i-${this.name}`);\n this._name = name;\n if (name) {\n this.renderer.addClass(element, `k-i-${this.name}`);\n }\n }\n get name() {\n return this._name;\n }\n};\nIconComponent.ɵfac = function IconComponent_Factory(t) { return new (t || IconComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nIconComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: IconComponent, selectors: [[\"kendo-icon\"]], hostVars: 2, hostBindings: function IconComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-icon\", ctx.hostClass);\n } }, inputs: { name: \"name\" }, exportAs: [\"kendoIcon\"], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function IconComponent_Template(rf, ctx) { }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-icon'),\n __metadata(\"design:type\", Boolean)\n], IconComponent.prototype, \"hostClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], IconComponent.prototype, \"name\", null);\nIconComponent = __decorate([ __metadata(\"design:paramtypes\", [ElementRef, Renderer2])\n], IconComponent);\n\n/**\n * Represents the Kendo UI SVG Icon component for Angular.\n */\nlet SVGIconComponent = class SVGIconComponent extends IconBase {\n constructor(domSanitizer, element, renderer) {\n super(element, renderer);\n this.domSanitizer = domSanitizer;\n this.element = element;\n this.renderer = renderer;\n this.hostClass = true;\n }\n /**\n * Defines the SVG icon, which will be rendered.\n */\n set icon(icon) {\n const element = this.element.nativeElement;\n if (this._icon && this._icon.name) {\n this.renderer.removeClass(element, `k-svg-i-${this._icon.name}`);\n }\n this._icon = icon;\n this.renderer.addClass(element, `k-svg-i-${this._icon.name}`);\n }\n get icon() {\n return this._icon;\n }\n get content() {\n this.safeContent = this.safeContent || this.domSanitizer.bypassSecurityTrustHtml(this.icon.content);\n return this.safeContent;\n }\n get visible() {\n return this.icon && isDocumentAvailable();\n }\n ngOnInit() {\n this.verifyIconProperty();\n }\n verifyIconProperty() {\n if (!isDevMode()) {\n return;\n }\n if (!this._icon) {\n throw new Error(`\n Invalid configuration.\n The input [icon] is required for the Kendo UI SVG Icon component for Angular.\n See https://www.telerik.com/kendo-angular-ui/components/icons/svg-icon\n `);\n }\n }\n};\nSVGIconComponent.ɵfac = function SVGIconComponent_Factory(t) { return new (t || SVGIconComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.DomSanitizer), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nSVGIconComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SVGIconComponent, selectors: [[\"kendo-svg-icon\"]], hostVars: 2, hostBindings: function SVGIconComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-svg-icon\", ctx.hostClass);\n } }, inputs: { icon: \"icon\" }, exportAs: [\"kendoSVGIcon\"], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 1, vars: 1, consts: [[\"xmlns\", \"http://www.w3.org/2000/svg\", 0, \"xmlns\", \"xlink\", \"http://www.w3.org/1999/xlink\", 3, \"innerHTML\", 4, \"ngIf\"], [\"xmlns\", \"http://www.w3.org/2000/svg\", 0, \"xmlns\", \"xlink\", \"http://www.w3.org/1999/xlink\", 3, \"innerHTML\"]], template: function SVGIconComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, SVGIconComponent__svg_svg_0_Template, 1, 2, \"svg\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.visible);\n } }, directives: [ɵngcc2.NgIf], encapsulation: 2 });\n__decorate([\n HostBinding('class.k-svg-icon'),\n __metadata(\"design:type\", Boolean)\n], SVGIconComponent.prototype, \"hostClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], SVGIconComponent.prototype, \"icon\", null);\nSVGIconComponent = __decorate([ __metadata(\"design:paramtypes\", [DomSanitizer, ElementRef, Renderer2])\n], SVGIconComponent);\n\nconst exportedModules = [\n IconComponent\n];\nconst declarations = [\n ...exportedModules\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the Icon component.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the Icon module\n * import { IconModule } from '@progress/kendo-angular-icons';\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, IconModule], // import Icon module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nlet IconModule = class IconModule {\n};\nIconModule.ɵfac = function IconModule_Factory(t) { return new (t || IconModule)(); };\nIconModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: IconModule });\nIconModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule]] });\n\nconst exportedModules$1 = [\n SVGIconComponent\n];\nconst declarations$1 = [\n ...exportedModules$1\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the SVG Icon component.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the SVG Icon module\n * import { SVGIconModule } from '@progress/kendo-angular-icons';\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, SVGIconModule], // import SVG Icon module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nlet SVGIconModule = class SVGIconModule {\n};\nSVGIconModule.ɵfac = function SVGIconModule_Factory(t) { return new (t || SVGIconModule)(); };\nSVGIconModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: SVGIconModule });\nSVGIconModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule]] });\n\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the Icons components.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the Icons module\n * import { IconsModule } from '@progress/kendo-angular-icons';\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, IconsModule], // import Icons module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nlet IconsModule = class IconsModule {\n};\nIconsModule.ɵfac = function IconsModule_Factory(t) { return new (t || IconsModule)(); };\nIconsModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: IconsModule });\nIconsModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [IconModule, SVGIconModule] });\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IconComponent, [{\n type: Component,\n args: [{\n exportAs: 'kendoIcon',\n selector: 'kendo-icon',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }]; }, { hostClass: [{\n type: HostBinding,\n args: ['class.k-icon']\n }], name: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SVGIconComponent, [{\n type: Component,\n args: [{\n exportAs: 'kendoSVGIcon',\n selector: 'kendo-svg-icon',\n template: `\n \n `\n }]\n }], function () { return [{ type: ɵngcc1.DomSanitizer }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }]; }, { hostClass: [{\n type: HostBinding,\n args: ['class.k-svg-icon']\n }], icon: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IconModule, [{\n type: NgModule,\n args: [{\n declarations: [declarations],\n exports: [exportedModules],\n imports: [CommonModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(IconModule, { declarations: function () { return [IconComponent]; }, imports: function () { return [CommonModule]; }, exports: function () { return [IconComponent]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SVGIconModule, [{\n type: NgModule,\n args: [{\n declarations: [declarations$1],\n exports: [exportedModules$1],\n imports: [CommonModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(SVGIconModule, { declarations: function () { return [SVGIconComponent]; }, imports: function () { return [CommonModule]; }, exports: function () { return [SVGIconComponent]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IconsModule, [{\n type: NgModule,\n args: [{\n exports: [\n IconModule,\n SVGIconModule\n ]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(IconsModule, { exports: [IconModule, SVGIconModule] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { IconBase, IconComponent, SVGIconComponent, IconModule, SVGIconModule, IconsModule };\n\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, __param, __metadata } from 'tslib';\nimport { isDevMode, Directive, Optional, TemplateRef, EventEmitter, Input, Output, HostBinding, ViewChild, ElementRef, ContentChild, Component, forwardRef, Injector, Renderer2, NgZone, ChangeDetectorRef, Inject, Injectable, HostListener, ViewChildren, QueryList, NgModule, ViewContainerRef, ContentChildren } from '@angular/core';\nimport { NgControl, NG_VALUE_ACCESSOR, NG_VALIDATORS, RadioControlValueAccessor } from '@angular/forms';\nimport { Subscription, fromEvent, interval, merge, BehaviorSubject, Subject } from 'rxjs';\nimport { take, filter, concatMap, startWith, takeUntil, skip, debounceTime, throttleTime } from 'rxjs/operators';\nimport { LocalizationService, L10N_PREFIX, RTL, ComponentMessages, MessageService } from '@progress/kendo-angular-l10n';\nimport { Keys, guid, hasObservers, anyChanged, isDocumentAvailable, KendoInput, isChanged, DraggableModule, EventsModule, ResizeSensorModule, PreventableEvent, closest } from '@progress/kendo-angular-common';\nimport { validatePackage } from '@progress/kendo-licensing';\nimport { browser, mobileOS, detectDesktopBrowser, detectMobileOS } 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 *\n * Checks if the value is `null` or `undefined`. Falsy values like '', 0, false, NaN, etc. are regarded as present.\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@progress/kendo-angular-l10n';\nimport * as ɵngcc2 from '@progress/kendo-angular-common';\nimport * as ɵngcc3 from '@angular/common';\nimport * as ɵngcc4 from '@progress/kendo-angular-intl';\nimport * as ɵngcc5 from '@progress/kendo-angular-popup';\n\nconst _c0 = [\"wrap\"];\nconst _c1 = [\"track\"];\nconst _c2 = [\"sliderSelection\"];\nconst _c3 = [\"ticks\"];\nconst _c4 = [\"draghandle\"];\nconst _c5 = [\"decreaseButton\"];\nconst _c6 = [\"increaseButton\"];\nfunction SliderComponent_button_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"button\", 14, 15);\n ɵngcc0.ɵɵelement(2, \"span\", 16);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"title\", ctx_r1.decrementMessage);\n ɵngcc0.ɵɵattribute(\"tabindex\", -1);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵclassProp(\"k-i-arrow-w\", !ctx_r1.vertical)(\"k-i-arrow-s\", ctx_r1.vertical);\n} }\nfunction SliderComponent_ul_5_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"ul\", 17, 18);\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"tickTitle\", ctx_r2.title)(\"vertical\", ctx_r2.vertical)(\"step\", ctx_r2.smallStep)(\"largeStep\", ctx_r2.largeStep)(\"min\", ctx_r2.min)(\"max\", ctx_r2.max)(\"labelTemplate\", ctx_r2.labelTemplate == null ? null : ctx_r2.labelTemplate.templateRef);\n ɵngcc0.ɵɵattribute(\"aria-hidden\", true);\n} }\nfunction SliderComponent_button_12_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"button\", 19, 20);\n ɵngcc0.ɵɵlistener(\"click\", function SliderComponent_button_12_Template_button_click_0_listener($event) { return $event.preventDefault(); });\n ɵngcc0.ɵɵelement(2, \"span\", 16);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r6 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"title\", ctx_r6.incrementMessage);\n ɵngcc0.ɵɵattribute(\"tabindex\", -1)(\"aria-label\", ctx_r6.currentValue);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵclassProp(\"k-i-arrow-e\", !ctx_r6.vertical)(\"k-i-arrow-n\", ctx_r6.vertical);\n} }\nconst _c13 = function (a0, a1) { return { click: a0, keydown: a1 }; };\nconst _c14 = [\"draghandleStart\"];\nconst _c15 = [\"draghandleEnd\"];\nfunction RangeSliderComponent_ul_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"ul\", 13, 14);\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"tickTitle\", ctx_r1.title)(\"vertical\", ctx_r1.vertical)(\"step\", ctx_r1.smallStep)(\"largeStep\", ctx_r1.largeStep)(\"min\", ctx_r1.min)(\"max\", ctx_r1.max)(\"labelTemplate\", ctx_r1.labelTemplate == null ? null : ctx_r1.labelTemplate.templateRef);\n ɵngcc0.ɵɵattribute(\"aria-hidden\", true);\n} }\nconst _c20 = [\"thumb\"];\nconst _c25 = function (a0, a1, a2) { return { keydown: a0, focus: a1, blur: a2 }; };\nconst _c26 = [\"numericInput\"];\nconst _c31 = function (a0, a1) { return { mouseup: a0, mouseleave: a1 }; };\nconst _c32 = function (a0) { return { mousedown: a0 }; };\nfunction NumericTextBoxComponent_span_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 4)(1, \"button\", 5);\n ɵngcc0.ɵɵelement(2, \"span\", 6);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(3, \"button\", 7);\n ɵngcc0.ɵɵelement(4, \"span\", 8);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction2(13, _c31, ctx_r1.releaseArrow, ctx_r1.releaseArrow));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"k-active\", ctx_r1.arrowDirection === ctx_r1.ArrowDirection.Up);\n ɵngcc0.ɵɵproperty(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction1(16, _c32, ctx_r1.increasePress))(\"title\", ctx_r1.incrementTitle);\n ɵngcc0.ɵɵattribute(\"aria-hidden\", true)(\"aria-label\", ctx_r1.incrementTitle);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵclassProp(\"k-active\", ctx_r1.arrowDirection === ctx_r1.ArrowDirection.Down);\n ɵngcc0.ɵɵproperty(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction1(18, _c32, ctx_r1.decreasePress))(\"title\", ctx_r1.decrementTitle);\n ɵngcc0.ɵɵattribute(\"aria-hidden\", true)(\"aria-label\", ctx_r1.decrementTitle);\n} }\nconst _c33 = function (a0, a1, a2, a3, a4, a5, a6) { return { mousedown: a0, dragenter: a1, keydown: a2, input: a3, focus: a4, blur: a5, paste: a6 }; };\nconst _c34 = [\"input\"];\nconst _c35 = function (a0, a1, a2, a3, a4) { return { focus: a0, blur: a1, click: a2, dragstart: a3, drop: a4 }; };\nconst _c36 = [\"tickElement\"];\nconst _c37 = [\"kendoSliderTicks\", \"\"];\nfunction SliderTicksComponent_li_0_span_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 7);\n ɵngcc0.ɵɵelementContainer(1, 8);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const tick_r3 = ɵngcc0.ɵɵnextContext().$implicit;\n const ctx_r5 = ɵngcc0.ɵɵnextContext();\n const _r1 = ɵngcc0.ɵɵreference(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r5.labelTemplate || _r1)(\"ngTemplateOutletContext\", tick_r3);\n} }\nfunction SliderTicksComponent_li_0_ng_container_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtext(1, \"\\u00A0\");\n ɵngcc0.ɵɵelementContainerEnd();\n} }\nfunction SliderTicksComponent_li_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"li\", 2, 3);\n ɵngcc0.ɵɵelementContainerStart(2, 4);\n ɵngcc0.ɵɵtemplate(3, SliderTicksComponent_li_0_span_3_Template, 2, 2, \"span\", 5);\n ɵngcc0.ɵɵtemplate(4, SliderTicksComponent_li_0_ng_container_4_Template, 2, 0, \"ng-container\", 6);\n ɵngcc0.ɵɵelementContainerEnd();\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const tick_r3 = ctx.$implicit;\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵpropertyInterpolate(\"title\", ctx_r0.tickTitle(tick_r3.value));\n ɵngcc0.ɵɵproperty(\"ngClass\", tick_r3.classes);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngSwitch\", tick_r3.large);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngSwitchCase\", true);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngSwitchCase\", false);\n} }\nfunction SliderTicksComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n} if (rf & 2) {\n const value_r8 = ctx.value;\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r2.tickTitle(value_r8), \" \");\n} }\nfunction TextBoxComponent_2_ng_template_0_Template(rf, ctx) { }\nfunction TextBoxComponent_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, TextBoxComponent_2_ng_template_0_Template, 0, 0, \"ng-template\", 8);\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.prefixTemplate == null ? null : ctx_r0.prefixTemplate.templateRef);\n} }\nfunction TextBoxComponent_span_5_Template(rf, ctx) { if (rf & 1) {\n const _r8 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"span\", 9);\n ɵngcc0.ɵɵlistener(\"click\", function TextBoxComponent_span_5_Template_span_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r8); const ctx_r7 = ɵngcc0.ɵɵnextContext(); return ctx_r7.clearValue(); })(\"mousedown\", function TextBoxComponent_span_5_Template_span_mousedown_0_listener($event) { return $event.preventDefault(); })(\"keydown.enter\", function TextBoxComponent_span_5_Template_span_keydown_enter_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r8); const ctx_r10 = ɵngcc0.ɵɵnextContext(); return ctx_r10.clearValue($event); })(\"keydown.space\", function TextBoxComponent_span_5_Template_span_keydown_space_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r8); const ctx_r11 = ɵngcc0.ɵɵnextContext(); return ctx_r11.clearValue($event); });\n ɵngcc0.ɵɵelement(1, \"span\", 10);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"tabindex\", ctx_r2.tabIndex)(\"title\", ctx_r2.clearTitle());\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx_r2.clearTitle());\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r2.clearButtonClasses);\n} }\nfunction TextBoxComponent_span_6_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 10);\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r3.errorIconClasses);\n} }\nfunction TextBoxComponent_span_7_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 10);\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r4.successIconClasses);\n} }\nfunction TextBoxComponent_9_ng_template_0_Template(rf, ctx) { }\nfunction TextBoxComponent_9_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, TextBoxComponent_9_ng_template_0_Template, 0, 0, \"ng-template\", 8);\n} if (rf & 2) {\n const ctx_r5 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r5.suffixTemplate == null ? null : ctx_r5.suffixTemplate.templateRef);\n} }\nconst _c40 = function (a0, a1, a2) { return { focus: a0, blur: a1, input: a2 }; };\nconst _c41 = [[[\"kendo-textarea-suffix\"]]];\nconst _c42 = [\"kendo-textarea-suffix\"];\nconst _c43 = [\"*\"];\nconst _c44 = [\"opacityInput\"];\nconst _c45 = [\"hexInput\"];\nconst _c46 = [\"blueInput\"];\nconst _c47 = [\"toggleFormatButton\"];\nfunction ColorInputComponent_div_4_Template(rf, ctx) { if (rf & 1) {\n const _r5 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 0)(1, \"input\", 6, 7);\n ɵngcc0.ɵɵlistener(\"blur\", function ColorInputComponent_div_4_Template_input_blur_1_listener() { ɵngcc0.ɵɵrestoreView(_r5); const ctx_r4 = ɵngcc0.ɵɵnextContext(); return ctx_r4.handleHexInputBlur(); })(\"input\", function ColorInputComponent_div_4_Template_input_input_1_listener() { ɵngcc0.ɵɵrestoreView(_r5); const _r3 = ɵngcc0.ɵɵreference(2); const ctx_r6 = ɵngcc0.ɵɵnextContext(); return ctx_r6.handleHexValueChange(_r3.value); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(3, \"label\", 8);\n ɵngcc0.ɵɵtext(4, \"HEX\");\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"id\", ctx_r1.focusableId)(\"disabled\", ctx_r1.disabled)(\"readonly\", ctx_r1.readonly)(\"value\", ctx_r1.hex || \"\");\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"for\", ctx_r1.focusableId);\n} }\nfunction ColorInputComponent_ng_container_5_div_16_Template(rf, ctx) { if (rf & 1) {\n const _r14 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 0)(1, \"kendo-numerictextbox\", 13, 14);\n ɵngcc0.ɵɵlistener(\"valueChange\", function ColorInputComponent_ng_container_5_div_16_Template_kendo_numerictextbox_valueChange_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r14); const ctx_r13 = ɵngcc0.ɵɵnextContext(2); return ctx_r13.rgba.a = $event; })(\"blur\", function ColorInputComponent_ng_container_5_div_16_Template_kendo_numerictextbox_blur_1_listener() { ɵngcc0.ɵɵrestoreView(_r14); const ctx_r15 = ɵngcc0.ɵɵnextContext(2); return ctx_r15.handleRgbaInputBlur(); })(\"valueChange\", function ColorInputComponent_ng_container_5_div_16_Template_kendo_numerictextbox_valueChange_1_listener() { ɵngcc0.ɵɵrestoreView(_r14); const ctx_r16 = ɵngcc0.ɵɵnextContext(2); return ctx_r16.handleRgbaValueChange(); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(4, \"label\", 8);\n ɵngcc0.ɵɵtext(5, \"A\");\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const _r12 = ɵngcc0.ɵɵreference(3);\n const ctx_r10 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx_r10.disabled)(\"readonly\", ctx_r10.readonly)(\"min\", 0)(\"max\", 1)(\"value\", ctx_r10.rgba.a)(\"autoCorrect\", true)(\"spinners\", false)(\"step\", 0.01)(\"format\", \"n2\")(\"decimals\", 2);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"for\", _r12.focusableId);\n} }\nfunction ColorInputComponent_ng_container_5_Template(rf, ctx) { if (rf & 1) {\n const _r18 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵelementStart(1, \"div\", 0)(2, \"kendo-numerictextbox\", 9, 10);\n ɵngcc0.ɵɵlistener(\"valueChange\", function ColorInputComponent_ng_container_5_Template_kendo_numerictextbox_valueChange_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r18); const ctx_r17 = ɵngcc0.ɵɵnextContext(); return ctx_r17.rgba.r = $event; })(\"blur\", function ColorInputComponent_ng_container_5_Template_kendo_numerictextbox_blur_2_listener() { ɵngcc0.ɵɵrestoreView(_r18); const ctx_r19 = ɵngcc0.ɵɵnextContext(); return ctx_r19.handleRgbaInputBlur(); })(\"valueChange\", function ColorInputComponent_ng_container_5_Template_kendo_numerictextbox_valueChange_2_listener() { ɵngcc0.ɵɵrestoreView(_r18); const ctx_r20 = ɵngcc0.ɵɵnextContext(); return ctx_r20.handleRgbaValueChange(); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(4, \"label\", 8);\n ɵngcc0.ɵɵtext(5, \"R\");\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵelementStart(6, \"div\", 0)(7, \"kendo-numerictextbox\", 9, 11);\n ɵngcc0.ɵɵlistener(\"valueChange\", function ColorInputComponent_ng_container_5_Template_kendo_numerictextbox_valueChange_7_listener($event) { ɵngcc0.ɵɵrestoreView(_r18); const ctx_r21 = ɵngcc0.ɵɵnextContext(); return ctx_r21.rgba.g = $event; })(\"blur\", function ColorInputComponent_ng_container_5_Template_kendo_numerictextbox_blur_7_listener() { ɵngcc0.ɵɵrestoreView(_r18); const ctx_r22 = ɵngcc0.ɵɵnextContext(); return ctx_r22.handleRgbaInputBlur(); })(\"valueChange\", function ColorInputComponent_ng_container_5_Template_kendo_numerictextbox_valueChange_7_listener() { ɵngcc0.ɵɵrestoreView(_r18); const ctx_r23 = ɵngcc0.ɵɵnextContext(); return ctx_r23.handleRgbaValueChange(); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(9, \"label\", 8);\n ɵngcc0.ɵɵtext(10, \"G\");\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵelementStart(11, \"div\", 0)(12, \"kendo-numerictextbox\", 9, 12);\n ɵngcc0.ɵɵlistener(\"valueChange\", function ColorInputComponent_ng_container_5_Template_kendo_numerictextbox_valueChange_12_listener($event) { ɵngcc0.ɵɵrestoreView(_r18); const ctx_r24 = ɵngcc0.ɵɵnextContext(); return ctx_r24.rgba.b = $event; })(\"blur\", function ColorInputComponent_ng_container_5_Template_kendo_numerictextbox_blur_12_listener() { ɵngcc0.ɵɵrestoreView(_r18); const ctx_r25 = ɵngcc0.ɵɵnextContext(); return ctx_r25.handleRgbaInputBlur(); })(\"valueChange\", function ColorInputComponent_ng_container_5_Template_kendo_numerictextbox_valueChange_12_listener() { ɵngcc0.ɵɵrestoreView(_r18); const ctx_r26 = ɵngcc0.ɵɵnextContext(); return ctx_r26.handleRgbaValueChange(); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(14, \"label\", 8);\n ɵngcc0.ɵɵtext(15, \"B\");\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵtemplate(16, ColorInputComponent_ng_container_5_div_16_Template, 6, 11, \"div\", 4);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const _r7 = ɵngcc0.ɵɵreference(3);\n const _r8 = ɵngcc0.ɵɵreference(8);\n const _r9 = ɵngcc0.ɵɵreference(13);\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx_r2.disabled)(\"readonly\", ctx_r2.readonly)(\"min\", 0)(\"max\", 255)(\"value\", ctx_r2.rgba.r)(\"autoCorrect\", true)(\"spinners\", false)(\"format\", \"n\")(\"decimals\", 0);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"for\", _r7.focusableId);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx_r2.disabled)(\"readonly\", ctx_r2.readonly)(\"min\", 0)(\"max\", 255)(\"value\", ctx_r2.rgba.g)(\"autoCorrect\", true)(\"spinners\", false)(\"format\", \"n\")(\"decimals\", 0);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"for\", _r8.focusableId);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx_r2.disabled)(\"readonly\", ctx_r2.readonly)(\"min\", 0)(\"max\", 255)(\"value\", ctx_r2.rgba.b)(\"autoCorrect\", true)(\"spinners\", false)(\"format\", \"n\")(\"decimals\", 0);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"for\", _r9.focusableId);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r2.opacity);\n} }\nconst _c48 = [\"gradientDragHandle\"];\nconst _c49 = [\"inputs\"];\nconst _c50 = [\"alphaSlider\"];\nconst _c51 = [\"gradientWrapper\"];\nconst _c52 = [\"hsvRectangle\"];\nfunction ColorGradientComponent__svg_svg_8_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵnamespaceSVG();\n ɵngcc0.ɵɵelement(0, \"svg\", 15);\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n const _r1 = ɵngcc0.ɵɵreference(5);\n ɵngcc0.ɵɵproperty(\"wrapper\", _r1 ? _r1 : undefined)(\"hsva\", ctx_r3.hsva)(\"backgroundColor\", ctx_r3.contrastTool);\n} }\nfunction ColorGradientComponent_span_10_Template(rf, ctx) { if (rf & 1) {\n const _r9 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"span\", 16);\n ɵngcc0.ɵɵlistener(\"click\", function ColorGradientComponent_span_10_Template_span_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r9); const ctx_r8 = ɵngcc0.ɵɵnextContext(); return ctx_r8.reset(); })(\"keydown.enter\", function ColorGradientComponent_span_10_Template_span_keydown_enter_0_listener() { ɵngcc0.ɵɵrestoreView(_r9); const ctx_r10 = ɵngcc0.ɵɵnextContext(); return ctx_r10.reset(); })(\"keydown.space\", function ColorGradientComponent_span_10_Template_span_keydown_space_0_listener() { ɵngcc0.ɵɵrestoreView(_r9); const ctx_r11 = ɵngcc0.ɵɵnextContext(); return ctx_r11.reset(); });\n ɵngcc0.ɵɵelement(1, \"span\", 17);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx_r4.clearButtonTitle)(\"title\", ctx_r4.clearButtonTitle);\n} }\nconst _c71 = function (a0) { return { \"k-align-self-end\": a0 }; };\nfunction ColorGradientComponent_kendo_slider_12_Template(rf, ctx) { if (rf & 1) {\n const _r14 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-slider\", 18, 19);\n ɵngcc0.ɵɵlistener(\"valueChange\", function ColorGradientComponent_kendo_slider_12_Template_kendo_slider_valueChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r14); const ctx_r13 = ɵngcc0.ɵɵnextContext(); return ctx_r13.handleAlphaSliderChange($event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r5 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction1(12, _c71, ctx_r5.clearButton))(\"dragHandleTitle\", ctx_r5.opacitySliderTitle)(\"disabled\", ctx_r5.disabled)(\"readonly\", ctx_r5.readonly)(\"showButtons\", false)(\"tickPlacement\", \"none\")(\"vertical\", true)(\"min\", 0)(\"max\", 100)(\"smallStep\", 1)(\"largeStep\", 10)(\"value\", ctx_r5.alphaSliderValue);\n} }\nfunction ColorGradientComponent_div_15_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"div\", 20);\n} if (rf & 2) {\n const ctx_r7 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"value\", ctx_r7.value)(\"ratio\", ctx_r7.contrastTool);\n} }\nconst _c74 = function (a0, a1, a2, a3) { return { backgroundColor: a0, width: a1, height: a2, minWidth: a3 }; };\nfunction ColorPaletteComponent_tr_4_td_1_Template(rf, ctx) { if (rf & 1) {\n const _r7 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"td\", 5);\n ɵngcc0.ɵɵlistener(\"click\", function ColorPaletteComponent_tr_4_td_1_Template_td_click_0_listener() { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r7); const color_r4 = restoredCtx.$implicit; const colIndex_r5 = restoredCtx.index; const rowIndex_r2 = ɵngcc0.ɵɵnextContext().index; const ctx_r6 = ɵngcc0.ɵɵnextContext(); return ctx_r6.handleCellSelection(color_r4, { row: rowIndex_r2, col: colIndex_r5 }); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const color_r4 = ctx.$implicit;\n const colIndex_r5 = ctx.index;\n const rowIndex_r2 = ɵngcc0.ɵɵnextContext().index;\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"k-state-selected\", (ctx_r3.selectedCell == null ? null : ctx_r3.selectedCell.row) === rowIndex_r2 && (ctx_r3.selectedCell == null ? null : ctx_r3.selectedCell.col) === colIndex_r5)(\"k-state-focus\", ctx_r3.focusInComponent && (ctx_r3.focusedCell == null ? null : ctx_r3.focusedCell.row) === rowIndex_r2 && (ctx_r3.focusedCell == null ? null : ctx_r3.focusedCell.col) === colIndex_r5);\n ɵngcc0.ɵɵproperty(\"id\", \"k-\" + rowIndex_r2 + \"-\" + colIndex_r5 + \"-\" + ctx_r3.uniqueId)(\"ngStyle\", ɵngcc0.ɵɵpureFunction4(9, _c74, color_r4, ctx_r3.tileLayout.width + \"px\", ctx_r3.tileLayout.height + \"px\", ctx_r3.tileLayout.width + \"px\"));\n ɵngcc0.ɵɵattribute(\"aria-selected\", (ctx_r3.selectedCell == null ? null : ctx_r3.selectedCell.row) === rowIndex_r2 && (ctx_r3.selectedCell == null ? null : ctx_r3.selectedCell.col) === colIndex_r5)(\"aria-label\", color_r4)(\"value\", color_r4);\n} }\nfunction ColorPaletteComponent_tr_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"tr\");\n ɵngcc0.ɵɵtemplate(1, ColorPaletteComponent_tr_4_td_1_Template, 1, 14, \"td\", 4);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const row_r1 = ctx.$implicit;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", row_r1);\n} }\nconst _c75 = [\"clearButton\"];\nconst _c76 = [\"viewButtons\"];\nconst _c77 = [\"kendoFlatColorPickerHeader\", \"\"];\nfunction FlatColorPickerHeaderComponent_div_1_button_1_Template(rf, ctx) { if (rf & 1) {\n const _r7 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 7, 8);\n ɵngcc0.ɵɵlistener(\"click\", function FlatColorPickerHeaderComponent_div_1_button_1_Template_button_click_0_listener() { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r7); const view_r4 = restoredCtx.$implicit; const ctx_r6 = ɵngcc0.ɵɵnextContext(2); return ctx_r6.onViewButtonClick(view_r4); });\n ɵngcc0.ɵɵelement(2, \"span\", 9);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const view_r4 = ctx.$implicit;\n const ctx_r3 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r3.activeView === view_r4 ? \"k-state-selected\" : \"\");\n ɵngcc0.ɵɵattribute(\"title\", ctx_r3.getText(view_r4 === \"gradient\" ? \"gradientView\" : \"paletteView\"))(\"aria-label\", ctx_r3.getText(view_r4 === \"gradient\" ? \"gradientView\" : \"paletteView\"))(\"aria-pressed\", ctx_r3.activeView === view_r4);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r3.getViewButtonIcon(view_r4));\n} }\nfunction FlatColorPickerHeaderComponent_div_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 5);\n ɵngcc0.ɵɵtemplate(1, FlatColorPickerHeaderComponent_div_1_button_1_Template, 3, 5, \"button\", 6);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r0.views);\n} }\nfunction FlatColorPickerHeaderComponent_button_4_Template(rf, ctx) { if (rf & 1) {\n const _r10 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 10, 11);\n ɵngcc0.ɵɵlistener(\"click\", function FlatColorPickerHeaderComponent_button_4_Template_button_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r10); const ctx_r9 = ɵngcc0.ɵɵnextContext(); return ctx_r9.clearButtonClick.emit(); });\n ɵngcc0.ɵɵelement(2, \"span\", 12);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx_r1.getText(\"clearButton\"))(\"title\", ctx_r1.getText(\"clearButton\"));\n} }\nfunction FlatColorPickerHeaderComponent_div_5_Template(rf, ctx) { if (rf & 1) {\n const _r12 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 13);\n ɵngcc0.ɵɵelement(1, \"span\", 14);\n ɵngcc0.ɵɵelementStart(2, \"span\", 15);\n ɵngcc0.ɵɵlistener(\"click\", function FlatColorPickerHeaderComponent_div_5_Template_span_click_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r12); const ctx_r11 = ɵngcc0.ɵɵnextContext(); return ctx_r11.valuePaneClick.emit($event); });\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵstyleProp(\"background-color\", ctx_r2.selection);\n ɵngcc0.ɵɵattribute(\"title\", ctx_r2.getText(\"previewColor\"));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵstyleProp(\"background-color\", ctx_r2.value);\n ɵngcc0.ɵɵattribute(\"title\", ctx_r2.getText(\"revertSelection\"));\n} }\nconst _c78 = [\"last\"];\nconst _c79 = [\"kendoFlatColorPickerActionButtons\", \"\"];\nconst _c80 = [\"header\"];\nconst _c81 = [\"gradient\"];\nconst _c82 = [\"palette\"];\nconst _c83 = [\"footer\"];\nfunction FlatColorPickerComponent_div_1_Template(rf, ctx) { if (rf & 1) {\n const _r6 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 6, 7);\n ɵngcc0.ɵɵlistener(\"clearButtonClick\", function FlatColorPickerComponent_div_1_Template_div_clearButtonClick_0_listener() { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r5 = ɵngcc0.ɵɵnextContext(); return ctx_r5.onClearButtonClick(); })(\"viewChange\", function FlatColorPickerComponent_div_1_Template_div_viewChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r7 = ɵngcc0.ɵɵnextContext(); return ctx_r7.onViewChange($event); })(\"valuePaneClick\", function FlatColorPickerComponent_div_1_Template_div_valuePaneClick_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r8 = ɵngcc0.ɵɵnextContext(); return ctx_r8.resetSelection($event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"clearButton\", ctx_r0.clearButton)(\"activeView\", ctx_r0.activeView)(\"views\", ctx_r0.views)(\"value\", ctx_r0.value)(\"selection\", ctx_r0.selection)(\"preview\", ctx_r0.preview);\n} }\nfunction FlatColorPickerComponent_kendo_colorgradient_3_Template(rf, ctx) { if (rf & 1) {\n const _r11 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-colorgradient\", 8, 9);\n ɵngcc0.ɵɵlistener(\"valueChange\", function FlatColorPickerComponent_kendo_colorgradient_3_Template_kendo_colorgradient_valueChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r11); const ctx_r10 = ɵngcc0.ɵɵnextContext(); return ctx_r10.handleValueChange($event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"tabindex\", null)(\"value\", ctx_r1.selection)(\"format\", ctx_r1.format)(\"opacity\", ctx_r1.gradientSettings.opacity)(\"delay\", ctx_r1.gradientSettings.delay)(\"contrastTool\", ctx_r1.gradientSettings.contrastTool)(\"readonly\", ctx_r1.readonly);\n} }\nfunction FlatColorPickerComponent_kendo_colorpalette_4_Template(rf, ctx) { if (rf & 1) {\n const _r14 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-colorpalette\", 10, 11);\n ɵngcc0.ɵɵlistener(\"valueChange\", function FlatColorPickerComponent_kendo_colorpalette_4_Template_kendo_colorpalette_valueChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r14); const ctx_r13 = ɵngcc0.ɵɵnextContext(); return ctx_r13.handleValueChange($event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"palette\", ctx_r2.paletteSettings.palette)(\"columns\", ctx_r2.paletteSettings.columns)(\"tileSize\", ctx_r2.paletteSettings.tileSize)(\"format\", ctx_r2.format)(\"value\", ctx_r2.selection);\n} }\nfunction FlatColorPickerComponent_div_5_Template(rf, ctx) { if (rf & 1) {\n const _r17 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 12, 13);\n ɵngcc0.ɵɵlistener(\"actionButtonClick\", function FlatColorPickerComponent_div_5_Template_div_actionButtonClick_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r17); const ctx_r16 = ɵngcc0.ɵɵnextContext(); return ctx_r16.onAction($event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngClass\", \"k-justify-content-\" + ctx_r3.actionsLayout);\n} }\nconst _c114 = [\"container\"];\nconst _c115 = [\"activeColor\"];\nconst _c116 = [\"popupTemplate\"];\nconst _c117 = [\"flatColorPicker\"];\nfunction ColorPickerComponent_span_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 10);\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r1.iconStyles);\n} }\nfunction ColorPickerComponent_ng_template_8_Template(rf, ctx) { if (rf & 1) {\n const _r7 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-flatcolorpicker\", 11, 12);\n ɵngcc0.ɵɵlistener(\"cancel\", function ColorPickerComponent_ng_template_8_Template_kendo_flatcolorpicker_cancel_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r7); const ctx_r6 = ɵngcc0.ɵɵnextContext(); return ctx_r6.handleCancelEvent($event); })(\"focusout\", function ColorPickerComponent_ng_template_8_Template_kendo_flatcolorpicker_focusout_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r7); const ctx_r8 = ɵngcc0.ɵɵnextContext(); return ctx_r8.handlePopupBlur($event); })(\"valueChange\", function ColorPickerComponent_ng_template_8_Template_kendo_flatcolorpicker_valueChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r7); const ctx_r9 = ɵngcc0.ɵɵnextContext(); return ctx_r9.handleValueChange($event); })(\"keydown\", function ColorPickerComponent_ng_template_8_Template_kendo_flatcolorpicker_keydown_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r7); const ctx_r10 = ɵngcc0.ɵɵnextContext(); return ctx_r10.handlePopupKeyDown($event); })(\"activeViewChange\", function ColorPickerComponent_ng_template_8_Template_kendo_flatcolorpicker_activeViewChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r7); const ctx_r11 = ɵngcc0.ɵɵnextContext(); return ctx_r11.activeViewChange.emit($event); })(\"actionButtonClick\", function ColorPickerComponent_ng_template_8_Template_kendo_flatcolorpicker_actionButtonClick_0_listener() { ɵngcc0.ɵɵrestoreView(_r7); const ctx_r12 = ɵngcc0.ɵɵnextContext(); return ctx_r12.togglePopup(); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"value\", ctx_r3.value)(\"format\", ctx_r3.format)(\"views\", ctx_r3.views)(\"activeView\", ctx_r3.activeView)(\"actionsLayout\", ctx_r3.actionsLayout)(\"preview\", ctx_r3.preview)(\"gradientSettings\", ctx_r3.gradientSettings)(\"paletteSettings\", ctx_r3.paletteSettings)(\"clearButton\", ctx_r3.clearButton);\n} }\nconst _c150 = function (a0, a1) { return { \"k-icon-color-preview\": a0, \"k-no-color\": a1 }; };\nconst _c151 = [\"kendoContrastValidation\", \"\"];\nfunction ContrastValidationComponent_ng_container_2_span_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 3);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelement(2, \"span\", 4);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r1.passMessage, \" \");\n} }\nfunction ContrastValidationComponent_ng_container_2_span_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 5);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelement(2, \"span\", 6);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r2.failMessage, \" \");\n} }\nfunction ContrastValidationComponent_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, ContrastValidationComponent_ng_container_2_span_1_Template, 3, 1, \"span\", 1);\n ɵngcc0.ɵɵtemplate(2, ContrastValidationComponent_ng_container_2_span_2_Template, 3, 1, \"span\", 2);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r0.pass);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r0.pass);\n} }\nconst _c152 = [\"kendoContrastTool\", \"\"];\nfunction ContrastComponent_ng_container_3_span_1_span_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 8);\n} }\nfunction ContrastComponent_ng_container_3_span_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 7);\n ɵngcc0.ɵɵelement(1, \"span\", 8);\n ɵngcc0.ɵɵtemplate(2, ContrastComponent_ng_container_3_span_1_span_2_Template, 1, 0, \"span\", 9);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r1.satisfiesAAACondition);\n} }\nfunction ContrastComponent_ng_container_3_span_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 10);\n ɵngcc0.ɵɵelement(1, \"span\", 11);\n ɵngcc0.ɵɵelementEnd();\n} }\nfunction ContrastComponent_ng_container_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, ContrastComponent_ng_container_3_span_1_Template, 3, 1, \"span\", 5);\n ɵngcc0.ɵɵtemplate(2, ContrastComponent_ng_container_3_span_2_Template, 2, 0, \"span\", 6);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r0.satisfiesAACondition);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r0.satisfiesAACondition);\n} }\nconst _c153 = [\"kendoColorContrastSvg\", \"\"];\nfunction ColorContrastSvgComponent__svg_path_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵnamespaceSVG();\n ɵngcc0.ɵɵelement(0, \"path\", 1);\n} if (rf & 2) {\n const path_r1 = ctx.$implicit;\n ɵngcc0.ɵɵattribute(\"d\", path_r1);\n} }\nfunction FormFieldComponent_ng_content_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojection(0, 2, [\"*ngIf\", \"hasHints\"]);\n} }\nfunction FormFieldComponent_ng_content_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojection(0, 3, [\"*ngIf\", \"hasErrors\"]);\n} }\nconst _c154 = [[[\"label\"], [\"kendo-label\"]], \"*\", [[\"kendo-formhint\"]], [[\"kendo-formerror\"]]];\nconst _c155 = [\"label, kendo-label\", \"*\", \"kendo-formhint\", \"kendo-formerror\"];\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};\nconst SIZES = {\n small: 'sm',\n medium: 'md',\n large: 'lg'\n};\nconst ROUNDNESS = {\n small: 'sm',\n medium: 'md',\n large: 'lg',\n full: 'full'\n};\n/**\n * @hidden\n *\n * Returns the styling classes to be added and removed\n */\nconst getStylingClasses = (componentType, stylingOption, previousValue, newValue) => {\n switch (stylingOption) {\n case 'size':\n return {\n toRemove: `k-${componentType}-${SIZES[previousValue]}`,\n toAdd: newValue ? `k-${componentType}-${SIZES[newValue]}` : null\n };\n case 'rounded':\n return {\n toRemove: `k-rounded-${ROUNDNESS[previousValue]}`,\n toAdd: newValue ? `k-rounded-${ROUNDNESS[newValue]}` : null\n };\n case 'fillMode':\n return {\n toRemove: `k-${componentType}-${previousValue}`,\n toAdd: newValue ? `k-${componentType}-${newValue}` : null\n };\n default:\n break;\n }\n};\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\n/**\n * @hidden\n */\nconst calculateFixedTrackSize = ({ max, min, smallStep, fixedTickWidth }) => ((max - min) / smallStep) * fixedTickWidth;\n/**\n * @hidden\n */\nconst 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 * @hidden\n */\nconst 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 */\nconst calculateHandlePosition = ({ trackWidth, min, max, reverse, value }) => {\n const step = trackWidth / Math.abs(max - min);\n let pos = isPresent(value) ? step * (value - min) : min;\n if (reverse) {\n pos = trackWidth - pos;\n }\n return Math.floor(pos);\n};\n/**\n * @hidden\n */\nconst 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 */\nconst 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 */\nconst isStartHandle = (dragHandle) => dragHandle.id.indexOf('k-start-handle') > -1;\n/**\n * @hidden\n */\nconst snapValue = (value, options) => {\n const { smallStep, min, max } = options;\n const limited = limitValue(value, min, max);\n if (value !== limited) {\n return limited;\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 */\nconst trimValue = (max, min, value) => {\n if (value > max) {\n return max;\n }\n if (value < min) {\n return min;\n }\n return value;\n};\n/**\n * @hidden\n */\nconst trimValueRange = (max, min, value) => {\n return value ? [trimValue(max, min, value[0]), trimValue(max, min, value[1])] : [min, min];\n};\n/**\n * @hidden\n */\nconst identity = (value) => value;\n/**\n * @hidden\n */\nconst isSameRange = (value1, value2) => areSame(value1[0], value2[0]) && areSame(value1[1], value2[1]);\n/**\n * @hidden\n */\nconst 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};\n/**\n * @hidden\n */\nconst limitValue = (value, min, max) => {\n return Math.max(Math.min(value, max), min);\n};\n/**\n * @hidden\n */\nconst 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 */\nconst isButton = (element) => {\n return element.className.indexOf('k-button-increase') >= 0 || element.className.indexOf('k-button-decrease') >= 0;\n};\n/**\n * @hidden\n */\nconst increment = (options) => {\n return increaseValueToStep(options.value, options);\n};\n/**\n * @hidden\n */\nconst decrement = (options) => {\n return decreaseValueToStep(options.value, options);\n};\n/**\n * @hidden\n */\nconst incrementLarge = (options) => {\n return increaseValueToStep(options.value, options, true);\n};\n/**\n * @hidden\n */\nconst decrementLarge = (options) => {\n return decreaseValueToStep(options.value, options, true);\n};\n/**\n * @hidden\n */\nconst validateValue = (value) => {\n if (isDevMode && value && value[0] > value[1]) {\n throw new Error('[RangeSlider] The start value should not be greater than the end value.');\n }\n};\n\n/**\n * @hidden\n */\nclass SliderModelBase {\n constructor(props, wrapper, track, renderer) {\n this.props = props;\n this.wrapper = wrapper;\n this.track = track;\n this.renderer = renderer;\n this.props = props;\n this.wrapper = wrapper;\n this.track = track;\n this.tickSizes = this.getTickSizes();\n }\n resizeTrack() {\n const orientation = this.props.vertical ? 'height' : 'width';\n const altOrientation = this.props.vertical ? 'width' : 'height';\n const trackWidth = this.trackWidth();\n this.track.parentElement.style[orientation] = `${trackWidth}px`;\n this.track.parentElement.style[altOrientation] = '';\n }\n resizeTicks(ticksContainer, ticks) {\n const dimension = this.props.vertical ? \"height\" : \"width\";\n [...ticks].map((tick, index) => tick.style[dimension] = `${this.tickSizes[index]}px`);\n if (this.props.vertical) {\n this.adjustPadding(ticksContainer);\n }\n }\n resizeWrapper() {\n const dimension = this.props.vertical ? \"height\" : \"width\";\n const fixedTrackWidth = calculateFixedTrackSize(this.props);\n const wrapperParentEl = this.wrapper.parentElement;\n if (fixedTrackWidth) {\n wrapperParentEl.style[dimension] = \"auto\";\n }\n }\n trackWidth() {\n if (this.props.fixedTickWidth) {\n return calculateFixedTrackSize(this.props);\n }\n return this.elementSize(this.track.parentElement);\n }\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 // ensure that the sum of the tick sizes does not exceed the track width\n endPoint = +endPoint.toFixed(2) - 0.01;\n const size = Math.round(endPoint - usedSpace);\n result.push(size);\n usedSpace += size;\n }\n if (usedSpace >= trackSize) {\n result[result.length - 1] -= 1;\n }\n return result;\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 if (reminder !== 0) {\n const padding = reminder + this.elementOffset(this.track);\n ticksContainer.style.paddingTop = `${padding}px`;\n }\n }\n elementOffset(element) {\n const { vertical } = this.props;\n const style = getComputedStyle(element);\n return parseInt(vertical ? style.bottom : style.left, 10);\n }\n elementSize(element) {\n const { vertical } = this.props;\n return vertical ? element.clientHeight : element.clientWidth;\n }\n}\n\n/**\n * @hidden\n */\nclass SliderModel extends SliderModelBase {\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 = trimValue(max, min, this.props.value);\n this.handlePosition = calculateHandlePosition({\n min,\n max,\n reverse,\n value,\n trackWidth\n });\n this.renderer.setStyle(dragHandle, position, `${this.handlePosition}px`);\n }\n positionSelection(selection) {\n const { reverse, vertical } = this.props;\n const dimension = vertical ? 'height' : 'width';\n let size = this.handlePosition;\n if (reverse) {\n size = this.trackWidth() - size;\n }\n this.renderer.setStyle(selection, dimension, `${size}px`);\n }\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/**\n * @hidden\n */\nconst closest$1 = (node, predicate) => {\n while (node && !predicate(node)) {\n node = node.parentNode;\n }\n return node;\n};\n\n/**\n * @hidden\n */\nconst packageMetadata = {\n name: '@progress/kendo-angular-inputs',\n productName: 'Kendo UI for Angular',\n productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],\n publishDate: 1648211916,\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\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-no-run\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 */\nlet LabelTemplateDirective = class LabelTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nLabelTemplateDirective.ɵfac = function LabelTemplateDirective_Factory(t) { return new (t || LabelTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nLabelTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LabelTemplateDirective, selectors: [[\"\", \"kendoSliderLabelTemplate\", \"\"]] });\nLabelTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], LabelTemplateDirective);\n\n/**\n * @hidden\n */\nclass SliderBase {\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 * 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 = identity;\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`— (Default) 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 * 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 * 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 component.\n */\n this.onFocus = new EventEmitter(); //tslint:disable-line:no-output-rename\n /**\n * Fires each time the component is 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.subscriptions = new Subscription();\n /**\n * @hidden\n */\n this.ifEnabled = (callback, event) => {\n if (!this.isDisabled) {\n callback.call(this, event);\n }\n };\n validatePackage(packageMetadata);\n this.direction = localizationService.rtl ? 'rtl' : 'ltr';\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 /**\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.changeDetector.markForCheck();\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();\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 * @hidden\n */\n get isDisabled() {\n return this.disabled || this.readonly;\n }\n /**\n * @hidden\n * Used by the FloatingLabel 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 resetStyles(elements) {\n elements.forEach(el => {\n if (el) {\n if (this.vertical) {\n this.renderer.removeStyle(el, 'width');\n this.renderer.removeStyle(el, 'left');\n this.renderer.removeStyle(el, 'right');\n }\n else {\n this.renderer.removeStyle(el, 'height');\n this.renderer.removeStyle(el, 'bottom');\n }\n this.renderer.removeStyle(el, 'padding-top');\n }\n });\n }\n}\nSliderBase.ɵfac = function SliderBase_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nSliderBase.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SliderBase, contentQueries: function SliderBase_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, LabelTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.labelTemplate = _t.first);\n } }, viewQuery: function SliderBase_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c0, 7);\n ɵngcc0.ɵɵviewQuery(_c1, 7);\n ɵngcc0.ɵɵviewQuery(_c2, 7);\n ɵngcc0.ɵɵviewQuery(_c3, 5, ElementRef);\n ɵngcc0.ɵɵviewQuery(_c3, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.wrapper = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.track = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.sliderSelection = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.ticksContainer = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.ticks = _t.first);\n } }, hostVars: 11, hostBindings: function SliderBase_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"dir\", ctx.direction);\n ɵngcc0.ɵɵclassProp(\"k-slider\", ctx.sliderClass)(\"k-widget\", ctx.widgetClass)(\"k-slider-horizontal\", ctx.horizontalClass)(\"k-slider-vertical\", ctx.verticalClass)(\"k-state-disabled\", ctx.disabledClass);\n } }, inputs: { title: \"title\", tickPlacement: \"tickPlacement\", vertical: \"vertical\", min: \"min\", max: \"max\", smallStep: \"smallStep\", largeStep: \"largeStep\", disabled: \"disabled\", readonly: \"readonly\", tabindex: \"tabindex\", fixedTickWidth: \"fixedTickWidth\" }, outputs: { onFocus: \"focus\", onBlur: \"blur\", valueChange: \"valueChange\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], SliderBase.prototype, \"title\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SliderBase.prototype, \"tickPlacement\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SliderBase.prototype, \"vertical\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SliderBase.prototype, \"min\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SliderBase.prototype, \"max\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SliderBase.prototype, \"smallStep\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SliderBase.prototype, \"largeStep\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SliderBase.prototype, \"fixedTickWidth\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SliderBase.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SliderBase.prototype, \"readonly\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SliderBase.prototype, \"tabindex\", void 0);\n__decorate([\n Output('focus'),\n __metadata(\"design:type\", EventEmitter)\n], SliderBase.prototype, \"onFocus\", void 0);\n__decorate([\n Output('blur'),\n __metadata(\"design:type\", EventEmitter)\n], SliderBase.prototype, \"onBlur\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], SliderBase.prototype, \"valueChange\", void 0);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String)\n], SliderBase.prototype, \"direction\", void 0);\n__decorate([\n HostBinding('class.k-slider-horizontal'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], SliderBase.prototype, \"horizontalClass\", null);\n__decorate([\n HostBinding('class.k-slider-vertical'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], SliderBase.prototype, \"verticalClass\", null);\n__decorate([\n HostBinding('class.k-slider'),\n __metadata(\"design:type\", Boolean)\n], SliderBase.prototype, \"sliderClass\", void 0);\n__decorate([\n HostBinding('class.k-widget'),\n __metadata(\"design:type\", Boolean)\n], SliderBase.prototype, \"widgetClass\", void 0);\n__decorate([\n HostBinding('class.k-state-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], SliderBase.prototype, \"disabledClass\", null);\n__decorate([\n ViewChild('wrap', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], SliderBase.prototype, \"wrapper\", void 0);\n__decorate([\n ViewChild('track', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], SliderBase.prototype, \"track\", void 0);\n__decorate([\n ViewChild('sliderSelection', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], SliderBase.prototype, \"sliderSelection\", void 0);\n__decorate([\n ViewChild('ticks', { read: ElementRef, static: false }),\n __metadata(\"design:type\", ElementRef)\n], SliderBase.prototype, \"ticksContainer\", void 0);\n__decorate([\n ViewChild('ticks', { static: false }),\n __metadata(\"design:type\", Object)\n], SliderBase.prototype, \"ticks\", void 0);\n__decorate([\n ContentChild(LabelTemplateDirective, { static: false }),\n __metadata(\"design:type\", LabelTemplateDirective)\n], SliderBase.prototype, \"labelTemplate\", void 0);\n\nvar SliderComponent_1;\nconst PRESSED = 'k-pressed';\n/**\n * Represents the [Kendo UI Slider component for Angular]({% slug overview_slider %}).\n */\nlet SliderComponent = SliderComponent_1 = class SliderComponent extends SliderBase {\n constructor(localization, injector, renderer, ngZone, changeDetector, hostElement) {\n super(localization, injector, renderer, ngZone, changeDetector, hostElement);\n this.localization = localization;\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 * 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 = this.min;\n this.focusChangedProgrammatically = false;\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 invokeElementMethod(this.draghandle, 'focus');\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(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.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 if (!this.focusChangedProgrammatically) {\n this.onBlur.emit();\n }\n });\n }\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 * @hidden\n */\n get currentValue() {\n return isPresent(this.value) ? this.value.toString() : '';\n }\n /**\n * Focuses the Slider.\n *\n * @example\n * ```ts-no-run\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n * class AppComponent { }\n * ```\n */\n focus() {\n if (!this.disabled) {\n this.focusChangedProgrammatically = true;\n invokeElementMethod(this.draghandle, 'focus');\n this.focusChangedProgrammatically = false;\n }\n }\n /**\n * Blurs the Slider.\n */\n blur() {\n this.focusChangedProgrammatically = true;\n invokeElementMethod(this.draghandle, 'blur');\n this.handleBlur();\n this.focusChangedProgrammatically = false;\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 this.attachElementEventHandlers();\n }\n ngOnDestroy() {\n if (this.subscriptions) {\n this.subscriptions.unsubscribe();\n }\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.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.changeDetector.markForCheck();\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 this.changeDetector.markForCheck();\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(props, wrapper, track, this.renderer);\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(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 set focused(value) {\n if (this.isFocused !== value && this.hostElement) {\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 if (!this.isFocused) {\n invokeElementMethod(this.draghandle, 'focus');\n }\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: trimValue(this.max, this.min, this.value),\n vertical: this.vertical\n };\n }\n attachElementEventHandlers() {\n const hostElement = this.hostElement.nativeElement;\n let tabbing = false;\n let cursorInsideWrapper = false;\n this.ngZone.runOutsideAngular(() => {\n // focusIn and focusOut are relative to the host element\n this.subscriptions.add(this.renderer.listen(hostElement, 'focusin', () => {\n if (!this.isFocused) {\n this.ngZone.run(() => {\n if (!this.focusChangedProgrammatically) {\n this.onFocus.emit();\n }\n this.focused = true;\n });\n }\n }));\n this.subscriptions.add(this.renderer.listen(hostElement, 'focusout', (args) => {\n if (!this.isFocused) {\n return;\n }\n if (tabbing) {\n if (args.relatedTarget !== this.draghandle.nativeElement) {\n this.handleBlur();\n }\n tabbing = false;\n }\n else {\n if (!cursorInsideWrapper) {\n this.handleBlur();\n }\n }\n }));\n this.subscriptions.add(this.renderer.listen(hostElement, 'mouseenter', () => {\n cursorInsideWrapper = true;\n }));\n this.subscriptions.add(this.renderer.listen(hostElement, 'mouseleave', () => {\n cursorInsideWrapper = false;\n }));\n this.subscriptions.add(this.renderer.listen(hostElement, 'keydown', (args) => {\n if (args.keyCode === Keys.Tab) {\n tabbing = true;\n }\n else {\n tabbing = false;\n }\n }));\n });\n }\n};\nSliderComponent.ɵfac = function SliderComponent_Factory(t) { return new (t || SliderComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Injector), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nSliderComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SliderComponent, selectors: [[\"kendo-slider\"]], viewQuery: function SliderComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c4, 7);\n ɵngcc0.ɵɵviewQuery(_c5, 5);\n ɵngcc0.ɵɵviewQuery(_c6, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.draghandle = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.decreaseButton = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.increaseButton = _t.first);\n } }, inputs: { focusableId: \"focusableId\", animate: \"animate\", showButtons: \"showButtons\", value: \"value\", tabIndex: \"tabIndex\", dragHandleTitle: \"dragHandleTitle\", incrementTitle: \"incrementTitle\", decrementTitle: \"decrementTitle\" }, exportAs: [\"kendoSlider\"], features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n { provide: L10N_PREFIX, useValue: 'kendo.slider' },\n { multi: true, provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SliderComponent_1) },\n { provide: KendoInput, useExisting: forwardRef(() => SliderComponent_1) }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature, ɵngcc0.ɵɵNgOnChangesFeature], decls: 14, vars: 25, consts: function () { let i18n_7; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the **Increase** button of the Slider.\n * @meaning kendo.slider.increment\n */\n const MSG_EXTERNAL_8302125540024939132$$DIST_FESM2015_INDEX_JS_8 = goog.getMsg(\"increment\");\n i18n_7 = MSG_EXTERNAL_8302125540024939132$$DIST_FESM2015_INDEX_JS_8;\n }\n else {\n i18n_7 = $localize `:kendo.slider.increment|The title of the **Increase** button of the Slider.␟0fa71630d40c425b9c366afd7f6c3cecc5bef59d␟8302125540024939132:increment`;\n } let i18n_9; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the **Decrease** button of the Slider.\n * @meaning kendo.slider.decrement\n */\n const MSG_EXTERNAL_652458644240352212$$DIST_FESM2015_INDEX_JS_10 = goog.getMsg(\"decrement\");\n i18n_9 = MSG_EXTERNAL_652458644240352212$$DIST_FESM2015_INDEX_JS_10;\n }\n else {\n i18n_9 = $localize `:kendo.slider.decrement|The title of the **Decrease** button of the Slider.␟042c26f68d78afd6834ea46a5f7533850fe8c800␟652458644240352212:decrement`;\n } let i18n_11; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the drag handle of the Slider.\n * @meaning kendo.slider.dragHandle\n */\n const MSG_EXTERNAL_9117416417579607469$$DIST_FESM2015_INDEX_JS_12 = goog.getMsg(\"Drag\");\n i18n_11 = MSG_EXTERNAL_9117416417579607469$$DIST_FESM2015_INDEX_JS_12;\n }\n else {\n i18n_11 = $localize `:kendo.slider.dragHandle|The title of the drag handle of the Slider.␟481eb98e9cd8ef8e8b22051796441901e883763d␟9117416417579607469:Drag`;\n } return [[\"kendoSliderLocalizedMessages\", \"\", \"increment\", i18n_7, \"decrement\", i18n_9, \"dragHandle\", i18n_11], [1, \"k-slider-wrap\", 3, \"kendoEventsOutsideAngular\"], [\"wrap\", \"\"], [\"type\", \"button\", \"class\", \"k-button-decrease k-button k-button-md k-rounded-full k-button-rectangle k-button-solid k-button-solid-base k-icon-button\", \"role\", \"presentation\", 3, \"title\", 4, \"ngIf\"], [1, \"k-slider-track-wrap\"], [\"kendoSliderTicks\", \"\", 3, \"tickTitle\", \"vertical\", \"step\", \"largeStep\", \"min\", \"max\", \"labelTemplate\", 4, \"ngIf\"], [1, \"k-slider-track\"], [\"track\", \"\"], [1, \"k-slider-selection\"], [\"sliderSelection\", \"\"], [\"role\", \"slider\", \"kendoDraggable\", \"\", 1, \"k-draghandle\", 3, \"title\", \"id\", \"kendoPress\", \"kendoDrag\", \"kendoRelease\"], [\"draghandle\", \"\"], [\"type\", \"button\", \"class\", \"k-button-increase k-button k-button-md k-rounded-full k-button-rectangle k-button-solid k-button-solid-base k-icon-button\", \"role\", \"presentation\", 3, \"title\", \"click\", 4, \"ngIf\"], [3, \"resize\"], [\"type\", \"button\", \"role\", \"presentation\", 1, \"k-button-decrease\", \"k-button\", \"k-button-md\", \"k-rounded-full\", \"k-button-rectangle\", \"k-button-solid\", \"k-button-solid-base\", \"k-icon-button\", 3, \"title\"], [\"decreaseButton\", \"\"], [1, \"k-button-icon\", \"k-icon\"], [\"kendoSliderTicks\", \"\", 3, \"tickTitle\", \"vertical\", \"step\", \"largeStep\", \"min\", \"max\", \"labelTemplate\"], [\"ticks\", \"\"], [\"type\", \"button\", \"role\", \"presentation\", 1, \"k-button-increase\", \"k-button\", \"k-button-md\", \"k-rounded-full\", \"k-button-rectangle\", \"k-button-solid\", \"k-button-solid-base\", \"k-icon-button\", 3, \"title\", \"click\"], [\"increaseButton\", \"\"]]; }, template: function SliderComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0, 0);\n ɵngcc0.ɵɵelementStart(1, \"div\", 1, 2);\n ɵngcc0.ɵɵtemplate(3, SliderComponent_button_3_Template, 3, 6, \"button\", 3);\n ɵngcc0.ɵɵelementStart(4, \"div\", 4);\n ɵngcc0.ɵɵtemplate(5, SliderComponent_ul_5_Template, 2, 8, \"ul\", 5);\n ɵngcc0.ɵɵelementStart(6, \"div\", 6, 7);\n ɵngcc0.ɵɵelement(8, \"div\", 8, 9);\n ɵngcc0.ɵɵelementStart(10, \"a\", 10, 11);\n ɵngcc0.ɵɵlistener(\"kendoPress\", function SliderComponent_Template_a_kendoPress_10_listener($event) { return ctx.ifEnabled(ctx.handleDragPress, $event); })(\"kendoDrag\", function SliderComponent_Template_a_kendoDrag_10_listener($event) { return ctx.ifEnabled(ctx.onHandleDrag, $event); })(\"kendoRelease\", function SliderComponent_Template_a_kendoRelease_10_listener($event) { return ctx.ifEnabled(ctx.onHandleRelease, $event); });\n ɵngcc0.ɵɵelementEnd()()();\n ɵngcc0.ɵɵtemplate(12, SliderComponent_button_12_Template, 3, 7, \"button\", 12);\n ɵngcc0.ɵɵelementStart(13, \"kendo-resize-sensor\", 13);\n ɵngcc0.ɵɵlistener(\"resize\", function SliderComponent_Template_kendo_resize_sensor_resize_13_listener() { return ctx.sizeComponent(false); });\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵelementContainerEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"k-slider-buttons\", ctx.showButtons)(\"k-slider-topleft\", ctx.tickPlacement === \"before\")(\"k-slider-bottomright\", ctx.tickPlacement === \"after\");\n ɵngcc0.ɵɵproperty(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction2(22, _c13, ctx.onWrapClick, ctx.onKeyDown));\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showButtons);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.tickPlacement !== \"none\");\n ɵngcc0.ɵɵadvance(5);\n ɵngcc0.ɵɵstyleProp(\"touch-action\", ctx.isDisabled ? \"\" : \"none\");\n ɵngcc0.ɵɵproperty(\"title\", ctx.dragHandleMessage)(\"id\", ctx.focusableId);\n ɵngcc0.ɵɵattribute(\"aria-valuemin\", ctx.min)(\"aria-valuemax\", ctx.max)(\"aria-valuenow\", ctx.currentValue)(\"aria-valuetext\", ctx.currentValue)(\"aria-disabled\", ctx.disabled ? true : undefined)(\"aria-readonly\", ctx.readonly ? true : undefined)(\"aria-orientation\", ctx.vertical ? \"vertical\" : \"horizontal\")(\"tabindex\", ctx.disabled ? \"-1\" : ctx.tabIndex);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showButtons);\n } }, directives: function () { return [LocalizedSliderMessagesDirective, ɵngcc2.EventsOutsideAngularDirective, ɵngcc3.NgIf, SliderTicksComponent, ɵngcc2.DraggableDirective, ɵngcc2.ResizeSensorComponent]; }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SliderComponent.prototype, \"focusableId\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SliderComponent.prototype, \"dragHandleTitle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SliderComponent.prototype, \"incrementTitle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SliderComponent.prototype, \"animate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SliderComponent.prototype, \"decrementTitle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SliderComponent.prototype, \"showButtons\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SliderComponent.prototype, \"value\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], SliderComponent.prototype, \"tabIndex\", null);\n__decorate([\n ViewChild('draghandle', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], SliderComponent.prototype, \"draghandle\", void 0);\n__decorate([\n ViewChild('decreaseButton', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], SliderComponent.prototype, \"decreaseButton\", void 0);\n__decorate([\n ViewChild('increaseButton', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], SliderComponent.prototype, \"increaseButton\", void 0);\nSliderComponent = SliderComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService,\n Injector,\n Renderer2,\n NgZone,\n ChangeDetectorRef,\n ElementRef])\n], SliderComponent);\n\n/**\n * @hidden\n */\nclass RangeSliderModel extends SliderModelBase {\n positionHandle(dragHandle) {\n if (!dragHandle.id) {\n return;\n }\n const { max, min, reverse, vertical } = this.props;\n const position = vertical ? 'bottom' : 'left';\n const trackWidth = this.trackWidth();\n const value = isStartHandle(dragHandle) ? trimValueRange(max, min, this.props.value)[0]\n : trimValueRange(max, min, this.props.value)[1];\n if (isStartHandle(dragHandle)) {\n this.startHandlePosition = calculateHandlePosition({\n min,\n max,\n reverse,\n value,\n trackWidth\n });\n this.renderer.setStyle(dragHandle, position, `${this.startHandlePosition}px`);\n }\n else {\n this.endHandlePosition = calculateHandlePosition({\n min,\n max,\n reverse,\n value,\n trackWidth\n });\n this.renderer.setStyle(dragHandle, position, `${this.endHandlePosition}px`);\n }\n }\n positionSelection(dragHandle, selection) {\n const { reverse, vertical } = this.props;\n const dimension = vertical ? 'height' : 'width';\n const position = vertical ? 'bottom' : reverse ? 'right' : 'left';\n const size = Math.abs(this.endHandlePosition - this.startHandlePosition);\n const currentSelectionPosition = vertical ? dragHandle.style.bottom : dragHandle.style.left;\n this.renderer.setStyle(selection, dimension, `${size}px`);\n this.renderer.setStyle(selection, position, reverse ? this.trackWidth() - parseFloat(currentSelectionPosition) + 'px'\n : parseFloat(currentSelectionPosition) + 'px');\n }\n}\n\nvar RangeSliderComponent_1;\nconst PRESSED$1 = 'k-pressed';\n/**\n * Represents the [Kendo UI RangeSlider component for Angular]({% slug overview_rangeslider %}).\n */\nlet RangeSliderComponent = RangeSliderComponent_1 = class RangeSliderComponent extends SliderBase {\n constructor(localization, injector, renderer, ngZone, changeDetector, hostElement) {\n super(localization, injector, renderer, ngZone, changeDetector, hostElement);\n this.localization = localization;\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.startHandleId = `k-start-handle-${guid()}`;\n /**\n * @hidden\n */\n this.endHandleId = `k-end-handle-${guid()}`;\n /**\n * @hidden\n */\n this.focusableId = this.startHandleId;\n this.handleZIndex = 0;\n this.activeHandle = 'startHandle';\n this.focusChangedProgrammatically = false;\n /**\n * @hidden\n */\n this.onWrapClick = (args) => {\n if (!this.isDisabled) {\n this.value = this.value || [this.min, this.min];\n const trackValue = eventValue(args, this.track.nativeElement, this.getProps());\n let newRangeValue;\n const [startValue, endValue] = newRangeValue = this.value;\n if (trackValue <= startValue) {\n newRangeValue = [trackValue, endValue];\n this.activeHandle = 'startHandle';\n }\n else if (startValue < trackValue && trackValue < endValue) {\n if (trackValue < (startValue + endValue) / 2) {\n newRangeValue = [trackValue, endValue];\n this.activeHandle = 'startHandle';\n }\n else {\n newRangeValue = [startValue, trackValue];\n this.activeHandle = 'endHandle';\n }\n }\n else if (trackValue >= endValue) {\n newRangeValue = [startValue, trackValue];\n this.activeHandle = 'endHandle';\n }\n const activeHandle = this.activeHandle === 'startHandle' ? this.draghandleStart : this.draghandleEnd;\n invokeElementMethod(activeHandle, 'focus');\n this.changeValue(newRangeValue);\n }\n };\n /**\n * @hidden\n */\n this.onKeyDown = (e) => {\n this.value = this.value || [this.min, this.min];\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 this.renderer.setStyle(e.target, 'zIndex', ++this.handleZIndex);\n const startHandleIsActive = isStartHandle(e.target);\n const value = handler(Object.assign({}, options, { value: startHandleIsActive ? this.value[0] : this.value[1] }));\n if (startHandleIsActive) {\n if (value > this.value[1]) {\n this.value[1] = value;\n }\n }\n else {\n if (value < this.value[0]) {\n this.value[0] = value;\n }\n }\n const trimmedValue = trimValue(max, min, value);\n const newValue = startHandleIsActive ? [trimmedValue, this.value[1]]\n : [this.value[0], trimmedValue];\n this.changeValue(newValue);\n e.preventDefault();\n };\n this.ngChange = (_) => { };\n this.ngTouched = () => { };\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 if (!this.focusChangedProgrammatically) {\n this.onBlur.emit();\n }\n });\n }\n };\n }\n /**\n * Focuses the RangeSlider.\n *\n * @example\n * ```ts-no-run\n * _@Component({\n * selector: 'my-app',\n * template: `\n *
    \n * \n *
    \n * \n * `\n * })\n * class AppComponent { }\n * ```\n */\n focus() {\n this.focusChangedProgrammatically = true;\n invokeElementMethod(this.draghandleStart, 'focus');\n this.focusChangedProgrammatically = false;\n }\n /**\n * Blurs the RangeSlider.\n */\n blur() {\n this.focusChangedProgrammatically = true;\n const activeHandle = this.activeHandle === 'startHandle' ? this.draghandleStart : this.draghandleEnd;\n invokeElementMethod(activeHandle, 'blur');\n this.handleBlur();\n this.focusChangedProgrammatically = false;\n }\n ngOnInit() {\n if (!this.value) {\n this.value = [this.min, this.max];\n }\n super.ngOnInit();\n }\n ngOnChanges(changes) {\n if (anyChanged(['value', 'fixedTickWidth', 'tickPlacement'], changes, true)) {\n if (changes.value && changes.value.currentValue) {\n validateValue(changes.value.currentValue);\n }\n this.ngZone.onStable.asObservable().pipe(take(1)).subscribe(() => {\n this.sizeComponent();\n });\n }\n }\n ngAfterViewInit() {\n if (!isDocumentAvailable()) {\n return;\n }\n this.sizeComponent();\n if (this.ticks) {\n this.ticks.tickElements\n .changes\n .subscribe(() => this.sizeComponent());\n }\n this.attachElementEventHandlers();\n }\n ngOnDestroy() {\n if (this.subscriptions) {\n this.subscriptions.unsubscribe();\n }\n }\n /**\n * @hidden\n */\n textFor(key) {\n return this.localization.get(key);\n }\n /**\n * @hidden\n */\n get valueText() {\n return this.value ? `${this.value[0]} - ${this.value[1]}` : '';\n }\n /**\n * @hidden\n */\n handleDragPress(args) {\n if (args.originalEvent) {\n args.originalEvent.preventDefault();\n }\n const target = args.originalEvent.target;\n this.draggedHandle = target;\n this.renderer.setStyle(target, 'zIndex', ++this.handleZIndex);\n }\n /**\n * @hidden\n */\n onHandleDrag(args) {\n this.value = this.value || [this.min, this.min];\n const target = args.originalEvent.target;\n const lastCoords = this.draggedHandle.getBoundingClientRect();\n this.lastHandlePosition = { x: lastCoords.left, y: lastCoords.top };\n this.dragging = { value: true, target };\n const mousePos = {\n x: (args.pageX - 0.5) - (lastCoords.width / 2),\n y: (args.pageY - (lastCoords.width / 2))\n };\n const left = mousePos.x < this.lastHandlePosition.x;\n const right = mousePos.x > this.lastHandlePosition.x;\n const up = mousePos.y > this.lastHandlePosition.y;\n const moveStartHandle = () => this.changeValue([eventValue(args, this.track.nativeElement, this.getProps()), this.value[1]]);\n const moveEndHandle = () => this.changeValue([this.value[0], eventValue(args, this.track.nativeElement, this.getProps())]);\n const moveBothHandles = () => this.changeValue([eventValue(args, this.track.nativeElement, this.getProps()), eventValue(args, this.track.nativeElement, this.getProps())]);\n const activeStartHandle = isStartHandle(this.draggedHandle);\n const vertical = this.vertical;\n const horizontal = !vertical;\n const forward = (vertical && up) || (this.reverse ? horizontal && right : horizontal && left);\n const incorrectValueState = this.value[0] > this.value[1];\n if (this.value[0] === this.value[1] || incorrectValueState) {\n if (forward) {\n activeStartHandle ? moveStartHandle() : moveBothHandles();\n }\n else {\n activeStartHandle ? moveBothHandles() : moveEndHandle();\n }\n }\n else {\n activeStartHandle ? moveStartHandle() : moveEndHandle();\n }\n }\n /**\n * @hidden\n */\n onHandleRelease(args) {\n this.dragging = { value: false, target: args.originalEvent.target }; //needed for animation\n this.draggedHandle = undefined;\n }\n //ngModel binding\n /**\n * @hidden\n */\n writeValue(value) {\n validateValue(value);\n this.value = value;\n this.sizeComponent();\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 (!this.value || !isSameRange(this.value, value)) {\n this.ngZone.run(() => {\n this.value = value;\n this.ngChange(value);\n if (this.value) {\n this.valueChange.emit(value);\n }\n this.sizeComponent();\n });\n }\n }\n /**\n * @hidden\n */\n sizeComponent() {\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 dragHandleStartEl = this.draghandleStart.nativeElement;\n const dragHandleEndEl = this.draghandleEnd.nativeElement;\n const ticks = this.ticks ? this.ticksContainer.nativeElement : null;\n this.resetStyles([track, selectionEl, dragHandleStartEl, dragHandleEndEl, ticks, this.hostElement.nativeElement]);\n const props = this.getProps();\n const model = new RangeSliderModel(props, wrapper, track, this.renderer);\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(dragHandleStartEl);\n model.positionHandle(dragHandleEndEl);\n model.positionSelection(dragHandleStartEl, selectionEl);\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 FloatingLabel to determine if the component is empty.\n */\n isEmpty() {\n return false;\n }\n set focused(value) {\n if (this.isFocused !== value && this.hostElement) {\n this.isFocused = value;\n }\n }\n set dragging(data) {\n if (this.isDragged !== data.value && this.sliderSelection && this.draghandleStart && this.draghandleEnd) {\n const sliderSelection = this.sliderSelection.nativeElement;\n const draghandle = data.target;\n if (data.value) {\n this.renderer.addClass(sliderSelection, PRESSED$1);\n this.renderer.addClass(draghandle, PRESSED$1);\n }\n else {\n this.renderer.removeClass(sliderSelection, PRESSED$1);\n this.renderer.removeClass(draghandle, PRESSED$1);\n }\n this.isDragged = data.value;\n }\n }\n getProps() {\n return {\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: trimValueRange(this.max, this.min, this.value),\n vertical: this.vertical,\n buttons: false\n };\n }\n attachElementEventHandlers() {\n const hostElement = this.hostElement.nativeElement;\n let tabbing = false;\n let cursorInsideWrapper = false;\n this.ngZone.runOutsideAngular(() => {\n // focusIn and focusOut are relative to the host element\n this.subscriptions.add(this.renderer.listen(hostElement, 'focusin', () => {\n if (!this.isFocused) {\n this.ngZone.run(() => {\n if (!this.focusChangedProgrammatically) {\n this.onFocus.emit();\n }\n this.focused = true;\n });\n }\n }));\n this.subscriptions.add(this.renderer.listen(hostElement, 'focusout', (args) => {\n if (!this.isFocused) {\n return;\n }\n if (tabbing) {\n if (args.relatedTarget !== this.draghandleStart.nativeElement && args.relatedTarget !== this.draghandleEnd.nativeElement) {\n this.handleBlur();\n }\n tabbing = false;\n }\n else {\n if (!cursorInsideWrapper) {\n this.handleBlur();\n }\n }\n }));\n this.subscriptions.add(this.renderer.listen(hostElement, 'mouseenter', () => {\n cursorInsideWrapper = true;\n }));\n this.subscriptions.add(this.renderer.listen(hostElement, 'mouseleave', () => {\n cursorInsideWrapper = false;\n }));\n this.subscriptions.add(this.renderer.listen(hostElement, 'keydown', (args) => {\n if (args.keyCode === Keys.Tab) {\n tabbing = true;\n }\n else {\n tabbing = false;\n }\n }));\n });\n }\n};\nRangeSliderComponent.ɵfac = function RangeSliderComponent_Factory(t) { return new (t || RangeSliderComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Injector), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nRangeSliderComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: RangeSliderComponent, selectors: [[\"kendo-rangeslider\"]], viewQuery: function RangeSliderComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c14, 7);\n ɵngcc0.ɵɵviewQuery(_c15, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.draghandleStart = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.draghandleEnd = _t.first);\n } }, inputs: { value: \"value\" }, exportAs: [\"kendoRangeSlider\"], features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n { provide: L10N_PREFIX, useValue: 'kendo.rangeslider' },\n { multi: true, provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => RangeSliderComponent_1) },\n { provide: KendoInput, useExisting: forwardRef(() => RangeSliderComponent_1) }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature, ɵngcc0.ɵɵNgOnChangesFeature], decls: 14, vars: 33, consts: function () { let i18n_16; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the **Start** drag handle of the Slider.\n * @meaning kendo.rangeslider.dragHandleStart\n */\n const MSG_EXTERNAL_1512034289801794423$$DIST_FESM2015_INDEX_JS_17 = goog.getMsg(\"Drag\");\n i18n_16 = MSG_EXTERNAL_1512034289801794423$$DIST_FESM2015_INDEX_JS_17;\n }\n else {\n i18n_16 = $localize `:kendo.rangeslider.dragHandleStart|The title of the **Start** drag handle of the Slider.␟4487c64285c2d8cdb336be783b6cb9304ce86007␟1512034289801794423:Drag`;\n } let i18n_18; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the **End** drag handle of the Slider.\n * @meaning kendo.rangeslider.dragHandleEnd\n */\n const MSG_EXTERNAL_6915505327582510906$$DIST_FESM2015_INDEX_JS_19 = goog.getMsg(\"Drag\");\n i18n_18 = MSG_EXTERNAL_6915505327582510906$$DIST_FESM2015_INDEX_JS_19;\n }\n else {\n i18n_18 = $localize `:kendo.rangeslider.dragHandleEnd|The title of the **End** drag handle of the Slider.␟d6af522570cc1aff06104cee4b7780d6835e01d1␟6915505327582510906:Drag`;\n } return [[\"kendoSliderLocalizedMessages\", \"\", \"dragHandleStart\", i18n_16, \"dragHandleEnd\", i18n_18], [1, \"k-slider-wrap\", 3, \"kendoEventsOutsideAngular\"], [\"wrap\", \"\"], [1, \"k-slider-track-wrap\"], [\"kendoSliderTicks\", \"\", 3, \"tickTitle\", \"vertical\", \"step\", \"largeStep\", \"min\", \"max\", \"labelTemplate\", 4, \"ngIf\"], [1, \"k-slider-track\"], [\"track\", \"\"], [1, \"k-slider-selection\"], [\"sliderSelection\", \"\"], [\"role\", \"slider\", \"kendoDraggable\", \"\", 1, \"k-draghandle\", 3, \"id\", \"title\", \"kendoPress\", \"kendoDrag\", \"kendoRelease\"], [\"draghandleStart\", \"\"], [\"draghandleEnd\", \"\"], [3, \"resize\"], [\"kendoSliderTicks\", \"\", 3, \"tickTitle\", \"vertical\", \"step\", \"largeStep\", \"min\", \"max\", \"labelTemplate\"], [\"ticks\", \"\"]]; }, template: function RangeSliderComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0, 0);\n ɵngcc0.ɵɵelementStart(1, \"div\", 1, 2)(3, \"div\", 3);\n ɵngcc0.ɵɵtemplate(4, RangeSliderComponent_ul_4_Template, 2, 8, \"ul\", 4);\n ɵngcc0.ɵɵelementStart(5, \"div\", 5, 6);\n ɵngcc0.ɵɵelement(7, \"div\", 7, 8);\n ɵngcc0.ɵɵelementStart(9, \"a\", 9, 10);\n ɵngcc0.ɵɵlistener(\"kendoPress\", function RangeSliderComponent_Template_a_kendoPress_9_listener($event) { return ctx.ifEnabled(ctx.handleDragPress, $event); })(\"kendoDrag\", function RangeSliderComponent_Template_a_kendoDrag_9_listener($event) { return ctx.ifEnabled(ctx.onHandleDrag, $event); })(\"kendoRelease\", function RangeSliderComponent_Template_a_kendoRelease_9_listener($event) { return ctx.ifEnabled(ctx.onHandleRelease, $event); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(11, \"a\", 9, 11);\n ɵngcc0.ɵɵlistener(\"kendoPress\", function RangeSliderComponent_Template_a_kendoPress_11_listener($event) { return ctx.ifEnabled(ctx.handleDragPress, $event); })(\"kendoDrag\", function RangeSliderComponent_Template_a_kendoDrag_11_listener($event) { return ctx.ifEnabled(ctx.onHandleDrag, $event); })(\"kendoRelease\", function RangeSliderComponent_Template_a_kendoRelease_11_listener($event) { return ctx.ifEnabled(ctx.onHandleRelease, $event); });\n ɵngcc0.ɵɵelementEnd()()();\n ɵngcc0.ɵɵelementStart(13, \"kendo-resize-sensor\", 12);\n ɵngcc0.ɵɵlistener(\"resize\", function RangeSliderComponent_Template_kendo_resize_sensor_resize_13_listener() { return ctx.sizeComponent(); });\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵelementContainerEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"k-slider-topleft\", ctx.tickPlacement === \"before\")(\"k-slider-bottomright\", ctx.tickPlacement === \"after\");\n ɵngcc0.ɵɵproperty(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction2(30, _c13, ctx.onWrapClick, ctx.onKeyDown));\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.tickPlacement !== \"none\");\n ɵngcc0.ɵɵadvance(5);\n ɵngcc0.ɵɵstyleProp(\"touch-action\", ctx.isDisabled ? \"\" : \"none\");\n ɵngcc0.ɵɵproperty(\"id\", ctx.startHandleId)(\"title\", ctx.textFor(\"dragHandleStart\"));\n ɵngcc0.ɵɵattribute(\"tabindex\", ctx.disabled ? undefined : ctx.tabindex)(\"aria-valuemin\", ctx.min)(\"aria-valuemax\", ctx.max)(\"aria-valuenow\", ctx.value ? ctx.value[0] : null)(\"aria-valuetext\", ctx.valueText)(\"aria-disabled\", ctx.disabled ? true : undefined)(\"aria-readonly\", ctx.readonly ? true : undefined)(\"aria-orientation\", ctx.vertical ? \"vertical\" : \"horizontal\");\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵstyleProp(\"touch-action\", ctx.isDisabled ? \"\" : \"none\");\n ɵngcc0.ɵɵproperty(\"id\", ctx.endHandleId)(\"title\", ctx.textFor(\"dragHandleEnd\"));\n ɵngcc0.ɵɵattribute(\"tabindex\", ctx.disabled ? undefined : ctx.tabindex)(\"aria-valuemin\", ctx.min)(\"aria-valuemax\", ctx.max)(\"aria-valuenow\", ctx.value ? ctx.value[1] : null)(\"aria-valuetext\", ctx.valueText)(\"aria-disabled\", ctx.disabled ? true : undefined)(\"aria-readonly\", ctx.readonly ? true : undefined)(\"aria-orientation\", ctx.vertical ? \"vertical\" : \"horizontal\");\n } }, directives: function () { return [LocalizedRangeSliderMessagesDirective, ɵngcc2.EventsOutsideAngularDirective, ɵngcc3.NgIf, SliderTicksComponent, ɵngcc2.DraggableDirective, ɵngcc2.ResizeSensorComponent]; }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], RangeSliderComponent.prototype, \"value\", void 0);\n__decorate([\n ViewChild('draghandleStart', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], RangeSliderComponent.prototype, \"draghandleStart\", void 0);\n__decorate([\n ViewChild('draghandleEnd', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], RangeSliderComponent.prototype, \"draghandleEnd\", void 0);\nRangeSliderComponent = RangeSliderComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService,\n Injector,\n Renderer2,\n NgZone,\n ChangeDetectorRef,\n ElementRef])\n], RangeSliderComponent);\n\nvar SwitchComponent_1;\nconst FOCUSED = 'k-focus';\n/**\n * Represents the [Kendo UI Switch component for Angular]({% slug overview_switch %}).\n */\nlet SwitchComponent = SwitchComponent_1 = class 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 * 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.hostClasses = true;\n /**\n * @hidden\n */\n this.initialized = false;\n this.hostClickSubscription = new Subscription;\n this._checked = false;\n this._size = 'medium';\n this._trackRounded = 'full';\n this._thumbRounded = 'full';\n this.ngChange = (_) => { };\n this.ngTouched = () => { };\n /**\n * @hidden\n */\n this.handleFocus = () => {\n if (this.isFocused) {\n return;\n }\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 = (event) => {\n const relatedTarget = event && event.relatedTarget;\n if (this.hostElement.nativeElement.contains(relatedTarget)) {\n return;\n }\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 validatePackage(packageMetadata);\n this.direction = localizationService.rtl ? 'rtl' : 'ltr';\n this.keyDownHandler = this.keyDownHandler.bind(this);\n this.clickHandler = this.clickHandler.bind(this);\n }\n /**\n * Sets the value of the Switch when it is initially displayed.\n */\n set checked(value) {\n this.setHostClasses(value);\n this._checked = value;\n }\n get checked() {\n return this._checked;\n }\n /**\n * Specifies the width and height of the Switch.\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `null`\n */\n set size(size) {\n this.handleClasses(size, 'size');\n this._size = size;\n }\n get size() {\n return this._size;\n }\n /**\n * Specifies the border radius of the Switch thumb.\n *\n * The possible values are:\n * * `'full'` (default)\n * * `'small'`\n * * `'medium'`\n * * `'large'`\n * * `null`\n */\n set thumbRounded(thumbRounded) {\n this.handleThumbClasses(thumbRounded);\n this._thumbRounded = thumbRounded;\n }\n get thumbRounded() {\n return this._thumbRounded;\n }\n /**\n * Specifies the border radius of the Switch track.\n *\n * The possible values are:\n * * `'full'` (default)\n * * `'small'`\n * * `'medium'`\n * * `'large'`\n * * `null`\n */\n set trackRounded(trackRounded) {\n this.handleTrackClasses(trackRounded);\n this._trackRounded = trackRounded;\n }\n get trackRounded() {\n return this._trackRounded;\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 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 this.ngZone.onStable.pipe(take(1)).subscribe(() => this.initialized = true);\n }\n ngAfterViewInit() {\n const wrapper = this.hostElement.nativeElement;\n this.attachHostClickHandler();\n if (!this.checked && !wrapper.classList.contains('k-switch-off')) {\n this.renderer.addClass(wrapper, 'k-switch-off');\n }\n this.handleClasses(this.size, 'size');\n this.handleTrackClasses(this.trackRounded);\n this.handleThumbClasses(this.thumbRounded);\n }\n ngOnDestroy() {\n if (this.localizationChangeSubscription) {\n this.localizationChangeSubscription.unsubscribe();\n }\n if (this.hostClickSubscription) {\n this.hostClickSubscription.unsubscribe();\n }\n }\n /**\n * Focuses the Switch.\n *\n * @example\n * ```ts-no-run\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n * class AppComponent { }\n * ```\n */\n focus() {\n if (!this.track) {\n return;\n }\n this.track.nativeElement.focus();\n }\n /**\n * Blurs the Switch.\n */\n blur() {\n if (!this.track) {\n return;\n }\n this.track.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 FloatingLabel 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 wrapper = this.hostElement.nativeElement;\n if (value) {\n this.renderer.addClass(wrapper, FOCUSED);\n }\n else {\n this.renderer.removeClass(wrapper, FOCUSED);\n }\n this.isFocused = value;\n }\n }\n attachHostClickHandler() {\n this.ngZone.runOutsideAngular(() => {\n this.hostClickSubscription.add(this.renderer.listen(this.hostElement.nativeElement, 'click', this.clickHandler));\n });\n }\n setHostClasses(value) {\n const wrapper = this.hostElement.nativeElement;\n if (value) {\n this.renderer.removeClass(wrapper, 'k-switch-off');\n this.renderer.addClass(wrapper, 'k-switch-on');\n }\n else {\n this.renderer.removeClass(wrapper, 'k-switch-on');\n this.renderer.addClass(wrapper, 'k-switch-off');\n }\n }\n handleClasses(value, input) {\n const elem = this.hostElement.nativeElement;\n const classes = getStylingClasses('switch', input, this[input], value);\n if (classes.toRemove) {\n this.renderer.removeClass(elem, classes.toRemove);\n }\n if (classes.toAdd) {\n this.renderer.addClass(elem, classes.toAdd);\n }\n }\n handleTrackClasses(value) {\n const elem = this.hostElement.nativeElement;\n const track = this.track.nativeElement;\n const classes = getStylingClasses('switch', 'rounded', this.trackRounded, value);\n if (classes.toRemove) {\n this.renderer.removeClass(elem, classes.toRemove);\n this.renderer.removeClass(track, classes.toRemove);\n }\n if (classes.toAdd) {\n this.renderer.addClass(elem, classes.toAdd);\n this.renderer.addClass(track, classes.toAdd);\n }\n }\n handleThumbClasses(value) {\n const thumb = this.thumb.nativeElement;\n const classes = getStylingClasses('switch', 'rounded', this.thumbRounded, value);\n if (classes.toRemove) {\n this.renderer.removeClass(thumb, classes.toRemove);\n }\n if (classes.toAdd) {\n this.renderer.addClass(thumb, classes.toAdd);\n }\n }\n};\nSwitchComponent.ɵfac = function SwitchComponent_Factory(t) { return new (t || SwitchComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Injector), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nSwitchComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SwitchComponent, selectors: [[\"kendo-switch\"]], viewQuery: function SwitchComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c1, 7);\n ɵngcc0.ɵɵviewQuery(_c20, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.track = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.thumb = _t.first);\n } }, hostVars: 9, hostBindings: function SwitchComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"dir\", ctx.direction)(\"aria-disabled\", ctx.ariaDisabled)(\"aria-readonly\", ctx.ariaReadonly);\n ɵngcc0.ɵɵclassProp(\"k-switch\", ctx.hostClasses)(\"k-ie\", ctx.ieClass)(\"k-disabled\", ctx.disabledClass);\n } }, inputs: { focusableId: \"focusableId\", disabled: \"disabled\", readonly: \"readonly\", tabindex: \"tabindex\", checked: \"checked\", size: \"size\", thumbRounded: \"thumbRounded\", trackRounded: \"trackRounded\", tabIndex: \"tabIndex\", onLabel: \"onLabel\", offLabel: \"offLabel\" }, outputs: { onFocus: \"focus\", onBlur: \"blur\", valueChange: \"valueChange\" }, exportAs: [\"kendoSwitch\"], features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n { provide: L10N_PREFIX, useValue: 'kendo.switch' },\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SwitchComponent_1) /* tslint:disable-line */\n },\n {\n provide: KendoInput,\n useExisting: forwardRef(() => SwitchComponent_1)\n }\n ])], decls: 10, vars: 21, consts: function () { let i18n_21; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The **On** label of the Switch.\n * @meaning kendo.switch.on\n */\n const MSG_EXTERNAL_818154782831456441$$DIST_FESM2015_INDEX_JS_22 = goog.getMsg(\"ON\");\n i18n_21 = MSG_EXTERNAL_818154782831456441$$DIST_FESM2015_INDEX_JS_22;\n }\n else {\n i18n_21 = $localize `:kendo.switch.on|The **On** label of the Switch.␟155f0a38198ffbf0429c5dbf9765e74f246a8617␟818154782831456441:ON`;\n } let i18n_23; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The **Off** label of the Switch.\n * @meaning kendo.switch.off\n */\n const MSG_EXTERNAL_759820891948194060$$DIST_FESM2015_INDEX_JS_24 = goog.getMsg(\"OFF\");\n i18n_23 = MSG_EXTERNAL_759820891948194060$$DIST_FESM2015_INDEX_JS_24;\n }\n else {\n i18n_23 = $localize `:kendo.switch.off|The **Off** label of the Switch.␟79df1a6d2b35c32b2948e3cee56dd3ffe28127bc␟759820891948194060:OFF`;\n } return [[\"kendoSwitchLocalizedMessages\", \"\", \"on\", i18n_21, \"off\", i18n_23], [\"role\", \"switch\", 1, \"k-switch-track\", 3, \"id\", \"kendoEventsOutsideAngular\"], [\"track\", \"\"], [1, \"k-switch-label-on\"], [1, \"k-switch-label-off\"], [\"tabindex\", \"-1\", 1, \"k-switch-thumb-wrap\", 3, \"kendoEventsOutsideAngular\"], [1, \"k-switch-thumb\"], [\"thumb\", \"\"]]; }, template: function SwitchComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0, 0);\n ɵngcc0.ɵɵelementStart(1, \"span\", 1, 2)(3, \"span\", 3);\n ɵngcc0.ɵɵtext(4);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(5, \"span\", 4);\n ɵngcc0.ɵɵtext(6);\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵelementStart(7, \"span\", 5);\n ɵngcc0.ɵɵelement(8, \"span\", 6, 7);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementContainerEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵstyleProp(\"transition-duration\", ctx.initialized ? \"200ms\" : \"0ms\");\n ɵngcc0.ɵɵproperty(\"id\", ctx.focusableId)(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction3(13, _c25, ctx.keyDownHandler, ctx.handleFocus, ctx.handleBlur));\n ɵngcc0.ɵɵattribute(\"aria-checked\", ctx.checked)(\"tabindex\", ctx.disabled ? undefined : ctx.tabIndex);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵattribute(\"aria-hidden\", true);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx.onLabelMessage);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"aria-hidden\", true);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx.offLabelMessage);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵstyleProp(\"transition-duration\", ctx.initialized ? \"200ms\" : \"0ms\");\n ɵngcc0.ɵɵproperty(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction3(17, _c25, ctx.keyDownHandler, ctx.handleFocus, ctx.handleBlur));\n } }, directives: function () { return [LocalizedSwitchMessagesDirective, ɵngcc2.EventsOutsideAngularDirective]; }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SwitchComponent.prototype, \"focusableId\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SwitchComponent.prototype, \"onLabel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SwitchComponent.prototype, \"offLabel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], SwitchComponent.prototype, \"checked\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SwitchComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SwitchComponent.prototype, \"readonly\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SwitchComponent.prototype, \"tabindex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], SwitchComponent.prototype, \"size\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], SwitchComponent.prototype, \"thumbRounded\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], SwitchComponent.prototype, \"trackRounded\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], SwitchComponent.prototype, \"tabIndex\", null);\n__decorate([\n Output('focus'),\n __metadata(\"design:type\", EventEmitter)\n], SwitchComponent.prototype, \"onFocus\", void 0);\n__decorate([\n Output('blur'),\n __metadata(\"design:type\", EventEmitter)\n], SwitchComponent.prototype, \"onBlur\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], SwitchComponent.prototype, \"valueChange\", void 0);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String)\n], SwitchComponent.prototype, \"direction\", void 0);\n__decorate([\n HostBinding('class.k-ie'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], SwitchComponent.prototype, \"ieClass\", null);\n__decorate([\n HostBinding('attr.aria-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], SwitchComponent.prototype, \"ariaDisabled\", null);\n__decorate([\n HostBinding('attr.aria-readonly'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], SwitchComponent.prototype, \"ariaReadonly\", null);\n__decorate([\n HostBinding('class.k-switch'),\n __metadata(\"design:type\", Boolean)\n], SwitchComponent.prototype, \"hostClasses\", void 0);\n__decorate([\n HostBinding('class.k-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], SwitchComponent.prototype, \"disabledClass\", null);\n__decorate([\n ViewChild('track', { static: true }),\n __metadata(\"design:type\", Object)\n], SwitchComponent.prototype, \"track\", void 0);\n__decorate([\n ViewChild('thumb', { static: true }),\n __metadata(\"design:type\", Object)\n], SwitchComponent.prototype, \"thumb\", void 0);\nSwitchComponent = SwitchComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [Renderer2,\n ElementRef,\n LocalizationService,\n Injector,\n ChangeDetectorRef,\n NgZone])\n], SwitchComponent);\n\nvar TextBoxDirective_1;\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 */\nlet TextBoxDirective = TextBoxDirective_1 = class TextBoxDirective {\n constructor(renderer, inputElement, ngZone) {\n this.renderer = renderer;\n this.inputElement = inputElement;\n this.ngZone = ngZone;\n this.hostClasses = 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.ɵfac = function TextBoxDirective_Factory(t) { return new (t || TextBoxDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nTextBoxDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: TextBoxDirective, selectors: [[\"input\", \"kendoTextBox\", \"\"]], hostVars: 10, hostBindings: function TextBoxDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-textbox\", ctx.hostClasses)(\"k-input\", ctx.hostClasses)(\"k-input-md\", ctx.hostClasses)(\"k-rounded-md\", ctx.hostClasses)(\"k-input-solid\", ctx.hostClasses);\n } }, inputs: { value: \"value\" }, features: [ɵngcc0.ɵɵProvidersFeature([{\n provide: KendoInput,\n useExisting: forwardRef(() => TextBoxDirective_1)\n }])] });\n__decorate([\n HostBinding('class.k-textbox'),\n HostBinding('class.k-input'),\n HostBinding('class.k-input-md'),\n HostBinding('class.k-rounded-md'),\n HostBinding('class.k-input-solid'),\n __metadata(\"design:type\", Boolean)\n], TextBoxDirective.prototype, \"hostClasses\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], TextBoxDirective.prototype, \"value\", null);\nTextBoxDirective = TextBoxDirective_1 = __decorate([ __metadata(\"design:paramtypes\", [Renderer2,\n ElementRef,\n NgZone])\n], TextBoxDirective);\n\nvar TextAreaDirective_1;\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 */\nlet TextAreaDirective = TextAreaDirective_1 = class 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.elementClasses = 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.zone.onStable.pipe(take(1)).subscribe(() => 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.ɵfac = function TextAreaDirective_Factory(t) { return new (t || TextAreaDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Injector), ɵngcc0.ɵɵdirectiveInject(RTL, 8)); };\nTextAreaDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: TextAreaDirective, selectors: [[\"textarea\", \"kendoTextArea\", \"\"]], hostVars: 13, hostBindings: function TextAreaDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"dir\", ctx.direction);\n ɵngcc0.ɵɵclassProp(\"k-textarea\", ctx.elementClasses)(\"k-input\", ctx.elementClasses)(\"k-input-md\", ctx.elementClasses)(\"k-rounded-md\", ctx.elementClasses)(\"k-input-solid\", ctx.elementClasses)(\"k-autofill\", ctx.autofillClass);\n } }, inputs: { autoSize: \"autoSize\", value: \"value\" }, outputs: { valueChange: \"valueChange\" }, features: [ɵngcc0.ɵɵProvidersFeature([{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextAreaDirective_1),\n multi: true\n }, {\n provide: KendoInput,\n useExisting: forwardRef(() => TextAreaDirective_1)\n }]), ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n HostBinding('class.k-textarea'),\n HostBinding('class.k-input'),\n HostBinding('class.k-input-md'),\n HostBinding('class.k-rounded-md'),\n HostBinding('class.k-input-solid'),\n __metadata(\"design:type\", Boolean)\n], TextAreaDirective.prototype, \"elementClasses\", void 0);\n__decorate([\n HostBinding('class.k-autofill'),\n __metadata(\"design:type\", Boolean)\n], TextAreaDirective.prototype, \"autofillClass\", void 0);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String)\n], TextAreaDirective.prototype, \"direction\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TextAreaDirective.prototype, \"valueChange\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TextAreaDirective.prototype, \"autoSize\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TextAreaDirective.prototype, \"value\", void 0);\nTextAreaDirective = TextAreaDirective_1 = __decorate([ __param(5, Optional()), __param(5, Inject(RTL)),\n __metadata(\"design:paramtypes\", [Renderer2,\n ElementRef,\n NgZone,\n ChangeDetectorRef,\n Injector, Boolean])\n], TextAreaDirective);\n\n/**\n * @hidden\n */\nconst createMaxValidator = (maxValue) => {\n return (c) => {\n if (!isPresent(maxValue) || !isPresent(c.value) || c.value <= maxValue) {\n return null;\n }\n return {\n maxError: {\n maxValue: maxValue,\n value: c.value\n }\n };\n };\n};\n\n/**\n * @hidden\n */\nconst createMinValidator = (minValue) => {\n return (c) => {\n if (!isPresent(minValue) || !isPresent(c.value) || c.value >= minValue) {\n return null;\n }\n return {\n minError: {\n minValue: minValue,\n value: c.value\n }\n };\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 * @hidden\n */\nconst isRightClick = (event) => {\n const isRightClickIE = event.button && event.button === 2;\n const isRightClickOther = event.which && event.which === 3;\n return isRightClickIE || isRightClickOther;\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\nvar NumericTextBoxComponent_1;\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$1 = 'k-focus';\n/**\n * Represents the [Kendo UI NumericTextBox component for Angular]({% slug overview_numerictextbox %}).\n */\nlet NumericTextBoxComponent = NumericTextBoxComponent_1 = class 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 value of the NumericTextBox will be changed via scrolling. Defaults to `true`.\n *\n * @default true\n */\n this.changeValueOnScroll = true;\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.hostClasses = true;\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._size = 'medium';\n this._rounded = 'medium';\n this._fillMode = 'solid';\n this.ngChange = noop;\n this.ngTouched = noop;\n this.ngValidatorChange = noop;\n this.domEvents = [];\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 && this.changeValueOnScroll) {\n e.preventDefault();\n const delta = getDeltaFromMouseWheel(e);\n this.addStep(delta);\n }\n };\n validatePackage(packageMetadata);\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 /**\n * The size property specifies padding of the NumericTextBox internal input element\n * ([see example]({% slug appearance_numerictextbox %}#toc-size)).\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `null`\n */\n set size(size) {\n this.handleClasses(size, 'size');\n this._size = size;\n }\n get size() {\n return this._size;\n }\n /**\n * The rounded property specifies the border radius of the NumericTextBox\n * ([see example]({% slug appearance_numerictextbox %}#toc-rounded)).\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `null`\n */\n set rounded(rounded) {\n this.handleClasses(rounded, 'rounded');\n this._rounded = rounded;\n }\n get rounded() {\n return this._rounded;\n }\n /**\n * The fillMode property specifies the background and border styles of the NumericTextBox\n * ([see example]({% slug appearance_numerictextbox %}#toc-fillMode)).\n * The possible values are:\n * * `'flat'`\n * * `'solid'` (default)\n * * `'outline'`\n * * `null`\n */\n set fillMode(fillMode) {\n this.handleClasses(fillMode, 'fillMode');\n this._fillMode = fillMode;\n }\n get fillMode() {\n return this._fillMode;\n }\n get disableClass() {\n return this.disabled;\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 this.ngZone.runOutsideAngular(() => {\n this.domEvents.push(this.renderer.listen(this.hostElement.nativeElement, 'mousewheel', this.handleWheel.bind(this)));\n this.domEvents.push(this.renderer.listen(this.hostElement.nativeElement, 'DOMMouseScroll', this.handleWheel.bind(this)));\n });\n }\n ngAfterViewInit() {\n const stylingInputs = ['size', 'rounded', 'fillMode'];\n stylingInputs.forEach(input => {\n this.handleClasses(this[input], input);\n });\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 this.domEvents.forEach(unbindHandler => unbindHandler());\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.changeDetector.markForCheck();\n this.disabled = isDisabled;\n }\n /**\n * Focuses the NumericTextBox.\n *\n * @example\n * ```ts-no-run\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.hostElement) {\n const wrap = this.hostElement.nativeElement;\n if (value) {\n this.renderer.addClass(wrap, FOCUSED$1);\n }\n else {\n this.renderer.removeClass(wrap, FOCUSED$1);\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 || isRightClick(e)) {\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 handleClasses(value, input) {\n const elem = this.hostElement.nativeElement;\n const classes = getStylingClasses('input', input, this[input], value);\n if (classes.toRemove) {\n this.renderer.removeClass(elem, classes.toRemove);\n }\n if (classes.toAdd) {\n this.renderer.addClass(elem, classes.toAdd);\n }\n }\n};\nNumericTextBoxComponent.ɵfac = function NumericTextBoxComponent_Factory(t) { return new (t || NumericTextBoxComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc4.IntlService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Injector), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nNumericTextBoxComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NumericTextBoxComponent, selectors: [[\"kendo-numerictextbox\"]], viewQuery: function NumericTextBoxComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c26, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.numericInput = _t.first);\n } }, hostVars: 7, hostBindings: function NumericTextBoxComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"dir\", ctx.direction);\n ɵngcc0.ɵɵclassProp(\"k-input\", ctx.hostClasses)(\"k-numerictextbox\", ctx.hostClasses)(\"k-disabled\", ctx.disableClass);\n } }, inputs: { focusableId: \"focusableId\", disabled: \"disabled\", readonly: \"readonly\", title: \"title\", autoCorrect: \"autoCorrect\", decimals: \"decimals\", step: \"step\", spinners: \"spinners\", rangeValidation: \"rangeValidation\", tabindex: \"tabindex\", changeValueOnScroll: \"changeValueOnScroll\", selectOnFocus: \"selectOnFocus\", value: \"value\", format: \"format\", tabIndex: \"tabIndex\", size: \"size\", rounded: \"rounded\", fillMode: \"fillMode\", max: \"max\", min: \"min\", placeholder: \"placeholder\", maxlength: \"maxlength\" }, outputs: { valueChange: \"valueChange\", onFocus: \"focus\", onBlur: \"blur\" }, exportAs: [\"kendoNumericTextBox\"], features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n { provide: L10N_PREFIX, useValue: 'kendo.numerictextbox' },\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NumericTextBoxComponent_1), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => NumericTextBoxComponent_1), multi: true },\n { provide: KendoInput, useExisting: forwardRef(() => NumericTextBoxComponent_1) }\n ]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 4, vars: 20, consts: function () { let i18n_27; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title for the **Increment** button in the NumericTextBox\n * @meaning kendo.numerictextbox.increment\n */\n const MSG_EXTERNAL_4467784268438010275$$DIST_FESM2015_INDEX_JS_28 = goog.getMsg(\"Increase value\");\n i18n_27 = MSG_EXTERNAL_4467784268438010275$$DIST_FESM2015_INDEX_JS_28;\n }\n else {\n i18n_27 = $localize `:kendo.numerictextbox.increment|The title for the **Increment** button in the NumericTextBox␟0fc68540ffa04fdc246cf6cf8a1fed085f8b19a5␟4467784268438010275:Increase value`;\n } let i18n_29; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title for the **Decrement** button in the NumericTextBox\n * @meaning kendo.numerictextbox.decrement\n */\n const MSG_EXTERNAL_3960022057994897997$$DIST_FESM2015_INDEX_JS_30 = goog.getMsg(\"Decrease value\");\n i18n_29 = MSG_EXTERNAL_3960022057994897997$$DIST_FESM2015_INDEX_JS_30;\n }\n else {\n i18n_29 = $localize `:kendo.numerictextbox.decrement|The title for the **Decrement** button in the NumericTextBox␟df4751834075bf970c77d0da2c960b4e19a6b0dd␟3960022057994897997:Decrease value`;\n } return [[\"kendoNumericTextBoxLocalizedMessages\", \"\", \"increment\", i18n_27, \"decrement\", i18n_29], [\"role\", \"spinbutton\", \"autocomplete\", \"off\", \"autocorrect\", \"off\", 1, \"k-input-inner\", 3, \"id\", \"tabindex\", \"disabled\", \"readonly\", \"kendoEventsOutsideAngular\"], [\"numericInput\", \"\"], [\"class\", \"k-input-spinner k-spin-button\", 3, \"kendoEventsOutsideAngular\", 4, \"ngIf\"], [1, \"k-input-spinner\", \"k-spin-button\", 3, \"kendoEventsOutsideAngular\"], [\"type\", \"button\", \"tabindex\", \"-1\", 1, \"k-spinner-increase\", \"k-button\", \"k-icon-button\", \"k-button-solid\", \"k-button-solid-base\", 3, \"kendoEventsOutsideAngular\", \"title\"], [1, \"k-button-icon\", \"k-icon\", \"k-i-arrow-n\"], [\"type\", \"button\", \"tabindex\", \"-1\", 1, \"k-spinner-decrease\", \"k-button\", \"k-icon-button\", \"k-button-solid\", \"k-button-solid-base\", 3, \"kendoEventsOutsideAngular\", \"title\"], [1, \"k-button-icon\", \"k-icon\", \"k-i-arrow-s\"]]; }, template: function NumericTextBoxComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 0);\n ɵngcc0.ɵɵelement(1, \"input\", 1, 2);\n ɵngcc0.ɵɵtemplate(3, NumericTextBoxComponent_span_3_Template, 5, 20, \"span\", 3);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"id\", ctx.focusableId)(\"tabindex\", ctx.tabIndex)(\"disabled\", ctx.disabled)(\"readonly\", ctx.readonly)(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction7(12, _c33, ctx.handleMouseDown, ctx.handleDragEnter, ctx.handleKeyDown, ctx.handleInput, ctx.handleFocus, ctx.handleBlur, ctx.handlePaste));\n ɵngcc0.ɵɵattribute(\"aria-valuemin\", ctx.min)(\"aria-valuemax\", ctx.max)(\"aria-valuenow\", ctx.value)(\"title\", ctx.title)(\"placeholder\", ctx.placeholder)(\"maxLength\", ctx.maxlength);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.spinners);\n } }, directives: function () { return [LocalizedNumericTextBoxMessagesDirective, ɵngcc2.EventsOutsideAngularDirective, ɵngcc3.NgIf]; }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], NumericTextBoxComponent.prototype, \"focusableId\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], NumericTextBoxComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], NumericTextBoxComponent.prototype, \"readonly\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], NumericTextBoxComponent.prototype, \"title\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], NumericTextBoxComponent.prototype, \"autoCorrect\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], NumericTextBoxComponent.prototype, \"format\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], NumericTextBoxComponent.prototype, \"max\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], NumericTextBoxComponent.prototype, \"min\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], NumericTextBoxComponent.prototype, \"decimals\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], NumericTextBoxComponent.prototype, \"placeholder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], NumericTextBoxComponent.prototype, \"step\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], NumericTextBoxComponent.prototype, \"spinners\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], NumericTextBoxComponent.prototype, \"rangeValidation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], NumericTextBoxComponent.prototype, \"tabindex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], NumericTextBoxComponent.prototype, \"tabIndex\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], NumericTextBoxComponent.prototype, \"changeValueOnScroll\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], NumericTextBoxComponent.prototype, \"selectOnFocus\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], NumericTextBoxComponent.prototype, \"value\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], NumericTextBoxComponent.prototype, \"maxlength\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], NumericTextBoxComponent.prototype, \"size\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], NumericTextBoxComponent.prototype, \"rounded\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], NumericTextBoxComponent.prototype, \"fillMode\", null);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], NumericTextBoxComponent.prototype, \"valueChange\", void 0);\n__decorate([\n Output('focus'),\n __metadata(\"design:type\", EventEmitter)\n], NumericTextBoxComponent.prototype, \"onFocus\", void 0);\n__decorate([\n Output('blur'),\n __metadata(\"design:type\", EventEmitter)\n], NumericTextBoxComponent.prototype, \"onBlur\", void 0);\n__decorate([\n ViewChild('numericInput', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], NumericTextBoxComponent.prototype, \"numericInput\", void 0);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String)\n], NumericTextBoxComponent.prototype, \"direction\", void 0);\n__decorate([\n HostBinding('class.k-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], NumericTextBoxComponent.prototype, \"disableClass\", null);\n__decorate([\n HostBinding('class.k-input'),\n HostBinding('class.k-numerictextbox'),\n __metadata(\"design:type\", Boolean)\n], NumericTextBoxComponent.prototype, \"hostClasses\", void 0);\nNumericTextBoxComponent = NumericTextBoxComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [IntlService,\n Renderer2,\n LocalizationService,\n Injector,\n NgZone,\n ChangeDetectorRef,\n ElementRef])\n], NumericTextBoxComponent);\n\n/**\n * @hidden\n */\nclass NumericTextBoxMessages extends ComponentMessages {\n}\nNumericTextBoxMessages.ɵfac = /*@__PURE__*/ function () { let ɵNumericTextBoxMessages_BaseFactory; return function NumericTextBoxMessages_Factory(t) { return (ɵNumericTextBoxMessages_BaseFactory || (ɵNumericTextBoxMessages_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NumericTextBoxMessages)))(t || NumericTextBoxMessages); }; }();\nNumericTextBoxMessages.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NumericTextBoxMessages, inputs: { decrement: \"decrement\", increment: \"increment\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], NumericTextBoxMessages.prototype, \"decrement\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], NumericTextBoxMessages.prototype, \"increment\", void 0);\n\nvar NumericTextBoxCustomMessagesComponent_1;\n/**\n * Custom component messages override default component messages.\n */\nlet NumericTextBoxCustomMessagesComponent = NumericTextBoxCustomMessagesComponent_1 = class NumericTextBoxCustomMessagesComponent extends NumericTextBoxMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n};\nNumericTextBoxCustomMessagesComponent.ɵfac = function NumericTextBoxCustomMessagesComponent_Factory(t) { return new (t || NumericTextBoxCustomMessagesComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nNumericTextBoxCustomMessagesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NumericTextBoxCustomMessagesComponent, selectors: [[\"kendo-numerictextbox-messages\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: NumericTextBoxMessages,\n useExisting: forwardRef(() => NumericTextBoxCustomMessagesComponent_1) // tslint:disable-line:no-forward-ref\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function NumericTextBoxCustomMessagesComponent_Template(rf, ctx) { }, encapsulation: 2 });\nNumericTextBoxCustomMessagesComponent = NumericTextBoxCustomMessagesComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], NumericTextBoxCustomMessagesComponent);\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 */\nlet MaskingService = class MaskingService {\n /**\n * @hidden\n */\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.ɵfac = function MaskingService_Factory(t) { return new (t || MaskingService)(); };\nMaskingService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: MaskingService, factory: function (t) { return MaskingService.ɵfac(t); } });\n\nvar MaskedTextBoxComponent_1;\nconst resolvedPromise = Promise.resolve(null);\nconst FOCUSED$2 = 'k-focus';\n/**\n * Represents the [Kendo UI MaskedTextBox component for Angular]({% slug overview_maskedtextbox %}).\n *\n * @example\n * ```ts-no-run\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 */\nlet MaskedTextBoxComponent = MaskedTextBoxComponent_1 = class 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 /**\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-no-run\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-no-run\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.hostClasses = true;\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 this._size = 'medium';\n this._rounded = 'medium';\n this._fillMode = 'solid';\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 validatePackage(packageMetadata);\n this.direction = rtl ? 'rtl' : 'ltr';\n this.updateService();\n }\n /**\n * The size property specifies the padding of the MaskedTextBox internal input element\n * ([see example]({% slug appearance_maskedtextbox %}#toc-size)).\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `null`\n */\n set size(size) {\n this.handleClasses(size, 'size');\n this._size = size;\n }\n get size() {\n return this._size;\n }\n /**\n * The rounded property specifies the border radius of the MaskedTextBox\n * ([see example]({% slug appearance_maskedtextbox %}#toc-rounded)).\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `null`\n */\n set rounded(rounded) {\n this.handleClasses(rounded, 'rounded');\n this._rounded = rounded;\n }\n get rounded() {\n return this._rounded;\n }\n /**\n * The fillMode property specifies the background and border styles of the MaskedTexBox\n * ([see example]({% slug appearance_maskedtextbox %}#toc-fillMode)).\n * The possible values are:\n * * `flat`\n * * `solid` (default)\n * * `outline`\n * * `null`\n */\n set fillMode(fillMode) {\n this.handleClasses(fillMode, 'fillMode');\n this._fillMode = fillMode;\n }\n get fillMode() {\n return this._fillMode;\n }\n /**\n * Exposes the RegExp-based mask validation array ([see example]({% slug masks_maskedtextbox %})).\n */\n set rules(value) {\n this._rules = Object.assign({}, this.defaultRules, value);\n }\n get rules() {\n return this._rules || this.defaultRules;\n }\n /**\n * @hidden\n */\n set tabIndex(tabIndex) {\n this.tabindex = tabIndex;\n }\n get tabIndex() {\n return this.tabindex;\n }\n get hostDisabledClass() {\n return this.disabled;\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 ngAfterViewInit() {\n const stylingInputs = ['size', 'rounded', 'fillMode'];\n stylingInputs.forEach(input => {\n this.handleClasses(this[input], input);\n });\n }\n /**\n * @hidden\n * Used by the FloatingLabel 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-no-run\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.updateValueWithEvents(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.updateValueWithEvents(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 const maskedValue = this.service.maskRaw(this.value);\n this.updateInput(maskedValue, null, true);\n if (changes.includeLiterals || isChanged('promptPlaceholder', changes)) {\n resolvedPromise.then(() => {\n this.updateValueWithEvents(this.maskedValue);\n });\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 if (this.includeLiterals) {\n this.updateValue(this.maskedValue);\n }\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.changeDetector.markForCheck();\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 updateValueWithEvents(maskedValue) {\n this.updateValue(maskedValue);\n if (hasObservers(this.valueChange)) {\n this.valueChange.emit(this.value);\n }\n }\n updateValue(value) {\n if (this.mask && !this.service.validationValue(value) && !this.includeLiterals) {\n this.value = '';\n }\n else {\n this.value = this.service.rawValue(value);\n }\n this.onChange(this.value);\n }\n updateInput(maskedValue = '', selection, isFromOnChanges) {\n if (isFromOnChanges && maskedValue === this.maskedValue) {\n return;\n }\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$2);\n }\n else {\n this.renderer.removeClass(element, FOCUSED$2);\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 handleClasses(value, input) {\n const elem = this.hostElement.nativeElement;\n const classes = getStylingClasses('input', input, this[input], value);\n if (classes.toRemove) {\n this.renderer.removeClass(elem, classes.toRemove);\n }\n if (classes.toAdd) {\n this.renderer.addClass(elem, classes.toAdd);\n }\n }\n};\nMaskedTextBoxComponent.ɵfac = function MaskedTextBoxComponent_Factory(t) { return new (t || MaskedTextBoxComponent)(ɵngcc0.ɵɵdirectiveInject(MaskingService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Injector), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(RTL, 8)); };\nMaskedTextBoxComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: MaskedTextBoxComponent, selectors: [[\"kendo-maskedtextbox\"]], viewQuery: function MaskedTextBoxComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c34, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.input = _t.first);\n } }, hostVars: 7, hostBindings: function MaskedTextBoxComponent_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"paste\", function MaskedTextBoxComponent_paste_HostBindingHandler($event) { return ctx.pasteHandler($event); })(\"input\", function MaskedTextBoxComponent_input_HostBindingHandler($event) { return ctx.inputHandler($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"dir\", ctx.direction);\n ɵngcc0.ɵɵclassProp(\"k-input\", ctx.hostClasses)(\"k-maskedtextbox\", ctx.hostClasses)(\"k-disabled\", ctx.hostDisabledClass);\n } }, inputs: { focusableId: \"focusableId\", disabled: \"disabled\", readonly: \"readonly\", prompt: \"prompt\", promptPlaceholder: \"promptPlaceholder\", includeLiterals: \"includeLiterals\", maskOnFocus: \"maskOnFocus\", maskValidation: \"maskValidation\", tabindex: \"tabindex\", size: \"size\", rounded: \"rounded\", fillMode: \"fillMode\", rules: \"rules\", tabIndex: \"tabIndex\", value: \"value\", title: \"title\", mask: \"mask\" }, outputs: { onFocus: \"focus\", onBlur: \"blur\", valueChange: \"valueChange\" }, exportAs: [\"kendoMaskedTextBox\"], features: [ɵngcc0.ɵɵProvidersFeature([\n MaskingService,\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MaskedTextBoxComponent_1) /* tslint:disable-line */\n },\n {\n multi: true,\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MaskedTextBoxComponent_1) /* tslint:disable-line */\n },\n {\n provide: KendoInput,\n useExisting: forwardRef(() => MaskedTextBoxComponent_1)\n }\n ]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 2, vars: 12, consts: [[\"type\", \"text\", \"autocomplete\", \"off\", \"autocorrect\", \"off\", \"autocapitalize\", \"off\", \"spellcheck\", \"false\", 1, \"k-input-inner\", 3, \"id\", \"tabindex\", \"disabled\", \"readonly\", \"kendoEventsOutsideAngular\"], [\"input\", \"\"]], template: function MaskedTextBoxComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"input\", 0, 1);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"id\", ctx.focusableId)(\"tabindex\", ctx.tabIndex)(\"disabled\", ctx.disabled)(\"readonly\", ctx.readonly)(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction5(6, _c35, ctx.handleFocus, ctx.handleBlur, ctx.handleClick, ctx.handleDragDrop, ctx.handleDragDrop));\n ɵngcc0.ɵɵattribute(\"title\", ctx.title);\n } }, directives: [ɵngcc2.EventsOutsideAngularDirective], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], MaskedTextBoxComponent.prototype, \"focusableId\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], MaskedTextBoxComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], MaskedTextBoxComponent.prototype, \"readonly\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], MaskedTextBoxComponent.prototype, \"title\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], MaskedTextBoxComponent.prototype, \"size\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], MaskedTextBoxComponent.prototype, \"rounded\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], MaskedTextBoxComponent.prototype, \"fillMode\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], MaskedTextBoxComponent.prototype, \"mask\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], MaskedTextBoxComponent.prototype, \"value\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], MaskedTextBoxComponent.prototype, \"rules\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], MaskedTextBoxComponent.prototype, \"prompt\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], MaskedTextBoxComponent.prototype, \"promptPlaceholder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], MaskedTextBoxComponent.prototype, \"includeLiterals\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], MaskedTextBoxComponent.prototype, \"maskOnFocus\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], MaskedTextBoxComponent.prototype, \"maskValidation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], MaskedTextBoxComponent.prototype, \"tabindex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], MaskedTextBoxComponent.prototype, \"tabIndex\", null);\n__decorate([\n Output('focus'),\n __metadata(\"design:type\", EventEmitter)\n], MaskedTextBoxComponent.prototype, \"onFocus\", void 0);\n__decorate([\n Output('blur'),\n __metadata(\"design:type\", EventEmitter)\n], MaskedTextBoxComponent.prototype, \"onBlur\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], MaskedTextBoxComponent.prototype, \"valueChange\", void 0);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String)\n], MaskedTextBoxComponent.prototype, \"direction\", void 0);\n__decorate([\n HostBinding('class.k-input'),\n HostBinding('class.k-maskedtextbox'),\n __metadata(\"design:type\", Boolean)\n], MaskedTextBoxComponent.prototype, \"hostClasses\", void 0);\n__decorate([\n HostBinding('class.k-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], MaskedTextBoxComponent.prototype, \"hostDisabledClass\", null);\n__decorate([\n ViewChild('input', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], MaskedTextBoxComponent.prototype, \"input\", void 0);\n__decorate([\n HostListener('paste', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], MaskedTextBoxComponent.prototype, \"pasteHandler\", null);\n__decorate([\n HostListener('input', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], MaskedTextBoxComponent.prototype, \"inputHandler\", null);\nMaskedTextBoxComponent = MaskedTextBoxComponent_1 = __decorate([ __param(6, Optional()), __param(6, Inject(RTL)),\n __metadata(\"design:paramtypes\", [MaskingService,\n Renderer2,\n ElementRef,\n NgZone,\n Injector,\n ChangeDetectorRef, Boolean])\n], MaskedTextBoxComponent);\n\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 */\nlet SliderTicksComponent = class SliderTicksComponent {\n /**\n * @hidden\n */\n constructor() {\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 (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.ɵfac = function SliderTicksComponent_Factory(t) { return new (t || SliderTicksComponent)(); };\nSliderTicksComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SliderTicksComponent, selectors: [[\"\", \"kendoSliderTicks\", \"\"]], viewQuery: function SliderTicksComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c36, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.tickElements = _t);\n } }, hostVars: 2, hostBindings: function SliderTicksComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassMap(ctx.wrapperClasses);\n } }, inputs: { tickTitle: \"tickTitle\", vertical: \"vertical\", step: \"step\", largeStep: \"largeStep\", min: \"min\", max: \"max\", labelTemplate: \"labelTemplate\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], attrs: _c37, decls: 3, vars: 1, consts: [[\"role\", \"presentation\", 3, \"ngClass\", \"title\", 4, \"ngFor\", \"ngForOf\"], [\"defaultLabel\", \"\"], [\"role\", \"presentation\", 3, \"ngClass\", \"title\"], [\"tickElement\", \"\"], [3, \"ngSwitch\"], [\"class\", \"k-label\", 4, \"ngSwitchCase\"], [4, \"ngSwitchCase\"], [1, \"k-label\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]], template: function SliderTicksComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, SliderTicksComponent_li_0_Template, 5, 5, \"li\", 0);\n ɵngcc0.ɵɵtemplate(1, SliderTicksComponent_ng_template_1_Template, 1, 1, \"ng-template\", null, 1, ɵngcc0.ɵɵtemplateRefExtractor);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.ticks);\n } }, directives: [ɵngcc3.NgForOf, ɵngcc3.NgClass, ɵngcc3.NgSwitch, ɵngcc3.NgSwitchCase, ɵngcc3.NgTemplateOutlet], encapsulation: 2 });\n__decorate([\n HostBinding('class'),\n __metadata(\"design:type\", String)\n], SliderTicksComponent.prototype, \"wrapperClasses\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], SliderTicksComponent.prototype, \"tickTitle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SliderTicksComponent.prototype, \"vertical\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SliderTicksComponent.prototype, \"step\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SliderTicksComponent.prototype, \"largeStep\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SliderTicksComponent.prototype, \"min\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SliderTicksComponent.prototype, \"max\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], SliderTicksComponent.prototype, \"labelTemplate\", void 0);\n__decorate([\n ViewChildren('tickElement'),\n __metadata(\"design:type\", QueryList)\n], SliderTicksComponent.prototype, \"tickElements\", void 0);\n\n/**\n * @hidden\n */\nlet SlidersCommonModule = class SlidersCommonModule {\n};\nSlidersCommonModule.ɵfac = function SlidersCommonModule_Factory(t) { return new (t || SlidersCommonModule)(); };\nSlidersCommonModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: SlidersCommonModule });\nSlidersCommonModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule, DraggableModule, EventsModule, ResizeSensorModule], DraggableModule,\n EventsModule,\n ResizeSensorModule] });\n\n/**\n * @hidden\n */\nclass SliderMessages extends ComponentMessages {\n}\nSliderMessages.ɵfac = /*@__PURE__*/ function () { let ɵSliderMessages_BaseFactory; return function SliderMessages_Factory(t) { return (ɵSliderMessages_BaseFactory || (ɵSliderMessages_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(SliderMessages)))(t || SliderMessages); }; }();\nSliderMessages.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SliderMessages, inputs: { decrement: \"decrement\", increment: \"increment\", dragHandle: \"dragHandle\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SliderMessages.prototype, \"decrement\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SliderMessages.prototype, \"increment\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SliderMessages.prototype, \"dragHandle\", void 0);\n\nvar LocalizedSliderMessagesDirective_1;\n/**\n * @hidden\n */\nlet LocalizedSliderMessagesDirective = LocalizedSliderMessagesDirective_1 = class LocalizedSliderMessagesDirective extends SliderMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n};\nLocalizedSliderMessagesDirective.ɵfac = function LocalizedSliderMessagesDirective_Factory(t) { return new (t || LocalizedSliderMessagesDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nLocalizedSliderMessagesDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LocalizedSliderMessagesDirective, selectors: [[\"\", \"kendoSliderLocalizedMessages\", \"\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: SliderMessages,\n useExisting: forwardRef(() => LocalizedSliderMessagesDirective_1) // tslint:disable-line:no-forward-ref\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature] });\nLocalizedSliderMessagesDirective = LocalizedSliderMessagesDirective_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], LocalizedSliderMessagesDirective);\n\nvar SliderCustomMessagesComponent_1;\n/**\n * Custom component messages override default component messages.\n */\nlet SliderCustomMessagesComponent = SliderCustomMessagesComponent_1 = class SliderCustomMessagesComponent extends SliderMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n};\nSliderCustomMessagesComponent.ɵfac = function SliderCustomMessagesComponent_Factory(t) { return new (t || SliderCustomMessagesComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nSliderCustomMessagesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SliderCustomMessagesComponent, selectors: [[\"kendo-slider-messages\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: SliderMessages,\n useExisting: forwardRef(() => SliderCustomMessagesComponent_1) // tslint:disable-line:no-forward-ref\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function SliderCustomMessagesComponent_Template(rf, ctx) { }, encapsulation: 2 });\nSliderCustomMessagesComponent = SliderCustomMessagesComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], SliderCustomMessagesComponent);\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 */\nlet SliderModule = class SliderModule {\n};\nSliderModule.ɵfac = function SliderModule_Factory(t) { return new (t || SliderModule)(); };\nSliderModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: SliderModule });\nSliderModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule, SlidersCommonModule]] });\n\n/**\n * @hidden\n */\nclass RangeSliderMessages extends ComponentMessages {\n}\nRangeSliderMessages.ɵfac = /*@__PURE__*/ function () { let ɵRangeSliderMessages_BaseFactory; return function RangeSliderMessages_Factory(t) { return (ɵRangeSliderMessages_BaseFactory || (ɵRangeSliderMessages_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(RangeSliderMessages)))(t || RangeSliderMessages); }; }();\nRangeSliderMessages.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: RangeSliderMessages, inputs: { dragHandleStart: \"dragHandleStart\", dragHandleEnd: \"dragHandleEnd\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], RangeSliderMessages.prototype, \"dragHandleStart\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], RangeSliderMessages.prototype, \"dragHandleEnd\", void 0);\n\nvar LocalizedRangeSliderMessagesDirective_1;\n/**\n * @hidden\n */\nlet LocalizedRangeSliderMessagesDirective = LocalizedRangeSliderMessagesDirective_1 = class LocalizedRangeSliderMessagesDirective extends RangeSliderMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n};\nLocalizedRangeSliderMessagesDirective.ɵfac = function LocalizedRangeSliderMessagesDirective_Factory(t) { return new (t || LocalizedRangeSliderMessagesDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nLocalizedRangeSliderMessagesDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LocalizedRangeSliderMessagesDirective, selectors: [[\"\", \"kendoSliderLocalizedMessages\", \"\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: RangeSliderMessages,\n useExisting: forwardRef(() => LocalizedRangeSliderMessagesDirective_1) // tslint:disable-line:no-forward-ref\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature] });\nLocalizedRangeSliderMessagesDirective = LocalizedRangeSliderMessagesDirective_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], LocalizedRangeSliderMessagesDirective);\n\nvar RangeSliderCustomMessagesComponent_1;\n/**\n * Custom component messages override default component messages.\n */\nlet RangeSliderCustomMessagesComponent = RangeSliderCustomMessagesComponent_1 = class RangeSliderCustomMessagesComponent extends RangeSliderMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n};\nRangeSliderCustomMessagesComponent.ɵfac = function RangeSliderCustomMessagesComponent_Factory(t) { return new (t || RangeSliderCustomMessagesComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nRangeSliderCustomMessagesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: RangeSliderCustomMessagesComponent, selectors: [[\"kendo-rangeslider-messages\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: RangeSliderMessages,\n useExisting: forwardRef(() => RangeSliderCustomMessagesComponent_1) // tslint:disable-line:no-forward-ref\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function RangeSliderCustomMessagesComponent_Template(rf, ctx) { }, encapsulation: 2 });\nRangeSliderCustomMessagesComponent = RangeSliderCustomMessagesComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], RangeSliderCustomMessagesComponent);\n\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the RangeSlider component.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the Inputs module\n * import { RangeSliderModule } 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, RangeSliderModule], // import RangeSlider module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nlet RangeSliderModule = class RangeSliderModule {\n};\nRangeSliderModule.ɵfac = function RangeSliderModule_Factory(t) { return new (t || RangeSliderModule)(); };\nRangeSliderModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: RangeSliderModule });\nRangeSliderModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule, SlidersCommonModule]] });\n\n/**\n * @hidden\n */\nclass Messages extends ComponentMessages {\n}\nMessages.ɵfac = /*@__PURE__*/ function () { let ɵMessages_BaseFactory; return function Messages_Factory(t) { return (ɵMessages_BaseFactory || (ɵMessages_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(Messages)))(t || Messages); }; }();\nMessages.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: Messages, inputs: { on: \"on\", off: \"off\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"on\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"off\", void 0);\n\nvar LocalizedSwitchMessagesDirective_1;\n/**\n * @hidden\n */\nlet LocalizedSwitchMessagesDirective = LocalizedSwitchMessagesDirective_1 = class LocalizedSwitchMessagesDirective extends Messages {\n constructor(service) {\n super();\n this.service = service;\n }\n};\nLocalizedSwitchMessagesDirective.ɵfac = function LocalizedSwitchMessagesDirective_Factory(t) { return new (t || LocalizedSwitchMessagesDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nLocalizedSwitchMessagesDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LocalizedSwitchMessagesDirective, selectors: [[\"\", \"kendoSwitchLocalizedMessages\", \"\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: Messages,\n useExisting: forwardRef(() => LocalizedSwitchMessagesDirective_1) // tslint:disable-line:no-forward-ref\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature] });\nLocalizedSwitchMessagesDirective = LocalizedSwitchMessagesDirective_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], LocalizedSwitchMessagesDirective);\n\nvar SwitchCustomMessagesComponent_1;\n/**\n * Custom component messages override default component messages.\n */\nlet SwitchCustomMessagesComponent = SwitchCustomMessagesComponent_1 = class SwitchCustomMessagesComponent extends Messages {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n};\nSwitchCustomMessagesComponent.ɵfac = function SwitchCustomMessagesComponent_Factory(t) { return new (t || SwitchCustomMessagesComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nSwitchCustomMessagesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SwitchCustomMessagesComponent, selectors: [[\"kendo-switch-messages\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: Messages,\n useExisting: forwardRef(() => SwitchCustomMessagesComponent_1) // tslint:disable-line:no-forward-ref\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function SwitchCustomMessagesComponent_Template(rf, ctx) { }, encapsulation: 2 });\nSwitchCustomMessagesComponent = SwitchCustomMessagesComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], SwitchCustomMessagesComponent);\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 */\nlet SwitchModule = class SwitchModule {\n};\nSwitchModule.ɵfac = function SwitchModule_Factory(t) { return new (t || SwitchModule)(); };\nSwitchModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: SwitchModule });\nSwitchModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule, EventsModule, ResizeSensorModule]] });\n\nvar LocalizedNumericTextBoxMessagesDirective_1;\n/**\n * @hidden\n */\nlet LocalizedNumericTextBoxMessagesDirective = LocalizedNumericTextBoxMessagesDirective_1 = class LocalizedNumericTextBoxMessagesDirective extends NumericTextBoxMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n};\nLocalizedNumericTextBoxMessagesDirective.ɵfac = function LocalizedNumericTextBoxMessagesDirective_Factory(t) { return new (t || LocalizedNumericTextBoxMessagesDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nLocalizedNumericTextBoxMessagesDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LocalizedNumericTextBoxMessagesDirective, selectors: [[\"\", \"kendoNumericTextBoxLocalizedMessages\", \"\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: NumericTextBoxMessages,\n useExisting: forwardRef(() => LocalizedNumericTextBoxMessagesDirective_1) // tslint:disable-line:no-forward-ref\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature] });\nLocalizedNumericTextBoxMessagesDirective = LocalizedNumericTextBoxMessagesDirective_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], LocalizedNumericTextBoxMessagesDirective);\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 */\nlet NumericTextBoxModule = class NumericTextBoxModule {\n};\nNumericTextBoxModule.ɵfac = function NumericTextBoxModule_Factory(t) { return new (t || NumericTextBoxModule)(); };\nNumericTextBoxModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NumericTextBoxModule });\nNumericTextBoxModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule, EventsModule]] });\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 */\nlet MaskedTextBoxModule = class MaskedTextBoxModule {\n};\nMaskedTextBoxModule.ɵfac = function MaskedTextBoxModule_Factory(t) { return new (t || MaskedTextBoxModule)(); };\nMaskedTextBoxModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: MaskedTextBoxModule });\nMaskedTextBoxModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule, EventsModule]] });\n\n/**\n * @hidden\n *\n * Returns true if the used browser is Safari.\n */\nconst isSafari = (userAgent) => {\n const desktopBrowser = detectDesktopBrowser(userAgent);\n const mobileOS$$1 = detectMobileOS(userAgent);\n return (desktopBrowser && desktopBrowser.safari) || (mobileOS$$1 && mobileOS$$1.browser === 'mobilesafari');\n};\n/**\n * @hidden\n *\n * Checks if input is Japanese IME\n */\nconst isJapanese = (input) => {\n const japaneseRegex = /[\\u3000-\\u303F]|[\\u3040-\\u309F]|[\\u30A0-\\u30FF]|[\\uFF00-\\uFFEF]|[\\u4E00-\\u9FAF]|[\\u2605-\\u2606]|[\\u2190-\\u2195]|\\u203B/g;\n return japaneseRegex.test(input);\n};\n\n/**\n * Specifies the adornments in the suffix container ([see examples]({% slug adornments_textbox %}#toc-suffixadornments)).\n * ```ts-no-run\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * `\n * })\n * class AppComponent {}\n * ```\n */\nlet TextBoxSuffixTemplateDirective = class TextBoxSuffixTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nTextBoxSuffixTemplateDirective.ɵfac = function TextBoxSuffixTemplateDirective_Factory(t) { return new (t || TextBoxSuffixTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nTextBoxSuffixTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: TextBoxSuffixTemplateDirective, selectors: [[\"\", \"kendoTextBoxSuffixTemplate\", \"\"]] });\nTextBoxSuffixTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], TextBoxSuffixTemplateDirective);\n\n/**\n * Specifies the adornments in the prefix container ([see examples]({% slug adornments_textbox %}#toc-prefixadornments)).\n * @example\n * ```ts-no-run\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * `\n * })\n * class AppComponent {}\n * ```\n */\nlet TextBoxPrefixTemplateDirective = class TextBoxPrefixTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nTextBoxPrefixTemplateDirective.ɵfac = function TextBoxPrefixTemplateDirective_Factory(t) { return new (t || TextBoxPrefixTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nTextBoxPrefixTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: TextBoxPrefixTemplateDirective, selectors: [[\"\", \"kendoTextBoxPrefixTemplate\", \"\"]] });\nTextBoxPrefixTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], TextBoxPrefixTemplateDirective);\n\nvar TextBoxComponent_1;\nconst FOCUSED$3 = 'k-focus';\nlet TextBoxComponent = TextBoxComponent_1 = class TextBoxComponent {\n constructor(localizationService, ngZone, changeDetector, renderer, injector, hostElement) {\n this.localizationService = localizationService;\n this.ngZone = ngZone;\n this.changeDetector = changeDetector;\n this.renderer = renderer;\n this.injector = injector;\n this.hostElement = hostElement;\n /**\n * @hidden\n */\n this.focusableId = `k-${guid()}`;\n /**\n * Sets the `title` attribute of the `input` element of the TextBox.\n */\n this.title = '';\n /**\n * Sets the disabled state of the component.\n *\n * @default false\n */\n this.disabled = false;\n /**\n * Sets the read-only state of the component.\n *\n * @default false\n */\n this.readonly = false;\n /**\n * Specifies the `tabindex` of the TextBox.\n *\n * @default 0\n */\n this.tabindex = 0;\n /**\n * Provides a value for the TextBox.\n */\n this.value = null;\n /**\n * Determines whether the whole value will be selected when the TextBox is clicked. Defaults to `false`.\n *\n * @default false\n */\n this.selectOnFocus = false;\n /**\n * Specifies when the Success icon will be shown ([see example]({% slug validation_textbox %})).\n *\n * The possible values are:\n *\n * `boolean`—The Success icon is displayed, if the condition given by the developer is met.\n *\n * `initial`—The Success icon will be displayed when the component state is neither `invalid` nor `touched` or `dirty`.\n *\n * @default false\n */\n this.showSuccessIcon = false;\n /**\n * Specifies when the Error icon will be shown ([see example]({% slug validation_textbox %})).\n *\n * The possible values are:\n *\n * * `initial`—The Error icon will be displayed when the component state is\n * `invalid` and `touched` or `dirty`.\n * * `boolean`—The Error icon is displayed, if the condition given by the developer is met.\n *\n * @default false\n */\n this.showErrorIcon = false;\n /**\n * Specifies whether a Clear button will be rendered.\n *\n * @default false\n */\n this.clearButton = 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_textbox %}#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 focuses the `input` element.\n */\n this.inputFocus = new EventEmitter();\n /**\n * Fires each time the `input` element gets blurred.\n */\n this.inputBlur = new EventEmitter();\n /**\n * Fires each time the user focuses the TextBox component.\n *\n * > To wire the event programmatically, use the `onFocus` property.\n *\n * @example\n * ```ts-no-run\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * `\n * })\n * class AppComponent {\n * public handleFocus(): void {\n * console.log('Component is isFocused');\n * }\n * }\n * ```\n */\n this.onFocus = new EventEmitter();\n /**\n * Fires each time the TextBox component gets blurred.\n *\n * > To wire the event programmatically, use the `onBlur` property.\n *\n * @example\n * ```ts-no-run\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();\n this.hostClasses = true;\n this._isFocused = false;\n this.focusChangedProgrammatically = false;\n this._size = 'medium';\n this._rounded = 'medium';\n this._fillMode = 'solid';\n /**\n * @hidden\n */\n this.handleInputFocus = () => {\n if (!this.disabled) {\n if (this.selectOnFocus && this.value) {\n this.ngZone.run(() => {\n setTimeout(() => { this.selectAll(); });\n });\n }\n if (hasObservers(this.onFocus)) {\n if (!this.isFocused) {\n this.ngZone.run(() => {\n this.onFocus.emit();\n });\n }\n }\n if (hasObservers(this.inputFocus)) {\n if (!this.focusChangedProgrammatically || (this.focusChangedProgrammatically && this.clearButtonClicked)) {\n this.ngZone.run(() => {\n this.inputFocus.emit();\n });\n }\n }\n this.ngZone.run(() => {\n this.isFocused = true;\n });\n }\n };\n /**\n * @hidden\n */\n this.handleInputBlur = () => {\n this.changeDetector.markForCheck();\n if (hasObservers(this.inputBlur) || requiresZoneOnBlur(this.control)) {\n this.ngZone.run(() => {\n this.ngTouched();\n this.inputBlur.emit();\n });\n }\n };\n /**\n * @hidden\n */\n this.handleInput = (ev) => {\n const target = ev.target;\n const isBrowserSafari = isSafari(navigator.userAgent);\n const incomingValue = isBrowserSafari && isJapanese(target.value) ? ev.data : target.value;\n const [caretStart, caretEnd] = [target.selectionStart, target.selectionEnd];\n this.updateValue(incomingValue);\n if (isBrowserSafari) {\n target.setSelectionRange(caretStart, caretEnd);\n }\n };\n this.ngChange = (_) => { };\n this.ngTouched = () => { };\n validatePackage(packageMetadata);\n this.direction = localizationService.rtl ? 'rtl' : 'ltr';\n }\n /**\n * The size property specifies the padding of the TextBox internal input element\n * ([see example]({% slug appearance_textbox %}#toc-size)).\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `null`\n */\n set size(size) {\n this.handleClasses(size, 'size');\n this._size = size;\n }\n get size() {\n return this._size;\n }\n /**\n * The rounded property specifies the border radius of the TextBox\n * ([see example]({% slug appearance_textbox %}#toc-rounded)).\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `'full'`\n * * `null`\n */\n set rounded(rounded) {\n this.handleClasses(rounded, 'rounded');\n this._rounded = rounded;\n }\n get rounded() {\n return this._rounded;\n }\n /**\n * The fillMode property specifies the background and border styles of the TextBox\n * ([see example]({% slug appearance_textbox %}#toc-fillMode)).\n *\n * The possible values are:\n * * `'flat'`\n * * `'solid'` (default)\n * * `'outline'`\n * * `null`\n */\n set fillMode(fillMode) {\n this.handleClasses(fillMode, 'fillMode');\n this._fillMode = fillMode;\n }\n get fillMode() {\n return this._fillMode;\n }\n /**\n * @hidden\n */\n set tabIndex(tabIndex) {\n this.tabindex = tabIndex;\n }\n get tabIndex() {\n return this.tabindex;\n }\n get disabledClass() {\n return this.disabled;\n }\n ngOnInit() {\n this.control = this.injector.get(NgControl, null);\n this.checkClearButton();\n this.subscriptions = this.localizationService.changes.subscribe(({ rtl }) => {\n this.direction = rtl ? 'rtl' : 'ltr';\n });\n }\n ngAfterViewInit() {\n const hostElement = this.hostElement.nativeElement;\n let cursorInsideWrapper = false;\n let tabbing = false;\n this.ngZone.runOutsideAngular(() => {\n // focusIn and focusOut are relative to the host element\n this.subscriptions.add(this.renderer.listen(hostElement, 'focusin', () => {\n if (!this.isFocused) {\n this.ngZone.run(() => {\n this.onFocus.emit();\n this.isFocused = true;\n });\n }\n }));\n this.subscriptions.add(this.renderer.listen(hostElement, 'focusout', (args) => {\n if (!this.isFocused) {\n return;\n }\n if (tabbing) {\n const closestTextbox = closest$1(args.relatedTarget, (element) => element === this.hostElement.nativeElement);\n if (!closestTextbox) {\n this.handleBlur();\n }\n tabbing = false;\n }\n else {\n if (!cursorInsideWrapper && !this.clearButtonClicked) {\n this.handleBlur();\n }\n }\n }));\n this.subscriptions.add(this.renderer.listen(hostElement, 'mouseenter', () => {\n cursorInsideWrapper = true;\n }));\n this.subscriptions.add(this.renderer.listen(hostElement, 'mouseleave', () => {\n cursorInsideWrapper = false;\n }));\n this.subscriptions.add(this.renderer.listen(hostElement, 'keydown', (args) => {\n if (args.keyCode === Keys.Tab) {\n tabbing = true;\n }\n else {\n tabbing = false;\n }\n }));\n });\n const stylingInputs = ['size', 'rounded', 'fillMode'];\n stylingInputs.forEach(input => {\n this.handleClasses(this[input], input);\n });\n }\n ngOnChanges(changes) {\n if (changes.disabled || changes.readonly || changes.value) {\n this.checkClearButton();\n }\n }\n ngOnDestroy() {\n if (this.subscriptions) {\n this.subscriptions.unsubscribe();\n }\n }\n /**\n * Focuses the TextBox.\n *\n * @example\n * ```ts-no-run\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.focusChangedProgrammatically = true;\n this.isFocused = true;\n this.input.nativeElement.focus();\n this.focusChangedProgrammatically = false;\n }\n /**\n * Blurs the TextBox.\n */\n blur() {\n this.focusChangedProgrammatically = true;\n const isFocusedElement = this.hostElement.nativeElement.querySelector(':focus');\n if (isFocusedElement) {\n isFocusedElement.blur();\n }\n this.isFocused = false;\n this.focusChangedProgrammatically = false;\n }\n /**\n * @hidden\n */\n clearTitle() {\n return this.localizationService.get('clear');\n }\n /**\n * @hidden\n */\n checkClearButton() {\n this.showClearButton =\n !this.disabled &&\n !this.readonly &&\n this.clearButton &&\n !!this.value;\n }\n /**\n * @hidden\n */\n clearValue(ev) {\n if (ev) {\n ev.preventDefault();\n }\n this.clearButtonClicked = true;\n this.input.nativeElement.value = '';\n this.input.nativeElement.focus();\n this.updateValue('');\n this.checkClearButton();\n this.clearButtonClicked = false;\n }\n /**\n * @hidden\n */\n writeValue(value) {\n this.value = value;\n this.checkClearButton();\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.changeDetector.markForCheck();\n this.disabled = isDisabled;\n }\n /**\n * @hidden\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 /**\n * @hidden\n */\n showSuccessInitial() {\n if (!this.control) {\n return false;\n }\n const { valid, dirty, touched } = this.control;\n return valid && (dirty || touched);\n }\n /**\n * @hidden\n */\n get successIconClasses() {\n return this.successIcon\n ? `${this.successIcon}`\n : `k-input-validation-icon k-icon k-i-check`;\n }\n /**\n * @hidden\n */\n get errorIconClasses() {\n return this.errorIcon\n ? `${this.errorIcon}`\n : `k-input-validation-icon k-icon k-i-warning`;\n }\n /**\n * @hidden\n */\n get clearButtonClasses() {\n return this.clearButtonIcon\n ? this.clearButtonIcon\n : `k-icon k-i-x`;\n }\n /**\n * @hidden\n */\n get hasErrors() {\n return this.showErrorIcon === 'initial'\n ? this.showErrorsInitial()\n : this.showErrorIcon;\n }\n /**\n * @hidden\n */\n get isSuccessful() {\n return this.showSuccessIcon === 'initial'\n ? this.showSuccessInitial()\n : this.showSuccessIcon;\n }\n setSelection(start, end) {\n if (this.isFocused) {\n invokeElementMethod(this.input, 'setSelectionRange', start, end);\n }\n }\n selectAll() {\n if (this.value) {\n this.setSelection(0, this.value.length);\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.checkClearButton();\n this.changeDetector.markForCheck();\n });\n }\n }\n get isFocused() {\n return this._isFocused;\n }\n set isFocused(value) {\n if (this._isFocused !== value && this.hostElement) {\n const element = this.hostElement.nativeElement;\n if (value && !this.disabled) {\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 handleBlur() {\n this.ngZone.run(() => {\n if (!this.focusChangedProgrammatically) {\n this.onBlur.emit();\n }\n this.isFocused = false;\n });\n }\n handleClasses(value, input) {\n const elem = this.hostElement.nativeElement;\n const classes = getStylingClasses('input', input, this[input], value);\n if (classes.toRemove) {\n this.renderer.removeClass(elem, classes.toRemove);\n }\n if (classes.toAdd) {\n this.renderer.addClass(elem, classes.toAdd);\n }\n }\n};\nTextBoxComponent.ɵfac = function TextBoxComponent_Factory(t) { return new (t || TextBoxComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Injector), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nTextBoxComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: TextBoxComponent, selectors: [[\"kendo-textbox\"]], contentQueries: function TextBoxComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, TextBoxSuffixTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, TextBoxPrefixTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.suffixTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.prefixTemplate = _t.first);\n } }, viewQuery: function TextBoxComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c34, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.input = _t.first);\n } }, hostVars: 7, hostBindings: function TextBoxComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"dir\", ctx.direction);\n ɵngcc0.ɵɵclassProp(\"k-textbox\", ctx.hostClasses)(\"k-input\", ctx.hostClasses)(\"k-disabled\", ctx.disabledClass);\n } }, inputs: { focusableId: \"focusableId\", title: \"title\", disabled: \"disabled\", readonly: \"readonly\", tabindex: \"tabindex\", value: \"value\", selectOnFocus: \"selectOnFocus\", showSuccessIcon: \"showSuccessIcon\", showErrorIcon: \"showErrorIcon\", clearButton: \"clearButton\", size: \"size\", rounded: \"rounded\", fillMode: \"fillMode\", tabIndex: \"tabIndex\", successIcon: \"successIcon\", errorIcon: \"errorIcon\", clearButtonIcon: \"clearButtonIcon\", placeholder: \"placeholder\", maxlength: \"maxlength\" }, outputs: { valueChange: \"valueChange\", inputFocus: \"inputFocus\", inputBlur: \"inputBlur\", onFocus: \"focus\", onBlur: \"blur\" }, exportAs: [\"kendoTextBox\"], features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n { provide: L10N_PREFIX, useValue: 'kendo.textbox' },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextBoxComponent_1),\n multi: true\n },\n { provide: KendoInput, useExisting: forwardRef(() => TextBoxComponent_1) }\n ]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 10, vars: 18, consts: function () { let i18n_38; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title for the **Clear** button in the TextBox.\n * @meaning kendo.textbox.clear\n */\n const MSG_EXTERNAL_2651889799249671820$$DIST_FESM2015_INDEX_JS_39 = goog.getMsg(\"Clear\");\n i18n_38 = MSG_EXTERNAL_2651889799249671820$$DIST_FESM2015_INDEX_JS_39;\n }\n else {\n i18n_38 = $localize `:kendo.textbox.clear|The title for the **Clear** button in the TextBox.␟e6edd360fd0d3c873c0d94a3aecd3c407d31da5a␟2651889799249671820:Clear`;\n } return [[\"kendoTextBoxLocalizedMessages\", \"\", \"clear\", i18n_38], [1, \"k-input-prefix\"], [4, \"ngIf\"], [1, \"k-input-inner\", 3, \"id\", \"disabled\", \"readonly\", \"value\", \"kendoEventsOutsideAngular\"], [\"input\", \"\"], [\"role\", \"button\", \"class\", \"k-clear-value\", 3, \"tabindex\", \"title\", \"click\", \"mousedown\", \"keydown.enter\", \"keydown.space\", 4, \"ngIf\"], [3, \"ngClass\", 4, \"ngIf\"], [1, \"k-input-suffix\"], [3, \"ngTemplateOutlet\"], [\"role\", \"button\", 1, \"k-clear-value\", 3, \"tabindex\", \"title\", \"click\", \"mousedown\", \"keydown.enter\", \"keydown.space\"], [3, \"ngClass\"]]; }, template: function TextBoxComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 0);\n ɵngcc0.ɵɵelementStart(1, \"span\", 1);\n ɵngcc0.ɵɵtemplate(2, TextBoxComponent_2_Template, 1, 1, null, 2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelement(3, \"input\", 3, 4);\n ɵngcc0.ɵɵtemplate(5, TextBoxComponent_span_5_Template, 2, 4, \"span\", 5);\n ɵngcc0.ɵɵtemplate(6, TextBoxComponent_span_6_Template, 1, 1, \"span\", 6);\n ɵngcc0.ɵɵtemplate(7, TextBoxComponent_span_7_Template, 1, 1, \"span\", 6);\n ɵngcc0.ɵɵelementStart(8, \"span\", 7);\n ɵngcc0.ɵɵtemplate(9, TextBoxComponent_9_Template, 1, 1, null, 2);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.prefixTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"id\", ctx.focusableId)(\"disabled\", ctx.disabled)(\"readonly\", ctx.readonly)(\"value\", ctx.value)(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction3(14, _c40, ctx.handleInputFocus, ctx.handleInputBlur, ctx.handleInput));\n ɵngcc0.ɵɵattribute(\"tabindex\", ctx.disabled ? undefined : ctx.tabindex)(\"placeholder\", ctx.placeholder)(\"title\", ctx.title)(\"maxlength\", ctx.maxlength);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showClearButton);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.hasErrors);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.isSuccessful);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.suffixTemplate);\n } }, directives: function () { return [LocalizedTextBoxMessagesDirective, ɵngcc3.NgIf, ɵngcc3.NgTemplateOutlet, ɵngcc2.EventsOutsideAngularDirective, ɵngcc3.NgClass]; }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TextBoxComponent.prototype, \"focusableId\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TextBoxComponent.prototype, \"title\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TextBoxComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TextBoxComponent.prototype, \"readonly\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], TextBoxComponent.prototype, \"tabindex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TextBoxComponent.prototype, \"value\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TextBoxComponent.prototype, \"selectOnFocus\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], TextBoxComponent.prototype, \"showSuccessIcon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], TextBoxComponent.prototype, \"showErrorIcon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TextBoxComponent.prototype, \"clearButton\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TextBoxComponent.prototype, \"successIcon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TextBoxComponent.prototype, \"errorIcon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TextBoxComponent.prototype, \"clearButtonIcon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], TextBoxComponent.prototype, \"size\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], TextBoxComponent.prototype, \"rounded\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], TextBoxComponent.prototype, \"fillMode\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], TextBoxComponent.prototype, \"tabIndex\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TextBoxComponent.prototype, \"placeholder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], TextBoxComponent.prototype, \"maxlength\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TextBoxComponent.prototype, \"valueChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TextBoxComponent.prototype, \"inputFocus\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TextBoxComponent.prototype, \"inputBlur\", void 0);\n__decorate([\n Output('focus'),\n __metadata(\"design:type\", EventEmitter)\n], TextBoxComponent.prototype, \"onFocus\", void 0);\n__decorate([\n Output('blur'),\n __metadata(\"design:type\", EventEmitter)\n], TextBoxComponent.prototype, \"onBlur\", void 0);\n__decorate([\n ViewChild('input', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], TextBoxComponent.prototype, \"input\", void 0);\n__decorate([\n ContentChild(TextBoxSuffixTemplateDirective, { static: false }),\n __metadata(\"design:type\", TextBoxSuffixTemplateDirective)\n], TextBoxComponent.prototype, \"suffixTemplate\", void 0);\n__decorate([\n ContentChild(TextBoxPrefixTemplateDirective, { static: false }),\n __metadata(\"design:type\", TextBoxPrefixTemplateDirective)\n], TextBoxComponent.prototype, \"prefixTemplate\", void 0);\n__decorate([\n HostBinding('class.k-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], TextBoxComponent.prototype, \"disabledClass\", null);\n__decorate([\n HostBinding('class.k-textbox'),\n HostBinding('class.k-input'),\n __metadata(\"design:type\", Boolean)\n], TextBoxComponent.prototype, \"hostClasses\", void 0);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String)\n], TextBoxComponent.prototype, \"direction\", void 0);\nTextBoxComponent = TextBoxComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService,\n NgZone,\n ChangeDetectorRef,\n Renderer2,\n Injector,\n ElementRef])\n], TextBoxComponent);\n\n/**\n * @hidden\n */\nclass TextBoxMessages extends ComponentMessages {\n}\nTextBoxMessages.ɵfac = /*@__PURE__*/ function () { let ɵTextBoxMessages_BaseFactory; return function TextBoxMessages_Factory(t) { return (ɵTextBoxMessages_BaseFactory || (ɵTextBoxMessages_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(TextBoxMessages)))(t || TextBoxMessages); }; }();\nTextBoxMessages.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: TextBoxMessages, inputs: { clear: \"clear\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TextBoxMessages.prototype, \"clear\", void 0);\n\nvar TextBoxCustomMessagesComponent_1;\n/**\n * Custom component messages override default component messages.\n */\nlet TextBoxCustomMessagesComponent = TextBoxCustomMessagesComponent_1 = class TextBoxCustomMessagesComponent extends TextBoxMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n};\nTextBoxCustomMessagesComponent.ɵfac = function TextBoxCustomMessagesComponent_Factory(t) { return new (t || TextBoxCustomMessagesComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nTextBoxCustomMessagesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: TextBoxCustomMessagesComponent, selectors: [[\"kendo-textbox-messages\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: TextBoxMessages,\n useExisting: forwardRef(() => TextBoxCustomMessagesComponent_1) // tslint:disable-line:no-forward-ref\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function TextBoxCustomMessagesComponent_Template(rf, ctx) { }, encapsulation: 2 });\nTextBoxCustomMessagesComponent = TextBoxCustomMessagesComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], TextBoxCustomMessagesComponent);\n\nvar LocalizedTextBoxMessagesDirective_1;\n/**\n * @hidden\n */\nlet LocalizedTextBoxMessagesDirective = LocalizedTextBoxMessagesDirective_1 = class LocalizedTextBoxMessagesDirective extends TextBoxMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n};\nLocalizedTextBoxMessagesDirective.ɵfac = function LocalizedTextBoxMessagesDirective_Factory(t) { return new (t || LocalizedTextBoxMessagesDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nLocalizedTextBoxMessagesDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LocalizedTextBoxMessagesDirective, selectors: [[\"\", \"kendoTextBoxLocalizedMessages\", \"\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: TextBoxMessages,\n useExisting: forwardRef(() => LocalizedTextBoxMessagesDirective_1) // tslint:disable-line:no-forward-ref\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature] });\nLocalizedTextBoxMessagesDirective = LocalizedTextBoxMessagesDirective_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], LocalizedTextBoxMessagesDirective);\n\n/**\n * Specifies a separator in the content of components like the TextArea and the TextBox. ([see examples]({% slug adornments_textbox %}#toc-separator)).\n * @example\n * ```ts-no-run\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * \n * `\n * })\n * class AppComponent {}\n * ```\n */\nlet InputSeparatorComponent = class InputSeparatorComponent {\n /**\n * Specifies a separator in the content of components like the TextArea and the TextBox. ([see examples]({% slug adornments_textbox %}#toc-separator)).\n * @example\n * ```ts-no-run\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * \n * `\n * })\n * class AppComponent {}\n * ```\n */\n constructor() {\n this.hostClass = true;\n }\n};\nInputSeparatorComponent.ɵfac = function InputSeparatorComponent_Factory(t) { return new (t || InputSeparatorComponent)(); };\nInputSeparatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: InputSeparatorComponent, selectors: [[\"kendo-input-separator\"], [\"kendo-textbox-separator\"]], hostVars: 2, hostBindings: function InputSeparatorComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-input-separator\", ctx.hostClass);\n } }, decls: 0, vars: 0, template: function InputSeparatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-input-separator'),\n __metadata(\"design:type\", Boolean)\n], InputSeparatorComponent.prototype, \"hostClass\", void 0);\n\n/**\n * @hidden\n */\nconst SHARED_DIRECTIVES = [\n InputSeparatorComponent,\n TextAreaDirective\n];\n/**\n * @hidden\n */\nlet SharedModule = class SharedModule {\n};\nSharedModule.ɵfac = function SharedModule_Factory(t) { return new (t || SharedModule)(); };\nSharedModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: SharedModule });\nSharedModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\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 */\nlet TextBoxModule = class TextBoxModule {\n};\nTextBoxModule.ɵfac = function TextBoxModule_Factory(t) { return new (t || TextBoxModule)(); };\nTextBoxModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: TextBoxModule });\nTextBoxModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule, EventsModule, SharedModule], EventsModule] });\n\n/**\n * @hidden\n */\nclass TextFieldsBase {\n constructor(localizationService, ngZone, changeDetector, renderer, injector, hostElement) {\n this.localizationService = localizationService;\n this.ngZone = ngZone;\n this.changeDetector = changeDetector;\n this.renderer = renderer;\n this.injector = injector;\n this.hostElement = hostElement;\n /**\n * Sets the `title` attribute of the internal textarea input element of the component.\n */\n this.title = '';\n /**\n * Sets the disabled state of the TextArea component.\n *\n * @default false\n */\n this.disabled = false;\n /**\n * Sets the read-only state of the TextArea component.\n *\n * @default false\n */\n this.readonly = false;\n /**\n * Provides a value for the TextArea component.\n */\n this.value = null;\n /**\n * Determines whether the whole value will be selected when the TextArea is clicked. Defaults to `false`.\n *\n * @default false\n */\n this.selectOnFocus = false;\n /**\n * Fires each time the user focuses the internal textarea element of the component.\n * This event is useful when you need to distinguish between focusing the textarea element and focusing one of its adornments.\n */\n this.inputFocus = new EventEmitter();\n /**\n * Fires each time the internal textarea element gets blurred.\n * This event is useful when adornments are used, in order to distinguish between blurring the textarea element and blurring the whole TextArea component.\n */\n this.inputBlur = new EventEmitter();\n this.subscriptions = new Subscription();\n this._isFocused = false;\n this.focusChangedProgrammatically = false;\n /**\n * @hidden\n */\n this.handleInputBlur = () => {\n this.changeDetector.markForCheck();\n if (hasObservers(this.inputBlur) || requiresZoneOnBlur(this.control)) {\n this.ngZone.run(() => {\n this.ngTouched();\n this.inputBlur.emit();\n });\n }\n };\n this.ngChange = (_) => { };\n this.ngTouched = () => { };\n }\n get disabledClass() {\n return this.disabled;\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\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.changeDetector.markForCheck();\n this.disabled = isDisabled;\n }\n}\nTextFieldsBase.ɵfac = function TextFieldsBase_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nTextFieldsBase.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: TextFieldsBase, viewQuery: function TextFieldsBase_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c34, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.input = _t.first);\n } }, hostVars: 3, hostBindings: function TextFieldsBase_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"dir\", ctx.direction);\n ɵngcc0.ɵɵclassProp(\"k-disabled\", ctx.disabledClass);\n } }, inputs: { title: \"title\", disabled: \"disabled\", readonly: \"readonly\", value: \"value\", selectOnFocus: \"selectOnFocus\", placeholder: \"placeholder\" }, outputs: { inputFocus: \"inputFocus\", inputBlur: \"inputBlur\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TextFieldsBase.prototype, \"title\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TextFieldsBase.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TextFieldsBase.prototype, \"readonly\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TextFieldsBase.prototype, \"value\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TextFieldsBase.prototype, \"selectOnFocus\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TextFieldsBase.prototype, \"placeholder\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TextFieldsBase.prototype, \"inputFocus\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TextFieldsBase.prototype, \"inputBlur\", void 0);\n__decorate([\n ViewChild('input', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], TextFieldsBase.prototype, \"input\", void 0);\n__decorate([\n HostBinding('class.k-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], TextFieldsBase.prototype, \"disabledClass\", null);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String)\n], TextFieldsBase.prototype, \"direction\", void 0);\n\nvar TextAreaComponent_1;\nconst resizeClasses = {\n 'vertical': 'k-resize-vertical',\n 'horizontal': 'k-resize-horizontal',\n 'both': 'k-resize-both',\n 'none': 'k-resize-none',\n 'auto': 'k-resize-none'\n};\nconst FOCUSED$4 = 'k-focus';\n/**\n * Represents the [Kendo UI TextArea component for Angular]({% slug overview_textarea %}).\n */\nlet TextAreaComponent = TextAreaComponent_1 = class TextAreaComponent extends TextFieldsBase {\n constructor(localizationService, ngZone, changeDetector, renderer, injector, hostElement) {\n super(localizationService, ngZone, changeDetector, renderer, injector, hostElement);\n this.localizationService = localizationService;\n this.ngZone = ngZone;\n this.changeDetector = changeDetector;\n this.renderer = renderer;\n this.injector = injector;\n this.hostElement = hostElement;\n /**\n * @hidden\n */\n this.focusableId = `k-${guid()}`;\n this.hostClasses = true;\n /**\n * Specifies the flow direction of the TextArea sections. This property is useful when adornments are used, in order to specify\n * their position in relation to the textarea element.\n *\n * The possible values are:\n * * `vertical`(Default) —TextArea sections are placed from top to bottom.\n * * `horizontal`—TextArea sections are placed from left to right in `ltr`, and from right to left in `rtl` mode.\n */\n this.flow = 'vertical';\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 * Configures the resize behavior of the TextArea.\n *\n * The possible values are:\n * * `vertical`(Default)—The TextArea component can be resized only vertically.\n * * `horizontal`—The TextArea component can be resized only horizontally.\n * * `both`—The TextArea component can be resized in both (horizontal and vertical) directions.\n * * `auto`—Specifies whether the TextArea component will adjust its height automatically, based on the content.\n * * `none`—The TextArea cannot be resized.\n *\n */\n this.resizable = 'vertical';\n /**\n * Fires each time the user focuses the TextArea component.\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();\n /**\n * Fires each time the TextArea component 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();\n /**\n * Fires each time the value is changed or the component is blurred\n * ([see example]({% slug overview_textarea %}#toc-events)).\n * When the component value is changed programmatically or via its form control binding, the valueChange event is not emitted.\n */\n this.valueChange = new EventEmitter();\n this._size = 'medium';\n this._rounded = 'medium';\n this._fillMode = 'solid';\n /**\n * @hidden\n */\n this.handleInput = (ev) => {\n let incomingValue = ev.target.value;\n this.updateValue(incomingValue);\n this.resize();\n };\n /**\n * @hidden\n */\n this.handleInputFocus = () => {\n if (!this.disabled) {\n if (this.selectOnFocus && this.value) {\n this.ngZone.run(() => {\n setTimeout(() => { this.selectAll(); });\n });\n }\n if (hasObservers(this.onFocus)) {\n if (!this.isFocused) {\n this.ngZone.run(() => {\n this.onFocus.emit();\n });\n }\n }\n if (hasObservers(this.inputFocus)) {\n if (!this.focusChangedProgrammatically) {\n this.ngZone.run(() => {\n this.inputFocus.emit();\n });\n }\n }\n this.ngZone.run(() => {\n this.isFocused = true;\n });\n }\n };\n validatePackage(packageMetadata);\n this.direction = localizationService.rtl ? 'rtl' : 'ltr';\n }\n get flowCol() {\n return this.flow === 'vertical';\n }\n get flowRow() {\n return this.flow === 'horizontal';\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 size property specifies the padding of the internal textarea element\n * ([see example]({% slug appearance_textarea %}#toc-size)).\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `null`\n */\n set size(size) {\n this.handleClasses(size, 'size');\n this._size = size;\n }\n get size() {\n return this._size;\n }\n /**\n * The rounded property specifies the border radius of the TextArea\n * ([see example]({% slug appearance_textarea %}#toc-rounded)).\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `null`\n */\n set rounded(rounded) {\n this.handleClasses(rounded, 'rounded');\n this._rounded = rounded;\n }\n get rounded() {\n return this._rounded;\n }\n /**\n * The fillMode property specifies the background and border styles of the TextArea\n * ([see example]({% slug appearance_textarea %}#toc-fillMode)).\n *\n * The possible values are:\n * * `'flat'`\n * * `'solid'` (default)\n * * `'outline'`\n * * `null`\n */\n set fillMode(fillMode) {\n this.handleClasses(fillMode, 'fillMode');\n this._fillMode = fillMode;\n }\n get fillMode() {\n return this._fillMode;\n }\n ngAfterViewInit() {\n const hostElement = this.hostElement.nativeElement;\n let cursorInsideWrapper = false;\n let tabbing = false;\n this.ngZone.runOutsideAngular(() => {\n // focusIn and focusOut are relative to the host element\n this.subscriptions.add(this.renderer.listen(hostElement, 'focusin', () => {\n if (!this.isFocused) {\n this.ngZone.run(() => {\n this.onFocus.emit();\n this.isFocused = true;\n });\n }\n }));\n this.subscriptions.add(this.renderer.listen(hostElement, 'focusout', (args) => {\n if (!this.isFocused) {\n return;\n }\n if (tabbing) {\n const closestTextbox = closest$1(args.relatedTarget, (element) => element === this.hostElement.nativeElement);\n if (!closestTextbox) {\n this.handleBlur();\n }\n tabbing = false;\n }\n else {\n if (!cursorInsideWrapper) {\n this.handleBlur();\n }\n }\n }));\n this.subscriptions.add(this.renderer.listen(hostElement, 'mouseenter', () => {\n cursorInsideWrapper = true;\n }));\n this.subscriptions.add(this.renderer.listen(hostElement, 'mouseleave', () => {\n cursorInsideWrapper = false;\n }));\n this.subscriptions.add(this.renderer.listen(hostElement, 'keydown', (args) => {\n if (args.keyCode === Keys.Tab) {\n tabbing = true;\n }\n else {\n tabbing = false;\n }\n }));\n this.handleFlow();\n });\n const stylingInputs = ['size', 'rounded', 'fillMode'];\n stylingInputs.forEach(input => {\n this.handleClasses(this[input], input);\n });\n }\n ngOnInit() {\n this.control = this.injector.get(NgControl, null);\n if (isDocumentAvailable() && this.resizable === 'auto') {\n this.resizeSubscription = fromEvent(window, 'resize')\n .pipe((debounceTime(50)))\n .subscribe(() => this.resize());\n }\n if (this.hostElement) {\n this.renderer.removeAttribute(this.hostElement.nativeElement, \"tabindex\");\n }\n this.subscriptions = this.localizationService.changes.subscribe(({ rtl }) => {\n this.direction = rtl ? 'rtl' : 'ltr';\n });\n }\n ngOnChanges(changes) {\n const hostElement = this.hostElement.nativeElement;\n const element = this.input.nativeElement;\n if (changes.flow) {\n this.handleFlow();\n }\n if (changes.resizable) {\n if (this.resizable === 'auto') {\n this.renderer.removeClass(element, '\\!k-overflow-y-auto');\n this.initialHeight = element.offsetHeight;\n }\n else {\n this.renderer.addClass(element, '\\!k-overflow-y-auto');\n element.style.height = `${this.initialHeight}px`;\n }\n }\n if (changes.cols) {\n if (isPresent(changes.cols.currentValue)) {\n this.renderer.setStyle(hostElement, 'width', 'auto');\n }\n else {\n this.renderer.removeStyle(hostElement, 'width');\n }\n }\n }\n ngAfterViewChecked() {\n this.resize();\n }\n /**\n * @hidden\n */\n writeValue(value) {\n this.value = value;\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 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 ngOnDestroy() {\n super.ngOnDestroy();\n if (this.resizeSubscription) {\n this.resizeSubscription.unsubscribe();\n }\n }\n /**\n * @hidden\n */\n get resizableClass() {\n return resizeClasses[this.resizable];\n }\n /**\n * Focuses the TextArea 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 if (!this.input) {\n return;\n }\n this.focusChangedProgrammatically = true;\n this.isFocused = true;\n this.input.nativeElement.focus();\n this.focusChangedProgrammatically = false;\n }\n /**\n * Blurs the TextArea component.\n */\n blur() {\n this.focusChangedProgrammatically = true;\n const isFocusedElement = this.hostElement.nativeElement.querySelector(':focus');\n if (isFocusedElement) {\n isFocusedElement.blur();\n }\n this.isFocused = false;\n this.focusChangedProgrammatically = false;\n }\n resize() {\n if (this.resizable !== 'auto') {\n return;\n }\n const element = this.input.nativeElement;\n this.renderer.setStyle(element, 'height', `${this.initialHeight}px`);\n const scrollHeight = element.scrollHeight;\n if (scrollHeight > this.initialHeight) {\n element.style.height = `${scrollHeight}px`;\n }\n }\n get isFocused() {\n return this._isFocused;\n }\n set isFocused(value) {\n if (this._isFocused !== value && this.hostElement) {\n const element = this.hostElement.nativeElement;\n if (value && !this.disabled) {\n this.renderer.addClass(element, FOCUSED$4);\n }\n else {\n this.renderer.removeClass(element, FOCUSED$4);\n }\n this._isFocused = value;\n }\n }\n handleBlur() {\n this.ngZone.run(() => {\n if (!this.focusChangedProgrammatically) {\n this.onBlur.emit();\n }\n this.isFocused = false;\n });\n }\n setSelection(start, end) {\n if (this.isFocused) {\n invokeElementMethod(this.input, 'setSelectionRange', start, end);\n }\n }\n selectAll() {\n if (this.value) {\n this.setSelection(0, this.value.length);\n }\n }\n handleClasses(value, input) {\n const elem = this.hostElement.nativeElement;\n const classes = getStylingClasses('input', input, this[input], value);\n if (classes.toRemove) {\n this.renderer.removeClass(elem, classes.toRemove);\n }\n if (classes.toAdd) {\n this.renderer.addClass(elem, classes.toAdd);\n }\n }\n handleFlow() {\n const isVertical = this.flow === 'vertical';\n const hostElement = this.hostElement.nativeElement;\n const element = this.input.nativeElement;\n const suffix = hostElement.children[1];\n this.renderer[isVertical ? 'addClass' : 'removeClass'](element, '\\!k-flex-none');\n if (suffix) {\n this.renderer[isVertical ? 'removeClass' : 'addClass'](suffix, '\\!k-align-items-start');\n }\n }\n};\nTextAreaComponent.ɵfac = function TextAreaComponent_Factory(t) { return new (t || TextAreaComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Injector), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nTextAreaComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: TextAreaComponent, selectors: [[\"kendo-textarea\"]], hostVars: 8, hostBindings: function TextAreaComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-textarea\", ctx.hostClasses)(\"k-input\", ctx.hostClasses)(\"!k-flex-col\", ctx.flowCol)(\"!k-flex-row\", ctx.flowRow);\n } }, inputs: { focusableId: \"focusableId\", flow: \"flow\", tabindex: \"tabindex\", resizable: \"resizable\", tabIndex: \"tabIndex\", size: \"size\", rounded: \"rounded\", fillMode: \"fillMode\", rows: \"rows\", cols: \"cols\", maxlength: \"maxlength\" }, outputs: { onFocus: \"focus\", onBlur: \"blur\", valueChange: \"valueChange\" }, exportAs: [\"kendoTextArea\"], features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n { provide: L10N_PREFIX, useValue: 'kendo.textarea' },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextAreaComponent_1),\n multi: true\n },\n { provide: KendoInput, useExisting: forwardRef(() => TextAreaComponent_1) }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature, ɵngcc0.ɵɵNgOnChangesFeature], ngContentSelectors: _c42, decls: 4, vars: 19, consts: [[1, \"k-input-inner\", 3, \"ngClass\", \"id\", \"value\", \"disabled\", \"readonly\", \"kendoEventsOutsideAngular\"], [\"input\", \"\"]], template: function TextAreaComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef(_c41);\n ɵngcc0.ɵɵelementStart(0, \"textarea\", 0, 1);\n ɵngcc0.ɵɵtext(2, \" \");\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵprojection(3);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx.resizableClass)(\"id\", ctx.focusableId)(\"value\", ctx.value)(\"disabled\", ctx.disabled)(\"readonly\", ctx.readonly)(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction3(15, _c40, ctx.handleInputFocus, ctx.handleInputBlur, ctx.handleInput));\n ɵngcc0.ɵɵattribute(\"aria-multiline\", true)(\"aria-disabled\", ctx.disabled ? true : undefined)(\"aria-readonly\", ctx.readonly ? true : undefined)(\"placeholder\", ctx.placeholder)(\"rows\", ctx.rows)(\"cols\", ctx.cols)(\"tabindex\", ctx.tabIndex)(\"title\", ctx.title)(\"maxlength\", ctx.maxlength);\n } }, directives: [ɵngcc3.NgClass, ɵngcc2.EventsOutsideAngularDirective], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TextAreaComponent.prototype, \"focusableId\", void 0);\n__decorate([\n HostBinding('class.k-textarea'),\n HostBinding('class.k-input'),\n __metadata(\"design:type\", Boolean)\n], TextAreaComponent.prototype, \"hostClasses\", void 0);\n__decorate([\n HostBinding('class.\\!k-flex-col'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], TextAreaComponent.prototype, \"flowCol\", null);\n__decorate([\n HostBinding('class.\\!k-flex-row'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], TextAreaComponent.prototype, \"flowRow\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TextAreaComponent.prototype, \"flow\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], TextAreaComponent.prototype, \"rows\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], TextAreaComponent.prototype, \"cols\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], TextAreaComponent.prototype, \"maxlength\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], TextAreaComponent.prototype, \"tabindex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], TextAreaComponent.prototype, \"tabIndex\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TextAreaComponent.prototype, \"resizable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], TextAreaComponent.prototype, \"size\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], TextAreaComponent.prototype, \"rounded\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], TextAreaComponent.prototype, \"fillMode\", null);\n__decorate([\n Output('focus'),\n __metadata(\"design:type\", EventEmitter)\n], TextAreaComponent.prototype, \"onFocus\", void 0);\n__decorate([\n Output('blur'),\n __metadata(\"design:type\", EventEmitter)\n], TextAreaComponent.prototype, \"onBlur\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TextAreaComponent.prototype, \"valueChange\", void 0);\nTextAreaComponent = TextAreaComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService,\n NgZone,\n ChangeDetectorRef,\n Renderer2,\n Injector,\n ElementRef])\n], TextAreaComponent);\n\n/**\n * Specifies the adornments in the suffix container ([see example]({% slug textarea_adornments %})).\n * ```ts-no-run\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * `\n * })\n * class AppComponent {}\n * ```\n */\nlet TextAreaSuffixComponent = class TextAreaSuffixComponent {\n /**\n * Specifies the adornments in the suffix container ([see example]({% slug textarea_adornments %})).\n * ```ts-no-run\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * `\n * })\n * class AppComponent {}\n * ```\n */\n constructor() {\n this.hostClass = true;\n }\n};\nTextAreaSuffixComponent.ɵfac = function TextAreaSuffixComponent_Factory(t) { return new (t || TextAreaSuffixComponent)(); };\nTextAreaSuffixComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: TextAreaSuffixComponent, selectors: [[\"kendo-textarea-suffix\"]], hostVars: 2, hostBindings: function TextAreaSuffixComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-input-suffix\", ctx.hostClass);\n } }, exportAs: [\"kendoTextAreaSuffix\"], ngContentSelectors: _c43, decls: 1, vars: 0, template: function TextAreaSuffixComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵprojection(0);\n } }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-input-suffix'),\n __metadata(\"design:type\", Boolean)\n], TextAreaSuffixComponent.prototype, \"hostClass\", void 0);\n\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the TextArea component.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the TextArea module\n * import { TextAreaModule } 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, TextAreaModule], // import TextArea module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nlet TextAreaModule = class TextAreaModule {\n};\nTextAreaModule.ɵfac = function TextAreaModule_Factory(t) { return new (t || TextAreaModule)(); };\nTextAreaModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: TextAreaModule });\nTextAreaModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule, EventsModule, SharedModule], EventsModule] });\n\n/**\n * @hidden\n */\nlet ColorPickerLocalizationService = class ColorPickerLocalizationService extends LocalizationService {\n constructor(prefix, messageService, _rtl) {\n super(prefix, messageService, _rtl);\n }\n};\nColorPickerLocalizationService.ɵfac = function ColorPickerLocalizationService_Factory(t) { return new (t || ColorPickerLocalizationService)(ɵngcc0.ɵɵinject(L10N_PREFIX), ɵngcc0.ɵɵinject(ɵngcc1.MessageService, 8), ɵngcc0.ɵɵinject(RTL, 8)); };\nColorPickerLocalizationService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ColorPickerLocalizationService, factory: function (t) { return ColorPickerLocalizationService.ɵfac(t); } });\nColorPickerLocalizationService = __decorate([\n __param(0, Inject(L10N_PREFIX)),\n __param(1, Optional()),\n __param(2, Optional()), __param(2, Inject(RTL)),\n __metadata(\"design:paramtypes\", [String, MessageService, Boolean])\n], ColorPickerLocalizationService);\n\n/**\n * @hidden\n */\nlet FlatColorPickerLocalizationService = class FlatColorPickerLocalizationService extends LocalizationService {\n constructor(prefix, messageService, _rtl, colorPickerLocalization) {\n super(prefix, messageService, _rtl);\n this.colorPickerLocalization = colorPickerLocalization;\n }\n get(shortKey) {\n if (this.colorPickerLocalization) {\n return this.colorPickerLocalization.get(shortKey);\n }\n return super.get(shortKey);\n }\n};\nFlatColorPickerLocalizationService.ɵfac = function FlatColorPickerLocalizationService_Factory(t) { return new (t || FlatColorPickerLocalizationService)(ɵngcc0.ɵɵinject(L10N_PREFIX), ɵngcc0.ɵɵinject(ɵngcc1.MessageService, 8), ɵngcc0.ɵɵinject(RTL, 8), ɵngcc0.ɵɵinject(ColorPickerLocalizationService, 8)); };\nFlatColorPickerLocalizationService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: FlatColorPickerLocalizationService, factory: function (t) { return FlatColorPickerLocalizationService.ɵfac(t); } });\nFlatColorPickerLocalizationService = __decorate([\n __param(0, Inject(L10N_PREFIX)),\n __param(1, Optional()),\n __param(2, Optional()), __param(2, Inject(RTL)),\n __param(3, Optional()), __param(3, Inject(ColorPickerLocalizationService)),\n __metadata(\"design:paramtypes\", [String, MessageService, Boolean, ColorPickerLocalizationService])\n], FlatColorPickerLocalizationService);\n\n/**\n * @hidden\n */\nconst DEFAULT_OUTPUT_FORMAT = 'rgba';\n/**\n * @hidden\n */\nconst DEFAULT_GRADIENT_BACKGROUND_COLOR = 'rgba(255, 0, 0, 1)';\n/**\n * @hidden\n */\nconst DRAGHANDLE_MOVE_SPEED = 5;\n/**\n * @hidden\n */\nconst AAA_RATIO = 7.0;\n/**\n * @hidden\n */\nconst AA_RATIO = 4.5;\n/**\n * @hidden\n */\nconst DEFAULT_PRESET = 'office';\n/**\n * @hidden\n */\nconst DEFAULT_ACCESSIBLE_PRESET = 'accessible';\n/**\n * @hidden\n */\nconst STEP_COUNT = 16;\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\n/**\n * @hidden\n */\nlet FlatColorPickerService = class FlatColorPickerService {\n getPaletteSettings(settings, format) {\n const defaultPreset = (format !== 'name') ? DEFAULT_PRESET : DEFAULT_ACCESSIBLE_PRESET;\n const settingsPalette = settings.palette;\n const presetColumns = typeof settingsPalette === 'string' && PALETTEPRESETS[settingsPalette] ?\n PALETTEPRESETS[settingsPalette].columns :\n undefined;\n return {\n palette: settingsPalette || defaultPreset,\n tileSize: settings.tileSize || 24,\n columns: settings.columns || presetColumns || 10\n };\n }\n paletteTileLayout(tileSize) {\n if (typeof tileSize === 'number') {\n return { width: tileSize, height: tileSize };\n }\n return {\n width: tileSize.width ? tileSize.width : tileSize.height,\n height: tileSize.height ? tileSize.height : tileSize.width\n };\n }\n};\nFlatColorPickerService.ɵfac = function FlatColorPickerService_Factory(t) { return new (t || FlatColorPickerService)(); };\nFlatColorPickerService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: FlatColorPickerService, factory: function (t) { return FlatColorPickerService.ɵfac(t); } });\n\n/**\n * Arguments for the `cancel` event of the ColorPicker and FlatColorPicker components.\n */\nclass ColorPickerCancelEvent extends PreventableEvent {\n constructor(originalEvent) {\n super();\n this.originalEvent = originalEvent;\n }\n}\n\n/**\n * Arguments for the `close` event of the ColorPicker component.\n */\nclass ColorPickerCloseEvent extends PreventableEvent {\n}\n\n/**\n * Arguments for the `open` event of the ColorPicker component.\n */\nclass ColorPickerOpenEvent extends PreventableEvent {\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-no-run\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, opacityEnabled = false, 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 const parsedColorResult = format === 'hex' ? getHexValue(parsedColor, opacityEnabled) : parsedColor.toCssRgba();\n return parsedColorResult;\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, format = 'rgba', opacityEnabled = false) => {\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 const color = Color.fromHSV(hue, saturation, value, alpha);\n return format === 'hex' ? getHexValue(color, opacityEnabled) : color.toCssRgba();\n};\n/**\n * @hidden\n *\n * Returns the HEX value.\n */\nconst getHexValue = (color, opacity) => {\n return opacity && color.a < 1 ? color.toCss({ alpha: true }) : color.toCss();\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 should be set to 'hex' or 'rgba' `);\n }\n return key;\n}\n/**\n * @hidden\n *\n * Returns the RGB object representation of the color based on the background color.\n */\nconst getRGBFromRGBA = (foregroundColor, backgroundColor) => {\n const r1 = fitIntoBounds(foregroundColor.r, 0, 255);\n const g1 = fitIntoBounds(foregroundColor.g, 0, 255);\n const b1 = fitIntoBounds(foregroundColor.b, 0, 255);\n const a1 = fitIntoBounds(foregroundColor.a, 0, 1);\n const r2 = fitIntoBounds(backgroundColor.r, 0, 255);\n const g2 = fitIntoBounds(backgroundColor.g, 0, 255);\n const b2 = fitIntoBounds(backgroundColor.b, 0, 255);\n return {\n r: Math.round(((1 - a1) * r2) + (a1 * r1)),\n g: Math.round(((1 - a1) * g2) + (a1 * g1)),\n b: Math.round(((1 - a1) * b2) + (a1 * b1))\n };\n};\n/**\n * @hidden\n *\n * Returns the relative luminance.\n */\nconst getLuminance = (rgb) => {\n let a = [rgb.r, rgb.g, rgb.b].map(function (v) {\n v /= 255;\n return v <= 0.03928\n ? v / 12.92\n : Math.pow((v + 0.055) / 1.055, 2.4);\n });\n return a[0] * 0.2126 + a[1] * 0.7152 + a[2] * 0.0722;\n};\n/**\n * @hidden\n *\n * Returns the color contrast.\n */\nconst getContrast = (luminance1, luminance2) => {\n const brightest = Math.max(luminance1, luminance2);\n const darkest = Math.min(luminance1, luminance2);\n return (brightest + 0.05)\n / (darkest + 0.05);\n};\n/**\n * @hidden\n *\n * Returns the color contrast from two RGBA colors.\n */\nconst getContrastFromTwoRGBAs = (a, b) => {\n return getContrast(getLuminance(getRGBFromRGBA(a, b)), getLuminance(getRGBFromRGBA(b, { r: 0, g: 0, b: 0, a: 1 })));\n};\n\n/**\n * @hidden\n */\nconst bezierCommand = (controlPointCalc) => (point, i, a) => {\n // start control point\n const [cpsX, cpsY] = controlPointCalc(a[i - 1], a[i - 2], point);\n // end control point\n const [cpeX, cpeY] = controlPointCalc(point, a[i - 1], a[i + 1], true);\n return `C ${cpsX},${cpsY} ${cpeX},${cpeY} ${point[0]},${point[1]}`;\n};\n/**\n * @hidden\n */\nconst controlPoint = (lineCalc) => (current, previous, next, reverse) => {\n // when 'current' is the first or last point of the array\n // 'previous' and 'next' are undefined\n // replace with 'current'\n const p = previous || current;\n const n = next || current;\n const smooth = 0.1;\n // properties of the line between previous and next\n const l = lineCalc(p, n);\n // If is end-control-point, add PI to the angle to go backward\n const angle = l.angle + (reverse ? Math.PI : 0);\n const length = l.length * smooth;\n // The control point position is relative to the current point\n const x = current[0] + Math.cos(angle) * length;\n const y = current[1] + Math.sin(angle) * length;\n return [x, y];\n};\n/**\n * @hidden\n */\nconst line = (pointA, pointB) => {\n const lengthX = pointB[0] - pointA[0];\n const lengthY = pointB[1] - pointA[1];\n return {\n length: Math.sqrt(Math.pow(lengthX, 2) + Math.pow(lengthY, 2)),\n angle: Math.atan2(lengthY, lengthX)\n };\n};\n/**\n * @hidden\n *\n * Render the svg element.\n *\n * @param points (array) Represents the points coordinates as an array of tuples.\n * @param command (function) The command that is used (bezierCommand, lineCommand).\n * @param point (array) [x,y] Represents the current point coordinates.\n * @param i (integer) Represents the index of 'point' in the array 'a'.\n * @param a (array) Represents the complete array of points coordinates.\n * @output (string) a svg path command.\n * @output (string) a Svg element\n */\nconst svgPath = (points, command) => {\n if (points.length === 0) {\n return '';\n }\n // build the d attributes by looping over the points\n const d = points.reduce((acc, point, i, a) => i === 0 ?\n // if first point\n `M ${point[0]},${point[1]}` :\n // else\n `${acc} ${command(point, i, a)}`, '');\n return d;\n};\n\n/**\n * @hidden\n */\nlet ColorGradientLocalizationService = class ColorGradientLocalizationService extends LocalizationService {\n constructor(prefix, messageService, _rtl, flatColorPickerLocalization) {\n super(prefix, messageService, _rtl);\n this.flatColorPickerLocalization = flatColorPickerLocalization;\n }\n get(shortKey) {\n if (this.flatColorPickerLocalization) {\n return this.flatColorPickerLocalization.get(shortKey);\n }\n return super.get(shortKey);\n }\n};\nColorGradientLocalizationService.ɵfac = function ColorGradientLocalizationService_Factory(t) { return new (t || ColorGradientLocalizationService)(ɵngcc0.ɵɵinject(L10N_PREFIX), ɵngcc0.ɵɵinject(ɵngcc1.MessageService, 8), ɵngcc0.ɵɵinject(RTL, 8), ɵngcc0.ɵɵinject(FlatColorPickerLocalizationService, 8)); };\nColorGradientLocalizationService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ColorGradientLocalizationService, factory: function (t) { return ColorGradientLocalizationService.ɵfac(t); } });\nColorGradientLocalizationService = __decorate([\n __param(0, Inject(L10N_PREFIX)),\n __param(1, Optional()),\n __param(2, Optional()), __param(2, Inject(RTL)),\n __param(3, Optional()), __param(3, Inject(FlatColorPickerLocalizationService)),\n __metadata(\"design:paramtypes\", [String, MessageService, Boolean, FlatColorPickerLocalizationService])\n], ColorGradientLocalizationService);\n\n/**\n * @hidden\n */\nlet ColorInputComponent = class ColorInputComponent {\n constructor(host, renderer, localizationService) {\n this.host = host;\n this.renderer = renderer;\n this.localizationService = localizationService;\n /**\n * The id of the hex input.\n */\n this.focusableId = `k-${guid()}`;\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 this.subscriptions = new Subscription();\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 ngAfterViewInit() {\n this.initDomEvents();\n }\n ngOnDestroy() {\n if (this.subscriptions) {\n this.subscriptions.unsubscribe();\n }\n }\n ngOnChanges(changes) {\n if (isPresent(changes.value) && !this.isFocused) {\n this.hex = parseColor$1(this.value, 'hex', this.opacity);\n this.rgba = getRGBA(this.value);\n this.rgba.a = parseColor$1(this.value, 'rgba', this.opacity) ? this.rgba.a : 1;\n }\n }\n get formatButtonTitle() {\n return this.localizationService.get('formatButton');\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', this.opacity);\n this.valueChange.emit(color);\n }\n handleHexValueChange(hex) {\n this.hex = hex;\n const color = parseColor$1(hex, 'rgba', this.opacity);\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', this.opacity);\n }\n toggleFormatView() {\n this.formatView = this.formatView === 'hex' ? 'rgba' : 'hex';\n }\n initDomEvents() {\n if (!this.host) {\n return;\n }\n this.subscriptions.add(this.renderer.listen(this.toggleFormatButton.nativeElement, 'click', () => this.toggleFormatView()));\n }\n};\nColorInputComponent.ɵfac = function ColorInputComponent_Factory(t) { return new (t || ColorInputComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nColorInputComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColorInputComponent, selectors: [[\"kendo-colorinput\"]], viewQuery: function ColorInputComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c44, 5);\n ɵngcc0.ɵɵviewQuery(_c45, 5, ElementRef);\n ɵngcc0.ɵɵviewQuery(_c46, 5, ElementRef);\n ɵngcc0.ɵɵviewQuery(_c47, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.opacityInput = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.hexInput = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.blueInput = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.toggleFormatButton = _t.first);\n } }, hostVars: 4, hostBindings: function ColorInputComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-colorgradient-inputs\", ctx.colorInputClass)(\"k-hstack\", ctx.colorInputClass);\n } }, inputs: { focusableId: \"focusableId\", opacity: \"opacity\", disabled: \"disabled\", readonly: \"readonly\", value: \"value\", formatView: \"formatView\" }, outputs: { valueChange: \"valueChange\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], decls: 6, vars: 4, consts: [[1, \"k-vstack\"], [\"type\", \"button\", 1, \"k-colorgradient-toggle-mode\", \"k-button\", \"k-button-md\", \"k-button-flat\", \"k-button-flat-base\", \"k-icon-button\"], [\"toggleFormatButton\", \"\"], [1, \"k-button-icon\", \"k-icon\", \"k-i-arrows-kpi\"], [\"class\", \"k-vstack\", 4, \"ngIf\"], [4, \"ngIf\"], [1, \"k-input\", \"k-textbox\", \"k-input-solid\", \"k-input-md\", \"k-rounded-md\", \"k-hex-value\", 3, \"id\", \"disabled\", \"readonly\", \"value\", \"blur\", \"input\"], [\"hexInput\", \"\"], [1, \"k-colorgradient-input-label\", 3, \"for\"], [3, \"disabled\", \"readonly\", \"min\", \"max\", \"value\", \"autoCorrect\", \"spinners\", \"format\", \"decimals\", \"valueChange\", \"blur\"], [\"red\", \"\"], [\"green\", \"\"], [\"blue\", \"\"], [3, \"disabled\", \"readonly\", \"min\", \"max\", \"value\", \"autoCorrect\", \"spinners\", \"step\", \"format\", \"decimals\", \"valueChange\", \"blur\"], [\"opacityInput\", \"\", \"alpha\", \"\"]], template: function ColorInputComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 0)(1, \"button\", 1, 2);\n ɵngcc0.ɵɵelement(3, \"span\", 3);\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵtemplate(4, ColorInputComponent_div_4_Template, 5, 5, \"div\", 4);\n ɵngcc0.ɵɵtemplate(5, ColorInputComponent_ng_container_5_Template, 17, 31, \"ng-container\", 5);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx.formatButtonTitle)(\"title\", ctx.formatButtonTitle);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.formatView === \"hex\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.formatView === \"rgba\");\n } }, directives: [ɵngcc3.NgIf, NumericTextBoxComponent], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorInputComponent.prototype, \"focusableId\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorInputComponent.prototype, \"formatView\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorInputComponent.prototype, \"value\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColorInputComponent.prototype, \"opacity\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColorInputComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColorInputComponent.prototype, \"readonly\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ColorInputComponent.prototype, \"valueChange\", void 0);\n__decorate([\n HostBinding('class.k-colorgradient-inputs'),\n HostBinding('class.k-hstack'),\n __metadata(\"design:type\", Boolean)\n], ColorInputComponent.prototype, \"colorInputClass\", void 0);\n__decorate([\n ViewChild('opacityInput', { static: false }),\n __metadata(\"design:type\", NumericTextBoxComponent)\n], ColorInputComponent.prototype, \"opacityInput\", void 0);\n__decorate([\n ViewChild('hexInput', { read: ElementRef, static: false }),\n __metadata(\"design:type\", ElementRef)\n], ColorInputComponent.prototype, \"hexInput\", void 0);\n__decorate([\n ViewChild('blueInput', { read: ElementRef, static: false }),\n __metadata(\"design:type\", ElementRef)\n], ColorInputComponent.prototype, \"blueInput\", void 0);\n__decorate([\n ViewChild('toggleFormatButton', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], ColorInputComponent.prototype, \"toggleFormatButton\", void 0);\nColorInputComponent = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n Renderer2,\n LocalizationService])\n], ColorInputComponent);\n\nvar ColorGradientComponent_1;\nlet serial = 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 */\nlet ColorGradientComponent = ColorGradientComponent_1 = class 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.localizationService = localizationService;\n this.hostClasses = true;\n /**\n * @hidden\n */\n this.id = `k-colorgradient-${serial++}`;\n /**\n * Defines whether the alpha slider will be displayed.\n *\n * @default true\n */\n this.opacity = true;\n /**\n * Sets the disabled state of the ColorGradient.\n *\n * @default false\n */\n this.disabled = false;\n /**\n * Sets the read-only state of the ColorGradient.\n *\n * @default false\n */\n this.readonly = false;\n /**\n * Specifies whether the ColorGradient should display a 'Clear color' button.\n *\n * @default false\n */\n this.clearButton = false;\n /**\n * Determines the delay time (in milliseconds) before the value is changed on handle drag. A value of 0 indicates no delay.\n *\n * @default 0\n */\n this.delay = 0;\n /**\n * Specifies the output format of the ColorGradientComponent.\n * The input value may be in a different format, but 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 /**\n * Fires each time the user selects a new color.\n */\n this.valueChange = new EventEmitter();\n /**\n * @hidden\n */\n this.backgroundColor = DEFAULT_GRADIENT_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 = new BehaviorSubject({});\n this._tabindex = 0;\n this.listeners = [];\n this.hueSliderTouched = false;\n this.alphaSliderTouched = false;\n this.updateValues = new Subject();\n this.notifyNgChanged = () => { };\n this.notifyNgTouched = () => { };\n validatePackage(packageMetadata);\n this.dynamicRTLSubscription = localizationService.changes.subscribe(({ rtl }) => {\n this.direction = rtl ? 'rtl' : 'ltr';\n });\n }\n get readonlyAttribute() {\n return this.readonly;\n }\n get disabledClass() {\n return this.disabled;\n }\n get gradientId() {\n return this.id;\n }\n get hostTabindex() {\n return this.tabindex;\n }\n /**\n * Specifies the value of the initially selected color.\n */\n set value(value) {\n this._value = parseColor$1(value, this.format, this.opacity);\n }\n get value() {\n return this._value;\n }\n /**\n * Enables the color contrast tool. Accepts the background color that will be compared to the selected value.\n * The tool will calculate the contrast ratio between the two colors.\n */\n set contrastTool(value) {\n this._contrastTool = parseColor$1(value, this.format, this.opacity);\n }\n get contrastTool() {\n return this._contrastTool;\n }\n /**\n * Specifies the [tabindex](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.\n *\n * @default 0\n */\n set tabindex(value) {\n if (isPresent(value)) {\n const tabindex = Number(value);\n this._tabindex = !isNaN(tabindex) ? tabindex : 0;\n }\n else {\n // Allows removal of the tabindex attribute\n this._tabindex = value;\n }\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.value) && isPresent(this.hsva.value.a))) {\n return;\n }\n return this.hsva.value.a * 100;\n }\n get gradientRect() {\n return this.gradientWrapper.nativeElement.getBoundingClientRect();\n }\n /**\n * @hidden\n */\n get contrastToolVisible() {\n return this.contrastTool && this.contrastTool.length > 0;\n }\n ngAfterViewInit() {\n this.updateUI();\n this.cdr.detectChanges();\n this.addEventListeners();\n this.subscribeChanges();\n }\n ngOnChanges(changes) {\n if (isChanged('value', changes) && !this.isFocused) {\n this.updateUI();\n }\n if (isChanged('delay', changes)) {\n this.unsubscribeChanges();\n this.subscribeChanges();\n }\n }\n ngOnDestroy() {\n this.listeners.forEach(removeListener => removeListener());\n if (this.dynamicRTLSubscription) {\n this.dynamicRTLSubscription.unsubscribe();\n }\n this.unsubscribeChanges();\n }\n /**\n * Focuses the component.\n */\n focus() {\n if (this.disabled) {\n return;\n }\n this.gradientDragHandle.nativeElement.focus();\n }\n /**\n * @hidden\n */\n reset() {\n this.handleValueChange(undefined);\n this.updateUI();\n this.host.nativeElement.focus();\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 this.handleValueChange(getColorFromHSV(this.hsva.value, this.format, this.opacity));\n }\n /**\n * @hidden\n */\n onKeyboardAction(args) {\n if (this.disabled || this.readonly) {\n return;\n }\n if (args.key && args.key.indexOf('Arrow') !== -1) {\n args.preventDefault();\n const dragHandleElement = this.gradientDragHandle.nativeElement;\n this.renderer.addClass(this.gradientWrapper.nativeElement, 'k-dragging');\n let keyboardMoveX = 0;\n let keyboardMoveY = 0;\n switch (args.key) {\n case 'ArrowRight':\n keyboardMoveX = DRAGHANDLE_MOVE_SPEED;\n break;\n case 'ArrowLeft':\n keyboardMoveX = -DRAGHANDLE_MOVE_SPEED;\n break;\n case 'ArrowUp':\n keyboardMoveY = -DRAGHANDLE_MOVE_SPEED;\n break;\n case 'ArrowDown':\n keyboardMoveY = DRAGHANDLE_MOVE_SPEED;\n break;\n default: break;\n }\n const newY = parseInt(dragHandleElement.style.top, 10) + keyboardMoveY;\n const newX = parseInt(dragHandleElement.style.left, 10) + keyboardMoveX;\n this.renderer.setStyle(dragHandleElement, 'top', `${newY}px`);\n this.renderer.setStyle(dragHandleElement, 'left', `${newX}px`);\n this.ngZone.run(() => this.moveDragHandle(newX, newY));\n }\n }\n /**\n * @hidden\n */\n changePosition(position) {\n if (this.disabled || this.readonly) {\n return;\n }\n this.gradientDragHandle.nativeElement.focus();\n const gradientRect = this.gradientRect;\n const newX = position.clientX - gradientRect.left;\n const newY = position.clientY - gradientRect.top;\n this.ngZone.run(() => this.moveDragHandle(newX, newY));\n }\n /**\n * @hidden\n */\n handleHueSliderChange(hue) {\n const hsva = this.hsva.value;\n hsva.h = hue;\n this.hsva.next(hsva);\n this.handleValueChange(getColorFromHSV(this.hsva.value, this.format, this.opacity));\n this.backgroundColor = getColorFromHue(hue);\n this.setBackgroundColor(this.backgroundColor);\n this.setAlphaSliderBackground(this.backgroundColor);\n this.hueSliderTouched = true;\n }\n /**\n * @hidden\n */\n handleAlphaSliderChange(alpha) {\n const hsva = this.hsva.value;\n hsva.a = alpha / 100;\n this.hsva.next(hsva);\n this.handleValueChange(getColorFromHSV(this.hsva.value, this.format, this.opacity));\n this.alphaSliderTouched = true;\n }\n /**\n * @hidden\n */\n handleInputsValueChange(color) {\n const parsed = parseColor$1(color, this.format, this.opacity);\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.cdr.markForCheck();\n this.disabled = isDisabled;\n }\n /**\n * @hidden\n */\n get colorGradientHandleTitle() {\n return this.localizationService.get('colorGradientHandle');\n }\n /**\n * @hidden\n */\n get colorGradientHandleAriaLabel() {\n const parsed = parseColor$1(this.value, this.format, this.opacity);\n return `${this.value ? parsed : this.localizationService.get('colorGradientHandle')}`;\n }\n /**\n * @hidden\n */\n get hueSliderTitle() {\n return this.localizationService.get('hueSliderHandle');\n }\n /**\n * @hidden\n */\n get opacitySliderTitle() {\n return this.localizationService.get('opacitySliderHandle');\n }\n /**\n * @hidden\n */\n get clearButtonTitle() {\n return this.localizationService.get('clearButton');\n }\n /**\n * @hidden\n * Used by the FloatingLabel to determine if the component is empty.\n */\n isEmpty() {\n return false;\n }\n moveDragHandle(positionX, positionY) {\n const gradientRect = this.gradientRect;\n const gradientRectWidth = gradientRect.width;\n const gradientRectHeight = gradientRect.height;\n const top = fitIntoBounds(positionY, 0, gradientRectHeight);\n const left = fitIntoBounds(positionX, 0, gradientRectWidth);\n this.setDragHandleElementPosition(top, left);\n const hsva = this.hsva.value;\n hsva.s = left / gradientRectWidth;\n hsva.v = 1 - top / gradientRectHeight;\n this.hsva.next(hsva);\n this.updateValues.next(getColorFromHSV(this.hsva.value, this.format, this.opacity));\n this.setAlphaSliderBackground(getColorFromHSV(Object.assign({}, this.hsva.value, { a: 1 }), this.format, this.opacity));\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 this.setHostElementAriaLabel();\n }\n setDragHandleElementPosition(top, left) {\n const dragHandle = this.gradientDragHandle.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 setHostElementAriaLabel() {\n const parsed = parseColor$1(this.value, this.format, this.opacity);\n this.renderer.setAttribute(this.host.nativeElement, 'aria-label', `${this.value ? parsed : this.localizationService.get('colorGradientNoColor')}`);\n }\n setBackgroundColor(color) {\n this.renderer.setStyle(this.hsvRectangle.nativeElement, 'background', color);\n }\n updateUI() {\n if (!isDocumentAvailable()) {\n return;\n }\n if (this.hueSliderTouched || this.alphaSliderTouched) {\n this.hueSliderTouched = false;\n this.alphaSliderTouched = false;\n return;\n }\n this.hsva.next(this.value ? getHSV(this.value) : { h: 0, s: 0, v: 1, a: 1 });\n const gradientRect = this.gradientRect;\n const top = (1 - this.hsva.value.v) * gradientRect.height;\n const left = this.hsva.value.s * gradientRect.width;\n this.setDragHandleElementPosition(top, left);\n this.backgroundColor = getColorFromHue(this.hsva.value.h);\n this.setBackgroundColor(this.backgroundColor);\n this.setAlphaSliderBackground(this.backgroundColor);\n this.setHostElementAriaLabel();\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 const keydownListener = this.renderer.listen(this.gradientDragHandle.nativeElement, 'keydown', (event) => {\n this.onKeyboardAction(event);\n });\n const keyupListener = this.renderer.listen(this.gradientDragHandle.nativeElement, 'keyup', () => {\n this.renderer.removeClass(this.gradientWrapper.nativeElement, 'k-dragging');\n if (!this.readonly && !this.disabled) {\n this.ngZone.run(() => this.handleValueChange(getColorFromHSV(this.hsva.value, this.format, this.opacity)));\n }\n });\n const dragHandleFocusInListener = this.renderer.listen(this.gradientDragHandle.nativeElement, 'focusin', () => {\n this.renderer.addClass(this.gradientDragHandle.nativeElement, 'k-state-focus');\n });\n const dragHandleFocusOutListener = this.renderer.listen(this.gradientDragHandle.nativeElement, 'focusout', () => {\n this.renderer.removeClass(this.gradientDragHandle.nativeElement, 'k-state-focus');\n });\n this.listeners.push(focusOutListener, keydownListener, keyupListener, dragHandleFocusInListener, dragHandleFocusOutListener);\n });\n }\n subscribeChanges() {\n this.changeRequestsSubscription = this.updateValues.pipe(throttleTime(this.delay)).subscribe(value => {\n this.handleValueChange(value);\n });\n }\n unsubscribeChanges() {\n if (this.changeRequestsSubscription) {\n this.changeRequestsSubscription.unsubscribe();\n }\n }\n};\nColorGradientComponent.ɵfac = function ColorGradientComponent_Factory(t) { return new (t || ColorGradientComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nColorGradientComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColorGradientComponent, selectors: [[\"kendo-colorgradient\"]], viewQuery: function ColorGradientComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c48, 5, ElementRef);\n ɵngcc0.ɵɵviewQuery(_c49, 5);\n ɵngcc0.ɵɵviewQuery(_c50, 5);\n ɵngcc0.ɵɵviewQuery(_c51, 5);\n ɵngcc0.ɵɵviewQuery(_c52, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.gradientDragHandle = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.inputs = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.alphaSlider = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.gradientWrapper = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.hsvRectangle = _t.first);\n } }, hostVars: 8, hostBindings: function ColorGradientComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"dir\", ctx.direction)(\"aria-readonly\", ctx.readonlyAttribute)(\"id\", ctx.gradientId)(\"tabindex\", ctx.hostTabindex);\n ɵngcc0.ɵɵclassProp(\"k-colorgradient\", ctx.hostClasses)(\"k-state-disabled\", ctx.disabledClass);\n } }, inputs: { id: \"id\", opacity: \"opacity\", disabled: \"disabled\", readonly: \"readonly\", clearButton: \"clearButton\", delay: \"delay\", format: \"format\", value: \"value\", contrastTool: \"contrastTool\", tabindex: \"tabindex\" }, outputs: { valueChange: \"valueChange\" }, exportAs: [\"kendoColorGradient\"], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ColorGradientComponent_1)\n },\n {\n provide: KendoInput,\n useExisting: forwardRef(() => ColorGradientComponent_1)\n },\n ColorGradientLocalizationService,\n {\n provide: LocalizationService,\n useExisting: ColorGradientLocalizationService\n },\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.colorgradient'\n }\n ]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 16, vars: 28, consts: function () { let i18n_53; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The aria-label applied to the ColorGradient component when the value is empty.\n * @meaning kendo.colorgradient.colorGradientNoColor\n */\n const MSG_EXTERNAL_3796155240301823948$$DIST_FESM2015_INDEX_JS_54 = goog.getMsg(\"Colorgradient no color chosen\");\n i18n_53 = MSG_EXTERNAL_3796155240301823948$$DIST_FESM2015_INDEX_JS_54;\n }\n else {\n i18n_53 = $localize `:kendo.colorgradient.colorGradientNoColor|The aria-label applied to the ColorGradient component when the value is empty.␟136a6a537523c480df0e58c17cc6d4c2dda8e626␟3796155240301823948:Colorgradient no color chosen`;\n } let i18n_55; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title for the gradient color drag handle chooser.\n * @meaning kendo.colorgradient.colorGradientHandle\n */\n const MSG_EXTERNAL_8537406358423916512$$DIST_FESM2015_INDEX_JS_56 = goog.getMsg(\"Choose color\");\n i18n_55 = MSG_EXTERNAL_8537406358423916512$$DIST_FESM2015_INDEX_JS_56;\n }\n else {\n i18n_55 = $localize `:kendo.colorgradient.colorGradientHandle|The title for the gradient color drag handle chooser.␟462ab46551fd64dca63ba38254e46a52aeb05205␟8537406358423916512:Choose color`;\n } let i18n_57; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title for the clear button.\n * @meaning kendo.colorgradient.clearButton\n */\n const MSG_EXTERNAL_7605097752673642325$$DIST_FESM2015_INDEX_JS_58 = goog.getMsg(\"Clear value\");\n i18n_57 = MSG_EXTERNAL_7605097752673642325$$DIST_FESM2015_INDEX_JS_58;\n }\n else {\n i18n_57 = $localize `:kendo.colorgradient.clearButton|The title for the clear button.␟6dc40c4a4ff302d1fe29e7bf9eadf1440b4654cf␟7605097752673642325:Clear value`;\n } let i18n_59; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title for the hue slider handle.\n * @meaning kendo.colorgradient.hueSliderHandle\n */\n const MSG_EXTERNAL_8568799441668530127$$DIST_FESM2015_INDEX_JS_60 = goog.getMsg(\"Set hue\");\n i18n_59 = MSG_EXTERNAL_8568799441668530127$$DIST_FESM2015_INDEX_JS_60;\n }\n else {\n i18n_59 = $localize `:kendo.colorgradient.hueSliderHandle|The title for the hue slider handle.␟22a98afddf46223dce8a3e122f4fe84ca76488b9␟8568799441668530127:Set hue`;\n } let i18n_61; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title for the opacity slider handle.\n * @meaning kendo.colorgradient.opacitySliderHandle\n */\n const MSG_EXTERNAL_2665102430468067218$$DIST_FESM2015_INDEX_JS_62 = goog.getMsg(\"Set opacity\");\n i18n_61 = MSG_EXTERNAL_2665102430468067218$$DIST_FESM2015_INDEX_JS_62;\n }\n else {\n i18n_61 = $localize `:kendo.colorgradient.opacitySliderHandle|The title for the opacity slider handle.␟ad3087c7bf139a41bf6a7fc454f4e857492c9d22␟2665102430468067218:Set opacity`;\n } let i18n_63; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The pass message for the contrast tool.\n * @meaning kendo.colorgradient.passContrast\n */\n const MSG_EXTERNAL_200461871469242251$$DIST_FESM2015_INDEX_JS_64 = goog.getMsg(\"Pass\");\n i18n_63 = MSG_EXTERNAL_200461871469242251$$DIST_FESM2015_INDEX_JS_64;\n }\n else {\n i18n_63 = $localize `:kendo.colorgradient.passContrast|The pass message for the contrast tool.␟ec167f04d318f2b1f1edbca6318a74fddf436c76␟200461871469242251:Pass`;\n } let i18n_65; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The fail message for the contrast tool.\n * @meaning kendo.colorgradient.failContrast\n */\n const MSG_EXTERNAL_2780397365913372676$$DIST_FESM2015_INDEX_JS_66 = goog.getMsg(\"Fail\");\n i18n_65 = MSG_EXTERNAL_2780397365913372676$$DIST_FESM2015_INDEX_JS_66;\n }\n else {\n i18n_65 = $localize `:kendo.colorgradient.failContrast|The fail message for the contrast tool.␟79015428999551ebe50f69bb5a1ebd31de4c3bdf␟2780397365913372676:Fail`;\n } let i18n_67; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The contrast ratio message for the contrast tool.\n * @meaning kendo.colorgradient.contrastRatio\n */\n const MSG_EXTERNAL_713630549826115578$$DIST_FESM2015_INDEX_JS_68 = goog.getMsg(\"Contrast ratio\");\n i18n_67 = MSG_EXTERNAL_713630549826115578$$DIST_FESM2015_INDEX_JS_68;\n }\n else {\n i18n_67 = $localize `:kendo.colorgradient.contrastRatio|The contrast ratio message for the contrast tool.␟408650dd85473f406520edd1d60c8df0c475a8fa␟713630549826115578:Contrast ratio`;\n } let i18n_69; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The message for the input format toggle button.\n * @meaning kendo.colorgradient.formatButton\n */\n const MSG_EXTERNAL_4435805267169453054$$DIST_FESM2015_INDEX_JS_70 = goog.getMsg(\"Change color format\");\n i18n_69 = MSG_EXTERNAL_4435805267169453054$$DIST_FESM2015_INDEX_JS_70;\n }\n else {\n i18n_69 = $localize `:kendo.colorgradient.formatButton|The message for the input format toggle button.␟c4dcc7b94f17aace43f0ab2492e64d5dcc13a438␟4435805267169453054:Change color format`;\n } return [[\"kendoColorGradientLocalizedMessages\", \"\", \"colorGradientNoColor\", i18n_53, \"colorGradientHandle\", i18n_55, \"clearButton\", i18n_57, \"hueSliderHandle\", i18n_59, \"opacitySliderHandle\", i18n_61, \"passContrast\", i18n_63, \"failContrast\", i18n_65, \"contrastRatio\", i18n_67, \"formatButton\", i18n_69], [1, \"k-colorgradient-canvas\", \"k-hstack\"], [1, \"k-hsv-rectangle\"], [\"hsvRectangle\", \"\"], [\"kendoDraggable\", \"\", 1, \"k-hsv-gradient\", 3, \"click\", \"kendoPress\", \"kendoDrag\", \"kendoRelease\"], [\"gradientWrapper\", \"\"], [\"tabindex\", \"0\", 1, \"k-hsv-draghandle\", \"k-draghandle\"], [\"gradientDragHandle\", \"\"], [\"kendoColorContrastSvg\", \"\", \"class\", \"k-color-contrast-svg\", \"xmlns\", \"http://www.w3.org/2000/svg\", 3, \"wrapper\", \"hsva\", \"backgroundColor\", 4, \"ngIf\"], [\"class\", \"k-clear-color k-button k-button-md k-button-flat k-button-flat-base k-button-icon\", \"tabindex\", \"0\", 3, \"click\", \"keydown.enter\", \"keydown.space\", 4, \"ngIf\"], [1, \"k-hue-slider\", \"k-colorgradient-slider\", 3, \"ngClass\", \"dragHandleTitle\", \"disabled\", \"readonly\", \"showButtons\", \"tickPlacement\", \"vertical\", \"min\", \"max\", \"value\", \"smallStep\", \"largeStep\", \"valueChange\"], [\"class\", \"k-alpha-slider k-colorgradient-slider\", 3, \"ngClass\", \"dragHandleTitle\", \"disabled\", \"readonly\", \"showButtons\", \"tickPlacement\", \"vertical\", \"min\", \"max\", \"smallStep\", \"largeStep\", \"value\", \"valueChange\", 4, \"ngIf\"], [3, \"opacity\", \"formatView\", \"value\", \"disabled\", \"readonly\", \"valueChange\"], [\"inputs\", \"\"], [\"class\", \"k-colorgradient-color-contrast k-vbox\", \"kendoContrastTool\", \"\", 3, \"value\", \"ratio\", 4, \"ngIf\"], [\"kendoColorContrastSvg\", \"\", \"xmlns\", \"http://www.w3.org/2000/svg\", 1, \"k-color-contrast-svg\", 3, \"wrapper\", \"hsva\", \"backgroundColor\"], [\"tabindex\", \"0\", 1, \"k-clear-color\", \"k-button\", \"k-button-md\", \"k-button-flat\", \"k-button-flat-base\", \"k-button-icon\", 3, \"click\", \"keydown.enter\", \"keydown.space\"], [1, \"k-icon\", \"k-i-reset-color\"], [1, \"k-alpha-slider\", \"k-colorgradient-slider\", 3, \"ngClass\", \"dragHandleTitle\", \"disabled\", \"readonly\", \"showButtons\", \"tickPlacement\", \"vertical\", \"min\", \"max\", \"smallStep\", \"largeStep\", \"value\", \"valueChange\"], [\"alphaSlider\", \"\"], [\"kendoContrastTool\", \"\", 1, \"k-colorgradient-color-contrast\", \"k-vbox\", 3, \"value\", \"ratio\"]]; }, template: function ColorGradientComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 0);\n ɵngcc0.ɵɵelementStart(1, \"div\", 1)(2, \"div\", 2, 3)(4, \"div\", 4, 5);\n ɵngcc0.ɵɵlistener(\"click\", function ColorGradientComponent_Template_div_click_4_listener($event) { return ctx.changePosition($event); })(\"kendoPress\", function ColorGradientComponent_Template_div_kendoPress_4_listener($event) { return ctx.handleDragPress($event); })(\"kendoDrag\", function ColorGradientComponent_Template_div_kendoDrag_4_listener($event) { return ctx.onHandleDrag($event); })(\"kendoRelease\", function ColorGradientComponent_Template_div_kendoRelease_4_listener() { return ctx.onHandleRelease(); });\n ɵngcc0.ɵɵelement(6, \"div\", 6, 7);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(8, ColorGradientComponent__svg_svg_8_Template, 1, 3, \"svg\", 8);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(9, \"div\");\n ɵngcc0.ɵɵtemplate(10, ColorGradientComponent_span_10_Template, 2, 2, \"span\", 9);\n ɵngcc0.ɵɵelementStart(11, \"kendo-slider\", 10);\n ɵngcc0.ɵɵlistener(\"valueChange\", function ColorGradientComponent_Template_kendo_slider_valueChange_11_listener($event) { return ctx.handleHueSliderChange($event); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(12, ColorGradientComponent_kendo_slider_12_Template, 2, 14, \"kendo-slider\", 11);\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵelementStart(13, \"kendo-colorinput\", 12, 13);\n ɵngcc0.ɵɵlistener(\"valueChange\", function ColorGradientComponent_Template_kendo_colorinput_valueChange_13_listener($event) { return ctx.handleInputsValueChange($event); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(15, ColorGradientComponent_div_15_Template, 1, 2, \"div\", 14);\n } if (rf & 2) {\n const _r1 = ɵngcc0.ɵɵreference(5);\n ɵngcc0.ɵɵadvance(6);\n ɵngcc0.ɵɵattribute(\"title\", ctx.colorGradientHandleTitle)(\"aria-label\", ctx.colorGradientHandleAriaLabel);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.contrastToolVisible && _r1);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassMapInterpolate1(\"k-hsv-controls k-hstack \", ctx.clearButton ? \"k-sliders-wrap-clearable\" : \"\", \"\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.clearButton);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction1(26, _c71, ctx.clearButton))(\"dragHandleTitle\", ctx.hueSliderTitle)(\"disabled\", ctx.disabled)(\"readonly\", ctx.readonly)(\"showButtons\", false)(\"tickPlacement\", \"none\")(\"vertical\", true)(\"min\", 0)(\"max\", 360)(\"value\", ctx.hsva.value.h)(\"smallStep\", 5)(\"largeStep\", 10);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.opacity);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"opacity\", ctx.opacity)(\"formatView\", ctx.format)(\"value\", ctx.value)(\"disabled\", ctx.disabled)(\"readonly\", ctx.readonly);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.contrastToolVisible);\n } }, directives: function () { return [LocalizedColorPickerMessagesDirective, ɵngcc2.DraggableDirective, ɵngcc3.NgIf, ColorContrastSvgComponent, SliderComponent, ɵngcc3.NgClass, ColorInputComponent, ContrastComponent]; }, styles: [\".k-clear-color[_ngcontent-%COMP%] {\\n position: absolute;\\n top: 0;\\n left: 50%;\\n transform: translateX(-50%);\\n }\\n .k-colorgradient-slider.k-align-self-end[_ngcontent-%COMP%] {\\n height: 140px;\\n }\\n\\n .k-color-contrast-svg[_ngcontent-%COMP%] {\\n position: absolute;\\n overflow: visible;\\n pointer-events: none;\\n left: 0px;\\n top: 0px;\\n }\"] });\n__decorate([\n HostBinding('class.k-colorgradient'),\n __metadata(\"design:type\", Boolean)\n], ColorGradientComponent.prototype, \"hostClasses\", void 0);\n__decorate([\n HostBinding('attr.aria-readonly'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ColorGradientComponent.prototype, \"readonlyAttribute\", null);\n__decorate([\n HostBinding('class.k-state-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ColorGradientComponent.prototype, \"disabledClass\", null);\n__decorate([\n HostBinding('attr.id'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], ColorGradientComponent.prototype, \"gradientId\", null);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String)\n], ColorGradientComponent.prototype, \"direction\", void 0);\n__decorate([\n HostBinding('attr.tabindex'),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [])\n], ColorGradientComponent.prototype, \"hostTabindex\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorGradientComponent.prototype, \"id\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColorGradientComponent.prototype, \"opacity\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColorGradientComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColorGradientComponent.prototype, \"readonly\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColorGradientComponent.prototype, \"clearButton\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ColorGradientComponent.prototype, \"delay\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ColorGradientComponent.prototype, \"value\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ColorGradientComponent.prototype, \"contrastTool\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], ColorGradientComponent.prototype, \"tabindex\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorGradientComponent.prototype, \"format\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ColorGradientComponent.prototype, \"valueChange\", void 0);\n__decorate([\n ViewChild('gradientDragHandle', { read: ElementRef, static: false }),\n __metadata(\"design:type\", ElementRef)\n], ColorGradientComponent.prototype, \"gradientDragHandle\", void 0);\n__decorate([\n ViewChild('inputs', { static: false }),\n __metadata(\"design:type\", ColorInputComponent)\n], ColorGradientComponent.prototype, \"inputs\", void 0);\n__decorate([\n ViewChild('alphaSlider', { static: false }),\n __metadata(\"design:type\", SliderComponent)\n], ColorGradientComponent.prototype, \"alphaSlider\", void 0);\n__decorate([\n ViewChild('gradientWrapper', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], ColorGradientComponent.prototype, \"gradientWrapper\", void 0);\n__decorate([\n ViewChild('hsvRectangle', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], ColorGradientComponent.prototype, \"hsvRectangle\", void 0);\nColorGradientComponent = ColorGradientComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n NgZone,\n Renderer2,\n ChangeDetectorRef,\n LocalizationService])\n], ColorGradientComponent);\n\n/**\n * @hidden\n */\nlet ColorPaletteLocalizationService = class ColorPaletteLocalizationService extends LocalizationService {\n constructor(prefix, messageService, _rtl, flatColorPickerLocalization) {\n super(prefix, messageService, _rtl);\n this.flatColorPickerLocalization = flatColorPickerLocalization;\n }\n get(shortKey) {\n if (this.flatColorPickerLocalization) {\n return this.flatColorPickerLocalization.get(shortKey);\n }\n return super.get(shortKey);\n }\n};\nColorPaletteLocalizationService.ɵfac = function ColorPaletteLocalizationService_Factory(t) { return new (t || ColorPaletteLocalizationService)(ɵngcc0.ɵɵinject(L10N_PREFIX), ɵngcc0.ɵɵinject(ɵngcc1.MessageService, 8), ɵngcc0.ɵɵinject(RTL, 8), ɵngcc0.ɵɵinject(FlatColorPickerLocalizationService, 8)); };\nColorPaletteLocalizationService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ColorPaletteLocalizationService, factory: function (t) { return ColorPaletteLocalizationService.ɵfac(t); } });\nColorPaletteLocalizationService = __decorate([\n __param(0, Inject(L10N_PREFIX)),\n __param(1, Optional()),\n __param(2, Optional()), __param(2, Inject(RTL)),\n __param(3, Optional()), __param(3, Inject(FlatColorPickerLocalizationService)),\n __metadata(\"design:paramtypes\", [String, MessageService, Boolean, FlatColorPickerLocalizationService])\n], ColorPaletteLocalizationService);\n\n/**\n * @hidden\n */\nlet ColorPaletteService = class ColorPaletteService {\n /**\n * @hidden\n */\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.ɵfac = function ColorPaletteService_Factory(t) { return new (t || ColorPaletteService)(); };\nColorPaletteService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ColorPaletteService, factory: function (t) { return ColorPaletteService.ɵfac(t); } });\n\nvar ColorPaletteComponent_1;\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 */\nlet ColorPaletteComponent = ColorPaletteComponent_1 = class ColorPaletteComponent {\n constructor(host, service, cdr, renderer, localizationService, ngZone) {\n this.host = host;\n this.service = service;\n this.cdr = cdr;\n this.renderer = renderer;\n this.localizationService = localizationService;\n this.ngZone = ngZone;\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 * Sets the disabled state of the ColorPalette.\n */\n this.disabled = false;\n /**\n * Sets the read-only state of the ColorPalette.\n */\n this.readonly = false;\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 /**\n * @hidden\n */\n this.uniqueId = guid();\n this._tabindex = 0;\n this.notifyNgTouched = () => { };\n this.notifyNgChanged = () => { };\n validatePackage(packageMetadata);\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, 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 /**\n * @hidden\n */\n get readonlyAttribute() { return this.readonly; }\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 }\n }\n ngAfterViewInit() {\n this.setHostElementAriaLabel();\n if (this.value) {\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n this.selectCell(this.value);\n });\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.selectCell(this.value);\n this.setHostElementAriaLabel();\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 this.handleCellFocusOnBlur();\n }\n /**\n * @hidden\n */\n handleCellSelection(value, focusedCell) {\n if (this.readonly) {\n return;\n }\n this.selectedCell = focusedCell;\n this.focusedCell = this.selectedCell;\n this.focusInComponent = true;\n const parsedColor = parseColor$1(value, this.format, false, false);\n this.cellSelection.emit(parsedColor);\n this.handleValueChange(parsedColor);\n if (this.selection !== parsedColor) {\n this.selection = parsedColor;\n this.selectionChange.emit(parsedColor);\n }\n if (focusedCell) {\n this.activeCellId = `k-${this.selectedCell.row}-${this.selectedCell.col}-${this.uniqueId}`;\n }\n }\n /**\n * @hidden\n */\n writeValue(value) {\n this.value = value;\n this.selectCell(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.cdr.markForCheck();\n this.disabled = isDisabled;\n }\n /**\n * @hidden\n * Used by the FloatingLabel 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.handleValueChange(undefined);\n }\n this.selectedCell = undefined;\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 this.setHostElementAriaLabel();\n }\n handleCellFocusOnBlur() {\n this.focusInComponent = false;\n this.focusedCell = this.selectedCell;\n }\n selectCell(value) {\n this.selectedCell = this.service.getCellCoordsFor(value);\n this.focusedCell = this.selectedCell;\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 this.focusInComponent = true;\n }\n setHostElementAriaLabel() {\n const parsed = parseColor$1(this.value, this.format);\n this.renderer.setAttribute(this.host.nativeElement, 'aria-label', `${this.value ? parsed : this.localizationService.get('colorPaletteNoColor')}`);\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.ɵfac = function ColorPaletteComponent_Factory(t) { return new (t || ColorPaletteComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ColorPaletteService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nColorPaletteComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColorPaletteComponent, selectors: [[\"kendo-colorpalette\"]], hostVars: 9, hostBindings: function ColorPaletteComponent_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"keydown\", function ColorPaletteComponent_keydown_HostBindingHandler($event) { return ctx.handleKeydown($event); })(\"blur\", function ColorPaletteComponent_blur_HostBindingHandler() { return ctx.handleHostBlur(); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"dir\", ctx.direction)(\"id\", ctx.paletteId)(\"tabindex\", ctx.hostTabindex)(\"aria-disabled\", ctx.disabledClass)(\"aria-readonly\", ctx.readonlyAttribute);\n ɵngcc0.ɵɵclassProp(\"k-colorpalette\", ctx.hostClasses)(\"k-state-disabled\", ctx.disabledClass);\n } }, inputs: { id: \"id\", format: \"format\", disabled: \"disabled\", readonly: \"readonly\", tileSize: \"tileSize\", value: \"value\", columns: \"columns\", palette: \"palette\", tabindex: \"tabindex\" }, outputs: { selectionChange: \"selectionChange\", valueChange: \"valueChange\", cellSelection: \"cellSelection\" }, exportAs: [\"kendoColorPalette\"], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ColorPaletteComponent_1) // tslint:disable-line:no-forward-ref\n }, {\n provide: KendoInput,\n useExisting: forwardRef(() => ColorPaletteComponent_1)\n },\n ColorPaletteService,\n ColorPaletteLocalizationService,\n {\n provide: LocalizationService,\n useExisting: ColorPaletteLocalizationService\n },\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.colorpalette'\n }\n ]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 5, vars: 2, consts: function () { let i18n_72; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The aria-label applied to the ColorPalette component when the value is empty.\n * @meaning kendo.colorpalette.colorPaletteNoColor\n */\n const MSG_EXTERNAL_4885193165402402447$$DIST_FESM2015_INDEX_JS_73 = goog.getMsg(\"Colorpalette no color chosen\");\n i18n_72 = MSG_EXTERNAL_4885193165402402447$$DIST_FESM2015_INDEX_JS_73;\n }\n else {\n i18n_72 = $localize `:kendo.colorpalette.colorPaletteNoColor|The aria-label applied to the ColorPalette component when the value is empty.␟9828bb7d78de6289366052cdc37cf0bc74577313␟4885193165402402447:Colorpalette no color chosen`;\n } return [[\"kendoColorPaletteLocalizedMessages\", \"\", \"colorPaletteNoColor\", i18n_72], [\"role\", \"listbox\", 1, \"k-colorpalette-table-wrap\"], [1, \"k-colorpalette-table\", \"k-palette\"], [4, \"ngFor\", \"ngForOf\"], [\"role\", \"option\", \"class\", \"k-colorpalette-tile\", 3, \"k-state-selected\", \"k-state-focus\", \"id\", \"ngStyle\", \"click\", 4, \"ngFor\", \"ngForOf\"], [\"role\", \"option\", 1, \"k-colorpalette-tile\", 3, \"id\", \"ngStyle\", \"click\"]]; }, template: function ColorPaletteComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 0);\n ɵngcc0.ɵɵelementStart(1, \"div\", 1)(2, \"table\", 2)(3, \"tbody\");\n ɵngcc0.ɵɵtemplate(4, ColorPaletteComponent_tr_4_Template, 2, 1, \"tr\", 3);\n ɵngcc0.ɵɵelementEnd()()();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"aria-activedescendant\", ctx.activeCellId);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.colorRows);\n } }, directives: function () { return [LocalizedColorPickerMessagesDirective, ɵngcc3.NgForOf, ɵngcc3.NgStyle]; }, encapsulation: 2 });\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String)\n], ColorPaletteComponent.prototype, \"direction\", void 0);\n__decorate([\n HostBinding('attr.id'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], ColorPaletteComponent.prototype, \"paletteId\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorPaletteComponent.prototype, \"id\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorPaletteComponent.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ColorPaletteComponent.prototype, \"value\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], ColorPaletteComponent.prototype, \"columns\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], ColorPaletteComponent.prototype, \"palette\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], ColorPaletteComponent.prototype, \"tabindex\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColorPaletteComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColorPaletteComponent.prototype, \"readonly\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColorPaletteComponent.prototype, \"tileSize\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ColorPaletteComponent.prototype, \"selectionChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ColorPaletteComponent.prototype, \"valueChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ColorPaletteComponent.prototype, \"cellSelection\", void 0);\n__decorate([\n HostBinding('attr.tabindex'),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [])\n], ColorPaletteComponent.prototype, \"hostTabindex\", null);\n__decorate([\n HostBinding('class.k-colorpalette'),\n __metadata(\"design:type\", Boolean)\n], ColorPaletteComponent.prototype, \"hostClasses\", void 0);\n__decorate([\n HostBinding('attr.aria-disabled'),\n HostBinding('class.k-state-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ColorPaletteComponent.prototype, \"disabledClass\", null);\n__decorate([\n HostBinding('attr.aria-readonly'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ColorPaletteComponent.prototype, \"readonlyAttribute\", null);\n__decorate([\n HostListener('keydown', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], ColorPaletteComponent.prototype, \"handleKeydown\", null);\n__decorate([\n HostListener('blur'),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], ColorPaletteComponent.prototype, \"handleHostBlur\", null);\nColorPaletteComponent = ColorPaletteComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n ColorPaletteService,\n ChangeDetectorRef,\n Renderer2,\n LocalizationService,\n NgZone])\n], ColorPaletteComponent);\n\n/**\n * @hidden\n */\nlet FlatColorPickerHeaderComponent = class FlatColorPickerHeaderComponent {\n constructor(localizationService) {\n this.localizationService = localizationService;\n this.hostClasses = true;\n this.viewChange = new EventEmitter();\n this.valuePaneClick = new EventEmitter();\n this.clearButtonClick = new EventEmitter();\n }\n onViewButtonClick(view) {\n this.activeView = view;\n this.viewChange.emit(view);\n }\n get viewButtons() {\n return this.views && this.views.indexOf('gradient') >= 0 && this.views.indexOf('palette') >= 0;\n }\n getViewButtonIcon(view) {\n return view === 'gradient' ? 'k-i-color-canvas' : 'k-i-palette';\n }\n getText(text) {\n return this.localizationService.get(text);\n }\n};\nFlatColorPickerHeaderComponent.ɵfac = function FlatColorPickerHeaderComponent_Factory(t) { return new (t || FlatColorPickerHeaderComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nFlatColorPickerHeaderComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: FlatColorPickerHeaderComponent, selectors: [[\"\", \"kendoFlatColorPickerHeader\", \"\"]], viewQuery: function FlatColorPickerHeaderComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c75, 5, ElementRef);\n ɵngcc0.ɵɵviewQuery(_c76, 5, ElementRef);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.clearButtonElement = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.viewButtonsCollection = _t);\n } }, hostVars: 4, hostBindings: function FlatColorPickerHeaderComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-coloreditor-header\", ctx.hostClasses)(\"k-hstack\", ctx.hostClasses);\n } }, inputs: { activeView: \"activeView\", clearButton: \"clearButton\", views: \"views\", preview: \"preview\", value: \"value\", selection: \"selection\" }, outputs: { viewChange: \"viewChange\", valuePaneClick: \"valuePaneClick\", clearButtonClick: \"clearButtonClick\" }, attrs: _c77, decls: 6, vars: 3, consts: [[1, \"k-coloreditor-header-actions\", \"k-hstack\"], [\"class\", \"k-button-group k-button-group-flat\", 4, \"ngIf\"], [1, \"k-spacer\"], [\"type\", \"button\", \"class\", \"k-button k-button-md k-button-flat k-button-flat-base k-icon-button k-coloreditor-reset\", 3, \"click\", 4, \"ngIf\"], [\"class\", \"k-coloreditor-preview k-vstack\", 4, \"ngIf\"], [1, \"k-button-group\", \"k-button-group-flat\"], [\"type\", \"button\", \"class\", \"k-button k-button-md k-button-flat k-button-flat-base k-icon-button\", 3, \"ngClass\", \"click\", 4, \"ngFor\", \"ngForOf\"], [\"type\", \"button\", 1, \"k-button\", \"k-button-md\", \"k-button-flat\", \"k-button-flat-base\", \"k-icon-button\", 3, \"ngClass\", \"click\"], [\"viewButtons\", \"\"], [1, \"k-button-icon\", \"k-icon\", 3, \"ngClass\"], [\"type\", \"button\", 1, \"k-button\", \"k-button-md\", \"k-button-flat\", \"k-button-flat-base\", \"k-icon-button\", \"k-coloreditor-reset\", 3, \"click\"], [\"clearButton\", \"\"], [1, \"k-button-icon\", \"k-icon\", \"k-i-reset-color\"], [1, \"k-coloreditor-preview\", \"k-vstack\"], [1, \"k-coloreditor-preview-color\", \"k-color-preview\"], [1, \"k-coloreditor-current-color\", \"k-color-preview\", 3, \"click\"]], template: function FlatColorPickerHeaderComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 0);\n ɵngcc0.ɵɵtemplate(1, FlatColorPickerHeaderComponent_div_1_Template, 2, 1, \"div\", 1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelement(2, \"div\", 2);\n ɵngcc0.ɵɵelementStart(3, \"div\", 0);\n ɵngcc0.ɵɵtemplate(4, FlatColorPickerHeaderComponent_button_4_Template, 3, 2, \"button\", 3);\n ɵngcc0.ɵɵtemplate(5, FlatColorPickerHeaderComponent_div_5_Template, 3, 6, \"div\", 4);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.viewButtons);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.clearButton);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.preview);\n } }, directives: [ɵngcc3.NgIf, ɵngcc3.NgForOf, ɵngcc3.NgClass], encapsulation: 2 });\n__decorate([\n HostBinding('class.k-coloreditor-header'),\n HostBinding('class.k-hstack'),\n __metadata(\"design:type\", Boolean)\n], FlatColorPickerHeaderComponent.prototype, \"hostClasses\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], FlatColorPickerHeaderComponent.prototype, \"clearButton\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FlatColorPickerHeaderComponent.prototype, \"activeView\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], FlatColorPickerHeaderComponent.prototype, \"views\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], FlatColorPickerHeaderComponent.prototype, \"preview\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FlatColorPickerHeaderComponent.prototype, \"value\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FlatColorPickerHeaderComponent.prototype, \"selection\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], FlatColorPickerHeaderComponent.prototype, \"viewChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], FlatColorPickerHeaderComponent.prototype, \"valuePaneClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], FlatColorPickerHeaderComponent.prototype, \"clearButtonClick\", void 0);\n__decorate([\n ViewChildren('viewButtons', { read: ElementRef }),\n __metadata(\"design:type\", QueryList)\n], FlatColorPickerHeaderComponent.prototype, \"viewButtonsCollection\", void 0);\n__decorate([\n ViewChild('clearButton', { read: ElementRef, static: false }),\n __metadata(\"design:type\", ElementRef)\n], FlatColorPickerHeaderComponent.prototype, \"clearButtonElement\", void 0);\nFlatColorPickerHeaderComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], FlatColorPickerHeaderComponent);\n\n/**\n * @hidden\n */\nlet FlatColorPickerActionButtonsComponent = class FlatColorPickerActionButtonsComponent {\n constructor(localizationService) {\n this.localizationService = localizationService;\n this.hostClasses = true;\n this.actionButtonClick = new EventEmitter();\n }\n getText(text) {\n return this.localizationService.get(text);\n }\n onActionButtonClick(type, ev) {\n let args = {\n target: type,\n originalEvent: ev\n };\n this.actionButtonClick.emit(args);\n }\n};\nFlatColorPickerActionButtonsComponent.ɵfac = function FlatColorPickerActionButtonsComponent_Factory(t) { return new (t || FlatColorPickerActionButtonsComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nFlatColorPickerActionButtonsComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: FlatColorPickerActionButtonsComponent, selectors: [[\"\", \"kendoFlatColorPickerActionButtons\", \"\"]], viewQuery: function FlatColorPickerActionButtonsComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c78, 5, ElementRef);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.lastButton = _t.first);\n } }, hostVars: 6, hostBindings: function FlatColorPickerActionButtonsComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-coloreditor-footer\", ctx.hostClasses)(\"k-actions\", ctx.hostClasses)(\"k-hstack\", ctx.hostClasses);\n } }, outputs: { actionButtonClick: \"actionButtonClick\" }, attrs: _c79, decls: 5, vars: 4, consts: [[\"type\", \"button\", 1, \"k-coloreditor-cancel\", \"k-button\", \"k-button-md\", \"k-button-solid\", \"k-button-solid-base\", 3, \"click\"], [\"type\", \"button\", 1, \"k-coloreditor-apply\", \"k-button\", \"k-button-md\", \"k-button-solid\", \"k-button-solid-primary\", 3, \"click\"], [\"last\", \"\"]], template: function FlatColorPickerActionButtonsComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"button\", 0);\n ɵngcc0.ɵɵlistener(\"click\", function FlatColorPickerActionButtonsComponent_Template_button_click_0_listener($event) { return ctx.onActionButtonClick(\"cancel\", $event); });\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(2, \"button\", 1, 2);\n ɵngcc0.ɵɵlistener(\"click\", function FlatColorPickerActionButtonsComponent_Template_button_click_2_listener($event) { return ctx.onActionButtonClick(\"apply\", $event); });\n ɵngcc0.ɵɵtext(4);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"title\", ctx.getText(\"cancelButton\"));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx.getText(\"cancelButton\"));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"title\", ctx.getText(\"applyButton\"));\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate(ctx.getText(\"applyButton\"));\n } }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-coloreditor-footer'),\n HostBinding('class.k-actions'),\n HostBinding('class.k-hstack'),\n __metadata(\"design:type\", Boolean)\n], FlatColorPickerActionButtonsComponent.prototype, \"hostClasses\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], FlatColorPickerActionButtonsComponent.prototype, \"actionButtonClick\", void 0);\n__decorate([\n ViewChild('last', { read: ElementRef, static: false }),\n __metadata(\"design:type\", ElementRef)\n], FlatColorPickerActionButtonsComponent.prototype, \"lastButton\", void 0);\nFlatColorPickerActionButtonsComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], FlatColorPickerActionButtonsComponent);\n\nvar FlatColorPickerComponent_1;\n/**\n * Represents the [Kendo UI FlatColorPicker component for Angular]({% slug overview_flatcolorpicker %}).\n *\n * The FlatColorPicker is a powerful tool which allows the user to choose colors through palettes with predefined sets of colors and\n * through a gradient that renders an hsv canvas. It supports previewing the selected color, reverting it to its previous state or clearing it completely.\n */\nlet FlatColorPickerComponent = FlatColorPickerComponent_1 = class FlatColorPickerComponent {\n constructor(host, service, localizationService, cdr, renderer, ngZone) {\n this.host = host;\n this.service = service;\n this.localizationService = localizationService;\n this.cdr = cdr;\n this.renderer = renderer;\n this.ngZone = ngZone;\n this.hostClasses = true;\n /**\n * Sets the read-only state of the FlatColorPicker.\n *\n * @default false\n */\n this.readonly = false;\n /**\n * Sets the disabled state of the FlatColorPicker.\n *\n * @default false\n */\n this.disabled = false;\n /**\n * Specifies the output format of the FlatColorPicker.\n *\n * If the input value is in a different format, it will be parsed into the specified output `format`.\n *\n * The supported values are:\n * * `rgba` (default)\n * * `hex`\n */\n this.format = 'rgba';\n /**\n * Specifies whether the FlatColorPicker should display a 'Clear color' button.\n *\n * @default true\n */\n this.clearButton = true;\n /**\n * Displays `Apply` and `Cancel` action buttons and a color preview pane.\n *\n * When enabled, the component value will not change immediately upon\n * color selection, but only after the `Apply` button is clicked.\n *\n * The `Cancel` button reverts the current selection to its\n * initial state i.e. to the current value.\n *\n * @default true\n */\n this.preview = true;\n /**\n * Configures the layout of the `Apply` and `Cancel` action buttons.\n * * `start`\n * * `center`\n * * `end` (default)\n * * `stretch`\n */\n this.actionsLayout = 'end';\n /**\n * Specifies the views that will be rendered. Default value is gradient and palette.\n */\n this.views = ['gradient', 'palette'];\n /**\n * Fires each time the component value is changed.\n */\n this.valueChange = new EventEmitter();\n /**\n * Fires when the user cancels the current color selection.\n *\n * The event is emitted on preview pane or on 'Cancel' button click.\n */\n this.cancel = new EventEmitter();\n /**\n * Fires each time the view is about to change.\n * Used to provide a two-way binding for the `activeView` property.\n */\n this.activeViewChange = new EventEmitter();\n /**\n * @hidden\n */\n this.actionButtonClick = new EventEmitter();\n this._tabindex = 0;\n this._gradientSettings = { opacity: true, delay: 0 };\n this._paletteSettings = {};\n this.subscriptions = new Subscription();\n this.notifyNgChanged = () => { };\n this.notifyNgTouched = () => { };\n validatePackage(packageMetadata);\n this.dynamicRTLSubscription = this.localizationService.changes.subscribe(({ rtl }) => {\n this.direction = rtl ? 'rtl' : 'ltr';\n });\n }\n get disabledClass() {\n return this.disabled;\n }\n get ariaReadonly() {\n return this.readonly;\n }\n get hostTabindex() {\n return this.tabindex;\n }\n /**\n * Specifies the initially selected color.\n */\n set value(value) {\n this._value = parseColor$1(value, this.format, this.gradientSettings.opacity);\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 * @default 0\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 * Configures the gradient view.\n */\n set gradientSettings(value) {\n Object.assign(this._gradientSettings, value);\n }\n get gradientSettings() {\n return this._gradientSettings;\n }\n /**\n * Configures the palette view.\n */\n set paletteSettings(value) {\n Object.assign(this._paletteSettings, value);\n }\n get paletteSettings() {\n return this._paletteSettings;\n }\n ngOnInit() {\n this.selection = this.value;\n this._paletteSettings = this.service.getPaletteSettings(this._paletteSettings, this.format);\n this.setActiveView();\n }\n ngAfterViewInit() {\n this.setHostElementAriaLabel();\n this.initDomEvents();\n this.setSizingVariables();\n }\n ngOnChanges(changes) {\n if (isChanged('value', changes)) {\n this.selection = this.value;\n this.setHostElementAriaLabel();\n }\n if (isChanged('paletteSettings', changes)) {\n this.setSizingVariables();\n }\n }\n ngOnDestroy() {\n if (this.dynamicRTLSubscription) {\n this.dynamicRTLSubscription.unsubscribe();\n }\n this.subscriptions.unsubscribe();\n }\n /**\n * @hidden\n */\n get headerHasContent() {\n return this.preview || this.views.length > 1 || this.clearButton;\n }\n /**\n * @hidden\n * Used by the FloatingLabel to determine if the component is empty.\n */\n isEmpty() {\n return false;\n }\n /**\n * Focuses the wrapper of the FlatColorPicker.\n */\n focus() {\n if (this.disabled && this.focused) {\n return;\n }\n this.host.nativeElement.focus();\n this.focused = true;\n }\n /**\n * Blurs the wrapper of the FlatColorPicker.\n */\n blur() {\n if (!this.focused) {\n return;\n }\n this.notifyNgTouched();\n this.host.nativeElement.blur();\n this.focused = false;\n }\n /**\n * Clears the value of the FlatColorPicker.\n */\n reset() {\n if (!isPresent(this.value)) {\n return;\n }\n this.value = undefined;\n this.notifyNgChanged(undefined);\n this.setHostElementAriaLabel();\n }\n /**\n * @hidden\n */\n onViewChange(view) {\n if (this.activeView === view) {\n return;\n }\n this.activeView = view;\n this.activeViewChange.emit(view);\n if (this.activeView === 'gradient') {\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n this.gradient.gradientDragHandle.nativeElement.focus();\n });\n });\n }\n }\n /**\n * @hidden\n */\n onClearButtonClick() {\n this.resetInnerComponentValue();\n this.host.nativeElement.focus();\n }\n /**\n * @hidden\n */\n handleValueChange(color) {\n this.preview ? this.changeCurrentValue(color) : this.setFlatColorPickerValue(color);\n }\n /**\n * @hidden\n */\n onAction(ev) {\n ev.target === 'apply' ? this.setFlatColorPickerValue(this.selection) : this.resetSelection(ev.originalEvent);\n this.actionButtonClick.emit();\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.cdr.markForCheck();\n this.disabled = isDisabled;\n }\n /**\n * @hidden\n */\n resetSelection(ev) {\n const eventArgs = new ColorPickerCancelEvent(ev);\n this.cancel.emit(eventArgs);\n if (!eventArgs.isDefaultPrevented()) {\n this.selection = this.value;\n }\n this.notifyNgTouched();\n }\n setHostElementAriaLabel() {\n const parsed = parseColor$1(this.value, this.format, this.gradientSettings.opacity);\n const ariaLabelValue = `${this.value ? parsed : this.localizationService.get('flatColorPickerNoColor')}`;\n this.renderer.setAttribute(this.host.nativeElement, 'aria-label', ariaLabelValue);\n }\n setSizingVariables() {\n const paletteTileSize = this.service.paletteTileLayout(this.paletteSettings.tileSize);\n const value = `--kendo-color-preview-columns: ${this.paletteSettings.columns};\n --kendo-color-preview-width: ${paletteTileSize.width}px;\n --kendo-color-preview-height: ${paletteTileSize.height}px;`;\n this.host.nativeElement.querySelector('.k-coloreditor-views.k-vstack').setAttribute('style', value);\n }\n changeCurrentValue(color) {\n this.selection = color;\n this.notifyNgTouched();\n }\n resetInnerComponentValue() {\n this.selection = null;\n if (this.gradient) {\n this.gradient.reset();\n return;\n }\n this.palette.reset();\n }\n setFlatColorPickerValue(color) {\n if (this.value === color) {\n return;\n }\n this.value = color;\n this.valueChange.emit(color);\n this.notifyNgChanged(color);\n this.setHostElementAriaLabel();\n }\n setActiveView() {\n if (!isPresent(this.activeView)) {\n this.activeView = this.views[0];\n return;\n }\n if (isDevMode() && this.views.indexOf(this.activeView) === -1) {\n throw new Error(\"Invalid configuration: The current activeView is not present in the views collection\");\n }\n }\n initDomEvents() {\n if (!this.host) {\n return;\n }\n let hostElement = this.host.nativeElement;\n this.ngZone.runOutsideAngular(() => {\n this.subscriptions.add(this.renderer.listen(hostElement, 'focus', () => {\n this.focused = true;\n }));\n this.subscriptions.add(this.renderer.listen(hostElement, 'blur', () => {\n this.focused = false;\n this.notifyNgTouched();\n }));\n });\n }\n};\nFlatColorPickerComponent.ɵfac = function FlatColorPickerComponent_Factory(t) { return new (t || FlatColorPickerComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(FlatColorPickerService), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nFlatColorPickerComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: FlatColorPickerComponent, selectors: [[\"kendo-flatcolorpicker\"]], viewQuery: function FlatColorPickerComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c80, 5);\n ɵngcc0.ɵɵviewQuery(_c81, 5);\n ɵngcc0.ɵɵviewQuery(_c82, 5);\n ɵngcc0.ɵɵviewQuery(_c83, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.header = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.gradient = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.palette = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.footer = _t.first);\n } }, hostVars: 10, hostBindings: function FlatColorPickerComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"dir\", ctx.direction)(\"aria-disabled\", ctx.disabledClass)(\"aria-readonly\", ctx.ariaReadonly)(\"tabindex\", ctx.hostTabindex);\n ɵngcc0.ɵɵclassProp(\"k-flatcolorpicker\", ctx.hostClasses)(\"k-coloreditor\", ctx.hostClasses)(\"k-state-disabled\", ctx.disabledClass);\n } }, inputs: { readonly: \"readonly\", disabled: \"disabled\", format: \"format\", clearButton: \"clearButton\", preview: \"preview\", actionsLayout: \"actionsLayout\", views: \"views\", value: \"value\", tabindex: \"tabindex\", gradientSettings: \"gradientSettings\", paletteSettings: \"paletteSettings\", activeView: \"activeView\" }, outputs: { valueChange: \"valueChange\", cancel: \"cancel\", activeViewChange: \"activeViewChange\", actionButtonClick: \"actionButtonClick\" }, exportAs: [\"kendoFlatColorPicker\"], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FlatColorPickerComponent_1)\n },\n {\n provide: KendoInput,\n useExisting: forwardRef(() => FlatColorPickerComponent_1)\n },\n FlatColorPickerService,\n FlatColorPickerLocalizationService,\n {\n provide: LocalizationService,\n useExisting: FlatColorPickerLocalizationService\n },\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.flatcolorpicker'\n }\n ]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 6, vars: 4, consts: function () { let i18n_84; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The aria-label applied to the FlatColorPicker component when the value is empty.\n * @meaning kendo.flatcolorpicker.flatColorPickerNoColor\n */\n const MSG_EXTERNAL_5587373573749332242$$DIST_FESM2015_INDEX_JS_85 = goog.getMsg(\"Flatcolorpicker no color chosen\");\n i18n_84 = MSG_EXTERNAL_5587373573749332242$$DIST_FESM2015_INDEX_JS_85;\n }\n else {\n i18n_84 = $localize `:kendo.flatcolorpicker.flatColorPickerNoColor|The aria-label applied to the FlatColorPicker component when the value is empty.␟0f7452f62e10ab71bd427d5d9716b49ac61ab5cd␟5587373573749332242:Flatcolorpicker no color chosen`;\n } let i18n_86; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The aria-label applied to the ColorGradient component when the value is empty.\n * @meaning kendo.flatcolorpicker.colorGradientNoColor\n */\n const MSG_EXTERNAL_6087544506182000157$$DIST_FESM2015_INDEX_JS_87 = goog.getMsg(\"Colorgradient no color chosen\");\n i18n_86 = MSG_EXTERNAL_6087544506182000157$$DIST_FESM2015_INDEX_JS_87;\n }\n else {\n i18n_86 = $localize `:kendo.flatcolorpicker.colorGradientNoColor|The aria-label applied to the ColorGradient component when the value is empty.␟541a344c7dea04899f8657a5577fe5e766a1de78␟6087544506182000157:Colorgradient no color chosen`;\n } let i18n_88; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The aria-label applied to the ColorPalette component when the value is empty.\n * @meaning kendo.flatcolorpicker.colorPaletteNoColor\n */\n const MSG_EXTERNAL_5441368432797392985$$DIST_FESM2015_INDEX_JS_89 = goog.getMsg(\"Colorpalette no color chosen\");\n i18n_88 = MSG_EXTERNAL_5441368432797392985$$DIST_FESM2015_INDEX_JS_89;\n }\n else {\n i18n_88 = $localize `:kendo.flatcolorpicker.colorPaletteNoColor|The aria-label applied to the ColorPalette component when the value is empty.␟5b0ef7b14a7b89fa83ac1959abe3245a9b05cc86␟5441368432797392985:Colorpalette no color chosen`;\n } let i18n_90; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title for the gradient color drag handle chooser.\n * @meaning kendo.flatcolorpicker.colorGradientHandle\n */\n const MSG_EXTERNAL_908566823276809035$$DIST_FESM2015_INDEX_JS_91 = goog.getMsg(\"Choose color\");\n i18n_90 = MSG_EXTERNAL_908566823276809035$$DIST_FESM2015_INDEX_JS_91;\n }\n else {\n i18n_90 = $localize `:kendo.flatcolorpicker.colorGradientHandle|The title for the gradient color drag handle chooser.␟f88a7ad2af0d59dbdad7553ee6ad95a86fe20882␟908566823276809035:Choose color`;\n } let i18n_92; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title for the clear button.\n * @meaning kendo.flatcolorpicker.clearButton\n */\n const MSG_EXTERNAL_657623164139733574$$DIST_FESM2015_INDEX_JS_93 = goog.getMsg(\"Clear value\");\n i18n_92 = MSG_EXTERNAL_657623164139733574$$DIST_FESM2015_INDEX_JS_93;\n }\n else {\n i18n_92 = $localize `:kendo.flatcolorpicker.clearButton|The title for the clear button.␟bd6cf8e193307efc693aee23dc4e2db9d789e10a␟657623164139733574:Clear value`;\n } let i18n_94; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title for the hue slider handle.\n * @meaning kendo.flatcolorpicker.hueSliderHandle\n */\n const MSG_EXTERNAL_2871570350756645741$$DIST_FESM2015_INDEX_JS_95 = goog.getMsg(\"Set hue\");\n i18n_94 = MSG_EXTERNAL_2871570350756645741$$DIST_FESM2015_INDEX_JS_95;\n }\n else {\n i18n_94 = $localize `:kendo.flatcolorpicker.hueSliderHandle|The title for the hue slider handle.␟f7634baf3ab601a1285db7e51a6f6549e0ed4ba6␟2871570350756645741:Set hue`;\n } let i18n_96; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title for the opacity slider handle.\n * @meaning kendo.flatcolorpicker.opacitySliderHandle\n */\n const MSG_EXTERNAL_2815381853083847348$$DIST_FESM2015_INDEX_JS_97 = goog.getMsg(\"Set opacity\");\n i18n_96 = MSG_EXTERNAL_2815381853083847348$$DIST_FESM2015_INDEX_JS_97;\n }\n else {\n i18n_96 = $localize `:kendo.flatcolorpicker.opacitySliderHandle|The title for the opacity slider handle.␟b74f0733a8409487e8605fc94804361b16e90f82␟2815381853083847348:Set opacity`;\n } let i18n_98; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The contrast ratio message for the contrast tool.\n * @meaning kendo.flatcolorpicker.contrastRatio\n */\n const MSG_EXTERNAL_4111165279880035613$$DIST_FESM2015_INDEX_JS_99 = goog.getMsg(\"Contrast ratio\");\n i18n_98 = MSG_EXTERNAL_4111165279880035613$$DIST_FESM2015_INDEX_JS_99;\n }\n else {\n i18n_98 = $localize `:kendo.flatcolorpicker.contrastRatio|The contrast ratio message for the contrast tool.␟cf21eedf118e7cdf7acc1cc94c7ae5359b926b24␟4111165279880035613:Contrast ratio`;\n } let i18n_100; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The message for the color preview pane.\n * @meaning kendo.flatcolorpicker.previewColor\n */\n const MSG_EXTERNAL_7520629536331583555$$DIST_FESM2015_INDEX_JS_101 = goog.getMsg(\"Color preview\");\n i18n_100 = MSG_EXTERNAL_7520629536331583555$$DIST_FESM2015_INDEX_JS_101;\n }\n else {\n i18n_100 = $localize `:kendo.flatcolorpicker.previewColor|The message for the color preview pane.␟19edaabd407cee636a3e0a0101ac6ea4727c81e6␟7520629536331583555:Color preview`;\n } let i18n_102; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The message for the selected color pane.\n * @meaning kendo.flatcolorpicker.revertSelection\n */\n const MSG_EXTERNAL_5917429966250498596$$DIST_FESM2015_INDEX_JS_103 = goog.getMsg(\"Revert selection\");\n i18n_102 = MSG_EXTERNAL_5917429966250498596$$DIST_FESM2015_INDEX_JS_103;\n }\n else {\n i18n_102 = $localize `:kendo.flatcolorpicker.revertSelection|The message for the selected color pane.␟04eaa4e7591b21192b79a8587cb65842f217777b␟5917429966250498596:Revert selection`;\n } let i18n_104; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The message for the gradient view button.\n * @meaning kendo.flatcolorpicker.gradientView\n */\n const MSG_EXTERNAL_2063234049296472476$$DIST_FESM2015_INDEX_JS_105 = goog.getMsg(\"Gradient view\");\n i18n_104 = MSG_EXTERNAL_2063234049296472476$$DIST_FESM2015_INDEX_JS_105;\n }\n else {\n i18n_104 = $localize `:kendo.flatcolorpicker.gradientView|The message for the gradient view button.␟d89402928a43a6eb802dede7a3d3459047dc42a0␟2063234049296472476:Gradient view`;\n } let i18n_106; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The message for the palette view button.\n * @meaning kendo.flatcolorpicker.paletteView\n */\n const MSG_EXTERNAL_2108885670379641868$$DIST_FESM2015_INDEX_JS_107 = goog.getMsg(\"Palette view\");\n i18n_106 = MSG_EXTERNAL_2108885670379641868$$DIST_FESM2015_INDEX_JS_107;\n }\n else {\n i18n_106 = $localize `:kendo.flatcolorpicker.paletteView|The message for the palette view button.␟94caf0d97fdf686eae9abe143491bf5e70e71d84␟2108885670379641868:Palette view`;\n } let i18n_108; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The message for the input format toggle button.\n * @meaning kendo.flatcolorpicker.formatButton\n */\n const MSG_EXTERNAL_4457740703438950411$$DIST_FESM2015_INDEX_JS_109 = goog.getMsg(\"Change color format\");\n i18n_108 = MSG_EXTERNAL_4457740703438950411$$DIST_FESM2015_INDEX_JS_109;\n }\n else {\n i18n_108 = $localize `:kendo.flatcolorpicker.formatButton|The message for the input format toggle button.␟55f4d138df648aaa2e1e26af224f602c0b4995ab␟4457740703438950411:Change color format`;\n } let i18n_110; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The message for the Apply action button.\n * @meaning kendo.flatcolorpicker.applyButton\n */\n const MSG_EXTERNAL_5677376399033528514$$DIST_FESM2015_INDEX_JS_111 = goog.getMsg(\"Apply\");\n i18n_110 = MSG_EXTERNAL_5677376399033528514$$DIST_FESM2015_INDEX_JS_111;\n }\n else {\n i18n_110 = $localize `:kendo.flatcolorpicker.applyButton|The message for the Apply action button.␟4d2576cd3013f8807c8f42ceb4720cab04907182␟5677376399033528514:Apply`;\n } let i18n_112; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The message for the Cancel action button.\n * @meaning kendo.flatcolorpicker.cancelButton\n */\n const MSG_EXTERNAL_8448158590311818541$$DIST_FESM2015_INDEX_JS_113 = goog.getMsg(\"Cancel\");\n i18n_112 = MSG_EXTERNAL_8448158590311818541$$DIST_FESM2015_INDEX_JS_113;\n }\n else {\n i18n_112 = $localize `:kendo.flatcolorpicker.cancelButton|The message for the Cancel action button.␟db838008681129d988e81a81c94de01aed626ec1␟8448158590311818541:Cancel`;\n } return [[\"kendoFlatColorPickerLocalizedMessages\", \"\", \"flatColorPickerNoColor\", i18n_84, \"colorGradientNoColor\", i18n_86, \"colorPaletteNoColor\", i18n_88, \"colorGradientHandle\", i18n_90, \"clearButton\", i18n_92, \"hueSliderHandle\", i18n_94, \"opacitySliderHandle\", i18n_96, \"contrastRatio\", i18n_98, \"previewColor\", i18n_100, \"revertSelection\", i18n_102, \"gradientView\", i18n_104, \"paletteView\", i18n_106, \"formatButton\", i18n_108, \"applyButton\", i18n_110, \"cancelButton\", i18n_112], [\"kendoFlatColorPickerHeader\", \"\", 3, \"clearButton\", \"activeView\", \"views\", \"value\", \"selection\", \"preview\", \"clearButtonClick\", \"viewChange\", \"valuePaneClick\", 4, \"ngIf\"], [1, \"k-coloreditor-views\", \"k-vstack\"], [3, \"tabindex\", \"value\", \"format\", \"opacity\", \"delay\", \"contrastTool\", \"readonly\", \"valueChange\", 4, \"ngIf\"], [\"kendoFocusOnDomReady\", \"\", 3, \"palette\", \"columns\", \"tileSize\", \"format\", \"value\", \"valueChange\", 4, \"ngIf\"], [\"kendoFlatColorPickerActionButtons\", \"\", 3, \"ngClass\", \"actionButtonClick\", 4, \"ngIf\"], [\"kendoFlatColorPickerHeader\", \"\", 3, \"clearButton\", \"activeView\", \"views\", \"value\", \"selection\", \"preview\", \"clearButtonClick\", \"viewChange\", \"valuePaneClick\"], [\"header\", \"\"], [3, \"tabindex\", \"value\", \"format\", \"opacity\", \"delay\", \"contrastTool\", \"readonly\", \"valueChange\"], [\"gradient\", \"\"], [\"kendoFocusOnDomReady\", \"\", 3, \"palette\", \"columns\", \"tileSize\", \"format\", \"value\", \"valueChange\"], [\"palette\", \"\"], [\"kendoFlatColorPickerActionButtons\", \"\", 3, \"ngClass\", \"actionButtonClick\"], [\"footer\", \"\"]]; }, template: function FlatColorPickerComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 0);\n ɵngcc0.ɵɵtemplate(1, FlatColorPickerComponent_div_1_Template, 2, 6, \"div\", 1);\n ɵngcc0.ɵɵelementStart(2, \"div\", 2);\n ɵngcc0.ɵɵtemplate(3, FlatColorPickerComponent_kendo_colorgradient_3_Template, 2, 7, \"kendo-colorgradient\", 3);\n ɵngcc0.ɵɵtemplate(4, FlatColorPickerComponent_kendo_colorpalette_4_Template, 2, 5, \"kendo-colorpalette\", 4);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(5, FlatColorPickerComponent_div_5_Template, 2, 1, \"div\", 5);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.headerHasContent);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.activeView === \"gradient\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.activeView === \"palette\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.preview);\n } }, directives: function () { return [LocalizedColorPickerMessagesDirective, ɵngcc3.NgIf, FlatColorPickerHeaderComponent, ColorGradientComponent, ColorPaletteComponent, FocusOnDomReadyDirective, FlatColorPickerActionButtonsComponent, ɵngcc3.NgClass]; }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-flatcolorpicker'),\n HostBinding('class.k-coloreditor'),\n __metadata(\"design:type\", Boolean)\n], FlatColorPickerComponent.prototype, \"hostClasses\", void 0);\n__decorate([\n HostBinding('class.k-state-disabled'),\n HostBinding('attr.aria-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], FlatColorPickerComponent.prototype, \"disabledClass\", null);\n__decorate([\n HostBinding('attr.aria-readonly'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], FlatColorPickerComponent.prototype, \"ariaReadonly\", null);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String)\n], FlatColorPickerComponent.prototype, \"direction\", void 0);\n__decorate([\n HostBinding('attr.tabindex'),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [])\n], FlatColorPickerComponent.prototype, \"hostTabindex\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], FlatColorPickerComponent.prototype, \"readonly\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], FlatColorPickerComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FlatColorPickerComponent.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], FlatColorPickerComponent.prototype, \"value\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], FlatColorPickerComponent.prototype, \"tabindex\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], FlatColorPickerComponent.prototype, \"clearButton\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], FlatColorPickerComponent.prototype, \"preview\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FlatColorPickerComponent.prototype, \"actionsLayout\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FlatColorPickerComponent.prototype, \"activeView\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], FlatColorPickerComponent.prototype, \"views\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], FlatColorPickerComponent.prototype, \"gradientSettings\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], FlatColorPickerComponent.prototype, \"paletteSettings\", null);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], FlatColorPickerComponent.prototype, \"valueChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], FlatColorPickerComponent.prototype, \"cancel\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], FlatColorPickerComponent.prototype, \"activeViewChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], FlatColorPickerComponent.prototype, \"actionButtonClick\", void 0);\n__decorate([\n ViewChild('header', { static: false }),\n __metadata(\"design:type\", FlatColorPickerHeaderComponent)\n], FlatColorPickerComponent.prototype, \"header\", void 0);\n__decorate([\n ViewChild('gradient', { static: false }),\n __metadata(\"design:type\", ColorGradientComponent)\n], FlatColorPickerComponent.prototype, \"gradient\", void 0);\n__decorate([\n ViewChild('palette', { static: false }),\n __metadata(\"design:type\", ColorPaletteComponent)\n], FlatColorPickerComponent.prototype, \"palette\", void 0);\n__decorate([\n ViewChild('footer', { static: false }),\n __metadata(\"design:type\", FlatColorPickerActionButtonsComponent)\n], FlatColorPickerComponent.prototype, \"footer\", void 0);\nFlatColorPickerComponent = FlatColorPickerComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n FlatColorPickerService,\n LocalizationService,\n ChangeDetectorRef,\n Renderer2,\n NgZone])\n], FlatColorPickerComponent);\n\nvar ColorPickerComponent_1;\nconst DOM_FOCUS_EVENTS = ['focus', 'blur'];\n/**\n * Represents the [Kendo UI ColorPicker component for Angular]({% slug overview_colorpicker %}).\n *\n * The ColorPicker is a powerful tool for choosing colors from Gradient and Palette views\n * which are rendered in its popup. It supports previewing the selected color, reverting it to its previous state or clearing it completely.\n */\nlet ColorPickerComponent = ColorPickerComponent_1 = class ColorPickerComponent {\n constructor(host, popupService, cdr, localizationService, ngZone, renderer) {\n this.host = host;\n this.popupService = popupService;\n this.cdr = cdr;\n this.localizationService = localizationService;\n this.ngZone = ngZone;\n this.renderer = renderer;\n this.hostClasses = true;\n this.role = 'listbox';\n /**\n * Specifies the views that will be rendered in the popup.\n * By default both the gradient and palette views will be rendered.\n */\n this.views = ['gradient', 'palette'];\n /**\n * Sets the read-only state of the ColorPicker.\n *\n * @default false\n */\n this.readonly = false;\n /**\n * Sets the disabled state of the ColorPicker.\n *\n * @default false\n */\n this.disabled = false;\n /**\n * Specifies the output format of the ColorPicker.\n *\n * If the input value is in a different format, it will be parsed into the specified output `format`.\n *\n * The supported values are:\n * * `rgba` (default)\n * * `hex`\n */\n this.format = 'rgba';\n /**\n * Specifies whether the ColorPicker should display a 'Clear color' button.\n *\n * @default true\n */\n this.clearButton = true;\n /**\n * Displays `Apply` and `Cancel` action buttons and color preview panes.\n *\n * When enabled, the component value will not change immediately upon\n * color selection, but only after the `Apply` button is clicked.\n *\n * The `Cancel` button reverts the current selection to its\n * previous state i.e. to the current value.\n *\n * @default false\n */\n this.preview = false;\n /**\n * Configures the layout of the `Apply` and `Cancel` action buttons.\n *\n * The possible values are:\n * * `start`\n * * `center`\n * * `end` (default)\n * * `stretch`\n */\n this.actionsLayout = 'end';\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 when the user cancels the current color selection.\n *\n * Fires on preview pane or 'Cancel' button click.\n */\n this.cancel = 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 /**\n * Fires each time the view is about to change.\n * Used to provide a two-way binding for the `activeView` property.\n */\n this.activeViewChange = new EventEmitter();\n /**\n * Indicates whether the ColorPicker wrapper is focused.\n */\n this.isFocused = false;\n this._tabindex = 0;\n this._popupSettings = { animate: true };\n this._paletteSettings = {};\n this._gradientSettings = { opacity: true, delay: 0 };\n this._size = 'medium';\n this._rounded = 'medium';\n this._fillMode = 'solid';\n this.subscriptions = new Subscription();\n this.notifyNgTouched = () => { };\n this.notifyNgChanged = () => { };\n this.domFocusListener = (event) => event.stopImmediatePropagation();\n validatePackage(packageMetadata);\n this.dynamicRTLSubscription = this.localizationService.changes.subscribe(({ rtl }) => {\n this.direction = rtl ? 'rtl' : 'ltr';\n });\n }\n get focusedClass() {\n return this.isFocused;\n }\n get disabledClass() {\n return this.disabled;\n }\n get ariaReadonly() {\n return this.readonly;\n }\n get ariaExpanded() {\n return this.isOpen;\n }\n get hostTabindex() {\n return this.tabindex;\n }\n /**\n * @hidden\n */\n set view(view) {\n this.views = [view];\n }\n get view() {\n return (this.views && this.views.length > 0) ? this.views[0] : null;\n }\n /**\n * Specifies the value of the initially selected color.\n */\n set value(value) {\n this._value = parseColor$1(value, this.format, this.gradientSettings.opacity);\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 * @default 0\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 * The size property specifies the padding of the ColorPicker internal elements\n * ([see example]({% slug appearance_colorpicker %}#toc-size)).\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `null`\n */\n set size(size) {\n this.handleClasses(size, 'size');\n this._size = size;\n }\n get size() {\n return this._size;\n }\n /**\n * The rounded property specifies the border radius of the ColorPicker\n * ([see example]({% slug appearance_colorpicker %}#toc-rounded)).\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `'full'`\n * * `null`\n */\n set rounded(rounded) {\n this.handleClasses(rounded, 'rounded');\n this._rounded = rounded;\n }\n get rounded() {\n return this._rounded;\n }\n /**\n * The fillMode property specifies the background and border styles of the ColorPicker\n * ([see example]({% slug appearance_colorpicker %}#toc-fillMode)).\n *\n * The possible values are:\n * * `'flat'`\n * * `'solid'` (default)\n * * `'outline'`\n * * `null`\n */\n set fillMode(fillMode) {\n this.handleClasses(fillMode, 'fillMode');\n this._fillMode = fillMode;\n }\n get fillMode() {\n return this._fillMode;\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 ngAfterViewInit() {\n const stylingInputs = ['size', 'rounded', 'fillMode'];\n stylingInputs.forEach(input => {\n this.handleClasses(this[input], input);\n });\n this.setHostElementAriaLabel();\n this.handleHostId();\n this.initDomEvents();\n }\n ngOnChanges(changes) {\n if (changes.format && changes.format.currentValue === 'name') {\n this.activeView = 'palette';\n }\n if (this.activeView === 'gradient' && this.gradientSettings.opacity) {\n this.format = 'rgba';\n this.value = parseColor$1(this.value, this.format, this.gradientSettings.opacity);\n }\n if (isChanged('value', changes)) {\n this.setHostElementAriaLabel();\n }\n }\n ngOnDestroy() {\n this.closePopup();\n if (this.dynamicRTLSubscription) {\n this.dynamicRTLSubscription.unsubscribe();\n }\n this.subscriptions.unsubscribe();\n this.handleDomEvents('remove', DOM_FOCUS_EVENTS);\n }\n /**\n * @hidden\n */\n handleCancelEvent(ev) {\n this.cancel.emit(ev);\n }\n /**\n * @hidden\n */\n togglePopup() {\n this.focus();\n this.toggleWithEvents(!this.isOpen);\n }\n /**\n * @hidden\n */\n handleWrapperClick(event) {\n if (this.disabled) {\n return;\n }\n this.focus();\n if (closest(event.target, (element) => element === this.activeColor.nativeElement)) {\n const event = new ActiveColorClickEvent(this.value);\n this.activeColorClick.emit(event);\n if (!event.isOpenPrevented() || this.isOpen) {\n this.toggleWithEvents(!this.isOpen);\n }\n return;\n }\n this.toggleWithEvents(!this.isOpen);\n }\n /**\n * Focuses the wrapper of the ColorPicker.\n */\n focus() {\n this.isFocused = true;\n this.host.nativeElement.focus();\n }\n /**\n * @hidden\n */\n handleWrapperFocus() {\n if (this.isFocused) {\n return;\n }\n this.ngZone.run(() => {\n this.focus();\n this.onFocus.emit();\n });\n }\n /**\n * Blurs the ColorPicker.\n */\n blur() {\n this.isFocused = false;\n this.host.nativeElement.blur();\n this.notifyNgTouched();\n }\n /**\n * @hidden\n */\n handleWrapperBlur() {\n if (this.isOpen) {\n return;\n }\n this.ngZone.run(() => {\n this.onBlur.emit();\n this.isFocused = false;\n });\n }\n /**\n * Clears the value of the ColorPicker.\n */\n reset() {\n if (!isPresent(this.value)) {\n return;\n }\n this._value = undefined;\n this.setHostElementAriaLabel();\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.cdr.markForCheck();\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) {\n const parsedColor = parseColor$1(color, this.format, this.gradientSettings.opacity);\n const valueChange = parsedColor !== this.value;\n if (valueChange) {\n this.value = parsedColor;\n this.valueChange.emit(parsedColor);\n this.setHostElementAriaLabel();\n this.notifyNgChanged(parsedColor);\n }\n }\n /**\n * @hidden\n */\n handlePopupBlur(event) {\n if (this.popupBlurInvalid(event)) {\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.cdr.markForCheck();\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.ngZone.run(() => {\n this.toggleWithEvents(true);\n });\n }\n }\n /**\n * @hidden\n */\n handlePopupKeyDown(event) {\n if (event.keyCode === Keys.Escape) {\n this.toggleWithEvents(false);\n this.host.nativeElement.focus();\n }\n if (event.keyCode === Keys.Tab) {\n const currentElement = event.shiftKey ? this.firstFocusableElement.nativeElement : this.lastFocusableElement.nativeElement;\n const nextElement = event.shiftKey ? this.lastFocusableElement.nativeElement : this.firstFocusableElement.nativeElement;\n if (event.target === currentElement) {\n event.preventDefault();\n nextElement.focus();\n }\n }\n }\n /**\n * @hidden\n * Used by the FloatingLabel to determine if the component is empty.\n */\n isEmpty() {\n return false;\n }\n setHostElementAriaLabel() {\n const ariaLabelValue = `${this.value ? this.value : this.localizationService.get('colorPickerNoColor')}`;\n this.renderer.setAttribute(this.host.nativeElement, 'aria-label', ariaLabelValue);\n }\n handleClasses(value, input) {\n const elem = this.host.nativeElement;\n const classes = getStylingClasses('picker', input, this[input], value);\n if (classes.toRemove) {\n this.renderer.removeClass(elem, classes.toRemove);\n }\n if (classes.toAdd) {\n this.renderer.addClass(elem, classes.toAdd);\n }\n }\n popupBlurInvalid(ev) {\n const focusInFlatColorPickerElement = this.popupRef.popupElement.contains(ev.relatedTarget);\n const hostClicked = closest(ev.relatedTarget, (element) => element === this.host.nativeElement);\n return hostClicked || focusInFlatColorPickerElement;\n }\n toggleWithEvents(open) {\n const sameState = this.isOpen === open;\n if (this.disabled || this.readonly || sameState) {\n return;\n }\n let eventArgs;\n if (open) {\n eventArgs = new ColorPickerOpenEvent();\n this.open.emit(eventArgs);\n }\n else {\n eventArgs = new ColorPickerCloseEvent();\n this.close.emit(eventArgs);\n }\n if (!eventArgs.isDefaultPrevented()) {\n this.toggle(open);\n }\n if (open) {\n this.focusFirstElement();\n }\n }\n focusFirstElement() {\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n if (this.flatColorPicker) {\n const gradient = this.flatColorPicker.gradient;\n const elementToFocus = gradient ? gradient.gradientDragHandle :\n this.flatColorPicker.palette.host;\n elementToFocus.nativeElement.focus();\n }\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.activeColor,\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.host.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 }\n get firstFocusableElement() {\n if (!this.flatColorPicker.header || (this.views.length <= 1 && !this.flatColorPicker.clearButton)) {\n const gradient = this.flatColorPicker.gradient;\n return gradient ? gradient.gradientDragHandle : this.flatColorPicker.palette.host;\n }\n return this.views.length > 1 ? this.flatColorPicker.header.viewButtonsCollection.toArray()[0] : this.flatColorPicker.header.clearButtonElement;\n }\n get lastFocusableElement() {\n if (this.preview) {\n return this.flatColorPicker.footer.lastButton;\n }\n if (this.flatColorPicker.palette) {\n return this.flatColorPicker.palette.host;\n }\n const gradient = this.flatColorPicker.gradient;\n const inputs = gradient && gradient.inputs;\n if (gradient && inputs && inputs.formatView === 'hex') {\n return inputs.hexInput;\n }\n return this.gradientSettings.opacity ? inputs.opacityInput.numericInput : inputs.blueInput;\n }\n handleDomEvents(action, events) {\n const hostElement = this.host.nativeElement;\n events.forEach(ev => hostElement[`${action}EventListener`](ev, this.domFocusListener, true));\n }\n initDomEvents() {\n if (!this.host) {\n return;\n }\n let hostElement = this.host.nativeElement;\n this.ngZone.runOutsideAngular(() => {\n this.subscriptions.add(this.renderer.listen(hostElement, 'focusin', () => {\n this.handleWrapperFocus();\n }));\n this.subscriptions.add(this.renderer.listen(hostElement, 'focusout', (event) => {\n const closestPopup = this.popupRef ?\n closest(event.relatedTarget, (element) => element === this.flatColorPicker.host.nativeElement) :\n false;\n const closestWrapper = closest(event.relatedTarget, (element) => element === this.host.nativeElement);\n if (!closestPopup && !closestWrapper) {\n this.handleWrapperBlur();\n }\n }));\n this.handleDomEvents('add', DOM_FOCUS_EVENTS);\n this.subscriptions.add(this.renderer.listen(hostElement, 'keydown', (event) => {\n this.handleWrapperKeyDown(event);\n }));\n this.subscriptions.add(this.renderer.listen(hostElement, 'click', (event) => {\n this.ngZone.run(() => {\n this.handleWrapperClick(event);\n });\n }));\n });\n }\n handleHostId() {\n const hostElement = this.host.nativeElement;\n const existingId = hostElement.getAttribute('id');\n if (existingId) {\n this.focusableId = existingId;\n }\n else {\n const id = `k-${guid()}`;\n hostElement.setAttribute('id', id);\n this.focusableId = id;\n }\n }\n};\nColorPickerComponent.ɵfac = function ColorPickerComponent_Factory(t) { return new (t || ColorPickerComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc5.PopupService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nColorPickerComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColorPickerComponent, selectors: [[\"kendo-colorpicker\"]], viewQuery: function ColorPickerComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c114, 7, ViewContainerRef);\n ɵngcc0.ɵɵviewQuery(_c115, 7);\n ɵngcc0.ɵɵviewQuery(_c116, 7);\n ɵngcc0.ɵɵviewQuery(_c117, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.container = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.activeColor = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.popupTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.flatColorPicker = _t.first);\n } }, hostVars: 16, hostBindings: function ColorPickerComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"role\", ctx.role)(\"dir\", ctx.direction)(\"aria-disabled\", ctx.disabledClass)(\"aria-readonly\", ctx.ariaReadonly)(\"aria-expanded\", ctx.ariaExpanded)(\"tabindex\", ctx.hostTabindex);\n ɵngcc0.ɵɵclassProp(\"k-colorpicker\", ctx.hostClasses)(\"k-icon-picker\", ctx.hostClasses)(\"k-picker\", ctx.hostClasses)(\"k-focus\", ctx.focusedClass)(\"k-disabled\", ctx.disabledClass);\n } }, inputs: { views: \"views\", readonly: \"readonly\", disabled: \"disabled\", format: \"format\", clearButton: \"clearButton\", preview: \"preview\", actionsLayout: \"actionsLayout\", view: \"view\", value: \"value\", popupSettings: \"popupSettings\", paletteSettings: \"paletteSettings\", gradientSettings: \"gradientSettings\", tabindex: \"tabindex\", size: \"size\", rounded: \"rounded\", fillMode: \"fillMode\", activeView: \"activeView\", icon: \"icon\", iconClass: \"iconClass\" }, outputs: { valueChange: \"valueChange\", open: \"open\", close: \"close\", onFocus: \"focus\", onBlur: \"blur\", cancel: \"cancel\", activeColorClick: \"activeColorClick\", activeViewChange: \"activeViewChange\" }, exportAs: [\"kendoColorPicker\"], features: [ɵngcc0.ɵɵProvidersFeature([{\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ColorPickerComponent_1)\n }, {\n provide: KendoInput,\n useExisting: forwardRef(() => ColorPickerComponent_1)\n },\n ColorPickerLocalizationService,\n {\n provide: LocalizationService,\n useExisting: ColorPickerLocalizationService\n },\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.colorpicker'\n }\n ]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 12, vars: 7, consts: function () { let i18n_118; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The aria-label applied to the ColorPicker component when the value is empty.\n * @meaning kendo.colorpicker.colorPickerNoColor\n */\n const MSG_EXTERNAL_1340294849455907833$$DIST_FESM2015_INDEX_JS_119 = goog.getMsg(\"Colorpicker no color chosen\");\n i18n_118 = MSG_EXTERNAL_1340294849455907833$$DIST_FESM2015_INDEX_JS_119;\n }\n else {\n i18n_118 = $localize `:kendo.colorpicker.colorPickerNoColor|The aria-label applied to the ColorPicker component when the value is empty.␟7c3447a392ec09d287cf7e50665618ab839ade9c␟1340294849455907833:Colorpicker no color chosen`;\n } let i18n_120; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The aria-label applied to the FlatColorPicker component when the value is empty.\n * @meaning kendo.colorpicker.flatColorPickerNoColor\n */\n const MSG_EXTERNAL_8623881855258235902$$DIST_FESM2015_INDEX_JS_121 = goog.getMsg(\"Flatcolorpicker no color chosen\");\n i18n_120 = MSG_EXTERNAL_8623881855258235902$$DIST_FESM2015_INDEX_JS_121;\n }\n else {\n i18n_120 = $localize `:kendo.colorpicker.flatColorPickerNoColor|The aria-label applied to the FlatColorPicker component when the value is empty.␟61f9933a789c369354c4667e0d3a141e325ccde6␟8623881855258235902:Flatcolorpicker no color chosen`;\n } let i18n_122; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The aria-label applied to the ColorGradient component when the value is empty.\n * @meaning kendo.colorpicker.colorGradientNoColor\n */\n const MSG_EXTERNAL_6221387158064831532$$DIST_FESM2015_INDEX_JS_123 = goog.getMsg(\"Colorgradient no color chosen\");\n i18n_122 = MSG_EXTERNAL_6221387158064831532$$DIST_FESM2015_INDEX_JS_123;\n }\n else {\n i18n_122 = $localize `:kendo.colorpicker.colorGradientNoColor|The aria-label applied to the ColorGradient component when the value is empty.␟dbf775c5b891411f7520ad91edc53ed0f05dec7e␟6221387158064831532:Colorgradient no color chosen`;\n } let i18n_124; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The aria-label applied to the ColorPalette component when the value is empty.\n * @meaning kendo.colorpicker.colorPaletteNoColor\n */\n const MSG_EXTERNAL_5352972813211368132$$DIST_FESM2015_INDEX_JS_125 = goog.getMsg(\"Colorpalette no color chosen\");\n i18n_124 = MSG_EXTERNAL_5352972813211368132$$DIST_FESM2015_INDEX_JS_125;\n }\n else {\n i18n_124 = $localize `:kendo.colorpicker.colorPaletteNoColor|The aria-label applied to the ColorPalette component when the value is empty.␟9270d89615ca09f37e9df55453be6d7e24e5eb09␟5352972813211368132:Colorpalette no color chosen`;\n } let i18n_126; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title for the gradient color drag handle chooser.\n * @meaning kendo.colorpicker.colorGradientHandle\n */\n const MSG_EXTERNAL_8067778471922495440$$DIST_FESM2015_INDEX_JS_127 = goog.getMsg(\"Choose color\");\n i18n_126 = MSG_EXTERNAL_8067778471922495440$$DIST_FESM2015_INDEX_JS_127;\n }\n else {\n i18n_126 = $localize `:kendo.colorpicker.colorGradientHandle|The title for the gradient color drag handle chooser.␟8d537502a437254763c963398484bd362820af61␟8067778471922495440:Choose color`;\n } let i18n_128; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title for the clear button.\n * @meaning kendo.colorpicker.clearButton\n */\n const MSG_EXTERNAL_935472034136733879$$DIST_FESM2015_INDEX_JS_129 = goog.getMsg(\"Clear value\");\n i18n_128 = MSG_EXTERNAL_935472034136733879$$DIST_FESM2015_INDEX_JS_129;\n }\n else {\n i18n_128 = $localize `:kendo.colorpicker.clearButton|The title for the clear button.␟aae9caf1dbc689cd51ace5c265cbf45552a580b6␟935472034136733879:Clear value`;\n } let i18n_130; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title for the hue slider handle.\n * @meaning kendo.colorpicker.hueSliderHandle\n */\n const MSG_EXTERNAL_1739045502529621844$$DIST_FESM2015_INDEX_JS_131 = goog.getMsg(\"Set hue\");\n i18n_130 = MSG_EXTERNAL_1739045502529621844$$DIST_FESM2015_INDEX_JS_131;\n }\n else {\n i18n_130 = $localize `:kendo.colorpicker.hueSliderHandle|The title for the hue slider handle.␟7af8ad339d09d41bfa8fa5f4e44d16e326cafd54␟1739045502529621844:Set hue`;\n } let i18n_132; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title for the opacity slider handle.\n * @meaning kendo.colorpicker.opacitySliderHandle\n */\n const MSG_EXTERNAL_1818720388700598438$$DIST_FESM2015_INDEX_JS_133 = goog.getMsg(\"Set opacity\");\n i18n_132 = MSG_EXTERNAL_1818720388700598438$$DIST_FESM2015_INDEX_JS_133;\n }\n else {\n i18n_132 = $localize `:kendo.colorpicker.opacitySliderHandle|The title for the opacity slider handle.␟21883ee2927bd4cde8071c9cbec41901a0bc4bd2␟1818720388700598438:Set opacity`;\n } let i18n_134; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The contrast ratio message for the contrast tool.\n * @meaning kendo.colorpicker.contrastRatio\n */\n const MSG_EXTERNAL_8969373292032928669$$DIST_FESM2015_INDEX_JS_135 = goog.getMsg(\"Contrast ratio\");\n i18n_134 = MSG_EXTERNAL_8969373292032928669$$DIST_FESM2015_INDEX_JS_135;\n }\n else {\n i18n_134 = $localize `:kendo.colorpicker.contrastRatio|The contrast ratio message for the contrast tool.␟027baefc2ecbe8b12eda4768cd8f3c9ff30959bb␟8969373292032928669:Contrast ratio`;\n } let i18n_136; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The message for the color preview pane.\n * @meaning kendo.colorpicker.previewColor\n */\n const MSG_EXTERNAL_8406287813424834207$$DIST_FESM2015_INDEX_JS_137 = goog.getMsg(\"Color preview\");\n i18n_136 = MSG_EXTERNAL_8406287813424834207$$DIST_FESM2015_INDEX_JS_137;\n }\n else {\n i18n_136 = $localize `:kendo.colorpicker.previewColor|The message for the color preview pane.␟ff9d86ffb5fb4883b2eafcc7b0265750010e6a89␟8406287813424834207:Color preview`;\n } let i18n_138; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The message for the selected color pane.\n * @meaning kendo.colorpicker.revertSelection\n */\n const MSG_EXTERNAL_1125923622405755722$$DIST_FESM2015_INDEX_JS_139 = goog.getMsg(\"Revert selection\");\n i18n_138 = MSG_EXTERNAL_1125923622405755722$$DIST_FESM2015_INDEX_JS_139;\n }\n else {\n i18n_138 = $localize `:kendo.colorpicker.revertSelection|The message for the selected color pane.␟01f55ab6fd7df0660ed6d63d931a1a1d00e49462␟1125923622405755722:Revert selection`;\n } let i18n_140; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The message for the gradient view button.\n * @meaning kendo.colorpicker.gradientView\n */\n const MSG_EXTERNAL_1444507009750003894$$DIST_FESM2015_INDEX_JS_141 = goog.getMsg(\"Gradient view\");\n i18n_140 = MSG_EXTERNAL_1444507009750003894$$DIST_FESM2015_INDEX_JS_141;\n }\n else {\n i18n_140 = $localize `:kendo.colorpicker.gradientView|The message for the gradient view button.␟2cc4cf38fc047a802f03c26ad6fef9f4c91f5214␟1444507009750003894:Gradient view`;\n } let i18n_142; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The message for the palette view button.\n * @meaning kendo.colorpicker.paletteView\n */\n const MSG_EXTERNAL_8652010593499539657$$DIST_FESM2015_INDEX_JS_143 = goog.getMsg(\"Palette view\");\n i18n_142 = MSG_EXTERNAL_8652010593499539657$$DIST_FESM2015_INDEX_JS_143;\n }\n else {\n i18n_142 = $localize `:kendo.colorpicker.paletteView|The message for the palette view button.␟eb619ae6d7ce5082cc8e5c691d58af34e6fe94b2␟8652010593499539657:Palette view`;\n } let i18n_144; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The message for the input format toggle button.\n * @meaning kendo.colorpicker.formatButton\n */\n const MSG_EXTERNAL_881261150447277777$$DIST_FESM2015_INDEX_JS_145 = goog.getMsg(\"Change color format\");\n i18n_144 = MSG_EXTERNAL_881261150447277777$$DIST_FESM2015_INDEX_JS_145;\n }\n else {\n i18n_144 = $localize `:kendo.colorpicker.formatButton|The message for the input format toggle button.␟1fe33e253e9f8b4f78c55c986162f362885dc943␟881261150447277777:Change color format`;\n } let i18n_146; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The message for the Apply action button.\n * @meaning kendo.colorpicker.applyButton\n */\n const MSG_EXTERNAL_4840607412933012087$$DIST_FESM2015_INDEX_JS_147 = goog.getMsg(\"Apply\");\n i18n_146 = MSG_EXTERNAL_4840607412933012087$$DIST_FESM2015_INDEX_JS_147;\n }\n else {\n i18n_146 = $localize `:kendo.colorpicker.applyButton|The message for the Apply action button.␟3940d0414a97268cc9b6ee8d16f71911303fc0ab␟4840607412933012087:Apply`;\n } let i18n_148; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The message for the Cancel action button.\n * @meaning kendo.colorpicker.cancelButton\n */\n const MSG_EXTERNAL_7096794076383355871$$DIST_FESM2015_INDEX_JS_149 = goog.getMsg(\"Cancel\");\n i18n_148 = MSG_EXTERNAL_7096794076383355871$$DIST_FESM2015_INDEX_JS_149;\n }\n else {\n i18n_148 = $localize `:kendo.colorpicker.cancelButton|The message for the Cancel action button.␟4e24d8f47748af7f728320c85d0585548987adfb␟7096794076383355871:Cancel`;\n } return [[\"kendoColorPickerLocalizedMessages\", \"\", \"colorPickerNoColor\", i18n_118, \"flatColorPickerNoColor\", i18n_120, \"colorGradientNoColor\", i18n_122, \"colorPaletteNoColor\", i18n_124, \"colorGradientHandle\", i18n_126, \"clearButton\", i18n_128, \"hueSliderHandle\", i18n_130, \"opacitySliderHandle\", i18n_132, \"contrastRatio\", i18n_134, \"previewColor\", i18n_136, \"revertSelection\", i18n_138, \"gradientView\", i18n_140, \"paletteView\", i18n_142, \"formatButton\", i18n_144, \"applyButton\", i18n_146, \"cancelButton\", i18n_148], [1, \"k-input-inner\"], [\"activeColor\", \"\"], [1, \"k-value-icon\", \"k-color-preview\", 3, \"ngClass\"], [\"class\", \"k-color-preview-icon k-icon\", 3, \"ngClass\", 4, \"ngIf\"], [1, \"k-color-preview-mask\"], [\"tabindex\", \"-1\", \"type\", \"button\", 1, \"k-input-button\", \"k-button\", \"k-button-md\", \"k-button-solid\", \"k-button-solid-base\", \"k-icon-button\"], [1, \"k-button-icon\", \"k-icon\", \"k-i-arrow-s\"], [\"popupTemplate\", \"\"], [\"container\", \"\"], [1, \"k-color-preview-icon\", \"k-icon\", 3, \"ngClass\"], [3, \"value\", \"format\", \"views\", \"activeView\", \"actionsLayout\", \"preview\", \"gradientSettings\", \"paletteSettings\", \"clearButton\", \"cancel\", \"focusout\", \"valueChange\", \"keydown\", \"activeViewChange\", \"actionButtonClick\"], [\"flatColorPicker\", \"\"]]; }, template: function ColorPickerComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 0);\n ɵngcc0.ɵɵelementStart(1, \"span\", 1, 2)(3, \"span\", 3);\n ɵngcc0.ɵɵtemplate(4, ColorPickerComponent_span_4_Template, 1, 1, \"span\", 4);\n ɵngcc0.ɵɵelement(5, \"span\", 5);\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵelementStart(6, \"button\", 6);\n ɵngcc0.ɵɵelement(7, \"span\", 7);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(8, ColorPickerComponent_ng_template_8_Template, 2, 9, \"ng-template\", null, 8, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵelementContainer(10, null, 9);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction2(4, _c150, ctx.iconStyles, !ctx.value));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.iconClass || ctx.icon);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵstyleProp(\"background-color\", ctx.value);\n } }, directives: function () { return [LocalizedColorPickerMessagesDirective, ɵngcc3.NgClass, ɵngcc3.NgIf, FlatColorPickerComponent]; }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-colorpicker'),\n HostBinding('class.k-icon-picker'),\n HostBinding('class.k-picker'),\n __metadata(\"design:type\", Boolean)\n], ColorPickerComponent.prototype, \"hostClasses\", void 0);\n__decorate([\n HostBinding('class.k-focus'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ColorPickerComponent.prototype, \"focusedClass\", null);\n__decorate([\n HostBinding('attr.aria-disabled'),\n HostBinding('class.k-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ColorPickerComponent.prototype, \"disabledClass\", null);\n__decorate([\n HostBinding('attr.aria-readonly'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ColorPickerComponent.prototype, \"ariaReadonly\", null);\n__decorate([\n HostBinding('attr.aria-expanded'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ColorPickerComponent.prototype, \"ariaExpanded\", null);\n__decorate([\n HostBinding('attr.tabindex'),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [])\n], ColorPickerComponent.prototype, \"hostTabindex\", null);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String)\n], ColorPickerComponent.prototype, \"direction\", void 0);\n__decorate([\n HostBinding('attr.role'),\n __metadata(\"design:type\", String)\n], ColorPickerComponent.prototype, \"role\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], ColorPickerComponent.prototype, \"views\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ColorPickerComponent.prototype, \"view\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorPickerComponent.prototype, \"activeView\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColorPickerComponent.prototype, \"readonly\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColorPickerComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorPickerComponent.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ColorPickerComponent.prototype, \"value\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], ColorPickerComponent.prototype, \"popupSettings\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], ColorPickerComponent.prototype, \"paletteSettings\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], ColorPickerComponent.prototype, \"gradientSettings\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorPickerComponent.prototype, \"icon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColorPickerComponent.prototype, \"iconClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColorPickerComponent.prototype, \"clearButton\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], ColorPickerComponent.prototype, \"tabindex\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColorPickerComponent.prototype, \"preview\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorPickerComponent.prototype, \"actionsLayout\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ColorPickerComponent.prototype, \"size\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ColorPickerComponent.prototype, \"rounded\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ColorPickerComponent.prototype, \"fillMode\", null);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ColorPickerComponent.prototype, \"valueChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ColorPickerComponent.prototype, \"open\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ColorPickerComponent.prototype, \"close\", void 0);\n__decorate([\n Output('focus'),\n __metadata(\"design:type\", EventEmitter)\n], ColorPickerComponent.prototype, \"onFocus\", void 0);\n__decorate([\n Output('blur'),\n __metadata(\"design:type\", EventEmitter)\n], ColorPickerComponent.prototype, \"onBlur\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ColorPickerComponent.prototype, \"cancel\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ColorPickerComponent.prototype, \"activeColorClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ColorPickerComponent.prototype, \"activeViewChange\", void 0);\n__decorate([\n ViewChild('container', { read: ViewContainerRef, static: true }),\n __metadata(\"design:type\", ViewContainerRef)\n], ColorPickerComponent.prototype, \"container\", void 0);\n__decorate([\n ViewChild('activeColor', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], ColorPickerComponent.prototype, \"activeColor\", void 0);\n__decorate([\n ViewChild('popupTemplate', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], ColorPickerComponent.prototype, \"popupTemplate\", void 0);\n__decorate([\n ViewChild('flatColorPicker', { static: false }),\n __metadata(\"design:type\", FlatColorPickerComponent)\n], ColorPickerComponent.prototype, \"flatColorPicker\", void 0);\nColorPickerComponent = ColorPickerComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n PopupService,\n ChangeDetectorRef,\n LocalizationService,\n NgZone,\n Renderer2])\n], ColorPickerComponent);\n\n/**\n * @hidden\n */\nclass ColorPickerMessages extends ComponentMessages {\n}\nColorPickerMessages.ɵfac = /*@__PURE__*/ function () { let ɵColorPickerMessages_BaseFactory; return function ColorPickerMessages_Factory(t) { return (ɵColorPickerMessages_BaseFactory || (ɵColorPickerMessages_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(ColorPickerMessages)))(t || ColorPickerMessages); }; }();\nColorPickerMessages.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ColorPickerMessages, inputs: { colorPaletteNoColor: \"colorPaletteNoColor\", colorGradientNoColor: \"colorGradientNoColor\", flatColorPickerNoColor: \"flatColorPickerNoColor\", colorPickerNoColor: \"colorPickerNoColor\", colorGradientHandle: \"colorGradientHandle\", clearButton: \"clearButton\", hueSliderHandle: \"hueSliderHandle\", opacitySliderHandle: \"opacitySliderHandle\", hexInputPlaceholder: \"hexInputPlaceholder\", redInputPlaceholder: \"redInputPlaceholder\", greenInputPlaceholder: \"greenInputPlaceholder\", blueInputPlaceholder: \"blueInputPlaceholder\", alphaInputPlaceholder: \"alphaInputPlaceholder\", passContrast: \"passContrast\", failContrast: \"failContrast\", contrastRatio: \"contrastRatio\", previewColor: \"previewColor\", revertSelection: \"revertSelection\", gradientView: \"gradientView\", paletteView: \"paletteView\", formatButton: \"formatButton\", applyButton: \"applyButton\", cancelButton: \"cancelButton\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorPickerMessages.prototype, \"colorPaletteNoColor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorPickerMessages.prototype, \"colorGradientNoColor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorPickerMessages.prototype, \"flatColorPickerNoColor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorPickerMessages.prototype, \"colorPickerNoColor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorPickerMessages.prototype, \"colorGradientHandle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorPickerMessages.prototype, \"clearButton\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorPickerMessages.prototype, \"hueSliderHandle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorPickerMessages.prototype, \"opacitySliderHandle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorPickerMessages.prototype, \"hexInputPlaceholder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorPickerMessages.prototype, \"redInputPlaceholder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorPickerMessages.prototype, \"greenInputPlaceholder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorPickerMessages.prototype, \"blueInputPlaceholder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorPickerMessages.prototype, \"alphaInputPlaceholder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorPickerMessages.prototype, \"passContrast\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorPickerMessages.prototype, \"failContrast\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorPickerMessages.prototype, \"contrastRatio\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorPickerMessages.prototype, \"previewColor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorPickerMessages.prototype, \"revertSelection\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorPickerMessages.prototype, \"gradientView\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorPickerMessages.prototype, \"paletteView\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorPickerMessages.prototype, \"formatButton\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorPickerMessages.prototype, \"applyButton\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorPickerMessages.prototype, \"cancelButton\", void 0);\n\nvar ColorPickerCustomMessagesComponent_1;\n/**\n * Custom component messages override default component messages.\n */\nlet ColorPickerCustomMessagesComponent = ColorPickerCustomMessagesComponent_1 = class ColorPickerCustomMessagesComponent extends ColorPickerMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n};\nColorPickerCustomMessagesComponent.ɵfac = function ColorPickerCustomMessagesComponent_Factory(t) { return new (t || ColorPickerCustomMessagesComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nColorPickerCustomMessagesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColorPickerCustomMessagesComponent, selectors: [[\"kendo-colorpicker-messages\"], [\"kendo-flatcolorpicker-messages\"], [\"kendo-colorgradient-messages\"], [\"kendo-colorpalette-messages\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: ColorPickerMessages,\n useExisting: forwardRef(() => ColorPickerCustomMessagesComponent_1) // tslint:disable-line:no-forward-ref\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function ColorPickerCustomMessagesComponent_Template(rf, ctx) { }, encapsulation: 2 });\nColorPickerCustomMessagesComponent = ColorPickerCustomMessagesComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], ColorPickerCustomMessagesComponent);\n\nvar LocalizedColorPickerMessagesDirective_1;\n/**\n * @hidden\n */\nlet LocalizedColorPickerMessagesDirective = LocalizedColorPickerMessagesDirective_1 = class LocalizedColorPickerMessagesDirective extends ColorPickerMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n};\nLocalizedColorPickerMessagesDirective.ɵfac = function LocalizedColorPickerMessagesDirective_Factory(t) { return new (t || LocalizedColorPickerMessagesDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nLocalizedColorPickerMessagesDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LocalizedColorPickerMessagesDirective, selectors: [[\"\", \"kendoColorPickerLocalizedMessages\", \"\"], [\"\", \"kendoFlatColorPickerLocalizedMessages\", \"\"], [\"\", \"kendoColorGradientLocalizedMessages\", \"\"], [\"\", \"kendoColorPaletteLocalizedMessages\", \"\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: ColorPickerMessages,\n useExisting: forwardRef(() => LocalizedColorPickerMessagesDirective_1) // tslint:disable-line:no-forward-ref\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature] });\nLocalizedColorPickerMessagesDirective = LocalizedColorPickerMessagesDirective_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], LocalizedColorPickerMessagesDirective);\n\n/**\n * @hidden\n */\nlet FocusOnDomReadyDirective = class 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.ɵfac = function FocusOnDomReadyDirective_Factory(t) { return new (t || FocusOnDomReadyDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nFocusOnDomReadyDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: FocusOnDomReadyDirective, selectors: [[\"\", \"kendoFocusOnDomReady\", \"\"]] });\nFocusOnDomReadyDirective = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n NgZone])\n], FocusOnDomReadyDirective);\n\n/**\n * @hidden\n */\nlet ContrastValidationComponent = class ContrastValidationComponent {\n constructor(localization) {\n this.localization = localization;\n }\n get passMessage() {\n return this.localization.get('passContrast');\n }\n get failMessage() {\n return this.localization.get('failContrast');\n }\n get contrastText() {\n let ratio = this.type === 'AA' ? AA_RATIO : AAA_RATIO;\n return `${this.type}: ${ratio.toFixed(1)}`;\n }\n};\nContrastValidationComponent.ɵfac = function ContrastValidationComponent_Factory(t) { return new (t || ContrastValidationComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nContrastValidationComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ContrastValidationComponent, selectors: [[\"\", \"kendoContrastValidation\", \"\"]], inputs: { type: \"type\", pass: \"pass\", value: \"value\" }, attrs: _c151, decls: 3, vars: 2, consts: [[4, \"ngIf\"], [\"class\", \"k-contrast-validation k-text-success\", 4, \"ngIf\"], [\"class\", \"k-contrast-validation k-text-error\", 4, \"ngIf\"], [1, \"k-contrast-validation\", \"k-text-success\"], [1, \"k-icon\", \"k-i-check\"], [1, \"k-contrast-validation\", \"k-text-error\"], [1, \"k-icon\", \"k-i-close\"]], template: function ContrastValidationComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\");\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(2, ContrastValidationComponent_ng_container_2_Template, 3, 2, \"ng-container\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx.contrastText);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.value);\n } }, directives: [ɵngcc3.NgIf], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ContrastValidationComponent.prototype, \"type\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ContrastValidationComponent.prototype, \"pass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ContrastValidationComponent.prototype, \"value\", void 0);\nContrastValidationComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], ContrastValidationComponent);\n\n/**\n * @hidden\n */\nlet ContrastComponent = class ContrastComponent {\n constructor(localization) {\n this.localization = localization;\n }\n get formatedRatio() {\n return this.contrastRatio.toFixed(2);\n }\n get contrastRatioText() {\n return `${this.localization.get('contrastRatio')}: ${this.value ? this.formatedRatio : 'n/a'}`;\n }\n get satisfiesAACondition() {\n return this.contrastRatio >= AA_RATIO;\n }\n get satisfiesAAACondition() {\n return this.contrastRatio >= AAA_RATIO;\n }\n get contrastRatio() {\n let contrast = getContrastFromTwoRGBAs(getRGBA(this.value), getRGBA(this.ratio));\n return contrast;\n }\n};\nContrastComponent.ɵfac = function ContrastComponent_Factory(t) { return new (t || ContrastComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nContrastComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ContrastComponent, selectors: [[\"\", \"kendoContrastTool\", \"\"]], inputs: { value: \"value\", ratio: \"ratio\" }, attrs: _c152, decls: 6, vars: 6, consts: [[1, \"k-contrast-ratio\"], [1, \"k-contrast-ratio-text\"], [4, \"ngIf\"], [\"kendoContrastValidation\", \"\", \"type\", \"AA\", 3, \"value\", \"pass\"], [\"kendoContrastValidation\", \"\", \"type\", \"AAA\", 3, \"value\", \"pass\"], [\"class\", \"k-contrast-validation k-text-success\", 4, \"ngIf\"], [\"class\", \"k-contrast-validation k-text-error\", 4, \"ngIf\"], [1, \"k-contrast-validation\", \"k-text-success\"], [1, \"k-icon\", \"k-i-check\"], [\"class\", \"k-icon k-i-check\", 4, \"ngIf\"], [1, \"k-contrast-validation\", \"k-text-error\"], [1, \"k-icon\", \"k-i-close\"]], template: function ContrastComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 0)(1, \"span\", 1);\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, ContrastComponent_ng_container_3_Template, 3, 2, \"ng-container\", 2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelement(4, \"div\", 3)(5, \"div\", 4);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate(ctx.contrastRatioText);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.value);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"value\", ctx.value)(\"pass\", ctx.satisfiesAACondition);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"value\", ctx.value)(\"pass\", ctx.satisfiesAAACondition);\n } }, directives: [ɵngcc3.NgIf, ContrastValidationComponent], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ContrastComponent.prototype, \"value\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ContrastComponent.prototype, \"ratio\", void 0);\nContrastComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], ContrastComponent);\n\n/**\n * @hidden\n */\nlet ColorContrastSvgComponent = class ColorContrastSvgComponent {\n /**\n * @hidden\n */\n constructor() {\n this.hostClass = true;\n }\n ngAfterViewInit() {\n this.metrics = this.wrapper.getBoundingClientRect();\n this.oldA = this.hsva.value.a;\n this.oldH = this.hsva.value.h;\n this.hsva.subscribe((value) => {\n if (value.h !== this.oldH || value.a !== this.oldA) {\n this.oldH = value.h;\n this.oldA = value.a;\n this.setPaths();\n }\n });\n }\n ngOnChanges(changes) {\n if (isPresent(changes.backgroundColor) && this.metrics) {\n this.setPaths();\n }\n }\n setPaths() {\n const bezierCommandCalc = bezierCommand(controlPoint(line));\n this.paths = [svgPath(this.getPaths(AA_RATIO, STEP_COUNT), bezierCommandCalc),\n svgPath(this.getPaths(AA_RATIO, STEP_COUNT, true), bezierCommandCalc),\n svgPath(this.getPaths(AAA_RATIO, STEP_COUNT), bezierCommandCalc),\n svgPath(this.getPaths(AAA_RATIO, STEP_COUNT, true), bezierCommandCalc)];\n }\n findValue(contrast, saturation, low, high, comparer) {\n const mid = (low + high) / 2;\n const hsva = Object.assign({}, this.hsva.value, { s: saturation / this.metrics.width, v: 1 - mid / this.metrics.height });\n const currentContrast = getContrastFromTwoRGBAs(getRGBA(getColorFromHSV(hsva)), getRGBA(this.backgroundColor || ''));\n if (low + 0.5 > high) {\n if (currentContrast < contrast + 1 && currentContrast > contrast - 1) {\n return mid;\n }\n else {\n return null;\n }\n }\n if (comparer(currentContrast, contrast)) {\n return this.findValue(contrast, saturation, low, high - (high - low) / 2, comparer);\n }\n return this.findValue(contrast, saturation, low + (high - low) / 2, high, comparer);\n }\n getPaths(contrast, stepCount, reversed = false) {\n const points = [];\n for (let i = 0; i <= this.metrics.width; i += this.metrics.width / stepCount) {\n const value = this.findValue(contrast, i, 0, this.metrics.height, reversed ? ((a, b) => a < b) : ((a, b) => a > b));\n if (value !== null) {\n points.push([i, value]);\n }\n }\n return points;\n }\n};\nColorContrastSvgComponent.ɵfac = function ColorContrastSvgComponent_Factory(t) { return new (t || ColorContrastSvgComponent)(); };\nColorContrastSvgComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColorContrastSvgComponent, selectors: [[\"\", \"kendoColorContrastSvg\", \"\"]], hostVars: 2, hostBindings: function ColorContrastSvgComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-color-contrast-svg\", ctx.hostClass);\n } }, inputs: { wrapper: \"wrapper\", hsva: \"hsva\", backgroundColor: \"backgroundColor\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], attrs: _c153, decls: 1, vars: 1, consts: [[\"fill\", \"none\", \"stroke\", \"white\", \"stroke-width\", \"1\", 4, \"ngFor\", \"ngForOf\"], [\"fill\", \"none\", \"stroke\", \"white\", \"stroke-width\", \"1\"]], template: function ColorContrastSvgComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ColorContrastSvgComponent__svg_path_0_Template, 1, 1, \"path\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.paths);\n } }, directives: [ɵngcc3.NgForOf], encapsulation: 2 });\n__decorate([\n HostBinding('class.k-color-contrast-svg'),\n __metadata(\"design:type\", Boolean)\n], ColorContrastSvgComponent.prototype, \"hostClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColorContrastSvgComponent.prototype, \"wrapper\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", BehaviorSubject)\n], ColorContrastSvgComponent.prototype, \"hsva\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColorContrastSvgComponent.prototype, \"backgroundColor\", void 0);\n\nconst PUBLIC_DIRECTIVES = [\n ColorPickerComponent,\n ColorPaletteComponent,\n ColorGradientComponent,\n FlatColorPickerComponent,\n LocalizedColorPickerMessagesDirective,\n ColorPickerCustomMessagesComponent\n];\nconst INTERNAL_DIRECTIVES = [\n ColorInputComponent,\n FocusOnDomReadyDirective,\n ContrastComponent,\n ContrastValidationComponent,\n FlatColorPickerHeaderComponent,\n FlatColorPickerActionButtonsComponent,\n ColorContrastSvgComponent\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the ColorPicker.\n */\nlet ColorPickerModule = class ColorPickerModule {\n};\nColorPickerModule.ɵfac = function ColorPickerModule_Factory(t) { return new (t || ColorPickerModule)(); };\nColorPickerModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: ColorPickerModule });\nColorPickerModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[\n SliderModule,\n NumericTextBoxModule,\n CommonModule,\n PopupModule,\n DraggableModule\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 */\nlet CheckBoxDirective = class CheckBoxDirective {\n constructor(renderer, hostElement) {\n this.renderer = renderer;\n this.hostElement = hostElement;\n this.kendoClass = true;\n this._size = 'medium';\n this._rounded = 'medium';\n }\n /**\n * The size property specifies the width and height of the CheckBox\n * ([see example]({% slug appearance_checkboxdirective %}#toc-size)).\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `null`\n */\n set size(size) {\n this.handleClasses(size, 'size');\n this._size = size;\n }\n get size() {\n return this._size;\n }\n /**\n * The rounded property specifies the border radius of the CheckBox\n * ([see example]({% slug appearance_checkboxdirective %}#toc-rounded)).\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `null`\n */\n set rounded(rounded) {\n this.handleClasses(rounded, 'rounded');\n this._rounded = rounded;\n }\n get rounded() {\n return this._rounded;\n }\n ngAfterViewInit() {\n const stylingInputs = ['size', 'rounded'];\n stylingInputs.forEach(input => {\n this.handleClasses(this[input], input);\n });\n }\n handleClasses(value, input) {\n const elem = this.hostElement.nativeElement;\n const classes = getStylingClasses('checkbox', input, this[input], value);\n if (classes.toRemove) {\n this.renderer.removeClass(elem, classes.toRemove);\n }\n if (classes.toAdd) {\n this.renderer.addClass(elem, classes.toAdd);\n }\n }\n};\nCheckBoxDirective.ɵfac = function CheckBoxDirective_Factory(t) { return new (t || CheckBoxDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nCheckBoxDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CheckBoxDirective, selectors: [[\"input\", \"kendoCheckBox\", \"\"]], hostVars: 2, hostBindings: function CheckBoxDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-checkbox\", ctx.kendoClass);\n } }, inputs: { size: \"size\", rounded: \"rounded\" } });\n__decorate([\n HostBinding('class.k-checkbox'),\n __metadata(\"design:type\", Boolean)\n], CheckBoxDirective.prototype, \"kendoClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], CheckBoxDirective.prototype, \"size\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], CheckBoxDirective.prototype, \"rounded\", null);\nCheckBoxDirective = __decorate([ __metadata(\"design:paramtypes\", [Renderer2,\n ElementRef])\n], CheckBoxDirective);\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 */\nlet CheckBoxModule = class CheckBoxModule {\n};\nCheckBoxModule.ɵfac = function CheckBoxModule_Factory(t) { return new (t || CheckBoxModule)(); };\nCheckBoxModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: CheckBoxModule });\nCheckBoxModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule]] });\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 */\nlet RadioButtonDirective = class RadioButtonDirective {\n constructor(renderer, hostElement) {\n this.renderer = renderer;\n this.hostElement = hostElement;\n this.kendoClass = true;\n this._size = 'medium';\n validatePackage(packageMetadata);\n }\n /**\n * The size property specifies the width and height of the RadioButton\n * ([see example]({% slug appearance_radiobuttondirective %}#toc-size)).\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `null`\n */\n set size(size) {\n this.handleClasses(size, 'size');\n this._size = size;\n }\n get size() {\n return this._size;\n }\n ngAfterViewInit() {\n // kept in sync with other inputs for easier refactoring\n // to a common base class\n const stylingInputs = ['size'];\n stylingInputs.forEach(input => {\n this.handleClasses(this[input], input);\n });\n }\n handleClasses(value, input) {\n const elem = this.hostElement.nativeElement;\n const classes = getStylingClasses('radio', input, this[input], value);\n if (classes.toRemove) {\n this.renderer.removeClass(elem, classes.toRemove);\n }\n if (classes.toAdd) {\n this.renderer.addClass(elem, classes.toAdd);\n }\n }\n};\nRadioButtonDirective.ɵfac = function RadioButtonDirective_Factory(t) { return new (t || RadioButtonDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nRadioButtonDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: RadioButtonDirective, selectors: [[\"input\", \"kendoRadioButton\", \"\"]], hostVars: 2, hostBindings: function RadioButtonDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-radio\", ctx.kendoClass);\n } }, inputs: { size: \"size\" } });\n__decorate([\n HostBinding('class.k-radio'),\n __metadata(\"design:type\", Boolean)\n], RadioButtonDirective.prototype, \"kendoClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], RadioButtonDirective.prototype, \"size\", null);\nRadioButtonDirective = __decorate([ __metadata(\"design:paramtypes\", [Renderer2, ElementRef])\n], RadioButtonDirective);\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 */\nlet RadioButtonModule = class RadioButtonModule {\n};\nRadioButtonModule.ɵfac = function RadioButtonModule_Factory(t) { return new (t || RadioButtonModule)(); };\nRadioButtonModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: RadioButtonModule });\nRadioButtonModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule]] });\n\nlet serial$2 = 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 */\nlet ErrorComponent = class ErrorComponent {\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 */\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$2++}`;\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.ɵfac = function ErrorComponent_Factory(t) { return new (t || ErrorComponent)(); };\nErrorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ErrorComponent, selectors: [[\"kendo-formerror\"]], hostVars: 8, hostBindings: function ErrorComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"role\", ctx.roleAttribute)(\"id\", ctx.idAttribute);\n ɵngcc0.ɵɵclassProp(\"k-form-error\", ctx.hostClass)(\"k-text-start\", ctx.startClass)(\"k-text-end\", ctx.endClass);\n } }, inputs: { align: \"align\" }, ngContentSelectors: _c43, decls: 1, vars: 0, template: function ErrorComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵprojection(0);\n } }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-form-error'),\n __metadata(\"design:type\", Boolean)\n], ErrorComponent.prototype, \"hostClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ErrorComponent.prototype, \"align\", void 0);\n__decorate([\n HostBinding('attr.role'),\n __metadata(\"design:type\", String)\n], ErrorComponent.prototype, \"roleAttribute\", void 0);\n__decorate([\n HostBinding('class.k-text-start'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ErrorComponent.prototype, \"startClass\", null);\n__decorate([\n HostBinding('class.k-text-end'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ErrorComponent.prototype, \"endClass\", null);\n__decorate([\n HostBinding('attr.id'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], ErrorComponent.prototype, \"idAttribute\", null);\n\nlet serial$3 = 0;\n/**\n * Represents a hint message that will be shown underneath a form-bound component.\n */\nlet HintComponent = class HintComponent {\n /**\n * Represents a hint message that will be shown underneath a form-bound component.\n */\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$3++}`;\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.ɵfac = function HintComponent_Factory(t) { return new (t || HintComponent)(); };\nHintComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: HintComponent, selectors: [[\"kendo-formhint\"]], hostVars: 7, hostBindings: function HintComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"id\", ctx.idAttribute);\n ɵngcc0.ɵɵclassProp(\"k-form-hint\", ctx.hostClass)(\"k-text-start\", ctx.startClass)(\"k-text-end\", ctx.endClass);\n } }, inputs: { align: \"align\" }, ngContentSelectors: _c43, decls: 1, vars: 0, template: function HintComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵprojection(0);\n } }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], HintComponent.prototype, \"align\", void 0);\n__decorate([\n HostBinding('class.k-form-hint'),\n __metadata(\"design:type\", Boolean)\n], HintComponent.prototype, \"hostClass\", void 0);\n__decorate([\n HostBinding('class.k-text-start'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], HintComponent.prototype, \"startClass\", null);\n__decorate([\n HostBinding('class.k-text-end'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], HintComponent.prototype, \"endClass\", null);\n__decorate([\n HostBinding('attr.id'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], HintComponent.prototype, \"idAttribute\", null);\n\n/**\n * Specifies a container for form-bound controls (Kendo controls or native HTML controls).\n * Applies styling and behavior rules.\n */\nlet FormFieldComponent = class FormFieldComponent {\n constructor(renderer, localizationService, hostElement) {\n this.renderer = renderer;\n this.localizationService = localizationService;\n this.hostElement = hostElement;\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 validatePackage(packageMetadata);\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 with a formControlName(https://angular.io/api/forms/FormControlName)' +\n 'or an ngModel(https://angular.io/api/forms/NgModel) binding.');\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 if (this.errorChildren.length > 0 || this.hintChildren.length > 0) {\n const ariaIds = this.generateDescriptionIds(control);\n this.renderer.setAttribute(control, 'aria-describedby', ariaIds);\n }\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 [this.hostElement.nativeElement.querySelector(`#${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.ɵfac = function FormFieldComponent_Factory(t) { return new (t || FormFieldComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nFormFieldComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: FormFieldComponent, selectors: [[\"kendo-formfield\"]], contentQueries: function FormFieldComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, KendoInput, 7);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgControl, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgControl, 5, ElementRef);\n ɵngcc0.ɵɵcontentQuery(dirIndex, ErrorComponent, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, HintComponent, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.kendoInput = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.formControls = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.controlElementRefs = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.errorChildren = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.hintChildren = _t);\n } }, hostVars: 7, hostBindings: function FormFieldComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"dir\", ctx.direction);\n ɵngcc0.ɵɵclassProp(\"k-form-field\", ctx.hostClass)(\"k-form-field-error\", ctx.errorClass)(\"k-form-field-disabled\", ctx.disabledClass);\n } }, inputs: { showHints: \"showHints\", orientation: \"orientation\", showErrors: \"showErrors\" }, features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.formfield'\n }\n ])], ngContentSelectors: _c155, decls: 5, vars: 4, consts: [[4, \"ngIf\"]], template: function FormFieldComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef(_c154);\n ɵngcc0.ɵɵprojection(0);\n ɵngcc0.ɵɵelementStart(1, \"div\");\n ɵngcc0.ɵɵprojection(2, 1);\n ɵngcc0.ɵɵtemplate(3, FormFieldComponent_ng_content_3_Template, 1, 0, \"ng-content\", 0);\n ɵngcc0.ɵɵtemplate(4, FormFieldComponent_ng_content_4_Template, 1, 0, \"ng-content\", 0);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"k-form-field-wrap\", ctx.horizontal);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.hasHints);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.hasErrors);\n } }, directives: [ɵngcc3.NgIf], encapsulation: 2 });\n__decorate([\n HostBinding('class.k-form-field'),\n __metadata(\"design:type\", Boolean)\n], FormFieldComponent.prototype, \"hostClass\", void 0);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String)\n], FormFieldComponent.prototype, \"direction\", void 0);\n__decorate([\n HostBinding('class.k-form-field-error'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], FormFieldComponent.prototype, \"errorClass\", null);\n__decorate([\n HostBinding('class.k-form-field-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], FormFieldComponent.prototype, \"disabledClass\", null);\n__decorate([\n ContentChildren(NgControl, { descendants: true }),\n __metadata(\"design:type\", QueryList),\n __metadata(\"design:paramtypes\", [QueryList])\n], FormFieldComponent.prototype, \"formControls\", null);\n__decorate([\n ContentChildren(NgControl, { read: ElementRef, descendants: true }),\n __metadata(\"design:type\", QueryList)\n], FormFieldComponent.prototype, \"controlElementRefs\", void 0);\n__decorate([\n ContentChild(KendoInput, { static: true }),\n __metadata(\"design:type\", Object)\n], FormFieldComponent.prototype, \"kendoInput\", void 0);\n__decorate([\n ContentChildren(ErrorComponent, { descendants: true }),\n __metadata(\"design:type\", QueryList)\n], FormFieldComponent.prototype, \"errorChildren\", void 0);\n__decorate([\n ContentChildren(HintComponent, { descendants: true }),\n __metadata(\"design:type\", QueryList)\n], FormFieldComponent.prototype, \"hintChildren\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FormFieldComponent.prototype, \"showHints\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FormFieldComponent.prototype, \"orientation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FormFieldComponent.prototype, \"showErrors\", void 0);\nFormFieldComponent = __decorate([ __metadata(\"design:paramtypes\", [Renderer2,\n LocalizationService,\n ElementRef])\n], FormFieldComponent);\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 */\nlet FormFieldModule = class FormFieldModule {\n};\nFormFieldModule.ɵfac = function FormFieldModule_Factory(t) { return new (t || FormFieldModule)(); };\nFormFieldModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: FormFieldModule });\nFormFieldModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule]] });\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 */\nlet InputsModule = class InputsModule {\n};\nInputsModule.ɵfac = function InputsModule_Factory(t) { return new (t || InputsModule)(); };\nInputsModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: InputsModule });\nInputsModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule], TextAreaModule, TextBoxModule, SliderModule, RangeSliderModule, SwitchModule, NumericTextBoxModule, MaskedTextBoxModule, ColorPickerModule, CheckBoxModule, RadioButtonModule, FormFieldModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LabelTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoSliderLabelTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SliderComponent, [{\n type: Component,\n 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_1) },\n { provide: KendoInput, useExisting: forwardRef(() => SliderComponent_1) }\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 }], function () { return [{ type: ɵngcc1.LocalizationService }, { type: ɵngcc0.Injector }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.ElementRef }]; }, { focusableId: [{\n type: Input\n }], animate: [{\n type: Input\n }], showButtons: [{\n type: Input\n }], value: [{\n type: Input\n }], tabIndex: [{\n type: Input\n }], dragHandleTitle: [{\n type: Input\n }], incrementTitle: [{\n type: Input\n }], decrementTitle: [{\n type: Input\n }], draghandle: [{\n type: ViewChild,\n args: ['draghandle', { static: true }]\n }], decreaseButton: [{\n type: ViewChild,\n args: ['decreaseButton', { static: false }]\n }], increaseButton: [{\n type: ViewChild,\n args: ['increaseButton', { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(RangeSliderComponent, [{\n type: Component,\n args: [{\n exportAs: 'kendoRangeSlider',\n providers: [\n LocalizationService,\n { provide: L10N_PREFIX, useValue: 'kendo.rangeslider' },\n { multi: true, provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => RangeSliderComponent_1) },\n { provide: KendoInput, useExisting: forwardRef(() => RangeSliderComponent_1) }\n ],\n selector: 'kendo-rangeslider',\n template: `\n \n\n
    \n
    \n
      \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }, { type: ɵngcc0.Injector }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.ElementRef }]; }, { value: [{\n type: Input\n }], draghandleStart: [{\n type: ViewChild,\n args: ['draghandleStart', { static: true }]\n }], draghandleEnd: [{\n type: ViewChild,\n args: ['draghandleEnd', { static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SwitchComponent, [{\n type: Component,\n 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_1) /* tslint:disable-line */\n },\n {\n provide: KendoInput,\n useExisting: forwardRef(() => SwitchComponent_1)\n }\n ],\n selector: 'kendo-switch',\n template: `\n \n\n \n {{onLabelMessage}}\n {{offLabelMessage}}\n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }, { type: ɵngcc1.LocalizationService }, { type: ɵngcc0.Injector }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.NgZone }]; }, { focusableId: [{\n type: Input\n }], disabled: [{\n type: Input\n }], readonly: [{\n type: Input\n }], tabindex: [{\n type: Input\n }], onFocus: [{\n type: Output,\n args: ['focus']\n }], onBlur: [{\n type: Output,\n args: ['blur']\n }], valueChange: [{\n type: Output\n }], hostClasses: [{\n type: HostBinding,\n args: ['class.k-switch']\n }], direction: [{\n type: HostBinding,\n args: ['attr.dir']\n }], checked: [{\n type: Input\n }], size: [{\n type: Input\n }], thumbRounded: [{\n type: Input\n }], trackRounded: [{\n type: Input\n }], tabIndex: [{\n type: Input\n }], ieClass: [{\n type: HostBinding,\n args: ['class.k-ie']\n }], ariaDisabled: [{\n type: HostBinding,\n args: ['attr.aria-disabled']\n }], ariaReadonly: [{\n type: HostBinding,\n args: ['attr.aria-readonly']\n }], disabledClass: [{\n type: HostBinding,\n args: ['class.k-disabled']\n }], onLabel: [{\n type: Input\n }], offLabel: [{\n type: Input\n }], track: [{\n type: ViewChild,\n args: ['track', { static: true }]\n }], thumb: [{\n type: ViewChild,\n args: ['thumb', { static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TextBoxDirective, [{\n type: Directive,\n args: [{\n selector: 'input[kendoTextBox]',\n providers: [{\n provide: KendoInput,\n useExisting: forwardRef(() => TextBoxDirective_1)\n }]\n }]\n }], function () { return [{ type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }]; }, { hostClasses: [{\n type: HostBinding,\n args: ['class.k-textbox']\n }, {\n type: HostBinding,\n args: ['class.k-input']\n }, {\n type: HostBinding,\n args: ['class.k-input-md']\n }, {\n type: HostBinding,\n args: ['class.k-rounded-md']\n }, {\n type: HostBinding,\n args: ['class.k-input-solid']\n }], value: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TextAreaDirective, [{\n type: Directive,\n args: [{\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextAreaDirective_1),\n multi: true\n }, {\n provide: KendoInput,\n useExisting: forwardRef(() => TextAreaDirective_1)\n }],\n selector: 'textarea[kendoTextArea]'\n }]\n }], function () { return [{ type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.Injector }, { type: Boolean, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [RTL]\n }] }]; }, { elementClasses: [{\n type: HostBinding,\n args: ['class.k-textarea']\n }, {\n type: HostBinding,\n args: ['class.k-input']\n }, {\n type: HostBinding,\n args: ['class.k-input-md']\n }, {\n type: HostBinding,\n args: ['class.k-rounded-md']\n }, {\n type: HostBinding,\n args: ['class.k-input-solid']\n }], autofillClass: [{\n type: HostBinding,\n args: ['class.k-autofill']\n }], valueChange: [{\n type: Output\n }], autoSize: [{\n type: Input\n }], direction: [{\n type: HostBinding,\n args: ['attr.dir']\n }], value: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NumericTextBoxComponent, [{\n type: Component,\n args: [{\n exportAs: 'kendoNumericTextBox',\n providers: [\n LocalizationService,\n { provide: L10N_PREFIX, useValue: 'kendo.numerictextbox' },\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NumericTextBoxComponent_1), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => NumericTextBoxComponent_1), multi: true },\n { provide: KendoInput, useExisting: forwardRef(() => NumericTextBoxComponent_1) }\n ],\n selector: 'kendo-numerictextbox',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc4.IntlService }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc1.LocalizationService }, { type: ɵngcc0.Injector }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.ElementRef }]; }, { focusableId: [{\n type: Input\n }], disabled: [{\n type: Input\n }], readonly: [{\n type: Input\n }], title: [{\n type: Input\n }], autoCorrect: [{\n type: Input\n }], decimals: [{\n type: Input\n }], step: [{\n type: Input\n }], spinners: [{\n type: Input\n }], rangeValidation: [{\n type: Input\n }], tabindex: [{\n type: Input\n }], changeValueOnScroll: [{\n type: Input\n }], selectOnFocus: [{\n type: Input\n }], value: [{\n type: Input\n }], valueChange: [{\n type: Output\n }], onFocus: [{\n type: Output,\n args: ['focus']\n }], onBlur: [{\n type: Output,\n args: ['blur']\n }], hostClasses: [{\n type: HostBinding,\n args: ['class.k-input']\n }, {\n type: HostBinding,\n args: ['class.k-numerictextbox']\n }], direction: [{\n type: HostBinding,\n args: ['attr.dir']\n }], format: [{\n type: Input\n }], tabIndex: [{\n type: Input\n }], size: [{\n type: Input\n }], rounded: [{\n type: Input\n }], fillMode: [{\n type: Input\n }], disableClass: [{\n type: HostBinding,\n args: ['class.k-disabled']\n }], max: [{\n type: Input\n }], min: [{\n type: Input\n }], placeholder: [{\n type: Input\n }], maxlength: [{\n type: Input\n }], numericInput: [{\n type: ViewChild,\n args: ['numericInput', { static: true }]\n }] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NumericTextBoxCustomMessagesComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: NumericTextBoxMessages,\n useExisting: forwardRef(() => NumericTextBoxCustomMessagesComponent_1) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: 'kendo-numerictextbox-messages',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MaskingService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MaskedTextBoxComponent, [{\n type: Component,\n args: [{\n exportAs: 'kendoMaskedTextBox',\n providers: [\n MaskingService,\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MaskedTextBoxComponent_1) /* tslint:disable-line */\n },\n {\n multi: true,\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MaskedTextBoxComponent_1) /* tslint:disable-line */\n },\n {\n provide: KendoInput,\n useExisting: forwardRef(() => MaskedTextBoxComponent_1)\n }\n ],\n selector: 'kendo-maskedtextbox',\n template: `\n \n `\n }]\n }], function () { return [{ type: MaskingService }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.Injector }, { type: ɵngcc0.ChangeDetectorRef }, { type: Boolean, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [RTL]\n }] }]; }, { focusableId: [{\n type: Input\n }], disabled: [{\n type: Input\n }], readonly: [{\n type: Input\n }], prompt: [{\n type: Input\n }], promptPlaceholder: [{\n type: Input\n }], includeLiterals: [{\n type: Input\n }], maskOnFocus: [{\n type: Input\n }], maskValidation: [{\n type: Input\n }], tabindex: [{\n type: Input\n }], onFocus: [{\n type: Output,\n args: ['focus']\n }], onBlur: [{\n type: Output,\n args: ['blur']\n }], valueChange: [{\n type: Output\n }], hostClasses: [{\n type: HostBinding,\n args: ['class.k-input']\n }, {\n type: HostBinding,\n args: ['class.k-maskedtextbox']\n }], direction: [{\n type: HostBinding,\n args: ['attr.dir']\n }], size: [{\n type: Input\n }], rounded: [{\n type: Input\n }], fillMode: [{\n type: Input\n }], rules: [{\n type: Input\n }], tabIndex: [{\n type: Input\n }], hostDisabledClass: [{\n type: HostBinding,\n args: ['class.k-disabled']\n }], \n /**\n * @hidden\n */\n pasteHandler: [{\n type: HostListener,\n args: ['paste', ['$event']]\n }], \n /**\n * @hidden\n */\n inputHandler: [{\n type: HostListener,\n args: ['input', ['$event']]\n }], value: [{\n type: Input\n }], title: [{\n type: Input\n }], mask: [{\n type: Input\n }], input: [{\n type: ViewChild,\n args: ['input', { static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SliderTicksComponent, [{\n type: Component,\n args: [{\n selector: '[kendoSliderTicks]',\n template: `\n
  • \n \n \n \n \n \n  \n \n
  • \n\n \n {{ tickTitle(value) }}\n \n `\n }]\n }], function () { return []; }, { wrapperClasses: [{\n type: HostBinding,\n args: ['class']\n }], tickTitle: [{\n type: Input\n }], vertical: [{\n type: Input\n }], step: [{\n type: Input\n }], largeStep: [{\n type: Input\n }], min: [{\n type: Input\n }], max: [{\n type: Input\n }], labelTemplate: [{\n type: Input\n }], tickElements: [{\n type: ViewChildren,\n args: ['tickElement']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SlidersCommonModule, [{\n type: NgModule,\n args: [{\n declarations: [\n SliderTicksComponent,\n LabelTemplateDirective\n ],\n exports: [\n LabelTemplateDirective,\n SliderTicksComponent,\n DraggableModule,\n EventsModule,\n ResizeSensorModule\n ],\n imports: [CommonModule, DraggableModule, EventsModule, ResizeSensorModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(SlidersCommonModule, { declarations: function () { return [SliderTicksComponent, LabelTemplateDirective]; }, imports: function () { return [CommonModule, DraggableModule, EventsModule, ResizeSensorModule]; }, exports: function () { return [LabelTemplateDirective, SliderTicksComponent, DraggableModule,\n EventsModule,\n ResizeSensorModule]; } }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LocalizedSliderMessagesDirective, [{\n type: Directive,\n args: [{\n providers: [\n {\n provide: SliderMessages,\n useExisting: forwardRef(() => LocalizedSliderMessagesDirective_1) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: '[kendoSliderLocalizedMessages]'\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SliderCustomMessagesComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: SliderMessages,\n useExisting: forwardRef(() => SliderCustomMessagesComponent_1) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: 'kendo-slider-messages',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SliderModule, [{\n type: NgModule,\n args: [{\n declarations: [\n SliderComponent,\n SliderCustomMessagesComponent,\n LocalizedSliderMessagesDirective\n ],\n exports: [\n SliderComponent,\n SliderCustomMessagesComponent,\n LabelTemplateDirective,\n LocalizedSliderMessagesDirective\n ],\n imports: [CommonModule, SlidersCommonModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(SliderModule, { declarations: function () { return [SliderComponent, SliderCustomMessagesComponent, LocalizedSliderMessagesDirective]; }, imports: function () { return [CommonModule, SlidersCommonModule]; }, exports: function () { return [SliderComponent, SliderCustomMessagesComponent, LabelTemplateDirective, LocalizedSliderMessagesDirective]; } }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LocalizedRangeSliderMessagesDirective, [{\n type: Directive,\n args: [{\n providers: [\n {\n provide: RangeSliderMessages,\n useExisting: forwardRef(() => LocalizedRangeSliderMessagesDirective_1) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: '[kendoSliderLocalizedMessages]'\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(RangeSliderCustomMessagesComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: RangeSliderMessages,\n useExisting: forwardRef(() => RangeSliderCustomMessagesComponent_1) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: 'kendo-rangeslider-messages',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(RangeSliderModule, [{\n type: NgModule,\n args: [{\n declarations: [\n RangeSliderComponent,\n RangeSliderCustomMessagesComponent,\n LocalizedRangeSliderMessagesDirective\n ],\n exports: [\n RangeSliderComponent,\n RangeSliderCustomMessagesComponent,\n LocalizedRangeSliderMessagesDirective,\n LabelTemplateDirective\n ],\n imports: [CommonModule, SlidersCommonModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(RangeSliderModule, { declarations: function () { return [RangeSliderComponent, RangeSliderCustomMessagesComponent, LocalizedRangeSliderMessagesDirective]; }, imports: function () { return [CommonModule, SlidersCommonModule]; }, exports: function () { return [RangeSliderComponent, RangeSliderCustomMessagesComponent, LocalizedRangeSliderMessagesDirective, LabelTemplateDirective]; } }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LocalizedSwitchMessagesDirective, [{\n type: Directive,\n args: [{\n providers: [\n {\n provide: Messages,\n useExisting: forwardRef(() => LocalizedSwitchMessagesDirective_1) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: '[kendoSwitchLocalizedMessages]'\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SwitchCustomMessagesComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: Messages,\n useExisting: forwardRef(() => SwitchCustomMessagesComponent_1) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: 'kendo-switch-messages',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SwitchModule, [{\n type: NgModule,\n 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 }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(SwitchModule, { declarations: function () { return [SwitchComponent, SwitchCustomMessagesComponent, LocalizedSwitchMessagesDirective]; }, imports: function () { return [CommonModule, EventsModule, ResizeSensorModule]; }, exports: function () { return [SwitchComponent, SwitchCustomMessagesComponent, LocalizedSwitchMessagesDirective]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LocalizedNumericTextBoxMessagesDirective, [{\n type: Directive,\n args: [{\n providers: [\n {\n provide: NumericTextBoxMessages,\n useExisting: forwardRef(() => LocalizedNumericTextBoxMessagesDirective_1) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: '[kendoNumericTextBoxLocalizedMessages]'\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NumericTextBoxModule, [{\n type: NgModule,\n args: [{\n declarations: [\n LocalizedNumericTextBoxMessagesDirective,\n NumericTextBoxComponent,\n NumericTextBoxCustomMessagesComponent\n ],\n exports: [\n NumericTextBoxComponent,\n NumericTextBoxCustomMessagesComponent\n ],\n imports: [CommonModule, EventsModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NumericTextBoxModule, { declarations: function () { return [LocalizedNumericTextBoxMessagesDirective, NumericTextBoxComponent, NumericTextBoxCustomMessagesComponent]; }, imports: function () { return [CommonModule, EventsModule]; }, exports: function () { return [NumericTextBoxComponent, NumericTextBoxCustomMessagesComponent]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MaskedTextBoxModule, [{\n type: NgModule,\n args: [{\n declarations: [MaskedTextBoxComponent],\n exports: [MaskedTextBoxComponent],\n imports: [CommonModule, EventsModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(MaskedTextBoxModule, { declarations: function () { return [MaskedTextBoxComponent]; }, imports: function () { return [CommonModule, EventsModule]; }, exports: function () { return [MaskedTextBoxComponent]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TextBoxSuffixTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTextBoxSuffixTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TextBoxPrefixTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTextBoxPrefixTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TextBoxComponent, [{\n type: Component,\n args: [{\n exportAs: 'kendoTextBox',\n providers: [\n LocalizationService,\n { provide: L10N_PREFIX, useValue: 'kendo.textbox' },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextBoxComponent_1),\n multi: true\n },\n { provide: KendoInput, useExisting: forwardRef(() => TextBoxComponent_1) }\n ],\n selector: 'kendo-textbox',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.Injector }, { type: ɵngcc0.ElementRef }]; }, { focusableId: [{\n type: Input\n }], title: [{\n type: Input\n }], disabled: [{\n type: Input\n }], readonly: [{\n type: Input\n }], tabindex: [{\n type: Input\n }], value: [{\n type: Input\n }], selectOnFocus: [{\n type: Input\n }], showSuccessIcon: [{\n type: Input\n }], showErrorIcon: [{\n type: Input\n }], clearButton: [{\n type: Input\n }], valueChange: [{\n type: Output\n }], inputFocus: [{\n type: Output\n }], inputBlur: [{\n type: Output\n }], onFocus: [{\n type: Output,\n args: ['focus']\n }], onBlur: [{\n type: Output,\n args: ['blur']\n }], hostClasses: [{\n type: HostBinding,\n args: ['class.k-textbox']\n }, {\n type: HostBinding,\n args: ['class.k-input']\n }], direction: [{\n type: HostBinding,\n args: ['attr.dir']\n }], size: [{\n type: Input\n }], rounded: [{\n type: Input\n }], fillMode: [{\n type: Input\n }], tabIndex: [{\n type: Input\n }], disabledClass: [{\n type: HostBinding,\n args: ['class.k-disabled']\n }], successIcon: [{\n type: Input\n }], errorIcon: [{\n type: Input\n }], clearButtonIcon: [{\n type: Input\n }], placeholder: [{\n type: Input\n }], maxlength: [{\n type: Input\n }], input: [{\n type: ViewChild,\n args: ['input', { static: true }]\n }], suffixTemplate: [{\n type: ContentChild,\n args: [TextBoxSuffixTemplateDirective, { static: false }]\n }], prefixTemplate: [{\n type: ContentChild,\n args: [TextBoxPrefixTemplateDirective, { static: false }]\n }] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TextBoxCustomMessagesComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: TextBoxMessages,\n useExisting: forwardRef(() => TextBoxCustomMessagesComponent_1) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: 'kendo-textbox-messages',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LocalizedTextBoxMessagesDirective, [{\n type: Directive,\n args: [{\n providers: [\n {\n provide: TextBoxMessages,\n useExisting: forwardRef(() => LocalizedTextBoxMessagesDirective_1) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: '[kendoTextBoxLocalizedMessages]'\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(InputSeparatorComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-input-separator, kendo-textbox-separator',\n template: ``\n }]\n }], function () { return []; }, { hostClass: [{\n type: HostBinding,\n args: ['class.k-input-separator']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SharedModule, [{\n type: NgModule,\n args: [{\n declarations: [SHARED_DIRECTIVES],\n exports: [SHARED_DIRECTIVES]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(SharedModule, { declarations: [InputSeparatorComponent, TextAreaDirective], exports: [InputSeparatorComponent, TextAreaDirective] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TextBoxModule, [{\n type: NgModule,\n args: [{\n declarations: [\n TextBoxDirective,\n TextBoxComponent,\n TextBoxSuffixTemplateDirective,\n TextBoxPrefixTemplateDirective,\n TextBoxCustomMessagesComponent,\n LocalizedTextBoxMessagesDirective\n ],\n exports: [\n TextBoxDirective,\n TextBoxComponent,\n TextBoxSuffixTemplateDirective,\n TextBoxPrefixTemplateDirective,\n EventsModule,\n TextBoxCustomMessagesComponent,\n LocalizedTextBoxMessagesDirective,\n SHARED_DIRECTIVES\n ],\n imports: [CommonModule, EventsModule, SharedModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(TextBoxModule, { declarations: function () { return [TextBoxDirective, TextBoxComponent, TextBoxSuffixTemplateDirective, TextBoxPrefixTemplateDirective, TextBoxCustomMessagesComponent, LocalizedTextBoxMessagesDirective]; }, imports: function () { return [CommonModule, EventsModule, SharedModule]; }, exports: function () { return [TextBoxDirective, TextBoxComponent, TextBoxSuffixTemplateDirective, TextBoxPrefixTemplateDirective, EventsModule, TextBoxCustomMessagesComponent, LocalizedTextBoxMessagesDirective, InputSeparatorComponent, TextAreaDirective]; } }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TextAreaComponent, [{\n type: Component,\n args: [{\n exportAs: 'kendoTextArea',\n providers: [\n LocalizationService,\n { provide: L10N_PREFIX, useValue: 'kendo.textarea' },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextAreaComponent_1),\n multi: true\n },\n { provide: KendoInput, useExisting: forwardRef(() => TextAreaComponent_1) }\n ],\n selector: 'kendo-textarea',\n template: `\n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.Injector }, { type: ɵngcc0.ElementRef }]; }, { focusableId: [{\n type: Input\n }], hostClasses: [{\n type: HostBinding,\n args: ['class.k-textarea']\n }, {\n type: HostBinding,\n args: ['class.k-input']\n }], flow: [{\n type: Input\n }], tabindex: [{\n type: Input\n }], resizable: [{\n type: Input\n }], onFocus: [{\n type: Output,\n args: ['focus']\n }], onBlur: [{\n type: Output,\n args: ['blur']\n }], valueChange: [{\n type: Output\n }], flowCol: [{\n type: HostBinding,\n args: ['class.\\!k-flex-col']\n }], flowRow: [{\n type: HostBinding,\n args: ['class.\\!k-flex-row']\n }], tabIndex: [{\n type: Input\n }], size: [{\n type: Input\n }], rounded: [{\n type: Input\n }], fillMode: [{\n type: Input\n }], rows: [{\n type: Input\n }], cols: [{\n type: Input\n }], maxlength: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TextAreaSuffixComponent, [{\n type: Component,\n args: [{\n exportAs: 'kendoTextAreaSuffix',\n selector: 'kendo-textarea-suffix',\n template: ``\n }]\n }], function () { return []; }, { hostClass: [{\n type: HostBinding,\n args: ['class.k-input-suffix']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TextAreaModule, [{\n type: NgModule,\n args: [{\n declarations: [\n TextAreaComponent,\n TextAreaSuffixComponent\n ],\n exports: [\n TextAreaComponent,\n EventsModule,\n TextAreaSuffixComponent,\n SHARED_DIRECTIVES\n ],\n imports: [CommonModule, EventsModule, SharedModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(TextAreaModule, { declarations: function () { return [TextAreaComponent, TextAreaSuffixComponent]; }, imports: function () { return [CommonModule, EventsModule, SharedModule]; }, exports: function () { return [TextAreaComponent, EventsModule, TextAreaSuffixComponent, InputSeparatorComponent, TextAreaDirective]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FlatColorPickerService, [{\n type: Injectable\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColorInputComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-colorinput',\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 }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc1.LocalizationService }]; }, { focusableId: [{\n type: Input\n }], opacity: [{\n type: Input\n }], disabled: [{\n type: Input\n }], readonly: [{\n type: Input\n }], valueChange: [{\n type: Output\n }], colorInputClass: [{\n type: HostBinding,\n args: ['class.k-colorgradient-inputs']\n }, {\n type: HostBinding,\n args: ['class.k-hstack']\n }], value: [{\n type: Input\n }], formatView: [{\n type: Input\n }], opacityInput: [{\n type: ViewChild,\n args: ['opacityInput', { static: false }]\n }], hexInput: [{\n type: ViewChild,\n args: ['hexInput', { read: ElementRef, static: false }]\n }], blueInput: [{\n type: ViewChild,\n args: ['blueInput', { read: ElementRef, static: false }]\n }], toggleFormatButton: [{\n type: ViewChild,\n args: ['toggleFormatButton', { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColorGradientComponent, [{\n type: Component,\n args: [{\n exportAs: 'kendoColorGradient',\n selector: 'kendo-colorgradient',\n providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ColorGradientComponent_1)\n },\n {\n provide: KendoInput,\n useExisting: forwardRef(() => ColorGradientComponent_1)\n },\n ColorGradientLocalizationService,\n {\n provide: LocalizationService,\n useExisting: ColorGradientLocalizationService\n },\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 \n
    \n
    \n `,\n styles: [`\n .k-clear-color {\n position: absolute;\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n }\n .k-colorgradient-slider.k-align-self-end {\n height: 140px;\n }\n\n .k-color-contrast-svg {\n position: absolute;\n overflow: visible;\n pointer-events: none;\n left: 0px;\n top: 0px;\n }\n `]\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc1.LocalizationService }]; }, { hostClasses: [{\n type: HostBinding,\n args: ['class.k-colorgradient']\n }], id: [{\n type: Input\n }], opacity: [{\n type: Input\n }], disabled: [{\n type: Input\n }], readonly: [{\n type: Input\n }], clearButton: [{\n type: Input\n }], delay: [{\n type: Input\n }], format: [{\n type: Input\n }], valueChange: [{\n type: Output\n }], direction: [{\n type: HostBinding,\n args: ['attr.dir']\n }], readonlyAttribute: [{\n type: HostBinding,\n args: ['attr.aria-readonly']\n }], disabledClass: [{\n type: HostBinding,\n args: ['class.k-state-disabled']\n }], gradientId: [{\n type: HostBinding,\n args: ['attr.id']\n }], hostTabindex: [{\n type: HostBinding,\n args: ['attr.tabindex']\n }], value: [{\n type: Input\n }], contrastTool: [{\n type: Input\n }], tabindex: [{\n type: Input\n }], gradientDragHandle: [{\n type: ViewChild,\n args: ['gradientDragHandle', { read: ElementRef, static: false }]\n }], inputs: [{\n type: ViewChild,\n args: ['inputs', { static: false }]\n }], alphaSlider: [{\n type: ViewChild,\n args: ['alphaSlider', { static: false }]\n }], gradientWrapper: [{\n type: ViewChild,\n args: ['gradientWrapper', { static: false }]\n }], hsvRectangle: [{\n type: ViewChild,\n args: ['hsvRectangle', { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColorPaletteService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColorPaletteComponent, [{\n type: Component,\n args: [{\n exportAs: 'kendoColorPalette',\n selector: 'kendo-colorpalette',\n providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ColorPaletteComponent_1) // tslint:disable-line:no-forward-ref\n }, {\n provide: KendoInput,\n useExisting: forwardRef(() => ColorPaletteComponent_1)\n },\n ColorPaletteService,\n ColorPaletteLocalizationService,\n {\n provide: LocalizationService,\n useExisting: ColorPaletteLocalizationService\n },\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 }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ColorPaletteService }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc1.LocalizationService }, { type: ɵngcc0.NgZone }]; }, { id: [{\n type: Input\n }], format: [{\n type: Input\n }], disabled: [{\n type: Input\n }], readonly: [{\n type: Input\n }], tileSize: [{\n type: Input\n }], selectionChange: [{\n type: Output\n }], valueChange: [{\n type: Output\n }], cellSelection: [{\n type: Output\n }], hostClasses: [{\n type: HostBinding,\n args: ['class.k-colorpalette']\n }], direction: [{\n type: HostBinding,\n args: ['attr.dir']\n }], paletteId: [{\n type: HostBinding,\n args: ['attr.id']\n }], value: [{\n type: Input\n }], columns: [{\n type: Input\n }], palette: [{\n type: Input\n }], tabindex: [{\n type: Input\n }], hostTabindex: [{\n type: HostBinding,\n args: ['attr.tabindex']\n }], disabledClass: [{\n type: HostBinding,\n args: ['attr.aria-disabled']\n }, {\n type: HostBinding,\n args: ['class.k-state-disabled']\n }], readonlyAttribute: [{\n type: HostBinding,\n args: ['attr.aria-readonly']\n }], \n /**\n * @hidden\n */\n handleKeydown: [{\n type: HostListener,\n args: ['keydown', ['$event']]\n }], \n /**\n * @hidden\n */\n handleHostBlur: [{\n type: HostListener,\n args: ['blur']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FlatColorPickerHeaderComponent, [{\n type: Component,\n args: [{\n selector: '[kendoFlatColorPickerHeader]',\n template: `\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n \n \n \n \n
    \n
    \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, { hostClasses: [{\n type: HostBinding,\n args: ['class.k-coloreditor-header']\n }, {\n type: HostBinding,\n args: ['class.k-hstack']\n }], viewChange: [{\n type: Output\n }], valuePaneClick: [{\n type: Output\n }], clearButtonClick: [{\n type: Output\n }], activeView: [{\n type: Input\n }], clearButton: [{\n type: Input\n }], views: [{\n type: Input\n }], preview: [{\n type: Input\n }], value: [{\n type: Input\n }], selection: [{\n type: Input\n }], viewButtonsCollection: [{\n type: ViewChildren,\n args: ['viewButtons', { read: ElementRef }]\n }], clearButtonElement: [{\n type: ViewChild,\n args: ['clearButton', { read: ElementRef, static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FlatColorPickerActionButtonsComponent, [{\n type: Component,\n args: [{\n selector: '[kendoFlatColorPickerActionButtons]',\n template: `\n {{getText('cancelButton')}}\n \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, { hostClasses: [{\n type: HostBinding,\n args: ['class.k-coloreditor-footer']\n }, {\n type: HostBinding,\n args: ['class.k-actions']\n }, {\n type: HostBinding,\n args: ['class.k-hstack']\n }], actionButtonClick: [{\n type: Output\n }], lastButton: [{\n type: ViewChild,\n args: ['last', { read: ElementRef, static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FlatColorPickerComponent, [{\n type: Component,\n args: [{\n exportAs: 'kendoFlatColorPicker',\n selector: 'kendo-flatcolorpicker',\n providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FlatColorPickerComponent_1)\n },\n {\n provide: KendoInput,\n useExisting: forwardRef(() => FlatColorPickerComponent_1)\n },\n FlatColorPickerService,\n FlatColorPickerLocalizationService,\n {\n provide: LocalizationService,\n useExisting: FlatColorPickerLocalizationService\n },\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.flatcolorpicker'\n }\n ],\n template: `\n \n \n
    \n
    \n
    \n \n \n \n \n
    \n
    \n
    \n`\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: FlatColorPickerService }, { type: ɵngcc1.LocalizationService }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.NgZone }]; }, { hostClasses: [{\n type: HostBinding,\n args: ['class.k-flatcolorpicker']\n }, {\n type: HostBinding,\n args: ['class.k-coloreditor']\n }], readonly: [{\n type: Input\n }], disabled: [{\n type: Input\n }], format: [{\n type: Input\n }], clearButton: [{\n type: Input\n }], preview: [{\n type: Input\n }], actionsLayout: [{\n type: Input\n }], views: [{\n type: Input\n }], valueChange: [{\n type: Output\n }], cancel: [{\n type: Output\n }], activeViewChange: [{\n type: Output\n }], actionButtonClick: [{\n type: Output\n }], direction: [{\n type: HostBinding,\n args: ['attr.dir']\n }], disabledClass: [{\n type: HostBinding,\n args: ['class.k-state-disabled']\n }, {\n type: HostBinding,\n args: ['attr.aria-disabled']\n }], ariaReadonly: [{\n type: HostBinding,\n args: ['attr.aria-readonly']\n }], hostTabindex: [{\n type: HostBinding,\n args: ['attr.tabindex']\n }], value: [{\n type: Input\n }], tabindex: [{\n type: Input\n }], gradientSettings: [{\n type: Input\n }], paletteSettings: [{\n type: Input\n }], activeView: [{\n type: Input\n }], header: [{\n type: ViewChild,\n args: ['header', { static: false }]\n }], gradient: [{\n type: ViewChild,\n args: ['gradient', { static: false }]\n }], palette: [{\n type: ViewChild,\n args: ['palette', { static: false }]\n }], footer: [{\n type: ViewChild,\n args: ['footer', { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColorPickerComponent, [{\n type: Component,\n args: [{\n exportAs: 'kendoColorPicker',\n selector: 'kendo-colorpicker',\n providers: [{\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ColorPickerComponent_1)\n }, {\n provide: KendoInput,\n useExisting: forwardRef(() => ColorPickerComponent_1)\n },\n ColorPickerLocalizationService,\n {\n provide: LocalizationService,\n useExisting: ColorPickerLocalizationService\n },\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 }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc5.PopupService }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc1.LocalizationService }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.Renderer2 }]; }, { hostClasses: [{\n type: HostBinding,\n args: ['class.k-colorpicker']\n }, {\n type: HostBinding,\n args: ['class.k-icon-picker']\n }, {\n type: HostBinding,\n args: ['class.k-picker']\n }], role: [{\n type: HostBinding,\n args: ['attr.role']\n }], views: [{\n type: Input\n }], readonly: [{\n type: Input\n }], disabled: [{\n type: Input\n }], format: [{\n type: Input\n }], clearButton: [{\n type: Input\n }], preview: [{\n type: Input\n }], actionsLayout: [{\n type: Input\n }], valueChange: [{\n type: Output\n }], open: [{\n type: Output\n }], close: [{\n type: Output\n }], onFocus: [{\n type: Output,\n args: ['focus']\n }], onBlur: [{\n type: Output,\n args: ['blur']\n }], cancel: [{\n type: Output\n }], activeColorClick: [{\n type: Output\n }], activeViewChange: [{\n type: Output\n }], direction: [{\n type: HostBinding,\n args: ['attr.dir']\n }], focusedClass: [{\n type: HostBinding,\n args: ['class.k-focus']\n }], disabledClass: [{\n type: HostBinding,\n args: ['attr.aria-disabled']\n }, {\n type: HostBinding,\n args: ['class.k-disabled']\n }], ariaReadonly: [{\n type: HostBinding,\n args: ['attr.aria-readonly']\n }], ariaExpanded: [{\n type: HostBinding,\n args: ['attr.aria-expanded']\n }], hostTabindex: [{\n type: HostBinding,\n args: ['attr.tabindex']\n }], view: [{\n type: Input\n }], value: [{\n type: Input\n }], popupSettings: [{\n type: Input\n }], paletteSettings: [{\n type: Input\n }], gradientSettings: [{\n type: Input\n }], tabindex: [{\n type: Input\n }], size: [{\n type: Input\n }], rounded: [{\n type: Input\n }], fillMode: [{\n type: Input\n }], activeView: [{\n type: Input\n }], icon: [{\n type: Input\n }], iconClass: [{\n type: Input\n }], container: [{\n type: ViewChild,\n args: ['container', { read: ViewContainerRef, static: true }]\n }], activeColor: [{\n type: ViewChild,\n args: ['activeColor', { static: true }]\n }], popupTemplate: [{\n type: ViewChild,\n args: ['popupTemplate', { static: true }]\n }], flatColorPicker: [{\n type: ViewChild,\n args: ['flatColorPicker', { static: false }]\n }] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColorPickerCustomMessagesComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: ColorPickerMessages,\n useExisting: forwardRef(() => ColorPickerCustomMessagesComponent_1) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: 'kendo-colorpicker-messages, kendo-flatcolorpicker-messages, kendo-colorgradient-messages, kendo-colorpalette-messages',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LocalizedColorPickerMessagesDirective, [{\n type: Directive,\n args: [{\n providers: [\n {\n provide: ColorPickerMessages,\n useExisting: forwardRef(() => LocalizedColorPickerMessagesDirective_1) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: '[kendoColorPickerLocalizedMessages], [kendoFlatColorPickerLocalizedMessages], [kendoColorGradientLocalizedMessages], [kendoColorPaletteLocalizedMessages]'\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FocusOnDomReadyDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoFocusOnDomReady]'\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ContrastValidationComponent, [{\n type: Component,\n args: [{\n selector: '[kendoContrastValidation]',\n template: `\n {{contrastText}}\n \n \n {{passMessage}}\n \n \n \n {{failMessage}}\n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, { type: [{\n type: Input\n }], pass: [{\n type: Input\n }], value: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ContrastComponent, [{\n type: Component,\n args: [{\n selector: '[kendoContrastTool]',\n template: `\n
    \n {{contrastRatioText}}\n \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, { value: [{\n type: Input\n }], ratio: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColorContrastSvgComponent, [{\n type: Component,\n args: [{\n selector: '[kendoColorContrastSvg]',\n template: `\n \n `\n }]\n }], function () { return []; }, { hostClass: [{\n type: HostBinding,\n args: ['class.k-color-contrast-svg']\n }], wrapper: [{\n type: Input\n }], hsva: [{\n type: Input\n }], backgroundColor: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColorPickerModule, [{\n type: NgModule,\n 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 }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(ColorPickerModule, { declarations: function () { return [ColorPickerComponent, ColorPaletteComponent, ColorGradientComponent, FlatColorPickerComponent, LocalizedColorPickerMessagesDirective, ColorPickerCustomMessagesComponent, ColorInputComponent, FocusOnDomReadyDirective, ContrastComponent, ContrastValidationComponent, FlatColorPickerHeaderComponent, FlatColorPickerActionButtonsComponent, ColorContrastSvgComponent]; }, imports: function () { return [SliderModule, NumericTextBoxModule, CommonModule,\n PopupModule,\n DraggableModule]; }, exports: function () { return [ColorPickerComponent, ColorPaletteComponent, ColorGradientComponent, FlatColorPickerComponent, LocalizedColorPickerMessagesDirective, ColorPickerCustomMessagesComponent]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CheckBoxDirective, [{\n type: Directive,\n args: [{\n selector: 'input[kendoCheckBox]'\n }]\n }], function () { return [{ type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }]; }, { kendoClass: [{\n type: HostBinding,\n args: ['class.k-checkbox']\n }], size: [{\n type: Input\n }], rounded: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CheckBoxModule, [{\n type: NgModule,\n args: [{\n declarations: [CheckBoxDirective],\n exports: [CheckBoxDirective],\n imports: [CommonModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(CheckBoxModule, { declarations: function () { return [CheckBoxDirective]; }, imports: function () { return [CommonModule]; }, exports: function () { return [CheckBoxDirective]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(RadioButtonDirective, [{\n type: Directive,\n args: [{\n selector: 'input[kendoRadioButton]'\n }]\n }], function () { return [{ type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }]; }, { kendoClass: [{\n type: HostBinding,\n args: ['class.k-radio']\n }], size: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(RadioButtonModule, [{\n type: NgModule,\n args: [{\n declarations: [RadioButtonDirective],\n exports: [RadioButtonDirective],\n imports: [CommonModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(RadioButtonModule, { declarations: function () { return [RadioButtonDirective]; }, imports: function () { return [CommonModule]; }, exports: function () { return [RadioButtonDirective]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ErrorComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-formerror',\n template: `\n \n `\n }]\n }], function () { return []; }, { hostClass: [{\n type: HostBinding,\n args: ['class.k-form-error']\n }], align: [{\n type: Input\n }], roleAttribute: [{\n type: HostBinding,\n args: ['attr.role']\n }], startClass: [{\n type: HostBinding,\n args: ['class.k-text-start']\n }], endClass: [{\n type: HostBinding,\n args: ['class.k-text-end']\n }], idAttribute: [{\n type: HostBinding,\n args: ['attr.id']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(HintComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-formhint',\n template: `\n \n `\n }]\n }], function () { return []; }, { align: [{\n type: Input\n }], hostClass: [{\n type: HostBinding,\n args: ['class.k-form-hint']\n }], startClass: [{\n type: HostBinding,\n args: ['class.k-text-start']\n }], endClass: [{\n type: HostBinding,\n args: ['class.k-text-end']\n }], idAttribute: [{\n type: HostBinding,\n args: ['attr.id']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FormFieldComponent, [{\n type: Component,\n 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 }], function () { return [{ type: ɵngcc0.Renderer2 }, { type: ɵngcc1.LocalizationService }, { type: ɵngcc0.ElementRef }]; }, { hostClass: [{\n type: HostBinding,\n args: ['class.k-form-field']\n }], showHints: [{\n type: Input\n }], orientation: [{\n type: Input\n }], showErrors: [{\n type: Input\n }], direction: [{\n type: HostBinding,\n args: ['attr.dir']\n }], errorClass: [{\n type: HostBinding,\n args: ['class.k-form-field-error']\n }], disabledClass: [{\n type: HostBinding,\n args: ['class.k-form-field-disabled']\n }], formControls: [{\n type: ContentChildren,\n args: [NgControl, { descendants: true }]\n }], controlElementRefs: [{\n type: ContentChildren,\n args: [NgControl, { read: ElementRef, descendants: true }]\n }], kendoInput: [{\n type: ContentChild,\n args: [KendoInput, { static: true }]\n }], errorChildren: [{\n type: ContentChildren,\n args: [ErrorComponent, { descendants: true }]\n }], hintChildren: [{\n type: ContentChildren,\n args: [HintComponent, { descendants: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FormFieldModule, [{\n type: NgModule,\n args: [{\n declarations: [HintComponent, ErrorComponent, FormFieldComponent],\n exports: [HintComponent, ErrorComponent, FormFieldComponent],\n imports: [CommonModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(FormFieldModule, { declarations: function () { return [HintComponent, ErrorComponent, FormFieldComponent]; }, imports: function () { return [CommonModule]; }, exports: function () { return [HintComponent, ErrorComponent, FormFieldComponent]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(InputsModule, [{\n type: NgModule,\n args: [{\n exports: [\n TextAreaModule,\n TextBoxModule,\n SliderModule,\n RangeSliderModule,\n SwitchModule,\n NumericTextBoxModule,\n MaskedTextBoxModule,\n ColorPickerModule,\n CheckBoxModule,\n RadioButtonModule,\n FormFieldModule\n ],\n imports: [CommonModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(InputsModule, { imports: function () { return [CommonModule]; }, exports: function () { return [TextAreaModule, TextBoxModule, SliderModule, RangeSliderModule, SwitchModule, NumericTextBoxModule, MaskedTextBoxModule, ColorPickerModule, CheckBoxModule, RadioButtonModule, FormFieldModule]; } }); })();\n\n\n\n\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ColorContrastSvgComponent, ColorInputComponent, ContrastValidationComponent, ContrastComponent, FlatColorPickerActionButtonsComponent, FlatColorPickerHeaderComponent, FocusOnDomReadyDirective, ColorGradientLocalizationService, ColorPaletteLocalizationService, ColorPickerLocalizationService, ColorPickerCustomMessagesComponent, FlatColorPickerLocalizationService, ColorPickerMessages, ColorPaletteService, FlatColorPickerService, MaskingService, NumericTextBoxMessages, RangeSliderCustomMessagesComponent, RangeSliderMessages, SHARED_DIRECTIVES, SliderCustomMessagesComponent, SliderMessages, SliderBase, SlidersCommonModule, SwitchCustomMessagesComponent, Messages, TextFieldsBase, TextBoxCustomMessagesComponent, TextBoxMessages, SliderComponent, RangeSliderComponent, LabelTemplateDirective, SwitchComponent, TextBoxDirective, TextAreaDirective, NumericTextBoxComponent, NumericTextBoxCustomMessagesComponent, MaskedTextBoxComponent, InputsModule, SliderTicksComponent, SliderModule, RangeSliderModule, SwitchModule, NumericTextBoxModule, MaskedTextBoxModule, TextBoxModule, TextAreaModule, CheckBoxModule, RadioButtonModule, ColorPickerComponent, ColorPaletteComponent, ColorGradientComponent, ColorPickerModule, FlatColorPickerComponent, CheckBoxDirective, RadioButtonDirective, HintComponent, ErrorComponent, FormFieldComponent, FormFieldModule, TextBoxComponent, TextBoxPrefixTemplateDirective, TextBoxSuffixTemplateDirective, TextAreaComponent, TextAreaSuffixComponent, InputSeparatorComponent, SharedModule, LocalizedColorPickerMessagesDirective, LocalizedNumericTextBoxMessagesDirective, LocalizedTextBoxMessagesDirective, LocalizedSliderMessagesDirective, LocalizedRangeSliderMessagesDirective, LocalizedSwitchMessagesDirective, ColorPickerCancelEvent, ColorPickerCloseEvent, ColorPickerOpenEvent, ActiveColorClickEvent };\n\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 { EventEmitter, ɵɵdefineInjectable, ɵɵinject, LOCALE_ID, Injectable, Inject, Pipe, NgModule } from '@angular/core';\nimport { validatePackage } from '@progress/kendo-licensing';\nimport { dateFormatNames, dateFieldName, firstDay, format, formatDate, formatNumber, load, numberSymbols, parseDate, parseNumber, splitDateFormat, toString, weekendRange, setData, localeInfo } from '@telerik/kendo-intl';\n\n/**\n * @hidden\n */\nimport * as ɵngcc0 from '@angular/core';\nconst packageMetadata = {\n name: '@progress/kendo-angular-intl',\n productName: 'Kendo UI for Angular',\n productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],\n publishDate: 1646219037,\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 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 */\nlet IntlService = class IntlService {\n /**\n * @hidden\n */\n constructor() {\n /**\n * @hidden\n */\n this.changes = new EventEmitter();\n validatePackage(packageMetadata);\n }\n /**\n * Notifies that the service was changed.\n */\n notify() {\n this.changes.emit();\n }\n};\nIntlService.ɵfac = function IntlService_Factory(t) { return new (t || IntlService)(); };\nIntlService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: IntlService, factory: function IntlService_Factory(t) { let r = null; if (t) {\n r = new t();\n }\n else {\n r = cldrServiceFactory(ɵngcc0.ɵɵinject(LOCALE_ID));\n } return r; }, providedIn: 'root' });\nIntlService.ngInjectableDef = ɵɵdefineInjectable({ factory: function IntlService_Factory() { return cldrServiceFactory(ɵɵinject(LOCALE_ID)); }, token: IntlService, providedIn: \"root\" });\nIntlService = __decorate([ __metadata(\"design:paramtypes\", [])\n], IntlService);\n/**\n * The Internationalization service implemented by using\n * the CLDR Database via the `@telerik/kendo-intl` package.\n */\nlet CldrIntlService = class 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.ɵfac = function CldrIntlService_Factory(t) { return new (t || CldrIntlService)(ɵngcc0.ɵɵinject(LOCALE_ID)); };\nCldrIntlService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: CldrIntlService, factory: function (t) { return CldrIntlService.ɵfac(t); } });\nCldrIntlService = __decorate([ __param(0, Inject(LOCALE_ID)),\n __metadata(\"design:paramtypes\", [String])\n], CldrIntlService);\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 */\nlet DatePipe = class 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.ɵfac = function DatePipe_Factory(t) { return new (t || DatePipe)(ɵngcc0.ɵɵdirectiveInject(IntlService, 16)); };\nDatePipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"kendoDate\", type: DatePipe, pure: true });\nDatePipe = __decorate([ __metadata(\"design:paramtypes\", [IntlService])\n], DatePipe);\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 */\nlet NumberPipe = class 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.ɵfac = function NumberPipe_Factory(t) { return new (t || NumberPipe)(ɵngcc0.ɵɵdirectiveInject(IntlService, 16)); };\nNumberPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"kendoNumber\", type: NumberPipe, pure: true });\nNumberPipe = __decorate([ __metadata(\"design:paramtypes\", [IntlService])\n], NumberPipe);\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 */\nlet IntlModule = class IntlModule {\n};\nIntlModule.ɵfac = function IntlModule_Factory(t) { return new (t || IntlModule)(); };\nIntlModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: IntlModule });\nIntlModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IntlService, [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useFactory: cldrServiceFactory,\n deps: [LOCALE_ID]\n }]\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CldrIntlService, [{\n type: Injectable\n }], function () { return [{ type: String, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DatePipe, [{\n type: Pipe,\n args: [{\n name: 'kendoDate'\n }]\n }], function () { return [{ type: IntlService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NumberPipe, [{\n type: Pipe,\n args: [{\n name: 'kendoNumber'\n }]\n }], function () { return [{ type: IntlService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IntlModule, [{\n type: NgModule,\n args: [{\n declarations: [pipes],\n exports: [pipes]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(IntlModule, { declarations: [DatePipe, NumberPipe], exports: [DatePipe, NumberPipe] }); })();\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\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 millisecond: {\n wide: \"millisecond\",\n short: \"ms\",\n narrow: \"ms\"\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 'S': 'millisecond',\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 = pad(String(milliseconds / 1000).split(\".\")[1].substr(0, formatLength), formatLength, true);\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}","/**-----------------------------------------------------------------------------------------\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, __param, __metadata } from 'tslib';\nimport { Injectable, InjectionToken, Inject, Optional } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { skip, map, 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 */\nimport * as ɵngcc0 from '@angular/core';\nlet MessageService = class MessageService {\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 */\n constructor() {\n /**\n * @hidden\n */\n this.changes = new BehaviorSubject({ rtl: undefined });\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.ɵfac = function MessageService_Factory(t) { return new (t || MessageService)(); };\nMessageService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: MessageService, factory: function (t) { return MessageService.ɵfac(t); } });\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}\nComponentMessages.ɵfac = function ComponentMessages_Factory(t) { return new (t || ComponentMessages)(); };\nComponentMessages.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ComponentMessages, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\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 */\nlet LocalizationService = class 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.ɵfac = function LocalizationService_Factory(t) { return new (t || LocalizationService)(ɵngcc0.ɵɵinject(L10N_PREFIX), ɵngcc0.ɵɵinject(MessageService, 8), ɵngcc0.ɵɵinject(RTL, 8)); };\nLocalizationService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: LocalizationService, factory: function (t) { return LocalizationService.ɵfac(t); } });\nLocalizationService = __decorate([ __param(0, Inject(L10N_PREFIX)),\n __param(1, Optional()),\n __param(2, Optional()), __param(2, Inject(RTL)),\n __metadata(\"design:paramtypes\", [String, MessageService, Boolean])\n], LocalizationService);\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MessageService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LocalizationService, [{\n type: Injectable\n }], function () { return [{ type: String, decorators: [{\n type: Inject,\n args: [L10N_PREFIX]\n }] }, { type: MessageService, decorators: [{\n type: Optional\n }] }, { type: Boolean, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [RTL]\n }] }]; }, null); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MessageService, ComponentMessages, L10N_PREFIX, LocalizationService, RTL };\n\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 } from 'tslib';\nimport { Input, HostBinding, Directive, ElementRef, Renderer2, NgZone, forwardRef, Component, NgModule, EventEmitter, isDevMode, Output, ContentChild, ChangeDetectorRef, ViewChild } from '@angular/core';\nimport { isDocumentAvailable, guid, hasObservers, KendoInput } from '@progress/kendo-angular-common';\nimport { ComponentMessages, LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';\nimport { CommonModule } from '@angular/common';\nimport { NgControl } from '@angular/forms';\nimport { validatePackage } from '@progress/kendo-licensing';\nimport { Observable, Subscription } from 'rxjs';\n\n/**\n * @hidden\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@progress/kendo-angular-l10n';\nimport * as ɵngcc2 from '@angular/common';\n\nfunction FloatingLabelComponent_label_2_span_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 4);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\"(\", ctx_r1.textFor(\"optional\"), \")\");\n} }\nfunction FloatingLabelComponent_label_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"label\", 2);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵtemplate(2, FloatingLabelComponent_label_2_span_2_Template, 2, 1, \"span\", 3);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r0.labelCssClass)(\"ngStyle\", ctx_r0.labelCssStyle)(\"for\", ctx_r0.id);\n ɵngcc0.ɵɵattribute(\"id\", ctx_r0.labelId);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r0.text, \"\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r0.optional);\n} }\nconst _c2 = [\"*\"];\nfunction LabelComponent_span_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 3);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\"(\", ctx_r0.textFor(\"optional\"), \")\");\n} }\nconst isUploadComponent = (component) => component.wrapper && (component.wrapper.tagName === 'KENDO-UPLOAD' || component.wrapper.tagName === 'KENDO-FILESELECT');\n/**\n * @hidden\n */\nconst isInputElement = (component) => component instanceof HTMLElement;\n/**\n * @hidden\n */\nconst inputElementHasAttr = (element, attribute) => element.hasAttribute(attribute);\n/**\n * @hidden\n */\nconst getWrappedNativeInput = (element) => element.querySelector('kendo-label > input, kendo-label > textarea, kendo-label > select');\n/**\n * @hidden\n */\nconst getRootElement = (element) => {\n if (!element) {\n return null;\n }\n let rootElement = element;\n while (rootElement.parentElement) {\n rootElement = rootElement.parentElement;\n }\n return rootElement;\n};\n\n/**\n * Represents the [Kendo UI Label directive for Angular]({% slug overview_label %}).\n * The Label associates a focusable Angular component or an HTML element\n * with a `label` tag by using the `[for]` property binding.\n *\n * To associate a component by using the `label` element, either:\n * * Set the `[for]` property binding to a\n * [template reference variable]({{ site.data.urls.angular['templatesyntax'] }}#template-reference-variables--var-), or\n * * Set the `[for]` property binding to an `id` HTML string value.\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 * ```\n */\nlet LabelDirective = class LabelDirective {\n constructor(label, renderer, zone) {\n this.label = label;\n this.renderer = renderer;\n this.zone = zone;\n this.labelClass = true;\n this.handleClick = () => {\n const component = this.getFocusableComponent();\n if (!component) {\n return;\n }\n if (isUploadComponent(component)) {\n component.fileSelect.nativeElement.click();\n }\n if (component.focus) {\n component.focus();\n }\n };\n }\n get labelFor() {\n if (typeof this.for === 'string') {\n return this.for;\n }\n if (!isDocumentAvailable()) {\n return null;\n }\n const component = this.getFocusableComponent() || {};\n if (isInputElement(component) && !inputElementHasAttr(component, 'id')) {\n this.renderer.setAttribute(component, 'id', `k-${guid()}`);\n }\n return component.focusableId || component.id || null;\n }\n /**\n * @hidden\n */\n ngAfterViewInit() {\n this.setAriaLabelledby();\n this.zone.runOutsideAngular(() => this.clickListener = this.renderer.listen(this.label.nativeElement, 'click', this.handleClick));\n }\n /**\n * @hidden\n */\n ngOnDestroy() {\n if (this.clickListener) {\n this.clickListener();\n }\n }\n /**\n * @hidden\n */\n setAriaLabelledby() {\n if (!isDocumentAvailable()) {\n return;\n }\n const component = this.getFocusableComponent();\n if (component && component.focusableId) {\n const rootElement = getRootElement(this.label.nativeElement);\n const labelTarget = rootElement.querySelector(`#${component.focusableId}`);\n if (!labelTarget) {\n return;\n }\n const labelElement = this.label.nativeElement;\n const id = labelElement.id || `k-${guid()}`;\n if (!labelElement.getAttribute('id')) {\n this.renderer.setAttribute(labelElement, 'id', id);\n }\n this.renderer.setAttribute(labelTarget, 'aria-labelledby', id);\n }\n }\n getFocusableComponent() {\n const target = this.for;\n return target && target.focus !== undefined ? target : null;\n }\n};\nLabelDirective.ɵfac = function LabelDirective_Factory(t) { return new (t || LabelDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nLabelDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LabelDirective, selectors: [[\"label\", \"for\", \"\"]], hostVars: 3, hostBindings: function LabelDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"for\", ctx.labelFor);\n ɵngcc0.ɵɵclassProp(\"k-label\", ctx.labelClass);\n } }, inputs: { for: \"for\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], LabelDirective.prototype, \"for\", void 0);\n__decorate([\n HostBinding('attr.for'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], LabelDirective.prototype, \"labelFor\", null);\n__decorate([\n HostBinding('class.k-label'),\n __metadata(\"design:type\", Boolean)\n], LabelDirective.prototype, \"labelClass\", void 0);\nLabelDirective = __decorate([ __metadata(\"design:paramtypes\", [ElementRef, Renderer2, NgZone])\n], LabelDirective);\n\n/**\n * @hidden\n */\nclass Messages extends ComponentMessages {\n}\nMessages.ɵfac = /*@__PURE__*/ function () { let ɵMessages_BaseFactory; return function Messages_Factory(t) { return (ɵMessages_BaseFactory || (ɵMessages_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(Messages)))(t || Messages); }; }();\nMessages.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: Messages, inputs: { optional: \"optional\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"optional\", void 0);\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.ɵfac = function LocalizedMessagesDirective_Factory(t) { return new (t || LocalizedMessagesDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nLocalizedMessagesDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LocalizedMessagesDirective, selectors: [[\"\", \"kendoLabelLocalizedMessages\", \"\"], [\"\", \"kendoFloatingLabelLocalizedMessages\", \"\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: Messages,\n useExisting: forwardRef(() => LocalizedMessagesDirective_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature] });\nLocalizedMessagesDirective = LocalizedMessagesDirective_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], LocalizedMessagesDirective);\n\nvar CustomMessagesComponent_1;\n/**\n * Custom component messages override default component messages\n * ([see example]({% slug label_globalization %}#toc-localization)).\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.ɵfac = function CustomMessagesComponent_Factory(t) { return new (t || CustomMessagesComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nCustomMessagesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CustomMessagesComponent, selectors: [[\"kendo-label-messages\"], [\"kendo-floatinglabel-messages\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: Messages,\n useExisting: forwardRef(() => CustomMessagesComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function CustomMessagesComponent_Template(rf, ctx) { }, encapsulation: 2 });\nCustomMessagesComponent = CustomMessagesComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], CustomMessagesComponent);\n\nconst SHARED_DIRECTIVES = [\n LocalizedMessagesDirective,\n CustomMessagesComponent\n];\n/**\n * @hidden\n */\nlet SharedDirectivesModule = class SharedDirectivesModule {\n};\nSharedDirectivesModule.ɵfac = function SharedDirectivesModule_Factory(t) { return new (t || SharedDirectivesModule)(); };\nSharedDirectivesModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: SharedDirectivesModule });\nSharedDirectivesModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\n/**\n * @hidden\n */\nconst packageMetadata = {\n name: '@progress/kendo-angular-label',\n productName: 'Kendo UI for Angular',\n productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],\n publishDate: 1646219058,\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\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 * Represents the [Kendo UI FloatingLabel component for Angular]({% slug overview_floatinglabel %}).\n * Provides floating labels to `input` elements.\n *\n * The FloatingLabel supports both Template and Reactive Forms and\n * [can contain Kendo UI for Angular Input components such as `kendo-combobox` and `kendo-numerictextbox`,\n * or HTML Input elements with the `kendoTextBox` directive applied]({% slug overview_floatinglabel %}#toc-implementing-floating-labels).\n *\n * @example\n * ```ts\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * `\n * })\n * class AppComponent {\n * public name = 'John';\n * }\n *\n * ```\n */\nlet FloatingLabelComponent = class FloatingLabelComponent {\n constructor(elementRef, renderer, changeDetectorRef, localization) {\n this.elementRef = elementRef;\n this.renderer = renderer;\n this.changeDetectorRef = changeDetectorRef;\n this.localization = localization;\n this.hostClasses = true;\n /**\n * Fires after the floating label position is changed.\n */\n this.positionChange = new EventEmitter();\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 /**\n * @hidden\n */\n this.labelId = `k-${guid()}`;\n this.autoFillStarted = false;\n validatePackage(packageMetadata);\n this.direction = localization.rtl ? 'rtl' : 'ltr';\n this.renderer.removeAttribute(this.elementRef.nativeElement, \"id\");\n }\n /**\n * Represents the current floating label position.\n */\n get labelPosition() {\n if (!this.empty) {\n return 'Out';\n }\n return this.focused ? 'Out' : 'In';\n }\n get focusedClass() {\n return this.focused;\n }\n get invalidClass() {\n return this.invalid;\n }\n /**\n * @hidden\n */\n ngAfterContentInit() {\n this.validateSetup();\n const control = new FloatingLabelInputAdapter(this.kendoInput || this.formControl.valueAccessor, this.formControl);\n this.addHandlers(control);\n this.setLabelFor(control);\n }\n ngAfterViewInit() {\n if (this.kendoInput) {\n this.setAriaLabelledby(this.kendoInput);\n }\n }\n /**\n * @hidden\n */\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n /**\n * @hidden\n */\n textFor(key) {\n return this.localization.get(key);\n }\n subscribe(control, eventName, handler) {\n if (control[eventName] instanceof EventEmitter) {\n const subscription = control[eventName].subscribe(handler);\n if (!this.subscription) {\n this.subscription = subscription;\n }\n else {\n this.subscription.add(subscription);\n }\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 setAriaLabelledby(component) {\n const componentId = component.focusableId || component.id;\n if (componentId) {\n const focusableElement = this.elementRef.nativeElement.querySelector(`#${componentId}`);\n this.renderer.setAttribute(focusableElement, 'aria-labelledby', this.labelId);\n }\n }\n setLabelFor(control) {\n const controlId = control.focusableId || control.id;\n if (this.id && controlId) {\n // input wins\n this.id = controlId;\n }\n else if (this.id) {\n control.focusableId = this.id;\n }\n else if (controlId) {\n this.id = controlId;\n }\n else {\n const id = `k-${guid()}`;\n control.focusableId = id;\n this.id = id;\n }\n }\n handleAutofill(control) {\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 }\n addHandlers(control) {\n const setFocus = (isFocused) => () => {\n this.focused = isFocused;\n this.updateState();\n if (!this.empty) {\n return;\n }\n if (hasObservers(this.positionChange)) {\n this.positionChange.emit(isFocused ? 'Out' : 'In');\n }\n };\n this.subscribe(control, 'onFocus', setFocus(true));\n this.subscribe(control, 'onBlur', setFocus(false));\n this.handleAutofill(control);\n const updateState = () => this.updateState();\n updateState();\n this.subscribe(control, 'onValueChange', updateState);\n }\n validateSetup() {\n if (!this.formControl && !this.kendoInput) {\n if (isDevMode()) {\n throw new Error(\"The FloatingLabelComponent requires a Kendo Input component\" +\n \" or a forms-bound component to function properly.\");\n }\n return;\n }\n }\n};\nFloatingLabelComponent.ɵfac = function FloatingLabelComponent_Factory(t) { return new (t || FloatingLabelComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nFloatingLabelComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: FloatingLabelComponent, selectors: [[\"kendo-floatinglabel\"]], contentQueries: function FloatingLabelComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, KendoInput, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgControl, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.kendoInput = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.formControl = _t.first);\n } }, hostVars: 7, hostBindings: function FloatingLabelComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"dir\", ctx.direction);\n ɵngcc0.ɵɵclassProp(\"k-floating-label-container\", ctx.hostClasses)(\"k-state-focused\", ctx.focusedClass)(\"k-state-invalid\", ctx.invalidClass);\n } }, inputs: { id: \"id\", labelCssStyle: \"labelCssStyle\", labelCssClass: \"labelCssClass\", text: \"text\", optional: \"optional\" }, outputs: { positionChange: \"positionChange\" }, exportAs: [\"kendoFloatingLabel\"], features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.floatinglabel'\n }\n ])], ngContentSelectors: _c2, decls: 3, vars: 1, consts: function () { let i18n_0; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text for the optional segment of a FloatingLabel component\n * @meaning kendo.floatinglabel.optional\n */\n const MSG_EXTERNAL_356911862062553631$$DIST_FESM2015_INDEX_JS_1 = goog.getMsg(\"Optional\");\n i18n_0 = MSG_EXTERNAL_356911862062553631$$DIST_FESM2015_INDEX_JS_1;\n }\n else {\n i18n_0 = $localize `:kendo.floatinglabel.optional|The text for the optional segment of a FloatingLabel component␟d6b1dd6fb7530bd600b430042425d10b22163d1f␟356911862062553631:Optional`;\n } return [[\"kendoFloatingLabelLocalizedMessages\", \"\", \"optional\", i18n_0], [\"class\", \"k-label\", 3, \"ngClass\", \"ngStyle\", \"for\", 4, \"ngIf\"], [1, \"k-label\", 3, \"ngClass\", \"ngStyle\", \"for\"], [\"class\", \"k-label-optional\", 4, \"ngIf\"], [1, \"k-label-optional\"]]; }, template: function FloatingLabelComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelementContainer(0, 0);\n ɵngcc0.ɵɵprojection(1);\n ɵngcc0.ɵɵtemplate(2, FloatingLabelComponent_label_2_Template, 3, 6, \"label\", 1);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.text);\n } }, directives: [LocalizedMessagesDirective, ɵngcc2.NgIf, ɵngcc2.NgClass, ɵngcc2.NgStyle], encapsulation: 2 });\n__decorate([\n HostBinding('class.k-floating-label-container'),\n __metadata(\"design:type\", Boolean)\n], FloatingLabelComponent.prototype, \"hostClasses\", void 0);\n__decorate([\n HostBinding('class.k-state-focused'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], FloatingLabelComponent.prototype, \"focusedClass\", null);\n__decorate([\n HostBinding('class.k-state-invalid'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], FloatingLabelComponent.prototype, \"invalidClass\", null);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String)\n], FloatingLabelComponent.prototype, \"direction\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], FloatingLabelComponent.prototype, \"labelCssStyle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], FloatingLabelComponent.prototype, \"labelCssClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FloatingLabelComponent.prototype, \"id\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FloatingLabelComponent.prototype, \"text\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], FloatingLabelComponent.prototype, \"optional\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], FloatingLabelComponent.prototype, \"positionChange\", void 0);\n__decorate([\n ContentChild(KendoInput, { static: false }),\n __metadata(\"design:type\", Object)\n], FloatingLabelComponent.prototype, \"kendoInput\", void 0);\n__decorate([\n ContentChild(NgControl, { static: false }),\n __metadata(\"design:type\", NgControl)\n], FloatingLabelComponent.prototype, \"formControl\", void 0);\nFloatingLabelComponent = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n Renderer2,\n ChangeDetectorRef,\n LocalizationService])\n], FloatingLabelComponent);\n\nconst COMPONENT_DIRECTIVES = [FloatingLabelComponent];\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 *\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, FloatingLabelModule], // import FloatingLabel module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nlet FloatingLabelModule = class FloatingLabelModule {\n};\nFloatingLabelModule.ɵfac = function FloatingLabelModule_Factory(t) { return new (t || FloatingLabelModule)(); };\nFloatingLabelModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: FloatingLabelModule });\nFloatingLabelModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule, SharedDirectivesModule], SharedDirectivesModule] });\n\n/**\n * Represents the [Kendo UI Label component for Angular]({% slug label_basic %}).\n *\n * Associates a label with input elements or components.\n *\n * @example\n * ```ts\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * `\n * })\n * class AppComponent {\n * public name = 'John';\n * }\n *\n * ```\n */\nlet LabelComponent = class LabelComponent {\n constructor(elementRef, renderer, localization) {\n this.elementRef = elementRef;\n this.renderer = renderer;\n this.localization = localization;\n this.subscriptions = new Subscription();\n validatePackage(packageMetadata);\n this.direction = localization.rtl ? 'rtl' : 'ltr';\n this.renderer.removeAttribute(this.elementRef.nativeElement, 'id');\n }\n /**\n * @hidden\n */\n ngAfterContentInit() {\n if (this.for) {\n this.control = this.for;\n return;\n }\n const wrappedNativeInput = getWrappedNativeInput(this.elementRef.nativeElement);\n if (wrappedNativeInput) {\n if (!wrappedNativeInput.hasAttribute('id')) {\n this.renderer.setAttribute(wrappedNativeInput, 'id', `k-${guid()}`);\n }\n this.control = wrappedNativeInput;\n return;\n }\n this.control = this.kendoInput;\n }\n /**\n * @hidden\n */\n ngOnInit() {\n this.subscriptions.add(this.localization.changes.subscribe(({ rtl }) => {\n this.direction = rtl ? 'rtl' : 'ltr';\n }));\n }\n /**\n * @hidden\n */\n ngAfterViewInit() {\n this.labelDirective.setAriaLabelledby();\n }\n /**\n * @hidden\n */\n ngOnDestroy() {\n if (this.subscriptions) {\n this.subscriptions.unsubscribe();\n }\n }\n /**\n * @hidden\n */\n textFor(key) {\n return this.localization.get(key);\n }\n};\nLabelComponent.ɵfac = function LabelComponent_Factory(t) { return new (t || LabelComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nLabelComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: LabelComponent, selectors: [[\"kendo-label\"]], contentQueries: function LabelComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, KendoInput, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.kendoInput = _t.first);\n } }, viewQuery: function LabelComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(LabelDirective, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.labelDirective = _t.first);\n } }, hostVars: 1, hostBindings: function LabelComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"dir\", ctx.direction);\n } }, inputs: { text: \"text\", for: \"for\", optional: \"optional\" }, exportAs: [\"kendoLabel\"], features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.label'\n }\n ])], ngContentSelectors: _c2, decls: 5, vars: 5, consts: function () { let i18n_3; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text for the optional segment of a Label component\n * @meaning kendo.label.optional\n */\n const MSG_EXTERNAL_3476218486854814180$$DIST_FESM2015_INDEX_JS_4 = goog.getMsg(\"Optional\");\n i18n_3 = MSG_EXTERNAL_3476218486854814180$$DIST_FESM2015_INDEX_JS_4;\n }\n else {\n i18n_3 = $localize `:kendo.label.optional|The text for the optional segment of a Label component␟a1cd4a8f359a22151d7e73f2887fbb2967cd389a␟3476218486854814180:Optional`;\n } return [[\"kendoLabelLocalizedMessages\", \"\", \"optional\", i18n_3], [3, \"for\"], [\"class\", \"k-label-optional\", 4, \"ngIf\"], [1, \"k-label-optional\"]]; }, template: function LabelComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelementContainer(0, 0);\n ɵngcc0.ɵɵelementStart(1, \"label\", 1);\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵtemplate(3, LabelComponent_span_3_Template, 2, 1, \"span\", 2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵprojection(4);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"k-label-empty\", !ctx.text);\n ɵngcc0.ɵɵproperty(\"for\", ctx.control);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx.text, \"\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.optional);\n } }, directives: [LocalizedMessagesDirective, LabelDirective, ɵngcc2.NgIf], encapsulation: 2 });\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String)\n], LabelComponent.prototype, \"direction\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], LabelComponent.prototype, \"text\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], LabelComponent.prototype, \"for\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], LabelComponent.prototype, \"optional\", void 0);\n__decorate([\n ViewChild(LabelDirective, { static: true }),\n __metadata(\"design:type\", LabelDirective)\n], LabelComponent.prototype, \"labelDirective\", void 0);\n__decorate([\n ContentChild(KendoInput, { static: true }),\n __metadata(\"design:type\", Object)\n], LabelComponent.prototype, \"kendoInput\", void 0);\nLabelComponent = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n Renderer2,\n LocalizationService])\n], LabelComponent);\n\nconst COMPONENT_DIRECTIVES$1 = [\n LabelDirective,\n LabelComponent\n];\n/**\n * The exported package module.\n *\n * The package exports:\n * - `LabelDirective`—The Label directive class.\n * - `LabelComponent`—The Label component class\n * - `FLoatingLabel`—The FloatingLabel component class.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the Label module\n * import { LabelModule } from '@progress/kendo-angular-label';\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, LabelModule], // import Label module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nlet LabelModule = class LabelModule {\n};\nLabelModule.ɵfac = function LabelModule_Factory(t) { return new (t || LabelModule)(); };\nLabelModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: LabelModule });\nLabelModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule, SharedDirectivesModule], FloatingLabelModule, SharedDirectivesModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LabelDirective, [{\n type: Directive,\n args: [{\n selector: 'label[for]' //tslint:disable-line:directive-selector\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.NgZone }]; }, { labelClass: [{\n type: HostBinding,\n args: ['class.k-label']\n }], labelFor: [{\n type: HostBinding,\n args: ['attr.for']\n }], for: [{\n type: Input\n }] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LocalizedMessagesDirective, [{\n type: Directive,\n args: [{\n providers: [\n {\n provide: Messages,\n useExisting: forwardRef(() => LocalizedMessagesDirective_1)\n }\n ],\n selector: `\n [kendoLabelLocalizedMessages],\n [kendoFloatingLabelLocalizedMessages]\n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CustomMessagesComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: Messages,\n useExisting: forwardRef(() => CustomMessagesComponent_1)\n }\n ],\n selector: 'kendo-label-messages, kendo-floatinglabel-messages',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SharedDirectivesModule, [{\n type: NgModule,\n args: [{\n declarations: [SHARED_DIRECTIVES],\n exports: [SHARED_DIRECTIVES]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(SharedDirectivesModule, { declarations: [LocalizedMessagesDirective, CustomMessagesComponent], exports: [LocalizedMessagesDirective, CustomMessagesComponent] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FloatingLabelComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-floatinglabel',\n exportAs: 'kendoFloatingLabel',\n providers: [\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.floatinglabel'\n }\n ],\n template: `\n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc1.LocalizationService }]; }, { hostClasses: [{\n type: HostBinding,\n args: ['class.k-floating-label-container']\n }], positionChange: [{\n type: Output\n }], direction: [{\n type: HostBinding,\n args: ['attr.dir']\n }], focusedClass: [{\n type: HostBinding,\n args: ['class.k-state-focused']\n }], invalidClass: [{\n type: HostBinding,\n args: ['class.k-state-invalid']\n }], id: [{\n type: Input\n }], labelCssStyle: [{\n type: Input\n }], labelCssClass: [{\n type: Input\n }], text: [{\n type: Input\n }], optional: [{\n type: Input\n }], kendoInput: [{\n type: ContentChild,\n args: [KendoInput, { static: false }]\n }], formControl: [{\n type: ContentChild,\n args: [NgControl, { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FloatingLabelModule, [{\n type: NgModule,\n args: [{\n declarations: [...COMPONENT_DIRECTIVES],\n exports: [...COMPONENT_DIRECTIVES, SharedDirectivesModule],\n imports: [CommonModule, SharedDirectivesModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(FloatingLabelModule, { declarations: function () { return [FloatingLabelComponent]; }, imports: function () { return [CommonModule, SharedDirectivesModule]; }, exports: function () { return [FloatingLabelComponent, SharedDirectivesModule]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LabelComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-label',\n exportAs: 'kendoLabel',\n providers: [\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.label'\n }\n ],\n template: `\n \n \n \n {{ text }}({{textFor('optional')}})\n \n \n `\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc1.LocalizationService }]; }, { direction: [{\n type: HostBinding,\n args: ['attr.dir']\n }], text: [{\n type: Input\n }], for: [{\n type: Input\n }], optional: [{\n type: Input\n }], labelDirective: [{\n type: ViewChild,\n args: [LabelDirective, { static: true }]\n }], kendoInput: [{\n type: ContentChild,\n args: [KendoInput, { static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LabelModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, SharedDirectivesModule],\n declarations: [...COMPONENT_DIRECTIVES$1],\n exports: [...COMPONENT_DIRECTIVES$1, FloatingLabelModule, SharedDirectivesModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(LabelModule, { declarations: function () { return [LabelDirective, LabelComponent]; }, imports: function () { return [CommonModule, SharedDirectivesModule]; }, exports: function () { return [LabelDirective, LabelComponent, FloatingLabelModule, SharedDirectivesModule]; } }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { LocalizedMessagesDirective, Messages, SharedDirectivesModule, LabelDirective, LabelModule, FloatingLabelModule, FloatingLabelComponent, LabelComponent, CustomMessagesComponent };\n\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, Directive, TemplateRef, Optional, isDevMode, Input, ViewChild, ElementRef, HostBinding, ViewChildren, QueryList, ContentChildren, Component, SkipSelf, Host, Renderer2, EventEmitter, Output, ContentChild, HostListener, ChangeDetectorRef, NgZone, Inject, forwardRef, ViewEncapsulation, NgModule } from '@angular/core';\nimport { LocalizationService, L10N_PREFIX, ComponentMessages } from '@progress/kendo-angular-l10n';\nimport { Keys, DraggableDirective, PreventableEvent, isDocumentAvailable, hasObservers, EventsModule, DraggableModule, ResizeSensorModule, isChanged } from '@progress/kendo-angular-common';\nimport { validatePackage } from '@progress/kendo-licensing';\nimport { trigger, state, style, transition, animate, AUTO_STYLE, AnimationBuilder } from '@angular/animations';\nimport { Subject, BehaviorSubject, Subscription, of } from 'rxjs';\nimport { tap, filter, switchMap, delay, takeUntil, map, take } from 'rxjs/operators';\nimport Draggable from '@telerik/kendo-draggable';\nimport { CommonModule } from '@angular/common';\nimport { ProgressBarModule } from '@progress/kendo-angular-progressbar';\n\n/**\n * @hidden\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/common';\nimport * as ɵngcc2 from '@progress/kendo-angular-l10n';\nimport * as ɵngcc3 from '@progress/kendo-angular-common';\nimport * as ɵngcc4 from '@angular/animations';\nimport * as ɵngcc5 from '@progress/kendo-angular-progressbar';\n\nconst _c0 = [\"header\"];\nconst _c1 = [\"contentWrapper\"];\nfunction PanelBarItemComponent_span_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 6);\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r1.iconClasses);\n} }\nfunction PanelBarItemComponent_img_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"img\", 7);\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"src\", ctx_r2.imageUrl, ɵngcc0.ɵɵsanitizeUrl);\n} }\nfunction PanelBarItemComponent_ng_container_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵelementStart(1, \"span\", 8);\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate(ctx_r3.title);\n} }\nfunction PanelBarItemComponent_5_ng_template_0_Template(rf, ctx) { }\nfunction PanelBarItemComponent_5_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, PanelBarItemComponent_5_ng_template_0_Template, 0, 0, \"ng-template\", 9);\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r4.titleTemplate);\n} }\nconst _c2 = function (a0, a1) { return { \"k-i-arrow-chevron-up k-panelbar-collapse\": a0, \"k-i-arrow-chevron-down k-panelbar-expand\": a1 }; };\nfunction PanelBarItemComponent_span_6_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 10);\n} if (rf & 2) {\n const ctx_r5 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction2(1, _c2, ctx_r5.expanded, !ctx_r5.expanded));\n} }\nfunction PanelBarItemComponent_div_7_div_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 14);\n ɵngcc0.ɵɵprojection(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r9 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵstyleProp(\"overflow\", ctx_r9.contentOverflow)(\"height\", ctx_r9.contentHeight);\n} }\nfunction PanelBarItemComponent_div_7_div_3_ng_template_1_Template(rf, ctx) { }\nconst _c3 = function (a0, a1, a2, a3, a4, a5) { return { title: a0, id: a1, icon: a2, imageUrl: a3, disabled: a4, content: a5 }; };\nconst _c4 = function (a0) { return { $implicit: a0 }; };\nfunction PanelBarItemComponent_div_7_div_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 15);\n ɵngcc0.ɵɵtemplate(1, PanelBarItemComponent_div_7_div_3_ng_template_1_Template, 0, 0, \"ng-template\", 16);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r10 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵstyleProp(\"overflow\", ctx_r10.contentOverflow)(\"height\", ctx_r10.contentHeight);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r10.contentTemplate.first.templateRef)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction1(13, _c4, ɵngcc0.ɵɵpureFunction6(6, _c3, ctx_r10.title, ctx_r10.id, ctx_r10.icon, ctx_r10.imageUrl, ctx_r10.disabled, ctx_r10.content)));\n} }\nfunction PanelBarItemComponent_div_7_div_4_ng_container_1_kendo_panelbar_item_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-panelbar-item\", 19);\n} if (rf & 2) {\n const item_r15 = ɵngcc0.ɵɵnextContext().$implicit;\n const ctx_r16 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"title\", item_r15.title)(\"id\", item_r15.id)(\"icon\", item_r15.icon)(\"iconClass\", item_r15.iconClass)(\"imageUrl\", item_r15.imageUrl)(\"selected\", !!item_r15.selected)(\"expanded\", !!item_r15.expanded)(\"disabled\", !!item_r15.disabled)(\"template\", ctx_r16.template)(\"items\", item_r15.children)(\"content\", item_r15.content);\n} }\nfunction PanelBarItemComponent_div_7_div_4_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, PanelBarItemComponent_div_7_div_4_ng_container_1_kendo_panelbar_item_1_Template, 1, 11, \"kendo-panelbar-item\", 18);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const item_r15 = ctx.$implicit;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !item_r15.hidden);\n} }\nfunction PanelBarItemComponent_div_7_div_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 14);\n ɵngcc0.ɵɵtemplate(1, PanelBarItemComponent_div_7_div_4_ng_container_1_Template, 2, 1, \"ng-container\", 17);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r11 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵstyleProp(\"overflow\", ctx_r11.contentOverflow)(\"height\", ctx_r11.contentHeight);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r11.items);\n} }\nfunction PanelBarItemComponent_div_7_div_5_ng_template_1_Template(rf, ctx) { }\nfunction PanelBarItemComponent_div_7_div_5_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n} if (rf & 2) {\n const ctx_r19 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵtextInterpolate(ctx_r19.content);\n} }\nfunction PanelBarItemComponent_div_7_div_5_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 15);\n ɵngcc0.ɵɵtemplate(1, PanelBarItemComponent_div_7_div_5_ng_template_1_Template, 0, 0, \"ng-template\", 16);\n ɵngcc0.ɵɵtemplate(2, PanelBarItemComponent_div_7_div_5_ng_template_2_Template, 1, 1, \"ng-template\", 20);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r12 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵstyleProp(\"overflow\", ctx_r12.contentOverflow)(\"height\", ctx_r12.contentHeight);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r12.template)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction1(14, _c4, ɵngcc0.ɵɵpureFunction6(7, _c3, ctx_r12.title, ctx_r12.id, ctx_r12.icon, ctx_r12.imageUrl, ctx_r12.disabled, ctx_r12.content)));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r12.template);\n} }\nfunction PanelBarItemComponent_div_7_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", null, 11);\n ɵngcc0.ɵɵtemplate(2, PanelBarItemComponent_div_7_div_2_Template, 2, 4, \"div\", 12);\n ɵngcc0.ɵɵtemplate(3, PanelBarItemComponent_div_7_div_3_Template, 2, 15, \"div\", 13);\n ɵngcc0.ɵɵtemplate(4, PanelBarItemComponent_div_7_div_4_Template, 2, 5, \"div\", 12);\n ɵngcc0.ɵɵtemplate(5, PanelBarItemComponent_div_7_div_5_Template, 3, 16, \"div\", 13);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r6 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"@toggle\", ctx_r6.state);\n ɵngcc0.ɵɵattribute(\"role\", \"group\")(\"aria-hidden\", !ctx_r6.disabled && !ctx_r6.expanded);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r6.hasChildItems && !(ctx_r6.items == null ? null : ctx_r6.items.length));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r6.hasContent && !ctx_r6.content);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r6.hasItems);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r6.content);\n} }\nconst _c5 = [[[\"kendo-panelbar-item\"]]];\nconst _c6 = [\"kendo-panelbar-item\"];\nfunction PanelBarComponent_ng_content_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojection(0, 0, [\"*ngIf\", \"contentChildItems && !items\"]);\n} }\nfunction PanelBarComponent_ng_template_1_ng_container_0_kendo_panelbar_item_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-panelbar-item\", 4);\n} if (rf & 2) {\n const item_r3 = ɵngcc0.ɵɵnextContext().$implicit;\n const ctx_r4 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"title\", item_r3.title)(\"id\", item_r3.id)(\"icon\", item_r3.icon)(\"iconClass\", item_r3.iconClass)(\"imageUrl\", item_r3.imageUrl)(\"selected\", !!item_r3.selected)(\"expanded\", !!item_r3.expanded)(\"disabled\", !!item_r3.disabled)(\"template\", ctx_r4.templateRef)(\"items\", item_r3.children)(\"content\", item_r3.content);\n} }\nfunction PanelBarComponent_ng_template_1_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, PanelBarComponent_ng_template_1_ng_container_0_kendo_panelbar_item_1_Template, 1, 11, \"kendo-panelbar-item\", 3);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const item_r3 = ctx.$implicit;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !item_r3.hidden);\n} }\nfunction PanelBarComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, PanelBarComponent_ng_template_1_ng_container_0_Template, 2, 1, \"ng-container\", 2);\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r1.items);\n} }\nfunction SplitterPaneComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵprojection(1);\n ɵngcc0.ɵɵelementContainerEnd();\n} }\nfunction SplitterPaneComponent_div_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"div\", 2);\n} }\nconst _c7 = [\"*\"];\nfunction SplitterComponent_ng_container_1_kendo_splitter_bar_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-splitter-bar\", 2);\n} if (rf & 2) {\n const index_r2 = ɵngcc0.ɵɵnextContext().index;\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"index\", index_r2)(\"orientation\", ctx_r4.orientation);\n} }\nfunction SplitterComponent_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, SplitterComponent_ng_container_1_kendo_splitter_bar_1_Template, 1, 2, \"kendo-splitter-bar\", 1);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const last_r3 = ctx.last;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !last_r3);\n} }\nconst _c8 = [[[\"kendo-splitter-pane\"]]];\nconst _c9 = [\"kendo-splitter-pane\"];\nconst _c10 = [\"kendoTabStripScrollableButton\", \"\"];\nconst _c11 = [\"tablist\"];\nconst _c12 = [\"prevScrollButton\"];\nconst _c13 = [\"nextScrollButton\"];\nconst _c14 = [\"tabHeaderContainer\"];\nfunction TabStripComponent_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0);\n} }\nfunction TabStripComponent_ng_container_1_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0);\n} }\nfunction TabStripComponent_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, TabStripComponent_ng_container_1_ng_container_1_Template, 1, 0, \"ng-container\", 5);\n ɵngcc0.ɵɵtemplate(2, TabStripComponent_ng_container_1_ng_container_2_Template, 1, 0, \"ng-container\", 5);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n ɵngcc0.ɵɵnextContext();\n const _r2 = ɵngcc0.ɵɵreference(4);\n const _r4 = ɵngcc0.ɵɵreference(6);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", _r2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", _r4);\n} }\nfunction TabStripComponent_ng_container_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0);\n} }\nfunction TabStripComponent_ng_container_2_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0);\n} }\nfunction TabStripComponent_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, TabStripComponent_ng_container_2_ng_container_1_Template, 1, 0, \"ng-container\", 5);\n ɵngcc0.ɵɵtemplate(2, TabStripComponent_ng_container_2_ng_container_2_Template, 1, 0, \"ng-container\", 5);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n ɵngcc0.ɵɵnextContext();\n const _r4 = ɵngcc0.ɵɵreference(6);\n const _r2 = ɵngcc0.ɵɵreference(4);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", _r4);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", _r2);\n} }\nfunction TabStripComponent_ng_template_3_span_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 11, 12);\n} if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"prev\", true);\n} }\nfunction TabStripComponent_ng_template_3_ng_container_4_li_1_Template(rf, ctx) { if (rf & 1) {\n const _r22 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\", 14, 15);\n ɵngcc0.ɵɵlistener(\"click\", function TabStripComponent_ng_template_3_ng_container_4_li_1_Template_li_click_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r22); const i_r17 = ɵngcc0.ɵɵnextContext().index; const ctx_r20 = ɵngcc0.ɵɵnextContext(2); return ctx_r20.onTabClick($event, i_r17); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r23 = ɵngcc0.ɵɵnextContext();\n const tab_r16 = ctx_r23.$implicit;\n const i_r17 = ctx_r23.index;\n const ctx_r18 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngClass\", tab_r16.cssClass)(\"ngStyle\", tab_r16.cssStyle)(\"tab\", tab_r16)(\"index\", i_r17)(\"tabStripClosable\", ctx_r18.closable)(\"tabStripCloseIcon\", ctx_r18.closeIcon)(\"id\", \"k-tabstrip-tab-\" + i_r17);\n ɵngcc0.ɵɵattribute(\"aria-controls\", \"k-tabstrip-tabpanel-\" + i_r17);\n} }\nfunction TabStripComponent_ng_template_3_ng_container_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, TabStripComponent_ng_template_3_ng_container_4_li_1_Template, 2, 8, \"li\", 13);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const tab_r16 = ctx.$implicit;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !tab_r16.closed);\n} }\nfunction TabStripComponent_ng_template_3_span_5_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 11, 16);\n} if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"prev\", false);\n} }\nfunction TabStripComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 6);\n ɵngcc0.ɵɵtemplate(1, TabStripComponent_ng_template_3_span_1_Template, 2, 1, \"span\", 7);\n ɵngcc0.ɵɵelementStart(2, \"ul\", 8, 9);\n ɵngcc0.ɵɵtemplate(4, TabStripComponent_ng_template_3_ng_container_4_Template, 2, 1, \"ng-container\", 10);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(5, TabStripComponent_ng_template_3_span_5_Template, 2, 1, \"span\", 7);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r3.itemsWrapperClass);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r3.hasScrollButtons);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵstyleProp(\"justify-content\", ctx_r3.tabsAlignmentStyles)(\"width\", ctx_r3.tabListWidth)(\"height\", ctx_r3.tabListHeight);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r3.tabs);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r3.hasScrollButtons);\n} }\nfunction TabStripComponent_ng_template_5_ng_template_0_div_0_ng_template_1_Template(rf, ctx) { }\nfunction TabStripComponent_ng_template_5_ng_template_0_div_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 19);\n ɵngcc0.ɵɵtemplate(1, TabStripComponent_ng_template_5_ng_template_0_div_0_ng_template_1_Template, 0, 0, \"ng-template\", 20);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r30 = ɵngcc0.ɵɵnextContext();\n const tab_r26 = ctx_r30.$implicit;\n const i_r27 = ctx_r30.index;\n const ctx_r28 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"@state\", tab_r26.selected && ctx_r28.animate ? \"active\" : \"inactive\")(\"ngClass\", !ctx_r28.keepTabContent || tab_r26.selected ? \"k-content k-state-active\" : \"k-content\")(\"tabIndex\", 0)(\"id\", \"k-tabstrip-tabpanel-\" + i_r27);\n ɵngcc0.ɵɵattribute(\"aria-hidden\", !tab_r26.selected)(\"aria-expanded\", tab_r26.selected)(\"aria-labelledby\", \"k-tabstrip-tab-\" + i_r27)(\"aria-disabled\", tab_r26.disabled);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", tab_r26.tabContent == null ? null : tab_r26.tabContent.templateRef);\n} }\nfunction TabStripComponent_ng_template_5_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, TabStripComponent_ng_template_5_ng_template_0_div_0_Template, 2, 9, \"div\", 18);\n} if (rf & 2) {\n const tab_r26 = ctx.$implicit;\n const ctx_r25 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", !tab_r26.closed && (tab_r26.selected || ctx_r25.keepTabContent));\n} }\nfunction TabStripComponent_ng_template_5_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, TabStripComponent_ng_template_5_ng_template_0_Template, 1, 1, \"ng-template\", 17);\n} if (rf & 2) {\n const ctx_r5 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r5.tabs);\n} }\nfunction TabStripComponent_kendo_resize_sensor_7_Template(rf, ctx) { if (rf & 1) {\n const _r32 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-resize-sensor\", 21);\n ɵngcc0.ɵɵlistener(\"resize\", function TabStripComponent_kendo_resize_sensor_7_Template_kendo_resize_sensor_resize_0_listener() { ɵngcc0.ɵɵrestoreView(_r32); const ctx_r31 = ɵngcc0.ɵɵnextContext(); return ctx_r31.onResize(); });\n ɵngcc0.ɵɵelementEnd();\n} }\nfunction DrawerComponent_div_0_ng_container_1_1_ng_template_0_Template(rf, ctx) { }\nfunction DrawerComponent_div_0_ng_container_1_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DrawerComponent_div_0_ng_container_1_1_ng_template_0_Template, 0, 0, \"ng-template\", 4);\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.headerTemplate == null ? null : ctx_r3.headerTemplate.templateRef);\n} }\nfunction DrawerComponent_div_0_ng_container_1_3_ng_template_0_Template(rf, ctx) { }\nfunction DrawerComponent_div_0_ng_container_1_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DrawerComponent_div_0_ng_container_1_3_ng_template_0_Template, 0, 0, \"ng-template\", 4);\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r4.footerTemplate == null ? null : ctx_r4.footerTemplate.templateRef);\n} }\nfunction DrawerComponent_div_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, DrawerComponent_div_0_ng_container_1_1_Template, 1, 1, null, 2);\n ɵngcc0.ɵɵelement(2, \"ul\", 3);\n ɵngcc0.ɵɵtemplate(3, DrawerComponent_div_0_ng_container_1_3_Template, 1, 1, null, 2);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r1.headerTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"items\", ctx_r1.items)(\"mini\", ctx_r1.mini)(\"expanded\", ctx_r1.expanded)(\"itemTemplate\", ctx_r1.itemTemplate == null ? null : ctx_r1.itemTemplate.templateRef);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r1.footerTemplate);\n} }\nfunction DrawerComponent_div_0_2_ng_template_0_Template(rf, ctx) { }\nfunction DrawerComponent_div_0_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DrawerComponent_div_0_2_ng_template_0_Template, 0, 0, \"ng-template\", 4);\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.drawerTemplate == null ? null : ctx_r2.drawerTemplate.templateRef);\n} }\nfunction DrawerComponent_div_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 1);\n ɵngcc0.ɵɵtemplate(1, DrawerComponent_div_0_ng_container_1_Template, 4, 6, \"ng-container\", 2);\n ɵngcc0.ɵɵtemplate(2, DrawerComponent_div_0_2_Template, 1, 1, null, 2);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵstyleProp(\"width\", ctx_r0.drawerWidth, \"px\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r0.drawerTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r0.drawerTemplate);\n} }\nfunction DrawerContainerComponent_div_0_Template(rf, ctx) { if (rf & 1) {\n const _r2 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 1);\n ɵngcc0.ɵɵlistener(\"click\", function DrawerContainerComponent_div_0_Template_div_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r2); const ctx_r1 = ɵngcc0.ɵɵnextContext(); return ctx_r1.closeDrawer(); });\n ɵngcc0.ɵɵelementEnd();\n} }\nfunction StepperComponent_kendo_progressbar_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-progressbar\", 3);\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"animation\", ctx_r0.progressAnimation)(\"max\", ctx_r0.steps.length - 1)(\"label\", false)(\"orientation\", ctx_r0.orientation)(\"reverse\", !ctx_r0.isHorizontal)(\"value\", ctx_r0.currentStep)(\"ngStyle\", ctx_r0.progressBarStyling);\n ɵngcc0.ɵɵattribute(\"aria-hidden\", true);\n} }\nfunction AvatarComponent_ng_content_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojection(0, 0, [\"*ngIf\", \"customAvatar\"]);\n} }\nfunction AvatarComponent_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵelementStart(1, \"span\", 1);\n ɵngcc0.ɵɵelement(2, \"img\", 2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵpropertyInterpolate(\"src\", ctx_r1.imageSrc, ɵngcc0.ɵɵsanitizeUrl);\n ɵngcc0.ɵɵproperty(\"ngStyle\", ctx_r1.cssStyle);\n} }\nfunction AvatarComponent_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵelementStart(1, \"span\", 3);\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngStyle\", ctx_r2.cssStyle);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r2.initials.substring(0, 2));\n} }\nfunction AvatarComponent_ng_container_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵelement(1, \"span\", 4);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngStyle\", ctx_r3.cssStyle)(\"ngClass\", ctx_r3.iconClasses());\n} }\nfunction CardActionsComponent_ng_content_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojection(0, 0, [\"*ngIf\", \"!actions\"]);\n} }\nfunction CardActionsComponent_ng_container_1_button_1_Template(rf, ctx) { if (rf & 1) {\n const _r6 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 2);\n ɵngcc0.ɵɵlistener(\"click\", function CardActionsComponent_ng_container_1_button_1_Template_button_click_0_listener() { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r6); const action_r4 = restoredCtx.$implicit; const ctx_r5 = ɵngcc0.ɵɵnextContext(2); return ctx_r5.onClick(action_r4); });\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const action_r4 = ctx.$implicit;\n ɵngcc0.ɵɵclassProp(\"k-primary\", action_r4.primary)(\"k-flat\", action_r4.flat);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", action_r4.text, \" \");\n} }\nfunction CardActionsComponent_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, CardActionsComponent_ng_container_1_button_1_Template, 2, 5, \"button\", 1);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r1.actions);\n} }\nfunction CardActionsComponent_2_ng_template_0_Template(rf, ctx) { }\nfunction CardActionsComponent_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, CardActionsComponent_2_ng_template_0_Template, 0, 0, \"ng-template\", 3);\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.actions);\n} }\nconst _c19 = [\"content\"];\nfunction ExpansionPanelComponent_ng_container_1_div_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 10);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r3.title);\n} }\nfunction ExpansionPanelComponent_ng_container_1_div_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 11);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r4.subtitle, \" \");\n} }\nfunction ExpansionPanelComponent_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, ExpansionPanelComponent_ng_container_1_div_1_Template, 2, 1, \"div\", 7);\n ɵngcc0.ɵɵelement(2, \"span\", 8);\n ɵngcc0.ɵɵtemplate(3, ExpansionPanelComponent_ng_container_1_div_3_Template, 2, 1, \"div\", 9);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r0.title);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r0.subtitle);\n} }\nfunction ExpansionPanelComponent_2_ng_template_0_Template(rf, ctx) { }\nfunction ExpansionPanelComponent_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ExpansionPanelComponent_2_ng_template_0_Template, 0, 0, \"ng-template\", 12);\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.titleTemplate == null ? null : ctx_r1.titleTemplate.templateRef);\n} }\nfunction TileLayoutItemComponent_kendo_tilelayout_item_header_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-tilelayout-item-header\")(1, \"h5\", 1);\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate(ctx_r0.title);\n} }\nfunction TileLayoutItemComponent_ng_container_2_div_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"div\", 3);\n} if (rf & 2) {\n const dir_r3 = ctx.$implicit;\n const ctx_r2 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵclassMapInterpolate1(\"k-resize-handle k-cursor-\", dir_r3, \"-resize k-touch-action-none\");\n ɵngcc0.ɵɵproperty(\"rtl\", ctx_r2.rtl)(\"resizeDirection\", dir_r3);\n} }\nfunction TileLayoutItemComponent_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, TileLayoutItemComponent_ng_container_2_div_1_Template, 1, 5, \"div\", 2);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r1.resizeDirections);\n} }\nconst _c20 = [\"hint\"];\nconst _c21 = [\"kendoDrawerItem\", \"\"];\nfunction DrawerItemComponent_0_ng_template_0_Template(rf, ctx) { }\nfunction DrawerItemComponent_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DrawerItemComponent_0_ng_template_0_Template, 0, 0, \"ng-template\", 2);\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.itemTemplate)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction1(2, _c4, ctx_r0.item));\n} }\nfunction DrawerItemComponent_ng_template_1_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵelement(1, \"span\", 4);\n ɵngcc0.ɵɵelementStart(2, \"span\", 5);\n ɵngcc0.ɵɵtext(3);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r4.iconClasses);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate(ctx_r4.item.text);\n} }\nfunction DrawerItemComponent_ng_template_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵelement(1, \"span\", 4);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r5 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r5.iconClasses);\n} }\nfunction DrawerItemComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DrawerItemComponent_ng_template_1_ng_container_0_Template, 4, 2, \"ng-container\", 3);\n ɵngcc0.ɵɵtemplate(1, DrawerItemComponent_ng_template_1_ng_container_1_Template, 2, 1, \"ng-container\", 3);\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r2.expanded);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r2.mini && !ctx_r2.expanded);\n} }\nconst _c22 = [\"kendoDrawerList\", \"\"];\nfunction DrawerListComponent_ng_container_0_li_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"li\", 3);\n} if (rf & 2) {\n const ctx_r5 = ɵngcc0.ɵɵnextContext();\n const item_r1 = ctx_r5.$implicit;\n const idx_r2 = ctx_r5.index;\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"item\", item_r1)(\"index\", idx_r2)(\"mini\", ctx_r3.mini)(\"expanded\", ctx_r3.expanded)(\"itemTemplate\", ctx_r3.itemTemplate)(\"ngClass\", item_r1.cssClass)(\"ngStyle\", item_r1.cssStyle);\n ɵngcc0.ɵɵattribute(\"data-kendo-drawer-index\", idx_r2);\n} }\nfunction DrawerListComponent_ng_container_0_li_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"li\", 4);\n ɵngcc0.ɵɵtext(1, \" \\u00A0 \");\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const item_r1 = ɵngcc0.ɵɵnextContext().$implicit;\n ɵngcc0.ɵɵproperty(\"ngClass\", item_r1.cssClass)(\"ngStyle\", item_r1.cssStyle);\n} }\nfunction DrawerListComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, DrawerListComponent_ng_container_0_li_1_Template, 1, 8, \"li\", 1);\n ɵngcc0.ɵɵtemplate(2, DrawerListComponent_ng_container_0_li_2_Template, 2, 2, \"li\", 2);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const item_r1 = ctx.$implicit;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !item_r1.separator);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", item_r1.separator);\n} }\nconst _c23 = [\"stepLink\"];\nconst _c24 = [\"kendoStepperStep\", \"\"];\nfunction StepperStepComponent_2_ng_template_0_Template(rf, ctx) { }\nconst _c25 = function (a0, a1) { return { $implicit: a0, index: a1 }; };\nfunction StepperStepComponent_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, StepperStepComponent_2_ng_template_0_Template, 0, 0, \"ng-template\", 3);\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.stepTemplate)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction2(2, _c25, ctx_r1.step, ctx_r1.index));\n} }\nfunction StepperStepComponent_ng_container_3_span_1_1_ng_template_0_Template(rf, ctx) { }\nfunction StepperStepComponent_ng_container_3_span_1_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, StepperStepComponent_ng_container_3_span_1_1_ng_template_0_Template, 0, 0, \"ng-template\", 3);\n} if (rf & 2) {\n const ctx_r6 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r6.indicatorTemplate)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction2(2, _c25, ctx_r6.step, ctx_r6.index));\n} }\nfunction StepperStepComponent_ng_container_3_span_1_ng_container_2_span_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 9);\n} if (rf & 2) {\n const ctx_r9 = ɵngcc0.ɵɵnextContext(4);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r9.indicatorIconClasses);\n} }\nfunction StepperStepComponent_ng_container_3_span_1_ng_container_2_span_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 10);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r10 = ɵngcc0.ɵɵnextContext(4);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r10.indicatorText);\n} }\nfunction StepperStepComponent_ng_container_3_span_1_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, StepperStepComponent_ng_container_3_span_1_ng_container_2_span_1_Template, 1, 1, \"span\", 7);\n ɵngcc0.ɵɵtemplate(2, StepperStepComponent_ng_container_3_span_1_ng_container_2_span_2_Template, 2, 1, \"span\", 8);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r7 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r7.showIndicatorIcon);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r7.showIndicatorIcon);\n} }\nfunction StepperStepComponent_ng_container_3_span_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 6);\n ɵngcc0.ɵɵtemplate(1, StepperStepComponent_ng_container_3_span_1_1_Template, 1, 5, null, 2);\n ɵngcc0.ɵɵtemplate(2, StepperStepComponent_ng_container_3_span_1_ng_container_2_Template, 3, 2, \"ng-container\", 2);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵstyleProp(\"transition-duration\", ctx_r4.transitionDuration, \"ms\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.indicatorTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r4.indicatorTemplate);\n} }\nfunction StepperStepComponent_ng_container_3_span_2_1_ng_template_0_Template(rf, ctx) { }\nfunction StepperStepComponent_ng_container_3_span_2_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, StepperStepComponent_ng_container_3_span_2_1_ng_template_0_Template, 0, 0, \"ng-template\", 3);\n} if (rf & 2) {\n const ctx_r11 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r11.labelTemplate)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction2(2, _c25, ctx_r11.step, ctx_r11.index));\n} }\nfunction StepperStepComponent_ng_container_3_span_2_ng_container_2_span_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 15);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r14 = ɵngcc0.ɵɵnextContext(4);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r14.step.label);\n} }\nfunction StepperStepComponent_ng_container_3_span_2_ng_container_2_span_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 16);\n} if (rf & 2) {\n const ctx_r15 = ɵngcc0.ɵɵnextContext(4);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r15.validationIconClasses);\n} }\nfunction StepperStepComponent_ng_container_3_span_2_ng_container_2_span_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 17);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r16 = ɵngcc0.ɵɵnextContext(4);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\"(\", ctx_r16.optionalText, \")\");\n} }\nfunction StepperStepComponent_ng_container_3_span_2_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, StepperStepComponent_ng_container_3_span_2_ng_container_2_span_1_Template, 2, 1, \"span\", 12);\n ɵngcc0.ɵɵtemplate(2, StepperStepComponent_ng_container_3_span_2_ng_container_2_span_2_Template, 1, 1, \"span\", 13);\n ɵngcc0.ɵɵtemplate(3, StepperStepComponent_ng_container_3_span_2_ng_container_2_span_3_Template, 2, 1, \"span\", 14);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r12 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r12.showLabelText);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r12.showLabelIcon);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r12.step.optional);\n} }\nfunction StepperStepComponent_ng_container_3_span_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 11);\n ɵngcc0.ɵɵtemplate(1, StepperStepComponent_ng_container_3_span_2_1_Template, 1, 5, null, 2);\n ɵngcc0.ɵɵtemplate(2, StepperStepComponent_ng_container_3_span_2_ng_container_2_Template, 4, 3, \"ng-container\", 2);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r5 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r5.labelTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r5.labelTemplate);\n} }\nfunction StepperStepComponent_ng_container_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, StepperStepComponent_ng_container_3_span_1_Template, 3, 4, \"span\", 4);\n ɵngcc0.ɵɵtemplate(2, StepperStepComponent_ng_container_3_span_2_Template, 3, 2, \"span\", 5);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r2.showIndicator);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r2.showLabel);\n} }\nconst _c26 = [\"kendoStepperList\", \"\"];\nfunction StepperListComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵelement(1, \"li\", 1);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const step_r1 = ctx.$implicit;\n const idx_r2 = ctx.index;\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵstyleProp(\"max-width\", ctx_r0.maxStepWidth, \"%\")(\"max-height\", ctx_r0.maxStepHeight, \"%\");\n ɵngcc0.ɵɵclassProp(\"k-step-first\", idx_r2 === 0)(\"k-step-last\", idx_r2 === ctx_r0.steps.length - 1)(\"k-step-done\", idx_r2 < ctx_r0.currentStep)(\"k-step-current\", idx_r2 === ctx_r0.currentStep)(\"k-step-optional\", step_r1.optional)(\"k-step-disabled\", step_r1.disabled);\n ɵngcc0.ɵɵproperty(\"type\", ctx_r0.stepType)(\"step\", step_r1)(\"index\", idx_r2)(\"current\", ctx_r0.currentStep)(\"successIcon\", ctx_r0.successIcon)(\"errorIcon\", ctx_r0.errorIcon)(\"indicatorTemplate\", ctx_r0.indicatorTemplate)(\"labelTemplate\", ctx_r0.labelTemplate)(\"stepTemplate\", ctx_r0.stepTemplate)(\"ngClass\", step_r1.cssClass)(\"ngStyle\", step_r1.cssStyle);\n ɵngcc0.ɵɵattribute(\"data-kendo-stepper-index\", idx_r2);\n} }\nconst _c27 = [\"kendoTabStripTab\", \"\"];\nfunction TabComponent_span_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 2);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r0.tab.title);\n} }\nfunction TabComponent_span_1_ng_template_1_Template(rf, ctx) { }\nfunction TabComponent_span_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 2);\n ɵngcc0.ɵɵtemplate(1, TabComponent_span_1_ng_template_1_Template, 0, 0, \"ng-template\", 3);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.tab.tabTitle == null ? null : ctx_r1.tab.tabTitle.templateRef);\n} }\nfunction TabComponent_span_2_Template(rf, ctx) { if (rf & 1) {\n const _r5 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"span\", 4);\n ɵngcc0.ɵɵlistener(\"click\", function TabComponent_span_2_Template_span_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r5); const ctx_r4 = ɵngcc0.ɵɵnextContext(); return ctx_r4.closeTab(ctx_r4.index); });\n ɵngcc0.ɵɵelement(1, \"span\", 5);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"title\", ctx_r2.closeButtonTitle);\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx_r2.closeButtonTitle);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r2.closeButtonClasses);\n} }\nconst packageMetadata = {\n name: '@progress/kendo-angular-layout',\n productName: 'Kendo UI for Angular',\n productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],\n publishDate: 1647343533,\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\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 */\nlet PanelBarService = class 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.ɵfac = function PanelBarService_Factory(t) { return new (t || PanelBarService)(); };\nPanelBarService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: PanelBarService, factory: function (t) { return PanelBarService.ɵfac(t); } });\nPanelBarService = __decorate([ __metadata(\"design:paramtypes\", [])\n], PanelBarService);\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 */\nlet PanelBarContentDirective = class PanelBarContentDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nPanelBarContentDirective.ɵfac = function PanelBarContentDirective_Factory(t) { return new (t || PanelBarContentDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nPanelBarContentDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: PanelBarContentDirective, selectors: [[\"\", \"kendoPanelBarContent\", \"\"]] });\nPanelBarContentDirective = __decorate([ __metadata(\"design:paramtypes\", [TemplateRef])\n], PanelBarContentDirective);\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 * > The `kendoPanelBarItemTitle` directive overrides the PanelBarItem [title]({% slug api_layout_panelbaritemcomponent %}#toc-title) option.\n *\n * @example\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * Item Title\n * \n * \n * \n * `\n * })\n *\n * class AppComponent {}\n *\n * ```\n */\nlet PanelBarItemTitleDirective = class PanelBarItemTitleDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nPanelBarItemTitleDirective.ɵfac = function PanelBarItemTitleDirective_Factory(t) { return new (t || PanelBarItemTitleDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nPanelBarItemTitleDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: PanelBarItemTitleDirective, selectors: [[\"\", \"kendoPanelBarItemTitle\", \"\"]] });\nPanelBarItemTitleDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], PanelBarItemTitleDirective);\n\nlet nextId = 0;\nconst SIZES = {\n small: 'sm',\n medium: 'md',\n large: 'lg'\n};\nconst ROUNDNESS = {\n small: 'sm',\n medium: 'md',\n large: 'lg',\n full: 'full'\n};\nconst SHAPE_TO_ROUNDED = {\n rounded: 'large',\n circle: 'full'\n};\nconst parsePanelBarItems = (data) => {\n return data.map((item) => {\n if (!item.id) {\n item.id = `default-${nextId++}`;\n }\n if (item.children) {\n item.children = parsePanelBarItems(item.children);\n }\n return item;\n });\n};\nvar util = {\n parsePanelBarItems\n};\n/**\n * @hidden\n */\nconst isPresent = (value) => value !== null && value !== undefined;\n/**\n * @hidden\n */\nconst isHorizontalArrowKey = keyCode => keyCode === Keys.ArrowLeft || keyCode === Keys.ArrowRight;\n/**\n * @hidden\n */\nconst isVerticalArrowKey = keyCode => keyCode === Keys.ArrowUp || keyCode === Keys.ArrowDown;\n/**\n * @hidden\n */\nconst isArrowKey = keyCode => isHorizontalArrowKey(keyCode) || isVerticalArrowKey(keyCode);\n/**\n * @hidden\n */\nconst isNavigationKey = keyCode => keyCode === Keys.PageUp || keyCode === Keys.PageDown ||\n keyCode === Keys.Home || keyCode === Keys.End;\n/**\n * @hidden\n *\n * Returns the styling classes to be added and removed\n */\nconst getStylingClasses = (componentType, stylingOption, previousValue, newValue) => {\n switch (stylingOption) {\n case 'size':\n return {\n toRemove: `k-${componentType}-${SIZES[previousValue]}`,\n toAdd: newValue ? `k-${componentType}-${SIZES[newValue]}` : null\n };\n case 'rounded':\n return {\n toRemove: `k-rounded-${ROUNDNESS[previousValue]}`,\n toAdd: newValue ? `k-rounded-${ROUNDNESS[newValue]}` : null\n };\n default:\n break;\n }\n};\n/**\n * @hidden\n */\nconst mapShapeToRounded = (shape) => SHAPE_TO_ROUNDED[shape] || null;\n/**\n * @hidden\n */\nconst isNumber = (value) => typeof value === 'number' && isFinite(value);\n\nconst focusableRegex = /^(?:a|input|select|option|textarea|button|object)$/i;\nconst toClassList = (classNames) => String(classNames).trim().split(' ');\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 hasClass = (element, className) => Boolean(toClassList(element.className).find((name) => name === className));\n/**\n * @hidden\n */\nconst closestInScope = (target, predicate, scope, targetAttr) => {\n while (target && target !== scope && !predicate(target, targetAttr)) {\n target = target.parentNode;\n }\n if (target !== scope) {\n return target;\n }\n};\n/**\n * @hidden\n */\nconst itemIndex = (item, indexAttr) => +item.getAttribute(indexAttr);\nconst hasItemIndex = (item, indexAttr) => isPresent(item.getAttribute(indexAttr));\n/**\n * @hidden\n */\nconst closestItem = (target, targetAttr, scope) => closestInScope(target, hasItemIndex, scope, targetAttr);\n\nvar PanelBarItemComponent_1;\n/**\n * @hidden\n */\nlet nextId$1 = 0;\n/**\n * Represents the items of the PanelBar.\n */\nlet PanelBarItemComponent = PanelBarItemComponent_1 = class PanelBarItemComponent {\n constructor(parent, eventService, element, renderer) {\n this.parent = parent;\n this.eventService = eventService;\n this.element = element;\n this.renderer = renderer;\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$1++}`;\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.kItemClass = true;\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 this.level = this.parent ? this.parent.level + 1 : 0;\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 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 get headerClass() {\n return this.parent ? null : true;\n }\n get childClass() {\n return this.parent ? 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 ngOnInit() {\n this.addLevelClass();\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 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 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 /**\n * @hidden\n */\n addLevelClass() {\n if (this.level >= 0) {\n this.renderer.addClass(this.element.nativeElement, `k-level-${this.level}`);\n }\n }\n onWrapperFocusChange(focused) {\n this.wrapperFocused = focused;\n }\n};\nPanelBarItemComponent.ɵfac = function PanelBarItemComponent_Factory(t) { return new (t || PanelBarItemComponent)(ɵngcc0.ɵɵdirectiveInject(PanelBarItemComponent, 13), ɵngcc0.ɵɵdirectiveInject(PanelBarService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nPanelBarItemComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PanelBarItemComponent, selectors: [[\"kendo-panelbar-item\"]], contentQueries: function PanelBarItemComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, PanelBarItemComponent_1, 4);\n ɵngcc0.ɵɵcontentQuery(dirIndex, PanelBarContentDirective, 4);\n ɵngcc0.ɵɵcontentQuery(dirIndex, PanelBarItemTitleDirective, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.contentItems = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.contentTemplate = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.titleTemplates = _t);\n } }, viewQuery: function PanelBarItemComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c0, 5);\n ɵngcc0.ɵɵviewQuery(_c1, 5);\n ɵngcc0.ɵɵviewQuery(PanelBarItemComponent_1, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.header = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.contentWrapper = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.viewChildItems = _t);\n } }, hostVars: 18, hostBindings: function PanelBarItemComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵhostProperty(\"id\", ctx.itemId);\n ɵngcc0.ɵɵattribute(\"role\", ctx.role)(\"title\", ctx.titleAttribute)(\"aria-expanded\", ctx.ariaExpanded)(\"aria-selected\", ctx.ariaSelected)(\"aria-disabled\", ctx.ariaDisabled);\n ɵngcc0.ɵɵclassProp(\"k-item\", ctx.kItemClass)(\"k-state-default\", ctx.kStateDefaultClass)(\"k-state-disabled\", ctx.kStateDisabledClass)(\"k-state-expanded\", ctx.kStateExpandedClass)(\"k-panelbar-header\", ctx.headerClass)(\"k-panelbar-item\", ctx.childClass);\n } }, inputs: { id: \"id\", icon: \"icon\", iconClass: \"iconClass\", imageUrl: \"imageUrl\", disabled: \"disabled\", selected: \"selected\", expanded: \"expanded\", title: \"title\", content: \"content\", items: \"items\", template: \"template\" }, exportAs: [\"kendoPanelbarItem\"], ngContentSelectors: _c6, decls: 8, vars: 12, consts: [[3, \"click\"], [\"header\", \"\"], [\"class\", \"k-icon k-panelbar-item-icon\", 3, \"ngClass\", 4, \"ngIf\"], [\"class\", \"k-image k-panelbar-item-icon\", \"alt\", \"\", 3, \"src\", 4, \"ngIf\"], [4, \"ngIf\"], [\"class\", \"k-icon k-panelbar-toggle\", 3, \"ngClass\", 4, \"ngIf\"], [1, \"k-icon\", \"k-panelbar-item-icon\", 3, \"ngClass\"], [\"alt\", \"\", 1, \"k-image\", \"k-panelbar-item-icon\", 3, \"src\"], [1, \"k-panelbar-item-text\"], [3, \"ngTemplateOutlet\"], [1, \"k-icon\", \"k-panelbar-toggle\", 3, \"ngClass\"], [\"contentWrapper\", \"\"], [\"class\", \"k-panel k-group k-panelbar-group\", 3, \"overflow\", \"height\", 4, \"ngIf\"], [\"class\", \"k-content k-panelbar-content\", 3, \"overflow\", \"height\", 4, \"ngIf\"], [1, \"k-panel\", \"k-group\", \"k-panelbar-group\"], [1, \"k-content\", \"k-panelbar-content\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [4, \"ngFor\", \"ngForOf\"], [3, \"title\", \"id\", \"icon\", \"iconClass\", \"imageUrl\", \"selected\", \"expanded\", \"disabled\", \"template\", \"items\", \"content\", 4, \"ngIf\"], [3, \"title\", \"id\", \"icon\", \"iconClass\", \"imageUrl\", \"selected\", \"expanded\", \"disabled\", \"template\", \"items\", \"content\"], [3, \"ngIf\"]], template: function PanelBarItemComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef(_c5);\n ɵngcc0.ɵɵelementStart(0, \"span\", 0, 1);\n ɵngcc0.ɵɵlistener(\"click\", function PanelBarItemComponent_Template_span_click_0_listener($event) { return ctx.onItemClick($event); });\n ɵngcc0.ɵɵtemplate(2, PanelBarItemComponent_span_2_Template, 1, 1, \"span\", 2);\n ɵngcc0.ɵɵtemplate(3, PanelBarItemComponent_img_3_Template, 1, 1, \"img\", 3);\n ɵngcc0.ɵɵtemplate(4, PanelBarItemComponent_ng_container_4_Template, 3, 1, \"ng-container\", 4);\n ɵngcc0.ɵɵtemplate(5, PanelBarItemComponent_5_Template, 1, 1, null, 4);\n ɵngcc0.ɵɵtemplate(6, PanelBarItemComponent_span_6_Template, 1, 4, \"span\", 5);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(7, PanelBarItemComponent_div_7_Template, 6, 7, \"div\", 4);\n } if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-link\", true)(\"k-state-selected\", !ctx.disabled && ctx.selected)(\"k-state-focused\", ctx.focused && ctx.wrapperFocused);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.icon || ctx.iconClass);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.imageUrl);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.titleTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.titleTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.hasChildItems || ctx.hasContent);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.keepContent || !ctx.disabled && ctx.expanded && (ctx.hasChildItems || ctx.hasContent));\n } }, directives: [ɵngcc1.NgIf, ɵngcc1.NgClass, ɵngcc1.NgTemplateOutlet, ɵngcc1.NgForOf, PanelBarItemComponent], encapsulation: 2, data: { animation: [\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__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], PanelBarItemComponent.prototype, \"title\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], PanelBarItemComponent.prototype, \"id\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], PanelBarItemComponent.prototype, \"icon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], PanelBarItemComponent.prototype, \"iconClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], PanelBarItemComponent.prototype, \"imageUrl\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], PanelBarItemComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], PanelBarItemComponent.prototype, \"expanded\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], PanelBarItemComponent.prototype, \"selected\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], PanelBarItemComponent.prototype, \"content\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], PanelBarItemComponent.prototype, \"items\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], PanelBarItemComponent.prototype, \"template\", void 0);\n__decorate([\n ViewChild('header', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], PanelBarItemComponent.prototype, \"header\", void 0);\n__decorate([\n ViewChild('contentWrapper', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], PanelBarItemComponent.prototype, \"contentWrapper\", void 0);\n__decorate([\n HostBinding('attr.role'),\n __metadata(\"design:type\", String)\n], PanelBarItemComponent.prototype, \"role\", void 0);\n__decorate([\n HostBinding('attr.title'),\n __metadata(\"design:type\", String)\n], PanelBarItemComponent.prototype, \"titleAttribute\", void 0);\n__decorate([\n HostBinding('class.k-item'),\n __metadata(\"design:type\", Boolean)\n], PanelBarItemComponent.prototype, \"kItemClass\", void 0);\n__decorate([\n HostBinding('class.k-state-default'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], PanelBarItemComponent.prototype, \"kStateDefaultClass\", null);\n__decorate([\n HostBinding('class.k-state-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], PanelBarItemComponent.prototype, \"kStateDisabledClass\", null);\n__decorate([\n HostBinding('class.k-state-expanded'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], PanelBarItemComponent.prototype, \"kStateExpandedClass\", null);\n__decorate([\n HostBinding('id'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], PanelBarItemComponent.prototype, \"itemId\", null);\n__decorate([\n HostBinding('attr.aria-expanded'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], PanelBarItemComponent.prototype, \"ariaExpanded\", null);\n__decorate([\n HostBinding('attr.aria-selected'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], PanelBarItemComponent.prototype, \"ariaSelected\", null);\n__decorate([\n HostBinding('attr.aria-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], PanelBarItemComponent.prototype, \"ariaDisabled\", null);\n__decorate([\n HostBinding('class.k-panelbar-header'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], PanelBarItemComponent.prototype, \"headerClass\", null);\n__decorate([\n HostBinding('class.k-panelbar-item'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], PanelBarItemComponent.prototype, \"childClass\", null);\n__decorate([\n ViewChildren(PanelBarItemComponent_1),\n __metadata(\"design:type\", QueryList)\n], PanelBarItemComponent.prototype, \"viewChildItems\", void 0);\n__decorate([\n ContentChildren(PanelBarItemComponent_1),\n __metadata(\"design:type\", QueryList)\n], PanelBarItemComponent.prototype, \"contentItems\", void 0);\n__decorate([\n ContentChildren(PanelBarContentDirective, { descendants: false }),\n __metadata(\"design:type\", QueryList)\n], PanelBarItemComponent.prototype, \"contentTemplate\", void 0);\n__decorate([\n ContentChildren(PanelBarItemTitleDirective, { descendants: false }),\n __metadata(\"design:type\", QueryList)\n], PanelBarItemComponent.prototype, \"titleTemplates\", void 0);\nPanelBarItemComponent = PanelBarItemComponent_1 = __decorate([ __param(0, SkipSelf()), __param(0, Host()), __param(0, Optional()),\n __metadata(\"design:paramtypes\", [PanelBarItemComponent,\n PanelBarService,\n ElementRef,\n Renderer2])\n], PanelBarItemComponent);\n\n/**\n * Represents the template directive of the PanelBar which helps to customize the item content.\n */\nlet PanelBarItemTemplateDirective = class PanelBarItemTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nPanelBarItemTemplateDirective.ɵfac = function PanelBarItemTemplateDirective_Factory(t) { return new (t || PanelBarItemTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nPanelBarItemTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: PanelBarItemTemplateDirective, selectors: [[\"\", \"kendoPanelBarItemTemplate\", \"\"]] });\nPanelBarItemTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], PanelBarItemTemplateDirective);\n\n/**\n * Represents the [Kendo UI PanelBar component for Angular]({% slug overview_panelbar %}).\n */\nlet PanelBarComponent = \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.hostClass = true;\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 validatePackage(packageMetadata);\n /* tslint:disable-line */\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 (!isFocusable(event.target) && !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 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 flattedItems.push(item);\n if (item.expanded && item.hasChildItems) {\n this.flatVisibleItems(item.childrenItems, flattedItems);\n }\n });\n return flattedItems;\n }\n};\nPanelBarComponent.ɵfac = function PanelBarComponent_Factory(t) { return new (t || PanelBarComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(PanelBarService), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nPanelBarComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PanelBarComponent, selectors: [[\"kendo-panelbar\"]], contentQueries: function PanelBarComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, PanelBarItemTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, PanelBarItemComponent, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, PanelBarItemComponent, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.template = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.contentItems = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.contentChildItems = _t);\n } }, viewQuery: function PanelBarComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(PanelBarItemComponent, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.viewChildItems = _t);\n } }, hostVars: 10, hostBindings: function PanelBarComponent_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function PanelBarComponent_click_HostBindingHandler($event) { return ctx.onComponentClick($event); })(\"focus\", function PanelBarComponent_focus_HostBindingHandler() { return ctx.onComponentFocus(); })(\"blur\", function PanelBarComponent_blur_HostBindingHandler() { return ctx.onComponentBlur(); })(\"keydown\", function PanelBarComponent_keydown_HostBindingHandler($event) { return ctx.onComponentKeyDown($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"tabIndex\", ctx.tabIndex)(\"role\", ctx.role)(\"aria-activedescendant\", ctx.activeDescendant)(\"dir\", ctx.dir);\n ɵngcc0.ɵɵstyleProp(\"height\", ctx.hostHeight)(\"overflow\", ctx.overflow);\n ɵngcc0.ɵɵclassProp(\"k-panelbar\", ctx.hostClass);\n } }, inputs: { expandMode: \"expandMode\", selectable: \"selectable\", animate: \"animate\", height: \"height\", keepItemContent: \"keepItemContent\", items: \"items\" }, outputs: { stateChange: \"stateChange\" }, exportAs: [\"kendoPanelbar\"], features: [ɵngcc0.ɵɵProvidersFeature([\n PanelBarService,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.panelbar'\n }\n ]), ɵngcc0.ɵɵNgOnChangesFeature], ngContentSelectors: _c6, decls: 2, vars: 2, consts: [[4, \"ngIf\"], [3, \"ngIf\"], [4, \"ngFor\", \"ngForOf\"], [3, \"title\", \"id\", \"icon\", \"iconClass\", \"imageUrl\", \"selected\", \"expanded\", \"disabled\", \"template\", \"items\", \"content\", 4, \"ngIf\"], [3, \"title\", \"id\", \"icon\", \"iconClass\", \"imageUrl\", \"selected\", \"expanded\", \"disabled\", \"template\", \"items\", \"content\"]], template: function PanelBarComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef(_c5);\n ɵngcc0.ɵɵtemplate(0, PanelBarComponent_ng_content_0_Template, 1, 0, \"ng-content\", 0);\n ɵngcc0.ɵɵtemplate(1, PanelBarComponent_ng_template_1_Template, 1, 1, \"ng-template\", 1);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.contentChildItems && !ctx.items);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.items == null ? null : ctx.items.length);\n } }, directives: [ɵngcc1.NgIf, ɵngcc1.NgForOf, PanelBarItemComponent], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], PanelBarComponent.prototype, \"expandMode\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], PanelBarComponent.prototype, \"selectable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], PanelBarComponent.prototype, \"animate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], PanelBarComponent.prototype, \"height\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], PanelBarComponent.prototype, \"keepItemContent\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], PanelBarComponent.prototype, \"items\", null);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], PanelBarComponent.prototype, \"stateChange\", void 0);\n__decorate([\n HostBinding('attr.tabIndex'),\n __metadata(\"design:type\", Number)\n], PanelBarComponent.prototype, \"tabIndex\", void 0);\n__decorate([\n HostBinding('attr.role'),\n __metadata(\"design:type\", String)\n], PanelBarComponent.prototype, \"role\", void 0);\n__decorate([\n HostBinding('class.k-panelbar'),\n __metadata(\"design:type\", Boolean)\n], PanelBarComponent.prototype, \"hostClass\", void 0);\n__decorate([\n HostBinding('attr.aria-activedescendant'),\n __metadata(\"design:type\", String)\n], PanelBarComponent.prototype, \"activeDescendant\", void 0);\n__decorate([\n HostBinding('style.height'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], PanelBarComponent.prototype, \"hostHeight\", null);\n__decorate([\n HostBinding('style.overflow'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], PanelBarComponent.prototype, \"overflow\", null);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], PanelBarComponent.prototype, \"dir\", null);\n__decorate([\n ContentChild(PanelBarItemTemplateDirective, { static: false }),\n __metadata(\"design:type\", PanelBarItemTemplateDirective)\n], PanelBarComponent.prototype, \"template\", void 0);\n__decorate([\n ContentChildren(PanelBarItemComponent, { descendants: true }),\n __metadata(\"design:type\", QueryList)\n], PanelBarComponent.prototype, \"contentItems\", void 0);\n__decorate([\n ContentChildren(PanelBarItemComponent),\n __metadata(\"design:type\", QueryList)\n], PanelBarComponent.prototype, \"contentChildItems\", void 0);\n__decorate([\n ViewChildren(PanelBarItemComponent),\n __metadata(\"design:type\", QueryList)\n], PanelBarComponent.prototype, \"viewChildItems\", void 0);\n__decorate([\n HostListener('click', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], PanelBarComponent.prototype, \"onComponentClick\", null);\n__decorate([\n HostListener('focus'),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], PanelBarComponent.prototype, \"onComponentFocus\", null);\n__decorate([\n HostListener('blur'),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], PanelBarComponent.prototype, \"onComponentBlur\", null);\n__decorate([\n HostListener('keydown', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], PanelBarComponent.prototype, \"onComponentKeyDown\", null);\nPanelBarComponent = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n PanelBarService,\n LocalizationService])\n], PanelBarComponent);\n\n/**\n * Represents the pane component of the Splitter.\n */\nlet SplitterPaneComponent = class 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.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 * @hidden\n */\n this.isResized = 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 /**\n * @hidden\n */\n set containsSplitter(value) {\n const element = this.element.nativeElement;\n if (value) {\n this.renderer.addClass(element, 'k-pane-flex');\n }\n else {\n this.renderer.removeClass(element, 'k-pane-flex');\n }\n }\n get isHidden() {\n return this.collapsed;\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 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.ɵfac = function SplitterPaneComponent_Factory(t) { return new (t || SplitterPaneComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nSplitterPaneComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SplitterPaneComponent, selectors: [[\"kendo-splitter-pane\"]], hostVars: 6, hostBindings: function SplitterPaneComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-pane\", ctx.hostClass)(\"k-pane-static\", ctx.staticPaneClass)(\"k-scrollable\", ctx.scrollablePaneClass);\n } }, inputs: { resizable: \"resizable\", collapsible: \"collapsible\", scrollable: \"scrollable\", collapsed: \"collapsed\", orientation: \"orientation\", overlayContent: \"overlayContent\", order: \"order\", size: \"size\", containsSplitter: \"containsSplitter\", min: \"min\", max: \"max\" }, outputs: { sizeChange: \"sizeChange\", collapsedChange: \"collapsedChange\" }, exportAs: [\"kendoSplitterPane\"], ngContentSelectors: _c7, decls: 2, vars: 2, consts: [[4, \"ngIf\"], [\"class\", \"k-splitter-overlay k-overlay\", 4, \"ngIf\"], [1, \"k-splitter-overlay\", \"k-overlay\"]], template: function SplitterPaneComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵtemplate(0, SplitterPaneComponent_ng_container_0_Template, 2, 0, \"ng-container\", 0);\n ɵngcc0.ɵɵtemplate(1, SplitterPaneComponent_div_1_Template, 1, 0, \"div\", 1);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.collapsed);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.overlayContent);\n } }, directives: [ɵngcc1.NgIf], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], SplitterPaneComponent.prototype, \"order\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], SplitterPaneComponent.prototype, \"size\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SplitterPaneComponent.prototype, \"min\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SplitterPaneComponent.prototype, \"max\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SplitterPaneComponent.prototype, \"resizable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SplitterPaneComponent.prototype, \"collapsible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SplitterPaneComponent.prototype, \"scrollable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SplitterPaneComponent.prototype, \"collapsed\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SplitterPaneComponent.prototype, \"orientation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], SplitterPaneComponent.prototype, \"containsSplitter\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SplitterPaneComponent.prototype, \"overlayContent\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], SplitterPaneComponent.prototype, \"sizeChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], SplitterPaneComponent.prototype, \"collapsedChange\", void 0);\n__decorate([\n HostBinding('class.k-pane'),\n __metadata(\"design:type\", Boolean)\n], SplitterPaneComponent.prototype, \"hostClass\", void 0);\n__decorate([\n HostBinding('class.k-pane-static'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], SplitterPaneComponent.prototype, \"staticPaneClass\", null);\n__decorate([\n HostBinding('class.k-scrollable'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], SplitterPaneComponent.prototype, \"scrollablePaneClass\", null);\nSplitterPaneComponent = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n Renderer2,\n ChangeDetectorRef])\n], SplitterPaneComponent);\n\nconst SIZING_DOC_LINK = 'https://www.telerik.com/kendo-angular-ui/components/layout/splitter/panes/#toc-size';\n/**\n * @hidden\n */\nlet SplitterService = class 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 pane.isResized = true;\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 allPanesWithSize = panes.length && !panes.some(pane => !pane.fixedSize);\n const hasResizedPane = panes.length && panes.some(pane => pane.isResized);\n if (allPanesWithSize && !hasResizedPane) {\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.ɵfac = function SplitterService_Factory(t) { return new (t || SplitterService)(ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nSplitterService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: SplitterService, factory: function (t) { return SplitterService.ɵfac(t); } });\nSplitterService = __decorate([ __metadata(\"design:paramtypes\", [NgZone])\n], SplitterService);\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 */\nlet SplitterBarComponent = class SplitterBarComponent {\n constructor(draggable, element, splitter, localization) {\n this.draggable = draggable;\n this.element = element;\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 'k-touch-action-none': isDraggable\n });\n }\n get order() {\n return 2 * this.index + 1;\n }\n collapseAny() {\n if (this.expandLast) {\n this.toggleNext();\n }\n else {\n this.tryToggleNearest();\n }\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.collapseAny();\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 get expandLast() {\n const panes = this.splitter.panes;\n return panes.length === 2 && panes[1].collapsed;\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.ɵfac = function SplitterBarComponent_Factory(t) { return new (t || SplitterBarComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc3.DraggableDirective, 1), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(SplitterService), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nSplitterBarComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SplitterBarComponent, selectors: [[\"kendo-splitter-bar\"]], hostVars: 11, hostBindings: function SplitterBarComponent_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"dblclick\", function SplitterBarComponent_dblclick_HostBindingHandler() { return ctx.collapseAny(); })(\"focusin\", function SplitterBarComponent_focusin_HostBindingHandler() { return ctx.onFocusIn(); })(\"focusout\", function SplitterBarComponent_focusout_HostBindingHandler() { return ctx.onFocusOut(); })(\"keydown\", function SplitterBarComponent_keydown_HostBindingHandler($event) { return ctx.onKeyDown($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"aria-orientation\", ctx.orientation)(\"role\", ctx.ariaRole)(\"tabindex\", ctx.tabIndex);\n ɵngcc0.ɵɵclassMap(ctx.hostClasses);\n ɵngcc0.ɵɵstyleProp(\"-ms-flex-order\", ctx.order)(\"order\", ctx.order);\n ɵngcc0.ɵɵclassProp(\"k-state-focused\", ctx.focused);\n } }, inputs: { orientation: \"orientation\", index: \"index\" }, decls: 3, vars: 4, consts: [[3, \"click\"], [1, \"k-resize-handle\"]], template: function SplitterBarComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 0);\n ɵngcc0.ɵɵlistener(\"click\", function SplitterBarComponent_Template_div_click_0_listener() { return ctx.togglePrevious(); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelement(1, \"div\", 1);\n ɵngcc0.ɵɵelementStart(2, \"div\", 0);\n ɵngcc0.ɵɵlistener(\"click\", function SplitterBarComponent_Template_div_click_2_listener() { return ctx.toggleNext(); });\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵclassMap(ctx.previousArrowClass());\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵclassMap(ctx.nextArrowClass());\n } }, encapsulation: 2 });\n__decorate([\n Input(),\n HostBinding('attr.aria-orientation'),\n __metadata(\"design:type\", String)\n], SplitterBarComponent.prototype, \"orientation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], SplitterBarComponent.prototype, \"index\", void 0);\n__decorate([\n HostBinding('attr.role'),\n __metadata(\"design:type\", String)\n], SplitterBarComponent.prototype, \"ariaRole\", void 0);\n__decorate([\n HostBinding('class.k-state-focused'),\n __metadata(\"design:type\", Boolean)\n], SplitterBarComponent.prototype, \"focused\", void 0);\n__decorate([\n HostBinding('attr.tabindex'),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [])\n], SplitterBarComponent.prototype, \"tabIndex\", null);\n__decorate([\n HostBinding('class'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], SplitterBarComponent.prototype, \"hostClasses\", null);\n__decorate([\n HostBinding('style.-ms-flex-order'),\n HostBinding('style.order'),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [])\n], SplitterBarComponent.prototype, \"order\", null);\n__decorate([\n HostListener('dblclick'),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], SplitterBarComponent.prototype, \"collapseAny\", null);\n__decorate([\n HostListener('focusin'),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], SplitterBarComponent.prototype, \"onFocusIn\", null);\n__decorate([\n HostListener('focusout'),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], SplitterBarComponent.prototype, \"onFocusOut\", null);\n__decorate([\n HostListener('keydown', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], SplitterBarComponent.prototype, \"onKeyDown\", null);\nSplitterBarComponent = __decorate([ __param(0, Host()),\n __metadata(\"design:paramtypes\", [DraggableDirective,\n ElementRef,\n SplitterService,\n LocalizationService])\n], SplitterBarComponent);\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 */\nlet SplitterComponent = class SplitterComponent {\n constructor(element, splitterService, localization, renderer, enclosingPane) {\n this.element = element;\n this.splitterService = splitterService;\n this.localization = localization;\n this.renderer = renderer;\n this.enclosingPane = enclosingPane;\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 validatePackage(packageMetadata);\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 set splitbars(splitbars) {\n if (!isPresent(splitbars) || !isPresent(this.panes)) {\n return;\n }\n const components = [...this.panes.toArray(), ...splitbars.toArray()]\n .sort((a, b) => a.order - b.order);\n const elements = components.map(component => component.element.nativeElement);\n elements.forEach(element => this.renderer.appendChild(this.element.nativeElement, element));\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 if (this.enclosingPane) {\n this.enclosingPane.containsSplitter = false;\n }\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.ɵfac = function SplitterComponent_Factory(t) { return new (t || SplitterComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(SplitterService), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(SplitterPaneComponent, 9)); };\nSplitterComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SplitterComponent, selectors: [[\"kendo-splitter\"]], contentQueries: function SplitterComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, SplitterPaneComponent, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.panes = _t);\n } }, viewQuery: function SplitterComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(SplitterBarComponent, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.splitbars = _t);\n } }, hostVars: 12, hostBindings: function SplitterComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"role\", ctx.ariaRole)(\"dir\", ctx.dir);\n ɵngcc0.ɵɵclassProp(\"k-widget\", ctx.hostClasses)(\"k-splitter\", ctx.hostClasses)(\"k-splitter-flex\", ctx.hostClasses)(\"k-splitter-horizontal\", ctx.horizontalHostClasses)(\"k-splitter-vertical\", ctx.verticalHostClasses);\n } }, inputs: { orientation: \"orientation\" }, outputs: { layoutChange: \"layoutChange\" }, exportAs: [\"kendoSplitter\"], features: [ɵngcc0.ɵɵProvidersFeature([\n SplitterService,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.spliter'\n }\n ]), ɵngcc0.ɵɵNgOnChangesFeature], ngContentSelectors: _c9, decls: 2, vars: 1, consts: [[4, \"ngFor\", \"ngForOf\"], [\"kendoDraggable\", \"\", 3, \"index\", \"orientation\", 4, \"ngIf\"], [\"kendoDraggable\", \"\", 3, \"index\", \"orientation\"]], template: function SplitterComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef(_c8);\n ɵngcc0.ɵɵprojection(0);\n ɵngcc0.ɵɵtemplate(1, SplitterComponent_ng_container_1_Template, 2, 1, \"ng-container\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.panes);\n } }, directives: [ɵngcc1.NgForOf, ɵngcc1.NgIf, SplitterBarComponent, ɵngcc3.DraggableDirective], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], SplitterComponent.prototype, \"orientation\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], SplitterComponent.prototype, \"layoutChange\", void 0);\n__decorate([\n HostBinding('class.k-widget'),\n HostBinding('class.k-splitter'),\n HostBinding('class.k-splitter-flex'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], SplitterComponent.prototype, \"hostClasses\", null);\n__decorate([\n HostBinding('class.k-splitter-horizontal'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], SplitterComponent.prototype, \"horizontalHostClasses\", null);\n__decorate([\n HostBinding('class.k-splitter-vertical'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], SplitterComponent.prototype, \"verticalHostClasses\", null);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], SplitterComponent.prototype, \"dir\", null);\n__decorate([\n HostBinding('attr.role'),\n __metadata(\"design:type\", String)\n], SplitterComponent.prototype, \"ariaRole\", void 0);\n__decorate([\n ViewChildren(SplitterBarComponent),\n __metadata(\"design:type\", QueryList),\n __metadata(\"design:paramtypes\", [QueryList])\n], SplitterComponent.prototype, \"splitbars\", null);\n__decorate([\n ContentChildren(SplitterPaneComponent),\n __metadata(\"design:type\", QueryList)\n], SplitterComponent.prototype, \"panes\", void 0);\nSplitterComponent = __decorate([ __param(4, Optional()), __param(4, Host()), __param(4, Inject(SplitterPaneComponent)),\n __metadata(\"design:paramtypes\", [ElementRef,\n SplitterService,\n LocalizationService,\n Renderer2,\n SplitterPaneComponent])\n], SplitterComponent);\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 */\nlet TabContentDirective = class TabContentDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nTabContentDirective.ɵfac = function TabContentDirective_Factory(t) { return new (t || TabContentDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nTabContentDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: TabContentDirective, selectors: [[\"\", \"kendoTabContent\", \"\"]] });\nTabContentDirective = __decorate([ __metadata(\"design:paramtypes\", [TemplateRef])\n], TabContentDirective);\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 * > The `kendoTabTitle` directive overrides the TabStripTab [title]({% slug api_layout_tabstriptabcomponent %}#toc-title) option.\n *\n * @example\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n *

    Custom 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 */\nlet TabTitleDirective = class TabTitleDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nTabTitleDirective.ɵfac = function TabTitleDirective_Factory(t) { return new (t || TabTitleDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nTabTitleDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: TabTitleDirective, selectors: [[\"\", \"kendoTabTitle\", \"\"]] });\nTabTitleDirective = __decorate([ __metadata(\"design:paramtypes\", [TemplateRef])\n], TabTitleDirective);\n\n/**\n * Represents the tab component of the TabStrip.\n */\nlet TabStripTabComponent = class TabStripTabComponent {\n /**\n * Represents the tab component of the TabStrip.\n */\n constructor() {\n /**\n * Used to disable a tab ([see example]({% slug tabs_tabstrip %}#toc-disabled-tabs)).\n *\n * Defaults to `false`.\n */\n this.disabled = false;\n this._tabContent = new QueryList();\n /**\n * @hidden\n *\n * Currently only disabled tabs can be focused. Otherwise they will be\n * immediately selected\n */\n this.focused = false;\n }\n get tabContent() {\n return this._tabContent.first;\n }\n get tabTitle() {\n return this._tabTitleDirective.first;\n }\n};\nTabStripTabComponent.ɵfac = function TabStripTabComponent_Factory(t) { return new (t || TabStripTabComponent)(); };\nTabStripTabComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: TabStripTabComponent, selectors: [[\"kendo-tabstrip-tab\"]], contentQueries: function TabStripTabComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, TabContentDirective, 4);\n ɵngcc0.ɵɵcontentQuery(dirIndex, TabTitleDirective, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._tabContent = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._tabTitleDirective = _t);\n } }, inputs: { disabled: \"disabled\", title: \"title\", cssClass: \"cssClass\", cssStyle: \"cssStyle\", selected: \"selected\", closable: \"closable\", closeIcon: \"closeIcon\" }, exportAs: [\"kendoTabStripTab\"], decls: 0, vars: 0, template: function TabStripTabComponent_Template(rf, ctx) { }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TabStripTabComponent.prototype, \"title\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TabStripTabComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], TabStripTabComponent.prototype, \"cssClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], TabStripTabComponent.prototype, \"cssStyle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TabStripTabComponent.prototype, \"selected\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TabStripTabComponent.prototype, \"closable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TabStripTabComponent.prototype, \"closeIcon\", void 0);\n__decorate([\n ContentChildren(TabContentDirective),\n __metadata(\"design:type\", QueryList)\n], TabStripTabComponent.prototype, \"_tabContent\", void 0);\n__decorate([\n ContentChildren(TabTitleDirective),\n __metadata(\"design:type\", QueryList)\n], TabStripTabComponent.prototype, \"_tabTitleDirective\", void 0);\n\n/**\n * Arguments for the `tabClose` event of the TabStrip.\n * The `tabClose` event fires when the close button of the tab is clicked.\n *\n */\nclass TabCloseEvent {\n /**\n * Constructs the event arguments for the `tabClose` event.\n * @param index - The index of the closed tab.\n * @param tab - The closed tab instance\n */\n constructor(index, tab) {\n this.index = index;\n this.tab = tab;\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 * @hidden\n *\n * Checks if the current target is a TabStrip tab element\n */\nconst isTabElement = (target) => {\n const targetId = target.getAttribute('id');\n if (isPresent(targetId) || targetId.indexOf('k-tabstrip-tab-') >= 0) {\n return true;\n }\n return false;\n};\n/**\n * @hidden\n *\n * Checks if the current tab is closable. Depends on the value of the TabStrip closable property.\n */\nconst isTabClosable = (tab, tabStripClosable) => {\n if (tab.closable !== undefined) {\n return tab.closable;\n }\n return tabStripClosable;\n};\n/**\n * @hidden\n *\n * Checks if the TabStrip scroll buttons will be rendered. Depends on the value of the TabStrip scrollable settings.\n */\nconst tabStripHasScrollButtons = (scrollableSettings) => {\n return scrollableSettings.enabled && scrollableSettings.scrollButtons !== 'hidden';\n};\n/**\n * @hidden\n *\n * Checks if the TabStrip mouse scroll will be enabled. Depends on the value of the TabStrip scrollable settings.\n */\nconst mouseScrollEnabled = (scrollableSettings) => {\n return scrollableSettings.enabled && scrollableSettings.mouseScroll;\n};\n/**\n * @hidden\n *\n * Retrieves the current active tab element and its index.\n * This could either be the currently selected tab or the currently focused tab.\n */\nconst getActiveTab = (tabs) => {\n let focusedTab;\n let selectedTab;\n let focusedIndex = -1;\n let selectedIndex = -1;\n tabs.forEach((tab, index) => {\n if (tab.selected) {\n selectedTab = tab;\n selectedIndex = index;\n }\n else if (tab.focused) {\n focusedTab = tab;\n focusedIndex = index;\n }\n });\n return focusedIndex >= 0 ?\n { tab: focusedTab, index: focusedIndex } :\n { tab: selectedTab, index: selectedIndex };\n};\n/**\n * @hidden\n */\nconst getTabByIndex = (tabs, index) => {\n const filtered = tabs.filter((_tab, i) => i === index);\n if (filtered.length > 0) {\n return filtered[0];\n }\n return null;\n};\n/**\n * @hidden\n */\nconst getTabHeaderByIndex = (tabHeaderContainers, index) => {\n const filtered = tabHeaderContainers.filter((_tabHeader, i) => i === index);\n if (filtered.length > 0) {\n return filtered[0];\n }\n return null;\n};\n/**\n * @hidden\n */\nconst resetTabFocus = (tabs) => {\n tabs.forEach((tab) => {\n tab.focused = false;\n });\n};\n/**\n * @hidden\n */\nconst resetTabSelection = (tabs) => {\n tabs.forEach((tab) => {\n tab.selected = false;\n });\n};\n/**\n * @hidden\n */\nconst isTablistHorizontal = (tabPosition) => tabPosition === 'top' || tabPosition === 'bottom';\n\n/**\n * @hidden\n */\nlet TabStripService = class TabStripService {\n constructor(localization, ngZone) {\n this.localization = localization;\n this.ngZone = ngZone;\n }\n onKeyDown(event) {\n if (!isTabElement(event.target)) {\n return;\n }\n const key = event.keyCode;\n if (this.shouldHandleKey(key)) {\n event.preventDefault();\n }\n else {\n return;\n }\n if (isNavigationKey(key) || isArrowKey(key)) {\n this.onNavigate(key);\n }\n else if (key === Keys.Delete) {\n this.onDelete();\n }\n }\n onTabSelect(tab, index) {\n const selectArgs = new SelectEvent(index, tab.title);\n this.owner.tabSelect.emit(selectArgs);\n if (!selectArgs.isDefaultPrevented()) {\n if (tab.selected) {\n this.focusTabHeader(index);\n return;\n }\n this.selectTab(tab, index);\n }\n }\n selectTab(tab, index) {\n resetTabSelection(this.owner.tabs);\n this.focusTabHeader(index);\n tab.selected = true;\n if (this.owner.isScrollable) {\n this.owner.scrollToSelectedTab();\n }\n }\n onTabClose(tab, index) {\n const closeArgs = new TabCloseEvent(index, tab);\n this.owner.tabClose.emit(closeArgs);\n }\n onNavigate(keyCode) {\n let { tab: activeTab, index: activeIndex } = getActiveTab(this.owner.tabs);\n if (!NgZone.isInAngularZone()) {\n this.ngZone.run(() => {\n if (activeIndex < 0) {\n this.owner.selectTab(this.firstNavigatableIndex());\n return;\n }\n activeTab.focused = false;\n const nextIndex = this.computeNextIndex(activeIndex, keyCode);\n this.activateTab(nextIndex);\n });\n }\n }\n onDelete() {\n let { tab: activeTab, index: activeTabIndex } = getActiveTab(this.owner.tabs);\n if (isTabClosable(activeTab, this.owner.closable) && !activeTab.disabled) {\n this.ngZone.run(() => {\n this.onTabClose(activeTab, activeTabIndex);\n });\n }\n }\n activateTab(index) {\n const tab = getTabByIndex(this.owner.tabs, index);\n if (tab.disabled) {\n this.focusTabHeader(index);\n tab.focused = true;\n }\n else {\n this.onTabSelect(tab, index);\n }\n }\n focusTabHeader(index) {\n const tabHeader = getTabHeaderByIndex(this.owner.tabHeaderContainers, index);\n tabHeader.nativeElement.focus();\n }\n shouldHandleKey(keyCode) {\n if (isNavigationKey(keyCode)) {\n return true;\n }\n if (isTablistHorizontal(this.owner.tabPosition) && isHorizontalArrowKey(keyCode)) {\n return true;\n }\n if (!isTablistHorizontal(this.owner.tabPosition) && isVerticalArrowKey(keyCode)) {\n return true;\n }\n if (keyCode === Keys.Delete) {\n return true;\n }\n return false;\n }\n computeNextIndex(activeIndex, keyCode) {\n switch (keyCode) {\n case this.invertKeys(Keys.ArrowLeft, Keys.ArrowRight):\n case this.invertKeys(Keys.ArrowUp, Keys.ArrowDown):\n return this.prevNavigatableIndex(activeIndex);\n case this.invertKeys(Keys.ArrowRight, Keys.ArrowLeft):\n case this.invertKeys(Keys.ArrowDown, Keys.ArrowUp):\n return this.nextNavigatableIndex(activeIndex);\n case Keys.Home:\n return this.firstNavigatableIndex();\n case Keys.End:\n return this.lastNavigatableIndex();\n default:\n return;\n }\n }\n invertKeys(original, inverted) {\n return this.localization.rtl ? inverted : original;\n }\n firstNavigatableIndex() {\n return 0;\n }\n lastNavigatableIndex() {\n return this.owner.tabs.length - 1;\n }\n prevNavigatableIndex(selectedIndex) {\n if (selectedIndex - 1 < 0) {\n return this.lastNavigatableIndex();\n }\n return selectedIndex - 1;\n }\n nextNavigatableIndex(selectedIndex) {\n if (selectedIndex + 1 >= this.owner.tabs.length) {\n return this.firstNavigatableIndex();\n }\n return selectedIndex + 1;\n }\n};\nTabStripService.ɵfac = function TabStripService_Factory(t) { return new (t || TabStripService)(ɵngcc0.ɵɵinject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nTabStripService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: TabStripService, factory: function (t) { return TabStripService.ɵfac(t); } });\nTabStripService = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService,\n NgZone])\n], TabStripService);\n\n/**\n * @hidden\n */\nconst MOUSE_SCROLL_SPEED = 10;\n/**\n * @hidden\n */\nconst BUTTON_SCROLL_SPEED = 100;\n/**\n * @hidden\n */\nconst HIDDEN_CLASS = 'k-hidden';\n/**\n * @hidden\n */\nconst DIRECTION_CLASSES = {\n left: 'k-i-arrow-60-left',\n right: 'k-i-arrow-60-right',\n up: 'k-i-arrow-60-up',\n down: 'k-i-arrow-60-down'\n};\n/**\n * @hidden\n */\nconst DEFAULT_SCROLL_BEHAVIOR = 'smooth';\n\n/**\n * @hidden\n */\nclass PreventableEvent$1 {\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 `tabScroll` event of the TabStrip.\n * The `tabScroll` event fires when the tabs are being scrolled.\n *\n */\nclass TabScrollEvent extends PreventableEvent$1 {\n}\n\n/**\n * @hidden\n */\nlet ScrollService = class ScrollService {\n constructor(ngZone) {\n this.ngZone = ngZone;\n this.position = 0;\n this.scrollButtonActiveStateChange = new Subject();\n }\n get tablistElement() {\n return this.owner.tablist.nativeElement;\n }\n get scrollButtonIconClass() {\n const tabStrip = this.owner;\n const defaultPrevIcon = isTablistHorizontal(tabStrip.tabPosition) ? DIRECTION_CLASSES.left : DIRECTION_CLASSES.up;\n const defaultNextIcon = isTablistHorizontal(tabStrip.tabPosition) ? DIRECTION_CLASSES.right : DIRECTION_CLASSES.down;\n if (typeof tabStrip.scrollable === 'object') {\n const prevIcon = typeof tabStrip.scrollable.prevButtonIcon === 'undefined' ? defaultPrevIcon : tabStrip.scrollable.prevButtonIcon;\n const nextIcon = typeof tabStrip.scrollable.nextButtonIcon === 'undefined' ? defaultNextIcon : tabStrip.scrollable.nextButtonIcon;\n return { prevScrollButton: prevIcon, nextScrollButton: nextIcon };\n }\n return { prevScrollButton: defaultPrevIcon, nextScrollButton: defaultNextIcon };\n }\n get tabstripSize() {\n const hostElement = this.owner.wrapper.nativeElement;\n const wrapperWidth = parseFloat(getComputedStyle(hostElement).width);\n const wrapperHeight = parseFloat(getComputedStyle(hostElement).height);\n return isTablistHorizontal(this.owner.tabPosition) ? wrapperWidth : wrapperHeight;\n }\n get tablistOverflowSize() {\n if (!isDocumentAvailable()) {\n return 0;\n }\n const isHorizontal = isTablistHorizontal(this.owner.tabPosition);\n const overflowSize = Math.floor(this.tablistElement[isHorizontal ? 'scrollWidth' : 'scrollHeight']\n - this.tablistElement.getBoundingClientRect()[isHorizontal ? 'width' : 'height']);\n return overflowSize < 0 ? 0 : overflowSize;\n }\n get tabsOverflow() {\n return this.tablistOverflowSize > 0;\n }\n get scrollButtonsSize() {\n if (!this.owner.hasScrollButtons) {\n return 0;\n }\n const prevRect = this.owner.prevScrollButton.hostBoundingClientRect;\n const prevSize = isTablistHorizontal(this.owner.tabPosition) ? prevRect.width : prevRect.height;\n const nextRect = this.owner.nextScrollButton.hostBoundingClientRect;\n const nextSize = isTablistHorizontal(this.owner.tabPosition) ? nextRect.width : nextRect.height;\n return prevSize + nextSize;\n }\n toggleScrollButtonsState() {\n const tabStrip = this.owner;\n if (!tabStrip.hasScrollButtons) {\n return;\n }\n const currentPrevButtonActive = !tabStrip.prevScrollButton.disabled;\n const currentNextButtonActive = !tabStrip.nextScrollButton.disabled;\n const calculatedPrevButtonActive = this.position > 0 && this.tablistOverflowSize > 0;\n const calculatedNextButtonActive = this.position < this.tablistOverflowSize + this.scrollButtonsSize && this.tablistOverflowSize > 0;\n if (calculatedPrevButtonActive !== currentPrevButtonActive) {\n this.ngZone.run(() => this.toggleButtonActiveState('prev', calculatedPrevButtonActive));\n }\n if (calculatedNextButtonActive !== currentNextButtonActive) {\n this.ngZone.run(() => this.toggleButtonActiveState('next', calculatedNextButtonActive));\n }\n }\n scrollToSelectedTab() {\n if (!this.tabsOverflow) {\n return;\n }\n let { index: activeIndex } = getActiveTab(this.owner.tabs);\n if (activeIndex === -1) {\n return;\n }\n this.position += this.getScrollOffset(activeIndex);\n if (isTablistHorizontal(this.owner.tabPosition)) {\n this.tablistElement.scrollLeft = this.position;\n }\n else {\n this.tablistElement.scrollTop = this.position;\n }\n this.toggleScrollButtonsState();\n const tabStrip = this.owner;\n if (!tabStrip.hasScrollButtons) {\n return;\n }\n const isFirstTabActive = activeIndex === 0;\n const isLastTabActive = activeIndex === this.owner.tabs.length - 1;\n if (isFirstTabActive && !tabStrip.prevScrollButton.disabled) {\n this.ngZone.run(() => this.toggleButtonActiveState('prev', false));\n }\n if (isLastTabActive && !tabStrip.nextScrollButton.disabled) {\n this.ngZone.run(() => this.toggleButtonActiveState('next', false));\n }\n }\n getScrollOffset(activeIndex) {\n if (!isDocumentAvailable()) {\n return 0;\n }\n const isHorizontal = isTablistHorizontal(this.owner.tabPosition);\n this.tablistElement[`scroll${isHorizontal ? 'Left' : 'Top'}`] = this.position;\n const activeTabRect = this.tablistElement.children[activeIndex].getBoundingClientRect();\n const tablistRect = this.tablistElement.getBoundingClientRect();\n const end = isHorizontal ? 'right' : 'bottom';\n const start = isHorizontal ? 'left' : 'top';\n const activeTabStart = activeTabRect[start];\n const activeTabEnd = activeTabRect[end];\n const tablistStart = tablistRect[start];\n const tablistEnd = tablistRect[end];\n const tabEndIsInVisibleRange = activeTabEnd <= tablistEnd;\n const tabStartIsInVisibleRange = activeTabStart >= tablistStart;\n const isWholeTabVisible = tabEndIsInVisibleRange && tabStartIsInVisibleRange;\n if (isWholeTabVisible) {\n return 0;\n }\n if (!tabEndIsInVisibleRange) {\n return activeTabEnd - tablistEnd;\n }\n if (!tabStartIsInVisibleRange) {\n return activeTabStart - tablistStart;\n }\n }\n onMouseScroll(event) {\n event.preventDefault();\n if (!mouseScrollEnabled(this.owner.scrollable)) {\n return;\n }\n const direction = event.deltaY < 0 ? 'prev' : 'next';\n this.calculateListPosition(direction, this.owner.scrollable.mouseScrollSpeed);\n if (isTablistHorizontal(this.owner.tabPosition)) {\n this.tablistElement.scrollLeft = this.position;\n }\n else {\n this.tablistElement.scrollTop = this.position;\n }\n this.toggleScrollButtonsState();\n }\n scrollTabs(direction) {\n this.calculateListPosition(direction, this.owner.scrollable.buttonScrollSpeed);\n if (isTablistHorizontal(this.owner.tabPosition)) {\n this.tablistElement.scrollTo({ left: this.position, behavior: DEFAULT_SCROLL_BEHAVIOR });\n }\n else {\n this.tablistElement.scrollTo({ top: this.position, behavior: DEFAULT_SCROLL_BEHAVIOR });\n }\n this.toggleScrollButtonsState();\n }\n calculateListPosition(direction, scrollSpeed) {\n const adjustedMaxScroll = this.tablistOverflowSize + this.scrollButtonsSize;\n if (direction === 'prev' && this.position > 0) {\n this.position = this.position - scrollSpeed <= 0 ? 0 : this.position - scrollSpeed;\n }\n else if (direction === 'next' && this.position < adjustedMaxScroll) {\n if (this.position + scrollSpeed > adjustedMaxScroll) {\n this.position = adjustedMaxScroll;\n return;\n }\n this.position += scrollSpeed;\n }\n }\n emitScrollEvent(ev) {\n const scrollEvent = new TabScrollEvent({\n originalEvent: ev\n });\n if (hasObservers(this.owner.tabScroll)) {\n this.owner.tabScroll.emit(scrollEvent);\n }\n return scrollEvent;\n }\n restoreScrollPosition() {\n if (isTablistHorizontal(this.owner.tabPosition)) {\n this.tablistElement.scrollTo({ left: this.position });\n }\n else {\n this.tablistElement.scrollTo({ top: this.position });\n }\n this.toggleScrollButtonsState();\n }\n toggleButtonActiveState(buttonType, active) {\n this.scrollButtonActiveStateChange.next({ buttonType, active });\n }\n};\nScrollService.ɵfac = function ScrollService_Factory(t) { return new (t || ScrollService)(ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nScrollService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ScrollService, factory: function (t) { return ScrollService.ɵfac(t); } });\nScrollService = __decorate([ __metadata(\"design:paramtypes\", [NgZone])\n], ScrollService);\n\n/**\n * @hidden\n */\nconst normalizeSettings = ({ enabled = true, scrollButtons = 'auto', mouseScroll = true, buttonScrollSpeed = BUTTON_SCROLL_SPEED, mouseScrollSpeed = MOUSE_SCROLL_SPEED, prevButtonIcon, nextButtonIcon }) => ({\n enabled,\n scrollButtons,\n mouseScroll,\n buttonScrollSpeed,\n mouseScrollSpeed,\n prevButtonIcon,\n nextButtonIcon\n});\n/**\n * @hidden\n */\nconst normalizeScrollableSettings = (settings) => normalizeSettings(settings === false ? { enabled: false } : settings);\n\n/**\n * @hidden\n */\nlet TabStripScrollableButtonComponent = class TabStripScrollableButtonComponent {\n constructor(host, scrollService, renderer, ngZone) {\n this.host = host;\n this.scrollService = scrollService;\n this.renderer = renderer;\n this.ngZone = ngZone;\n this.btnClasses = true;\n this.prev = false;\n this._disabled = false;\n this.subs = new Subscription();\n this.clickHandler = (scrollEvent) => {\n const tabStripScrollEvent = this.scrollService.emitScrollEvent(scrollEvent);\n const isTabStripScrollEventPrevented = tabStripScrollEvent.isDefaultPrevented();\n if (isTabStripScrollEventPrevented) {\n return;\n }\n const buttonType = this.prev ? 'prev' : 'next';\n this.scrollService.scrollTabs(buttonType);\n };\n this.subs.add(this.scrollService.scrollButtonActiveStateChange.subscribe((activeButtonSettings) => {\n const applyActiveState = (this.prev && activeButtonSettings.buttonType === 'prev') ||\n (!this.prev && activeButtonSettings.buttonType === 'next');\n if (applyActiveState) {\n this.disabled = !activeButtonSettings.active;\n }\n }));\n }\n get prevClass() {\n return this.prev;\n }\n get nextClass() {\n return !this.prev;\n }\n get disabled() {\n return this._disabled;\n }\n get hostBoundingClientRect() {\n return this.host.nativeElement.getBoundingClientRect();\n }\n get iconClass() {\n return this.scrollService.scrollButtonIconClass[this.prev ? 'prevScrollButton' : 'nextScrollButton'];\n }\n set disabled(value) {\n this._disabled = value;\n }\n ngAfterViewInit() {\n this.ngZone.runOutsideAngular(() => {\n this.subs.add(this.renderer.listen(this.host.nativeElement, 'click', this.clickHandler));\n });\n }\n ngOnDestroy() {\n this.subs.unsubscribe();\n }\n toggle(show) {\n this.renderer[show ? 'removeClass' : 'addClass'](this.host.nativeElement, HIDDEN_CLASS);\n }\n};\nTabStripScrollableButtonComponent.ɵfac = function TabStripScrollableButtonComponent_Factory(t) { return new (t || TabStripScrollableButtonComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ScrollService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nTabStripScrollableButtonComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: TabStripScrollableButtonComponent, selectors: [[\"\", \"kendoTabStripScrollableButton\", \"\"]], hostVars: 18, hostBindings: function TabStripScrollableButtonComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-button\", ctx.btnClasses)(\"k-button-md\", ctx.btnClasses)(\"k-icon-button\", ctx.btnClasses)(\"k-rounded-md\", ctx.btnClasses)(\"k-button-flat\", ctx.btnClasses)(\"k-button-flat-base\", ctx.btnClasses)(\"k-disabled\", ctx.disabled)(\"k-tabstrip-prev\", ctx.prevClass)(\"k-tabstrip-next\", ctx.nextClass);\n } }, inputs: { prev: \"prev\" }, attrs: _c10, decls: 1, vars: 1, consts: [[1, \"k-icon\", \"k-button-icon\", 3, \"ngClass\"]], template: function TabStripScrollableButtonComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx.iconClass);\n } }, directives: [ɵngcc1.NgClass], encapsulation: 2 });\n__decorate([\n HostBinding('class.k-button'),\n HostBinding('class.k-button-md'),\n HostBinding('class.k-icon-button'),\n HostBinding('class.k-rounded-md'),\n HostBinding('class.k-button-flat'),\n HostBinding('class.k-button-flat-base'),\n __metadata(\"design:type\", Boolean)\n], TabStripScrollableButtonComponent.prototype, \"btnClasses\", void 0);\n__decorate([\n HostBinding('class.k-tabstrip-prev'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], TabStripScrollableButtonComponent.prototype, \"prevClass\", null);\n__decorate([\n HostBinding('class.k-tabstrip-next'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], TabStripScrollableButtonComponent.prototype, \"nextClass\", null);\n__decorate([\n HostBinding('class.k-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], TabStripScrollableButtonComponent.prototype, \"disabled\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TabStripScrollableButtonComponent.prototype, \"prev\", void 0);\nTabStripScrollableButtonComponent = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n ScrollService,\n Renderer2,\n NgZone])\n], TabStripScrollableButtonComponent);\n\n/**\n * Represents the [Kendo UI TabStrip component for Angular]({% slug overview_tabstrip %}).\n */\nlet TabStripComponent = class TabStripComponent {\n constructor(localization, renderer, wrapper, tabstripService, scrollService, ngZone) {\n this.localization = localization;\n this.renderer = renderer;\n this.wrapper = wrapper;\n this.tabstripService = tabstripService;\n this.scrollService = scrollService;\n this.ngZone = ngZone;\n /**\n * Enables the tab animation.\n *\n * @default true\n */\n this.animate = true;\n /**\n * Sets the position of the tabs. Defaults to `top`.\n *\n * @default '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 * @default false\n */\n this.keepTabContent = false;\n /**\n * When set to `true`, a close button will be rendered inside each tab.\n * By default, `closable` is `false`.\n *\n * @default false\n */\n this.closable = false;\n /**\n * Allows defining a custom CSS class, or multiple classes separated by spaces, which will be applied to the close button span element.\n * Allows the usage of custom icons.\n */\n this.closeIcon = 'k-icon k-i-x';\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 /**\n * Fires each time the user closes a tab.\n * The event data contains the index of the closed tab and its instance.\n */\n this.tabClose = new EventEmitter();\n /**\n * Fires each time the user scrolls the TabStrip list.\n * The event is preventable.\n */\n this.tabScroll = new EventEmitter();\n this.hostClasses = true;\n /**\n * A query list of all declared tabs.\n */\n this.tabs = new QueryList();\n this._scrollableSettings = normalizeScrollableSettings(false);\n this.subscriptions = new Subscription();\n this.subscriptionsArePresent = false;\n validatePackage(packageMetadata);\n this.tabstripService.owner = this;\n this.scrollService.owner = this;\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 /**\n * Enables the scrolling of the tab list. When set to `true` and the total size of all tabs\n * is greater than the size of the TabStrip container, scroll buttons will be rendered on each end of the tab list.\n *\n * By default, `scrollable` is `false`.\n *\n * @default false\n */\n set scrollable(value) {\n this._scrollableSettings = normalizeScrollableSettings(value);\n if (this.tablist) {\n this.toggleScrollButtons(this.scrollService.tabsOverflow);\n this.attachWheelHandler(this.tablist.nativeElement);\n }\n }\n get scrollable() {\n return this._scrollableSettings;\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 get tabStripScrollable() {\n return this._scrollableSettings.enabled;\n }\n ngAfterViewInit() {\n this.ngZone.runOutsideAngular(() => {\n if (this.scrollService.tabsOverflow) {\n this.toggleScrollButtons(true);\n }\n else {\n this.toggleScrollButtons(false);\n }\n setTimeout(() => {\n this.scrollToSelectedTab();\n });\n });\n this.initDomEvents();\n }\n ngOnChanges(changes) {\n const positionChange = changes.tabPosition;\n if (positionChange) {\n const tabsAtBottomChanged = positionChange.previousValue === 'bottom' || positionChange.currentValue === 'bottom';\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n if (tabsAtBottomChanged) {\n if (this.subscriptionsArePresent) {\n this.subscriptions.unsubscribe();\n this.subscriptions = new Subscription();\n this.subscriptionsArePresent = false;\n }\n this.initDomEvents();\n }\n this.scrollService.restoreScrollPosition();\n });\n }\n }\n ngOnDestroy() {\n if (this.subscriptions) {\n this.subscriptions.unsubscribe();\n }\n }\n /**\n * @hidden\n */\n get tabsAlignmentStyles() {\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 get tabListWidth() {\n if (this.tabPosition === 'top' || this.tabPosition === 'bottom') {\n return '100%';\n }\n return null;\n }\n /**\n * @hidden\n */\n get tabListHeight() {\n if (this.tabPosition === 'left' || this.tabPosition === 'right') {\n return '100%';\n }\n return null;\n }\n /**\n * @hidden\n */\n get isScrollable() {\n return this._scrollableSettings.enabled;\n }\n /**\n * @hidden\n */\n get hasScrollButtons() {\n return tabStripHasScrollButtons(this._scrollableSettings);\n }\n /**\n * @hidden\n */\n get mouseScrollEnabled() {\n return mouseScrollEnabled(this._scrollableSettings);\n }\n /**\n * @hidden\n */\n get itemsWrapperClass() {\n return isTablistHorizontal(this.tabPosition) ? 'k-hstack' : 'k-vstack';\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 = getTabByIndex(this.tabs, index);\n if (!tab || tab.disabled) {\n return;\n }\n this.tabstripService.selectTab(tab, index);\n this.scrollToSelectedTab();\n }\n /**\n * @hidden\n */\n onTabClick(originalEvent, tabIndex) {\n if (isFocusable(originalEvent.target)) {\n return;\n }\n const targetElement = originalEvent.target;\n const isTargetCloseButton = hasClass(targetElement, 'k-remove-tab') || hasClass(targetElement.parentElement, 'k-remove-tab');\n if (isTargetCloseButton) {\n return;\n }\n const tab = getTabByIndex(this.tabs, tabIndex);\n this.tabstripService.onTabSelect(tab, tabIndex);\n this.scrollToSelectedTab();\n }\n /**\n * @hidden\n */\n onResize() {\n if (this.scrollService.tabsOverflow) {\n this.toggleScrollButtons(true);\n }\n else {\n this.toggleScrollButtons(false);\n }\n this.ngZone.runOutsideAngular(() => {\n this.scrollService.toggleScrollButtonsState();\n });\n }\n /**\n * @hidden\n */\n scrollToSelectedTab() {\n if (this._scrollableSettings.enabled) {\n this.scrollService.scrollToSelectedTab();\n }\n }\n initDomEvents() {\n if (!this.wrapper || this.subscriptionsArePresent) {\n return;\n }\n const tablist = this.tablist.nativeElement;\n this.ngZone.runOutsideAngular(() => {\n this.subscriptions.add(this.renderer.listen(tablist, 'keydown', (ev) => {\n this.tabstripService.onKeyDown(ev);\n }));\n });\n this.subscriptions.add(this.renderer.listen(tablist, 'focusout', () => {\n resetTabFocus(this.tabs);\n }));\n if (this.isScrollable && this.mouseScrollEnabled) {\n this.attachWheelHandler(tablist);\n }\n this.subscriptionsArePresent = true;\n }\n toggleScrollButtons(tabsOverflow) {\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n const scrollButtonsSetting = this._scrollableSettings.scrollButtons;\n const scrollButtonsArePresent = this.prevScrollButton && this.nextScrollButton;\n const shouldShowButtons = scrollButtonsArePresent && tabsOverflow;\n const shouldHideButtons = scrollButtonsArePresent &&\n !tabsOverflow &&\n scrollButtonsSetting !== 'visible';\n const alwaysVisible = scrollButtonsSetting === 'visible';\n if (shouldHideButtons) {\n this.prevScrollButton.toggle(false);\n this.nextScrollButton.toggle(false);\n }\n else if (shouldShowButtons || alwaysVisible) {\n this.prevScrollButton.toggle(true);\n this.nextScrollButton.toggle(true);\n }\n if (scrollButtonsArePresent && alwaysVisible) {\n this.ngZone.runOutsideAngular(() => {\n this.scrollService.toggleScrollButtonsState();\n });\n }\n });\n }\n attachWheelHandler(tablist) {\n this.ngZone.runOutsideAngular(() => {\n this.subscriptions.add(this.renderer.listen(tablist, 'wheel', (wheelEvent) => {\n const tabStripScrollEvent = this.scrollService.emitScrollEvent(wheelEvent);\n const isTabStripScrollEventPrevented = tabStripScrollEvent.isDefaultPrevented();\n if (isTabStripScrollEventPrevented || !this.scrollService.tabsOverflow) {\n return;\n }\n this.scrollService.onMouseScroll(wheelEvent);\n }));\n });\n }\n};\nTabStripComponent.ɵfac = function TabStripComponent_Factory(t) { return new (t || TabStripComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(TabStripService), ɵngcc0.ɵɵdirectiveInject(ScrollService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nTabStripComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: TabStripComponent, selectors: [[\"kendo-tabstrip\"]], contentQueries: function TabStripComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, TabStripTabComponent, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.tabs = _t);\n } }, viewQuery: function TabStripComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c11, 5);\n ɵngcc0.ɵɵviewQuery(_c12, 5);\n ɵngcc0.ɵɵviewQuery(_c13, 5);\n ɵngcc0.ɵɵviewQuery(_c14, 5, ElementRef);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.tablist = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.prevScrollButton = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.nextScrollButton = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.tabHeaderContainers = _t);\n } }, hostVars: 15, hostBindings: function TabStripComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"dir\", ctx.dir);\n ɵngcc0.ɵɵclassProp(\"k-tabstrip\", ctx.hostClasses)(\"k-floatwrap\", ctx.hostClasses)(\"k-tabstrip-top\", ctx.tabsAtTop)(\"k-tabstrip-right\", ctx.tabsAtRight)(\"k-tabstrip-bottom\", ctx.tabsAtBottom)(\"k-tabstrip-left\", ctx.tabsAtLeft)(\"k-tabstrip-scrollable\", ctx.tabStripScrollable);\n } }, inputs: { animate: \"animate\", tabPosition: \"tabPosition\", keepTabContent: \"keepTabContent\", closable: \"closable\", closeIcon: \"closeIcon\", height: \"height\", scrollable: \"scrollable\", tabAlignment: \"tabAlignment\" }, outputs: { tabSelect: \"tabSelect\", tabClose: \"tabClose\", tabScroll: \"tabScroll\" }, exportAs: [\"kendoTabStrip\"], features: [ɵngcc0.ɵɵProvidersFeature([\n TabStripService,\n ScrollService,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.tabstrip'\n }\n ]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 8, vars: 3, consts: function () { let i18n_15; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title for the **Close** button in the TabStrip tab.\n * @meaning kendo.tabstrip.closeTitle\n */\n const MSG_EXTERNAL_6238253944136586274$$DIST_FESM2015_INDEX_JS_16 = goog.getMsg(\"Close\");\n i18n_15 = MSG_EXTERNAL_6238253944136586274$$DIST_FESM2015_INDEX_JS_16;\n }\n else {\n i18n_15 = $localize `:kendo.tabstrip.closeTitle|The title for the **Close** button in the TabStrip tab.␟28d3600711ed2cde12f915765a15978db3ec0fd1␟6238253944136586274:Close`;\n } return [[\"kendoTabStripLocalizedMessages\", \"\", \"closeTitle\", i18n_15], [4, \"ngIf\"], [\"heading\", \"\"], [\"content\", \"\"], [3, \"resize\", 4, \"ngIf\"], [4, \"ngTemplateOutlet\"], [1, \"k-tabstrip-items-wrapper\", 3, \"ngClass\"], [\"kendoTabStripScrollableButton\", \"\", 3, \"prev\", 4, \"ngIf\"], [\"role\", \"tablist\", 1, \"k-reset\", \"k-tabstrip-items\"], [\"tablist\", \"\"], [4, \"ngFor\", \"ngForOf\"], [\"kendoTabStripScrollableButton\", \"\", 3, \"prev\"], [\"prevScrollButton\", \"\"], [\"kendoTabStripTab\", \"\", \"role\", \"tab\", 3, \"ngClass\", \"ngStyle\", \"tab\", \"index\", \"tabStripClosable\", \"tabStripCloseIcon\", \"id\", \"click\", 4, \"ngIf\"], [\"kendoTabStripTab\", \"\", \"role\", \"tab\", 3, \"ngClass\", \"ngStyle\", \"tab\", \"index\", \"tabStripClosable\", \"tabStripCloseIcon\", \"id\", \"click\"], [\"tabHeaderContainer\", \"\"], [\"nextScrollButton\", \"\"], [\"ngFor\", \"\", 3, \"ngForOf\"], [\"role\", \"tabpanel\", 3, \"ngClass\", \"tabIndex\", \"id\", 4, \"ngIf\"], [\"role\", \"tabpanel\", 3, \"ngClass\", \"tabIndex\", \"id\"], [3, \"ngTemplateOutlet\"], [3, \"resize\"]]; }, template: function TabStripComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 0);\n ɵngcc0.ɵɵtemplate(1, TabStripComponent_ng_container_1_Template, 3, 2, \"ng-container\", 1);\n ɵngcc0.ɵɵtemplate(2, TabStripComponent_ng_container_2_Template, 3, 2, \"ng-container\", 1);\n ɵngcc0.ɵɵtemplate(3, TabStripComponent_ng_template_3_Template, 6, 10, \"ng-template\", null, 2, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(5, TabStripComponent_ng_template_5_Template, 1, 1, \"ng-template\", null, 3, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(7, TabStripComponent_kendo_resize_sensor_7_Template, 1, 0, \"kendo-resize-sensor\", 4);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.tabsAtBottom);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.tabsAtBottom);\n ɵngcc0.ɵɵadvance(5);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.isScrollable);\n } }, directives: function () { return [LocalizedTabStripMessagesDirective, ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet, ɵngcc1.NgClass, TabStripScrollableButtonComponent, ɵngcc1.NgForOf, TabComponent, ɵngcc1.NgStyle, ɵngcc3.ResizeSensorComponent]; }, encapsulation: 2, data: { animation: [\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__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], TabStripComponent.prototype, \"height\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TabStripComponent.prototype, \"animate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TabStripComponent.prototype, \"tabAlignment\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TabStripComponent.prototype, \"tabPosition\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TabStripComponent.prototype, \"keepTabContent\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TabStripComponent.prototype, \"closable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], TabStripComponent.prototype, \"scrollable\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TabStripComponent.prototype, \"closeIcon\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TabStripComponent.prototype, \"tabSelect\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TabStripComponent.prototype, \"tabClose\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TabStripComponent.prototype, \"tabScroll\", void 0);\n__decorate([\n HostBinding('class.k-tabstrip'),\n HostBinding('class.k-floatwrap'),\n __metadata(\"design:type\", Boolean)\n], TabStripComponent.prototype, \"hostClasses\", void 0);\n__decorate([\n HostBinding('class.k-tabstrip-top'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], TabStripComponent.prototype, \"tabsAtTop\", null);\n__decorate([\n HostBinding('class.k-tabstrip-right'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], TabStripComponent.prototype, \"tabsAtRight\", null);\n__decorate([\n HostBinding('class.k-tabstrip-bottom'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], TabStripComponent.prototype, \"tabsAtBottom\", null);\n__decorate([\n HostBinding('class.k-tabstrip-left'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], TabStripComponent.prototype, \"tabsAtLeft\", null);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], TabStripComponent.prototype, \"dir\", null);\n__decorate([\n HostBinding('class.k-tabstrip-scrollable'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], TabStripComponent.prototype, \"tabStripScrollable\", null);\n__decorate([\n ContentChildren(TabStripTabComponent),\n __metadata(\"design:type\", QueryList)\n], TabStripComponent.prototype, \"tabs\", void 0);\n__decorate([\n ViewChild('tablist', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], TabStripComponent.prototype, \"tablist\", void 0);\n__decorate([\n ViewChildren('tabHeaderContainer', { read: ElementRef }),\n __metadata(\"design:type\", QueryList)\n], TabStripComponent.prototype, \"tabHeaderContainers\", void 0);\n__decorate([\n ViewChild('prevScrollButton', { static: false }),\n __metadata(\"design:type\", TabStripScrollableButtonComponent)\n], TabStripComponent.prototype, \"prevScrollButton\", void 0);\n__decorate([\n ViewChild('nextScrollButton', { static: false }),\n __metadata(\"design:type\", TabStripScrollableButtonComponent)\n], TabStripComponent.prototype, \"nextScrollButton\", void 0);\nTabStripComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService,\n Renderer2,\n ElementRef,\n TabStripService,\n ScrollService,\n NgZone])\n], TabStripComponent);\n\n/**\n * @hidden\n */\nclass TabStripMessages extends ComponentMessages {\n}\nTabStripMessages.ɵfac = /*@__PURE__*/ function () { let ɵTabStripMessages_BaseFactory; return function TabStripMessages_Factory(t) { return (ɵTabStripMessages_BaseFactory || (ɵTabStripMessages_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(TabStripMessages)))(t || TabStripMessages); }; }();\nTabStripMessages.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: TabStripMessages, inputs: { closeTitle: \"closeTitle\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TabStripMessages.prototype, \"closeTitle\", void 0);\n\nvar LocalizedTabStripMessagesDirective_1;\n/**\n * @hidden\n */\nlet LocalizedTabStripMessagesDirective = LocalizedTabStripMessagesDirective_1 = class LocalizedTabStripMessagesDirective extends TabStripMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n};\nLocalizedTabStripMessagesDirective.ɵfac = function LocalizedTabStripMessagesDirective_Factory(t) { return new (t || LocalizedTabStripMessagesDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nLocalizedTabStripMessagesDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LocalizedTabStripMessagesDirective, selectors: [[\"\", \"kendoTabStripLocalizedMessages\", \"\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: TabStripMessages,\n useExisting: forwardRef(() => LocalizedTabStripMessagesDirective_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature] });\nLocalizedTabStripMessagesDirective = LocalizedTabStripMessagesDirective_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], LocalizedTabStripMessagesDirective);\n\nvar TabStripCustomMessagesComponent_1;\n/**\n * Custom component messages override default component messages\n * ([see example]({% slug rtl_layout %})).\n */\nlet TabStripCustomMessagesComponent = TabStripCustomMessagesComponent_1 = class TabStripCustomMessagesComponent extends TabStripMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n};\nTabStripCustomMessagesComponent.ɵfac = function TabStripCustomMessagesComponent_Factory(t) { return new (t || TabStripCustomMessagesComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nTabStripCustomMessagesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: TabStripCustomMessagesComponent, selectors: [[\"kendo-tabstrip-messages\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: TabStripMessages,\n useExisting: forwardRef(() => TabStripCustomMessagesComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function TabStripCustomMessagesComponent_Template(rf, ctx) { }, encapsulation: 2 });\nTabStripCustomMessagesComponent = TabStripCustomMessagesComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], TabStripCustomMessagesComponent);\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 */\nlet DrawerTemplateDirective = class DrawerTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nDrawerTemplateDirective.ɵfac = function DrawerTemplateDirective_Factory(t) { return new (t || DrawerTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nDrawerTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DrawerTemplateDirective, selectors: [[\"\", \"kendoDrawerTemplate\", \"\"]] });\nDrawerTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], DrawerTemplateDirective);\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 */\nlet DrawerItemTemplateDirective = class DrawerItemTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nDrawerItemTemplateDirective.ɵfac = function DrawerItemTemplateDirective_Factory(t) { return new (t || DrawerItemTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nDrawerItemTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DrawerItemTemplateDirective, selectors: [[\"\", \"kendoDrawerItemTemplate\", \"\"]] });\nDrawerItemTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], DrawerItemTemplateDirective);\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 */\nlet DrawerHeaderTemplateDirective = class DrawerHeaderTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nDrawerHeaderTemplateDirective.ɵfac = function DrawerHeaderTemplateDirective_Factory(t) { return new (t || DrawerHeaderTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nDrawerHeaderTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DrawerHeaderTemplateDirective, selectors: [[\"\", \"kendoDrawerHeaderTemplate\", \"\"]] });\nDrawerHeaderTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], DrawerHeaderTemplateDirective);\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 */\nlet DrawerFooterTemplateDirective = class DrawerFooterTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nDrawerFooterTemplateDirective.ɵfac = function DrawerFooterTemplateDirective_Factory(t) { return new (t || DrawerFooterTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nDrawerFooterTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DrawerFooterTemplateDirective, selectors: [[\"\", \"kendoDrawerFooterTemplate\", \"\"]] });\nDrawerFooterTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], DrawerFooterTemplateDirective);\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$1 {\n}\n\n/**\n * @hidden\n */\nlet DrawerService = class DrawerService {\n /**\n * @hidden\n */\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.ɵfac = function DrawerService_Factory(t) { return new (t || DrawerService)(); };\nDrawerService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: DrawerService, factory: function (t) { return DrawerService.ɵfac(t); } });\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 * \n * \n * \n * `\n * })\n * class AppComponent {\n * public expanded = false;\n *\n * public items: any[] = [\n * { text: 'Inbox', icon: 'k-i-inbox' },\n * { text: 'Notifications', icon: 'k-i-bell' },\n * { text: 'Date', icon: 'k-i-calendar' }\n * ];\n * }\n * ```\n */\nlet DrawerComponent = class 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 validatePackage(packageMetadata);\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)) {\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.ɵfac = function DrawerComponent_Factory(t) { return new (t || DrawerComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc4.AnimationBuilder), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(DrawerService)); };\nDrawerComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DrawerComponent, selectors: [[\"kendo-drawer\"]], contentQueries: function DrawerComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, DrawerTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, DrawerFooterTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, DrawerHeaderTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, DrawerItemTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.drawerTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.footerTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.headerTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.itemTemplate = _t.first);\n } }, hostVars: 13, hostBindings: function DrawerComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"dir\", ctx.direction);\n ɵngcc0.ɵɵstyleProp(\"transform\", ctx.overlayTransofrmStyles)(\"flex-basis\", ctx.flexStyles, \"px\");\n ɵngcc0.ɵɵclassProp(\"k-widget\", ctx.hostClasses)(\"k-drawer\", ctx.hostClasses)(\"k-drawer-start\", ctx.startPositionClass)(\"k-drawer-end\", ctx.endPositionClass);\n } }, inputs: { mode: \"mode\", position: \"position\", mini: \"mini\", expanded: \"expanded\", width: \"width\", miniWidth: \"miniWidth\", autoCollapse: \"autoCollapse\", animation: \"animation\", items: \"items\" }, outputs: { expand: \"expand\", collapse: \"collapse\", select: \"select\", expandedChange: \"expandedChange\" }, exportAs: [\"kendoDrawer\"], features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n DrawerService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.drawer'\n }\n ])], decls: 1, vars: 1, consts: [[\"class\", \"k-drawer-wrapper\", 3, \"width\", 4, \"ngIf\"], [1, \"k-drawer-wrapper\"], [4, \"ngIf\"], [\"kendoDrawerList\", \"\", 1, \"k-drawer-items\", 3, \"items\", \"mini\", \"expanded\", \"itemTemplate\"], [3, \"ngTemplateOutlet\"]], template: function DrawerComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DrawerComponent_div_0_Template, 3, 4, \"div\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.expanded || ctx.mini);\n } }, directives: function () { return [ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet, DrawerListComponent]; }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-widget'),\n HostBinding('class.k-drawer'),\n __metadata(\"design:type\", Boolean)\n], DrawerComponent.prototype, \"hostClasses\", void 0);\n__decorate([\n HostBinding('class.k-drawer-start'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DrawerComponent.prototype, \"startPositionClass\", null);\n__decorate([\n HostBinding('class.k-drawer-end'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DrawerComponent.prototype, \"endPositionClass\", null);\n__decorate([\n HostBinding('style.transform'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], DrawerComponent.prototype, \"overlayTransofrmStyles\", null);\n__decorate([\n HostBinding('style.flexBasis.px'),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [])\n], DrawerComponent.prototype, \"flexStyles\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DrawerComponent.prototype, \"mode\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DrawerComponent.prototype, \"position\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DrawerComponent.prototype, \"mini\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DrawerComponent.prototype, \"expanded\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], DrawerComponent.prototype, \"width\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], DrawerComponent.prototype, \"miniWidth\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DrawerComponent.prototype, \"autoCollapse\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], DrawerComponent.prototype, \"items\", null);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String)\n], DrawerComponent.prototype, \"direction\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DrawerComponent.prototype, \"animation\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DrawerComponent.prototype, \"expand\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DrawerComponent.prototype, \"collapse\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DrawerComponent.prototype, \"select\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DrawerComponent.prototype, \"expandedChange\", void 0);\n__decorate([\n ContentChild(DrawerTemplateDirective, { static: false }),\n __metadata(\"design:type\", DrawerTemplateDirective)\n], DrawerComponent.prototype, \"drawerTemplate\", void 0);\n__decorate([\n ContentChild(DrawerFooterTemplateDirective, { static: false }),\n __metadata(\"design:type\", DrawerFooterTemplateDirective)\n], DrawerComponent.prototype, \"footerTemplate\", void 0);\n__decorate([\n ContentChild(DrawerHeaderTemplateDirective, { static: false }),\n __metadata(\"design:type\", DrawerHeaderTemplateDirective)\n], DrawerComponent.prototype, \"headerTemplate\", void 0);\n__decorate([\n ContentChild(DrawerItemTemplateDirective, { static: false }),\n __metadata(\"design:type\", DrawerItemTemplateDirective)\n], DrawerComponent.prototype, \"itemTemplate\", void 0);\nDrawerComponent = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n AnimationBuilder,\n LocalizationService,\n DrawerService])\n], DrawerComponent);\n\n/**\n * Serves as a container for the [Kendo UI Drawer component for Angular]({% slug overview_drawer %}) and its content.\n */\nlet DrawerContainerComponent = class 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 /**\n * @hidden\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.ɵfac = function DrawerContainerComponent_Factory(t) { return new (t || DrawerContainerComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nDrawerContainerComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DrawerContainerComponent, selectors: [[\"kendo-drawer-container\"]], contentQueries: function DrawerContainerComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, DrawerComponent, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.drawer = _t.first);\n } }, hostVars: 11, hostBindings: function DrawerContainerComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"dir\", ctx.direction);\n ɵngcc0.ɵɵclassProp(\"k-drawer-container\", ctx.hostClass)(\"k-drawer-overlay\", ctx.overlayClass)(\"k-drawer-mini\", ctx.miniClass)(\"k-drawer-push\", ctx.pushClass)(\"k-drawer-expanded\", ctx.isExpandedClass);\n } }, features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.drawer.container'\n }\n ])], ngContentSelectors: _c7, decls: 2, vars: 1, consts: [[\"class\", \"k-overlay\", 3, \"click\", 4, \"ngIf\"], [1, \"k-overlay\", 3, \"click\"]], template: function DrawerContainerComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵtemplate(0, DrawerContainerComponent_div_0_Template, 1, 0, \"div\", 0);\n ɵngcc0.ɵɵprojection(1);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.overlay);\n } }, directives: [ɵngcc1.NgIf], encapsulation: 2 });\n__decorate([\n HostBinding('class.k-drawer-container'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DrawerContainerComponent.prototype, \"hostClass\", null);\n__decorate([\n HostBinding('class.k-drawer-overlay'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DrawerContainerComponent.prototype, \"overlayClass\", null);\n__decorate([\n HostBinding('class.k-drawer-mini'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DrawerContainerComponent.prototype, \"miniClass\", null);\n__decorate([\n HostBinding('class.k-drawer-push'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DrawerContainerComponent.prototype, \"pushClass\", null);\n__decorate([\n HostBinding('class.k-drawer-expanded'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DrawerContainerComponent.prototype, \"isExpandedClass\", null);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String)\n], DrawerContainerComponent.prototype, \"direction\", void 0);\n__decorate([\n ContentChild(DrawerComponent, { static: false }),\n __metadata(\"design:type\", DrawerComponent)\n], DrawerContainerComponent.prototype, \"drawer\", void 0);\nDrawerContainerComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], DrawerContainerComponent);\n\n/**\n * Represents the content of the [Kendo UI Drawer component for Angular]({% slug overview_drawer %}).\n */\nlet DrawerContentComponent = class DrawerContentComponent {\n constructor() {\n this.hostClasses = true;\n }\n};\nDrawerContentComponent.ɵfac = function DrawerContentComponent_Factory(t) { return new (t || DrawerContentComponent)(); };\nDrawerContentComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DrawerContentComponent, selectors: [[\"kendo-drawer-content\"]], hostVars: 2, hostBindings: function DrawerContentComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-drawer-content\", ctx.hostClasses);\n } }, ngContentSelectors: _c7, decls: 1, vars: 0, template: function DrawerContentComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵprojection(0);\n } }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-drawer-content'),\n __metadata(\"design:type\", Boolean)\n], DrawerContentComponent.prototype, \"hostClasses\", void 0);\nDrawerContentComponent = __decorate([ __metadata(\"design:paramtypes\", [])\n], DrawerContentComponent);\n\n/**\n * Represents a template that defines the content of the whole Step.\n * To define the template, nest an `` tag\n * with the `kendoStepperStepTemplate` directive inside the `` tag.\n */\nlet StepperStepTemplateDirective = class StepperStepTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nStepperStepTemplateDirective.ɵfac = function StepperStepTemplateDirective_Factory(t) { return new (t || StepperStepTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nStepperStepTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: StepperStepTemplateDirective, selectors: [[\"\", \"kendoStepperStepTemplate\", \"\"]] });\nStepperStepTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], StepperStepTemplateDirective);\n\n/**\n * Represents a template that defines the content of the Step label.\n * To define the template, nest an `` tag\n * with the `kendoStepperLabelTemplate` directive inside the `` tag.\n */\nlet StepperLabelTemplateDirective = class StepperLabelTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nStepperLabelTemplateDirective.ɵfac = function StepperLabelTemplateDirective_Factory(t) { return new (t || StepperLabelTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nStepperLabelTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: StepperLabelTemplateDirective, selectors: [[\"\", \"kendoStepperLabelTemplate\", \"\"]] });\nStepperLabelTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], StepperLabelTemplateDirective);\n\n/**\n * Represents a template that defines the content of the Step indicator.\n * To define the template, nest an `` tag\n * with the `kendoStepperIndicatorTemplate` directive inside the `` tag.\n */\nlet StepperIndicatorTemplateDirective = class StepperIndicatorTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nStepperIndicatorTemplateDirective.ɵfac = function StepperIndicatorTemplateDirective_Factory(t) { return new (t || StepperIndicatorTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nStepperIndicatorTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: StepperIndicatorTemplateDirective, selectors: [[\"\", \"kendoStepperIndicatorTemplate\", \"\"]] });\nStepperIndicatorTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], StepperIndicatorTemplateDirective);\n\n/**\n * Arguments for the `activate` event of the Stepper.\n */\nclass StepperActivateEvent extends PreventableEvent$1 {\n}\n\nconst DEFAULT_CURRENT_STEP = 0;\nconst handlers = {};\nhandlers[Keys.ArrowLeft] = 'left';\nhandlers[Keys.ArrowRight] = 'right';\nhandlers[Keys.ArrowUp] = 'up';\nhandlers[Keys.ArrowDown] = 'down';\nhandlers[Keys.Home] = 'home';\nhandlers[Keys.End] = 'end';\nhandlers[Keys.Enter] = 'enter';\nhandlers[Keys.Space] = 'enter';\nconst handlersRTL = Object.assign({}, handlers);\nhandlersRTL[Keys.ArrowLeft] = 'right';\nhandlersRTL[Keys.ArrowRight] = 'left';\n/**\n * @hidden\n */\nlet StepperService = class StepperService {\n constructor(localization, ngZone, changeDetector) {\n this.localization = localization;\n this.ngZone = ngZone;\n this.changeDetector = changeDetector;\n this.currentStep = DEFAULT_CURRENT_STEP;\n this.triggerValidation = new EventEmitter();\n this.focusedStepChange = new EventEmitter();\n }\n get handlers() {\n return this.localization.rtl ? handlersRTL : handlers;\n }\n emit(event, eventArgs) {\n const stepper = this.owner;\n if (hasObservers(stepper[event])) {\n stepper[event].emit(eventArgs);\n }\n return eventArgs.isDefaultPrevented();\n }\n onActivate(currentIdx, originalEvent) {\n const eventArgs = new StepperActivateEvent({\n index: currentIdx,\n step: this.owner.steps[currentIdx],\n originalEvent: originalEvent,\n sender: this.owner\n });\n this.ngZone.run(() => {\n if (!this.emit('activate', eventArgs)) {\n this.currentStep = currentIdx;\n this.owner['currentStepChange'].emit(currentIdx);\n this.changeDetector.detectChanges();\n }\n });\n }\n validateSteps() {\n this.triggerValidation.emit();\n }\n keydown(e) {\n const current = this.focusedStep || this.currentStep;\n const handler = this.handlers[e.keyCode];\n if (!isPresent(current)) {\n return;\n }\n if (handler) {\n e.preventDefault();\n this[handler](e);\n }\n }\n left() {\n if (!this.isHorizontal) {\n return;\n }\n this.focusPrevStep();\n }\n right() {\n if (!this.isHorizontal) {\n return;\n }\n this.focusNextStep();\n }\n up() {\n if (this.isHorizontal) {\n return;\n }\n this.focusPrevStep();\n }\n down() {\n if (this.isHorizontal) {\n return;\n }\n this.focusNextStep();\n }\n home() {\n this.focusedStep = 0;\n this.focusedStepChange.emit();\n }\n end() {\n this.focusedStep = this.owner.steps.length - 1;\n this.focusedStepChange.emit();\n }\n enter(event) {\n if (this.focusedStep === this.currentStep) {\n return;\n }\n if (this.isStepDisabled(this.focusedStep)) {\n return;\n }\n if (this.owner.linear && this.isPrevOrNextStep(this.focusedStep) === false) {\n return;\n }\n this.onActivate(this.focusedStep, event);\n }\n focus(focusedIdx) {\n this.focusedStep = focusedIdx;\n }\n focusNextStep() {\n if (this.focusedStep < this.owner.steps.length) {\n this.focusedStep += 1;\n this.focusedStepChange.emit();\n }\n }\n focusPrevStep() {\n if (this.focusedStep > 0) {\n this.focusedStep -= 1;\n this.focusedStepChange.emit();\n }\n }\n isStepDisabled(index) {\n return this.owner.steps[index].disabled;\n }\n isPrevOrNextStep(index) {\n return index === this.currentStep + 1 || index === this.currentStep - 1;\n }\n get isHorizontal() {\n return this.owner.orientation === 'horizontal';\n }\n};\nStepperService.ɵfac = function StepperService_Factory(t) { return new (t || StepperService)(ɵngcc0.ɵɵinject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵinject(ɵngcc0.NgZone), ɵngcc0.ɵɵinject(ɵngcc0.ChangeDetectorRef)); };\nStepperService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: StepperService, factory: function (t) { return StepperService.ɵfac(t); } });\nStepperService = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService,\n NgZone,\n ChangeDetectorRef])\n], StepperService);\n\nconst DEFAULT_ANIMATION_DURATION = 400;\n/**\n * Represents the [Kendo UI Stepper component for Angular]({% slug overview_stepper %}).\n *\n * @example\n * ```ts-preview\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n * class AppComponent {\n * public steps: Array = [\n * { label: 'Step One' }, { label: 'Step Two' }, { label: 'Step Three' }\n * ];\n * }\n * ```\n */\nlet StepperComponent = class StepperComponent {\n constructor(renderer, elem, localization, stepperService) {\n this.renderer = renderer;\n this.elem = elem;\n this.localization = localization;\n this.stepperService = stepperService;\n this.hostClasses = true;\n this.ariaRole = 'navigation';\n this.displayStyle = 'grid';\n /**\n * Specifies the type of the steps in the Stepper.\n *\n * The possible values are:\n * * (Default) `indicator`\n * * `label`\n * * `full`\n */\n this.stepType = 'indicator';\n /**\n * Specifies the linear flow of the Stepper.\n *\n * @default true\n */\n this.linear = true;\n /**\n * Specifies the orientation of the Stepper\n * ([see example]({% slug orientation_stepper %})).\n *\n * The possible values are:\n * * (Default) `horizontal`\n * * `vertical`\n */\n this.orientation = 'horizontal';\n /**\n * Specifies the duration of the progress indicator animation in milliseconds. Defaults to `400ms`.\n *\n * The possible values are:\n * * Boolean\n * * (Default) `true`\n * * false\n * * Number\n */\n this.animation = true;\n /**\n * Fires when a step is about to be activated. This event is preventable.\n */\n this.activate = new EventEmitter();\n /**\n * Fires when the `currentStep` property of the component was updated.\n * Used to provide a two-way binding for the `currentStep` property.\n */\n this.currentStepChange = new EventEmitter();\n this._steps = [];\n this.dynamicRTLSubscription = this.localization.changes.subscribe(({ rtl }) => {\n this.direction = rtl ? 'rtl' : 'ltr';\n });\n this.stepperService.owner = this;\n }\n get linearClass() {\n return this.linear;\n }\n /**\n * The index of the current step.\n */\n set currentStep(value) {\n this.stepperService.currentStep = value;\n }\n get currentStep() {\n return this.stepperService.currentStep;\n }\n /**\n * The collection of steps that will be rendered in the Stepper.\n * ([see example]({% slug step_appearance_stepper %}))\n */\n set steps(steps) {\n if (isPresent(steps) && steps.length > 0) {\n this._steps = steps;\n }\n }\n get steps() {\n return this._steps;\n }\n ngOnInit() {\n this.applyHostStyling();\n }\n ngOnChanges(changes) {\n if (changes.steps && !changes.steps.firstChange) {\n this.applyHostStyling();\n }\n if (changes.orientation) {\n this.resetHostStyling();\n this.applyHostStyling();\n }\n }\n ngOnDestroy() {\n if (this.dynamicRTLSubscription) {\n this.dynamicRTLSubscription.unsubscribe();\n }\n }\n /**\n * Manually triggers the validity check configured by the [isValid]({% slug api_layout_stepperstep %}#toc-isvalid) property of the steps ([see example]({% slug step_validation_stepper %}#toc-triggering-the-validation)).\n *\n * Steps that have their [validate]({% slug api_layout_stepperstep %}#toc-validate) property set to `false`, will not be validated.\n */\n validateSteps() {\n this.stepperService.validateSteps();\n }\n applyHostStyling() {\n const stepFramesStyle = this.orientation === 'horizontal' ? 'grid-template-columns' : 'grid-template-rows';\n const stepFramesValue = `repeat(${this.steps.length * 2}, 1fr)`;\n this.renderer.setStyle(this.elem.nativeElement, stepFramesStyle, stepFramesValue);\n }\n resetHostStyling() {\n this.renderer.removeStyle(this.elem.nativeElement, 'grid-template-columns');\n this.renderer.removeStyle(this.elem.nativeElement, 'grid-template-rows');\n }\n /**\n * @hidden\n */\n get progressAnimation() {\n return { duration: this.animationDuration };\n }\n /**\n * @hidden\n */\n get animationDuration() {\n if (typeof this.animation === 'number') {\n return this.animation;\n }\n if (typeof this.animation === 'boolean' && this.animation) {\n return DEFAULT_ANIMATION_DURATION;\n }\n return 0;\n }\n /**\n * @hidden\n */\n get stepsListStyling() {\n if (this.orientation === 'horizontal') {\n return { 'grid-column-start': 1, 'grid-column-end': -1 };\n }\n return { 'grid-row-start': 1, 'grid-row-end': -1 };\n }\n /**\n * @hidden\n */\n get progressBarStyling() {\n if (this.orientation === 'horizontal') {\n return {\n 'grid-column-start': 2,\n 'grid-column-end': this.steps.length * 2\n };\n }\n return {\n 'grid-row-start': 2,\n 'grid-row-end': this.steps.length * 2\n };\n }\n /***\n * @hidden\n */\n get isHorizontal() {\n return this.stepperService.isHorizontal;\n }\n};\nStepperComponent.ɵfac = function StepperComponent_Factory(t) { return new (t || StepperComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(StepperService)); };\nStepperComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: StepperComponent, selectors: [[\"kendo-stepper\"]], contentQueries: function StepperComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, StepperStepTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, StepperLabelTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, StepperIndicatorTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.stepTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.labelTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.indicatorTemplate = _t.first);\n } }, hostVars: 10, hostBindings: function StepperComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"role\", ctx.ariaRole)(\"dir\", ctx.direction);\n ɵngcc0.ɵɵstyleProp(\"display\", ctx.displayStyle);\n ɵngcc0.ɵɵclassProp(\"k-widget\", ctx.hostClasses)(\"k-stepper\", ctx.hostClasses)(\"k-stepper-linear\", ctx.linearClass);\n } }, inputs: { stepType: \"stepType\", linear: \"linear\", orientation: \"orientation\", animation: \"animation\", currentStep: \"currentStep\", steps: \"steps\", successIcon: \"successIcon\", errorIcon: \"errorIcon\" }, outputs: { activate: \"activate\", currentStepChange: \"currentStepChange\" }, exportAs: [\"kendoStepper\"], features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n StepperService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.stepper'\n }\n ]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 3, vars: 16, consts: function () { let i18n_17; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text for the optional segment of the step label\n * @meaning kendo.stepper.optional\n */\n const MSG_EXTERNAL_9222129954657106830$$DIST_FESM2015_INDEX_JS_18 = goog.getMsg(\"Optional\");\n i18n_17 = MSG_EXTERNAL_9222129954657106830$$DIST_FESM2015_INDEX_JS_18;\n }\n else {\n i18n_17 = $localize `:kendo.stepper.optional|The text for the optional segment of the step label␟5662ca90a1b7d36b2f55d6e21c0f4f7e166291af␟9222129954657106830:Optional`;\n } return [[\"kendoStepperLocalizedMessages\", \"\", \"optional\", i18n_17], [\"kendoStepperList\", \"\", 1, \"k-step-list\", 3, \"stepType\", \"linear\", \"orientation\", \"steps\", \"currentStep\", \"successIcon\", \"errorIcon\", \"indicatorTemplate\", \"labelTemplate\", \"stepTemplate\", \"ngStyle\"], [3, \"animation\", \"max\", \"label\", \"orientation\", \"reverse\", \"value\", \"ngStyle\", 4, \"ngIf\"], [3, \"animation\", \"max\", \"label\", \"orientation\", \"reverse\", \"value\", \"ngStyle\"]]; }, template: function StepperComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 0);\n ɵngcc0.ɵɵelement(1, \"ol\", 1);\n ɵngcc0.ɵɵtemplate(2, StepperComponent_kendo_progressbar_2_Template, 1, 8, \"kendo-progressbar\", 2);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"k-step-list-horizontal\", ctx.isHorizontal)(\"k-step-list-vertical\", !ctx.isHorizontal);\n ɵngcc0.ɵɵproperty(\"stepType\", ctx.stepType)(\"linear\", ctx.linear)(\"orientation\", ctx.orientation)(\"steps\", ctx.steps)(\"currentStep\", ctx.currentStep)(\"successIcon\", ctx.successIcon)(\"errorIcon\", ctx.errorIcon)(\"indicatorTemplate\", ctx.indicatorTemplate == null ? null : ctx.indicatorTemplate.templateRef)(\"labelTemplate\", ctx.labelTemplate == null ? null : ctx.labelTemplate.templateRef)(\"stepTemplate\", ctx.stepTemplate == null ? null : ctx.stepTemplate.templateRef)(\"ngStyle\", ctx.stepsListStyling);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.steps.length > 0);\n } }, directives: function () { return [LocalizedStepperMessagesDirective, StepperListComponent, ɵngcc1.NgStyle, ɵngcc1.NgIf, ɵngcc5.ProgressBarComponent]; }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-widget'),\n HostBinding('class.k-stepper'),\n __metadata(\"design:type\", Boolean)\n], StepperComponent.prototype, \"hostClasses\", void 0);\n__decorate([\n HostBinding('class.k-stepper-linear'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], StepperComponent.prototype, \"linearClass\", null);\n__decorate([\n HostBinding('attr.role'),\n __metadata(\"design:type\", String)\n], StepperComponent.prototype, \"ariaRole\", void 0);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String)\n], StepperComponent.prototype, \"direction\", void 0);\n__decorate([\n HostBinding('style.display'),\n __metadata(\"design:type\", String)\n], StepperComponent.prototype, \"displayStyle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], StepperComponent.prototype, \"stepType\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], StepperComponent.prototype, \"linear\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], StepperComponent.prototype, \"orientation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], StepperComponent.prototype, \"currentStep\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], StepperComponent.prototype, \"steps\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], StepperComponent.prototype, \"successIcon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], StepperComponent.prototype, \"errorIcon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], StepperComponent.prototype, \"animation\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], StepperComponent.prototype, \"activate\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], StepperComponent.prototype, \"currentStepChange\", void 0);\n__decorate([\n ContentChild(StepperStepTemplateDirective, { static: false }),\n __metadata(\"design:type\", StepperStepTemplateDirective)\n], StepperComponent.prototype, \"stepTemplate\", void 0);\n__decorate([\n ContentChild(StepperLabelTemplateDirective, { static: false }),\n __metadata(\"design:type\", StepperLabelTemplateDirective)\n], StepperComponent.prototype, \"labelTemplate\", void 0);\n__decorate([\n ContentChild(StepperIndicatorTemplateDirective, { static: false }),\n __metadata(\"design:type\", StepperIndicatorTemplateDirective)\n], StepperComponent.prototype, \"indicatorTemplate\", void 0);\nStepperComponent = __decorate([ __metadata(\"design:paramtypes\", [Renderer2,\n ElementRef,\n LocalizationService,\n StepperService])\n], StepperComponent);\n\n/**\n * @hidden\n */\nclass StepperMessages extends ComponentMessages {\n}\nStepperMessages.ɵfac = /*@__PURE__*/ function () { let ɵStepperMessages_BaseFactory; return function StepperMessages_Factory(t) { return (ɵStepperMessages_BaseFactory || (ɵStepperMessages_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(StepperMessages)))(t || StepperMessages); }; }();\nStepperMessages.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: StepperMessages, inputs: { optional: \"optional\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], StepperMessages.prototype, \"optional\", void 0);\n\nvar StepperCustomMessagesComponent_1;\n/**\n * Custom component messages override default component messages\n * ([see example]({% slug rtl_layout %})).\n */\nlet StepperCustomMessagesComponent = StepperCustomMessagesComponent_1 = class StepperCustomMessagesComponent extends StepperMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n};\nStepperCustomMessagesComponent.ɵfac = function StepperCustomMessagesComponent_Factory(t) { return new (t || StepperCustomMessagesComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nStepperCustomMessagesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: StepperCustomMessagesComponent, selectors: [[\"kendo-stepper-messages\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: StepperMessages,\n useExisting: forwardRef(() => StepperCustomMessagesComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function StepperCustomMessagesComponent_Template(rf, ctx) { }, encapsulation: 2 });\nStepperCustomMessagesComponent = StepperCustomMessagesComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], StepperCustomMessagesComponent);\n\nvar LocalizedStepperMessagesDirective_1;\n/**\n * @hidden\n */\nlet LocalizedStepperMessagesDirective = LocalizedStepperMessagesDirective_1 = class LocalizedStepperMessagesDirective extends StepperMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n};\nLocalizedStepperMessagesDirective.ɵfac = function LocalizedStepperMessagesDirective_Factory(t) { return new (t || LocalizedStepperMessagesDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nLocalizedStepperMessagesDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LocalizedStepperMessagesDirective, selectors: [[\"\", \"kendoStepperLocalizedMessages\", \"\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: StepperMessages,\n useExisting: forwardRef(() => LocalizedStepperMessagesDirective_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature] });\nLocalizedStepperMessagesDirective = LocalizedStepperMessagesDirective_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], LocalizedStepperMessagesDirective);\n\n/**\n * Displays images, icons or initials representing people or other entities.\n */\nlet AvatarComponent = class AvatarComponent {\n constructor(renderer, element) {\n this.renderer = renderer;\n this.element = element;\n this.hostClass = true;\n /**\n * Sets a border to the avatar.\n */\n this.border = false;\n this._themeColor = 'primary';\n this._size = 'medium';\n this._fillMode = 'solid';\n this._rounded = 'full';\n validatePackage(packageMetadata);\n }\n /**\n * @hidden\n */\n get borderClass() {\n return this.border;\n }\n /**\n * @hidden\n */\n get flexBasis() {\n return this.width;\n }\n /**\n * Sets the shape for the avatar.\n * @hidden\n */\n set shape(shape) {\n this.rounded = mapShapeToRounded(shape);\n }\n /**\n * Specifies the size of the avatar\n * ([see example]({% slug appearance_avatar %}#toc-size)).\n *\n * The possible values are:\n * * `small`\n * * `medium` (Default)\n * * `large`\n *\n */\n set size(size) {\n if (size !== this._size) {\n this.handleClasses('size', size);\n this._size = size === null ? null : size || 'medium';\n }\n }\n get size() {\n return this._size;\n }\n /**\n * Specifies the rounded styling of the avatar\n * ([see example]({% slug appearance_avatar %}#toc-rounded-corners)).\n *\n * The possible values are:\n * * `small`\n * * `medium`\n * * `large`\n * * `full` (Default)\n * * null\n *\n */\n set rounded(rounded) {\n if (rounded !== this._rounded) {\n this.handleClasses('rounded', rounded);\n this._rounded = rounded === null ? null : rounded || 'full';\n }\n }\n get rounded() {\n return this._rounded;\n }\n /**\n * Specifies the theme color of the avatar.\n * The theme color will be applied as background and border color, while also amending the text color accordingly.\n *\n * The possible values are:\n * * `base`— Applies the base coloring value.\n * * `primary` (Default)—Applies coloring based on primary theme color.\n * * `secondary`—Applies coloring based on secondary theme color.\n * * `tertiary`— Applies coloring based on tertiary theme color.\n * * `info`—Applies coloring based on info theme color.\n * * `success`— Applies coloring based on success theme color.\n * * `warning`— Applies coloring based on warning theme color.\n * * `error`— Applies coloring based on error theme color.\n * * `dark`— Applies coloring based on dark theme color.\n * * `light`— Applies coloring based on light theme color.\n * * `inverse`— Applies coloring based on inverted theme color.\n */\n set themeColor(themeColor) {\n if (themeColor !== this._themeColor) {\n this._themeColor = themeColor === null ? null : (themeColor || 'primary');\n this.handleFillModeAndThemeColorClasses(this.fillMode, this.themeColor);\n }\n }\n get themeColor() {\n return this._themeColor;\n }\n /**\n * Specifies the appearance fill style of the avatar.\n *\n * The possible values are:\n * * `solid` (Default)\n * * `outline`\n * * null\n *\n */\n set fillMode(fillMode) {\n if (fillMode !== this.fillMode) {\n this._fillMode = fillMode === null ? null : (fillMode || 'solid');\n this.handleFillModeAndThemeColorClasses(this.fillMode, this.themeColor);\n }\n }\n get fillMode() {\n return this._fillMode;\n }\n /**\n * Specifies the appearance fill style of the avatar.\n * Deprecated, left for backward compatibility.\n *\n * @hidden\n */\n set fill(fillMode) {\n this.fillMode = fillMode;\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 ngOnInit() {\n this.verifyProperties();\n }\n ngAfterViewInit() {\n const stylingInputs = ['size', 'rounded'];\n stylingInputs.forEach(input => {\n this.handleClasses(input, this[input]);\n });\n this.handleFillModeAndThemeColorClasses(this.fillMode, this.themeColor);\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 handleClasses(styleType, value) {\n const elem = this.element.nativeElement;\n const classes = getStylingClasses('avatar', styleType, this[styleType], value);\n if (classes.toRemove) {\n this.renderer.removeClass(elem, classes.toRemove);\n }\n if (classes.toAdd) {\n this.renderer.addClass(elem, classes.toAdd);\n }\n }\n handleFillModeAndThemeColorClasses(fill, themeColor) {\n const wrapperElement = this.element.nativeElement;\n // remove existing fill and theme color classes\n const currentClasses = Array.from(wrapperElement.classList);\n const classesToRemove = currentClasses.filter(cl => {\n return cl.startsWith('k-avatar-solid') || cl.startsWith('k-avatar-outline');\n });\n classesToRemove.forEach((cl => this.renderer.removeClass(wrapperElement, cl)));\n // add fill if needed\n if (fill !== null) {\n this.renderer.addClass(wrapperElement, `k-avatar-${fill}`);\n }\n // add theme color class if fill and theme color\n if (fill !== null && themeColor !== null) {\n this.renderer.addClass(wrapperElement, `k-avatar-${fill}-${themeColor}`);\n }\n }\n};\nAvatarComponent.ɵfac = function AvatarComponent_Factory(t) { return new (t || AvatarComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nAvatarComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: AvatarComponent, selectors: [[\"kendo-avatar\"]], hostVars: 10, hostBindings: function AvatarComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"flex-basis\", ctx.flexBasis)(\"width\", ctx.avatarWidth)(\"height\", ctx.avatarHeight);\n ɵngcc0.ɵɵclassProp(\"k-avatar\", ctx.hostClass)(\"k-avatar-bordered\", ctx.borderClass);\n } }, inputs: { border: \"border\", shape: \"shape\", rounded: \"rounded\", size: \"size\", themeColor: \"themeColor\", fillMode: \"fillMode\", fill: \"fill\", iconClass: \"iconClass\", width: \"width\", height: \"height\", cssStyle: \"cssStyle\", initials: \"initials\", icon: \"icon\", imageSrc: \"imageSrc\" }, ngContentSelectors: _c7, decls: 4, vars: 4, consts: [[4, \"ngIf\"], [1, \"k-avatar-image\"], [3, \"src\", \"ngStyle\"], [1, \"k-avatar-text\", 3, \"ngStyle\"], [1, \"k-avatar-icon\", 3, \"ngStyle\", \"ngClass\"]], template: function AvatarComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵtemplate(0, AvatarComponent_ng_content_0_Template, 1, 0, \"ng-content\", 0);\n ɵngcc0.ɵɵtemplate(1, AvatarComponent_ng_container_1_Template, 3, 2, \"ng-container\", 0);\n ɵngcc0.ɵɵtemplate(2, AvatarComponent_ng_container_2_Template, 3, 2, \"ng-container\", 0);\n ɵngcc0.ɵɵtemplate(3, AvatarComponent_ng_container_3_Template, 2, 2, \"ng-container\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.customAvatar);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.imageSrc);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.initials);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.icon || ctx.iconClass);\n } }, directives: [ɵngcc1.NgIf, ɵngcc1.NgStyle, ɵngcc1.NgClass], encapsulation: 2 });\n__decorate([\n HostBinding('class.k-avatar'),\n __metadata(\"design:type\", Boolean)\n], AvatarComponent.prototype, \"hostClass\", void 0);\n__decorate([\n HostBinding('class.k-avatar-bordered'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], AvatarComponent.prototype, \"borderClass\", null);\n__decorate([\n HostBinding('style.flexBasis'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], AvatarComponent.prototype, \"flexBasis\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], AvatarComponent.prototype, \"shape\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], AvatarComponent.prototype, \"size\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], AvatarComponent.prototype, \"rounded\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], AvatarComponent.prototype, \"themeColor\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], AvatarComponent.prototype, \"fillMode\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], AvatarComponent.prototype, \"fill\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AvatarComponent.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AvatarComponent.prototype, \"iconClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AvatarComponent.prototype, \"width\", void 0);\n__decorate([\n HostBinding('style.width'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], AvatarComponent.prototype, \"avatarWidth\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AvatarComponent.prototype, \"height\", void 0);\n__decorate([\n HostBinding('style.height'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], AvatarComponent.prototype, \"avatarHeight\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AvatarComponent.prototype, \"cssStyle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AvatarComponent.prototype, \"initials\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AvatarComponent.prototype, \"icon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AvatarComponent.prototype, \"imageSrc\", void 0);\nAvatarComponent = __decorate([ __metadata(\"design:paramtypes\", [Renderer2, ElementRef])\n], AvatarComponent);\n\n/**\n * Represents the [Kendo UI Card component for Angular]({% slug overview_card %})\n */\nlet CardComponent = class 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 validatePackage(packageMetadata);\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.ɵfac = function CardComponent_Factory(t) { return new (t || CardComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nCardComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CardComponent, selectors: [[\"kendo-card\"]], hostVars: 11, hostBindings: function CardComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"dir\", ctx.direction);\n ɵngcc0.ɵɵstyleProp(\"width\", ctx.widthStyle);\n ɵngcc0.ɵɵclassProp(\"k-widget\", ctx.hostClass)(\"k-card\", ctx.hostClass)(\"k-card-vertical\", ctx.vertical)(\"k-card-horizontal\", ctx.horizontal);\n } }, inputs: { orientation: \"orientation\", width: \"width\" }, features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.card.component'\n }\n ])], ngContentSelectors: _c7, decls: 1, vars: 0, template: function CardComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵprojection(0);\n } }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-widget'),\n HostBinding('class.k-card'),\n __metadata(\"design:type\", Boolean)\n], CardComponent.prototype, \"hostClass\", void 0);\n__decorate([\n HostBinding('style.width'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], CardComponent.prototype, \"widthStyle\", null);\n__decorate([\n HostBinding('class.k-card-vertical'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], CardComponent.prototype, \"vertical\", null);\n__decorate([\n HostBinding('class.k-card-horizontal'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], CardComponent.prototype, \"horizontal\", null);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String)\n], CardComponent.prototype, \"direction\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CardComponent.prototype, \"orientation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CardComponent.prototype, \"width\", void 0);\nCardComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], CardComponent);\n\n/**\n * Specifies the content in the Card header.\n */\nlet CardHeaderComponent = class CardHeaderComponent {\n /**\n * Specifies the content in the Card header.\n */\n constructor() {\n this.hostClass = true;\n }\n};\nCardHeaderComponent.ɵfac = function CardHeaderComponent_Factory(t) { return new (t || CardHeaderComponent)(); };\nCardHeaderComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CardHeaderComponent, selectors: [[\"kendo-card-header\"]], hostVars: 2, hostBindings: function CardHeaderComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-card-header\", ctx.hostClass);\n } }, ngContentSelectors: _c7, decls: 1, vars: 0, template: function CardHeaderComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵprojection(0);\n } }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-card-header'),\n __metadata(\"design:type\", Boolean)\n], CardHeaderComponent.prototype, \"hostClass\", void 0);\n\n/**\n * Specifies the content in the Card body.\n */\nlet CardBodyComponent = class CardBodyComponent {\n /**\n * Specifies the content in the Card body.\n */\n constructor() {\n this.hostClass = true;\n }\n};\nCardBodyComponent.ɵfac = function CardBodyComponent_Factory(t) { return new (t || CardBodyComponent)(); };\nCardBodyComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CardBodyComponent, selectors: [[\"kendo-card-body\"]], hostVars: 2, hostBindings: function CardBodyComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-card-body\", ctx.hostClass);\n } }, ngContentSelectors: _c7, decls: 1, vars: 0, template: function CardBodyComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵprojection(0);\n } }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-card-body'),\n __metadata(\"design:type\", Boolean)\n], CardBodyComponent.prototype, \"hostClass\", void 0);\n\n/**\n * Specifies the content in the Card footer.\n */\nlet CardFooterComponent = class CardFooterComponent {\n /**\n * Specifies the content in the Card footer.\n */\n constructor() {\n this.hostClass = true;\n }\n};\nCardFooterComponent.ɵfac = function CardFooterComponent_Factory(t) { return new (t || CardFooterComponent)(); };\nCardFooterComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CardFooterComponent, selectors: [[\"kendo-card-footer\"]], hostVars: 2, hostBindings: function CardFooterComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-card-footer\", ctx.hostClass);\n } }, ngContentSelectors: _c7, decls: 1, vars: 0, template: function CardFooterComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵprojection(0);\n } }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-card-footer'),\n __metadata(\"design:type\", Boolean)\n], CardFooterComponent.prototype, \"hostClass\", void 0);\n\n/**\n * Specifies the action buttons of the Card.\n * * ([see example]({% slug actions_card %})).\n */\nlet CardActionsComponent = class CardActionsComponent {\n /**\n * Specifies the action buttons of the Card.\n * * ([see example]({% slug actions_card %})).\n */\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.ɵfac = function CardActionsComponent_Factory(t) { return new (t || CardActionsComponent)(); };\nCardActionsComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CardActionsComponent, selectors: [[\"kendo-card-actions\"]], hostVars: 14, hostBindings: function CardActionsComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-card-actions\", ctx.hostClass)(\"k-card-actions-stretched\", ctx.stretchedClass)(\"k-card-actions-start\", ctx.startClass)(\"k-card-actions-end\", ctx.endClass)(\"k-card-actions-center\", ctx.centerClass)(\"k-card-actions-vertical\", ctx.verticalClass)(\"k-card-actions-horizontal\", ctx.horizontalClass);\n } }, inputs: { orientation: \"orientation\", layout: \"layout\", actions: \"actions\" }, outputs: { action: \"action\" }, ngContentSelectors: _c7, decls: 3, vars: 3, consts: [[4, \"ngIf\"], [\"type\", \"button\", \"class\", \"k-button\", 3, \"k-primary\", \"k-flat\", \"click\", 4, \"ngFor\", \"ngForOf\"], [\"type\", \"button\", 1, \"k-button\", 3, \"click\"], [3, \"ngTemplateOutlet\"]], template: function CardActionsComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵtemplate(0, CardActionsComponent_ng_content_0_Template, 1, 0, \"ng-content\", 0);\n ɵngcc0.ɵɵtemplate(1, CardActionsComponent_ng_container_1_Template, 2, 1, \"ng-container\", 0);\n ɵngcc0.ɵɵtemplate(2, CardActionsComponent_2_Template, 1, 1, null, 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.actions);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.actionTemplate());\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.actionTemplate());\n } }, directives: [ɵngcc1.NgIf, ɵngcc1.NgForOf, ɵngcc1.NgTemplateOutlet], encapsulation: 2 });\n__decorate([\n HostBinding('class.k-card-actions'),\n __metadata(\"design:type\", Boolean)\n], CardActionsComponent.prototype, \"hostClass\", void 0);\n__decorate([\n HostBinding('class.k-card-actions-stretched'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], CardActionsComponent.prototype, \"stretchedClass\", null);\n__decorate([\n HostBinding('class.k-card-actions-start'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], CardActionsComponent.prototype, \"startClass\", null);\n__decorate([\n HostBinding('class.k-card-actions-end'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], CardActionsComponent.prototype, \"endClass\", null);\n__decorate([\n HostBinding('class.k-card-actions-center'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], CardActionsComponent.prototype, \"centerClass\", null);\n__decorate([\n HostBinding('class.k-card-actions-vertical'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], CardActionsComponent.prototype, \"verticalClass\", null);\n__decorate([\n HostBinding('class.k-card-actions-horizontal'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], CardActionsComponent.prototype, \"horizontalClass\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CardActionsComponent.prototype, \"orientation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CardActionsComponent.prototype, \"layout\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CardActionsComponent.prototype, \"actions\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], CardActionsComponent.prototype, \"action\", void 0);\n\n/**\n * Specifies a separator in the content of the Card.\n */\nlet CardSeparatorDirective = class CardSeparatorDirective {\n /**\n * Specifies a separator in the content of the Card.\n */\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.ɵfac = function CardSeparatorDirective_Factory(t) { return new (t || CardSeparatorDirective)(); };\nCardSeparatorDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CardSeparatorDirective, selectors: [[\"\", \"kendoCardSeparator\", \"\"]], hostVars: 8, hostBindings: function CardSeparatorDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"color\", ctx.color);\n ɵngcc0.ɵɵclassProp(\"k-card-separator\", ctx.hostClass)(\"k-separator-vertical\", ctx.verticalClass)(\"k-separator-horizontal\", ctx.horizontalClass);\n } }, inputs: { orientation: \"orientation\", color: \"color\" } });\n__decorate([\n HostBinding('class.k-card-separator'),\n __metadata(\"design:type\", Boolean)\n], CardSeparatorDirective.prototype, \"hostClass\", void 0);\n__decorate([\n HostBinding('class.k-separator-vertical'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], CardSeparatorDirective.prototype, \"verticalClass\", null);\n__decorate([\n HostBinding('class.k-separator-horizontal'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], CardSeparatorDirective.prototype, \"horizontalClass\", null);\n__decorate([\n HostBinding('style.color'),\n Input(),\n __metadata(\"design:type\", String)\n], CardSeparatorDirective.prototype, \"color\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CardSeparatorDirective.prototype, \"orientation\", void 0);\n\n/**\n * Specifies the text and styles for the title of the Card.\n */\nlet CardTitleDirective = class CardTitleDirective {\n /**\n * Specifies the text and styles for the title of the Card.\n */\n constructor() {\n this.hostClass = true;\n }\n};\nCardTitleDirective.ɵfac = function CardTitleDirective_Factory(t) { return new (t || CardTitleDirective)(); };\nCardTitleDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CardTitleDirective, selectors: [[\"\", \"kendoCardTitle\", \"\"]], hostVars: 2, hostBindings: function CardTitleDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-card-title\", ctx.hostClass);\n } } });\n__decorate([\n HostBinding('class.k-card-title'),\n __metadata(\"design:type\", Boolean)\n], CardTitleDirective.prototype, \"hostClass\", void 0);\n\n/**\n * Specifies the text and styles for the subtitle of the Card.\n */\nlet CardSubtitleDirective = class CardSubtitleDirective {\n /**\n * Specifies the text and styles for the subtitle of the Card.\n */\n constructor() {\n this.hostClass = true;\n }\n};\nCardSubtitleDirective.ɵfac = function CardSubtitleDirective_Factory(t) { return new (t || CardSubtitleDirective)(); };\nCardSubtitleDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CardSubtitleDirective, selectors: [[\"\", \"kendoCardSubtitle\", \"\"]], hostVars: 2, hostBindings: function CardSubtitleDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-card-subtitle\", ctx.hostClass);\n } } });\n__decorate([\n HostBinding('class.k-card-subtitle'),\n __metadata(\"design:type\", Boolean)\n], CardSubtitleDirective.prototype, \"hostClass\", void 0);\n\n/**\n * Specifies any media that will be displayed and aligned in the Card.\n */\nlet CardMediaDirective = class CardMediaDirective {\n /**\n * Specifies any media that will be displayed and aligned in the Card.\n */\n constructor() {\n this.hostClass = true;\n }\n};\nCardMediaDirective.ɵfac = function CardMediaDirective_Factory(t) { return new (t || CardMediaDirective)(); };\nCardMediaDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CardMediaDirective, selectors: [[\"\", \"kendoCardMedia\", \"\"]], hostVars: 2, hostBindings: function CardMediaDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-card-media\", ctx.hostClass);\n } } });\n__decorate([\n HostBinding('class.k-card-media'),\n __metadata(\"design:type\", Boolean)\n], CardMediaDirective.prototype, \"hostClass\", void 0);\n\n/**\n * The settings of the Card action buttons.\n */\nclass CardAction {\n}\n\n/**\n * Represents a template that defines the content of the ExpansionPanel title.\n * To define the template, nest an `` tag\n * with the `kendoExpansionPanelTitleDirective` directive inside the `` tag.\n * ([see example]({% slug title_expansionpanel %}#toc-title-template)).\n */\nlet ExpansionPanelTitleDirective = class ExpansionPanelTitleDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nExpansionPanelTitleDirective.ɵfac = function ExpansionPanelTitleDirective_Factory(t) { return new (t || ExpansionPanelTitleDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nExpansionPanelTitleDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ExpansionPanelTitleDirective, selectors: [[\"\", \"kendoExpansionPanelTitleDirective\", \"\"]] });\nExpansionPanelTitleDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], ExpansionPanelTitleDirective);\n\n/**\n * @hidden\n */\nfunction expand(duration, height) {\n return [\n style({ overflow: 'hidden', display: 'block', height: 0 }),\n animate(`${duration}ms ease-in`, style({ height: `${height}` }))\n ];\n}\n/**\n * @hidden\n */\nfunction collapse(duration, height) {\n return [\n style({ overflow: 'hidden', height: `${height}` }),\n animate(`${duration}ms ease-in`, style({ overflow: 'hidden', height: 0 }))\n ];\n}\n\n/**\n * Arguments for the `action` event of the ExpansionPanel.\n */\nclass ExpansionPanelActionEvent extends PreventableEvent$1 {\n}\n\nconst DEFAULT_DURATION = 200;\nconst CONTENT_HIDDEN_CLASS = 'k-hidden';\n/**\n * Represents the [Kendo UI ExpansionPanel component for Angular]({% slug overview_expansionpanel %}).\n *\n * @example\n * ```ts-preview\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * There are various theories about the origin of the word Chile.\n * \n * `\n * })\n * class AppComponent {}\n * ```\n */\nlet ExpansionPanelComponent = class ExpansionPanelComponent {\n constructor(renderer, hostElement, ngZone, localizationService, builder) {\n this.renderer = renderer;\n this.hostElement = hostElement;\n this.ngZone = ngZone;\n this.localizationService = localizationService;\n this.builder = builder;\n /**\n * Specifies the primary text in the header of the ExpansionPanel\n * ([see example]({% slug title_expansionpanel %}#toc-title-and-subtitle)).\n */\n this.title = '';\n /**\n * Specifies the secondary text in the header of the ExpansionPanel, which is rendered next to the collapse/expand icon\n * ([see example]({% slug title_expansionpanel %}#toc-title-and-subtitle)).\n */\n this.subtitle = '';\n /**\n * Specifies whether the ExpansionPanel is disabled. If disabled, the ExpansionPanel can be neither expanded nor collapsed\n * ([see example]({% slug disabled_expansionpanel %})).\n *\n * @default false\n */\n this.disabled = false;\n /**\n * Specifies the animation settings of the ExpansionPanel\n * ([see example]({% slug animations_expansionpanel %})).\n *\n * The possible values are:\n * * Boolean\n * * (Default) `true` Numeric values represent duration. Default duration is 200ms.\n * * false\n * * Number\n */\n this.animation = true;\n /**\n * Fires when the `expanded` property of the component is updated.\n * Used to provide a two-way binding for the `expanded` property\n * ([see example]({% slug overview_expansionpanel %}#toc-events)).\n */\n this.expandedChange = new EventEmitter();\n /**\n * Fires when the expanded state of the ExpansionPanel is about to change. This event is preventable\n * ([see example]({% slug overview_expansionpanel %}#toc-events)).\n */\n this.action = new EventEmitter();\n /**\n * Fires when the ExpansionPanel is expanded. If there is animation it will fire when the animation is complete\n * ([see example]({% slug overview_expansionpanel %}#toc-events)).\n */\n this.expand = new EventEmitter();\n /**\n * Fires when the ExpansionPanel is collapsed. If there is animation it will fire when the animation is complete\n * ([see example]({% slug overview_expansionpanel %}#toc-events)).\n */\n this.collapse = new EventEmitter();\n this.hostClass = true;\n this.tabindex = 0;\n /**\n * @hidden\n */\n this.focused = false;\n this.animationEnd = new EventEmitter();\n this.subscriptions = new Subscription();\n this._expanded = false;\n validatePackage(packageMetadata);\n this.direction = localizationService.rtl ? 'rtl' : 'ltr';\n }\n /**\n * Specifies whether the ExpansionPanel is expanded. The property supports two-way binding.\n * ([see example]({% slug interaction_expansionpanel %}#toc-setting-the-initial-state)).\n *\n * @default false\n */\n set expanded(value) {\n if (value === this.expanded) {\n return;\n }\n this._expanded = value;\n if (this.expanded) {\n this.removeContentHiddenClass();\n }\n else {\n this.addContentHiddenClass();\n }\n }\n get expanded() {\n return this._expanded;\n }\n get expandedClass() {\n return this.expanded && !this.disabled;\n }\n get focusClass() {\n return this.focused;\n }\n get disabledClass() {\n return this.disabled;\n }\n /**\n * @hidden\n */\n onComponentBlur() {\n if (this.focused) {\n this.focused = false;\n }\n }\n /**\n * @hidden\n */\n onComponentFocus() {\n if (!this.focused) {\n this.focused = true;\n }\n }\n ngOnInit() {\n this.renderer.removeAttribute(this.hostElement.nativeElement, 'title');\n this.subscriptions = this.localizationService.changes.subscribe(({ rtl }) => { this.direction = rtl ? 'rtl' : 'ltr'; });\n }\n ngAfterViewInit() {\n this.initDomEvents();\n if (!this.expanded) {\n this.renderer.addClass(this.content.nativeElement, CONTENT_HIDDEN_CLASS);\n }\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n /**\n * @hidden\n */\n initDomEvents() {\n if (!this.hostElement) {\n return;\n }\n if (!this.disabled) {\n this.ngZone.runOutsideAngular(() => {\n const nativeElement = this.hostElement.nativeElement;\n this.subscriptions.add(this.renderer.listen(nativeElement, 'keydown', this.keyDownHandler.bind(this)));\n });\n }\n }\n /**\n * @hidden\n */\n keyDownHandler(ev) {\n const isEnterOrSpace = ev.keyCode === Keys.Enter || ev.keyCode === Keys.Space;\n if (!isEnterOrSpace) {\n return;\n }\n if (hasClass(ev.target, 'k-expander')) {\n ev.preventDefault();\n this.ngZone.run(() => {\n this.onHeaderAction();\n });\n }\n }\n /**\n * @hidden\n */\n onHeaderClick(ev) {\n if (!isFocusable(ev.target) && !this.disabled) {\n this.onHeaderAction();\n }\n }\n /**\n * @hidden\n */\n onHeaderAction() {\n this.focused = true;\n const eventArgs = new ExpansionPanelActionEvent();\n eventArgs.action = this.expanded ? 'collapse' : 'expand';\n this.action.emit(eventArgs);\n if (!eventArgs.isDefaultPrevented()) {\n this.setExpanded(!this.expanded);\n if (this.expanded) {\n this.removeContentHiddenClass();\n }\n if (this.animation) {\n this.animateContent();\n return;\n }\n if (!this.expanded) {\n this.addContentHiddenClass();\n }\n this.emitExpandCollapseEvent();\n }\n }\n /**\n * @hidden\n */\n get indicatorClasses() {\n if (this.expanded) {\n return this.collapseIcon ? this.collapseIcon : `k-icon k-i-arrow-chevron-up`;\n }\n else {\n return this.expandIcon ? this.expandIcon : `k-icon k-i-arrow-chevron-down`;\n }\n }\n /**\n * Toggles the visibility of the ExpansionPanel\n * ([see example]({% slug interaction_expansionpanel %}#toc-toggling-the-content)).\n *\n * @param expanded? - Boolean. Specifies, whether the ExpansionPanel 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 this.setExpanded(current);\n if (this.expanded) {\n this.removeContentHiddenClass();\n }\n if (this.animation) {\n this.animateContent();\n return;\n }\n if (!this.expanded) {\n this.addContentHiddenClass();\n }\n this.emitExpandCollapseEvent();\n }\n setExpanded(value) {\n this._expanded = value;\n this.expandedChange.emit(value);\n }\n animateContent() {\n const duration = typeof this.animation === 'boolean' ? DEFAULT_DURATION : this.animation;\n const contentHeight = getComputedStyle(this.content.nativeElement).height;\n const animation = this.expanded ? expand(duration, contentHeight) : collapse(duration, contentHeight);\n const player = this.createPlayer(animation, this.content.nativeElement);\n this.animationEnd.pipe(take(1)).subscribe(() => {\n if (!this.expanded) {\n this.addContentHiddenClass();\n }\n this.emitExpandCollapseEvent();\n });\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 emitExpandCollapseEvent() {\n this[this.expanded ? 'expand' : 'collapse'].emit();\n }\n addContentHiddenClass() {\n this.renderer.addClass(this.content.nativeElement, CONTENT_HIDDEN_CLASS);\n }\n removeContentHiddenClass() {\n this.renderer.removeClass(this.content.nativeElement, CONTENT_HIDDEN_CLASS);\n }\n};\nExpansionPanelComponent.ɵfac = function ExpansionPanelComponent_Factory(t) { return new (t || ExpansionPanelComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc4.AnimationBuilder)); };\nExpansionPanelComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ExpansionPanelComponent, selectors: [[\"kendo-expansionpanel\"]], contentQueries: function ExpansionPanelComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, ExpansionPanelTitleDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.titleTemplate = _t.first);\n } }, viewQuery: function ExpansionPanelComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c19, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.content = _t.first);\n } }, hostVars: 12, hostBindings: function ExpansionPanelComponent_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"blur\", function ExpansionPanelComponent_blur_HostBindingHandler() { return ctx.onComponentBlur(); })(\"focus\", function ExpansionPanelComponent_focus_HostBindingHandler() { return ctx.onComponentFocus(); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"tabindex\", ctx.tabindex)(\"dir\", ctx.direction)(\"aria-expanded\", ctx.expandedClass)(\"aria-disabled\", ctx.disabledClass);\n ɵngcc0.ɵɵclassProp(\"k-expander\", ctx.hostClass)(\"k-expanded\", ctx.expandedClass)(\"k-state-focus\", ctx.focusClass)(\"k-state-disabled\", ctx.disabledClass);\n } }, inputs: { title: \"title\", subtitle: \"subtitle\", disabled: \"disabled\", animation: \"animation\", expanded: \"expanded\", expandIcon: \"expandIcon\", collapseIcon: \"collapseIcon\" }, outputs: { expandedChange: \"expandedChange\", action: \"action\", expand: \"expand\", collapse: \"collapse\" }, exportAs: [\"kendoExpansionPanel\"], features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.expansionpanel'\n }\n ])], ngContentSelectors: _c7, decls: 9, vars: 6, consts: [[3, \"click\"], [4, \"ngIf\"], [1, \"k-expander-indicator\"], [3, \"ngClass\"], [1, \"k-expander-content-wrapper\"], [\"content\", \"\"], [1, \"k-expander-content\"], [\"class\", \"k-expander-title\", 4, \"ngIf\"], [1, \"k-spacer\"], [\"class\", \"k-expander-sub-title\", 4, \"ngIf\"], [1, \"k-expander-title\"], [1, \"k-expander-sub-title\"], [3, \"ngTemplateOutlet\"]], template: function ExpansionPanelComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelementStart(0, \"div\", 0);\n ɵngcc0.ɵɵlistener(\"click\", function ExpansionPanelComponent_Template_div_click_0_listener($event) { return ctx.onHeaderClick($event); });\n ɵngcc0.ɵɵtemplate(1, ExpansionPanelComponent_ng_container_1_Template, 4, 2, \"ng-container\", 1);\n ɵngcc0.ɵɵtemplate(2, ExpansionPanelComponent_2_Template, 1, 1, null, 1);\n ɵngcc0.ɵɵelementStart(3, \"span\", 2);\n ɵngcc0.ɵɵelement(4, \"span\", 3);\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵelementStart(5, \"div\", 4, 5)(7, \"div\", 6);\n ɵngcc0.ɵɵprojection(8);\n ɵngcc0.ɵɵelementEnd()();\n } if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-expander-header\", true);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.titleTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.titleTemplate);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx.indicatorClasses);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵattribute(\"aria-hidden\", !ctx.expanded);\n } }, directives: [ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet, ɵngcc1.NgClass], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ExpansionPanelComponent.prototype, \"title\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ExpansionPanelComponent.prototype, \"subtitle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ExpansionPanelComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], ExpansionPanelComponent.prototype, \"expanded\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ExpansionPanelComponent.prototype, \"expandIcon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ExpansionPanelComponent.prototype, \"collapseIcon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ExpansionPanelComponent.prototype, \"animation\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ExpansionPanelComponent.prototype, \"expandedChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ExpansionPanelComponent.prototype, \"action\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ExpansionPanelComponent.prototype, \"expand\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ExpansionPanelComponent.prototype, \"collapse\", void 0);\n__decorate([\n ContentChild(ExpansionPanelTitleDirective, { static: false }),\n __metadata(\"design:type\", ExpansionPanelTitleDirective)\n], ExpansionPanelComponent.prototype, \"titleTemplate\", void 0);\n__decorate([\n ViewChild('content', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], ExpansionPanelComponent.prototype, \"content\", void 0);\n__decorate([\n HostBinding('class.k-expander'),\n __metadata(\"design:type\", Boolean)\n], ExpansionPanelComponent.prototype, \"hostClass\", void 0);\n__decorate([\n HostBinding('attr.aria-expanded'),\n HostBinding('class.k-expanded'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ExpansionPanelComponent.prototype, \"expandedClass\", null);\n__decorate([\n HostBinding('class.k-state-focus'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ExpansionPanelComponent.prototype, \"focusClass\", null);\n__decorate([\n HostBinding('attr.aria-disabled'),\n HostBinding('class.k-state-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ExpansionPanelComponent.prototype, \"disabledClass\", null);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String)\n], ExpansionPanelComponent.prototype, \"direction\", void 0);\n__decorate([\n HostBinding('attr.tabindex'),\n __metadata(\"design:type\", Number)\n], ExpansionPanelComponent.prototype, \"tabindex\", void 0);\n__decorate([\n HostListener('blur'),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], ExpansionPanelComponent.prototype, \"onComponentBlur\", null);\n__decorate([\n HostListener('focus'),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], ExpansionPanelComponent.prototype, \"onComponentFocus\", null);\nExpansionPanelComponent = __decorate([ __metadata(\"design:paramtypes\", [Renderer2,\n ElementRef,\n NgZone,\n LocalizationService,\n AnimationBuilder])\n], ExpansionPanelComponent);\n\n/**\n * @hidden\n */\nconst normalizeValue = (value) => {\n return value ? +value : undefined;\n};\n/**\n * @hidden\n */\nconst isRowItemPresent = (items) => {\n return items.some(item => isPresent(item.row));\n};\n/**\n * @hidden\n */\nconst propsChanged = (initialProps, newProps) => {\n for (let i = 0; i < initialProps.length; i++) {\n if (initialProps[i] !== newProps[i]) {\n return true;\n }\n }\n return false;\n};\n/**\n * @hidden\n *\n * Extracts the event target from the viewport coords. Required for touch devices\n * where the `event.target` of a `pointermove` event is always the initially dragged item.\n */\nconst getDropTarget = (event) => {\n if (!(isDocumentAvailable() && isPresent(document.elementsFromPoint))) {\n return [event.target];\n }\n return document.elementsFromPoint(event.clientX, event.clientY)\n .filter(item => item.classList && (item.classList.contains('k-tilelayout-item') || item.classList.contains('k-layout-item-hint')));\n};\n/**\n * @hidden\n */\nconst setElementStyles = (renderer, elem, styles) => {\n const props = Object.keys(styles);\n props.forEach(p => {\n renderer.setStyle(elem, p, styles[p]);\n });\n};\n/**\n * @hidden\n */\nconst calculateCellFromPosition = (coordinates, tileLayoutElement, gap, cellSize, columns, rtl = false) => {\n const tileLayoutRect = tileLayoutElement.getBoundingClientRect();\n const totalRows = (tileLayoutRect.height - gap.rows) / (cellSize.height + gap.rows);\n const distanceFromTop = coordinates.y - tileLayoutRect.y;\n const distanceFromLeft = coordinates.x - tileLayoutRect.x;\n const distanceFromRight = tileLayoutRect.right - coordinates.x;\n const distanceToCellWidthRatio = Math.floor((rtl ? distanceFromRight : distanceFromLeft) / (gap.columns + cellSize.width));\n const cappedColumnPosition = Math.min(distanceToCellWidthRatio + 1, columns);\n const distanceToCellHeightRatio = Math.floor(distanceFromTop / (gap.rows + cellSize.height));\n const cappedRowPosition = Math.min(distanceToCellHeightRatio + 1, totalRows);\n const col = Math.max(cappedColumnPosition, 0);\n const row = Math.max(cappedRowPosition, 0);\n return {\n row, col\n };\n};\n\n/**\n * @hidden\n */\nconst RESIZE_HANDLE_UNIDIRECTIONAL_SIZE = 9;\n/**\n * @hidden\n */\nconst RESIZE_HANDLE_BIDIRECTIONAL_SIZE = 25;\n/**\n * @hidden\n */\nconst RESIZE_HANDLE_UNIDIRECTIONAL_OVERLAP = 5;\n/**\n * @hidden\n */\nconst RESIZE_HANDLE_BIDIRECTIONAL_OVERLAP = 18;\n/**\n * @hidden\n */\nconst DRAGGED_ZINDEX = 10;\n/**\n * @hidden\n */\nconst RESIZE_DIRECTIONS = ['ew', 'ns', 'nwse'];\n/**\n * @hidden\n */\nconst RTL_RESIZE_DIRECTIONS = ['ew', 'ns', 'nesw'];\n/**\n * @hidden\n */\nconst RESIZE_HANDLE_DIMENSIONS = {\n // numeric values represent pixels\n ew: {\n width: RESIZE_HANDLE_UNIDIRECTIONAL_SIZE,\n overlapX: RESIZE_HANDLE_UNIDIRECTIONAL_OVERLAP\n },\n ns: {\n height: RESIZE_HANDLE_UNIDIRECTIONAL_SIZE,\n overlapY: RESIZE_HANDLE_UNIDIRECTIONAL_OVERLAP\n },\n nwse: {\n width: RESIZE_HANDLE_BIDIRECTIONAL_SIZE,\n height: RESIZE_HANDLE_BIDIRECTIONAL_SIZE,\n overlapX: RESIZE_HANDLE_BIDIRECTIONAL_OVERLAP,\n overlapY: RESIZE_HANDLE_BIDIRECTIONAL_OVERLAP\n },\n nesw: {\n width: RESIZE_HANDLE_BIDIRECTIONAL_SIZE,\n height: RESIZE_HANDLE_BIDIRECTIONAL_SIZE,\n overlapX: RESIZE_HANDLE_BIDIRECTIONAL_OVERLAP,\n overlapY: RESIZE_HANDLE_BIDIRECTIONAL_OVERLAP\n }\n};\n/**\n * @hidden\n */\nconst OVERLAP_THRESHOLD = 0.3;\n/**\n * @hidden\n */\nconst REVERSE_OVERLAP_THRESHOLD = -0.7;\n/**\n * @hidden\n */\nconst HINT_BORDERS_HEIGHT = 2;\n\n/**\n * @hidden\n */\nclass PreventableEvent$2 {\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 `reorder` event. The event fires when the order or starting\n * positions of the items is changed via the UI. If you prevent the event, the change is canceled ([see example]({% slug reordering_tilelayout %}#toc-handling-the-reorder-event)).\n */\nclass TileLayoutReorderEvent extends PreventableEvent$2 {\n /**\n * Constructs the event arguments for the `reorder` event.\n * @param item - The TileLayoutItem being reordered.\n * @param items - The TileLayoutItem collection that holds the currently rendered items and their internal state.\n * @param newIndex - The new order index of the reordered item used to determine its positioning relative to the other items.\n * @param oldIndex - The initial order index of the reordered item used to determine its positioning relative to the other items.\n * @param newCol - The new start column of the reordered item.\n * @param oldCol - The initial start column of the reordered item.\n * @param newRow - The new start row of the reordered item.\n * @param oldRow - The initial start row of the reordered item.\n * @hidden\n */\n constructor(item, items, newIndex, oldIndex, newCol, oldCol, newRow, oldRow) {\n super();\n this.item = item;\n this.items = items;\n this.newIndex = newIndex;\n this.oldIndex = oldIndex;\n this.newCol = newCol;\n this.oldCol = oldCol;\n this.newRow = newRow;\n this.oldRow = oldRow;\n }\n}\n\n/**\n * Arguments for the `resize` event. The `resize` event fires when any item size\n * is changed from the UI. If you cancel the event, the change is prevented ([see example]({% slug resizing_tilelayout %}#toc-handling-the-resize-event)).\n */\nclass TileLayoutResizeEvent extends PreventableEvent$2 {\n /**\n * Constructs the event arguments for the `resize` event.\n * @param item - The TileLayoutItem being resized\n * @param items - The TileLayoutItem collection\n * @param newRowSpan - The new rowSpan of the resized item\n * @param oldRowSpan - The initial rowSpan of the resized item\n * @param newColSpan - The new colSpan of the resized item\n * @param oldColSpan - The initial colSpan of the resized item\n * @hidden\n */\n constructor(item, items, newRowSpan, oldRowSpan, newColSpan, oldColSpan) {\n super();\n this.item = item;\n this.items = items;\n this.newRowSpan = newRowSpan;\n this.oldRowSpan = oldRowSpan;\n this.newColSpan = newColSpan;\n this.oldColSpan = oldColSpan;\n }\n}\n\n/**\n * @hidden\n */\nlet TileLayoutDraggingService = class TileLayoutDraggingService {\n constructor(zone, renderer, localization) {\n this.zone = zone;\n this.renderer = renderer;\n this.localization = localization;\n this.reorderable = new BehaviorSubject(null);\n this.resizable = new BehaviorSubject(null);\n this.reorder = new Subject();\n this.resize = new Subject();\n this.lastDragCursorOffset = {\n x: 0,\n y: 0\n };\n this.localizationSubscription = this.localization.changes.subscribe(({ rtl }) => this.rtl = rtl);\n }\n get colStart() {\n return this.currentColStart;\n }\n get rowStart() {\n return this.currentRowStart;\n }\n get itemWrapper() {\n return this.draggedItemWrapper;\n }\n get order() {\n return this.targetOrder;\n }\n ngOnDestroy() {\n this.localizationSubscription.unsubscribe();\n }\n handlePress(originalEvent) {\n const resizing = !!originalEvent.target.classList.contains('k-resize-handle');\n const closestTile = closestInScope(originalEvent.target, el => el.classList.contains('k-tilelayout-item'), this.tileLayoutSettings.tileLayoutElement);\n const closestHeader = closestInScope(originalEvent.target, el => el.classList.contains('k-tilelayout-item-header'), this.tileLayoutSettings.tileLayoutElement);\n if (!closestTile) {\n return;\n }\n this.zone.run(() => {\n this.draggedItemWrapper = closestTile;\n this.draggedItem = this.tileLayoutSettings.items\n .find(item => item.order === +closestTile.style.order);\n });\n const reordering = !resizing && this.reorderable.getValue() && this.draggedItem.reorderable && closestHeader;\n if (!(reordering || resizing)) {\n return;\n }\n else {\n originalEvent.preventDefault();\n }\n this.zone.run(() => {\n this.reordering = reordering;\n this.resizing = resizing;\n });\n const tileRect = this.draggedItemWrapper.getBoundingClientRect();\n this.zone.run(() => {\n this.offset = {\n top: originalEvent.clientY - tileRect.top,\n left: originalEvent.clientX - tileRect.left,\n x: tileRect.x,\n y: tileRect.y,\n width: tileRect.width,\n height: tileRect.height\n };\n this.targetSize = {\n rowSpan: this.draggedItem.rowSpan,\n colSpan: this.draggedItem.colSpan\n };\n this.cellSize = {\n width: (tileRect.width - ((this.targetSize.colSpan - 1) * this.tileLayoutSettings.gap.columns)) / this.targetSize.colSpan,\n height: (tileRect.height - ((this.targetSize.rowSpan - 1) * this.tileLayoutSettings.gap.rows)) / this.targetSize.rowSpan\n };\n this.lastDragCursorOffset = {\n x: originalEvent.clientX,\n y: originalEvent.clientY\n };\n });\n setElementStyles(this.renderer, this.draggedItemWrapper, {\n left: tileRect.left + window.pageXOffset + 'px',\n top: tileRect.top + window.pageYOffset + 'px',\n width: tileRect.width + 'px',\n height: tileRect.height + 'px',\n zIndex: DRAGGED_ZINDEX\n });\n setElementStyles(this.renderer, this.tileLayoutSettings.hintElement, {\n display: 'flex',\n height: (tileRect.height - HINT_BORDERS_HEIGHT) + 'px'\n });\n this.zone.run(() => this.targetOrder = this.draggedItem.order);\n setElementStyles(this.renderer, this.draggedItemWrapper, {\n position: 'absolute'\n });\n if (this.reorderable.getValue() && !resizing) {\n this.zone.run(() => {\n this.currentColStart = this.draggedItem.colStart;\n this.currentRowStart = this.draggedItem.rowStart;\n });\n const headerEl = this.draggedItem.elem.nativeElement.querySelector('.k-tilelayout-item-header');\n this.renderer.addClass(headerEl, 'k-cursor-grabbing');\n }\n else if (this.resizable && resizing) {\n this.zone.run(() => {\n this.startingPoint = {\n top: originalEvent.clientY,\n left: originalEvent.clientX\n };\n this.currentResizingColSpan = this.draggedItem.colSpan;\n this.currentResizingRowSpan = this.draggedItem.rowSpan;\n if (this.draggedItem.col) {\n this.currentColStart = this.draggedItem.col.toString();\n }\n if (this.draggedItem.row) {\n this.currentRowStart = this.draggedItem.row.toString();\n }\n this.direction = originalEvent.target.classList[1];\n });\n }\n }\n handleDrag(originalEvent) {\n if (this.draggedItemWrapper) {\n if (this.reordering) {\n this.reorderItems(originalEvent);\n }\n else if (this.resizing) {\n this.resizeItem(originalEvent);\n }\n this.lastDragCursorOffset = {\n x: originalEvent.clientX,\n y: originalEvent.clientY\n };\n }\n }\n handleRelease(originalEvent) {\n originalEvent.preventDefault();\n if (this.reordering) {\n const initialOrder = this.draggedItem.order;\n const initialCol = this.draggedItem.col;\n const initialRow = this.draggedItem.row;\n const targetCol = normalizeValue(this.currentColStart);\n const targetRow = normalizeValue(this.currentRowStart);\n if (propsChanged([this.targetOrder, targetCol, targetRow], [initialOrder, initialCol, initialRow])) {\n const reorderEvent = new TileLayoutReorderEvent(this.draggedItem, this.tileLayoutSettings.items, this.targetOrder, initialOrder, normalizeValue(this.currentColStart), initialCol, targetRow, initialRow);\n this.reorder.next(reorderEvent);\n if (!reorderEvent.isDefaultPrevented()) {\n if (this.targetOrder > initialOrder) {\n this.zone.run(() => {\n for (let i = initialOrder + 1; i <= this.targetOrder; i++) {\n this.tileLayoutSettings.items.find(item => item.order === i).order = i - 1;\n }\n });\n }\n else {\n this.zone.run(() => {\n for (let i = this.targetOrder; i < initialOrder; i++) {\n this.tileLayoutSettings.items.find(item => item.order === i).order = i + 1;\n }\n });\n }\n this.draggedItem.order = this.targetOrder;\n if (this.draggedItem.col) {\n this.draggedItem.col = +this.currentColStart;\n }\n if (this.draggedItem.row) {\n this.draggedItem.row = +this.currentRowStart;\n }\n }\n }\n this.tileLayoutSettings.tileLayoutElement.appendChild(this.tileLayoutSettings.hintElement);\n this.zone.run(() => this.cleanUp());\n }\n else if (!this.reordering && this.resizing) {\n const initialRowSpan = this.draggedItem.rowSpan;\n const initialColSpan = this.draggedItem.colSpan;\n const { targetColSpan, targetRowSpan } = isRowItemPresent(this.tileLayoutSettings.items) ?\n this.targetSpan() :\n { targetColSpan: this.currentResizingColSpan, targetRowSpan: this.currentResizingRowSpan };\n if (propsChanged([initialRowSpan, initialColSpan], [targetRowSpan, targetColSpan])) {\n const resizeEvent = new TileLayoutResizeEvent(this.draggedItem, this.tileLayoutSettings.items, targetRowSpan, initialRowSpan, targetColSpan, initialColSpan);\n this.resize.next(resizeEvent);\n if (!resizeEvent.isDefaultPrevented()) {\n this.draggedItem.colSpan = this.currentResizingColSpan;\n this.draggedItem.rowSpan = this.currentResizingRowSpan;\n }\n }\n this.zone.run(() => this.cleanUp());\n }\n }\n reorderItems(event) {\n const targets = getDropTarget(event);\n const closestTile = targets.find(t => t !== this.draggedItemWrapper);\n let tileOrder = closestTile ? +closestTile.style.order : +this.draggedItemWrapper.style.order;\n if (this.tileLayoutSettings.autoFlow !== 'none') {\n const deltaX = event.clientX - this.lastDragCursorOffset.x;\n const deltaY = event.clientY - this.lastDragCursorOffset.y;\n const directionX = deltaX > 0 ? 'right' : deltaX < 0 ? 'left' : undefined;\n const directionY = deltaY > 0 ? 'down' : deltaX < 0 ? 'up' : undefined;\n const rect = this.draggedItemWrapper.getBoundingClientRect();\n const horizontalGap = this.tileLayoutSettings.gap.columns;\n const verticalGap = this.tileLayoutSettings.gap.rows;\n if (directionX && this.draggedItem.col) {\n const { col } = calculateCellFromPosition({\n x: directionX === 'right' ? rect.right - horizontalGap : rect.left + horizontalGap,\n y: event.clientY\n }, this.tileLayoutSettings.tileLayoutElement, this.tileLayoutSettings.gap, this.cellSize, this.tileLayoutSettings.columns, this.rtl);\n const targetStartCol = this.getTargetCol(col, directionX);\n this.currentColStart = targetStartCol.toString();\n }\n if (directionY && this.draggedItem.row) {\n const { row } = calculateCellFromPosition({\n x: event.clientX,\n y: directionY === 'down' ? rect.bottom - verticalGap : rect.top + verticalGap\n }, this.tileLayoutSettings.tileLayoutElement, this.tileLayoutSettings.gap, this.cellSize, this.tileLayoutSettings.columns, this.rtl);\n const targetStartRow = this.getTargetRow(row, directionY);\n this.currentRowStart = targetStartRow.toString();\n }\n }\n const hintBefore = tileOrder < this.targetOrder;\n const hintAfter = tileOrder > this.targetOrder;\n this.zone.run(() => this.targetOrder = tileOrder);\n if (hintBefore) {\n this.tileLayoutSettings.tileLayoutElement\n .insertBefore(this.tileLayoutSettings.hintElement, this.tileLayoutSettings.tileLayoutElement.firstChild);\n }\n else if (hintAfter) {\n this.tileLayoutSettings.tileLayoutElement.appendChild(this.tileLayoutSettings.hintElement);\n }\n setElementStyles(this.renderer, this.draggedItemWrapper, {\n top: (event.pageY - this.offset.top) + 'px',\n left: (event.pageX - this.offset.left) + 'px'\n });\n }\n resizeItem(event) {\n setElementStyles(this.renderer, this.tileLayoutSettings.tileLayoutElement, {\n cursor: this.direction.split('k-cursor-')[1]\n });\n const currentWidth = this.rtl ?\n this.offset.width + (this.offset.x - event.clientX) :\n this.offset.width + (event.clientX - this.startingPoint.left);\n const currentHeight = this.offset.height + (event.clientY - this.startingPoint.top);\n const hintRect = this.tileLayoutSettings.hintElement.getBoundingClientRect();\n const hintWidth = hintRect.width;\n const hintHeight = hintRect.height;\n const horizontalDragDirection = event.clientX - this.lastDragCursorOffset.x;\n const verticalDragDirection = event.clientY - this.lastDragCursorOffset.y;\n const startCol = this.draggedItem.col ? this.draggedItem.col : calculateCellFromPosition({\n x: this.rtl ? hintRect.right : hintRect.x,\n y: hintRect.y\n }, this.tileLayoutSettings.tileLayoutElement, this.tileLayoutSettings.gap, this.cellSize, this.tileLayoutSettings.columns, this.rtl).col;\n const maxWidth = (this.tileLayoutSettings.columns - startCol) * (this.cellSize.width + this.tileLayoutSettings.gap.columns) + this.cellSize.width;\n const resizeHorizontally = () => {\n setElementStyles(this.renderer, this.draggedItemWrapper, {\n width: Math.min(Math.max(currentWidth, this.cellSize.width), maxWidth) + 'px'\n });\n if (this.rtl && currentWidth > this.cellSize.width) {\n const totalWidth = this.tileLayoutSettings.columns * (this.cellSize.width + this.tileLayoutSettings.gap.columns);\n const leftBoundary = this.tileLayoutSettings.tileLayoutElement.getBoundingClientRect().right - totalWidth;\n setElementStyles(this.renderer, this.draggedItemWrapper, {\n left: Math.max(event.clientX, leftBoundary) + 'px'\n });\n }\n const deltaX = currentWidth - hintWidth;\n const { x, y, right } = this.draggedItem.elem.nativeElement.getBoundingClientRect();\n const { col } = calculateCellFromPosition({ x: (this.rtl ? right : x), y: y }, this.tileLayoutSettings.tileLayoutElement, this.tileLayoutSettings.gap, this.cellSize, this.tileLayoutSettings.columns, this.rtl);\n const resizedColSpan = col + this.currentResizingColSpan;\n const expandingCondition = this.rtl ? horizontalDragDirection < 0 : horizontalDragDirection > 0;\n const shrinkingCondition = this.rtl ? horizontalDragDirection > 0 : horizontalDragDirection < 0;\n if (deltaX > OVERLAP_THRESHOLD * this.cellSize.width &&\n expandingCondition &&\n resizedColSpan <= this.tileLayoutSettings.columns) {\n this.currentResizingColSpan++;\n }\n else if (this.currentResizingColSpan > 1 &&\n shrinkingCondition &&\n deltaX < REVERSE_OVERLAP_THRESHOLD * this.cellSize.width) {\n this.currentResizingColSpan--;\n }\n setElementStyles(this.renderer, this.tileLayoutSettings.hintElement, {\n gridColumnEnd: `span ${this.currentResizingColSpan}`\n });\n };\n const resizeVertically = () => {\n setElementStyles(this.renderer, this.draggedItemWrapper, {\n height: Math.max(currentHeight, this.cellSize.height) + 'px'\n });\n const deltaY = currentHeight - hintHeight;\n if (deltaY > OVERLAP_THRESHOLD * this.cellSize.height && verticalDragDirection > 0) {\n this.currentResizingRowSpan++;\n }\n else if (this.currentResizingRowSpan > 1 &&\n verticalDragDirection < 0 && deltaY < REVERSE_OVERLAP_THRESHOLD * this.cellSize.height) {\n this.currentResizingRowSpan--;\n }\n setElementStyles(this.renderer, this.tileLayoutSettings.hintElement, {\n gridRowEnd: `span ${this.currentResizingRowSpan}`\n });\n setElementStyles(this.renderer, this.tileLayoutSettings.hintElement, {\n height: `${this.calculateHintHeight()}px`\n });\n };\n if (this.direction.indexOf('ew') > -1) {\n resizeHorizontally();\n }\n else if (this.direction.indexOf('ns') > -1) {\n resizeVertically();\n }\n else {\n resizeHorizontally();\n resizeVertically();\n }\n }\n cleanUp() {\n this.targetOrder = this.currentResizingColSpan = this.currentColStart = this.currentResizingRowSpan = this.currentRowStart = undefined;\n this.resizing = this.reordering = false;\n this.direction = null;\n if (this.draggedItemWrapper) {\n const grabHandle = this.draggedItemWrapper.querySelector('.k-cursor-grab');\n if (grabHandle) {\n this.renderer.removeClass(grabHandle, 'k-cursor-grabbing');\n }\n setElementStyles(this.renderer, this.draggedItemWrapper, {\n top: '',\n left: '',\n display: '',\n width: '',\n height: '',\n zIndex: '',\n position: ''\n });\n setElementStyles(this.renderer, this.tileLayoutSettings.hintElement, {\n display: 'none',\n height: 'auto'\n });\n setElementStyles(this.renderer, this.tileLayoutSettings.tileLayoutElement, {\n cursor: 'default'\n });\n this.draggedItemWrapper =\n this.offset =\n this.draggedItem =\n this.resizing =\n this.reordering =\n this.currentResizingColSpan =\n this.currentResizingRowSpan =\n this.startingPoint = undefined;\n this.lastDragCursorOffset = {\n x: 0,\n y: 0\n };\n }\n }\n targetSpan() {\n const itemRect = this.draggedItem.elem.nativeElement.getBoundingClientRect();\n const startingCell = calculateCellFromPosition({ x: this.rtl ? itemRect.right : itemRect.x, y: itemRect.y }, this.tileLayoutSettings.tileLayoutElement, this.tileLayoutSettings.gap, this.cellSize, this.tileLayoutSettings.columns, this.rtl);\n const targetEndCell = calculateCellFromPosition({\n x: this.rtl ? itemRect.x + OVERLAP_THRESHOLD * this.cellSize.width : itemRect.right - OVERLAP_THRESHOLD * this.cellSize.width,\n y: itemRect.bottom - OVERLAP_THRESHOLD * this.cellSize.height\n }, this.tileLayoutSettings.tileLayoutElement, this.tileLayoutSettings.gap, this.cellSize, this.tileLayoutSettings.columns, this.rtl);\n return {\n targetColSpan: targetEndCell.col - startingCell.col + 1,\n targetRowSpan: targetEndCell.row - startingCell.row + 1\n };\n }\n getTargetCol(col, direction) {\n if (this.rtl) {\n return direction === 'left' ? col - this.draggedItem.colSpan + 1 : col;\n }\n return direction === 'right' ? col - this.draggedItem.colSpan + 1 : col;\n }\n getTargetRow(row, direction) {\n return direction === 'down' ? row - this.draggedItem.rowSpan + 1 : row;\n }\n calculateHintHeight() {\n const totalHintCellsHeight = this.currentResizingRowSpan * this.cellSize.height;\n const totalHintGapsHeight = (this.currentResizingRowSpan - 1) * this.tileLayoutSettings.gap.rows;\n const hintHeight = totalHintCellsHeight + totalHintGapsHeight - HINT_BORDERS_HEIGHT;\n return hintHeight;\n }\n};\nTileLayoutDraggingService.ɵfac = function TileLayoutDraggingService_Factory(t) { return new (t || TileLayoutDraggingService)(ɵngcc0.ɵɵinject(ɵngcc0.NgZone), ɵngcc0.ɵɵinject(ɵngcc0.Renderer2), ɵngcc0.ɵɵinject(ɵngcc2.LocalizationService)); };\nTileLayoutDraggingService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: TileLayoutDraggingService, factory: function (t) { return TileLayoutDraggingService.ɵfac(t); } });\nTileLayoutDraggingService = __decorate([ __metadata(\"design:paramtypes\", [NgZone,\n Renderer2,\n LocalizationService])\n], TileLayoutDraggingService);\n\n/**\n * Represents a tile item within the TileLayoutComponent.\n */\nlet TileLayoutItemComponent = class TileLayoutItemComponent {\n constructor(elem, renderer, localization, draggingService) {\n this.elem = elem;\n this.renderer = renderer;\n this.localization = localization;\n this.draggingService = draggingService;\n /**\n * Determines how many rows will the tile item span ([see example]({% slug tiles_tilelayout %}#toc-tile-size-and-position)).\n * @default 1\n */\n this.rowSpan = 1;\n /**\n * Determines how many columns will the tile item span ([see example]({% slug tiles_tilelayout %}#toc-tile-size-and-position)).\n * @default 1\n */\n this.colSpan = 1;\n /**\n * Determines whether the item can be reordered. By default all items are reorderable when the [reorderable]({% slug api_layout_tilelayoutcomponent %}#toc-reorderable) property of the TileLayoutComponent is set to `true` ([see example]({% slug reordering_tilelayout %}#toc-disable-reordering)).\n *\n * @default true\n */\n this.reorderable = true;\n /**\n * Determines whether the item can be resized. By default all items are resizable when the [resizable]({% slug api_layout_tilelayoutcomponent %}#resizable) property of the TileLayoutComponent is set to `true` ([see example]({% slug resizing_tilelayout %}#toc-disable-resizing)).\n * @default true\n */\n this.resizable = true;\n this.itemClass = true;\n this.subs = new Subscription();\n this.subs.add(this.localization.changes.subscribe(({ rtl }) => {\n this.rtl = rtl;\n }));\n this.subs.add(this.draggingService.resizable.subscribe(resizable => {\n this.resizeDirections = resizable && this.resizable ?\n this.rtl ? RTL_RESIZE_DIRECTIONS : RESIZE_DIRECTIONS : undefined;\n }));\n }\n /**\n * Determines the order of the tile items within the TileLayout.\n * If not set, the items will receive increasing sequential order in accordance with\n * their position in the DOM when initially rendered.\n */\n set order(value) {\n this._order = value;\n this.renderer.setStyle(this.elem.nativeElement, 'order', `${this._order}`);\n }\n get order() {\n return this._order;\n }\n get colEnd() {\n return `span ${this.colSpan}`;\n }\n get rowEnd() {\n return `span ${this.rowSpan}`;\n }\n get colStart() {\n return isPresent(this.col) ? this.col.toString() : undefined;\n }\n get rowStart() {\n return isPresent(this.row) ? this.row.toString() : undefined;\n }\n ngAfterViewInit() {\n this.subs.add(this.draggingService.reorderable.subscribe(reorderable => {\n this.toggleCursorClass(reorderable && this.reorderable);\n }));\n }\n ngOnChanges(changes) {\n if (changes.reorderable && !changes.reorderable.firstChange) {\n this.toggleCursorClass(changes.reorderable.currentValue && this.draggingService.reorderable.getValue());\n }\n if (changes.resizable) {\n this.resizeDirections = this.resizable && this.draggingService.resizable.getValue() ?\n this.rtl ? RTL_RESIZE_DIRECTIONS : RESIZE_DIRECTIONS : undefined;\n }\n }\n ngOnDestroy() {\n this.subs.unsubscribe();\n }\n toggleCursorClass(isReorderable) {\n const headerEl = this.elem.nativeElement.querySelector('.k-tilelayout-item-header');\n if (!headerEl) {\n return;\n }\n if (isReorderable) {\n this.renderer.addClass(headerEl, 'k-cursor-grab');\n }\n else {\n this.renderer.removeClass(headerEl, 'k-cursor-grab');\n }\n }\n};\nTileLayoutItemComponent.ɵfac = function TileLayoutItemComponent_Factory(t) { return new (t || TileLayoutItemComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(TileLayoutDraggingService)); };\nTileLayoutItemComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: TileLayoutItemComponent, selectors: [[\"kendo-tilelayout-item\"]], hostVars: 12, hostBindings: function TileLayoutItemComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"grid-column-end\", ctx.colEnd)(\"grid-row-end\", ctx.rowEnd)(\"grid-column-start\", ctx.colStart)(\"grid-row-start\", ctx.rowStart);\n ɵngcc0.ɵɵclassProp(\"k-tilelayout-item\", ctx.itemClass)(\"k-card\", ctx.itemClass);\n } }, inputs: { rowSpan: \"rowSpan\", colSpan: \"colSpan\", reorderable: \"reorderable\", resizable: \"resizable\", order: \"order\", title: \"title\", col: \"col\", row: \"row\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], ngContentSelectors: _c7, decls: 3, vars: 2, consts: [[4, \"ngIf\"], [1, \"k-card-title\"], [\"kendoTileLayoutResizeHandle\", \"\", 3, \"class\", \"rtl\", \"resizeDirection\", 4, \"ngFor\", \"ngForOf\"], [\"kendoTileLayoutResizeHandle\", \"\", 3, \"rtl\", \"resizeDirection\"]], template: function TileLayoutItemComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵtemplate(0, TileLayoutItemComponent_kendo_tilelayout_item_header_0_Template, 3, 1, \"kendo-tilelayout-item-header\", 0);\n ɵngcc0.ɵɵprojection(1);\n ɵngcc0.ɵɵtemplate(2, TileLayoutItemComponent_ng_container_2_Template, 2, 1, \"ng-container\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.title);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.resizable);\n } }, directives: function () { return [ɵngcc1.NgIf, TileLayoutItemHeaderComponent, ɵngcc1.NgForOf, TileLayoutResizeHandleDirective]; }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TileLayoutItemComponent.prototype, \"title\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], TileLayoutItemComponent.prototype, \"rowSpan\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], TileLayoutItemComponent.prototype, \"colSpan\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], TileLayoutItemComponent.prototype, \"order\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], TileLayoutItemComponent.prototype, \"col\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], TileLayoutItemComponent.prototype, \"row\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TileLayoutItemComponent.prototype, \"reorderable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TileLayoutItemComponent.prototype, \"resizable\", void 0);\n__decorate([\n HostBinding('class.k-tilelayout-item'),\n HostBinding('class.k-card'),\n __metadata(\"design:type\", Boolean)\n], TileLayoutItemComponent.prototype, \"itemClass\", void 0);\n__decorate([\n HostBinding('style.grid-column-end'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], TileLayoutItemComponent.prototype, \"colEnd\", null);\n__decorate([\n HostBinding('style.grid-row-end'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], TileLayoutItemComponent.prototype, \"rowEnd\", null);\n__decorate([\n HostBinding('style.grid-column-start'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], TileLayoutItemComponent.prototype, \"colStart\", null);\n__decorate([\n HostBinding('style.grid-row-start'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], TileLayoutItemComponent.prototype, \"rowStart\", null);\nTileLayoutItemComponent = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n Renderer2,\n LocalizationService,\n TileLayoutDraggingService])\n], TileLayoutItemComponent);\n\nconst autoFlowClasses = {\n column: 'k-grid-flow-col',\n row: 'k-grid-flow-row',\n 'column-dense': 'k-grid-flow-col-dense',\n 'row-dense': 'k-grid-flow-row-dense'\n};\n/**\n * Represents the [Kendo UI TileLayout component for Angular]({% slug overview_tilelayout %})\n */\nlet TileLayoutComponent = class TileLayoutComponent {\n constructor(elem, renderer, localization, draggingService, zone) {\n this.elem = elem;\n this.renderer = renderer;\n this.localization = localization;\n this.draggingService = draggingService;\n this.zone = zone;\n /**\n * Defines the number of columns ([see example]({% slug tiles_tilelayout %}#toc-tile-size-and-position)).\n * @default 1\n */\n this.columns = 1;\n /**\n * Determines the width of the columns. Numeric values are treated as pixels ([see example]({% slug tiles_tilelayout %}#toc-tile-size-and-position)).\n * @default '1fr'\n */\n this.columnWidth = '1fr';\n /**\n * Determines whether the reordering functionality will be enabled ([see example]({% slug reordering_tilelayout %})).\n * @default false\n */\n this.reorderable = false;\n /**\n * Determines whether the resizing functionality will be enabled ([see example]({% slug resizing_tilelayout %})).\n * @default false\n */\n this.resizable = false;\n /**\n * Determines the height of the rows. Numeric values are treated as pixels ([see example]({% slug tiles_tilelayout %}#toc-tile-size-and-position)).\n * @default '1fr'\n */\n this.rowHeight = '1fr';\n /**\n * Controls how the auto-placement algorithm works, specifying exactly how auto-placed items are flowed in the TileLayout ([see example]({% slug tiles_autoflow_tilelayout %})).\n * For further reference, check the [grid-auto-flow CSS article](https://developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-flow).\n *\n * The possible values are:\n * * (Default) `column`\n * * `row`\n * * `row dense`\n * * `column dense`\n * * `none`\n *\n */\n this.autoFlow = 'column';\n /**\n * Fires when the user completes the reordering of the item ([see example]({% slug overview_tilelayout %}#toc-events)).\n * This event is preventable. If you cancel it, the item will not be reordered.\n */\n this.reorder = new EventEmitter();\n /**\n * Fires when the user completes the resizing of the item ([see example]({% slug overview_tilelayout %}#toc-events)).\n * This event is preventable. If you cancel it, the item will not be resized.\n */\n this.resize = new EventEmitter();\n this.hostClass = true;\n this.subs = new Subscription();\n this._gap = {\n rows: 16,\n columns: 16\n };\n validatePackage(packageMetadata);\n }\n /**\n * The numeric values which determine the spacing in pixels between the layout items horizontally and vertically.\n * Properties:\n * * rows - the vertical spacing. Numeric values are treated as pixels. Defaults to `16`.\n * * columns - the horizontal spacing. Numeric values are treated as pixels. Defaults to `16`.\n *\n * When bound to a single numeric value, it will be set to both `rows` and `columns` properties.\n */\n set gap(value) {\n this._gap = (typeof value === 'number') ? { rows: value, columns: value } : Object.assign(this._gap, value);\n }\n get gap() {\n return this._gap;\n }\n get gapStyle() {\n return `${this.gap.rows}px ${this.gap.columns}px`;\n }\n get currentColStart() {\n return this.draggingService.colStart;\n }\n get currentRowStart() {\n return this.draggingService.rowStart;\n }\n get draggedItemWrapper() {\n return this.draggingService.itemWrapper;\n }\n get targetOrder() {\n return this.draggingService.order;\n }\n ngOnInit() {\n this.applyColStyling();\n this.applyRowStyling();\n this.draggingService.reorderable.next(this.reorderable);\n this.draggingService.resizable.next(this.resizable);\n if (hasObservers(this.reorder)) {\n this.subs.add(this.draggingService.reorder.subscribe(e => this.reorder.emit(e)));\n }\n if (hasObservers(this.resize)) {\n this.subs.add(this.draggingService.resize.subscribe(e => this.resize.emit(e)));\n }\n this.subs.add(this.draggingService.reorderable.subscribe(reorderable => {\n if (reorderable && !this.draggable) {\n this.initializeDraggable();\n }\n }));\n this.subs.add(this.draggingService.resizable.subscribe(resizable => {\n if (resizable && !this.draggable) {\n this.initializeDraggable();\n }\n }));\n this.subs.add(this.localization.changes.subscribe(({ rtl }) => {\n this.direction = rtl ? 'rtl' : 'ltr';\n }));\n }\n ngAfterViewInit() {\n this.draggingService.tileLayoutSettings = this.draggingServiceConfig();\n this.applyAutoFlow(null, autoFlowClasses[this.autoFlow]);\n this.items.changes.subscribe(() => {\n this.setItemsOrder();\n this.draggingService.tileLayoutSettings.items = this.items.toArray();\n });\n }\n ngAfterContentInit() {\n this.setItemsOrder();\n }\n ngOnChanges(changes) {\n if (changes.columns || changes.columnWidth) {\n this.applyColStyling();\n }\n if (changes.rowHeight) {\n this.applyRowStyling();\n }\n if (changes.reorderable) {\n this.draggingService.reorderable.next(changes.reorderable.currentValue);\n }\n if (changes.resizable) {\n this.draggingService.resizable.next(changes.resizable.currentValue);\n }\n if (changes.gap || changes.autoFlow || changes.columns) {\n this.draggingService.tileLayoutSettings = this.draggingServiceConfig();\n if (changes.autoFlow) {\n this.applyAutoFlow(autoFlowClasses[changes.autoFlow.previousValue] || '', autoFlowClasses[changes.autoFlow.currentValue]);\n }\n }\n }\n ngOnDestroy() {\n if (this.draggable) {\n this.draggable.destroy();\n }\n this.subs.unsubscribe();\n }\n handlePress({ originalEvent }) {\n this.draggingService.handlePress(originalEvent);\n }\n handleDrag({ originalEvent }) {\n this.draggingService.handleDrag(originalEvent);\n }\n handleRelease({ originalEvent }) {\n this.draggingService.handleRelease(originalEvent);\n }\n applyColStyling() {\n const colWidth = typeof this.columnWidth === 'number' ? `${this.columnWidth}px` : this.columnWidth;\n const gridTemplateColumnsStyle = `repeat(${this.columns}, ${colWidth})`;\n this.renderer.setStyle(this.elem.nativeElement, 'grid-template-columns', gridTemplateColumnsStyle);\n }\n applyRowStyling() {\n const rowHeight = typeof this.rowHeight === 'number' ? `${this.rowHeight}px` : this.rowHeight;\n const gridAutoRowsStyle = `${rowHeight}`;\n this.renderer.setStyle(this.elem.nativeElement, 'grid-auto-rows', gridAutoRowsStyle);\n }\n draggingServiceConfig() {\n return {\n tileLayoutElement: this.elem ? this.elem.nativeElement : undefined,\n hintElement: this.hint ? this.hint.nativeElement : undefined,\n gap: this.gap,\n columns: this.columns,\n autoFlow: this.autoFlow,\n items: this.items ? this.items.toArray() : []\n };\n }\n initializeDraggable() {\n this.draggable = new Draggable({\n press: this.handlePress.bind(this),\n drag: this.handleDrag.bind(this),\n release: this.handleRelease.bind(this)\n });\n this.zone.runOutsideAngular(() => this.draggable.bindTo(this.elem.nativeElement));\n }\n applyAutoFlow(classToRemove, classToAdd) {\n const element = this.elem.nativeElement;\n if (classToRemove) {\n this.renderer.removeClass(element, classToRemove);\n }\n if (this.autoFlow !== 'none' && isPresent(classToAdd)) {\n this.renderer.addClass(element, classToAdd);\n }\n }\n setItemsOrder() {\n this.items.forEach((item, index) => {\n if (!isPresent(item.order)) {\n item.order = index;\n }\n });\n }\n};\nTileLayoutComponent.ɵfac = function TileLayoutComponent_Factory(t) { return new (t || TileLayoutComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(TileLayoutDraggingService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nTileLayoutComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: TileLayoutComponent, selectors: [[\"kendo-tilelayout\"]], contentQueries: function TileLayoutComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, TileLayoutItemComponent, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.items = _t);\n } }, viewQuery: function TileLayoutComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c20, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.hint = _t.first);\n } }, hostVars: 9, hostBindings: function TileLayoutComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"dir\", ctx.direction);\n ɵngcc0.ɵɵstyleProp(\"gap\", ctx.gapStyle)(\"padding\", ctx.gapStyle);\n ɵngcc0.ɵɵclassProp(\"k-widget\", ctx.hostClass)(\"k-tilelayout\", ctx.hostClass);\n } }, inputs: { columns: \"columns\", columnWidth: \"columnWidth\", reorderable: \"reorderable\", resizable: \"resizable\", rowHeight: \"rowHeight\", autoFlow: \"autoFlow\", gap: \"gap\" }, outputs: { reorder: \"reorder\", resize: \"resize\" }, features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n TileLayoutDraggingService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.tilelayout.component'\n }\n ]), ɵngcc0.ɵɵNgOnChangesFeature], ngContentSelectors: _c7, decls: 3, vars: 14, consts: [[1, \"k-layout-item-hint\", \"k-layout-item-hint-reorder\"], [\"hint\", \"\"]], template: function TileLayoutComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵprojection(0);\n ɵngcc0.ɵɵelement(1, \"div\", 0, 1);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵstyleProp(\"display\", \"none\")(\"order\", ctx.targetOrder)(\"grid-column-end\", ctx.draggedItemWrapper == null ? null : ctx.draggedItemWrapper.style.gridColumnEnd)(\"grid-row-end\", ctx.draggedItemWrapper == null ? null : ctx.draggedItemWrapper.style.gridRowEnd)(\"grid-column-start\", ctx.currentColStart)(\"grid-row-start\", ctx.currentRowStart)(\"z-index\", \"1\");\n } }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], TileLayoutComponent.prototype, \"columns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], TileLayoutComponent.prototype, \"columnWidth\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], TileLayoutComponent.prototype, \"gap\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TileLayoutComponent.prototype, \"reorderable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TileLayoutComponent.prototype, \"resizable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], TileLayoutComponent.prototype, \"rowHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TileLayoutComponent.prototype, \"autoFlow\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TileLayoutComponent.prototype, \"reorder\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TileLayoutComponent.prototype, \"resize\", void 0);\n__decorate([\n HostBinding('class.k-widget'),\n HostBinding('class.k-tilelayout'),\n __metadata(\"design:type\", Boolean)\n], TileLayoutComponent.prototype, \"hostClass\", void 0);\n__decorate([\n HostBinding('style.gap'),\n HostBinding('style.padding'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], TileLayoutComponent.prototype, \"gapStyle\", null);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String)\n], TileLayoutComponent.prototype, \"direction\", void 0);\n__decorate([\n ContentChildren(TileLayoutItemComponent),\n __metadata(\"design:type\", QueryList)\n], TileLayoutComponent.prototype, \"items\", void 0);\n__decorate([\n ViewChild('hint', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], TileLayoutComponent.prototype, \"hint\", void 0);\nTileLayoutComponent = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n Renderer2,\n LocalizationService,\n TileLayoutDraggingService,\n NgZone])\n], TileLayoutComponent);\n\n/**\n * Holds the main content of the TileLayoutItem component.\n */\nlet TileLayoutItemBodyComponent = class TileLayoutItemBodyComponent {\n /**\n * Holds the main content of the TileLayoutItem component.\n */\n constructor() {\n this.hostClass = true;\n this.minHeight = 0;\n }\n};\nTileLayoutItemBodyComponent.ɵfac = function TileLayoutItemBodyComponent_Factory(t) { return new (t || TileLayoutItemBodyComponent)(); };\nTileLayoutItemBodyComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: TileLayoutItemBodyComponent, selectors: [[\"kendo-tilelayout-item-body\"]], hostVars: 6, hostBindings: function TileLayoutItemBodyComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"min-height\", ctx.minHeight);\n ɵngcc0.ɵɵclassProp(\"k-tilelayout-item-body\", ctx.hostClass)(\"k-card-body\", ctx.hostClass);\n } }, ngContentSelectors: _c7, decls: 1, vars: 0, template: function TileLayoutItemBodyComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵprojection(0);\n } }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-tilelayout-item-body'),\n HostBinding('class.k-card-body'),\n __metadata(\"design:type\", Boolean)\n], TileLayoutItemBodyComponent.prototype, \"hostClass\", void 0);\n__decorate([\n HostBinding('style.min-height'),\n __metadata(\"design:type\", Number)\n], TileLayoutItemBodyComponent.prototype, \"minHeight\", void 0);\n\n/**\n * Holds the content of the header section of the TileLayoutItem component.\n * This is the area which can be dragged to reorder the items if reordering is enabled for this item.\n */\nlet TileLayoutItemHeaderComponent = class TileLayoutItemHeaderComponent {\n constructor(draggingService) {\n this.draggingService = draggingService;\n this.hostClass = true;\n }\n get touchActionNone() {\n return this.draggingService.reorderable.getValue();\n }\n get touchActionAuto() {\n return !this.draggingService.reorderable.getValue();\n }\n};\nTileLayoutItemHeaderComponent.ɵfac = function TileLayoutItemHeaderComponent_Factory(t) { return new (t || TileLayoutItemHeaderComponent)(ɵngcc0.ɵɵdirectiveInject(TileLayoutDraggingService)); };\nTileLayoutItemHeaderComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: TileLayoutItemHeaderComponent, selectors: [[\"kendo-tilelayout-item-header\"]], hostVars: 8, hostBindings: function TileLayoutItemHeaderComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-tilelayout-item-header\", ctx.hostClass)(\"k-card-header\", ctx.hostClass)(\"k-touch-action-none\", ctx.touchActionNone)(\"k-touch-action-auto\", ctx.touchActionAuto);\n } }, ngContentSelectors: _c7, decls: 1, vars: 0, template: function TileLayoutItemHeaderComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵprojection(0);\n } }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-tilelayout-item-header'),\n HostBinding('class.k-card-header'),\n __metadata(\"design:type\", Boolean)\n], TileLayoutItemHeaderComponent.prototype, \"hostClass\", void 0);\n__decorate([\n HostBinding('class.k-touch-action-none'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], TileLayoutItemHeaderComponent.prototype, \"touchActionNone\", null);\n__decorate([\n HostBinding('class.k-touch-action-auto'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], TileLayoutItemHeaderComponent.prototype, \"touchActionAuto\", null);\nTileLayoutItemHeaderComponent = __decorate([ __metadata(\"design:paramtypes\", [TileLayoutDraggingService])\n], TileLayoutItemHeaderComponent);\n\nconst exportedModules = [\n AvatarComponent\n];\nconst declarations = [\n ...exportedModules\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the Avatar component.\n */\nlet AvatarModule = class AvatarModule {\n};\nAvatarModule.ɵfac = function AvatarModule_Factory(t) { return new (t || AvatarModule)(); };\nAvatarModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: AvatarModule });\nAvatarModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule]] });\n\nconst cardDirectives = [\n CardTitleDirective,\n CardSubtitleDirective,\n CardSeparatorDirective,\n CardMediaDirective\n];\nconst exportedModules$1 = [\n CardComponent,\n CardHeaderComponent,\n CardBodyComponent,\n CardFooterComponent,\n CardActionsComponent,\n ...cardDirectives\n];\nconst declarations$1 = [...exportedModules$1];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the Card component.\n */\nlet CardModule = class CardModule {\n};\nCardModule.ɵfac = function CardModule_Factory(t) { return new (t || CardModule)(); };\nCardModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: CardModule });\nCardModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule]] });\n\n/**\n * @hidden\n */\nconst DRAWER_LINK_SELECTOR = '.k-drawer-link';\n/**\n * @hidden\n */\nconst ACTIVE_NESTED_LINK_SELECTOR = ':focus:not(.k-state-disabled) .k-drawer-link';\n/**\n * @hidden\n */\nconst nestedLink = (element, selector) => element.querySelector(selector);\n\n/**\n * @hidden\n */\nlet DrawerItemComponent = class DrawerItemComponent {\n constructor(drawer, element, renderer) {\n this.drawer = drawer;\n this.element = element;\n this.renderer = renderer;\n }\n get disabledClass() {\n return this.item.disabled;\n }\n get selectedClass() {\n return this.drawer.selectedIndices.indexOf(this.index) >= 0;\n }\n get label() {\n return this.item.text ? this.item.text : null;\n }\n /**\n * @hidden\n */\n ngAfterViewInit() {\n const link = nestedLink(this.element.nativeElement, DRAWER_LINK_SELECTOR);\n if (link) {\n this.renderer.removeAttribute(link, 'tabindex');\n }\n }\n /**\n * @hidden\n */\n get iconClasses() {\n const classes = [];\n if (this.item.icon) {\n classes.push(`k-icon ${this.item.icon}`);\n }\n if (this.item.iconClass) {\n classes.push(`${this.item.iconClass}`);\n }\n return classes;\n }\n};\nDrawerItemComponent.ɵfac = function DrawerItemComponent_Factory(t) { return new (t || DrawerItemComponent)(ɵngcc0.ɵɵdirectiveInject(DrawerService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nDrawerItemComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DrawerItemComponent, selectors: [[\"\", \"kendoDrawerItem\", \"\"]], hostVars: 7, hostBindings: function DrawerItemComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"aria-disabled\", ctx.disabledClass)(\"aria-selected\", ctx.selectedClass)(\"aria-label\", ctx.label);\n ɵngcc0.ɵɵclassProp(\"k-state-disabled\", ctx.disabledClass)(\"k-state-selected\", ctx.selectedClass);\n } }, inputs: { item: \"item\", index: \"index\", itemTemplate: \"itemTemplate\", mini: \"mini\", expanded: \"expanded\", disabled: \"disabled\", cssClass: \"cssClass\", cssStyle: \"cssStyle\" }, attrs: _c21, decls: 3, vars: 2, consts: [[4, \"ngIf\", \"ngIfElse\"], [\"defaultTemplate\", \"\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [4, \"ngIf\"], [3, \"ngClass\"], [1, \"k-item-text\"]], template: function DrawerItemComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DrawerItemComponent_0_Template, 1, 4, null, 0);\n ɵngcc0.ɵɵtemplate(1, DrawerItemComponent_ng_template_1_Template, 2, 2, \"ng-template\", null, 1, ɵngcc0.ɵɵtemplateRefExtractor);\n } if (rf & 2) {\n const _r1 = ɵngcc0.ɵɵreference(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.itemTemplate)(\"ngIfElse\", _r1);\n } }, directives: [ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet, ɵngcc1.NgClass], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DrawerItemComponent.prototype, \"item\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], DrawerItemComponent.prototype, \"index\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], DrawerItemComponent.prototype, \"itemTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DrawerItemComponent.prototype, \"mini\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DrawerItemComponent.prototype, \"expanded\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DrawerItemComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DrawerItemComponent.prototype, \"cssClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DrawerItemComponent.prototype, \"cssStyle\", void 0);\n__decorate([\n HostBinding('attr.aria-disabled'),\n HostBinding('class.k-state-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DrawerItemComponent.prototype, \"disabledClass\", null);\n__decorate([\n HostBinding('attr.aria-selected'),\n HostBinding('class.k-state-selected'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DrawerItemComponent.prototype, \"selectedClass\", null);\n__decorate([\n HostBinding('attr.aria-label'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DrawerItemComponent.prototype, \"label\", null);\nDrawerItemComponent = __decorate([ __metadata(\"design:paramtypes\", [DrawerService, ElementRef, Renderer2])\n], DrawerItemComponent);\n\n/**\n * @hidden\n */\nconst DRAWER_ITEM_INDEX = 'data-kendo-drawer-index';\n\n/**\n * @hidden\n */\nlet DrawerListComponent = class 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 this.subscriptions = new Subscription();\n }\n ngOnInit() {\n this.initialSelection();\n this.initDomEvents();\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\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.subscriptions.add(this.renderer.listen(nativeElement, 'click', this.clickHandler.bind(this)));\n this.subscriptions.add(this.renderer.listen(nativeElement, 'keydown', this.keyDownHandler.bind(this)));\n });\n }\n clickHandler(e) {\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 keyDownHandler(e) {\n const isEnterOrSpace = e.keyCode === Keys.Enter || e.keyCode === Keys.Space;\n if (!isEnterOrSpace) {\n return;\n }\n this.clickHandler(e);\n const link = nestedLink(this.element.nativeElement, ACTIVE_NESTED_LINK_SELECTOR);\n if (link) {\n link.click();\n }\n return false;\n }\n getDrawerItemIndex(target) {\n const item = closestItem(target, DRAWER_ITEM_INDEX, this.element.nativeElement);\n if (item) {\n return itemIndex(item, DRAWER_ITEM_INDEX);\n }\n }\n};\nDrawerListComponent.ɵfac = function DrawerListComponent_Factory(t) { return new (t || DrawerListComponent)(ɵngcc0.ɵɵdirectiveInject(DrawerService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nDrawerListComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DrawerListComponent, selectors: [[\"\", \"kendoDrawerList\", \"\"]], inputs: { items: \"items\", itemTemplate: \"itemTemplate\", mini: \"mini\", expanded: \"expanded\" }, attrs: _c22, decls: 1, vars: 1, consts: [[4, \"ngFor\", \"ngForOf\"], [\"kendoDrawerItem\", \"\", \"class\", \"k-drawer-item\", \"tabindex\", \"0\", 3, \"item\", \"index\", \"mini\", \"expanded\", \"itemTemplate\", \"ngClass\", \"ngStyle\", 4, \"ngIf\"], [\"class\", \"k-drawer-item k-drawer-separator\", 3, \"ngClass\", \"ngStyle\", 4, \"ngIf\"], [\"kendoDrawerItem\", \"\", \"tabindex\", \"0\", 1, \"k-drawer-item\", 3, \"item\", \"index\", \"mini\", \"expanded\", \"itemTemplate\", \"ngClass\", \"ngStyle\"], [1, \"k-drawer-item\", \"k-drawer-separator\", 3, \"ngClass\", \"ngStyle\"]], template: function DrawerListComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DrawerListComponent_ng_container_0_Template, 3, 2, \"ng-container\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.items);\n } }, directives: [ɵngcc1.NgForOf, ɵngcc1.NgIf, DrawerItemComponent, ɵngcc1.NgClass, ɵngcc1.NgStyle], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], DrawerListComponent.prototype, \"items\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], DrawerListComponent.prototype, \"itemTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DrawerListComponent.prototype, \"mini\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DrawerListComponent.prototype, \"expanded\", void 0);\nDrawerListComponent = __decorate([ __metadata(\"design:paramtypes\", [DrawerService,\n Renderer2,\n NgZone,\n ChangeDetectorRef,\n ElementRef])\n], DrawerListComponent);\n\nconst templateDirectives = [\n DrawerTemplateDirective,\n DrawerHeaderTemplateDirective,\n DrawerFooterTemplateDirective,\n DrawerItemTemplateDirective\n];\nconst exportedModules$2 = [\n DrawerComponent,\n DrawerContainerComponent,\n DrawerContentComponent,\n ...templateDirectives\n];\nconst declarations$2 = [\n DrawerItemComponent,\n DrawerListComponent,\n ...exportedModules$2\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the Drawer component.\n */\nlet DrawerModule = class DrawerModule {\n};\nDrawerModule.ɵfac = function DrawerModule_Factory(t) { return new (t || DrawerModule)(); };\nDrawerModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: DrawerModule });\nDrawerModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule]] });\n\nconst exportedModules$3 = [\n ExpansionPanelComponent,\n ExpansionPanelTitleDirective\n];\nconst declarations$3 = [\n ...exportedModules$3\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the ExpansionPanel component.\n */\nlet ExpansionPanelModule = class ExpansionPanelModule {\n};\nExpansionPanelModule.ɵfac = function ExpansionPanelModule_Factory(t) { return new (t || ExpansionPanelModule)(); };\nExpansionPanelModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: ExpansionPanelModule });\nExpansionPanelModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule, EventsModule]] });\n\nconst exportedModules$4 = [\n PanelBarComponent,\n PanelBarItemComponent,\n PanelBarContentDirective,\n PanelBarItemTemplateDirective,\n PanelBarItemTitleDirective\n];\nconst declarations$4 = [\n ...exportedModules$4\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 */\nlet PanelBarModule = class PanelBarModule {\n};\nPanelBarModule.ɵfac = function PanelBarModule_Factory(t) { return new (t || PanelBarModule)(); };\nPanelBarModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: PanelBarModule });\nPanelBarModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule]] });\n\nconst exportedModules$5 = [\n SplitterComponent,\n SplitterPaneComponent\n];\nconst declarations$5 = [\n SplitterBarComponent,\n ...exportedModules$5\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 */\nlet SplitterModule = class SplitterModule {\n};\nSplitterModule.ɵfac = function SplitterModule_Factory(t) { return new (t || SplitterModule)(); };\nSplitterModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: SplitterModule });\nSplitterModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[\n CommonModule,\n DraggableModule\n ]] });\n\n/**\n * @hidden\n */\nlet StepperStepComponent = class StepperStepComponent {\n constructor(service, localization, ngZone) {\n this.service = service;\n this.localization = localization;\n this.ngZone = ngZone;\n this.isStepValid = undefined;\n this.shouldCheckValidity = undefined;\n validatePackage(packageMetadata);\n this.subs = this.service.focusedStepChange.subscribe(() => {\n this.onFocusedStepChange();\n });\n this.subs.add(this.service.triggerValidation.subscribe(() => {\n this.handleValidityChecks();\n }));\n }\n get errorStepClass() {\n if (isPresent(this.isStepValid)) {\n return !this.isStepValid;\n }\n return false;\n }\n get successStepClass() {\n if (isPresent(this.isStepValid)) {\n return this.isStepValid;\n }\n return false;\n }\n ngOnInit() {\n this.handleValidityChecks();\n }\n ngOnChanges(changes) {\n if (changes.current && !changes.current.firstChange) {\n this.handleValidityChecks();\n }\n }\n ngOnDestroy() {\n if (this.subs) {\n this.subs.unsubscribe();\n }\n }\n onFocusedStepChange() {\n this.ngZone.runOutsideAngular(() => {\n if (this.index === this.service.focusedStep) {\n this.stepLink.nativeElement.focus();\n }\n });\n }\n onFocus() {\n this.service.focus(this.index);\n }\n get tabIndexAttr() {\n const active = this.service.focusedStep || this.service.currentStep;\n return this.index === active ? 0 : -1;\n }\n get indicatorIconClasses() {\n if (this.step.icon) {\n return `k-icon k-i-${this.step.icon}`;\n }\n if (this.step.iconClass) {\n return `${this.step.iconClass}`;\n }\n if (this.shouldCheckValidity) {\n return this.validationIconClasses;\n }\n }\n get showIndicatorIcon() {\n if (this.shouldCheckValidity) {\n return true;\n }\n if (this.step.icon || this.step.iconClass) {\n return true;\n }\n return false;\n }\n get showLabelIcon() {\n if (this.shouldCheckValidity) {\n if (this.type === 'label') {\n return true;\n }\n if (this.step.icon || this.step.iconClass) {\n return true;\n }\n }\n return false;\n }\n get showLabelText() {\n return this.type === 'label' || this.type === 'full';\n }\n get validationIconClasses() {\n if (this.isStepValid) {\n return this.successIcon ? `${this.successIcon}` : 'k-icon k-i-check';\n }\n else {\n return this.errorIcon ? `${this.errorIcon}` : 'k-icon k-i-warning';\n }\n }\n get indicatorText() {\n const text = this.step.text;\n return text ? text : this.index + 1;\n }\n updateStepValidity() {\n if (typeof this.step.isValid === 'boolean') {\n return this.step.isValid;\n }\n if (typeof this.step.isValid === 'function') {\n return this.step.isValid(this.index);\n }\n return undefined;\n }\n get showIndicator() {\n return this.type === 'indicator' || this.type === 'full';\n }\n get showLabel() {\n if (this.type === 'label' || this.type === 'full') {\n return true;\n }\n return this.step.optional;\n }\n get optionalText() {\n return this.localization.get('optional');\n }\n get transitionDuration() {\n return this.service.owner.animationDuration;\n }\n _shouldCheckValidity() {\n if (isPresent(this.step.validate)) {\n if (typeof this.step.validate === 'boolean') {\n return this.step.validate;\n }\n if (typeof this.step.validate === 'function') {\n return this.step.validate(this.index);\n }\n }\n return isPresent(this.step.isValid) && this.index < this.current;\n }\n handleValidityChecks() {\n this.isStepValid = undefined;\n this.shouldCheckValidity = this._shouldCheckValidity();\n if (this.shouldCheckValidity) {\n this.isStepValid = this.updateStepValidity();\n }\n }\n};\nStepperStepComponent.ɵfac = function StepperStepComponent_Factory(t) { return new (t || StepperStepComponent)(ɵngcc0.ɵɵdirectiveInject(StepperService), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nStepperStepComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: StepperStepComponent, selectors: [[\"\", \"kendoStepperStep\", \"\"]], viewQuery: function StepperStepComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c23, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.stepLink = _t.first);\n } }, hostVars: 4, hostBindings: function StepperStepComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-step-error\", ctx.errorStepClass)(\"k-step-success\", ctx.successStepClass);\n } }, inputs: { step: \"step\", index: \"index\", current: \"current\", type: \"type\", successIcon: \"successIcon\", errorIcon: \"errorIcon\", indicatorTemplate: \"indicatorTemplate\", labelTemplate: \"labelTemplate\", stepTemplate: \"stepTemplate\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], attrs: _c24, decls: 4, vars: 6, consts: [[\"href\", \"#\", 1, \"k-step-link\", 3, \"focus\"], [\"stepLink\", \"\"], [4, \"ngIf\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"class\", \"k-step-indicator\", \"aria-hidden\", \"true\", 3, \"transition-duration\", 4, \"ngIf\"], [\"class\", \"k-step-label\", 4, \"ngIf\"], [\"aria-hidden\", \"true\", 1, \"k-step-indicator\"], [\"class\", \"k-step-indicator-icon\", 3, \"ngClass\", 4, \"ngIf\"], [\"class\", \"k-step-indicator-text\", 4, \"ngIf\"], [1, \"k-step-indicator-icon\", 3, \"ngClass\"], [1, \"k-step-indicator-text\"], [1, \"k-step-label\"], [\"class\", \"k-step-text\", 4, \"ngIf\"], [\"aria-hidden\", \"true\", 3, \"ngClass\", 4, \"ngIf\"], [\"class\", \"k-step-label-optional\", 4, \"ngIf\"], [1, \"k-step-text\"], [\"aria-hidden\", \"true\", 3, \"ngClass\"], [1, \"k-step-label-optional\"]], template: function StepperStepComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"a\", 0, 1);\n ɵngcc0.ɵɵlistener(\"focus\", function StepperStepComponent_Template_a_focus_0_listener() { return ctx.onFocus(); });\n ɵngcc0.ɵɵtemplate(2, StepperStepComponent_2_Template, 1, 5, null, 2);\n ɵngcc0.ɵɵtemplate(3, StepperStepComponent_ng_container_3_Template, 3, 2, \"ng-container\", 2);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"tabindex\", ctx.tabIndexAttr)(\"title\", ctx.step.label)(\"aria-disabled\", ctx.step.disabled)(\"aria-current\", ctx.index === ctx.current ? \"step\" : null);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.stepTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.stepTemplate);\n } }, directives: [ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet, ɵngcc1.NgClass], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], StepperStepComponent.prototype, \"step\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], StepperStepComponent.prototype, \"index\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], StepperStepComponent.prototype, \"current\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], StepperStepComponent.prototype, \"type\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], StepperStepComponent.prototype, \"successIcon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], StepperStepComponent.prototype, \"errorIcon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], StepperStepComponent.prototype, \"indicatorTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], StepperStepComponent.prototype, \"labelTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], StepperStepComponent.prototype, \"stepTemplate\", void 0);\n__decorate([\n ViewChild('stepLink', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], StepperStepComponent.prototype, \"stepLink\", void 0);\n__decorate([\n HostBinding('class.k-step-error'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], StepperStepComponent.prototype, \"errorStepClass\", null);\n__decorate([\n HostBinding('class.k-step-success'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], StepperStepComponent.prototype, \"successStepClass\", null);\nStepperStepComponent = __decorate([ __metadata(\"design:paramtypes\", [StepperService,\n LocalizationService,\n NgZone])\n], StepperStepComponent);\n\n/**\n * @hidden\n */\nconst STEPPER_STEP_INDEX = 'data-kendo-stepper-index';\n\n/**\n * @hidden\n */\nlet StepperListComponent = class StepperListComponent {\n constructor(renderer, ngZone, service, element) {\n this.renderer = renderer;\n this.ngZone = ngZone;\n this.service = service;\n this.element = element;\n }\n ngOnInit() {\n this.initDomEvents();\n }\n ngOnDestroy() {\n if (this.domSubs) {\n this.domSubs();\n }\n }\n get maxStepWidth() {\n return this.maxStepDimension('width');\n }\n get maxStepHeight() {\n return this.maxStepDimension('height');\n }\n maxStepDimension(dimension) {\n if (dimension === 'width' && this.orientation === 'vertical') {\n return null;\n }\n if (dimension === 'height' && this.orientation === 'horizontal') {\n return null;\n }\n return 100 / this.steps.length;\n }\n initDomEvents() {\n if (!this.element) {\n return;\n }\n this.ngZone.runOutsideAngular(() => {\n const nativeElement = this.element.nativeElement;\n const clickSubscription = this.renderer.listen(nativeElement, 'click', this.clickHandler.bind(this));\n const keydownSubscription = this.renderer.listen(nativeElement, 'keydown', (e) => {\n if (hasClass(e.target, 'k-step-link')) {\n this.service.keydown(e);\n }\n });\n this.domSubs = () => {\n clickSubscription();\n keydownSubscription();\n };\n });\n }\n clickHandler(e) {\n e.preventDefault();\n const stepIdx = this.getStepIndex(e.target);\n const step = this.steps[stepIdx];\n if (!step || step.disabled) {\n return;\n }\n if (stepIdx === this.currentStep) {\n this.service.focus(stepIdx);\n return;\n }\n if (this.linear && this.service.isPrevOrNextStep(stepIdx) === false) {\n return;\n }\n this.service.onActivate(stepIdx, e);\n }\n getStepIndex(target) {\n const step = closestItem(target, STEPPER_STEP_INDEX, this.element.nativeElement);\n if (step) {\n return itemIndex(step, STEPPER_STEP_INDEX);\n }\n }\n};\nStepperListComponent.ɵfac = function StepperListComponent_Factory(t) { return new (t || StepperListComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(StepperService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nStepperListComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: StepperListComponent, selectors: [[\"\", \"kendoStepperList\", \"\"]], inputs: { linear: \"linear\", stepType: \"stepType\", orientation: \"orientation\", currentStep: \"currentStep\", steps: \"steps\", successIcon: \"successIcon\", errorIcon: \"errorIcon\", indicatorTemplate: \"indicatorTemplate\", labelTemplate: \"labelTemplate\", stepTemplate: \"stepTemplate\" }, attrs: _c26, decls: 1, vars: 1, consts: [[4, \"ngFor\", \"ngForOf\"], [\"kendoStepperStep\", \"\", 1, \"k-step\", 3, \"type\", \"step\", \"index\", \"current\", \"successIcon\", \"errorIcon\", \"indicatorTemplate\", \"labelTemplate\", \"stepTemplate\", \"ngClass\", \"ngStyle\"]], template: function StepperListComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, StepperListComponent_ng_container_0_Template, 2, 28, \"ng-container\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.steps);\n } }, directives: [ɵngcc1.NgForOf, StepperStepComponent, ɵngcc1.NgClass, ɵngcc1.NgStyle], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], StepperListComponent.prototype, \"linear\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], StepperListComponent.prototype, \"stepType\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], StepperListComponent.prototype, \"orientation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], StepperListComponent.prototype, \"currentStep\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], StepperListComponent.prototype, \"steps\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], StepperListComponent.prototype, \"successIcon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], StepperListComponent.prototype, \"errorIcon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], StepperListComponent.prototype, \"indicatorTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], StepperListComponent.prototype, \"labelTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], StepperListComponent.prototype, \"stepTemplate\", void 0);\nStepperListComponent = __decorate([ __metadata(\"design:paramtypes\", [Renderer2,\n NgZone,\n StepperService,\n ElementRef])\n], StepperListComponent);\n\nconst templateDirectives$1 = [\n StepperStepTemplateDirective,\n StepperLabelTemplateDirective,\n StepperIndicatorTemplateDirective\n];\nconst exportedModules$6 = [\n StepperComponent,\n StepperCustomMessagesComponent,\n ...templateDirectives$1\n];\nconst declarations$6 = [\n StepperStepComponent,\n StepperListComponent,\n LocalizedStepperMessagesDirective,\n ...exportedModules$6\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the Stepper component.\n */\nlet StepperModule = class StepperModule {\n};\nStepperModule.ɵfac = function StepperModule_Factory(t) { return new (t || StepperModule)(); };\nStepperModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: StepperModule });\nStepperModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule, ProgressBarModule]] });\n\n/**\n * @hidden\n */\nlet TabComponent = class TabComponent {\n constructor(localization, tabstripService) {\n this.localization = localization;\n this.tabstripService = tabstripService;\n this.hostClasses = true;\n }\n get activeClass() {\n return this.tab.selected;\n }\n get disabledClass() {\n return this.tab.disabled;\n }\n get focusedClass() {\n return this.tab.focused;\n }\n get tabIndex() {\n return this.tab.selected || this.tab.focused ? 0 : -1;\n }\n get tabClosable() {\n if (this.tab.closable !== undefined) {\n return this.tab.closable;\n }\n return this.tabStripClosable;\n }\n get closeButtonClasses() {\n if (isPresent(this.tab.closeIcon)) {\n return this.tab.closeIcon;\n }\n return this.tabStripCloseIcon;\n }\n get closeButtonTitle() {\n return this.localization.get('closeTitle');\n }\n closeTab(index) {\n this.tabstripService.onTabClose(this.tab, index);\n }\n};\nTabComponent.ɵfac = function TabComponent_Factory(t) { return new (t || TabComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(TabStripService)); };\nTabComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: TabComponent, selectors: [[\"\", \"kendoTabStripTab\", \"\"]], hostVars: 13, hostBindings: function TabComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"aria-selected\", ctx.activeClass)(\"aria-disabled\", ctx.disabledClass)(\"tabindex\", ctx.tabIndex);\n ɵngcc0.ɵɵclassProp(\"k-item\", ctx.hostClasses)(\"k-state-default\", ctx.hostClasses)(\"k-state-active\", ctx.activeClass)(\"k-state-disabled\", ctx.disabledClass)(\"k-state-focused\", ctx.focusedClass);\n } }, inputs: { tab: \"tab\", index: \"index\", tabStripClosable: \"tabStripClosable\", tabStripCloseIcon: \"tabStripCloseIcon\" }, attrs: _c27, decls: 3, vars: 3, consts: [[\"class\", \"k-link\", 4, \"ngIf\"], [\"class\", \"k-remove-tab k-button k-icon-button k-flat\", \"role\", \"button\", 3, \"title\", \"click\", 4, \"ngIf\"], [1, \"k-link\"], [3, \"ngTemplateOutlet\"], [\"role\", \"button\", 1, \"k-remove-tab\", \"k-button\", \"k-icon-button\", \"k-flat\", 3, \"title\", \"click\"], [3, \"ngClass\"]], template: function TabComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, TabComponent_span_0_Template, 2, 1, \"span\", 0);\n ɵngcc0.ɵɵtemplate(1, TabComponent_span_1_Template, 2, 1, \"span\", 0);\n ɵngcc0.ɵɵtemplate(2, TabComponent_span_2_Template, 2, 3, \"span\", 1);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.tab.tabTitle);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.tab.tabTitle);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.tabClosable);\n } }, directives: [ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet, ɵngcc1.NgClass], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", TabStripTabComponent)\n], TabComponent.prototype, \"tab\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], TabComponent.prototype, \"index\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TabComponent.prototype, \"tabStripClosable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TabComponent.prototype, \"tabStripCloseIcon\", void 0);\n__decorate([\n HostBinding('class.k-item'),\n HostBinding('class.k-state-default'),\n __metadata(\"design:type\", Boolean)\n], TabComponent.prototype, \"hostClasses\", void 0);\n__decorate([\n HostBinding('attr.aria-selected]'),\n HostBinding('class.k-state-active'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], TabComponent.prototype, \"activeClass\", null);\n__decorate([\n HostBinding('attr.aria-disabled]'),\n HostBinding('class.k-state-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], TabComponent.prototype, \"disabledClass\", null);\n__decorate([\n HostBinding('class.k-state-focused'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], TabComponent.prototype, \"focusedClass\", null);\n__decorate([\n HostBinding('attr.tabindex'),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [])\n], TabComponent.prototype, \"tabIndex\", null);\nTabComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService,\n TabStripService])\n], TabComponent);\n\nconst exportedModules$7 = [\n TabStripComponent,\n TabStripTabComponent,\n TabContentDirective,\n TabTitleDirective,\n TabComponent,\n TabStripCustomMessagesComponent,\n LocalizedTabStripMessagesDirective\n];\nconst declarations$7 = [\n ...exportedModules$7,\n TabStripScrollableButtonComponent\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 */\nlet TabStripModule = class TabStripModule {\n};\nTabStripModule.ɵfac = function TabStripModule_Factory(t) { return new (t || TabStripModule)(); };\nTabStripModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: TabStripModule });\nTabStripModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule, ResizeSensorModule]] });\n\n/**\n * @hidden\n */\nlet TileLayoutResizeHandleDirective = class TileLayoutResizeHandleDirective {\n constructor(el, renderer) {\n this.el = el;\n this.renderer = renderer;\n }\n ngOnInit() {\n this.sizeHandle();\n }\n setHorizontalPosition(element) {\n this.renderer.setStyle(element, this.rtl ? 'left' : 'right', -RESIZE_HANDLE_DIMENSIONS[this.resizeDirection].overlapX + 'px');\n }\n setBottom(element) {\n this.renderer.setStyle(element, 'bottom', -RESIZE_HANDLE_DIMENSIONS[this.resizeDirection].overlapY + 'px');\n }\n sizeHandle() {\n const element = this.el.nativeElement;\n const handleWidth = RESIZE_HANDLE_DIMENSIONS[this.resizeDirection].width ?\n `${RESIZE_HANDLE_DIMENSIONS[this.resizeDirection].width}px` : '100%';\n const handleHeight = RESIZE_HANDLE_DIMENSIONS[this.resizeDirection].height ?\n `${RESIZE_HANDLE_DIMENSIONS[this.resizeDirection].height}px` : '100%';\n this.renderer.setStyle(element, 'width', handleWidth);\n this.renderer.setStyle(element, 'height', handleHeight);\n if (this.resizeDirection === 'ew') {\n this.setHorizontalPosition(element);\n }\n else if (this.resizeDirection === 'ns') {\n this.setBottom(element);\n }\n else {\n this.setHorizontalPosition(element);\n this.setBottom(element);\n }\n }\n};\nTileLayoutResizeHandleDirective.ɵfac = function TileLayoutResizeHandleDirective_Factory(t) { return new (t || TileLayoutResizeHandleDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nTileLayoutResizeHandleDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: TileLayoutResizeHandleDirective, selectors: [[\"\", \"kendoTileLayoutResizeHandle\", \"\"]], inputs: { resizeDirection: \"resizeDirection\", rtl: \"rtl\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TileLayoutResizeHandleDirective.prototype, \"resizeDirection\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TileLayoutResizeHandleDirective.prototype, \"rtl\", void 0);\nTileLayoutResizeHandleDirective = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n Renderer2])\n], TileLayoutResizeHandleDirective);\n\nconst exportedModules$8 = [\n TileLayoutComponent,\n TileLayoutItemComponent,\n TileLayoutItemHeaderComponent,\n TileLayoutItemBodyComponent,\n TileLayoutResizeHandleDirective\n];\nconst declarations$8 = [\n ...exportedModules$8\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the TileLayout component.\n *\n * The module registers:\n * - `TileLayoutComponent`—The `TileLayoutComponent` component class.\n * - `TileLayoutItemComponent`—The `TileLayoutItemComponent` component class.\n * - `TileLayoutItemHeaderComponent`—The `TileLayoutItemHeaderComponent` component class.\n * - `TileLayoutItemBodyComponent`—The `TileLayoutItemBodyComponent` component class.\n */\nlet TileLayoutModule = class TileLayoutModule {\n};\nTileLayoutModule.ɵfac = function TileLayoutModule_Factory(t) { return new (t || TileLayoutModule)(); };\nTileLayoutModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: TileLayoutModule });\nTileLayoutModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule]] });\n\n/**\n * @hidden\n */\nconst VERTICAL_SUFFIX = {\n top: 'start',\n middle: 'center',\n bottom: 'end',\n stretch: 'stretch'\n};\n/**\n * @hidden\n */\nconst JUSTIFY_PREFIX = `k-justify-content`;\n/**\n * @hidden\n */\nconst GRID_JUSTIFY_PREFIX = `k-justify-items`;\n/**\n * @hidden\n */\nconst ALIGN_PREFIX = `k-align-items`;\n/**\n * @hidden\n */\nconst normalizeGap = (gap) => {\n if (typeof gap === 'number' || typeof gap === 'string') {\n return { cols: gap, rows: gap };\n }\n else {\n let parsedGap = {};\n parsedGap.rows = gap.rows ? gap.rows : 0;\n parsedGap.cols = gap.cols ? gap.cols : 0;\n return parsedGap;\n }\n};\n/**\n * @hidden\n */\nconst generateGapStyle = (gap) => {\n if (gap.rows === gap.cols) {\n return typeof gap.rows === 'number' ? `${gap.rows}px` : gap.rows;\n }\n else {\n let rowStyle = `${typeof gap.rows === 'number' ? gap.rows + 'px' : gap.rows}`;\n let colStyle = `${typeof gap.cols === 'number' ? gap.cols + 'px' : gap.cols}`;\n return `${rowStyle} ${colStyle}`;\n }\n};\n/**\n * @hidden\n */\nconst generateGridStyle = (items, itemType) => {\n let styling = [];\n items.forEach((item) => {\n if (typeof item === 'number') {\n styling.push(`${item}px`);\n }\n else if (typeof item === 'string') {\n styling.push(item);\n }\n else {\n if (itemType === 'rows') {\n const rowHeight = item.height;\n if (rowHeight) {\n styling.push(typeof rowHeight === 'number' ? `${rowHeight}px` : rowHeight);\n }\n else {\n styling.push('0px');\n }\n }\n else {\n const colWidth = item.width;\n if (colWidth) {\n styling.push(typeof colWidth === 'number' ? `${colWidth}px` : colWidth);\n }\n else {\n styling.push('0px');\n }\n }\n }\n });\n return styling;\n};\n/**\n * @hidden\n */\nconst validateGridLayoutRowsCols = (arr) => {\n for (const el of arr) {\n const isNum = typeof el === 'number';\n const isStr = typeof el === 'string';\n const isObject = typeof el === 'object' && el !== null;\n if (!isNum && !isStr && !isObject) {\n return false;\n }\n }\n return true;\n};\n\n/**\n * Represents the [Kendo UI StackLayout component for Angular]({% slug overview_stacklayout %}).\n */\nlet StackLayoutComponent = class StackLayoutComponent {\n constructor(renderer, element, localization) {\n this.renderer = renderer;\n this.element = element;\n this.localization = localization;\n this.hostClass = true;\n /**\n * Specifies the gap between the inner StackLayout elements. The default value is `0`\n * ([see example]({% slug layout_stacklayout %}#toc-gaps)).\n */\n this.gap = 0;\n /**\n * Specifies the orientation of the StackLayout\n * ([see example]({% slug layout_stacklayout %}#toc-orientation)).\n *\n * The possible values are:\n * (Default) `horizontal`\n * `vertical`\n */\n this.orientation = 'horizontal';\n this._align = {\n horizontal: 'stretch',\n vertical: 'stretch'\n };\n validatePackage(packageMetadata);\n }\n get horizontalClass() {\n return this.orientation === 'horizontal';\n }\n get verticalClass() {\n return this.orientation === 'vertical';\n }\n get dir() {\n return this.direction;\n }\n /**\n * Specifies the horizontal and vertical alignment of the inner StackLayout elements\n * ([see example]({% slug layout_stacklayout %}#toc-alignment)).\n */\n set align(align) {\n this._align = Object.assign({}, this._align, align);\n this.handleAlignClasses();\n }\n get align() {\n return this._align;\n }\n ngAfterViewInit() {\n this.handleAlignClasses();\n this.setGap();\n }\n ngOnChanges(changes) {\n if (isChanged('gap', changes)) {\n this.setGap();\n }\n if (isChanged('orientation', changes)) {\n this.handleAlignClasses();\n }\n }\n handleAlignClasses() {\n const elem = this.element.nativeElement;\n if (isPresent(this.justifyClass)) {\n this.renderer.removeClass(elem, this.justifyClass);\n }\n if (isPresent(this.alignClass)) {\n this.renderer.removeClass(elem, this.alignClass);\n }\n if (this.orientation === 'horizontal') {\n this.justifyClass = `${JUSTIFY_PREFIX}-${this.align.horizontal}`;\n this.alignClass = `${ALIGN_PREFIX}-${VERTICAL_SUFFIX[this.align.vertical]}`;\n }\n else {\n this.justifyClass = `${JUSTIFY_PREFIX}-${VERTICAL_SUFFIX[this.align.vertical]}`;\n this.alignClass = `${ALIGN_PREFIX}-${this.align.horizontal}`;\n }\n this.renderer.addClass(elem, this.justifyClass);\n this.renderer.addClass(elem, this.alignClass);\n }\n setGap() {\n const parsedGap = isNumber(this.gap) ? `${this.gap}px` : this.gap;\n this.renderer.setStyle(this.element.nativeElement, 'gap', parsedGap);\n }\n get direction() {\n return this.localization.rtl ? 'rtl' : 'ltr';\n }\n};\nStackLayoutComponent.ɵfac = function StackLayoutComponent_Factory(t) { return new (t || StackLayoutComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nStackLayoutComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: StackLayoutComponent, selectors: [[\"kendo-stacklayout\"]], hostVars: 7, hostBindings: function StackLayoutComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"dir\", ctx.dir);\n ɵngcc0.ɵɵclassProp(\"k-stack-layout\", ctx.hostClass)(\"k-hstack\", ctx.horizontalClass)(\"k-vstack\", ctx.verticalClass);\n } }, inputs: { gap: \"gap\", orientation: \"orientation\", align: \"align\" }, exportAs: [\"kendoStackLayout\"], features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.stacklayout'\n }\n ]), ɵngcc0.ɵɵNgOnChangesFeature], ngContentSelectors: _c7, decls: 1, vars: 0, template: function StackLayoutComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵprojection(0);\n } }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-stack-layout'),\n __metadata(\"design:type\", Boolean)\n], StackLayoutComponent.prototype, \"hostClass\", void 0);\n__decorate([\n HostBinding('class.k-hstack'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], StackLayoutComponent.prototype, \"horizontalClass\", null);\n__decorate([\n HostBinding('class.k-vstack'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], StackLayoutComponent.prototype, \"verticalClass\", null);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], StackLayoutComponent.prototype, \"dir\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], StackLayoutComponent.prototype, \"align\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], StackLayoutComponent.prototype, \"gap\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], StackLayoutComponent.prototype, \"orientation\", void 0);\nStackLayoutComponent = __decorate([ __metadata(\"design:paramtypes\", [Renderer2,\n ElementRef,\n LocalizationService])\n], StackLayoutComponent);\n\nconst exportedModules$9 = [\n StackLayoutComponent\n];\nconst declarations$9 = [\n ...exportedModules$9\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the StackLayout component.\n */\nlet StackLayoutModule = class StackLayoutModule {\n};\nStackLayoutModule.ɵfac = function StackLayoutModule_Factory(t) { return new (t || StackLayoutModule)(); };\nStackLayoutModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: StackLayoutModule });\nStackLayoutModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule]] });\n\n/**\n * Represents the [Kendo UI GridLayout component for Angular]({% slug overview_gridlayout %}).\n */\nlet GridLayoutComponent = class GridLayoutComponent {\n constructor(renderer, element, localization) {\n this.renderer = renderer;\n this.element = element;\n this.localization = localization;\n this.hostClass = true;\n /**\n * Specifies the gaps between the elements. The default value is `0`\n * ([see example]({% slug layout_gridlayout %}#toc-gaps)).\n */\n this.gap = 0;\n this._align = {\n horizontal: 'stretch',\n vertical: 'stretch'\n };\n validatePackage(packageMetadata);\n }\n get dir() {\n return this.direction;\n }\n /**\n * Specifies the horizontal and vertical alignment of the inner GridLayout elements\n * ([see example]({% slug layout_gridlayout %}#toc-alignment)).\n */\n set align(align) {\n this._align = Object.assign({}, this._align, align);\n this.handleAlignClasses();\n }\n get align() {\n return this._align;\n }\n ngAfterViewInit() {\n this.handleAlignClasses();\n this.handleGridTemplateStyling('rows');\n this.handleGridTemplateStyling('cols');\n this.setGap();\n }\n ngOnChanges(changes) {\n if (isChanged('gap', changes)) {\n this.setGap();\n }\n if (isChanged('rows', changes)) {\n this.handleGridTemplateStyling('rows');\n }\n if (isChanged('cols', changes)) {\n this.handleGridTemplateStyling('cols');\n }\n }\n handleAlignClasses() {\n const elem = this.element.nativeElement;\n if (isPresent(this.justifyClass)) {\n this.renderer.removeClass(elem, this.justifyClass);\n }\n if (isPresent(this.alignClass)) {\n this.renderer.removeClass(elem, this.alignClass);\n }\n this.justifyClass = `${GRID_JUSTIFY_PREFIX}-${this.align.horizontal}`;\n this.alignClass = `${ALIGN_PREFIX}-${VERTICAL_SUFFIX[this.align.vertical]}`;\n this.renderer.addClass(elem, this.justifyClass);\n this.renderer.addClass(elem, this.alignClass);\n }\n setGap() {\n let parsedGap = normalizeGap(this.gap);\n let gapStyle = generateGapStyle(parsedGap);\n this.renderer.setStyle(this.element.nativeElement, 'gap', gapStyle);\n }\n handleGridTemplateStyling(type) {\n if (!isPresent(this[type])) {\n return;\n }\n const isValid = validateGridLayoutRowsCols(this[type]);\n if (!isValid && isDevMode()) {\n const valueType = type === 'rows' ? 'GridLayoutRowSize' : 'GridLayoutColSize';\n throw new Error(`The provided ${type} value contains invalid elements. The array supports values of type number, string or ${valueType}.`);\n }\n const gridTemplateStyle = type === 'rows' ? 'grid-template-rows' : 'grid-template-columns';\n const gridStyle = generateGridStyle(this[type], type);\n this.renderer.setStyle(this.element.nativeElement, gridTemplateStyle, gridStyle.join(' '));\n }\n get direction() {\n return this.localization.rtl ? 'rtl' : 'ltr';\n }\n};\nGridLayoutComponent.ɵfac = function GridLayoutComponent_Factory(t) { return new (t || GridLayoutComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nGridLayoutComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: GridLayoutComponent, selectors: [[\"kendo-gridlayout\"]], hostVars: 3, hostBindings: function GridLayoutComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"dir\", ctx.dir);\n ɵngcc0.ɵɵclassProp(\"k-grid-layout\", ctx.hostClass);\n } }, inputs: { gap: \"gap\", align: \"align\", rows: \"rows\", cols: \"cols\" }, exportAs: [\"kendoGridLayout\"], features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.gridlayout'\n }\n ]), ɵngcc0.ɵɵNgOnChangesFeature], ngContentSelectors: _c7, decls: 1, vars: 0, template: function GridLayoutComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵprojection(0);\n } }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-grid-layout'),\n __metadata(\"design:type\", Boolean)\n], GridLayoutComponent.prototype, \"hostClass\", void 0);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], GridLayoutComponent.prototype, \"dir\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], GridLayoutComponent.prototype, \"rows\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], GridLayoutComponent.prototype, \"cols\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], GridLayoutComponent.prototype, \"gap\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], GridLayoutComponent.prototype, \"align\", null);\nGridLayoutComponent = __decorate([ __metadata(\"design:paramtypes\", [Renderer2,\n ElementRef,\n LocalizationService])\n], GridLayoutComponent);\n\nlet GridLayoutItemComponent = class GridLayoutItemComponent {\n constructor(renderer, element) {\n this.renderer = renderer;\n this.element = element;\n }\n ngOnInit() {\n this.setItemStyle();\n }\n ngOnChanges() {\n this.setItemStyle();\n }\n setItemStyle() {\n const row = this.row || 'auto';\n const col = this.col || 'auto';\n const rowSpan = this.rowSpan ? `span ${this.rowSpan}` : 'auto';\n const colSpan = this.colSpan ? `span ${this.colSpan}` : 'auto';\n const gridAreaStyle = `${row} / ${col} / ${rowSpan} / ${colSpan}`;\n this.renderer.setStyle(this.element.nativeElement, 'grid-area', gridAreaStyle);\n }\n};\nGridLayoutItemComponent.ɵfac = function GridLayoutItemComponent_Factory(t) { return new (t || GridLayoutItemComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nGridLayoutItemComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: GridLayoutItemComponent, selectors: [[\"kendo-gridlayout-item\"]], inputs: { row: \"row\", col: \"col\", rowSpan: \"rowSpan\", colSpan: \"colSpan\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], ngContentSelectors: _c7, decls: 1, vars: 0, template: function GridLayoutItemComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵprojection(0);\n } }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], GridLayoutItemComponent.prototype, \"row\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], GridLayoutItemComponent.prototype, \"col\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], GridLayoutItemComponent.prototype, \"rowSpan\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], GridLayoutItemComponent.prototype, \"colSpan\", void 0);\nGridLayoutItemComponent = __decorate([ __metadata(\"design:paramtypes\", [Renderer2,\n ElementRef])\n], GridLayoutItemComponent);\n\nconst exportedModules$a = [\n GridLayoutComponent,\n GridLayoutItemComponent\n];\nconst declarations$a = [\n ...exportedModules$a\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the GridLayout component.\n */\nlet GridLayoutModule = class GridLayoutModule {\n};\nGridLayoutModule.ɵfac = function GridLayoutModule_Factory(t) { return new (t || GridLayoutModule)(); };\nGridLayoutModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: GridLayoutModule });\nGridLayoutModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule]] });\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 */\nlet LayoutModule = class LayoutModule {\n};\nLayoutModule.ɵfac = function LayoutModule_Factory(t) { return new (t || LayoutModule)(); };\nLayoutModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: LayoutModule });\nLayoutModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [AvatarModule, CardModule, DrawerModule, PanelBarModule, ExpansionPanelModule, SplitterModule, StepperModule, TabStripModule, TileLayoutModule, StackLayoutModule, GridLayoutModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PanelBarService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PanelBarContentDirective, [{\n type: Directive,\n args: [{\n selector: \"[kendoPanelBarContent]\"\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PanelBarItemTitleDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoPanelBarItemTitle]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PanelBarItemComponent, [{\n type: Component,\n 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 \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 }], function () { return [{ type: PanelBarItemComponent, decorators: [{\n type: SkipSelf\n }, {\n type: Host\n }, {\n type: Optional\n }] }, { type: PanelBarService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }]; }, { id: [{\n type: Input\n }], icon: [{\n type: Input\n }], iconClass: [{\n type: Input\n }], imageUrl: [{\n type: Input\n }], disabled: [{\n type: Input\n }], selected: [{\n type: Input\n }], role: [{\n type: HostBinding,\n args: ['attr.role']\n }], titleAttribute: [{\n type: HostBinding,\n args: ['attr.title']\n }], kItemClass: [{\n type: HostBinding,\n args: ['class.k-item']\n }], expanded: [{\n type: Input\n }], kStateDefaultClass: [{\n type: HostBinding,\n args: ['class.k-state-default']\n }], kStateDisabledClass: [{\n type: HostBinding,\n args: ['class.k-state-disabled']\n }], kStateExpandedClass: [{\n type: HostBinding,\n args: ['class.k-state-expanded']\n }], itemId: [{\n type: HostBinding,\n args: ['id']\n }], ariaExpanded: [{\n type: HostBinding,\n args: ['attr.aria-expanded']\n }], ariaSelected: [{\n type: HostBinding,\n args: ['attr.aria-selected']\n }], ariaDisabled: [{\n type: HostBinding,\n args: ['attr.aria-disabled']\n }], headerClass: [{\n type: HostBinding,\n args: ['class.k-panelbar-header']\n }], childClass: [{\n type: HostBinding,\n args: ['class.k-panelbar-item']\n }], title: [{\n type: Input\n }], content: [{\n type: Input\n }], items: [{\n type: Input\n }], template: [{\n type: Input\n }], header: [{\n type: ViewChild,\n args: ['header', { static: false }]\n }], contentWrapper: [{\n type: ViewChild,\n args: ['contentWrapper', { static: false }]\n }], viewChildItems: [{\n type: ViewChildren,\n args: [PanelBarItemComponent_1]\n }], contentItems: [{\n type: ContentChildren,\n args: [PanelBarItemComponent_1]\n }], contentTemplate: [{\n type: ContentChildren,\n args: [PanelBarContentDirective, { descendants: false }]\n }], titleTemplates: [{\n type: ContentChildren,\n args: [PanelBarItemTitleDirective, { descendants: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PanelBarItemTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoPanelBarItemTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PanelBarComponent, [{\n type: Component,\n 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 }], function () { return [{ type: ɵngcc0.ElementRef }, { type: PanelBarService }, { type: ɵngcc2.LocalizationService }]; }, { expandMode: [{\n type: Input\n }], selectable: [{\n type: Input\n }], animate: [{\n type: Input\n }], height: [{\n type: Input\n }], stateChange: [{\n type: Output\n }], tabIndex: [{\n type: HostBinding,\n args: ['attr.tabIndex']\n }], role: [{\n type: HostBinding,\n args: ['attr.role']\n }], hostClass: [{\n type: HostBinding,\n args: ['class.k-panelbar']\n }], activeDescendant: [{\n type: HostBinding,\n args: ['attr.aria-activedescendant']\n }], keepItemContent: [{\n type: Input\n }], items: [{\n type: Input\n }], hostHeight: [{\n type: HostBinding,\n args: ['style.height']\n }], overflow: [{\n type: HostBinding,\n args: ['style.overflow']\n }], dir: [{\n type: HostBinding,\n args: ['attr.dir']\n }], \n /**\n * @hidden\n */\n onComponentClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }], \n /**\n * @hidden\n */\n onComponentFocus: [{\n type: HostListener,\n args: ['focus']\n }], \n /**\n * @hidden\n */\n onComponentBlur: [{\n type: HostListener,\n args: ['blur']\n }], \n /**\n * @hidden\n */\n onComponentKeyDown: [{\n type: HostListener,\n args: ['keydown', ['$event']]\n }], template: [{\n type: ContentChild,\n args: [PanelBarItemTemplateDirective, { static: false }]\n }], contentItems: [{\n type: ContentChildren,\n args: [PanelBarItemComponent, { descendants: true }]\n }], contentChildItems: [{\n type: ContentChildren,\n args: [PanelBarItemComponent]\n }], viewChildItems: [{\n type: ViewChildren,\n args: [PanelBarItemComponent]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SplitterPaneComponent, [{\n type: Component,\n args: [{\n exportAs: 'kendoSplitterPane',\n selector: 'kendo-splitter-pane',\n template: `\n \n
    \n `\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ChangeDetectorRef }]; }, { resizable: [{\n type: Input\n }], collapsible: [{\n type: Input\n }], scrollable: [{\n type: Input\n }], collapsed: [{\n type: Input\n }], orientation: [{\n type: Input\n }], overlayContent: [{\n type: Input\n }], sizeChange: [{\n type: Output\n }], collapsedChange: [{\n type: Output\n }], hostClass: [{\n type: HostBinding,\n args: ['class.k-pane']\n }], order: [{\n type: Input\n }], size: [{\n type: Input\n }], containsSplitter: [{\n type: Input\n }], staticPaneClass: [{\n type: HostBinding,\n args: ['class.k-pane-static']\n }], scrollablePaneClass: [{\n type: HostBinding,\n args: ['class.k-scrollable']\n }], min: [{\n type: Input\n }], max: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SplitterService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc0.NgZone }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SplitterBarComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-splitter-bar',\n template: `\n
    \n
    \n
    \n `\n }]\n }], function () { return [{ type: ɵngcc3.DraggableDirective, decorators: [{\n type: Host\n }] }, { type: ɵngcc0.ElementRef }, { type: SplitterService }, { type: ɵngcc2.LocalizationService }]; }, { orientation: [{\n type: Input\n }, {\n type: HostBinding,\n args: ['attr.aria-orientation']\n }], index: [{\n type: Input\n }], ariaRole: [{\n type: HostBinding,\n args: ['attr.role']\n }], focused: [{\n type: HostBinding,\n args: ['class.k-state-focused']\n }], tabIndex: [{\n type: HostBinding,\n args: ['attr.tabindex']\n }], hostClasses: [{\n type: HostBinding,\n args: ['class']\n }], order: [{\n type: HostBinding,\n args: ['style.-ms-flex-order']\n }, {\n type: HostBinding,\n args: ['style.order']\n }], collapseAny: [{\n type: HostListener,\n args: ['dblclick']\n }], onFocusIn: [{\n type: HostListener,\n args: ['focusin']\n }], onFocusOut: [{\n type: HostListener,\n args: ['focusout']\n }], onKeyDown: [{\n type: HostListener,\n args: ['keydown', ['$event']]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SplitterComponent, [{\n type: Component,\n 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 }], function () { return [{ type: ɵngcc0.ElementRef }, { type: SplitterService }, { type: ɵngcc2.LocalizationService }, { type: ɵngcc0.Renderer2 }, { type: SplitterPaneComponent, decorators: [{\n type: Optional\n }, {\n type: Host\n }, {\n type: Inject,\n args: [SplitterPaneComponent]\n }] }]; }, { orientation: [{\n type: Input\n }], ariaRole: [{\n type: HostBinding,\n args: ['attr.role']\n }], layoutChange: [{\n type: Output\n }], hostClasses: [{\n type: HostBinding,\n args: ['class.k-widget']\n }, {\n type: HostBinding,\n args: ['class.k-splitter']\n }, {\n type: HostBinding,\n args: ['class.k-splitter-flex']\n }], horizontalHostClasses: [{\n type: HostBinding,\n args: ['class.k-splitter-horizontal']\n }], verticalHostClasses: [{\n type: HostBinding,\n args: ['class.k-splitter-vertical']\n }], dir: [{\n type: HostBinding,\n args: ['attr.dir']\n }], splitbars: [{\n type: ViewChildren,\n args: [SplitterBarComponent]\n }], panes: [{\n type: ContentChildren,\n args: [SplitterPaneComponent]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TabContentDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTabContent]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TabTitleDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTabTitle]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TabStripTabComponent, [{\n type: Component,\n args: [{\n exportAs: 'kendoTabStripTab',\n selector: 'kendo-tabstrip-tab',\n template: ``\n }]\n }], function () { return []; }, { disabled: [{\n type: Input\n }], _tabContent: [{\n type: ContentChildren,\n args: [TabContentDirective]\n }], title: [{\n type: Input\n }], cssClass: [{\n type: Input\n }], cssStyle: [{\n type: Input\n }], selected: [{\n type: Input\n }], closable: [{\n type: Input\n }], closeIcon: [{\n type: Input\n }], _tabTitleDirective: [{\n type: ContentChildren,\n args: [TabTitleDirective]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TabStripService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc2.LocalizationService }, { type: ɵngcc0.NgZone }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ScrollService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc0.NgZone }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TabStripScrollableButtonComponent, [{\n type: Component,\n args: [{\n template: `\n \n `,\n selector: '[kendoTabStripScrollableButton]'\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ScrollService }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.NgZone }]; }, { btnClasses: [{\n type: HostBinding,\n args: ['class.k-button']\n }, {\n type: HostBinding,\n args: ['class.k-button-md']\n }, {\n type: HostBinding,\n args: ['class.k-icon-button']\n }, {\n type: HostBinding,\n args: ['class.k-rounded-md']\n }, {\n type: HostBinding,\n args: ['class.k-button-flat']\n }, {\n type: HostBinding,\n args: ['class.k-button-flat-base']\n }], prev: [{\n type: Input\n }], disabled: [{\n type: HostBinding,\n args: ['class.k-disabled']\n }], prevClass: [{\n type: HostBinding,\n args: ['class.k-tabstrip-prev']\n }], nextClass: [{\n type: HostBinding,\n args: ['class.k-tabstrip-next']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TabStripComponent, [{\n type: Component,\n 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 TabStripService,\n ScrollService,\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
    \n \n
      \n \n
    • \n
    • \n
      \n
    \n \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }, { type: TabStripService }, { type: ScrollService }, { type: ɵngcc0.NgZone }]; }, { animate: [{\n type: Input\n }], tabPosition: [{\n type: Input\n }], keepTabContent: [{\n type: Input\n }], closable: [{\n type: Input\n }], closeIcon: [{\n type: Input\n }], tabSelect: [{\n type: Output\n }], tabClose: [{\n type: Output\n }], tabScroll: [{\n type: Output\n }], hostClasses: [{\n type: HostBinding,\n args: ['class.k-tabstrip']\n }, {\n type: HostBinding,\n args: ['class.k-floatwrap']\n }], tabs: [{\n type: ContentChildren,\n args: [TabStripTabComponent]\n }], height: [{\n type: Input\n }], scrollable: [{\n type: Input\n }], tabsAtTop: [{\n type: HostBinding,\n args: ['class.k-tabstrip-top']\n }], tabsAtRight: [{\n type: HostBinding,\n args: ['class.k-tabstrip-right']\n }], tabsAtBottom: [{\n type: HostBinding,\n args: ['class.k-tabstrip-bottom']\n }], tabsAtLeft: [{\n type: HostBinding,\n args: ['class.k-tabstrip-left']\n }], dir: [{\n type: HostBinding,\n args: ['attr.dir']\n }], tabStripScrollable: [{\n type: HostBinding,\n args: ['class.k-tabstrip-scrollable']\n }], tabAlignment: [{\n type: Input\n }], tablist: [{\n type: ViewChild,\n args: ['tablist', { static: false }]\n }], tabHeaderContainers: [{\n type: ViewChildren,\n args: ['tabHeaderContainer', { read: ElementRef }]\n }], prevScrollButton: [{\n type: ViewChild,\n args: ['prevScrollButton', { static: false }]\n }], nextScrollButton: [{\n type: ViewChild,\n args: ['nextScrollButton', { static: false }]\n }] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LocalizedTabStripMessagesDirective, [{\n type: Directive,\n args: [{\n providers: [\n {\n provide: TabStripMessages,\n useExisting: forwardRef(() => LocalizedTabStripMessagesDirective_1)\n }\n ],\n selector: `[kendoTabStripLocalizedMessages]`\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TabStripCustomMessagesComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: TabStripMessages,\n useExisting: forwardRef(() => TabStripCustomMessagesComponent_1)\n }\n ],\n selector: 'kendo-tabstrip-messages',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DrawerTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoDrawerTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DrawerItemTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoDrawerItemTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DrawerHeaderTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoDrawerHeaderTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DrawerFooterTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoDrawerFooterTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DrawerService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DrawerComponent, [{\n type: Component,\n 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 }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc4.AnimationBuilder }, { type: ɵngcc2.LocalizationService }, { type: DrawerService }]; }, { hostClasses: [{\n type: HostBinding,\n args: ['class.k-widget']\n }, {\n type: HostBinding,\n args: ['class.k-drawer']\n }], mode: [{\n type: Input\n }], position: [{\n type: Input\n }], mini: [{\n type: Input\n }], expanded: [{\n type: Input\n }], width: [{\n type: Input\n }], miniWidth: [{\n type: Input\n }], autoCollapse: [{\n type: Input\n }], animation: [{\n type: Input\n }], expand: [{\n type: Output\n }], collapse: [{\n type: Output\n }], select: [{\n type: Output\n }], expandedChange: [{\n type: Output\n }], direction: [{\n type: HostBinding,\n args: ['attr.dir']\n }], startPositionClass: [{\n type: HostBinding,\n args: ['class.k-drawer-start']\n }], endPositionClass: [{\n type: HostBinding,\n args: ['class.k-drawer-end']\n }], overlayTransofrmStyles: [{\n type: HostBinding,\n args: ['style.transform']\n }], flexStyles: [{\n type: HostBinding,\n args: ['style.flexBasis.px']\n }], items: [{\n type: Input\n }], drawerTemplate: [{\n type: ContentChild,\n args: [DrawerTemplateDirective, { static: false }]\n }], footerTemplate: [{\n type: ContentChild,\n args: [DrawerFooterTemplateDirective, { static: false }]\n }], headerTemplate: [{\n type: ContentChild,\n args: [DrawerHeaderTemplateDirective, { static: false }]\n }], itemTemplate: [{\n type: ContentChild,\n args: [DrawerItemTemplateDirective, { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DrawerContainerComponent, [{\n type: Component,\n 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 }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, { direction: [{\n type: HostBinding,\n args: ['attr.dir']\n }], hostClass: [{\n type: HostBinding,\n args: ['class.k-drawer-container']\n }], overlayClass: [{\n type: HostBinding,\n args: ['class.k-drawer-overlay']\n }], miniClass: [{\n type: HostBinding,\n args: ['class.k-drawer-mini']\n }], pushClass: [{\n type: HostBinding,\n args: ['class.k-drawer-push']\n }], isExpandedClass: [{\n type: HostBinding,\n args: ['class.k-drawer-expanded']\n }], drawer: [{\n type: ContentChild,\n args: [DrawerComponent, { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DrawerContentComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-drawer-content',\n template: `\n \n `,\n encapsulation: ViewEncapsulation.None\n }]\n }], function () { return []; }, { hostClasses: [{\n type: HostBinding,\n args: ['class.k-drawer-content']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(StepperStepTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoStepperStepTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(StepperLabelTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoStepperLabelTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(StepperIndicatorTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoStepperIndicatorTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(StepperService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc2.LocalizationService }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ChangeDetectorRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(StepperComponent, [{\n type: Component,\n args: [{\n exportAs: 'kendoStepper',\n providers: [\n LocalizationService,\n StepperService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.stepper'\n }\n ],\n selector: 'kendo-stepper',\n template: `\n \n \n
      \n
    \n\n \n \n `\n }]\n }], function () { return [{ type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }, { type: ɵngcc2.LocalizationService }, { type: StepperService }]; }, { hostClasses: [{\n type: HostBinding,\n args: ['class.k-widget']\n }, {\n type: HostBinding,\n args: ['class.k-stepper']\n }], ariaRole: [{\n type: HostBinding,\n args: ['attr.role']\n }], displayStyle: [{\n type: HostBinding,\n args: ['style.display']\n }], stepType: [{\n type: Input\n }], linear: [{\n type: Input\n }], orientation: [{\n type: Input\n }], animation: [{\n type: Input\n }], activate: [{\n type: Output\n }], currentStepChange: [{\n type: Output\n }], direction: [{\n type: HostBinding,\n args: ['attr.dir']\n }], linearClass: [{\n type: HostBinding,\n args: ['class.k-stepper-linear']\n }], currentStep: [{\n type: Input\n }], steps: [{\n type: Input\n }], successIcon: [{\n type: Input\n }], errorIcon: [{\n type: Input\n }], stepTemplate: [{\n type: ContentChild,\n args: [StepperStepTemplateDirective, { static: false }]\n }], labelTemplate: [{\n type: ContentChild,\n args: [StepperLabelTemplateDirective, { static: false }]\n }], indicatorTemplate: [{\n type: ContentChild,\n args: [StepperIndicatorTemplateDirective, { static: false }]\n }] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(StepperCustomMessagesComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: StepperMessages,\n useExisting: forwardRef(() => StepperCustomMessagesComponent_1)\n }\n ],\n selector: 'kendo-stepper-messages',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LocalizedStepperMessagesDirective, [{\n type: Directive,\n args: [{\n providers: [\n {\n provide: StepperMessages,\n useExisting: forwardRef(() => LocalizedStepperMessagesDirective_1)\n }\n ],\n selector: `\n [kendoStepperLocalizedMessages]\n `\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AvatarComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-avatar',\n template: `\n \n\n \n \n \n \n \n\n \n {{ initials.substring(0, 2) }}\n \n\n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }]; }, { hostClass: [{\n type: HostBinding,\n args: ['class.k-avatar']\n }], border: [{\n type: Input\n }], borderClass: [{\n type: HostBinding,\n args: ['class.k-avatar-bordered']\n }], flexBasis: [{\n type: HostBinding,\n args: ['style.flexBasis']\n }], shape: [{\n type: Input\n }], rounded: [{\n type: Input\n }], size: [{\n type: Input\n }], themeColor: [{\n type: Input\n }], fillMode: [{\n type: Input\n }], fill: [{\n type: Input\n }], avatarWidth: [{\n type: HostBinding,\n args: ['style.width']\n }], avatarHeight: [{\n type: HostBinding,\n args: ['style.height']\n }], iconClass: [{\n type: Input\n }], width: [{\n type: Input\n }], height: [{\n type: Input\n }], cssStyle: [{\n type: Input\n }], initials: [{\n type: Input\n }], icon: [{\n type: Input\n }], imageSrc: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CardComponent, [{\n type: Component,\n 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 }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, { hostClass: [{\n type: HostBinding,\n args: ['class.k-widget']\n }, {\n type: HostBinding,\n args: ['class.k-card']\n }], orientation: [{\n type: Input\n }], width: [{\n type: Input\n }], direction: [{\n type: HostBinding,\n args: ['attr.dir']\n }], widthStyle: [{\n type: HostBinding,\n args: ['style.width']\n }], vertical: [{\n type: HostBinding,\n args: ['class.k-card-vertical']\n }], horizontal: [{\n type: HostBinding,\n args: ['class.k-card-horizontal']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CardHeaderComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-card-header',\n template: `\n \n `\n }]\n }], function () { return []; }, { hostClass: [{\n type: HostBinding,\n args: ['class.k-card-header']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CardBodyComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-card-body',\n template: `\n \n `\n }]\n }], function () { return []; }, { hostClass: [{\n type: HostBinding,\n args: ['class.k-card-body']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CardFooterComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-card-footer',\n template: `\n \n `\n }]\n }], function () { return []; }, { hostClass: [{\n type: HostBinding,\n args: ['class.k-card-footer']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CardActionsComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-card-actions',\n template: `\n \n\n \n \n \n\n \n `\n }]\n }], function () { return []; }, { hostClass: [{\n type: HostBinding,\n args: ['class.k-card-actions']\n }], orientation: [{\n type: Input\n }], layout: [{\n type: Input\n }], action: [{\n type: Output\n }], stretchedClass: [{\n type: HostBinding,\n args: ['class.k-card-actions-stretched']\n }], startClass: [{\n type: HostBinding,\n args: ['class.k-card-actions-start']\n }], endClass: [{\n type: HostBinding,\n args: ['class.k-card-actions-end']\n }], centerClass: [{\n type: HostBinding,\n args: ['class.k-card-actions-center']\n }], verticalClass: [{\n type: HostBinding,\n args: ['class.k-card-actions-vertical']\n }], horizontalClass: [{\n type: HostBinding,\n args: ['class.k-card-actions-horizontal']\n }], actions: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CardSeparatorDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoCardSeparator]'\n }]\n }], function () { return []; }, { hostClass: [{\n type: HostBinding,\n args: ['class.k-card-separator']\n }], orientation: [{\n type: Input\n }], verticalClass: [{\n type: HostBinding,\n args: ['class.k-separator-vertical']\n }], horizontalClass: [{\n type: HostBinding,\n args: ['class.k-separator-horizontal']\n }], color: [{\n type: HostBinding,\n args: ['style.color']\n }, {\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CardTitleDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoCardTitle]'\n }]\n }], function () { return []; }, { hostClass: [{\n type: HostBinding,\n args: ['class.k-card-title']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CardSubtitleDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoCardSubtitle]'\n }]\n }], function () { return []; }, { hostClass: [{\n type: HostBinding,\n args: ['class.k-card-subtitle']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CardMediaDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoCardMedia]'\n }]\n }], function () { return []; }, { hostClass: [{\n type: HostBinding,\n args: ['class.k-card-media']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ExpansionPanelTitleDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoExpansionPanelTitleDirective]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ExpansionPanelComponent, [{\n type: Component,\n args: [{\n exportAs: 'kendoExpansionPanel',\n providers: [\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.expansionpanel'\n }\n ],\n selector: 'kendo-expansionpanel',\n template: `\n \n \n
    {{ title }}
    \n \n
    \n {{ subtitle }}\n
    \n
    \n \n
    \n \n \n \n \n
    \n
    \n \n
    \n
    \n `\n }]\n }], function () { return [{ type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }, { type: ɵngcc2.LocalizationService }, { type: ɵngcc4.AnimationBuilder }]; }, { title: [{\n type: Input\n }], subtitle: [{\n type: Input\n }], disabled: [{\n type: Input\n }], animation: [{\n type: Input\n }], expandedChange: [{\n type: Output\n }], action: [{\n type: Output\n }], expand: [{\n type: Output\n }], collapse: [{\n type: Output\n }], hostClass: [{\n type: HostBinding,\n args: ['class.k-expander']\n }], tabindex: [{\n type: HostBinding,\n args: ['attr.tabindex']\n }], direction: [{\n type: HostBinding,\n args: ['attr.dir']\n }], expanded: [{\n type: Input\n }], expandedClass: [{\n type: HostBinding,\n args: ['attr.aria-expanded']\n }, {\n type: HostBinding,\n args: ['class.k-expanded']\n }], focusClass: [{\n type: HostBinding,\n args: ['class.k-state-focus']\n }], disabledClass: [{\n type: HostBinding,\n args: ['attr.aria-disabled']\n }, {\n type: HostBinding,\n args: ['class.k-state-disabled']\n }], \n /**\n * @hidden\n */\n onComponentBlur: [{\n type: HostListener,\n args: ['blur']\n }], \n /**\n * @hidden\n */\n onComponentFocus: [{\n type: HostListener,\n args: ['focus']\n }], expandIcon: [{\n type: Input\n }], collapseIcon: [{\n type: Input\n }], titleTemplate: [{\n type: ContentChild,\n args: [ExpansionPanelTitleDirective, { static: false }]\n }], content: [{\n type: ViewChild,\n args: ['content', { static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TileLayoutDraggingService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc0.NgZone }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc2.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TileLayoutItemComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-tilelayout-item',\n template: `\n \n
    {{ title }}
    \n
    \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc2.LocalizationService }, { type: TileLayoutDraggingService }]; }, { rowSpan: [{\n type: Input\n }], colSpan: [{\n type: Input\n }], reorderable: [{\n type: Input\n }], resizable: [{\n type: Input\n }], itemClass: [{\n type: HostBinding,\n args: ['class.k-tilelayout-item']\n }, {\n type: HostBinding,\n args: ['class.k-card']\n }], order: [{\n type: Input\n }], colEnd: [{\n type: HostBinding,\n args: ['style.grid-column-end']\n }], rowEnd: [{\n type: HostBinding,\n args: ['style.grid-row-end']\n }], colStart: [{\n type: HostBinding,\n args: ['style.grid-column-start']\n }], rowStart: [{\n type: HostBinding,\n args: ['style.grid-row-start']\n }], title: [{\n type: Input\n }], col: [{\n type: Input\n }], row: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TileLayoutComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-tilelayout',\n providers: [\n LocalizationService,\n TileLayoutDraggingService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.tilelayout.component'\n }\n ],\n template: `\n \n
    \n `\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc2.LocalizationService }, { type: TileLayoutDraggingService }, { type: ɵngcc0.NgZone }]; }, { columns: [{\n type: Input\n }], columnWidth: [{\n type: Input\n }], reorderable: [{\n type: Input\n }], resizable: [{\n type: Input\n }], rowHeight: [{\n type: Input\n }], autoFlow: [{\n type: Input\n }], reorder: [{\n type: Output\n }], resize: [{\n type: Output\n }], hostClass: [{\n type: HostBinding,\n args: ['class.k-widget']\n }, {\n type: HostBinding,\n args: ['class.k-tilelayout']\n }], gap: [{\n type: Input\n }], gapStyle: [{\n type: HostBinding,\n args: ['style.gap']\n }, {\n type: HostBinding,\n args: ['style.padding']\n }], direction: [{\n type: HostBinding,\n args: ['attr.dir']\n }], items: [{\n type: ContentChildren,\n args: [TileLayoutItemComponent]\n }], hint: [{\n type: ViewChild,\n args: ['hint', { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TileLayoutItemBodyComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-tilelayout-item-body',\n template: `\n \n `\n }]\n }], function () { return []; }, { hostClass: [{\n type: HostBinding,\n args: ['class.k-tilelayout-item-body']\n }, {\n type: HostBinding,\n args: ['class.k-card-body']\n }], minHeight: [{\n type: HostBinding,\n args: ['style.min-height']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TileLayoutItemHeaderComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-tilelayout-item-header',\n template: `\n \n `\n }]\n }], function () { return [{ type: TileLayoutDraggingService }]; }, { hostClass: [{\n type: HostBinding,\n args: ['class.k-tilelayout-item-header']\n }, {\n type: HostBinding,\n args: ['class.k-card-header']\n }], touchActionNone: [{\n type: HostBinding,\n args: ['class.k-touch-action-none']\n }], touchActionAuto: [{\n type: HostBinding,\n args: ['class.k-touch-action-auto']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AvatarModule, [{\n type: NgModule,\n args: [{\n declarations: [declarations],\n exports: [exportedModules],\n imports: [CommonModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(AvatarModule, { declarations: function () { return [AvatarComponent]; }, imports: function () { return [CommonModule]; }, exports: function () { return [AvatarComponent]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CardModule, [{\n type: NgModule,\n args: [{\n declarations: [declarations$1],\n exports: [exportedModules$1],\n imports: [CommonModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(CardModule, { declarations: function () { return [CardComponent, CardHeaderComponent, CardBodyComponent, CardFooterComponent, CardActionsComponent, CardTitleDirective, CardSubtitleDirective, CardSeparatorDirective, CardMediaDirective]; }, imports: function () { return [CommonModule]; }, exports: function () { return [CardComponent, CardHeaderComponent, CardBodyComponent, CardFooterComponent, CardActionsComponent, CardTitleDirective, CardSubtitleDirective, CardSeparatorDirective, CardMediaDirective]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DrawerItemComponent, [{\n type: Component,\n args: [{\n selector: '[kendoDrawerItem]',\n template: `\n \n \n\n \n \n \n {{ item.text }}\n \n \n \n \n \n `\n }]\n }], function () { return [{ type: DrawerService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }]; }, { disabledClass: [{\n type: HostBinding,\n args: ['attr.aria-disabled']\n }, {\n type: HostBinding,\n args: ['class.k-state-disabled']\n }], selectedClass: [{\n type: HostBinding,\n args: ['attr.aria-selected']\n }, {\n type: HostBinding,\n args: ['class.k-state-selected']\n }], label: [{\n type: HostBinding,\n args: ['attr.aria-label']\n }], item: [{\n type: Input\n }], index: [{\n type: Input\n }], itemTemplate: [{\n type: Input\n }], mini: [{\n type: Input\n }], expanded: [{\n type: Input\n }], disabled: [{\n type: Input\n }], cssClass: [{\n type: Input\n }], cssStyle: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DrawerListComponent, [{\n type: Component,\n args: [{\n selector: '[kendoDrawerList]',\n template: `\n \n
  • \n
  • \n\n
  • \n  \n
  • \n
    \n `\n }]\n }], function () { return [{ type: DrawerService }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.ElementRef }]; }, { items: [{\n type: Input\n }], itemTemplate: [{\n type: Input\n }], mini: [{\n type: Input\n }], expanded: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DrawerModule, [{\n type: NgModule,\n args: [{\n declarations: [declarations$2],\n exports: [exportedModules$2],\n imports: [CommonModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(DrawerModule, { declarations: function () { return [DrawerItemComponent, DrawerListComponent, DrawerComponent, DrawerContainerComponent, DrawerContentComponent, DrawerTemplateDirective, DrawerHeaderTemplateDirective, DrawerFooterTemplateDirective, DrawerItemTemplateDirective]; }, imports: function () { return [CommonModule]; }, exports: function () { return [DrawerComponent, DrawerContainerComponent, DrawerContentComponent, DrawerTemplateDirective, DrawerHeaderTemplateDirective, DrawerFooterTemplateDirective, DrawerItemTemplateDirective]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ExpansionPanelModule, [{\n type: NgModule,\n args: [{\n declarations: [declarations$3],\n exports: [exportedModules$3],\n imports: [CommonModule, EventsModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(ExpansionPanelModule, { declarations: function () { return [ExpansionPanelComponent, ExpansionPanelTitleDirective]; }, imports: function () { return [CommonModule, EventsModule]; }, exports: function () { return [ExpansionPanelComponent, ExpansionPanelTitleDirective]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PanelBarModule, [{\n type: NgModule,\n args: [{\n declarations: [declarations$4],\n exports: [exportedModules$4],\n imports: [CommonModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(PanelBarModule, { declarations: function () { return [PanelBarComponent, PanelBarItemComponent, PanelBarContentDirective, PanelBarItemTemplateDirective, PanelBarItemTitleDirective]; }, imports: function () { return [CommonModule]; }, exports: function () { return [PanelBarComponent, PanelBarItemComponent, PanelBarContentDirective, PanelBarItemTemplateDirective, PanelBarItemTitleDirective]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SplitterModule, [{\n type: NgModule,\n args: [{\n declarations: [declarations$5],\n exports: [exportedModules$5],\n imports: [\n CommonModule,\n DraggableModule\n ]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(SplitterModule, { declarations: function () { return [SplitterBarComponent, SplitterComponent, SplitterPaneComponent]; }, imports: function () { return [CommonModule,\n DraggableModule]; }, exports: function () { return [SplitterComponent, SplitterPaneComponent]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(StepperStepComponent, [{\n type: Component,\n args: [{\n selector: '[kendoStepperStep]',\n template: `\n \n \n \n\n \n \n\n \n \n \n\n \n {{ step.label }}\n \n ({{optionalText}})\n \n \n \n \n `\n }]\n }], function () { return [{ type: StepperService }, { type: ɵngcc2.LocalizationService }, { type: ɵngcc0.NgZone }]; }, { errorStepClass: [{\n type: HostBinding,\n args: ['class.k-step-error']\n }], successStepClass: [{\n type: HostBinding,\n args: ['class.k-step-success']\n }], step: [{\n type: Input\n }], index: [{\n type: Input\n }], current: [{\n type: Input\n }], type: [{\n type: Input\n }], successIcon: [{\n type: Input\n }], errorIcon: [{\n type: Input\n }], indicatorTemplate: [{\n type: Input\n }], labelTemplate: [{\n type: Input\n }], stepTemplate: [{\n type: Input\n }], stepLink: [{\n type: ViewChild,\n args: ['stepLink', { static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(StepperListComponent, [{\n type: Component,\n args: [{\n selector: '[kendoStepperList]',\n template: `\n \n
  • \n
  • \n
    \n `\n }]\n }], function () { return [{ type: ɵngcc0.Renderer2 }, { type: ɵngcc0.NgZone }, { type: StepperService }, { type: ɵngcc0.ElementRef }]; }, { linear: [{\n type: Input\n }], stepType: [{\n type: Input\n }], orientation: [{\n type: Input\n }], currentStep: [{\n type: Input\n }], steps: [{\n type: Input\n }], successIcon: [{\n type: Input\n }], errorIcon: [{\n type: Input\n }], indicatorTemplate: [{\n type: Input\n }], labelTemplate: [{\n type: Input\n }], stepTemplate: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(StepperModule, [{\n type: NgModule,\n args: [{\n declarations: [declarations$6],\n exports: [exportedModules$6],\n imports: [CommonModule, ProgressBarModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(StepperModule, { declarations: function () { return [StepperStepComponent, StepperListComponent, LocalizedStepperMessagesDirective, StepperComponent, StepperCustomMessagesComponent, StepperStepTemplateDirective, StepperLabelTemplateDirective, StepperIndicatorTemplateDirective]; }, imports: function () { return [CommonModule, ProgressBarModule]; }, exports: function () { return [StepperComponent, StepperCustomMessagesComponent, StepperStepTemplateDirective, StepperLabelTemplateDirective, StepperIndicatorTemplateDirective]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TabComponent, [{\n type: Component,\n args: [{\n selector: '[kendoTabStripTab]',\n template: `\n {{ tab.title }}\n \n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }, { type: TabStripService }]; }, { hostClasses: [{\n type: HostBinding,\n args: ['class.k-item']\n }, {\n type: HostBinding,\n args: ['class.k-state-default']\n }], activeClass: [{\n type: HostBinding,\n args: ['attr.aria-selected]']\n }, {\n type: HostBinding,\n args: ['class.k-state-active']\n }], disabledClass: [{\n type: HostBinding,\n args: ['attr.aria-disabled]']\n }, {\n type: HostBinding,\n args: ['class.k-state-disabled']\n }], focusedClass: [{\n type: HostBinding,\n args: ['class.k-state-focused']\n }], tabIndex: [{\n type: HostBinding,\n args: ['attr.tabindex']\n }], tab: [{\n type: Input\n }], index: [{\n type: Input\n }], tabStripClosable: [{\n type: Input\n }], tabStripCloseIcon: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TabStripModule, [{\n type: NgModule,\n args: [{\n declarations: [declarations$7],\n exports: [exportedModules$7],\n imports: [CommonModule, ResizeSensorModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(TabStripModule, { declarations: function () { return [TabStripComponent, TabStripTabComponent, TabContentDirective, TabTitleDirective, TabComponent, TabStripCustomMessagesComponent, LocalizedTabStripMessagesDirective, TabStripScrollableButtonComponent]; }, imports: function () { return [CommonModule, ResizeSensorModule]; }, exports: function () { return [TabStripComponent, TabStripTabComponent, TabContentDirective, TabTitleDirective, TabComponent, TabStripCustomMessagesComponent, LocalizedTabStripMessagesDirective]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TileLayoutResizeHandleDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTileLayoutResizeHandle]'\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }]; }, { resizeDirection: [{\n type: Input\n }], rtl: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TileLayoutModule, [{\n type: NgModule,\n args: [{\n declarations: [declarations$8],\n exports: [exportedModules$8],\n imports: [CommonModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(TileLayoutModule, { declarations: function () { return [TileLayoutComponent, TileLayoutItemComponent, TileLayoutItemHeaderComponent, TileLayoutItemBodyComponent, TileLayoutResizeHandleDirective]; }, imports: function () { return [CommonModule]; }, exports: function () { return [TileLayoutComponent, TileLayoutItemComponent, TileLayoutItemHeaderComponent, TileLayoutItemBodyComponent, TileLayoutResizeHandleDirective]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(StackLayoutComponent, [{\n type: Component,\n args: [{\n exportAs: 'kendoStackLayout',\n selector: 'kendo-stacklayout',\n providers: [\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.stacklayout'\n }\n ],\n template: `\n \n `\n }]\n }], function () { return [{ type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }, { type: ɵngcc2.LocalizationService }]; }, { hostClass: [{\n type: HostBinding,\n args: ['class.k-stack-layout']\n }], gap: [{\n type: Input\n }], orientation: [{\n type: Input\n }], horizontalClass: [{\n type: HostBinding,\n args: ['class.k-hstack']\n }], verticalClass: [{\n type: HostBinding,\n args: ['class.k-vstack']\n }], dir: [{\n type: HostBinding,\n args: ['attr.dir']\n }], align: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(StackLayoutModule, [{\n type: NgModule,\n args: [{\n declarations: [declarations$9],\n exports: [exportedModules$9],\n imports: [CommonModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(StackLayoutModule, { declarations: function () { return [StackLayoutComponent]; }, imports: function () { return [CommonModule]; }, exports: function () { return [StackLayoutComponent]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(GridLayoutComponent, [{\n type: Component,\n args: [{\n exportAs: 'kendoGridLayout',\n selector: 'kendo-gridlayout',\n providers: [\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.gridlayout'\n }\n ],\n template: `\n \n `\n }]\n }], function () { return [{ type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }, { type: ɵngcc2.LocalizationService }]; }, { hostClass: [{\n type: HostBinding,\n args: ['class.k-grid-layout']\n }], gap: [{\n type: Input\n }], dir: [{\n type: HostBinding,\n args: ['attr.dir']\n }], align: [{\n type: Input\n }], rows: [{\n type: Input\n }], cols: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(GridLayoutItemComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-gridlayout-item',\n template: `\n \n `\n }]\n }], function () { return [{ type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }]; }, { row: [{\n type: Input\n }], col: [{\n type: Input\n }], rowSpan: [{\n type: Input\n }], colSpan: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(GridLayoutModule, [{\n type: NgModule,\n args: [{\n declarations: [declarations$a],\n exports: [exportedModules$a],\n imports: [CommonModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(GridLayoutModule, { declarations: function () { return [GridLayoutComponent, GridLayoutItemComponent]; }, imports: function () { return [CommonModule]; }, exports: function () { return [GridLayoutComponent, GridLayoutItemComponent]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LayoutModule, [{\n type: NgModule,\n args: [{\n exports: [\n AvatarModule,\n CardModule,\n DrawerModule,\n PanelBarModule,\n ExpansionPanelModule,\n SplitterModule,\n StepperModule,\n TabStripModule,\n TileLayoutModule,\n StackLayoutModule,\n GridLayoutModule\n ]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(LayoutModule, { exports: [AvatarModule, CardModule, DrawerModule, PanelBarModule, ExpansionPanelModule, SplitterModule, StepperModule, TabStripModule, TileLayoutModule, StackLayoutModule, GridLayoutModule] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { PreventableEvent$1 as PreventableEvent, DrawerService, DrawerItemComponent, DrawerListComponent, DRAWER_ITEM_INDEX, PanelBarService, SplitterBarComponent, SplitterService, StepperListComponent, StepperMessages, STEPPER_STEP_INDEX, StepperStepComponent, StepperService, TabStripMessages, TabComponent, TabStripScrollableButtonComponent, ScrollService, TabStripService, TileLayoutDraggingService, PreventableEvent$2 as PreventableEvent$1, TileLayoutResizeHandleDirective, PanelBarComponent, PanelBarItemComponent, PanelBarContentDirective, PanelBarItemTemplateDirective, PanelBarItemTitleDirective, PanelBarExpandMode, SplitterComponent, SplitterPaneComponent, TabStripComponent, TabStripTabComponent, TabContentDirective, TabTitleDirective, LocalizedTabStripMessagesDirective, TabStripCustomMessagesComponent, DrawerComponent, DrawerContainerComponent, DrawerContentComponent, DrawerSelectEvent, StepperComponent, StepperActivateEvent, StepperCustomMessagesComponent, LocalizedStepperMessagesDirective, AvatarComponent, CardComponent, CardHeaderComponent, CardBodyComponent, CardFooterComponent, CardActionsComponent, CardSeparatorDirective, CardTitleDirective, CardSubtitleDirective, CardMediaDirective, CardAction, ExpansionPanelComponent, ExpansionPanelTitleDirective, ExpansionPanelActionEvent, TileLayoutComponent, TileLayoutItemComponent, TileLayoutItemBodyComponent, TileLayoutItemHeaderComponent, TileLayoutReorderEvent, TileLayoutResizeEvent, AvatarModule, CardModule, DrawerModule, LayoutModule, PanelBarModule, SplitterModule, StepperModule, TabStripModule, ExpansionPanelModule, TileLayoutModule, StackLayoutModule, GridLayoutModule, StackLayoutComponent, GridLayoutComponent, GridLayoutItemComponent, TabCloseEvent, SelectEvent, DrawerTemplateDirective, DrawerItemTemplateDirective, DrawerHeaderTemplateDirective, DrawerFooterTemplateDirective, StepperIndicatorTemplateDirective, StepperLabelTemplateDirective, StepperStepTemplateDirective };\n\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, Input, Directive, ElementRef, Renderer2, TemplateRef, Optional, EventEmitter, NgZone, HostBinding, ContentChild, ViewChild, ViewChildren, QueryList, Output, Component, ChangeDetectionStrategy, ViewContainerRef, HostListener, NgModule } from '@angular/core';\nimport { isDocumentAvailable, Keys, isChanged, hasObservers, EventsModule } from '@progress/kendo-angular-common';\nimport { validatePackage } from '@progress/kendo-licensing';\nimport { LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';\nimport { Subject, Subscription } from 'rxjs';\nimport { FormGroup, FormControl } from '@angular/forms';\nimport { switchMap, take } from 'rxjs/operators';\nimport { PageSizeChangeEvent, PagerModule } from '@progress/kendo-angular-pager';\nimport { CommonModule } from '@angular/common';\nimport { Button } from '@progress/kendo-angular-buttons';\n\n/**\n * @hidden\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/common';\nimport * as ɵngcc2 from '@progress/kendo-angular-common';\nimport * as ɵngcc3 from '@progress/kendo-angular-pager';\nimport * as ɵngcc4 from '@progress/kendo-angular-l10n';\n\nconst _c0 = [\"contentContainer\"];\nfunction ListViewComponent_0_ng_template_0_Template(rf, ctx) { }\nconst _c1 = function () { return { pagerClass: \"k-listview-pager k-listview-pager-top\" }; };\nfunction ListViewComponent_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ListViewComponent_0_ng_template_0_Template, 0, 0, \"ng-template\", 9);\n} if (rf & 2) {\n ɵngcc0.ɵɵnextContext();\n const _r9 = ɵngcc0.ɵɵreference(11);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", _r9)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction0(2, _c1));\n} }\nfunction ListViewComponent_div_1_ng_template_1_Template(rf, ctx) { }\nfunction ListViewComponent_div_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 10);\n ɵngcc0.ɵɵtemplate(1, ListViewComponent_div_1_ng_template_1_Template, 0, 0, \"ng-template\", 11);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.headerTemplate == null ? null : ctx_r1.headerTemplate.templateRef);\n} }\nfunction ListViewComponent_div_4_1_ng_template_0_Template(rf, ctx) { }\nfunction ListViewComponent_div_4_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ListViewComponent_div_4_1_ng_template_0_Template, 0, 0, \"ng-template\", 9);\n} if (rf & 2) {\n const ctx_r13 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r13.editTemplate == null ? null : ctx_r13.editTemplate.templateRef)(\"ngTemplateOutletContext\", ctx_r13.editTemplateContext(-1));\n} }\nfunction ListViewComponent_div_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 12);\n ɵngcc0.ɵɵtemplate(1, ListViewComponent_div_4_1_Template, 1, 2, null, 0);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"index\", -1)(\"ngClass\", ctx_r3.itemClass)(\"ngStyle\", ctx_r3.itemStyle);\n ɵngcc0.ɵɵattribute(\"role\", ctx_r3.listItemRole)(\"data-kendo-listview-item-index\", -1);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r3.editTemplate);\n} }\nfunction ListViewComponent_div_5_ng_template_1_Template(rf, ctx) { }\nfunction ListViewComponent_div_5_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 12);\n ɵngcc0.ɵɵtemplate(1, ListViewComponent_div_5_ng_template_1_Template, 0, 0, \"ng-template\", 9);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const index_r16 = ctx.index;\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"index\", index_r16)(\"ngClass\", ctx_r4.itemClass)(\"ngStyle\", ctx_r4.itemStyle);\n ɵngcc0.ɵɵattribute(\"role\", ctx_r4.listItemRole)(\"aria-posinset\", ctx_r4.itemPosInSet(index_r16))(\"aria-setsize\", ctx_r4.total)(\"data-kendo-listview-item-index\", index_r16);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r4.isEdited(index_r16) ? ctx_r4.editTemplate == null ? null : ctx_r4.editTemplate.templateRef : ctx_r4.itemTemplate == null ? null : ctx_r4.itemTemplate.templateRef)(\"ngTemplateOutletContext\", ctx_r4.isEdited(index_r16) ? ctx_r4.editTemplateContext(index_r16) : ctx_r4.templateContext(index_r16));\n} }\nfunction ListViewComponent_div_6_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 13)(1, \"span\", 14);\n ɵngcc0.ɵɵtext(2, \"Loading\");\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelement(3, \"div\", 15)(4, \"div\", 16);\n ɵngcc0.ɵɵelementEnd();\n} }\nfunction ListViewComponent_7_ng_template_0_Template(rf, ctx) { }\nfunction ListViewComponent_7_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ListViewComponent_7_ng_template_0_Template, 0, 0, \"ng-template\", 11);\n} if (rf & 2) {\n const ctx_r6 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r6.loaderTemplate.templateRef);\n} }\nfunction ListViewComponent_div_8_ng_template_1_Template(rf, ctx) { }\nfunction ListViewComponent_div_8_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 17);\n ɵngcc0.ɵɵtemplate(1, ListViewComponent_div_8_ng_template_1_Template, 0, 0, \"ng-template\", 11);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r7 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r7.footerTemplate == null ? null : ctx_r7.footerTemplate.templateRef);\n} }\nfunction ListViewComponent_9_ng_template_0_Template(rf, ctx) { }\nconst _c2 = function () { return { pagerClass: \"k-listview-pager\" }; };\nfunction ListViewComponent_9_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ListViewComponent_9_ng_template_0_Template, 0, 0, \"ng-template\", 9);\n} if (rf & 2) {\n ɵngcc0.ɵɵnextContext();\n const _r9 = ɵngcc0.ɵɵreference(11);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", _r9)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction0(2, _c2));\n} }\nfunction ListViewComponent_ng_template_10_kendo_datapager_0_Template(rf, ctx) { if (rf & 1) {\n const _r26 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-datapager\", 19);\n ɵngcc0.ɵɵlistener(\"pageChange\", function ListViewComponent_ng_template_10_kendo_datapager_0_Template_kendo_datapager_pageChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r26); const ctx_r25 = ɵngcc0.ɵɵnextContext(2); return ctx_r25.handlePageChange($event); })(\"pageSizeChange\", function ListViewComponent_ng_template_10_kendo_datapager_0_Template_kendo_datapager_pageSizeChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r26); const ctx_r27 = ɵngcc0.ɵɵnextContext(2); return ctx_r27.pageSizeChange.emit($event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const pagerClass_r23 = ɵngcc0.ɵɵnextContext().pagerClass;\n const ctx_r24 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassMap(pagerClass_r23);\n ɵngcc0.ɵɵproperty(\"total\", ctx_r24.total)(\"pageSize\", ctx_r24.pageSize)(\"skip\", ctx_r24.skip)(\"buttonCount\", ctx_r24.pagerSettings.buttonCount)(\"info\", ctx_r24.pagerSettings.info)(\"previousNext\", ctx_r24.pagerSettings.previousNext)(\"type\", ctx_r24.pagerSettings.type)(\"pageSizeValues\", ctx_r24.pagerSettings.pageSizeValues);\n} }\nfunction ListViewComponent_ng_template_10_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ListViewComponent_ng_template_10_kendo_datapager_0_Template, 1, 10, \"kendo-datapager\", 18);\n} if (rf & 2) {\n const ctx_r10 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r10.pageable);\n} }\nconst _c3 = function (a0) { return { scroll: a0 }; };\nconst packageMetadata = {\n name: '@progress/kendo-angular-listview',\n productName: 'Kendo UI for Angular',\n productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],\n publishDate: 1646219074,\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 LISTVIEW_ITEM_SELECTOR = '.k-listview-item';\n/**\n * @hidden\n */\nconst isPresent = (item) => item !== null && item !== undefined;\n/**\n * @hidden\n *\n * Polyfill for `Element.matches`.\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/matches\n */\nconst match = (element, selector) => {\n const matcher = element.matches || element.msMatchesSelector || element.webkitMatchesSelector;\n if (!isPresent(matcher)) {\n return false;\n }\n return matcher.call(element, selector);\n};\n/**\n * @hidden\n *\n * Checks if a target element has the `.k-listview-item` CSS class.\n */\nconst isListViewItem = (element) => {\n if (!isPresent(element)) {\n return false;\n }\n return match(element, LISTVIEW_ITEM_SELECTOR);\n};\n/**\n * @hidden\n *\n * Extracts and parses to a number the `data-kendo-listview-item-index` attribute value from the targeted element.\n */\nconst getListItemIndex = (item) => {\n if (!isPresent(item)) {\n return null;\n }\n return Number(item.getAttribute('data-kendo-listview-item-index'));\n};\n/**\n * @hidden\n *\n * Gets the new focus target from a blur event.\n * Queries both event.relatedTarget and document.activeElement for compatibility with IE.\n */\nconst relatedTarget = (event) => {\n if (!isPresent(event.relatedTarget) || !isDocumentAvailable()) {\n return null;\n }\n return event.relatedTarget || document.activeElement;\n};\n/**\n * @hidden\n *\n * If the given contender number is not defined or lower than the specified min - returns min, if its above the specified max - returns max.\n * If the number is in the given bounds, it is returned.\n */\nconst fitIntoRange = (contender, min, max) => {\n if (!isPresent(contender) || contender <= min) {\n return min;\n }\n else if (contender >= max) {\n return max;\n }\n else {\n return contender;\n }\n};\n/**\n * @hidden\n */\nconst closestWithMatch = (element, selector) => {\n let parent = element;\n while (parent !== null && parent.nodeType === 1) {\n if (match(parent, selector)) {\n return parent;\n }\n parent = parent.parentElement || parent.parentNode;\n }\n return null;\n};\n/**\n * @hidden\n *\n * Extracts and parses to a number the `data-kendo-listview-item-index` attribute value from the targeted element.\n */\nconst getClosestListItemIndex = (element) => {\n if (!isPresent(element)) {\n return null;\n }\n const closestListViewItem = closestWithMatch(element, LISTVIEW_ITEM_SELECTOR);\n return getListItemIndex(closestListViewItem);\n};\n\n/**\n * @hidden\n *\n * Provided per ListView instance. Keeps the availability, active index and focused state of the current ListView.\n * Emits `changes` when any of the aforementioned states changes.\n */\nlet NavigationService = class NavigationService {\n /**\n * @hidden\n *\n * Provided per ListView instance. Keeps the availability, active index and focused state of the current ListView.\n * Emits `changes` when any of the aforementioned states changes.\n */\n constructor() {\n /**\n * Emits every time a change in active index/focus/blur/navigation availability occurs.\n */\n this.changes = new Subject();\n /**\n * Specifies if a ListView item currently holds focus.\n */\n this.isFocused = false;\n /**\n * Keeps track of the index of the items that should be the current focus target (tabindex=\"0\").\n * When set to `null`/`undefined`, the navigation is disabled and the items should not render a tabindex.\n */\n this.activeIndex = null;\n }\n /**\n * Sets or gets if the navigation is enabled.\n * When no activeIndex is present, the navigation is inferred as disabled.\n * Toggling the service availability clears the current active index or activates the first one.\n */\n get isEnabled() {\n return isPresent(this.activeIndex);\n }\n set isEnabled(enabled) {\n if (enabled) {\n this.activeIndex = 0;\n }\n else {\n this.activeIndex = null;\n }\n this.changes.next();\n }\n /**\n * Shows if the checked index should be the current available focus target (tabindex=\"0\").\n */\n isActive(index) {\n return index === this.activeIndex;\n }\n handleKeyDown(event, totalItemsCount) {\n const { keyCode } = event;\n switch (keyCode) {\n case Keys.ArrowLeft:\n case Keys.ArrowUp:\n this.navigateToPrevious();\n break;\n case Keys.ArrowRight:\n case Keys.ArrowDown:\n this.navigateToNext(totalItemsCount);\n break;\n case Keys.Home:\n const firstIndex = 0;\n this.navigateTo(firstIndex);\n break;\n case Keys.End:\n const lastIndex = totalItemsCount - 1;\n this.navigateTo(lastIndex);\n break;\n default: return;\n }\n // the following line is executed only if the pressed key matches one of the listview hotkeys -\n // they `break`, while the `default` case `return`s\n event.preventDefault();\n }\n handleFocusIn(event) {\n const target = event.target;\n if (!isListViewItem(target)) {\n const listViewItemSelector = '.k-listview-item';\n const closestListViewItem = closestWithMatch(target, listViewItemSelector);\n const isListViewItemChild = isPresent(closestListViewItem);\n if (isListViewItemChild) {\n const itemIndex = getListItemIndex(closestListViewItem);\n this.setActiveIndex(itemIndex);\n }\n return;\n }\n const targetIndex = getListItemIndex(target);\n // don't emit if the no change in focused state has occurred and the targeted index is the same as the current activeIndex\n if (this.isFocused && targetIndex === this.activeIndex) {\n return;\n }\n this.activeIndex = targetIndex;\n this.isFocused = true;\n this.changes.next();\n }\n handleFocusOut(event) {\n // don't emit if the blurred item is not a listview item or if the new focus target is another listview item\n if (!isListViewItem(event.target) || isListViewItem(relatedTarget(event))) {\n return;\n }\n this.isFocused = false;\n this.changes.next();\n }\n /**\n * Sets the `activeIndex` and triggers changes without focusing the corresponding ListView item.\n */\n setActiveIndex(index) {\n if (!this.isEnabled) {\n return;\n }\n if (index === this.activeIndex) {\n return;\n }\n this.activeIndex = index;\n this.changes.next();\n }\n /**\n * Focuses item at the targeted index. If no index is passed, the current `activeIndex` is used.\n * The passed target index is normalized to fit the min/max available indices bounds.\n */\n focusIndex(index, totalItemsCount) {\n if (!this.isEnabled) {\n return;\n }\n const parsed = parseInt(index, 10);\n const firstIndex = 0;\n const lastIndex = totalItemsCount - 1;\n const targetIndex = isNaN(parsed) ? this.activeIndex : fitIntoRange(parsed, firstIndex, lastIndex);\n this.navigateTo(targetIndex);\n }\n navigateTo(index) {\n if (this.isFocused && this.activeIndex === index) {\n return;\n }\n this.isFocused = true;\n this.activeIndex = index;\n this.changes.next();\n }\n navigateToPrevious() {\n const previousIndex = Math.max(this.activeIndex - 1, 0);\n this.navigateTo(previousIndex);\n }\n navigateToNext(totalItemsCount) {\n const lastAvailableIndex = totalItemsCount - 1;\n const nextIndex = Math.min(this.activeIndex + 1, lastAvailableIndex);\n this.navigateTo(nextIndex);\n }\n};\nNavigationService.ɵfac = function NavigationService_Factory(t) { return new (t || NavigationService)(); };\nNavigationService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NavigationService, factory: function (t) { return NavigationService.ɵfac(t); } });\n\n/**\n * @hidden\n */\nlet ListViewNavigableItemDirective = class ListViewNavigableItemDirective {\n constructor(hostElement, renderer, navigationService) {\n this.hostElement = hostElement;\n this.renderer = renderer;\n this.navigationService = navigationService;\n }\n ngOnChanges() {\n this.updateNavigationState();\n }\n ngOnInit() {\n this.navigationSubscription = this.navigationService.changes\n .subscribe(this.updateNavigationState.bind(this));\n }\n ngOnDestroy() {\n if (isPresent(this.navigationSubscription)) {\n this.navigationSubscription.unsubscribe();\n }\n }\n updateNavigationState() {\n this.updateTabIndex();\n this.updateFocusedState();\n }\n updateFocusedState() {\n const shouldFocus = this.navigationService.isActive(this.index) && this.navigationService.isFocused;\n const focusedCssClass = 'k-state-focused';\n if (shouldFocus) {\n this.renderer.addClass(this.hostElement.nativeElement, focusedCssClass);\n this.hostElement.nativeElement.focus();\n }\n else {\n this.renderer.removeClass(this.hostElement.nativeElement, focusedCssClass);\n }\n }\n updateTabIndex() {\n if (!this.navigationService.isEnabled) {\n this.renderer.removeAttribute(this.hostElement.nativeElement, 'tabindex');\n }\n else if (this.navigationService.isActive(this.index)) {\n this.renderer.setAttribute(this.hostElement.nativeElement, 'tabindex', '0');\n }\n else {\n this.renderer.setAttribute(this.hostElement.nativeElement, 'tabindex', '-1');\n }\n }\n};\nListViewNavigableItemDirective.ɵfac = function ListViewNavigableItemDirective_Factory(t) { return new (t || ListViewNavigableItemDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(NavigationService)); };\nListViewNavigableItemDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ListViewNavigableItemDirective, selectors: [[\"\", \"kendoListViewNavigableItem\", \"\"]], inputs: { index: \"index\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ListViewNavigableItemDirective.prototype, \"index\", void 0);\nListViewNavigableItemDirective = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n Renderer2,\n NavigationService])\n], ListViewNavigableItemDirective);\n\n/**\n * Renders the list item content. To define an item template, nest an `` tag\n * with the `kendoListViewItemTemplate` directive inside the `` tag\n * [see example]({% slug templates_listview %}#toc-item-template).\n *\n * The following values are available as context variables:\n * - `let-dataItem=\"dataItem\"` (`any`) - The current data item. Also available as implicit context variable.\n * - `let-index=\"index\"` (`number`) - The current item index.\n * - `let-isFirst=\"isFirst\"` (`boolean`) - Indicates whether the current data item will be rendered as the first item on the list.\n * - `let-isLast=\"isLast\"` (`boolean`)- Indicates whether the current data item will be rendered as the last item on the list.\n */\nlet ItemTemplateDirective = class ItemTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nItemTemplateDirective.ɵfac = function ItemTemplateDirective_Factory(t) { return new (t || ItemTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nItemTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ItemTemplateDirective, selectors: [[\"\", \"kendoListViewItemTemplate\", \"\"]] });\nItemTemplateDirective = __decorate([ __metadata(\"design:paramtypes\", [TemplateRef])\n], ItemTemplateDirective);\n\n/**\n * Renders the header content of the ListView. To define a header template, nest an `` tag\n * with the `kendoListViewHeaderTemplate` directive inside the `` tag\n * [see example]({% slug templates_listview %}#toc-header-template).\n */\nlet HeaderTemplateDirective = class HeaderTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nHeaderTemplateDirective.ɵfac = function HeaderTemplateDirective_Factory(t) { return new (t || HeaderTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nHeaderTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: HeaderTemplateDirective, selectors: [[\"\", \"kendoListViewHeaderTemplate\", \"\"]] });\nHeaderTemplateDirective = __decorate([ __metadata(\"design:paramtypes\", [TemplateRef])\n], HeaderTemplateDirective);\n\n/**\n * Renders the footer content of the ListView. To define a footer template, nest an `` tag\n * with the `kendoListViewFooterTemplate` directive inside the `` tag\n * [see example]({% slug templates_listview %}#toc-footer-template).\n */\nlet FooterTemplateDirective = class FooterTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nFooterTemplateDirective.ɵfac = function FooterTemplateDirective_Factory(t) { return new (t || FooterTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nFooterTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: FooterTemplateDirective, selectors: [[\"\", \"kendoListViewFooterTemplate\", \"\"]] });\nFooterTemplateDirective = __decorate([ __metadata(\"design:paramtypes\", [TemplateRef])\n], FooterTemplateDirective);\n\n/**\n * Overrides the default loader content of the ListView. To define a loader template, nest an `` tag\n * with the `kendoListViewLoaderTemplate` directive inside the `` tag\n * [see example]({% slug templates_listview %}#toc-loader-template).\n */\nlet LoaderTemplateDirective = class LoaderTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nLoaderTemplateDirective.ɵfac = function LoaderTemplateDirective_Factory(t) { return new (t || LoaderTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nLoaderTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LoaderTemplateDirective, selectors: [[\"\", \"kendoListViewLoaderTemplate\", \"\"]] });\nLoaderTemplateDirective = __decorate([ __metadata(\"design:paramtypes\", [TemplateRef])\n], LoaderTemplateDirective);\n\n/**\n * Represents the edit template of the ListView ([see example]({% slug editing_template_forms_listview %})).\n * Helps to customize the content of the edited items. To define the template, nest an ``\n * tag with the `kendoListViewEditTemplate` 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 ListView inside [Template-Driven Forms]({{ site.data.urls.angular['forms'] }}), it will be `undefined`.\n * - `itemIndex`—The current item index. If inside a new item, `itemIndex` is `-1`.\n * - `dataItem`—The current data item.\n * - `isNew`—The state of the current item.\n */\nlet EditTemplateDirective = class EditTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nEditTemplateDirective.ɵfac = function EditTemplateDirective_Factory(t) { return new (t || EditTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nEditTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditTemplateDirective, selectors: [[\"\", \"kendoListViewEditTemplate\", \"\"]] });\nEditTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], EditTemplateDirective);\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 isNewItem = (index) => index === -1 || index === undefined;\n/**\n * @hidden\n */\nlet EditService = class EditService {\n constructor(ngZone) {\n this.ngZone = ngZone;\n this.changes = new EventEmitter();\n this.editedIndices = [];\n this.changedSource = new Subject();\n this.changed = this.changedSource.asObservable().pipe(switchMap(() => this.ngZone.onStable.asObservable().pipe(take(1))));\n }\n editItem(index, group = undefined) {\n this.editedIndices.push({ index, group });\n this.onChanged();\n }\n addItem(group) {\n this.newItem = { group };\n this.onChanged();\n }\n isEditing() {\n return this.editedIndices.length > 0;\n }\n get hasNewItem() {\n return isPresent(this.newItem);\n }\n get newDataItem() {\n if (this.hasNewItem) {\n return this.newItem.group.value;\n }\n return {};\n }\n get newItemGroup() {\n if (this.hasNewItem) {\n return this.newItem.group;\n }\n return new FormGroup({});\n }\n editGroup(index) {\n return this.context(index).group;\n }\n close(index) {\n if (isNewItem(index)) {\n this.newItem = undefined;\n return;\n }\n this.editedIndices = this.editedIndices.filter(isNotEqual(index));\n this.onChanged();\n }\n context(index) {\n if (isNewItem(index)) {\n return this.newItem;\n }\n return this.findByIndex(index);\n }\n isEdited(index) {\n if (isNewItem(index) && isPresent(this.newItem)) {\n return true;\n }\n return isPresent(this.findByIndex(index));\n }\n hasEdited(index) {\n return isPresent(this.context(index));\n }\n beginEdit(itemIndex) {\n this.changes.emit({ action: 'edit', itemIndex });\n }\n beginAdd() {\n this.changes.emit({ action: 'add' });\n }\n endEdit(itemIndex) {\n const { group: formGroup } = this.context(itemIndex);\n this.changes.emit({ action: 'cancel', itemIndex, formGroup, isNew: isNewItem(itemIndex) });\n }\n save(itemIndex) {\n const { group: formGroup } = this.context(itemIndex);\n this.changes.emit({ action: 'save', itemIndex, formGroup, isNew: isNewItem(itemIndex) });\n }\n remove(itemIndex) {\n this.changes.emit({ action: 'remove', itemIndex });\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.ɵfac = function EditService_Factory(t) { return new (t || EditService)(ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nEditService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: EditService, factory: function (t) { return EditService.ɵfac(t); } });\nEditService = __decorate([ __metadata(\"design:paramtypes\", [NgZone])\n], EditService);\n\nconst DEFAULT_PAGER_SETTINGS = {\n position: 'bottom',\n buttonCount: 5,\n info: true,\n previousNext: true,\n type: 'numeric',\n pageSizeValues: [5, 10, 20]\n};\nconst createControl = (source) => (acc, key) => {\n acc[key] = new FormControl(source[key]);\n return acc;\n};\n/**\n * Represents the Kendo UI ListView component for Angular.\n */\nlet ListViewComponent = class ListViewComponent {\n constructor(ngZone, element, renderer, editService, navigationService) {\n this.ngZone = ngZone;\n this.element = element;\n this.renderer = renderer;\n this.editService = editService;\n this.navigationService = navigationService;\n /**\n * @hidden\n */\n this.className = true;\n /**\n * Specifies if the loading indicator of the ListView will be displayed\n * ([see example]({% slug paging_listview %}#toc-remote-binding)).\n */\n this.loading = false;\n /**\n * Specifies the content container `role` attribute\n * ([more details]({% slug accessibility_listview %}#toc-wai-aria-support)).\n * By default, the container `role` is set to `listbox`.\n */\n this.containerRole = 'listbox';\n /**\n * Specifies the list item `role` attribute\n * ([more details]({% slug accessibility_listview %}#toc-wai-aria-support)).\n * By default, the list item `role` is set to `option`.\n */\n this.listItemRole = 'option';\n /**\n * Fires when the user scrolls to the last record on the page\n * ([see endless scrolling example]({% slug scrollmodes_listview %}#toc-endless-scrolling)).\n */\n this.scrollBottom = new EventEmitter();\n /**\n * Fires when the page or the page size of the ListView is changed\n * ([see example]({% slug paging_listview %}#toc-remote-binding)).\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 ListView is changed. This event can be prevented (`$event.preventDefault()`).\n * If not prevented, the `pageChange` event will be fired subsequently.\n */\n this.pageSizeChange = new EventEmitter();\n /**\n * Fires when the user clicks the **Edit** command button to edit an item\n * ([see example]({% slug editing_template_forms_listview %}#toc-editing-records)).\n */\n this.edit = new EventEmitter();\n /**\n * Fires when the user clicks the **Cancel** command button to close an item\n * ([see example]({% slug editing_template_forms_listview %}#toc-cancelling-editing)).\n */\n this.cancel = new EventEmitter();\n /**\n * Fires when the user clicks the **Save** command button to save changes in an item\n * ([see example]({% slug editing_template_forms_listview %}#toc-saving-records)).\n */\n this.save = new EventEmitter();\n /**\n * Fires when the user clicks the **Remove** command button to remove an item\n * ([see example]({% slug editing_template_forms_listview %}#toc-removing-records)).\n */\n this.remove = new EventEmitter();\n /**\n * Fires when the user clicks the **Add** command button to add a new item\n * ([see example]({% slug editing_template_forms_listview %}#toc-adding-records)).\n */\n this.add = new EventEmitter();\n this._skip = 0;\n this._navigable = false;\n validatePackage(packageMetadata);\n this.attachEditHandlers();\n }\n /**\n * Specifies whether the keyboard navigation is enabled\n * ([see example]({% slug keyboard_navigation_listview %})).\n * By default, the navigation is disabled.\n */\n set navigable(navigable) {\n if (!navigable && isPresent(this.removeNavigationListeners)) {\n this.removeNavigationListeners();\n this.removeNavigationListeners = null;\n this.navigationService.isEnabled = false;\n }\n else if (navigable && !isPresent(this.removeNavigationListeners)) {\n this.addNavigationListeners();\n this.navigationService.isEnabled = true;\n }\n this._navigable = navigable;\n }\n get navigable() {\n return this._navigable;\n }\n /**\n * Defines the number of records to be skipped by the pager\n * ([more details]({% slug paging_listview %})).\n */\n set skip(skip) {\n const parsed = parseInt(skip, 10);\n const defaultSkipValue = 0;\n this._skip = !isNaN(parsed) ? parsed : defaultSkipValue;\n }\n get skip() {\n return this._skip;\n }\n /**\n * Configures whether the ListView will render a pager\n * ([more details]({% slug paging_listview %})).\n * Providing a boolean value will render a pager with the default settings.\n */\n set pageable(pageable) {\n this._pageable = pageable;\n this.pagerSettings = pageable ? Object.assign({}, DEFAULT_PAGER_SETTINGS, pageable) : null;\n }\n get pageable() {\n return this._pageable;\n }\n /**\n * @hidden\n *\n * Gets the data items passed to the ListView.\n * If a ListViewDataResult is passed, the data value is used. If an array is passed - it's directly used.\n */\n get items() {\n if (!isPresent(this.data)) {\n return [];\n }\n return Array.isArray(this.data) ? this.data : this.data.data;\n }\n /**\n * @hidden\n *\n * Gets the total number of records passed to the ListView.\n * If a ListViewDataResult is passed, the total value is used. If an array is passed - its length is used.\n */\n get total() {\n if (!isPresent(this.data)) {\n return 0;\n }\n return Array.isArray(this.data) ? this.data.length : this.data.total;\n }\n /**\n * @hidden\n */\n get containerTabindex() {\n // workaround for FF, where a scrollable container is focusable even without a tabindex and creates an unwanted tab stop\n // https://bugzilla.mozilla.org/show_bug.cgi?id=616594\n return this.navigable ? -1 : null;\n }\n /**\n * Gets the current active item index\n * ([see example]({% slug keyboard_navigation_listview %}#toc-controlling-the-focus)).\n * Returns `null` when the keyboard navigation is disabled.\n */\n get activeIndex() {\n return this.navigationService.activeIndex;\n }\n ngOnChanges(changes) {\n if (isChanged('height', changes, false)) {\n this.renderer.setStyle(this.element.nativeElement, 'height', `${this.height}px`);\n }\n }\n ngOnDestroy() {\n if (isPresent(this.editServiceSubscription)) {\n this.editServiceSubscription.unsubscribe();\n }\n }\n /**\n * @hidden\n */\n templateContext(index) {\n return {\n \"$implicit\": this.items[index],\n \"isLast\": index === this.items.length - 1,\n \"isFirst\": index === 0,\n \"dataItem\": this.items[index],\n \"index\": index\n };\n }\n /**\n * @hidden\n */\n editTemplateContext(index) {\n const isNew = index === -1;\n const group = isNew ? this.editService.newItemGroup : this.editService.editGroup(index);\n return {\n \"$implicit\": group,\n \"formGroup\": group,\n \"dataItem\": isNew ? this.editService.newDataItem : this.items[index],\n \"isNew\": isNew,\n \"index\": index\n };\n }\n /**\n * Focuses the item at the specified index ([see example]({% slug keyboard_navigation_listview %}#toc-controlling-the-focus)):\n * - If no index is specified, the current active index will be focused.\n * - If the passed value is below `0`, the first item receives focus.\n * - If the passed value is above the last available index, the last item receives focus.\n *\n * > The index param is based on the logical structure of the ListView and does not correspond to the data item index -\n * > i.e. the index `0` corresponds to the first rendered list item. Paging is not taken into account.\n * > Also, for the focusing to work, the `navigable` prop must first be set to `true`.\n */\n focus(index) {\n const totalRenderedItems = this.listViewItems.length;\n this.navigationService.focusIndex(index, totalRenderedItems);\n }\n /**\n * Creates a new item editor ([see example]({% slug editing_template_forms_listview %}#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 addItem(group) {\n const isFormGroup = group instanceof FormGroup;\n if (!isFormGroup) {\n const fields = Object.keys(group).reduce(createControl(group), {});\n group = new FormGroup(fields);\n }\n this.editService.addItem(group);\n }\n /**\n * Switches the specified item to edit mode ([see example]({% slug editing_template_forms_listview %}#toc-editing-records)).\n *\n * @param index - The item index that will be switched to edit mode.\n * @param group - The [`FormGroup`]({{ site.data.urls.angular['formgroupapi'] }})\n * that describes the edit form.\n */\n editItem(index, group) {\n this.editService.editItem(index, group);\n }\n /**\n * Closes the editor for a given item ([see example]({% slug editing_template_forms_grid %}#toc-cancelling-editing)).\n *\n * @param {number} index - The item 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 closeItem(index) {\n this.editService.close(index);\n }\n /**\n * @hidden\n */\n isEdited(index) {\n return this.editService.isEdited(index);\n }\n /**\n * @hidden\n */\n handlePageChange(event) {\n this.scrollToContainerTop();\n const firstIndex = 0;\n this.navigationService.setActiveIndex(firstIndex);\n this.pageChange.emit(event);\n }\n /**\n * @hidden\n */\n handleContentScroll() {\n if (!hasObservers(this.scrollBottom)) {\n return;\n }\n const THRESHOLD = 2;\n const { scrollHeight, scrollTop, clientHeight } = this.contentContainer.nativeElement;\n const atBottom = scrollHeight - clientHeight - scrollTop <= THRESHOLD;\n if (atBottom) {\n this.ngZone.run(() => {\n const event = { sender: this };\n this.scrollBottom.emit(event);\n });\n }\n }\n /**\n * @hidden\n */\n itemPosInSet(index) {\n // adds 1 as the aria-posinset is not zero-based and the counting starts from 1\n return this.skip + index + 1;\n }\n scrollToContainerTop() {\n const container = this.contentContainer.nativeElement;\n container.scrollTop = 0;\n container.scrollLeft = 0;\n }\n addNavigationListeners() {\n this.ngZone.runOutsideAngular(() => {\n const removeKeydownListener = this.renderer.listen(this.contentContainer.nativeElement, 'keydown', event => this.navigationService.handleKeyDown(event, this.listViewItems.length));\n const removeFocusInListener = this.renderer.listen(this.contentContainer.nativeElement, 'focusin', event => this.navigationService.handleFocusIn(event));\n const removeFocusOutListener = this.renderer.listen(this.contentContainer.nativeElement, 'focusout', event => this.navigationService.handleFocusOut(event));\n this.removeNavigationListeners = () => {\n removeKeydownListener();\n removeFocusInListener();\n removeFocusOutListener();\n };\n });\n }\n attachEditHandlers() {\n if (!isPresent(this.editService)) {\n return;\n }\n this.editServiceSubscription = this.editService\n .changes.subscribe(this.emitCRUDEvent.bind(this));\n }\n emitCRUDEvent(args) {\n const { action, itemIndex, formGroup } = args;\n let dataItem = this.items[itemIndex];\n if (action !== 'add' && formGroup) {\n dataItem = formGroup.value;\n }\n Object.assign(args, {\n dataItem: dataItem,\n sender: this\n });\n this[action].emit(args);\n }\n};\nListViewComponent.ɵfac = function ListViewComponent_Factory(t) { return new (t || ListViewComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(EditService), ɵngcc0.ɵɵdirectiveInject(NavigationService)); };\nListViewComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ListViewComponent, selectors: [[\"kendo-listview\"]], contentQueries: function ListViewComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, ItemTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, HeaderTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, FooterTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, LoaderTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, EditTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.itemTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.headerTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.footerTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.loaderTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.editTemplate = _t.first);\n } }, viewQuery: function ListViewComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c0, 7);\n ɵngcc0.ɵɵviewQuery(ListViewNavigableItemDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.contentContainer = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.listViewItems = _t);\n } }, hostVars: 8, hostBindings: function ListViewComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-widget\", ctx.className)(\"k-listview\", ctx.className)(\"k-listview-bordered\", ctx.className)(\"k-d-flex\", ctx.className);\n } }, inputs: { loading: \"loading\", containerRole: \"containerRole\", listItemRole: \"listItemRole\", navigable: \"navigable\", skip: \"skip\", pageable: \"pageable\", data: \"data\", containerStyle: \"containerStyle\", itemStyle: \"itemStyle\", containerClass: \"containerClass\", itemClass: \"itemClass\", containerLabel: \"containerLabel\", pageSize: \"pageSize\", height: \"height\" }, outputs: { scrollBottom: \"scrollBottom\", pageChange: \"pageChange\", pageSizeChange: \"pageSizeChange\", edit: \"edit\", cancel: \"cancel\", save: \"save\", remove: \"remove\", add: \"add\" }, exportAs: [\"kendoListView\"], features: [ɵngcc0.ɵɵProvidersFeature([\n EditService,\n NavigationService,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.listview'\n }\n ]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 12, vars: 17, consts: [[4, \"ngIf\"], [\"class\", \"k-listview-header\", 4, \"ngIf\"], [1, \"k-listview-content\", 3, \"ngClass\", \"ngStyle\", \"kendoEventsOutsideAngular\", \"scope\"], [\"contentContainer\", \"\"], [\"class\", \"k-listview-item\", \"kendoListViewNavigableItem\", \"\", 3, \"index\", \"ngClass\", \"ngStyle\", 4, \"ngIf\"], [\"class\", \"k-listview-item\", \"kendoListViewNavigableItem\", \"\", 3, \"index\", \"ngClass\", \"ngStyle\", 4, \"ngFor\", \"ngForOf\"], [\"class\", \"k-loading-mask\", 4, \"ngIf\"], [\"class\", \"k-listview-footer\", 4, \"ngIf\"], [\"pagerTemplate\", \"\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [1, \"k-listview-header\"], [3, \"ngTemplateOutlet\"], [\"kendoListViewNavigableItem\", \"\", 1, \"k-listview-item\", 3, \"index\", \"ngClass\", \"ngStyle\"], [1, \"k-loading-mask\"], [1, \"k-loading-text\"], [1, \"k-loading-image\"], [1, \"k-loading-color\"], [1, \"k-listview-footer\"], [3, \"class\", \"total\", \"pageSize\", \"skip\", \"buttonCount\", \"info\", \"previousNext\", \"type\", \"pageSizeValues\", \"pageChange\", \"pageSizeChange\", 4, \"ngIf\"], [3, \"total\", \"pageSize\", \"skip\", \"buttonCount\", \"info\", \"previousNext\", \"type\", \"pageSizeValues\", \"pageChange\", \"pageSizeChange\"]], template: function ListViewComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ListViewComponent_0_Template, 1, 3, null, 0);\n ɵngcc0.ɵɵtemplate(1, ListViewComponent_div_1_Template, 2, 1, \"div\", 1);\n ɵngcc0.ɵɵelementStart(2, \"div\", 2, 3);\n ɵngcc0.ɵɵtemplate(4, ListViewComponent_div_4_Template, 2, 6, \"div\", 4);\n ɵngcc0.ɵɵtemplate(5, ListViewComponent_div_5_Template, 2, 9, \"div\", 5);\n ɵngcc0.ɵɵtemplate(6, ListViewComponent_div_6_Template, 5, 0, \"div\", 6);\n ɵngcc0.ɵɵtemplate(7, ListViewComponent_7_Template, 1, 1, null, 0);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(8, ListViewComponent_div_8_Template, 2, 1, \"div\", 7);\n ɵngcc0.ɵɵtemplate(9, ListViewComponent_9_Template, 1, 3, null, 0);\n ɵngcc0.ɵɵtemplate(10, ListViewComponent_ng_template_10_Template, 1, 1, \"ng-template\", null, 8, ɵngcc0.ɵɵtemplateRefExtractor);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", (ctx.pagerSettings == null ? null : ctx.pagerSettings.position) !== \"bottom\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.headerTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx.containerClass)(\"ngStyle\", ctx.containerStyle)(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction1(15, _c3, ctx.handleContentScroll))(\"scope\", ctx);\n ɵngcc0.ɵɵattribute(\"tabindex\", ctx.containerTabindex)(\"role\", ctx.containerRole)(\"aria-label\", ctx.containerLabel);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.editService.hasNewItem);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.items);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.loading && !ctx.loaderTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.loading && ctx.loaderTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.footerTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", (ctx.pagerSettings == null ? null : ctx.pagerSettings.position) !== \"top\");\n } }, directives: [ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet, ɵngcc1.NgClass, ɵngcc1.NgStyle, ɵngcc2.EventsOutsideAngularDirective, ListViewNavigableItemDirective, ɵngcc1.NgForOf, ɵngcc3.PagerComponent], encapsulation: 2, changeDetection: 0 });\n__decorate([\n HostBinding('class.k-widget'),\n HostBinding('class.k-listview'),\n HostBinding('class.k-listview-bordered'),\n HostBinding('class.k-d-flex'),\n __metadata(\"design:type\", Boolean)\n], ListViewComponent.prototype, \"className\", void 0);\n__decorate([\n ContentChild(ItemTemplateDirective, { static: false }),\n __metadata(\"design:type\", ItemTemplateDirective)\n], ListViewComponent.prototype, \"itemTemplate\", void 0);\n__decorate([\n ContentChild(HeaderTemplateDirective, { static: false }),\n __metadata(\"design:type\", HeaderTemplateDirective)\n], ListViewComponent.prototype, \"headerTemplate\", void 0);\n__decorate([\n ContentChild(FooterTemplateDirective, { static: false }),\n __metadata(\"design:type\", FooterTemplateDirective)\n], ListViewComponent.prototype, \"footerTemplate\", void 0);\n__decorate([\n ContentChild(LoaderTemplateDirective, { static: false }),\n __metadata(\"design:type\", LoaderTemplateDirective)\n], ListViewComponent.prototype, \"loaderTemplate\", void 0);\n__decorate([\n ViewChild('contentContainer', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], ListViewComponent.prototype, \"contentContainer\", void 0);\n__decorate([\n ContentChild(EditTemplateDirective, { static: false }),\n __metadata(\"design:type\", EditTemplateDirective)\n], ListViewComponent.prototype, \"editTemplate\", void 0);\n__decorate([\n ViewChildren(ListViewNavigableItemDirective),\n __metadata(\"design:type\", QueryList)\n], ListViewComponent.prototype, \"listViewItems\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ListViewComponent.prototype, \"data\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ListViewComponent.prototype, \"loading\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ListViewComponent.prototype, \"containerStyle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ListViewComponent.prototype, \"itemStyle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ListViewComponent.prototype, \"containerClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ListViewComponent.prototype, \"itemClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ListViewComponent.prototype, \"containerLabel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ListViewComponent.prototype, \"containerRole\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ListViewComponent.prototype, \"listItemRole\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], ListViewComponent.prototype, \"navigable\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ListViewComponent.prototype, \"pageSize\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], ListViewComponent.prototype, \"skip\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], ListViewComponent.prototype, \"pageable\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ListViewComponent.prototype, \"height\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ListViewComponent.prototype, \"scrollBottom\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ListViewComponent.prototype, \"pageChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ListViewComponent.prototype, \"pageSizeChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ListViewComponent.prototype, \"edit\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ListViewComponent.prototype, \"cancel\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ListViewComponent.prototype, \"save\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ListViewComponent.prototype, \"remove\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ListViewComponent.prototype, \"add\", void 0);\nListViewComponent = __decorate([ __metadata(\"design:paramtypes\", [NgZone,\n ElementRef,\n Renderer2,\n EditService,\n NavigationService])\n], ListViewComponent);\n\n/**\n * A directive that encapsulates the in-memory handling of paging\n * ([see example]({% slug paging_listview %}#toc-binding-directive)).\n */\nlet DataBindingDirective = class DataBindingDirective {\n constructor(listView) {\n this.listView = listView;\n this.subscriptions = new Subscription();\n }\n /**\n * The array of data which will be used to populate the ListView.\n */\n set data(data) {\n this._data = data || [];\n this.updateListViewData();\n }\n get data() {\n return this._data;\n }\n ngOnInit() {\n this.subscriptions.add(this.listView.pageChange.subscribe(this.handlePageChange.bind(this)));\n this.subscriptions.add(this.listView.pageSizeChange.subscribe(this.handlePageSizeChange.bind(this)));\n this.updateListViewData();\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n handlePageChange(event) {\n this.listView.skip = event.skip;\n this.listView.pageSize = event.take;\n this.updateListViewData();\n }\n handlePageSizeChange(event) {\n this.listView.pageSize = Number(event.newPageSize);\n }\n updateListViewData() {\n const from = this.listView.skip || 0;\n const to = from + (this.listView.pageSize || this.data.length);\n this.listView.data = {\n data: this.data.slice(from, to),\n total: this.data.length\n };\n }\n};\nDataBindingDirective.ɵfac = function DataBindingDirective_Factory(t) { return new (t || DataBindingDirective)(ɵngcc0.ɵɵdirectiveInject(ListViewComponent)); };\nDataBindingDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DataBindingDirective, selectors: [[\"\", \"kendoListViewBinding\", \"\"]], inputs: { data: [\"kendoListViewBinding\", \"data\"] } });\n__decorate([\n Input('kendoListViewBinding'),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], DataBindingDirective.prototype, \"data\", null);\nDataBindingDirective = __decorate([ __metadata(\"design:paramtypes\", [ListViewComponent])\n], DataBindingDirective);\n\n/**\n * The arguments of the [`pageSizeChange`]({% slug api_listview_listviewcomponent %}#toc-pagesizechange) event of the ListView\n * ([more details]({% slug paging_listview %}).\n */\nclass PageSizeChangeEvent$1 extends PageSizeChangeEvent {\n}\n\n/**\n * @hidden\n */\nlet TemplateContextDirective = class 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.ɵfac = function TemplateContextDirective_Factory(t) { return new (t || TemplateContextDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef)); };\nTemplateContextDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: TemplateContextDirective, selectors: [[\"\", \"templateContext\", \"\"]], inputs: { templateContext: \"templateContext\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], TemplateContextDirective.prototype, \"templateContext\", null);\nTemplateContextDirective = __decorate([ __metadata(\"design:paramtypes\", [ViewContainerRef])\n], TemplateContextDirective);\n\n/**\n * Represents the `edit` command of the ListView. You can apply this directive to any `button`\n * element inside a [`EditTemplateDirective`]({% slug api_listview_edittemplatedirective %}) template.\n * When an associated button with the directive is clicked, the\n * [`edit`]({% slug api_listview_listviewcomponent %}#toc-edit) event\n * is triggered ([see example]({% slug editing_listview %})).\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * ```\n *\n */\nlet EditCommandDirective = class EditCommandDirective extends Button {\n constructor(editService, element, renderer, localization, ngZone) {\n super(element, renderer, null, localization, ngZone);\n this.editService = editService;\n this.elementRef = element;\n }\n /**\n * @hidden\n */\n clickHandler(e) {\n e.preventDefault();\n const index = getClosestListItemIndex(this.elementRef.nativeElement);\n this.editService.beginEdit(index);\n }\n};\nEditCommandDirective.ɵfac = function EditCommandDirective_Factory(t) { return new (t || EditCommandDirective)(ɵngcc0.ɵɵdirectiveInject(EditService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc4.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nEditCommandDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditCommandDirective, selectors: [[\"\", \"kendoListViewEditCommand\", \"\"]], hostBindings: function EditCommandDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function EditCommandDirective_click_HostBindingHandler($event) { return ctx.clickHandler($event); });\n } }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n HostListener('click', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], EditCommandDirective.prototype, \"clickHandler\", null);\nEditCommandDirective = __decorate([ __metadata(\"design:paramtypes\", [EditService,\n ElementRef,\n Renderer2,\n LocalizationService,\n NgZone])\n], EditCommandDirective);\n\n/**\n * Represents the `cancel` command of the ListView. You can apply this directive to any `button`\n * element inside a [`EditTemplateDirective`]({% slug api_listview_edittemplatedirective %}) template.\n * When an associated button with the directive is clicked, the\n * [`cancel`]({% slug api_listview_listviewcomponent %}#toc-cancel) event\n * is triggered ([see example]({% slug editing_listview %})).\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * ```\n *\n * You can control the content of the button based on the state of the item.\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * ```\n */\nlet CancelCommandDirective = class CancelCommandDirective extends Button {\n constructor(editService, element, renderer, localization, ngZone) {\n super(element, renderer, null, localization, ngZone);\n this.editService = editService;\n this.elementRef = element;\n }\n /**\n * @hidden\n */\n clickHandler(e) {\n e.preventDefault();\n const index = getClosestListItemIndex(this.elementRef.nativeElement);\n if (this.editService.isEdited(index)) {\n this.editService.endEdit(index);\n }\n }\n};\nCancelCommandDirective.ɵfac = function CancelCommandDirective_Factory(t) { return new (t || CancelCommandDirective)(ɵngcc0.ɵɵdirectiveInject(EditService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc4.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nCancelCommandDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CancelCommandDirective, selectors: [[\"\", \"kendoListViewCancelCommand\", \"\"]], hostBindings: function CancelCommandDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function CancelCommandDirective_click_HostBindingHandler($event) { return ctx.clickHandler($event); });\n } }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n HostListener('click', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], CancelCommandDirective.prototype, \"clickHandler\", null);\nCancelCommandDirective = __decorate([ __metadata(\"design:paramtypes\", [EditService,\n ElementRef,\n Renderer2,\n LocalizationService,\n NgZone])\n], CancelCommandDirective);\n\n/**\n * Represents the `save` command of the ListView. You can apply this directive to any `button`\n * element inside a [`EditTemplateDirective`]({% slug api_listview_edittemplatedirective %}) template.\n * When an associated button with the directive is clicked, the\n * [`save`]({% slug api_listview_listviewcomponent %}#toc-save) event\n * is triggered ([see example]({% slug editing_listview %})).\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * ```\n *\n * You can control the content of the button based on the state of the item.\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * ```\n */\nlet SaveCommandDirective = class SaveCommandDirective extends Button {\n constructor(editService, element, renderer, localization, ngZone) {\n super(element, renderer, null, localization, ngZone);\n this.editService = editService;\n this.elementRef = element;\n }\n /**\n * @hidden\n */\n clickHandler(e) {\n e.preventDefault();\n const index = getClosestListItemIndex(this.elementRef.nativeElement);\n if (this.editService.isEdited(index)) {\n this.editService.save(index);\n }\n }\n};\nSaveCommandDirective.ɵfac = function SaveCommandDirective_Factory(t) { return new (t || SaveCommandDirective)(ɵngcc0.ɵɵdirectiveInject(EditService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc4.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nSaveCommandDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SaveCommandDirective, selectors: [[\"\", \"kendoListViewSaveCommand\", \"\"]], hostBindings: function SaveCommandDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function SaveCommandDirective_click_HostBindingHandler($event) { return ctx.clickHandler($event); });\n } }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n HostListener('click', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], SaveCommandDirective.prototype, \"clickHandler\", null);\nSaveCommandDirective = __decorate([ __metadata(\"design:paramtypes\", [EditService,\n ElementRef,\n Renderer2,\n LocalizationService,\n NgZone])\n], SaveCommandDirective);\n\n/**\n * Represents the `remove` command of the ListView. You can apply this directive to any `button` element\n * inside a [`EditTemplateDirective`]({% slug api_listview_edittemplatedirective %}) template.\n * When an associated button with the directive is clicked, the\n * [`remove` event]({% slug api_listview_listviewcomponent %}#toc-remove)\n * is triggered ([see example]({% slug editing_listview %})).\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * ```\n */\nlet RemoveCommandDirective = class RemoveCommandDirective extends Button {\n constructor(editService, element, renderer, localization, ngZone) {\n super(element, renderer, null, localization, ngZone);\n this.editService = editService;\n this.elementRef = element;\n }\n /**\n * @hidden\n */\n clickHandler(e) {\n e.preventDefault();\n const index = getClosestListItemIndex(this.elementRef.nativeElement);\n this.editService.remove(index);\n }\n};\nRemoveCommandDirective.ɵfac = function RemoveCommandDirective_Factory(t) { return new (t || RemoveCommandDirective)(ɵngcc0.ɵɵdirectiveInject(EditService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc4.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nRemoveCommandDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: RemoveCommandDirective, selectors: [[\"\", \"kendoListViewRemoveCommand\", \"\"]], hostBindings: function RemoveCommandDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function RemoveCommandDirective_click_HostBindingHandler($event) { return ctx.clickHandler($event); });\n } }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n HostListener('click', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], RemoveCommandDirective.prototype, \"clickHandler\", null);\nRemoveCommandDirective = __decorate([ __metadata(\"design:paramtypes\", [EditService,\n ElementRef,\n Renderer2,\n LocalizationService,\n NgZone])\n], RemoveCommandDirective);\n\n/**\n * Represents the command for adding a new item to the ListView. You can apply this directive to any\n * `button` element inside a [`HeaderTemplate`]({% slug api_listview_headertemplatedirective %}).\n * When an associated button with the directive is clicked, the\n * [`add`]({% slug api_listview_listviewcomponent %}#toc-add) event is triggered\n * ([see example]({% slug editing_listview %})).\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * ```\n */\nlet AddCommandDirective = class 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 clickHandler(e) {\n e.preventDefault();\n this.editService.beginAdd();\n }\n};\nAddCommandDirective.ɵfac = function AddCommandDirective_Factory(t) { return new (t || AddCommandDirective)(ɵngcc0.ɵɵdirectiveInject(EditService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc4.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nAddCommandDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: AddCommandDirective, selectors: [[\"\", \"kendoListViewAddCommand\", \"\"]], hostBindings: function AddCommandDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function AddCommandDirective_click_HostBindingHandler($event) { return ctx.clickHandler($event); });\n } }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n HostListener('click', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], AddCommandDirective.prototype, \"clickHandler\", null);\nAddCommandDirective = __decorate([ __metadata(\"design:paramtypes\", [EditService,\n ElementRef,\n Renderer2,\n LocalizationService,\n NgZone])\n], AddCommandDirective);\n\nconst TEMPLATE_DIRECTIVES = [\n ItemTemplateDirective,\n HeaderTemplateDirective,\n FooterTemplateDirective,\n LoaderTemplateDirective\n];\nconst BINDING_DIRECTIVES = [\n DataBindingDirective\n];\nconst EDITING_DIRECTIVES = [\n EditTemplateDirective,\n EditCommandDirective,\n CancelCommandDirective,\n SaveCommandDirective,\n RemoveCommandDirective,\n AddCommandDirective\n];\n/**\n * The exported package module.\n *\n * The package exports:\n * - [`ListViewComponent`]({% slug api_listview_listviewcomponent %})—The ListView component class.\n * - [`ItemTemplateDirective`]({% slug api_listview_itemtemplatedirective %})—The item template directive.\n * - [`HeaderTemplateDirective`]({% slug api_listview_headertemplatedirective %})—The header template directive.\n * - [`FooterTemplateDirective`]({% slug api_listview_footertemplatedirective %})—The footer template directive.\n * - [`LoaderTemplateDirective`]({% slug api_listview_loadertemplatedirective %})—The loeader template directive.\n * - [`DataBindingDirective`]({% slug api_listview_databindingdirective %})—The data binding directive.\n * - [`EditTemplateDirective`]({% slug api_listview_editingdirective %}—The editing template directive.\n */\nlet ListViewModule = class ListViewModule {\n};\nListViewModule.ɵfac = function ListViewModule_Factory(t) { return new (t || ListViewModule)(); };\nListViewModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: ListViewModule });\nListViewModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[\n CommonModule,\n PagerModule,\n EventsModule\n ], CommonModule,\n EventsModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigationService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ListViewNavigableItemDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoListViewNavigableItem]'\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: NavigationService }]; }, { index: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ItemTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoListViewItemTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(HeaderTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoListViewHeaderTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FooterTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoListViewFooterTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LoaderTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoListViewLoaderTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoListViewEditTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc0.NgZone }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ListViewComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'kendoListView',\n selector: 'kendo-listview',\n providers: [\n EditService,\n NavigationService,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.listview'\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 Loading\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 }], function () { return [{ type: ɵngcc0.NgZone }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: EditService }, { type: NavigationService }]; }, { className: [{\n type: HostBinding,\n args: ['class.k-widget']\n }, {\n type: HostBinding,\n args: ['class.k-listview']\n }, {\n type: HostBinding,\n args: ['class.k-listview-bordered']\n }, {\n type: HostBinding,\n args: ['class.k-d-flex']\n }], loading: [{\n type: Input\n }], containerRole: [{\n type: Input\n }], listItemRole: [{\n type: Input\n }], scrollBottom: [{\n type: Output\n }], pageChange: [{\n type: Output\n }], pageSizeChange: [{\n type: Output\n }], edit: [{\n type: Output\n }], cancel: [{\n type: Output\n }], save: [{\n type: Output\n }], remove: [{\n type: Output\n }], add: [{\n type: Output\n }], navigable: [{\n type: Input\n }], skip: [{\n type: Input\n }], pageable: [{\n type: Input\n }], itemTemplate: [{\n type: ContentChild,\n args: [ItemTemplateDirective, { static: false }]\n }], headerTemplate: [{\n type: ContentChild,\n args: [HeaderTemplateDirective, { static: false }]\n }], footerTemplate: [{\n type: ContentChild,\n args: [FooterTemplateDirective, { static: false }]\n }], loaderTemplate: [{\n type: ContentChild,\n args: [LoaderTemplateDirective, { static: false }]\n }], contentContainer: [{\n type: ViewChild,\n args: ['contentContainer', { static: true }]\n }], editTemplate: [{\n type: ContentChild,\n args: [EditTemplateDirective, { static: false }]\n }], listViewItems: [{\n type: ViewChildren,\n args: [ListViewNavigableItemDirective]\n }], data: [{\n type: Input\n }], containerStyle: [{\n type: Input\n }], itemStyle: [{\n type: Input\n }], containerClass: [{\n type: Input\n }], itemClass: [{\n type: Input\n }], containerLabel: [{\n type: Input\n }], pageSize: [{\n type: Input\n }], height: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DataBindingDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoListViewBinding]'\n }]\n }], function () { return [{ type: ListViewComponent }]; }, { data: [{\n type: Input,\n args: ['kendoListViewBinding']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TemplateContextDirective, [{\n type: Directive,\n args: [{\n selector: '[templateContext]' // tslint:disable-line\n }]\n }], function () { return [{ type: ɵngcc0.ViewContainerRef }]; }, { templateContext: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditCommandDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoListViewEditCommand]'\n }]\n }], function () { return [{ type: EditService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc4.LocalizationService }, { type: ɵngcc0.NgZone }]; }, { \n /**\n * @hidden\n */\n clickHandler: [{\n type: HostListener,\n args: ['click', ['$event']]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CancelCommandDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoListViewCancelCommand]'\n }]\n }], function () { return [{ type: EditService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc4.LocalizationService }, { type: ɵngcc0.NgZone }]; }, { \n /**\n * @hidden\n */\n clickHandler: [{\n type: HostListener,\n args: ['click', ['$event']]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SaveCommandDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoListViewSaveCommand]'\n }]\n }], function () { return [{ type: EditService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc4.LocalizationService }, { type: ɵngcc0.NgZone }]; }, { \n /**\n * @hidden\n */\n clickHandler: [{\n type: HostListener,\n args: ['click', ['$event']]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(RemoveCommandDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoListViewRemoveCommand]'\n }]\n }], function () { return [{ type: EditService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc4.LocalizationService }, { type: ɵngcc0.NgZone }]; }, { \n /**\n * @hidden\n */\n clickHandler: [{\n type: HostListener,\n args: ['click', ['$event']]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AddCommandDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoListViewAddCommand]'\n }]\n }], function () { return [{ type: EditService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc4.LocalizationService }, { type: ɵngcc0.NgZone }]; }, { \n /**\n * @hidden\n */\n clickHandler: [{\n type: HostListener,\n args: ['click', ['$event']]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ListViewModule, [{\n type: NgModule,\n args: [{\n declarations: [\n TEMPLATE_DIRECTIVES,\n BINDING_DIRECTIVES,\n EDITING_DIRECTIVES,\n ListViewComponent,\n TemplateContextDirective,\n ListViewNavigableItemDirective\n ],\n exports: [\n TEMPLATE_DIRECTIVES,\n BINDING_DIRECTIVES,\n EDITING_DIRECTIVES,\n ListViewComponent,\n CommonModule,\n EventsModule\n ],\n imports: [\n CommonModule,\n PagerModule,\n EventsModule\n ]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(ListViewModule, { declarations: function () { return [ItemTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, LoaderTemplateDirective, DataBindingDirective, EditTemplateDirective, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, ListViewComponent, TemplateContextDirective, ListViewNavigableItemDirective]; }, imports: function () { return [CommonModule,\n PagerModule,\n EventsModule]; }, exports: function () { return [ItemTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, LoaderTemplateDirective, DataBindingDirective, EditTemplateDirective, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, ListViewComponent, CommonModule,\n EventsModule]; } }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AddCommandDirective, CancelCommandDirective, EditCommandDirective, RemoveCommandDirective, SaveCommandDirective, EditService, ListViewNavigableItemDirective, NavigationService, TemplateContextDirective, ListViewComponent, ItemTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, LoaderTemplateDirective, DataBindingDirective, EditTemplateDirective, PageSizeChangeEvent$1 as PageSizeChangeEvent, ListViewModule };\n\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 { HostBinding, Input, Component, Renderer2, ElementRef, NgModule, Directive, Optional, TemplateRef, EventEmitter, Output, ViewChildren, QueryList, NgZone, isDevMode, ViewChild, ContentChild, ChangeDetectorRef } from '@angular/core';\nimport { LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';\nimport { validatePackage } from '@progress/kendo-licensing';\nimport { CommonModule } from '@angular/common';\nimport { isDocumentAvailable, Keys, ResizeSensorComponent, ResizeSensorModule } from '@progress/kendo-angular-common';\nimport { fromEvent, merge, ReplaySubject, Subject, Subscription } from 'rxjs';\nimport { filter, map, startWith, share } from 'rxjs/operators';\n\n/**\n * @hidden\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@progress/kendo-angular-l10n';\nimport * as ɵngcc2 from '@angular/common';\nimport * as ɵngcc3 from '@progress/kendo-angular-common';\n\nconst _c0 = [\"*\"];\nconst _c1 = [\"kendoBreadCrumbItem\", \"\"];\nfunction BreadCrumbItemComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojection(0);\n} }\nfunction BreadCrumbItemComponent_ng_container_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0);\n} }\nfunction BreadCrumbItemComponent_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, BreadCrumbItemComponent_ng_container_2_ng_container_1_Template, 1, 0, \"ng-container\", 2);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n ɵngcc0.ɵɵnextContext();\n const _r0 = ɵngcc0.ɵɵreference(1);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", _r0);\n} }\nfunction BreadCrumbItemComponent_ng_container_3_span_1_img_1_Template(rf, ctx) { if (rf & 1) {\n const _r12 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"img\", 7);\n ɵngcc0.ɵɵlistener(\"load\", function BreadCrumbItemComponent_ng_container_3_span_1_img_1_Template_img_load_0_listener() { ɵngcc0.ɵɵrestoreView(_r12); const ctx_r11 = ɵngcc0.ɵɵnextContext(3); return ctx_r11.onImageLoad(); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r8 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"src\", ctx_r8.item.data.imageUrl, ɵngcc0.ɵɵsanitizeUrl);\n} }\nfunction BreadCrumbItemComponent_ng_container_3_span_1_span_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\");\n} if (rf & 2) {\n const ctx_r9 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵclassMapInterpolate1(\"k-icon k-i-\", ctx_r9.item.data.icon, \"\");\n} }\nfunction BreadCrumbItemComponent_ng_container_3_span_1_span_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\");\n} if (rf & 2) {\n const ctx_r10 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵclassMap(ctx_r10.item.data.iconClass);\n} }\nconst _c2 = function (a0, a1, a2, a3, a4) { return { \"k-breadcrumb-root-link\": a0, \"k-breadcrumb-link\": a1, \"k-breadcrumb-icontext-link\": a2, \"k-breadcrumb-icon-link\": a3, \"k-state-disabled\": a4 }; };\nfunction BreadCrumbItemComponent_ng_container_3_span_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 4);\n ɵngcc0.ɵɵtemplate(1, BreadCrumbItemComponent_ng_container_3_span_1_img_1_Template, 1, 1, \"img\", 5);\n ɵngcc0.ɵɵtemplate(2, BreadCrumbItemComponent_ng_container_3_span_1_span_2_Template, 1, 3, \"span\", 6);\n ɵngcc0.ɵɵtemplate(3, BreadCrumbItemComponent_ng_container_3_span_1_span_3_Template, 1, 3, \"span\", 6);\n ɵngcc0.ɵɵtext(4);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r6 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction5(8, _c2, ctx_r6.item.context.isFirst, ctx_r6.index !== 0, !!ctx_r6.item.data.icon && !!ctx_r6.item.data.text, !!ctx_r6.item.data.icon && !ctx_r6.item.data.text, ctx_r6.disabled))(\"title\", ctx_r6.item.data.title || \"\")(\"tabindex\", ctx_r6.disabled ? -1 : 0);\n ɵngcc0.ɵɵattribute(\"aria-current\", ctx_r6.item.context.isLast ? true : null);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r6.item.data.imageUrl);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r6.item.data.icon && !ctx_r6.item.data.iconClass);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r6.item.data.iconClass);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r6.item.data.text, \" \");\n} }\nfunction BreadCrumbItemComponent_ng_container_3_2_ng_template_0_Template(rf, ctx) { }\nconst _c3 = function (a0, a1) { return { $implicit: a0, index: a1 }; };\nfunction BreadCrumbItemComponent_ng_container_3_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, BreadCrumbItemComponent_ng_container_3_2_ng_template_0_Template, 0, 0, \"ng-template\", 8);\n} if (rf & 2) {\n const ctx_r7 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r7.itemTemplate)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction2(2, _c3, ctx_r7.item.data, ctx_r7.index));\n} }\nfunction BreadCrumbItemComponent_ng_container_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, BreadCrumbItemComponent_ng_container_3_span_1_Template, 5, 14, \"span\", 3);\n ɵngcc0.ɵɵtemplate(2, BreadCrumbItemComponent_ng_container_3_2_Template, 1, 5, null, 1);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r3.itemTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r3.itemTemplate);\n} }\nfunction BreadCrumbItemComponent_ng_container_4_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0);\n} }\nfunction BreadCrumbItemComponent_ng_container_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, BreadCrumbItemComponent_ng_container_4_ng_container_1_Template, 1, 0, \"ng-container\", 2);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n ɵngcc0.ɵɵnextContext();\n const _r0 = ɵngcc0.ɵɵreference(1);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", _r0);\n} }\nconst _c4 = [[[\"\", \"kendoBreadCrumbSeparator\", \"\"]]];\nconst _c5 = [\"[kendoBreadCrumbSeparator]\"];\nconst _c6 = [\"kendoBreadCrumbList\", \"\"];\nfunction BreadCrumbListComponent_ng_container_0_li_1_span_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 5);\n} if (rf & 2) {\n const ctx_r7 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"icon\", ctx_r7.separatorIcon);\n} }\nfunction BreadCrumbListComponent_ng_container_0_li_1_span_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 5);\n} if (rf & 2) {\n const ctx_r8 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"icon\", ctx_r8.separatorIcon);\n} }\nfunction BreadCrumbListComponent_ng_container_0_li_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"li\", 2, 3);\n ɵngcc0.ɵɵtemplate(2, BreadCrumbListComponent_ng_container_0_li_1_span_2_Template, 1, 1, \"span\", 4);\n ɵngcc0.ɵɵtemplate(3, BreadCrumbListComponent_ng_container_0_li_1_span_3_Template, 1, 1, \"span\", 4);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r9 = ɵngcc0.ɵɵnextContext();\n const item_r1 = ctx_r9.$implicit;\n const i_r2 = ctx_r9.index;\n const isFirst_r3 = ctx_r9.first;\n const isLast_r4 = ctx_r9.last;\n const ctx_r5 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"item\", item_r1)(\"index\", i_r2)(\"collapseMode\", ctx_r5.collapseMode)(\"itemTemplate\", ctx_r5.itemTemplate);\n ɵngcc0.ɵɵattribute(\"data-kendo-breadcrumb-index\", i_r2);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r5.collapseMode === \"wrap\" && !isFirst_r3);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r5.collapseMode !== \"wrap\" && !isLast_r4 && !((item_r1 == null ? null : item_r1.context.collapsed) && (ctx_r5.items[i_r2 + 1] == null ? null : ctx_r5.items[i_r2 + 1].context.collapsed)));\n} }\nfunction BreadCrumbListComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, BreadCrumbListComponent_ng_container_0_li_1_Template, 4, 7, \"li\", 1);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const isFirst_r3 = ctx.first;\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !(ctx_r0.collapseMode === \"wrap\" && isFirst_r3) || ctx_r0.isRootItemContainer);\n} }\nconst _c7 = [\"resizeSensor\"];\nconst _c8 = [\"itemsContainer\"];\nfunction BreadCrumbComponent_ol_0_Template(rf, ctx) { if (rf & 1) {\n const _r5 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"ol\", 5, 2);\n ɵngcc0.ɵɵlistener(\"itemClick\", function BreadCrumbComponent_ol_0_Template_ol_itemClick_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r5); const ctx_r4 = ɵngcc0.ɵɵnextContext(); return ctx_r4.itemClick.emit($event); });\n ɵngcc0.ɵɵpipe(2, \"async\");\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"items\", ɵngcc0.ɵɵpipeBind1(2, 4, ctx_r0.firstItem$))(\"itemTemplate\", ctx_r0.itemTemplate == null ? null : ctx_r0.itemTemplate.templateRef)(\"collapseMode\", ctx_r0.collapseMode)(\"separatorIcon\", ctx_r0.separatorIcon);\n} }\nconst _c9 = function (a0, a1) { return { \"k-flex-wrap\": a0, \"k-flex-none\": a1 }; };\nconst _c10 = [\"kendoBottomNavigationItem\", \"\"];\nfunction BottomNavigationItemComponent_ng_container_0_span_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 3);\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r2.iconClasses);\n} }\nfunction BottomNavigationItemComponent_ng_container_0_span_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 4);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r3.item.text);\n} }\nfunction BottomNavigationItemComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, BottomNavigationItemComponent_ng_container_0_span_1_Template, 1, 1, \"span\", 1);\n ɵngcc0.ɵɵtemplate(2, BottomNavigationItemComponent_ng_container_0_span_2_Template, 2, 1, \"span\", 2);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r0.itemIcon);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r0.item.text);\n} }\nfunction BottomNavigationItemComponent_1_ng_template_0_Template(rf, ctx) { }\nconst _c11 = function (a0) { return { $implicit: a0 }; };\nfunction BottomNavigationItemComponent_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, BottomNavigationItemComponent_1_ng_template_0_Template, 0, 0, \"ng-template\", 5);\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.itemTemplate == null ? null : ctx_r1.itemTemplate.templateRef)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction1(2, _c11, ctx_r1.item));\n} }\nfunction BottomNavigationComponent_ng_container_0_span_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 2);\n} if (rf & 2) {\n const item_r2 = ctx.$implicit;\n const idx_r3 = ctx.index;\n const ctx_r1 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"disabledComponent\", ctx_r1.disabled)(\"item\", item_r2)(\"index\", idx_r3)(\"selectedIdx\", ctx_r1.selectedIdx)(\"itemTemplate\", ctx_r1.itemTemplate)(\"ngClass\", item_r2.cssClass)(\"ngStyle\", item_r2.cssStyle)(\"orientation\", ctx_r1.itemFlow);\n ɵngcc0.ɵɵattribute(\"data-kendo-bottomnavigation-index\", idx_r3);\n} }\nfunction BottomNavigationComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, BottomNavigationComponent_ng_container_0_span_1_Template, 1, 9, \"span\", 1);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r0.items);\n} }\nconst packageMetadata = {\n name: '@progress/kendo-angular-navigation',\n productName: 'Kendo UI for Angular',\n productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],\n publishDate: 1647344375,\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\n/**\n * Represents the [Kendo UI AppBar component for Angular]({% slug overview_appbar %}).\n * Used to display information, actions, branding titles and additional navigation on the current screen.\n */\nlet AppBarComponent = class AppBarComponent {\n constructor(localizationService) {\n this.localizationService = localizationService;\n this.hostClass = true;\n /**\n * Specifies the position of the AppBar\n * ([see example]({% slug positioning_appbar %}#toc-position)).\n *\n * * The possible values are:\n * * `top` (Default)—Positions the AppBar at the top of the content.\n * Setting the `position` property to `top` requires adding the Appbar component before the page content.\n * The position property applies CSS `top: 0` style in [`fixed mode`]({% slug api_navigation_appbarcomponent %}#toc-positionMode) and also adds a `box-shadow` to the bottom of the AppBar.\n *\n * * `bottom`—Positions the AppBar at the bottom of the content.\n * Setting the `position` property to `bottom` requires adding the Appbar component after the page content.\n * The position property applies CSS `bottom: 0` style in [`fixed mode`]({% slug api_navigation_appbarcomponent %}#toc-positionMode) and also adds a `box-shadow ` to the top of the AppBar.\n *\n */\n this.position = 'top';\n /**\n * Specifies the positionMode of the AppBar\n * ([see example]({% slug positioning_appbar %}#toc-positionmode)).\n *\n * * The possible values are:\n * * `static` (Default)—Does not position the AppBar in any special way. It is positioned according to the normal flow of the page.\n * * `sticky`—Positions the AppBar based on the user's scroll position. A sticky element toggles between static and fixed CSS [`position`](https://developer.mozilla.org/en-US/docs/Web/CSS/position) property, depending on the scroll position.\n * * `fixed`—Positions the AppBar relative to the viewport. It always stays in the same place even if the page is scrolled.\n */\n this.positionMode = 'static';\n /**\n * Specifies the theme color of the AppBar.\n * The theme color will be applied as background color of the component.\n *\n *\n * * The possible values are:\n * * `light` (Default)—Applies coloring based on light theme color.\n * * `dark`—Applies coloring based on dark theme color.\n * * `inherit`— Applies inherited coloring value.\n *\n */\n this.themeColor = 'light';\n this.rtl = false;\n validatePackage(packageMetadata);\n this.dynamicRTLSubscription = this.localizationService.changes.subscribe(({ rtl }) => {\n this.rtl = rtl;\n this.direction = this.rtl ? 'rtl' : 'ltr';\n });\n }\n get topClass() {\n return this.position === 'top';\n }\n get bottomClass() {\n return this.position === 'bottom';\n }\n get stickyClass() {\n return this.positionMode === 'sticky';\n }\n get fixedClass() {\n return this.positionMode === 'fixed';\n }\n get staticClass() {\n return this.positionMode === 'static';\n }\n get lightClass() {\n return this.themeColor === 'light';\n }\n get darkClass() {\n return this.themeColor === 'dark';\n }\n get inheritClass() {\n return this.themeColor === 'inherit';\n }\n ngOnDestroy() {\n if (this.dynamicRTLSubscription) {\n this.dynamicRTLSubscription.unsubscribe();\n }\n }\n};\nAppBarComponent.ɵfac = function AppBarComponent_Factory(t) { return new (t || AppBarComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nAppBarComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: AppBarComponent, selectors: [[\"kendo-appbar\"]], hostVars: 19, hostBindings: function AppBarComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"dir\", ctx.direction);\n ɵngcc0.ɵɵclassProp(\"k-appbar\", ctx.hostClass)(\"k-appbar-top\", ctx.topClass)(\"k-appbar-bottom\", ctx.bottomClass)(\"k-appbar-sticky\", ctx.stickyClass)(\"k-appbar-fixed\", ctx.fixedClass)(\"k-appbar-static\", ctx.staticClass)(\"k-appbar-light\", ctx.lightClass)(\"k-appbar-dark\", ctx.darkClass)(\"k-appbar-inherit\", ctx.inheritClass);\n } }, inputs: { position: \"position\", positionMode: \"positionMode\", themeColor: \"themeColor\" }, exportAs: [\"kendoAppBar\"], features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.appbar.component'\n }\n ])], ngContentSelectors: _c0, decls: 1, vars: 0, template: function AppBarComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵprojection(0);\n } }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-appbar'),\n __metadata(\"design:type\", Boolean)\n], AppBarComponent.prototype, \"hostClass\", void 0);\n__decorate([\n HostBinding('class.k-appbar-top'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], AppBarComponent.prototype, \"topClass\", null);\n__decorate([\n HostBinding('class.k-appbar-bottom'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], AppBarComponent.prototype, \"bottomClass\", null);\n__decorate([\n HostBinding('class.k-appbar-sticky'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], AppBarComponent.prototype, \"stickyClass\", null);\n__decorate([\n HostBinding('class.k-appbar-fixed'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], AppBarComponent.prototype, \"fixedClass\", null);\n__decorate([\n HostBinding('class.k-appbar-static'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], AppBarComponent.prototype, \"staticClass\", null);\n__decorate([\n HostBinding('class.k-appbar-light'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], AppBarComponent.prototype, \"lightClass\", null);\n__decorate([\n HostBinding('class.k-appbar-dark'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], AppBarComponent.prototype, \"darkClass\", null);\n__decorate([\n HostBinding('class.k-appbar-inherit'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], AppBarComponent.prototype, \"inheritClass\", null);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String)\n], AppBarComponent.prototype, \"direction\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AppBarComponent.prototype, \"position\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AppBarComponent.prototype, \"positionMode\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AppBarComponent.prototype, \"themeColor\", void 0);\nAppBarComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], AppBarComponent);\n\n/**\n * Represents the [Kendo UI AppBarSection component for Angular]({% slug contentarrangement_appbar %}#toc-sections).\n *\n * @example\n *\n * ```ts-no-run\n * * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n *

    Page Title

    \n *
    \n *
    \n * `\n * })\n * class AppComponent {}\n */\nlet AppBarSectionComponent = class AppBarSectionComponent {\n /**\n * Represents the [Kendo UI AppBarSection component for Angular]({% slug contentarrangement_appbar %}#toc-sections).\n *\n * @example\n *\n * ```ts-no-run\n * * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n *

    Page Title

    \n *
    \n *
    \n * `\n * })\n * class AppComponent {}\n */\n constructor() {\n this.hostClass = true;\n }\n};\nAppBarSectionComponent.ɵfac = function AppBarSectionComponent_Factory(t) { return new (t || AppBarSectionComponent)(); };\nAppBarSectionComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: AppBarSectionComponent, selectors: [[\"kendo-appbar-section\"]], hostVars: 2, hostBindings: function AppBarSectionComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-appbar-section\", ctx.hostClass);\n } }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AppBarSectionComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵprojection(0);\n } }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-appbar-section'),\n __metadata(\"design:type\", Boolean)\n], AppBarSectionComponent.prototype, \"hostClass\", void 0);\n\n/**\n * @hidden\n */\nconst isPresent = (value) => value !== null && value !== undefined;\n/**\n * @hidden\n */\nconst outerWidth = (element) => {\n let width = element.offsetWidth;\n const style = getComputedStyle(element);\n width += (parseFloat(style.marginLeft) || 0) + (parseFloat(style.marginRight) || 0);\n return width;\n};\n\n/**\n * Represents the [Kendo UI AppBarSpacer component for Angular]({% slug contentarrangement_appbar %}#toc-spacings).\n * Used to give additional white space between the AppBar sections and provides a way for customizing its width.\n *\n * @example\n *\n * ```ts-no-run\n * * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n *\n * \n *\n * \n *

    Page Title

    \n *
    \n *
    \n * `\n * })\n * class AppComponent {}\n * ```\n */\nlet AppBarSpacerComponent = class AppBarSpacerComponent {\n constructor(renderer, element) {\n this.renderer = renderer;\n this.element = element;\n this.hostClass = true;\n }\n get sizedClass() {\n return isPresent(this.width);\n }\n ngAfterViewInit() {\n if (isPresent(this.width)) {\n const element = this.element.nativeElement;\n this.renderer.setStyle(element, 'flexBasis', this.width);\n }\n }\n};\nAppBarSpacerComponent.ɵfac = function AppBarSpacerComponent_Factory(t) { return new (t || AppBarSpacerComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nAppBarSpacerComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: AppBarSpacerComponent, selectors: [[\"kendo-appbar-spacer\"]], hostVars: 4, hostBindings: function AppBarSpacerComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-appbar-spacer\", ctx.hostClass)(\"k-appbar-spacer-sized\", ctx.sizedClass);\n } }, inputs: { width: \"width\" }, decls: 0, vars: 0, template: function AppBarSpacerComponent_Template(rf, ctx) { }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-appbar-spacer'),\n __metadata(\"design:type\", Boolean)\n], AppBarSpacerComponent.prototype, \"hostClass\", void 0);\n__decorate([\n HostBinding('class.k-appbar-spacer-sized'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], AppBarSpacerComponent.prototype, \"sizedClass\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], AppBarSpacerComponent.prototype, \"width\", void 0);\nAppBarSpacerComponent = __decorate([ __metadata(\"design:paramtypes\", [Renderer2, ElementRef])\n], AppBarSpacerComponent);\n\nconst exportedModules = [\n AppBarComponent,\n AppBarSectionComponent,\n AppBarSpacerComponent\n];\nconst declarations = [\n ...exportedModules\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the AppBar component.\n *\n * * @example\n *\n * ```ts-no-run\n * // Import the AppBar module\n * import { AppBarModule } from '@progress/kendo-angular-navigation';\n *\n * // The browser platform with a compiler\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n * import { BrowserModule } from '@angular/platform-browser';\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, AppBarModule], // import AppBar module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nlet AppBarModule = class AppBarModule {\n};\nAppBarModule.ɵfac = function AppBarModule_Factory(t) { return new (t || AppBarModule)(); };\nAppBarModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: AppBarModule });\nAppBarModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule]] });\n\n/**\n * Represents a template that defines the content of a Breadcrumb item.\n * To define the template, nest an `` tag with the `kendoBreadCrumbItemTemplate` directive inside the `` tag.\n *\n * For more information and example refer to the [Templates]({% slug templates_breadcrumb %}) article.\n */\nlet BreadCrumbItemTemplateDirective = class BreadCrumbItemTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nBreadCrumbItemTemplateDirective.ɵfac = function BreadCrumbItemTemplateDirective_Factory(t) { return new (t || BreadCrumbItemTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nBreadCrumbItemTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: BreadCrumbItemTemplateDirective, selectors: [[\"\", \"kendoBreadCrumbItemTemplate\", \"\"]] });\nBreadCrumbItemTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], BreadCrumbItemTemplateDirective);\n\n/**\n * @hidden\n */\nconst BREADCRUMB_ITEM_INDEX = 'data-kendo-breadcrumb-index';\n\n/**\n * @hidden\n */\nlet BreadCrumbItemComponent = class BreadCrumbItemComponent {\n constructor(el) {\n this.el = el;\n this.index = -1;\n this.hostClasses = true;\n this.disabled = false;\n }\n get isRootItem() {\n return this.item.context.isFirst;\n }\n get isDisabled() {\n return this.disabled || null;\n }\n get isLastItem() {\n return this.item.context.isLast;\n }\n ngOnInit() {\n this.disabled = this.item.data && (this.item.data.disabled || this.item.context.isLast);\n }\n ngAfterViewInit() {\n if (isDocumentAvailable()) {\n this.width = outerWidth(this.el.nativeElement);\n }\n }\n onImageLoad() {\n if (isDocumentAvailable()) {\n this.width = outerWidth(this.el.nativeElement);\n }\n }\n};\nBreadCrumbItemComponent.ɵfac = function BreadCrumbItemComponent_Factory(t) { return new (t || BreadCrumbItemComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nBreadCrumbItemComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: BreadCrumbItemComponent, selectors: [[\"\", \"kendoBreadCrumbItem\", \"\"]], hostVars: 9, hostBindings: function BreadCrumbItemComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"aria-disabled\", ctx.isDisabled);\n ɵngcc0.ɵɵclassProp(\"k-flex-none\", ctx.hostClasses)(\"k-breadcrumb-item\", ctx.hostClasses)(\"k-breadcrumb-root-item\", ctx.isRootItem)(\"k-breadcrumb-last-item\", ctx.isLastItem);\n } }, inputs: { index: \"index\", item: \"item\", collapseMode: \"collapseMode\", itemTemplate: \"itemTemplate\" }, attrs: _c1, ngContentSelectors: _c5, decls: 5, vars: 3, consts: [[\"separator\", \"\"], [4, \"ngIf\"], [4, \"ngTemplateOutlet\"], [\"role\", \"link\", \"class\", \"k-cursor-pointer k-flex-none\", 3, \"ngClass\", \"title\", \"tabindex\", 4, \"ngIf\"], [\"role\", \"link\", 1, \"k-cursor-pointer\", \"k-flex-none\", 3, \"ngClass\", \"title\", \"tabindex\"], [\"class\", \"k-image\", \"role\", \"presentation\", 3, \"src\", \"load\", 4, \"ngIf\"], [3, \"class\", 4, \"ngIf\"], [\"role\", \"presentation\", 1, \"k-image\", 3, \"src\", \"load\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]], template: function BreadCrumbItemComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef(_c4);\n ɵngcc0.ɵɵtemplate(0, BreadCrumbItemComponent_ng_template_0_Template, 1, 0, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(2, BreadCrumbItemComponent_ng_container_2_Template, 2, 1, \"ng-container\", 1);\n ɵngcc0.ɵɵtemplate(3, BreadCrumbItemComponent_ng_container_3_Template, 3, 2, \"ng-container\", 1);\n ɵngcc0.ɵɵtemplate(4, BreadCrumbItemComponent_ng_container_4_Template, 2, 1, \"ng-container\", 1);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.collapseMode === \"wrap\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.item.context.collapsed);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.collapseMode !== \"wrap\");\n } }, directives: [ɵngcc2.NgIf, ɵngcc2.NgTemplateOutlet, ɵngcc2.NgClass], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], BreadCrumbItemComponent.prototype, \"item\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], BreadCrumbItemComponent.prototype, \"collapseMode\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], BreadCrumbItemComponent.prototype, \"index\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], BreadCrumbItemComponent.prototype, \"itemTemplate\", void 0);\n__decorate([\n HostBinding('class.k-flex-none'),\n HostBinding('class.k-breadcrumb-item'),\n __metadata(\"design:type\", Boolean)\n], BreadCrumbItemComponent.prototype, \"hostClasses\", void 0);\n__decorate([\n HostBinding('class.k-breadcrumb-root-item'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], BreadCrumbItemComponent.prototype, \"isRootItem\", null);\n__decorate([\n HostBinding('attr.aria-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], BreadCrumbItemComponent.prototype, \"isDisabled\", null);\n__decorate([\n HostBinding('class.k-breadcrumb-last-item'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], BreadCrumbItemComponent.prototype, \"isLastItem\", null);\nBreadCrumbItemComponent = __decorate([ __metadata(\"design:paramtypes\", [ElementRef])\n], BreadCrumbItemComponent);\n\nconst closestInScope = (target, targetAttr, predicate, scope) => {\n while (target && target !== scope && !predicate(target, targetAttr)) {\n target = target.parentNode;\n }\n if (target !== scope) {\n return target;\n }\n};\nconst hasItemIndex = (item, indexAttr) => isPresent(item.getAttribute(indexAttr));\n/**\n * @hidden\n */\nconst itemIndex = (item, indexAttr) => +item.getAttribute(indexAttr);\n/**\n * @hidden\n */\nconst closestItem = (target, targetAttr, scope) => closestInScope(target, targetAttr, hasItemIndex, scope);\n\n/**\n * @hidden\n */\nlet BreadCrumbListComponent = class BreadCrumbListComponent {\n constructor(el, zone) {\n this.el = el;\n this.zone = zone;\n this.items = [];\n this.collapseMode = 'auto';\n this.itemClick = new EventEmitter();\n const element = this.el.nativeElement;\n this.isRootItemContainer = element.classList.contains('k-breadcrumb-root-item-container');\n this.zone.runOutsideAngular(() => {\n const click$ = fromEvent(element, 'click');\n const enterKey$ = fromEvent(element, 'keydown').pipe(filter((ev /* KeyboardEvent causes lint error */) => ev.keyCode === Keys.Enter));\n this.domEventsSubscription = merge(click$, enterKey$)\n .pipe(map((ev) => ev.target), filter(e => !e.classList.contains('k-breadcrumb-delimiter-icon')), // do not trigger handler when a separator is clicked\n map(e => this.getItemIndex(e)), filter(isPresent), map(i => parseInt(i, 10)), map(i => this.items[i]), filter(item => !item.data.disabled && !item.context.isLast), map(item => item.data))\n .subscribe(el => {\n this.zone.run(() => this.itemClick.emit(el));\n });\n });\n }\n ngOnDestroy() {\n this.domEventsSubscription.unsubscribe();\n }\n getItemIndex(target) {\n const item = closestItem(target, BREADCRUMB_ITEM_INDEX, this.el.nativeElement);\n if (item) {\n return itemIndex(item, BREADCRUMB_ITEM_INDEX);\n }\n }\n};\nBreadCrumbListComponent.ɵfac = function BreadCrumbListComponent_Factory(t) { return new (t || BreadCrumbListComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nBreadCrumbListComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: BreadCrumbListComponent, selectors: [[\"\", \"kendoBreadCrumbList\", \"\"]], viewQuery: function BreadCrumbListComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(BreadCrumbItemComponent, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.renderedItems = _t);\n } }, inputs: { items: \"items\", collapseMode: \"collapseMode\", itemTemplate: \"itemTemplate\", separatorIcon: \"separatorIcon\" }, outputs: { itemClick: \"itemClick\" }, attrs: _c6, decls: 1, vars: 1, consts: [[4, \"ngFor\", \"ngForOf\"], [\"kendoBreadCrumbItem\", \"\", 3, \"item\", \"index\", \"collapseMode\", \"itemTemplate\", 4, \"ngIf\"], [\"kendoBreadCrumbItem\", \"\", 3, \"item\", \"index\", \"collapseMode\", \"itemTemplate\"], [\"renderedItem\", \"\"], [\"kendoBreadCrumbSeparator\", \"\", 3, \"icon\", 4, \"ngIf\"], [\"kendoBreadCrumbSeparator\", \"\", 3, \"icon\"]], template: function BreadCrumbListComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, BreadCrumbListComponent_ng_container_0_Template, 2, 1, \"ng-container\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.items);\n } }, directives: function () { return [ɵngcc2.NgForOf, ɵngcc2.NgIf, BreadCrumbItemComponent, BreadCrumbSeparatorDirective]; }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], BreadCrumbListComponent.prototype, \"items\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], BreadCrumbListComponent.prototype, \"itemTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], BreadCrumbListComponent.prototype, \"collapseMode\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], BreadCrumbListComponent.prototype, \"separatorIcon\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], BreadCrumbListComponent.prototype, \"itemClick\", void 0);\n__decorate([\n ViewChildren(BreadCrumbItemComponent),\n __metadata(\"design:type\", QueryList)\n], BreadCrumbListComponent.prototype, \"renderedItems\", void 0);\nBreadCrumbListComponent = __decorate([ __metadata(\"design:paramtypes\", [ElementRef, NgZone])\n], BreadCrumbListComponent);\n\nconst getCollapsed = (itemComponent) => itemComponent.item.context.collapsed;\n/**\n * @hidden\n */\nconst collapsed = (itemComponent) => getCollapsed(itemComponent) === true;\n/**\n * @hidden\n */\nconst expanded = (itemComponent) => getCollapsed(itemComponent) === false;\nconst toggleFirst = (collapsed) => (itemComponents) => (itemComponents.find(ic => getCollapsed(ic) === collapsed).item.context.collapsed = !collapsed);\n/**\n * @hidden\n */\nconst collapseFirst = toggleFirst(false);\n/**\n * @hidden\n */\nconst expandFirst = toggleFirst(true);\n\n/**\n * Represents the [Kendo UI Breadcrumb component for Angular]({% slug overview_breadcrumb %}).\n *\n * @example\n * ```ts-no-run\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n * class AppComponent {\n * public items: BreadCrumbItem[] = [\n * { text: 'Home', title: 'Home', icon: 'home' },\n * { text: 'Kids', title: 'Kids' },\n * { text: '8y-16y', title: '8y-16y', disabled: true },\n * { text: 'New collection', title: 'New collection' },\n * { text: 'Jeans', title: 'Jeans' }\n * ];\n *\n * public onItemClick(item: BreadCrumbItem): void {\n * console.log(item);\n * }\n * }\n * ```\n */\nlet BreadCrumbComponent = class BreadCrumbComponent {\n constructor(el, cdr, zone, localization) {\n this.el = el;\n this.cdr = cdr;\n this.zone = zone;\n this.localization = localization;\n /**\n * Fires when a Breadcrumb item is clicked. The event will not be fired by disabled items and the last item.\n */\n this.itemClick = new EventEmitter();\n this.hostClasses = true;\n this._items = [];\n this._collapseMode = 'auto';\n this.updateItems = new ReplaySubject();\n this.afterViewInit = new Subject();\n this.subscriptions = new Subscription();\n this.direction = 'ltr';\n validatePackage(packageMetadata);\n const updateItems$ = this.updateItems.asObservable().pipe(startWith([]));\n this.direction = localization.rtl ? 'rtl' : 'ltr';\n this.itemsData$ = updateItems$.pipe(map(items => items.filter(Boolean)), map(items => items.map((item, index, collection) => ({\n context: {\n collapsed: false,\n isLast: index === collection.length - 1,\n isFirst: index === 0\n },\n data: item\n }))), share());\n this.firstItem$ = updateItems$.pipe(map(items => {\n if (items.length > 0) {\n return [\n {\n context: {\n collapsed: false,\n isLast: items.length === 1,\n isFirst: true\n },\n data: items[0]\n }\n ];\n }\n return [];\n }), share());\n }\n /**\n * The collection of items that will be rendered in the Breadcrumb.\n */\n set items(items) {\n this._items = items || [];\n this.updateItems.next(this._items);\n }\n get items() {\n return this._items;\n }\n /**\n * Specifies the collapse mode of the Breadcrumb ([see example]({% slug collapse_modes_breadcrumb %})).\n *\n * The possible values are:\n * - `auto` (default)—items are automatically collapsed based on the width of the Breadcrumb.\n * - `wrap`—items are wrapped on multiple rows.\n * - `none`—all items are expanded on the same row.\n *\n * For more information and example refer to the [Collapse Modes]({% slug collapse_modes_breadcrumb %}) article.\n */\n set collapseMode(mode) {\n if (isDevMode() && ['auto', 'wrap', 'none'].indexOf(mode) < 0) {\n throw new Error('Invalid collapse mode. Allowed values are \"auto\", \"wrap\" or \"none\". \\nFor more details see https://www.telerik.com/kendo-angular-ui/components/navigation/api/BreadCrumbCollapseMode/');\n }\n this._collapseMode = mode || 'auto';\n this.updateItems.next(this.items);\n }\n get collapseMode() {\n return this._collapseMode;\n }\n get wrapMode() {\n return this.collapseMode === 'wrap';\n }\n get getDir() {\n return this.direction;\n }\n ngOnInit() {\n this.subscriptions.add(this.localization.changes.subscribe(({ rtl }) => (this.direction = rtl ? 'rtl' : 'ltr')));\n }\n ngAfterViewInit() {\n this.attachResizeHandler();\n this.afterViewInit.next();\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n handleResize() {\n const autoCollapseCandidates = [\n ...this.listComponent.renderedItems.toArray().filter(ri => !ri.item.context.isFirst && !ri.item.context.isLast)\n ];\n const componentWidth = outerWidth(this.el.nativeElement);\n const itemsContainerWidth = Math.floor(this.itemsContainers\n .toArray()\n .map(el => outerWidth(el.nativeElement))\n .reduce((acc, curr) => acc + curr, 0));\n const nextExpandWidth = ([...autoCollapseCandidates].reverse().find(collapsed) || { width: 0 }).width;\n // // shrink\n if (componentWidth <= itemsContainerWidth && autoCollapseCandidates.find(expanded)) {\n collapseFirst(autoCollapseCandidates);\n // needed by resize sensor\n this.cdr.detectChanges();\n return this.handleResize();\n }\n // expand\n if (componentWidth > itemsContainerWidth + nextExpandWidth && autoCollapseCandidates.find(collapsed)) {\n expandFirst([...autoCollapseCandidates].reverse());\n // needed by resize sensor\n this.cdr.detectChanges();\n return this.handleResize();\n }\n }\n shouldResize() {\n return isDocumentAvailable() && this.collapseMode === 'auto';\n }\n attachResizeHandler() {\n // resize when:\n // the component is initialized\n // the container is resized\n // items are added/removed\n this.subscriptions.add(merge(this.resizeSensor.resize, this.itemsData$, this.afterViewInit.asObservable())\n .pipe(filter(() => this.shouldResize()))\n .subscribe(() => {\n this.zone.runOutsideAngular(() => setTimeout(() => {\n this.zone.run(() => {\n if (this.listComponent) {\n this.handleResize();\n this.resizeSensor.acceptSize();\n }\n });\n }));\n }));\n }\n};\nBreadCrumbComponent.ɵfac = function BreadCrumbComponent_Factory(t) { return new (t || BreadCrumbComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nBreadCrumbComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: BreadCrumbComponent, selectors: [[\"kendo-breadcrumb\"]], contentQueries: function BreadCrumbComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, BreadCrumbItemTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.itemTemplate = _t.first);\n } }, viewQuery: function BreadCrumbComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c7, 7);\n ɵngcc0.ɵɵviewQuery(BreadCrumbListComponent, 7);\n ɵngcc0.ɵɵviewQuery(_c8, 5, ElementRef);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.resizeSensor = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.listComponent = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.itemsContainers = _t);\n } }, hostVars: 7, hostBindings: function BreadCrumbComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"dir\", ctx.getDir);\n ɵngcc0.ɵɵclassProp(\"k-widget\", ctx.hostClasses)(\"k-breadcrumb\", ctx.hostClasses)(\"k-breadcrumb-wrap\", ctx.wrapMode);\n } }, inputs: { items: \"items\", collapseMode: \"collapseMode\", separatorIcon: \"separatorIcon\" }, outputs: { itemClick: \"itemClick\" }, exportAs: [\"kendoBreadCrumb\"], features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.breadcrumb'\n }\n ])], decls: 6, vars: 12, consts: [[\"kendoBreadCrumbList\", \"\", \"class\", \"k-breadcrumb-root-item-container\", 3, \"items\", \"itemTemplate\", \"collapseMode\", \"separatorIcon\", \"itemClick\", 4, \"ngIf\"], [\"kendoBreadCrumbList\", \"\", 1, \"k-breadcrumb-container\", 3, \"items\", \"itemTemplate\", \"collapseMode\", \"separatorIcon\", \"ngClass\", \"itemClick\"], [\"itemsContainer\", \"\"], [3, \"rateLimit\"], [\"resizeSensor\", \"\"], [\"kendoBreadCrumbList\", \"\", 1, \"k-breadcrumb-root-item-container\", 3, \"items\", \"itemTemplate\", \"collapseMode\", \"separatorIcon\", \"itemClick\"]], template: function BreadCrumbComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, BreadCrumbComponent_ol_0_Template, 3, 6, \"ol\", 0);\n ɵngcc0.ɵɵelementStart(1, \"ol\", 1, 2);\n ɵngcc0.ɵɵlistener(\"itemClick\", function BreadCrumbComponent_Template_ol_itemClick_1_listener($event) { return ctx.itemClick.emit($event); });\n ɵngcc0.ɵɵpipe(3, \"async\");\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelement(4, \"kendo-resize-sensor\", 3, 4);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.collapseMode === \"wrap\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"items\", ɵngcc0.ɵɵpipeBind1(3, 7, ctx.itemsData$))(\"itemTemplate\", ctx.itemTemplate == null ? null : ctx.itemTemplate.templateRef)(\"collapseMode\", ctx.collapseMode)(\"separatorIcon\", ctx.separatorIcon)(\"ngClass\", ɵngcc0.ɵɵpureFunction2(9, _c9, ctx.collapseMode === \"wrap\", ctx.collapseMode === \"none\"));\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"rateLimit\", 1000);\n } }, directives: [ɵngcc2.NgIf, BreadCrumbListComponent, ɵngcc2.NgClass, ɵngcc3.ResizeSensorComponent], pipes: [ɵngcc2.AsyncPipe], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], BreadCrumbComponent.prototype, \"items\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], BreadCrumbComponent.prototype, \"separatorIcon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], BreadCrumbComponent.prototype, \"collapseMode\", null);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], BreadCrumbComponent.prototype, \"itemClick\", void 0);\n__decorate([\n ViewChild('resizeSensor', { static: true }),\n __metadata(\"design:type\", ResizeSensorComponent)\n], BreadCrumbComponent.prototype, \"resizeSensor\", void 0);\n__decorate([\n ViewChildren('itemsContainer', { read: ElementRef }),\n __metadata(\"design:type\", QueryList)\n], BreadCrumbComponent.prototype, \"itemsContainers\", void 0);\n__decorate([\n ViewChild(BreadCrumbListComponent, { static: true }),\n __metadata(\"design:type\", BreadCrumbListComponent)\n], BreadCrumbComponent.prototype, \"listComponent\", void 0);\n__decorate([\n ContentChild(BreadCrumbItemTemplateDirective, { static: false }),\n __metadata(\"design:type\", BreadCrumbItemTemplateDirective)\n], BreadCrumbComponent.prototype, \"itemTemplate\", void 0);\n__decorate([\n HostBinding('class.k-widget'),\n HostBinding('class.k-breadcrumb'),\n __metadata(\"design:type\", Boolean)\n], BreadCrumbComponent.prototype, \"hostClasses\", void 0);\n__decorate([\n HostBinding('class.k-breadcrumb-wrap'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], BreadCrumbComponent.prototype, \"wrapMode\", null);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], BreadCrumbComponent.prototype, \"getDir\", null);\nBreadCrumbComponent = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n ChangeDetectorRef,\n NgZone,\n LocalizationService])\n], BreadCrumbComponent);\n\nconst DEFAULT_ICON = 'arrow-chevron-right';\nconst DEFAULT_RTL_ICON = 'arrow-chevron-left';\n/**\n * @hidden\n */\nlet BreadCrumbSeparatorDirective = class BreadCrumbSeparatorDirective {\n constructor(el, localization) {\n this.el = el;\n this.localization = localization;\n this.defaultClasses = true;\n this.ariaHidden = true;\n this.direction = 'ltr';\n this.direction = this.localization.rtl ? 'rtl' : 'ltr';\n }\n set icon(icon) {\n const element = this.el.nativeElement;\n element.classList.remove(`k-i-${this._icon}`);\n if (isPresent(icon)) {\n this._icon = icon;\n this.hasDefaultIcon = false;\n }\n else {\n this._icon = this.direction === 'ltr' ? DEFAULT_ICON : DEFAULT_RTL_ICON;\n this.hasDefaultIcon = true;\n }\n element.classList.add(`k-i-${this._icon}`);\n }\n get icon() {\n return this._icon;\n }\n ngOnInit() {\n this.localizationChangesSubscription = this.localization.changes.subscribe(({ rtl }) => {\n this.direction = rtl ? 'rtl' : 'ltr';\n if (this.hasDefaultIcon) {\n this.icon = undefined;\n }\n });\n }\n ngOnDestroy() {\n this.localizationChangesSubscription.unsubscribe();\n }\n};\nBreadCrumbSeparatorDirective.ɵfac = function BreadCrumbSeparatorDirective_Factory(t) { return new (t || BreadCrumbSeparatorDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nBreadCrumbSeparatorDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: BreadCrumbSeparatorDirective, selectors: [[\"\", \"kendoBreadCrumbSeparator\", \"\"]], hostVars: 5, hostBindings: function BreadCrumbSeparatorDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"aria-hidden\", ctx.ariaHidden);\n ɵngcc0.ɵɵclassProp(\"k-breadcrumb-delimiter-icon\", ctx.defaultClasses)(\"k-icon\", ctx.defaultClasses);\n } }, inputs: { icon: \"icon\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], BreadCrumbSeparatorDirective.prototype, \"icon\", null);\n__decorate([\n HostBinding('class.k-breadcrumb-delimiter-icon'),\n HostBinding('class.k-icon'),\n __metadata(\"design:type\", Boolean)\n], BreadCrumbSeparatorDirective.prototype, \"defaultClasses\", void 0);\n__decorate([\n HostBinding('attr.aria-hidden'),\n __metadata(\"design:type\", Boolean)\n], BreadCrumbSeparatorDirective.prototype, \"ariaHidden\", void 0);\nBreadCrumbSeparatorDirective = __decorate([ __metadata(\"design:paramtypes\", [ElementRef, LocalizationService])\n], BreadCrumbSeparatorDirective);\n\nconst templateDirectives = [\n BreadCrumbItemTemplateDirective\n];\nconst exportedModules$1 = [\n BreadCrumbComponent,\n BreadCrumbItemComponent,\n BreadCrumbListComponent,\n ...templateDirectives\n];\nconst declarations$1 = [\n ...exportedModules$1,\n BreadCrumbSeparatorDirective\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the BreadCrumb component.\n * @example\n *\n * ```ts-no-run\n * // Import the BreadCrumb module\n * import { BreadCrumbModule } from '@progress/kendo-angular-navigation';\n *\n * // The browser platform with a compiler\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n * import { BrowserModule } from '@angular/platform-browser';\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, BreadCrumbModule], // import BreadCrumb module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nlet BreadCrumbModule = class BreadCrumbModule {\n};\nBreadCrumbModule.ɵfac = function BreadCrumbModule_Factory(t) { return new (t || BreadCrumbModule)(); };\nBreadCrumbModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: BreadCrumbModule });\nBreadCrumbModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule, ResizeSensorModule]] });\n\n/**\n * Represents a template that defines the item content of the BottomNavigation.\n * To define the template, nest an `` tag\n * with the `kendoBottomNavigationItemTemplate` directive inside the `` tag ([see example]({% slug templates_bottomnavigation %})).\n */\nlet BottomNavigationItemTemplateDirective = class BottomNavigationItemTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nBottomNavigationItemTemplateDirective.ɵfac = function BottomNavigationItemTemplateDirective_Factory(t) { return new (t || BottomNavigationItemTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nBottomNavigationItemTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: BottomNavigationItemTemplateDirective, selectors: [[\"\", \"kendoBottomNavigationItemTemplate\", \"\"]] });\nBottomNavigationItemTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], BottomNavigationItemTemplateDirective);\n\n/**\n * @hidden\n */\nlet BottomNavigationItemComponent = class BottomNavigationItemComponent {\n get disabledClass() {\n return this.item.disabled;\n }\n get horizontalItemClass() {\n return this.orientation === 'horizontal';\n }\n get verticalItemClass() {\n return this.orientation === 'vertical';\n }\n get label() {\n return this.item.text ? this.item.text : null;\n }\n get tabindex() {\n return this.item.tabIndex ? this.item.tabIndex : 0;\n }\n get selectedClass() {\n return this.selectedIdx ? this.selectedIdx === this.index : this.item.selected;\n }\n get itemIcon() {\n return this.item.icon || this.item.iconClass ? true : false;\n }\n get iconClasses() {\n const kendoIcon = this.item.icon ? `k-icon k-i-${this.item.icon}` : '';\n const customIcon = this.item.iconClass ? this.item.iconClass : '';\n return `${kendoIcon} ${customIcon}`;\n }\n};\nBottomNavigationItemComponent.ɵfac = function BottomNavigationItemComponent_Factory(t) { return new (t || BottomNavigationItemComponent)(); };\nBottomNavigationItemComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: BottomNavigationItemComponent, selectors: [[\"\", \"kendoBottomNavigationItem\", \"\"]], hostVars: 12, hostBindings: function BottomNavigationItemComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"aria-disabled\", ctx.disabledClass)(\"aria-label\", ctx.label)(\"tabindex\", ctx.tabindex)(\"aria-selected\", ctx.selectedClass);\n ɵngcc0.ɵɵclassProp(\"k-state-disabled\", ctx.disabledClass)(\"k-hstack\", ctx.horizontalItemClass)(\"k-vstack\", ctx.verticalItemClass)(\"k-state-selected\", ctx.selectedClass);\n } }, inputs: { itemTemplate: \"itemTemplate\", item: \"item\", index: \"index\", disabledComponent: \"disabledComponent\", selectedIdx: \"selectedIdx\", orientation: \"orientation\" }, attrs: _c10, decls: 2, vars: 2, consts: [[4, \"ngIf\"], [\"class\", \"k-bottom-nav-item-icon\", 3, \"ngClass\", 4, \"ngIf\"], [\"class\", \"k-bottom-nav-item-text\", 4, \"ngIf\"], [1, \"k-bottom-nav-item-icon\", 3, \"ngClass\"], [1, \"k-bottom-nav-item-text\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]], template: function BottomNavigationItemComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, BottomNavigationItemComponent_ng_container_0_Template, 3, 2, \"ng-container\", 0);\n ɵngcc0.ɵɵtemplate(1, BottomNavigationItemComponent_1_Template, 1, 4, null, 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.itemTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.itemTemplate);\n } }, directives: [ɵngcc2.NgIf, ɵngcc2.NgClass, ɵngcc2.NgTemplateOutlet], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", BottomNavigationItemTemplateDirective)\n], BottomNavigationItemComponent.prototype, \"itemTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], BottomNavigationItemComponent.prototype, \"item\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], BottomNavigationItemComponent.prototype, \"index\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], BottomNavigationItemComponent.prototype, \"disabledComponent\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], BottomNavigationItemComponent.prototype, \"selectedIdx\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], BottomNavigationItemComponent.prototype, \"orientation\", void 0);\n__decorate([\n HostBinding('attr.aria-disabled'),\n HostBinding('class.k-state-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], BottomNavigationItemComponent.prototype, \"disabledClass\", null);\n__decorate([\n HostBinding('class.k-hstack'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], BottomNavigationItemComponent.prototype, \"horizontalItemClass\", null);\n__decorate([\n HostBinding('class.k-vstack'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], BottomNavigationItemComponent.prototype, \"verticalItemClass\", null);\n__decorate([\n HostBinding('attr.aria-label'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], BottomNavigationItemComponent.prototype, \"label\", null);\n__decorate([\n HostBinding('attr.tabindex'),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [])\n], BottomNavigationItemComponent.prototype, \"tabindex\", null);\n__decorate([\n HostBinding('attr.aria-selected'),\n HostBinding('class.k-state-selected'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], BottomNavigationItemComponent.prototype, \"selectedClass\", null);\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 BottomNavigation.\n */\nclass BottomNavigationSelectEvent extends PreventableEvent {\n}\n\n/**\n * @hidden\n */\nconst BOTTOMNAVIGATION_ITEM_INDEX = 'data-kendo-bottomnavigation-index';\n/**\n * @hidden\n */\nconst colors = ['primary', 'secondary', 'tertiary', 'info', 'success', 'warning', 'error', 'dark', 'light', 'inverse'];\n\n/**\n * Represents the [Kendo UI BottomNavigation component for Angular]({% slug overview_bottomnavigation %}).\n *\n * @example\n * ```ts-no-run\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * `\n * })\n * class AppComponent {\n * public items: Array = [\n * { text: 'Inbox', icon: 'email', selected: true },\n * { text: 'Calendar', icon: 'calendar'},\n * { text: 'Profile', icon: 'user'}\n * ]\n * }\n * ```\n */\nlet BottomNavigationComponent = class BottomNavigationComponent {\n constructor(localization, hostElement, ngZone, changeDetector, renderer) {\n this.localization = localization;\n this.hostElement = hostElement;\n this.ngZone = ngZone;\n this.changeDetector = changeDetector;\n this.renderer = renderer;\n /**\n * Sets a top border to the BottomNavigation ([see example]({% slug appearance_bottomnavigation %})).\n *\n * @default false\n */\n this.border = false;\n /**\n * Disables the whole BottomNavigation.\n *\n * @default false\n */\n this.disabled = false;\n /**\n * Fires each time an item is selected. This event is preventable.\n */\n this.select = new EventEmitter();\n /**\n * @hidden\n */\n this.hostClass = true;\n /**\n * @hidden\n */\n this.role = 'navigation';\n this._fill = 'flat';\n this._itemFlow = 'vertical';\n this._positionMode = 'fixed';\n this._themeColor = 'primary';\n this._nativeHostElement = this.hostElement.nativeElement;\n this.subscriptions = new Subscription();\n this.rtl = false;\n validatePackage(packageMetadata);\n this.dynamicRTLSubscription = this.localization.changes.subscribe(({ rtl }) => {\n this.rtl = rtl;\n this.direction = this.rtl ? 'rtl' : 'ltr';\n });\n }\n /**\n * The fill style of the BottomNavigation ([see example]({% slug appearance_bottomnavigation %})).\n *\n * * The possible values are:\n * * (Default) `flat`\n * * `solid`\n */\n set fill(fill) {\n this.renderer.removeClass(this._nativeHostElement, `k-bottom-nav-${this.fill}`);\n this._fill = fill === 'solid' ? 'solid' : 'flat';\n this.renderer.addClass(this._nativeHostElement, `k-bottom-nav-${this._fill}`);\n }\n get fill() {\n return this._fill;\n }\n /**\n * Specifies how the icon and text label are positioned in the BottomNavigation items ([see example]({% slug items_bottomnavigation %}#toc-itemflow)).\n *\n * The possible values are:\n * * (Default) `vertical` - Renders the text below the icon.\n * * `horizontal` - Renders the icon and the text on the same line.\n */\n set itemFlow(itemFlow) {\n this.renderer.removeClass(this._nativeHostElement, `k-bottom-nav-item-flow-${this.itemFlow}`);\n this._itemFlow = itemFlow === 'horizontal' ? 'horizontal' : 'vertical';\n this.renderer.addClass(this._nativeHostElement, `k-bottom-nav-item-flow-${this._itemFlow}`);\n }\n get itemFlow() {\n return this._itemFlow;\n }\n /**\n * Specifies the position and behavior of the BottomNavigation when the page is scrollable ([see example]({% slug positioning_bottomnavigation %})).\n *\n * The possible values are:\n * * (Default) `fixed` - The BottomNavigation always stays at the bottom of the viewport, regardless of the page scroll position.\n * * `sticky` - Positions the BottomNavigation at the end of the scrollable container.\n */\n set positionMode(positionMode) {\n this.renderer.removeClass(this._nativeHostElement, `k-pos-${this.positionMode}`);\n this._positionMode = positionMode === 'sticky' ? 'sticky' : 'fixed';\n this.renderer.addClass(this._nativeHostElement, `k-pos-${this._positionMode}`);\n }\n get positionMode() {\n return this._positionMode;\n }\n /**\n * Specifies the theme color of the BottomNavigation ([see example]({% slug appearance_bottomnavigation %})).\n *\n * * The possible values are:\n * * (Default) `primary` - Applies coloring based on the primary theme color.\n * * `secondary` - Applies coloring based on the secondary theme color.\n * * `tertiary` - Applies coloring based on the tertiary theme color.\n * * `info` - Applies coloring based on the info theme color.\n * * `success` - Applies coloring based on the success theme color.\n * * `warning` - Applies coloring based on the warning theme color.\n * * `error` - Applies coloring based on the error theme color.\n * * `dark` - Applies coloring based on the dark theme color.\n * * `light` - Applies coloring based on the light theme color.\n * * `inverse` - Applies coloring based on the inverted theme color.\n */\n set themeColor(themeColor) {\n const newColor = colors.find(color => color === themeColor);\n if (newColor) {\n this.renderer.removeClass(this._nativeHostElement, `k-bottom-nav-${this._themeColor}`);\n this._themeColor = themeColor;\n this.renderer.addClass(this._nativeHostElement, `k-bottom-nav-${this._themeColor}`);\n }\n }\n get themeColor() {\n return this._themeColor;\n }\n /**\n * @hidden\n */\n get borderClass() {\n return this.border;\n }\n /**\n * @hidden\n */\n get disabledClass() {\n return this.disabled;\n }\n /**\n * @hidden\n */\n ngOnInit() {\n this.initDomEvents();\n }\n /**\n * @hidden\n */\n ngAfterViewInit() {\n this.applyClasses();\n }\n /**\n * @hidden\n */\n ngOnDestroy() {\n if (this.dynamicRTLSubscription) {\n this.dynamicRTLSubscription.unsubscribe();\n }\n this.subscriptions.unsubscribe();\n }\n /**\n * @hidden\n */\n selectItem(idx, args) {\n const eventArgs = new BottomNavigationSelectEvent(Object.assign({}, args));\n this.select.emit(eventArgs);\n if (!eventArgs.isDefaultPrevented()) {\n this.selectedIdx = idx;\n }\n }\n applyClasses() {\n this.renderer.addClass(this._nativeHostElement, `k-bottom-nav-${this.fill}`);\n this.renderer.addClass(this._nativeHostElement, `k-bottom-nav-item-flow-${this.itemFlow}`);\n this.renderer.addClass(this._nativeHostElement, `k-pos-${this.positionMode}`);\n this.renderer.addClass(this._nativeHostElement, `k-bottom-nav-${this.themeColor}`);\n }\n initDomEvents() {\n if (!this.hostElement) {\n return;\n }\n this.ngZone.runOutsideAngular(() => {\n this.subscriptions.add(this.renderer.listen(this._nativeHostElement, 'click', this.clickHandler.bind(this)));\n this.subscriptions.add(this.renderer.listen(this._nativeHostElement, 'keydown', this.keyDownHandler.bind(this)));\n });\n }\n clickHandler(e) {\n const itemIdx = this.getBottomNavigationItemIndex(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 sender: this\n };\n this.ngZone.run(() => {\n this.selectItem(itemIdx, args);\n this.changeDetector.markForCheck();\n });\n }\n keyDownHandler(e) {\n const isEnterOrSpace = e.keyCode === Keys.Enter || e.keyCode === Keys.Space;\n if (!isEnterOrSpace) {\n return;\n }\n this.clickHandler(e);\n }\n getBottomNavigationItemIndex(target) {\n const item = closestItem(target, BOTTOMNAVIGATION_ITEM_INDEX, this._nativeHostElement);\n if (item) {\n return itemIndex(item, BOTTOMNAVIGATION_ITEM_INDEX);\n }\n }\n};\nBottomNavigationComponent.ɵfac = function BottomNavigationComponent_Factory(t) { return new (t || BottomNavigationComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nBottomNavigationComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: BottomNavigationComponent, selectors: [[\"kendo-bottomnavigation\"]], contentQueries: function BottomNavigationComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, BottomNavigationItemTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.itemTemplate = _t.first);\n } }, hostVars: 12, hostBindings: function BottomNavigationComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"role\", ctx.role)(\"dir\", ctx.direction);\n ɵngcc0.ɵɵclassProp(\"k-hstack\", ctx.hostClass)(\"k-justify-content-stretch\", ctx.hostClass)(\"k-bottom-nav\", ctx.hostClass)(\"k-bottom-nav-border\", ctx.borderClass)(\"k-state-disabled\", ctx.disabledClass);\n } }, inputs: { border: \"border\", disabled: \"disabled\", fill: \"fill\", itemFlow: \"itemFlow\", positionMode: \"positionMode\", themeColor: \"themeColor\", items: \"items\" }, outputs: { select: \"select\" }, exportAs: [\"kendoBottomNavigation\"], features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.bottomnavigation'\n }\n ])], decls: 1, vars: 1, consts: [[4, \"ngIf\"], [\"kendoBottomNavigationItem\", \"\", \"role\", \"link\", \"class\", \"k-bottom-nav-item\", 3, \"disabledComponent\", \"item\", \"index\", \"selectedIdx\", \"itemTemplate\", \"ngClass\", \"ngStyle\", \"orientation\", 4, \"ngFor\", \"ngForOf\"], [\"kendoBottomNavigationItem\", \"\", \"role\", \"link\", 1, \"k-bottom-nav-item\", 3, \"disabledComponent\", \"item\", \"index\", \"selectedIdx\", \"itemTemplate\", \"ngClass\", \"ngStyle\", \"orientation\"]], template: function BottomNavigationComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, BottomNavigationComponent_ng_container_0_Template, 2, 1, \"ng-container\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.items);\n } }, directives: [ɵngcc2.NgIf, ɵngcc2.NgForOf, BottomNavigationItemComponent, ɵngcc2.NgClass, ɵngcc2.NgStyle], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], BottomNavigationComponent.prototype, \"items\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], BottomNavigationComponent.prototype, \"border\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], BottomNavigationComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], BottomNavigationComponent.prototype, \"fill\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], BottomNavigationComponent.prototype, \"itemFlow\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], BottomNavigationComponent.prototype, \"positionMode\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], BottomNavigationComponent.prototype, \"themeColor\", null);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], BottomNavigationComponent.prototype, \"select\", void 0);\n__decorate([\n HostBinding('class.k-hstack'),\n HostBinding('class.k-justify-content-stretch'),\n HostBinding('class.k-bottom-nav'),\n __metadata(\"design:type\", Boolean)\n], BottomNavigationComponent.prototype, \"hostClass\", void 0);\n__decorate([\n HostBinding('class.k-bottom-nav-border'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], BottomNavigationComponent.prototype, \"borderClass\", null);\n__decorate([\n HostBinding('class.k-state-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], BottomNavigationComponent.prototype, \"disabledClass\", null);\n__decorate([\n HostBinding('attr.role'),\n __metadata(\"design:type\", String)\n], BottomNavigationComponent.prototype, \"role\", void 0);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String)\n], BottomNavigationComponent.prototype, \"direction\", void 0);\n__decorate([\n ContentChild(BottomNavigationItemTemplateDirective, { static: false }),\n __metadata(\"design:type\", BottomNavigationItemTemplateDirective)\n], BottomNavigationComponent.prototype, \"itemTemplate\", void 0);\nBottomNavigationComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService,\n ElementRef,\n NgZone,\n ChangeDetectorRef,\n Renderer2])\n], BottomNavigationComponent);\n\nconst templateDirectives$1 = [BottomNavigationItemTemplateDirective];\nconst exportedComponents = [BottomNavigationComponent, ...templateDirectives$1];\nconst declarations$2 = [BottomNavigationItemComponent, ...exportedComponents];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the BottomNavigation component.\n * @example\n *\n * ```ts-no-run\n * // Import the BottomNavigation module\n * import { BottomNavigationModule } from '@progress/kendo-angular-navigation';\n *\n * // The browser platform with a compiler\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n * import { BrowserModule } from '@angular/platform-browser';\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, BottomNavigationModule], // import BottomNavigation module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nlet BottomNavigationModule = class BottomNavigationModule {\n};\nBottomNavigationModule.ɵfac = function BottomNavigationModule_Factory(t) { return new (t || BottomNavigationModule)(); };\nBottomNavigationModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: BottomNavigationModule });\nBottomNavigationModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule]] });\n\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the Navigation components.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the Navigation module\n * import { NavigationModule } from '@progress/kendo-angular-navigation';\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, NavigationModule], // import Navigation module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nlet NavigationModule = class NavigationModule {\n};\nNavigationModule.ɵfac = function NavigationModule_Factory(t) { return new (t || NavigationModule)(); };\nNavigationModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NavigationModule });\nNavigationModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [AppBarModule, BreadCrumbModule, BottomNavigationModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AppBarComponent, [{\n type: Component,\n args: [{\n exportAs: 'kendoAppBar',\n selector: 'kendo-appbar',\n template: `\n \n `,\n providers: [\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.appbar.component'\n }\n ]\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, { hostClass: [{\n type: HostBinding,\n args: ['class.k-appbar']\n }], position: [{\n type: Input\n }], positionMode: [{\n type: Input\n }], themeColor: [{\n type: Input\n }], direction: [{\n type: HostBinding,\n args: ['attr.dir']\n }], topClass: [{\n type: HostBinding,\n args: ['class.k-appbar-top']\n }], bottomClass: [{\n type: HostBinding,\n args: ['class.k-appbar-bottom']\n }], stickyClass: [{\n type: HostBinding,\n args: ['class.k-appbar-sticky']\n }], fixedClass: [{\n type: HostBinding,\n args: ['class.k-appbar-fixed']\n }], staticClass: [{\n type: HostBinding,\n args: ['class.k-appbar-static']\n }], lightClass: [{\n type: HostBinding,\n args: ['class.k-appbar-light']\n }], darkClass: [{\n type: HostBinding,\n args: ['class.k-appbar-dark']\n }], inheritClass: [{\n type: HostBinding,\n args: ['class.k-appbar-inherit']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AppBarSectionComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-appbar-section',\n template: `\n \n `\n }]\n }], function () { return []; }, { hostClass: [{\n type: HostBinding,\n args: ['class.k-appbar-section']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AppBarSpacerComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-appbar-spacer',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }]; }, { hostClass: [{\n type: HostBinding,\n args: ['class.k-appbar-spacer']\n }], sizedClass: [{\n type: HostBinding,\n args: ['class.k-appbar-spacer-sized']\n }], width: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AppBarModule, [{\n type: NgModule,\n args: [{\n declarations: [declarations],\n exports: [exportedModules],\n imports: [CommonModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(AppBarModule, { declarations: function () { return [AppBarComponent, AppBarSectionComponent, AppBarSpacerComponent]; }, imports: function () { return [CommonModule]; }, exports: function () { return [AppBarComponent, AppBarSectionComponent, AppBarSpacerComponent]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(BreadCrumbItemTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoBreadCrumbItemTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(BreadCrumbItemComponent, [{\n type: Component,\n args: [{\n selector: '[kendoBreadCrumbItem]',\n template: `\n \n \n \n\n \n \n \n\n \n \n \n \n \n {{ item.data.text }}\n \n \n \n\n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }]; }, { index: [{\n type: Input\n }], hostClasses: [{\n type: HostBinding,\n args: ['class.k-flex-none']\n }, {\n type: HostBinding,\n args: ['class.k-breadcrumb-item']\n }], isRootItem: [{\n type: HostBinding,\n args: ['class.k-breadcrumb-root-item']\n }], isDisabled: [{\n type: HostBinding,\n args: ['attr.aria-disabled']\n }], isLastItem: [{\n type: HostBinding,\n args: ['class.k-breadcrumb-last-item']\n }], item: [{\n type: Input\n }], collapseMode: [{\n type: Input\n }], itemTemplate: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(BreadCrumbListComponent, [{\n type: Component,\n args: [{\n selector: '[kendoBreadCrumbList]',\n template: `\n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }]; }, { items: [{\n type: Input\n }], collapseMode: [{\n type: Input\n }], itemClick: [{\n type: Output\n }], itemTemplate: [{\n type: Input\n }], separatorIcon: [{\n type: Input\n }], renderedItems: [{\n type: ViewChildren,\n args: [BreadCrumbItemComponent]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(BreadCrumbComponent, [{\n type: Component,\n args: [{\n exportAs: 'kendoBreadCrumb',\n selector: 'kendo-breadcrumb',\n providers: [\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.breadcrumb'\n }\n ],\n template: `\n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.NgZone }, { type: ɵngcc1.LocalizationService }]; }, { itemClick: [{\n type: Output\n }], hostClasses: [{\n type: HostBinding,\n args: ['class.k-widget']\n }, {\n type: HostBinding,\n args: ['class.k-breadcrumb']\n }], items: [{\n type: Input\n }], collapseMode: [{\n type: Input\n }], wrapMode: [{\n type: HostBinding,\n args: ['class.k-breadcrumb-wrap']\n }], getDir: [{\n type: HostBinding,\n args: ['attr.dir']\n }], separatorIcon: [{\n type: Input\n }], resizeSensor: [{\n type: ViewChild,\n args: ['resizeSensor', { static: true }]\n }], itemsContainers: [{\n type: ViewChildren,\n args: ['itemsContainer', { read: ElementRef }]\n }], listComponent: [{\n type: ViewChild,\n args: [BreadCrumbListComponent, { static: true }]\n }], itemTemplate: [{\n type: ContentChild,\n args: [BreadCrumbItemTemplateDirective, { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(BreadCrumbSeparatorDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoBreadCrumbSeparator]'\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc1.LocalizationService }]; }, { defaultClasses: [{\n type: HostBinding,\n args: ['class.k-breadcrumb-delimiter-icon']\n }, {\n type: HostBinding,\n args: ['class.k-icon']\n }], ariaHidden: [{\n type: HostBinding,\n args: ['attr.aria-hidden']\n }], icon: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(BreadCrumbModule, [{\n type: NgModule,\n args: [{\n declarations: [declarations$1],\n exports: [exportedModules$1],\n imports: [CommonModule, ResizeSensorModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(BreadCrumbModule, { declarations: function () { return [BreadCrumbComponent, BreadCrumbItemComponent, BreadCrumbListComponent, BreadCrumbItemTemplateDirective, BreadCrumbSeparatorDirective]; }, imports: function () { return [CommonModule, ResizeSensorModule]; }, exports: function () { return [BreadCrumbComponent, BreadCrumbItemComponent, BreadCrumbListComponent, BreadCrumbItemTemplateDirective]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(BottomNavigationItemTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoBottomNavigationItemTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(BottomNavigationItemComponent, [{\n type: Component,\n args: [{\n selector: '[kendoBottomNavigationItem]',\n template: `\n \n \n {{item.text}}\n \n \n \n `\n }]\n }], null, { disabledClass: [{\n type: HostBinding,\n args: ['attr.aria-disabled']\n }, {\n type: HostBinding,\n args: ['class.k-state-disabled']\n }], horizontalItemClass: [{\n type: HostBinding,\n args: ['class.k-hstack']\n }], verticalItemClass: [{\n type: HostBinding,\n args: ['class.k-vstack']\n }], label: [{\n type: HostBinding,\n args: ['attr.aria-label']\n }], tabindex: [{\n type: HostBinding,\n args: ['attr.tabindex']\n }], selectedClass: [{\n type: HostBinding,\n args: ['attr.aria-selected']\n }, {\n type: HostBinding,\n args: ['class.k-state-selected']\n }], itemTemplate: [{\n type: Input\n }], item: [{\n type: Input\n }], index: [{\n type: Input\n }], disabledComponent: [{\n type: Input\n }], selectedIdx: [{\n type: Input\n }], orientation: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(BottomNavigationComponent, [{\n type: Component,\n args: [{\n exportAs: 'kendoBottomNavigation',\n selector: 'kendo-bottomnavigation',\n providers: [\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.bottomnavigation'\n }\n ],\n template: `\n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.Renderer2 }]; }, { border: [{\n type: Input\n }], disabled: [{\n type: Input\n }], select: [{\n type: Output\n }], hostClass: [{\n type: HostBinding,\n args: ['class.k-hstack']\n }, {\n type: HostBinding,\n args: ['class.k-justify-content-stretch']\n }, {\n type: HostBinding,\n args: ['class.k-bottom-nav']\n }], role: [{\n type: HostBinding,\n args: ['attr.role']\n }], direction: [{\n type: HostBinding,\n args: ['attr.dir']\n }], fill: [{\n type: Input\n }], itemFlow: [{\n type: Input\n }], positionMode: [{\n type: Input\n }], themeColor: [{\n type: Input\n }], borderClass: [{\n type: HostBinding,\n args: ['class.k-bottom-nav-border']\n }], disabledClass: [{\n type: HostBinding,\n args: ['class.k-state-disabled']\n }], items: [{\n type: Input\n }], itemTemplate: [{\n type: ContentChild,\n args: [BottomNavigationItemTemplateDirective, { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(BottomNavigationModule, [{\n type: NgModule,\n args: [{\n declarations: [declarations$2],\n exports: [exportedComponents],\n imports: [CommonModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(BottomNavigationModule, { declarations: function () { return [BottomNavigationItemComponent, BottomNavigationComponent, BottomNavigationItemTemplateDirective]; }, imports: function () { return [CommonModule]; }, exports: function () { return [BottomNavigationComponent, BottomNavigationItemTemplateDirective]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigationModule, [{\n type: NgModule,\n args: [{\n exports: [\n AppBarModule,\n BreadCrumbModule,\n BottomNavigationModule\n ]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NavigationModule, { exports: [AppBarModule, BreadCrumbModule, BottomNavigationModule] }); })();\n\n// AppBar exports\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BottomNavigationItemComponent, BOTTOMNAVIGATION_ITEM_INDEX, BreadCrumbItemComponent, BreadCrumbListComponent, BREADCRUMB_ITEM_INDEX, BreadCrumbSeparatorDirective, PreventableEvent, AppBarComponent, AppBarSectionComponent, AppBarSpacerComponent, AppBarModule, NavigationModule, BreadCrumbComponent, BreadCrumbItemTemplateDirective, BreadCrumbModule, BottomNavigationComponent, BottomNavigationItemTemplateDirective, BottomNavigationSelectEvent, BottomNavigationModule };\n\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 { EventEmitter, ViewChild, ViewContainerRef, Input, TemplateRef, HostBinding, Component, ChangeDetectorRef, ElementRef, Renderer2, ComponentFactoryResolver, InjectionToken, ApplicationRef, Injectable, Inject, Optional, Injector, Directive, forwardRef, NgModule } from '@angular/core';\nimport { style, animate, AnimationBuilder } from '@angular/animations';\nimport { take } from 'rxjs/operators';\nimport { validatePackage } from '@progress/kendo-licensing';\nimport { LocalizationService, L10N_PREFIX, ComponentMessages } from '@progress/kendo-angular-l10n';\nimport { CommonModule } from '@angular/common';\n\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/animations';\nimport * as ɵngcc2 from '@progress/kendo-angular-l10n';\nimport * as ɵngcc3 from '@angular/common';\n\nconst _c0 = [\"container\"];\nfunction NotificationComponent_span_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 9);\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r0.typeIconClass());\n} }\nfunction NotificationComponent_ng_template_5_Template(rf, ctx) { }\nfunction NotificationComponent_ng_template_6_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r2.templateString, \" \");\n} }\nfunction NotificationComponent_a_9_Template(rf, ctx) { if (rf & 1) {\n const _r6 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"a\", 10);\n ɵngcc0.ɵɵlistener(\"click\", function NotificationComponent_a_9_Template_a_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r5 = ɵngcc0.ɵɵnextContext(); return ctx_r5.onCloseClick(); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵattribute(\"title\", ctx_r4.closeButtonTitle);\n} }\nconst _c3 = [\"group\"];\nclass NotificationSettings {\n constructor() {\n /**\n * Specifies the time in milliseconds after which the\n * Notification will hide\n * ([see example]({% slug hiding_notifications %}#toc-definig-a-delay-before-hiding)).\n * Defaults to `5000`.\n */\n this.hideAfter = 5000;\n /**\n * Defines the position of the Notification\n * ([see example]({% slug positioning_notification %})).\n *\n * The possible values are:\n * * `horizontal: 'left'|'center'|'right'`\n * * `vertical: 'top'|'bottom'`\n */\n this.position = { horizontal: 'right', vertical: 'top' };\n /**\n * Specifies the animation settings of the Notification\n * ([see example]({% slug animations_notification %})).\n *\n * The possible values are:\n * * `duration`—Accepts a number in milliseconds. Defaults to `500ms`.\n * * `type?: 'slide'| (Default) 'fade'`\n */\n this.animation = { type: 'fade', duration: 500 };\n /**\n * Specifies if the Notification will require a user action to hide.\n * If the property is set to `true`, the Notification renders a **Close** button\n * ([see example]({% slug hiding_notifications %}#toc-defining-a-closable-notification)).\n *\n * The possible values are:\n * * (Default) `false`\n * * `true`\n */\n this.closable = false;\n /**\n * Specifies the type of the Notification\n * ([see example]({% slug types_notification %})).\n *\n * The possible values are:\n * * `style: (Default) 'none'|'success'|'error'|'warning'|'info'`\n * * `icon: 'true'|'false'`\n */\n this.type = { style: 'none', icon: true };\n }\n}\n\n/**\n * @hidden\n */\nconst packageMetadata = {\n name: '@progress/kendo-angular-notification',\n productName: 'Kendo UI for Angular',\n productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],\n publishDate: 1646219065,\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\n/**\n * @hidden\n */\nfunction slideAnimation(height, duration) {\n return [\n style({ overflow: 'hidden', height: 0 }),\n animate(`${duration}ms ease-in`, style({ height: `${height}px` }))\n ];\n}\n/**\n * @hidden\n */\nfunction slideCloseAnimation(height, duration) {\n return [\n style({ height: `${height}px` }),\n animate(`${duration}ms ease-in`, style({ overflow: 'hidden', height: 0 }))\n ];\n}\n/**\n * @hidden\n */\nfunction fadeAnimation(duration) {\n return [\n style({ opacity: 0 }),\n animate(`${duration}ms ease-in`, style({ opacity: 1 }))\n ];\n}\n/**\n * @hidden\n */\nfunction fadeCloseAnimation(duration) {\n return [\n style({ opacity: 1 }),\n animate(`${duration}ms ease-in`, style({ opacity: 0 }))\n ];\n}\n\n/**\n * @hidden\n *\n */\nlet NotificationComponent = class NotificationComponent {\n constructor(cdr, element, renderer, builder, localizationService) {\n this.cdr = cdr;\n this.element = element;\n this.renderer = renderer;\n this.builder = builder;\n this.localizationService = localizationService;\n this.close = new EventEmitter();\n this.width = null;\n this.height = null;\n this.defaultHideAfter = 5000;\n this.animationEnd = new EventEmitter();\n this.rtl = false;\n validatePackage(packageMetadata);\n this.dynamicRTLSubscription = localizationService.changes.subscribe(({ rtl }) => {\n this.rtl = rtl;\n this.direction = this.rtl ? 'rtl' : 'ltr';\n });\n }\n get containerClass() {\n return true;\n }\n get closeButtonTitle() {\n return this.closeTitle || this.localizationService.get('closeTitle');\n }\n notificationClasses() {\n return `${this.type ? this.typeClass() : ''}\n ${this.closable ? 'k-notification-closable' : ''}`;\n }\n ngOnInit() {\n clearTimeout(this.hideTimeout);\n }\n ngOnDestroy() {\n clearTimeout(this.hideTimeout);\n if (this.dynamicRTLSubscription) {\n this.dynamicRTLSubscription.unsubscribe();\n }\n }\n ngAfterViewInit() {\n if (!this.closable && !this.animation) {\n this.setHideTimeout();\n }\n if (!this.closable && this.animation) {\n this.animationEnd.pipe(take(1))\n .subscribe(() => this.setHideTimeout());\n }\n if (this.animation) {\n this.animate(this.animation);\n }\n }\n typeClass() {\n return {\n 'none': '',\n 'success': 'k-notification-success',\n 'warning': 'k-notification-warning',\n 'error': 'k-notification-error',\n 'info': 'k-notification-info'\n }[this.type.style];\n }\n typeIconClass() {\n return {\n 'none': '',\n 'success': 'k-i-success',\n 'warning': 'k-i-warning',\n 'error': 'k-i-error',\n 'info': 'k-i-info'\n }[this.type.style];\n }\n onCloseClick() {\n clearTimeout(this.hideTimeout);\n this.hide();\n }\n hide(customComponent) {\n const elementHeight = getComputedStyle(this.element.nativeElement).height;\n if (this.animation && elementHeight) {\n this.animate(this.animation, true);\n this.animationEnd.subscribe(() => {\n this.emitClose(customComponent);\n });\n return;\n }\n this.emitClose(customComponent);\n }\n setHideTimeout() {\n const hideAfter = this.hideAfter || this.defaultHideAfter;\n this.hideTimeout = window.setTimeout(() => this.onCloseClick(), hideAfter);\n }\n emitClose(customComponent) {\n if (customComponent) {\n customComponent.destroy();\n }\n this.close.emit();\n }\n play(animation, animatedElement) {\n const factory = this.builder.build(animation);\n const element = this.element.nativeElement;\n this.renderer.addClass(element, 'k-notification-container-animating');\n let player = factory.create(animatedElement);\n player.onDone(() => {\n this.renderer.removeClass(element, 'k-notification-container-animating');\n this.animationEnd.emit();\n if (player) {\n player.destroy();\n player = null;\n }\n });\n player.play();\n }\n animate(animation, onclose) {\n const element = this.element.nativeElement;\n const duration = animation.duration;\n const height = element.offsetHeight;\n const generatedAnimation = animation.type === 'slide' ?\n this.slideAnimation(height, duration, onclose) :\n this.fadeAnimation(duration, onclose);\n this.play(generatedAnimation, element);\n }\n slideAnimation(height, duration, onclose) {\n return onclose ? slideCloseAnimation(height, duration) : slideAnimation(height, duration);\n }\n fadeAnimation(duration, onclose) {\n return onclose ? fadeCloseAnimation(duration) : fadeAnimation(duration);\n }\n};\nNotificationComponent.ɵfac = function NotificationComponent_Factory(t) { return new (t || NotificationComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.AnimationBuilder), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nNotificationComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NotificationComponent, selectors: [[\"kendo-notification\"]], viewQuery: function NotificationComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c0, 7, ViewContainerRef);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.container = _t.first);\n } }, hostVars: 3, hostBindings: function NotificationComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"dir\", ctx.direction);\n ɵngcc0.ɵɵclassProp(\"k-notification-container\", ctx.containerClass);\n } }, inputs: { width: \"width\", height: \"height\", templateRef: \"templateRef\", templateString: \"templateString\", cssClass: \"cssClass\", hideAfter: \"hideAfter\", closable: \"closable\", type: \"type\", animation: \"animation\" }, features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.notification'\n }\n ])], decls: 10, vars: 13, consts: function () { let i18n_1; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the close button\n * @meaning kendo.notification.closeTitle\n */\n const MSG_EXTERNAL_2647775058951488820$$DIST_FESM2015_INDEX_JS_2 = goog.getMsg(\"Close\");\n i18n_1 = MSG_EXTERNAL_2647775058951488820$$DIST_FESM2015_INDEX_JS_2;\n }\n else {\n i18n_1 = $localize `:kendo.notification.closeTitle|The title of the close button␟ec4f6e0c77992a6dd3518cec396079fd0bd06d53␟2647775058951488820:Close`;\n } return [[\"kendoNotificationLocalizedMessages\", \"\", \"closeTitle\", i18n_1], [3, \"ngClass\"], [1, \"k-notification-wrap\", \"k-hstack\"], [\"class\", \"k-icon\", 3, \"ngClass\", 4, \"ngIf\"], [1, \"k-notification-content\"], [3, \"ngIf\", \"ngTemplateOutlet\"], [3, \"ngIf\"], [\"container\", \"\"], [\"class\", \"k-icon k-i-close\", 3, \"click\", 4, \"ngIf\"], [1, \"k-icon\", 3, \"ngClass\"], [1, \"k-icon\", \"k-i-close\", 3, \"click\"]]; }, template: function NotificationComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 0);\n ɵngcc0.ɵɵelementStart(1, \"div\", 1)(2, \"div\", 2);\n ɵngcc0.ɵɵtemplate(3, NotificationComponent_span_3_Template, 1, 1, \"span\", 3);\n ɵngcc0.ɵɵelementStart(4, \"div\", 4);\n ɵngcc0.ɵɵtemplate(5, NotificationComponent_ng_template_5_Template, 0, 0, \"ng-template\", 5);\n ɵngcc0.ɵɵtemplate(6, NotificationComponent_ng_template_6_Template, 1, 1, \"ng-template\", 6);\n ɵngcc0.ɵɵelementContainer(7, null, 7);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(9, NotificationComponent_a_9_Template, 1, 1, \"a\", 8);\n ɵngcc0.ɵɵelementEnd()();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassMapInterpolate1(\"k-widget k-notification \", ctx.notificationClasses(), \"\");\n ɵngcc0.ɵɵstyleProp(\"height\", ctx.height, \"px\")(\"width\", ctx.width, \"px\");\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx.cssClass);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.type && ctx.type.icon && ctx.type.style !== \"none\");\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.templateRef)(\"ngTemplateOutlet\", ctx.templateRef);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.templateString);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.closable);\n } }, directives: function () { return [LocalizedMessagesDirective, ɵngcc3.NgClass, ɵngcc3.NgIf, ɵngcc3.NgTemplateOutlet]; }, encapsulation: 2 });\n__decorate([\n ViewChild('container', { read: ViewContainerRef, static: true }),\n __metadata(\"design:type\", ViewContainerRef)\n], NotificationComponent.prototype, \"container\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], NotificationComponent.prototype, \"templateRef\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], NotificationComponent.prototype, \"templateString\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], NotificationComponent.prototype, \"width\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], NotificationComponent.prototype, \"height\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], NotificationComponent.prototype, \"cssClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], NotificationComponent.prototype, \"hideAfter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], NotificationComponent.prototype, \"closable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], NotificationComponent.prototype, \"type\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], NotificationComponent.prototype, \"animation\", void 0);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String)\n], NotificationComponent.prototype, \"direction\", void 0);\n__decorate([\n HostBinding('class.k-notification-container'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], NotificationComponent.prototype, \"containerClass\", null);\nNotificationComponent = __decorate([ __metadata(\"design:paramtypes\", [ChangeDetectorRef,\n ElementRef,\n Renderer2,\n AnimationBuilder,\n LocalizationService])\n], NotificationComponent);\n\n/**\n * @hidden\n *\n */\nlet NotificationContainerComponent = class NotificationContainerComponent {\n constructor(element, renderer, resolver) {\n this.element = element;\n this.renderer = renderer;\n this.resolver = resolver;\n this.id = '';\n this.notifications = [];\n }\n ngOnDestroy() {\n this.notifications.forEach((notification) => {\n if (notification.closeClickSubscription) {\n notification.closeClickSubscription.unsubscribe();\n }\n });\n this.notifications = [];\n }\n addNotification(settings) {\n this.position = settings.position;\n this.id = `${this.position.horizontal} ${this.position.vertical}`;\n const factory = this.resolver.resolveComponentFactory(NotificationComponent);\n const notificationRef = this.container.createComponent(factory);\n this.applySettings(notificationRef, settings);\n let customComponent = null;\n if (typeof settings.content === 'function') {\n const customFactory = this.resolver.resolveComponentFactory(settings.content);\n customComponent = notificationRef.instance.container.createComponent(customFactory);\n }\n notificationRef.changeDetectorRef.detectChanges();\n this.notifications.push(notificationRef.instance);\n if (settings.appendTo) {\n this.applyAbsolutePosition(settings.appendTo);\n }\n this.applyPosition();\n this.applyContainerWrap();\n return {\n afterHide: notificationRef.instance.close,\n hide: () => notificationRef.instance.hide(customComponent),\n notification: notificationRef,\n content: customComponent || null\n };\n }\n hide(notificationRef) {\n const instance = notificationRef.instance;\n const index = this.notifications.indexOf(instance);\n this.notifications.splice(index, 1);\n if (instance.closeClickSubscription) {\n instance.closeClickSubscription.unsubscribe();\n }\n instance.templateRef = null;\n instance.templateString = null;\n notificationRef.destroy();\n }\n applyContainerWrap() {\n const value = this.position.horizontal === 'right' ? 'wrap-reverse' : 'wrap';\n this.renderer.setStyle(this.group.nativeElement, 'flex-wrap', value);\n }\n applySettings(notificationRef, settings) {\n const notification = notificationRef.instance;\n const content = settings.content;\n const animation = settings.animation || null;\n notification.closeClickSubscription = notification.close\n .subscribe(() => this.hide(notificationRef));\n if (typeof content === 'string') {\n notification.templateString = content;\n }\n if (content instanceof TemplateRef) {\n notification.templateRef = content;\n }\n notification.animation = animation;\n let type = settings.type;\n if (type && type.style === undefined) {\n type.style = 'none';\n }\n if (type && type.icon === undefined) {\n type.icon = true;\n }\n notification.type = type;\n notification.closeTitle = settings.closeTitle;\n if (settings.cssClass) {\n notification.cssClass = settings.cssClass;\n }\n notification.closable = settings.closable;\n notification.hideAfter = settings.hideAfter;\n notification.width = settings.width;\n notification.height = settings.height;\n }\n applyAbsolutePosition(appendToContainer) {\n const appendTo = appendToContainer.element.nativeElement;\n const el = this.element.nativeElement.children[0];\n if (window.getComputedStyle(appendTo).position === 'static') {\n this.renderer.setStyle(appendTo, 'position', 'relative');\n }\n this.renderer.setStyle(el, 'position', 'absolute');\n }\n applyPosition() {\n const element = this.element.nativeElement.children[0];\n const elementHalfWidth = element.getBoundingClientRect().width / 2;\n const positionStyles = this.setContainerPosition(this.position, elementHalfWidth);\n Object.keys(positionStyles).forEach((cssStyle) => {\n element.style[cssStyle] = positionStyles[cssStyle];\n });\n }\n setContainerPosition(position, offsetMargin) {\n const positionLayout = {\n horizontal: {\n left: { left: 0, alignItems: 'flex-start' },\n right: { right: 0, alignItems: 'flex-start' },\n center: { left: '50%', marginLeft: `${-offsetMargin}px`, alignItems: 'center' }\n },\n vertical: {\n top: { top: 0 },\n bottom: { bottom: 0 }\n }\n };\n const horizontal = positionLayout.horizontal[position.horizontal];\n const vertical = positionLayout.vertical[position.vertical];\n return Object.assign({}, horizontal, vertical);\n }\n};\nNotificationContainerComponent.ɵfac = function NotificationContainerComponent_Factory(t) { return new (t || NotificationContainerComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ComponentFactoryResolver)); };\nNotificationContainerComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NotificationContainerComponent, selectors: [[\"kendo-notification-container\"]], viewQuery: function NotificationContainerComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c0, 7, ViewContainerRef);\n ɵngcc0.ɵɵviewQuery(_c3, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.container = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.group = _t.first);\n } }, inputs: { id: \"id\" }, decls: 4, vars: 0, consts: [[1, \"k-notification-group\"], [\"group\", \"\"], [\"container\", \"\"]], template: function NotificationContainerComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 0, 1);\n ɵngcc0.ɵɵelementContainer(2, null, 2);\n ɵngcc0.ɵɵelementEnd();\n } }, encapsulation: 2 });\n__decorate([\n ViewChild('container', { read: ViewContainerRef, static: true }),\n __metadata(\"design:type\", ViewContainerRef)\n], NotificationContainerComponent.prototype, \"container\", void 0);\n__decorate([\n ViewChild('group', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], NotificationContainerComponent.prototype, \"group\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], NotificationContainerComponent.prototype, \"id\", void 0);\nNotificationContainerComponent = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n Renderer2,\n ComponentFactoryResolver])\n], NotificationContainerComponent);\n\n/**\n * Used to inject the Notification container. If not provided, the first root component of\n * the application is used.\n *\n * > The `NOTIFICATION_CONTAINER` can be used only with the [`NotificationService`]({% slug api_notification_notificationservice %}) class.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the Notification module\n * import { NotificationModule, NOTIFICATION_CONTAINER } from '@progress/kendo-angular-notification';\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, NotificationModule], // import Notification module\n * bootstrap: [AppComponent],\n * providers: [{\n * provide: NOTIFICATION_CONTAINER,\n * useFactory: () => {\n * //return the container ElementRef, where the notification 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 NOTIFICATION_CONTAINER = new InjectionToken('Notification Container');\n/**\n * A service for opening Notification components dynamically\n * ([see example]({% slug overview_notification %})).\n *\n * @export\n * @class NotificationService\n */\nlet NotificationService = class NotificationService {\n /**\n * @hidden\n */\n constructor(resolver, injector, container) {\n this.resolver = resolver;\n this.injector = injector;\n this.container = container;\n this.notificationContainers = [];\n this.position = { horizontal: 'right', vertical: 'top' };\n }\n /**\n * Opens a Notification component. Created Notification are mounted\n * in the DOM directly in the root application component.\n *\n * @param {NotificationSettings} settings - The settings which define the Notification.\n *\n * @returns {NotificationRef} - A reference to the Notification object and the convenience properties.\n */\n show(settings) {\n if (!settings) {\n throw new Error('NotificationSettings settings are required');\n }\n let target = this.findGroupContainer(settings);\n const position = settings.position || this.position;\n const currentId = `${position.horizontal} ${position.vertical}`;\n let container;\n let notificationRef;\n let notificationContainer = this.notificationContainers.find(c => target.nativeElement.contains(c.element.nativeElement) && c.id === currentId);\n if (!notificationContainer) {\n container = this.resolver\n .resolveComponentFactory(NotificationContainerComponent)\n .create(this.injector);\n notificationContainer = container.instance;\n this.appRef.attachView(container.hostView);\n const hostViewElement = container.location.nativeElement;\n let groupContainer = this.findGroupContainer(settings);\n if (!groupContainer) {\n throw new Error(`\n View Container not found! Inject the NOTIFICATION_CONTAINER or define a specific ViewContainerRef via\n the appendTo option. See http://www.telerik.com/kendo-angular-ui/components/notification/api/NOTIFICATION_CONTAINER/\n for more details.\n `);\n }\n groupContainer.nativeElement.appendChild(hostViewElement);\n this.notificationContainers.push(notificationContainer);\n }\n settings.position = position;\n notificationRef = notificationContainer.addNotification(settings);\n return notificationRef;\n }\n get appRef() {\n if (!this.applicationRef) {\n this.applicationRef = this.injector.get(ApplicationRef);\n }\n return this.applicationRef;\n }\n findGroupContainer(settings) {\n let container;\n if (settings.appendTo) {\n container = settings.appendTo.element;\n }\n else if (this.container) {\n container = this.container;\n }\n else {\n const appRoot = this.appRef.components && this.appRef.components[0];\n container = appRoot ? appRoot.location : null;\n }\n return container;\n }\n};\nNotificationService.ɵfac = function NotificationService_Factory(t) { return new (t || NotificationService)(ɵngcc0.ɵɵinject(ɵngcc0.ComponentFactoryResolver), ɵngcc0.ɵɵinject(ɵngcc0.Injector), ɵngcc0.ɵɵinject(NOTIFICATION_CONTAINER, 8)); };\nNotificationService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NotificationService, factory: function (t) { return NotificationService.ɵfac(t); } });\nNotificationService = __decorate([ __param(2, Inject(NOTIFICATION_CONTAINER)), __param(2, Optional()),\n __metadata(\"design:paramtypes\", [ComponentFactoryResolver,\n Injector,\n ElementRef])\n], NotificationService);\n\nvar LocalizedMessagesDirective_1;\n/**\n * @hidden\n */\nlet LocalizedMessagesDirective = LocalizedMessagesDirective_1 = class LocalizedMessagesDirective extends ComponentMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n};\nLocalizedMessagesDirective.ɵfac = function LocalizedMessagesDirective_Factory(t) { return new (t || LocalizedMessagesDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nLocalizedMessagesDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LocalizedMessagesDirective, selectors: [[\"\", \"kendoNotificationLocalizedMessages\", \"\"]], inputs: { closeTitle: \"closeTitle\" }, features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: ComponentMessages,\n useExisting: forwardRef(() => LocalizedMessagesDirective_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], LocalizedMessagesDirective.prototype, \"closeTitle\", void 0);\nLocalizedMessagesDirective = LocalizedMessagesDirective_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], LocalizedMessagesDirective);\n\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the Notification component.\n *\n * The package exports:\n * - `NotificationService`—The Notification service class.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the Notification module\n * import { NotificationModule } from '@progress/kendo-angular-notification';\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, NotificationModule], // import NotificationModule module\n * bootstrap: [AppComponent]\n * }}\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n * ```\n */\nlet NotificationModule = class NotificationModule {\n};\nNotificationModule.ɵfac = function NotificationModule_Factory(t) { return new (t || NotificationModule)(); };\nNotificationModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NotificationModule });\nNotificationModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ providers: [NotificationService], imports: [[CommonModule]] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NotificationComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-notification',\n template: `\n \n \n
    \n
    \n \n\n
    \n \n \n \n {{ templateString }}\n \n \n
    \n\n \n
    \n
    \n `,\n providers: [\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.notification'\n }\n ]\n }]\n }], function () { return [{ type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc1.AnimationBuilder }, { type: ɵngcc2.LocalizationService }]; }, { width: [{\n type: Input\n }], height: [{\n type: Input\n }], direction: [{\n type: HostBinding,\n args: ['attr.dir']\n }], containerClass: [{\n type: HostBinding,\n args: ['class.k-notification-container']\n }], container: [{\n type: ViewChild,\n args: ['container', { read: ViewContainerRef, static: true }]\n }], templateRef: [{\n type: Input\n }], templateString: [{\n type: Input\n }], cssClass: [{\n type: Input\n }], hideAfter: [{\n type: Input\n }], closable: [{\n type: Input\n }], type: [{\n type: Input\n }], animation: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NotificationContainerComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-notification-container',\n template: `\n
    \n \n
    \n `\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ComponentFactoryResolver }]; }, { id: [{\n type: Input\n }], container: [{\n type: ViewChild,\n args: ['container', { read: ViewContainerRef, static: true }]\n }], group: [{\n type: ViewChild,\n args: ['group', { static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NotificationService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc0.ComponentFactoryResolver }, { type: ɵngcc0.Injector }, { type: ɵngcc0.ElementRef, decorators: [{\n type: Inject,\n args: [NOTIFICATION_CONTAINER]\n }, {\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LocalizedMessagesDirective, [{\n type: Directive,\n args: [{\n providers: [\n {\n provide: ComponentMessages,\n useExisting: forwardRef(() => LocalizedMessagesDirective_1)\n }\n ],\n selector: `[kendoNotificationLocalizedMessages]`\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, { closeTitle: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NotificationModule, [{\n type: NgModule,\n args: [{\n declarations: [NotificationComponent, NotificationContainerComponent, LocalizedMessagesDirective],\n entryComponents: [NotificationComponent, NotificationContainerComponent],\n imports: [CommonModule],\n exports: [NotificationComponent, NotificationContainerComponent],\n providers: [NotificationService]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NotificationModule, { declarations: function () { return [NotificationComponent, NotificationContainerComponent, LocalizedMessagesDirective]; }, imports: function () { return [CommonModule]; }, exports: function () { return [NotificationComponent, NotificationContainerComponent]; } }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { LocalizedMessagesDirective, NotificationContainerComponent, NotificationSettings, NotificationComponent, NotificationService, NOTIFICATION_CONTAINER, NotificationModule };\n\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 */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@progress/kendo-angular-l10n';\nimport * as ɵngcc2 from '@progress/kendo-angular-dropdowns';\nimport * as ɵngcc3 from '@angular/common';\nimport * as ɵngcc4 from '@progress/kendo-angular-inputs';\nimport * as ɵngcc5 from '@progress/kendo-angular-common';\n\nconst _c0 = [\"dropdownlist\"];\nfunction PagerNumericButtonsComponent_option_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"option\", 7);\n ɵngcc0.ɵɵtext(1, \"... \");\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx_r0.pageLabel(ctx_r0.start - 1));\n} }\nconst _c1 = function (a1) { return { \"k-link\": true, \"k-state-selected\": a1 }; };\nfunction PagerNumericButtonsComponent_option_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"option\", 8);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const num_r6 = ctx.$implicit;\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"value\", num_r6.toString())(\"ngClass\", ɵngcc0.ɵɵpureFunction1(5, _c1, ctx_r1.currentPage == num_r6));\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx_r1.pageLabel(num_r6))(\"aria-current\", ctx_r1.currentPage == num_r6 ? \"page\" : undefined);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", num_r6, \" \");\n} }\nfunction PagerNumericButtonsComponent_option_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"option\", 9);\n ɵngcc0.ɵɵtext(1, \"... \");\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx_r2.pageLabel(ctx_r2.end + 1));\n} }\nfunction PagerNumericButtonsComponent_li_5_Template(rf, ctx) { if (rf & 1) {\n const _r8 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\")(1, \"button\", 10);\n ɵngcc0.ɵɵlistener(\"click\", function PagerNumericButtonsComponent_li_5_Template_button_click_1_listener() { ɵngcc0.ɵɵrestoreView(_r8); const ctx_r7 = ɵngcc0.ɵɵnextContext(); return ctx_r7.changePage(ctx_r7.start - 2); });\n ɵngcc0.ɵɵtext(2, \"...\");\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx_r3.pageLabel(ctx_r3.start - 1));\n} }\nfunction PagerNumericButtonsComponent_li_6_Template(rf, ctx) { if (rf & 1) {\n const _r11 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\")(1, \"button\", 11);\n ɵngcc0.ɵɵlistener(\"click\", function PagerNumericButtonsComponent_li_6_Template_button_click_1_listener() { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r11); const num_r9 = restoredCtx.$implicit; const ctx_r10 = ɵngcc0.ɵɵnextContext(); return ctx_r10.changePage(num_r9 - 1); });\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const num_r9 = ctx.$implicit;\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction1(4, _c1, ctx_r4.currentPage == num_r9));\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx_r4.pageLabel(num_r9))(\"aria-current\", ctx_r4.currentPage == num_r9 ? \"page\" : undefined);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", num_r9, \" \");\n} }\nfunction PagerNumericButtonsComponent_li_7_Template(rf, ctx) { if (rf & 1) {\n const _r13 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\")(1, \"button\", 10);\n ɵngcc0.ɵɵlistener(\"click\", function PagerNumericButtonsComponent_li_7_Template_button_click_1_listener() { ɵngcc0.ɵɵrestoreView(_r13); const ctx_r12 = ɵngcc0.ɵɵnextContext(); return ctx_r12.changePage(ctx_r12.end); });\n ɵngcc0.ɵɵtext(2, \"...\");\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r5 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx_r5.pageLabel(ctx_r5.end + 1));\n} }\nconst _c2 = function () { return { \"k-pager-numbers\": true, \"k-reset\": true }; };\nconst _c3 = function () { return { \"k-pager-input\": true, \"k-label\": true }; };\nconst _c4 = function (a0, a1) { return { keydown: a0, focusout: a1 }; };\nfunction PagerComponent_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 3);\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.template.templateRef)(\"ngTemplateOutletContext\", ctx_r0.templateContext);\n} }\nfunction PagerComponent_ng_container_2_kendo_datapager_prev_buttons_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-datapager-prev-buttons\");\n} }\nfunction PagerComponent_ng_container_2_kendo_datapager_numeric_buttons_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-datapager-numeric-buttons\", 6);\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"buttonCount\", ctx_r3.buttonCount);\n} }\nfunction PagerComponent_ng_container_2_kendo_datapager_input_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-datapager-input\");\n} }\nfunction PagerComponent_ng_container_2_kendo_datapager_next_buttons_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-datapager-next-buttons\");\n} }\nfunction PagerComponent_ng_container_2_kendo_datapager_info_5_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-datapager-info\");\n} }\nfunction PagerComponent_ng_container_2_kendo_datapager_page_sizes_6_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-datapager-page-sizes\", 7);\n} if (rf & 2) {\n const ctx_r7 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"pageSizes\", ctx_r7.pageSizeValues);\n} }\nfunction PagerComponent_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, PagerComponent_ng_container_2_kendo_datapager_prev_buttons_1_Template, 1, 0, \"kendo-datapager-prev-buttons\", 2);\n ɵngcc0.ɵɵtemplate(2, PagerComponent_ng_container_2_kendo_datapager_numeric_buttons_2_Template, 1, 1, \"kendo-datapager-numeric-buttons\", 4);\n ɵngcc0.ɵɵtemplate(3, PagerComponent_ng_container_2_kendo_datapager_input_3_Template, 1, 0, \"kendo-datapager-input\", 2);\n ɵngcc0.ɵɵtemplate(4, PagerComponent_ng_container_2_kendo_datapager_next_buttons_4_Template, 1, 0, \"kendo-datapager-next-buttons\", 2);\n ɵngcc0.ɵɵtemplate(5, PagerComponent_ng_container_2_kendo_datapager_info_5_Template, 1, 0, \"kendo-datapager-info\", 2);\n ɵngcc0.ɵɵtemplate(6, PagerComponent_ng_container_2_kendo_datapager_page_sizes_6_Template, 1, 1, \"kendo-datapager-page-sizes\", 5);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r1.previousNext);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r1.type === \"numeric\" && ctx_r1.buttonCount > 0);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r1.type === \"input\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r1.previousNext);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r1.info);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r1.pageSizeValues);\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}\nMessages.ɵfac = /*@__PURE__*/ function () { let ɵMessages_BaseFactory; return function Messages_Factory(t) { return (ɵMessages_BaseFactory || (ɵMessages_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(Messages)))(t || Messages); }; }();\nMessages.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: Messages, inputs: { firstPage: \"firstPage\", lastPage: \"lastPage\", previousPage: \"previousPage\", nextPage: \"nextPage\", page: \"page\", pageNumberInputTitle: \"pageNumberInputTitle\", itemsPerPage: \"itemsPerPage\", of: \"of\", items: \"items\", selectPage: \"selectPage\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\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.ɵfac = function CustomMessagesComponent_Factory(t) { return new (t || CustomMessagesComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nCustomMessagesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CustomMessagesComponent, selectors: [[\"kendo-datapager-messages\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: Messages,\n useExisting: forwardRef(() => CustomMessagesComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function CustomMessagesComponent_Template(rf, ctx) { }, encapsulation: 2 });\nCustomMessagesComponent = CustomMessagesComponent_1 = __decorate([ __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}\nPagerContextService.ɵfac = function PagerContextService_Factory(t) { return new (t || PagerContextService)(); };\nPagerContextService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: PagerContextService, factory: PagerContextService.ɵfac });\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}\nPagerElementComponent.ɵfac = function PagerElementComponent_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nPagerElementComponent.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: PagerElementComponent });\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.ɵfac = function PagerPrevButtonsComponent_Factory(t) { return new (t || PagerPrevButtonsComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(PagerContextService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nPagerPrevButtonsComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PagerPrevButtonsComponent, selectors: [[\"kendo-datapager-prev-buttons\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 4, vars: 12, consts: [[\"type\", \"button\", 1, \"k-link\", \"k-pager-nav\", \"k-pager-first\", 3, \"title\", \"click\"], [\"role\", \"note\", 1, \"k-icon\", \"k-i-seek-w\"], [\"type\", \"button\", 1, \"k-link\", \"k-pager-nav\", 3, \"title\", \"click\"], [\"role\", \"note\", 1, \"k-icon\", \"k-i-arrow-w\"]], template: function PagerPrevButtonsComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"button\", 0);\n ɵngcc0.ɵɵlistener(\"click\", function PagerPrevButtonsComponent_Template_button_click_0_listener() { return ctx.currentPage !== 1 ? ctx.changePage(0) : false; });\n ɵngcc0.ɵɵelement(1, \"span\", 1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(2, \"button\", 2);\n ɵngcc0.ɵɵlistener(\"click\", function PagerPrevButtonsComponent_Template_button_click_2_listener() { return ctx.currentPage !== 1 ? ctx.changePage(ctx.currentPage - 2) : false; });\n ɵngcc0.ɵɵelement(3, \"span\", 3);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-disabled\", ctx.disabled);\n ɵngcc0.ɵɵproperty(\"title\", ctx.textFor(\"firstPage\"));\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx.textFor(\"firstPage\"))(\"aria-disabled\", ctx.disabled ? true : undefined);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx.textFor(\"firstPage\"));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"k-disabled\", ctx.disabled);\n ɵngcc0.ɵɵproperty(\"title\", ctx.textFor(\"previousPage\"));\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx.textFor(\"previousPage\"))(\"aria-disabled\", ctx.disabled ? true : undefined);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx.textFor(\"previousPage\"));\n } }, encapsulation: 2, changeDetection: 0 });\nPagerPrevButtonsComponent = __decorate([ __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};\nPagerPageSizesComponent.ɵfac = function PagerPageSizesComponent_Factory(t) { return new (t || PagerPageSizesComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(PagerContextService)); };\nPagerPageSizesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PagerPageSizesComponent, selectors: [[\"kendo-datapager-page-sizes\"]], viewQuery: function PagerPageSizesComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c0, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.dropDownList = _t.first);\n } }, hostVars: 4, hostBindings: function PagerPageSizesComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-pager-sizes\", ctx.classes)(\"k-label\", ctx.classes);\n } }, inputs: { pageSizes: \"pageSizes\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 3, vars: 4, consts: [[\"textField\", \"text\", \"valueField\", \"value\", 3, \"data\", \"valuePrimitive\", \"value\", \"valueChange\"], [\"dropdownlist\", \"\"]], template: function PagerPageSizesComponent_Template(rf, ctx) { if (rf & 1) {\n const _r1 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-dropdownlist\", 0, 1);\n ɵngcc0.ɵɵlistener(\"valueChange\", function PagerPageSizesComponent_Template_kendo_dropdownlist_valueChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r1); const _r0 = ɵngcc0.ɵɵreference(1); return ctx.pageSizeChange($event, _r0); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtext(2);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"data\", ctx.pageSizes)(\"valuePrimitive\", true)(\"value\", ctx.pageSize);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx.textFor(\"itemsPerPage\"), \" \");\n } }, directives: [ɵngcc2.DropDownListComponent], encapsulation: 2, changeDetection: 0 });\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([ __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.ɵfac = function PagerTemplateDirective_Factory(t) { return new (t || PagerTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nPagerTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: PagerTemplateDirective, selectors: [[\"\", \"kendoDataPagerTemplate\", \"\"]] });\nPagerTemplateDirective = __decorate([ __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};\nPagerNumericButtonsComponent.ɵfac = function PagerNumericButtonsComponent_Factory(t) { return new (t || PagerNumericButtonsComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(PagerContextService)); };\nPagerNumericButtonsComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PagerNumericButtonsComponent, selectors: [[\"kendo-datapager-numeric-buttons\"]], hostVars: 2, hostBindings: function PagerNumericButtonsComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-pager-numbers-wrap\", ctx.numbersWrapClass);\n } }, inputs: { buttonCount: \"buttonCount\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 8, vars: 11, consts: [[1, \"k-dropdown-list\", \"k-picker\", \"k-picker-md\", \"k-rounded-md\", \"k-picker-solid\", 3, \"value\", \"change\"], [\"class\", \"k-link\", \"value\", \"previousButtons\", 4, \"ngIf\"], [3, \"value\", \"ngClass\", 4, \"ngFor\", \"ngForOf\"], [\"value\", \"nextButtons\", \"class\", \"k-link\", 4, \"ngIf\"], [3, \"ngClass\"], [4, \"ngIf\"], [4, \"ngFor\", \"ngForOf\"], [\"value\", \"previousButtons\", 1, \"k-link\"], [3, \"value\", \"ngClass\"], [\"value\", \"nextButtons\", 1, \"k-link\"], [\"type\", \"button\", 1, \"k-link\", 3, \"click\"], [\"type\", \"button\", 3, \"ngClass\", \"click\"]], template: function PagerNumericButtonsComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"select\", 0);\n ɵngcc0.ɵɵlistener(\"change\", function PagerNumericButtonsComponent_Template_select_change_0_listener($event) { return ctx.onSelectChange($event); });\n ɵngcc0.ɵɵtemplate(1, PagerNumericButtonsComponent_option_1_Template, 2, 1, \"option\", 1);\n ɵngcc0.ɵɵtemplate(2, PagerNumericButtonsComponent_option_2_Template, 2, 7, \"option\", 2);\n ɵngcc0.ɵɵtemplate(3, PagerNumericButtonsComponent_option_3_Template, 2, 1, \"option\", 3);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(4, \"ul\", 4);\n ɵngcc0.ɵɵtemplate(5, PagerNumericButtonsComponent_li_5_Template, 3, 1, \"li\", 5);\n ɵngcc0.ɵɵtemplate(6, PagerNumericButtonsComponent_li_6_Template, 3, 6, \"li\", 6);\n ɵngcc0.ɵɵtemplate(7, PagerNumericButtonsComponent_li_7_Template, 3, 1, \"li\", 5);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"value\", ctx.currentPage.toString());\n ɵngcc0.ɵɵattribute(\"title\", ctx.pageChooserLabel)(\"aria-label\", ctx.pageChooserLabel);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.start > 1);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.buttons);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.end < ctx.totalPages);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction0(10, _c2));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.start > 1);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.buttons);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.end < ctx.totalPages);\n } }, directives: [ɵngcc3.NgIf, ɵngcc3.NgForOf, ɵngcc3.NgClass], encapsulation: 2, changeDetection: 0 });\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([ __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.ɵfac = function PagerNextButtonsComponent_Factory(t) { return new (t || PagerNextButtonsComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(PagerContextService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nPagerNextButtonsComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PagerNextButtonsComponent, selectors: [[\"kendo-datapager-next-buttons\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 4, vars: 12, consts: [[\"type\", \"button\", 1, \"k-link\", \"k-pager-nav\", 3, \"title\", \"click\"], [\"role\", \"note\", 1, \"k-icon\", \"k-i-arrow-e\"], [\"type\", \"button\", 1, \"k-link\", \"k-pager-nav\", \"k-pager-last\", 3, \"title\", \"click\"], [\"role\", \"note\", 1, \"k-icon\", \"k-i-seek-e\"]], template: function PagerNextButtonsComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"button\", 0);\n ɵngcc0.ɵɵlistener(\"click\", function PagerNextButtonsComponent_Template_button_click_0_listener() { return ctx.currentPage !== ctx.totalPages ? ctx.changePage(ctx.currentPage) : false; });\n ɵngcc0.ɵɵelement(1, \"span\", 1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(2, \"button\", 2);\n ɵngcc0.ɵɵlistener(\"click\", function PagerNextButtonsComponent_Template_button_click_2_listener() { return ctx.currentPage !== ctx.totalPages ? ctx.changePage(ctx.totalPages - 1) : false; });\n ɵngcc0.ɵɵelement(3, \"span\", 3);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-disabled\", ctx.disabled);\n ɵngcc0.ɵɵproperty(\"title\", ctx.textFor(\"nextPage\"));\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx.textFor(\"nextPage\"))(\"aria-disabled\", ctx.disabled ? true : undefined);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx.textFor(\"nextPage\"));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"k-disabled\", ctx.disabled);\n ɵngcc0.ɵɵproperty(\"title\", ctx.textFor(\"lastPage\"));\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx.textFor(\"lastPage\"))(\"aria-disabled\", ctx.disabled ? true : undefined);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx.textFor(\"lastPage\"));\n } }, encapsulation: 2, changeDetection: 0 });\nPagerNextButtonsComponent = __decorate([ __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};\nPagerInputComponent.ɵfac = function PagerInputComponent_Factory(t) { return new (t || PagerInputComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(PagerContextService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nPagerInputComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PagerInputComponent, selectors: [[\"kendo-datapager-input\"]], viewQuery: function PagerInputComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(NumericTextBoxComponent, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.numericInput = _t.first);\n } }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 4, vars: 17, consts: [[3, \"ngClass\"], [\"format\", \"n0\", 3, \"spinners\", \"decimals\", \"disabled\", \"value\", \"min\", \"max\", \"autoCorrect\", \"title\", \"kendoEventsOutsideAngular\"]], template: function PagerInputComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 0);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelement(2, \"kendo-numerictextbox\", 1);\n ɵngcc0.ɵɵtext(3);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction0(13, _c3));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx.textFor(\"page\"), \" \");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"spinners\", false)(\"decimals\", 0)(\"disabled\", !ctx.hasPages)(\"value\", ctx.current)(\"min\", ctx.hasPages ? 1 : 0)(\"max\", ctx.totalPages)(\"autoCorrect\", true)(\"title\", ctx.textFor(\"pageNumberInputTitle\"))(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction2(14, _c4, ctx.handleKeyDown, ctx.handleBlur));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate2(\" \", ctx.textFor(\"of\"), \" \", ctx.totalPages, \" \");\n } }, directives: [ɵngcc3.NgClass, ɵngcc4.NumericTextBoxComponent, ɵngcc5.EventsOutsideAngularDirective], encapsulation: 2 });\n__decorate([\n ViewChild(NumericTextBoxComponent, { static: true }),\n __metadata(\"design:type\", NumericTextBoxComponent)\n], PagerInputComponent.prototype, \"numericInput\", void 0);\nPagerInputComponent = __decorate([ __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};\nPagerInfoComponent.ɵfac = function PagerInfoComponent_Factory(t) { return new (t || PagerInfoComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(PagerContextService)); };\nPagerInfoComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PagerInfoComponent, selectors: [[\"kendo-datapager-info\"]], hostVars: 4, hostBindings: function PagerInfoComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-pager-info\", ctx.classes)(\"k-label\", ctx.classes);\n } }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 1, vars: 5, template: function PagerInfoComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n } if (rf & 2) {\n ɵngcc0.ɵɵtextInterpolate5(\"\", ctx.currentPageText, \" - \", ctx.maxItems, \" \", ctx.textFor(\"of\"), \" \", ctx.total, \" \", ctx.textFor(\"items\"), \"\");\n } }, encapsulation: 2, changeDetection: 0 });\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([ __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: 1647344354,\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.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};\nPagerComponent.ɵfac = function PagerComponent_Factory(t) { return new (t || PagerComponent)(ɵngcc0.ɵɵdirectiveInject(PagerContextService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nPagerComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PagerComponent, selectors: [[\"kendo-datapager\"]], contentQueries: function PagerComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, PagerTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.template = _t.first);\n } }, viewQuery: function PagerComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(ResizeSensorComponent, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.resizeSensor = _t.first);\n } }, hostVars: 6, hostBindings: function PagerComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"role\", ctx.widgetRole)(\"dir\", ctx.dir);\n ɵngcc0.ɵɵclassProp(\"k-pager-wrap\", ctx.pagerWrapClass)(\"k-pager\", ctx.pagerClass);\n } }, inputs: { total: \"total\", skip: \"skip\", buttonCount: \"buttonCount\", info: \"info\", type: \"type\", previousNext: \"previousNext\", pageSizeValues: \"pageSizeValues\", pageSize: \"pageSize\" }, outputs: { pageChange: \"pageChange\", pageSizeChange: \"pageSizeChange\" }, exportAs: [\"kendoDataPager\"], features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n PagerContextService\n ]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 4, vars: 2, consts: function () { let i18n_5; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the first page button in the Pager\n * @meaning kendo.pager.firstPage\n */\n const MSG_EXTERNAL_7169522157181311670$$DIST_FESM2015_INDEX_JS_6 = goog.getMsg(\"Go to the first page\");\n i18n_5 = MSG_EXTERNAL_7169522157181311670$$DIST_FESM2015_INDEX_JS_6;\n }\n else {\n i18n_5 = $localize `:kendo.pager.firstPage|The label for the first page button in the Pager␟58e7a29204d61160ee51887924108de65eacf790␟7169522157181311670:Go to the first page`;\n } let i18n_7; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the previous page button in the Pager\n * @meaning kendo.pager.previousPage\n */\n const MSG_EXTERNAL_3173443332469111280$$DIST_FESM2015_INDEX_JS_8 = goog.getMsg(\"Go to the previous page\");\n i18n_7 = MSG_EXTERNAL_3173443332469111280$$DIST_FESM2015_INDEX_JS_8;\n }\n else {\n i18n_7 = $localize `:kendo.pager.previousPage|The label for the previous page button in the Pager␟8143f473e772fc1492c1a924b01a8f1251e9d02f␟3173443332469111280:Go to the previous page`;\n } let i18n_9; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the next page button in the Pager\n * @meaning kendo.pager.nextPage\n */\n const MSG_EXTERNAL_2977649834936444534$$DIST_FESM2015_INDEX_JS_10 = goog.getMsg(\"Go to the next page\");\n i18n_9 = MSG_EXTERNAL_2977649834936444534$$DIST_FESM2015_INDEX_JS_10;\n }\n else {\n i18n_9 = $localize `:kendo.pager.nextPage|The label for the next page button in the Pager␟f49126ed375f9ee2c308b79a4e79eb8cabcc05ee␟2977649834936444534:Go to the next page`;\n } let i18n_11; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the last page button in the Pager\n * @meaning kendo.pager.lastPage\n */\n const MSG_EXTERNAL_4302174378452165800$$DIST_FESM2015_INDEX_JS_12 = goog.getMsg(\"Go to the last page\");\n i18n_11 = MSG_EXTERNAL_4302174378452165800$$DIST_FESM2015_INDEX_JS_12;\n }\n else {\n i18n_11 = $localize `:kendo.pager.lastPage|The label for the last page button in the Pager␟f995be404141d2d8026e932413f9cfcceb248b7e␟4302174378452165800:Go to the last page`;\n } let i18n_13; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label before the current page number in the Pager\n * @meaning kendo.pager.page\n */\n const MSG_EXTERNAL_8678868632586383003$$DIST_FESM2015_INDEX_JS_14 = goog.getMsg(\"Page\");\n i18n_13 = MSG_EXTERNAL_8678868632586383003$$DIST_FESM2015_INDEX_JS_14;\n }\n else {\n i18n_13 = $localize `:kendo.pager.page|The label before the current page number in the Pager␟a4889149ce04e1dfd6df1a1b6ddb0181c4853815␟8678868632586383003:Page`;\n } let i18n_15; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label before the total pages number in the Pager\n * @meaning kendo.pager.of\n */\n const MSG_EXTERNAL_2438575870810538060$$DIST_FESM2015_INDEX_JS_16 = goog.getMsg(\"of\");\n i18n_15 = MSG_EXTERNAL_2438575870810538060$$DIST_FESM2015_INDEX_JS_16;\n }\n else {\n i18n_15 = $localize `:kendo.pager.of|The label before the total pages number in the Pager␟97c61905bdc8392cc3703e78f39409b350971a56␟2438575870810538060:of`;\n } let i18n_17; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the pager input in the Pager\n * @meaning kendo.pager.pageNumberInputTitle\n */\n const MSG_EXTERNAL_2330948786674386987$$DIST_FESM2015_INDEX_JS_18 = goog.getMsg(\"Page Number\");\n i18n_17 = MSG_EXTERNAL_2330948786674386987$$DIST_FESM2015_INDEX_JS_18;\n }\n else {\n i18n_17 = $localize `:kendo.pager.pageNumberInputTitle|The label for the pager input in the Pager␟73fa30054b2ba79a6eee49301ceabf8766101e91␟2330948786674386987:Page Number`;\n } let i18n_19; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label after the total pages number in the Pager\n * @meaning kendo.pager.items\n */\n const MSG_EXTERNAL_3496480700570244582$$DIST_FESM2015_INDEX_JS_20 = goog.getMsg(\"items\");\n i18n_19 = MSG_EXTERNAL_3496480700570244582$$DIST_FESM2015_INDEX_JS_20;\n }\n else {\n i18n_19 = $localize `:kendo.pager.items|The label after the total pages number in the Pager␟972389bced646be7aee572a38aaed254caaa96f1␟3496480700570244582:items`;\n } let i18n_21; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the page size chooser in the Pager\n * @meaning kendo.pager.itemsPerPage\n */\n const MSG_EXTERNAL_1737032542950161383$$DIST_FESM2015_INDEX_JS_22 = goog.getMsg(\"items per page\");\n i18n_21 = MSG_EXTERNAL_1737032542950161383$$DIST_FESM2015_INDEX_JS_22;\n }\n else {\n i18n_21 = $localize `:kendo.pager.itemsPerPage|The label for the page size chooser in the Pager␟341bf05d4bc3fd82b12c8fb0b230ca413fcedf6f␟1737032542950161383:items per page`;\n } let i18n_23; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the title and aria-label attributes applied to the page chooser in the Pager\n * @meaning kendo.pager.selectPage\n */\n const MSG_EXTERNAL_2001603891643955632$$DIST_FESM2015_INDEX_JS_24 = goog.getMsg(\"Select page\");\n i18n_23 = MSG_EXTERNAL_2001603891643955632$$DIST_FESM2015_INDEX_JS_24;\n }\n else {\n i18n_23 = $localize `:kendo.pager.selectPage|The text of the title and aria-label attributes applied to the page chooser in the Pager␟5d7a3d9305d6231a8d96f5f01b6972f47eb1f111␟2001603891643955632:Select page`;\n } return [[\"kendoDataPagerLocalizedMessages\", \"\", \"firstPage\", i18n_5, \"previousPage\", i18n_7, \"nextPage\", i18n_9, \"lastPage\", i18n_11, \"page\", i18n_13, \"of\", i18n_15, \"pageNumberInputTitle\", i18n_17, \"items\", i18n_19, \"itemsPerPage\", i18n_21, \"selectPage\", i18n_23], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\", 4, \"ngIf\"], [4, \"ngIf\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [3, \"buttonCount\", 4, \"ngIf\"], [3, \"pageSizes\", 4, \"ngIf\"], [3, \"buttonCount\"], [3, \"pageSizes\"]]; }, template: function PagerComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 0);\n ɵngcc0.ɵɵtemplate(1, PagerComponent_ng_container_1_Template, 1, 2, \"ng-container\", 1);\n ɵngcc0.ɵɵtemplate(2, PagerComponent_ng_container_2_Template, 7, 6, \"ng-container\", 2);\n ɵngcc0.ɵɵelement(3, \"kendo-resize-sensor\");\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.template == null ? null : ctx.template.templateRef);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !(ctx.template == null ? null : ctx.template.templateRef));\n } }, directives: function () { return [LocalizedMessagesDirective, ɵngcc3.NgIf, ɵngcc3.NgTemplateOutlet, PagerPrevButtonsComponent, PagerNumericButtonsComponent, PagerInputComponent, PagerNextButtonsComponent, PagerInfoComponent, PagerPageSizesComponent, ɵngcc5.ResizeSensorComponent]; }, encapsulation: 2 });\n__decorate([\n ViewChild(ResizeSensorComponent, { static: true }),\n __metadata(\"design:type\", ResizeSensorComponent)\n], PagerComponent.prototype, \"resizeSensor\", void 0);\n__decorate([\n ContentChild(PagerTemplateDirective, { static: false }),\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('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([ __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.ɵfac = function LocalizedMessagesDirective_Factory(t) { return new (t || LocalizedMessagesDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nLocalizedMessagesDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LocalizedMessagesDirective, selectors: [[\"\", \"kendoDataPagerLocalizedMessages\", \"\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: Messages,\n useExisting: forwardRef(() => LocalizedMessagesDirective_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature] });\nLocalizedMessagesDirective = LocalizedMessagesDirective_1 = __decorate([ __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.ɵfac = function PagerModule_Factory(t) { return new (t || PagerModule)(); };\nPagerModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: PagerModule });\nPagerModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ providers: [providers], imports: [[...importedModules]] });\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CustomMessagesComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: Messages,\n useExisting: forwardRef(() => CustomMessagesComponent_1)\n }\n ],\n selector: 'kendo-datapager-messages',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PagerPrevButtonsComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-datapager-prev-buttons',\n template: `\n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }, { type: PagerContextService }, { type: ɵngcc0.ChangeDetectorRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PagerPageSizesComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-datapager-page-sizes',\n template: `\n \n {{ textFor('itemsPerPage') }}\n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }, { type: ɵngcc0.ChangeDetectorRef }, { type: PagerContextService }]; }, { pageSizes: [{\n type: Input\n }], classes: [{\n type: HostBinding,\n args: [\"class.k-pager-sizes\"]\n }, {\n type: HostBinding,\n args: [\"class.k-label\"]\n }], dropDownList: [{\n type: ViewChild,\n args: ['dropdownlist', { static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PagerTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoDataPagerTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PagerNumericButtonsComponent, [{\n type: Component,\n args: [{\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 }], function () { return [{ type: ɵngcc1.LocalizationService }, { type: ɵngcc0.ChangeDetectorRef }, { type: PagerContextService }]; }, { numbersWrapClass: [{\n type: HostBinding,\n args: ['class.k-pager-numbers-wrap']\n }], buttonCount: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PagerNextButtonsComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-datapager-next-buttons',\n template: `\n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }, { type: PagerContextService }, { type: ɵngcc0.ChangeDetectorRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PagerInputComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-datapager-input',\n template: `\n \n {{textFor('page')}}\n \n \n {{textFor('of')}} {{totalPages}}\n \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }, { type: PagerContextService }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ChangeDetectorRef }]; }, { numericInput: [{\n type: ViewChild,\n args: [NumericTextBoxComponent, { static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PagerInfoComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-datapager-info',\n template: `{{currentPageText}} - {{maxItems}} {{textFor('of')}} {{total}} {{textFor('items')}}`\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }, { type: ɵngcc0.ChangeDetectorRef }, { type: PagerContextService }]; }, { classes: [{\n type: HostBinding,\n args: [\"class.k-pager-info\"]\n }, {\n type: HostBinding,\n args: [\"class.k-label\"]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PagerComponent, [{\n type: Component,\n args: [{\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 }], function () { return [{ type: PagerContextService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc1.LocalizationService }]; }, { total: [{\n type: Input\n }], skip: [{\n type: Input\n }], buttonCount: [{\n type: Input\n }], info: [{\n type: Input\n }], type: [{\n type: Input\n }], previousNext: [{\n type: Input\n }], pageChange: [{\n type: Output\n }], pageSizeChange: [{\n type: Output\n }], pagerWrapClass: [{\n type: HostBinding,\n args: ['class.k-pager-wrap']\n }], pagerClass: [{\n type: HostBinding,\n args: ['class.k-pager']\n }], widgetRole: [{\n type: HostBinding,\n args: ['attr.role']\n }], pageSizeValues: [{\n type: Input\n }], dir: [{\n type: HostBinding,\n args: ['attr.dir']\n }], resizeSensor: [{\n type: ViewChild,\n args: [ResizeSensorComponent, { static: true }]\n }], template: [{\n type: ContentChild,\n args: [PagerTemplateDirective, { static: false }]\n }], pageSize: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LocalizedMessagesDirective, [{\n type: Directive,\n args: [{\n providers: [\n {\n provide: Messages,\n useExisting: forwardRef(() => LocalizedMessagesDirective_1)\n }\n ],\n selector: '[kendoDataPagerLocalizedMessages]'\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PagerModule, [{\n type: NgModule,\n args: [{\n declarations: [INTERNAL_COMPONENTS],\n exports: [INTERNAL_COMPONENTS],\n imports: [...importedModules],\n providers: [providers]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(PagerModule, { declarations: [PagerComponent, PagerPrevButtonsComponent, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerInputComponent, PagerInfoComponent, PagerPageSizesComponent, PagerTemplateDirective, LocalizedMessagesDirective, CustomMessagesComponent], imports: [CommonModule,\n NumericTextBoxModule,\n DropDownListModule,\n EventsModule,\n ResizeSensorModule], exports: [PagerComponent, PagerPrevButtonsComponent, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerInputComponent, PagerInfoComponent, PagerPageSizesComponent, PagerTemplateDirective, LocalizedMessagesDirective, CustomMessagesComponent] }); })();\n\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","/**-----------------------------------------------------------------------------------------\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, __param, __metadata } from 'tslib';\nimport { Directive, Optional, TemplateRef, Input, Component, ContentChild, ElementRef, NgModule } from '@angular/core';\nimport { drawDOM, exportPDF } from '@progress/kendo-drawing';\nimport { saveAs } from '@progress/kendo-file-saver';\nimport { validatePackage } from '@progress/kendo-licensing';\n\n/**\n * @hidden\n */\nimport * as ɵngcc0 from '@angular/core';\n\nconst _c0 = [\"*\"];\nconst packageMetadata = {\n name: '@progress/kendo-angular-pdf-export',\n productName: 'Kendo UI for Angular',\n productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],\n publishDate: 1646219273,\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 PDFExportTemplateDirective = class PDFExportTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nPDFExportTemplateDirective.ɵfac = function PDFExportTemplateDirective_Factory(t) { return new (t || PDFExportTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nPDFExportTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: PDFExportTemplateDirective, selectors: [[\"\", \"kendoPDFTemplate\", \"\"]] });\nPDFExportTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], PDFExportTemplateDirective);\n\nconst FIELDS = ['bottom', 'left', 'right', 'top'];\n/**\n * Represents the Kendo UI PDFMargin component for Angular.\n */\nlet PDFExportMarginComponent = class PDFExportMarginComponent {\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};\nPDFExportMarginComponent.ɵfac = function PDFExportMarginComponent_Factory(t) { return new (t || PDFExportMarginComponent)(); };\nPDFExportMarginComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PDFExportMarginComponent, selectors: [[\"kendo-pdf-export-margin\"]], inputs: { left: \"left\", top: \"top\", right: \"right\", bottom: \"bottom\" }, decls: 0, vars: 0, template: function PDFExportMarginComponent_Template(rf, ctx) { }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], PDFExportMarginComponent.prototype, \"left\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], PDFExportMarginComponent.prototype, \"top\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], PDFExportMarginComponent.prototype, \"right\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], PDFExportMarginComponent.prototype, \"bottom\", void 0);\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 */\nlet PDFExportComponent = class 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 validatePackage(packageMetadata);\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 autoPrint: this.autoPrint,\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.ɵfac = function PDFExportComponent_Factory(t) { return new (t || PDFExportComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nPDFExportComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PDFExportComponent, selectors: [[\"kendo-pdf-export\"]], contentQueries: function PDFExportComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, PDFExportTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, PDFExportMarginComponent, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.pageTemplateDirective = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.marginComponent = _t.first);\n } }, inputs: { creator: \"creator\", fileName: \"fileName\", autoPrint: \"autoPrint\", author: \"author\", avoidLinks: \"avoidLinks\", forcePageBreak: \"forcePageBreak\", keepTogether: \"keepTogether\", date: \"date\", imageResolution: \"imageResolution\", forceProxy: \"forceProxy\", keywords: \"keywords\", landscape: \"landscape\", margin: \"margin\", paperSize: \"paperSize\", repeatHeaders: \"repeatHeaders\", scale: \"scale\", proxyData: \"proxyData\", proxyURL: \"proxyURL\", proxyTarget: \"proxyTarget\", producer: \"producer\", subject: \"subject\", title: \"title\" }, ngContentSelectors: _c0, decls: 2, vars: 0, template: function PDFExportComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelementStart(0, \"div\");\n ɵngcc0.ɵɵprojection(1);\n ɵngcc0.ɵɵelementEnd();\n } }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], PDFExportComponent.prototype, \"autoPrint\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], PDFExportComponent.prototype, \"author\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], PDFExportComponent.prototype, \"avoidLinks\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], PDFExportComponent.prototype, \"forcePageBreak\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], PDFExportComponent.prototype, \"keepTogether\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], PDFExportComponent.prototype, \"creator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], PDFExportComponent.prototype, \"date\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], PDFExportComponent.prototype, \"imageResolution\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], PDFExportComponent.prototype, \"fileName\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], PDFExportComponent.prototype, \"forceProxy\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], PDFExportComponent.prototype, \"keywords\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], PDFExportComponent.prototype, \"landscape\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], PDFExportComponent.prototype, \"margin\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], PDFExportComponent.prototype, \"paperSize\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], PDFExportComponent.prototype, \"repeatHeaders\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], PDFExportComponent.prototype, \"scale\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], PDFExportComponent.prototype, \"proxyData\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], PDFExportComponent.prototype, \"proxyURL\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], PDFExportComponent.prototype, \"proxyTarget\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], PDFExportComponent.prototype, \"producer\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], PDFExportComponent.prototype, \"subject\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], PDFExportComponent.prototype, \"title\", void 0);\n__decorate([\n ContentChild(PDFExportTemplateDirective, { static: false }),\n __metadata(\"design:type\", PDFExportTemplateDirective)\n], PDFExportComponent.prototype, \"pageTemplateDirective\", void 0);\n__decorate([\n ContentChild(PDFExportMarginComponent, { static: false }),\n __metadata(\"design:type\", PDFExportMarginComponent)\n], PDFExportComponent.prototype, \"marginComponent\", void 0);\nPDFExportComponent = __decorate([ __metadata(\"design:paramtypes\", [ElementRef])\n], PDFExportComponent);\n\nconst COMPONENT_DIRECTIVES = [\n PDFExportComponent,\n PDFExportMarginComponent,\n PDFExportTemplateDirective\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }}) definition for the PDF Export directive.\n */\nlet PDFExportModule = class PDFExportModule {\n};\nPDFExportModule.ɵfac = function PDFExportModule_Factory(t) { return new (t || PDFExportModule)(); };\nPDFExportModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: PDFExportModule });\nPDFExportModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PDFExportTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoPDFTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PDFExportMarginComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-pdf-export-margin',\n template: ``\n }]\n }], null, { left: [{\n type: Input\n }], top: [{\n type: Input\n }], right: [{\n type: Input\n }], bottom: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PDFExportComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-pdf-export',\n template: `
    `\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }]; }, { creator: [{\n type: Input\n }], fileName: [{\n type: Input\n }], autoPrint: [{\n type: Input\n }], author: [{\n type: Input\n }], avoidLinks: [{\n type: Input\n }], forcePageBreak: [{\n type: Input\n }], keepTogether: [{\n type: Input\n }], date: [{\n type: Input\n }], imageResolution: [{\n type: Input\n }], forceProxy: [{\n type: Input\n }], keywords: [{\n type: Input\n }], landscape: [{\n type: Input\n }], margin: [{\n type: Input\n }], paperSize: [{\n type: Input\n }], repeatHeaders: [{\n type: Input\n }], scale: [{\n type: Input\n }], proxyData: [{\n type: Input\n }], proxyURL: [{\n type: Input\n }], proxyTarget: [{\n type: Input\n }], producer: [{\n type: Input\n }], subject: [{\n type: Input\n }], title: [{\n type: Input\n }], pageTemplateDirective: [{\n type: ContentChild,\n args: [PDFExportTemplateDirective, { static: false }]\n }], marginComponent: [{\n type: ContentChild,\n args: [PDFExportMarginComponent, { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PDFExportModule, [{\n type: NgModule,\n args: [{\n declarations: [COMPONENT_DIRECTIVES],\n exports: [COMPONENT_DIRECTIVES]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(PDFExportModule, { declarations: [PDFExportComponent, PDFExportMarginComponent, PDFExportTemplateDirective], exports: [PDFExportComponent, PDFExportMarginComponent, PDFExportTemplateDirective] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { PDFExportComponent, PDFExportModule, PDFExportMarginComponent, PDFExportTemplateDirective, compileTemplate };\n\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, __param, __metadata } from 'tslib';\nimport { Injectable, InjectionToken, Inject, Optional, NgZone, EventEmitter, isDevMode, Input, Output, ViewChild, ElementRef, Component, Renderer2, TemplateRef, ApplicationRef, ComponentFactoryResolver, Injector, NgModule } from '@angular/core';\nimport { siblingContainer, parents, addScroll, align, boundingOffset, offset, positionWithScroll, removeScroll, restrictToView, scrollPosition, getWindowViewPort } from '@progress/kendo-popup-common';\nimport { isDocumentAvailable, hasObservers, ResizeSensorComponent, ResizeSensorModule } from '@progress/kendo-angular-common';\nimport { fromEvent, merge, from } from 'rxjs';\nimport { auditTime } from 'rxjs/operators';\nimport { style, animate, AnimationBuilder } from '@angular/animations';\nimport { validatePackage } from '@progress/kendo-licensing';\nimport { CommonModule } from '@angular/common';\n\n/**\n * @hidden\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/animations';\nimport * as ɵngcc2 from '@angular/common';\nimport * as ɵngcc3 from '@progress/kendo-angular-common';\n\nconst _c0 = [\"container\"];\nfunction PopupComponent_ng_template_3_Template(rf, ctx) { }\nconst _c1 = [\"*\"];\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 */\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 */\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}\nconst ɵ3 = () => {\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 hasRelativeStackingContext = memoize(ɵ3);\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 */\nlet DOMService = class 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(el);\n }\n getFontStyles(el) {\n const window = this.getWindow();\n if (!window || !el) {\n return [];\n }\n const computedStyles = window.getComputedStyle(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(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(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(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(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.ɵfac = function DOMService_Factory(t) { return new (t || DOMService)(); };\nDOMService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: DOMService, factory: function (t) { return DOMService.ɵfac(t); } });\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 shared/app.module.ts %}\n * {% embed_file shared/main.ts %}\n * {% endmeta %}\n *\n *\n */\nconst SCALE = new InjectionToken('Popup Document Scale');\n\n/**\n * @hidden\n */\nlet AlignService = class 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.nativeElement), 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.ɵfac = function AlignService_Factory(t) { return new (t || AlignService)(ɵngcc0.ɵɵinject(DOMService), ɵngcc0.ɵɵinject(SCALE, 8)); };\nAlignService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: AlignService, factory: function (t) { return AlignService.ɵfac(t); } });\nAlignService = __decorate([ __param(1, Inject(SCALE)), __param(1, Optional()),\n __metadata(\"design:paramtypes\", [DOMService, Number])\n], AlignService);\n\n/**\n * @hidden\n */\nlet PositionService = class 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.ɵfac = function PositionService_Factory(t) { return new (t || PositionService)(ɵngcc0.ɵɵinject(DOMService), ɵngcc0.ɵɵinject(SCALE, 8)); };\nPositionService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: PositionService, factory: function (t) { return PositionService.ɵfac(t); } });\nPositionService = __decorate([ __param(1, Inject(SCALE)), __param(1, Optional()),\n __metadata(\"design:paramtypes\", [DOMService, Number])\n], PositionService);\n\n/**\n * @hidden\n */\nlet ResizeService = class 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.ɵfac = function ResizeService_Factory(t) { return new (t || ResizeService)(ɵngcc0.ɵɵinject(DOMService), ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nResizeService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ResizeService, factory: function (t) { return ResizeService.ɵfac(t); } });\nResizeService = __decorate([ __metadata(\"design:paramtypes\", [DOMService, NgZone])\n], ResizeService);\n\n/**\n * @hidden\n */\nconst THRESHOLD_DIFF = 1;\n/**\n * @hidden\n */\nlet ScrollableService = class 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 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(this.element, 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(this._dom.nativeElement(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.ɵfac = function ScrollableService_Factory(t) { return new (t || ScrollableService)(ɵngcc0.ɵɵinject(DOMService), ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nScrollableService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ScrollableService, factory: function (t) { return ScrollableService.ɵfac(t); } });\nScrollableService = __decorate([ __metadata(\"design:paramtypes\", [DOMService, NgZone])\n], ScrollableService);\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 */\nlet AnimationService = class 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.ɵfac = function AnimationService_Factory(t) { return new (t || AnimationService)(ɵngcc0.ɵɵinject(ɵngcc1.AnimationBuilder)); };\nAnimationService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: AnimationService, factory: function (t) { return AnimationService.ɵfac(t); } });\nAnimationService = __decorate([ __metadata(\"design:paramtypes\", [AnimationBuilder])\n], AnimationService);\n\n/**\n * @hidden\n */\nconst packageMetadata = {\n name: '@progress/kendo-angular-popup',\n productName: 'Kendo UI for Angular',\n productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],\n publishDate: 1648554200,\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 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 */\nlet PopupComponent = class 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 validatePackage(packageMetadata);\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.domService.nativeElement(this.anchor) || this.container.nativeElement).subscribe(this.onScroll.bind(this));\n this.currentOffset = DEFAULT_OFFSET;\n this.setZIndex();\n this.copyFontStyles();\n this.updateFixedClass();\n this.reposition();\n }\n ngOnChanges(changes) {\n if (changes.copyAnchorStyles) {\n this.copyFontStyles();\n }\n if (changes.positionMode) {\n this.updateFixedClass();\n }\n }\n ngAfterViewInit() {\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.domService.nativeElement(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.domService.nativeElement(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.domService.nativeElement(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.domService.nativeElement(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.ɵfac = function PopupComponent_Factory(t) { return new (t || PopupComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(AlignService), ɵngcc0.ɵɵdirectiveInject(DOMService), ɵngcc0.ɵɵdirectiveInject(PositionService), ɵngcc0.ɵɵdirectiveInject(ResizeService), ɵngcc0.ɵɵdirectiveInject(ScrollableService), ɵngcc0.ɵɵdirectiveInject(AnimationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nPopupComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PopupComponent, selectors: [[\"kendo-popup\"]], viewQuery: function PopupComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c0, 7);\n ɵngcc0.ɵɵviewQuery(ResizeSensorComponent, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.contentContainer = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.resizeSensor = _t.first);\n } }, inputs: { animate: \"animate\", anchorAlign: \"anchorAlign\", collision: \"collision\", popupAlign: \"popupAlign\", copyAnchorStyles: \"copyAnchorStyles\", positionMode: \"positionMode\", offset: \"offset\", anchor: \"anchor\", popupClass: \"popupClass\", margin: \"margin\" }, outputs: { anchorViewportLeave: \"anchorViewportLeave\", close: \"close\", open: \"open\", positionChange: \"positionChange\" }, exportAs: [\"kendo-popup\"], features: [ɵngcc0.ɵɵProvidersFeature([AlignService, AnimationService, DOMService, PositionService, ResizeService, ScrollableService]), ɵngcc0.ɵɵNgOnChangesFeature], ngContentSelectors: _c1, decls: 5, vars: 4, consts: [[1, \"k-popup\", 3, \"ngClass\"], [\"container\", \"\"], [3, \"ngTemplateOutlet\", \"ngIf\"], [3, \"rateLimit\", \"resize\"]], template: function PopupComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelementStart(0, \"div\", 0, 1);\n ɵngcc0.ɵɵprojection(2);\n ɵngcc0.ɵɵtemplate(3, PopupComponent_ng_template_3_Template, 0, 0, \"ng-template\", 2);\n ɵngcc0.ɵɵelementStart(4, \"kendo-resize-sensor\", 3);\n ɵngcc0.ɵɵlistener(\"resize\", function PopupComponent_Template_kendo_resize_sensor_resize_4_listener() { return ctx.onResize(); });\n ɵngcc0.ɵɵelementEnd()();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx.popupClass);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx.content)(\"ngIf\", ctx.content);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"rateLimit\", 100);\n } }, directives: [ɵngcc2.NgClass, ɵngcc2.NgTemplateOutlet, ɵngcc2.NgIf, ɵngcc3.ResizeSensorComponent], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], PopupComponent.prototype, \"animate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], PopupComponent.prototype, \"anchor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], PopupComponent.prototype, \"anchorAlign\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], PopupComponent.prototype, \"collision\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], PopupComponent.prototype, \"popupAlign\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], PopupComponent.prototype, \"copyAnchorStyles\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], PopupComponent.prototype, \"popupClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], PopupComponent.prototype, \"positionMode\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], PopupComponent.prototype, \"offset\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], PopupComponent.prototype, \"margin\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], PopupComponent.prototype, \"anchorViewportLeave\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], PopupComponent.prototype, \"close\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], PopupComponent.prototype, \"open\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], PopupComponent.prototype, \"positionChange\", void 0);\n__decorate([\n ViewChild('container', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], PopupComponent.prototype, \"contentContainer\", void 0);\n__decorate([\n ViewChild(ResizeSensorComponent, { static: true }),\n __metadata(\"design:type\", ResizeSensorComponent)\n], PopupComponent.prototype, \"resizeSensor\", void 0);\nPopupComponent = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n AlignService,\n DOMService,\n PositionService,\n ResizeService,\n ScrollableService,\n AnimationService,\n Renderer2,\n NgZone])\n], PopupComponent);\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 */\nlet PopupService = class 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.ɵfac = function PopupService_Factory(t) { return new (t || PopupService)(ɵngcc0.ɵɵinject(ɵngcc0.ApplicationRef), ɵngcc0.ɵɵinject(ɵngcc0.ComponentFactoryResolver), ɵngcc0.ɵɵinject(ɵngcc0.Injector), ɵngcc0.ɵɵinject(POPUP_CONTAINER, 8)); };\nPopupService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: PopupService, factory: function (t) { return PopupService.ɵfac(t); } });\nPopupService = __decorate([ __param(3, Inject(POPUP_CONTAINER)), __param(3, Optional()),\n __metadata(\"design:paramtypes\", [ApplicationRef,\n ComponentFactoryResolver,\n Injector,\n ElementRef])\n], PopupService);\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 */\nlet PopupModule = class PopupModule {\n};\nPopupModule.ɵfac = function PopupModule_Factory(t) { return new (t || PopupModule)(); };\nPopupModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: PopupModule });\nPopupModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ providers: [PopupService], imports: [[CommonModule, ResizeSensorModule]] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DOMService, [{\n type: Injectable\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AlignService, [{\n type: Injectable\n }], function () { return [{ type: DOMService }, { type: Number, decorators: [{\n type: Inject,\n args: [SCALE]\n }, {\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PositionService, [{\n type: Injectable\n }], function () { return [{ type: DOMService }, { type: Number, decorators: [{\n type: Inject,\n args: [SCALE]\n }, {\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ResizeService, [{\n type: Injectable\n }], function () { return [{ type: DOMService }, { type: ɵngcc0.NgZone }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ScrollableService, [{\n type: Injectable\n }], function () { return [{ type: DOMService }, { type: ɵngcc0.NgZone }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AnimationService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc1.AnimationBuilder }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PopupComponent, [{\n type: Component,\n 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 }], function () { return [{ type: ɵngcc0.ElementRef }, { type: AlignService }, { type: DOMService }, { type: PositionService }, { type: ResizeService }, { type: ScrollableService }, { type: AnimationService }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.NgZone }]; }, { animate: [{\n type: Input\n }], anchorAlign: [{\n type: Input\n }], collision: [{\n type: Input\n }], popupAlign: [{\n type: Input\n }], copyAnchorStyles: [{\n type: Input\n }], positionMode: [{\n type: Input\n }], offset: [{\n type: Input\n }], anchorViewportLeave: [{\n type: Output\n }], close: [{\n type: Output\n }], open: [{\n type: Output\n }], positionChange: [{\n type: Output\n }], anchor: [{\n type: Input\n }], popupClass: [{\n type: Input\n }], margin: [{\n type: Input\n }], contentContainer: [{\n type: ViewChild,\n args: ['container', { static: true }]\n }], resizeSensor: [{\n type: ViewChild,\n args: [ResizeSensorComponent, { static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PopupService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc0.ApplicationRef }, { type: ɵngcc0.ComponentFactoryResolver }, { type: ɵngcc0.Injector }, { type: ɵngcc0.ElementRef, decorators: [{\n type: Inject,\n args: [POPUP_CONTAINER]\n }, {\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PopupModule, [{\n type: NgModule,\n args: [{\n declarations: [POPUP_DIRECTIVES],\n entryComponents: [POPUP_DIRECTIVES],\n exports: [POPUP_DIRECTIVES],\n imports: [CommonModule, ResizeSensorModule],\n providers: [PopupService]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(PopupModule, { declarations: function () { return [PopupComponent]; }, imports: function () { return [CommonModule, ResizeSensorModule]; }, exports: function () { return [PopupComponent]; } }); })();\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","/**-----------------------------------------------------------------------------------------\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 } from 'tslib';\nimport { isDevMode, HostBinding, Input, EventEmitter, Output, ViewChild, ElementRef, Component, NgZone, Renderer2, NgModule } from '@angular/core';\nimport { validatePackage } from '@progress/kendo-licensing';\nimport { LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';\nimport { hasObservers } from '@progress/kendo-angular-common';\nimport { CommonModule } from '@angular/common';\n\n/**\n * @hidden\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@progress/kendo-angular-l10n';\nimport * as ɵngcc2 from '@angular/common';\n\nconst _c0 = [\"progressStatus\"];\nconst _c1 = [\"progressStatusWrap\"];\nfunction ProgressBarComponent_span_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 6);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r0.formattedLabelValue);\n} }\nfunction ProgressBarComponent_span_6_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 6);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r3.formattedLabelValue);\n} }\nfunction ChunkProgressBarComponent_li_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"li\", 2);\n} if (rf & 2) {\n const chunk_r1 = ctx.$implicit;\n const i_r2 = ctx.index;\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵstyleProp(\"width\", ctx_r0.orientationStyles.width)(\"height\", ctx_r0.orientationStyles.height);\n ɵngcc0.ɵɵclassProp(\"k-first\", i_r2 === 0)(\"k-last\", i_r2 === ctx_r0.chunkCount - 1)(\"k-state-selected\", chunk_r1);\n ɵngcc0.ɵɵproperty(\"ngClass\", chunk_r1 ? ctx_r0.progressCssClass : ctx_r0.emptyCssClass)(\"ngStyle\", chunk_r1 ? ctx_r0.progressCssStyle : ctx_r0.emptyCssStyle);\n} }\nconst packageMetadata = {\n name: '@progress/kendo-angular-progressbar',\n productName: 'Kendo UI for Angular',\n productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],\n publishDate: 1646219371,\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\n/**\n * @hidden\n */\nconst MIN_MAX_ERROR_MESSAGE = `The max value should be greater than the min.`;\n/**\n * @hidden\n */\nconst LABEL_DECIMALS = 3;\n/**\n * @hidden\n */\nconst MIN_RATIO = 0.0001;\n\n/**\n * @hidden\n */\nconst reverseChunks = (orientation, reverse) => (orientation === 'vertical' && !reverse || orientation === 'horizontal' && reverse);\n/**\n * @hidden\n */\nconst formatValue = (value, min, max, label) => {\n const defaultFormattedValue = truncateNumber(value);\n if (typeof label !== 'boolean') {\n if (typeof label.format === 'string') {\n switch (label.format) {\n case 'value':\n return defaultFormattedValue;\n case 'percent':\n return `${Math.floor(calculatePercentage(value, min, max))}%`;\n default:\n return defaultFormattedValue;\n }\n }\n else if (typeof label.format === 'function') {\n return label.format(value);\n }\n else {\n return defaultFormattedValue;\n }\n }\n return defaultFormattedValue;\n};\n/**\n * @hidden\n */\nconst validateRange = (min, max) => {\n if (isDevMode && min > max) {\n throw new Error(MIN_MAX_ERROR_MESSAGE);\n }\n};\n/**\n * @hidden\n */\nconst adjustValueToRange = (min, max, value) => Math.max(Math.min(value, max), min);\n/**\n * @hidden\n */\nconst calculatePercentage = (value, min, max) => {\n const onePercent = Math.abs((max - min) / 100);\n return Math.abs((value - min) / onePercent);\n};\n/**\n * @hidden\n */\nconst truncateNumber = (value) => {\n const numberParts = value.toString().split('.');\n return numberParts.length === 1 ? `${numberParts[0]}` : `${numberParts[0]}.${numberParts[1].substr(0, LABEL_DECIMALS)}`;\n};\n/**\n * @hidden\n */\nconst calculateRatio = (min, max, value) => Math.max((value - min) / (max - min), MIN_RATIO);\n/**\n * @hidden\n */\nconst extractValueFromChanges = (changes, type, value) => changes[type] && changes[type].currentValue !== undefined ? changes[type].currentValue : value;\n/**\n * @hidden\n */\nconst runAnimation = (changes, animation, previousValue, displayValue) => animation && typeof requestAnimationFrame !== 'undefined' && changes.value && previousValue !== displayValue;\n/**\n * @hidden\n */\nconst stopCurrentAnimation = (changes) => {\n const isAnimationChanged = Boolean(changes.animation);\n const hasAnimation = isAnimationChanged && changes.animation.currentValue;\n return isAnimationChanged && !hasAnimation;\n};\n\n/**\n * @hidden\n */\nclass ProgressBarBase {\n /**\n * @hidden\n */\n constructor(localization) {\n this.localization = localization;\n this.widgetClasses = true;\n this.roleAttribute = 'progressbar';\n /**\n * The maximum value of the ProgressBar.\n * Defaults to `100`.\n */\n this.max = 100;\n /**\n * The minimum value of the ProgressBar.\n * Defaults to `0`.\n */\n this.min = 0;\n /**\n * The value of the ProgressBar.\n * Has to be between `min` and `max`.\n * By default, the value is equal to the `min` value.\n */\n /**\n * The value of the ProgressBar.\n * Has to be between `min` and `max`.\n * Defaults to `0`.\n */\n this.value = 0;\n /**\n * Defines the orientation of the ProgressBar\n * ([see example]({% slug progressbar_orientation %})).\n * Defaults to `horizontal`.\n */\n this.orientation = 'horizontal';\n /**\n * If set to `true`, the ProgressBar will be disabled\n * ([see example]({% slug progressbar_disabled %})).\n * It will still allow you to change its value.\n * Defaults to `false`.\n */\n this.disabled = false;\n /**\n * If set to `true`, the ProgressBar will be reversed\n * ([see example]({% slug progressbar_direction %})).\n * Defaults to `false`.\n */\n this.reverse = false;\n /**\n * Sets the `indeterminate` state of the ProgressBar.\n * Defaults to `false`.\n */\n this.indeterminate = false;\n this.displayValue = 0;\n this.previousValue = 0;\n validatePackage(packageMetadata);\n this.localizationChangeSubscription = localization.changes.subscribe(({ rtl }) => {\n this.direction = rtl ? 'rtl' : 'ltr';\n });\n }\n get isHorizontal() {\n return this.orientation === 'horizontal';\n }\n get isVertical() {\n return this.orientation === 'vertical';\n }\n get disabledClass() {\n return this.disabled;\n }\n get reverseClass() {\n return this.reverse;\n }\n get indeterminateClass() {\n return this.indeterminate;\n }\n get dirAttribute() {\n return this.direction;\n }\n get ariaMinAttribute() {\n return String(this.min);\n }\n get ariaMaxAttribute() {\n return String(this.max);\n }\n get ariaValueAttribute() {\n return this.indeterminate ? undefined : String(this.displayValue);\n }\n /**\n * @hidden\n */\n get isCompleted() {\n return this.value === this.max;\n }\n /**\n * @hidden\n */\n get statusWidth() {\n return this.orientation === 'horizontal' ? this._progressRatio * 100 : 100;\n }\n /**\n * @hidden\n */\n get statusHeight() {\n return this.orientation === 'vertical' ? this._progressRatio * 100 : 100;\n }\n /**\n * @hidden\n */\n get statusWrapperWidth() {\n return this.orientation === 'horizontal' ? 100 / this._progressRatio : 100;\n }\n /**\n * @hidden\n */\n get statusWrapperHeight() {\n return this.orientation === 'vertical' ? 100 / this._progressRatio : 100;\n }\n get _progressRatio() {\n return calculateRatio(this.min, this.max, this.displayValue);\n }\n ngOnChanges(changes) {\n const min = extractValueFromChanges(changes, 'min', this.min);\n const max = extractValueFromChanges(changes, 'max', this.max);\n const value = extractValueFromChanges(changes, 'value', this.value);\n if (changes.min || changes.max || changes.value) {\n if (changes.min || changes.max) {\n validateRange(min, max);\n }\n if (changes.value) {\n if (value == null || Number.isNaN(value)) {\n this.value = min;\n }\n const previousValue = this.displayValue;\n this.displayValue = adjustValueToRange(this.min, this.max, value);\n this.previousValue = previousValue;\n }\n this.min = min;\n this.max = max;\n this.displayValue = adjustValueToRange(this.min, this.max, value);\n }\n }\n ngOnDestroy() {\n if (this.localizationChangeSubscription) {\n this.localizationChangeSubscription.unsubscribe();\n }\n }\n}\nProgressBarBase.ɵfac = function ProgressBarBase_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nProgressBarBase.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ProgressBarBase, hostVars: 19, hostBindings: function ProgressBarBase_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"role\", ctx.roleAttribute)(\"dir\", ctx.dirAttribute)(\"aria-valuemin\", ctx.ariaMinAttribute)(\"aria-valuemax\", ctx.ariaMaxAttribute)(\"aria-valuenow\", ctx.ariaValueAttribute);\n ɵngcc0.ɵɵclassProp(\"k-widget\", ctx.widgetClasses)(\"k-progressbar\", ctx.widgetClasses)(\"k-progressbar-horizontal\", ctx.isHorizontal)(\"k-progressbar-vertical\", ctx.isVertical)(\"k-state-disabled\", ctx.disabledClass)(\"k-progressbar-reverse\", ctx.reverseClass)(\"k-progressbar-indeterminate\", ctx.indeterminateClass);\n } }, inputs: { max: \"max\", min: \"min\", value: \"value\", orientation: \"orientation\", disabled: \"disabled\", reverse: \"reverse\", indeterminate: \"indeterminate\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n HostBinding('class.k-widget'),\n HostBinding('class.k-progressbar'),\n __metadata(\"design:type\", Boolean)\n], ProgressBarBase.prototype, \"widgetClasses\", void 0);\n__decorate([\n HostBinding('class.k-progressbar-horizontal'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ProgressBarBase.prototype, \"isHorizontal\", null);\n__decorate([\n HostBinding('class.k-progressbar-vertical'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ProgressBarBase.prototype, \"isVertical\", null);\n__decorate([\n HostBinding('class.k-state-disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ProgressBarBase.prototype, \"disabledClass\", null);\n__decorate([\n HostBinding('class.k-progressbar-reverse'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ProgressBarBase.prototype, \"reverseClass\", null);\n__decorate([\n HostBinding('class.k-progressbar-indeterminate'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ProgressBarBase.prototype, \"indeterminateClass\", null);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], ProgressBarBase.prototype, \"dirAttribute\", null);\n__decorate([\n HostBinding('attr.role'),\n __metadata(\"design:type\", String)\n], ProgressBarBase.prototype, \"roleAttribute\", void 0);\n__decorate([\n HostBinding('attr.aria-valuemin'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], ProgressBarBase.prototype, \"ariaMinAttribute\", null);\n__decorate([\n HostBinding('attr.aria-valuemax'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], ProgressBarBase.prototype, \"ariaMaxAttribute\", null);\n__decorate([\n HostBinding('attr.aria-valuenow'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], ProgressBarBase.prototype, \"ariaValueAttribute\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ProgressBarBase.prototype, \"max\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ProgressBarBase.prototype, \"min\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ProgressBarBase.prototype, \"value\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ProgressBarBase.prototype, \"orientation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ProgressBarBase.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ProgressBarBase.prototype, \"reverse\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ProgressBarBase.prototype, \"indeterminate\", void 0);\n\n/**\n * Represents the [Kendo UI ProgressBar component for Angular]({% slug overview_progressbar %}).\n *\n * @example\n * ```ts-preview\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n * class AppComponent {\n * public value = 50;\n * }\n * ```\n */\nlet ProgressBarComponent = class ProgressBarComponent extends ProgressBarBase {\n /**\n * @hidden\n */\n constructor(localization, zone, renderer) {\n super(localization);\n this.localization = localization;\n this.zone = zone;\n this.renderer = renderer;\n /**\n * Determines whether the status label will be visible.\n * Defaults to `true`—the label will be visible and displayed with the default\n * `LabelSettings` having its position set to `end` and its format set to `value`.\n */\n this.label = true;\n /**\n * The animation configuration of the ProgressBar.\n * Defaults to `false`.\n */\n this.animation = false;\n /**\n * Fires when the animation which indicates the latest value change is completed.\n */\n this.animationEnd = new EventEmitter();\n }\n /**\n * @hidden\n */\n get showLabel() {\n if (typeof this.label === 'boolean') {\n return this.label;\n }\n else {\n if (this.label && !this.label.hasOwnProperty('visible')) {\n this.label.visible = true;\n }\n return this.label.visible;\n }\n }\n /**\n * @hidden\n */\n get labelPosition() {\n if (typeof this.label === 'boolean') {\n return 'end';\n }\n else {\n if (this.label && !this.label.hasOwnProperty('position')) {\n this.label.position = 'end';\n }\n return this.label.position;\n }\n }\n /**\n * @hidden\n */\n get isPositionStart() {\n return this.labelPosition === 'start';\n }\n /**\n * @hidden\n */\n get isPositionCenter() {\n return this.labelPosition === 'center';\n }\n /**\n * @hidden\n */\n get isPositionEnd() {\n return this.labelPosition === 'end';\n }\n /**\n * @hidden\n */\n get formattedLabelValue() {\n return formatValue(this.displayValue, this.min, this.max, this.label);\n }\n /**\n * @hidden\n */\n ngOnChanges(changes) {\n super.ngOnChanges(changes);\n if (this.isAnimationInProgress && stopCurrentAnimation(changes)) {\n this.cancelCurrentAnimation = true;\n }\n if (runAnimation(changes, this.animation, this.previousValue, this.displayValue) && !changes.value.firstChange) {\n this.startAnimation(this.previousValue);\n }\n }\n /**\n * @hidden\n */\n ngOnDestroy() {\n if (this.animationFrame) {\n cancelAnimationFrame(this.animationFrame);\n }\n }\n /**\n * @hidden\n */\n startAnimation(previousValue) {\n this.isAnimationInProgress = true;\n const element = this.progressStatusElement.nativeElement;\n const wrapperElement = this.progressStatusWrapperElement.nativeElement;\n const animationOptions = this.getAnimationOptions(previousValue);\n this.zone.runOutsideAngular(() => {\n if (this.animationFrame) {\n cancelAnimationFrame(this.animationFrame);\n }\n const animate = () => {\n const elapsed = new Date().getTime() - animationOptions.startTime;\n const position = Math.min(elapsed / animationOptions.duration, 1);\n const size = animationOptions.startSize + animationOptions.deltaSize * position;\n const wrapperSize = (100 / size) * 100;\n this.renderValueChange(element, wrapperElement, animationOptions.property, size, wrapperSize);\n if (position < 1) {\n if (this.cancelCurrentAnimation) {\n this.resetProgress(element, wrapperElement, animationOptions.property);\n return;\n }\n this.animationFrame = requestAnimationFrame(animate);\n }\n else {\n this.stopAnimation(previousValue);\n }\n };\n animate();\n });\n }\n /**\n * @hidden\n */\n get animationDuration() {\n if (typeof this.animation === 'boolean') {\n return 400;\n }\n else {\n if (this.animation && !this.animation.hasOwnProperty('duration')) {\n this.animation.duration = 400;\n }\n return this.animation.duration;\n }\n }\n stopAnimation(value) {\n if (hasObservers(this.animationEnd)) {\n this.zone.run(() => {\n this.animationEnd.emit({\n from: value,\n to: this.displayValue\n });\n });\n }\n this.zone.run(() => {\n this.isAnimationInProgress = false;\n });\n }\n getAnimationOptions(value) {\n const isHorizontal = this.orientation === 'horizontal';\n const previousRatio = calculateRatio(this.min, this.max, value);\n const previousStatusWidth = isHorizontal ? previousRatio * 100 : 100;\n const previousStatusHeight = !isHorizontal ? previousRatio * 100 : 100;\n const property = isHorizontal ? 'width' : 'height';\n const startTime = new Date().getTime();\n const startSize = isHorizontal ? previousStatusWidth : previousStatusHeight;\n const deltaSize = isHorizontal ? this.statusWidth - previousStatusWidth : this.statusHeight - previousStatusHeight;\n const duration = this.animationDuration * Math.abs((deltaSize / 100));\n return {\n property,\n startTime,\n startSize,\n deltaSize,\n duration\n };\n }\n renderValueChange(element, wrapperElement, property, size, wrapperSize) {\n this.renderer.setStyle(element, property, size + '%');\n this.renderer.setStyle(wrapperElement, property, wrapperSize + '%');\n }\n resetProgress(element, wrapperElement, property) {\n const size = calculateRatio(this.min, this.max, this.value);\n const newSize = size * 100;\n const newWrapperSize = 100 / size;\n this.renderValueChange(element, wrapperElement, property, newSize, newWrapperSize);\n this.zone.run(() => {\n this.cancelCurrentAnimation = false;\n this.isAnimationInProgress = false;\n });\n }\n};\nProgressBarComponent.ɵfac = function ProgressBarComponent_Factory(t) { return new (t || ProgressBarComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nProgressBarComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ProgressBarComponent, selectors: [[\"kendo-progressbar\"]], viewQuery: function ProgressBarComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c0, 5);\n ɵngcc0.ɵɵviewQuery(_c1, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.progressStatusElement = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.progressStatusWrapperElement = _t.first);\n } }, inputs: { label: \"label\", animation: \"animation\", progressCssStyle: \"progressCssStyle\", progressCssClass: \"progressCssClass\", emptyCssStyle: \"emptyCssStyle\", emptyCssClass: \"emptyCssClass\" }, outputs: { animationEnd: \"animationEnd\" }, exportAs: [\"kendoProgressBar\"], features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.progressbar'\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature, ɵngcc0.ɵɵNgOnChangesFeature], decls: 7, vars: 28, consts: [[1, \"k-progress-status-wrap\", 3, \"ngStyle\", \"ngClass\"], [\"class\", \"k-progress-status\", 4, \"ngIf\"], [1, \"k-state-selected\", 3, \"ngStyle\", \"ngClass\"], [\"progressStatus\", \"\"], [1, \"k-progress-status-wrap\"], [\"progressStatusWrap\", \"\"], [1, \"k-progress-status\"]], template: function ProgressBarComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 0);\n ɵngcc0.ɵɵtemplate(1, ProgressBarComponent_span_1_Template, 2, 1, \"span\", 1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(2, \"div\", 2, 3)(4, \"span\", 4, 5);\n ɵngcc0.ɵɵtemplate(6, ProgressBarComponent_span_6_Template, 2, 1, \"span\", 1);\n ɵngcc0.ɵɵelementEnd()();\n } if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-progress-start\", ctx.isPositionStart)(\"k-progress-center\", ctx.isPositionCenter)(\"k-progress-end\", ctx.isPositionEnd);\n ɵngcc0.ɵɵproperty(\"ngStyle\", ctx.emptyCssStyle)(\"ngClass\", ctx.emptyCssClass);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showLabel);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵstyleProp(\"width\", ctx.statusWidth, \"%\")(\"height\", ctx.statusHeight, \"%\");\n ɵngcc0.ɵɵclassProp(\"k-complete\", ctx.isCompleted);\n ɵngcc0.ɵɵproperty(\"ngStyle\", ctx.progressCssStyle)(\"ngClass\", ctx.progressCssClass);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵstyleProp(\"width\", ctx.statusWrapperWidth, \"%\")(\"height\", ctx.statusWrapperHeight, \"%\");\n ɵngcc0.ɵɵclassProp(\"k-progress-start\", ctx.isPositionStart)(\"k-progress-center\", ctx.isPositionCenter)(\"k-progress-end\", ctx.isPositionEnd);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showLabel);\n } }, directives: [ɵngcc2.NgStyle, ɵngcc2.NgClass, ɵngcc2.NgIf], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ProgressBarComponent.prototype, \"label\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ProgressBarComponent.prototype, \"progressCssStyle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ProgressBarComponent.prototype, \"progressCssClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ProgressBarComponent.prototype, \"emptyCssStyle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ProgressBarComponent.prototype, \"emptyCssClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ProgressBarComponent.prototype, \"animation\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ProgressBarComponent.prototype, \"animationEnd\", void 0);\n__decorate([\n ViewChild('progressStatus', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], ProgressBarComponent.prototype, \"progressStatusElement\", void 0);\n__decorate([\n ViewChild('progressStatusWrap', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], ProgressBarComponent.prototype, \"progressStatusWrapperElement\", void 0);\nProgressBarComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService,\n NgZone,\n Renderer2])\n], ProgressBarComponent);\n\n/**\n * Represents the [Kendo UI ChunkProgressBar component for Angular]({% slug overview_chunkprogressbar %}).\n *\n * @example\n * ```ts-preview\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n * class AppComponent {\n * public value = 40;\n * }\n * ```\n */\nlet ChunkProgressBarComponent = class ChunkProgressBarComponent extends ProgressBarBase {\n /**\n * @hidden\n */\n constructor(localization) {\n super(localization);\n this.localization = localization;\n /**\n * Sets the number of chunks into which the ChunkProgressBar will be split.\n * Defaults to `5`.\n */\n this.chunkCount = 5;\n this._orientationStyles = {\n width: `${this.chunkSizePercentage}%`\n };\n }\n /**\n * @hidden\n */\n get chunks() {\n const count = this.chunkCount;\n const chunks = Array(count).fill(false);\n const completedChunks = Math.floor(this._progressRatio * count);\n for (let i = 0; i < completedChunks; i++) {\n chunks[i] = true;\n }\n if (reverseChunks(this.orientation, this.reverse)) {\n chunks.reverse();\n }\n return chunks;\n }\n /**\n * @hidden\n */\n get chunkSizePercentage() {\n return 100 / this.chunkCount;\n }\n /**\n * @hidden\n */\n get orientationStyles() {\n if (this.orientation === 'horizontal') {\n this._orientationStyles.width = `${this.chunkSizePercentage}%`;\n this._orientationStyles.height = undefined;\n }\n else {\n this._orientationStyles.height = `${this.chunkSizePercentage}%`;\n this._orientationStyles.width = undefined;\n }\n return this._orientationStyles;\n }\n};\nChunkProgressBarComponent.ɵfac = function ChunkProgressBarComponent_Factory(t) { return new (t || ChunkProgressBarComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nChunkProgressBarComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ChunkProgressBarComponent, selectors: [[\"kendo-chunkprogressbar\"]], inputs: { chunkCount: \"chunkCount\", progressCssStyle: \"progressCssStyle\", progressCssClass: \"progressCssClass\", emptyCssStyle: \"emptyCssStyle\", emptyCssClass: \"emptyCssClass\" }, exportAs: [\"kendoChunkProgressBar\"], features: [ɵngcc0.ɵɵProvidersFeature([\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.chunkprogressbar'\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 2, vars: 1, consts: [[1, \"k-reset\"], [\"class\", \"k-item\", 3, \"k-first\", \"k-last\", \"k-state-selected\", \"ngClass\", \"ngStyle\", \"width\", \"height\", 4, \"ngFor\", \"ngForOf\"], [1, \"k-item\", 3, \"ngClass\", \"ngStyle\"]], template: function ChunkProgressBarComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"ul\", 0);\n ɵngcc0.ɵɵtemplate(1, ChunkProgressBarComponent_li_1_Template, 1, 12, \"li\", 1);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.chunks);\n } }, directives: [ɵngcc2.NgForOf, ɵngcc2.NgClass, ɵngcc2.NgStyle], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ChunkProgressBarComponent.prototype, \"chunkCount\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ChunkProgressBarComponent.prototype, \"progressCssStyle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ChunkProgressBarComponent.prototype, \"progressCssClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ChunkProgressBarComponent.prototype, \"emptyCssStyle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ChunkProgressBarComponent.prototype, \"emptyCssClass\", void 0);\nChunkProgressBarComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], ChunkProgressBarComponent);\n\nconst COMPONENT_DIRECTIVES = [ProgressBarComponent, ChunkProgressBarComponent];\nconst MODULES = [CommonModule];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmodules'] }})\n * definition for the ProgressBar components.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the ProgressBar module\n * import { ProgressBarModule } from '@progress/kendo-angular-progressbar';\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, ProgressBarModule], // import ProgressBar module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nlet ProgressBarModule = class ProgressBarModule {\n};\nProgressBarModule.ɵfac = function ProgressBarModule_Factory(t) { return new (t || ProgressBarModule)(); };\nProgressBarModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: ProgressBarModule });\nProgressBarModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [MODULES] });\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ProgressBarComponent, [{\n type: Component,\n args: [{\n exportAs: 'kendoProgressBar',\n selector: 'kendo-progressbar',\n template: `\n \n {{formattedLabelValue}}\n \n \n \n {{formattedLabelValue}}\n \n \n `,\n providers: [\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.progressbar'\n }\n ]\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.Renderer2 }]; }, { label: [{\n type: Input\n }], animation: [{\n type: Input\n }], animationEnd: [{\n type: Output\n }], progressCssStyle: [{\n type: Input\n }], progressCssClass: [{\n type: Input\n }], emptyCssStyle: [{\n type: Input\n }], emptyCssClass: [{\n type: Input\n }], progressStatusElement: [{\n type: ViewChild,\n args: ['progressStatus', { static: false }]\n }], progressStatusWrapperElement: [{\n type: ViewChild,\n args: ['progressStatusWrap', { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ChunkProgressBarComponent, [{\n type: Component,\n args: [{\n exportAs: 'kendoChunkProgressBar',\n selector: 'kendo-chunkprogressbar',\n template: `\n
      \n
    • \n
    • \n
    \n `,\n providers: [\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.chunkprogressbar'\n }\n ]\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, { chunkCount: [{\n type: Input\n }], progressCssStyle: [{\n type: Input\n }], progressCssClass: [{\n type: Input\n }], emptyCssStyle: [{\n type: Input\n }], emptyCssClass: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ProgressBarModule, [{\n type: NgModule,\n args: [{\n declarations: COMPONENT_DIRECTIVES,\n exports: COMPONENT_DIRECTIVES,\n imports: MODULES\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(ProgressBarModule, { declarations: [ProgressBarComponent, ChunkProgressBarComponent], imports: [CommonModule], exports: [ProgressBarComponent, ChunkProgressBarComponent] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ProgressBarBase, ProgressBarComponent, ChunkProgressBarComponent, ProgressBarModule };\n\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 } from 'tslib';\nimport { EventEmitter, Injectable, NgZone, Input, Component, Output, ContentChildren, QueryList, ViewChild, ElementRef, TemplateRef, ViewContainerRef, ViewChildren, HostBinding, HostListener, Renderer2, ChangeDetectorRef, forwardRef, Directive, NgModule } from '@angular/core';\nimport { PopupService, PopupModule } from '@progress/kendo-angular-popup';\nimport { Keys, isDocumentAvailable, ResizeSensorComponent, ResizeSensorModule } from '@progress/kendo-angular-common';\nimport { LocalizationService, L10N_PREFIX, ComponentMessages } from '@progress/kendo-angular-l10n';\nimport { validatePackage } from '@progress/kendo-licensing';\nimport { take, bufferTime, filter, takeUntil } from 'rxjs/operators';\nimport { Subject, Subscription, merge, fromEvent } from 'rxjs';\nimport { ButtonGroupComponent, DropDownButtonComponent, SplitButtonComponent, ButtonsModule } from '@progress/kendo-angular-buttons';\nimport { CommonModule } from '@angular/common';\n\n/**\n * @hidden\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@progress/kendo-angular-l10n';\nimport * as ɵngcc2 from '@progress/kendo-angular-popup';\nimport * as ɵngcc3 from '@angular/common';\nimport * as ɵngcc4 from '@progress/kendo-angular-common';\nimport * as ɵngcc5 from '@progress/kendo-angular-buttons';\n\nconst _c0 = [\"overflowButton\"];\nconst _c1 = [\"popupTemplate\"];\nconst _c2 = [\"resizeSensor\"];\nconst _c3 = [\"container\"];\nconst _c4 = [\"toolbarRenderer\"];\nconst _c5 = [\"overflowRenderer\"];\nfunction ToolBarComponent_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n const _r10 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵelementStart(1, \"kendo-toolbar-renderer\", 6, 7);\n ɵngcc0.ɵɵlistener(\"rendererClick\", function ToolBarComponent_ng_container_1_Template_kendo_toolbar_renderer_rendererClick_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r10); const ctx_r9 = ɵngcc0.ɵɵnextContext(); return ctx_r9.onRendererClick($event); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const tool_r6 = ctx.$implicit;\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"location\", \"toolbar\")(\"resizable\", ctx_r0.overflow)(\"tool\", tool_r6);\n} }\nfunction ToolBarComponent_button_2_Template(rf, ctx) { if (rf & 1) {\n const _r13 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 8, 9);\n ɵngcc0.ɵɵlistener(\"click\", function ToolBarComponent_button_2_Template_button_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r13); const ctx_r12 = ɵngcc0.ɵɵnextContext(); return ctx_r12.showPopup(); });\n ɵngcc0.ɵɵelement(2, \"span\", 10);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵstyleProp(\"visibility\", \"hidden\");\n ɵngcc0.ɵɵproperty(\"title\", ctx_r1.moreToolsTitle);\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx_r1.moreToolsTitle);\n} }\nfunction ToolBarComponent_ng_template_3_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n const _r19 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵelementStart(1, \"li\", 12)(2, \"kendo-toolbar-renderer\", 6, 13);\n ɵngcc0.ɵɵlistener(\"rendererClick\", function ToolBarComponent_ng_template_3_ng_container_1_Template_kendo_toolbar_renderer_rendererClick_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r19); const ctx_r18 = ɵngcc0.ɵɵnextContext(2); return ctx_r18.onRendererClick($event); });\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const tool_r15 = ctx.$implicit;\n const ctx_r14 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"location\", \"overflow\")(\"resizable\", ctx_r14.overflow)(\"tool\", tool_r15);\n} }\nfunction ToolBarComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"ul\", 11);\n ɵngcc0.ɵɵtemplate(1, ToolBarComponent_ng_template_3_ng_container_1_Template, 4, 3, \"ng-container\", 1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r3.allTools);\n} }\nfunction ToolBarComponent_kendo_resize_sensor_7_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-resize-sensor\", 14, 15);\n} if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"rateLimit\", 1000);\n} }\nconst _c8 = [\"toolbarTemplate\"];\nconst _c9 = [\"toolbarButton\"];\nfunction ToolBarButtonComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n const _r6 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 2, 3);\n ɵngcc0.ɵɵlistener(\"click\", function ToolBarButtonComponent_ng_template_0_Template_button_click_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r5 = ɵngcc0.ɵɵnextContext(); return ctx_r5.click.emit($event); })(\"pointerdown\", function ToolBarButtonComponent_ng_template_0_Template_button_pointerdown_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r7 = ɵngcc0.ɵɵnextContext(); return ctx_r7.pointerdown.emit($event); })(\"selectedChange\", function ToolBarButtonComponent_ng_template_0_Template_button_selectedChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r8 = ɵngcc0.ɵɵnextContext(); return ctx_r8.selectedChange.emit($event); })(\"blur\", function ToolBarButtonComponent_ng_template_0_Template_button_blur_0_listener() { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r9 = ɵngcc0.ɵɵnextContext(); return ctx_r9.onBlur(); });\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"tabindex\", ctx_r1.tabIndex)(\"ngStyle\", ctx_r1.style)(\"ngClass\", ctx_r1.className)(\"disabled\", ctx_r1.disabled)(\"toggleable\", ctx_r1.toggleable)(\"fillMode\", ctx_r1.fillMode)(\"themeColor\", ctx_r1.fillMode ? ctx_r1.themeColor : null)(\"selected\", ctx_r1.selected)(\"icon\", ctx_r1.toolbarOptions.icon)(\"iconClass\", ctx_r1.toolbarOptions.iconClass)(\"imageUrl\", ctx_r1.toolbarOptions.imageUrl);\n ɵngcc0.ɵɵattribute(\"title\", ctx_r1.title);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r1.toolbarOptions.text, \" \");\n} }\nfunction ToolBarButtonComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n const _r12 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 4, 5);\n ɵngcc0.ɵɵlistener(\"click\", function ToolBarButtonComponent_ng_template_2_Template_button_click_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r12); const ctx_r11 = ɵngcc0.ɵɵnextContext(); return ctx_r11.click.emit($event); })(\"selectedChange\", function ToolBarButtonComponent_ng_template_2_Template_button_selectedChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r12); const ctx_r13 = ɵngcc0.ɵɵnextContext(); return ctx_r13.selectedChange.emit($event); });\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngStyle\", ctx_r3.style)(\"ngClass\", ctx_r3.className)(\"disabled\", ctx_r3.disabled)(\"toggleable\", ctx_r3.toggleable)(\"fillMode\", ctx_r3.fillMode)(\"themeColor\", ctx_r3.fillMode ? ctx_r3.themeColor : null)(\"selected\", ctx_r3.selected)(\"icon\", ctx_r3.overflowOptions.icon)(\"iconClass\", ctx_r3.overflowOptions.iconClass)(\"imageUrl\", ctx_r3.overflowOptions.imageUrl);\n ɵngcc0.ɵɵattribute(\"title\", ctx_r3.title);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r3.overflowOptions.text, \" \");\n} }\nconst _c10 = [\"toolbarButtonGroup\"];\nconst _c11 = [\"overflowButtonGroup\"];\nfunction ToolBarButtonGroupComponent_ng_template_0_span_2_Template(rf, ctx) { if (rf & 1) {\n const _r8 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"span\", 5);\n ɵngcc0.ɵɵlistener(\"click\", function ToolBarButtonGroupComponent_ng_template_0_span_2_Template_span_click_0_listener($event) { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r8); const button_r6 = restoredCtx.$implicit; const ctx_r7 = ɵngcc0.ɵɵnextContext(2); button_r6.click.emit($event); return ctx_r7.onButtonClick($event); })(\"pointerdown\", function ToolBarButtonGroupComponent_ng_template_0_span_2_Template_span_pointerdown_0_listener($event) { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r8); const button_r6 = restoredCtx.$implicit; return button_r6.pointerdown.emit($event); })(\"selectedChange\", function ToolBarButtonGroupComponent_ng_template_0_span_2_Template_span_selectedChange_0_listener($event) { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r8); const button_r6 = restoredCtx.$implicit; const ctx_r10 = ɵngcc0.ɵɵnextContext(2); return ctx_r10.selectedChangeHandler($event, button_r6); });\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const button_r6 = ctx.$implicit;\n ɵngcc0.ɵɵproperty(\"ngStyle\", button_r6.style)(\"ngClass\", button_r6.className)(\"disabled\", button_r6.disabled)(\"togglable\", button_r6.togglable)(\"selected\", button_r6.selected)(\"fillMode\", button_r6.fillMode)(\"themeColor\", button_r6.fillMode ? button_r6.themeColor : null)(\"icon\", button_r6.toolbarOptions.icon)(\"iconClass\", button_r6.toolbarOptions.iconClass)(\"imageUrl\", button_r6.toolbarOptions.imageUrl);\n ɵngcc0.ɵɵattribute(\"title\", button_r6.title);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", button_r6.toolbarOptions.text, \" \");\n} }\nfunction ToolBarButtonGroupComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n const _r12 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-buttongroup\", 2, 3);\n ɵngcc0.ɵɵlistener(\"navigate\", function ToolBarButtonGroupComponent_ng_template_0_Template_kendo_buttongroup_navigate_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r12); const ctx_r11 = ɵngcc0.ɵɵnextContext(); return ctx_r11.onNavigate($event); })(\"focus\", function ToolBarButtonGroupComponent_ng_template_0_Template_kendo_buttongroup_focus_0_listener() { ɵngcc0.ɵɵrestoreView(_r12); const ctx_r13 = ɵngcc0.ɵɵnextContext(); return ctx_r13.onFocus(); });\n ɵngcc0.ɵɵtemplate(2, ToolBarButtonGroupComponent_ng_template_0_span_2_Template, 2, 12, \"span\", 4);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"tabIndex\", -1)(\"selection\", ctx_r1.selection)(\"disabled\", ctx_r1.disabled)(\"width\", ctx_r1.width);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r1.buttonComponents);\n} }\nfunction ToolBarButtonGroupComponent_ng_template_2_span_2_Template(rf, ctx) { if (rf & 1) {\n const _r18 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"span\", 9);\n ɵngcc0.ɵɵlistener(\"click\", function ToolBarButtonGroupComponent_ng_template_2_span_2_Template_span_click_0_listener($event) { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r18); const button_r16 = restoredCtx.$implicit; const ctx_r17 = ɵngcc0.ɵɵnextContext(2); button_r16.click.emit($event); return ctx_r17.onButtonClick($event); })(\"selectedChange\", function ToolBarButtonGroupComponent_ng_template_2_span_2_Template_span_selectedChange_0_listener($event) { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r18); const button_r16 = restoredCtx.$implicit; const ctx_r19 = ɵngcc0.ɵɵnextContext(2); return ctx_r19.selectedChangeHandler($event, button_r16); });\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const button_r16 = ctx.$implicit;\n ɵngcc0.ɵɵproperty(\"ngStyle\", button_r16.style)(\"ngClass\", button_r16.className)(\"disabled\", button_r16.disabled)(\"togglable\", button_r16.togglable)(\"selected\", button_r16.selected)(\"fillMode\", button_r16.fillMode)(\"themeColor\", button_r16.fillMode ? button_r16.themeColor : null)(\"icon\", button_r16.overflowOptions.icon)(\"iconClass\", button_r16.overflowOptions.iconClass)(\"imageUrl\", button_r16.overflowOptions.imageUrl);\n ɵngcc0.ɵɵattribute(\"title\", button_r16.title);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", button_r16.overflowOptions.text, \" \");\n} }\nfunction ToolBarButtonGroupComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-buttongroup\", 6, 7);\n ɵngcc0.ɵɵtemplate(2, ToolBarButtonGroupComponent_ng_template_2_span_2_Template, 2, 12, \"span\", 8);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"tabIndex\", -1)(\"selection\", ctx_r3.selection)(\"disabled\", ctx_r3.disabled)(\"width\", ctx_r3.width);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r3.buttonComponents);\n} }\nconst _c12 = [\"button\"];\nfunction ToolBarButtonListComponent_button_0_Template(rf, ctx) { if (rf & 1) {\n const _r5 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 1, 2);\n ɵngcc0.ɵɵlistener(\"click\", function ToolBarButtonListComponent_button_0_Template_button_click_0_listener() { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r5); const item_r1 = restoredCtx.$implicit; const i_r2 = restoredCtx.index; const ctx_r4 = ɵngcc0.ɵɵnextContext(); return ctx_r4.onClick(item_r1, i_r2); });\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const item_r1 = ctx.$implicit;\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"disabled\", ctx_r0.disabled || item_r1.disabled)(\"icon\", item_r1.icon)(\"iconClass\", item_r1.iconClass)(\"imageUrl\", item_r1.imageUrl)(\"fillMode\", ctx_r0.fillMode)(\"themeColor\", ctx_r0.fillMode ? ctx_r0.themeColor : null);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r0.getText(item_r1), \" \");\n} }\nconst _c13 = [\"dropdownButton\"];\nconst _c14 = [\"toolbarDropDownButton\"];\nconst _c15 = [\"overflowDropDownButtonButtonList\"];\nfunction ToolBarDropDownButtonComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n const _r6 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-dropdownbutton\", 2, 3);\n ɵngcc0.ɵɵlistener(\"open\", function ToolBarDropDownButtonComponent_ng_template_0_Template_kendo_dropdownbutton_open_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r5 = ɵngcc0.ɵɵnextContext(); return ctx_r5.open.emit($event); })(\"close\", function ToolBarDropDownButtonComponent_ng_template_0_Template_kendo_dropdownbutton_close_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r7 = ɵngcc0.ɵɵnextContext(); return ctx_r7.close.emit($event); })(\"itemClick\", function ToolBarDropDownButtonComponent_ng_template_0_Template_kendo_dropdownbutton_itemClick_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r8 = ɵngcc0.ɵɵnextContext(); return ctx_r8.itemClick.emit($event); });\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"icon\", ctx_r1.toolbarOptions.icon)(\"iconClass\", ctx_r1.toolbarOptions.iconClass)(\"imageUrl\", ctx_r1.toolbarOptions.imageUrl)(\"buttonClass\", ctx_r1.buttonClass)(\"disabled\", ctx_r1.disabled)(\"tabIndex\", -1)(\"data\", ctx_r1.data)(\"textField\", ctx_r1.textField)(\"popupSettings\", ctx_r1.popupSettings)(\"fillMode\", ctx_r1.fillMode)(\"themeColor\", ctx_r1.fillMode ? ctx_r1.themeColor : null);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r1.toolbarOptions.text, \" \");\n} }\nfunction ToolBarDropDownButtonComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n const _r11 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 4);\n ɵngcc0.ɵɵlistener(\"click\", function ToolBarDropDownButtonComponent_ng_template_2_Template_button_click_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r11); const ctx_r10 = ɵngcc0.ɵɵnextContext(); return ctx_r10.itemClick.emit($event); });\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(2, \"kendo-toolbar-buttonlist\", 5, 6);\n ɵngcc0.ɵɵlistener(\"itemClick\", function ToolBarDropDownButtonComponent_ng_template_2_Template_kendo_toolbar_buttonlist_itemClick_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r11); const ctx_r12 = ɵngcc0.ɵɵnextContext(); return ctx_r12.itemClick.emit($event); })(\"click\", function ToolBarDropDownButtonComponent_ng_template_2_Template_kendo_toolbar_buttonlist_click_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r11); const ctx_r13 = ɵngcc0.ɵɵnextContext(); return ctx_r13.onButtonListClick($event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"disabled\", true)(\"icon\", ctx_r3.overflowOptions.icon)(\"iconClass\", ctx_r3.overflowOptions.iconClass)(\"imageUrl\", ctx_r3.overflowOptions.imageUrl)(\"ngClass\", ctx_r3.buttonClass);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r3.overflowOptions.text, \" \");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"data\", ctx_r3.data)(\"disabled\", ctx_r3.disabled)(\"textField\", ctx_r3.textField);\n} }\nconst _c16 = [\"toolbarSplitButton\"];\nconst _c17 = [\"overflowSplitButton\"];\nconst _c18 = [\"overflowSplitButtonButtonList\"];\nfunction ToolBarSplitButtonComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n const _r6 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-splitbutton\", 2, 3);\n ɵngcc0.ɵɵlistener(\"buttonClick\", function ToolBarSplitButtonComponent_ng_template_0_Template_kendo_splitbutton_buttonClick_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r5 = ɵngcc0.ɵɵnextContext(); return ctx_r5.buttonClick.emit($event); })(\"open\", function ToolBarSplitButtonComponent_ng_template_0_Template_kendo_splitbutton_open_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r7 = ɵngcc0.ɵɵnextContext(); return ctx_r7.open.emit($event); })(\"close\", function ToolBarSplitButtonComponent_ng_template_0_Template_kendo_splitbutton_close_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r8 = ɵngcc0.ɵɵnextContext(); return ctx_r8.close.emit($event); })(\"itemClick\", function ToolBarSplitButtonComponent_ng_template_0_Template_kendo_splitbutton_itemClick_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r9 = ɵngcc0.ɵɵnextContext(); return ctx_r9.itemClick.emit($event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"data\", ctx_r1.data)(\"text\", ctx_r1.toolbarOptions.text)(\"icon\", ctx_r1.toolbarOptions.icon)(\"iconClass\", ctx_r1.toolbarOptions.iconClass)(\"imageUrl\", ctx_r1.toolbarOptions.imageUrl)(\"buttonClass\", ctx_r1.buttonClass)(\"arrowButtonClass\", ctx_r1.arrowButtonClass)(\"arrowButtonIcon\", ctx_r1.arrowButtonIcon)(\"disabled\", ctx_r1.disabled)(\"tabIndex\", -1)(\"textField\", ctx_r1.textField)(\"popupSettings\", ctx_r1.popupSettings)(\"fillMode\", ctx_r1.fillMode)(\"themeColor\", ctx_r1.fillMode ? ctx_r1.themeColor : null);\n} }\nfunction ToolBarSplitButtonComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n const _r13 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 4, 5);\n ɵngcc0.ɵɵlistener(\"click\", function ToolBarSplitButtonComponent_ng_template_2_Template_button_click_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r13); const ctx_r12 = ɵngcc0.ɵɵnextContext(); return ctx_r12.buttonClick.emit($event); })(\"click\", function ToolBarSplitButtonComponent_ng_template_2_Template_button_click_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r13); const ctx_r14 = ɵngcc0.ɵɵnextContext(); return ctx_r14.onMainButtonClick($event); });\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(3, \"kendo-toolbar-buttonlist\", 6, 7);\n ɵngcc0.ɵɵlistener(\"itemClick\", function ToolBarSplitButtonComponent_ng_template_2_Template_kendo_toolbar_buttonlist_itemClick_3_listener($event) { ɵngcc0.ɵɵrestoreView(_r13); const ctx_r15 = ɵngcc0.ɵɵnextContext(); return ctx_r15.itemClick.emit($event); })(\"click\", function ToolBarSplitButtonComponent_ng_template_2_Template_kendo_toolbar_buttonlist_click_3_listener($event) { ɵngcc0.ɵɵrestoreView(_r13); const ctx_r16 = ɵngcc0.ɵɵnextContext(); return ctx_r16.onButtonListClick($event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"fillMode\", ctx_r3.fillMode)(\"themeColor\", ctx_r3.fillMode ? ctx_r3.themeColor : null)(\"disabled\", ctx_r3.disabled)(\"icon\", ctx_r3.overflowOptions.icon)(\"iconClass\", ctx_r3.overflowOptions.iconClass)(\"imageUrl\", ctx_r3.overflowOptions.imageUrl)(\"ngClass\", ctx_r3.buttonClass);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r3.overflowOptions.text, \" \");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"data\", ctx_r3.data)(\"disabled\", ctx_r3.disabled)(\"fillMode\", ctx_r3.fillMode)(\"themeColor\", ctx_r3.fillMode ? ctx_r3.themeColor : null)(\"textField\", ctx_r3.textField);\n} }\nconst _c19 = [\"separator\"];\nfunction ToolBarSeparatorComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"div\", 1);\n} }\nfunction ToolBarRendererComponent_ng_container_0_ng_template_1_Template(rf, ctx) { }\nfunction ToolBarRendererComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, ToolBarRendererComponent_ng_container_0_ng_template_1_Template, 0, 0, \"ng-template\", 1);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.template);\n} }\nfunction ToolBarRendererComponent_ng_container_1_ng_template_1_Template(rf, ctx) { }\nfunction ToolBarRendererComponent_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, ToolBarRendererComponent_ng_container_1_ng_template_1_Template, 0, 0, \"ng-template\", 1);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.template);\n} }\nconst packageMetadata = {\n name: '@progress/kendo-angular-toolbar',\n productName: 'Kendo UI for Angular',\n productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],\n publishDate: 1648459251,\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\n/**\n * @hidden\n */\nlet RefreshService = class RefreshService {\n /**\n * @hidden\n */\n constructor() {\n this.onRefresh = new EventEmitter();\n }\n refresh(tool) {\n this.onRefresh.emit(tool);\n }\n};\nRefreshService.ɵfac = function RefreshService_Factory(t) { return new (t || RefreshService)(); };\nRefreshService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: RefreshService, factory: function (t) { return RefreshService.ɵfac(t); } });\n\n/**\n * @hidden\n */\nconst focusableRegex = /^(?:a|input|select|textarea|button|object)$/i;\n/**\n * @hidden\n */\nfunction outerWidth(element) {\n var width = element.offsetWidth;\n var style = getComputedStyle(element);\n width += parseFloat(style.marginLeft) || 0 + parseFloat(style.marginRight) || 0;\n return width;\n}\n/**\n * @hidden\n */\nfunction innerWidth(element) {\n var width = element.offsetWidth;\n var style = getComputedStyle(element);\n width -= parseFloat(style.paddingLeft) || 0 + parseFloat(style.borderLeftWidth) || 0;\n width -= parseFloat(style.paddingRight) || 0 + parseFloat(style.borderRightWidth) || 0;\n return width;\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 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 should 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 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 isFocusable = (element, checkVisibility = true) => {\n if (element.tagName) {\n const tagName = element.tagName.toLowerCase();\n const tabIndex = element.getAttribute('tabIndex');\n let focusable = tabIndex !== null;\n if (focusableRegex.test(tagName)) {\n focusable = !element.disabled;\n }\n return focusable && (!checkVisibility || isVisible(element));\n }\n return false;\n};\n/**\n * @hidden\n */\nconst findFocusable = (element, checkVisibility = true) => {\n return findElement(element, node => isFocusable(node, checkVisibility));\n};\n/**\n * @hidden\n */\nconst findFocusableChild = (element, checkVisibility = true) => {\n return findElement(element, node => isFocusable(node, checkVisibility), false);\n};\n/**\n * @hidden\n */\nconst findFocusableSibling = (element, checkVisibility = true, reverse) => {\n let node = reverse ? element.prevSibling : element.nextSibling;\n while (node) {\n if (node.nodeType === 1) {\n const result = findElement(node, el => isFocusable(el, checkVisibility));\n if (result) {\n return result;\n }\n }\n node = reverse ? node.prevSibling : node.nextSibling;\n }\n};\n/**\n * @hidden\n */\nconst isPresent = (value) => value !== null && value !== undefined;\n/**\n * @hidden\n */\nconst makePeeker = (collection) => (index) => isPresent(collection[index]);\n/**\n * @hidden\n */\nconst getIndexOfFocused = (prevKeyCode, nextKeyCode, collection) => (ev) => {\n switch (ev.type) {\n case 'keydown':\n if (ev.keyCode === prevKeyCode) {\n return collection.length - 1;\n }\n if (ev.keyCode === nextKeyCode) {\n return 0;\n }\n break;\n case 'click':\n return collection.findIndex(be => be === ev.target || be.contains(ev.target));\n case 'focus':\n return 0;\n default:\n return 0;\n }\n};\n/**\n * @hidden\n */\nconst seekFocusedIndex = (prevKeyCode, nextKeyCode, seeker) => (startIndex, ev) => {\n switch (ev.keyCode) {\n case prevKeyCode:\n return seeker(startIndex - 1) ? startIndex - 1 : startIndex;\n case nextKeyCode:\n return seeker(startIndex + 1) ? startIndex + 1 : startIndex;\n default:\n return startIndex;\n }\n};\n/**\n * @hidden\n */\nconst areEqual = (first) => (second) => first === second;\n/**\n * @hidden\n */\nconst getNextKey = (rtl = false) => (overflows = true) => overflows ? Keys.ArrowDown : rtl ? Keys.ArrowLeft : Keys.ArrowRight;\n/**\n * @hidden\n */\nconst getPrevKey = (rtl = false) => (overflows = true) => overflows ? Keys.ArrowUp : rtl ? Keys.ArrowRight : Keys.ArrowLeft;\n/**\n * @hidden\n */\nconst getValueForLocation = (property, displayMode, overflows) => {\n switch (displayMode) {\n case 'toolbar':\n return overflows ? undefined : property;\n case 'overflow':\n return overflows ? property : undefined;\n default:\n return property;\n }\n};\n\n/**\n * @hidden\n */\nlet NavigationService = class NavigationService {\n constructor(zone) {\n this.zone = zone;\n this.focused = { renderedTool: null, index: -1 };\n this.renderedTools = [];\n this.isPopupFocused = false;\n this.isOverflowButtonFocused = false;\n }\n setRenderedTools(rts) {\n this.renderedTools = [...rts];\n }\n click({ context, event: ev }) {\n if (this.focused.renderedTool !== context && ev) {\n this.focus(context, ev);\n }\n }\n moveFocusToToolBar() {\n this.isPopupFocused = false;\n this.focusOverflowButton();\n }\n moveFocusToPopup() {\n this.isPopupFocused = true;\n this.blurOverflowButton();\n this.focus();\n }\n focusNext(ev) {\n if (!this.isOverflowButtonFocused && this.focused.renderedTool && !this.focused.renderedTool.tool.handleKey(ev)) {\n const nextRT = this.getFocusableTools().slice(this.focused.index + 1)[0];\n if (nextRT) {\n this.focus(nextRT, ev);\n }\n else {\n if (this.isOverflowButtonVisible() && !this.isPopupFocused) {\n this.focusOverflowButton();\n }\n }\n }\n }\n focusPrev(ev) {\n if (this.isOverflowButtonFocused) {\n const lastFocusableRT = this.getFocusableTools().reverse()[0];\n this.focus(lastFocusableRT, ev);\n }\n else if (this.focused.renderedTool && !this.focused.renderedTool.tool.handleKey(ev)) {\n const prevRT = this.getFocusableTools()\n .slice(0, this.focused.index)\n .reverse()[0];\n if (prevRT) {\n this.focus(prevRT, ev);\n }\n }\n }\n resetNavigation() {\n this.blurOverflowButton();\n this.focused.renderedTool = null;\n this.focused.index = -1;\n }\n focusFirst(ev) {\n const firstTool = this.getFocusableTools()[0];\n const overFlowButton = this.overflowButton;\n if (firstTool) {\n this.focused.renderedTool = firstTool;\n this.focused.index = this.getFocusableTools().findIndex(rt => rt === firstTool);\n this.focus(firstTool, ev);\n }\n else if (overFlowButton) {\n overFlowButton.nativeElement.focus();\n }\n }\n getFocusableTools() {\n return this.renderedTools.filter(rt => rt.tool.overflows === this.isPopupFocused && rt.tool.canFocus());\n }\n focus(renderedTool, ev) {\n // running the code below in onStable fixes issue #2939\n this.zone.onStable.pipe(take(1)).subscribe(() => {\n if (!renderedTool) {\n const focusableRTs = this.getFocusableTools();\n const lastFocusedRT = focusableRTs.find(rt => rt === this.focused.renderedTool) || focusableRTs[0];\n // guard against only disabled tools\n if (lastFocusedRT) {\n this.focused.renderedTool = lastFocusedRT;\n this.focused.index = this.getFocusableTools().findIndex(rt => rt === lastFocusedRT);\n // if event is undefined, then this means that the tool is the first one in the overflow popup\n lastFocusedRT.tool.focus(ev);\n }\n }\n else if (renderedTool.tool.canFocus && renderedTool.tool.canFocus()) {\n this.focused.renderedTool = renderedTool;\n this.focused.index = this.getFocusableTools().findIndex(rt => rt === renderedTool);\n renderedTool.tool.focus(ev);\n this.blurOverflowButton();\n }\n });\n }\n blurOverflowButton() {\n if (this.overflowButton) {\n this.isOverflowButtonFocused = false;\n this.overflowButton.nativeElement.tabIndex = -1;\n }\n }\n focusOverflowButton() {\n this.isOverflowButtonFocused = true;\n this.overflowButton.nativeElement.tabIndex = 0;\n this.overflowButton.nativeElement.focus();\n }\n isOverflowButtonVisible() {\n return (isPresent(this.overflowButton) &&\n window.getComputedStyle(this.overflowButton.nativeElement).getPropertyValue('visibility') === 'visible');\n }\n};\nNavigationService.ɵfac = function NavigationService_Factory(t) { return new (t || NavigationService)(ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nNavigationService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NavigationService, factory: function (t) { return NavigationService.ɵfac(t); } });\nNavigationService = __decorate([ __metadata(\"design:paramtypes\", [NgZone])\n], NavigationService);\n\n/**\n * Represents the Base ToolBar Tool component for Angular.\n * Extend this class to create custom tools.\n */\nlet ToolBarToolComponent = class ToolBarToolComponent {\n /**\n * Represents the Base ToolBar Tool component for Angular.\n * Extend this class to create custom tools.\n */\n constructor() {\n this.tabIndex = -1; //Focus movement inside the toolbar is managed using roving tabindex.\n this.overflows = true;\n // this should be replaced with showTool: DisplayMode = 'both';\n /**\n * @hidden\n */\n this.responsive = true;\n }\n get toolbarDisplay() {\n return this.overflows ? 'none' : 'inline-block';\n }\n get overflowDisplay() {\n return this.overflows ? 'block' : 'none';\n }\n /**\n * Determines if the tool can be focused.\n * If the returned value is `false`, the tool will not be part of the keyboard navigation.\n * @returns `true` if the tool should take part in keyboard navigation.\n */\n canFocus() {\n return false;\n }\n /**\n * Called when the tool is focused.\n * The method accepts as argument the original browser event, which can be a `KeyboardEvent`, `MouseEvent` or `FocusEvent`.\n * @param {Event} ev - This is the event that caused the tool to be focused.\n */\n // @ts-ignore\n focus(ev) {\n /* noop */\n }\n /**\n * Called when the tool is focused and one of the arrow keys is pressed.\n * The returned boolean value determines whether the `ToolBarComponent` will move the focus to the next/previous `ToolBarToolComponent`\n * ([see example]({% slug customcontroltypes_toolbar %}#toc-adding-keyboard-navigation)).\n * @param {KeyboardEvent} ev - The last pressed arrow key\n * @returns\n */\n // @ts-ignore\n handleKey(ev) {\n return false;\n }\n};\nToolBarToolComponent.ɵfac = function ToolBarToolComponent_Factory(t) { return new (t || ToolBarToolComponent)(); };\nToolBarToolComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ToolBarToolComponent, selectors: [[\"toolbar-tool\"]], inputs: { responsive: \"responsive\" }, decls: 0, vars: 0, template: function ToolBarToolComponent_Template(rf, ctx) { }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ToolBarToolComponent.prototype, \"responsive\", void 0);\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 defaultPopupWidth = '150px';\n\nconst getInitialPopupSettings = (isRtl) => ({\n animate: true,\n anchorAlign: { horizontal: isRtl ? 'left' : 'right', vertical: 'bottom' },\n popupAlign: { horizontal: isRtl ? 'left' : 'right', vertical: 'top' }\n});\n/**\n * Represents the [Kendo UI ToolBar component for Angular]({% slug overview_toolbar %}).\n */\nlet ToolBarComponent = class ToolBarComponent {\n constructor(localization, popupService, refreshService, navigationService, element, zone, renderer, _cdr) {\n this.localization = localization;\n this.popupService = popupService;\n this.refreshService = refreshService;\n this.navigationService = navigationService;\n this.element = element;\n this.zone = zone;\n this.renderer = renderer;\n this._cdr = _cdr;\n /**\n * Hides the overflowing tools in a popup.\n */\n this.overflow = false;\n /**\n * Specifies the [`tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the ToolBar.\n */\n this.tabindex = 0;\n /**\n * Fires when the overflow popup of the ToolBar is opened.\n */\n this.open = new EventEmitter();\n /**\n * Fires when the overflow popup of the ToolBar is closed.\n */\n this.close = new EventEmitter();\n this.hostClasses = true;\n this.cancelRenderedToolsSubscription$ = new Subject();\n this.subscriptions = new Subscription();\n validatePackage(packageMetadata);\n this.direction = localization.rtl ? 'rtl' : 'ltr';\n }\n /**\n * @hidden\n */\n set resizable(value) {\n this.overflow = value;\n }\n get resizable() {\n return this.overflow;\n }\n /**\n * Configures the popup of the ToolBar drop-down list.\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({}, getInitialPopupSettings(this.localization.rtl), settings);\n }\n get popupSettings() {\n return this._popupSettings || getInitialPopupSettings(this.localization.rtl);\n }\n /**\n * @hidden\n */\n set tabIndex(tabIndex) {\n this.tabindex = tabIndex;\n }\n get tabIndex() {\n return 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 set popupOpen(open) {\n if (this.popupOpen === open) {\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 get popupOpen() {\n return this._open;\n }\n /**\n * @hidden\n */\n onFocus(ev) {\n this.navigationService.resetNavigation();\n this.navigationService.focusFirst(ev);\n // prevents ExpressionChangedAfterItHasBeenCheckedError when tools with popup are opened/closed asynchronously\n this.element.nativeElement.setAttribute('tabindex', '-1');\n }\n /**\n * @hidden\n */\n onFocusOut(event) {\n // prevents ExpressionChangedAfterItHasBeenCheckedError when tools with popup are opened/closed asynchronously\n if (closest(event.relatedTarget, (el) => el === this.element.nativeElement)) {\n this.element.nativeElement.setAttribute('tabindex', '-1');\n return;\n }\n this.element.nativeElement.setAttribute('tabindex', this.tabindex.toString());\n }\n get getRole() {\n return 'toolbar';\n }\n get getDir() {\n return this.direction;\n }\n get resizableClass() {\n return this.overflow;\n }\n ngAfterViewInit() {\n const element = this.element.nativeElement;\n if (!element.getAttribute('tabindex')) {\n this.element.nativeElement.setAttribute('tabindex', '0');\n }\n this.zone.runOutsideAngular(() => {\n this.toolbarKeydownListener = this.renderer.listen(this.element.nativeElement, 'keydown', (ev) => {\n switch (ev.keyCode) {\n case Keys.ArrowLeft:\n this.zone.run(() => {\n ev.preventDefault();\n this.direction === 'ltr' ? this.navigationService.focusPrev(ev) : this.navigationService.focusNext(ev);\n // prevents ExpressionChangedAfterItHasBeenCheckedError when tools with popup are opened/closed asynchronously\n this.element.nativeElement.setAttribute('tabindex', '-1');\n });\n break;\n case Keys.ArrowRight:\n this.zone.run(() => {\n ev.preventDefault();\n this.direction === 'ltr' ? this.navigationService.focusNext(ev) : this.navigationService.focusPrev(ev);\n // prevents ExpressionChangedAfterItHasBeenCheckedError when tools with popup are opened/closed asynchronously\n this.element.nativeElement.setAttribute('tabindex', '-1');\n });\n break;\n case Keys.Tab:\n this.zone.run(() => this.navigationService.resetNavigation());\n break;\n case Keys.Escape:\n this.zone.run(() => this.toggle(false));\n break;\n default:\n break;\n }\n });\n });\n if (this.overflow) {\n this.subscriptions.add(merge(\n // trigger resizing calculations once every 200ms instead of each time the resize event is emitted\n this.resizeSensor.resize.pipe(bufferTime(200), filter(v => v.length > 0)), this.renderedTools.changes).subscribe(() => { this.onResize(); }));\n // because of https://github.com/telerik/kendo-angular-buttons/pull/276\n // calling onResize twice is the trade-off for removing the manual ChangeDetection\n // triggering altogether - it ensures correct layout and calculations\n // when some tools need overflow on initial rendering\n this.zone.runOutsideAngular(() => setTimeout(() => { this.onResize(); this.onResize(); }));\n this.navigationService.overflowButton = this.overflowButton;\n }\n this.navigationService.setRenderedTools(this.renderedTools.toArray());\n this.subscriptions.add(this.renderedTools.changes.subscribe((rts) => this.navigationService.setRenderedTools(rts.toArray())));\n }\n ngOnInit() {\n this.subscriptions.add(this.localization.changes.subscribe(({ rtl }) => (this.direction = rtl ? 'rtl' : 'ltr')));\n if (isDocumentAvailable()) {\n this.zone.runOutsideAngular(() => this.subscriptions.add(fromEvent(document, 'click')\n .pipe(filter(() => !!this.popupRef), filter((ev) => !this.popupRef.popup.instance.container.nativeElement.contains(ev.target)), filter((ev) => !this.overflowButton.nativeElement.contains(ev.target)))\n .subscribe(() => {\n this.zone.run(() => {\n this.popupOpen = false;\n });\n })));\n }\n }\n ngOnChanges(changes) {\n if (changes.tabindex) {\n // prevents ExpressionChangedAfterItHasBeenCheckedError when tools with popup are opened/closed asynchronously\n this.element.nativeElement.setAttribute('tabindex', changes.tabindex.currentValue.toString());\n }\n }\n ngOnDestroy() {\n if (this.popupRef) {\n this.popupRef.close();\n }\n if (this.toolbarKeydownListener) {\n this.toolbarKeydownListener();\n }\n this.cancelRenderedToolsSubscription$.next();\n this.subscriptions.unsubscribe();\n }\n /**\n * @hidden\n */\n get moreToolsTitle() {\n return this.localization.get('moreToolsTitle');\n }\n /**\n * @hidden\n */\n get cdr() {\n return this._cdr;\n }\n /**\n * @hidden\n */\n onRendererClick(data) {\n this.navigationService.click(data);\n this.element.nativeElement.setAttribute('tabindex', '-1');\n }\n /**\n * @hidden\n */\n showPopup() {\n this.popupOpen = !this.popupOpen;\n this.navigationService.click({ context: undefined, event: undefined });\n }\n /**\n * Toggles the visibility of the overflow popup.\n */\n toggle(popupOpen) {\n this._open = popupOpen !== undefined ? popupOpen : !this.popupOpen;\n if (this.popupRef) {\n this.popupRef.close();\n this.popupRef = null;\n }\n if (this.popupOpen) {\n this.popupRef = this.popupService.open({\n anchor: this.overflowButton,\n anchorAlign: this.popupSettings.anchorAlign,\n popupAlign: this.popupSettings.popupAlign,\n content: this.popupTemplate,\n appendTo: this.appendTo,\n animate: this.popupSettings.animate,\n popupClass: this.popupSettings.popupClass,\n positionMode: 'absolute'\n });\n this.setPopupContentDimensions();\n this.popupRef.popupOpen.subscribe(this.onPopupOpen.bind(this));\n this.popupRef.popupClose.subscribe(this.onPopupClose.bind(this));\n }\n }\n /**\n * @hidden\n */\n onResize() {\n if (isDocumentAvailable()) {\n const containerWidth = innerWidth(this.element.nativeElement) - this.overflowAnchorWidth;\n this.shrink(containerWidth, this.childrenWidth);\n this.stretch(containerWidth, this.childrenWidth);\n this.zone.onStable.pipe(take(1)).subscribe(() => {\n this.displayAnchor();\n });\n }\n this.resizeSensor.acceptSize();\n }\n /**\n * @hidden\n */\n onPopupOpen() {\n this.zone.runOutsideAngular(() => {\n this.overflowKeydownListener = this.renderer.listen(this.popupRef.popupElement, 'keydown', (ev) => {\n switch (ev.keyCode) {\n case Keys.ArrowUp:\n this.zone.run(() => {\n ev.preventDefault();\n this.navigationService.focusPrev(ev);\n });\n break;\n case Keys.ArrowDown:\n this.zone.run(() => {\n ev.preventDefault();\n this.navigationService.focusNext(ev);\n });\n break;\n case Keys.Escape:\n this.zone.run(() => this.toggle(false));\n break;\n case Keys.Tab:\n this.zone.run(() => {\n this.toggle(false);\n this.navigationService.resetNavigation();\n });\n break;\n default:\n break;\n }\n });\n });\n this.cancelRenderedToolsSubscription$.next();\n this.navigationService.moveFocusToPopup();\n this.navigationService.setRenderedTools(this.overflowRenderedTools.toArray());\n this.overflowRenderedTools.changes\n .pipe(takeUntil(this.cancelRenderedToolsSubscription$))\n .subscribe((rts) => this.navigationService.setRenderedTools(rts.toArray()));\n }\n /**\n * @hidden\n */\n onPopupClose() {\n this.cancelRenderedToolsSubscription$.next();\n this.navigationService.setRenderedTools(this.renderedTools.toArray());\n this.renderedTools.changes\n .pipe(takeUntil(this.cancelRenderedToolsSubscription$))\n .subscribe((rts) => this.navigationService.setRenderedTools(rts.toArray()));\n this.navigationService.moveFocusToToolBar();\n if (this.overflowKeydownListener) {\n this.overflowKeydownListener();\n }\n }\n displayAnchor() {\n const visibility = this.allTools.filter(t => t.overflows && t.responsive).length > 0 ? 'visible' : 'hidden';\n this.renderer.setStyle(this.overflowButton.nativeElement, 'visibility', visibility);\n }\n get popupWidth() {\n if (!this.popupSettings || !this.popupSettings.width) {\n return defaultPopupWidth;\n }\n return isNaN(this.popupSettings.width) ? this.popupSettings.width : `${this.popupSettings.width}px`;\n }\n get popupHeight() {\n if (!this.popupSettings || !this.popupSettings.height) {\n return;\n }\n return isNaN(this.popupSettings.height) ? this.popupSettings.height : `${this.popupSettings.height}px`;\n }\n get overflowAnchorWidth() {\n if (!this.overflow) {\n return 0;\n }\n if (!this.cachedOverflowAnchorWidth) {\n this.cachedOverflowAnchorWidth = outerWidth(this.overflowButton.nativeElement);\n }\n return this.cachedOverflowAnchorWidth;\n }\n get gap() {\n if (isPresent(this.cachedGap)) {\n return this.cachedGap;\n }\n const computedGap = getComputedStyle(this.element.nativeElement).gap;\n this.cachedGap = isPresent(computedGap) ? parseInt(computedGap, 10) : 0;\n return this.cachedGap;\n }\n get childrenWidth() {\n const width = this.renderedTools.reduce((totalWidth, tool) => tool.width + totalWidth + (tool.isDisplayed() ? this.gap : 0), 0);\n return Math.ceil(width);\n }\n get visibleTools() {\n return this.allTools.filter((tool) => {\n return tool.overflows === false;\n });\n }\n get overflowTools() {\n return this.allTools.filter((tool) => {\n return tool.overflows === true;\n });\n }\n shrink(containerWidth, childrenWidth) {\n let width;\n if (containerWidth < childrenWidth) {\n for (var i = this.visibleTools.length - 1; i >= 0; i--) {\n if (containerWidth > childrenWidth) {\n break;\n }\n else {\n width = this.hideLastVisibleTool();\n childrenWidth -= width;\n }\n }\n }\n }\n stretch(containerWidth, childrenWidth) {\n let width;\n if (containerWidth > childrenWidth) {\n for (var i = this.overflowTools.length - 1; i >= 0; i--) {\n width = this.showFirstHiddenTool(containerWidth, childrenWidth);\n if (width) {\n childrenWidth += width;\n }\n else {\n break;\n }\n }\n }\n }\n hideLastVisibleTool() {\n const tool = this.visibleTools[this.visibleTools.length - 1];\n const renderedElement = this.renderedTools.find((r) => {\n return r.tool === tool;\n });\n const width = renderedElement.width;\n tool.overflows = true;\n this.refreshService.refresh(tool);\n return width;\n }\n showFirstHiddenTool(containerWidth, childrenWidth) {\n const tool = this.overflowTools[0];\n const renderedElement = this.renderedTools.find(r => r.tool === tool);\n tool.overflows = false;\n tool.visibility = 'hidden';\n this.refreshService.refresh(tool);\n if (containerWidth > childrenWidth + renderedElement.width) {\n tool.visibility = 'visible';\n this.refreshService.refresh(tool);\n }\n else {\n tool.overflows = true;\n this.refreshService.refresh(tool);\n }\n return renderedElement.width; // returns 0 if `overflows` is true\n }\n setPopupContentDimensions() {\n const popupContentContainer = this.popupRef.popup.instance.contentContainer.nativeElement;\n popupContentContainer.style.width = this.popupWidth;\n popupContentContainer.style.height = this.popupHeight;\n popupContentContainer.style.overflow = 'auto';\n }\n};\nToolBarComponent.ɵfac = function ToolBarComponent_Factory(t) { return new (t || ToolBarComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.PopupService), ɵngcc0.ɵɵdirectiveInject(RefreshService), ɵngcc0.ɵɵdirectiveInject(NavigationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nToolBarComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ToolBarComponent, selectors: [[\"kendo-toolbar\"]], contentQueries: function ToolBarComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, ToolBarToolComponent, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.allTools = _t);\n } }, viewQuery: function ToolBarComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c0, 5);\n ɵngcc0.ɵɵviewQuery(_c1, 7);\n ɵngcc0.ɵɵviewQuery(_c2, 5);\n ɵngcc0.ɵɵviewQuery(_c3, 7, ViewContainerRef);\n ɵngcc0.ɵɵviewQuery(_c4, 5);\n ɵngcc0.ɵɵviewQuery(_c5, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.overflowButton = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.popupTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.resizeSensor = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.container = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.renderedTools = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.overflowRenderedTools = _t);\n } }, hostVars: 8, hostBindings: function ToolBarComponent_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"focus\", function ToolBarComponent_focus_HostBindingHandler($event) { return ctx.onFocus($event); })(\"focusout\", function ToolBarComponent_focusout_HostBindingHandler($event) { return ctx.onFocusOut($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"role\", ctx.getRole)(\"dir\", ctx.getDir);\n ɵngcc0.ɵɵclassProp(\"k-widget\", ctx.hostClasses)(\"k-toolbar\", ctx.hostClasses)(\"k-toolbar-resizable\", ctx.resizableClass);\n } }, inputs: { overflow: \"overflow\", tabindex: \"tabindex\", resizable: \"resizable\", popupSettings: \"popupSettings\", tabIndex: \"tabIndex\" }, outputs: { open: \"open\", close: \"close\" }, exportAs: [\"kendoToolBar\"], features: [ɵngcc0.ɵɵProvidersFeature([\n RefreshService,\n NavigationService,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.toolbar'\n }\n ]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 8, vars: 3, consts: function () { let i18n_6; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the **more tools** button in a responsive ToolBar\n * @meaning kendo.toolbar.moreToolsTitle\n */\n const MSG_EXTERNAL_6762596725712096287$$DIST_FESM2015_INDEX_JS_7 = goog.getMsg(\"More tools\");\n i18n_6 = MSG_EXTERNAL_6762596725712096287$$DIST_FESM2015_INDEX_JS_7;\n }\n else {\n i18n_6 = $localize `:kendo.toolbar.moreToolsTitle|The title of the **more tools** button in a responsive ToolBar␟b8a8c1c9015e93172a76b7a44854e362b1fd921c␟6762596725712096287:More tools`;\n } return [[\"kendoToolbarLocalizedMessages\", \"\", \"moreToolsTitle\", i18n_6], [4, \"ngFor\", \"ngForOf\"], [\"type\", \"button\", \"tabindex\", \"-1\", \"class\", \"k-overflow-anchor k-button\", 3, \"title\", \"visibility\", \"click\", 4, \"ngIf\"], [\"popupTemplate\", \"\"], [\"container\", \"\"], [3, \"rateLimit\", 4, \"ngIf\"], [3, \"location\", \"resizable\", \"tool\", \"rendererClick\"], [\"toolbarRenderer\", \"\"], [\"type\", \"button\", \"tabindex\", \"-1\", 1, \"k-overflow-anchor\", \"k-button\", 3, \"title\", \"click\"], [\"overflowButton\", \"\"], [1, \"k-icon\", \"k-i-more-vertical\"], [1, \"k-overflow-container\", \"k-list-container\", \"k-reset\"], [1, \"k-item\"], [\"overflowRenderer\", \"\"], [3, \"rateLimit\"], [\"resizeSensor\", \"\"]]; }, template: function ToolBarComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 0);\n ɵngcc0.ɵɵtemplate(1, ToolBarComponent_ng_container_1_Template, 3, 3, \"ng-container\", 1);\n ɵngcc0.ɵɵtemplate(2, ToolBarComponent_button_2_Template, 3, 4, \"button\", 2);\n ɵngcc0.ɵɵtemplate(3, ToolBarComponent_ng_template_3_Template, 2, 1, \"ng-template\", null, 3, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵelementContainer(5, null, 4);\n ɵngcc0.ɵɵtemplate(7, ToolBarComponent_kendo_resize_sensor_7_Template, 2, 1, \"kendo-resize-sensor\", 5);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.allTools);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.overflow);\n ɵngcc0.ɵɵadvance(5);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.overflow);\n } }, directives: function () { return [LocalizedToolbarMessagesDirective, ɵngcc3.NgForOf, ToolBarRendererComponent, ɵngcc3.NgIf, ɵngcc4.ResizeSensorComponent]; }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ToolBarComponent.prototype, \"overflow\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], ToolBarComponent.prototype, \"resizable\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], ToolBarComponent.prototype, \"popupSettings\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ToolBarComponent.prototype, \"tabindex\", void 0);\n__decorate([\n Input('tabIndex'),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], ToolBarComponent.prototype, \"tabIndex\", null);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ToolBarComponent.prototype, \"open\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ToolBarComponent.prototype, \"close\", void 0);\n__decorate([\n ContentChildren(ToolBarToolComponent),\n __metadata(\"design:type\", QueryList)\n], ToolBarComponent.prototype, \"allTools\", void 0);\n__decorate([\n ViewChild('overflowButton', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], ToolBarComponent.prototype, \"overflowButton\", void 0);\n__decorate([\n ViewChild('popupTemplate', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], ToolBarComponent.prototype, \"popupTemplate\", void 0);\n__decorate([\n ViewChild('resizeSensor', { static: false }),\n __metadata(\"design:type\", ResizeSensorComponent)\n], ToolBarComponent.prototype, \"resizeSensor\", void 0);\n__decorate([\n ViewChild('container', { read: ViewContainerRef, static: true }),\n __metadata(\"design:type\", ViewContainerRef)\n], ToolBarComponent.prototype, \"container\", void 0);\n__decorate([\n ViewChildren('toolbarRenderer'),\n __metadata(\"design:type\", QueryList)\n], ToolBarComponent.prototype, \"renderedTools\", void 0);\n__decorate([\n ViewChildren('overflowRenderer'),\n __metadata(\"design:type\", QueryList)\n], ToolBarComponent.prototype, \"overflowRenderedTools\", void 0);\n__decorate([\n HostBinding('class.k-widget'),\n HostBinding('class.k-toolbar'),\n __metadata(\"design:type\", Boolean)\n], ToolBarComponent.prototype, \"hostClasses\", void 0);\n__decorate([\n HostListener('focus', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], ToolBarComponent.prototype, \"onFocus\", null);\n__decorate([\n HostListener('focusout', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], ToolBarComponent.prototype, \"onFocusOut\", null);\n__decorate([\n HostBinding('attr.role'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], ToolBarComponent.prototype, \"getRole\", null);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], ToolBarComponent.prototype, \"getDir\", null);\n__decorate([\n HostBinding('class.k-toolbar-resizable'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ToolBarComponent.prototype, \"resizableClass\", null);\nToolBarComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService,\n PopupService,\n RefreshService,\n NavigationService,\n ElementRef,\n NgZone,\n Renderer2,\n ChangeDetectorRef])\n], ToolBarComponent);\n\nvar ToolBarButtonComponent_1;\n/**\n * Represents the [Kendo UI ToolBar Button tool for Angular]({% slug controltypes_toolbar %}#toc-buttons).\n */\nlet ToolBarButtonComponent = ToolBarButtonComponent_1 = class ToolBarButtonComponent extends ToolBarToolComponent {\n constructor() {\n super();\n // showText and showIcon showIcon should be declared first\n /**\n * Specifies where button text should be displayed\n */\n this.showText = 'both';\n /**\n * Specifies where button icon should be displayed\n */\n this.showIcon = 'both';\n /**\n * Provides visual styling that indicates if the Button is active\n * ([see example]({% slug controltypes_toolbar %}#toc-toggle-buttons)).\n * By default, `toggleable` is set to `false`.\n */\n this.toggleable = false;\n /**\n * Sets the selected state of the Button.\n */\n this.selected = false;\n /**\n * The fillMode property specifies the background and border styles of the Button.\n *\n * The available values are:\n * * `solid` (default)\n * * `flat`\n * * `outline`\n * * `link`\n * * `null`\n */\n this.fillMode = 'solid';\n /**\n * The Button allows you to specify predefined theme colors.\n * The theme color will be applied as a background and border color while also amending the text color accordingly\n * ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-themeColor)).\n *\n * The possible values are:\n * * `base` —Applies coloring based on the `base` theme color. (default)\n * * `primary` —Applies coloring based on the `primary` theme color.\n * * `secondary`—Applies coloring based on the `secondary` theme color.\n * * `tertiary`— Applies coloring based on the `tertiary` theme color.\n * * `info`—Applies coloring based on the `info` theme color.\n * * `success`— Applies coloring based on the `success` theme color.\n * * `warning`— Applies coloring based on the `warning` theme color.\n * * `error`— Applies coloring based on the `error` theme color.\n * * `dark`— Applies coloring based on the `dark` theme color.\n * * `light`— Applies coloring based on the `light` theme color.\n * * `inverse`— Applies coloring based on the `inverse` theme color.\n * * `null` —Removes the default CSS class (no class would be rendered).\n */\n this.themeColor = 'base';\n /**\n * Fires each time the Button is clicked.\n */\n this.click = new EventEmitter();\n /**\n * Fires when the Button [pointerdown](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/pointerdown_event) event is triggered.\n */\n this.pointerdown = new EventEmitter();\n /**\n * Fires each time the selected state of a Toggle Button is changed.\n * The event argument is the new selected state (Boolean).\n */\n this.selectedChange = new EventEmitter();\n this.toolbarOptions = {\n text: '',\n icon: '',\n iconClass: '',\n imageUrl: ''\n };\n this.overflowOptions = {\n text: '',\n icon: '',\n iconClass: '',\n imageUrl: ''\n };\n }\n /**\n * Specifies the text of the Button ([see example]({% slug controltypes_toolbar %}#toc-buttons)).\n */\n set text(text) {\n this.toolbarOptions.text = getValueForLocation(text, this.showText, false);\n this.overflowOptions.text = getValueForLocation(text, this.showText, true);\n }\n /**\n * @hidden\n */\n set look(look) {\n if (look) {\n this.fillMode = look === 'default' ? 'solid' : look;\n }\n }\n /**\n * @hidden\n */\n get togglable() {\n return this.toggleable;\n }\n set togglable(value) {\n this.toggleable = value;\n }\n /**\n * Defines the name for an existing icon in a Kendo UI theme\n * ([see example]({% slug controltypes_toolbar %}#toc-buttons)).\n * The icon is rendered inside the Button by a `span.k-icon` element.\n */\n set icon(icon) {\n this.toolbarOptions.icon = getValueForLocation(icon, this.showIcon, false);\n this.overflowOptions.icon = getValueForLocation(icon, this.showIcon, true);\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(iconClass) {\n this.toolbarOptions.iconClass = getValueForLocation(iconClass, this.showIcon, false);\n this.overflowOptions.iconClass = getValueForLocation(iconClass, this.showIcon, true);\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 this.toolbarOptions.imageUrl = getValueForLocation(imageUrl, this.showIcon, false);\n this.overflowOptions.imageUrl = getValueForLocation(imageUrl, this.showIcon, true);\n }\n /**\n * @hidden\n */\n onBlur() {\n this.getButton().tabIndex = -1;\n }\n /**\n * @hidden\n */\n canFocus() {\n return !this.disabled;\n }\n /**\n * @hidden\n */\n focus(ev) {\n // guard against focusing twice on mousedown.\n if (!ev || ev.type === 'focus' || ev.type === 'keydown') {\n this.getButton().focus();\n }\n this.getButton().tabIndex = 0;\n }\n /**\n * @hidden\n */\n handleKey() {\n this.getButton().tabIndex = -1;\n return false;\n }\n getButton() {\n return (this.overflows ? this.overflowButtonElement : this.toolbarButtonElement).nativeElement;\n }\n};\nToolBarButtonComponent.ɵfac = function ToolBarButtonComponent_Factory(t) { return new (t || ToolBarButtonComponent)(); };\nToolBarButtonComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ToolBarButtonComponent, selectors: [[\"kendo-toolbar-button\"]], viewQuery: function ToolBarButtonComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c8, 7);\n ɵngcc0.ɵɵviewQuery(_c1, 7);\n ɵngcc0.ɵɵviewQuery(_c9, 5, ElementRef);\n ɵngcc0.ɵɵviewQuery(_c0, 5, ElementRef);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.toolbarTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.popupTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.toolbarButtonElement = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.overflowButtonElement = _t.first);\n } }, inputs: { showText: \"showText\", showIcon: \"showIcon\", toggleable: \"toggleable\", selected: \"selected\", fillMode: \"fillMode\", themeColor: \"themeColor\", text: \"text\", look: \"look\", togglable: \"togglable\", icon: \"icon\", iconClass: \"iconClass\", imageUrl: \"imageUrl\", style: \"style\", className: \"className\", title: \"title\", disabled: \"disabled\" }, outputs: { click: \"click\", pointerdown: \"pointerdown\", selectedChange: \"selectedChange\" }, exportAs: [\"kendoToolBarButton\"], features: [ɵngcc0.ɵɵProvidersFeature([{ provide: ToolBarToolComponent, useExisting: forwardRef(() => ToolBarButtonComponent_1) }]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 4, vars: 0, consts: [[\"toolbarTemplate\", \"\"], [\"popupTemplate\", \"\"], [\"type\", \"button\", \"kendoButton\", \"\", 3, \"tabindex\", \"ngStyle\", \"ngClass\", \"disabled\", \"toggleable\", \"fillMode\", \"themeColor\", \"selected\", \"icon\", \"iconClass\", \"imageUrl\", \"click\", \"pointerdown\", \"selectedChange\", \"blur\"], [\"toolbarButton\", \"\"], [\"tabindex\", \"-1\", \"type\", \"button\", \"kendoButton\", \"\", 1, \"k-overflow-button\", 3, \"ngStyle\", \"ngClass\", \"disabled\", \"toggleable\", \"fillMode\", \"themeColor\", \"selected\", \"icon\", \"iconClass\", \"imageUrl\", \"click\", \"selectedChange\"], [\"overflowButton\", \"\"]], template: function ToolBarButtonComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ToolBarButtonComponent_ng_template_0_Template, 3, 13, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(2, ToolBarButtonComponent_ng_template_2_Template, 3, 12, \"ng-template\", null, 1, ɵngcc0.ɵɵtemplateRefExtractor);\n } }, directives: [ɵngcc5.ButtonDirective, ɵngcc3.NgStyle, ɵngcc3.NgClass], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ToolBarButtonComponent.prototype, \"showText\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ToolBarButtonComponent.prototype, \"showIcon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ToolBarButtonComponent.prototype, \"text\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ToolBarButtonComponent.prototype, \"style\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ToolBarButtonComponent.prototype, \"className\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ToolBarButtonComponent.prototype, \"title\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ToolBarButtonComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ToolBarButtonComponent.prototype, \"toggleable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ToolBarButtonComponent.prototype, \"look\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], ToolBarButtonComponent.prototype, \"togglable\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ToolBarButtonComponent.prototype, \"selected\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ToolBarButtonComponent.prototype, \"fillMode\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ToolBarButtonComponent.prototype, \"themeColor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ToolBarButtonComponent.prototype, \"icon\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ToolBarButtonComponent.prototype, \"iconClass\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ToolBarButtonComponent.prototype, \"imageUrl\", null);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ToolBarButtonComponent.prototype, \"click\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ToolBarButtonComponent.prototype, \"pointerdown\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ToolBarButtonComponent.prototype, \"selectedChange\", void 0);\n__decorate([\n ViewChild('toolbarTemplate', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], ToolBarButtonComponent.prototype, \"toolbarTemplate\", void 0);\n__decorate([\n ViewChild('popupTemplate', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], ToolBarButtonComponent.prototype, \"popupTemplate\", void 0);\n__decorate([\n ViewChild('toolbarButton', { read: ElementRef, static: false }),\n __metadata(\"design:type\", ElementRef)\n], ToolBarButtonComponent.prototype, \"toolbarButtonElement\", void 0);\n__decorate([\n ViewChild('overflowButton', { read: ElementRef, static: false }),\n __metadata(\"design:type\", ElementRef)\n], ToolBarButtonComponent.prototype, \"overflowButtonElement\", void 0);\nToolBarButtonComponent = ToolBarButtonComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [])\n], ToolBarButtonComponent);\n\nvar ToolBarButtonGroupComponent_1;\n/**\n * Represents the Kendo UI Toolbar ButtonGroup for Angular.\n */\nlet ToolBarButtonGroupComponent = ToolBarButtonGroupComponent_1 = class ToolBarButtonGroupComponent extends ToolBarToolComponent {\n constructor(localization) {\n super();\n this.localization = localization;\n /**\n * By default, the selection mode of the ButtonGroup is set to `multiple`.\n */\n this.selection = 'multiple';\n this.focusedIndex = -1;\n this.getNextKey = getNextKey(this.localization.rtl);\n this.getPrevKey = getPrevKey(this.localization.rtl);\n }\n /**\n * @hidden\n */\n set look(look) {\n if (look) {\n this.buttonComponents.forEach(b => b.fillMode = look === 'default' ? 'solid' : look);\n }\n }\n get buttonElements() {\n return this.getButtonGroup()\n .buttons.filter(b => !b.isDisabled)\n .map(b => b.element);\n }\n /**\n * @hidden\n */\n onFocus() {\n // triggered on tabin\n this.focusedIndex = 0;\n }\n /**\n * @hidden\n */\n onNavigate(ev) {\n ev.preventDefault();\n }\n /**\n * @hidden\n */\n selectedChangeHandler(state, button) {\n button.selected = state;\n button.selectedChange.emit(state);\n }\n /**\n * @hidden\n */\n onButtonClick(ev) {\n this.focusedIndex = this.buttonElements.findIndex(be => be === ev.target || be.contains(ev.target));\n this.focusButton(this.focusedIndex, ev);\n }\n /**\n * @hidden\n */\n canFocus() {\n return !(this.disabled || this.buttonElements.length === 0);\n }\n /**\n * @hidden\n */\n focus(ev = {}) {\n const nextKey = this.getNextKey(this.overflows);\n const prevKey = this.getPrevKey(this.overflows);\n this.focusedIndex = getIndexOfFocused(prevKey, nextKey, this.buttonElements)(ev);\n this.focusButton(this.focusedIndex, ev);\n }\n /**\n * @hidden\n */\n handleKey(ev) {\n const nextKey = this.getNextKey(this.overflows);\n const prevKey = this.getPrevKey(this.overflows);\n const peekAtIndex = makePeeker(this.buttonElements);\n const isUnmodified = areEqual(this.focusedIndex);\n this.focusedIndex = seekFocusedIndex(prevKey, nextKey, peekAtIndex)(this.focusedIndex, ev);\n this.focusButton(this.focusedIndex, ev);\n return !isUnmodified(this.focusedIndex);\n }\n getButtonGroup() {\n return this.overflows ? this.overflowButtonGroup : this.toolbarButtonGroup;\n }\n focusButton(index, ev) {\n // Guard against focusing twice on mousedown.\n if (!ev.type || ev.type === 'focus' || ev.type === 'keydown') {\n this.buttonElements[index].focus();\n }\n }\n};\nToolBarButtonGroupComponent.ɵfac = function ToolBarButtonGroupComponent_Factory(t) { return new (t || ToolBarButtonGroupComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nToolBarButtonGroupComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ToolBarButtonGroupComponent, selectors: [[\"kendo-toolbar-buttongroup\"]], contentQueries: function ToolBarButtonGroupComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, ToolBarButtonComponent, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.buttonComponents = _t);\n } }, viewQuery: function ToolBarButtonGroupComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c8, 7);\n ɵngcc0.ɵɵviewQuery(_c1, 7);\n ɵngcc0.ɵɵviewQuery(_c10, 5);\n ɵngcc0.ɵɵviewQuery(_c11, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.toolbarTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.popupTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.toolbarButtonGroup = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.overflowButtonGroup = _t.first);\n } }, inputs: { selection: \"selection\", look: \"look\", disabled: \"disabled\", width: \"width\" }, exportAs: [\"kendoToolBarButtonGroup\"], features: [ɵngcc0.ɵɵProvidersFeature([LocalizationService, { provide: ToolBarToolComponent, useExisting: forwardRef(() => ToolBarButtonGroupComponent_1) }]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 4, vars: 0, consts: [[\"toolbarTemplate\", \"\"], [\"popupTemplate\", \"\"], [3, \"tabIndex\", \"selection\", \"disabled\", \"width\", \"navigate\", \"focus\"], [\"toolbarButtonGroup\", \"\"], [\"kendoButton\", \"\", 3, \"ngStyle\", \"ngClass\", \"disabled\", \"togglable\", \"selected\", \"fillMode\", \"themeColor\", \"icon\", \"iconClass\", \"imageUrl\", \"click\", \"pointerdown\", \"selectedChange\", 4, \"ngFor\", \"ngForOf\"], [\"kendoButton\", \"\", 3, \"ngStyle\", \"ngClass\", \"disabled\", \"togglable\", \"selected\", \"fillMode\", \"themeColor\", \"icon\", \"iconClass\", \"imageUrl\", \"click\", \"pointerdown\", \"selectedChange\"], [1, \"k-overflow-button\", 3, \"tabIndex\", \"selection\", \"disabled\", \"width\"], [\"overflowButtonGroup\", \"\"], [\"kendoButton\", \"\", \"class\", \"k-overflow-button\", 3, \"ngStyle\", \"ngClass\", \"disabled\", \"togglable\", \"selected\", \"fillMode\", \"themeColor\", \"icon\", \"iconClass\", \"imageUrl\", \"click\", \"selectedChange\", 4, \"ngFor\", \"ngForOf\"], [\"kendoButton\", \"\", 1, \"k-overflow-button\", 3, \"ngStyle\", \"ngClass\", \"disabled\", \"togglable\", \"selected\", \"fillMode\", \"themeColor\", \"icon\", \"iconClass\", \"imageUrl\", \"click\", \"selectedChange\"]], template: function ToolBarButtonGroupComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ToolBarButtonGroupComponent_ng_template_0_Template, 3, 5, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(2, ToolBarButtonGroupComponent_ng_template_2_Template, 3, 5, \"ng-template\", null, 1, ɵngcc0.ɵɵtemplateRefExtractor);\n } }, directives: [ɵngcc5.ButtonGroupComponent, ɵngcc3.NgForOf, ɵngcc5.ButtonDirective, ɵngcc3.NgStyle, ɵngcc3.NgClass], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ToolBarButtonGroupComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ToolBarButtonGroupComponent.prototype, \"selection\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ToolBarButtonGroupComponent.prototype, \"width\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ToolBarButtonGroupComponent.prototype, \"look\", null);\n__decorate([\n ViewChild('toolbarTemplate', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], ToolBarButtonGroupComponent.prototype, \"toolbarTemplate\", void 0);\n__decorate([\n ViewChild('popupTemplate', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], ToolBarButtonGroupComponent.prototype, \"popupTemplate\", void 0);\n__decorate([\n ContentChildren(forwardRef(() => ToolBarButtonComponent)),\n __metadata(\"design:type\", QueryList)\n], ToolBarButtonGroupComponent.prototype, \"buttonComponents\", void 0);\n__decorate([\n ViewChild('toolbarButtonGroup', { static: false }),\n __metadata(\"design:type\", ButtonGroupComponent)\n], ToolBarButtonGroupComponent.prototype, \"toolbarButtonGroup\", void 0);\n__decorate([\n ViewChild('overflowButtonGroup', { static: false }),\n __metadata(\"design:type\", ButtonGroupComponent)\n], ToolBarButtonGroupComponent.prototype, \"overflowButtonGroup\", void 0);\nToolBarButtonGroupComponent = ToolBarButtonGroupComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], ToolBarButtonGroupComponent);\n\n/**\n * @hidden\n */\nlet ToolBarButtonListComponent = class ToolBarButtonListComponent {\n /**\n * @hidden\n */\n constructor() {\n this.disabled = false;\n this.fillMode = 'solid';\n this.themeColor = 'base';\n this.itemClick = 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 onClick(item, index) {\n const dataItem = this.data[index];\n if (item.click) {\n item.click(dataItem);\n }\n this.itemClick.emit(dataItem);\n }\n};\nToolBarButtonListComponent.ɵfac = function ToolBarButtonListComponent_Factory(t) { return new (t || ToolBarButtonListComponent)(); };\nToolBarButtonListComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ToolBarButtonListComponent, selectors: [[\"kendo-toolbar-buttonlist\"]], viewQuery: function ToolBarButtonListComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c12, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.buttons = _t);\n } }, inputs: { disabled: \"disabled\", fillMode: \"fillMode\", themeColor: \"themeColor\", data: \"data\", textField: \"textField\" }, outputs: { itemClick: \"itemClick\" }, decls: 1, vars: 1, consts: [[\"type\", \"button\", \"tabindex\", \"-1\", \"kendoButton\", \"\", \"style\", \"padding-left: 16px\", \"class\", \"k-overflow-button\", 3, \"disabled\", \"icon\", \"iconClass\", \"imageUrl\", \"fillMode\", \"themeColor\", \"click\", 4, \"ngFor\", \"ngForOf\"], [\"type\", \"button\", \"tabindex\", \"-1\", \"kendoButton\", \"\", 1, \"k-overflow-button\", 2, \"padding-left\", \"16px\", 3, \"disabled\", \"icon\", \"iconClass\", \"imageUrl\", \"fillMode\", \"themeColor\", \"click\"], [\"button\", \"\"]], template: function ToolBarButtonListComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ToolBarButtonListComponent_button_0_Template, 3, 7, \"button\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.data);\n } }, directives: [ɵngcc3.NgForOf, ɵngcc5.ButtonDirective], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], ToolBarButtonListComponent.prototype, \"data\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ToolBarButtonListComponent.prototype, \"textField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ToolBarButtonListComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ToolBarButtonListComponent.prototype, \"fillMode\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ToolBarButtonListComponent.prototype, \"themeColor\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ToolBarButtonListComponent.prototype, \"itemClick\", void 0);\n__decorate([\n ViewChildren('button'),\n __metadata(\"design:type\", QueryList)\n], ToolBarButtonListComponent.prototype, \"buttons\", void 0);\n\nvar ToolBarDropDownButtonComponent_1;\n/**\n * Represents the [Kendo UI ToolBar DropDownButton for Angular]({% slug controltypes_toolbar %}#toc-dropdownbuttons).\n */\nlet ToolBarDropDownButtonComponent = ToolBarDropDownButtonComponent_1 = class ToolBarDropDownButtonComponent extends ToolBarToolComponent {\n constructor() {\n super();\n // showText and showIcon showIcon should be declared first\n /**\n * Defines the location of the button text that will be displayed.\n */\n this.showText = 'both';\n /**\n * Defines the location of the button icon that will be displayed.\n */\n this.showIcon = 'both';\n /**\n * The fillMode property specifies the background and border styles of the Button.\n *\n * The available values are:\n * * `solid` (default)\n * * `flat`\n * * `outline`\n * * `link`\n * * `null`\n */\n this.fillMode = 'solid';\n /**\n * The Button allows you to specify predefined theme colors.\n * The theme color will be applied as a background and border color while also amending the text color accordingly\n * ([see example]({% slug api_buttons_dropdownbuttoncomponent %}#toc-themeColor)).\n *\n * The possible values are:\n * * `base` —Applies coloring based on the `base` theme color. (default)\n * * `primary` —Applies coloring based on the `primary` theme color.\n * * `secondary`—Applies coloring based on the `secondary` theme color.\n * * `tertiary`— Applies coloring based on the `tertiary` theme color.\n * * `info`—Applies coloring based on the `info` theme color.\n * * `success`— Applies coloring based on the `success` theme color.\n * * `warning`— Applies coloring based on the `warning` theme color.\n * * `error`— Applies coloring based on the `error` theme color.\n * * `dark`— Applies coloring based on the `dark` theme color.\n * * `light`— Applies coloring based on the `light` theme color.\n * * `inverse`— Applies coloring based on the `inverse` theme color.\n * * `null` —Removes the default CSS class (no class would be rendered).\n */\n this.themeColor = 'base';\n /**\n * Fires each time the user clicks a DropDownButton item.\n * The event data contains the data item that is 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 this.toolbarOptions = {\n text: '',\n icon: '',\n iconClass: '',\n imageUrl: ''\n };\n this.overflowOptions = {\n text: '',\n icon: '',\n iconClass: '',\n imageUrl: ''\n };\n this._popupSettings = { animate: true, popupClass: '' };\n this.focusedIndex = -1;\n this.getNextKey = getNextKey();\n this.getPrevKey = getPrevKey();\n }\n /**\n * Sets the text of the DropDownButton\n * ([see example]({% slug controltypes_toolbar %}#toc-dropdownbuttons).\n */\n set text(text) {\n this.toolbarOptions.text = getValueForLocation(text, this.showText, false);\n this.overflowOptions.text = getValueForLocation(text, this.showText, true);\n }\n /**\n * Defines an icon that will be rendered next to the button text.\n */\n set icon(icon) {\n this.toolbarOptions.icon = getValueForLocation(icon, this.showIcon, false);\n this.overflowOptions.icon = getValueForLocation(icon, this.showIcon, true);\n }\n /**\n * Defines an icon with a custom CSS class that will be rendered next to the button text.\n */\n set iconClass(iconClass) {\n this.toolbarOptions.iconClass = getValueForLocation(iconClass, this.showIcon, false);\n this.overflowOptions.iconClass = getValueForLocation(iconClass, this.showIcon, true);\n }\n /**\n * Defines the location of an image that will be displayed next to the button text.\n */\n set imageUrl(imageUrl) {\n this.toolbarOptions.imageUrl = getValueForLocation(imageUrl, this.showIcon, false);\n this.overflowOptions.imageUrl = getValueForLocation(imageUrl, this.showIcon, true);\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 */\n set popupSettings(settings) {\n this._popupSettings = Object.assign({ animate: true, popupClass: '' }, settings);\n }\n get popupSettings() {\n return this._popupSettings;\n }\n /**\n * @hidden\n */\n set look(look) {\n if (look) {\n this.fillMode = look === 'default' ? 'solid' : look;\n }\n }\n /**\n * @hidden\n */\n set primary(primary) {\n this.themeColor = primary ? 'primary' : 'base';\n }\n /**\n * Sets the data of the DropDownButton\n * ([see example]({% slug controltypes_toolbar %}#toc-dropdownbuttons)).\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 get overflowButtons() {\n return [...this.overflowDropDownButtonButtonList.buttons.toArray().filter(b => !b.nativeElement.disabled)];\n }\n /**\n * @hidden\n */\n onButtonListClick(ev) {\n this.focusedIndex = this.overflowDropDownButtonButtonList.buttons\n .toArray()\n .findIndex(b => b.nativeElement.contains(ev.target));\n }\n /**\n * @hidden\n */\n canFocus() {\n return !this.disabled;\n }\n /**\n * @hidden\n */\n focus(ev = {}) {\n if (!this.overflows) {\n if (ev.type === 'focus' || ev.type === 'keydown') {\n this.toolbarDropDownButton.focus();\n }\n }\n else if (this.overflowButtons.length > 0) {\n this.focusedIndex = getIndexOfFocused(this.getPrevKey(), this.getNextKey(), this.overflowButtons.map(ob => ob.nativeElement))(ev);\n this.focusButton(this.focusedIndex, ev);\n }\n }\n /**\n * @hidden\n */\n handleKey(ev) {\n if (!this.overflows && (ev.keyCode === this.getPrevKey(this.overflows) || ev.keyCode === this.getNextKey(this.overflows))) {\n return false;\n }\n if (this.overflows) {\n const peekAtIndex = makePeeker(this.overflowButtons);\n const isUnmodified = areEqual(this.focusedIndex);\n this.focusedIndex = seekFocusedIndex(this.getPrevKey(), this.getNextKey(), peekAtIndex)(this.focusedIndex, ev);\n this.focusButton(this.focusedIndex, ev);\n return !isUnmodified(this.focusedIndex);\n }\n }\n focusButton(index, ev) {\n if (!ev.type || ev.type === 'focus' || ev.type === 'keydown') {\n this.overflowButtons[index].nativeElement.focus();\n }\n }\n};\nToolBarDropDownButtonComponent.ɵfac = function ToolBarDropDownButtonComponent_Factory(t) { return new (t || ToolBarDropDownButtonComponent)(); };\nToolBarDropDownButtonComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ToolBarDropDownButtonComponent, selectors: [[\"kendo-toolbar-dropdownbutton\"]], viewQuery: function ToolBarDropDownButtonComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c8, 7);\n ɵngcc0.ɵɵviewQuery(_c1, 7);\n ɵngcc0.ɵɵviewQuery(_c13, 7, ElementRef);\n ɵngcc0.ɵɵviewQuery(DropDownButtonComponent, 5);\n ɵngcc0.ɵɵviewQuery(_c14, 5);\n ɵngcc0.ɵɵviewQuery(_c15, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.toolbarTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.popupTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.dropdownButton = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.dropDownButtonComponent = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.toolbarDropDownButton = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.overflowDropDownButtonButtonList = _t.first);\n } }, inputs: { showText: \"showText\", showIcon: \"showIcon\", fillMode: \"fillMode\", themeColor: \"themeColor\", text: \"text\", icon: \"icon\", iconClass: \"iconClass\", imageUrl: \"imageUrl\", popupSettings: \"popupSettings\", look: \"look\", primary: \"primary\", data: \"data\", buttonClass: \"buttonClass\", textField: \"textField\", disabled: \"disabled\" }, outputs: { itemClick: \"itemClick\", open: \"open\", close: \"close\" }, exportAs: [\"kendoToolBarDropDownButton\"], features: [ɵngcc0.ɵɵProvidersFeature([{ provide: ToolBarToolComponent, useExisting: forwardRef(() => ToolBarDropDownButtonComponent_1) }]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 4, vars: 0, consts: [[\"toolbarTemplate\", \"\"], [\"popupTemplate\", \"\"], [3, \"icon\", \"iconClass\", \"imageUrl\", \"buttonClass\", \"disabled\", \"tabIndex\", \"data\", \"textField\", \"popupSettings\", \"fillMode\", \"themeColor\", \"open\", \"close\", \"itemClick\"], [\"toolbarDropDownButton\", \"\"], [\"type\", \"button\", \"tabindex\", \"-1\", \"kendoButton\", \"\", 1, \"k-overflow-button\", 3, \"disabled\", \"icon\", \"iconClass\", \"imageUrl\", \"ngClass\", \"click\"], [3, \"data\", \"disabled\", \"textField\", \"itemClick\", \"click\"], [\"overflowDropDownButtonButtonList\", \"\"]], template: function ToolBarDropDownButtonComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ToolBarDropDownButtonComponent_ng_template_0_Template, 3, 12, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(2, ToolBarDropDownButtonComponent_ng_template_2_Template, 4, 9, \"ng-template\", null, 1, ɵngcc0.ɵɵtemplateRefExtractor);\n } }, directives: [ɵngcc5.DropDownButtonComponent, ɵngcc5.ButtonDirective, ɵngcc3.NgClass, ToolBarButtonListComponent], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ToolBarDropDownButtonComponent.prototype, \"showText\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ToolBarDropDownButtonComponent.prototype, \"showIcon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ToolBarDropDownButtonComponent.prototype, \"text\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ToolBarDropDownButtonComponent.prototype, \"icon\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ToolBarDropDownButtonComponent.prototype, \"iconClass\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ToolBarDropDownButtonComponent.prototype, \"imageUrl\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], ToolBarDropDownButtonComponent.prototype, \"popupSettings\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ToolBarDropDownButtonComponent.prototype, \"look\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], ToolBarDropDownButtonComponent.prototype, \"primary\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ToolBarDropDownButtonComponent.prototype, \"fillMode\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ToolBarDropDownButtonComponent.prototype, \"themeColor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ToolBarDropDownButtonComponent.prototype, \"buttonClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ToolBarDropDownButtonComponent.prototype, \"textField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ToolBarDropDownButtonComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], ToolBarDropDownButtonComponent.prototype, \"data\", null);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ToolBarDropDownButtonComponent.prototype, \"itemClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ToolBarDropDownButtonComponent.prototype, \"open\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ToolBarDropDownButtonComponent.prototype, \"close\", void 0);\n__decorate([\n ViewChild('toolbarTemplate', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], ToolBarDropDownButtonComponent.prototype, \"toolbarTemplate\", void 0);\n__decorate([\n ViewChild('popupTemplate', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], ToolBarDropDownButtonComponent.prototype, \"popupTemplate\", void 0);\n__decorate([\n ViewChild('dropdownButton', { read: ElementRef, static: true }),\n __metadata(\"design:type\", ElementRef)\n], ToolBarDropDownButtonComponent.prototype, \"dropdownButton\", void 0);\n__decorate([\n ViewChild(DropDownButtonComponent, { static: false }),\n __metadata(\"design:type\", DropDownButtonComponent)\n], ToolBarDropDownButtonComponent.prototype, \"dropDownButtonComponent\", void 0);\n__decorate([\n ViewChild('toolbarDropDownButton', { static: false }),\n __metadata(\"design:type\", DropDownButtonComponent)\n], ToolBarDropDownButtonComponent.prototype, \"toolbarDropDownButton\", void 0);\n__decorate([\n ViewChild('overflowDropDownButtonButtonList', { static: false }),\n __metadata(\"design:type\", ToolBarButtonListComponent)\n], ToolBarDropDownButtonComponent.prototype, \"overflowDropDownButtonButtonList\", void 0);\nToolBarDropDownButtonComponent = ToolBarDropDownButtonComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [])\n], ToolBarDropDownButtonComponent);\n\nvar ToolBarSplitButtonComponent_1;\n/**\n * Represents the [Kendo UI ToolBar SplitButton for Angular]({% slug controltypes_toolbar %}#toc-splitbuttons).\n */\nlet ToolBarSplitButtonComponent = ToolBarSplitButtonComponent_1 = class ToolBarSplitButtonComponent extends ToolBarToolComponent {\n constructor() {\n super();\n // showText and showIcon showIcon should be declared first\n /**\n * Specifies where button text should be displayed\n */\n this.showText = 'both';\n /**\n * Specifies where button icon should be displayed\n */\n this.showIcon = 'both';\n /**\n * The fillMode property specifies the background and border styles of the Button.\n *\n * The available values are:\n * * `solid` (default)\n * * `flat`\n * * `outline`\n * * `link`\n * * `null`\n */\n this.fillMode = 'solid';\n /**\n * The Button allows you to specify predefined theme colors.\n * The theme color will be applied as a background and border color while also amending the text color accordingly.\n *\n * The possible values are:\n * * `base` —Applies coloring based on the `base` theme color. (default)\n * * `primary` —Applies coloring based on the `primary` theme color.\n * * `secondary`—Applies coloring based on the `secondary` theme color.\n * * `tertiary`— Applies coloring based on the `tertiary` theme color.\n * * `info`—Applies coloring based on the `info` theme color.\n * * `success`— Applies coloring based on the `success` theme color.\n * * `warning`— Applies coloring based on the `warning` theme color.\n * * `error`— Applies coloring based on the `error` theme color.\n * * `dark`— Applies coloring based on the `dark` theme color.\n * * `light`— Applies coloring based on the `light` theme color.\n * * `inverse`— Applies coloring based on the `inverse` theme color.\n * * `null` —Removes the default CSS class (no class would be rendered).\n */\n this.themeColor = 'base';\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 * Configures the text field of the button-list popup.\n */\n this.textField = 'text';\n /**\n * Fires each time the user clicks the main button.\n */\n this.buttonClick = new EventEmitter();\n /**\n * Fires each time the user clicks the drop-down list.\n * The event data contains the data item that is 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 this.toolbarOptions = {\n text: '',\n icon: '',\n iconClass: '',\n imageUrl: ''\n };\n this.overflowOptions = {\n text: '',\n icon: '',\n iconClass: '',\n imageUrl: ''\n };\n this._popupSettings = { animate: true, popupClass: '' };\n this.focusedIndex = -1;\n this.getNextKey = getNextKey();\n this.getPrevKey = getPrevKey();\n }\n /**\n * Sets the text of the SplitButton ([see example]({% slug controltypes_toolbar %}#toc-splitbuttons).\n */\n set text(text) {\n this.toolbarOptions.text = getValueForLocation(text, this.showText, false);\n this.overflowOptions.text = getValueForLocation(text, this.showText, true);\n }\n /**\n * Defines the icon that will be rendered next to the button text\n * ([see example]({% slug controltypes_toolbar %}#toc-splitbuttons)).\n */\n set icon(icon) {\n this.toolbarOptions.icon = getValueForLocation(icon, this.showIcon, false);\n this.overflowOptions.icon = getValueForLocation(icon, this.showIcon, true);\n }\n /**\n * Defines an icon with a custom CSS class that will be rendered next to the button text.\n */\n set iconClass(iconClass) {\n this.toolbarOptions.iconClass = getValueForLocation(iconClass, this.showIcon, false);\n this.overflowOptions.iconClass = getValueForLocation(iconClass, this.showIcon, true);\n }\n /**\n * Defines the location of an image that will be displayed next to the button text.\n */\n set imageUrl(imageUrl) {\n this.toolbarOptions.imageUrl = getValueForLocation(imageUrl, this.showIcon, false);\n this.overflowOptions.imageUrl = getValueForLocation(imageUrl, this.showIcon, true);\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 */\n set popupSettings(value) {\n this._popupSettings = value;\n }\n get popupSettings() {\n if (!this._popupSettings) {\n this._popupSettings = { animate: true, popupClass: '' };\n }\n return this._popupSettings;\n }\n /**\n * @hidden\n */\n set look(look) {\n if (look) {\n this.fillMode = look === 'default' ? 'solid' : look;\n }\n }\n /**\n * Sets the data of the SplitButton ([see example]({% slug controltypes_toolbar %}#toc-splitbuttons)).\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 get overflowButtons() {\n return [this.overflowSplitButton, ...this.overflowSplitButtonButtonList.buttons.toArray().filter(b => !b.nativeElement.disabled)];\n }\n /**\n * @hidden\n */\n onButtonListClick(ev) {\n this.focusedIndex = this.overflowButtons.findIndex(b => b.nativeElement.contains(ev.target));\n }\n /**\n * @hidden\n */\n onMainButtonClick(ev) {\n this.buttonClick.emit(ev);\n this.focusedIndex = 0;\n }\n /**\n * @hidden\n */\n canFocus() {\n return !this.disabled;\n }\n /**\n * @hidden\n */\n focus(ev = {}) {\n if (!this.overflows) {\n if (ev.type === 'focus' || ev.type === 'keydown') {\n this.toolbarSplitButton.focus();\n }\n }\n else if (this.overflowButtons.length > 0) {\n this.focusedIndex = getIndexOfFocused(this.getPrevKey(), this.getNextKey(), this.overflowButtons.map(ob => ob.nativeElement))(ev);\n this.focusButton(this.focusedIndex, ev);\n }\n }\n /**\n * @hidden\n */\n handleKey(ev) {\n if (!this.overflows && (ev.keyCode === this.getPrevKey(this.overflows) || ev.keyCode === this.getNextKey(this.overflows))) {\n return false;\n }\n if (this.overflows) {\n const peekAtIndex = makePeeker(this.overflowButtons);\n const isUnmodified = areEqual(this.focusedIndex);\n this.focusedIndex = seekFocusedIndex(this.getPrevKey(), this.getNextKey(), peekAtIndex)(this.focusedIndex, ev);\n this.focusButton(this.focusedIndex, ev);\n return !isUnmodified(this.focusedIndex);\n }\n }\n focusButton(index, ev) {\n if (!ev.type || ev.type === 'focus' || ev.type === 'keydown' || ev.type === 'click') {\n this.overflowButtons[index].nativeElement.focus();\n }\n }\n};\nToolBarSplitButtonComponent.ɵfac = function ToolBarSplitButtonComponent_Factory(t) { return new (t || ToolBarSplitButtonComponent)(); };\nToolBarSplitButtonComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ToolBarSplitButtonComponent, selectors: [[\"kendo-toolbar-splitbutton\"]], viewQuery: function ToolBarSplitButtonComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c8, 7);\n ɵngcc0.ɵɵviewQuery(_c1, 7);\n ɵngcc0.ɵɵviewQuery(_c16, 5);\n ɵngcc0.ɵɵviewQuery(_c17, 5, ElementRef);\n ɵngcc0.ɵɵviewQuery(_c18, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.toolbarTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.popupTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.toolbarSplitButton = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.overflowSplitButton = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.overflowSplitButtonButtonList = _t.first);\n } }, inputs: { showText: \"showText\", showIcon: \"showIcon\", fillMode: \"fillMode\", themeColor: \"themeColor\", arrowButtonIcon: \"arrowButtonIcon\", textField: \"textField\", text: \"text\", icon: \"icon\", iconClass: \"iconClass\", imageUrl: \"imageUrl\", popupSettings: \"popupSettings\", look: \"look\", data: \"data\", disabled: \"disabled\", buttonClass: \"buttonClass\", arrowButtonClass: \"arrowButtonClass\" }, outputs: { buttonClick: \"buttonClick\", itemClick: \"itemClick\", open: \"open\", close: \"close\" }, exportAs: [\"kendoToolBarSplitButton\"], features: [ɵngcc0.ɵɵProvidersFeature([{ provide: ToolBarToolComponent, useExisting: forwardRef(() => ToolBarSplitButtonComponent_1) }]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 4, vars: 0, consts: [[\"toolbarTemplate\", \"\"], [\"popupTemplate\", \"\"], [3, \"data\", \"text\", \"icon\", \"iconClass\", \"imageUrl\", \"buttonClass\", \"arrowButtonClass\", \"arrowButtonIcon\", \"disabled\", \"tabIndex\", \"textField\", \"popupSettings\", \"fillMode\", \"themeColor\", \"buttonClick\", \"open\", \"close\", \"itemClick\"], [\"toolbarSplitButton\", \"\"], [\"type\", \"button\", \"tabindex\", \"-1\", \"kendoButton\", \"\", 1, \"k-overflow-button\", 3, \"fillMode\", \"themeColor\", \"disabled\", \"icon\", \"iconClass\", \"imageUrl\", \"ngClass\", \"click\"], [\"overflowSplitButton\", \"\"], [3, \"data\", \"disabled\", \"fillMode\", \"themeColor\", \"textField\", \"itemClick\", \"click\"], [\"overflowSplitButtonButtonList\", \"\"]], template: function ToolBarSplitButtonComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ToolBarSplitButtonComponent_ng_template_0_Template, 2, 14, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(2, ToolBarSplitButtonComponent_ng_template_2_Template, 5, 13, \"ng-template\", null, 1, ɵngcc0.ɵɵtemplateRefExtractor);\n } }, directives: [ɵngcc5.SplitButtonComponent, ɵngcc5.ButtonDirective, ɵngcc3.NgClass, ToolBarButtonListComponent], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ToolBarSplitButtonComponent.prototype, \"showText\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ToolBarSplitButtonComponent.prototype, \"showIcon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ToolBarSplitButtonComponent.prototype, \"text\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ToolBarSplitButtonComponent.prototype, \"icon\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ToolBarSplitButtonComponent.prototype, \"iconClass\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ToolBarSplitButtonComponent.prototype, \"imageUrl\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ToolBarSplitButtonComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], ToolBarSplitButtonComponent.prototype, \"popupSettings\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ToolBarSplitButtonComponent.prototype, \"fillMode\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ToolBarSplitButtonComponent.prototype, \"themeColor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ToolBarSplitButtonComponent.prototype, \"look\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ToolBarSplitButtonComponent.prototype, \"buttonClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ToolBarSplitButtonComponent.prototype, \"arrowButtonClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ToolBarSplitButtonComponent.prototype, \"arrowButtonIcon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ToolBarSplitButtonComponent.prototype, \"textField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], ToolBarSplitButtonComponent.prototype, \"data\", null);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ToolBarSplitButtonComponent.prototype, \"buttonClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ToolBarSplitButtonComponent.prototype, \"itemClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ToolBarSplitButtonComponent.prototype, \"open\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ToolBarSplitButtonComponent.prototype, \"close\", void 0);\n__decorate([\n ViewChild('toolbarTemplate', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], ToolBarSplitButtonComponent.prototype, \"toolbarTemplate\", void 0);\n__decorate([\n ViewChild('popupTemplate', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], ToolBarSplitButtonComponent.prototype, \"popupTemplate\", void 0);\n__decorate([\n ViewChild('toolbarSplitButton', { static: false }),\n __metadata(\"design:type\", SplitButtonComponent)\n], ToolBarSplitButtonComponent.prototype, \"toolbarSplitButton\", void 0);\n__decorate([\n ViewChild('overflowSplitButton', { read: ElementRef, static: false }),\n __metadata(\"design:type\", ElementRef)\n], ToolBarSplitButtonComponent.prototype, \"overflowSplitButton\", void 0);\n__decorate([\n ViewChild('overflowSplitButtonButtonList', { static: false }),\n __metadata(\"design:type\", ToolBarButtonListComponent)\n], ToolBarSplitButtonComponent.prototype, \"overflowSplitButtonButtonList\", void 0);\nToolBarSplitButtonComponent = ToolBarSplitButtonComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [])\n], ToolBarSplitButtonComponent);\n\nvar ToolBarSeparatorComponent_1;\n/**\n * Represents the [Kendo UI ToolBar Separator for Angular]({% slug controltypes_toolbar %}#toc-separators).\n */\nlet ToolBarSeparatorComponent = ToolBarSeparatorComponent_1 = class ToolBarSeparatorComponent extends ToolBarToolComponent {\n constructor() {\n super();\n }\n /**\n * @hidden\n */\n canFocus() {\n return false;\n }\n // If this is not here, the docs display info from its parent(ToolBarToolComponent).\n /**\n * @hidden\n */\n focus() {\n /* noop */\n }\n // If this is not here, the docs display info from its parent(ToolBarToolComponent).\n /**\n * @hidden\n */\n handleKey() {\n return false;\n }\n ngAfterViewInit() {\n if (!this.popupTemplate) {\n this.popupTemplate = this.toolbarTemplate;\n }\n }\n};\nToolBarSeparatorComponent.ɵfac = function ToolBarSeparatorComponent_Factory(t) { return new (t || ToolBarSeparatorComponent)(); };\nToolBarSeparatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ToolBarSeparatorComponent, selectors: [[\"kendo-toolbar-separator\"]], viewQuery: function ToolBarSeparatorComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c1, 7);\n ɵngcc0.ɵɵviewQuery(_c8, 7);\n ɵngcc0.ɵɵviewQuery(_c19, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.popupTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.toolbarTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.separator = _t.first);\n } }, exportAs: [\"kendoToolBarSeparator\"], features: [ɵngcc0.ɵɵProvidersFeature([{ provide: ToolBarToolComponent, useExisting: forwardRef(() => ToolBarSeparatorComponent_1) }]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 2, vars: 0, consts: [[\"toolbarTemplate\", \"\"], [1, \"k-separator\"]], template: function ToolBarSeparatorComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ToolBarSeparatorComponent_ng_template_0_Template, 1, 0, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\n } }, encapsulation: 2 });\n__decorate([\n ViewChild('toolbarTemplate', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], ToolBarSeparatorComponent.prototype, \"toolbarTemplate\", void 0);\n__decorate([\n ViewChild('popupTemplate', { static: true }),\n __metadata(\"design:type\", TemplateRef)\n], ToolBarSeparatorComponent.prototype, \"popupTemplate\", void 0);\n__decorate([\n ViewChild('separator', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], ToolBarSeparatorComponent.prototype, \"separator\", void 0);\nToolBarSeparatorComponent = ToolBarSeparatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [])\n], ToolBarSeparatorComponent);\n\n/**\n * @hidden\n */\nlet RendererService = class RendererService {\n getElement() {\n return this.element.nativeElement;\n }\n querySelector(selector) {\n return this.element.nativeElement.querySelector(selector);\n }\n querySelectorAll(selector) {\n return this.element.nativeElement.querySelectorAll(selector);\n }\n findFocusable() {\n return findFocusable(this.element.nativeElement, false);\n }\n findFocusableChild(element) {\n if (!element) {\n element = this.findFocusable();\n }\n return findFocusableChild(element, false);\n }\n findNextFocusableSibling(element) {\n if (!element) {\n element = this.findFocusable();\n }\n return findFocusableSibling(element, false);\n }\n findPrevFocusableSibling(element) {\n if (!element) {\n element = this.findFocusable();\n }\n return findFocusableSibling(element, false, true);\n }\n setAttribute(element, attr, value) {\n this.renderer.setAttribute(element, attr, value);\n }\n};\nRendererService.ɵfac = function RendererService_Factory(t) { return new (t || RendererService)(); };\nRendererService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: RendererService, factory: function (t) { return RendererService.ɵfac(t); } });\n\n/**\n * @hidden\n */\nlet ToolBarRendererComponent = class ToolBarRendererComponent {\n constructor(element, renderer, rendererService, refreshService) {\n this.element = element;\n this.renderer = renderer;\n this.rendererService = rendererService;\n this.refreshService = refreshService;\n this.rendererClick = new EventEmitter();\n this.rendererService.element = element;\n this.rendererService.renderer = this;\n this.refreshSubscription = this.refreshService.onRefresh.subscribe((tool) => {\n if (this.tool === tool) {\n this.refresh();\n }\n });\n }\n onClick(ev) {\n this.rendererClick.emit({ context: this, event: ev });\n }\n ngOnInit() {\n if (this.resizable) {\n if (this.location === 'toolbar') {\n this.template = this.tool.toolbarTemplate;\n this.renderer.setStyle(this.element.nativeElement, 'visibility', 'hidden');\n this.renderer.setStyle(this.element.nativeElement, 'display', 'none');\n }\n else {\n this.template = this.tool.popupTemplate;\n this.renderer.setStyle(this.element.nativeElement, 'display', 'none');\n }\n }\n else {\n this.tool.overflows = false;\n this.template = this.tool.toolbarTemplate;\n this.renderer.setStyle(this.element.nativeElement, 'visibility', 'display');\n this.renderer.setStyle(this.element.nativeElement, 'display', 'inline-block');\n }\n }\n ngOnDestroy() {\n this.refreshSubscription.unsubscribe();\n }\n ngAfterViewInit() {\n if (this.resizable) {\n this.refresh();\n }\n }\n /**\n * @hidden\n */\n get width() {\n return this.tool.overflows ? 0 : outerWidth(this.element.nativeElement);\n }\n /**\n * @hidden\n */\n isDisplayed() {\n return this.element.nativeElement.style.display !== 'none';\n }\n /**\n * @hidden\n */\n refresh() {\n if (this.resizable) {\n if (this.location === 'toolbar') {\n this.renderer.setStyle(this.element.nativeElement, 'visibility', this.tool.visibility);\n this.renderer.setStyle(this.element.nativeElement, 'display', this.tool.toolbarDisplay);\n }\n else {\n this.renderer.setStyle(this.element.nativeElement, 'display', this.tool.overflowDisplay);\n }\n }\n }\n /**\n * @hidden\n */\n setAttribute(element, attr, value) {\n this.renderer.setAttribute(element, attr, value);\n }\n};\nToolBarRendererComponent.ɵfac = function ToolBarRendererComponent_Factory(t) { return new (t || ToolBarRendererComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(RendererService), ɵngcc0.ɵɵdirectiveInject(RefreshService)); };\nToolBarRendererComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ToolBarRendererComponent, selectors: [[\"kendo-toolbar-renderer\"]], hostBindings: function ToolBarRendererComponent_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function ToolBarRendererComponent_click_HostBindingHandler($event) { return ctx.onClick($event); });\n } }, inputs: { tool: \"tool\", location: \"location\", resizable: \"resizable\" }, outputs: { rendererClick: \"rendererClick\" }, exportAs: [\"kendoToolBarRenderer\"], features: [ɵngcc0.ɵɵProvidersFeature([RendererService])], decls: 2, vars: 2, consts: [[4, \"ngIf\"], [3, \"ngTemplateOutlet\"]], template: function ToolBarRendererComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ToolBarRendererComponent_ng_container_0_Template, 2, 1, \"ng-container\", 0);\n ɵngcc0.ɵɵtemplate(1, ToolBarRendererComponent_ng_container_1_Template, 2, 1, \"ng-container\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.location === \"toolbar\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.location === \"overflow\" && ctx.tool.responsive);\n } }, directives: [ɵngcc3.NgIf, ɵngcc3.NgTemplateOutlet], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", ToolBarToolComponent)\n], ToolBarRendererComponent.prototype, \"tool\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ToolBarRendererComponent.prototype, \"location\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ToolBarRendererComponent.prototype, \"resizable\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ToolBarRendererComponent.prototype, \"rendererClick\", void 0);\n__decorate([\n HostListener('click', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], ToolBarRendererComponent.prototype, \"onClick\", null);\nToolBarRendererComponent = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n Renderer2,\n RendererService,\n RefreshService])\n], ToolBarRendererComponent);\n\n/**\n * @hidden\n */\nclass ToolbarMessages extends ComponentMessages {\n}\nToolbarMessages.ɵfac = /*@__PURE__*/ function () { let ɵToolbarMessages_BaseFactory; return function ToolbarMessages_Factory(t) { return (ɵToolbarMessages_BaseFactory || (ɵToolbarMessages_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(ToolbarMessages)))(t || ToolbarMessages); }; }();\nToolbarMessages.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ToolbarMessages, inputs: { moreToolsTitle: \"moreToolsTitle\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ToolbarMessages.prototype, \"moreToolsTitle\", void 0);\n\nvar LocalizedToolbarMessagesDirective_1;\n/**\n * @hidden\n */\nlet LocalizedToolbarMessagesDirective = LocalizedToolbarMessagesDirective_1 = class LocalizedToolbarMessagesDirective extends ToolbarMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n};\nLocalizedToolbarMessagesDirective.ɵfac = function LocalizedToolbarMessagesDirective_Factory(t) { return new (t || LocalizedToolbarMessagesDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nLocalizedToolbarMessagesDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LocalizedToolbarMessagesDirective, selectors: [[\"\", \"kendoToolbarLocalizedMessages\", \"\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: ToolbarMessages,\n useExisting: forwardRef(() => LocalizedToolbarMessagesDirective_1) // tslint:disable-line:no-forward-ref\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature] });\nLocalizedToolbarMessagesDirective = LocalizedToolbarMessagesDirective_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], LocalizedToolbarMessagesDirective);\n\nvar ToolbarCustomMessagesComponent_1;\n/**\n * Custom component messages override default component messages.\n */\nlet ToolbarCustomMessagesComponent = ToolbarCustomMessagesComponent_1 = class ToolbarCustomMessagesComponent extends ToolbarMessages {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n};\nToolbarCustomMessagesComponent.ɵfac = function ToolbarCustomMessagesComponent_Factory(t) { return new (t || ToolbarCustomMessagesComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nToolbarCustomMessagesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ToolbarCustomMessagesComponent, selectors: [[\"kendo-toolbar-messages\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: ToolbarMessages,\n useExisting: forwardRef(() => ToolbarCustomMessagesComponent_1) // tslint:disable-line:no-forward-ref\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function ToolbarCustomMessagesComponent_Template(rf, ctx) { }, encapsulation: 2 });\nToolbarCustomMessagesComponent = ToolbarCustomMessagesComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], ToolbarCustomMessagesComponent);\n\nconst TOOLBAR_TOOLS = [\n ToolBarToolComponent,\n ToolBarButtonComponent,\n ToolBarButtonGroupComponent,\n ToolBarDropDownButtonComponent,\n ToolBarSplitButtonComponent,\n ToolBarSeparatorComponent\n];\nconst TOOLBAR_COMMON = [\n ToolBarRendererComponent,\n ToolBarButtonListComponent,\n ToolbarCustomMessagesComponent,\n LocalizedToolbarMessagesDirective\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }}) definition for the ToolBar component.\n *\n * The package exports:\n * - `ToolBarComponent`—The ToolBarComponent class.\n * - `ToolBarToolComponent`—The base Tool component class.\n * - `ToolBarButtonComponent`—The Button Tool component class.\n * - `ToolBarButtonGroupComponent`—The ButtonGroup Tool component class.\n * - `ToolBarDropDownButtonComponent`—The DropDownButton Tool component class.\n * - `ToolBarSplitButtonComponent`—The SplitButton Tool component class.\n * - `ToolBarSeparatorComponent`—The Separator Tool component class.\n */\nlet ToolBarModule = class ToolBarModule {\n};\nToolBarModule.ɵfac = function ToolBarModule_Factory(t) { return new (t || ToolBarModule)(); };\nToolBarModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: ToolBarModule });\nToolBarModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule, ButtonsModule, PopupModule, ResizeSensorModule]] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(RefreshService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigationService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc0.NgZone }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ToolBarToolComponent, [{\n type: Component,\n args: [{\n // tslint:disable-next-line:component-selector\n selector: 'toolbar-tool',\n template: ``\n }]\n }], function () { return []; }, { responsive: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ToolBarComponent, [{\n type: Component,\n args: [{\n exportAs: 'kendoToolBar',\n providers: [\n RefreshService,\n NavigationService,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.toolbar'\n }\n ],\n selector: 'kendo-toolbar',\n template: `\n \n \n \n \n \n \n \n \n \n
      \n \n
    • \n \n
    • \n
      \n
    \n
    \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }, { type: ɵngcc2.PopupService }, { type: RefreshService }, { type: NavigationService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ChangeDetectorRef }]; }, { overflow: [{\n type: Input\n }], tabindex: [{\n type: Input\n }], open: [{\n type: Output\n }], close: [{\n type: Output\n }], hostClasses: [{\n type: HostBinding,\n args: ['class.k-widget']\n }, {\n type: HostBinding,\n args: ['class.k-toolbar']\n }], resizable: [{\n type: Input\n }], popupSettings: [{\n type: Input\n }], tabIndex: [{\n type: Input,\n args: ['tabIndex']\n }], \n /**\n * @hidden\n */\n onFocus: [{\n type: HostListener,\n args: ['focus', ['$event']]\n }], \n /**\n * @hidden\n */\n onFocusOut: [{\n type: HostListener,\n args: ['focusout', ['$event']]\n }], getRole: [{\n type: HostBinding,\n args: ['attr.role']\n }], getDir: [{\n type: HostBinding,\n args: ['attr.dir']\n }], resizableClass: [{\n type: HostBinding,\n args: ['class.k-toolbar-resizable']\n }], allTools: [{\n type: ContentChildren,\n args: [ToolBarToolComponent]\n }], overflowButton: [{\n type: ViewChild,\n args: ['overflowButton', { static: false }]\n }], popupTemplate: [{\n type: ViewChild,\n args: ['popupTemplate', { static: true }]\n }], resizeSensor: [{\n type: ViewChild,\n args: ['resizeSensor', { static: false }]\n }], container: [{\n type: ViewChild,\n args: ['container', { read: ViewContainerRef, static: true }]\n }], renderedTools: [{\n type: ViewChildren,\n args: ['toolbarRenderer']\n }], overflowRenderedTools: [{\n type: ViewChildren,\n args: ['overflowRenderer']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ToolBarButtonComponent, [{\n type: Component,\n args: [{\n exportAs: 'kendoToolBarButton',\n // tslint:disable-next-line:no-forward-ref\n providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => ToolBarButtonComponent_1) }],\n selector: 'kendo-toolbar-button',\n template: `\n \n \n {{ toolbarOptions.text }}\n \n \n \n \n {{ overflowOptions.text }}\n \n \n `\n }]\n }], function () { return []; }, { showText: [{\n type: Input\n }], showIcon: [{\n type: Input\n }], toggleable: [{\n type: Input\n }], selected: [{\n type: Input\n }], fillMode: [{\n type: Input\n }], themeColor: [{\n type: Input\n }], click: [{\n type: Output\n }], pointerdown: [{\n type: Output\n }], selectedChange: [{\n type: Output\n }], text: [{\n type: Input\n }], look: [{\n type: Input\n }], togglable: [{\n type: Input\n }], icon: [{\n type: Input\n }], iconClass: [{\n type: Input\n }], imageUrl: [{\n type: Input\n }], style: [{\n type: Input\n }], className: [{\n type: Input\n }], title: [{\n type: Input\n }], disabled: [{\n type: Input\n }], toolbarTemplate: [{\n type: ViewChild,\n args: ['toolbarTemplate', { static: true }]\n }], popupTemplate: [{\n type: ViewChild,\n args: ['popupTemplate', { static: true }]\n }], toolbarButtonElement: [{\n type: ViewChild,\n args: ['toolbarButton', { read: ElementRef, static: false }]\n }], overflowButtonElement: [{\n type: ViewChild,\n args: ['overflowButton', { read: ElementRef, static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ToolBarButtonGroupComponent, [{\n type: Component,\n args: [{\n exportAs: 'kendoToolBarButtonGroup',\n // tslint:disable-next-line:no-forward-ref\n providers: [LocalizationService, { provide: ToolBarToolComponent, useExisting: forwardRef(() => ToolBarButtonGroupComponent_1) }],\n selector: 'kendo-toolbar-buttongroup',\n template: `\n \n \n \n {{ button.toolbarOptions.text }}\n \n \n \n \n \n \n {{ button.overflowOptions.text }}\n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, { selection: [{\n type: Input\n }], look: [{\n type: Input\n }], disabled: [{\n type: Input\n }], width: [{\n type: Input\n }], toolbarTemplate: [{\n type: ViewChild,\n args: ['toolbarTemplate', { static: true }]\n }], popupTemplate: [{\n type: ViewChild,\n args: ['popupTemplate', { static: true }]\n }], buttonComponents: [{\n type: ContentChildren,\n args: [forwardRef(() => ToolBarButtonComponent)]\n }], toolbarButtonGroup: [{\n type: ViewChild,\n args: ['toolbarButtonGroup', { static: false }]\n }], overflowButtonGroup: [{\n type: ViewChild,\n args: ['overflowButtonGroup', { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ToolBarButtonListComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-toolbar-buttonlist',\n template: `\n \n {{ getText(item) }}\n \n `\n }]\n }], function () { return []; }, { disabled: [{\n type: Input\n }], fillMode: [{\n type: Input\n }], themeColor: [{\n type: Input\n }], itemClick: [{\n type: Output\n }], data: [{\n type: Input\n }], textField: [{\n type: Input\n }], buttons: [{\n type: ViewChildren,\n args: ['button']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ToolBarDropDownButtonComponent, [{\n type: Component,\n args: [{\n exportAs: 'kendoToolBarDropDownButton',\n // tslint:disable-next-line:no-forward-ref\n providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => ToolBarDropDownButtonComponent_1) }],\n selector: 'kendo-toolbar-dropdownbutton',\n template: `\n \n \n {{ toolbarOptions.text }}\n \n \n \n \n {{ overflowOptions.text }}\n \n \n \n \n `\n }]\n }], function () { return []; }, { showText: [{\n type: Input\n }], showIcon: [{\n type: Input\n }], fillMode: [{\n type: Input\n }], themeColor: [{\n type: Input\n }], itemClick: [{\n type: Output\n }], open: [{\n type: Output\n }], close: [{\n type: Output\n }], text: [{\n type: Input\n }], icon: [{\n type: Input\n }], iconClass: [{\n type: Input\n }], imageUrl: [{\n type: Input\n }], popupSettings: [{\n type: Input\n }], look: [{\n type: Input\n }], primary: [{\n type: Input\n }], data: [{\n type: Input\n }], buttonClass: [{\n type: Input\n }], textField: [{\n type: Input\n }], disabled: [{\n type: Input\n }], toolbarTemplate: [{\n type: ViewChild,\n args: ['toolbarTemplate', { static: true }]\n }], popupTemplate: [{\n type: ViewChild,\n args: ['popupTemplate', { static: true }]\n }], dropdownButton: [{\n type: ViewChild,\n args: ['dropdownButton', { read: ElementRef, static: true }]\n }], dropDownButtonComponent: [{\n type: ViewChild,\n args: [DropDownButtonComponent, { static: false }]\n }], toolbarDropDownButton: [{\n type: ViewChild,\n args: ['toolbarDropDownButton', { static: false }]\n }], overflowDropDownButtonButtonList: [{\n type: ViewChild,\n args: ['overflowDropDownButtonButtonList', { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ToolBarSplitButtonComponent, [{\n type: Component,\n args: [{\n exportAs: 'kendoToolBarSplitButton',\n // tslint:disable-next-line:no-forward-ref\n providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => ToolBarSplitButtonComponent_1) }],\n selector: 'kendo-toolbar-splitbutton',\n template: `\n \n \n \n \n \n \n {{ overflowOptions.text }}\n \n \n \n \n `\n }]\n }], function () { return []; }, { showText: [{\n type: Input\n }], showIcon: [{\n type: Input\n }], fillMode: [{\n type: Input\n }], themeColor: [{\n type: Input\n }], arrowButtonIcon: [{\n type: Input\n }], textField: [{\n type: Input\n }], buttonClick: [{\n type: Output\n }], itemClick: [{\n type: Output\n }], open: [{\n type: Output\n }], close: [{\n type: Output\n }], text: [{\n type: Input\n }], icon: [{\n type: Input\n }], iconClass: [{\n type: Input\n }], imageUrl: [{\n type: Input\n }], popupSettings: [{\n type: Input\n }], look: [{\n type: Input\n }], data: [{\n type: Input\n }], disabled: [{\n type: Input\n }], buttonClass: [{\n type: Input\n }], arrowButtonClass: [{\n type: Input\n }], toolbarTemplate: [{\n type: ViewChild,\n args: ['toolbarTemplate', { static: true }]\n }], popupTemplate: [{\n type: ViewChild,\n args: ['popupTemplate', { static: true }]\n }], toolbarSplitButton: [{\n type: ViewChild,\n args: ['toolbarSplitButton', { static: false }]\n }], overflowSplitButton: [{\n type: ViewChild,\n args: ['overflowSplitButton', { read: ElementRef, static: false }]\n }], overflowSplitButtonButtonList: [{\n type: ViewChild,\n args: ['overflowSplitButtonButtonList', { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ToolBarSeparatorComponent, [{\n type: Component,\n args: [{\n exportAs: 'kendoToolBarSeparator',\n // tslint:disable-next-line:no-forward-ref\n providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => ToolBarSeparatorComponent_1) }],\n selector: 'kendo-toolbar-separator',\n template: `\n \n
    \n
    \n `\n }]\n }], function () { return []; }, { popupTemplate: [{\n type: ViewChild,\n args: ['popupTemplate', { static: true }]\n }], toolbarTemplate: [{\n type: ViewChild,\n args: ['toolbarTemplate', { static: true }]\n }], separator: [{\n type: ViewChild,\n args: ['separator', { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(RendererService, [{\n type: Injectable\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ToolBarRendererComponent, [{\n type: Component,\n args: [{\n exportAs: 'kendoToolBarRenderer',\n providers: [RendererService],\n selector: 'kendo-toolbar-renderer',\n template: `\n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: RendererService }, { type: RefreshService }]; }, { rendererClick: [{\n type: Output\n }], onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }], tool: [{\n type: Input\n }], location: [{\n type: Input\n }], resizable: [{\n type: Input\n }] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LocalizedToolbarMessagesDirective, [{\n type: Directive,\n args: [{\n providers: [\n {\n provide: ToolbarMessages,\n useExisting: forwardRef(() => LocalizedToolbarMessagesDirective_1) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: '[kendoToolbarLocalizedMessages]'\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ToolbarCustomMessagesComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: ToolbarMessages,\n useExisting: forwardRef(() => ToolbarCustomMessagesComponent_1) // tslint:disable-line:no-forward-ref\n }\n ],\n selector: 'kendo-toolbar-messages',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ToolBarModule, [{\n type: NgModule,\n args: [{\n declarations: [ToolBarComponent, TOOLBAR_TOOLS, TOOLBAR_COMMON],\n exports: [ToolBarComponent, TOOLBAR_TOOLS, ToolbarCustomMessagesComponent, LocalizedToolbarMessagesDirective],\n imports: [CommonModule, ButtonsModule, PopupModule, ResizeSensorModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(ToolBarModule, { declarations: function () { return [ToolBarComponent, ToolBarToolComponent, ToolBarButtonComponent, ToolBarButtonGroupComponent, ToolBarDropDownButtonComponent, ToolBarSplitButtonComponent, ToolBarSeparatorComponent, ToolBarRendererComponent, ToolBarButtonListComponent, ToolbarCustomMessagesComponent, LocalizedToolbarMessagesDirective]; }, imports: function () { return [CommonModule, ButtonsModule, PopupModule, ResizeSensorModule]; }, exports: function () { return [ToolBarComponent, ToolBarToolComponent, ToolBarButtonComponent, ToolBarButtonGroupComponent, ToolBarDropDownButtonComponent, ToolBarSplitButtonComponent, ToolBarSeparatorComponent, ToolbarCustomMessagesComponent, LocalizedToolbarMessagesDirective]; } }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ToolbarMessages, NavigationService, RefreshService, ToolBarRendererComponent, RendererService, ToolBarButtonListComponent, ToolBarComponent, ToolBarToolComponent, ToolBarButtonComponent, ToolBarButtonGroupComponent, ToolBarDropDownButtonComponent, ToolBarSplitButtonComponent, ToolBarSeparatorComponent, ToolBarModule, LocalizedToolbarMessagesDirective, ToolbarCustomMessagesComponent };\n\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, __param, __metadata } from 'tslib';\nimport { Directive, Optional, TemplateRef, QueryList, Input, ContentChildren, ContentChild, InjectionToken, EventEmitter, Injectable, Component, forwardRef, SkipSelf, Host, NgZone, ChangeDetectorRef, isDevMode, Renderer2, SecurityContext, ElementRef, Output, HostBinding, ViewChild, ViewChildren, ChangeDetectionStrategy, ViewEncapsulation, Inject, Self, ViewContainerRef, Pipe, NgModule, ComponentFactoryResolver, HostListener } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, FormGroup, NG_VALUE_ACCESSOR, ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport { merge, of, fromEvent, BehaviorSubject, Subscription, isObservable, Subject, zip, from, interval, Observable } from 'rxjs';\nimport { auditTime, take, switchMap, map, distinctUntilChanged, filter, tap, throttleTime, takeUntil, switchMapTo, delay, debounceTime, bufferCount } from 'rxjs/operators';\nimport { validatePackage } from '@progress/kendo-licensing';\nimport { isDocumentAvailable, Keys, hasObservers, anyChanged, isChanged, ResizeSensorComponent, DraggableModule, ResizeSensorModule, EventsModule, DraggableDirective, guid } from '@progress/kendo-angular-common';\nimport { orderBy, isCompositeFilterDescriptor, process, aggregateBy } 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, setter } from '@progress/kendo-common';\nimport { DropDownListComponent, DropDownListModule, AutoCompleteModule, DropDownsModule } 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 { LabelModule } from '@progress/kendo-angular-label';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { Button } from '@progress/kendo-angular-buttons';\nimport { PDFExportMarginComponent, PDFExportTemplateDirective, 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 */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@progress/kendo-angular-popup';\nimport * as ɵngcc2 from '@progress/kendo-angular-l10n';\nimport * as ɵngcc3 from '@angular/platform-browser';\nimport * as ɵngcc4 from '@angular/common';\nimport * as ɵngcc5 from '@progress/kendo-angular-common';\nimport * as ɵngcc6 from '@progress/kendo-angular-inputs';\nimport * as ɵngcc7 from '@angular/forms';\nimport * as ɵngcc8 from '@progress/kendo-angular-dropdowns';\nimport * as ɵngcc9 from '@progress/kendo-angular-dateinputs';\nimport * as ɵngcc10 from '@progress/kendo-angular-intl';\nimport * as ɵngcc11 from '@progress/kendo-angular-label';\n\nconst _c0 = [\"lockedHeader\"];\nconst _c1 = [\"header\"];\nconst _c2 = [\"ariaRoot\"];\nconst _c3 = [\"footer\"];\nfunction TreeListComponent_kendo_treelist_toolbar_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-treelist-toolbar\", 7);\n} }\nfunction TreeListComponent_ng_template_4_div_0_div_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 18, 19)(2, \"table\", 20);\n ɵngcc0.ɵɵelement(3, \"colgroup\", 15)(4, \"thead\", 21);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r7 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵstyleProp(\"width\", ctx_r7.lockedWidth, \"px\");\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵstyleProp(\"width\", ctx_r7.lockedWidth, \"px\");\n ɵngcc0.ɵɵproperty(\"locked\", true);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"columns\", ctx_r7.lockedLeafColumns);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"resizable\", ctx_r7.resizable)(\"scrollable\", true)(\"columns\", ctx_r7.lockedColumns)(\"totalColumnLevels\", ctx_r7.totalColumnLevels)(\"sort\", ctx_r7.sort)(\"filter\", ctx_r7.filter)(\"filterable\", ctx_r7.filterable)(\"reorderable\", ctx_r7.reorderable)(\"sortable\", ctx_r7.sortable)(\"columnMenu\", ctx_r7.columnMenuOptions)(\"columnMenuTemplate\", ctx_r7.columnMenuTemplate)(\"totalColumnsCount\", ctx_r7.leafColumns.length);\n} }\nfunction TreeListComponent_ng_template_4_div_0_div_7_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 22);\n ɵngcc0.ɵɵelement(1, \"div\");\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r9 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵstyleProp(\"width\", ctx_r9.columnsContainer.unlockedWidth, \"px\");\n} }\nfunction TreeListComponent_ng_template_4_div_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 10);\n ɵngcc0.ɵɵtemplate(1, TreeListComponent_ng_template_4_div_0_div_1_Template, 5, 18, \"div\", 11);\n ɵngcc0.ɵɵelementStart(2, \"div\", 12, 13)(4, \"table\", 14);\n ɵngcc0.ɵɵelement(5, \"colgroup\", 15)(6, \"thead\", 16);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(7, TreeListComponent_ng_template_4_div_0_div_7_Template, 2, 2, \"div\", 17);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r6 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵstyleProp(\"padding\", ctx_r6.headerPadding);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r6.isLocked);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"kendoTreeListResizableContainer\", ctx_r6.lockedLeafColumns.length)(\"lockedWidth\", ctx_r6.lockedWidth + ctx_r6.scrollbarWidth + 2);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵstyleProp(\"width\", ctx_r6.nonLockedWidth, \"px\");\n ɵngcc0.ɵɵproperty(\"virtualColumns\", ctx_r6.virtualColumns);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"columns\", ctx_r6.headerLeafColumns);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"resizable\", ctx_r6.resizable)(\"scrollable\", true)(\"columns\", ctx_r6.headerColumns)(\"totalColumnLevels\", ctx_r6.totalColumnLevels)(\"sort\", ctx_r6.sort)(\"filter\", ctx_r6.filter)(\"filterable\", ctx_r6.filterable)(\"reorderable\", ctx_r6.reorderable)(\"sortable\", ctx_r6.sortable)(\"columnMenu\", ctx_r6.columnMenuOptions)(\"columnMenuTemplate\", ctx_r6.columnMenuTemplate)(\"lockedColumnsCount\", ctx_r6.lockedLeafColumns.length)(\"totalColumnsCount\", ctx_r6.leafColumns.length);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r6.virtualColumns);\n} }\nfunction TreeListComponent_ng_template_4_Template(rf, ctx) { if (rf & 1) {\n const _r12 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵtemplate(0, TreeListComponent_ng_template_4_div_0_Template, 8, 23, \"div\", 8);\n ɵngcc0.ɵɵelementStart(1, \"kendo-treelist-list\", 9);\n ɵngcc0.ɵɵlistener(\"pageChange\", function TreeListComponent_ng_template_4_Template_kendo_treelist_list_pageChange_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r12); const ctx_r11 = ɵngcc0.ɵɵnextContext(); return ctx_r11.notifyPageChange(\"list\", $event); })(\"scrollBottom\", function TreeListComponent_ng_template_4_Template_kendo_treelist_list_scrollBottom_1_listener() { ɵngcc0.ɵɵrestoreView(_r12); const ctx_r13 = ɵngcc0.ɵɵnextContext(); return ctx_r13.notifyScrollBottom(); })(\"contentScroll\", function TreeListComponent_ng_template_4_Template_kendo_treelist_list_contentScroll_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r12); const ctx_r14 = ɵngcc0.ɵɵnextContext(); return ctx_r14.contentScroll.emit($event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r2.hideHeader);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"view\", ctx_r2.view)(\"loading\", ctx_r2.showLoading)(\"rowHeight\", ctx_r2.rowHeight)(\"total\", ctx_r2.totalCount)(\"take\", ctx_r2.pageSize)(\"skip\", ctx_r2.skip)(\"trackBy\", ctx_r2.trackBy)(\"columns\", ctx_r2.columnsContainer)(\"filterable\", ctx_r2.filterable)(\"noRecordsTemplate\", ctx_r2.noRecordsTemplate)(\"rowClass\", ctx_r2.rowClass)(\"isVirtual\", ctx_r2.isVirtual)(\"virtualColumns\", ctx_r2.virtualColumns)(\"expandIcons\", ctx_r2.expandIcons)(\"enableDrag\", ctx_r2.marqueeSelection);\n} }\nfunction TreeListComponent_ng_template_5_thead_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"thead\", 27);\n} if (rf & 2) {\n const ctx_r15 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"resizable\", ctx_r15.resizable)(\"scrollable\", false)(\"columns\", ctx_r15.visibleColumns)(\"totalColumnLevels\", ctx_r15.totalColumnLevels)(\"reorderable\", ctx_r15.reorderable)(\"sort\", ctx_r15.sort)(\"sortable\", ctx_r15.sortable)(\"filter\", ctx_r15.filter)(\"filterable\", ctx_r15.filterable)(\"columnMenu\", ctx_r15.columnMenuOptions)(\"columnMenuTemplate\", ctx_r15.columnMenuTemplate);\n} }\nfunction TreeListComponent_ng_template_5_div_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"div\", 28);\n} }\nfunction TreeListComponent_ng_template_5_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"table\");\n ɵngcc0.ɵɵelement(1, \"colgroup\", 23);\n ɵngcc0.ɵɵtemplate(2, TreeListComponent_ng_template_5_thead_2_Template, 1, 11, \"thead\", 24);\n ɵngcc0.ɵɵelement(3, \"tbody\", 25);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(4, TreeListComponent_ng_template_5_div_4_Template, 1, 0, \"div\", 26);\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵstyleProp(\"table-layout\", ctx_r3.resizable ? \"fixed\" : null);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"columns\", ctx_r3.leafColumns);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r3.hideHeader);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"view\", ctx_r3.view)(\"skip\", ctx_r3.skip)(\"columns\", ctx_r3.leafColumns)(\"filterable\", ctx_r3.filterable)(\"noRecordsTemplate\", ctx_r3.noRecordsTemplate)(\"trackBy\", ctx_r3.trackBy)(\"rowClass\", ctx_r3.rowClass)(\"expandIcons\", ctx_r3.expandIcons)(\"enableDrag\", ctx_r3.marqueeSelection);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r3.showLoading);\n} }\nfunction TreeListComponent_kendo_treelist_pager_6_Template(rf, ctx) { if (rf & 1) {\n const _r18 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-treelist-pager\", 29);\n ɵngcc0.ɵɵlistener(\"pageChange\", function TreeListComponent_kendo_treelist_pager_6_Template_kendo_treelist_pager_pageChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r18); const ctx_r17 = ɵngcc0.ɵɵnextContext(); return ctx_r17.notifyPageChange(\"pager\", $event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"template\", ctx_r4.pagerTemplate)(\"pageSize\", ctx_r4.pageSize)(\"total\", ctx_r4.view.totalVisible)(\"allCount\", ctx_r4.view.total)(\"skip\", ctx_r4.skip)(\"options\", ctx_r4.pageable);\n} }\nfunction TreeListComponent_kendo_treelist_toolbar_7_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-treelist-toolbar\", 30);\n} }\nconst _c102 = [\"container\"];\nconst _c103 = [\"table\"];\nconst _c104 = [\"lockedContainer\"];\nconst _c105 = [\"lockedTable\"];\nfunction ListComponent_div_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 12, 13)(2, \"div\", 3)(3, \"table\", 14, 15);\n ɵngcc0.ɵɵelement(5, \"colgroup\", 6)(6, \"tbody\", 16);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelement(7, \"kendo-resize-sensor\");\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(8, \"div\", 9);\n ɵngcc0.ɵɵelement(9, \"div\");\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵstyleProp(\"width\", ctx_r0.lockedWidth, \"px\");\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵstyleProp(\"width\", ctx_r0.lockedWidth, \"px\");\n ɵngcc0.ɵɵproperty(\"locked\", true);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"columns\", ctx_r0.lockedLeafColumns);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"isLocked\", true)(\"view\", ctx_r0.view)(\"noRecordsText\", \"\")(\"columns\", ctx_r0.lockedLeafColumns)(\"totalColumnsCount\", ctx_r0.leafColumns.length)(\"skip\", ctx_r0.skip)(\"trackBy\", ctx_r0.trackBy)(\"filterable\", ctx_r0.filterable)(\"rowClass\", ctx_r0.rowClass)(\"expandIcons\", ctx_r0.expandIcons);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵstyleProp(\"height\", ctx_r0.totalHeight, \"px\");\n} }\nfunction ListComponent_kendo_resize_sensor_8_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-resize-sensor\");\n} }\nfunction ListComponent_kendo_resize_sensor_9_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-resize-sensor\");\n} }\nfunction ListComponent_div_12_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 17);\n ɵngcc0.ɵɵelement(1, \"div\");\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r5 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵstyleProp(\"width\", ctx_r5.totalWidth, \"px\");\n} }\nfunction ListComponent_div_13_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"div\", 18);\n} }\nconst _c106 = [\"kendoTreeListFilterRow\", \"\"];\nfunction FilterRowComponent_td_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"td\", 1);\n} if (rf & 2) {\n const column_r1 = ctx.$implicit;\n const columnIndex_r2 = ctx.index;\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"column\", column_r1)(\"filter\", ctx_r0.filter)(\"logicalRowIndex\", ctx_r0.logicalRowIndex)(\"logicalColIndex\", ctx_r0.lockedColumnsCount + columnIndex_r2)(\"column\", column_r1)(\"colIndex\", columnIndex_r2);\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx_r0.filterLabel);\n} }\nconst _c107 = [\"kendoTreeListFilterCell\", \"\"];\nfunction FilterCellComponent_ng_template_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵelementContainer(1, 3);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"column\", ctx_r1.column)(\"filter\", ctx_r1.filter);\n} }\nfunction FilterCellComponent_ng_template_0_ng_container_2_1_ng_template_0_Template(rf, ctx) { }\nfunction FilterCellComponent_ng_template_0_ng_container_2_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, FilterCellComponent_ng_template_0_ng_container_2_1_ng_template_0_Template, 0, 0, \"ng-template\", 5);\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.column.filterCellTemplateRef)(\"ngTemplateOutletContext\", ctx_r3.templateContext);\n} }\nfunction FilterCellComponent_ng_template_0_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, FilterCellComponent_ng_template_0_ng_container_2_1_Template, 1, 2, null, 4);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r2.column.filterCellTemplateRef);\n} }\nfunction FilterCellComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0, 1);\n ɵngcc0.ɵɵtemplate(1, FilterCellComponent_ng_template_0_ng_container_1_Template, 2, 2, \"ng-container\", 2);\n ɵngcc0.ɵɵtemplate(2, FilterCellComponent_ng_template_0_ng_container_2_Template, 2, 1, \"ng-container\", 2);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngSwitch\", ctx_r0.hasTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngSwitchCase\", false);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngSwitchCase\", true);\n} }\nconst _c108 = [\"*\"];\nconst _c109 = [\"dropdown\"];\nconst _c110 = function () { return { width: \"auto\" }; };\nfunction FilterCellOperatorsComponent_kendo_dropdownlist_0_Template(rf, ctx) { if (rf & 1) {\n const _r4 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-dropdownlist\", 2, 3);\n ɵngcc0.ɵɵlistener(\"valueChange\", function FilterCellOperatorsComponent_kendo_dropdownlist_0_Template_kendo_dropdownlist_valueChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r4); const ctx_r3 = ɵngcc0.ɵɵnextContext(); return ctx_r3.onChange($event); })(\"keydown\", function FilterCellOperatorsComponent_kendo_dropdownlist_0_Template_kendo_dropdownlist_keydown_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r4); const ctx_r5 = ɵngcc0.ɵɵnextContext(); return ctx_r5.dropdownKeydown($event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"data\", ctx_r0.operators)(\"value\", ctx_r0.value)(\"valuePrimitive\", true)(\"popupSettings\", ɵngcc0.ɵɵpureFunction0(4, _c110));\n} }\nfunction FilterCellOperatorsComponent_button_1_Template(rf, ctx) { if (rf & 1) {\n const _r7 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 4);\n ɵngcc0.ɵɵlistener(\"click\", function FilterCellOperatorsComponent_button_1_Template_button_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r7); const ctx_r6 = ɵngcc0.ɵɵnextContext(); return ctx_r6.clearClick(); })(\"keydown\", function FilterCellOperatorsComponent_button_1_Template_button_keydown_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r7); const ctx_r8 = ɵngcc0.ɵɵnextContext(); return ctx_r8.clearKeydown($event); });\n ɵngcc0.ɵɵelement(1, \"span\", 5);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"title\", ctx_r1.clearText);\n} }\nconst _c111 = [\"kendoTreeListColGroup\", \"\"];\nfunction ColGroupComponent_col_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"col\");\n} if (rf & 2) {\n const column_r1 = ctx.$implicit;\n ɵngcc0.ɵɵstyleProp(\"width\", column_r1.width, \"px\");\n} }\nconst _c112 = [\"kendoTreeListLoading\", \"\"];\nfunction PagerComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 3);\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.template.templateRef)(\"ngTemplateOutletContext\", ctx_r0.templateContext);\n} }\nfunction PagerComponent_ng_container_1_kendo_treelist_pager_prev_buttons_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-treelist-pager-prev-buttons\");\n} }\nfunction PagerComponent_ng_container_1_kendo_treelist_pager_numeric_buttons_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-treelist-pager-numeric-buttons\", 6);\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"buttonCount\", ctx_r4.settings.buttonCount);\n} }\nfunction PagerComponent_ng_container_1_kendo_treelist_pager_input_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-treelist-pager-input\");\n} }\nfunction PagerComponent_ng_container_1_kendo_treelist_pager_next_buttons_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-treelist-pager-next-buttons\");\n} }\nfunction PagerComponent_ng_container_1_kendo_treelist_pager_info_5_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-treelist-pager-info\");\n} }\nfunction PagerComponent_ng_container_1_kendo_treelist_pager_page_sizes_6_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-treelist-pager-page-sizes\", 7);\n} if (rf & 2) {\n const ctx_r8 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"pageSizes\", ctx_r8.settings.pageSizes);\n} }\nfunction PagerComponent_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, PagerComponent_ng_container_1_kendo_treelist_pager_prev_buttons_1_Template, 1, 0, \"kendo-treelist-pager-prev-buttons\", 1);\n ɵngcc0.ɵɵtemplate(2, PagerComponent_ng_container_1_kendo_treelist_pager_numeric_buttons_2_Template, 1, 1, \"kendo-treelist-pager-numeric-buttons\", 4);\n ɵngcc0.ɵɵtemplate(3, PagerComponent_ng_container_1_kendo_treelist_pager_input_3_Template, 1, 0, \"kendo-treelist-pager-input\", 1);\n ɵngcc0.ɵɵtemplate(4, PagerComponent_ng_container_1_kendo_treelist_pager_next_buttons_4_Template, 1, 0, \"kendo-treelist-pager-next-buttons\", 1);\n ɵngcc0.ɵɵtemplate(5, PagerComponent_ng_container_1_kendo_treelist_pager_info_5_Template, 1, 0, \"kendo-treelist-pager-info\", 1);\n ɵngcc0.ɵɵtemplate(6, PagerComponent_ng_container_1_kendo_treelist_pager_page_sizes_6_Template, 1, 1, \"kendo-treelist-pager-page-sizes\", 5);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r1.settings.previousNext);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r1.settings.type === \"numeric\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r1.settings.type === \"input\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r1.settings.previousNext);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r1.settings.info);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r1.settings.pageSizes);\n} }\nfunction PagerComponent_kendo_resize_sensor_2_Template(rf, ctx) { if (rf & 1) {\n const _r10 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-resize-sensor\", 8);\n ɵngcc0.ɵɵlistener(\"resize\", function PagerComponent_kendo_resize_sensor_2_Template_kendo_resize_sensor_resize_0_listener() { ɵngcc0.ɵɵrestoreView(_r10); const ctx_r9 = ɵngcc0.ɵɵnextContext(); return ctx_r9.resizeHandler(); });\n ɵngcc0.ɵɵelementEnd();\n} }\nconst _c113 = function (a2) { return { \"k-link\": true, \"k-pager-nav\": true, \"k-state-disabled\": a2, \"k-pager-first\": true }; };\nconst _c114 = function () { return { \"k-icon\": true, \"k-i-seek-w\": true }; };\nconst _c115 = function (a2) { return { \"k-link\": true, \"k-pager-nav\": true, \"k-state-disabled\": a2, \"\": true }; };\nconst _c116 = function () { return { \"k-icon\": true, \"k-i-arrow-w\": true }; };\nconst _c117 = function () { return { \"k-icon\": true, \"k-i-arrow-e\": true }; };\nconst _c118 = function (a2) { return { \"k-link\": true, \"k-pager-nav\": true, \"k-state-disabled\": a2, \"k-pager-last\": true }; };\nconst _c119 = function () { return { \"k-icon\": true, \"k-i-seek-e\": true }; };\nfunction PagerNumericButtonsComponent_option_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"option\", 7);\n ɵngcc0.ɵɵtext(1, \"... \");\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx_r0.pageLabel(ctx_r0.start - 1));\n} }\nconst _c120 = function (a1) { return { \"k-link\": true, \"k-state-selected\": a1 }; };\nfunction PagerNumericButtonsComponent_option_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"option\", 8);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const num_r6 = ctx.$implicit;\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"value\", num_r6.toString())(\"ngClass\", ɵngcc0.ɵɵpureFunction1(5, _c120, ctx_r1.currentPage == num_r6));\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx_r1.pageLabel(num_r6))(\"aria-current\", ctx_r1.currentPage == num_r6 ? \"page\" : undefined);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", num_r6, \" \");\n} }\nfunction PagerNumericButtonsComponent_option_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"option\", 9);\n ɵngcc0.ɵɵtext(1, \"... \");\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx_r2.pageLabel(ctx_r2.end + 1));\n} }\nfunction PagerNumericButtonsComponent_li_5_Template(rf, ctx) { if (rf & 1) {\n const _r8 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\")(1, \"a\", 10);\n ɵngcc0.ɵɵlistener(\"click\", function PagerNumericButtonsComponent_li_5_Template_a_click_1_listener() { ɵngcc0.ɵɵrestoreView(_r8); const ctx_r7 = ɵngcc0.ɵɵnextContext(); return ctx_r7.changePage(ctx_r7.start - 2); });\n ɵngcc0.ɵɵtext(2, \"...\");\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx_r3.pageLabel(ctx_r3.start - 1));\n} }\nfunction PagerNumericButtonsComponent_li_6_Template(rf, ctx) { if (rf & 1) {\n const _r11 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\")(1, \"a\", 11);\n ɵngcc0.ɵɵlistener(\"click\", function PagerNumericButtonsComponent_li_6_Template_a_click_1_listener() { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r11); const num_r9 = restoredCtx.$implicit; const ctx_r10 = ɵngcc0.ɵɵnextContext(); return ctx_r10.changePage(num_r9 - 1); });\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const num_r9 = ctx.$implicit;\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction1(3, _c120, ctx_r4.currentPage == num_r9));\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx_r4.pageLabel(num_r9));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", num_r9, \" \");\n} }\nfunction PagerNumericButtonsComponent_li_7_Template(rf, ctx) { if (rf & 1) {\n const _r13 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\")(1, \"a\", 10);\n ɵngcc0.ɵɵlistener(\"click\", function PagerNumericButtonsComponent_li_7_Template_a_click_1_listener() { ɵngcc0.ɵɵrestoreView(_r13); const ctx_r12 = ɵngcc0.ɵɵnextContext(); return ctx_r12.changePage(ctx_r12.end); });\n ɵngcc0.ɵɵtext(2, \"...\");\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r5 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx_r5.pageLabel(ctx_r5.end + 1));\n} }\nconst _c121 = function () { return { \"k-pager-numbers\": true, \"k-reset\": true }; };\nconst _c122 = function () { return { \"k-pager-input\": true, \"k-label\": true }; };\nconst _c123 = function (a0, a1) { return { keydown: a0, focusout: a1 }; };\nconst _c124 = [\"kendoTreeListHeader\", \"\"];\nfunction HeaderComponent_tr_0_ng_template_1_th_0_ng_template_1_kendo_treelist_filter_menu_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-treelist-filter-menu\", 13);\n} if (rf & 2) {\n const column_r5 = ɵngcc0.ɵɵnextContext(3).$implicit;\n const ctx_r14 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"column\", column_r5)(\"filter\", ctx_r14.filter);\n} }\nfunction HeaderComponent_tr_0_ng_template_1_th_0_ng_template_1_kendo_treelist_column_menu_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-treelist-column-menu\", 14);\n} if (rf & 2) {\n const column_r5 = ɵngcc0.ɵɵnextContext(3).$implicit;\n const ctx_r15 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"standalone\", false)(\"settings\", ctx_r15.columnMenu)(\"column\", column_r5)(\"columnMenuTemplate\", ctx_r15.columnMenuTemplate)(\"sort\", ctx_r15.sort)(\"filter\", ctx_r15.filter)(\"sortable\", ctx_r15.sortable);\n} }\nfunction HeaderComponent_tr_0_ng_template_1_th_0_ng_template_1_ng_template_2_Template(rf, ctx) { }\nfunction HeaderComponent_tr_0_ng_template_1_th_0_ng_template_1_ng_template_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n} if (rf & 2) {\n const column_r5 = ɵngcc0.ɵɵnextContext(3).$implicit;\n ɵngcc0.ɵɵtextInterpolate(column_r5.displayTitle);\n} }\nconst _c125 = function (a0, a1, a2, a3) { return { templateRef: a0, columnIndex: a1, column: a2, $implicit: a3 }; };\nfunction HeaderComponent_tr_0_ng_template_1_th_0_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, HeaderComponent_tr_0_ng_template_1_th_0_ng_template_1_kendo_treelist_filter_menu_0_Template, 1, 2, \"kendo-treelist-filter-menu\", 10);\n ɵngcc0.ɵɵtemplate(1, HeaderComponent_tr_0_ng_template_1_th_0_ng_template_1_kendo_treelist_column_menu_1_Template, 1, 7, \"kendo-treelist-column-menu\", 11);\n ɵngcc0.ɵɵtemplate(2, HeaderComponent_tr_0_ng_template_1_th_0_ng_template_1_ng_template_2_Template, 0, 0, \"ng-template\", 12);\n ɵngcc0.ɵɵtemplate(3, HeaderComponent_tr_0_ng_template_1_th_0_ng_template_1_ng_template_3_Template, 1, 1, \"ng-template\", 7);\n} if (rf & 2) {\n const column_r5 = ɵngcc0.ɵɵnextContext(2).$implicit;\n const ctx_r10 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r10.showFilterMenu && ctx_r10.isFilterable(column_r5));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r10.showColumnMenu(column_r5));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction4(4, _c125, column_r5.headerTemplateRef, column_r5.leafIndex, column_r5, column_r5));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !column_r5.headerTemplateRef);\n} }\nfunction HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_ng_template_3_Template(rf, ctx) { }\nfunction HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_ng_template_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 21);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const column_r5 = ɵngcc0.ɵɵnextContext(3).$implicit;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(column_r5.displayTitle);\n} }\nfunction HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_span_6_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 22);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const column_r5 = ɵngcc0.ɵɵnextContext(3).$implicit;\n const ctx_r25 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r25.sortOrder(column_r5.field));\n} }\nfunction HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_kendo_treelist_filter_menu_8_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-treelist-filter-menu\", 13);\n} if (rf & 2) {\n const column_r5 = ɵngcc0.ɵɵnextContext(3).$implicit;\n const ctx_r26 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"column\", column_r5)(\"filter\", ctx_r26.filter);\n} }\nfunction HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_kendo_treelist_column_menu_9_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-treelist-column-menu\", 14);\n} if (rf & 2) {\n const column_r5 = ɵngcc0.ɵɵnextContext(3).$implicit;\n const ctx_r27 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"standalone\", false)(\"settings\", ctx_r27.columnMenu)(\"column\", column_r5)(\"columnMenuTemplate\", ctx_r27.columnMenuTemplate)(\"sort\", ctx_r27.sort)(\"filter\", ctx_r27.filter)(\"sortable\", ctx_r27.sortable);\n} }\nfunction HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n const _r34 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"span\", 15)(1, \"a\", 16, 17);\n ɵngcc0.ɵɵlistener(\"click\", function HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_Template_a_click_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r34); const _r22 = ɵngcc0.ɵɵreference(2); const column_r5 = ɵngcc0.ɵɵnextContext(2).$implicit; const ctx_r32 = ɵngcc0.ɵɵnextContext(2); return ctx_r32.sortColumn(column_r5, $event, _r22); });\n ɵngcc0.ɵɵtemplate(3, HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_ng_template_3_Template, 0, 0, \"ng-template\", 12);\n ɵngcc0.ɵɵtemplate(4, HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_ng_template_4_Template, 2, 1, \"ng-template\", 7);\n ɵngcc0.ɵɵelement(5, \"span\", 18);\n ɵngcc0.ɵɵtemplate(6, HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_span_6_Template, 2, 1, \"span\", 19);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelement(7, \"span\", 20);\n ɵngcc0.ɵɵtemplate(8, HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_kendo_treelist_filter_menu_8_Template, 1, 2, \"kendo-treelist-filter-menu\", 10);\n ɵngcc0.ɵɵtemplate(9, HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_kendo_treelist_column_menu_9_Template, 1, 7, \"kendo-treelist-column-menu\", 11);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const column_r5 = ɵngcc0.ɵɵnextContext(2).$implicit;\n const ctx_r11 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction4(8, _c125, column_r5.headerTemplateRef, column_r5.leafIndex, column_r5, column_r5));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !column_r5.headerTemplateRef);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r11.sortIcon(column_r5.field));\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx_r11.sortableLabel);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r11.showSortNumbering(column_r5));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"innerHtml\", ctx_r11.sortStatus(column_r5), ɵngcc0.ɵɵsanitizeHtml);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r11.showFilterMenu && ctx_r11.isFilterable(column_r5));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r11.showColumnMenu(column_r5));\n} }\nfunction HeaderComponent_tr_0_ng_template_1_th_0_ng_container_3_Template(rf, ctx) { if (rf & 1) {\n const _r37 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵelementStart(1, \"input\", 23);\n ɵngcc0.ɵɵlistener(\"click\", function HeaderComponent_tr_0_ng_template_1_th_0_ng_container_3_Template_input_click_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r37); const ctx_r36 = ɵngcc0.ɵɵnextContext(4); return ctx_r36.selectAllClick($event); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementContainerEnd();\n} }\nfunction HeaderComponent_tr_0_ng_template_1_th_0_span_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 24);\n} if (rf & 2) {\n const column_r5 = ɵngcc0.ɵɵnextContext(2).$implicit;\n const ctx_r13 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"column\", column_r5)(\"columns\", ctx_r13.columns);\n} }\nconst _c126 = function (a0, a2, a3, a4) { return { field: a0, type: \"column\", column: a2, hint: a3, lastColumn: a4 }; };\nfunction HeaderComponent_tr_0_ng_template_1_th_0_Template(rf, ctx) { if (rf & 1) {\n const _r41 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"th\", 6);\n ɵngcc0.ɵɵlistener(\"keydown\", function HeaderComponent_tr_0_ng_template_1_th_0_Template_th_keydown_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r41); const column_r5 = ɵngcc0.ɵɵnextContext().$implicit; const ctx_r39 = ɵngcc0.ɵɵnextContext(2); return ctx_r39.onHeaderKeydown(column_r5, $event); });\n ɵngcc0.ɵɵtemplate(1, HeaderComponent_tr_0_ng_template_1_th_0_ng_template_1_Template, 4, 9, \"ng-template\", 7);\n ɵngcc0.ɵɵtemplate(2, HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_Template, 10, 13, \"ng-template\", 7);\n ɵngcc0.ɵɵtemplate(3, HeaderComponent_tr_0_ng_template_1_th_0_ng_container_3_Template, 2, 0, \"ng-container\", 8);\n ɵngcc0.ɵɵtemplate(4, HeaderComponent_tr_0_ng_template_1_th_0_span_4_Template, 1, 2, \"span\", 9);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r42 = ɵngcc0.ɵɵnextContext();\n const column_r5 = ctx_r42.$implicit;\n const columnIndex_r6 = ctx_r42.index;\n const last_r7 = ctx_r42.last;\n const levelIndex_r3 = ɵngcc0.ɵɵnextContext().index;\n const ctx_r8 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"k-filterable\", ctx_r8.showFilterMenu && ctx_r8.isFilterable(column_r5) || ctx_r8.showColumnMenu(column_r5))(\"k-first\", ctx_r8.isFirstOnRow(column_r5, columnIndex_r6));\n ɵngcc0.ɵɵproperty(\"logicalRowIndex\", levelIndex_r3)(\"logicalColIndex\", ctx_r8.logicalColumnIndex(column_r5))(\"colSpan\", column_r5.colspan)(\"rowSpan\", column_r5.rowspan(ctx_r8.totalColumnLevels))(\"enableDrag\", ctx_r8.shouldActivate(column_r5))(\"context\", ɵngcc0.ɵɵpureFunction4(19, _c126, column_r5.field, column_r5, column_r5.title || column_r5.field, last_r7 && columnIndex_r6 === 0))(\"ngClass\", column_r5.headerClass)(\"ngStyle\", column_r5.headerStyle);\n ɵngcc0.ɵɵattribute(\"aria-sort\", ctx_r8.sortState(column_r5))(\"rowspan\", column_r5.rowspan(ctx_r8.totalColumnLevels))(\"colspan\", column_r5.colspan);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r8.isSortable(column_r5));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r8.isSortable(column_r5));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r8.renderSelectAll(column_r5));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r8.resizable);\n} }\nfunction HeaderComponent_tr_0_ng_template_1_th_1_kendo_treelist_column_menu_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-treelist-column-menu\", 27);\n} if (rf & 2) {\n const column_r5 = ɵngcc0.ɵɵnextContext(2).$implicit;\n const ctx_r44 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"standalone\", false)(\"settings\", ctx_r44.columnMenu)(\"column\", column_r5)(\"columnMenuTemplate\", ctx_r44.columnMenuTemplate);\n} }\nfunction HeaderComponent_tr_0_ng_template_1_th_1_ng_template_2_Template(rf, ctx) { }\nfunction HeaderComponent_tr_0_ng_template_1_th_1_ng_template_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n} if (rf & 2) {\n const column_r5 = ɵngcc0.ɵɵnextContext(2).$implicit;\n ɵngcc0.ɵɵtextInterpolate(column_r5.displayTitle);\n} }\nfunction HeaderComponent_tr_0_ng_template_1_th_1_span_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 24);\n} if (rf & 2) {\n const column_r5 = ɵngcc0.ɵɵnextContext(2).$implicit;\n const ctx_r47 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"column\", column_r5)(\"columns\", ctx_r47.columns);\n} }\nconst _c127 = function (a1, a2, a3) { return { type: \"columnGroup\", column: a1, hint: a2, lastColumn: a3 }; };\nfunction HeaderComponent_tr_0_ng_template_1_th_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"th\", 25);\n ɵngcc0.ɵɵtemplate(1, HeaderComponent_tr_0_ng_template_1_th_1_kendo_treelist_column_menu_1_Template, 1, 4, \"kendo-treelist-column-menu\", 26);\n ɵngcc0.ɵɵtemplate(2, HeaderComponent_tr_0_ng_template_1_th_1_ng_template_2_Template, 0, 0, \"ng-template\", 12);\n ɵngcc0.ɵɵtemplate(3, HeaderComponent_tr_0_ng_template_1_th_1_ng_template_3_Template, 1, 1, \"ng-template\", 7);\n ɵngcc0.ɵɵtemplate(4, HeaderComponent_tr_0_ng_template_1_th_1_span_4_Template, 1, 2, \"span\", 9);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r51 = ɵngcc0.ɵɵnextContext();\n const column_r5 = ctx_r51.$implicit;\n const columnIndex_r6 = ctx_r51.index;\n const last_r7 = ctx_r51.last;\n const levelIndex_r3 = ɵngcc0.ɵɵnextContext().index;\n const ctx_r9 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"k-first\", ctx_r9.isFirstOnRow(column_r5, columnIndex_r6))(\"k-filterable\", ctx_r9.showColumnMenu(column_r5));\n ɵngcc0.ɵɵproperty(\"logicalRowIndex\", levelIndex_r3)(\"logicalColIndex\", ctx_r9.logicalColumnIndex(column_r5))(\"rowSpan\", column_r5.rowspan(ctx_r9.totalColumnLevels))(\"colSpan\", column_r5.colspan)(\"enableDrag\", ctx_r9.shouldActivate(column_r5))(\"context\", ɵngcc0.ɵɵpureFunction3(18, _c127, column_r5, column_r5.title, last_r7 && columnIndex_r6 === 0))(\"ngClass\", column_r5.headerClass)(\"ngStyle\", column_r5.headerStyle);\n ɵngcc0.ɵɵattribute(\"rowspan\", column_r5.rowspan(ctx_r9.totalColumnLevels))(\"colspan\", column_r5.colspan);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r9.showColumnMenu(column_r5));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"templateContext\", ɵngcc0.ɵɵpureFunction4(22, _c125, column_r5.headerTemplateRef, ctx_r9.lockedColumnsCount + columnIndex_r6, column_r5, column_r5));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !column_r5.headerTemplateRef);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r9.resizable);\n} }\nfunction HeaderComponent_tr_0_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, HeaderComponent_tr_0_ng_template_1_th_0_Template, 5, 24, \"th\", 4);\n ɵngcc0.ɵɵtemplate(1, HeaderComponent_tr_0_ng_template_1_th_1_Template, 5, 27, \"th\", 5);\n} if (rf & 2) {\n const column_r5 = ctx.$implicit;\n const ctx_r4 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r4.isColumnGroupComponent(column_r5));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.isColumnGroupComponent(column_r5));\n} }\nfunction HeaderComponent_tr_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"tr\", 2);\n ɵngcc0.ɵɵtemplate(1, HeaderComponent_tr_0_ng_template_1_Template, 2, 2, \"ng-template\", 3);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const levelIndex_r3 = ctx.index;\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"logicalRowIndex\", levelIndex_r3)(\"logicalSlaveRow\", ctx_r0.lockedColumnsCount > 0)(\"logicalCellsCount\", ctx_r0.columns.length)(\"logicalSlaveCellsCount\", ctx_r0.unlockedColumnsCount);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r0.columnsForLevel(levelIndex_r3))(\"ngForTrackBy\", ctx_r0.trackByIndex);\n} }\nfunction HeaderComponent_tr_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"tr\", 28);\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"columns\", ctx_r1.leafColumns)(\"filter\", ctx_r1.filter)(\"lockedColumnsCount\", ctx_r1.lockedColumnsCount)(\"logicalRowIndex\", ctx_r1.totalColumnLevels + 1)(\"logicalSlaveRow\", ctx_r1.lockedColumnsCount > 0)(\"logicalCellsCount\", ctx_r1.columns.length)(\"logicalSlaveCellsCount\", ctx_r1.unlockedColumnsCount);\n} }\nfunction FilterMenuComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {\n const _r4 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-treelist-filter-menu-container\", 4);\n ɵngcc0.ɵɵlistener(\"close\", function FilterMenuComponent_ng_template_3_Template_kendo_treelist_filter_menu_container_close_0_listener() { ɵngcc0.ɵɵrestoreView(_r4); const ctx_r3 = ɵngcc0.ɵɵnextContext(); return ctx_r3.close(); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"column\", ctx_r2.column)(\"filter\", ctx_r2.filter);\n} }\nconst _c128 = function (a1) { return { \"k-grid-filter\": true, \"k-state-active\": a1 }; };\nfunction FilterMenuContainerComponent_ng_container_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵelementContainer(1, 7);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"filterService\", ctx_r0.childService)(\"column\", ctx_r0.column)(\"filter\", ctx_r0.childFilter);\n} }\nfunction FilterMenuContainerComponent_ng_container_4_1_ng_template_0_Template(rf, ctx) { }\nfunction FilterMenuContainerComponent_ng_container_4_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, FilterMenuContainerComponent_ng_container_4_1_ng_template_0_Template, 0, 0, \"ng-template\", 9);\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.column.filterMenuTemplateRef)(\"ngTemplateOutletContext\", ctx_r2.templateContext);\n} }\nfunction FilterMenuContainerComponent_ng_container_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, FilterMenuContainerComponent_ng_container_4_1_Template, 1, 2, null, 8);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r1.column.filterMenuTemplateRef);\n} }\nfunction StringFilterMenuComponent_kendo_dropdownlist_1_Template(rf, ctx) { if (rf & 1) {\n const _r3 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-dropdownlist\", 3);\n ɵngcc0.ɵɵlistener(\"valueChange\", function StringFilterMenuComponent_kendo_dropdownlist_1_Template_kendo_dropdownlist_valueChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r3); const ctx_r2 = ɵngcc0.ɵɵnextContext(); return ctx_r2.logicChange($event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"data\", ctx_r0.logicOperators)(\"valuePrimitive\", true)(\"value\", ctx_r0.filter == null ? null : ctx_r0.filter.logic);\n} }\nfunction StringFilterMenuComponent_kendo_treelist_string_filter_menu_input_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-treelist-string-filter-menu-input\", 4);\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"operators\", ctx_r1.operators)(\"currentFilter\", ctx_r1.secondFilter)(\"filterService\", ctx_r1.filterService)(\"column\", ctx_r1.column)(\"filter\", ctx_r1.filter);\n} }\nfunction NumericFilterMenuComponent_kendo_dropdownlist_1_Template(rf, ctx) { if (rf & 1) {\n const _r3 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-dropdownlist\", 3);\n ɵngcc0.ɵɵlistener(\"valueChange\", function NumericFilterMenuComponent_kendo_dropdownlist_1_Template_kendo_dropdownlist_valueChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r3); const ctx_r2 = ɵngcc0.ɵɵnextContext(); return ctx_r2.logicChange($event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"data\", ctx_r0.logicOperators)(\"valuePrimitive\", true)(\"value\", ctx_r0.filter == null ? null : ctx_r0.filter.logic);\n} }\nfunction NumericFilterMenuComponent_kendo_treelist_numeric_filter_menu_input_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-treelist-numeric-filter-menu-input\", 4);\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"operators\", ctx_r1.operators)(\"currentFilter\", ctx_r1.secondFilter)(\"filterService\", ctx_r1.filterService)(\"column\", ctx_r1.column)(\"filter\", ctx_r1.filter)(\"format\", ctx_r1.format)(\"decimals\", ctx_r1.decimals)(\"spinners\", ctx_r1.spinners)(\"min\", ctx_r1.min)(\"max\", ctx_r1.max)(\"step\", ctx_r1.step);\n} }\nfunction DateFilterMenuComponent_kendo_dropdownlist_1_Template(rf, ctx) { if (rf & 1) {\n const _r3 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-dropdownlist\", 3);\n ɵngcc0.ɵɵlistener(\"valueChange\", function DateFilterMenuComponent_kendo_dropdownlist_1_Template_kendo_dropdownlist_valueChange_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r3); const ctx_r2 = ɵngcc0.ɵɵnextContext(); return ctx_r2.logicChange($event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"data\", ctx_r0.logicOperators)(\"valuePrimitive\", true)(\"value\", ctx_r0.filter == null ? null : ctx_r0.filter.logic);\n} }\nfunction DateFilterMenuComponent_kendo_treelist_date_filter_menu_input_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-treelist-date-filter-menu-input\", 4);\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"operators\", ctx_r1.operators)(\"currentFilter\", ctx_r1.secondFilter)(\"filterService\", ctx_r1.filterService)(\"column\", ctx_r1.column)(\"filter\", ctx_r1.filter)(\"activeView\", ctx_r1.activeView)(\"bottomView\", ctx_r1.bottomView)(\"topView\", ctx_r1.topView)(\"format\", ctx_r1.format)(\"formatPlaceholder\", ctx_r1.formatPlaceholder)(\"placeholder\", ctx_r1.placeholder)(\"min\", ctx_r1.min)(\"max\", ctx_r1.max)(\"weekNumber\", ctx_r1.weekNumber);\n} }\nfunction BooleanFilterMenuComponent_li_1_Template(rf, ctx) { if (rf & 1) {\n const _r3 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\")(1, \"input\", 2);\n ɵngcc0.ɵɵlistener(\"change\", function BooleanFilterMenuComponent_li_1_Template_input_change_1_listener() { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r3); const item_r1 = restoredCtx.$implicit; const ctx_r2 = ɵngcc0.ɵɵnextContext(); return ctx_r2.onChange(item_r1.value); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(2, \"label\", 3);\n ɵngcc0.ɵɵtext(3);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const item_r1 = ctx.$implicit;\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"name\", ctx_r0.idPrefix)(\"checked\", ctx_r0.isSelected(item_r1.value));\n ɵngcc0.ɵɵattribute(\"id\", ctx_r0.radioId(item_r1.value));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"for\", ctx_r0.radioId(item_r1.value));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(item_r1.text);\n} }\nfunction ColumnListComponent_label_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"label\", 3);\n ɵngcc0.ɵɵelement(1, \"input\", 4);\n ɵngcc0.ɵɵelementStart(2, \"span\", 5);\n ɵngcc0.ɵɵtext(3);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const column_r2 = ctx.$implicit;\n const index_r3 = ctx.index;\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"checked\", !column_r2.hidden)(\"disabled\", ctx_r0.isDisabled(column_r2));\n ɵngcc0.ɵɵattribute(\"data-index\", index_r3);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate(column_r2.displayTitle);\n} }\nfunction ColumnListComponent_div_2_Template(rf, ctx) { if (rf & 1) {\n const _r5 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 6)(1, \"button\", 7);\n ɵngcc0.ɵɵlistener(\"click\", function ColumnListComponent_div_2_Template_button_click_1_listener() { ɵngcc0.ɵɵrestoreView(_r5); const ctx_r4 = ɵngcc0.ɵɵnextContext(); return ctx_r4.cancelChanges(); });\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(3, \"button\", 8);\n ɵngcc0.ɵɵlistener(\"click\", function ColumnListComponent_div_2_Template_button_click_3_listener() { ɵngcc0.ɵɵrestoreView(_r5); const ctx_r6 = ɵngcc0.ɵɵnextContext(); return ctx_r6.applyChanges(); });\n ɵngcc0.ɵɵtext(4);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r1.actionsClass);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r1.resetText, \" \");\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r1.applyText, \" \");\n} }\nfunction ColumnChooserComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {\n const _r4 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"span\", 4);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(2, \"kendo-treelist-columnlist\", 5);\n ɵngcc0.ɵɵlistener(\"apply\", function ColumnChooserComponent_ng_template_3_Template_kendo_treelist_columnlist_apply_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r4); const ctx_r3 = ɵngcc0.ɵɵnextContext(); return ctx_r3.onApply($event); })(\"columnChange\", function ColumnChooserComponent_ng_template_3_Template_kendo_treelist_columnlist_columnChange_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r4); const ctx_r5 = ɵngcc0.ɵɵnextContext(); return ctx_r5.onChange($event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r2.localization.get(\"columns\"));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"columns\", ctx_r2.columns)(\"applyText\", ctx_r2.localization.get(\"columnsApply\"))(\"resetText\", ctx_r2.localization.get(\"columnsReset\"))(\"autoSync\", ctx_r2.autoSync)(\"allowHideAll\", ctx_r2.allowHideAll);\n} }\nfunction ColumnMenuChooserComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n const _r2 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-treelist-columnlist\", 2);\n ɵngcc0.ɵɵlistener(\"apply\", function ColumnMenuChooserComponent_ng_template_1_Template_kendo_treelist_columnlist_apply_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r2); const ctx_r1 = ɵngcc0.ɵɵnextContext(); return ctx_r1.onApply($event); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"applyText\", ctx_r0.localization.get(\"columnsApply\"))(\"resetText\", ctx_r0.localization.get(\"columnsReset\"))(\"columns\", ctx_r0.columns)(\"autoSync\", false)(\"allowHideAll\", false)(\"actionsClass\", ctx_r0.actionsClass);\n} }\nfunction ColumnMenuFilterComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n const _r2 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-treelist-filter-menu-container\", 2);\n ɵngcc0.ɵɵlistener(\"close\", function ColumnMenuFilterComponent_ng_template_1_Template_kendo_treelist_filter_menu_container_close_0_listener() { ɵngcc0.ɵɵrestoreView(_r2); const ctx_r1 = ɵngcc0.ɵɵnextContext(); return ctx_r1.close(); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"column\", ctx_r0.service.column)(\"filter\", ctx_r0.service.filter)(\"actionsClass\", ctx_r0.actionsClass);\n} }\nfunction ColumnMenuItemComponent_span_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 3);\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r0.iconClass);\n} }\nfunction ColumnMenuItemComponent_div_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 4);\n ɵngcc0.ɵɵelementContainer(1, 5);\n ɵngcc0.ɵɵelement(2, \"div\");\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"@state\", ctx_r1.contentState);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.contentTemplate.templateRef);\n} }\nconst _c129 = function (a0, a1) { return { service: a0, column: a1 }; };\nfunction ColumnMenuComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 5);\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n const _r3 = ɵngcc0.ɵɵreference(6);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.column.columnMenuTemplateRef || ctx_r2.columnMenuTemplate || _r3)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction2(2, _c129, ctx_r2.service, ctx_r2.column));\n} }\nfunction ColumnMenuComponent_ng_template_5_kendo_treelist_columnmenu_sort_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-treelist-columnmenu-sort\", 8);\n} if (rf & 2) {\n const ctx_r5 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"service\", ctx_r5.service);\n} }\nfunction ColumnMenuComponent_ng_template_5_kendo_treelist_columnmenu_lock_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-treelist-columnmenu-lock\", 8);\n} if (rf & 2) {\n const ctx_r6 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"service\", ctx_r6.service);\n} }\nfunction ColumnMenuComponent_ng_template_5_kendo_treelist_columnmenu_chooser_2_Template(rf, ctx) { if (rf & 1) {\n const _r10 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-treelist-columnmenu-chooser\", 9);\n ɵngcc0.ɵɵlistener(\"expand\", function ColumnMenuComponent_ng_template_5_kendo_treelist_columnmenu_chooser_2_Template_kendo_treelist_columnmenu_chooser_expand_0_listener() { ɵngcc0.ɵɵrestoreView(_r10); const ctx_r9 = ɵngcc0.ɵɵnextContext(2); return ctx_r9.onColumnsExpand(); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r7 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"service\", ctx_r7.service)(\"expanded\", ctx_r7.expandedColumns);\n} }\nfunction ColumnMenuComponent_ng_template_5_kendo_treelist_columnmenu_filter_3_Template(rf, ctx) { if (rf & 1) {\n const _r12 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-treelist-columnmenu-filter\", 9);\n ɵngcc0.ɵɵlistener(\"expand\", function ColumnMenuComponent_ng_template_5_kendo_treelist_columnmenu_filter_3_Template_kendo_treelist_columnmenu_filter_expand_0_listener() { ɵngcc0.ɵɵrestoreView(_r12); const ctx_r11 = ɵngcc0.ɵɵnextContext(2); return ctx_r11.onFilterExpand(); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r8 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"service\", ctx_r8.service)(\"expanded\", ctx_r8.expandedFilter);\n} }\nfunction ColumnMenuComponent_ng_template_5_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ColumnMenuComponent_ng_template_5_kendo_treelist_columnmenu_sort_0_Template, 1, 1, \"kendo-treelist-columnmenu-sort\", 6);\n ɵngcc0.ɵɵtemplate(1, ColumnMenuComponent_ng_template_5_kendo_treelist_columnmenu_lock_1_Template, 1, 1, \"kendo-treelist-columnmenu-lock\", 6);\n ɵngcc0.ɵɵtemplate(2, ColumnMenuComponent_ng_template_5_kendo_treelist_columnmenu_chooser_2_Template, 1, 2, \"kendo-treelist-columnmenu-chooser\", 7);\n ɵngcc0.ɵɵtemplate(3, ColumnMenuComponent_ng_template_5_kendo_treelist_columnmenu_filter_3_Template, 1, 2, \"kendo-treelist-columnmenu-filter\", 7);\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.hasSort);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.hasLock);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.hasColumnChooser);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.hasFilter);\n} }\nconst _c130 = function (a0) { return { \"k-state-active\": a0 }; };\nconst _c131 = [\"kendoTreeListTableBody\", \"\"];\nfunction TableBodyComponent_tr_0_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 5);\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.noRecordsTemplate.templateRef);\n} }\nfunction TableBodyComponent_tr_0_ng_container_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r3.noRecordsText, \" \");\n} }\nfunction TableBodyComponent_tr_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"tr\", 2)(1, \"td\");\n ɵngcc0.ɵɵtemplate(2, TableBodyComponent_tr_0_ng_container_2_Template, 1, 1, \"ng-container\", 3);\n ɵngcc0.ɵɵtemplate(3, TableBodyComponent_tr_0_ng_container_3_Template, 2, 1, \"ng-container\", 4);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"colspan\", ctx_r0.colSpan);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r0.noRecordsTemplate == null ? null : ctx_r0.noRecordsTemplate.templateRef);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !(ctx_r0.noRecordsTemplate == null ? null : ctx_r0.noRecordsTemplate.templateRef));\n} }\nfunction TableBodyComponent_ng_container_1_tr_1_td_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"td\", 10);\n} if (rf & 2) {\n const column_r9 = ctx.$implicit;\n const columnIndex_r10 = ctx.index;\n const item_r4 = ɵngcc0.ɵɵnextContext(2).$implicit;\n const ctx_r8 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"k-grid-edit-cell\", ctx_r8.isEditingCell(item_r4, column_r9))(\"k-state-selected\", ctx_r8.isCellSelected(item_r4.data, column_r9, ctx_r8.lockedColumnsCount + columnIndex_r10));\n ɵngcc0.ɵɵproperty(\"columnIndex\", ctx_r8.lockedColumnsCount + columnIndex_r10)(\"column\", column_r9)(\"viewItem\", item_r4)(\"dataItem\", item_r4.data)(\"level\", item_r4.level)(\"hasChildren\", item_r4.hasChildren)(\"isExpanded\", item_r4.expanded)(\"loading\", item_r4.loading)(\"isNew\", item_r4.isNew)(\"selected\", item_r4.selected)(\"expandIcons\", ctx_r8.expandIcons)(\"logicalRowIndex\", ctx_r8.logicalRowIndex(item_r4.rowIndex))(\"logicalColIndex\", ctx_r8.logicalColIndex(column_r9))(\"dataRowIndex\", item_r4.index)(\"column\", column_r9)(\"colIndex\", columnIndex_r10)(\"colSpan\", column_r9.colspan)(\"expandable\", column_r9.expandable)(\"ngClass\", column_r9.cssClass)(\"ngStyle\", column_r9.style);\n ɵngcc0.ɵɵattribute(\"aria-expanded\", ctx_r8.ariaExpanded(item_r4, column_r9))(\"aria-selected\", ctx_r8.ariaSelected(item_r4, column_r9, ctx_r8.lockedColumnsCount + columnIndex_r10))(\"colspan\", column_r9.colspan);\n} }\nconst _c132 = function (a0, a1) { return { dataItem: a0, index: a1 }; };\nfunction TableBodyComponent_ng_container_1_tr_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"tr\", 8);\n ɵngcc0.ɵɵtemplate(1, TableBodyComponent_ng_container_1_tr_1_td_1_Template, 1, 27, \"td\", 9);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r12 = ɵngcc0.ɵɵnextContext();\n const item_r4 = ctx_r12.$implicit;\n const rowIndex_r5 = ctx_r12.index;\n const ctx_r6 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"k-alt\", ctx_r6.isOdd(item_r4))(\"k-grid-edit-row\", ctx_r6.isEditingRow(item_r4))(\"k-grid-add-row\", item_r4.isNew)(\"k-state-selected\", item_r4.selected);\n ɵngcc0.ɵɵproperty(\"dataRowIndex\", item_r4.index)(\"dataItem\", item_r4.data)(\"logicalRowIndex\", ctx_r6.logicalRowIndex(item_r4.rowIndex))(\"logicalSlaveRow\", ctx_r6.lockedColumnsCount > 0)(\"logicalCellsCount\", ctx_r6.columns.length)(\"logicalSlaveCellsCount\", ctx_r6.unlockedColumnsCount)(\"isNew\", item_r4.isNew)(\"ngClass\", ctx_r6.rowClass(ɵngcc0.ɵɵpureFunction2(19, _c132, item_r4.data, item_r4.index)));\n ɵngcc0.ɵɵattribute(\"data-treelist-view-index\", rowIndex_r5);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r6.columns)(\"ngForTrackBy\", ctx_r6.trackByColumns);\n} }\nfunction TableBodyComponent_ng_container_1_tr_2_td_1_ng_container_1_span_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 16);\n} }\nfunction TableBodyComponent_ng_container_1_tr_2_td_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, TableBodyComponent_ng_container_1_tr_2_td_1_ng_container_1_span_1_Template, 1, 0, \"span\", 15);\n ɵngcc0.ɵɵpipe(2, \"levelItems\");\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const item_r4 = ɵngcc0.ɵɵnextContext(3).$implicit;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ɵngcc0.ɵɵpipeBind1(2, 1, item_r4.level));\n} }\nconst _c133 = function (a0, a1, a2, a3, a4, a5, a6) { return { $implicit: a0, aggregates: a1, column: a2, columnIndex: a3, field: a4, items: a5, parentItem: a6 }; };\nfunction TableBodyComponent_ng_container_1_tr_2_td_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"td\", 13);\n ɵngcc0.ɵɵtemplate(1, TableBodyComponent_ng_container_1_tr_2_td_1_ng_container_1_Template, 3, 3, \"ng-container\", 4);\n ɵngcc0.ɵɵelementContainer(2, 14);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const column_r14 = ctx.$implicit;\n const columnIndex_r15 = ctx.index;\n const item_r4 = ɵngcc0.ɵɵnextContext(2).$implicit;\n const ctx_r13 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"logicalRowIndex\", ctx_r13.logicalRowIndex(item_r4.rowIndex))(\"logicalColIndex\", ctx_r13.logicalColIndex(column_r14))(\"column\", column_r14)(\"colIndex\", columnIndex_r15)(\"ngClass\", column_r14.footerClass)(\"ngStyle\", column_r14.footerStyle);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", column_r14.expandable);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", column_r14.footerTemplateRef)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction7(9, _c133, item_r4.aggregates, item_r4.aggregates, column_r14, columnIndex_r15, column_r14.field, item_r4.items, item_r4.parentItem));\n} }\nfunction TableBodyComponent_ng_container_1_tr_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"tr\", 11);\n ɵngcc0.ɵɵtemplate(1, TableBodyComponent_ng_container_1_tr_2_td_1_Template, 3, 17, \"td\", 12);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r21 = ɵngcc0.ɵɵnextContext();\n const item_r4 = ctx_r21.$implicit;\n const rowIndex_r5 = ctx_r21.index;\n const ctx_r7 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"logicalRowIndex\", ctx_r7.logicalRowIndex(item_r4.rowIndex))(\"logicalSlaveRow\", ctx_r7.lockedColumnsCount > 0)(\"logicalCellsCount\", ctx_r7.columns.length)(\"logicalSlaveCellsCount\", ctx_r7.unlockedColumnsCount);\n ɵngcc0.ɵɵattribute(\"data-treelist-view-index\", rowIndex_r5);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r7.footerColumns)(\"ngForTrackBy\", ctx_r7.trackByColumns);\n} }\nfunction TableBodyComponent_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, TableBodyComponent_ng_container_1_tr_1_Template, 2, 22, \"tr\", 6);\n ɵngcc0.ɵɵtemplate(2, TableBodyComponent_ng_container_1_tr_2_Template, 2, 7, \"tr\", 7);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const item_r4 = ctx.$implicit;\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", item_r4.type === \"data\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", item_r4.type === \"footer\" && ctx_r1.hasFooter);\n} }\nconst _c134 = [\"kendoTreeListCell\", \"\"];\nfunction CellComponent_ng_container_1_ng_container_1_span_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 7);\n} }\nconst _c135 = function (a0, a1, a2) { return { \"k-i-collapse\": a0, \"k-i-expand\": a1, \"k-i-loading\": a2 }; };\nfunction CellComponent_ng_container_1_ng_container_1_span_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 8);\n} if (rf & 2) {\n const ctx_r8 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction3(1, _c135, ctx_r8.isExpanded && !ctx_r8.loading, !ctx_r8.isExpanded && !ctx_r8.loading, ctx_r8.loading));\n} }\nfunction CellComponent_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, CellComponent_ng_container_1_ng_container_1_span_1_Template, 1, 0, \"span\", 5);\n ɵngcc0.ɵɵpipe(2, \"levelItems\");\n ɵngcc0.ɵɵtemplate(3, CellComponent_ng_container_1_ng_container_1_span_3_Template, 1, 5, \"span\", 6);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ɵngcc0.ɵɵpipeBind2(2, 2, ctx_r2.level, ctx_r2.hasChildren && ctx_r2.expandIcons));\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r2.hasChildren && ctx_r2.expandIcons);\n} }\nfunction CellComponent_ng_container_1_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 9);\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.column.templateRef)(\"ngTemplateOutletContext\", ctx_r3.templateContext);\n} }\nfunction CellComponent_ng_container_1_ng_container_3_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵpipe(2, \"valueOf\");\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const childColumn_r11 = ctx.$implicit;\n const ctx_r10 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ɵngcc0.ɵɵpipeBind3(2, 1, ctx_r10.dataItem, childColumn_r11.field, childColumn_r11.format), \" \");\n} }\nfunction CellComponent_ng_container_1_ng_container_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, CellComponent_ng_container_1_ng_container_3_ng_container_1_Template, 3, 5, \"ng-container\", 10);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r4.childColumns);\n} }\nfunction CellComponent_ng_container_1_ng_container_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵpipe(2, \"valueOf\");\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r5 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ɵngcc0.ɵɵpipeBind3(2, 1, ctx_r5.dataItem, ctx_r5.column.field, ctx_r5.column.format));\n} }\nfunction CellComponent_ng_container_1_ng_template_5_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"input\", 11);\n} if (rf & 2) {\n const ctx_r6 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"checked\", ctx_r6.selected);\n} }\nfunction CellComponent_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, CellComponent_ng_container_1_ng_container_1_Template, 4, 5, \"ng-container\", 2);\n ɵngcc0.ɵɵtemplate(2, CellComponent_ng_container_1_ng_container_2_Template, 1, 2, \"ng-container\", 3);\n ɵngcc0.ɵɵtemplate(3, CellComponent_ng_container_1_ng_container_3_Template, 2, 1, \"ng-container\", 2);\n ɵngcc0.ɵɵtemplate(4, CellComponent_ng_container_1_ng_container_4_Template, 3, 5, \"ng-container\", 2);\n ɵngcc0.ɵɵtemplate(5, CellComponent_ng_container_1_ng_template_5_Template, 1, 1, \"ng-template\", 4);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r0.column.expandable);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r0.column.templateRef);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r0.isSpanColumn);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r0.isBoundColumn);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r0.column.isCheckboxColumn && !ctx_r0.isNew);\n} }\nfunction CellComponent_ng_container_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 9);\n} if (rf & 2) {\n const ctx_r12 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r12.column.editTemplateRef)(\"ngTemplateOutletContext\", ctx_r12.editTemplateContext);\n} }\nfunction CellComponent_ng_container_2_ng_container_2_kendo_numerictextbox_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-numerictextbox\", 16);\n} if (rf & 2) {\n const ctx_r14 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"format\", ctx_r14.format)(\"formControl\", ctx_r14.formGroup.get(ctx_r14.column.field));\n} }\nfunction CellComponent_ng_container_2_ng_container_2_kendo_datepicker_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-datepicker\", 16);\n} if (rf & 2) {\n const ctx_r15 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"format\", ctx_r15.format)(\"formControl\", ctx_r15.formGroup.get(ctx_r15.column.field));\n} }\nfunction CellComponent_ng_container_2_ng_container_2_input_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"input\", 17);\n} if (rf & 2) {\n const ctx_r16 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"formControl\", ctx_r16.formGroup.get(ctx_r16.column.field));\n} }\nfunction CellComponent_ng_container_2_ng_container_2_input_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"input\", 18);\n} if (rf & 2) {\n const ctx_r17 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"formControl\", ctx_r17.formGroup.get(ctx_r17.column.field));\n} }\nfunction CellComponent_ng_container_2_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0, 0);\n ɵngcc0.ɵɵtemplate(1, CellComponent_ng_container_2_ng_container_2_kendo_numerictextbox_1_Template, 1, 2, \"kendo-numerictextbox\", 13);\n ɵngcc0.ɵɵtemplate(2, CellComponent_ng_container_2_ng_container_2_kendo_datepicker_2_Template, 1, 2, \"kendo-datepicker\", 13);\n ɵngcc0.ɵɵtemplate(3, CellComponent_ng_container_2_ng_container_2_input_3_Template, 1, 1, \"input\", 14);\n ɵngcc0.ɵɵtemplate(4, CellComponent_ng_container_2_ng_container_2_input_4_Template, 1, 1, \"input\", 15);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r13 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngSwitch\", ctx_r13.column.editor);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngSwitchCase\", \"numeric\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngSwitchCase\", \"date\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngSwitchCase\", \"boolean\");\n} }\nfunction CellComponent_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, CellComponent_ng_container_2_ng_container_1_Template, 1, 2, \"ng-container\", 3);\n ɵngcc0.ɵɵtemplate(2, CellComponent_ng_container_2_ng_container_2_Template, 5, 4, \"ng-container\", 12);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r1.column.editTemplateRef);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r1.column.editTemplateRef);\n} }\nfunction ToolbarComponent_0_ng_template_0_Template(rf, ctx) { }\nfunction ToolbarComponent_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ToolbarComponent_0_ng_template_0_Template, 0, 0, \"ng-template\", 1);\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.toolbarTemplateRef)(\"ngTemplateOutletContext\", ctx_r0.context);\n} }\nconst packageMetadata = {\n name: '@progress/kendo-angular-treelist',\n productName: 'Kendo UI for Angular',\n productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],\n publishDate: 1647360757,\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\n/**\n * Represents the column cell template of the TreeList ([more information and example]({% slug templates_columns_treelist %}#toc-cell-template)).\n * Helps to customize the content of the cells. To define the cell template, nest an `` tag\n * with the `kendoTreeListCellTemplate` 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 * - `column`—The current column instance. Use it as an alias for a template variable by utilizing the `let-column=\"column\"` 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 * - `cellContext`—An object used to pass context information to built-in directives.\n * - `hasChildren`—Specifies if the item has children.\n * - `isExpanded`—Specifies if the item is expanded.\n * - `level`—The hierarchy level of the item.\n * - `loading`—Specifies if the item children are currently loading.\n * - `rowIndex`—The current row index. Use it as an alias for a template variable by utilizing the `let-rowIndex=\"rowIndex\"` syntax.\n *\n * {% meta height:470 %}\n * {% embed_file data-binding/hierarchy/app.component.ts preview %}\n * {% embed_file data-binding/hierarchy/app.module.ts %}\n * {% embed_file shared/main.ts %}\n * {% embed_file shared/filesystem.ts %}\n * {% endmeta %}\n */\nlet CellTemplateDirective = class CellTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nCellTemplateDirective.ɵfac = function CellTemplateDirective_Factory(t) { return new (t || CellTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nCellTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CellTemplateDirective, selectors: [[\"\", \"kendoTreeListCellTemplate\", \"\"]] });\nCellTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], CellTemplateDirective);\n\n/**\n * Represents the column edit-cell template of the TreeList ([see example]({% slug editing_template_forms_treelist %})).\n * Helps to customize the content of the edited cells. To define the cell template, nest an ``\n * tag with the `kendoTreeListEditTemplate` directive inside a `` tag.\n *\n * The template context contains the following fields:\n * - `column`—The current column instance.\n * - `dataItem`—The current data item.\n * - `cellContext`—An object used to pass context information to built-in directives.\n * - `formGroup`—The current [`FormGroup`]({{ site.data.urls.angular['formgroupapi'] }}).\n * If you use the TreeList inside [Template-Driven Forms]({{ site.data.urls.angular['forms'] }}), it will be `undefined`.\n * - `isNew`—The state of the current item.\n * - `rowIndex`—The current row index. If inside a new item row, `rowIndex` is `-1`.\n */\nlet EditTemplateDirective = class EditTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nEditTemplateDirective.ɵfac = function EditTemplateDirective_Factory(t) { return new (t || EditTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nEditTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditTemplateDirective, selectors: [[\"\", \"kendoTreeListEditTemplate\", \"\"]] });\nEditTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], EditTemplateDirective);\n\n/**\n * Represents the column header cell template of the TreeList\n * ([more information and example]({% slug templates_columns_treelist %}#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 * [`kendoTreeListHeaderTemplate`]({% slug api_treelist_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_treelist_columncomponent %}) option.\n * * `columnIndex`—Defines the current column index.\n *\n * {% meta height:533 %}\n * {% embed_file configuration/header-template/app.component.ts preview %}\n * {% embed_file configuration/header-template/app.module.ts %}\n * {% embed_file shared/main.ts %}\n * {% embed_file shared/employees.ts %}\n * {% endmeta %}\n */\nlet HeaderTemplateDirective = class HeaderTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nHeaderTemplateDirective.ɵfac = function HeaderTemplateDirective_Factory(t) { return new (t || HeaderTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nHeaderTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: HeaderTemplateDirective, selectors: [[\"\", \"kendoTreeListHeaderTemplate\", \"\"]] });\nHeaderTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], HeaderTemplateDirective);\n\n/**\n * Represents the column footer cell template of the TreeList\n * ([more information and example]({% slug templates_columns_treelist %}#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 * [`kendoTreeListFooterTemplate`]({% slug api_treelist_footertemplatedirective %}) directive inside the `` tag.\n *\n * The template context is set to the aggregate values and the following additional fields are passed:\n * * `aggregates`—The aggregates for the level items.\n * * `column`—Defines an instance of the [`ColumnComponent`]({% slug api_treelist_columncomponent %}) option.\n * * `columnIndex`—Defines the current column index.\n * * `field`—The name of the column field, if set.\n * * `items`—The data items on this level.\n * * `parentItem`—The parent data item; `null` for root level items.\n *\n *\n * {% meta height:500 %}\n * {% embed_file configuration/footer-template/app.component.ts preview %}\n * {% embed_file configuration/footer-template/app.module.ts %}\n * {% embed_file shared/main.ts %}\n * {% embed_file shared/employees.ts %}\n * {% endmeta %}\n */\nlet FooterTemplateDirective = class FooterTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nFooterTemplateDirective.ɵfac = function FooterTemplateDirective_Factory(t) { return new (t || FooterTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nFooterTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: FooterTemplateDirective, selectors: [[\"\", \"kendoTreeListFooterTemplate\", \"\"]] });\nFooterTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], FooterTemplateDirective);\n\n/* tslint:disable:max-line-length */\n/**\n * Represents the template for the column menu in the TreeList. 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 * `kendoTreeListColumnMenuTemplate` directive inside the `kendo-treelist` or the `` component.\n *\n * The template context is passes through the following fields:\n * - `service`—Represents the [ColumnMenuService]({% slug api_treelist_columnmenuservice %}).\n * - `column`—Represents the TreeList column.\n *\n * {% meta height:500 %}\n * {% embed_file column-menu/template/app.component.ts preview %}\n * {% embed_file column-menu/template/app.module.ts %}\n * {% embed_file shared/main.ts %}\n * {% embed_file shared/employees.ts %}\n * {% endmeta %}\n */\nlet ColumnMenuTemplateDirective = class ColumnMenuTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nColumnMenuTemplateDirective.ɵfac = function ColumnMenuTemplateDirective_Factory(t) { return new (t || ColumnMenuTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nColumnMenuTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ColumnMenuTemplateDirective, selectors: [[\"\", \"kendoTreeListColumnMenuTemplate\", \"\"]] });\nColumnMenuTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], ColumnMenuTemplateDirective);\n\n/**\n * @hidden\n */\nconst isSpanColumn = column => column.isSpanColumn;\nconst isColumnContainer = column => column.isColumnGroup || isSpanColumn(column);\n/**\n * The base class for the column components of the TreeList.\n */\nclass ColumnBase$1 {\n /**\n * @hidden\n */\n constructor(parent, optionChanges) {\n this.parent = parent;\n this.optionChanges = optionChanges;\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_treelist %})).\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 treelistData: any[];\n *\n * constructor() {\n * this.treelistData = 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 /**\n * @hidden\n */\n get isEditable() {\n return false;\n }\n ngOnChanges(_changes) {\n if (this.optionChanges) {\n this.optionChanges.columnChanged();\n }\n }\n}\nColumnBase$1.ɵfac = function ColumnBase$1_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nColumnBase$1.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ColumnBase$1, contentQueries: function ColumnBase$1_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, FooterTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, HeaderTemplateDirective, 4);\n ɵngcc0.ɵɵcontentQuery(dirIndex, ColumnMenuTemplateDirective, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.footerTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.headerTemplates = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.columnMenuTemplates = _t);\n } }, inputs: { resizable: \"resizable\", reorderable: \"reorderable\", minResizableWidth: \"minResizableWidth\", locked: \"locked\", lockable: \"lockable\", columnMenu: \"columnMenu\", includeInChooser: \"includeInChooser\", width: \"width\", title: \"title\", autoSize: \"autoSize\", hidden: \"hidden\", media: \"media\", style: \"style\", headerStyle: \"headerStyle\", footerStyle: \"footerStyle\", cssClass: [\"class\", \"cssClass\"], headerClass: \"headerClass\", footerClass: \"footerClass\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnBase$1.prototype, \"resizable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnBase$1.prototype, \"reorderable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ColumnBase$1.prototype, \"minResizableWidth\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColumnBase$1.prototype, \"title\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], ColumnBase$1.prototype, \"width\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnBase$1.prototype, \"autoSize\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnBase$1.prototype, \"locked\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnBase$1.prototype, \"hidden\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColumnBase$1.prototype, \"media\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnBase$1.prototype, \"lockable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnBase$1.prototype, \"columnMenu\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnBase$1.prototype, \"includeInChooser\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColumnBase$1.prototype, \"style\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColumnBase$1.prototype, \"headerStyle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColumnBase$1.prototype, \"footerStyle\", void 0);\n__decorate([\n Input('class'),\n __metadata(\"design:type\", Object)\n], ColumnBase$1.prototype, \"cssClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColumnBase$1.prototype, \"headerClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColumnBase$1.prototype, \"footerClass\", void 0);\n__decorate([\n ContentChildren(HeaderTemplateDirective, { descendants: false }),\n __metadata(\"design:type\", QueryList)\n], ColumnBase$1.prototype, \"headerTemplates\", void 0);\n__decorate([\n ContentChild(FooterTemplateDirective, { static: false }),\n __metadata(\"design:type\", FooterTemplateDirective)\n], ColumnBase$1.prototype, \"footerTemplate\", void 0);\n__decorate([\n ContentChildren(ColumnMenuTemplateDirective),\n __metadata(\"design:type\", QueryList)\n], ColumnBase$1.prototype, \"columnMenuTemplates\", void 0);\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/** @hidden */\nconst isColumnEditable = (column, formGroup) => column.isEditable !== false &&\n (column.editTemplate || (formGroup && column.field && formGroup.get(column.field)));\n\n/**\n * Represents the filter-cell template ([see example]({% slug builtinfiltertemplate_treelist %}#toc-customizing-filter-rows)).\n *\n * The template context is set to the filter descriptor and the following additional fields are passed:\n * - `column`—The current column instance. Use it as an alias for a template variable by utilizing the `let-column=\"column\"` syntax.\n * - `filter`—The filter descriptor.\n * - `cellContext`—An object used to pass context information to built-in directives.\n */\nlet FilterCellTemplateDirective = class FilterCellTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nFilterCellTemplateDirective.ɵfac = function FilterCellTemplateDirective_Factory(t) { return new (t || FilterCellTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nFilterCellTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: FilterCellTemplateDirective, selectors: [[\"\", \"kendoTreeListFilterCellTemplate\", \"\"]] });\nFilterCellTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], FilterCellTemplateDirective);\n\n/**\n * Represents the filter-menu template\n * ([see example]({% slug builtinfiltertemplate_treelist %}#toc-customizing-filter-menus)).\n */\nlet FilterMenuTemplateDirective = class FilterMenuTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nFilterMenuTemplateDirective.ɵfac = function FilterMenuTemplateDirective_Factory(t) { return new (t || FilterMenuTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nFilterMenuTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: FilterMenuTemplateDirective, selectors: [[\"\", \"kendoTreeListFilterMenuTemplate\", \"\"]] });\nFilterMenuTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], FilterMenuTemplateDirective);\n\n/**\n * @hidden\n */\nlet OptionChangesService = class OptionChangesService {\n /**\n * @hidden\n */\n constructor() {\n this.columns = new EventEmitter();\n this.options = new EventEmitter();\n }\n optionChanged() {\n this.options.emit();\n }\n columnChanged() {\n this.columns.emit();\n }\n};\nOptionChangesService.ɵfac = function OptionChangesService_Factory(t) { return new (t || OptionChangesService)(); };\nOptionChangesService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: OptionChangesService, factory: function (t) { return OptionChangesService.ɵfac(t); } });\n\nvar ColumnComponent_1;\n/**\n * @hidden\n */\nfunction isColumnComponent(column) {\n return isPresent(column.field);\n}\n/**\n * Represents the columns of the [Angular TreeList]({% slug getstarted_treelist %}).\n *\n * {% meta height:470 %}\n * {% embed_file basic-usage/app.component.ts preview %}\n * {% embed_file basic-usage/app.module.ts %}\n * {% embed_file shared/main.ts %}\n * {% embed_file shared/employees.ts %}\n * {% endmeta %}\n */\nlet ColumnComponent = ColumnComponent_1 = class ColumnComponent extends ColumnBase$1 {\n constructor(parent, optionChanges) {\n super(parent, optionChanges);\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 * Defines the editor type ([see example]({% slug editing_reactive_forms_treelist %}#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 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 /**\n * @hidden\n */\n get isEditable() {\n return this.editable !== false;\n }\n};\nColumnComponent.ɵfac = function ColumnComponent_Factory(t) { return new (t || ColumnComponent)(ɵngcc0.ɵɵdirectiveInject(ColumnBase$1, 13), ɵngcc0.ɵɵdirectiveInject(OptionChangesService)); };\nColumnComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColumnComponent, selectors: [[\"kendo-treelist-column\"]], contentQueries: function ColumnComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, CellTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, EditTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, FilterCellTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, FilterMenuTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.template = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.editTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.filterCellTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.filterMenuTemplate = _t.first);\n } }, inputs: { sortable: \"sortable\", editor: \"editor\", filter: \"filter\", filterable: \"filterable\", editable: \"editable\", expandable: \"expandable\", field: \"field\", format: \"format\" }, features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: ColumnBase$1,\n useExisting: forwardRef(() => ColumnComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function ColumnComponent_Template(rf, ctx) { }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnComponent.prototype, \"expandable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColumnComponent.prototype, \"field\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColumnComponent.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColumnComponent.prototype, \"sortable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColumnComponent.prototype, \"editor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColumnComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnComponent.prototype, \"filterable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnComponent.prototype, \"editable\", void 0);\n__decorate([\n ContentChild(CellTemplateDirective, { static: false }),\n __metadata(\"design:type\", CellTemplateDirective)\n], ColumnComponent.prototype, \"template\", void 0);\n__decorate([\n ContentChild(EditTemplateDirective, { static: false }),\n __metadata(\"design:type\", EditTemplateDirective)\n], ColumnComponent.prototype, \"editTemplate\", void 0);\n__decorate([\n ContentChild(FilterCellTemplateDirective, { static: false }),\n __metadata(\"design:type\", FilterCellTemplateDirective)\n], ColumnComponent.prototype, \"filterCellTemplate\", void 0);\n__decorate([\n ContentChild(FilterMenuTemplateDirective, { static: false }),\n __metadata(\"design:type\", FilterMenuTemplateDirective)\n], ColumnComponent.prototype, \"filterMenuTemplate\", void 0);\nColumnComponent = ColumnComponent_1 = __decorate([ __param(0, SkipSelf()), __param(0, Host()), __param(0, Optional()),\n __metadata(\"design:paramtypes\", [ColumnBase$1, OptionChangesService])\n], ColumnComponent);\n\nvar SpanColumnComponent_1;\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_treelist %})).\n * Enables you to achieve more flexible layout while keeping the built-in UI element for\n * [sorting]({% slug sorting_treelist %}) and [filtering]({% slug filtering_treelist %}). Wrap the columns that will be\n * merged inside the `` tag.\n *\n * {% meta height:570 %}\n * {% embed_file configuration/span-column/app.component.ts preview %}\n * {% embed_file configuration/span-column/app.module.ts %}\n * {% embed_file shared/main.ts %}\n * {% embed_file shared/employees.ts %}\n * {% endmeta %}\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_treelist_celltemplatedirective %}).\n *\n * ```html-no-run\n * \n * \n * \n * \n *
    {{ dataItem.field1 }}
    \n *

    {{ dataItem.field2 }}

    \n *
    \n *
    \n * ```\n */\nlet SpanColumnComponent = SpanColumnComponent_1 = class SpanColumnComponent extends ColumnBase$1 {\n constructor(parent, optionChanges) {\n super(parent, optionChanges);\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 TreeList.\n *\n * For the option to work properly, make sure that:\n * - Scrolling is enabled.\n * - The `height` option of the TreeList is set.\n * - The widths of all TreeList columns are explicitly set in pixels. In this way,\n * the TreeList 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 treelistData: any[];\n *\n * constructor() {\n * this.treelistData = 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 isEditable() {\n return Boolean(this.editTemplateRef);\n }\n get childrenArray() {\n return this.childColumns.toArray();\n }\n get hasChildren() {\n return this.childColumns.length > 0;\n }\n};\nSpanColumnComponent.ɵfac = function SpanColumnComponent_Factory(t) { return new (t || SpanColumnComponent)(ɵngcc0.ɵɵdirectiveInject(ColumnBase$1, 13), ɵngcc0.ɵɵdirectiveInject(OptionChangesService)); };\nSpanColumnComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: SpanColumnComponent, selectors: [[\"kendo-treelist-span-column\"]], contentQueries: function SpanColumnComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, CellTemplateDirective, 4);\n ɵngcc0.ɵɵcontentQuery(dirIndex, EditTemplateDirective, 4);\n ɵngcc0.ɵɵcontentQuery(dirIndex, ColumnComponent, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.template = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.editTemplate = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.childColumns = _t);\n } }, inputs: { editable: \"editable\", locked: \"locked\", expandable: \"expandable\" }, features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: ColumnBase$1,\n useExisting: forwardRef(() => SpanColumnComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function SpanColumnComponent_Template(rf, ctx) { }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], SpanColumnComponent.prototype, \"expandable\", void 0);\n__decorate([\n ContentChildren(CellTemplateDirective, { descendants: false }),\n __metadata(\"design:type\", QueryList)\n], SpanColumnComponent.prototype, \"template\", void 0);\n__decorate([\n ContentChildren(EditTemplateDirective, { descendants: false }),\n __metadata(\"design:type\", QueryList)\n], SpanColumnComponent.prototype, \"editTemplate\", void 0);\n__decorate([\n ContentChildren(ColumnComponent),\n __metadata(\"design:type\", QueryList)\n], SpanColumnComponent.prototype, \"childColumns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], SpanColumnComponent.prototype, \"editable\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], SpanColumnComponent.prototype, \"locked\", null);\nSpanColumnComponent = SpanColumnComponent_1 = __decorate([ __param(0, SkipSelf()), __param(0, Host()), __param(0, Optional()),\n __metadata(\"design:paramtypes\", [ColumnBase$1, OptionChangesService])\n], SpanColumnComponent);\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\nvar ColumnGroupComponent_1;\n/**\n * @hidden\n */\nfunction isColumnGroupComponent(column) {\n return column.isColumnGroup;\n}\n/**\n * Represents the column group header of the TreeList\n * ([more information and examples]({% slug multicolumnheaders_columns_treelist %})).\n *\n * {% meta height:533 %}\n * {% embed_file configuration/multi-column-headers/app.component.ts preview %}\n * {% embed_file configuration/multi-column-headers/app.module.ts %}\n * {% embed_file shared/main.ts %}\n * {% embed_file shared/filesystem.ts %}\n * {% endmeta %}\n */\nlet ColumnGroupComponent = ColumnGroupComponent_1 = class ColumnGroupComponent extends ColumnBase$1 {\n constructor(parent, optionChanges) {\n super(parent, optionChanges);\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.ɵfac = function ColumnGroupComponent_Factory(t) { return new (t || ColumnGroupComponent)(ɵngcc0.ɵɵdirectiveInject(ColumnBase$1, 13), ɵngcc0.ɵɵdirectiveInject(OptionChangesService)); };\nColumnGroupComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColumnGroupComponent, selectors: [[\"kendo-treelist-column-group\"]], contentQueries: function ColumnGroupComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, ColumnBase$1, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.children = _t);\n } }, features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: ColumnBase$1,\n useExisting: forwardRef(() => ColumnGroupComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function ColumnGroupComponent_Template(rf, ctx) { }, encapsulation: 2 });\n__decorate([\n ContentChildren(ColumnBase$1),\n __metadata(\"design:type\", QueryList)\n], ColumnGroupComponent.prototype, \"children\", void 0);\nColumnGroupComponent = ColumnGroupComponent_1 = __decorate([ __param(0, SkipSelf()), __param(0, Host()), __param(0, Optional()),\n __metadata(\"design:paramtypes\", [ColumnBase$1, OptionChangesService])\n], ColumnGroupComponent);\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 */\nlet BrowserSupportService = class BrowserSupportService {\n constructor(zone, changeDetector) {\n this.zone = zone;\n this.changeDetector = changeDetector;\n this.changes = new EventEmitter();\n if (typeof window !== 'undefined') {\n this.zone.runOutsideAngular(() => {\n 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 }\n get scrollbarWidth() {\n return scrollbarWidth();\n }\n get rtlScrollLeft() {\n return rtlScrollLeft();\n }\n};\nBrowserSupportService.ɵfac = function BrowserSupportService_Factory(t) { return new (t || BrowserSupportService)(ɵngcc0.ɵɵinject(ɵngcc0.NgZone), ɵngcc0.ɵɵinject(ɵngcc0.ChangeDetectorRef)); };\nBrowserSupportService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: BrowserSupportService, factory: function (t) { return BrowserSupportService.ɵfac(t); } });\nBrowserSupportService = __decorate([ __metadata(\"design:paramtypes\", [NgZone, ChangeDetectorRef])\n], BrowserSupportService);\n\nconst ɵ0$3 = () => true;\n/**\n * @hidden\n */\nconst EXPANDED_STATE = {\n isExpanded: ɵ0$3\n};\nconst ɵ1 = () => false;\n/**\n * @hidden\n */\nconst UNSELECTED_STATE = {\n isRowSelected: ɵ1\n};\nconst ɵ2 = () => false, ɵ3 = () => null;\n/**\n * @hidden\n */\nconst NOT_EDITED_STATE = {\n hasNew: ɵ2,\n context: ɵ3\n};\nconst identity = item => item;\nfunction loadView(view, subject) {\n view.loadData();\n if (view.loading) {\n view.dataLoaded.pipe(take(1)).subscribe(() => {\n loadView(view, subject);\n });\n }\n else {\n subject.next(view);\n }\n}\nconst LOADING = 'loading';\nclass ViewRange {\n constructor(skip, pageSize, pageable) {\n this.skip = skip;\n this.pageSize = pageSize;\n this.pageable = pageable;\n }\n static create(options) {\n const { skip, pageSize, pageable, isVirtual } = options;\n let rangeType = ViewRange;\n if (pageSize) {\n if (pageable) {\n rangeType = PagerRange;\n }\n else if (isVirtual) {\n rangeType = VirtualRange;\n }\n }\n return new rangeType(skip, pageSize, pageable);\n }\n inRange(_index, _rowIndex) {\n return true;\n }\n levelInRange(_parent, _items, _rowIndex) {\n return true;\n }\n includeParents(_children) {\n }\n}\nfunction isPagerSettings(pageable) {\n return typeof pageable === \"object\";\n}\nclass PagerRange extends ViewRange {\n constructor(skip, pageSize, pageable) {\n super(skip, pageSize, pageable);\n this.expandAll = true;\n if (isPagerSettings(pageable)) {\n this.expandAll = pageable.countChildren !== false;\n }\n }\n inRange(index, _rowIndex) {\n return this.skip <= index && index < this.skip + this.pageSize;\n }\n levelInRange(parent, items, _rowIndex) {\n return parent.level === -1 ||\n (this.skip <= parent.index + items.length && parent.index + 1 < this.skip + this.pageSize);\n }\n includeParents(children) {\n let parentLevel = children.parentLevel;\n while (parentLevel && !parentLevel.inRange) {\n parentLevel.inRange = true;\n parentLevel = parentLevel.parentLevel;\n }\n }\n}\nclass VirtualRange extends ViewRange {\n inRange(_index, rowIndex) {\n return this.skip <= rowIndex && rowIndex < this.skip + this.pageSize;\n }\n levelInRange(parent, _items, rowIndex) {\n return this.inRange(parent.index, rowIndex);\n }\n}\n/**\n * @hidden\n */\nclass ViewItemFactory {\n constructor(expandState, editState, selectionState, loaded, fieldAccessor, rootItem) {\n this.expandState = expandState;\n this.editState = editState;\n this.selectionState = selectionState;\n this.loaded = loaded;\n this.fieldAccessor = fieldAccessor;\n this.observables = [];\n this.rowIndex = 0;\n const options = this.fieldAccessor();\n this.fetchChildren = options.fetchChildren;\n this.hasChildren = options.hasChildren;\n this.idGetter = options.idGetter;\n this.hasFooter = options.hasFooter;\n this.viewRange = ViewRange.create(options);\n if (rootItem) {\n this.rootLevel = this.loadChildren(rootItem);\n }\n else {\n this.rootLevel = this.dataLevel({\n level: -1,\n id: null,\n expanded: true\n }, options.data);\n }\n }\n // try to stop iteration if cached total and viewRange ends\n generate() {\n const result = [];\n const dataLevels = [this.rootLevel];\n let itemIndex = 0;\n let itemCount = 0;\n this.addNew(result);\n while (dataLevels.length) {\n while (dataLevels[0] && dataLevels[0].idx >= dataLevels[0].items.length) {\n const dataLevel = dataLevels.shift();\n if (this.hasFooter && dataLevel.expanded && dataLevel.items.length) {\n if (dataLevel.inRange || this.viewRange.levelInRange(dataLevel.parent, dataLevel.items, this.rowIndex)) {\n result.push({\n type: 'footer',\n items: dataLevel.items,\n aggregates: dataLevel.aggregates,\n level: dataLevel.level,\n parentItem: dataLevel.parent.data,\n parentIndex: dataLevel.parentIndex,\n rowIndex: this.rowIndex\n });\n this.viewRange.includeParents(dataLevel);\n }\n this.rowIndex++;\n }\n }\n if (!dataLevels.length) {\n break;\n }\n const currentLevel = dataLevels[0];\n const dataItem = currentLevel.items[currentLevel.idx++];\n const viewItem = {\n type: 'data',\n data: dataItem,\n id: this.idGetter(dataItem),\n rowIndex: this.rowIndex,\n index: itemIndex,\n level: currentLevel.level,\n hasChildren: this.hasChildren(dataItem),\n parent: currentLevel.parent\n };\n if (currentLevel.expanded) {\n this.rowIndex++;\n if (this.viewRange.inRange(itemIndex, viewItem.rowIndex)) {\n if (this.offsetFirst) {\n viewItem.rowIndex++;\n this.rowIndex++;\n this.offsetFirst = false;\n }\n result.push(viewItem);\n viewItem.editContext = this.editState.context(viewItem.data);\n viewItem.selected = this.selectionState.isRowSelected(dataItem);\n this.addNew(result, dataItem);\n }\n itemIndex++;\n }\n itemCount++;\n const expanded = viewItem.hasChildren && this.expandState.isExpanded(viewItem.data);\n if (viewItem.hasChildren && (expanded || this.viewRange.expandAll)) {\n viewItem.expanded = expanded && currentLevel.expanded;\n const children = this.loadChildren(viewItem);\n if (children) {\n dataLevels.unshift(children);\n children.parentLevel = currentLevel;\n }\n }\n }\n return {\n items: result,\n observables: this.observables,\n total: itemCount,\n totalVisible: itemIndex,\n totalRows: this.rowIndex\n };\n }\n loadChildren(parent) {\n const parentId = parent.id;\n if (this.loaded.has(parentId)) {\n const children = this.loaded.get(parentId);\n if (children === LOADING) {\n parent.loading = true;\n }\n else {\n return this.dataLevel(parent, children);\n }\n }\n else {\n const children = this.fetchChildren(parent.data);\n if (isObservable(children)) {\n this.observables.push({\n observable: children,\n parentId: parentId\n });\n parent.loading = true;\n }\n else if (children) {\n this.loaded.set(parentId, children);\n return this.dataLevel(parent, children);\n }\n }\n }\n dataLevel(parent, children) {\n children = children || {};\n const data = children.data || children;\n const items = data && data.length ? data : [];\n return {\n idx: 0,\n level: parent.level + 1,\n items: items,\n aggregates: children.aggregates,\n expanded: parent.expanded,\n parentIndex: parent.index,\n parent: parent\n };\n }\n addNew(result, parent) {\n if (this.editState.hasNew(parent)) {\n const inRange = this.viewRange.inRange(0, this.rowIndex);\n const rowIndex = parent || inRange ? this.rowIndex : this.viewRange.skip;\n result.push({\n parent: parent,\n isNew: true,\n type: 'data',\n data: this.editState.newItem.dataItem,\n editContext: this.editState.newItem,\n rowIndex: rowIndex\n });\n if (parent || inRange) {\n this.rowIndex++;\n }\n else {\n this.offsetFirst = true;\n }\n }\n }\n}\n/**\n * @hidden\n */\nclass ViewCollection {\n constructor(fieldAccessor, expandState, editState, selectionState) {\n this.fieldAccessor = fieldAccessor;\n this.expandState = expandState;\n this.editState = editState;\n this.selectionState = selectionState;\n this.childrenLoaded = new EventEmitter();\n this.dataLoaded = new EventEmitter();\n this.resetPage = new EventEmitter();\n this.total = 0;\n this.totalVisible = 0;\n this.loaded = new Map();\n this.loading = false;\n this._totalRows = 0;\n this.loadingCount = 0;\n }\n static loadView(options) {\n const subject = new BehaviorSubject(null);\n const viewFields = () => Object.assign({\n idGetter: identity,\n pageable: false,\n isVirtual: false,\n skip: 0\n }, options.fields);\n const childrenView = new ViewCollection(viewFields, options.expandState || EXPANDED_STATE, options.editState || NOT_EDITED_STATE, options.selectionState || UNSELECTED_STATE);\n if (options.loaded) {\n childrenView.loaded = options.loaded;\n }\n loadView(childrenView, subject);\n return subject;\n }\n get totalRows() {\n if (!this._data) {\n this.loadData();\n }\n return this._totalRows;\n }\n get data() {\n if (!this._data) {\n this.loadData();\n }\n return this._data;\n }\n get length() { return this.data.length; }\n get first() { return this.data[0]; }\n get firstItem() {\n return this.find(item => item.type === 'data');\n }\n get last() { return this.data[this.data.length - 1]; }\n at(index) {\n return this.data[index];\n }\n itemIndex(item) {\n const idGetter = this.fieldAccessor().idGetter;\n return this.data.findIndex(i => i.id === idGetter(item));\n }\n map(fn) { return this.data.map(fn); }\n filter(fn) {\n return this.data.filter(fn);\n }\n findIndex(fn) {\n return this.data.findIndex(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 find(fn) {\n return this.data.find(fn);\n }\n toString() { return this.data.toString(); }\n updateSelectedState() {\n this.forEach(item => {\n if (item.type === 'data') {\n item.selected = this.selectionState.isRowSelected(item.data);\n }\n });\n }\n updateEditedState() {\n this.forEach(item => {\n if (item.type === 'data') {\n item.editContext = this.editState.context(item.data);\n }\n });\n }\n reset() {\n this.loaded.clear();\n this.clear();\n this.unsubscribeChildren();\n }\n resetItem(item, resetChildren) {\n const idGetter = this.fieldAccessor().idGetter;\n const toReset = [item];\n while (toReset.length) {\n const current = toReset.shift();\n const id = idGetter(current);\n if (this.loaded.has(id)) {\n const children = this.loaded.get(id);\n this.loaded.delete(id);\n if (resetChildren) {\n toReset.push.apply(toReset, children.data || children);\n }\n }\n }\n this.clear();\n }\n clear() {\n this._data = null;\n }\n loadData() {\n const itemFactory = new ViewItemFactory(this.expandState, this.editState, this.selectionState, this.loaded, this.fieldAccessor);\n let result = itemFactory.generate();\n if (!result.loading && result.total && (!result.items.length || !result.items.some(i => i.type === 'data'))) {\n this.resetPage.emit();\n result = new ViewItemFactory(this.expandState, this.editState, this.selectionState, this.loaded, this.fieldAccessor).generate();\n }\n this._data = result.items;\n this.total = result.total;\n this.totalVisible = result.totalVisible;\n this._totalRows = result.totalRows;\n if (result.observables && result.observables.length) {\n this.loading = true;\n this.loadingCount += result.observables.length;\n if (!this.childrenSubscription) {\n this.childrenSubscription = new Subscription();\n }\n result.observables.forEach(o => {\n this.loaded.set(o.parentId, LOADING);\n this.childrenSubscription.add(o.observable.subscribe(children => {\n this.clear();\n this.loaded.set(o.parentId, children);\n this.childrenLoaded.emit();\n this.loadingCount--;\n if (this.loadingCount === 0) {\n this.loading = false;\n this.unsubscribeChildren();\n this.dataLoaded.emit();\n }\n }));\n });\n }\n else {\n this.dataLoaded.emit();\n }\n }\n unsubscribeChildren() {\n if (this.childrenSubscription) {\n this.childrenSubscription.unsubscribe();\n this.childrenSubscription = null;\n this.loadingCount = 0;\n }\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\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\nconst identity$1 = item => item;\n/**\n * @hidden\n */\nlet EditService = class EditService {\n constructor(ngZone) {\n this.ngZone = ngZone;\n this.changes = new EventEmitter();\n this.idGetter = identity$1;\n // Maps IDs to edited rows\n this.edited = new Map();\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 get newItemGroup() {\n return this.newItem ? this.newItem.group : null;\n }\n editRow(dataItem, group = undefined) {\n this.edited.set(this.idGetter(dataItem), {\n group,\n item: dataItem\n });\n this.onChanged();\n }\n addRow(parent, group) {\n this.newItem = { parent, group, dataItem: group ? group.value : null };\n this.onChanged();\n }\n editCell(item, column, group) {\n if (!isColumnEditable(column, group)) {\n return;\n }\n this.preventCellClose();\n if (!this.closeCell()) {\n this.editRow(item, group);\n this.column = column;\n this.onChanged();\n }\n }\n isEditing() {\n return this.edited.size > 0;\n }\n isEdited(dataItem) {\n return (this.newItem && this.newItem.dataItem === dataItem) ||\n this.edited.has(this.idGetter(dataItem));\n }\n isEditingCell() {\n return isPresent(this.column);\n }\n isEditingColumn(column) {\n return this.column === column;\n }\n isEditedColumn(column) {\n return !this.column || this.column === column;\n }\n hasNew(parent) {\n return Boolean(this.newItem && ((!this.newItem.parent && !parent) ||\n this.idGetter(this.newItem.parent) === this.idGetter(parent)));\n }\n get newDataItem() {\n if (this.newItem) {\n return this.newItem.group.value;\n }\n }\n close(item, isNew) {\n if (isNew) { // parent\n this.newItem = undefined;\n return;\n }\n this.edited.delete(this.idGetter(item));\n delete this.column;\n this.onChanged();\n }\n closeCell(originalEvent) {\n if (this.column && !this.closingCell) {\n return this.ngZone.run(() => {\n const { item, group } = this.first;\n const args = new CellCloseEvent({\n column: this.column,\n formGroup: group,\n originalEvent: originalEvent,\n dataItem: item\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.edited.clear();\n this.column = null;\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(dataItem) {\n return this.edited.get(this.idGetter(dataItem));\n }\n beginEdit(item) {\n this.changes.emit({ action: 'edit', dataItem: item });\n }\n beginAdd(parent) {\n this.changes.emit({ action: 'add', parent });\n }\n endEdit(dataItem, isNew) {\n const formGroup = isNew ? this.newItemGroup : this.context(dataItem).group;\n this.changes.emit({ action: 'cancel', dataItem, formGroup, isNew });\n }\n save(item, isNew) {\n const args = { action: 'save', isNew: isNew };\n if (isNew) {\n args.parent = this.newItem.parent;\n args.formGroup = this.newItem.group;\n args.dataItem = item;\n }\n else {\n args.dataItem = item;\n args.formGroup = this.context(item).group;\n }\n this.changes.emit(args);\n }\n remove(dataItem, parent) {\n this.changes.emit({ action: 'remove', dataItem, parent });\n }\n onChanged() {\n this.ngZone.runOutsideAngular(() => {\n this.changedSource.next();\n });\n }\n get first() {\n if (this.isEditing()) {\n return this.edited.values().next().value;\n }\n }\n};\nEditService.ɵfac = function EditService_Factory(t) { return new (t || EditService)(ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nEditService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: EditService, factory: function (t) { return EditService.ɵfac(t); } });\nEditService = __decorate([ __metadata(\"design:paramtypes\", [NgZone])\n], EditService);\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.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 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 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.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\n/**\n * @hidden\n */\nlet ChangeNotificationService = class 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.ɵfac = function ChangeNotificationService_Factory(t) { return new (t || ChangeNotificationService)(ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nChangeNotificationService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ChangeNotificationService, factory: function (t) { return ChangeNotificationService.ɵfac(t); } });\nChangeNotificationService = __decorate([ __metadata(\"design:paramtypes\", [NgZone])\n], ChangeNotificationService);\n\n/**\n * Represents the no-records template of the TreeList. 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 `kendoTreeListNoRecordsTemplate` directive inside ``.\n *\n * > When the locked columns of the TreeList are in use, the template is displayed in the non-locked part of the content.\n *\n * {% meta height:533 %}\n * {% embed_file configuration/no-records-template/app.component.ts preview %}\n * {% embed_file configuration/no-records-template/app.module.ts %}\n * {% embed_file shared/main.ts %}\n * {% embed_file shared/employees.ts %}\n * {% endmeta %}\n */\nlet NoRecordsTemplateDirective = class NoRecordsTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nNoRecordsTemplateDirective.ɵfac = function NoRecordsTemplateDirective_Factory(t) { return new (t || NoRecordsTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nNoRecordsTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NoRecordsTemplateDirective, selectors: [[\"\", \"kendoTreeListNoRecordsTemplate\", \"\"]] });\nNoRecordsTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], NoRecordsTemplateDirective);\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 * Represents a service to set the filter descriptor\n * ([see example]({% slug reusablecustomfilters_treelist %})).\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}\nFilterService.ɵfac = function FilterService_Factory(t) { return new (t || FilterService)(); };\nFilterService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: FilterService, factory: FilterService.ɵfac });\n\n/**\n * Represents the pager template which helps to customize the pager appearance in the TreeList. To define a pager\n * template, nest an `` tag with the `kendoTreeListPagerTemplate` 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 * {% meta height:470 %}\n * {% embed_file configuration/pager-template-all/app.component.ts preview %}\n * {% embed_file configuration/pager-template-all/app.module.ts %}\n * {% embed_file shared/main.ts %}\n * {% embed_file shared/filesystem.ts %}\n * {% endmeta %}\n */\nlet PagerTemplateDirective = class PagerTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nPagerTemplateDirective.ɵfac = function PagerTemplateDirective_Factory(t) { return new (t || PagerTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nPagerTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: PagerTemplateDirective, selectors: [[\"\", \"kendoTreeListPagerTemplate\", \"\"]] });\nPagerTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], PagerTemplateDirective);\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.allCount = changes.allCount;\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}\nPagerContextService.ɵfac = function PagerContextService_Factory(t) { return new (t || PagerContextService)(); };\nPagerContextService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: PagerContextService, factory: PagerContextService.ɵfac });\n\n/**\n * @hidden\n */\nlet PDFService = class PDFService {\n /**\n * @hidden\n */\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.ɵfac = function PDFService_Factory(t) { return new (t || PDFService)(); };\nPDFService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: PDFService, factory: function (t) { return PDFService.ɵfac(t); } });\n\n/**\n * Arguments for the `pdfExport` event.\n */\nclass PDFExportEvent extends PreventableEvent {\n}\n\n/**\n * @hidden\n */\nlet SuspendService = class SuspendService {\n /**\n * @hidden\n */\n constructor() {\n this.scroll = false;\n }\n};\nSuspendService.ɵfac = function SuspendService_Factory(t) { return new (t || SuspendService)(); };\nSuspendService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: SuspendService, factory: function (t) { return SuspendService.ɵfac(t); } });\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 */\nlet ResponsiveService = class ResponsiveService {\n /**\n * @hidden\n */\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.ɵfac = function ResponsiveService_Factory(t) { return new (t || ResponsiveService)(); };\nResponsiveService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ResponsiveService, factory: function (t) { return ResponsiveService.ɵfac(t); } });\n\n/**\n * @hidden\n */\nlet ExcelService = class ExcelService {\n /**\n * @hidden\n */\n constructor() {\n this.saveToExcel = new EventEmitter();\n this.exportClick = new EventEmitter();\n this.loadingChange = 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 toggleLoading(value) {\n this.loading = value;\n this.loadingChange.emit();\n }\n};\nExcelService.ɵfac = function ExcelService_Factory(t) { return new (t || ExcelService)(); };\nExcelService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ExcelService, factory: function (t) { return ExcelService.ɵfac(t); } });\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 * Represents the toolbar template of the TreeList.\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 * {% meta height:470 %}\n * {% embed_file configuration/toolbar-template/basic/app.component.ts preview %}\n * {% embed_file configuration/toolbar-template/basic/app.module.ts %}\n * {% embed_file shared/main.ts %}\n * {% embed_file shared/employees.ts %}\n * {% endmeta %}\n */\nlet ToolbarTemplateDirective = class ToolbarTemplateDirective {\n constructor(templateRef, optionChanges) {\n this.templateRef = templateRef;\n this.optionChanges = optionChanges;\n this._position = \"top\";\n }\n /**\n * The position of the toolbar ([see example]({% slug toolbartemplate_treelist %})).\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 this.optionChanges.optionChanged();\n }\n get position() {\n return this._position;\n }\n};\nToolbarTemplateDirective.ɵfac = function ToolbarTemplateDirective_Factory(t) { return new (t || ToolbarTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8), ɵngcc0.ɵɵdirectiveInject(OptionChangesService)); };\nToolbarTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ToolbarTemplateDirective, selectors: [[\"\", \"kendoTreeListToolbarTemplate\", \"\"]], inputs: { position: \"position\" } });\n__decorate([\n Input(\"position\"),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ToolbarTemplateDirective.prototype, \"position\", null);\nToolbarTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef, OptionChangesService])\n], ToolbarTemplateDirective);\n\n/**\n * @hidden\n */\nlet ScrollSyncService = class 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.ɵfac = function ScrollSyncService_Factory(t) { return new (t || ScrollSyncService)(ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nScrollSyncService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ScrollSyncService, factory: function (t) { return ScrollSyncService.ɵfac(t); } });\nScrollSyncService = __decorate([ __metadata(\"design:paramtypes\", [NgZone])\n], ScrollSyncService);\n\n/**\n * @hidden\n */\nlet ResizeService = class ResizeService {\n /**\n * @hidden\n */\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.ɵfac = function ResizeService_Factory(t) { return new (t || ResizeService)(); };\nResizeService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ResizeService, factory: function (t) { return ResizeService.ɵfac(t); } });\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 */\nlet DomEventsService = class DomEventsService {\n /**\n * @hidden\n */\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.ɵfac = function DomEventsService_Factory(t) { return new (t || DomEventsService)(); };\nDomEventsService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: DomEventsService, factory: function (t) { return DomEventsService.ɵfac(t); } });\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 */\nlet ColumnResizingService = class ColumnResizingService {\n /**\n * @hidden\n */\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.ɵfac = function ColumnResizingService_Factory(t) { return new (t || ColumnResizingService)(); };\nColumnResizingService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ColumnResizingService, factory: function (t) { return ColumnResizingService.ɵfac(t); } });\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_treelist %}#toc-filter-menu-with-popup)).\n */\nlet SinglePopupService = class 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.ɵfac = function SinglePopupService_Factory(t) { return new (t || SinglePopupService)(ɵngcc0.ɵɵinject(ɵngcc1.PopupService), ɵngcc0.ɵɵinject(ɵngcc0.Renderer2), ɵngcc0.ɵɵinject(ɵngcc0.NgZone), ɵngcc0.ɵɵinject(ScrollSyncService), ɵngcc0.ɵɵinject(ɵngcc2.LocalizationService)); };\nSinglePopupService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: SinglePopupService, factory: function (t) { return SinglePopupService.ɵfac(t); } });\nSinglePopupService = __decorate([ __metadata(\"design:paramtypes\", [PopupService,\n Renderer2,\n NgZone,\n ScrollSyncService,\n LocalizationService])\n], SinglePopupService);\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 */\nlet DragAndDropService = class DragAndDropService {\n /**\n * @hidden\n */\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.ɵfac = function DragAndDropService_Factory(t) { return new (t || DragAndDropService)(); };\nDragAndDropService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: DragAndDropService, factory: function (t) { return DragAndDropService.ɵfac(t); } });\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 */\nlet DragHintService = class 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.ɵfac = function DragHintService_Factory(t) { return new (t || DragHintService)(ɵngcc0.ɵɵinject(ɵngcc3.DomSanitizer)); };\nDragHintService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: DragHintService, factory: function (t) { return DragHintService.ɵfac(t); } });\nDragHintService = __decorate([ __metadata(\"design:paramtypes\", [DomSanitizer])\n], DragHintService);\n\n/**\n * @hidden\n */\nlet DropCueService = class 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.ɵfac = function DropCueService_Factory(t) { return new (t || DropCueService)(); };\nDropCueService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: DropCueService, factory: function (t) { return DropCueService.ɵfac(t); } });\n\n/**\n * @hidden\n */\nlet ColumnReorderService = class ColumnReorderService {\n /**\n * @hidden\n */\n constructor() {\n this.changes = new EventEmitter();\n }\n reorder(e) {\n this.changes.emit(e);\n }\n};\nColumnReorderService.ɵfac = function ColumnReorderService_Factory(t) { return new (t || ColumnReorderService)(); };\nColumnReorderService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ColumnReorderService, factory: function (t) { return ColumnReorderService.ɵfac(t); } });\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 */\nlet FocusRoot = class FocusRoot {\n /**\n * @hidden\n */\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.ɵfac = function FocusRoot_Factory(t) { return new (t || FocusRoot)(); };\nFocusRoot.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: FocusRoot, factory: function (t) { return FocusRoot.ɵfac(t); } });\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 * Represents group of components that can be activated or focused.\n *\n * A focus group may contain focusable elements, such as rows, cells and input elements.\n *\n * Elements are added to the focus group by tagging them with the `kendoTreeListFocusable` directive.\n * See [Controlling the Focus]({% slug keyboard_navigation_treelist %}#toc-controlling-the-focus).\n *\n * @hidden\n */\nlet FocusGroup = class FocusGroup {\n /**\n * @hidden\n */\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 /**\n * @hidden\n */\n registerElement(element) {\n this.unregisterElement(element);\n this.children.push(element);\n }\n /**\n * @hidden\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 * Evaluates to `true` when the focus group has a single focusable element such as a button or a checkbox.\n *\n * @returns A boolean value which indicates if the group will receive focus when the cell is focused.\n */\n isNavigable() {\n const focusable = this.focusableChildren;\n return focusable.length === 1 && focusable[0].isNavigable();\n }\n /**\n * Returns a boolean value which indicates if the focus group contains focusable component.\n *\n * @returns A boolean value which indicates if the focus group contains focusable component.\n */\n canFocus() {\n return this.focusableChildren.length > 0;\n }\n /**\n * Focuses the first focusable component, if any.\n */\n focus() {\n if (this.canFocus() && !this.hasFocus()) {\n this.focusableChildren[0].focus();\n }\n }\n /**\n * @hidden\n */\n activate() {\n this.toggleState(true);\n }\n /**\n * @hidden\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.ɵfac = function FocusGroup_Factory(t) { return new (t || FocusGroup)(ɵngcc0.ɵɵinject(FocusRoot)); };\nFocusGroup.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: FocusGroup, factory: function (t) { return FocusGroup.ɵfac(t); } });\nFocusGroup = __decorate([ __metadata(\"design:paramtypes\", [FocusRoot])\n], FocusGroup);\n\n/**\n * A directive that controls the way focusable cell elements receive\n * [focus in a navigable TreeList]({% slug keyboard_navigation_treelist %}).\n *\n * The directive takes as input the `cellContext` from the cell template.\n *\n * ```ts-no-run\n * \n * \n * \n * \n * \n * ```\n */\nlet FocusableDirective = class FocusableDirective {\n constructor(hostElement, renderer, group) {\n this.hostElement = hostElement;\n this.renderer = renderer;\n this.group = group;\n this.active = true;\n }\n /**\n * @hidden\n */\n set addCellContext(value) { this.cellContext = value; }\n /**\n * @hidden\n */\n set editCellContext(value) { this.cellContext = value; }\n /**\n * @hidden\n */\n set removeCellContext(value) { this.cellContext = value; }\n /**\n * @hidden\n */\n set saveCellContext(value) { this.cellContext = value; }\n /**\n * @hidden\n */\n set cancelCellContext(value) { this.cellContext = value; }\n ngOnInit() {\n if (this.cellContext && this.cellContext.focusGroup) {\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.ɵfac = function FocusableDirective_Factory(t) { return new (t || FocusableDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(FocusGroup, 8)); };\nFocusableDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: FocusableDirective, selectors: [[\"\", \"kendoTreeListFocusable\", \"\"], [\"\", \"kendoTreeListAddCommand\", \"\"], [\"\", \"kendoTreeListEditCommand\", \"\"], [\"\", \"kendoTreeListRemoveCommand\", \"\"], [\"\", \"kendoTreeListSaveCommand\", \"\"], [\"\", \"kendoTreeListCancelCommand\", \"\"]], inputs: { addCellContext: [\"kendoTreeListAddCommand\", \"addCellContext\"], cellContext: [\"kendoTreeListFocusable\", \"cellContext\"], editCellContext: [\"kendoTreeListEditCommand\", \"editCellContext\"], removeCellContext: [\"kendoTreeListRemoveCommand\", \"removeCellContext\"], saveCellContext: [\"kendoTreeListSaveCommand\", \"saveCellContext\"], cancelCellContext: [\"kendoTreeListCancelCommand\", \"cancelCellContext\"] } });\n__decorate([\n Input('kendoTreeListFocusable'),\n __metadata(\"design:type\", Object)\n], FocusableDirective.prototype, \"cellContext\", void 0);\n__decorate([\n Input('kendoTreeListAddCommand'),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], FocusableDirective.prototype, \"addCellContext\", null);\n__decorate([\n Input('kendoTreeListEditCommand'),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], FocusableDirective.prototype, \"editCellContext\", null);\n__decorate([\n Input('kendoTreeListRemoveCommand'),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], FocusableDirective.prototype, \"removeCellContext\", null);\n__decorate([\n Input('kendoTreeListSaveCommand'),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], FocusableDirective.prototype, \"saveCellContext\", null);\n__decorate([\n Input('kendoTreeListCancelCommand'),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], FocusableDirective.prototype, \"cancelCellContext\", null);\nFocusableDirective = __decorate([ __param(2, Optional()),\n __metadata(\"design:paramtypes\", [ElementRef,\n Renderer2,\n FocusGroup])\n], FocusableDirective);\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() {\n return this.metadata.columns.leafColumnsToRender.length - 1;\n }\n offsetCol(offset) {\n const prevRow = this.model.findRow(this.virtualRow);\n const lastIndex = this.lastCellIndex();\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 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 */\nclass ModelCell {\n constructor(modelRow, cell) {\n this.uid = cell.uid;\n this.column = cell.column;\n this.colIndex = cell.logicalColIndex;\n this.rowIndex = modelRow.index;\n this.colSpan = cell.colSpan;\n this.rowSpan = cell.rowSpan;\n this.dataItem = modelRow.dataItem;\n this.dataRowIndex = modelRow.dataRowIndex;\n this.focusGroup = cell.focusGroup;\n this.expandable = cell.expandable;\n }\n focusContent() {\n if (this.focusGroup) {\n this.focusGroup.focus();\n }\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 modelCell = new ModelCell(row, cell);\n row.cells.setItem(cell.logicalColIndex, modelCell);\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 isNew: row.isNew\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 TreeListFocusableElement {\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 * Arguments for the TreeList expand and collapse events.\n */\nclass ExpandEvent extends PreventableEvent {\n /**\n * @hidden\n */\n constructor(args) {\n super();\n this.expand = args.expand;\n this.dataItem = args.dataItem;\n }\n}\n\n/**\n * @hidden\n */\nconst defaultExpanded = (_item) => true;\n/**\n * @hidden\n */\nlet ExpandStateService = class ExpandStateService {\n /**\n * @hidden\n */\n constructor() {\n this.changes = new Subject();\n this.isExpanded = defaultExpanded;\n }\n toggleState(dataItem) {\n const isExpanded = this.isExpanded(dataItem);\n this.changes.next(new ExpandEvent({ dataItem: dataItem, expand: !isExpanded }));\n }\n expand(dataItem) {\n if (!this.isExpanded(dataItem)) {\n this.changes.next(new ExpandEvent({ dataItem: dataItem, expand: true }));\n }\n }\n collapse(dataItem) {\n if (this.isExpanded(dataItem)) {\n this.changes.next(new ExpandEvent({ dataItem: dataItem, expand: false }));\n }\n }\n};\nExpandStateService.ɵfac = function ExpandStateService_Factory(t) { return new (t || ExpandStateService)(); };\nExpandStateService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ExpandStateService, factory: function (t) { return ExpandStateService.ɵfac(t); } });\n\n/**\n * @hidden\n */\nlet ScrollRequestService = class ScrollRequestService {\n /**\n * @hidden\n */\n constructor() {\n this.requests = new Subject();\n }\n scrollTo(request) {\n this.requests.next(request);\n }\n};\nScrollRequestService.ɵfac = function ScrollRequestService_Factory(t) { return new (t || ScrollRequestService)(); };\nScrollRequestService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ScrollRequestService, factory: function (t) { return ScrollRequestService.ɵfac(t); } });\n\n/**\n * Arguments for the TreeList `selectionChange` event.\n */\nclass SelectionChangeEvent {\n /**\n * @hidden\n */\n constructor(action, items) {\n this.action = action;\n this.items = items;\n }\n}\n\n/**\n * @hidden\n */\nconst defaultSelected = (_item) => false;\nconst noop = () => false;\n/**\n * @hidden\n */\nlet SelectionService = class SelectionService {\n /**\n * @hidden\n */\n constructor() {\n this.changes = new Subject();\n this.isSelected = defaultSelected;\n this.isRowSelected = noop;\n this.isCellSelected = noop;\n this.enabled = false;\n this._settings = {};\n this.tables = [];\n this.subscriptions = new Subscription();\n }\n set settings(value) {\n if (typeof value === 'object') {\n this._settings = value;\n }\n else {\n this._settings = {\n enabled: value\n };\n }\n this.enabled = this._settings.enabled !== false && !this._settings.readonly;\n if (this._settings.enabled !== false) {\n if (this._settings.mode === 'cell') {\n this.isCellSelected = this.cellSelected;\n this.isRowSelected = noop;\n }\n else {\n this.isCellSelected = noop;\n this.isRowSelected = this.rowSelected;\n }\n }\n else {\n this.isCellSelected = noop;\n this.isRowSelected = noop;\n }\n }\n get settings() {\n return this._settings;\n }\n get enableMarquee() {\n return this.enabled && this.settings.drag !== false && this.settings.multiple;\n }\n get enableMultiple() {\n return this.enabled && this.settings.multiple;\n }\n get rowSelection() {\n return this.settings.mode !== 'cell';\n }\n init(treelist) {\n this.view = treelist.view;\n this.columnsContainer = treelist.columnsContainer;\n this.subscriptions.add(merge(treelist.pageChange, treelist.dataStateChange).subscribe(() => {\n this.selectionOrigin = null;\n }));\n this.subscriptions.add(treelist.domEvents.cellMousedown.subscribe((args) => {\n if (this.enabled && this._settings.multiple && args.originalEvent.shiftKey) {\n args.originalEvent.preventDefault();\n }\n }));\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n registerTable(table) {\n this.tables.push(table);\n }\n unregisterTable(table) {\n this.tables = this.tables.filter(t => t !== table);\n }\n click(args, toggle) {\n const { dataItem, column, columnIndex, originalEvent } = args;\n if (originalEvent.keyCode === Keys.Enter || (originalEvent.button && originalEvent.button !== 0)) {\n return;\n }\n const selected = this.isSelected(dataItem, column, columnIndex);\n const ctrlKey = originalEvent.ctrlKey || originalEvent.metaKey;\n const toggleSelected = ctrlKey || toggle;\n if (this._settings.multiple) {\n if (originalEvent.shiftKey) {\n const origin = this.selectionOrigin || {\n columnIndex: 0,\n column: this.leafColumns[0],\n item: this.view.firstItem.data\n };\n this.selectRange({ item: dataItem, column, columnIndex }, origin);\n }\n else {\n this.selectionOrigin = {\n item: dataItem,\n column,\n columnIndex\n };\n const action = toggleSelected ? (selected ? 'remove' : 'add') : 'select';\n this.changes.next(new SelectionChangeEvent(action, [{\n dataItem,\n column,\n columnIndex\n }]));\n }\n }\n else if (!selected || toggleSelected) {\n const action = selected && toggleSelected ? 'remove' : 'select';\n this.changes.next(new SelectionChangeEvent(action, [{\n dataItem,\n column,\n columnIndex\n }]));\n }\n if (ctrlKey) {\n originalEvent.preventDefault();\n }\n }\n checkboxClick(args) {\n if (args.column.checkChildren && args.viewItem.hasChildren && !args.originalEvent.shiftKey && !args.originalEvent.ctrlKey) {\n const data = [args.dataItem];\n const selected = Boolean(args.viewItem.selected);\n ViewCollection.loadView({\n fields: Object.assign({}, this.view.fieldAccessor(), {\n data: data,\n hasFooter: false,\n pageable: false,\n isVirtual: false\n }),\n loaded: this.view.loaded,\n selectionState: this.view.selectionState\n }).subscribe(view => {\n if (!view) {\n return;\n }\n const selectedItems = view.data.filter(item => Boolean(item.selected) === selected).map(item => ({\n dataItem: item.data\n }));\n this.changes.next(new SelectionChangeEvent(selected ? 'remove' : 'add', selectedItems));\n });\n }\n else {\n this.click(args, true);\n }\n }\n toggleAll(select) {\n ViewCollection.loadView({\n fields: Object.assign({}, this.view.fieldAccessor(), {\n hasFooter: false,\n pageable: false,\n isVirtual: false\n }),\n loaded: this.view.loaded,\n selectionState: this.view.selectionState\n }).subscribe(view => {\n if (!view) {\n return;\n }\n const selectedItems = view.data.filter(item => Boolean(item.selected) !== select).map(item => ({\n dataItem: item.data\n }));\n this.changes.next(new SelectionChangeEvent(select ? 'add' : 'remove', selectedItems));\n });\n }\n selectRange(firstPoint, secondPoint) {\n const rangeItems = this.rangeItems(firstPoint, secondPoint);\n this.changes.next(new SelectionChangeEvent('select', rangeItems));\n }\n rangeItems(firstPoint, secondPoint) {\n const firstIndex = this.view.findIndex(item => item.data === firstPoint.item || item === firstPoint.item);\n const secondIndex = this.view.findIndex(item => item.data === secondPoint.item || item === secondPoint.item);\n const startIndex = Math.min(firstIndex, secondIndex);\n const endIndex = Math.max(firstIndex, secondIndex);\n const rangeItems = this.view.data.slice(startIndex, endIndex + 1).filter(item => item.type === 'data');\n if (this._settings.mode === 'cell') {\n const leafColumns = this.leafColumns;\n const startColumnIndex = Math.min(firstPoint.columnIndex, secondPoint.columnIndex);\n const endColumnIndex = Math.max(firstPoint.columnIndex, secondPoint.columnIndex);\n const selectedItems = [];\n for (let idx = 0; idx < rangeItems.length; idx++) {\n for (let columnIdx = startColumnIndex; columnIdx <= endColumnIndex; columnIdx++) {\n selectedItems.push({\n dataItem: rangeItems[idx].data,\n column: leafColumns[columnIdx],\n columnIndex: columnIdx\n });\n }\n }\n return selectedItems;\n }\n return rangeItems.map(item => ({\n dataItem: item.data\n }));\n }\n updateSelectedState() {\n if (this.rowSelection) {\n this.view.updateSelectedState();\n }\n }\n targetArgs(target, skipFocusable) {\n let result;\n this.tables.some(t => {\n result = t.targetArgs(target, skipFocusable);\n return result;\n });\n return result;\n }\n rowSelected(dataItem) {\n return this.isSelected(dataItem);\n }\n cellSelected(dataItem, column, columnIndex) {\n return this.isSelected(dataItem, column, columnIndex);\n }\n // expose in the treelist?\n get leafColumns() {\n return this.columnsContainer.lockedLeafColumns.toArray().concat(this.columnsContainer.nonLockedLeafColumns.toArray());\n }\n};\nSelectionService.ɵfac = function SelectionService_Factory(t) { return new (t || SelectionService)(); };\nSelectionService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: SelectionService, factory: function (t) { return SelectionService.ɵfac(t); } });\n\nconst isInSameTreeList = (element, treelistElement) => closest(element, matchesNodeName('kendo-treelist')) === treelistElement;\nconst matchHeaderCell = matchesNodeName('th');\nconst matchDataCell = matchesNodeName('td');\nconst matchCell = (element) => matchDataCell(element) || matchHeaderCell(element);\nconst treelistCell = (element, treelistElement) => {\n let target = closest(element, matchCell);\n while (target && !isInSameTreeList(target, treelistElement)) {\n target = closest(target.parentElement, matchCell);\n }\n return target;\n};\nconst targetCell = (target, treelistElement) => {\n const cell = treelistCell(target, treelistElement);\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 */\nlet NavigationService = class NavigationService {\n constructor(zone, domEvents, pagerContextService, scrollRequestService, focusRoot, editService, localization, expandState, selectionService, changeDetector, focusableParent) {\n this.zone = zone;\n this.domEvents = domEvents;\n this.pagerContextService = pagerContextService;\n this.scrollRequestService = scrollRequestService;\n this.focusRoot = focusRoot;\n this.editService = editService;\n this.localization = localization;\n this.expandState = expandState;\n this.selectionService = selectionService;\n this.changeDetector = changeDetector;\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) => {\n if (e instanceof CellCloseEvent) {\n return !e.isDefaultPrevented();\n }\n return e.action !== 'edit' && this.mode === 2 /* Content */;\n }), 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 TreeListFocusableElement(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.treelistElement.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.treelistElement.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.enabled && 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();\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 updateSelection(args) {\n if (this.selectionService.enabled) {\n this.selectionService.click({\n dataItem: this.cursor.row.dataItem,\n column: this.cursor.cell.column,\n columnIndex: this.cursor.cell.colIndex,\n originalEvent: args\n });\n }\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.Space:\n this.updateSelection(args);\n preventDefault = this.selectionService.enabled;\n break;\n case Keys.KeyA:\n if (args.ctrlKey && this.selectionService.enabled) {\n this.zone.run(() => this.selectionService.toggleAll(true));\n preventDefault = true;\n }\n break;\n case Keys.ArrowDown:\n preventDefault = this.cursor.moveDown(step);\n if (preventDefault && args.shiftKey) {\n this.updateSelection(args);\n }\n break;\n case Keys.ArrowUp:\n preventDefault = this.cursor.moveUp(step);\n if (preventDefault && args.shiftKey) {\n this.updateSelection(args);\n }\n break;\n case Keys.ArrowRight:\n if (args.altKey) {\n this.zone.run(() => {\n this.expandState.expand(row.dataItem);\n });\n preventDefault = true;\n }\n else {\n preventDefault = this.moveCursorFwd();\n if (preventDefault && args.shiftKey) {\n this.updateSelection(args);\n }\n }\n break;\n case Keys.ArrowLeft:\n if (args.altKey) {\n this.zone.run(() => {\n this.expandState.collapse(row.dataItem);\n });\n preventDefault = true;\n }\n else {\n preventDefault = this.moveCursorBwd();\n if (preventDefault && args.shiftKey) {\n this.updateSelection(args);\n }\n }\n break;\n case Keys.PageDown:\n if (this.metadata.isVirtual && this.viewport) {\n let nextItemIndex = this.meta.headerRows + this.viewport.lastItemIndex + 1;\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 this.cursor.reset(lastRowIndex, this.cursor.lastCellIndex(), false);\n }\n else {\n this.cursor.reset(this.model.lastRow.index, this.cursor.lastCellIndex(), false);\n }\n }\n else {\n const lastIndex = this.cursor.lastCellIndex();\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 if (!args.ctrlKey && !args.shiftKey) {\n const editing = this.editService.isEditingCell();\n const cell = this.cursor.cell;\n if (!editing && cell.expandable === true) {\n this.zone.run(() => {\n this.expandState.toggleState(row.dataItem);\n });\n }\n else {\n this.enterCell();\n if (!cell.focusGroup.isNavigable()) {\n preventDefault = true;\n }\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 return !this.editService.closeCell(args);\n }\n else if (cancel) {\n this.editService.cancelCell();\n this.meta.view.updateEditedState();\n this.changeDetector.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 });\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.ɵfac = function NavigationService_Factory(t) { return new (t || NavigationService)(ɵngcc0.ɵɵinject(ɵngcc0.NgZone), ɵngcc0.ɵɵinject(DomEventsService), ɵngcc0.ɵɵinject(PagerContextService), ɵngcc0.ɵɵinject(ScrollRequestService), ɵngcc0.ɵɵinject(FocusRoot), ɵngcc0.ɵɵinject(EditService), ɵngcc0.ɵɵinject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵinject(ExpandStateService), ɵngcc0.ɵɵinject(SelectionService), ɵngcc0.ɵɵinject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵinject(FocusableDirective, 8)); };\nNavigationService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NavigationService, factory: function (t) { return NavigationService.ɵfac(t); } });\nNavigationService = __decorate([ __param(10, Optional()),\n __metadata(\"design:paramtypes\", [NgZone,\n DomEventsService,\n PagerContextService,\n ScrollRequestService,\n FocusRoot,\n EditService,\n LocalizationService,\n ExpandStateService,\n SelectionService,\n ChangeDetectorRef,\n FocusableDirective])\n], NavigationService);\n\n/**\n * @hidden\n */\nclass NavigationMetadata {\n constructor(view, headerRows, isVirtual, hasPager, treelistElement, virtualColumns, columns) {\n this.view = view;\n this.headerRows = headerRows;\n this.isVirtual = isVirtual;\n this.hasPager = hasPager;\n this.treelistElement = treelistElement;\n this.virtualColumns = virtualColumns;\n this.columns = columns;\n }\n get maxLogicalRowIndex() {\n return this.headerRows + this.dataRows - 1;\n }\n get dataRows() {\n return this.view.totalRows;\n }\n}\n\n// Incremented each time the service is instantiated.\nlet sequence = 0;\n/**\n * @hidden\n */\nlet IdService = class IdService {\n constructor() {\n this.prefix = `k-treelist${sequence++}`;\n }\n cellId(rowIndex, colIndex) {\n return `${this.prefix}-r${rowIndex}c${colIndex}`;\n }\n};\nIdService.ɵfac = function IdService_Factory(t) { return new (t || IdService)(); };\nIdService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: IdService, factory: function (t) { return IdService.ɵfac(t); } });\nIdService = __decorate([ __metadata(\"design:paramtypes\", [])\n], IdService);\n\n/**\n * @hidden\n */\nlet ColumnInfoService = class ColumnInfoService {\n /**\n * @hidden\n */\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.ɵfac = function ColumnInfoService_Factory(t) { return new (t || ColumnInfoService)(); };\nColumnInfoService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ColumnInfoService, factory: function (t) { return ColumnInfoService.ɵfac(t); } });\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}\nSortService.ɵfac = function SortService_Factory(t) { return new (t || SortService)(); };\nSortService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: SortService, factory: SortService.ɵfac });\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 */\nfunction defaultTrackBy(index, item) {\n if (item.type === 'data' && item.isEditing) {\n return item.data;\n }\n return index;\n}\n\n/**\n * @hidden\n */\nclass LocalEditService {\n create(_item, _parent, _id) {\n this.throwUnsupportedError();\n }\n update(_item) {\n // noop\n }\n remove(_item) {\n this.throwUnsupportedError();\n }\n assignValues(target, source) {\n Object.assign(target, source);\n }\n throwUnsupportedError() {\n if (isDevMode()) {\n throw new Error('The default edit service of the editing directives can only update the items.' +\n 'Please provide an editService.');\n }\n }\n}\n\n/**\n * @hidden\n *\n * An injection token used by the data binding directives to interface with the TreeList or the Gantt.\n */\nlet DataBoundTreeComponent = class DataBoundTreeComponent {\n};\nDataBoundTreeComponent.ɵfac = function DataBoundTreeComponent_Factory(t) { return new (t || DataBoundTreeComponent)(); };\nDataBoundTreeComponent.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: DataBoundTreeComponent, factory: function (t) { return DataBoundTreeComponent.ɵfac(t); } });\n\n/**\n * @hidden\n *\n * An injection token used by the expand-directive to interface with the TreeList or the Gantt.\n */\nlet ExpandableTreeComponent = class ExpandableTreeComponent {\n};\nExpandableTreeComponent.ɵfac = function ExpandableTreeComponent_Factory(t) { return new (t || ExpandableTreeComponent)(); };\nExpandableTreeComponent.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ExpandableTreeComponent, factory: function (t) { return ExpandableTreeComponent.ɵfac(t); } });\n\nvar TreeListComponent_1;\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 TreeList 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 isInEditedCell = (element, treelistElement) => closest(element, matchesClasses('k-grid-edit-cell')) &&\n closest(element, matchesNodeName('kendo-treelist')) === treelistElement;\n/**\n * Represents the Kendo UI TreeList component for Angular.\n *\n * {% meta height:470 %}\n * {% embed_file data-binding/flat/app.component.ts preview %}\n * {% embed_file data-binding/flat/app.module.ts %}\n * {% embed_file shared/main.ts %}\n * {% embed_file shared/employees.ts %}\n * {% endmeta %}\n */\nlet TreeListComponent = TreeListComponent_1 = class TreeListComponent {\n constructor(supportService, wrapper, changeNotification, editService, filterService, pdfService, responsiveService, renderer, excelService, ngZone, scrollSyncService, domEvents, columnResizingService, changeDetectorRef, columnReorderService, columnInfoService, navigationService, sortService, scrollRequestService, expandStateService, optionChanges, selectionService, localization) {\n this.supportService = supportService;\n this.wrapper = wrapper;\n this.changeNotification = changeNotification;\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 this.expandStateService = expandStateService;\n this.optionChanges = optionChanges;\n this.selectionService = selectionService;\n /**\n * Defines the page size used by the TreeList when [paging]({% slug paging_treelist %}) is enabled.\n *\n * @default 10\n */\n this.pageSize = 10;\n /**\n * Defines the scroll mode used by the TreeList.\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 */\n this.scrollable = 'scrollable';\n /**\n * A function that defines how to track changes for the data rows.\n *\n * By default, the TreeList 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 { TreeListItem } from '@progress/kendo-angular-treelist';\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n * class AppComponent {\n * public treelistData: any[] = products;\n *\n * public trackBy(index: number, item: TreeListItem): 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 treelist will render only the columns in the current viewport.\n */\n this.virtualColumns = false;\n /**\n * Enables the [filtering]({% slug filtering_treelist %}) of the TreeList columns that have their `field` option set.\n */\n this.filterable = false;\n /**\n * Enables the [sorting]({% slug sorting_treelist %}) of the TreeList columns that have their `field` option set.\n */\n this.sortable = false;\n /**\n * Configures the pager of the TreeList ([see example]({% slug paging_treelist %})).\n *\n * The available options are:\n * - `buttonCount: Number`—Sets the maximum numeric buttons count before the buttons are collapsed. Defaults to `10`.\n * - `info: Boolean`—Toggles the information about the current page and the total number of records. Defaults to `true`.\n * - `type: PagerType`—Accepts the `numeric` (buttons with numbers) and `input` (input for typing the page number) values. Defaults to `'numeric'`.\n * - `pageSizes: Boolean` or `Array`—Shows a menu for selecting the page size. Defaults to `false`.\n * - `previousNext: Boolean`—Toggles the **Previous** and **Next** buttons. Defaults to `true`.\n * - `responsive: Boolean`—Toggles the built-in responsive behavior of the Pager. Defaults to `true`.\n */\n this.pageable = false;\n /**\n * If set to `true`, the user can use dedicated shortcuts to interact with the TreeList.\n * By default, navigation is disabled and the TreeList content is accessible in the normal tab sequence.\n */\n this.navigable = false;\n /**\n * Indicates whether the TreeList 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_treelist %}).\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_treelist %})).\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_treelist %})).\n *\n * @default false\n */\n this.reorderable = false;\n /**\n * Specifies if the loading indicator of the TreeList will be displayed ([see example]({% slug databinding_treelist %})).\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_treelist %})).\n *\n * @default false\n */\n this.columnMenu = false;\n /**\n * Specifies if the header of the treelist will be hidden. The header is visible by default.\n *\n * > The header includes column headers and the [filter row]({% slug filtering_treelist %}#toc-filter-row).\n */\n this.hideHeader = false;\n /**\n * Fires when the TreeList selection is changed.\n */\n this.selectionChange = new EventEmitter();\n /**\n * Fires when the TreeList 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 TreeList is changed ([see example]({% slug paging_treelist %})).\n * You have to handle the event yourself and page the data.\n */\n this.pageChange = new EventEmitter();\n /**\n * Fires when the sorting of the TreeList is changed ([see example]({% slug sorting_treelist %})).\n * You have to handle the event yourself and sort the data.\n */\n this.sortChange = new EventEmitter();\n /**\n * Fires when the data state of the TreeList is changed.\n */\n this.dataStateChange = new EventEmitter();\n /**\n * Fires when the user clicks the **Edit** command button to edit a row\n * ([see example]({% slug editing_template_forms_treelist %}#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_treelist %}#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_treelist %}#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_treelist %}#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_treelist %}#toc-adding-records)).\n */\n this.add = new EventEmitter();\n /**\n * Fires when the user leaves an edited cell ([see example]({% slug editing_incell_treelist %}#toc-basic-concepts)).\n */\n this.cellClose = new EventEmitter();\n /**\n * Fires when the user clicks a cell ([see example]({% slug editing_incell_treelist %}#toc-basic-concepts)).\n */\n this.cellClick = new EventEmitter();\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 EventEmitter();\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_treelist %}#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 treelist 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 * Fires when an item is expanded.\n */\n this.expandEvent = new EventEmitter();\n /**\n * Fires when an item is collapsed.\n */\n this.collapseEvent = new EventEmitter();\n /**\n * @hidden\n *\n * Emits when the expand or collapse events are fired.\n * Used by the expand directive and the Gantt component.\n */\n this.expandStateChange = new EventEmitter();\n /**\n * @hidden\n */\n this.columnOrderChange = new EventEmitter();\n /**\n * A query list of all declared columns.\n */\n this.columns = new QueryList();\n this.footer = new QueryList();\n this.columnsContainer = new ColumnsContainer(() => this.columnList.filterHierarchy(column => {\n column.matchesMedia = this.matchesMedia(column);\n return column.isVisible;\n }));\n this.idGetter = getter(undefined);\n this.localEditService = new LocalEditService();\n this.view = new ViewCollection(this.viewFieldAccessor.bind(this), this.expandStateService, this.editService, this.selectionService);\n this.dataChanged = false;\n this._hasChildren = (() => false);\n this.subscriptions = new Subscription();\n this.rtl = false;\n this.shouldGenerateColumns = true;\n this._data = [];\n this._sort = new Array();\n this._skip = 0;\n this.cachedWindowWidth = 0;\n this._rowClass = () => null;\n validatePackage(packageMetadata);\n this.subscriptions.add(localization.changes.subscribe(({ rtl }) => {\n this.rtl = rtl;\n this.direction = this.rtl ? 'rtl' : 'ltr';\n }));\n this.selectionService.init(this);\n this.subscriptions.add(this.selectionService.changes.subscribe((args) => {\n if (hasObservers(this.selectionChange)) {\n this.ngZone.run(() => {\n args.sender = this;\n this.selectionChange.emit(args);\n this.selectionService.updateSelectedState();\n this.changeDetectorRef.markForCheck();\n });\n }\n }));\n this.columnInfoService.init(this.columnsContainer, () => this.columnList);\n this.subscriptions.add(this.columnInfoService.visibilityChange.subscribe((changed) => {\n this.columnVisibilityChange.emit(new ColumnVisibilityChangeEvent(changed));\n this.changeDetectorRef.markForCheck();\n }));\n this.subscriptions.add(this.columnInfoService.lockedChange.subscribe((changed) => {\n this.columnLockedChange.emit(new ColumnLockedChangeEvent(changed));\n this.changeDetectorRef.markForCheck();\n }));\n this.subscriptions.add(merge(this.optionChanges.columns, this.optionChanges.options).subscribe(() => {\n this.changeDetectorRef.markForCheck();\n }));\n this.subscriptions.add(this.filterService.changes.subscribe(x => {\n this.filterChange.emit(x);\n }));\n this.subscriptions.add(this.sortService.changes.subscribe(x => {\n this.sortChange.emit(x);\n }));\n this.attachStateChangesEmitter();\n this.attachEditHandlers();\n this.attachDomEventHandlers();\n this.subscriptions.add(this.pdfService.exportClick.subscribe(this.emitPDFExportEvent.bind(this)));\n this.subscriptions.add(this.excelService.exportClick.subscribe(this.saveAsExcel.bind(this)));\n this.subscriptions.add(this.excelService.loadingChange.subscribe(() => {\n this.changeDetectorRef.detectChanges();\n }));\n this.columnsContainerChange();\n this.handleColumnResize();\n this.columnList = new ColumnList(this.columns);\n this.subscriptions.add(this.columnReorderService\n .changes.subscribe(this.reorder.bind(this)));\n this.subscriptions.add(this.columnInfoService.columnRangeChange.subscribe(this.onColumnRangeChange.bind(this)));\n this.subscriptions.add(this.expandStateService.changes.subscribe((args) => {\n if (args.expand) {\n this.expandEvent.emit(args);\n }\n else {\n this.collapseEvent.emit(args);\n }\n if (!args.isDefaultPrevented()) {\n this.changeDetectorRef.markForCheck();\n this.view.clear();\n this.expandStateChange.emit(args);\n }\n }));\n this.subscriptions.add(this.view.childrenLoaded.subscribe(() => {\n this.changeDetectorRef.detectChanges();\n }));\n this.subscriptions.add(this.view.resetPage.subscribe(() => {\n if (this.skip > 0 && hasObservers(this.pageChange)) {\n // don't think there is a way to avoid this\n // every callback in which the view can be computed is already passed the change detection\n // computing the current page in advance also does not seem feasible for such a rare case\n this.pageChangeTimeout = setTimeout(() => {\n this.pageChange.emit({ skip: 0, take: this.pageSize });\n }, 0);\n }\n this.skip = 0;\n }));\n this.dataLoaded = this.dataLoaded.bind(this);\n this.editService.idGetter = this.idGetter;\n }\n /**\n * Sets the data of the TreeList. If an array is provided, the TreeList automatically gets the total count\n * ([more information and example]({% slug databinding_treelist %})).\n */\n set data(value) {\n this.view.reset();\n this._data = value;\n this.loadedData = null;\n this.unsubscribeDataLoaded();\n if (isObservable(value)) {\n this.dataLoadedSubscription = value.subscribe(this.dataLoaded); // handle error\n }\n else {\n this.dataLoaded(value);\n }\n }\n get data() {\n return this.loadedData;\n }\n /**\n * Defines the number of records to be skipped by the pager.\n * Required by the [paging]({% slug paging_treelist %}) functionality.\n */\n get skip() {\n return this._skip;\n }\n set skip(value) {\n if (value >= 0) {\n this._skip = value;\n this.view.clear();\n }\n }\n /**\n * The descriptors by which the data will be sorted ([see example]({% slug sorting_treelist %})).\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 * @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 get marqueeSelection() {\n return this.selectionService.enableMarquee;\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-treelist';\n *\n * _@Component({\n * selector: 'my-app',\n * encapsulation: ViewEncapsulation.None,\n * styles: [`\n * .k-treelist tr.even { background-color: #f45c42; }\n * .k-treelist tr.odd { background-color: #41f4df; }\n * `],\n * template: `\n * \n * \n * `\n * })\n * class AppComponent {\n * public treelistData: 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 * 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 /**\n * The name of the field which contains the unique identifier of the node.\n *\n * @default \"id\"\n */\n set idField(value) {\n if (typeof value === \"function\") {\n this.idGetter = value;\n }\n else {\n this.idGetter = getter(value);\n }\n this.editService.idGetter = this.idGetter;\n }\n /**\n * Specified the treelist selection settings\n */\n set selectable(value) {\n this.selectionService.settings = value;\n }\n /**\n * Provides a callback that determines if the given row / cell is selected.\n */\n set isSelected(value) {\n if (typeof value !== 'function' && isDevMode()) {\n throw new Error(`isSelected must be a function, but received \"${JSON.stringify(value)}\".`);\n }\n this.selectionService.isSelected = value;\n this.selectionService.settings = this.selectionService.settings;\n }\n /**\n * @hidden\n */\n set columnsRef(columns) {\n this._columnsRef = columns;\n // load the new columns list only if a valid query list is provided\n if (isPresent(columns)) {\n this.loadColumns(columns);\n }\n }\n get columnsRef() {\n return this._columnsRef;\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 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) + 'px';\n const right = this.rtl ? 0 : padding;\n const left = this.rtl ? padding : 0;\n return `0 ${right} 0 ${left}`;\n }\n get showLoading() {\n return this.loading || (isObservable(this._data) && !this.loadedData) || this.excelService.loading;\n }\n get showFooter() {\n return this.columnsContainer.hasFooter;\n }\n get ariaRowCount() {\n return this.totalColumnLevels + 1 + this.totalCount;\n }\n get ariaColCount() {\n return this.columnsContainer.leafColumnsToRender.length;\n }\n get ariaMultiselectable() {\n if (this.selectionService.enabled) {\n return this.selectionService.enableMultiple;\n }\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 return expandColumns(this.lockedLeafColumns.toArray()).reduce((prev, curr) => prev + (curr.width || 0), 0);\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 columnMenuTemplate() {\n const template = this.columnMenuTemplates.first;\n return template ? template.templateRef : null;\n }\n get totalCount() {\n return this.view.totalRows;\n }\n /**\n * Gets or sets the callback function that retrieves the child nodes for a particular node.\n */\n set fetchChildren(value) {\n this._fetchChildren = value;\n }\n get fetchChildren() {\n return this._fetchChildren;\n }\n /**\n * Gets or sets the callback function that indicates if a particular node has child nodes.\n */\n set hasChildren(value) {\n this._hasChildren = value;\n }\n get hasChildren() {\n return this._hasChildren;\n }\n /**\n * Sets the callback function that indicates if a particular item is expanded.\n */\n set isExpanded(value) {\n this.expandStateService.isExpanded = value || defaultExpanded;\n this.expandIcons = Boolean(value);\n }\n /**\n * @hidden\n */\n viewFieldAccessor() {\n return {\n fetchChildren: this.fetchChildren,\n hasChildren: this.hasChildren,\n idGetter: this.idGetter,\n skip: this.skip,\n pageSize: this.pageSize,\n pageable: this.pageable,\n isVirtual: this.isVirtual,\n data: this.loadedData,\n hasFooter: this.columnsContainer.hasFooter\n };\n }\n /**\n * @hidden\n */\n onDataChange() {\n this.autoGenerateColumns();\n this.changeNotification.notify();\n this.pdfService.dataChanged.emit();\n this.updateNavigationMetadata();\n }\n ngOnChanges(changes) {\n if (this.lockedLeafColumns.length && anyChanged([\"pageSize\", \"skip\", \"sort\"], 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 if (this.dataChanged) {\n this.dataChanged = false;\n this.onDataChange();\n }\n this.columnsContainer.refresh();\n this.verifySettings();\n }\n ngAfterContentInit() {\n // initially passed columns though the input prop are overwritten by ContentChildren-queried ones\n if (isPresent(this.columnsRef)) {\n this.loadColumns(this.columnsRef);\n }\n this.shouldGenerateColumns = !this.columns.length;\n this.autoGenerateColumns();\n this.columnList = new ColumnList(this.columns);\n // is this needed? after content checked already does this\n this.subscriptions.add(this.columns.changes.subscribe(() => {\n this.verifySettings();\n this.optionChanges.columnChanged();\n }));\n }\n ngOnInit() {\n if (this.navigable) {\n this.navigationService.init(this.navigationMetadata());\n }\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n if (this.detachElementEventHandlers) {\n this.detachElementEventHandlers();\n }\n if (this.focusElementSubscription) {\n this.focusElementSubscription.unsubscribe();\n }\n this.unsubscribeDataLoaded();\n this.ngZone = null;\n clearTimeout(this.pageChangeTimeout);\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.subscriptions.add(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_treelist %}#toc-editing-records)).\n *\n * @param index - The 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. Use skipFocus to determine if the row's edit element should be focused. Defaults to `false`.\n */\n editRow(item, group, options) {\n this.editService.editRow(item, group);\n this.view.updateEditedState();\n this.changeDetectorRef.markForCheck();\n if (options && options.skipFocus) {\n return;\n }\n this.focusEditElement(() => {\n return `tr[data-treelist-view-index=\"${this.view.itemIndex(item)}\"]`;\n });\n }\n /**\n * Closes the editor for a given row ([see example]({% slug editing_template_forms_treelist %}#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(item, isNew) {\n this.editService.close(item, isNew);\n this.changeDetectorRef.markForCheck();\n if (isNew) {\n this.view.clear();\n }\n else {\n this.view.updateEditedState();\n }\n }\n /**\n * Creates a new row editor ([see example]({% slug editing_template_forms_treelist %}#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, parent) {\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 if (this.isVirtual && !parent && this.skip) {\n const firstVisible = this.navigationService.viewport.firstItemIndex;\n if (firstVisible !== this.skip) {\n this.skip = firstVisible;\n this.pageChange.emit({\n skip: this.skip,\n take: this.pageSize\n });\n }\n }\n this.editService.addRow(parent, group);\n this.changeDetectorRef.markForCheck();\n this.view.clear();\n this.focusEditElement(() => {\n return parent ? `tr[data-treelist-view-index=\"${this.view.itemIndex(parent) + 1}\"]` : '.k-grid-add-row';\n });\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(dataItem, column, group) {\n const instance = this.columnInstance(column);\n this.editService.editCell(dataItem, instance, group);\n this.changeDetectorRef.markForCheck();\n this.view.updateEditedState();\n this.focusEditElement(() => '.k-grid-edit-cell');\n }\n /**\n * Closes the current cell in edit mode and fires\n * the [`cellClose`]({% slug api_treelist_treelistcomponent %}#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_treelist_treelistcomponent %}#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 this.view.updateEditedState();\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.isEditing() && this.editService.isEditingCell();\n }\n /**\n * Initiates the PDF export ([see example]({% slug pdfexport_treelist %})).\n */\n saveAsPDF() {\n this.pdfService.save(this);\n }\n /**\n * Exports the TreeList element to a Drawing [`Group`]({% slug api_kendo-drawing_group %}) by using the `kendo-treelist-pdf` component options.\n * ([see example]({% slug pdfexport_treelist %}#toc-exporting-multiple-treelists-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_treelist %})).\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 TreeList\n * to be resizable (set `resizable` to `true`).\n * Makes sense to execute this method only\n * after the TreeList 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 treelistData: 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 TreeList 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 treelistData: 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.skip = event.skip;\n this.pageSize = event.take;\n this.closeCell();\n this.cancelCell();\n this.changeDetectorRef.markForCheck();\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 const selector = containerSelector();\n if (!this.setEditFocus(wrapper.querySelector(selector)) && this.isLocked) {\n this.setEditFocus(wrapper.querySelector(`.k-grid-content ${selector}`));\n }\n this.focusElementSubscription = null;\n });\n });\n }\n /**\n * Focuses the last active or the first cell of the TreeList.\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 TreeList and does not correspond to the data item index:\n * * Header rows are included, starting at index 0.\n * * The row indexing is absolute and does not change with paging.\n *\n * If the TreeList 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 treelistData: 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 * Clears the already loaded children for the dataItem so that the TreeList will fetch them again the next time it is rendered.\n */\n reload(dataItem, reloadChildren) {\n if (dataItem) {\n this.view.resetItem(dataItem, reloadChildren);\n this.changeDetectorRef.markForCheck();\n }\n }\n /**\n * Updates the state of the current view without reloading the data.\n *\n * Checks all currently rendered items for changes and\n * triggers re-evaluation of the the [isExpanded](#toc-isexpanded) and\n * [isSelected](#toc-isSelected) callbacks.\n */\n updateView() {\n this.view.clear();\n this.changeDetectorRef.markForCheck();\n }\n /**\n * Expands the row for the specified dataItem.\n */\n expand(dataItem) {\n this.expandStateService.expand(dataItem);\n this.changeDetectorRef.markForCheck();\n }\n /**\n * Collapses the row for the specified dataItem.\n */\n collapse(dataItem) {\n this.expandStateService.collapse(dataItem);\n this.changeDetectorRef.markForCheck();\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.columnOrderChange.emit(args);\n //this.columnsContainer.refresh(); why force it here ??\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 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 (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.isVirtual) {\n throw new Error('Row height setting requires 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 const columns = Object.keys(this.view.at(0).data).map(field => {\n let column = new ColumnComponent();\n column.field = field;\n return column;\n });\n columns[0].expandable = true;\n this.columns.reset(columns);\n }\n }\n attachStateChangesEmitter() {\n this.subscriptions.add(merge(this.sortChange.pipe(map(sort => ({ filter: this.filter, skip: this.skip, sort: sort, take: this.pageSize }))), this.filterChange.pipe(map(filter$$1 => ({\n filter: filter$$1, 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.subscriptions.add(this.editService\n .changes.subscribe(this.emitCRUDEvent.bind(this)));\n }\n emitCRUDEvent(args) {\n let { action, formGroup, dataItem } = args;\n if (action !== 'add' && !dataItem) {\n dataItem = formGroup.value;\n }\n this.view.clear();\n this.changeDetectorRef.markForCheck();\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.subscriptions.add(this.domEvents.cellClick.subscribe((args) => {\n if (hasObservers(this.cellClick) || this.selectionService.enabled) {\n this.ngZone.run(() => {\n this.cellClick.emit(Object.assign({ sender: this }, args));\n this.selectionService.click(args);\n });\n }\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-treelist-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 \"treegrid\"\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.subscriptions.add(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.subscriptions.add(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 if (hasObservers(this.columnResize)) {\n this.ngZone.run(() => {\n this.columnResize.emit(args);\n });\n }\n }\n assertNavigable() {\n if (isDevMode() && !this.navigable) {\n throw new Error('The TreeList should be configured as [navigable]=\"true\" to control focus');\n }\n }\n navigationMetadata() {\n const isVirtual = this.isVirtual;\n const filterRowOffset = hasFilterRow(this.filterable) ? 1 : 0;\n const headerRows = this.totalColumnLevels + 1 + filterRowOffset;\n return new NavigationMetadata(this.view, headerRows, isVirtual, this.showPager, 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 dataLoaded(result) {\n this.loadedData = result || [];\n this.view.reset();\n this.dataChanged = true;\n this.changeDetectorRef.markForCheck();\n }\n unsubscribeDataLoaded() {\n if (this.dataLoadedSubscription) {\n this.dataLoadedSubscription.unsubscribe();\n this.dataLoadedSubscription = null;\n }\n }\n loadColumns(columns) {\n this.columns.reset(columns.toArray());\n this.columns.notifyOnChanges();\n }\n};\nTreeListComponent.ɵfac = function TreeListComponent_Factory(t) { return new (t || TreeListComponent)(ɵngcc0.ɵɵdirectiveInject(BrowserSupportService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ChangeNotificationService), ɵngcc0.ɵɵdirectiveInject(EditService), ɵngcc0.ɵɵdirectiveInject(FilterService), ɵngcc0.ɵɵdirectiveInject(PDFService), ɵngcc0.ɵɵdirectiveInject(ResponsiveService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ExcelService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ScrollSyncService), ɵngcc0.ɵɵdirectiveInject(DomEventsService), ɵngcc0.ɵɵdirectiveInject(ColumnResizingService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ColumnReorderService), ɵngcc0.ɵɵdirectiveInject(ColumnInfoService), ɵngcc0.ɵɵdirectiveInject(NavigationService), ɵngcc0.ɵɵdirectiveInject(SortService), ɵngcc0.ɵɵdirectiveInject(ScrollRequestService), ɵngcc0.ɵɵdirectiveInject(ExpandStateService), ɵngcc0.ɵɵdirectiveInject(OptionChangesService), ɵngcc0.ɵɵdirectiveInject(SelectionService), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nTreeListComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: TreeListComponent, selectors: [[\"kendo-treelist\"]], contentQueries: function TreeListComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, ColumnBase$1, 4);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NoRecordsTemplateDirective, 4);\n ɵngcc0.ɵɵcontentQuery(dirIndex, PagerTemplateDirective, 4);\n ɵngcc0.ɵɵcontentQuery(dirIndex, ToolbarTemplateDirective, 4);\n ɵngcc0.ɵɵcontentQuery(dirIndex, ColumnMenuTemplateDirective, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.columns = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.noRecordsTemplateChildren = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.pagerTemplateChildren = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.toolbarTemplateChildren = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.columnMenuTemplates = _t);\n } }, viewQuery: function TreeListComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c0, 5);\n ɵngcc0.ɵɵviewQuery(_c1, 5);\n ɵngcc0.ɵɵviewQuery(_c2, 7);\n ɵngcc0.ɵɵviewQuery(_c3, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.lockedHeader = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.header = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.ariaRoot = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.footer = _t);\n } }, hostVars: 13, hostBindings: function TreeListComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"dir\", ctx.dir);\n ɵngcc0.ɵɵclassProp(\"k-widget\", ctx.hostClasses)(\"k-grid\", ctx.hostClasses)(\"k-treelist\", ctx.hostClasses)(\"k-grid-lockedcolumns\", ctx.lockedClasses)(\"k-grid-virtual\", ctx.virtualClasses)(\"k-grid-no-scrollbar\", ctx.noScrollbarClass);\n } }, inputs: { pageSize: \"pageSize\", scrollable: \"scrollable\", trackBy: \"trackBy\", virtualColumns: \"virtualColumns\", filterable: \"filterable\", sortable: \"sortable\", pageable: \"pageable\", navigable: \"navigable\", autoSize: \"autoSize\", resizable: \"resizable\", reorderable: \"reorderable\", loading: \"loading\", columnMenu: \"columnMenu\", hideHeader: \"hideHeader\", skip: \"skip\", data: \"data\", sort: \"sort\", navigatable: \"navigatable\", rowClass: \"rowClass\", idField: \"idField\", selectable: \"selectable\", isSelected: \"isSelected\", columnsRef: [\"columns\", \"columnsRef\"], fetchChildren: \"fetchChildren\", hasChildren: \"hasChildren\", isExpanded: \"isExpanded\", ariaLabel: [\"aria-label\", \"ariaLabel\"], height: \"height\", rowHeight: \"rowHeight\", filter: \"filter\" }, outputs: { selectionChange: \"selectionChange\", filterChange: \"filterChange\", pageChange: \"pageChange\", sortChange: \"sortChange\", dataStateChange: \"dataStateChange\", edit: \"edit\", cancel: \"cancel\", save: \"save\", remove: \"remove\", add: \"add\", cellClose: \"cellClose\", cellClick: \"cellClick\", pdfExport: \"pdfExport\", excelExport: \"excelExport\", columnResize: \"columnResize\", columnReorder: \"columnReorder\", columnVisibilityChange: \"columnVisibilityChange\", columnLockedChange: \"columnLockedChange\", scrollBottom: \"scrollBottom\", contentScroll: \"contentScroll\", expandEvent: \"expand\", collapseEvent: \"collapse\", expandStateChange: \"expandStateChange\" }, exportAs: [\"kendoTreeList\"], features: [ɵngcc0.ɵɵProvidersFeature([\n BrowserSupportService,\n LocalizationService,\n ColumnInfoService,\n ChangeNotificationService,\n EditService,\n PDFService,\n SuspendService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.treelist'\n },\n FilterService,\n ResponsiveService,\n PagerContextService,\n ExcelService,\n ScrollSyncService,\n ResizeService,\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 ExpandStateService,\n OptionChangesService,\n SelectionService,\n {\n provide: DataBoundTreeComponent,\n useExisting: forwardRef(() => TreeListComponent_1)\n },\n {\n provide: ExpandableTreeComponent,\n useExisting: forwardRef(() => TreeListComponent_1)\n }\n ]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 8, vars: 9, consts: function () { let i18n_4; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label visible in the TreeList when there are no records\n * @meaning kendo.treelist.noRecords\n */\n const MSG_EXTERNAL_4488616105599925321$$DIST_FESM2015_INDEX_JS_5 = goog.getMsg(\"No records available.\");\n i18n_4 = MSG_EXTERNAL_4488616105599925321$$DIST_FESM2015_INDEX_JS_5;\n }\n else {\n i18n_4 = $localize `:kendo.treelist.noRecords|The label visible in the TreeList when there are no records␟a79c1279afcbf136c3ddefd1a201af99f4a3c7b5␟4488616105599925321:No records available.`;\n } let i18n_6; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the first page button in TreeList pager\n * @meaning kendo.treelist.pagerFirstPage\n */\n const MSG_EXTERNAL_4515787389193761237$$DIST_FESM2015_INDEX_JS_7 = goog.getMsg(\"Go to the first page\");\n i18n_6 = MSG_EXTERNAL_4515787389193761237$$DIST_FESM2015_INDEX_JS_7;\n }\n else {\n i18n_6 = $localize `:kendo.treelist.pagerFirstPage|The label for the first page button in TreeList pager␟0b5adc1a84b662963928aa73f7941cf2a502ca9c␟4515787389193761237:Go to the first page`;\n } let i18n_8; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the previous page button in TreeList pager\n * @meaning kendo.treelist.pagerPreviousPage\n */\n const MSG_EXTERNAL_225278396462374957$$DIST_FESM2015_INDEX_JS_9 = goog.getMsg(\"Go to the previous page\");\n i18n_8 = MSG_EXTERNAL_225278396462374957$$DIST_FESM2015_INDEX_JS_9;\n }\n else {\n i18n_8 = $localize `:kendo.treelist.pagerPreviousPage|The label for the previous page button in TreeList pager␟09781b4cad65124a1087c4b05c4f9ec3ae88e165␟225278396462374957:Go to the previous page`;\n } let i18n_10; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the next page button in TreeList pager\n * @meaning kendo.treelist.pagerNextPage\n */\n const MSG_EXTERNAL_362811891869346548$$DIST_FESM2015_INDEX_JS_11 = goog.getMsg(\"Go to the next page\");\n i18n_10 = MSG_EXTERNAL_362811891869346548$$DIST_FESM2015_INDEX_JS_11;\n }\n else {\n i18n_10 = $localize `:kendo.treelist.pagerNextPage|The label for the next page button in TreeList pager␟1bda5b0e26236ea09a0fc371fcbdb7688d09a509␟362811891869346548:Go to the next page`;\n } let i18n_12; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the last page button in TreeList pager\n * @meaning kendo.treelist.pagerLastPage\n */\n const MSG_EXTERNAL_4075698388586880260$$DIST_FESM2015_INDEX_JS_13 = goog.getMsg(\"Go to the last page\");\n i18n_12 = MSG_EXTERNAL_4075698388586880260$$DIST_FESM2015_INDEX_JS_13;\n }\n else {\n i18n_12 = $localize `:kendo.treelist.pagerLastPage|The label for the last page button in TreeList pager␟cdf1ad243b2890940fe26b3e419ba71ddbd8aa5a␟4075698388586880260:Go to the last page`;\n } let i18n_14; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label before the current page number in the TreeList pager\n * @meaning kendo.treelist.pagerPage\n */\n const MSG_EXTERNAL_8196982688037137027$$DIST_FESM2015_INDEX_JS_15 = goog.getMsg(\"Page\");\n i18n_14 = MSG_EXTERNAL_8196982688037137027$$DIST_FESM2015_INDEX_JS_15;\n }\n else {\n i18n_14 = $localize `:kendo.treelist.pagerPage|The label before the current page number in the TreeList pager␟287412bc1246aad2b6fd05d0853a2fe6877b801b␟8196982688037137027:Page`;\n } let i18n_16; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label before the total pages number in the TreeList pager\n * @meaning kendo.treelist.pagerOf\n */\n const MSG_EXTERNAL_1811180862331482009$$DIST_FESM2015_INDEX_JS_17 = goog.getMsg(\"of\");\n i18n_16 = MSG_EXTERNAL_1811180862331482009$$DIST_FESM2015_INDEX_JS_17;\n }\n else {\n i18n_16 = $localize `:kendo.treelist.pagerOf|The label before the total pages number in the TreeList pager␟4cc4f3c66a1233dee14e6f8655494e08eb81e191␟1811180862331482009:of`;\n } let i18n_18; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the pager input in the Treelist pager\n * @meaning kendo.treelist.pagerPageNumberInputTitle\n */\n const MSG_EXTERNAL_6224954911111282995$$DIST_FESM2015_INDEX_JS_19 = goog.getMsg(\"Page Number\");\n i18n_18 = MSG_EXTERNAL_6224954911111282995$$DIST_FESM2015_INDEX_JS_19;\n }\n else {\n i18n_18 = $localize `:kendo.treelist.pagerPageNumberInputTitle|The label for the pager input in the Treelist pager␟88fb15e4549b4adb3ed3ddb24c62e63abfb883f9␟6224954911111282995:Page Number`;\n } let i18n_20; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the page size chooser in the TreeList pager\n * @meaning kendo.treelist.pagerItemsPerPage\n */\n const MSG_EXTERNAL_169404885310234585$$DIST_FESM2015_INDEX_JS_21 = goog.getMsg(\"items per page\");\n i18n_20 = MSG_EXTERNAL_169404885310234585$$DIST_FESM2015_INDEX_JS_21;\n }\n else {\n i18n_20 = $localize `:kendo.treelist.pagerItemsPerPage|The label for the page size chooser in the TreeList pager␟7a7b68e92a1ec505004d2bbeec0a8e0c4a47e227␟169404885310234585:items per page`;\n } let i18n_22; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label after the total items count in the TreeList pager\n * @meaning kendo.treelist.pagerItemsTotal\n */\n const MSG_EXTERNAL_1753107422391150665$$DIST_FESM2015_INDEX_JS_23 = goog.getMsg(\"items total\");\n i18n_22 = MSG_EXTERNAL_1753107422391150665$$DIST_FESM2015_INDEX_JS_23;\n }\n else {\n i18n_22 = $localize `:kendo.treelist.pagerItemsTotal|The label after the total items count in the TreeList pager␟dcb6cf7542066728344725c1ae16bfd6b9b57ac1␟1753107422391150665:items total`;\n } let i18n_24; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label of the filter cell or icon\n * @meaning kendo.treelist.filter\n */\n const MSG_EXTERNAL_6743437097952949232$$DIST_FESM2015_INDEX_JS_25 = goog.getMsg(\"Filter\");\n i18n_24 = MSG_EXTERNAL_6743437097952949232$$DIST_FESM2015_INDEX_JS_25;\n }\n else {\n i18n_24 = $localize `:kendo.treelist.filter|The label of the filter cell or icon␟3ab4d93d98979483ce91931db991a6bb104d11c9␟6743437097952949232:Filter`;\n } let i18n_26; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the equal filter operator\n * @meaning kendo.treelist.filterEqOperator\n */\n const MSG_EXTERNAL_3309736504466492065$$DIST_FESM2015_INDEX_JS_27 = goog.getMsg(\"Is equal to\");\n i18n_26 = MSG_EXTERNAL_3309736504466492065$$DIST_FESM2015_INDEX_JS_27;\n }\n else {\n i18n_26 = $localize `:kendo.treelist.filterEqOperator|The text of the equal filter operator␟0cd1adb5c835c05e298bc5568c02b39baa74d4a9␟3309736504466492065:Is equal to`;\n } let i18n_28; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the not equal filter operator\n * @meaning kendo.treelist.filterNotEqOperator\n */\n const MSG_EXTERNAL_1753256984779294984$$DIST_FESM2015_INDEX_JS_29 = goog.getMsg(\"Is not equal to\");\n i18n_28 = MSG_EXTERNAL_1753256984779294984$$DIST_FESM2015_INDEX_JS_29;\n }\n else {\n i18n_28 = $localize `:kendo.treelist.filterNotEqOperator|The text of the not equal filter operator␟4765862efa585fb5c4e1adf5db9b38eebabe051d␟1753256984779294984:Is not equal to`;\n } let i18n_30; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the is null filter operator\n * @meaning kendo.treelist.filterIsNullOperator\n */\n const MSG_EXTERNAL_1667207238130268361$$DIST_FESM2015_INDEX_JS_31 = goog.getMsg(\"Is null\");\n i18n_30 = MSG_EXTERNAL_1667207238130268361$$DIST_FESM2015_INDEX_JS_31;\n }\n else {\n i18n_30 = $localize `:kendo.treelist.filterIsNullOperator|The text of the is null filter operator␟a00ed88d352ccdb637ce675dc521f5e4e5ab0c63␟1667207238130268361:Is null`;\n } let i18n_32; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the is not null filter operator\n * @meaning kendo.treelist.filterIsNotNullOperator\n */\n const MSG_EXTERNAL_4060216360862930601$$DIST_FESM2015_INDEX_JS_33 = goog.getMsg(\"Is not null\");\n i18n_32 = MSG_EXTERNAL_4060216360862930601$$DIST_FESM2015_INDEX_JS_33;\n }\n else {\n i18n_32 = $localize `:kendo.treelist.filterIsNotNullOperator|The text of the is not null filter operator␟7a1a67a28283daea42755cba9a7cdefe16ecaf8b␟4060216360862930601:Is not null`;\n } let i18n_34; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the is empty filter operator\n * @meaning kendo.treelist.filterIsEmptyOperator\n */\n const MSG_EXTERNAL_1316606741979394259$$DIST_FESM2015_INDEX_JS_35 = goog.getMsg(\"Is empty\");\n i18n_34 = MSG_EXTERNAL_1316606741979394259$$DIST_FESM2015_INDEX_JS_35;\n }\n else {\n i18n_34 = $localize `:kendo.treelist.filterIsEmptyOperator|The text of the is empty filter operator␟f97b8102d63bef513a269c6f237bb1ecd66b45d6␟1316606741979394259:Is empty`;\n } let i18n_36; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the is not empty filter operator\n * @meaning kendo.treelist.filterIsNotEmptyOperator\n */\n const MSG_EXTERNAL_3389119634823892087$$DIST_FESM2015_INDEX_JS_37 = goog.getMsg(\"Is not empty\");\n i18n_36 = MSG_EXTERNAL_3389119634823892087$$DIST_FESM2015_INDEX_JS_37;\n }\n else {\n i18n_36 = $localize `:kendo.treelist.filterIsNotEmptyOperator|The text of the is not empty filter operator␟09b1b3a5f812dc75afb4d3d37bb368c522db362c␟3389119634823892087:Is not empty`;\n } let i18n_38; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the starts with filter operator\n * @meaning kendo.treelist.filterStartsWithOperator\n */\n const MSG_EXTERNAL_4099253670171117396$$DIST_FESM2015_INDEX_JS_39 = goog.getMsg(\"Starts with\");\n i18n_38 = MSG_EXTERNAL_4099253670171117396$$DIST_FESM2015_INDEX_JS_39;\n }\n else {\n i18n_38 = $localize `:kendo.treelist.filterStartsWithOperator|The text of the starts with filter operator␟2890d20b61276813d24bcac9decdab6e193c924c␟4099253670171117396:Starts with`;\n } let i18n_40; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the contains filter operator\n * @meaning kendo.treelist.filterContainsOperator\n */\n const MSG_EXTERNAL_4661302216992372675$$DIST_FESM2015_INDEX_JS_41 = goog.getMsg(\"Contains\");\n i18n_40 = MSG_EXTERNAL_4661302216992372675$$DIST_FESM2015_INDEX_JS_41;\n }\n else {\n i18n_40 = $localize `:kendo.treelist.filterContainsOperator|The text of the contains filter operator␟914e690a4cb74e8c65363b458a6c9b48dfea1da7␟4661302216992372675:Contains`;\n } let i18n_42; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the does not contain filter operator\n * @meaning kendo.treelist.filterNotContainsOperator\n */\n const MSG_EXTERNAL_1855331005589896114$$DIST_FESM2015_INDEX_JS_43 = goog.getMsg(\"Does not contain\");\n i18n_42 = MSG_EXTERNAL_1855331005589896114$$DIST_FESM2015_INDEX_JS_43;\n }\n else {\n i18n_42 = $localize `:kendo.treelist.filterNotContainsOperator|The text of the does not contain filter operator␟c70b6d3fc752b2c6b26dfce75bd19d8599b93033␟1855331005589896114:Does not contain`;\n } let i18n_44; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the ends with filter operator\n * @meaning kendo.treelist.filterEndsWithOperator\n */\n const MSG_EXTERNAL_3824801369984866617$$DIST_FESM2015_INDEX_JS_45 = goog.getMsg(\"Ends with\");\n i18n_44 = MSG_EXTERNAL_3824801369984866617$$DIST_FESM2015_INDEX_JS_45;\n }\n else {\n i18n_44 = $localize `:kendo.treelist.filterEndsWithOperator|The text of the ends with filter operator␟cd9a432b859c491a7723ef12fda786b62053cc1d␟3824801369984866617:Ends with`;\n } let i18n_46; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the greater than or equal filter operator\n * @meaning kendo.treelist.filterGteOperator\n */\n const MSG_EXTERNAL_5569366978126546291$$DIST_FESM2015_INDEX_JS_47 = goog.getMsg(\"Is greater than or equal to\");\n i18n_46 = MSG_EXTERNAL_5569366978126546291$$DIST_FESM2015_INDEX_JS_47;\n }\n else {\n i18n_46 = $localize `:kendo.treelist.filterGteOperator|The text of the greater than or equal filter operator␟289e58555a6d803c3450dd399b9cf67a1a2e98c8␟5569366978126546291:Is greater than or equal to`;\n } let i18n_48; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the greater than filter operator\n * @meaning kendo.treelist.filterGtOperator\n */\n const MSG_EXTERNAL_5307908556710927147$$DIST_FESM2015_INDEX_JS_49 = goog.getMsg(\"Is greater than\");\n i18n_48 = MSG_EXTERNAL_5307908556710927147$$DIST_FESM2015_INDEX_JS_49;\n }\n else {\n i18n_48 = $localize `:kendo.treelist.filterGtOperator|The text of the greater than filter operator␟b9278f5f3160545b330f162aa7e82066dbed9607␟5307908556710927147:Is greater than`;\n } let i18n_50; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the less than or equal filter operator\n * @meaning kendo.treelist.filterLteOperator\n */\n const MSG_EXTERNAL_5402539774964195763$$DIST_FESM2015_INDEX_JS_51 = goog.getMsg(\"Is less than or equal to\");\n i18n_50 = MSG_EXTERNAL_5402539774964195763$$DIST_FESM2015_INDEX_JS_51;\n }\n else {\n i18n_50 = $localize `:kendo.treelist.filterLteOperator|The text of the less than or equal filter operator␟6918259000dbe30cd78e8860b9fdaafbabcb9a25␟5402539774964195763:Is less than or equal to`;\n } let i18n_52; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the less than filter operator\n * @meaning kendo.treelist.filterLtOperator\n */\n const MSG_EXTERNAL_2453651298993567099$$DIST_FESM2015_INDEX_JS_53 = goog.getMsg(\"Is less than\");\n i18n_52 = MSG_EXTERNAL_2453651298993567099$$DIST_FESM2015_INDEX_JS_53;\n }\n else {\n i18n_52 = $localize `:kendo.treelist.filterLtOperator|The text of the less than filter operator␟ae4bbdfc3ee897f028841eca04a5d91ec2d4ee61␟2453651298993567099:Is less than`;\n } let i18n_54; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the IsTrue boolean filter option\n * @meaning kendo.treelist.filterIsTrue\n */\n const MSG_EXTERNAL_3820735177054693083$$DIST_FESM2015_INDEX_JS_55 = goog.getMsg(\"Is True\");\n i18n_54 = MSG_EXTERNAL_3820735177054693083$$DIST_FESM2015_INDEX_JS_55;\n }\n else {\n i18n_54 = $localize `:kendo.treelist.filterIsTrue|The text of the IsTrue boolean filter option␟16e9e2209633a80112df7c3b37bc56c938b27f8b␟3820735177054693083:Is True`;\n } let i18n_56; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the IsFalse boolean filter option\n * @meaning kendo.treelist.filterIsFalse\n */\n const MSG_EXTERNAL_5795301429975209443$$DIST_FESM2015_INDEX_JS_57 = goog.getMsg(\"Is False\");\n i18n_56 = MSG_EXTERNAL_5795301429975209443$$DIST_FESM2015_INDEX_JS_57;\n }\n else {\n i18n_56 = $localize `:kendo.treelist.filterIsFalse|The text of the IsFalse boolean filter option␟cdce58174b115a53dff112da82858d631f5a9be3␟5795301429975209443:Is False`;\n } let i18n_58; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the (All) boolean filter option\n * @meaning kendo.treelist.filterBooleanAll\n */\n const MSG_EXTERNAL_3872856356698042967$$DIST_FESM2015_INDEX_JS_59 = goog.getMsg(\"(All)\");\n i18n_58 = MSG_EXTERNAL_3872856356698042967$$DIST_FESM2015_INDEX_JS_59;\n }\n else {\n i18n_58 = $localize `:kendo.treelist.filterBooleanAll|The text of the (All) boolean filter option␟ff1da0738702670621d008d4902f0ab704b4faa4␟3872856356698042967:(All)`;\n } let i18n_60; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the after or equal date filter operator\n * @meaning kendo.treelist.filterAfterOrEqualOperator\n */\n const MSG_EXTERNAL_3938654797495966170$$DIST_FESM2015_INDEX_JS_61 = goog.getMsg(\"Is after or equal to\");\n i18n_60 = MSG_EXTERNAL_3938654797495966170$$DIST_FESM2015_INDEX_JS_61;\n }\n else {\n i18n_60 = $localize `:kendo.treelist.filterAfterOrEqualOperator|The text of the after or equal date filter operator␟ddd875fe8ef7c06a5abb4de1e13dc7be0fb0419b␟3938654797495966170:Is after or equal to`;\n } let i18n_62; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the after date filter operator\n * @meaning kendo.treelist.filterAfterOperator\n */\n const MSG_EXTERNAL_908881762330632660$$DIST_FESM2015_INDEX_JS_63 = goog.getMsg(\"Is after\");\n i18n_62 = MSG_EXTERNAL_908881762330632660$$DIST_FESM2015_INDEX_JS_63;\n }\n else {\n i18n_62 = $localize `:kendo.treelist.filterAfterOperator|The text of the after date filter operator␟d8c6140d38d89b5ce364f175030a23939049d0f1␟908881762330632660:Is after`;\n } let i18n_64; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the before date filter operator\n * @meaning kendo.treelist.filterBeforeOperator\n */\n const MSG_EXTERNAL_7228583510261541252$$DIST_FESM2015_INDEX_JS_65 = goog.getMsg(\"Is before\");\n i18n_64 = MSG_EXTERNAL_7228583510261541252$$DIST_FESM2015_INDEX_JS_65;\n }\n else {\n i18n_64 = $localize `:kendo.treelist.filterBeforeOperator|The text of the before date filter operator␟572298b8e8959a35e49a469aa0f9afba2cffe5b2␟7228583510261541252:Is before`;\n } let i18n_66; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the before or equal date filter operator\n * @meaning kendo.treelist.filterBeforeOrEqualOperator\n */\n const MSG_EXTERNAL_1212144889311868888$$DIST_FESM2015_INDEX_JS_67 = goog.getMsg(\"Is before or equal to\");\n i18n_66 = MSG_EXTERNAL_1212144889311868888$$DIST_FESM2015_INDEX_JS_67;\n }\n else {\n i18n_66 = $localize `:kendo.treelist.filterBeforeOrEqualOperator|The text of the before or equal date filter operator␟45178126c830dd074321fa50cdb0d1c1a3a10fe7␟1212144889311868888:Is before or equal to`;\n } let i18n_68; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the filter button\n * @meaning kendo.treelist.filterFilterButton\n */\n const MSG_EXTERNAL_2985997669375940253$$DIST_FESM2015_INDEX_JS_69 = goog.getMsg(\"Filter\");\n i18n_68 = MSG_EXTERNAL_2985997669375940253$$DIST_FESM2015_INDEX_JS_69;\n }\n else {\n i18n_68 = $localize `:kendo.treelist.filterFilterButton|The text of the filter button␟e44cdcd935db42c36a8914bd77afd7ec86297630␟2985997669375940253:Filter`;\n } let i18n_70; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the clear filter button\n * @meaning kendo.treelist.filterClearButton\n */\n const MSG_EXTERNAL_6485460801571243063$$DIST_FESM2015_INDEX_JS_71 = goog.getMsg(\"Clear\");\n i18n_70 = MSG_EXTERNAL_6485460801571243063$$DIST_FESM2015_INDEX_JS_71;\n }\n else {\n i18n_70 = $localize `:kendo.treelist.filterClearButton|The text of the clear filter button␟5c9958de639ddffc476be23653f805d868a4484f␟6485460801571243063:Clear`;\n } let i18n_72; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the And filter logic\n * @meaning kendo.treelist.filterAndLogic\n */\n const MSG_EXTERNAL_6958472532316937971$$DIST_FESM2015_INDEX_JS_73 = goog.getMsg(\"And\");\n i18n_72 = MSG_EXTERNAL_6958472532316937971$$DIST_FESM2015_INDEX_JS_73;\n }\n else {\n i18n_72 = $localize `:kendo.treelist.filterAndLogic|The text of the And filter logic␟9259e5d506e88328eb347535e1d224e931ed50d9␟6958472532316937971:And`;\n } let i18n_74; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the Or filter logic\n * @meaning kendo.treelist.filterOrLogic\n */\n const MSG_EXTERNAL_5738400583273636043$$DIST_FESM2015_INDEX_JS_75 = goog.getMsg(\"Or\");\n i18n_74 = MSG_EXTERNAL_5738400583273636043$$DIST_FESM2015_INDEX_JS_75;\n }\n else {\n i18n_74 = $localize `:kendo.treelist.filterOrLogic|The text of the Or filter logic␟30f792cf0c2dd03a72dcc124a681b3271a0b4b92␟5738400583273636043:Or`;\n } let i18n_76; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The loading text\n * @meaning kendo.treelist.loading\n */\n const MSG_EXTERNAL_7305029005172604829$$DIST_FESM2015_INDEX_JS_77 = goog.getMsg(\"Loading\");\n i18n_76 = MSG_EXTERNAL_7305029005172604829$$DIST_FESM2015_INDEX_JS_77;\n }\n else {\n i18n_76 = $localize `:kendo.treelist.loading|The loading text␟77f5d6685cf38119ed85876d6d04a79a2b67cb86␟7305029005172604829:Loading`;\n } let i18n_78; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the column menu icon\n * @meaning kendo.treelist.columnMenu\n */\n const MSG_EXTERNAL_8752393834003132712$$DIST_FESM2015_INDEX_JS_79 = goog.getMsg(\"Column Menu\");\n i18n_78 = MSG_EXTERNAL_8752393834003132712$$DIST_FESM2015_INDEX_JS_79;\n }\n else {\n i18n_78 = $localize `:kendo.treelist.columnMenu|The title of the column menu icon␟b5b3d64e4b293fea9e936086a3d6c2d87b805442␟8752393834003132712:Column Menu`;\n } let i18n_80; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text shown in the column menu for the columns item\n * @meaning kendo.treelist.columns\n */\n const MSG_EXTERNAL_6876209255755903651$$DIST_FESM2015_INDEX_JS_81 = goog.getMsg(\"Columns\");\n i18n_80 = MSG_EXTERNAL_6876209255755903651$$DIST_FESM2015_INDEX_JS_81;\n }\n else {\n i18n_80 = $localize `:kendo.treelist.columns|The text shown in the column menu for the columns item␟652dc1976e2e0ae414f459df4f18f36774dd6128␟6876209255755903651:Columns`;\n } let i18n_82; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text shown in the column menu for the lock item\n * @meaning kendo.treelist.lock\n */\n const MSG_EXTERNAL_6358792984026695308$$DIST_FESM2015_INDEX_JS_83 = goog.getMsg(\"Lock\");\n i18n_82 = MSG_EXTERNAL_6358792984026695308$$DIST_FESM2015_INDEX_JS_83;\n }\n else {\n i18n_82 = $localize `:kendo.treelist.lock|The text shown in the column menu for the lock item␟e8924b69d5c28ae3a1f11f8b1f0a725788837e8d␟6358792984026695308:Lock`;\n } let i18n_84; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text shown in the column menu for the unlock item\n * @meaning kendo.treelist.unlock\n */\n const MSG_EXTERNAL_6589642946890266776$$DIST_FESM2015_INDEX_JS_85 = goog.getMsg(\"Unlock\");\n i18n_84 = MSG_EXTERNAL_6589642946890266776$$DIST_FESM2015_INDEX_JS_85;\n }\n else {\n i18n_84 = $localize `:kendo.treelist.unlock|The text shown in the column menu for the unlock item␟bcc1c4161452d1e5d4ce53d6d059b5880a50d311␟6589642946890266776:Unlock`;\n } let i18n_86; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label of the sort icon\n * @meaning kendo.treelist.sortable\n */\n const MSG_EXTERNAL_6592620729437850513$$DIST_FESM2015_INDEX_JS_87 = goog.getMsg(\"Sortable\");\n i18n_86 = MSG_EXTERNAL_6592620729437850513$$DIST_FESM2015_INDEX_JS_87;\n }\n else {\n i18n_86 = $localize `:kendo.treelist.sortable|The label of the sort icon␟0c76fe494d951c73c1d993cc0c54c687a179d23b␟6592620729437850513:Sortable`;\n } let i18n_88; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text shown in the column menu for the sort ascending item\n * @meaning kendo.treelist.sortAscending\n */\n const MSG_EXTERNAL_521638511049933359$$DIST_FESM2015_INDEX_JS_89 = goog.getMsg(\"Sort Ascending\");\n i18n_88 = MSG_EXTERNAL_521638511049933359$$DIST_FESM2015_INDEX_JS_89;\n }\n else {\n i18n_88 = $localize `:kendo.treelist.sortAscending|The text shown in the column menu for the sort ascending item␟181d125337591b17ca3d8612e307b06e761ad467␟521638511049933359:Sort Ascending`;\n } let i18n_90; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text shown in the column menu for the sort descending item\n * @meaning kendo.treelist.sortDescending\n */\n const MSG_EXTERNAL_9197441556182563035$$DIST_FESM2015_INDEX_JS_91 = goog.getMsg(\"Sort Descending\");\n i18n_90 = MSG_EXTERNAL_9197441556182563035$$DIST_FESM2015_INDEX_JS_91;\n }\n else {\n i18n_90 = $localize `:kendo.treelist.sortDescending|The text shown in the column menu for the sort descending item␟e39fc1d5c36be50d813af6c976ea732e4487d157␟9197441556182563035:Sort Descending`;\n } let i18n_92; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The status announcement when a column is sorted ascending\n * @meaning kendo.treelist.sortedAscending\n */\n const MSG_EXTERNAL_6408293483009020153$$DIST_FESM2015_INDEX_JS_93 = goog.getMsg(\"Sorted Ascending\");\n i18n_92 = MSG_EXTERNAL_6408293483009020153$$DIST_FESM2015_INDEX_JS_93;\n }\n else {\n i18n_92 = $localize `:kendo.treelist.sortedAscending|The status announcement when a column is sorted ascending␟ba92b061442dc5087e47b98a1df883bb6041e633␟6408293483009020153:Sorted Ascending`;\n } let i18n_94; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The status announcement when a column is sorted descending\n * @meaning kendo.treelist.sortedDescending\n */\n const MSG_EXTERNAL_3468262282152409183$$DIST_FESM2015_INDEX_JS_95 = goog.getMsg(\"Sorted Descending\");\n i18n_94 = MSG_EXTERNAL_3468262282152409183$$DIST_FESM2015_INDEX_JS_95;\n }\n else {\n i18n_94 = $localize `:kendo.treelist.sortedDescending|The status announcement when a column is sorted descending␟537d1f5cfa893932e71b5a0bc7a0f642b1b7c44f␟3468262282152409183:Sorted Descending`;\n } let i18n_96; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The status announcement when a column is no longer sorted\n * @meaning kendo.treelist.sortedDefault\n */\n const MSG_EXTERNAL_3847969058314425851$$DIST_FESM2015_INDEX_JS_97 = goog.getMsg(\"Not Sorted\");\n i18n_96 = MSG_EXTERNAL_3847969058314425851$$DIST_FESM2015_INDEX_JS_97;\n }\n else {\n i18n_96 = $localize `:kendo.treelist.sortedDefault|The status announcement when a column is no longer sorted␟8faff57f906be135c4f091be815d9b90ad5bfe5f␟3847969058314425851:Not Sorted`;\n } let i18n_98; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text shown in the column menu or column chooser for the columns apply button\n * @meaning kendo.treelist.columnsApply\n */\n const MSG_EXTERNAL_1737998738259077132$$DIST_FESM2015_INDEX_JS_99 = goog.getMsg(\"Apply\");\n i18n_98 = MSG_EXTERNAL_1737998738259077132$$DIST_FESM2015_INDEX_JS_99;\n }\n else {\n i18n_98 = $localize `:kendo.treelist.columnsApply|The text shown in the column menu or column chooser for the columns apply button␟ebf5078ae6c56ef46a575cad90e1055f6ee3da82␟1737998738259077132:Apply`;\n } let i18n_100; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text shown in the column menu or column chooser for the columns reset button\n * @meaning kendo.treelist.columnsReset\n */\n const MSG_EXTERNAL_2276845195425928676$$DIST_FESM2015_INDEX_JS_101 = goog.getMsg(\"Reset\");\n i18n_100 = MSG_EXTERNAL_2276845195425928676$$DIST_FESM2015_INDEX_JS_101;\n }\n else {\n i18n_100 = $localize `:kendo.treelist.columnsReset|The text shown in the column menu or column chooser for the columns reset button␟e4172c14ea54835be3d301ac88a2c1a5d2a39a92␟2276845195425928676:Reset`;\n } return [[\"kendoTreeListLocalizedMessages\", \"\", \"noRecords\", i18n_4, \"pagerFirstPage\", i18n_6, \"pagerPreviousPage\", i18n_8, \"pagerNextPage\", i18n_10, \"pagerLastPage\", i18n_12, \"pagerPage\", i18n_14, \"pagerOf\", i18n_16, \"pagerPageNumberInputTitle\", i18n_18, \"pagerItemsPerPage\", i18n_20, \"pagerItemsTotal\", i18n_22, \"filter\", i18n_24, \"filterEqOperator\", i18n_26, \"filterNotEqOperator\", i18n_28, \"filterIsNullOperator\", i18n_30, \"filterIsNotNullOperator\", i18n_32, \"filterIsEmptyOperator\", i18n_34, \"filterIsNotEmptyOperator\", i18n_36, \"filterStartsWithOperator\", i18n_38, \"filterContainsOperator\", i18n_40, \"filterNotContainsOperator\", i18n_42, \"filterEndsWithOperator\", i18n_44, \"filterGteOperator\", i18n_46, \"filterGtOperator\", i18n_48, \"filterLteOperator\", i18n_50, \"filterLtOperator\", i18n_52, \"filterIsTrue\", i18n_54, \"filterIsFalse\", i18n_56, \"filterBooleanAll\", i18n_58, \"filterAfterOrEqualOperator\", i18n_60, \"filterAfterOperator\", i18n_62, \"filterBeforeOperator\", i18n_64, \"filterBeforeOrEqualOperator\", i18n_66, \"filterFilterButton\", i18n_68, \"filterClearButton\", i18n_70, \"filterAndLogic\", i18n_72, \"filterOrLogic\", i18n_74, \"loading\", i18n_76, \"columnMenu\", i18n_78, \"columns\", i18n_80, \"lock\", i18n_82, \"unlock\", i18n_84, \"sortable\", i18n_86, \"sortAscending\", i18n_88, \"sortDescending\", i18n_90, \"sortedAscending\", i18n_92, \"sortedDescending\", i18n_94, \"sortedDefault\", i18n_96, \"columnsApply\", i18n_98, \"columnsReset\", i18n_100], [\"position\", \"top\", 4, \"ngIf\"], [\"role\", \"treegrid\", 1, \"k-grid-aria-root\"], [\"ariaRoot\", \"\"], [3, \"ngIf\"], [3, \"template\", \"pageSize\", \"total\", \"allCount\", \"skip\", \"options\", \"pageChange\", 4, \"ngIf\"], [\"position\", \"bottom\", 4, \"ngIf\"], [\"position\", \"top\"], [\"class\", \"k-grid-header\", \"role\", \"presentation\", 3, \"padding\", 4, \"ngIf\"], [\"kendoDraggable\", \"\", \"kendoTreeListSelectionMarquee\", \"\", 3, \"view\", \"loading\", \"rowHeight\", \"total\", \"take\", \"skip\", \"trackBy\", \"columns\", \"filterable\", \"noRecordsTemplate\", \"rowClass\", \"isVirtual\", \"virtualColumns\", \"expandIcons\", \"enableDrag\", \"pageChange\", \"scrollBottom\", \"contentScroll\"], [\"role\", \"presentation\", 1, \"k-grid-header\"], [\"role\", \"presentation\", \"class\", \"k-grid-header-locked\", 3, \"width\", 4, \"ngIf\"], [\"role\", \"presentation\", \"data-scrollable\", \"\", 1, \"k-grid-header-wrap\", 3, \"kendoTreeListResizableContainer\", \"lockedWidth\"], [\"header\", \"\"], [\"role\", \"presentation\", 3, \"virtualColumns\"], [\"kendoTreeListColGroup\", \"\", \"role\", \"presentation\", 3, \"columns\"], [\"kendoTreeListHeader\", \"\", \"role\", \"presentation\", 3, \"resizable\", \"scrollable\", \"columns\", \"totalColumnLevels\", \"sort\", \"filter\", \"filterable\", \"reorderable\", \"sortable\", \"columnMenu\", \"columnMenuTemplate\", \"lockedColumnsCount\", \"totalColumnsCount\"], [\"class\", \"k-width-container\", \"role\", \"presentation\", 4, \"ngIf\"], [\"role\", \"presentation\", 1, \"k-grid-header-locked\"], [\"lockedHeader\", \"\"], [\"role\", \"presentation\", 3, \"locked\"], [\"kendoTreeListHeader\", \"\", 3, \"resizable\", \"scrollable\", \"columns\", \"totalColumnLevels\", \"sort\", \"filter\", \"filterable\", \"reorderable\", \"sortable\", \"columnMenu\", \"columnMenuTemplate\", \"totalColumnsCount\"], [\"role\", \"presentation\", 1, \"k-width-container\"], [\"kendoTreeListColGroup\", \"\", 3, \"columns\"], [\"kendoTreeListHeader\", \"\", 3, \"resizable\", \"scrollable\", \"columns\", \"totalColumnLevels\", \"reorderable\", \"sort\", \"sortable\", \"filter\", \"filterable\", \"columnMenu\", \"columnMenuTemplate\", 4, \"ngIf\"], [\"kendoTreeListTableBody\", \"\", \"kendoDraggable\", \"\", \"kendoTreeListSelectionMarquee\", \"\", 3, \"view\", \"skip\", \"columns\", \"filterable\", \"noRecordsTemplate\", \"trackBy\", \"rowClass\", \"expandIcons\", \"enableDrag\"], [\"kendoTreeListLoading\", \"\", 4, \"ngIf\"], [\"kendoTreeListHeader\", \"\", 3, \"resizable\", \"scrollable\", \"columns\", \"totalColumnLevels\", \"reorderable\", \"sort\", \"sortable\", \"filter\", \"filterable\", \"columnMenu\", \"columnMenuTemplate\"], [\"kendoTreeListLoading\", \"\"], [3, \"template\", \"pageSize\", \"total\", \"allCount\", \"skip\", \"options\", \"pageChange\"], [\"position\", \"bottom\"]]; }, template: function TreeListComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0, 0);\n ɵngcc0.ɵɵtemplate(1, TreeListComponent_kendo_treelist_toolbar_1_Template, 1, 0, \"kendo-treelist-toolbar\", 1);\n ɵngcc0.ɵɵelementStart(2, \"div\", 2, 3);\n ɵngcc0.ɵɵtemplate(4, TreeListComponent_ng_template_4_Template, 2, 16, \"ng-template\", 4);\n ɵngcc0.ɵɵtemplate(5, TreeListComponent_ng_template_5_Template, 5, 14, \"ng-template\", 4);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(6, TreeListComponent_kendo_treelist_pager_6_Template, 1, 6, \"kendo-treelist-pager\", 5);\n ɵngcc0.ɵɵtemplate(7, TreeListComponent_kendo_treelist_toolbar_7_Template, 1, 0, \"kendo-treelist-toolbar\", 6);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showTopToolbar);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"aria-rowcount\", ctx.ariaRowCount)(\"aria-colcount\", ctx.ariaColCount)(\"aria-multiselectable\", ctx.ariaMultiselectable)(\"aria-label\", ctx.ariaLabel);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.isScrollable);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.isScrollable);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showPager);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showBottomToolbar);\n } }, directives: function () { return [LocalizedMessagesDirective, ɵngcc4.NgIf, ToolbarComponent, TableDirective, ColGroupComponent, HeaderComponent, ResizableContainerDirective, ListComponent, ɵngcc5.DraggableDirective, MarqueeDirective, TableBodyComponent, LoadingComponent, PagerComponent]; }, encapsulation: 2, changeDetection: 0 });\n__decorate([\n Input('aria-label'),\n __metadata(\"design:type\", String)\n], TreeListComponent.prototype, \"ariaLabel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], TreeListComponent.prototype, \"data\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], TreeListComponent.prototype, \"pageSize\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], TreeListComponent.prototype, \"height\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], TreeListComponent.prototype, \"rowHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], TreeListComponent.prototype, \"skip\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TreeListComponent.prototype, \"scrollable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], TreeListComponent.prototype, \"sort\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], TreeListComponent.prototype, \"trackBy\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], TreeListComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TreeListComponent.prototype, \"virtualColumns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], TreeListComponent.prototype, \"filterable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], TreeListComponent.prototype, \"sortable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], TreeListComponent.prototype, \"pageable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TreeListComponent.prototype, \"navigable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], TreeListComponent.prototype, \"navigatable\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TreeListComponent.prototype, \"autoSize\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Function])\n], TreeListComponent.prototype, \"rowClass\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TreeListComponent.prototype, \"resizable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TreeListComponent.prototype, \"reorderable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TreeListComponent.prototype, \"loading\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], TreeListComponent.prototype, \"columnMenu\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TreeListComponent.prototype, \"hideHeader\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], TreeListComponent.prototype, \"idField\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], TreeListComponent.prototype, \"selectable\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Function])\n], TreeListComponent.prototype, \"isSelected\", null);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeListComponent.prototype, \"selectionChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeListComponent.prototype, \"filterChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeListComponent.prototype, \"pageChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeListComponent.prototype, \"sortChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeListComponent.prototype, \"dataStateChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeListComponent.prototype, \"edit\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeListComponent.prototype, \"cancel\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeListComponent.prototype, \"save\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeListComponent.prototype, \"remove\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeListComponent.prototype, \"add\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeListComponent.prototype, \"cellClose\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeListComponent.prototype, \"cellClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeListComponent.prototype, \"pdfExport\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeListComponent.prototype, \"excelExport\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeListComponent.prototype, \"columnResize\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeListComponent.prototype, \"columnReorder\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeListComponent.prototype, \"columnVisibilityChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeListComponent.prototype, \"columnLockedChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeListComponent.prototype, \"scrollBottom\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeListComponent.prototype, \"contentScroll\", void 0);\n__decorate([\n Output('expand'),\n __metadata(\"design:type\", EventEmitter)\n], TreeListComponent.prototype, \"expandEvent\", void 0);\n__decorate([\n Output('collapse'),\n __metadata(\"design:type\", EventEmitter)\n], TreeListComponent.prototype, \"collapseEvent\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeListComponent.prototype, \"expandStateChange\", void 0);\n__decorate([\n Input('columns'),\n __metadata(\"design:type\", QueryList),\n __metadata(\"design:paramtypes\", [QueryList])\n], TreeListComponent.prototype, \"columnsRef\", null);\n__decorate([\n ContentChildren(ColumnBase$1),\n __metadata(\"design:type\", QueryList)\n], TreeListComponent.prototype, \"columns\", void 0);\n__decorate([\n HostBinding('attr.dir'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], TreeListComponent.prototype, \"dir\", null);\n__decorate([\n HostBinding('class.k-widget'),\n HostBinding('class.k-grid'),\n HostBinding('class.k-treelist'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], TreeListComponent.prototype, \"hostClasses\", null);\n__decorate([\n HostBinding('class.k-grid-lockedcolumns'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], TreeListComponent.prototype, \"lockedClasses\", null);\n__decorate([\n HostBinding('class.k-grid-virtual'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], TreeListComponent.prototype, \"virtualClasses\", null);\n__decorate([\n HostBinding('class.k-grid-no-scrollbar'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], TreeListComponent.prototype, \"noScrollbarClass\", null);\n__decorate([\n ContentChildren(NoRecordsTemplateDirective),\n __metadata(\"design:type\", QueryList)\n], TreeListComponent.prototype, \"noRecordsTemplateChildren\", void 0);\n__decorate([\n ContentChildren(PagerTemplateDirective),\n __metadata(\"design:type\", QueryList)\n], TreeListComponent.prototype, \"pagerTemplateChildren\", void 0);\n__decorate([\n ContentChildren(ToolbarTemplateDirective),\n __metadata(\"design:type\", QueryList)\n], TreeListComponent.prototype, \"toolbarTemplateChildren\", void 0);\n__decorate([\n ContentChildren(ColumnMenuTemplateDirective),\n __metadata(\"design:type\", QueryList)\n], TreeListComponent.prototype, \"columnMenuTemplates\", void 0);\n__decorate([\n ViewChild('lockedHeader', { static: false }),\n __metadata(\"design:type\", Object)\n], TreeListComponent.prototype, \"lockedHeader\", void 0);\n__decorate([\n ViewChild('header', { static: false }),\n __metadata(\"design:type\", Object)\n], TreeListComponent.prototype, \"header\", void 0);\n__decorate([\n ViewChildren('footer'),\n __metadata(\"design:type\", QueryList)\n], TreeListComponent.prototype, \"footer\", void 0);\n__decorate([\n ViewChild('ariaRoot', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], TreeListComponent.prototype, \"ariaRoot\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Function])\n], TreeListComponent.prototype, \"fetchChildren\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Function])\n], TreeListComponent.prototype, \"hasChildren\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Function])\n], TreeListComponent.prototype, \"isExpanded\", null);\nTreeListComponent = TreeListComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [BrowserSupportService,\n ElementRef,\n ChangeNotificationService,\n EditService,\n FilterService,\n PDFService,\n ResponsiveService,\n Renderer2,\n ExcelService,\n NgZone,\n ScrollSyncService,\n DomEventsService,\n ColumnResizingService,\n ChangeDetectorRef,\n ColumnReorderService,\n ColumnInfoService,\n NavigationService,\n SortService,\n ScrollRequestService,\n ExpandStateService,\n OptionChangesService,\n SelectionService,\n LocalizationService])\n], TreeListComponent);\n\n/**\n * @hidden\n */\nclass RowHeightService {\n constructor(total = 0, rowHeight) {\n this.total = total;\n this.rowHeight = rowHeight;\n this.rowHeight = rowHeight || 0;\n }\n index(position) {\n if (position < 0) {\n return undefined;\n }\n return Math.min(Math.floor(position / this.rowHeight), this.total - 1);\n }\n offset(rowIndex) {\n if (0 <= rowIndex && rowIndex < this.total) {\n return rowIndex * this.rowHeight;\n }\n }\n totalHeight() {\n return this.total * this.rowHeight;\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 this.lastScrollTop = 0;\n }\n create(rowHeightService, skip, take$$1, total, scrollTop = 0) {\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 = scrollTop;\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 EMPTY_ICON_CLASS = 'k-i-none';\n/**\n * @hidden\n */\nconst ICON_CLASS = 'k-icon';\n/**\n * @hidden\n */\nconst IGNORE_CONTAINER_CLASSES = 'k-widget k-treelist-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-treelist-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('treelist-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 = el => event => {\n const delta = wheelDeltaY(event);\n const scrollTop = el.scrollTop;\n const allowScroll = (scrollTop === 0 && 0 < delta) || (el.scrollHeight <= el.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 */\nlet ListComponent = class ListComponent {\n constructor(scrollerFactory, changeNotification, suspendService, ngZone, renderer, scrollSyncService, resizeService, editService, supportService, navigationService, scrollRequestService, localization, columnResizingService, changeDetector, pdfService, columnInfo) {\n this.changeNotification = changeNotification;\n this.suspendService = suspendService;\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.skip = 0;\n this.columns = new ColumnsContainer(() => []);\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.subscriptions = new Subscription();\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 = scrollRequestService.requests.subscribe(x => this.scrollTo(x));\n }\n get hostClass() {\n return true;\n }\n get hostRole() {\n return 'presentation';\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 return expandColumns(this.lockedLeafColumns.toArray()).reduce((prev, curr) => prev + (curr.width || 0), 0);\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 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);\n this.totalHeight = this.rowHeightService.totalHeight();\n if (!isUniversal()) {\n this.ngZone.runOutsideAngular(this.createScroller.bind(this));\n }\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 if (this.lockedContainer) {\n this.ngZone.runOutsideAngular(() => {\n this.subscriptions.add(merge(fromEvent(this.lockedContainer.nativeElement, 'mousewheel'), fromEvent(this.lockedContainer.nativeElement, 'DOMMouseScroll')).pipe(filter((event) => !event.ctrlKey), tap(preventLockedScroll(this.container.nativeElement)), map(wheelDeltaY))\n .subscribe(x => this.container.nativeElement.scrollTop -= x));\n this.subscriptions.add(fromEvent(this.lockedContainer.nativeElement, 'scroll').pipe(filter(() => !this.suspendService.scroll))\n .subscribe(() => {\n const lockedScrollTop = this.lockedContainer.nativeElement.scrollTop;\n if (lockedScrollTop !== this.containerScrollTop) {\n this.container.nativeElement.scrollTop = this.containerScrollTop = lockedScrollTop;\n }\n }));\n this.subscriptions.add(fromEvent(this.lockedContainer.nativeElement, 'keydown').pipe(filter((event) => event.keyCode === Keys.PageDown || event.keyCode === Keys.PageUp)).subscribe((event) => {\n const dir = event.keyCode === Keys.PageDown ? 1 : -1;\n const element = this.container.nativeElement;\n element.scrollTop += element.offsetHeight * dir * 0.8;\n event.preventDefault();\n }));\n });\n this.syncRowsHeight();\n }\n }\n createScroller() {\n this.cleanupScroller();\n const observable = this.scroller\n .create(this.rowHeightService, this.skip, this.take, this.total, this.containerScrollTop);\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 return merge(this.changeNotification.changes, 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 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 this.container.nativeElement.scrollLeft = this.normalizeScrollLeft(offset);\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 ||\n !this.navigationService.needsViewport() || this.view.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 this.navigationService.setViewport(firstItemIndex, lastItemIndex);\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;\n let viewportEnd = lockedCount + endIdx;\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.ɵfac = function ListComponent_Factory(t) { return new (t || ListComponent)(ɵngcc0.ɵɵdirectiveInject(SCROLLER_FACTORY_TOKEN), ɵngcc0.ɵɵdirectiveInject(ChangeNotificationService), ɵngcc0.ɵɵdirectiveInject(SuspendService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ScrollSyncService), ɵngcc0.ɵɵdirectiveInject(ResizeService), ɵngcc0.ɵɵdirectiveInject(EditService), ɵngcc0.ɵɵdirectiveInject(BrowserSupportService), ɵngcc0.ɵɵdirectiveInject(NavigationService), ɵngcc0.ɵɵdirectiveInject(ScrollRequestService), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ColumnResizingService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(PDFService), ɵngcc0.ɵɵdirectiveInject(ColumnInfoService)); };\nListComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ListComponent, selectors: [[\"kendo-treelist-list\"]], viewQuery: function ListComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c102, 7);\n ɵngcc0.ɵɵviewQuery(_c103, 7);\n ɵngcc0.ɵɵviewQuery(_c104, 5);\n ɵngcc0.ɵɵviewQuery(_c105, 5);\n ɵngcc0.ɵɵviewQuery(ResizeSensorComponent, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.container = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.table = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.lockedContainer = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.lockedTable = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.resizeSensors = _t);\n } }, hostVars: 3, hostBindings: function ListComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"role\", ctx.hostRole);\n ɵngcc0.ɵɵclassProp(\"k-grid-container\", ctx.hostClass);\n } }, inputs: { skip: \"skip\", columns: \"columns\", trackBy: \"trackBy\", view: \"view\", total: \"total\", rowHeight: \"rowHeight\", take: \"take\", noRecordsTemplate: \"noRecordsTemplate\", filterable: \"filterable\", rowClass: \"rowClass\", loading: \"loading\", virtualColumns: \"virtualColumns\", isVirtual: \"isVirtual\", expandIcons: \"expandIcons\" }, outputs: { contentScroll: \"contentScroll\", pageChange: \"pageChange\", scrollBottom: \"scrollBottom\" }, features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: SCROLLER_FACTORY_TOKEN,\n useValue: DEFAULT_SCROLLER_FACTORY\n }\n ]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 14, vars: 25, consts: [[\"class\", \"k-grid-content-locked\", \"role\", \"presentation\", 3, \"width\", 4, \"ngIf\"], [\"role\", \"presentation\", \"tabindex\", \"-1\", 1, \"k-grid-content\", \"k-virtual-content\", 3, \"kendoTreeListResizableContainer\", \"lockedWidth\"], [\"container\", \"\"], [\"role\", \"presentation\", 1, \"k-grid-table-wrap\"], [\"role\", \"presentation\", 1, \"k-grid-table\", 3, \"virtualColumns\"], [\"table\", \"\"], [\"kendoTreeListColGroup\", \"\", \"role\", \"presentation\", 3, \"columns\"], [\"kendoTreeListTableBody\", \"\", \"role\", \"presentation\", 3, \"view\", \"columns\", \"allColumns\", \"noRecordsTemplate\", \"lockedColumnsCount\", \"totalColumnsCount\", \"skip\", \"trackBy\", \"filterable\", \"rowClass\", \"virtualColumns\", \"expandIcons\"], [4, \"ngIf\"], [\"role\", \"presentation\", 1, \"k-height-container\"], [\"class\", \"k-width-container\", \"role\", \"presentation\", 4, \"ngIf\"], [\"kendoTreeListLoading\", \"\", 4, \"ngIf\"], [\"role\", \"presentation\", 1, \"k-grid-content-locked\"], [\"lockedContainer\", \"\"], [\"role\", \"presentation\", 1, \"k-grid-table\", 3, \"locked\"], [\"lockedTable\", \"\"], [\"kendoTreeListTableBody\", \"\", \"role\", \"presentation\", 3, \"isLocked\", \"view\", \"noRecordsText\", \"columns\", \"totalColumnsCount\", \"skip\", \"trackBy\", \"filterable\", \"rowClass\", \"expandIcons\"], [\"role\", \"presentation\", 1, \"k-width-container\"], [\"kendoTreeListLoading\", \"\"]], template: function ListComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ListComponent_div_0_Template, 10, 18, \"div\", 0);\n ɵngcc0.ɵɵelementStart(1, \"div\", 1, 2)(3, \"div\", 3)(4, \"table\", 4, 5);\n ɵngcc0.ɵɵelement(6, \"colgroup\", 6)(7, \"tbody\", 7);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(8, ListComponent_kendo_resize_sensor_8_Template, 1, 0, \"kendo-resize-sensor\", 8);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(9, ListComponent_kendo_resize_sensor_9_Template, 1, 0, \"kendo-resize-sensor\", 8);\n ɵngcc0.ɵɵelementStart(10, \"div\", 9);\n ɵngcc0.ɵɵelement(11, \"div\");\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(12, ListComponent_div_12_Template, 2, 2, \"div\", 10);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(13, ListComponent_div_13_Template, 1, 0, \"div\", 11);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.isLocked);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"kendoTreeListResizableContainer\", ctx.lockedLeafColumns.length)(\"lockedWidth\", ctx.lockedWidth + 1);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵstyleProp(\"width\", ctx.nonLockedWidth, \"px\");\n ɵngcc0.ɵɵproperty(\"virtualColumns\", ctx.virtualColumns);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"columns\", ctx.nonLockedColumnsToRender);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"view\", ctx.view)(\"columns\", ctx.nonLockedColumnsToRender)(\"allColumns\", ctx.nonLockedLeafColumns)(\"noRecordsTemplate\", ctx.noRecordsTemplate)(\"lockedColumnsCount\", ctx.lockedLeafColumns.length)(\"totalColumnsCount\", ctx.leafColumns.length)(\"skip\", ctx.skip)(\"trackBy\", ctx.trackBy)(\"filterable\", ctx.filterable)(\"rowClass\", ctx.rowClass)(\"virtualColumns\", ctx.virtualColumns)(\"expandIcons\", ctx.expandIcons);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.isLocked);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.isLocked || ctx.virtualColumns);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵstyleProp(\"height\", ctx.totalHeight, \"px\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.virtualColumns);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.loading);\n } }, directives: function () { return [ɵngcc4.NgIf, TableDirective, ColGroupComponent, TableBodyComponent, ɵngcc5.ResizeSensorComponent, ResizableContainerDirective, LoadingComponent]; }, encapsulation: 2 });\n__decorate([\n HostBinding(\"class.k-grid-container\"),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ListComponent.prototype, \"hostClass\", null);\n__decorate([\n HostBinding(\"attr.role\"),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], ListComponent.prototype, \"hostRole\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ListComponent.prototype, \"view\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ListComponent.prototype, \"total\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ListComponent.prototype, \"rowHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ListComponent.prototype, \"take\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], ListComponent.prototype, \"skip\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnsContainer)\n], ListComponent.prototype, \"columns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", NoRecordsTemplateDirective)\n], ListComponent.prototype, \"noRecordsTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ListComponent.prototype, \"filterable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], ListComponent.prototype, \"rowClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ListComponent.prototype, \"loading\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], ListComponent.prototype, \"trackBy\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ListComponent.prototype, \"virtualColumns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ListComponent.prototype, \"isVirtual\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ListComponent.prototype, \"expandIcons\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ListComponent.prototype, \"contentScroll\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ListComponent.prototype, \"pageChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ListComponent.prototype, \"scrollBottom\", void 0);\n__decorate([\n ViewChild('container', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], ListComponent.prototype, \"container\", void 0);\n__decorate([\n ViewChild('table', { static: true }),\n __metadata(\"design:type\", ElementRef)\n], ListComponent.prototype, \"table\", void 0);\n__decorate([\n ViewChild('lockedContainer', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], ListComponent.prototype, \"lockedContainer\", void 0);\n__decorate([\n ViewChild('lockedTable', { static: false }),\n __metadata(\"design:type\", ElementRef)\n], ListComponent.prototype, \"lockedTable\", void 0);\n__decorate([\n ViewChildren(ResizeSensorComponent),\n __metadata(\"design:type\", QueryList)\n], ListComponent.prototype, \"resizeSensors\", void 0);\nListComponent = __decorate([ __param(0, Inject(SCROLLER_FACTORY_TOKEN)),\n __metadata(\"design:paramtypes\", [Object, ChangeNotificationService,\n SuspendService,\n NgZone,\n Renderer2,\n ScrollSyncService,\n ResizeService,\n EditService,\n BrowserSupportService,\n NavigationService,\n ScrollRequestService,\n LocalizationService,\n ColumnResizingService,\n ChangeDetectorRef,\n PDFService,\n ColumnInfoService])\n], ListComponent);\n\n/**\n * @hidden\n */\nclass Messages extends ComponentMessages {\n}\nMessages.ɵfac = /*@__PURE__*/ function () { let ɵMessages_BaseFactory; return function Messages_Factory(t) { return (ɵMessages_BaseFactory || (ɵMessages_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(Messages)))(t || Messages); }; }();\nMessages.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: Messages, inputs: { groupPanelEmpty: \"groupPanelEmpty\", noRecords: \"noRecords\", pagerFirstPage: \"pagerFirstPage\", pagerLastPage: \"pagerLastPage\", pagerPreviousPage: \"pagerPreviousPage\", pagerNextPage: \"pagerNextPage\", pagerPage: \"pagerPage\", pagerPageNumberInputTitle: \"pagerPageNumberInputTitle\", pagerItemsPerPage: \"pagerItemsPerPage\", pagerOf: \"pagerOf\", pagerItemsTotal: \"pagerItemsTotal\", filter: \"filter\", filterEqOperator: \"filterEqOperator\", filterNotEqOperator: \"filterNotEqOperator\", filterIsNullOperator: \"filterIsNullOperator\", filterIsNotNullOperator: \"filterIsNotNullOperator\", filterIsEmptyOperator: \"filterIsEmptyOperator\", filterIsNotEmptyOperator: \"filterIsNotEmptyOperator\", filterStartsWithOperator: \"filterStartsWithOperator\", filterContainsOperator: \"filterContainsOperator\", filterNotContainsOperator: \"filterNotContainsOperator\", filterEndsWithOperator: \"filterEndsWithOperator\", filterGteOperator: \"filterGteOperator\", filterGtOperator: \"filterGtOperator\", filterLteOperator: \"filterLteOperator\", filterLtOperator: \"filterLtOperator\", filterIsTrue: \"filterIsTrue\", filterIsFalse: \"filterIsFalse\", filterBooleanAll: \"filterBooleanAll\", filterAfterOrEqualOperator: \"filterAfterOrEqualOperator\", filterAfterOperator: \"filterAfterOperator\", filterBeforeOperator: \"filterBeforeOperator\", filterBeforeOrEqualOperator: \"filterBeforeOrEqualOperator\", filterFilterButton: \"filterFilterButton\", filterClearButton: \"filterClearButton\", filterAndLogic: \"filterAndLogic\", filterOrLogic: \"filterOrLogic\", loading: \"loading\", columnMenu: \"columnMenu\", columns: \"columns\", lock: \"lock\", unlock: \"unlock\", sortable: \"sortable\", sortAscending: \"sortAscending\", sortDescending: \"sortDescending\", sortedAscending: \"sortedAscending\", sortedDescending: \"sortedDescending\", sortedDefault: \"sortedDefault\", columnsApply: \"columnsApply\", columnsReset: \"columnsReset\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"groupPanelEmpty\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"noRecords\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"pagerFirstPage\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"pagerLastPage\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"pagerPreviousPage\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"pagerNextPage\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"pagerPage\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"pagerPageNumberInputTitle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"pagerItemsPerPage\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"pagerOf\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"pagerItemsTotal\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterEqOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterNotEqOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterIsNullOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterIsNotNullOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterIsEmptyOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterIsNotEmptyOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterStartsWithOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterContainsOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterNotContainsOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterEndsWithOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterGteOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterGtOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterLteOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterLtOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterIsTrue\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterIsFalse\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterBooleanAll\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterAfterOrEqualOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterAfterOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterBeforeOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterBeforeOrEqualOperator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterFilterButton\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterClearButton\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterAndLogic\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"filterOrLogic\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"loading\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"columnMenu\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"columns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"lock\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"unlock\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"sortable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"sortAscending\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"sortDescending\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"sortedAscending\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"sortedDescending\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"sortedDefault\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"columnsApply\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], Messages.prototype, \"columnsReset\", void 0);\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.ɵfac = function LocalizedMessagesDirective_Factory(t) { return new (t || LocalizedMessagesDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nLocalizedMessagesDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LocalizedMessagesDirective, selectors: [[\"\", \"kendoTreeListLocalizedMessages\", \"\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: Messages,\n useExisting: forwardRef(() => LocalizedMessagesDirective_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature] });\nLocalizedMessagesDirective = LocalizedMessagesDirective_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], LocalizedMessagesDirective);\n\nvar CustomMessagesComponent_1;\n/**\n * Custom component messages override default component messages\n * ([see example]({% slug globalization_treelist %}#toc-localization)).\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.ɵfac = function CustomMessagesComponent_Factory(t) { return new (t || CustomMessagesComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nCustomMessagesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CustomMessagesComponent, selectors: [[\"kendo-treelist-messages\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: Messages,\n useExisting: forwardRef(() => CustomMessagesComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function CustomMessagesComponent_Template(rf, ctx) { }, encapsulation: 2 });\nCustomMessagesComponent = CustomMessagesComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], CustomMessagesComponent);\n\n/**\n * @hidden\n */\nlet FilterRowComponent = class FilterRowComponent {\n constructor(localization) {\n this.localization = localization;\n this.columns = [];\n this.filterRowClass = true;\n this.filterLabel = this.localization.get('filter');\n }\n};\nFilterRowComponent.ɵfac = function FilterRowComponent_Factory(t) { return new (t || FilterRowComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nFilterRowComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: FilterRowComponent, selectors: [[\"\", \"kendoTreeListFilterRow\", \"\"]], hostVars: 2, hostBindings: function FilterRowComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-filter-row\", ctx.filterRowClass);\n } }, inputs: { columns: \"columns\", filter: \"filter\", logicalRowIndex: \"logicalRowIndex\", lockedColumnsCount: \"lockedColumnsCount\" }, attrs: _c106, decls: 1, vars: 1, consts: [[\"kendoTreeListFilterCell\", \"\", \"kendoTreeListLogicalCell\", \"\", 3, \"column\", \"filter\", \"logicalRowIndex\", \"logicalColIndex\", \"colIndex\", 4, \"ngFor\", \"ngForOf\"], [\"kendoTreeListFilterCell\", \"\", \"kendoTreeListLogicalCell\", \"\", 3, \"column\", \"filter\", \"logicalRowIndex\", \"logicalColIndex\", \"colIndex\"]], template: function FilterRowComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, FilterRowComponent_td_0_Template, 1, 7, \"td\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.columns);\n } }, directives: function () { return [ɵngcc4.NgForOf, FilterCellComponent, LogicalCellDirective]; }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], FilterRowComponent.prototype, \"columns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], FilterRowComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], FilterRowComponent.prototype, \"logicalRowIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], FilterRowComponent.prototype, \"lockedColumnsCount\", void 0);\n__decorate([\n HostBinding('class.k-filter-row'),\n __metadata(\"design:type\", Boolean)\n], FilterRowComponent.prototype, \"filterRowClass\", void 0);\nFilterRowComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], FilterRowComponent);\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/**\n * @hidden\n */\nlet FilterCellComponent = class FilterCellComponent {\n constructor(focusGroup) {\n this.focusGroup = focusGroup;\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.$implicit = this.filter;\n this._templateContext.column = this.column;\n this._templateContext.filter = this.filter;\n this._templateContext.cellContext = { focusGroup: this.focusGroup };\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.ɵfac = function FilterCellComponent_Factory(t) { return new (t || FilterCellComponent)(ɵngcc0.ɵɵdirectiveInject(FocusGroup)); };\nFilterCellComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: FilterCellComponent, selectors: [[\"\", \"kendoTreeListFilterCell\", \"\"]], inputs: { filter: \"filter\", column: \"column\" }, attrs: _c107, decls: 1, vars: 1, consts: [[3, \"ngIf\"], [3, \"ngSwitch\"], [4, \"ngSwitchCase\"], [\"kendoFilterCellHost\", \"\", 3, \"column\", \"filter\"], [4, \"ngIf\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]], template: function FilterCellComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, FilterCellComponent_ng_template_0_Template, 3, 3, \"ng-template\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.isFilterable);\n } }, directives: function () { return [ɵngcc4.NgIf, ɵngcc4.NgSwitch, ɵngcc4.NgSwitchCase, FilterCellHostDirective, ɵngcc4.NgTemplateOutlet]; }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnComponent)\n], FilterCellComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], FilterCellComponent.prototype, \"filter\", null);\nFilterCellComponent = __decorate([ __metadata(\"design:paramtypes\", [FocusGroup])\n], FilterCellComponent);\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.ɵfac = function FilterOperatorBase_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nFilterOperatorBase.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: FilterOperatorBase, inputs: { text: \"text\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], FilterOperatorBase.prototype, \"text\", null);\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_treelist %}#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.ɵfac = function BaseFilterCellComponent_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nBaseFilterCellComponent.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: BaseFilterCellComponent, contentQueries: function BaseFilterCellComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, FilterOperatorBase, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.operatorList = _t);\n } }, hostVars: 2, hostBindings: function BaseFilterCellComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-filtercell\", ctx.hostClasses);\n } } });\n__decorate([\n HostBinding('class.k-filtercell'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], BaseFilterCellComponent.prototype, \"hostClasses\", null);\n__decorate([\n ContentChildren(FilterOperatorBase),\n __metadata(\"design:type\", QueryList)\n], BaseFilterCellComponent.prototype, \"operatorList\", void 0);\n\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.ɵfac = function NumericFilterComponent_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nNumericFilterComponent.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NumericFilterComponent, inputs: { operator: \"operator\", step: \"step\", spinners: \"spinners\", format: \"format\", column: \"column\", filter: \"filter\", min: \"min\", max: \"max\", decimals: \"decimals\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnComponent)\n], NumericFilterComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], NumericFilterComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], NumericFilterComponent.prototype, \"operator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], NumericFilterComponent.prototype, \"step\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], NumericFilterComponent.prototype, \"min\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], NumericFilterComponent.prototype, \"max\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], NumericFilterComponent.prototype, \"spinners\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], NumericFilterComponent.prototype, \"decimals\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], NumericFilterComponent.prototype, \"format\", null);\n\n/**\n * Represents a numeric filter cell.\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * \n * ```\n */\nlet NumericFilterCellComponent = class 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.ɵfac = function NumericFilterCellComponent_Factory(t) { return new (t || NumericFilterCellComponent)(ɵngcc0.ɵɵdirectiveInject(FilterService), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nNumericFilterCellComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NumericFilterCellComponent, selectors: [[\"kendo-treelist-numeric-filter-cell\"]], inputs: { filterDelay: \"filterDelay\", showOperators: \"showOperators\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 2, vars: 14, consts: [[3, \"column\", \"filter\", \"operators\", \"defaultOperator\", \"showOperators\"], [\"kendoTreeListFocusable\", \"\", \"kendoFilterInput\", \"\", 3, \"filterDelay\", \"autoCorrect\", \"value\", \"format\", \"decimals\", \"spinners\", \"min\", \"max\", \"step\"]], template: function NumericFilterCellComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-treelist-filter-wrapper-cell\", 0);\n ɵngcc0.ɵɵelement(1, \"kendo-numerictextbox\", 1);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"column\", ctx.column)(\"filter\", ctx.filter)(\"operators\", ctx.operators)(\"defaultOperator\", ctx.operator)(\"showOperators\", ctx.showOperators);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"filterDelay\", ctx.filterDelay)(\"autoCorrect\", true)(\"value\", ctx.currentFilter == null ? null : ctx.currentFilter.value)(\"format\", ctx.format)(\"decimals\", ctx.decimals)(\"spinners\", ctx.spinners)(\"min\", ctx.min)(\"max\", ctx.max)(\"step\", ctx.step);\n } }, directives: function () { return [FilterCellWrapperComponent, ɵngcc6.NumericTextBoxComponent, FocusableDirective, FilterInputDirective]; }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], NumericFilterCellComponent.prototype, \"filterDelay\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], NumericFilterCellComponent.prototype, \"showOperators\", void 0);\nNumericFilterCellComponent = __decorate([ __metadata(\"design:paramtypes\", [FilterService,\n LocalizationService])\n], NumericFilterCellComponent);\n\n/**\n * @hidden\n */\nlet FilterInputDirective = class 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.ɵfac = function FilterInputDirective_Factory(t) { return new (t || FilterInputDirective)(ɵngcc0.ɵɵdirectiveInject(NG_VALUE_ACCESSOR, 2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nFilterInputDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: FilterInputDirective, selectors: [[\"\", \"kendoFilterInput\", \"\"]], inputs: { filterDelay: \"filterDelay\", value: \"value\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], FilterInputDirective.prototype, \"filterDelay\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], FilterInputDirective.prototype, \"value\", null);\nFilterInputDirective = __decorate([ __param(0, Self()), __param(0, Inject(NG_VALUE_ACCESSOR)),\n __metadata(\"design:paramtypes\", [Array, NgZone,\n ElementRef,\n Renderer2])\n], FilterInputDirective);\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.ɵfac = function FilterInputWrapperComponent_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nFilterInputWrapperComponent.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: FilterInputWrapperComponent, contentQueries: function FilterInputWrapperComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, FilterInputDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.input = _t.first);\n } }, inputs: { operators: \"operators\", defaultOperator: \"defaultOperator\", column: \"column\", filter: \"filter\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature, ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], FilterInputWrapperComponent.prototype, \"operators\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnComponent)\n], FilterInputWrapperComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], FilterInputWrapperComponent.prototype, \"filter\", void 0);\n__decorate([\n ContentChild(FilterInputDirective, { static: false }),\n __metadata(\"design:type\", FilterInputDirective)\n], FilterInputWrapperComponent.prototype, \"input\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], FilterInputWrapperComponent.prototype, \"defaultOperator\", null);\n\nconst EMPTY_FILTER_OPERATORS = ['isnull', 'isnotnull', 'isempty', 'isnotempty'];\n/**\n * @hidden\n */\nlet FilterCellWrapperComponent = class 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.ɵfac = function FilterCellWrapperComponent_Factory(t) { return new (t || FilterCellWrapperComponent)(ɵngcc0.ɵɵdirectiveInject(FilterService)); };\nFilterCellWrapperComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: FilterCellWrapperComponent, selectors: [[\"kendo-treelist-filter-wrapper-cell\"]], hostVars: 4, hostBindings: function FilterCellWrapperComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-filtercell-wrapper\", ctx.hostClasses)(\"k-filtercell\", ctx.overrideBaseClasses);\n } }, inputs: { showOperators: \"showOperators\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c108, decls: 2, vars: 4, consts: [[3, \"showOperators\", \"operators\", \"showButton\", \"value\", \"clear\", \"valueChange\"]], template: function FilterCellWrapperComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵprojection(0);\n ɵngcc0.ɵɵelementStart(1, \"kendo-treelist-filter-cell-operators\", 0);\n ɵngcc0.ɵɵlistener(\"clear\", function FilterCellWrapperComponent_Template_kendo_treelist_filter_cell_operators_clear_1_listener() { return ctx.onClear(); })(\"valueChange\", function FilterCellWrapperComponent_Template_kendo_treelist_filter_cell_operators_valueChange_1_listener($event) { return ctx.currentOperator = $event; });\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"showOperators\", ctx.showOperators)(\"operators\", ctx.operators)(\"showButton\", ctx.showButton)(\"value\", ctx.currentOperator);\n } }, directives: function () { return [FilterCellOperatorsComponent]; }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-filtercell-wrapper'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], FilterCellWrapperComponent.prototype, \"hostClasses\", null);\n__decorate([\n HostBinding('class.k-filtercell'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], FilterCellWrapperComponent.prototype, \"overrideBaseClasses\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], FilterCellWrapperComponent.prototype, \"showOperators\", void 0);\nFilterCellWrapperComponent = __decorate([ __metadata(\"design:paramtypes\", [FilterService])\n], FilterCellWrapperComponent);\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.ɵfac = function StringFilterComponent_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nStringFilterComponent.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: StringFilterComponent, inputs: { operator: \"operator\", column: \"column\", filter: \"filter\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnComponent)\n], StringFilterComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], StringFilterComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], StringFilterComponent.prototype, \"operator\", void 0);\n\n/**\n * Represents a string-filter cell component\n * ([see example]({% slug builtinfiltertemplate_treelist %}#toc-configuration-components-for-filter-templates)).\n *\n * @example\n *\n * ```html-no-run\n * \n * \n * \n * \n * \n * \n * ```\n */\nlet StringFilterCellComponent = class 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.ɵfac = function StringFilterCellComponent_Factory(t) { return new (t || StringFilterCellComponent)(ɵngcc0.ɵɵdirectiveInject(FilterService), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nStringFilterCellComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: StringFilterCellComponent, selectors: [[\"kendo-treelist-string-filter-cell\"]], inputs: { filterDelay: \"filterDelay\", showOperators: \"showOperators\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 2, vars: 7, consts: [[3, \"column\", \"filter\", \"operators\", \"defaultOperator\", \"showOperators\"], [\"kendoTextBox\", \"\", \"kendoTreeListFocusable\", \"\", \"kendoFilterInput\", \"\", 3, \"filterDelay\", \"ngModel\"]], template: function StringFilterCellComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-treelist-filter-wrapper-cell\", 0);\n ɵngcc0.ɵɵelement(1, \"input\", 1);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"column\", ctx.column)(\"filter\", ctx.filter)(\"operators\", ctx.operators)(\"defaultOperator\", ctx.operator)(\"showOperators\", ctx.showOperators);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"filterDelay\", ctx.filterDelay)(\"ngModel\", ctx.currentFilter == null ? null : ctx.currentFilter.value);\n } }, directives: [FilterCellWrapperComponent, ɵngcc6.TextBoxDirective, ɵngcc7.DefaultValueAccessor, FocusableDirective, FilterInputDirective, ɵngcc7.NgControlStatus, ɵngcc7.NgModel], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], StringFilterCellComponent.prototype, \"filterDelay\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], StringFilterCellComponent.prototype, \"showOperators\", void 0);\nStringFilterCellComponent = __decorate([ __metadata(\"design:paramtypes\", [FilterService,\n LocalizationService])\n], StringFilterCellComponent);\n\n/**\n * Represents a component which accommodates the filter operators.\n */\nlet FilterCellOperatorsComponent = class 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.ɵfac = function FilterCellOperatorsComponent_Factory(t) { return new (t || FilterCellOperatorsComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nFilterCellOperatorsComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: FilterCellOperatorsComponent, selectors: [[\"kendo-treelist-filter-cell-operators\"]], viewQuery: function FilterCellOperatorsComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c109, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.dropdown = _t.first);\n } }, hostVars: 2, hostBindings: function FilterCellOperatorsComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-filtercell-operator\", ctx.hostClasses);\n } }, inputs: { operators: \"operators\", showOperators: \"showOperators\", showButton: \"showButton\", value: \"value\" }, outputs: { valueChange: \"valueChange\", clear: \"clear\" }, decls: 2, vars: 2, consts: [[\"kendoTreeListFocusable\", \"\", \"class\", \"k-dropdown-operator\", \"iconClass\", \"k-i-filter\", \"textField\", \"text\", \"valueField\", \"value\", 3, \"data\", \"value\", \"valuePrimitive\", \"popupSettings\", \"valueChange\", \"keydown\", 4, \"ngIf\"], [\"type\", \"button\", \"kendoTreeListFocusable\", \"\", \"class\", \"k-button k-button-solid-base k-button-solid k-button-md k-rounded-md k-button-rectangle k-icon-button\", 3, \"title\", \"click\", \"keydown\", 4, \"ngIf\"], [\"kendoTreeListFocusable\", \"\", \"iconClass\", \"k-i-filter\", \"textField\", \"text\", \"valueField\", \"value\", 1, \"k-dropdown-operator\", 3, \"data\", \"value\", \"valuePrimitive\", \"popupSettings\", \"valueChange\", \"keydown\"], [\"dropdown\", \"\"], [\"type\", \"button\", \"kendoTreeListFocusable\", \"\", 1, \"k-button\", \"k-button-solid-base\", \"k-button-solid\", \"k-button-md\", \"k-rounded-md\", \"k-button-rectangle\", \"k-icon-button\", 3, \"title\", \"click\", \"keydown\"], [1, \"k-icon\", \"k-button-icon\", \"k-i-filter-clear\"]], template: function FilterCellOperatorsComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, FilterCellOperatorsComponent_kendo_dropdownlist_0_Template, 2, 5, \"kendo-dropdownlist\", 0);\n ɵngcc0.ɵɵtemplate(1, FilterCellOperatorsComponent_button_1_Template, 2, 1, \"button\", 1);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showOperators);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showButton);\n } }, directives: [ɵngcc4.NgIf, ɵngcc8.DropDownListComponent, FocusableDirective], encapsulation: 2 });\n__decorate([\n HostBinding('class.k-filtercell-operator'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], FilterCellOperatorsComponent.prototype, \"hostClasses\", null);\n__decorate([\n ViewChild('dropdown', { static: false }),\n __metadata(\"design:type\", DropDownListComponent)\n], FilterCellOperatorsComponent.prototype, \"dropdown\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], FilterCellOperatorsComponent.prototype, \"operators\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], FilterCellOperatorsComponent.prototype, \"showButton\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], FilterCellOperatorsComponent.prototype, \"showOperators\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FilterCellOperatorsComponent.prototype, \"value\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], FilterCellOperatorsComponent.prototype, \"valueChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], FilterCellOperatorsComponent.prototype, \"clear\", void 0);\nFilterCellOperatorsComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], FilterCellOperatorsComponent);\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 */\nlet AutoCompleteFilterCellComponent = class 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.ɵfac = function AutoCompleteFilterCellComponent_Factory(t) { return new (t || AutoCompleteFilterCellComponent)(ɵngcc0.ɵɵdirectiveInject(FilterService), ɵngcc0.ɵɵdirectiveInject(ColumnComponent), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nAutoCompleteFilterCellComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: AutoCompleteFilterCellComponent, selectors: [[\"kendo-treelist-autocomplete-filter-cell\"]], inputs: { showOperators: \"showOperators\", column: \"column\", valueField: \"valueField\", filter: \"filter\", data: \"data\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 2, vars: 7, consts: [[3, \"column\", \"filter\", \"operators\", \"showOperators\"], [\"kendoFilterInput\", \"\", 3, \"data\", \"valueField\", \"value\"]], template: function AutoCompleteFilterCellComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-treelist-filter-wrapper-cell\", 0);\n ɵngcc0.ɵɵelement(1, \"kendo-autocomplete\", 1);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"column\", ctx.column)(\"filter\", ctx.filter)(\"operators\", ctx.operators)(\"showOperators\", ctx.showOperators);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"data\", ctx.data)(\"valueField\", ctx.valueField)(\"value\", ctx.currentFilter == null ? null : ctx.currentFilter.value);\n } }, directives: [FilterCellWrapperComponent, ɵngcc8.AutoCompleteComponent, FilterInputDirective], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], AutoCompleteFilterCellComponent.prototype, \"showOperators\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnComponent)\n], AutoCompleteFilterCellComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AutoCompleteFilterCellComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], AutoCompleteFilterCellComponent.prototype, \"data\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], AutoCompleteFilterCellComponent.prototype, \"valueField\", null);\nAutoCompleteFilterCellComponent = __decorate([ __metadata(\"design:paramtypes\", [FilterService,\n ColumnComponent,\n LocalizationService])\n], AutoCompleteFilterCellComponent);\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.ɵfac = function BooleanFilterComponent_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nBooleanFilterComponent.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: BooleanFilterComponent, hostVars: 2, hostBindings: function BooleanFilterComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-filtercell-boolean\", ctx.hostClasses);\n } }, inputs: { column: \"column\", filter: \"filter\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n HostBinding('class.k-filtercell-boolean'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], BooleanFilterComponent.prototype, \"hostClasses\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnComponent)\n], BooleanFilterComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], BooleanFilterComponent.prototype, \"filter\", void 0);\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 */\nlet BooleanFilterCellComponent = class 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.ɵfac = function BooleanFilterCellComponent_Factory(t) { return new (t || BooleanFilterCellComponent)(ɵngcc0.ɵɵdirectiveInject(FilterService), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nBooleanFilterCellComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: BooleanFilterCellComponent, selectors: [[\"kendo-treelist-boolean-filter-cell\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 2, vars: 10, consts: [[3, \"column\", \"filter\", \"showOperators\", \"defaultOperator\"], [\"kendoFilterInput\", \"\", \"textField\", \"text\", \"valueField\", \"value\", 3, \"defaultItem\", \"data\", \"popupSettings\", \"valuePrimitive\", \"value\"]], template: function BooleanFilterCellComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-treelist-filter-wrapper-cell\", 0);\n ɵngcc0.ɵɵelement(1, \"kendo-dropdownlist\", 1);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"column\", ctx.column)(\"filter\", ctx.filter)(\"showOperators\", false)(\"defaultOperator\", ctx.operator);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"defaultItem\", ctx.defaultItem)(\"data\", ctx.items)(\"popupSettings\", ɵngcc0.ɵɵpureFunction0(9, _c110))(\"valuePrimitive\", true)(\"value\", ctx.currentFilter == null ? null : ctx.currentFilter.value);\n } }, directives: [FilterCellWrapperComponent, ɵngcc8.DropDownListComponent, FilterInputDirective], encapsulation: 2 });\nBooleanFilterCellComponent = __decorate([ __metadata(\"design:paramtypes\", [FilterService,\n LocalizationService,\n ChangeDetectorRef])\n], BooleanFilterCellComponent);\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.ɵfac = function DateFilterComponent_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nDateFilterComponent.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DateFilterComponent, inputs: { operator: \"operator\", activeView: \"activeView\", bottomView: \"bottomView\", topView: \"topView\", weekNumber: \"weekNumber\", format: \"format\", column: \"column\", filter: \"filter\", min: \"min\", max: \"max\", formatPlaceholder: \"formatPlaceholder\", placeholder: \"placeholder\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnComponent)\n], DateFilterComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DateFilterComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateFilterComponent.prototype, \"operator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], DateFilterComponent.prototype, \"format\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], DateFilterComponent.prototype, \"min\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], DateFilterComponent.prototype, \"max\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DateFilterComponent.prototype, \"formatPlaceholder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateFilterComponent.prototype, \"placeholder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateFilterComponent.prototype, \"activeView\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateFilterComponent.prototype, \"bottomView\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateFilterComponent.prototype, \"topView\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DateFilterComponent.prototype, \"weekNumber\", void 0);\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 */\nlet DateFilterCellComponent = class 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.ɵfac = function DateFilterCellComponent_Factory(t) { return new (t || DateFilterCellComponent)(ɵngcc0.ɵɵdirectiveInject(FilterService), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nDateFilterCellComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DateFilterCellComponent, selectors: [[\"kendo-treelist-date-filter-cell\"]], inputs: { showOperators: \"showOperators\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 2, vars: 15, consts: [[3, \"column\", \"filter\", \"operators\", \"defaultOperator\", \"showOperators\"], [\"kendoFilterInput\", \"\", 3, \"value\", \"format\", \"formatPlaceholder\", \"placeholder\", \"activeView\", \"bottomView\", \"topView\", \"min\", \"max\", \"weekNumber\"]], template: function DateFilterCellComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-treelist-filter-wrapper-cell\", 0);\n ɵngcc0.ɵɵelement(1, \"kendo-datepicker\", 1);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"column\", ctx.column)(\"filter\", ctx.filter)(\"operators\", ctx.operators)(\"defaultOperator\", ctx.operator)(\"showOperators\", ctx.showOperators);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"value\", ctx.currentFilter == null ? null : ctx.currentFilter.value)(\"format\", ctx.format)(\"formatPlaceholder\", ctx.formatPlaceholder)(\"placeholder\", ctx.placeholder)(\"activeView\", ctx.activeView)(\"bottomView\", ctx.bottomView)(\"topView\", ctx.topView)(\"min\", ctx.min)(\"max\", ctx.max)(\"weekNumber\", ctx.weekNumber);\n } }, directives: [FilterCellWrapperComponent, ɵngcc9.DatePickerComponent, FilterInputDirective], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DateFilterCellComponent.prototype, \"showOperators\", void 0);\nDateFilterCellComponent = __decorate([ __metadata(\"design:paramtypes\", [FilterService,\n LocalizationService])\n], DateFilterCellComponent);\n\nvar CheckboxColumnComponent_1;\n/**\n * Represents the checkbox for selecting rows in the TreeList.\n */\nlet CheckboxColumnComponent = CheckboxColumnComponent_1 = class 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.ɵfac = function CheckboxColumnComponent_Factory(t) { return new (t || CheckboxColumnComponent)(ɵngcc0.ɵɵdirectiveInject(ColumnBase$1, 13)); };\nCheckboxColumnComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CheckboxColumnComponent, selectors: [[\"kendo-treelist-checkbox-column\"]], contentQueries: function CheckboxColumnComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, CellTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.template = _t.first);\n } }, inputs: { showSelectAll: \"showSelectAll\", checkChildren: \"checkChildren\", expandable: \"expandable\" }, features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: ColumnBase$1,\n useExisting: forwardRef(() => CheckboxColumnComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function CheckboxColumnComponent_Template(rf, ctx) { }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], CheckboxColumnComponent.prototype, \"showSelectAll\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], CheckboxColumnComponent.prototype, \"checkChildren\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], CheckboxColumnComponent.prototype, \"expandable\", void 0);\n__decorate([\n ContentChild(CellTemplateDirective, { static: false }),\n __metadata(\"design:type\", CellTemplateDirective)\n], CheckboxColumnComponent.prototype, \"template\", void 0);\nCheckboxColumnComponent = CheckboxColumnComponent_1 = __decorate([ __param(0, SkipSelf()), __param(0, Host()), __param(0, Optional()),\n __metadata(\"design:paramtypes\", [ColumnBase$1])\n], CheckboxColumnComponent);\n\n/**\n * @hidden\n */\nlet ColGroupComponent = class ColGroupComponent {\n /**\n * @hidden\n */\n constructor() {\n this.columns = [];\n }\n get columnsToRender() {\n return columnsToRender(this.columns);\n }\n trackBy(index, _item) {\n return index;\n }\n};\nColGroupComponent.ɵfac = function ColGroupComponent_Factory(t) { return new (t || ColGroupComponent)(); };\nColGroupComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColGroupComponent, selectors: [[\"\", \"kendoTreeListColGroup\", \"\"]], inputs: { columns: \"columns\" }, attrs: _c111, decls: 1, vars: 2, consts: [[3, \"width\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"]], template: function ColGroupComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ColGroupComponent_col_0_Template, 1, 2, \"col\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.columnsToRender)(\"ngForTrackBy\", ctx.trackBy);\n } }, directives: [ɵngcc4.NgForOf], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], ColGroupComponent.prototype, \"columns\", void 0);\n\n/**\n * @hidden\n */\nlet LoadingComponent = class 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.ɵfac = function LoadingComponent_Factory(t) { return new (t || LoadingComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nLoadingComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: LoadingComponent, selectors: [[\"\", \"kendoTreeListLoading\", \"\"]], hostVars: 2, hostBindings: function LoadingComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-loading-mask\", ctx.hostClass);\n } }, attrs: _c112, decls: 4, vars: 1, consts: [[1, \"k-loading-text\"], [1, \"k-loading-image\"], [1, \"k-loading-color\"]], template: function LoadingComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 0);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelement(2, \"div\", 1)(3, \"div\", 2);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx.loadingText);\n } }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-loading-mask'),\n __metadata(\"design:type\", Boolean)\n], LoadingComponent.prototype, \"hostClass\", void 0);\nLoadingComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], LoadingComponent);\n\n/**\n * @hidden\n */\nlet ResizableContainerDirective = class ResizableContainerDirective {\n constructor(el, renderer, resizeService, treelist) {\n this.el = el;\n this.renderer = renderer;\n this.resizeService = resizeService;\n this.treelist = treelist;\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 kendoTreeListResizableContainer(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.treelist && this.treelist.wrapper) {\n const containerElement = this.treelist.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.ɵfac = function ResizableContainerDirective_Factory(t) { return new (t || ResizableContainerDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ResizeService), ɵngcc0.ɵɵdirectiveInject(TreeListComponent, 8)); };\nResizableContainerDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ResizableContainerDirective, selectors: [[\"\", \"kendoTreeListResizableContainer\", \"\"]], inputs: { lockedWidth: \"lockedWidth\", kendoTreeListResizableContainer: \"kendoTreeListResizableContainer\" } });\n__decorate([\n Input('lockedWidth'),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n], ResizableContainerDirective.prototype, \"lockedWidth\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], ResizableContainerDirective.prototype, \"kendoTreeListResizableContainer\", null);\nResizableContainerDirective = __decorate([ __param(3, Optional()),\n __metadata(\"design:paramtypes\", [ElementRef,\n Renderer2,\n ResizeService,\n TreeListComponent])\n], ResizableContainerDirective);\n\n/**\n * @hidden\n */\nlet TemplateContextDirective = class 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.ɵfac = function TemplateContextDirective_Factory(t) { return new (t || TemplateContextDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef)); };\nTemplateContextDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: TemplateContextDirective, selectors: [[\"\", \"templateContext\", \"\"]], inputs: { templateContext: \"templateContext\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], TemplateContextDirective.prototype, \"templateContext\", null);\nTemplateContextDirective = __decorate([ __metadata(\"design:paramtypes\", [ViewContainerRef])\n], TemplateContextDirective);\n\nlet id = 0;\nfunction nextId() {\n return id++;\n}\n/**\n * @hidden\n */\nlet LogicalCellDirective = class LogicalCellDirective {\n constructor(focusGroup, element, columnInfoService, idService, navigationService, renderer, zone) {\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.logicalSlaveCell = false;\n this.colSpan = 1;\n this.rowSpan = 1;\n this.dataRowIndex = -1;\n this.expandable = 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 this.registerNoChanges();\n }\n ngOnChanges(changes) {\n if (!this.navigationService.enabled) {\n return;\n }\n if (this.logicalColIndex === -1) {\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.ɵfac = function LogicalCellDirective_Factory(t) { return new (t || LogicalCellDirective)(ɵngcc0.ɵɵdirectiveInject(FocusGroup), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ColumnInfoService), ɵngcc0.ɵɵdirectiveInject(IdService), ɵngcc0.ɵɵdirectiveInject(NavigationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nLogicalCellDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LogicalCellDirective, selectors: [[\"\", \"kendoTreeListLogicalCell\", \"\"]], hostVars: 2, hostBindings: function LogicalCellDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"id\", ctx.id)(\"aria-colindex\", ctx.ariaColIndex);\n } }, inputs: { logicalSlaveCell: \"logicalSlaveCell\", colSpan: \"colSpan\", rowSpan: \"rowSpan\", dataRowIndex: \"dataRowIndex\", expandable: \"expandable\", logicalColIndex: \"logicalColIndex\", logicalRowIndex: \"logicalRowIndex\", column: \"column\", colIndex: \"colIndex\", dataItem: \"dataItem\" }, features: [ɵngcc0.ɵɵProvidersFeature([{\n provide: FocusGroup,\n deps: [FocusRoot],\n useClass: FocusGroup\n }]), ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], LogicalCellDirective.prototype, \"logicalColIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], LogicalCellDirective.prototype, \"logicalRowIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], LogicalCellDirective.prototype, \"logicalSlaveCell\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], LogicalCellDirective.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], LogicalCellDirective.prototype, \"colIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], LogicalCellDirective.prototype, \"colSpan\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], LogicalCellDirective.prototype, \"rowSpan\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], LogicalCellDirective.prototype, \"dataRowIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], LogicalCellDirective.prototype, \"dataItem\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], LogicalCellDirective.prototype, \"expandable\", void 0);\n__decorate([\n HostBinding('attr.id'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], LogicalCellDirective.prototype, \"id\", null);\n__decorate([\n HostBinding('attr.aria-colindex'),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [])\n], LogicalCellDirective.prototype, \"ariaColIndex\", null);\nLogicalCellDirective = __decorate([ __metadata(\"design:paramtypes\", [FocusGroup,\n ElementRef,\n ColumnInfoService,\n IdService,\n NavigationService,\n Renderer2,\n NgZone])\n], LogicalCellDirective);\n\nlet id$1 = 0;\nfunction nextId$1() {\n return id$1++;\n}\n/**\n * @hidden\n */\nlet LogicalRowDirective = class 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.isNew = false;\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 const isNewChange = changes.isNew;\n if (indexChange || logicalSlaveRowChange || isNewChange) {\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.ɵfac = function LogicalRowDirective_Factory(t) { return new (t || LogicalRowDirective)(ɵngcc0.ɵɵdirectiveInject(IdService), ɵngcc0.ɵɵdirectiveInject(NavigationService)); };\nLogicalRowDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LogicalRowDirective, selectors: [[\"\", \"kendoTreeListLogicalRow\", \"\"]], hostVars: 3, hostBindings: function LogicalRowDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"role\", ctx.hostRole)(\"aria-rowindex\", ctx.ariaRowIndex)(\"aria-owns\", ctx.ariaOwns);\n } }, inputs: { logicalSlaveRow: \"logicalSlaveRow\", logicalSlaveCellsCount: \"logicalSlaveCellsCount\", dataRowIndex: \"dataRowIndex\", isNew: \"isNew\", logicalRowIndex: \"logicalRowIndex\", logicalCellsCount: \"logicalCellsCount\", dataItem: \"dataItem\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], LogicalRowDirective.prototype, \"logicalRowIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], LogicalRowDirective.prototype, \"logicalSlaveRow\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], LogicalRowDirective.prototype, \"logicalCellsCount\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], LogicalRowDirective.prototype, \"logicalSlaveCellsCount\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], LogicalRowDirective.prototype, \"dataRowIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], LogicalRowDirective.prototype, \"dataItem\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], LogicalRowDirective.prototype, \"isNew\", void 0);\n__decorate([\n HostBinding('attr.role'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], LogicalRowDirective.prototype, \"hostRole\", null);\n__decorate([\n HostBinding('attr.aria-rowindex'),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [])\n], LogicalRowDirective.prototype, \"ariaRowIndex\", null);\n__decorate([\n HostBinding('attr.aria-owns'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], LogicalRowDirective.prototype, \"ariaOwns\", null);\nLogicalRowDirective = __decorate([ __metadata(\"design:paramtypes\", [IdService,\n NavigationService])\n], LogicalRowDirective);\n\nconst FORMAT_REGEX = /\\{\\d+:?/;\n/**\n * @hidden\n */\nlet FieldAccessorPipe = class 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.ɵfac = function FieldAccessorPipe_Factory(t) { return new (t || FieldAccessorPipe)(ɵngcc0.ɵɵdirectiveInject(ɵngcc10.IntlService, 16)); };\nFieldAccessorPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"valueOf\", type: FieldAccessorPipe, pure: false });\nFieldAccessorPipe = __decorate([ __metadata(\"design:paramtypes\", [IntlService])\n], FieldAccessorPipe);\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 */\nlet TableDirective = class 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 return Math.max(header, data);\n }\n};\nTableDirective.ɵfac = function TableDirective_Factory(t) { return new (t || TableDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ColumnResizingService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nTableDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: TableDirective, selectors: [[\"table\"]], hostVars: 2, hostBindings: function TableDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"min-width\", ctx.minWidth);\n } }, inputs: { locked: \"locked\", virtualColumns: \"virtualColumns\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TableDirective.prototype, \"locked\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TableDirective.prototype, \"virtualColumns\", void 0);\n__decorate([\n HostBinding('style.min-width'),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [])\n], TableDirective.prototype, \"minWidth\", null);\nTableDirective = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n Renderer2,\n ColumnResizingService,\n NgZone,\n ChangeDetectorRef])\n], TableDirective);\n\nconst exportedModules = [\n ColumnComponent,\n ColumnGroupComponent,\n LogicalCellDirective,\n LogicalRowDirective,\n FocusableDirective,\n ColGroupComponent,\n ResizableContainerDirective,\n TemplateContextDirective,\n FieldAccessorPipe,\n SpanColumnComponent,\n TableDirective,\n LoadingComponent,\n CheckboxColumnComponent\n];\n/**\n * @hidden\n */\nlet SharedModule = class SharedModule {\n static exports() {\n return [\n ColumnComponent,\n SpanColumnComponent,\n CheckboxColumnComponent,\n ColumnGroupComponent,\n FocusableDirective\n ];\n }\n};\nSharedModule.ɵfac = function SharedModule_Factory(t) { return new (t || SharedModule)(); };\nSharedModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: SharedModule });\nSharedModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule], DraggableModule] });\n\nvar ContainsFilterOperatorComponent_1;\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_treelist %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)\n */\nlet ContainsFilterOperatorComponent = ContainsFilterOperatorComponent_1 = class ContainsFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"contains\", localization); }\n};\nContainsFilterOperatorComponent.ɵfac = function ContainsFilterOperatorComponent_Factory(t) { return new (t || ContainsFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nContainsFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ContainsFilterOperatorComponent, selectors: [[\"kendo-treelist-filter-contains-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => ContainsFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function ContainsFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nContainsFilterOperatorComponent = ContainsFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], ContainsFilterOperatorComponent);\n\nvar DoesNotContainFilterOperatorComponent_1;\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_treelist %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)\n */\nlet DoesNotContainFilterOperatorComponent = DoesNotContainFilterOperatorComponent_1 = class DoesNotContainFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"doesnotcontain\", localization); }\n};\nDoesNotContainFilterOperatorComponent.ɵfac = function DoesNotContainFilterOperatorComponent_Factory(t) { return new (t || DoesNotContainFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nDoesNotContainFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DoesNotContainFilterOperatorComponent, selectors: [[\"kendo-treelist-filter-not-contains-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => DoesNotContainFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DoesNotContainFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nDoesNotContainFilterOperatorComponent = DoesNotContainFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], DoesNotContainFilterOperatorComponent);\n\nvar EndsWithFilterOperatorComponent_1;\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_treelist %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)\n */\nlet EndsWithFilterOperatorComponent = EndsWithFilterOperatorComponent_1 = class EndsWithFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"endswith\", localization); }\n};\nEndsWithFilterOperatorComponent.ɵfac = function EndsWithFilterOperatorComponent_Factory(t) { return new (t || EndsWithFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nEndsWithFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: EndsWithFilterOperatorComponent, selectors: [[\"kendo-treelist-filter-endswith-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => EndsWithFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function EndsWithFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nEndsWithFilterOperatorComponent = EndsWithFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], EndsWithFilterOperatorComponent);\n\nvar EqualFilterOperatorComponent_1;\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_treelist %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)\n */\nlet EqualFilterOperatorComponent = EqualFilterOperatorComponent_1 = class EqualFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"eq\", localization); }\n};\nEqualFilterOperatorComponent.ɵfac = function EqualFilterOperatorComponent_Factory(t) { return new (t || EqualFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nEqualFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: EqualFilterOperatorComponent, selectors: [[\"kendo-treelist-filter-eq-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => EqualFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function EqualFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nEqualFilterOperatorComponent = EqualFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], EqualFilterOperatorComponent);\n\nvar IsEmptyFilterOperatorComponent_1;\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_treelist %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)\n */\nlet IsEmptyFilterOperatorComponent = IsEmptyFilterOperatorComponent_1 = class IsEmptyFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"isempty\", localization); }\n};\nIsEmptyFilterOperatorComponent.ɵfac = function IsEmptyFilterOperatorComponent_Factory(t) { return new (t || IsEmptyFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nIsEmptyFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: IsEmptyFilterOperatorComponent, selectors: [[\"kendo-treelist-filter-isempty-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => IsEmptyFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function IsEmptyFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nIsEmptyFilterOperatorComponent = IsEmptyFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], IsEmptyFilterOperatorComponent);\n\nvar IsNotEmptyFilterOperatorComponent_1;\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_treelist %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)\n */\nlet IsNotEmptyFilterOperatorComponent = IsNotEmptyFilterOperatorComponent_1 = class IsNotEmptyFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"isnotempty\", localization); }\n};\nIsNotEmptyFilterOperatorComponent.ɵfac = function IsNotEmptyFilterOperatorComponent_Factory(t) { return new (t || IsNotEmptyFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nIsNotEmptyFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: IsNotEmptyFilterOperatorComponent, selectors: [[\"kendo-treelist-filter-isnotempty-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => IsNotEmptyFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function IsNotEmptyFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nIsNotEmptyFilterOperatorComponent = IsNotEmptyFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], IsNotEmptyFilterOperatorComponent);\n\nvar IsNotNullFilterOperatorComponent_1;\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_treelist %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)\n */\nlet IsNotNullFilterOperatorComponent = IsNotNullFilterOperatorComponent_1 = class IsNotNullFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"isnotnull\", localization); }\n};\nIsNotNullFilterOperatorComponent.ɵfac = function IsNotNullFilterOperatorComponent_Factory(t) { return new (t || IsNotNullFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nIsNotNullFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: IsNotNullFilterOperatorComponent, selectors: [[\"kendo-treelist-filter-isnotnull-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => IsNotNullFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function IsNotNullFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nIsNotNullFilterOperatorComponent = IsNotNullFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], IsNotNullFilterOperatorComponent);\n\nvar IsNullFilterOperatorComponent_1;\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_treelist %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)\n */\nlet IsNullFilterOperatorComponent = IsNullFilterOperatorComponent_1 = class IsNullFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"isnull\", localization); }\n};\nIsNullFilterOperatorComponent.ɵfac = function IsNullFilterOperatorComponent_Factory(t) { return new (t || IsNullFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nIsNullFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: IsNullFilterOperatorComponent, selectors: [[\"kendo-treelist-filter-isnull-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => IsNullFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function IsNullFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nIsNullFilterOperatorComponent = IsNullFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], IsNullFilterOperatorComponent);\n\nvar NotEqualFilterOperatorComponent_1;\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_treelist %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)\n */\nlet NotEqualFilterOperatorComponent = NotEqualFilterOperatorComponent_1 = class NotEqualFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"neq\", localization); }\n};\nNotEqualFilterOperatorComponent.ɵfac = function NotEqualFilterOperatorComponent_Factory(t) { return new (t || NotEqualFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nNotEqualFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NotEqualFilterOperatorComponent, selectors: [[\"kendo-treelist-filter-neq-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => NotEqualFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function NotEqualFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nNotEqualFilterOperatorComponent = NotEqualFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], NotEqualFilterOperatorComponent);\n\nvar StartsWithFilterOperatorComponent_1;\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_treelist %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)\n */\nlet StartsWithFilterOperatorComponent = StartsWithFilterOperatorComponent_1 = class StartsWithFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"startswith\", localization); }\n};\nStartsWithFilterOperatorComponent.ɵfac = function StartsWithFilterOperatorComponent_Factory(t) { return new (t || StartsWithFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nStartsWithFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: StartsWithFilterOperatorComponent, selectors: [[\"kendo-treelist-filter-startswith-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => StartsWithFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function StartsWithFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nStartsWithFilterOperatorComponent = StartsWithFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], StartsWithFilterOperatorComponent);\n\nvar GreaterFilterOperatorComponent_1;\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_treelist %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)\n */\nlet GreaterFilterOperatorComponent = GreaterFilterOperatorComponent_1 = class GreaterFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"gt\", localization); }\n};\nGreaterFilterOperatorComponent.ɵfac = function GreaterFilterOperatorComponent_Factory(t) { return new (t || GreaterFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nGreaterFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: GreaterFilterOperatorComponent, selectors: [[\"kendo-treelist-filter-gt-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => GreaterFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function GreaterFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nGreaterFilterOperatorComponent = GreaterFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], GreaterFilterOperatorComponent);\n\nvar GreaterOrEqualToFilterOperatorComponent_1;\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_treelist %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)\n */\nlet GreaterOrEqualToFilterOperatorComponent = GreaterOrEqualToFilterOperatorComponent_1 = class GreaterOrEqualToFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"gte\", localization); }\n};\nGreaterOrEqualToFilterOperatorComponent.ɵfac = function GreaterOrEqualToFilterOperatorComponent_Factory(t) { return new (t || GreaterOrEqualToFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nGreaterOrEqualToFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: GreaterOrEqualToFilterOperatorComponent, selectors: [[\"kendo-treelist-filter-gte-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => GreaterOrEqualToFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function GreaterOrEqualToFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nGreaterOrEqualToFilterOperatorComponent = GreaterOrEqualToFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], GreaterOrEqualToFilterOperatorComponent);\n\nvar LessFilterOperatorComponent_1;\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_treelist %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)\n */\nlet LessFilterOperatorComponent = LessFilterOperatorComponent_1 = class LessFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"lt\", localization); }\n};\nLessFilterOperatorComponent.ɵfac = function LessFilterOperatorComponent_Factory(t) { return new (t || LessFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nLessFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: LessFilterOperatorComponent, selectors: [[\"kendo-treelist-filter-lt-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => LessFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function LessFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nLessFilterOperatorComponent = LessFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], LessFilterOperatorComponent);\n\nvar LessOrEqualToFilterOperatorComponent_1;\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_treelist %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)\n */\nlet LessOrEqualToFilterOperatorComponent = LessOrEqualToFilterOperatorComponent_1 = class LessOrEqualToFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) { super(\"lte\", localization); }\n};\nLessOrEqualToFilterOperatorComponent.ɵfac = function LessOrEqualToFilterOperatorComponent_Factory(t) { return new (t || LessOrEqualToFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nLessOrEqualToFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: LessOrEqualToFilterOperatorComponent, selectors: [[\"kendo-treelist-filter-lte-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => LessOrEqualToFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function LessOrEqualToFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nLessOrEqualToFilterOperatorComponent = LessOrEqualToFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], LessOrEqualToFilterOperatorComponent);\n\nvar AfterFilterOperatorComponent_1;\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_treelist %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)\n */\nlet AfterFilterOperatorComponent = AfterFilterOperatorComponent_1 = class 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.ɵfac = function AfterFilterOperatorComponent_Factory(t) { return new (t || AfterFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nAfterFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: AfterFilterOperatorComponent, selectors: [[\"kendo-treelist-filter-after-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => AfterFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function AfterFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nAfterFilterOperatorComponent = AfterFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], AfterFilterOperatorComponent);\n\nvar AfterEqFilterOperatorComponent_1;\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_treelist %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)\n */\nlet AfterEqFilterOperatorComponent = AfterEqFilterOperatorComponent_1 = class 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.ɵfac = function AfterEqFilterOperatorComponent_Factory(t) { return new (t || AfterEqFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nAfterEqFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: AfterEqFilterOperatorComponent, selectors: [[\"kendo-treelist-filter-after-eq-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => AfterEqFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function AfterEqFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nAfterEqFilterOperatorComponent = AfterEqFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], AfterEqFilterOperatorComponent);\n\nvar BeforeEqFilterOperatorComponent_1;\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_treelist %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)\n */\nlet BeforeEqFilterOperatorComponent = BeforeEqFilterOperatorComponent_1 = class 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.ɵfac = function BeforeEqFilterOperatorComponent_Factory(t) { return new (t || BeforeEqFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nBeforeEqFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: BeforeEqFilterOperatorComponent, selectors: [[\"kendo-treelist-filter-before-eq-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => BeforeEqFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function BeforeEqFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nBeforeEqFilterOperatorComponent = BeforeEqFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], BeforeEqFilterOperatorComponent);\n\nvar BeforeFilterOperatorComponent_1;\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_treelist %}#toc-setting-the-default-filter-operator)\n * * [Setting the order of the filter operators]({% slug builtinfiltertemplate_treelist %}#toc-setting-the-order-of-the-filter-operators)\n */\nlet BeforeFilterOperatorComponent = BeforeFilterOperatorComponent_1 = class 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.ɵfac = function BeforeFilterOperatorComponent_Factory(t) { return new (t || BeforeFilterOperatorComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nBeforeFilterOperatorComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: BeforeFilterOperatorComponent, selectors: [[\"kendo-treelist-filter-before-operator\"]], features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => BeforeFilterOperatorComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function BeforeFilterOperatorComponent_Template(rf, ctx) { }, encapsulation: 2 });\nBeforeFilterOperatorComponent = BeforeFilterOperatorComponent_1 = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], BeforeFilterOperatorComponent);\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 */\nlet SharedFilterModule = class SharedFilterModule {\n static exports() {\n return [\n ...FILTER_OPERATORS\n ];\n }\n};\nSharedFilterModule.ɵfac = function SharedFilterModule_Factory(t) { return new (t || SharedFilterModule)(); };\nSharedFilterModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: SharedFilterModule });\nSharedFilterModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[...importedModules], CommonModule,\n ReactiveFormsModule,\n FormsModule,\n DropDownListModule,\n AutoCompleteModule,\n InputsModule,\n DatePickerModule,\n PopupModule, SharedModule] });\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.ɵfac = function FilterHostDirective_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nFilterHostDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: FilterHostDirective, inputs: { column: \"column\", filter: \"filter\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnComponent)\n], FilterHostDirective.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], FilterHostDirective.prototype, \"filter\", void 0);\n\n/**\n * @hidden\n *\n * > List the following components in the TreeListModule 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 */\nlet FilterCellHostDirective = class 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.ɵfac = function FilterCellHostDirective_Factory(t) { return new (t || FilterCellHostDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ComponentFactoryResolver)); };\nFilterCellHostDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: FilterCellHostDirective, selectors: [[\"\", \"kendoFilterCellHost\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nFilterCellHostDirective = __decorate([ __metadata(\"design:paramtypes\", [ViewContainerRef,\n ComponentFactoryResolver])\n], FilterCellHostDirective);\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 */\nlet RowFilterModule = class 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.ɵfac = function RowFilterModule_Factory(t) { return new (t || RowFilterModule)(); };\nRowFilterModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: RowFilterModule });\nRowFilterModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[SharedFilterModule], SharedFilterModule] });\n\n/**\n * @hidden\n */\nconst normalizeSettings = ({ buttonCount = 10, info = true, type = 'numeric', pageSizes = false, previousNext = true, responsive = true }) => ({\n buttonCount,\n info,\n pageSizes: pageSizes === true ? [5, 10, 20] : pageSizes,\n previousNext,\n type,\n responsive\n});\n/**\n * @hidden\n */\nconst normalize = (settings) => normalizeSettings(settings === true ? {} : settings);\n\n/**\n * @hidden\n */\nconst RESPONSIVE_BREAKPOINT_MEDIUM = 600;\n/**\n * @hidden\n */\nconst RESPONSIVE_BREAKPOINT_LARGE = 768;\n\n/**\n * @hidden\n */\nlet PagerComponent = class PagerComponent {\n constructor(pagerContext, element, renderer) {\n this.pagerContext = pagerContext;\n this.element = element;\n this.renderer = renderer;\n this.allCount = 0;\n this.total = 0;\n this.skip = 1;\n this.pageChange = new EventEmitter();\n this.pagerWrapClass = true;\n this.gridPagerClass = true;\n this.widgetClass = true;\n this.settings = normalize({});\n this.subscriptions = new Subscription();\n this._templateContext = {};\n this.resizeHandler = () => {\n const element = this.element.nativeElement;\n if (this.template || !element) {\n return;\n }\n const width = element.offsetWidth;\n if (width < RESPONSIVE_BREAKPOINT_MEDIUM) {\n this.renderer.removeClass(element, 'k-pager-md');\n this.renderer.addClass(element, 'k-pager-sm');\n }\n else if (width >= RESPONSIVE_BREAKPOINT_MEDIUM && width < RESPONSIVE_BREAKPOINT_LARGE) {\n this.renderer.addClass(element, 'k-pager-md');\n this.renderer.removeClass(element, 'k-pager-sm');\n }\n else {\n this.clearResponsiveClasses();\n }\n };\n }\n set options(value) {\n this.settings = normalize(value);\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.allCount = this.allCount || 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 }\n ngOnChanges(changes) {\n if (anyChanged([\"pageSize\", \"skip\", \"total\", \"allCount\"], changes, false)) {\n this.pagerContext.notifyChanges({\n pageSize: this.pageSize,\n skip: this.skip,\n total: this.total,\n allCount: this.allCount || this.total\n });\n }\n if (changes.template) {\n changes.template.currentValue ? this.clearResponsiveClasses() : this.resizeHandler();\n }\n if (changes.options) {\n this.settings.responsive ? this.resizeHandler() : this.clearResponsiveClasses();\n }\n }\n ngOnDestroy() {\n if (this.subscriptions) {\n this.subscriptions.unsubscribe();\n }\n }\n changePage(event) {\n this.pageChange.emit(event);\n }\n clearResponsiveClasses() {\n const element = this.element.nativeElement;\n this.renderer.removeClass(element, 'k-pager-sm');\n this.renderer.removeClass(element, 'k-pager-md');\n }\n};\nPagerComponent.ɵfac = function PagerComponent_Factory(t) { return new (t || PagerComponent)(ɵngcc0.ɵɵdirectiveInject(PagerContextService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nPagerComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PagerComponent, selectors: [[\"kendo-treelist-pager\"]], hostVars: 6, hostBindings: function PagerComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-pager-wrap\", ctx.pagerWrapClass)(\"k-grid-pager\", ctx.gridPagerClass)(\"k-widget\", ctx.widgetClass);\n } }, inputs: { allCount: \"allCount\", total: \"total\", skip: \"skip\", options: \"options\", pageSize: \"pageSize\", template: \"template\" }, outputs: { pageChange: \"pageChange\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], decls: 3, vars: 3, consts: [[3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\", 4, \"ngIf\"], [4, \"ngIf\"], [3, \"resize\", 4, \"ngIf\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [3, \"buttonCount\", 4, \"ngIf\"], [3, \"pageSizes\", 4, \"ngIf\"], [3, \"buttonCount\"], [3, \"pageSizes\"], [3, \"resize\"]], template: function PagerComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, PagerComponent_ng_container_0_Template, 1, 2, \"ng-container\", 0);\n ɵngcc0.ɵɵtemplate(1, PagerComponent_ng_container_1_Template, 7, 6, \"ng-container\", 1);\n ɵngcc0.ɵɵtemplate(2, PagerComponent_kendo_resize_sensor_2_Template, 1, 0, \"kendo-resize-sensor\", 2);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.template == null ? null : ctx.template.templateRef);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !(ctx.template == null ? null : ctx.template.templateRef));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.settings.responsive);\n } }, directives: function () { return [ɵngcc4.NgIf, ɵngcc4.NgTemplateOutlet, PagerPrevButtonsComponent, PagerNumericButtonsComponent, PagerInputComponent, PagerNextButtonsComponent, PagerInfoComponent, PagerPageSizesComponent, ɵngcc5.ResizeSensorComponent]; }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], PagerComponent.prototype, \"allCount\", 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\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], PagerComponent.prototype, \"options\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", PagerTemplateDirective)\n], PagerComponent.prototype, \"template\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], PagerComponent.prototype, \"pageChange\", 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-grid-pager'),\n __metadata(\"design:type\", Boolean)\n], PagerComponent.prototype, \"gridPagerClass\", void 0);\n__decorate([\n HostBinding('class.k-widget'),\n __metadata(\"design:type\", Boolean)\n], PagerComponent.prototype, \"widgetClass\", void 0);\nPagerComponent = __decorate([ __metadata(\"design:paramtypes\", [PagerContextService,\n ElementRef,\n Renderer2])\n], PagerComponent);\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 this.allCount = this.pagerContext.allCount;\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}\nPagerElementComponent.ɵfac = function PagerElementComponent_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nPagerElementComponent.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: PagerElementComponent });\n\n/**\n * Displays buttons for navigating to the first and to the previous page ([see example]({% slug paging_treelist %}#toc-pager-templates)).\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.ɵfac = function PagerPrevButtonsComponent_Factory(t) { return new (t || PagerPrevButtonsComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(PagerContextService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nPagerPrevButtonsComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PagerPrevButtonsComponent, selectors: [[\"kendo-treelist-pager-prev-buttons\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 4, vars: 14, consts: [[\"href\", \"#\", \"tabindex\", \"-1\", 3, \"title\", \"ngClass\", \"click\"], [3, \"ngClass\"]], template: function PagerPrevButtonsComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"a\", 0);\n ɵngcc0.ɵɵlistener(\"click\", function PagerPrevButtonsComponent_Template_a_click_0_listener() { return ctx.currentPage !== 1 ? ctx.changePage(0) : false; });\n ɵngcc0.ɵɵelement(1, \"span\", 1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(2, \"a\", 0);\n ɵngcc0.ɵɵlistener(\"click\", function PagerPrevButtonsComponent_Template_a_click_2_listener() { return ctx.currentPage !== 1 ? ctx.changePage(ctx.currentPage - 2) : false; });\n ɵngcc0.ɵɵelement(3, \"span\", 1);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"title\", ctx.textFor(\"pagerFirstPage\"))(\"ngClass\", ɵngcc0.ɵɵpureFunction1(8, _c113, ctx.disabled));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction0(10, _c114));\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx.textFor(\"pagerFirstPage\"));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"title\", ctx.textFor(\"pagerPreviousPage\"))(\"ngClass\", ɵngcc0.ɵɵpureFunction1(11, _c115, ctx.disabled));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction0(13, _c116));\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx.textFor(\"pagerPreviousPage\"));\n } }, directives: [ɵngcc4.NgClass], encapsulation: 2, changeDetection: 0 });\nPagerPrevButtonsComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService,\n PagerContextService,\n ChangeDetectorRef])\n], PagerPrevButtonsComponent);\n\n/**\n * Displays buttons for navigating to the next and to the last page ([see example]({% slug paging_treelist %}#toc-pager-templates)).\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.ɵfac = function PagerNextButtonsComponent_Factory(t) { return new (t || PagerNextButtonsComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(PagerContextService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nPagerNextButtonsComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PagerNextButtonsComponent, selectors: [[\"kendo-treelist-pager-next-buttons\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 4, vars: 14, consts: [[\"href\", \"#\", \"tabindex\", \"-1\", 3, \"title\", \"ngClass\", \"click\"], [3, \"ngClass\"]], template: function PagerNextButtonsComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"a\", 0);\n ɵngcc0.ɵɵlistener(\"click\", function PagerNextButtonsComponent_Template_a_click_0_listener() { return ctx.currentPage !== ctx.totalPages ? ctx.changePage(ctx.currentPage) : false; });\n ɵngcc0.ɵɵelement(1, \"span\", 1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(2, \"a\", 0);\n ɵngcc0.ɵɵlistener(\"click\", function PagerNextButtonsComponent_Template_a_click_2_listener() { return ctx.currentPage !== ctx.totalPages ? ctx.changePage(ctx.totalPages - 1) : false; });\n ɵngcc0.ɵɵelement(3, \"span\", 1);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"title\", ctx.textFor(\"pagerNextPage\"))(\"ngClass\", ɵngcc0.ɵɵpureFunction1(8, _c115, ctx.disabled));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction0(10, _c117));\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx.textFor(\"pagerNextPage\"));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"title\", ctx.textFor(\"pagerLastPage\"))(\"ngClass\", ɵngcc0.ɵɵpureFunction1(11, _c118, ctx.disabled));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction0(13, _c119));\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx.textFor(\"pagerLastPage\"));\n } }, directives: [ɵngcc4.NgClass], encapsulation: 2, changeDetection: 0 });\nPagerNextButtonsComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService,\n PagerContextService,\n ChangeDetectorRef])\n], PagerNextButtonsComponent);\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('pagerPage');\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};\nPagerNumericButtonsComponent.ɵfac = function PagerNumericButtonsComponent_Factory(t) { return new (t || PagerNumericButtonsComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(PagerContextService)); };\nPagerNumericButtonsComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PagerNumericButtonsComponent, selectors: [[\"kendo-treelist-pager-numeric-buttons\"]], hostVars: 2, hostBindings: function PagerNumericButtonsComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-pager-numbers-wrap\", ctx.numbersWrapClass);\n } }, inputs: { buttonCount: \"buttonCount\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 8, vars: 9, consts: [[1, \"k-dropdown\", 3, \"value\", \"change\"], [\"class\", \"k-link\", \"value\", \"previousButtons\", 4, \"ngIf\"], [3, \"value\", \"ngClass\", 4, \"ngFor\", \"ngForOf\"], [\"value\", \"nextButtons\", \"class\", \"k-link\", 4, \"ngIf\"], [3, \"ngClass\"], [4, \"ngIf\"], [4, \"ngFor\", \"ngForOf\"], [\"value\", \"previousButtons\", 1, \"k-link\"], [3, \"value\", \"ngClass\"], [\"value\", \"nextButtons\", 1, \"k-link\"], [\"href\", \"#\", \"tabindex\", \"-1\", 1, \"k-link\", 3, \"click\"], [\"href\", \"#\", \"tabindex\", \"-1\", 3, \"ngClass\", \"click\"]], template: function PagerNumericButtonsComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"select\", 0);\n ɵngcc0.ɵɵlistener(\"change\", function PagerNumericButtonsComponent_Template_select_change_0_listener($event) { return ctx.onSelectChange($event); });\n ɵngcc0.ɵɵtemplate(1, PagerNumericButtonsComponent_option_1_Template, 2, 1, \"option\", 1);\n ɵngcc0.ɵɵtemplate(2, PagerNumericButtonsComponent_option_2_Template, 2, 7, \"option\", 2);\n ɵngcc0.ɵɵtemplate(3, PagerNumericButtonsComponent_option_3_Template, 2, 1, \"option\", 3);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(4, \"ul\", 4);\n ɵngcc0.ɵɵtemplate(5, PagerNumericButtonsComponent_li_5_Template, 3, 1, \"li\", 5);\n ɵngcc0.ɵɵtemplate(6, PagerNumericButtonsComponent_li_6_Template, 3, 5, \"li\", 6);\n ɵngcc0.ɵɵtemplate(7, PagerNumericButtonsComponent_li_7_Template, 3, 1, \"li\", 5);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"value\", ctx.currentPage.toString());\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.start > 1);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.buttons);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.end < ctx.totalPages);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction0(8, _c121));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.start > 1);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.buttons);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.end < ctx.totalPages);\n } }, directives: [ɵngcc4.NgIf, ɵngcc4.NgForOf, ɵngcc4.NgClass], encapsulation: 2, changeDetection: 0 });\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([ __metadata(\"design:paramtypes\", [LocalizationService,\n ChangeDetectorRef,\n PagerContextService])\n], PagerNumericButtonsComponent);\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 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.ɵfac = function PagerInputComponent_Factory(t) { return new (t || PagerInputComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(PagerContextService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nPagerInputComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PagerInputComponent, selectors: [[\"kendo-treelist-pager-input\"]], viewQuery: function PagerInputComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(NumericTextBoxComponent, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.numericInput = _t.first);\n } }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 4, vars: 21, consts: [[3, \"ngClass\"], [\"format\", \"n0\", 3, \"spinners\", \"decimals\", \"disabled\", \"value\", \"min\", \"max\", \"autoCorrect\", \"title\", \"kendoEventsOutsideAngular\"]], template: function PagerInputComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 0);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelement(2, \"kendo-numerictextbox\", 1);\n ɵngcc0.ɵɵtext(3);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction0(17, _c122));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx.textFor(\"pagerPage\"), \" \");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵstyleProp(\"margin\", \"0 1ex\")(\"width\", \"3em\");\n ɵngcc0.ɵɵproperty(\"spinners\", false)(\"decimals\", 0)(\"disabled\", !ctx.hasPages)(\"value\", ctx.current)(\"min\", ctx.hasPages ? 1 : 0)(\"max\", ctx.totalPages)(\"autoCorrect\", true)(\"title\", ctx.textFor(\"pagerPageNumberInputTitle\"))(\"kendoEventsOutsideAngular\", ɵngcc0.ɵɵpureFunction2(18, _c123, ctx.handleKeyDown, ctx.handleBlur));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate2(\" \", ctx.textFor(\"pagerOf\"), \" \", ctx.totalPages, \" \");\n } }, directives: [ɵngcc4.NgClass, ɵngcc6.NumericTextBoxComponent, ɵngcc5.EventsOutsideAngularDirective], encapsulation: 2 });\n__decorate([\n ViewChild(NumericTextBoxComponent, { static: true }),\n __metadata(\"design:type\", NumericTextBoxComponent)\n], PagerInputComponent.prototype, \"numericInput\", void 0);\nPagerInputComponent = __decorate([ __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 paging_treelist %}#toc-pager-templates)).\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 currentPageText() {\n return this.total ? this.currentPage : 0;\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {number}\n * @memberOf PagerInfoComponent\n */\n get maxPage() {\n return Math.ceil(this.total / this.pageSize);\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {boolean}\n * @memberOf PagerInfoComponent\n */\n get classes() {\n return true;\n }\n onChanges({ allCount, total, skip, pageSize }) {\n this.total = total;\n this.skip = skip;\n this.pageSize = pageSize;\n this.allCount = allCount;\n this.cd.markForCheck();\n }\n};\nPagerInfoComponent.ɵfac = function PagerInfoComponent_Factory(t) { return new (t || PagerInfoComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(PagerContextService)); };\nPagerInfoComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PagerInfoComponent, selectors: [[\"kendo-treelist-pager-info\"]], hostVars: 4, hostBindings: function PagerInfoComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-pager-info\", ctx.classes)(\"k-label\", ctx.classes);\n } }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 1, vars: 6, template: function PagerInfoComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n } if (rf & 2) {\n ɵngcc0.ɵɵtextInterpolate6(\"\", ctx.textFor(\"pagerPage\"), \" \", ctx.currentPageText, \" \", ctx.textFor(\"pagerOf\"), \" \", ctx.maxPage, \" (\", ctx.allCount, \" \", ctx.textFor(\"pagerItemsTotal\"), \")\");\n } }, encapsulation: 2, changeDetection: 0 });\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([ __metadata(\"design:paramtypes\", [LocalizationService,\n ChangeDetectorRef,\n PagerContextService])\n], PagerInfoComponent);\n\n/**\n * Displays a drop-down list for the page size selection ([see example]({% slug paging_treelist %}#toc-pager-templates)).\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 be an Array of numbers and/or PageSizeItem objects.\n *\n * {% meta height:500 %}\n * {% embed_file configuration/pager-template-page-sizes/app.component.ts preview %}\n * {% embed_file configuration/pager-template-page-sizes/app.module.ts %}\n * {% embed_file shared/filesystem.ts %}\n * {% embed_file shared/main.ts %}\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 /**\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 = typeof value === 'number' ? value : this.total;\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 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.ɵfac = function PagerPageSizesComponent_Factory(t) { return new (t || PagerPageSizesComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(PagerContextService)); };\nPagerPageSizesComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PagerPageSizesComponent, selectors: [[\"kendo-treelist-pager-page-sizes\"]], hostVars: 4, hostBindings: function PagerPageSizesComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-pager-sizes\", ctx.classes)(\"k-label\", ctx.classes);\n } }, inputs: { pageSizes: \"pageSizes\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 3, vars: 5, consts: [[\"textField\", \"text\", \"valueField\", \"value\", 3, \"data\", \"valuePrimitive\", \"value\", \"valueChange\"], [\"dropdownlist\", \"\"], [3, \"for\", \"text\"]], template: function PagerPageSizesComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-dropdownlist\", 0, 1);\n ɵngcc0.ɵɵlistener(\"valueChange\", function PagerPageSizesComponent_Template_kendo_dropdownlist_valueChange_0_listener($event) { return ctx.pageSizeChange($event); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelement(2, \"kendo-label\", 2);\n } if (rf & 2) {\n const _r0 = ɵngcc0.ɵɵreference(1);\n ɵngcc0.ɵɵproperty(\"data\", ctx.pageSizes)(\"valuePrimitive\", true)(\"value\", ctx.pageSize);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"for\", _r0)(\"text\", ctx.textFor(\"pagerItemsPerPage\"));\n } }, directives: [ɵngcc8.DropDownListComponent, ɵngcc11.LabelComponent], encapsulation: 2, changeDetection: 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([ __metadata(\"design:paramtypes\", [LocalizationService,\n ChangeDetectorRef,\n PagerContextService])\n], PagerPageSizesComponent);\n\nconst importedModules$1 = [\n CommonModule,\n InputsModule,\n LabelModule,\n DropDownsModule,\n ResizeSensorModule,\n SharedModule,\n EventsModule\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 */\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.ɵfac = function PagerModule_Factory(t) { return new (t || PagerModule)(); };\nPagerModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: PagerModule });\nPagerModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[...importedModules$1]] });\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 */\nlet DropTargetDirective = class 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.ɵfac = function DropTargetDirective_Factory(t) { return new (t || DropTargetDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(DragAndDropService)); };\nDropTargetDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DropTargetDirective, selectors: [[\"\", \"kendoDropTarget\", \"\"]], inputs: { context: \"context\" }, outputs: { enter: \"enter\", leave: \"leave\", drop: \"drop\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DropTargetDirective.prototype, \"context\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DropTargetDirective.prototype, \"enter\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DropTargetDirective.prototype, \"leave\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DropTargetDirective.prototype, \"drop\", void 0);\nDropTargetDirective = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n DragAndDropService])\n], DropTargetDirective);\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 */\nlet HeaderComponent = class HeaderComponent {\n constructor(popupService, hint, cue, reorderService, sortService, selectionService, localization, cd) {\n this.popupService = popupService;\n this.hint = hint;\n this.cue = cue;\n this.reorderService = reorderService;\n this.sortService = sortService;\n this.selectionService = selectionService;\n this.localization = localization;\n this.cd = cd;\n this.columns = [];\n this.sort = new Array();\n this.sortable = 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, event, link) {\n const target = event ? event.target : null;\n if (column.headerTemplateRef && target !== link) {\n const hasFocusableParent = Boolean(closestInScope(target, isFocusable, link));\n if (hasFocusableParent) {\n return target.type === 'checkbox'; // prevent navigation only if the element is not checkbox\n }\n }\n this.sortService.sort(this.toggleSort(column));\n // Prevent navigation\n return false;\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 isFirstOnRow(column, index) {\n const isTailing = (c) => c &&\n (this.columnsForLevel(c.level).indexOf(c) > 0 || isTailing(c.parent));\n return index === 0 && isTailing(column.parent);\n }\n logicalColumnIndex(column) {\n const index = column.leafIndex;\n if (isPresent(index)) {\n return index;\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 return this.reorderable && column.reorderable;\n }\n isSortable(column) {\n return !isNullOrEmptyString(column.field)\n && isTruthy(this.sortable) && isTruthy(column.sortable);\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 renderSelectAll(column) {\n return column.isCheckboxColumn && column.showSelectAll && !column.headerTemplateRef &&\n this.selectionService.enableMultiple;\n }\n selectAllClick(args) {\n this.selectionService.toggleAll(args.target.checked);\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 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.ɵfac = function HeaderComponent_Factory(t) { return new (t || HeaderComponent)(ɵngcc0.ɵɵdirectiveInject(SinglePopupService), ɵngcc0.ɵɵdirectiveInject(DragHintService), ɵngcc0.ɵɵdirectiveInject(DropCueService), ɵngcc0.ɵɵdirectiveInject(ColumnReorderService), ɵngcc0.ɵɵdirectiveInject(SortService), ɵngcc0.ɵɵdirectiveInject(SelectionService), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nHeaderComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: HeaderComponent, selectors: [[\"\", \"kendoTreeListHeader\", \"\"]], viewQuery: function HeaderComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(DropTargetDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.dropTargets = _t);\n } }, hostVars: 2, hostBindings: function HeaderComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-grid-header\", ctx.headerClass);\n } }, inputs: { columns: \"columns\", sort: \"sort\", sortable: \"sortable\", lockedColumnsCount: \"lockedColumnsCount\", resizable: \"resizable\", reorderable: \"reorderable\", columnMenu: \"columnMenu\", totalColumnsCount: \"totalColumnsCount\", totalColumnLevels: \"totalColumnLevels\", scrollable: \"scrollable\", filterable: \"filterable\", filter: \"filter\", columnMenuTemplate: \"columnMenuTemplate\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], attrs: _c124, decls: 2, vars: 2, consts: [[\"kendoTreeListLogicalRow\", \"\", 3, \"logicalRowIndex\", \"logicalSlaveRow\", \"logicalCellsCount\", \"logicalSlaveCellsCount\", 4, \"ngFor\", \"ngForOf\"], [\"kendoTreeListFilterRow\", \"\", \"kendoTreeListLogicalRow\", \"\", 3, \"columns\", \"filter\", \"lockedColumnsCount\", \"logicalRowIndex\", \"logicalSlaveRow\", \"logicalCellsCount\", \"logicalSlaveCellsCount\", 4, \"ngIf\"], [\"kendoTreeListLogicalRow\", \"\", 3, \"logicalRowIndex\", \"logicalSlaveRow\", \"logicalCellsCount\", \"logicalSlaveCellsCount\"], [\"ngFor\", \"\", 3, \"ngForOf\", \"ngForTrackBy\"], [\"kendoTreeListLogicalCell\", \"\", \"role\", \"columnheader\", \"aria-selected\", \"false\", \"kendoDropTarget\", \"\", \"kendoDraggable\", \"\", \"kendoDraggableColumn\", \"\", \"class\", \"k-header\", 3, \"logicalRowIndex\", \"logicalColIndex\", \"colSpan\", \"rowSpan\", \"enableDrag\", \"context\", \"k-filterable\", \"k-first\", \"ngClass\", \"ngStyle\", \"keydown\", 4, \"ngIf\"], [\"kendoTreeListLogicalCell\", \"\", \"kendoDropTarget\", \"\", \"kendoDraggable\", \"\", \"kendoDraggableColumn\", \"\", \"class\", \"k-header\", 3, \"logicalRowIndex\", \"logicalColIndex\", \"rowSpan\", \"colSpan\", \"enableDrag\", \"context\", \"k-first\", \"k-filterable\", \"ngClass\", \"ngStyle\", 4, \"ngIf\"], [\"kendoTreeListLogicalCell\", \"\", \"role\", \"columnheader\", \"aria-selected\", \"false\", \"kendoDropTarget\", \"\", \"kendoDraggable\", \"\", \"kendoDraggableColumn\", \"\", 1, \"k-header\", 3, \"logicalRowIndex\", \"logicalColIndex\", \"colSpan\", \"rowSpan\", \"enableDrag\", \"context\", \"ngClass\", \"ngStyle\", \"keydown\"], [3, \"ngIf\"], [4, \"ngIf\"], [\"kendoTreeListColumnHandle\", \"\", \"kendoDraggable\", \"\", \"class\", \"k-column-resizer\", 3, \"column\", \"columns\", 4, \"ngIf\"], [3, \"column\", \"filter\", 4, \"ngIf\"], [3, \"standalone\", \"settings\", \"column\", \"columnMenuTemplate\", \"sort\", \"filter\", \"sortable\", 4, \"ngIf\"], [3, \"templateContext\"], [3, \"column\", \"filter\"], [3, \"standalone\", \"settings\", \"column\", \"columnMenuTemplate\", \"sort\", \"filter\", \"sortable\"], [1, \"k-cell-inner\"], [\"href\", \"#\", \"tabindex\", \"-1\", 1, \"k-link\", 3, \"click\"], [\"link\", \"\"], [3, \"ngClass\"], [\"class\", \"k-sort-order\", 4, \"ngIf\"], [\"role\", \"status\", 1, \"k-sort-status\", 2, \"position\", \"absolute\", \"left\", \"-10000px\", 3, \"innerHtml\"], [1, \"k-column-title\"], [1, \"k-sort-order\"], [\"type\", \"checkbox\", \"kendoTreeListFocusable\", \"\", 1, \"k-checkbox\", \"k-checkbox-md\", \"k-rounded-md\", 3, \"click\"], [\"kendoTreeListColumnHandle\", \"\", \"kendoDraggable\", \"\", 1, \"k-column-resizer\", 3, \"column\", \"columns\"], [\"kendoTreeListLogicalCell\", \"\", \"kendoDropTarget\", \"\", \"kendoDraggable\", \"\", \"kendoDraggableColumn\", \"\", 1, \"k-header\", 3, \"logicalRowIndex\", \"logicalColIndex\", \"rowSpan\", \"colSpan\", \"enableDrag\", \"context\", \"ngClass\", \"ngStyle\"], [3, \"standalone\", \"settings\", \"column\", \"columnMenuTemplate\", 4, \"ngIf\"], [3, \"standalone\", \"settings\", \"column\", \"columnMenuTemplate\"], [\"kendoTreeListFilterRow\", \"\", \"kendoTreeListLogicalRow\", \"\", 3, \"columns\", \"filter\", \"lockedColumnsCount\", \"logicalRowIndex\", \"logicalSlaveRow\", \"logicalCellsCount\", \"logicalSlaveCellsCount\"]], template: function HeaderComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, HeaderComponent_tr_0_Template, 2, 6, \"tr\", 0);\n ɵngcc0.ɵɵtemplate(1, HeaderComponent_tr_1_Template, 1, 7, \"tr\", 1);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.columnLevels);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showFilterRow);\n } }, directives: function () { return [ɵngcc4.NgForOf, LogicalRowDirective, ɵngcc4.NgIf, LogicalCellDirective, DropTargetDirective, ɵngcc5.DraggableDirective, DraggableColumnDirective, ɵngcc4.NgClass, ɵngcc4.NgStyle, FilterMenuComponent, ColumnMenuComponent, TemplateContextDirective, FocusableDirective, ColumnHandleDirective, FilterRowComponent]; }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], HeaderComponent.prototype, \"totalColumnLevels\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], HeaderComponent.prototype, \"columns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], HeaderComponent.prototype, \"scrollable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], HeaderComponent.prototype, \"filterable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], HeaderComponent.prototype, \"sort\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], HeaderComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], HeaderComponent.prototype, \"sortable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], HeaderComponent.prototype, \"lockedColumnsCount\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], HeaderComponent.prototype, \"resizable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], HeaderComponent.prototype, \"reorderable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], HeaderComponent.prototype, \"columnMenu\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], HeaderComponent.prototype, \"columnMenuTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], HeaderComponent.prototype, \"totalColumnsCount\", void 0);\n__decorate([\n HostBinding('class.k-grid-header'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], HeaderComponent.prototype, \"headerClass\", null);\n__decorate([\n ViewChildren(DropTargetDirective),\n __metadata(\"design:type\", QueryList)\n], HeaderComponent.prototype, \"dropTargets\", void 0);\nHeaderComponent = __decorate([ __metadata(\"design:paramtypes\", [SinglePopupService,\n DragHintService,\n DropCueService,\n ColumnReorderService,\n SortService,\n SelectionService,\n LocalizationService,\n ChangeDetectorRef])\n], HeaderComponent);\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 = 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 */\nlet ColumnHandleDirective = class 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(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.ɵfac = function ColumnHandleDirective_Factory(t) { return new (t || ColumnHandleDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc5.DraggableDirective, 1), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ColumnResizingService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nColumnHandleDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ColumnHandleDirective, selectors: [[\"\", \"kendoTreeListColumnHandle\", \"\"]], hostVars: 6, hostBindings: function ColumnHandleDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"dblclick\", function ColumnHandleDirective_dblclick_HostBindingHandler() { return ctx.autoFit(); });\n } if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"display\", ctx.visible)(\"left\", ctx.leftStyle)(\"right\", ctx.rightStyle);\n } }, inputs: { columns: \"columns\", column: \"column\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], ColumnHandleDirective.prototype, \"columns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnBase$1)\n], ColumnHandleDirective.prototype, \"column\", void 0);\n__decorate([\n HostBinding('style.display'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], ColumnHandleDirective.prototype, \"visible\", null);\n__decorate([\n HostBinding('style.left'),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [])\n], ColumnHandleDirective.prototype, \"leftStyle\", null);\n__decorate([\n HostBinding('style.right'),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [])\n], ColumnHandleDirective.prototype, \"rightStyle\", null);\n__decorate([\n HostListener('dblclick'),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], ColumnHandleDirective.prototype, \"autoFit\", null);\nColumnHandleDirective = __decorate([ __param(0, Host()),\n __metadata(\"design:paramtypes\", [DraggableDirective,\n ElementRef,\n ColumnResizingService,\n NgZone,\n ChangeDetectorRef,\n LocalizationService])\n], ColumnHandleDirective);\n\n/**\n * @hidden\n */\nlet FilterMenuComponent = class 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.ɵfac = function FilterMenuComponent_Factory(t) { return new (t || FilterMenuComponent)(ɵngcc0.ɵɵdirectiveInject(FilterService), ɵngcc0.ɵɵdirectiveInject(SinglePopupService), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nFilterMenuComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: FilterMenuComponent, selectors: [[\"kendo-treelist-filter-menu\"]], inputs: { column: \"column\", filter: \"filter\" }, decls: 5, vars: 4, consts: [[\"href\", \"#\", 3, \"ngClass\", \"click\"], [\"anchor\", \"\"], [1, \"k-icon\", \"k-i-filter\"], [\"template\", \"\"], [3, \"column\", \"filter\", \"close\"]], template: function FilterMenuComponent_Template(rf, ctx) { if (rf & 1) {\n const _r5 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"a\", 0, 1);\n ɵngcc0.ɵɵlistener(\"click\", function FilterMenuComponent_Template_a_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r5); const _r0 = ɵngcc0.ɵɵreference(1); const _r1 = ɵngcc0.ɵɵreference(4); return ctx.toggle(_r0, _r1); });\n ɵngcc0.ɵɵelement(2, \"span\", 2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, FilterMenuComponent_ng_template_3_Template, 1, 2, \"ng-template\", null, 3, ɵngcc0.ɵɵtemplateRefExtractor);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction1(2, _c128, ctx.hasFilters));\n ɵngcc0.ɵɵattribute(\"title\", ctx.filterLabel);\n } }, directives: function () { return [ɵngcc4.NgClass, FilterMenuContainerComponent]; }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnComponent)\n], FilterMenuComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], FilterMenuComponent.prototype, \"filter\", void 0);\nFilterMenuComponent = __decorate([ __metadata(\"design:paramtypes\", [FilterService,\n SinglePopupService,\n LocalizationService])\n], FilterMenuComponent);\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 */\nlet FilterMenuContainerComponent = class 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.ɵfac = function FilterMenuContainerComponent_Factory(t) { return new (t || FilterMenuContainerComponent)(ɵngcc0.ɵɵdirectiveInject(FilterService, 4), ɵngcc0.ɵɵdirectiveInject(FilterService), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nFilterMenuContainerComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: FilterMenuContainerComponent, selectors: [[\"kendo-treelist-filter-menu-container\"]], inputs: { actionsClass: \"actionsClass\", filter: \"filter\", column: \"column\" }, outputs: { close: \"close\" }, features: [ɵngcc0.ɵɵProvidersFeature([FilterService])], decls: 10, vars: 7, consts: [[1, \"k-filter-menu\", \"k-group\", \"k-reset\", \"k-state-border-up\", 3, \"submit\", \"reset\"], [1, \"k-filter-menu-container\"], [3, \"ngSwitch\"], [4, \"ngSwitchCase\"], [3, \"ngClass\"], [\"type\", \"reset\", 1, \"k-button\", \"k-button-solid-base\", \"k-button-solid\", \"k-button-md\", \"k-rounded-md\", \"k-button-rectangle\"], [\"type\", \"submit\", 1, \"k-button\", \"k-button-solid-primary\", \"k-button-solid\", \"k-button-md\", \"k-rounded-md\", \"k-button-rectangle\", 3, \"disabled\"], [\"kendoFilterMenuHost\", \"\", 3, \"filterService\", \"column\", \"filter\"], [4, \"ngIf\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]], template: function FilterMenuContainerComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"form\", 0);\n ɵngcc0.ɵɵlistener(\"submit\", function FilterMenuContainerComponent_Template_form_submit_0_listener() { return ctx.submit(); })(\"reset\", function FilterMenuContainerComponent_Template_form_reset_0_listener() { return ctx.reset(); });\n ɵngcc0.ɵɵelementStart(1, \"div\", 1);\n ɵngcc0.ɵɵelementContainerStart(2, 2);\n ɵngcc0.ɵɵtemplate(3, FilterMenuContainerComponent_ng_container_3_Template, 2, 3, \"ng-container\", 3);\n ɵngcc0.ɵɵtemplate(4, FilterMenuContainerComponent_ng_container_4_Template, 2, 1, \"ng-container\", 3);\n ɵngcc0.ɵɵelementContainerEnd();\n ɵngcc0.ɵɵelementStart(5, \"div\", 4)(6, \"button\", 5);\n ɵngcc0.ɵɵtext(7);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(8, \"button\", 6);\n ɵngcc0.ɵɵtext(9);\n ɵngcc0.ɵɵelementEnd()()()();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngSwitch\", ctx.hasTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngSwitchCase\", false);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngSwitchCase\", true);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx.actionsClass);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx.clearText, \" \");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx.disabled);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx.filterText, \" \");\n } }, directives: function () { return [ɵngcc7.ɵNgNoValidate, ɵngcc7.NgControlStatusGroup, ɵngcc7.NgForm, ɵngcc4.NgSwitch, ɵngcc4.NgSwitchCase, FilterMenuHostDirective, ɵngcc4.NgIf, ɵngcc4.NgTemplateOutlet, ɵngcc4.NgClass]; }, encapsulation: 2 });\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], FilterMenuContainerComponent.prototype, \"close\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnComponent)\n], FilterMenuContainerComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], FilterMenuContainerComponent.prototype, \"filter\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FilterMenuContainerComponent.prototype, \"actionsClass\", void 0);\nFilterMenuContainerComponent = __decorate([ __param(0, SkipSelf()),\n __metadata(\"design:paramtypes\", [FilterService,\n FilterService,\n LocalizationService,\n ChangeDetectorRef])\n], FilterMenuContainerComponent);\n\n/**\n * @hidden\n */\nlet FilterMenuInputWrapperComponent = class 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.ɵfac = function FilterMenuInputWrapperComponent_Factory(t) { return new (t || FilterMenuInputWrapperComponent)(); };\nFilterMenuInputWrapperComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: FilterMenuInputWrapperComponent, selectors: [[\"kendo-treelist-filter-menu-input-wrapper\"]], inputs: { currentFilter: \"currentFilter\", filterService: \"filterService\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c108, decls: 2, vars: 3, consts: [[\"textField\", \"text\", \"valueField\", \"value\", 3, \"data\", \"value\", \"valuePrimitive\", \"valueChange\"]], template: function FilterMenuInputWrapperComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelementStart(0, \"kendo-dropdownlist\", 0);\n ɵngcc0.ɵɵlistener(\"valueChange\", function FilterMenuInputWrapperComponent_Template_kendo_dropdownlist_valueChange_0_listener($event) { return ctx.operatorChange($event); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵprojection(1);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"data\", ctx.operators)(\"value\", ctx.currentOperator)(\"valuePrimitive\", true);\n } }, directives: [ɵngcc8.DropDownListComponent], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", FilterService)\n], FilterMenuInputWrapperComponent.prototype, \"filterService\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], FilterMenuInputWrapperComponent.prototype, \"currentFilter\", null);\nFilterMenuInputWrapperComponent = __decorate([ __metadata(\"design:paramtypes\", [])\n], FilterMenuInputWrapperComponent);\n\n/**\n * @hidden\n */\nlet StringFilterMenuInputComponent = class StringFilterMenuInputComponent {\n /**\n * @hidden\n */\n constructor() {\n this.operators = [];\n }\n};\nStringFilterMenuInputComponent.ɵfac = function StringFilterMenuInputComponent_Factory(t) { return new (t || StringFilterMenuInputComponent)(); };\nStringFilterMenuInputComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: StringFilterMenuInputComponent, selectors: [[\"kendo-treelist-string-filter-menu-input\"]], inputs: { operators: \"operators\", column: \"column\", filter: \"filter\", operator: \"operator\", currentFilter: \"currentFilter\", filterService: \"filterService\" }, decls: 2, vars: 8, consts: [[3, \"column\", \"filter\", \"operators\", \"defaultOperator\", \"currentFilter\", \"filterService\"], [\"kendoTextBox\", \"\", \"kendoFilterInput\", \"\", 3, \"filterDelay\", \"ngModel\"]], template: function StringFilterMenuInputComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-treelist-filter-menu-input-wrapper\", 0);\n ɵngcc0.ɵɵelement(1, \"input\", 1);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"column\", ctx.column)(\"filter\", ctx.filter)(\"operators\", ctx.operators)(\"defaultOperator\", ctx.operator)(\"currentFilter\", ctx.currentFilter)(\"filterService\", ctx.filterService);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"filterDelay\", 0)(\"ngModel\", ctx.currentFilter == null ? null : ctx.currentFilter.value);\n } }, directives: [FilterMenuInputWrapperComponent, ɵngcc6.TextBoxDirective, ɵngcc7.DefaultValueAccessor, FilterInputDirective, ɵngcc7.NgControlStatus, ɵngcc7.NgModel], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], StringFilterMenuInputComponent.prototype, \"operators\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnComponent)\n], StringFilterMenuInputComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], StringFilterMenuInputComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], StringFilterMenuInputComponent.prototype, \"operator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], StringFilterMenuInputComponent.prototype, \"currentFilter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", FilterService)\n], StringFilterMenuInputComponent.prototype, \"filterService\", void 0);\n\n/**\n * Represents a string-filter menu component.\n * ([see example]({% slug builtinfiltertemplate_treelist %}#toc-configuration-components-for-filter-templates)).\n */\nlet StringFilterMenuComponent = class 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.ɵfac = function StringFilterMenuComponent_Factory(t) { return new (t || StringFilterMenuComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nStringFilterMenuComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: StringFilterMenuComponent, selectors: [[\"kendo-treelist-string-filter-menu\"]], hostVars: 2, hostBindings: function StringFilterMenuComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-filtercell\", ctx.hostClasses);\n } }, inputs: { filter: \"filter\", extra: \"extra\", column: \"column\", filterService: \"filterService\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 3, vars: 7, consts: [[3, \"currentFilter\", \"operators\", \"filterService\", \"column\", \"filter\"], [\"class\", \"k-filter-and\", \"textField\", \"text\", \"valueField\", \"value\", 3, \"data\", \"valuePrimitive\", \"value\", \"valueChange\", 4, \"ngIf\"], [3, \"operators\", \"currentFilter\", \"filterService\", \"column\", \"filter\", 4, \"ngIf\"], [\"textField\", \"text\", \"valueField\", \"value\", 1, \"k-filter-and\", 3, \"data\", \"valuePrimitive\", \"value\", \"valueChange\"], [3, \"operators\", \"currentFilter\", \"filterService\", \"column\", \"filter\"]], template: function StringFilterMenuComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-treelist-string-filter-menu-input\", 0);\n ɵngcc0.ɵɵtemplate(1, StringFilterMenuComponent_kendo_dropdownlist_1_Template, 1, 3, \"kendo-dropdownlist\", 1);\n ɵngcc0.ɵɵtemplate(2, StringFilterMenuComponent_kendo_treelist_string_filter_menu_input_2_Template, 1, 5, \"kendo-treelist-string-filter-menu-input\", 2);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"currentFilter\", ctx.firstFilter)(\"operators\", ctx.operators)(\"filterService\", ctx.filterService)(\"column\", ctx.column)(\"filter\", ctx.filter);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.extra);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.extra);\n } }, directives: [StringFilterMenuInputComponent, ɵngcc4.NgIf, ɵngcc8.DropDownListComponent], encapsulation: 2 });\n__decorate([\n HostBinding('class.k-filtercell'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], StringFilterMenuComponent.prototype, \"hostClasses\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnComponent)\n], StringFilterMenuComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], StringFilterMenuComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], StringFilterMenuComponent.prototype, \"extra\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", FilterService)\n], StringFilterMenuComponent.prototype, \"filterService\", void 0);\nStringFilterMenuComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], StringFilterMenuComponent);\n\n/**\n * Represents a numeric-filter menu component.\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * \n * ```\n */\nlet NumericFilterMenuComponent = class 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.ɵfac = function NumericFilterMenuComponent_Factory(t) { return new (t || NumericFilterMenuComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nNumericFilterMenuComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NumericFilterMenuComponent, selectors: [[\"kendo-treelist-numeric-filter-menu\"]], hostVars: 2, hostBindings: function NumericFilterMenuComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-filtercell\", ctx.hostClasses);\n } }, inputs: { filter: \"filter\", extra: \"extra\", column: \"column\", filterService: \"filterService\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 3, vars: 13, consts: [[3, \"currentFilter\", \"operators\", \"filterService\", \"column\", \"filter\", \"format\", \"decimals\", \"spinners\", \"min\", \"max\", \"step\"], [\"class\", \"k-filter-and\", \"textField\", \"text\", \"valueField\", \"value\", 3, \"data\", \"valuePrimitive\", \"value\", \"valueChange\", 4, \"ngIf\"], [3, \"operators\", \"currentFilter\", \"filterService\", \"column\", \"filter\", \"format\", \"decimals\", \"spinners\", \"min\", \"max\", \"step\", 4, \"ngIf\"], [\"textField\", \"text\", \"valueField\", \"value\", 1, \"k-filter-and\", 3, \"data\", \"valuePrimitive\", \"value\", \"valueChange\"], [3, \"operators\", \"currentFilter\", \"filterService\", \"column\", \"filter\", \"format\", \"decimals\", \"spinners\", \"min\", \"max\", \"step\"]], template: function NumericFilterMenuComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-treelist-numeric-filter-menu-input\", 0);\n ɵngcc0.ɵɵtemplate(1, NumericFilterMenuComponent_kendo_dropdownlist_1_Template, 1, 3, \"kendo-dropdownlist\", 1);\n ɵngcc0.ɵɵtemplate(2, NumericFilterMenuComponent_kendo_treelist_numeric_filter_menu_input_2_Template, 1, 11, \"kendo-treelist-numeric-filter-menu-input\", 2);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"currentFilter\", ctx.firstFilter)(\"operators\", ctx.operators)(\"filterService\", ctx.filterService)(\"column\", ctx.column)(\"filter\", ctx.filter)(\"format\", ctx.format)(\"decimals\", ctx.decimals)(\"spinners\", ctx.spinners)(\"min\", ctx.min)(\"max\", ctx.max)(\"step\", ctx.step);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.extra);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.extra);\n } }, directives: function () { return [NumericFilterMenuInputComponent, ɵngcc4.NgIf, ɵngcc8.DropDownListComponent]; }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-filtercell'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], NumericFilterMenuComponent.prototype, \"hostClasses\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnComponent)\n], NumericFilterMenuComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], NumericFilterMenuComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], NumericFilterMenuComponent.prototype, \"extra\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", FilterService)\n], NumericFilterMenuComponent.prototype, \"filterService\", void 0);\nNumericFilterMenuComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], NumericFilterMenuComponent);\n\n/**\n * @hidden\n */\nlet NumericFilterMenuInputComponent = class NumericFilterMenuInputComponent {\n /**\n * @hidden\n */\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.ɵfac = function NumericFilterMenuInputComponent_Factory(t) { return new (t || NumericFilterMenuInputComponent)(); };\nNumericFilterMenuInputComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NumericFilterMenuInputComponent, selectors: [[\"kendo-treelist-numeric-filter-menu-input\"]], inputs: { operators: \"operators\", step: \"step\", spinners: \"spinners\", column: \"column\", filter: \"filter\", operator: \"operator\", currentFilter: \"currentFilter\", filterService: \"filterService\", min: \"min\", max: \"max\", decimals: \"decimals\", format: \"format\" }, decls: 2, vars: 15, consts: [[3, \"column\", \"filter\", \"operators\", \"defaultOperator\", \"currentFilter\", \"filterService\"], [\"kendoFilterInput\", \"\", 3, \"filterDelay\", \"autoCorrect\", \"value\", \"format\", \"decimals\", \"spinners\", \"min\", \"max\", \"step\"]], template: function NumericFilterMenuInputComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-treelist-filter-menu-input-wrapper\", 0);\n ɵngcc0.ɵɵelement(1, \"kendo-numerictextbox\", 1);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"column\", ctx.column)(\"filter\", ctx.filter)(\"operators\", ctx.operators)(\"defaultOperator\", ctx.operator)(\"currentFilter\", ctx.currentFilter)(\"filterService\", ctx.filterService);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"filterDelay\", 0)(\"autoCorrect\", true)(\"value\", ctx.currentFilter == null ? null : ctx.currentFilter.value)(\"format\", ctx.format)(\"decimals\", ctx.decimals)(\"spinners\", ctx.spinners)(\"min\", ctx.min)(\"max\", ctx.max)(\"step\", ctx.step);\n } }, directives: [FilterMenuInputWrapperComponent, ɵngcc6.NumericTextBoxComponent, FilterInputDirective], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], NumericFilterMenuInputComponent.prototype, \"operators\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnComponent)\n], NumericFilterMenuInputComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], NumericFilterMenuInputComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], NumericFilterMenuInputComponent.prototype, \"operator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], NumericFilterMenuInputComponent.prototype, \"currentFilter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", FilterService)\n], NumericFilterMenuInputComponent.prototype, \"filterService\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], NumericFilterMenuInputComponent.prototype, \"step\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], NumericFilterMenuInputComponent.prototype, \"min\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], NumericFilterMenuInputComponent.prototype, \"max\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], NumericFilterMenuInputComponent.prototype, \"spinners\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], NumericFilterMenuInputComponent.prototype, \"decimals\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], NumericFilterMenuInputComponent.prototype, \"format\", void 0);\n\n/**\n * Represents a date-filter menu component.\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * \n * ```\n */\nlet DateFilterMenuComponent = class 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.ɵfac = function DateFilterMenuComponent_Factory(t) { return new (t || DateFilterMenuComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nDateFilterMenuComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DateFilterMenuComponent, selectors: [[\"kendo-treelist-date-filter-menu\"]], hostVars: 2, hostBindings: function DateFilterMenuComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-filtercell\", ctx.hostClasses);\n } }, inputs: { filter: \"filter\", extra: \"extra\", column: \"column\", filterService: \"filterService\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 3, vars: 16, consts: [[3, \"currentFilter\", \"operators\", \"filterService\", \"column\", \"filter\", \"activeView\", \"bottomView\", \"topView\", \"format\", \"formatPlaceholder\", \"placeholder\", \"min\", \"max\", \"weekNumber\"], [\"class\", \"k-filter-and\", \"textField\", \"text\", \"valueField\", \"value\", 3, \"data\", \"valuePrimitive\", \"value\", \"valueChange\", 4, \"ngIf\"], [3, \"operators\", \"currentFilter\", \"filterService\", \"column\", \"filter\", \"activeView\", \"bottomView\", \"topView\", \"format\", \"formatPlaceholder\", \"placeholder\", \"min\", \"max\", \"weekNumber\", 4, \"ngIf\"], [\"textField\", \"text\", \"valueField\", \"value\", 1, \"k-filter-and\", 3, \"data\", \"valuePrimitive\", \"value\", \"valueChange\"], [3, \"operators\", \"currentFilter\", \"filterService\", \"column\", \"filter\", \"activeView\", \"bottomView\", \"topView\", \"format\", \"formatPlaceholder\", \"placeholder\", \"min\", \"max\", \"weekNumber\"]], template: function DateFilterMenuComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"kendo-treelist-date-filter-menu-input\", 0);\n ɵngcc0.ɵɵtemplate(1, DateFilterMenuComponent_kendo_dropdownlist_1_Template, 1, 3, \"kendo-dropdownlist\", 1);\n ɵngcc0.ɵɵtemplate(2, DateFilterMenuComponent_kendo_treelist_date_filter_menu_input_2_Template, 1, 14, \"kendo-treelist-date-filter-menu-input\", 2);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"currentFilter\", ctx.firstFilter)(\"operators\", ctx.operators)(\"filterService\", ctx.filterService)(\"column\", ctx.column)(\"filter\", ctx.filter)(\"activeView\", ctx.activeView)(\"bottomView\", ctx.bottomView)(\"topView\", ctx.topView)(\"format\", ctx.format)(\"formatPlaceholder\", ctx.formatPlaceholder)(\"placeholder\", ctx.placeholder)(\"min\", ctx.min)(\"max\", ctx.max)(\"weekNumber\", ctx.weekNumber);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.extra);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.extra);\n } }, directives: function () { return [DateFilterMenuInputComponent, ɵngcc4.NgIf, ɵngcc8.DropDownListComponent]; }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-filtercell'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DateFilterMenuComponent.prototype, \"hostClasses\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnComponent)\n], DateFilterMenuComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DateFilterMenuComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DateFilterMenuComponent.prototype, \"extra\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", FilterService)\n], DateFilterMenuComponent.prototype, \"filterService\", void 0);\nDateFilterMenuComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], DateFilterMenuComponent);\n\n/**\n * Represents a Boolean-filter menu component.\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * \n * ```\n */\nlet BooleanFilterMenuComponent = class 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.ɵfac = function BooleanFilterMenuComponent_Factory(t) { return new (t || BooleanFilterMenuComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nBooleanFilterMenuComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: BooleanFilterMenuComponent, selectors: [[\"kendo-treelist-boolean-filter-menu\"]], hostVars: 2, hostBindings: function BooleanFilterMenuComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-filtercell\", ctx.hostClasses);\n } }, inputs: { filter: \"filter\", filterService: \"filterService\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 2, vars: 1, consts: [[1, \"k-radio-list\", \"k-reset\"], [4, \"ngFor\", \"ngForOf\"], [\"type\", \"radio\", \"kendoRadioButton\", \"\", 3, \"name\", \"checked\", \"change\"], [1, \"k-radio-label\"]], template: function BooleanFilterMenuComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"ul\", 0);\n ɵngcc0.ɵɵtemplate(1, BooleanFilterMenuComponent_li_1_Template, 4, 5, \"li\", 1);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.items);\n } }, directives: [ɵngcc4.NgForOf, ɵngcc6.RadioButtonDirective], encapsulation: 2 });\n__decorate([\n HostBinding('class.k-filtercell'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], BooleanFilterMenuComponent.prototype, \"hostClasses\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], BooleanFilterMenuComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", FilterService)\n], BooleanFilterMenuComponent.prototype, \"filterService\", void 0);\nBooleanFilterMenuComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], BooleanFilterMenuComponent);\n\n/**\n * @hidden\n *\n * > List the following components as `entryComponents` in the TreeListModule.\n */\nconst filterMenuComponentFactory = (type) => ({\n \"boolean\": BooleanFilterMenuComponent,\n \"date\": DateFilterMenuComponent,\n \"numeric\": NumericFilterMenuComponent,\n \"text\": StringFilterMenuComponent\n}[type]);\n\n/**\n * @hidden\n */\nlet FilterMenuHostDirective = class 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.ɵfac = function FilterMenuHostDirective_Factory(t) { return new (t || FilterMenuHostDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ComponentFactoryResolver)); };\nFilterMenuHostDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: FilterMenuHostDirective, selectors: [[\"\", \"kendoFilterMenuHost\", \"\"]], inputs: { filterService: \"filterService\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", FilterService)\n], FilterMenuHostDirective.prototype, \"filterService\", void 0);\nFilterMenuHostDirective = __decorate([ __metadata(\"design:paramtypes\", [ViewContainerRef,\n ComponentFactoryResolver])\n], FilterMenuHostDirective);\n\n/**\n * @hidden\n */\nlet DateFilterMenuInputComponent = class 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.ɵfac = function DateFilterMenuInputComponent_Factory(t) { return new (t || DateFilterMenuInputComponent)(ɵngcc0.ɵɵdirectiveInject(SinglePopupService)); };\nDateFilterMenuInputComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DateFilterMenuInputComponent, selectors: [[\"kendo-treelist-date-filter-menu-input\"]], inputs: { operators: \"operators\", column: \"column\", filter: \"filter\", operator: \"operator\", currentFilter: \"currentFilter\", filterService: \"filterService\", format: \"format\", formatPlaceholder: \"formatPlaceholder\", placeholder: \"placeholder\", min: \"min\", max: \"max\", activeView: \"activeView\", bottomView: \"bottomView\", topView: \"topView\", weekNumber: \"weekNumber\" }, decls: 3, vars: 17, consts: [[3, \"column\", \"filter\", \"operators\", \"defaultOperator\", \"currentFilter\", \"filterService\"], [\"kendoFilterInput\", \"\", 3, \"filterDelay\", \"value\", \"placeholder\", \"formatPlaceholder\", \"format\", \"min\", \"max\", \"activeView\", \"bottomView\", \"topView\", \"weekNumber\", \"open\"], [\"picker\", \"\"]], template: function DateFilterMenuInputComponent_Template(rf, ctx) { if (rf & 1) {\n const _r1 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-treelist-filter-menu-input-wrapper\", 0)(1, \"kendo-datepicker\", 1, 2);\n ɵngcc0.ɵɵlistener(\"open\", function DateFilterMenuInputComponent_Template_kendo_datepicker_open_1_listener() { ɵngcc0.ɵɵrestoreView(_r1); const _r0 = ɵngcc0.ɵɵreference(2); return ctx.open(_r0); });\n ɵngcc0.ɵɵelementEnd()();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"column\", ctx.column)(\"filter\", ctx.filter)(\"operators\", ctx.operators)(\"defaultOperator\", ctx.operator)(\"currentFilter\", ctx.currentFilter)(\"filterService\", ctx.filterService);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"filterDelay\", 0)(\"value\", ctx.currentFilter == null ? null : ctx.currentFilter.value)(\"placeholder\", ctx.placeholder)(\"formatPlaceholder\", ctx.formatPlaceholder)(\"format\", ctx.format)(\"min\", ctx.min)(\"max\", ctx.max)(\"activeView\", ctx.activeView)(\"bottomView\", ctx.bottomView)(\"topView\", ctx.topView)(\"weekNumber\", ctx.weekNumber);\n } }, directives: [FilterMenuInputWrapperComponent, ɵngcc9.DatePickerComponent, FilterInputDirective], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], DateFilterMenuInputComponent.prototype, \"operators\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnComponent)\n], DateFilterMenuInputComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DateFilterMenuInputComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateFilterMenuInputComponent.prototype, \"operator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DateFilterMenuInputComponent.prototype, \"currentFilter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", FilterService)\n], DateFilterMenuInputComponent.prototype, \"filterService\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateFilterMenuInputComponent.prototype, \"format\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DateFilterMenuInputComponent.prototype, \"formatPlaceholder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateFilterMenuInputComponent.prototype, \"placeholder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], DateFilterMenuInputComponent.prototype, \"min\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], DateFilterMenuInputComponent.prototype, \"max\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateFilterMenuInputComponent.prototype, \"activeView\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateFilterMenuInputComponent.prototype, \"bottomView\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], DateFilterMenuInputComponent.prototype, \"topView\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DateFilterMenuInputComponent.prototype, \"weekNumber\", void 0);\nDateFilterMenuInputComponent = __decorate([ __metadata(\"design:paramtypes\", [SinglePopupService])\n], DateFilterMenuInputComponent);\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 */\nlet FilterMenuModule = class FilterMenuModule {\n static exports() {\n return [\n StringFilterMenuComponent,\n FilterMenuTemplateDirective,\n NumericFilterMenuComponent,\n DateFilterMenuComponent,\n BooleanFilterMenuComponent,\n SharedFilterModule.exports()\n ];\n }\n};\nFilterMenuModule.ɵfac = function FilterMenuModule_Factory(t) { return new (t || FilterMenuModule)(); };\nFilterMenuModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: FilterMenuModule });\nFilterMenuModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[SharedFilterModule], SharedFilterModule] });\n\n// TODO\n// tslint:disable:rxjs-no-unsafe-takeuntil\n/**\n * @hidden\n */\nconst preventOnDblClick$1 = 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-icon-button'));\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 */\nlet DraggableColumnDirective = class 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$1(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.ɵfac = function DraggableColumnDirective_Factory(t) { return new (t || DraggableColumnDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc5.DraggableDirective, 1), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(DragAndDropService), ɵngcc0.ɵɵdirectiveInject(DragHintService), ɵngcc0.ɵɵdirectiveInject(DropCueService), ɵngcc0.ɵɵdirectiveInject(NavigationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nDraggableColumnDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DraggableColumnDirective, selectors: [[\"\", \"kendoDraggableColumn\", \"\"]], hostVars: 2, hostBindings: function DraggableColumnDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-grid-draggable-header\", ctx.hostClass);\n } }, inputs: { context: \"context\", enableDrag: \"enableDrag\" }, outputs: { drag: \"drag\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DraggableColumnDirective.prototype, \"context\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], DraggableColumnDirective.prototype, \"enableDrag\", null);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], DraggableColumnDirective.prototype, \"drag\", void 0);\n__decorate([\n HostBinding('class.k-grid-draggable-header'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], DraggableColumnDirective.prototype, \"hostClass\", null);\nDraggableColumnDirective = __decorate([ __param(0, Host()),\n __metadata(\"design:paramtypes\", [DraggableDirective,\n ElementRef,\n NgZone,\n DragAndDropService,\n DragHintService,\n DropCueService,\n NavigationService,\n Renderer2])\n], DraggableColumnDirective);\n\nconst exported = [\n DraggableColumnDirective,\n DropTargetDirective\n];\n/**\n * @hidden\n */\nlet DragAndDropModule = class DragAndDropModule {\n};\nDragAndDropModule.ɵfac = function DragAndDropModule_Factory(t) { return new (t || DragAndDropModule)(); };\nDragAndDropModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: DragAndDropModule });\nDragAndDropModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\n/**\n * @hidden\n */\nlet ColumnListComponent = class 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.ɵfac = function ColumnListComponent_Factory(t) { return new (t || ColumnListComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nColumnListComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColumnListComponent, selectors: [[\"kendo-treelist-columnlist\"]], hostVars: 2, hostBindings: function ColumnListComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-column-list-wrapper\", ctx.className);\n } }, inputs: { autoSync: \"autoSync\", allowHideAll: \"allowHideAll\", actionsClass: \"actionsClass\", columns: \"columns\", applyText: \"applyText\", resetText: \"resetText\" }, outputs: { reset: \"reset\", apply: \"apply\", columnChange: \"columnChange\" }, decls: 3, vars: 2, consts: [[1, \"k-column-list\"], [\"class\", \"k-column-list-item\", 4, \"ngFor\", \"ngForOf\"], [3, \"ngClass\", 4, \"ngIf\"], [1, \"k-column-list-item\"], [\"type\", \"checkbox\", 1, \"k-checkbox\", \"k-checkbox-md\", \"k-rounded-md\", 3, \"checked\", \"disabled\"], [1, \"k-checkbox-label\"], [3, \"ngClass\"], [\"type\", \"button\", 1, \"k-button\", \"k-button-solid-base\", \"k-button-solid\", \"k-button-md\", \"k-rounded-md\", \"k-button-rectangle\", 3, \"click\"], [\"type\", \"button\", 1, \"k-button\", \"k-button-solid-primary\", \"k-button-solid\", \"k-button-md\", \"k-rounded-md\", \"k-button-rectangle\", 3, \"click\"]], template: function ColumnListComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 0);\n ɵngcc0.ɵɵtemplate(1, ColumnListComponent_label_1_Template, 4, 4, \"label\", 1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(2, ColumnListComponent_div_2_Template, 5, 3, \"div\", 2);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.columns);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.autoSync);\n } }, directives: [ɵngcc4.NgForOf, ɵngcc4.NgIf, ɵngcc4.NgClass], encapsulation: 2 });\n__decorate([\n HostBinding(\"class.k-column-list-wrapper\"),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ColumnListComponent.prototype, \"className\", null);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ColumnListComponent.prototype, \"reset\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ColumnListComponent.prototype, \"apply\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ColumnListComponent.prototype, \"columnChange\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], ColumnListComponent.prototype, \"columns\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnListComponent.prototype, \"autoSync\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnListComponent.prototype, \"allowHideAll\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColumnListComponent.prototype, \"applyText\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColumnListComponent.prototype, \"resetText\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColumnListComponent.prototype, \"actionsClass\", void 0);\nColumnListComponent = __decorate([ __metadata(\"design:paramtypes\", [ElementRef, NgZone, Renderer2])\n], ColumnListComponent);\n\n/**\n * Represents the component for selecting columns in the TreeList. To enable the user to show or hide columns,\n * add the component inside a [`ToolbarTemplate`]({% slug api_treelist_toolbartemplatedirective %}) directive.\n *\n * {% meta height:500 %}\n * {% embed_file column-menu/chooser-toolbar/app.component.ts preview %}\n * {% embed_file column-menu/chooser-toolbar/app.module.ts %}\n * {% embed_file shared/main.ts %}\n * {% embed_file shared/employees.ts %}\n * {% endmeta %}\n */\nlet ColumnChooserComponent = class 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.ɵfac = function ColumnChooserComponent_Factory(t) { return new (t || ColumnChooserComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ColumnInfoService), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.PopupService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nColumnChooserComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColumnChooserComponent, selectors: [[\"kendo-treelist-column-chooser\"]], inputs: { autoSync: \"autoSync\", allowHideAll: \"allowHideAll\" }, decls: 5, vars: 1, consts: [[\"type\", \"button\", 1, \"k-button\", \"k-button-flat-base\", \"k-button-flat\", \"k-icon-button\", \"k-button-md\", \"k-rounded-md\", \"k-button-rectangle\", \"k-icon-button\", 3, \"click\"], [\"anchor\", \"\"], [1, \"k-button-icon\", \"k-icon\", \"k-i-columns\"], [\"template\", \"\"], [1, \"k-column-chooser-title\"], [3, \"columns\", \"applyText\", \"resetText\", \"autoSync\", \"allowHideAll\", \"apply\", \"columnChange\"]], template: function ColumnChooserComponent_Template(rf, ctx) { if (rf & 1) {\n const _r6 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 0, 1);\n ɵngcc0.ɵɵlistener(\"click\", function ColumnChooserComponent_Template_button_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r6); const _r0 = ɵngcc0.ɵɵreference(1); const _r1 = ɵngcc0.ɵɵreference(4); return ctx.toggle(_r0, _r1); });\n ɵngcc0.ɵɵelement(2, \"span\", 2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, ColumnChooserComponent_ng_template_3_Template, 3, 6, \"ng-template\", null, 3, ɵngcc0.ɵɵtemplateRefExtractor);\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"title\", ctx.localization.get(\"columns\"));\n } }, directives: [ColumnListComponent], encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnChooserComponent.prototype, \"autoSync\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnChooserComponent.prototype, \"allowHideAll\", void 0);\nColumnChooserComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService,\n ColumnInfoService,\n PopupService,\n NgZone,\n Renderer2,\n ChangeDetectorRef])\n], ColumnChooserComponent);\n\n/**\n * Represents the service that is passed to the\n * [`ColumnMenuTemplate`]({% slug api_treelist_columnmenutemplatedirective %}) directive.\n *\n * {% meta height:500 %}\n * {% embed_file column-menu/template-item/app.component.ts preview %}\n * {% embed_file column-menu/template-item/app.module.ts %}\n * {% embed_file shared/main.ts %}\n * {% embed_file shared/employees.ts %}\n * {% endmeta %}\n */\nlet ColumnMenuService = class ColumnMenuService {\n /**\n * Represents the service that is passed to the\n * [`ColumnMenuTemplate`]({% slug api_treelist_columnmenutemplatedirective %}) directive.\n *\n * {% meta height:500 %}\n * {% embed_file column-menu/template-item/app.component.ts preview %}\n * {% embed_file column-menu/template-item/app.module.ts %}\n * {% embed_file shared/main.ts %}\n * {% embed_file shared/employees.ts %}\n * {% endmeta %}\n */\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.ɵfac = function ColumnMenuService_Factory(t) { return new (t || ColumnMenuService)(); };\nColumnMenuService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ColumnMenuService, factory: function (t) { return ColumnMenuService.ɵfac(t); } });\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.ɵfac = function ColumnMenuItemBase_Factory(t) { return new (t || ColumnMenuItemBase)(); };\nColumnMenuItemBase.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ColumnMenuItemBase, hostVars: 2, hostBindings: function ColumnMenuItemBase_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-columnmenu-item-wrapper\", ctx.hostClass);\n } }, inputs: { service: \"service\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", ColumnMenuService)\n], ColumnMenuItemBase.prototype, \"service\", void 0);\n__decorate([\n HostBinding('class.k-columnmenu-item-wrapper'),\n __metadata(\"design:type\", Boolean)\n], ColumnMenuItemBase.prototype, \"hostClass\", void 0);\n\n/* tslint:disable:max-line-length */\n/**\n * Represents the component for selecting columns in the TreeList that can be placed\n * inside a [`ColumnMenuTemplate`]({% slug api_treelist_columnmenutemplatedirective %}) directive.\n *\n * > You have to set the [ColumnMenuService]({% slug api_treelist_columnmenuservice %}) that is passed by\n * > the template to the service input of the `kendo-treelist-columnmenu-chooser` component.\n *\n * {% meta height:500 %}\n * {% embed_file column-menu/template-chooser/app.component.ts preview %}\n * {% embed_file column-menu/template-chooser/app.module.ts %}\n * {% embed_file shared/main.ts %}\n * {% embed_file shared/employees.ts %}\n * {% endmeta %}\n */\nlet ColumnMenuChooserComponent = class 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.ɵfac = function ColumnMenuChooserComponent_Factory(t) { return new (t || ColumnMenuChooserComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ColumnInfoService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nColumnMenuChooserComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColumnMenuChooserComponent, selectors: [[\"kendo-treelist-columnmenu-chooser\"]], inputs: { expanded: \"expanded\" }, outputs: { expand: \"expand\", collapse: \"collapse\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 2, vars: 2, consts: [[\"icon\", \"columns\", 3, \"text\", \"expanded\", \"collapse\", \"expand\"], [\"kendoTreeListColumnMenuItemContentTemplate\", \"\"], [3, \"applyText\", \"resetText\", \"columns\", \"autoSync\", \"allowHideAll\", \"actionsClass\", \"apply\"]], template: function ColumnMenuChooserComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-treelist-columnmenu-item\", 0);\n ɵngcc0.ɵɵlistener(\"collapse\", function ColumnMenuChooserComponent_Template_kendo_treelist_columnmenu_item_collapse_0_listener() { return ctx.collapse.emit(); })(\"expand\", function ColumnMenuChooserComponent_Template_kendo_treelist_columnmenu_item_expand_0_listener() { return ctx.expand.emit(); });\n ɵngcc0.ɵɵtemplate(1, ColumnMenuChooserComponent_ng_template_1_Template, 1, 6, \"ng-template\", 1);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"text\", ctx.localization.get(\"columns\"))(\"expanded\", ctx.expanded);\n } }, directives: function () { return [ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnListComponent]; }, encapsulation: 2 });\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ColumnMenuChooserComponent.prototype, \"expand\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ColumnMenuChooserComponent.prototype, \"collapse\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnMenuChooserComponent.prototype, \"expanded\", void 0);\nColumnMenuChooserComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService,\n ColumnInfoService,\n ChangeDetectorRef])\n], ColumnMenuChooserComponent);\n\n/* tslint:disable:max-line-length */\n/**\n * Represents the component for editing column filters in the TreeList that can be placed\n * inside a [`ColumnMenuTemplate`]({% slug api_treelist_columnmenutemplatedirective %}) directive.\n *\n * > You have to set the [ColumnMenuService]({% slug api_treelist_columnmenuservice %}) that is passed by\n * > the template to the service input of the `kendo-treelist-columnmenu-filter` component.\n *\n * {% meta height:500 %}\n * {% embed_file column-menu/template-filter/app.component.ts preview %}\n * {% embed_file column-menu/template-filter/app.module.ts %}\n * {% embed_file shared/main.ts %}\n * {% embed_file shared/employees.ts %}\n * {% endmeta %}\n */\nlet ColumnMenuFilterComponent = class 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.ɵfac = function ColumnMenuFilterComponent_Factory(t) { return new (t || ColumnMenuFilterComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService)); };\nColumnMenuFilterComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColumnMenuFilterComponent, selectors: [[\"kendo-treelist-columnmenu-filter\"]], inputs: { expanded: \"expanded\" }, outputs: { expand: \"expand\", collapse: \"collapse\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 2, vars: 2, consts: [[\"icon\", \"filter\", 3, \"text\", \"expanded\", \"collapse\", \"expand\"], [\"kendoTreeListColumnMenuItemContentTemplate\", \"\"], [3, \"column\", \"filter\", \"actionsClass\", \"close\"]], template: function ColumnMenuFilterComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-treelist-columnmenu-item\", 0);\n ɵngcc0.ɵɵlistener(\"collapse\", function ColumnMenuFilterComponent_Template_kendo_treelist_columnmenu_item_collapse_0_listener() { return ctx.collapse.emit(); })(\"expand\", function ColumnMenuFilterComponent_Template_kendo_treelist_columnmenu_item_expand_0_listener() { return ctx.expand.emit(); });\n ɵngcc0.ɵɵtemplate(1, ColumnMenuFilterComponent_ng_template_1_Template, 1, 3, \"ng-template\", 1);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"text\", ctx.localization.get(\"filter\"))(\"expanded\", ctx.expanded);\n } }, directives: function () { return [ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, FilterMenuContainerComponent]; }, encapsulation: 2 });\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ColumnMenuFilterComponent.prototype, \"expand\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ColumnMenuFilterComponent.prototype, \"collapse\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnMenuFilterComponent.prototype, \"expanded\", void 0);\nColumnMenuFilterComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], ColumnMenuFilterComponent);\n\n/* tslint:disable:max-line-length */\n/**\n * Represents the content template of the\n * [`kendo-treelist-columnmenu-item`]({% slug api_treelist_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 * `kendoTreeListColumnMenuItemContentTemplate` directive inside a ``.\n *\n * {% meta height:500 %}\n * {% embed_file column-menu/template-item-content/app.component.ts preview %}\n * {% embed_file column-menu/template-item-content/app.module.ts %}\n * {% embed_file shared/main.ts %}\n * {% embed_file shared/employees.ts %}\n * {% endmeta %}\n */\nlet ColumnMenuItemContentTemplateDirective = class ColumnMenuItemContentTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nColumnMenuItemContentTemplateDirective.ɵfac = function ColumnMenuItemContentTemplateDirective_Factory(t) { return new (t || ColumnMenuItemContentTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nColumnMenuItemContentTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ColumnMenuItemContentTemplateDirective, selectors: [[\"\", \"kendoTreeListColumnMenuItemContentTemplate\", \"\"]] });\nColumnMenuItemContentTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], ColumnMenuItemContentTemplateDirective);\n\n/**\n * Represents an item that can be placed inside a\n * [`ColumnMenuTemplate`]({% slug api_treelist_columnmenutemplatedirective %}) directive.\n *\n * {% meta height:500 %}\n * {% embed_file column-menu/template-item/app.component.ts preview %}\n * {% embed_file column-menu/template-item/app.module.ts %}\n * {% embed_file shared/main.ts %}\n * {% embed_file shared/employees.ts %}\n * {% endmeta %}\n */\nlet ColumnMenuItemComponent = class ColumnMenuItemComponent {\n /**\n * Represents an item that can be placed inside a\n * [`ColumnMenuTemplate`]({% slug api_treelist_columnmenutemplatedirective %}) directive.\n *\n * {% meta height:500 %}\n * {% embed_file column-menu/template-item/app.component.ts preview %}\n * {% embed_file column-menu/template-item/app.module.ts %}\n * {% embed_file shared/main.ts %}\n * {% embed_file shared/employees.ts %}\n * {% endmeta %}\n */\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.ɵfac = function ColumnMenuItemComponent_Factory(t) { return new (t || ColumnMenuItemComponent)(); };\nColumnMenuItemComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColumnMenuItemComponent, selectors: [[\"kendo-treelist-columnmenu-item\"]], contentQueries: function ColumnMenuItemComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, ColumnMenuItemContentTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.contentTemplate = _t.first);\n } }, inputs: { expanded: \"expanded\", icon: \"icon\", text: \"text\", selected: \"selected\", disabled: \"disabled\" }, outputs: { itemClick: \"itemClick\", expand: \"expand\", collapse: \"collapse\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], decls: 4, vars: 7, consts: [[1, \"k-columnmenu-item\", 3, \"click\"], [\"class\", \"k-icon\", 3, \"ngClass\", 4, \"ngIf\"], [\"style\", \"overflow:hidden;\", \"class\", \"k-columnmenu-item-content\", 4, \"ngIf\"], [1, \"k-icon\", 3, \"ngClass\"], [1, \"k-columnmenu-item-content\", 2, \"overflow\", \"hidden\"], [3, \"ngTemplateOutlet\"]], template: function ColumnMenuItemComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 0);\n ɵngcc0.ɵɵlistener(\"click\", function ColumnMenuItemComponent_Template_div_click_0_listener($event) { return ctx.onClick($event); });\n ɵngcc0.ɵɵtemplate(1, ColumnMenuItemComponent_span_1_Template, 1, 1, \"span\", 1);\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, ColumnMenuItemComponent_div_3_Template, 3, 2, \"div\", 2);\n } if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-state-selected\", ctx.selected)(\"k-state-disabled\", ctx.disabled);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.icon);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx.text, \" \");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.contentTemplate);\n } }, directives: [ɵngcc4.NgIf, ɵngcc4.NgClass, ɵngcc4.NgTemplateOutlet], encapsulation: 2, data: { animation: [\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__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ColumnMenuItemComponent.prototype, \"itemClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ColumnMenuItemComponent.prototype, \"expand\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ColumnMenuItemComponent.prototype, \"collapse\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColumnMenuItemComponent.prototype, \"icon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ColumnMenuItemComponent.prototype, \"text\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnMenuItemComponent.prototype, \"selected\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnMenuItemComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnMenuItemComponent.prototype, \"expanded\", void 0);\n__decorate([\n ContentChild(ColumnMenuItemContentTemplateDirective, { static: false }),\n __metadata(\"design:type\", ColumnMenuItemContentTemplateDirective)\n], ColumnMenuItemComponent.prototype, \"contentTemplate\", void 0);\n\n/* tslint:disable:max-line-length */\n/**\n * Represents a column-menu item for sorting TreeList columns that can be placed inside a\n * [`ColumnMenuTemplate`]({% slug api_treelist_columnmenutemplatedirective %}) directive.\n * Allows the user to sort the column.\n *\n * > You have to set the [ColumnMenuService]({% slug api_treelist_columnmenuservice %}) that is passed by\n * > the template to the service input of the `kendo-treelist-columnmenu-sort` component.\n *\n * {% meta height:500 %}\n * {% embed_file column-menu/template-sort/app.component.ts preview %}\n * {% embed_file column-menu/template-sort/app.module.ts %}\n * {% embed_file shared/main.ts %}\n * {% embed_file shared/employees.ts %}\n * {% endmeta %}\n */\nlet ColumnMenuSortComponent = class 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.ɵfac = function ColumnMenuSortComponent_Factory(t) { return new (t || ColumnMenuSortComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(SortService)); };\nColumnMenuSortComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColumnMenuSortComponent, selectors: [[\"kendo-treelist-columnmenu-sort\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 2, vars: 4, consts: [[\"icon\", \"sort-asc-sm\", 3, \"text\", \"selected\", \"itemClick\"], [\"icon\", \"sort-desc-sm\", 3, \"text\", \"selected\", \"itemClick\"]], template: function ColumnMenuSortComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-treelist-columnmenu-item\", 0);\n ɵngcc0.ɵɵlistener(\"itemClick\", function ColumnMenuSortComponent_Template_kendo_treelist_columnmenu_item_itemClick_0_listener() { return ctx.toggleSort(\"asc\"); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(1, \"kendo-treelist-columnmenu-item\", 1);\n ɵngcc0.ɵɵlistener(\"itemClick\", function ColumnMenuSortComponent_Template_kendo_treelist_columnmenu_item_itemClick_1_listener() { return ctx.toggleSort(\"desc\"); });\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"text\", ctx.localization.get(\"sortAscending\"))(\"selected\", ctx.sortedAsc);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"text\", ctx.localization.get(\"sortDescending\"))(\"selected\", ctx.sortedDesc);\n } }, directives: [ColumnMenuItemComponent], encapsulation: 2 });\nColumnMenuSortComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService, SortService])\n], ColumnMenuSortComponent);\n\nconst POPUP_CLASS = 'k-grid-columnmenu-popup';\n/**\n * Represents the [column menu]({% slug columnmenu_treelist %}) component.\n */\nlet ColumnMenuComponent = class 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.ɵfac = function ColumnMenuComponent_Factory(t) { return new (t || ColumnMenuComponent)(ɵngcc0.ɵɵdirectiveInject(SinglePopupService), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ColumnMenuService)); };\nColumnMenuComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColumnMenuComponent, selectors: [[\"kendo-treelist-column-menu\"]], hostVars: 2, hostBindings: function ColumnMenuComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-grid-column-menu-standalone\", ctx.standalone);\n } }, inputs: { standalone: \"standalone\", settings: \"settings\", sortable: \"sortable\", column: \"column\", sort: \"sort\", filter: \"filter\", columnMenuTemplate: \"columnMenuTemplate\" }, features: [ɵngcc0.ɵɵProvidersFeature([ColumnMenuService]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 7, vars: 4, consts: [[\"href\", \"#\", \"tabindex\", \"-1\", 1, \"k-grid-column-menu\", \"k-grid-filter\", 3, \"ngClass\", \"click\"], [\"anchor\", \"\"], [1, \"k-icon\", \"k-i-more-vertical\"], [\"template\", \"\"], [\"defaultTemplate\", \"\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [3, \"service\", 4, \"ngIf\"], [3, \"service\", \"expanded\", \"expand\", 4, \"ngIf\"], [3, \"service\"], [3, \"service\", \"expanded\", \"expand\"]], template: function ColumnMenuComponent_Template(rf, ctx) { if (rf & 1) {\n const _r13 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"a\", 0, 1);\n ɵngcc0.ɵɵlistener(\"click\", function ColumnMenuComponent_Template_a_click_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r13); const _r0 = ɵngcc0.ɵɵreference(1); const _r1 = ɵngcc0.ɵɵreference(4); return ctx.toggle($event, _r0, _r1); });\n ɵngcc0.ɵɵelement(2, \"span\", 2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, ColumnMenuComponent_ng_template_3_Template, 1, 5, \"ng-template\", null, 3, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(5, ColumnMenuComponent_ng_template_5_Template, 4, 4, \"ng-template\", null, 4, ɵngcc0.ɵɵtemplateRefExtractor);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction1(2, _c130, ctx.isActive));\n ɵngcc0.ɵɵattribute(\"title\", ctx.localization.get(\"columnMenu\"));\n } }, directives: function () { return [ɵngcc4.NgClass, ɵngcc4.NgTemplateOutlet, ɵngcc4.NgIf, ColumnMenuSortComponent, ColumnMenuLockComponent, ColumnMenuChooserComponent, ColumnMenuFilterComponent]; }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-grid-column-menu-standalone'),\n Input(),\n __metadata(\"design:type\", Boolean)\n], ColumnMenuComponent.prototype, \"standalone\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColumnMenuComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColumnMenuComponent.prototype, \"settings\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColumnMenuComponent.prototype, \"sort\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColumnMenuComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ColumnMenuComponent.prototype, \"sortable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], ColumnMenuComponent.prototype, \"columnMenuTemplate\", void 0);\nColumnMenuComponent = __decorate([ __metadata(\"design:paramtypes\", [SinglePopupService,\n LocalizationService,\n ColumnMenuService])\n], ColumnMenuComponent);\n\n/* tslint:disable:max-line-length */\n/**\n * Represents a column-menu item that can be placed inside a\n * [`ColumnMenuTemplate`]({% slug api_treelist_columnmenutemplatedirective %}) directive.\n * Allows the user to lock or unlock the columns.\n *\n * > You have to set the [ColumnMenuService]({% slug api_treelist_columnmenuservice %}) that is passed by\n * > the template to the service input of the `kendo-treelist-columnmenu-lock` component.\n *\n * {% meta height:500 %}\n * {% embed_file column-menu/template-lock/app.component.ts preview %}\n * {% embed_file column-menu/template-lock/app.module.ts %}\n * {% embed_file shared/main.ts %}\n * {% embed_file shared/employees.ts %}\n * {% endmeta %}\n */\nlet ColumnMenuLockComponent = class 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.ɵfac = function ColumnMenuLockComponent_Factory(t) { return new (t || ColumnMenuLockComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ColumnInfoService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nColumnMenuLockComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColumnMenuLockComponent, selectors: [[\"kendo-treelist-columnmenu-lock\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 1, vars: 3, consts: [[3, \"text\", \"icon\", \"disabled\", \"itemClick\"]], template: function ColumnMenuLockComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"kendo-treelist-columnmenu-item\", 0);\n ɵngcc0.ɵɵlistener(\"itemClick\", function ColumnMenuLockComponent_Template_kendo_treelist_columnmenu_item_itemClick_0_listener() { return ctx.toggleColumn(); });\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"text\", ctx.text)(\"icon\", ctx.icon)(\"disabled\", ctx.disabled);\n } }, directives: [ColumnMenuItemComponent], encapsulation: 2 });\nColumnMenuLockComponent = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService,\n ColumnInfoService,\n ChangeDetectorRef])\n], ColumnMenuLockComponent);\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 */\nlet ColumnMenuModule = class 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.ɵfac = function ColumnMenuModule_Factory(t) { return new (t || ColumnMenuModule)(); };\nColumnMenuModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: ColumnMenuModule });\nColumnMenuModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule, FilterMenuModule]] });\n\nconst exportedModules$1 = [\n HeaderComponent,\n HeaderTemplateDirective,\n ColumnHandleDirective\n];\nconst importedModules$2 = [\n CommonModule,\n RowFilterModule,\n FilterMenuModule,\n SharedModule,\n DragAndDropModule,\n ColumnMenuModule\n];\n/**\n * @hidden\n */\nlet HeaderModule = class HeaderModule {\n static exports() {\n return [\n HeaderTemplateDirective\n ];\n }\n};\nHeaderModule.ɵfac = function HeaderModule_Factory(t) { return new (t || HeaderModule)(); };\nHeaderModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: HeaderModule });\nHeaderModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[...importedModules$2]] });\n\nvar CommandColumnComponent_1;\n/**\n * Represents the command columns of the TreeList. 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 TreeList in Angular Reactive Forms]({% slug editing_reactive_forms_treelist %}).\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_treelist_editcommanddirective %})\n * - [`RemoveCommandDirective`]({% slug api_treelist_removecommanddirective %})\n * - [`CancelCommandDirective`]({% slug api_treelist_cancelcommanddirective %})\n * - [`SaveCommandDirective`]({% slug api_treelist_savecommanddirective %})\n *\n * {% meta height:590 %}\n * {% embed_file editing/editing-directives/reactive-editing/app.component.ts preview %}\n * {% embed_file shared/employees.ts %}\n * {% embed_file editing/editing-directives/reactive-editing/app.module.ts %}\n * {% embed_file shared/main.ts %}\n * {% endmeta %}\n */\nlet CommandColumnComponent = CommandColumnComponent_1 = class CommandColumnComponent extends ColumnBase$1 {\n constructor(parent, optionChanges) {\n super(parent, optionChanges);\n this.parent = parent;\n this.isCommand = true;\n }\n get templateRef() {\n return this.template ? this.template.templateRef : undefined;\n }\n};\nCommandColumnComponent.ɵfac = function CommandColumnComponent_Factory(t) { return new (t || CommandColumnComponent)(ɵngcc0.ɵɵdirectiveInject(ColumnBase$1, 13), ɵngcc0.ɵɵdirectiveInject(OptionChangesService)); };\nCommandColumnComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CommandColumnComponent, selectors: [[\"kendo-treelist-command-column\"]], contentQueries: function CommandColumnComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, CellTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.template = _t.first);\n } }, features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: ColumnBase$1,\n useExisting: forwardRef(() => CommandColumnComponent_1)\n }\n ]), ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function CommandColumnComponent_Template(rf, ctx) { }, encapsulation: 2 });\n__decorate([\n ContentChild(CellTemplateDirective, { static: false }),\n __metadata(\"design:type\", CellTemplateDirective)\n], CommandColumnComponent.prototype, \"template\", void 0);\nCommandColumnComponent = CommandColumnComponent_1 = __decorate([ __param(0, SkipSelf()), __param(0, Host()), __param(0, Optional()),\n __metadata(\"design:paramtypes\", [ColumnBase$1, OptionChangesService])\n], CommandColumnComponent);\n\nconst columnCellIndex = (cell, cells) => {\n for (let idx = 0; idx < cells.length; idx++) {\n if (cells[idx] === cell) {\n return idx;\n }\n }\n};\n/**\n * @hidden\n */\nlet TableBodyComponent = class TableBodyComponent {\n constructor(changeNotification, editService, localization, ngZone, renderer, element, domEvents, columnInfoService, navigationService, expandState, selection) {\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.columnInfoService = columnInfoService;\n this.navigationService = navigationService;\n this.expandState = expandState;\n this.selection = selection;\n this.columns = [];\n this.skip = 0;\n this.noRecordsText = this.localization.get('noRecords');\n this.isLocked = 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 this.selection.registerTable(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 isOdd(item) {\n return item.index % 2 !== 0;\n }\n trackByWrapper(index, item) {\n if (item.type === 'data') {\n item.isEditing = this.editService.isEdited(item.data);\n }\n return this.trackBy(index, item);\n }\n trackByColumns(index, item) {\n return this.virtualColumns ? index : item;\n }\n ngOnChanges(changes) {\n if (isChanged(\"columns\", changes, false)) {\n this.changeNotification.notify();\n }\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;\n }\n ariaExpanded(item, column) {\n if (!column.expandable || !item.hasChildren) {\n return;\n }\n return Boolean(item.expanded);\n }\n ariaSelected(item, column, columnIndex) {\n if (!this.selection.enabled) {\n return;\n }\n return item.selected || this.isCellSelected(item.data, column, columnIndex);\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 ngDoCheck() {\n this.headerOffset = this.columnInfoService.totalLevels + (hasFilterRow(this.filterable) ? 1 : 0);\n }\n ngOnDestroy() {\n if (this.clickSubscription) {\n this.clickSubscription();\n }\n this.cellKeydownSubscription.unsubscribe();\n this.selection.unregisterTable(this);\n clearTimeout(this.clickTimeout);\n }\n isEditingCell(item, column) {\n return Boolean(item.editContext && this.editService.isEditingColumn(column));\n }\n isEditingRow(item) {\n return Boolean(item.editContext) || item.isNew;\n }\n get columnsContainer() {\n return this.columnInfoService.columnsContainer;\n }\n get hasFooter() {\n return this.columnsContainer.hasFooter;\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;\n }\n get footerColumns() {\n return this.isLocked ? this.columnsContainer.lockedColumnsToRender : this.columnsContainer.nonLockedColumnsToRender;\n }\n logicalRowIndex(rowIndex) {\n return 1 + rowIndex + this.headerOffset;\n }\n isCellSelected(dataItem, column, columnIndex) {\n return this.selection.isCellSelected(dataItem, column, columnIndex);\n }\n targetArgs(target, skipFocusable) {\n const { cell, row } = this.targetElements(target);\n if (cell && (!skipFocusable || target === cell || !isFocusableWithTabKey(target, false))) {\n const index = columnCellIndex(cell, row.cells);\n const column = this.columns.toArray()[index];\n const columnIndex = this.lockedColumnsCount + index;\n return {\n item: this.rowItem(row),\n column: column,\n columnIndex: columnIndex\n };\n }\n }\n checkIfClickable(target, cell) {\n return !matchesNodeName('label')(target) &&\n (!hasClasses(target, ICON_CLASS) || hasClasses(target, EMPTY_ICON_CLASS)) &&\n !closestInScope(target, matchesClasses(IGNORE_CONTAINER_CLASSES), cell);\n }\n clickHandler(eventArg) {\n const target = eventArg.target;\n const { cell, row } = this.targetElements(target);\n if (cell && !hasClasses(cell, NON_DATA_CELL_CLASSES) &&\n !hasClasses(row, NON_DATA_ROW_CLASSES)) {\n if (this.expandClick(eventArg, row) || this.checkboxClick(cell, row, eventArg)) {\n return;\n }\n this.editService.preventCellClose();\n const focusable = target !== cell && isFocusableWithTabKey(target, false);\n const targetClickable = this.checkIfClickable(target, cell);\n if (!focusable && targetClickable) {\n const args = this.cellClickArgs(cell, row, eventArg);\n if (!args) {\n return;\n }\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(args);\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 const viewItem = this.rowItem(row);\n if (viewItem.type !== 'data') {\n return;\n }\n const type = eventArg.type === 'keydown' ? 'click' : eventArg.type;\n return {\n column: column,\n columnIndex: columnIndex,\n viewItem: viewItem,\n dataItem: viewItem.data,\n rowIndex: viewItem.index,\n index: viewItem.index,\n isEditedColumn: (viewItem.editContext && this.editService.isEditingColumn(column)),\n isEdited: viewItem.isNew || (viewItem.editContext && this.editService.isEditedColumn(column)),\n originalEvent: eventArg,\n type: type\n };\n }\n targetElements(target) {\n const element = this.element.nativeElement;\n let cell, row, body, treelistElement;\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 treelistElement = closestInScope(currentTarget, matchesClasses('k-treelist k-grid'), element);\n } while (body && body !== element && !treelistElement);\n if (cell && body === element && !treelistElement) {\n return {\n cell,\n row\n };\n }\n return {};\n }\n expandClick(eventArg, row) {\n if (eventArg.type === 'click' && hasClasses(eventArg.target, 'k-i-expand k-i-collapse')) {\n eventArg.preventDefault();\n const viewItem = this.rowItem(row);\n if (viewItem.type === 'data') {\n this.ngZone.run(() => {\n this.expandState.toggleState(viewItem.data);\n });\n return true;\n }\n }\n }\n checkboxClick(cell, row, eventArg) {\n if (eventArg.type === 'click' && hasClasses(cell, 'k-checkbox-cell') &&\n this.selection.enabled && this.selection.rowSelection) {\n const args = this.cellClickArgs(cell, row, eventArg);\n this.selection.checkboxClick(args);\n if (eventArg.target.checked !== this.selection.isRowSelected(args.dataItem)) {\n eventArg.preventDefault();\n }\n return true;\n }\n }\n rowItem(row) {\n let viewIndex = row.getAttribute('data-treelist-view-index');\n viewIndex = viewIndex ? parseInt(viewIndex, 10) : -1;\n const viewItem = this.view.at(viewIndex);\n return viewItem;\n }\n};\nTableBodyComponent.ɵfac = function TableBodyComponent_Factory(t) { return new (t || TableBodyComponent)(ɵngcc0.ɵɵdirectiveInject(ChangeNotificationService), ɵngcc0.ɵɵdirectiveInject(EditService), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(DomEventsService), ɵngcc0.ɵɵdirectiveInject(ColumnInfoService), ɵngcc0.ɵɵdirectiveInject(NavigationService), ɵngcc0.ɵɵdirectiveInject(ExpandStateService), ɵngcc0.ɵɵdirectiveInject(SelectionService)); };\nTableBodyComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: TableBodyComponent, selectors: [[\"\", \"kendoTreeListTableBody\", \"\"]], inputs: { columns: \"columns\", skip: \"skip\", noRecordsText: \"noRecordsText\", isLocked: \"isLocked\", lockedColumnsCount: \"lockedColumnsCount\", totalColumnsCount: \"totalColumnsCount\", trackBy: \"trackBy\", rowClass: \"rowClass\", allColumns: \"allColumns\", noRecordsTemplate: \"noRecordsTemplate\", view: \"view\", filterable: \"filterable\", virtualColumns: \"virtualColumns\", expandIcons: \"expandIcons\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], attrs: _c131, decls: 2, vars: 3, consts: [[\"class\", \"k-grid-norecords\", 4, \"ngIf\"], [4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [1, \"k-grid-norecords\"], [3, \"ngTemplateOutlet\", 4, \"ngIf\"], [4, \"ngIf\"], [3, \"ngTemplateOutlet\"], [\"kendoTreeListLogicalRow\", \"\", 3, \"dataRowIndex\", \"dataItem\", \"logicalRowIndex\", \"logicalSlaveRow\", \"logicalCellsCount\", \"logicalSlaveCellsCount\", \"isNew\", \"ngClass\", \"k-alt\", \"k-grid-edit-row\", \"k-grid-add-row\", \"k-state-selected\", 4, \"ngIf\"], [\"class\", \"k-footer\", \"kendoTreeListLogicalRow\", \"\", 3, \"logicalRowIndex\", \"logicalSlaveRow\", \"logicalCellsCount\", \"logicalSlaveCellsCount\", 4, \"ngIf\"], [\"kendoTreeListLogicalRow\", \"\", 3, \"dataRowIndex\", \"dataItem\", \"logicalRowIndex\", \"logicalSlaveRow\", \"logicalCellsCount\", \"logicalSlaveCellsCount\", \"isNew\", \"ngClass\"], [\"kendoTreeListCell\", \"\", \"kendoTreeListLogicalCell\", \"\", \"role\", \"gridcell\", 3, \"columnIndex\", \"column\", \"viewItem\", \"dataItem\", \"level\", \"hasChildren\", \"isExpanded\", \"loading\", \"isNew\", \"selected\", \"expandIcons\", \"logicalRowIndex\", \"logicalColIndex\", \"dataRowIndex\", \"colIndex\", \"colSpan\", \"expandable\", \"ngClass\", \"k-grid-edit-cell\", \"k-state-selected\", \"ngStyle\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"kendoTreeListCell\", \"\", \"kendoTreeListLogicalCell\", \"\", \"role\", \"gridcell\", 3, \"columnIndex\", \"column\", \"viewItem\", \"dataItem\", \"level\", \"hasChildren\", \"isExpanded\", \"loading\", \"isNew\", \"selected\", \"expandIcons\", \"logicalRowIndex\", \"logicalColIndex\", \"dataRowIndex\", \"colIndex\", \"colSpan\", \"expandable\", \"ngClass\", \"ngStyle\"], [\"kendoTreeListLogicalRow\", \"\", 1, \"k-footer\", 3, \"logicalRowIndex\", \"logicalSlaveRow\", \"logicalCellsCount\", \"logicalSlaveCellsCount\"], [\"kendoTreeListLogicalCell\", \"\", 3, \"logicalRowIndex\", \"logicalColIndex\", \"column\", \"colIndex\", \"ngClass\", \"ngStyle\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"kendoTreeListLogicalCell\", \"\", 3, \"logicalRowIndex\", \"logicalColIndex\", \"column\", \"colIndex\", \"ngClass\", \"ngStyle\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"class\", \"k-icon k-i-none\", 4, \"ngFor\", \"ngForOf\"], [1, \"k-icon\", \"k-i-none\"]], template: function TableBodyComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, TableBodyComponent_tr_0_Template, 4, 3, \"tr\", 0);\n ɵngcc0.ɵɵtemplate(1, TableBodyComponent_ng_container_1_Template, 3, 2, \"ng-container\", 1);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.view || (ctx.view.data == null ? null : ctx.view.data.length) === 0 || ctx.view.data == null);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.view == null ? null : ctx.view.data)(\"ngForTrackBy\", ctx.trackByWrapper);\n } }, directives: function () { return [ɵngcc4.NgIf, ɵngcc4.NgTemplateOutlet, ɵngcc4.NgForOf, LogicalRowDirective, ɵngcc4.NgClass, CellComponent, LogicalCellDirective, ɵngcc4.NgStyle]; }, pipes: function () { return [LevelItemsPipe]; }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], TableBodyComponent.prototype, \"columns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], TableBodyComponent.prototype, \"allColumns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", NoRecordsTemplateDirective)\n], TableBodyComponent.prototype, \"noRecordsTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], TableBodyComponent.prototype, \"view\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], TableBodyComponent.prototype, \"skip\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], TableBodyComponent.prototype, \"filterable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TableBodyComponent.prototype, \"noRecordsText\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TableBodyComponent.prototype, \"isLocked\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], TableBodyComponent.prototype, \"lockedColumnsCount\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], TableBodyComponent.prototype, \"totalColumnsCount\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TableBodyComponent.prototype, \"virtualColumns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TableBodyComponent.prototype, \"expandIcons\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], TableBodyComponent.prototype, \"trackBy\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], TableBodyComponent.prototype, \"rowClass\", void 0);\nTableBodyComponent = __decorate([ __metadata(\"design:paramtypes\", [ChangeNotificationService,\n EditService,\n LocalizationService,\n NgZone,\n Renderer2,\n ElementRef,\n DomEventsService,\n ColumnInfoService,\n NavigationService,\n ExpandStateService,\n SelectionService])\n], TableBodyComponent);\n\n/**\n * @hidden\n */\nlet CellComponent = class CellComponent {\n constructor(editService, focusGroup) {\n this.editService = editService;\n this.focusGroup = focusGroup;\n this.isNew = false;\n this.level = 0;\n this.cellContext = {};\n this._templateContext = {};\n this._editTemplateContext = {};\n this.templateContext.cellContext = this.cellContext;\n this.cellContext.focusGroup = focusGroup;\n }\n get commandCellClass() {\n return this.column.isCommand;\n }\n get checkboxCellClass() {\n return this.column.isCheckboxColumn;\n }\n get textNoWrapClass() {\n return this.column.expandable;\n }\n set viewItem(value) {\n this._viewItem = value;\n this.cellContext.viewItem = this.viewItem;\n }\n get viewItem() {\n return this._viewItem;\n }\n get formGroup() {\n return this.viewItem.isNew ? this.editService.newItemGroup :\n this.viewItem.editContext ? this.viewItem.editContext.group : null;\n }\n get isEdited() {\n return Boolean((this.viewItem.isNew && isColumnEditable(this.column, this.editService.newItemGroup)) ||\n (isColumnEditable(this.column, this.formGroup) &&\n this.viewItem.editContext &&\n this.editService.isEditedColumn(this.column)));\n }\n get templateContext() {\n return this._templateContext;\n }\n get editTemplateContext() {\n this._editTemplateContext.$implicit = this.formGroup;\n this._editTemplateContext.cellContext = this.cellContext;\n this._editTemplateContext.column = this.column;\n this._editTemplateContext.dataItem = this.dataItem;\n this._editTemplateContext.formGroup = this.formGroup;\n this._editTemplateContext.isNew = this.isNew;\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 isSpanColumn() {\n return isSpanColumn(this.column) && !this.column.templateRef;\n }\n get childColumns() {\n return columnsToRender([this.column]);\n }\n ngDoCheck() {\n this.updateTemplateContext();\n }\n ngAfterContentChecked() {\n this.updateTemplateContext();\n }\n updateTemplateContext() {\n if (!this.column.templateRef) {\n return;\n }\n const context = this._templateContext;\n context.$implicit = this.dataItem;\n context.column = this.column;\n context.columnIndex = this.columnIndex;\n context.dataItem = this.dataItem;\n context.hasChildren = this.hasChildren;\n context.isExpanded = this.isExpanded;\n context.isNew = this.isNew;\n context.level = this.level;\n context.loading = this.loading;\n context.rowIndex = this.viewItem.rowIndex;\n }\n};\nCellComponent.ɵfac = function CellComponent_Factory(t) { return new (t || CellComponent)(ɵngcc0.ɵɵdirectiveInject(EditService), ɵngcc0.ɵɵdirectiveInject(FocusGroup)); };\nCellComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CellComponent, selectors: [[\"\", \"kendoTreeListCell\", \"\"]], hostVars: 6, hostBindings: function CellComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-command-cell\", ctx.commandCellClass)(\"k-checkbox-cell\", ctx.checkboxCellClass)(\"k-text-nowrap\", ctx.textNoWrapClass);\n } }, inputs: { isNew: \"isNew\", level: \"level\", viewItem: \"viewItem\", column: \"column\", columnIndex: \"columnIndex\", hasChildren: \"hasChildren\", isExpanded: \"isExpanded\", loading: \"loading\", expandIcons: \"expandIcons\", selected: \"selected\", dataItem: \"dataItem\" }, attrs: _c134, decls: 3, vars: 3, consts: [[3, \"ngSwitch\"], [4, \"ngSwitchCase\"], [4, \"ngIf\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\", 4, \"ngIf\"], [3, \"ngIf\"], [\"class\", \"k-icon k-i-none\", 4, \"ngFor\", \"ngForOf\"], [\"class\", \"k-icon\", 3, \"ngClass\", 4, \"ngIf\"], [1, \"k-icon\", \"k-i-none\"], [1, \"k-icon\", 3, \"ngClass\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [4, \"ngFor\", \"ngForOf\"], [\"type\", \"checkbox\", \"kendoTreeListFocusable\", \"\", 1, \"k-checkbox\", \"k-checkbox-md\", \"k-rounded-md\", 3, \"checked\"], [3, \"ngSwitch\", 4, \"ngIf\"], [\"kendoTreeListFocusable\", \"\", 3, \"format\", \"formControl\", 4, \"ngSwitchCase\"], [\"type\", \"checkbox\", \"class\", \"k-checkbox k-checkbox-md k-rounded-md\", \"kendoTreeListFocusable\", \"\", 3, \"formControl\", 4, \"ngSwitchCase\"], [\"type\", \"text\", \"class\", \"k-textbox k-input k-rounded-md\", \"kendoTreeListFocusable\", \"\", 3, \"formControl\", 4, \"ngSwitchDefault\"], [\"kendoTreeListFocusable\", \"\", 3, \"format\", \"formControl\"], [\"type\", \"checkbox\", \"kendoTreeListFocusable\", \"\", 1, \"k-checkbox\", \"k-checkbox-md\", \"k-rounded-md\", 3, \"formControl\"], [\"type\", \"text\", \"kendoTreeListFocusable\", \"\", 1, \"k-textbox\", \"k-input\", \"k-rounded-md\", 3, \"formControl\"]], template: function CellComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0, 0);\n ɵngcc0.ɵɵtemplate(1, CellComponent_ng_container_1_Template, 6, 5, \"ng-container\", 1);\n ɵngcc0.ɵɵtemplate(2, CellComponent_ng_container_2_Template, 3, 2, \"ng-container\", 1);\n ɵngcc0.ɵɵelementContainerEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngSwitch\", ctx.isEdited);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngSwitchCase\", false);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngSwitchCase\", true);\n } }, directives: function () { return [ɵngcc4.NgSwitch, ɵngcc4.NgSwitchCase, ɵngcc4.NgIf, ɵngcc4.NgForOf, ɵngcc4.NgClass, ɵngcc4.NgTemplateOutlet, FocusableDirective, ɵngcc6.NumericTextBoxComponent, ɵngcc7.NgControlStatus, ɵngcc7.FormControlDirective, ɵngcc9.DatePickerComponent, ɵngcc7.CheckboxControlValueAccessor, ɵngcc4.NgSwitchDefault, ɵngcc7.DefaultValueAccessor]; }, pipes: function () { return [LevelItemsPipe, FieldAccessorPipe]; }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-command-cell'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], CellComponent.prototype, \"commandCellClass\", null);\n__decorate([\n HostBinding('class.k-checkbox-cell'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], CellComponent.prototype, \"checkboxCellClass\", null);\n__decorate([\n HostBinding('class.k-text-nowrap'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], CellComponent.prototype, \"textNoWrapClass\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CellComponent.prototype, \"column\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], CellComponent.prototype, \"columnIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], CellComponent.prototype, \"isNew\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], CellComponent.prototype, \"level\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], CellComponent.prototype, \"hasChildren\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], CellComponent.prototype, \"isExpanded\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], CellComponent.prototype, \"loading\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], CellComponent.prototype, \"expandIcons\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], CellComponent.prototype, \"selected\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CellComponent.prototype, \"dataItem\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], CellComponent.prototype, \"viewItem\", null);\nCellComponent = __decorate([ __metadata(\"design:paramtypes\", [EditService,\n FocusGroup])\n], CellComponent);\n\n/**\n * @hidden\n */\nlet BaseCommandDirective = class BaseCommandDirective 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 get visible() {\n if (this.cellContext) {\n return this.isEdited !== this.readVisible ? '' : 'none';\n }\n }\n get isEdited() {\n return Boolean(this.cellContext && this.editService.isEdited(this.dataItem) && !this.editService.isEditingCell());\n }\n get dataItem() {\n if (this.cellContext) {\n return this.cellContext.viewItem.data;\n }\n }\n /**\n * @hidden\n */\n clickHandler(e) {\n e.preventDefault();\n this.onClick();\n }\n};\nBaseCommandDirective.ɵfac = function BaseCommandDirective_Factory(t) { return new (t || BaseCommandDirective)(ɵngcc0.ɵɵdirectiveInject(EditService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nBaseCommandDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: BaseCommandDirective, selectors: [[\"\", \"kendoTreeListBaseCommand\", \"\"]], hostVars: 2, hostBindings: function BaseCommandDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function BaseCommandDirective_click_HostBindingHandler($event) { return ctx.clickHandler($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"display\", ctx.visible);\n } }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n HostBinding('style.display'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], BaseCommandDirective.prototype, \"visible\", null);\n__decorate([\n HostListener('click', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], BaseCommandDirective.prototype, \"clickHandler\", null);\nBaseCommandDirective = __decorate([ __metadata(\"design:paramtypes\", [EditService,\n ElementRef,\n Renderer2,\n LocalizationService,\n NgZone])\n], BaseCommandDirective);\n\n/**\n * Represents the `edit` command of the TreeList. You can apply this directive to any `button`\n * element inside a [`CommandColumnComponent`]({% slug api_treelist_commandcolumncomponent %}).\n * When an associated button with the directive is clicked, the\n * [`edit`]({% slug api_treelist_treelistcomponent %}#toc-edit) event\n * is triggered ([see example]({% slug editing_treelist %})).\n *\n * > * When the row is in the edit mode, the button with `kendoTreeListEditCommand` is automatically hidden.\n * > * The directive takes as input the `cellContext` from the cell template.\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * \n * \n * ```\n *\n */\nlet EditCommandDirective = class EditCommandDirective extends BaseCommandDirective {\n constructor(editService, element, renderer, localization, ngZone) {\n super(editService, element, renderer, localization, ngZone);\n this.commandClass = true;\n this.readVisible = true;\n }\n onClick() {\n if (this.cellContext) {\n this.editService.beginEdit(this.dataItem);\n }\n }\n};\nEditCommandDirective.ɵfac = function EditCommandDirective_Factory(t) { return new (t || EditCommandDirective)(ɵngcc0.ɵɵdirectiveInject(EditService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nEditCommandDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditCommandDirective, selectors: [[\"\", \"kendoTreeListEditCommand\", \"\"]], hostVars: 2, hostBindings: function EditCommandDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-grid-edit-command\", ctx.commandClass);\n } }, inputs: { cellContext: [\"kendoTreeListEditCommand\", \"cellContext\"] }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input('kendoTreeListEditCommand'),\n __metadata(\"design:type\", Object)\n], EditCommandDirective.prototype, \"cellContext\", void 0);\n__decorate([\n HostBinding('class.k-grid-edit-command'),\n __metadata(\"design:type\", Boolean)\n], EditCommandDirective.prototype, \"commandClass\", void 0);\nEditCommandDirective = __decorate([ __metadata(\"design:paramtypes\", [EditService,\n ElementRef,\n Renderer2,\n LocalizationService,\n NgZone])\n], EditCommandDirective);\n\n/**\n * Represents the `cancel` command of the TreeList. You can apply this directive to any `button`\n * element inside a [`CommandColumnComponent`]({% slug api_treelist_commandcolumncomponent %}).\n * When an associated button with the directive is clicked, the\n * [`cancel`]({% slug api_treelist_treelistcomponent %}#toc-cancel) event\n * is triggered ([see example]({% slug editing_treelist %})).\n *\n * > * When the row is not in the edit mode, the button with the `kendoTreeListCancelCommand` is automatically hidden.\n * > * The directive takes as input the `cellContext` from the cell template.\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 */\nlet CancelCommandDirective = class CancelCommandDirective extends BaseCommandDirective {\n constructor(editService, element, renderer, localization, ngZone) {\n super(editService, element, renderer, localization, ngZone);\n this.commandClass = true;\n this.readVisible = false;\n }\n onClick() {\n if (this.cellContext) {\n const viewItem = this.cellContext.viewItem;\n this.editService.endEdit(viewItem.data, viewItem.isNew);\n }\n }\n};\nCancelCommandDirective.ɵfac = function CancelCommandDirective_Factory(t) { return new (t || CancelCommandDirective)(ɵngcc0.ɵɵdirectiveInject(EditService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nCancelCommandDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CancelCommandDirective, selectors: [[\"\", \"kendoTreeListCancelCommand\", \"\"]], hostVars: 2, hostBindings: function CancelCommandDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-grid-cancel-command\", ctx.commandClass);\n } }, inputs: { cellContext: [\"kendoTreeListCancelCommand\", \"cellContext\"] }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input('kendoTreeListCancelCommand'),\n __metadata(\"design:type\", Object)\n], CancelCommandDirective.prototype, \"cellContext\", void 0);\n__decorate([\n HostBinding('class.k-grid-cancel-command'),\n __metadata(\"design:type\", Boolean)\n], CancelCommandDirective.prototype, \"commandClass\", void 0);\nCancelCommandDirective = __decorate([ __metadata(\"design:paramtypes\", [EditService,\n ElementRef,\n Renderer2,\n LocalizationService,\n NgZone])\n], CancelCommandDirective);\n\n/**\n * Represents the `save` command of the TreeList. You can apply this directive to any `button`\n * element inside a [`CommandColumnComponent`]({% slug api_treelist_commandcolumncomponent %}).\n * When an associated button with the directive is clicked, the\n * [`save`]({% slug api_treelist_treelistcomponent %}#toc-save) event\n * is triggered ([see example]({% slug editing_treelist %})).\n *\n * > * When the row is not in the edit mode, the button with `kendoTreeListSaveCommand` is automatically hidden.\n * > * The directive takes as input the `cellContext` from the cell template.\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 */\nlet SaveCommandDirective = class SaveCommandDirective extends BaseCommandDirective {\n constructor(editService, element, renderer, localization, ngZone) {\n super(editService, element, renderer, localization, ngZone);\n this.commandClass = true;\n this.readVisible = false;\n }\n onClick() {\n if (this.cellContext) {\n this.editService.save(this.dataItem, this.cellContext.viewItem.isNew);\n }\n }\n};\nSaveCommandDirective.ɵfac = function SaveCommandDirective_Factory(t) { return new (t || SaveCommandDirective)(ɵngcc0.ɵɵdirectiveInject(EditService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nSaveCommandDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SaveCommandDirective, selectors: [[\"\", \"kendoTreeListSaveCommand\", \"\"]], hostVars: 2, hostBindings: function SaveCommandDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-grid-save-command\", ctx.commandClass);\n } }, inputs: { cellContext: [\"kendoTreeListSaveCommand\", \"cellContext\"] }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input('kendoTreeListSaveCommand'),\n __metadata(\"design:type\", Object)\n], SaveCommandDirective.prototype, \"cellContext\", void 0);\n__decorate([\n HostBinding('class.k-grid-save-command'),\n __metadata(\"design:type\", Boolean)\n], SaveCommandDirective.prototype, \"commandClass\", void 0);\nSaveCommandDirective = __decorate([ __metadata(\"design:paramtypes\", [EditService,\n ElementRef,\n Renderer2,\n LocalizationService,\n NgZone])\n], SaveCommandDirective);\n\n/**\n * Represents the `remove` command of the TreeList. You can apply this directive to any `button` element\n * inside a [`CommandColumnComponent`]({% slug api_treelist_commandcolumncomponent %}).\n * When an associated button with the directive is clicked, the\n * [`remove` event]({% slug api_treelist_treelistcomponent %}#toc-remove)\n * is triggered ([see example]({% slug editing_reactive_forms_treelist %})).\n *\n * > * When the row is in the edit mode, the button with the `kendoTreeListRemoveCommand` is automatically hidden.\n * > * The directive takes as input the `cellContext` from the cell template.\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * \n * \n * ```\n */\nlet RemoveCommandDirective = class RemoveCommandDirective extends BaseCommandDirective {\n constructor(editService, element, renderer, localization, ngZone) {\n super(editService, element, renderer, localization, ngZone);\n this.commandClass = true;\n this.readVisible = true;\n }\n onClick() {\n if (this.cellContext) {\n this.editService.remove(this.dataItem, (this.cellContext.viewItem.parent || {}).data);\n }\n }\n};\nRemoveCommandDirective.ɵfac = function RemoveCommandDirective_Factory(t) { return new (t || RemoveCommandDirective)(ɵngcc0.ɵɵdirectiveInject(EditService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nRemoveCommandDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: RemoveCommandDirective, selectors: [[\"\", \"kendoTreeListRemoveCommand\", \"\"]], hostVars: 2, hostBindings: function RemoveCommandDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-grid-remove-command\", ctx.commandClass);\n } }, inputs: { cellContext: [\"kendoTreeListRemoveCommand\", \"cellContext\"] }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input('kendoTreeListRemoveCommand'),\n __metadata(\"design:type\", Object)\n], RemoveCommandDirective.prototype, \"cellContext\", void 0);\n__decorate([\n HostBinding('class.k-grid-remove-command'),\n __metadata(\"design:type\", Boolean)\n], RemoveCommandDirective.prototype, \"commandClass\", void 0);\nRemoveCommandDirective = __decorate([ __metadata(\"design:paramtypes\", [EditService,\n ElementRef,\n Renderer2,\n LocalizationService,\n NgZone])\n], RemoveCommandDirective);\n\n/**\n * Represents the command for adding a new item to the TreeList. You can apply this directive to any\n * `button` element inside a [`ToolbarTemplate`]({% slug api_treelist_commandcolumncomponent %}) or\n * inside a [`CommandColumnComponent`]({% slug api_treelist_commandcolumncomponent %}).\n *\n * When an associated button with the directive is clicked, the\n * [`add`]({% slug api_treelist_treelistcomponent %}#toc-add) event is triggered\n * ([see example]({% slug editing_treelist %})).\n *\n * > When the row is in the edit mode, the button with `kendoTreeListAddCommand` is automatically hidden.\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * ```\n *\n * When added to the command column, the directive takes as input the `cellContext` from the cell template.\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * \n * \n * ```\n */\nlet AddCommandDirective = class AddCommandDirective extends BaseCommandDirective {\n constructor(editService, element, renderer, localization, ngZone) {\n super(editService, element, renderer, localization, ngZone);\n this.commandClass = true;\n this.readVisible = true;\n }\n onClick() {\n this.editService.beginAdd(this.dataItem);\n }\n};\nAddCommandDirective.ɵfac = function AddCommandDirective_Factory(t) { return new (t || AddCommandDirective)(ɵngcc0.ɵɵdirectiveInject(EditService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nAddCommandDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: AddCommandDirective, selectors: [[\"\", \"kendoTreeListAddCommand\", \"\"]], hostVars: 2, hostBindings: function AddCommandDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-grid-add-command\", ctx.commandClass);\n } }, inputs: { cellContext: [\"kendoTreeListAddCommand\", \"cellContext\"] }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input('kendoTreeListAddCommand'),\n __metadata(\"design:type\", Object)\n], AddCommandDirective.prototype, \"cellContext\", void 0);\n__decorate([\n HostBinding('class.k-grid-add-command'),\n __metadata(\"design:type\", Boolean)\n], AddCommandDirective.prototype, \"commandClass\", void 0);\nAddCommandDirective = __decorate([ __metadata(\"design:paramtypes\", [EditService,\n ElementRef,\n Renderer2,\n LocalizationService,\n NgZone])\n], AddCommandDirective);\n\n/**\n * @hidden\n */\nlet LevelItemsPipe = class LevelItemsPipe {\n transform(level, hasChildren) {\n const result = [];\n const count = level + 1 - (hasChildren ? 1 : 0);\n for (let idx = 0; idx < count; idx++) {\n result.push(idx);\n }\n return result;\n }\n};\nLevelItemsPipe.ɵfac = function LevelItemsPipe_Factory(t) { return new (t || LevelItemsPipe)(); };\nLevelItemsPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"levelItems\", type: LevelItemsPipe, pure: true });\n\nconst exported$1 = [\n CommandColumnComponent,\n CellTemplateDirective,\n EditTemplateDirective,\n TableBodyComponent,\n NoRecordsTemplateDirective,\n CellComponent,\n BaseCommandDirective,\n EditCommandDirective,\n CancelCommandDirective,\n SaveCommandDirective,\n RemoveCommandDirective,\n AddCommandDirective,\n LevelItemsPipe,\n FooterTemplateDirective\n];\nconst importedModules$3 = [\n CommonModule,\n ReactiveFormsModule,\n FormsModule,\n SharedModule,\n NumericTextBoxModule,\n DatePickerModule\n];\n/**\n * @hidden\n */\nlet BodyModule = class BodyModule {\n static exports() {\n return [\n CommandColumnComponent,\n CellTemplateDirective,\n NoRecordsTemplateDirective,\n EditTemplateDirective,\n EditCommandDirective,\n CancelCommandDirective,\n SaveCommandDirective,\n RemoveCommandDirective,\n AddCommandDirective,\n FooterTemplateDirective\n ];\n }\n};\nBodyModule.ɵfac = function BodyModule_Factory(t) { return new (t || BodyModule)(); };\nBodyModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: BodyModule });\nBodyModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[...importedModules$3]] });\n\n/**\n * @hidden\n */\nlet ToolbarComponent = class ToolbarComponent {\n constructor(treelist) {\n this.treelist = treelist;\n this.classNames = 'k-toolbar k-grid-toolbar';\n this.context = {};\n }\n set position(value) {\n this.context.position = value;\n }\n get toolbarTemplateRef() {\n return this.treelist.toolbarTemplate ? this.treelist.toolbarTemplate.templateRef : undefined;\n }\n};\nToolbarComponent.ɵfac = function ToolbarComponent_Factory(t) { return new (t || ToolbarComponent)(ɵngcc0.ɵɵdirectiveInject(TreeListComponent)); };\nToolbarComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ToolbarComponent, selectors: [[\"kendo-treelist-toolbar\"]], hostVars: 2, hostBindings: function ToolbarComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassMap(ctx.classNames);\n } }, inputs: { position: \"position\" }, decls: 1, vars: 1, consts: [[4, \"ngIf\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]], template: function ToolbarComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, ToolbarComponent_0_Template, 1, 2, null, 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.toolbarTemplateRef);\n } }, directives: [ɵngcc4.NgIf, ɵngcc4.NgTemplateOutlet], encapsulation: 2 });\n__decorate([\n HostBinding('class'),\n __metadata(\"design:type\", String)\n], ToolbarComponent.prototype, \"classNames\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], ToolbarComponent.prototype, \"position\", null);\nToolbarComponent = __decorate([ __metadata(\"design:paramtypes\", [TreeListComponent])\n], ToolbarComponent);\n\n/**\n * @hidden\n */\nclass EditingDirectiveBase {\n constructor(treelist) {\n this.treelist = treelist;\n }\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 * Gets or sets a function that will be called to determine the unique identifier\n * for new items. The function receives the `item` and its `parent` as parameters\n * and must return an ID.\n */\n set newItemId(callback) {\n this.idCallback = callback;\n }\n get newItemId() {\n return this.idCallback;\n }\n /**\n * @hidden\n */\n ngOnInit() {\n this.subscriptions = this.treelist.add.subscribe(this.addHandler.bind(this));\n this.subscriptions.add(this.treelist.remove.subscribe(this.removeHandler.bind(this)));\n this.subscriptions.add(this.treelist.cancel.subscribe(this.cancelHandler.bind(this)));\n this.subscriptions.add(this.treelist.save.subscribe(this.saveHandler.bind(this)));\n this.subscriptions.add(merge(this.treelist.dataStateChange, this.treelist.pageChange).subscribe(this.onStateChange.bind(this)));\n }\n /**\n * @hidden\n */\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n get defaultEditService() {\n return this.treelist.localEditService;\n }\n addHandler({ parent }) {\n this.parent = parent;\n this.isNew = true;\n if (parent) {\n this.treelist.expand(parent);\n }\n this.treelist.addRow(this.createModel({ isNew: true }), parent);\n }\n saveHandler(args) {\n const item = this.saveModel(args);\n if (item) {\n if (args.isNew) {\n this.editService.create(item, args.parent, this.idCallback ? this.idCallback(item, args.parent) : null);\n }\n else {\n this.editService.update(item);\n }\n }\n this.treelist.closeRow(args.dataItem, args.isNew);\n }\n cancelHandler(args) {\n this.closeEditor(args);\n }\n removeHandler({ dataItem, parent }) {\n const removeItem = (shouldRemove) => {\n if (shouldRemove) {\n this.editService.remove(dataItem, parent);\n }\n };\n if (this.removeConfirmation) {\n const result = this.removeConfirmation(dataItem, parent);\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 closeEditor(args = { dataItem: this.dataItem, isNew: this.isNew }) {\n this.treelist.closeRow(args.dataItem, args.isNew);\n this.clean();\n }\n clean() {\n this.isNew = false;\n this.dataItem = null;\n this.parent = null;\n }\n onStateChange() {\n this.closeEditor();\n }\n}\nEditingDirectiveBase.ɵfac = function EditingDirectiveBase_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nEditingDirectiveBase.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: EditingDirectiveBase, inputs: { editService: \"editService\", newItemId: \"newItemId\", removeConfirmation: \"removeConfirmation\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], EditingDirectiveBase.prototype, \"editService\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Function])\n], EditingDirectiveBase.prototype, \"newItemId\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], EditingDirectiveBase.prototype, \"removeConfirmation\", void 0);\n\n/**\n * @hidden\n */\nclass RowEditingDirectiveBase extends EditingDirectiveBase {\n /**\n * @hidden\n */\n ngOnInit() {\n super.ngOnInit();\n this.subscriptions\n .add(this.treelist.edit.subscribe(this.editHandler.bind(this)));\n }\n addHandler(args) {\n this.closeEditor();\n super.addHandler(args);\n }\n editHandler(args) {\n this.closeEditor();\n this.dataItem = args.dataItem;\n this.treelist.editRow(args.dataItem, this.createModel(args));\n }\n saveHandler(args) {\n super.saveHandler(args);\n this.clean();\n }\n}\nRowEditingDirectiveBase.ɵfac = /*@__PURE__*/ function () { let ɵRowEditingDirectiveBase_BaseFactory; return function RowEditingDirectiveBase_Factory(t) { return (ɵRowEditingDirectiveBase_BaseFactory || (ɵRowEditingDirectiveBase_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(RowEditingDirectiveBase)))(t || RowEditingDirectiveBase); }; }();\nRowEditingDirectiveBase.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: RowEditingDirectiveBase, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n\n/**\n * A directive which encapsulates the editing operations of the TreeList when using\n * the Template-Driven Angular Forms ([see example]({% slug editing_directives_treelist %}#toc-the-template-directive)).\n */\nlet TemplateEditingDirective = class TemplateEditingDirective extends RowEditingDirectiveBase {\n constructor(treelist) {\n super(treelist);\n this.treelist = treelist;\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(args) {\n if (this.dataItem) {\n this.editService.assignValues(this.dataItem, this.originalValues);\n }\n super.closeEditor(args);\n }\n createModel(args) {\n if (args.isNew) {\n return this.createNewItem();\n }\n }\n saveModel(args) {\n return args.dataItem;\n }\n};\nTemplateEditingDirective.ɵfac = function TemplateEditingDirective_Factory(t) { return new (t || TemplateEditingDirective)(ɵngcc0.ɵɵdirectiveInject(TreeListComponent)); };\nTemplateEditingDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: TemplateEditingDirective, selectors: [[\"\", \"kendoTreeListTemplateEditing\", \"\"]], inputs: { createNewItem: [\"kendoTreeListTemplateEditing\", \"createNewItem\"] }, exportAs: [\"kendoTreeListTemplateEditing\"], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input('kendoTreeListTemplateEditing'),\n __metadata(\"design:type\", Function)\n], TemplateEditingDirective.prototype, \"createNewItem\", void 0);\nTemplateEditingDirective = __decorate([ __metadata(\"design:paramtypes\", [TreeListComponent])\n], TemplateEditingDirective);\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 * @hidden\n */\nconst insertNewItem = (newItem, originalData, treelist, parent) => {\n let insertAt = 0;\n if (!parent && treelist.skip) {\n let firstItem = treelist.view.find(item => item.type === 'data' && !item.isNew);\n let firstRootItem = firstItem;\n let firstOffset = 0;\n if (firstItem.level > 0) {\n while (firstItem.level > 0) {\n firstItem = firstItem.parent;\n }\n firstRootItem = firstItem;\n firstOffset = 1;\n }\n const firstIndex = originalData.indexOf(firstRootItem.data);\n if (firstIndex > 0) {\n insertAt = firstIndex + firstOffset;\n }\n }\n originalData.splice(insertAt, 0, newItem);\n};\n\n/**\n * A directive which encapsulates the editing operations of the TreeList when using the\n * Reactive Forms ([see example]({% slug editing_directives_treelist %}#toc-the-reactive-directive)).\n */\nlet ReactiveEditingDirective = class ReactiveEditingDirective extends RowEditingDirectiveBase {\n constructor(treelist) {\n super(treelist);\n this.treelist = treelist;\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.ɵfac = function ReactiveEditingDirective_Factory(t) { return new (t || ReactiveEditingDirective)(ɵngcc0.ɵɵdirectiveInject(TreeListComponent)); };\nReactiveEditingDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ReactiveEditingDirective, selectors: [[\"\", \"kendoTreeListReactiveEditing\", \"\"]], inputs: { createFormGroup: [\"kendoTreeListReactiveEditing\", \"createFormGroup\"] }, exportAs: [\"kendoTreeListReactiveEditing\"], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input('kendoTreeListReactiveEditing'),\n __metadata(\"design:type\", Function)\n], ReactiveEditingDirective.prototype, \"createFormGroup\", void 0);\nReactiveEditingDirective = __decorate([ __metadata(\"design:paramtypes\", [TreeListComponent])\n], ReactiveEditingDirective);\n\n/**\n * A directive which encapsulates the editing operations of the TreeList when using the in-cell\n * editing with Reactive Forms ([see example]({% slug editing_directives_treelist %}#toc-the-incell-directive)).\n */\nlet InCellEditingDirective = class InCellEditingDirective extends EditingDirectiveBase {\n constructor(treelist) {\n super(treelist);\n this.treelist = treelist;\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.treelist.cellClick.subscribe(this.cellClickHandler.bind(this)));\n this.subscriptions.add(this.treelist.cellClose.subscribe(this.cellCloseHandler.bind(this)));\n }\n removeHandler(args) {\n super.removeHandler(args);\n this.treelist.cancelCell();\n }\n cellClickHandler(args) {\n if (!args.isEdited && args.type === 'click') {\n this.treelist.editCell(args.dataItem, 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.ɵfac = function InCellEditingDirective_Factory(t) { return new (t || InCellEditingDirective)(ɵngcc0.ɵɵdirectiveInject(TreeListComponent)); };\nInCellEditingDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: InCellEditingDirective, selectors: [[\"\", \"kendoTreeListInCellEditing\", \"\"]], inputs: { createFormGroup: [\"kendoTreeListInCellEditing\", \"createFormGroup\"] }, exportAs: [\"kendoTreeListInCellEditing\"], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input('kendoTreeListInCellEditing'),\n __metadata(\"design:type\", Function)\n], InCellEditingDirective.prototype, \"createFormGroup\", void 0);\nInCellEditingDirective = __decorate([ __metadata(\"design:paramtypes\", [TreeListComponent])\n], InCellEditingDirective);\n\nclass BaseBindingDirective {\n constructor(component) {\n this.component = component;\n this.state = {};\n this.cache = new Map();\n this.originalData = [];\n this.subscriptions = new Subscription();\n this.component.fetchChildren = this.fetchChildren.bind(this);\n this.component.hasChildren = this.hasChildren.bind(this);\n }\n /**\n * Defines the descriptors by which the data will be sorted.\n */\n set sort(value) {\n this.component.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.component.filter = this.state.filter = value;\n }\n /**\n * Defines the descriptor by which the data will be aggregated.\n */\n set aggregate(value) {\n this._aggregate = value;\n }\n /**\n * @hidden\n */\n ngOnInit() {\n this.applyState(this.state);\n this.subscriptions.add(this.component.dataStateChange\n .subscribe(this.onStateChange.bind(this)));\n }\n /**\n * @hidden\n */\n ngOnDestroy() {\n if (this.subscriptions) {\n this.subscriptions.unsubscribe();\n }\n }\n ngDoCheck() {\n if (this.dataChanged) {\n this.dataChanged = false;\n this.rebind();\n }\n }\n /**\n * @hidden\n */\n ngOnChanges(changes) {\n if (anyChanged(['sort', 'filter', 'aggregate'], changes)) {\n this.rebind();\n }\n }\n /**\n * @hidden\n */\n onStateChange(state$$1) {\n this.applyState(state$$1);\n this.rebind();\n }\n /**\n * Clears the directive cache and reloads the component data.\n */\n rebind() {\n this.cache.clear();\n this.component.data = this.fetchChildren();\n }\n applyState({ sort, filter: filter$$1 }) {\n this.sort = sort;\n this.filter = filter$$1;\n }\n fetchChildren(item) {\n const key = this.itemKey(item);\n if (this.cache.has(key)) {\n return this.cache.get(key);\n }\n const children = this.getChildren(item);\n let items = this.filterItems(children);\n let aggregates;\n if (items.length) {\n if (this.state.sort) {\n items = process(items, { sort: this.state.sort }).data;\n }\n if (this._aggregate) {\n aggregates = this.calculateAggregates(items);\n }\n }\n const result = {\n data: items,\n aggregates: aggregates\n };\n this.cache.set(key, result);\n return result;\n }\n hasChildren(item) {\n const items = this.fetchChildren(item).data;\n return items && items.length > 0;\n }\n filterItems(items) {\n const filter$$1 = this.state.filter;\n const hasFilter = filter$$1 && filter$$1.filters && filter$$1.filters.length > 0;\n if (hasFilter) {\n const filter$$1 = {\n logic: 'or',\n filters: [this.state.filter, {\n operator: (item) => {\n const children = this.fetchChildren(item);\n return Boolean(children.data && children.data.length);\n }\n }]\n };\n return process(items, { filter: filter$$1 }).data;\n }\n return items;\n }\n calculateAggregates(items) {\n const list = [];\n const toAdd = items.slice(0);\n while (toAdd.length) {\n const current = toAdd.shift();\n list.push(current);\n if (this.hasChildren(current)) {\n toAdd.push.apply(toAdd, this.fetchChildren(current).data);\n }\n }\n // can accumulate from children aggregates except for average\n // for average we need the children count that have numeric value\n // maybe move the aggregates implementation here ???\n return aggregateBy(list, this._aggregate);\n }\n}\nBaseBindingDirective.ɵfac = function BaseBindingDirective_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nBaseBindingDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: BaseBindingDirective, inputs: { sort: \"sort\", filter: \"filter\", aggregate: \"aggregate\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], BaseBindingDirective.prototype, \"sort\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], BaseBindingDirective.prototype, \"filter\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], BaseBindingDirective.prototype, \"aggregate\", null);\n\n/**\n * @hidden\n */\nclass HierarchyEditService extends LocalEditService {\n constructor(bindingDirective) {\n super();\n this.bindingDirective = bindingDirective;\n }\n create(item, parent, _id) {\n const { childrenGetter, childrenSetter, originalData, component } = this.bindingDirective;\n if (parent) {\n const children = childrenGetter(parent);\n if (children) {\n children.unshift(item);\n }\n else {\n childrenSetter(parent, [item]);\n }\n }\n else {\n insertNewItem(item, originalData, component);\n }\n this.bindingDirective.rebind();\n }\n update(_item) {\n this.bindingDirective.rebind();\n }\n remove(item, parent) {\n const idGetter = this.bindingDirective.component.idGetter; // refactor provide idGetter via context service\n const { childrenGetter, originalData } = this.bindingDirective;\n const children = parent ? childrenGetter(parent) : originalData;\n if (children && children.length) {\n const id = idGetter(item);\n const index = children.findIndex(i => idGetter(i) === id);\n if (index >= 0) {\n children.splice(index, 1);\n this.bindingDirective.rebind();\n }\n }\n }\n}\n\n/**\n * A directive which binds the TreeList to a tree of objects.\n *\n * The directive encapsulates the in-memory handling of data operations such as\n * [sorting]({% slug sorting_treelist %}), [aggregation]({% slug treelist_with_aggregates %})\n * and [filtering]({% slug filtering_treelist %}) ([more information and examples]({% slug databinding_treelist %})).\n */\nlet HierarchyBindingDirective = class HierarchyBindingDirective extends BaseBindingDirective {\n constructor(component) {\n super(component);\n this.component = component;\n this.childrenGetter = getter('items');\n this.childrenSetter = setter('items');\n component.localEditService = new HierarchyEditService(this);\n }\n /**\n * The name of the field which holds the child data items of the node.\n */\n set childrenField(value) {\n this.childrenGetter = getter(value);\n this.childrenSetter = setter(value);\n }\n /**\n * The array of data which will be used to populate the TreeList.\n */\n set data(value) {\n this.originalData = value || [];\n this.dataChanged = true;\n }\n getChildren(item) {\n return item ? this.childrenGetter(item) || [] : this.originalData;\n }\n itemKey(item) {\n return item;\n }\n};\nHierarchyBindingDirective.ɵfac = function HierarchyBindingDirective_Factory(t) { return new (t || HierarchyBindingDirective)(ɵngcc0.ɵɵdirectiveInject(DataBoundTreeComponent)); };\nHierarchyBindingDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: HierarchyBindingDirective, selectors: [[\"\", \"kendoTreeListHierarchyBinding\", \"\"]], inputs: { childrenField: \"childrenField\", data: [\"kendoTreeListHierarchyBinding\", \"data\"] }, exportAs: [\"kendoTreeListHierarchyBinding\"], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], HierarchyBindingDirective.prototype, \"childrenField\", null);\n__decorate([\n Input(\"kendoTreeListHierarchyBinding\"),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], HierarchyBindingDirective.prototype, \"data\", null);\nHierarchyBindingDirective = __decorate([ __metadata(\"design:paramtypes\", [DataBoundTreeComponent])\n], HierarchyBindingDirective);\n\n/**\n * @hidden\n */\nclass FlatEditService extends LocalEditService {\n constructor(bindingDirective) {\n super();\n this.bindingDirective = bindingDirective;\n }\n create(item, parent, id) {\n const { idGetter, idSetter, parentIdSetter, originalData, component } = this.bindingDirective;\n idSetter(item, isPresent(id) ? id : guid());\n if (parent) {\n parentIdSetter(item, idGetter(parent));\n }\n insertNewItem(item, originalData, component, parent);\n this.bindingDirective.rebind();\n }\n update(_item) {\n this.bindingDirective.rebind();\n }\n remove(item, _parent) {\n const { idGetter, parentIdGetter, originalData } = this.bindingDirective;\n const toRemove = [item];\n while (toRemove.length) {\n const current = toRemove.shift();\n const id = idGetter(current);\n let itemIndex = -1;\n for (let idx = 0; idx < originalData.length; idx++) {\n const dataItem = originalData[idx];\n if (itemIndex === -1 && idGetter(dataItem) === id) {\n itemIndex = idx;\n }\n if (parentIdGetter(dataItem) === id) {\n toRemove.push(dataItem);\n }\n }\n if (itemIndex >= 0) {\n originalData.splice(itemIndex, 1);\n }\n }\n this.bindingDirective.rebind();\n }\n}\n\nconst ROOT_ID = null;\n/**\n * A directive which binds the TreeList to an array of objects by using\n * an ID and parentID field to define the hierarchy.\n *\n * The directive encapsulates the in-memory handling of data operations such as\n * [sorting]({% slug sorting_treelist %}), [aggregation]({% slug treelist_with_aggregates %})\n * and [filtering]({% slug filtering_treelist %}) ([more information and examples]({% slug databinding_treelist %})).\n */\nlet FlatBindingDirective = class FlatBindingDirective extends BaseBindingDirective {\n constructor(component) {\n super(component);\n this.component = component;\n this.idGetter = getter('id');\n this.idSetter = setter('id');\n this.parentIdGetter = getter('parentId');\n this.parentIdSetter = setter('parentId');\n component.localEditService = new FlatEditService(this);\n }\n /**\n * The name of the field which contains the identifier of the parent node.\n */\n set parentIdField(value) {\n this.parentIdGetter = getter(value);\n this.parentIdSetter = setter(value);\n }\n /**\n * The name of the field which contains the unique identifier of the node.\n */\n set idField(value) {\n this.idGetter = getter(value);\n this.idSetter = setter(value);\n }\n /**\n * The array of data which will be used to populate the TreeList.\n */\n set data(value) {\n this.originalData = value || [];\n this.dataChanged = true;\n }\n getChildren(item) {\n const id = this.itemKey(item);\n const children = id === ROOT_ID ?\n this.originalData.filter(o => !isPresent(this.parentIdGetter(o))) :\n this.originalData.filter(o => this.parentIdGetter(o) === id);\n return children;\n }\n itemKey(item) {\n return item ? this.idGetter(item) : ROOT_ID;\n }\n};\nFlatBindingDirective.ɵfac = function FlatBindingDirective_Factory(t) { return new (t || FlatBindingDirective)(ɵngcc0.ɵɵdirectiveInject(DataBoundTreeComponent)); };\nFlatBindingDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: FlatBindingDirective, selectors: [[\"\", \"kendoTreeListFlatBinding\", \"\"]], inputs: { parentIdField: \"parentIdField\", idField: \"idField\", data: [\"kendoTreeListFlatBinding\", \"data\"] }, exportAs: [\"kendoTreeListFlatBinding\"], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], FlatBindingDirective.prototype, \"parentIdField\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], FlatBindingDirective.prototype, \"idField\", null);\n__decorate([\n Input(\"kendoTreeListFlatBinding\"),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], FlatBindingDirective.prototype, \"data\", null);\nFlatBindingDirective = __decorate([ __metadata(\"design:paramtypes\", [DataBoundTreeComponent])\n], FlatBindingDirective);\n\n/**\n * A directive which controls the expanded state of the items.\n */\nlet ExpandableDirective = class ExpandableDirective {\n constructor(component) {\n this.component = component;\n /**\n * Fires when the expandedKeys are changed.\n */\n this.expandedKeysChange = new EventEmitter();\n /**\n * Specifies if the items should be initially expanded.\n * @default false\n */\n this.initiallyExpanded = false;\n this.state = new Set();\n this.component.isExpanded = this.isExpanded.bind(this);\n this.toggleState = this.toggleState.bind(this);\n this.subscriptions = this.component.expandStateChange.subscribe(this.toggleState);\n }\n /**\n * Sets the expanded item keys.\n */\n set expandedKeys(value) {\n if (value !== this._expandedKeys) {\n this._expandedKeys = value;\n this.component.updateView();\n }\n }\n get expandedKeys() {\n return Array.from(this.state.keys());\n }\n /**\n * Defines the item key that will be stored in the expandedKeys collection.\n * Defaults to the component idField.\n */\n set expandBy(key) {\n if (isString(key)) {\n this._expandBy = getter(key);\n }\n else {\n this._expandBy = key;\n }\n }\n get keyGetter() {\n return this._expandBy || this.component.idGetter;\n }\n /**\n * @hidden\n */\n isExpanded(item) {\n const key = this.keyGetter(item);\n return this.state.has(key) ? !this.initiallyExpanded : this.initiallyExpanded;\n }\n ngOnChanges(changes) {\n if (changes.expandedKeys) {\n this.state = new Set(this._expandedKeys);\n }\n else if (changes.initiallyExpanded) {\n this.state.clear();\n }\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n toggleState(args) {\n const key = this.keyGetter(args.dataItem);\n if (Boolean(this.initiallyExpanded) !== args.expand) {\n this.state.add(key);\n }\n else {\n this.state.delete(key);\n }\n this.expandedKeysChange.emit(this.expandedKeys);\n }\n};\nExpandableDirective.ɵfac = function ExpandableDirective_Factory(t) { return new (t || ExpandableDirective)(ɵngcc0.ɵɵdirectiveInject(ExpandableTreeComponent)); };\nExpandableDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ExpandableDirective, selectors: [[\"\", \"kendoTreeListExpandable\", \"\"]], inputs: { initiallyExpanded: \"initiallyExpanded\", expandedKeys: \"expandedKeys\", expandBy: \"expandBy\" }, outputs: { expandedKeysChange: \"expandedKeysChange\" }, exportAs: [\"kendoTreeListExpandable\"], features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ExpandableDirective.prototype, \"expandedKeysChange\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], ExpandableDirective.prototype, \"expandedKeys\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ExpandableDirective.prototype, \"initiallyExpanded\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], ExpandableDirective.prototype, \"expandBy\", null);\nExpandableDirective = __decorate([ __metadata(\"design:paramtypes\", [ExpandableTreeComponent])\n], ExpandableDirective);\n\n/**\n * @hidden\n */\nclass RowSelectionState {\n constructor() {\n this.keys = new Set();\n }\n clear() {\n this.keys.clear();\n }\n has(key) {\n return this.keys.has(key);\n }\n add(key) {\n this.keys.add(key);\n }\n remove(key) {\n this.keys.delete(key);\n }\n toArray() {\n const result = [];\n this.keys.forEach(key => {\n result.push({ itemKey: key });\n });\n return result;\n }\n fromArray(arr) {\n this.keys.clear();\n arr.forEach(item => {\n this.add(item.itemKey);\n });\n }\n}\n/**\n * @hidden\n */\nclass CellSelectionState {\n constructor() {\n this.keys = new Map();\n }\n clear() {\n this.keys.clear();\n }\n has(key, columnKey) {\n return this.keys.has(key) && this.keys.get(key).has(columnKey);\n }\n add(key, columnKey) {\n if (!this.keys.has(key)) {\n this.keys.set(key, new Set());\n }\n const columnSet = this.keys.get(key);\n columnSet.add(columnKey);\n }\n remove(key, columnKey) {\n if (this.keys.has(key)) {\n const columnSet = this.keys.get(key);\n columnSet.delete(columnKey);\n if (!columnSet.size) {\n this.keys.delete(key);\n }\n }\n }\n toArray() {\n const result = [];\n this.forEach((itemKey, columnKey) => {\n result.push({ itemKey, columnKey });\n });\n return result;\n }\n fromArray(state$$1) {\n this.keys.clear();\n state$$1.forEach(item => {\n this.add(item.itemKey, item.columnKey);\n });\n }\n updateColumKeys(changes) {\n let hasChanges = false;\n this.keys.forEach((value, key) => {\n const newKeys = [];\n value.forEach(columnKey => {\n if (changes.has(columnKey)) {\n newKeys.push(changes.get(columnKey));\n hasChanges = true;\n }\n else {\n newKeys.push(columnKey);\n }\n });\n this.keys.set(key, new Set(newKeys));\n });\n return hasChanges;\n }\n forEach(callback) {\n this.keys.forEach((value, key) => {\n value.forEach((columnKey) => {\n callback(key, columnKey);\n });\n });\n }\n}\n/**\n * @hidden\n */\nconst createState = (settings) => settings.mode === 'cell' ? new CellSelectionState() : new RowSelectionState();\n\nconst defaultColumnKeyGetter = (_column, columnIndex) => columnIndex;\n/**\n * A directive which controls the selection state\n */\nlet SelectableDirective = class SelectableDirective {\n constructor(treelist) {\n this.treelist = treelist;\n /**\n * Fires when the selected items are changed.\n */\n this.selectedItemsChange = new EventEmitter();\n this.state = new RowSelectionState();\n this._selectedItems = [];\n this.cellSelected = this.cellSelected.bind(this);\n this.rowSelected = this.rowSelected.bind(this);\n this.selectionChange = this.selectionChange.bind(this);\n this.updateColumnIndices = this.updateColumnIndices.bind(this);\n this.treelist.selectable = this.selectable = true;\n }\n /**\n * @hidden\n */\n set selectable(value) {\n if (typeof value === 'object') { // add method to normalize this\n this._settings = value;\n }\n else {\n this._settings = {\n enabled: value\n };\n }\n this.state = createState(this._settings);\n this.state.fromArray(this._selectedItems || []);\n if (this._settings.enabled !== false) {\n this.treelist.isSelected = this._settings.mode === 'cell' ? this.cellSelected : this.rowSelected;\n this.subscribeSelection();\n }\n else {\n this.treelist.isSelected = () => false;\n this.unsubscribeSelection();\n }\n this.treelist.updateView();\n }\n /**\n * Specifies the selected items.\n */\n set selectedItems(value) {\n if (!value) {\n this.state.clear();\n }\n else if (value !== this.lastChange) {\n this.state.fromArray(value);\n this.treelist.updateView();\n }\n this._selectedItems = value;\n }\n /**\n * The field name or a function that specify the dataItems key.\n */\n set itemKey(value) {\n if (isString(value)) {\n this._keyGetter = getter(String(value));\n }\n else {\n this._keyGetter = value;\n }\n }\n /**\n * The field name or a function that specify the columns key.\n */\n set columnKey(value) {\n if (isString(value)) {\n this._columnKeyGetter = getter(String(value));\n }\n else if (value) {\n this._columnKeyGetter = value;\n }\n }\n get keyGetter() {\n return this._keyGetter || this.treelist.idGetter;\n }\n get columnKeyGetter() {\n return this._columnKeyGetter || defaultColumnKeyGetter;\n }\n ngOnDestroy() {\n this.unsubscribeSelection();\n }\n /**\n * @hidden\n */\n cellSelected(dataItem, column, columnIndex) {\n return this.state.has(this.keyGetter(dataItem), this.columnKeyGetter(column, columnIndex));\n }\n /**\n * @hidden\n */\n rowSelected(dataItem) {\n return this.state.has(this.keyGetter(dataItem));\n }\n selectionChange({ action, items }) {\n if (action === 'select' || action === 'add') {\n if (action === 'select') {\n this.state.clear();\n }\n items.forEach(item => {\n this.state.add(this.keyGetter(item.dataItem), this.columnKeyGetter(item.column, item.columnIndex));\n });\n }\n else {\n items.forEach(item => {\n this.state.remove(this.keyGetter(item.dataItem), this.columnKeyGetter(item.column, item.columnIndex));\n });\n }\n this.emitSelectedItemsChange();\n }\n emitSelectedItemsChange() {\n this.lastChange = this.state.toArray();\n this.selectedItemsChange.emit(this.lastChange);\n }\n subscribeSelection() {\n this.unsubscribeSelection();\n this.subscriptions = this.treelist.selectionChange.subscribe(this.selectionChange);\n if (this._settings.mode === 'cell') {\n this.subscriptions.add(this.treelist.columnOrderChange.subscribe(this.updateColumnIndices));\n this.subscriptions.add(this.treelist.columnLockedChange.subscribe(this.updateColumnIndices));\n }\n }\n unsubscribeSelection() {\n if (this.subscriptions) {\n this.subscriptions.unsubscribe();\n this.subscriptions = null;\n }\n }\n updateColumnIndices() {\n if (!this._columnKeyGetter) {\n const changes = new Map();\n const currentIndices = [];\n this.leafColumns.forEach((column) => {\n currentIndices.push(column);\n });\n this.treelist.columnsContainer.refresh();\n const leafColumns = this.leafColumns;\n currentIndices.forEach((column, index) => {\n if (column !== leafColumns[index]) {\n changes.set(index, leafColumns.indexOf(column));\n }\n });\n if (changes.size && this.state.updateColumKeys(changes)) {\n this.emitSelectedItemsChange();\n }\n }\n }\n get leafColumns() {\n return this.treelist.lockedLeafColumns.toArray().concat(this.treelist.nonLockedLeafColumns.toArray());\n }\n};\nSelectableDirective.ɵfac = function SelectableDirective_Factory(t) { return new (t || SelectableDirective)(ɵngcc0.ɵɵdirectiveInject(TreeListComponent)); };\nSelectableDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SelectableDirective, selectors: [[\"\", \"kendoTreeListSelectable\", \"\"]], inputs: { selectable: \"selectable\", selectedItems: \"selectedItems\", itemKey: \"itemKey\", columnKey: \"columnKey\" }, outputs: { selectedItemsChange: \"selectedItemsChange\" }, exportAs: [\"kendoTreeListSelectable\"] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], SelectableDirective.prototype, \"selectable\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], SelectableDirective.prototype, \"selectedItems\", null);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], SelectableDirective.prototype, \"selectedItemsChange\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], SelectableDirective.prototype, \"itemKey\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], SelectableDirective.prototype, \"columnKey\", null);\nSelectableDirective = __decorate([ __metadata(\"design:paramtypes\", [TreeListComponent])\n], SelectableDirective);\n\nconst createElement = () => {\n const marquee = document.createElement(\"div\");\n marquee.className = \"k-marquee\";\n const marqueeColor = document.createElement(\"div\");\n marqueeColor.className = \"k-marquee-color\";\n marquee.appendChild(marqueeColor);\n return marquee;\n};\nconst elementUnderCursor$1 = ({ clientX, clientY }) => document.elementFromPoint(clientX, clientY);\n/**\n * @hidden\n */\nlet MarqueeDirective = class MarqueeDirective {\n constructor(draggable, selection, changeDetector) {\n this.draggable = draggable;\n this.selection = selection;\n this.changeDetector = changeDetector;\n this.cellSelected = this.cellSelected.bind(this);\n this.rowSelected = this.rowSelected.bind(this);\n }\n get userSelection() {\n return this.selection.enableMarquee ? 'none' : null;\n }\n ngOnInit() {\n // handle esc\n // trigger cancel\n this.subscriptions = this.draggable.kendoPress.subscribe(this.start.bind(this));\n this.subscriptions.add(this.draggable.kendoDrag.subscribe(this.moveMarquee.bind(this)));\n this.subscriptions.add(this.draggable.kendoRelease.subscribe(this.endSelection.bind(this)));\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n this.clean();\n }\n cellSelected(dataItem, column) {\n return this.state.has(dataItem, column);\n }\n rowSelected(dataItem) {\n return this.state.has(dataItem);\n }\n start(args) {\n const pressTarget = this.targetArgs(args, true);\n if (!pressTarget) {\n return;\n }\n this.pressTarget = pressTarget;\n this.pressArgs = args;\n }\n moveMarquee(args) {\n if (this.pressTarget && !this.state) {\n this.initMarquee();\n }\n if (this.marqueeElement) {\n const element = this.marqueeElement;\n const press = this.pressArgs;\n const left = Math.min(args.pageX, press.pageX);\n const top = Math.min(args.pageY, press.pageY);\n const width = Math.abs(args.pageX - press.pageX);\n const height = Math.abs(args.pageY - press.pageY);\n element.style.left = `${left}px`;\n element.style.top = `${top}px`;\n element.style.width = `${width}px`;\n element.style.height = `${height}px`;\n }\n else if (this.state) {\n const currentTarget = this.targetArgs(args);\n if (currentTarget && (!this.currentTarget || this.currentTarget.item.data !== currentTarget.item.data ||\n (this.selection.settings.mode === 'cell' && this.currentTarget.column !== currentTarget.column))) {\n this.currentTarget = currentTarget;\n this.state.fromArray(this.selection.rangeItems(this.pressTarget, currentTarget).map(item => ({ itemKey: item.dataItem, columnKey: item.column })));\n this.selection.updateSelectedState();\n this.changeDetector.detectChanges();\n }\n }\n }\n endSelection(args) {\n if (!this.state) {\n return;\n }\n if ((this.pressArgs.pageX !== args.pageX || this.pressArgs.pageY !== args.pageY)) {\n const pressTarget = this.pressTarget;\n const releaseTarget = this.targetArgs(args);\n this.clean();\n // if one is missing select first / last viewItem depending on the position\n // select column based on coordinates\n if (pressTarget && releaseTarget) {\n this.selection.selectRange(pressTarget, releaseTarget);\n }\n else {\n this.changeDetector.detectChanges();\n }\n }\n else {\n this.clean();\n this.changeDetector.detectChanges();\n }\n }\n clean() {\n if (this.marqueeElement) {\n document.body.removeChild(this.marqueeElement);\n this.marqueeElement = null;\n }\n if (this.selectionSelected) {\n if (this.selection.settings.mode === 'cell') {\n this.selection.isCellSelected = this.selectionSelected;\n }\n else {\n this.selection.isRowSelected = this.selectionSelected;\n }\n this.selectionSelected = null;\n }\n if (this.state) {\n this.state.clear();\n this.state = null;\n }\n this.pressTarget = null;\n this.pressArgs = null;\n }\n targetArgs(args, skipFocusable) {\n let target = args.originalEvent.target;\n if (this.marqueeElement) {\n this.marqueeElement.style.display = 'none';\n target = elementUnderCursor$1(args);\n this.marqueeElement.style.display = 'block';\n }\n return this.selection.targetArgs(target, skipFocusable);\n }\n initMarquee() {\n this.state = createState(this.selection.settings);\n if (this.selection.settings.mode === 'cell') {\n this.selectionSelected = this.selection.isCellSelected;\n this.selection.isCellSelected = this.cellSelected;\n }\n else {\n this.selectionSelected = this.selection.isRowSelected;\n this.selection.isRowSelected = this.rowSelected;\n }\n this.changeDetector.detectChanges();\n const drag = this.selection.settings.drag;\n if (!(drag && drag.snap)) {\n this.marqueeElement = createElement();\n document.body.appendChild(this.marqueeElement);\n }\n }\n};\nMarqueeDirective.ɵfac = function MarqueeDirective_Factory(t) { return new (t || MarqueeDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc5.DraggableDirective), ɵngcc0.ɵɵdirectiveInject(SelectionService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nMarqueeDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MarqueeDirective, selectors: [[\"\", \"kendoTreeListSelectionMarquee\", \"\"]], hostVars: 2, hostBindings: function MarqueeDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"user-select\", ctx.userSelection);\n } } });\n__decorate([\n HostBinding('style.user-select'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], MarqueeDirective.prototype, \"userSelection\", null);\nMarqueeDirective = __decorate([ __metadata(\"design:paramtypes\", [DraggableDirective,\n SelectionService,\n ChangeDetectorRef])\n], MarqueeDirective);\n\n/**\n * Represents the Kendo UI TreeListSpacer component for Angular.\n * Used to give additional white space between the Pager inner elements,\n * and provides a way for customizing the spacer width.\n * It can also be used in any flex container within the TreeList.\n */\nlet TreeListSpacerComponent = class TreeListSpacerComponent {\n /**\n * Represents the Kendo UI TreeListSpacer component for Angular.\n * Used to give additional white space between the Pager inner elements,\n * and provides a way for customizing the spacer width.\n * It can also be used in any flex container within the TreeList.\n */\n constructor() {\n this.hostClass = true;\n }\n get sizedClass() {\n return isPresent(this.width);\n }\n get flexBasisStyle() {\n return this.width;\n }\n};\nTreeListSpacerComponent.ɵfac = function TreeListSpacerComponent_Factory(t) { return new (t || TreeListSpacerComponent)(); };\nTreeListSpacerComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: TreeListSpacerComponent, selectors: [[\"kendo-treelist-spacer\"], [\"kendo-treelist-pager-spacer\"]], hostVars: 6, hostBindings: function TreeListSpacerComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"flex-basis\", ctx.flexBasisStyle);\n ɵngcc0.ɵɵclassProp(\"k-spacer\", ctx.hostClass)(\"k-spacer-sized\", ctx.sizedClass);\n } }, inputs: { width: \"width\" }, decls: 0, vars: 0, template: function TreeListSpacerComponent_Template(rf, ctx) { }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-spacer'),\n __metadata(\"design:type\", Boolean)\n], TreeListSpacerComponent.prototype, \"hostClass\", void 0);\n__decorate([\n HostBinding('class.k-spacer-sized'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], TreeListSpacerComponent.prototype, \"sizedClass\", null);\n__decorate([\n HostBinding('style.flexBasis'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], TreeListSpacerComponent.prototype, \"flexBasisStyle\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TreeListSpacerComponent.prototype, \"width\", void 0);\n\nconst exportedModules$2 = [\n TreeListComponent,\n ToolbarTemplateDirective,\n ToolbarComponent,\n TreeListSpacerComponent,\n CustomMessagesComponent,\n TemplateEditingDirective,\n ReactiveEditingDirective,\n InCellEditingDirective,\n HierarchyBindingDirective,\n FlatBindingDirective,\n ExpandableDirective,\n SelectableDirective,\n ...SharedModule.exports(),\n ...BodyModule.exports(),\n ...HeaderModule.exports(),\n ...PagerModule.exports(),\n ...RowFilterModule.exports(),\n ...FilterMenuModule.exports(),\n ...ColumnMenuModule.exports()\n];\nconst declarations = [\n TreeListComponent,\n ListComponent,\n ToolbarComponent,\n LocalizedMessagesDirective,\n CustomMessagesComponent,\n ToolbarTemplateDirective,\n TemplateEditingDirective,\n ReactiveEditingDirective,\n InCellEditingDirective,\n HierarchyBindingDirective,\n FlatBindingDirective,\n ExpandableDirective,\n SelectableDirective,\n MarqueeDirective,\n TreeListSpacerComponent\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the TreeList component.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the TreeList module\n * import { TreeListModule } from '@progress/kendo-angular-treelist';\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, TreeListModule], // import TreeList module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nlet TreeListModule = class TreeListModule {\n};\nTreeListModule.ɵfac = function TreeListModule_Factory(t) { return new (t || TreeListModule)(); };\nTreeListModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: TreeListModule });\nTreeListModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[\n CommonModule,\n SharedModule,\n BodyModule,\n HeaderModule,\n PagerModule,\n RowFilterModule,\n FilterMenuModule,\n ResizeSensorModule,\n ColumnMenuModule\n ]] });\n\nlet PDFMarginComponent = class PDFMarginComponent extends PDFExportMarginComponent {\n};\nPDFMarginComponent.ɵfac = /*@__PURE__*/ function () { let ɵPDFMarginComponent_BaseFactory; return function PDFMarginComponent_Factory(t) { return (ɵPDFMarginComponent_BaseFactory || (ɵPDFMarginComponent_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(PDFMarginComponent)))(t || PDFMarginComponent); }; }();\nPDFMarginComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PDFMarginComponent, selectors: [[\"kendo-treelist-pdf-margin\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function PDFMarginComponent_Template(rf, ctx) { }, encapsulation: 2 });\n\n/**\n * Represents the PDF page template of the TreeList that helps to customize the PDF pages. To define a page template,\n * nest an `` tag with the `kendoTreeListPDFTemplate` 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 * {% meta height:550 %}\n * {% embed_file pdf-export/page-template-inline/app.component.ts preview %}\n * {% embed_file pdf-export/page-template-inline/app.module.ts %}\n * {% embed_file shared/filesystem.ts %}\n * {% embed_file shared/main.ts %}\n * {% endmeta %}\n */\nlet PDFTemplateDirective = class PDFTemplateDirective extends PDFExportTemplateDirective {\n constructor(templateRef) {\n super(templateRef);\n }\n};\nPDFTemplateDirective.ɵfac = function PDFTemplateDirective_Factory(t) { return new (t || PDFTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nPDFTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: PDFTemplateDirective, selectors: [[\"\", \"kendoTreeListPDFTemplate\", \"\"]], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nPDFTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], PDFTemplateDirective);\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-TREELIST-LIST';\nconst TABLE = 'TABLE';\nconst matchesList = matchesNodeName(GRID_LIST);\nconst matchesTable = matchesNodeName(TABLE);\nconst suffix = (locked) => locked ? 'locked' : 'wrap';\n/**\n * @hidden\n */\nclass TreeListQuery {\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 TreeListQuery(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$1 = (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$1('div', className);\n};\n/**\n * Configures the settings for the export of TreeList in PDF ([see example]({% slug pdfexport_treelist %})).\n */\nlet PDFComponent = class 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.totalVisible;\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$1('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 TreeListQuery(this.component.wrapper.nativeElement);\n const content = query.content();\n if (content) {\n const overlayQuery = new TreeListQuery(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 const onPageChanged = () => {\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 if (this.component.view.loading) {\n this.component.vida.dataLoaded.pipe(take(1)).subscribe(onPageChanged);\n }\n else {\n onPageChanged();\n }\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 this.ngZone.onStable.asObservable().pipe(take(1)).subscribe(callback);\n }\n};\nPDFComponent.ɵfac = function PDFComponent_Factory(t) { return new (t || PDFComponent)(ɵngcc0.ɵɵdirectiveInject(PDFService), ɵngcc0.ɵɵdirectiveInject(SuspendService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nPDFComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: PDFComponent, selectors: [[\"kendo-treelist-pdf\"]], contentQueries: function PDFComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, PDFMarginComponent, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, PDFTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, ColumnBase$1, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.marginComponent = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.pageTemplateDirective = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.columns = _t);\n } }, inputs: { allPages: \"allPages\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function PDFComponent_Template(rf, ctx) { }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], PDFComponent.prototype, \"allPages\", void 0);\n__decorate([\n ContentChildren(ColumnBase$1),\n __metadata(\"design:type\", QueryList)\n], PDFComponent.prototype, \"columns\", void 0);\n__decorate([\n ContentChild(PDFMarginComponent, { static: false }),\n __metadata(\"design:type\", PDFMarginComponent)\n], PDFComponent.prototype, \"marginComponent\", void 0);\n__decorate([\n ContentChild(PDFTemplateDirective, { static: false }),\n __metadata(\"design:type\", PDFTemplateDirective)\n], PDFComponent.prototype, \"pageTemplateDirective\", void 0);\nPDFComponent = __decorate([ __metadata(\"design:paramtypes\", [PDFService,\n SuspendService,\n NgZone,\n ElementRef])\n], PDFComponent);\n\n/**\n * Represents the `export-to-PDF` command of the TreeList.\n * You can apply this directive to any `button` element inside a\n * [`ToolbarTemplate`]({% slug api_treelist_commandcolumncomponent %}).\n * When the user clicks a button that is associated with the directive, the\n * [`pdfExport`]({% slug api_treelist_treelistcomponent %}#toc-pdfexport) event\n * fires ([see example]({% slug pdfexport_treelist %})).\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * \n * \n * ```\n */\nlet PDFCommandDirective = class 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.ɵfac = function PDFCommandDirective_Factory(t) { return new (t || PDFCommandDirective)(ɵngcc0.ɵɵdirectiveInject(PDFService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nPDFCommandDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: PDFCommandDirective, selectors: [[\"\", \"kendoTreeListPDFCommand\", \"\"]], hostVars: 2, hostBindings: function PDFCommandDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function PDFCommandDirective_click_HostBindingHandler($event) { return ctx.onClick($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-grid-pdf\", ctx.pdfClass);\n } }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n HostListener('click', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], PDFCommandDirective.prototype, \"onClick\", null);\n__decorate([\n HostBinding('class.k-grid-pdf'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], PDFCommandDirective.prototype, \"pdfClass\", null);\nPDFCommandDirective = __decorate([ __metadata(\"design:paramtypes\", [PDFService,\n ElementRef,\n Renderer2,\n LocalizationService,\n NgZone])\n], PDFCommandDirective);\n\nconst exportedModules$3 = [\n PDFComponent,\n PDFMarginComponent,\n PDFCommandDirective,\n PDFTemplateDirective\n];\nconst declarations$1 = [\n PDFComponent,\n PDFMarginComponent,\n PDFCommandDirective,\n PDFTemplateDirective\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the TreeList PDF component.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the TreeList and PDF modules\n * import { TreeListModule, PDFModule } from '@progress/kendo-angular-treelist';\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, TreeListModule, PDFModule], // import TreeList 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 */\nlet PDFModule = class PDFModule {\n};\nPDFModule.ɵfac = function PDFModule_Factory(t) { return new (t || PDFModule)(); };\nPDFModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: PDFModule });\nPDFModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\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\nconst hierarchyData = (view) => {\n const data = view.data;\n const levels = {};\n const aggregates = {};\n const items = [];\n let depth = 0;\n for (let idx = 0, dataIndex = 0; idx < data.length; idx++) {\n const item = data[idx];\n if (item.type === 'data') {\n items.push(item.data);\n levels[dataIndex] = item.level;\n depth = Math.max(depth, item.level);\n dataIndex++;\n }\n else {\n aggregates[item.parentIndex] = item.aggregates;\n }\n }\n return {\n itemId: (_item, idx) => idx,\n itemLevel: (_item, idx) => levels[idx],\n depth: depth + 1,\n aggregates,\n data: items\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 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 TreeList in Excel ([see example]({% slug excelexport_treelist %})).\n */\nlet ExcelComponent = class ExcelComponent {\n constructor(excelService, localization, zone) {\n this.excelService = excelService;\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 * Specifies if export should include all pages\n * @default true\n */\n this.allPages = true;\n /**\n * Specifies if the export should expand all items or should use the current TreeList state.\n * @default true\n */\n this.expandAll = true;\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 result = this.fetchData ? this.fetchData(component) : null;\n this.excelService.toggleLoading(true);\n this.zone.runOutsideAngular(() => {\n if (result && isObservable(result.data)) {\n this.dataSubscription = result.data.pipe(take(1)).subscribe((data) => {\n this.dataSubscription = null;\n this.exportData(component, {\n data: data,\n fetchChildren: result.fetchChildren,\n hasChildren: result.hasChildren\n });\n });\n }\n else {\n // allow the loading to be shown\n setTimeout(() => {\n this.exportData(component, result);\n });\n }\n });\n }\n exportData(component, result) {\n const viewOptions = result ? {\n fields: result,\n expandState: this.expandAll ? EXPANDED_STATE : component.expandStateService\n } : this.componentViewOptions(component);\n ViewCollection.loadView(viewOptions).subscribe((view) => {\n if (!view) {\n return;\n }\n const hierarchy = hierarchyData(view);\n const options = workbookOptions({\n columns: this.columns.length ? this.columns : componentColumns(component),\n data: hierarchy.data,\n aggregates: hierarchy.aggregates,\n filterable: this.filterable,\n creator: this.creator,\n date: this.date,\n rtl: this.localization.rtl,\n collapsible: this.collapsible,\n hierarchy: hierarchy,\n paddingCellOptions: this.paddingCellOptions\n });\n const args = new ExcelExportEvent(options);\n if (hasObservers(component.excelExport)) {\n this.zone.run(() => {\n component.excelExport.emit(args);\n });\n }\n this.excelService.toggleLoading(false);\n if (!args.isDefaultPrevented()) {\n this.saveFile(options);\n }\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 componentViewOptions(component) {\n return {\n fields: Object.assign(component.viewFieldAccessor(), {\n pageable: !this.allPages,\n skip: this.allPages ? 0 : component.skip\n }),\n expandState: !this.expandAll || (!this.allPages && component.pageable) ? component.expandStateService : EXPANDED_STATE,\n loaded: new Map(component.view.loaded)\n };\n }\n};\nExcelComponent.ɵfac = function ExcelComponent_Factory(t) { return new (t || ExcelComponent)(ɵngcc0.ɵɵdirectiveInject(ExcelService), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nExcelComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ExcelComponent, selectors: [[\"kendo-treelist-excel\"]], contentQueries: function ExcelComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, ColumnBase, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.columns = _t);\n } }, inputs: { fileName: \"fileName\", allPages: \"allPages\", expandAll: \"expandAll\", filterable: \"filterable\", creator: \"creator\", date: \"date\", forceProxy: \"forceProxy\", proxyURL: \"proxyURL\", fetchData: \"fetchData\", collapsible: \"collapsible\", paddingCellOptions: \"paddingCellOptions\" }, decls: 0, vars: 0, template: function ExcelComponent_Template(rf, ctx) { }, encapsulation: 2 });\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ExcelComponent.prototype, \"fileName\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ExcelComponent.prototype, \"filterable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ExcelComponent.prototype, \"creator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Date)\n], ExcelComponent.prototype, \"date\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ExcelComponent.prototype, \"forceProxy\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], ExcelComponent.prototype, \"proxyURL\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], ExcelComponent.prototype, \"fetchData\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ExcelComponent.prototype, \"collapsible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ExcelComponent.prototype, \"allPages\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], ExcelComponent.prototype, \"expandAll\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ExcelComponent.prototype, \"paddingCellOptions\", void 0);\n__decorate([\n ContentChildren(ColumnBase, { descendants: true }),\n __metadata(\"design:type\", QueryList)\n], ExcelComponent.prototype, \"columns\", void 0);\nExcelComponent = __decorate([ __metadata(\"design:paramtypes\", [ExcelService,\n LocalizationService,\n NgZone])\n], ExcelComponent);\n\n/**\n * Represents the `export-to-Excel` command of the TreeList. You can apply this\n * directive to any `button` element inside a\n * [`ToolbarTemplate`]({% slug api_treelist_commandcolumncomponent %}).\n * When the user clicks a button associated with the directive, the\n * [`excelExport`]({% slug api_treelist_treelistcomponent %}#toc-excelexport) event\n * fires ([see example]({% slug excelexport_treelist %})).\n *\n * @example\n * ```html-no-run\n * \n * \n * \n * \n * \n * \n * \n * ```\n */\nlet ExcelCommandDirective = class 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.ɵfac = function ExcelCommandDirective_Factory(t) { return new (t || ExcelCommandDirective)(ɵngcc0.ɵɵdirectiveInject(ExcelService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.LocalizationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nExcelCommandDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ExcelCommandDirective, selectors: [[\"\", \"kendoTreeListExcelCommand\", \"\"]], hostVars: 2, hostBindings: function ExcelCommandDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function ExcelCommandDirective_click_HostBindingHandler($event) { return ctx.onClick($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-grid-excel\", ctx.excelClass);\n } }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n__decorate([\n HostListener('click', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], ExcelCommandDirective.prototype, \"onClick\", null);\n__decorate([\n HostBinding('class.k-grid-excel'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], ExcelCommandDirective.prototype, \"excelClass\", null);\nExcelCommandDirective = __decorate([ __metadata(\"design:paramtypes\", [ExcelService,\n ElementRef,\n Renderer2,\n LocalizationService,\n NgZone])\n], ExcelCommandDirective);\n\nconst declarations$2 = [ExcelComponent, ExcelCommandDirective];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})\n * definition for the Excel component of the TreeList.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the TreeList and Excel modules\n * import { TreeListModule, ExcelModule } from '@progress/kendo-angular-treelist';\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, TreeListModule, ExcelModule], // import TreeList 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 */\nlet ExcelModule = class ExcelModule {\n};\nExcelModule.ɵfac = function ExcelModule_Factory(t) { return new (t || ExcelModule)(); };\nExcelModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: ExcelModule });\nExcelModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [ExcelExportModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CellTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTreeListCellTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTreeListEditTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(HeaderTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTreeListHeaderTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FooterTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTreeListFooterTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnMenuTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTreeListColumnMenuTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FilterCellTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTreeListFilterCellTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FilterMenuTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTreeListFilterMenuTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(OptionChangesService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: ColumnBase$1,\n useExisting: forwardRef(() => ColumnComponent_1)\n }\n ],\n selector: 'kendo-treelist-column',\n template: ``\n }]\n }], function () { return [{ type: ColumnBase$1, decorators: [{\n type: SkipSelf\n }, {\n type: Host\n }, {\n type: Optional\n }] }, { type: OptionChangesService }]; }, { sortable: [{\n type: Input\n }], editor: [{\n type: Input\n }], filter: [{\n type: Input\n }], filterable: [{\n type: Input\n }], editable: [{\n type: Input\n }], expandable: [{\n type: Input\n }], field: [{\n type: Input\n }], format: [{\n type: Input\n }], template: [{\n type: ContentChild,\n args: [CellTemplateDirective, { static: false }]\n }], editTemplate: [{\n type: ContentChild,\n args: [EditTemplateDirective, { static: false }]\n }], filterCellTemplate: [{\n type: ContentChild,\n args: [FilterCellTemplateDirective, { static: false }]\n }], filterMenuTemplate: [{\n type: ContentChild,\n args: [FilterMenuTemplateDirective, { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SpanColumnComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: ColumnBase$1,\n useExisting: forwardRef(() => SpanColumnComponent_1)\n }\n ],\n selector: 'kendo-treelist-span-column',\n template: ``\n }]\n }], function () { return [{ type: ColumnBase$1, decorators: [{\n type: SkipSelf\n }, {\n type: Host\n }, {\n type: Optional\n }] }, { type: OptionChangesService }]; }, { template: [{\n type: ContentChildren,\n args: [CellTemplateDirective, { descendants: false }]\n }], editTemplate: [{\n type: ContentChildren,\n args: [EditTemplateDirective, { descendants: false }]\n }], childColumns: [{\n type: ContentChildren,\n args: [ColumnComponent]\n }], editable: [{\n type: Input\n }], locked: [{\n type: Input\n }], expandable: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnGroupComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: ColumnBase$1,\n useExisting: forwardRef(() => ColumnGroupComponent_1)\n }\n ],\n selector: 'kendo-treelist-column-group',\n template: ``\n }]\n }], function () { return [{ type: ColumnBase$1, decorators: [{\n type: SkipSelf\n }, {\n type: Host\n }, {\n type: Optional\n }] }, { type: OptionChangesService }]; }, { children: [{\n type: ContentChildren,\n args: [ColumnBase$1]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(BrowserSupportService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc0.NgZone }, { type: ɵngcc0.ChangeDetectorRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc0.NgZone }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ChangeNotificationService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc0.NgZone }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NoRecordsTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTreeListNoRecordsTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PagerTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTreeListPagerTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PDFService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SuspendService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ResponsiveService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ExcelService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ToolbarTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTreeListToolbarTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }, { type: OptionChangesService }]; }, { position: [{\n type: Input,\n args: [\"position\"]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ScrollSyncService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc0.NgZone }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ResizeService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DomEventsService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnResizingService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SinglePopupService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc1.PopupService }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.NgZone }, { type: ScrollSyncService }, { type: ɵngcc2.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DragAndDropService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DragHintService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc3.DomSanitizer }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DropCueService, [{\n type: Injectable\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnReorderService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FocusRoot, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FocusGroup, [{\n type: Injectable\n }], function () { return [{ type: FocusRoot }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FocusableDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTreeListFocusable]' + `,\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n `\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: FocusGroup, decorators: [{\n type: Optional\n }] }]; }, { addCellContext: [{\n type: Input,\n args: ['kendoTreeListAddCommand']\n }], cellContext: [{\n type: Input,\n args: ['kendoTreeListFocusable']\n }], editCellContext: [{\n type: Input,\n args: ['kendoTreeListEditCommand']\n }], removeCellContext: [{\n type: Input,\n args: ['kendoTreeListRemoveCommand']\n }], saveCellContext: [{\n type: Input,\n args: ['kendoTreeListSaveCommand']\n }], cancelCellContext: [{\n type: Input,\n args: ['kendoTreeListCancelCommand']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ExpandStateService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ScrollRequestService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SelectionService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigationService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc0.NgZone }, { type: DomEventsService }, { type: PagerContextService }, { type: ScrollRequestService }, { type: FocusRoot }, { type: EditService }, { type: ɵngcc2.LocalizationService }, { type: ExpandStateService }, { type: SelectionService }, { type: ɵngcc0.ChangeDetectorRef }, { type: FocusableDirective, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IdService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnInfoService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DataBoundTreeComponent, [{\n type: Injectable\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ExpandableTreeComponent, [{\n type: Injectable\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TreeListComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'kendoTreeList',\n providers: [\n BrowserSupportService,\n LocalizationService,\n ColumnInfoService,\n ChangeNotificationService,\n EditService,\n PDFService,\n SuspendService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.treelist'\n },\n FilterService,\n ResponsiveService,\n PagerContextService,\n ExcelService,\n ScrollSyncService,\n ResizeService,\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 ExpandStateService,\n OptionChangesService,\n SelectionService,\n {\n provide: DataBoundTreeComponent,\n useExisting: forwardRef(() => TreeListComponent_1)\n },\n {\n provide: ExpandableTreeComponent,\n useExisting: forwardRef(() => TreeListComponent_1)\n }\n ],\n selector: 'kendo-treelist',\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 }], function () { return [{ type: BrowserSupportService }, { type: ɵngcc0.ElementRef }, { type: ChangeNotificationService }, { type: EditService }, { type: FilterService }, { type: PDFService }, { type: ResponsiveService }, { type: ɵngcc0.Renderer2 }, { type: ExcelService }, { type: ɵngcc0.NgZone }, { type: ScrollSyncService }, { type: DomEventsService }, { type: ColumnResizingService }, { type: ɵngcc0.ChangeDetectorRef }, { type: ColumnReorderService }, { type: ColumnInfoService }, { type: NavigationService }, { type: SortService }, { type: ScrollRequestService }, { type: ExpandStateService }, { type: OptionChangesService }, { type: SelectionService }, { type: ɵngcc2.LocalizationService }]; }, { pageSize: [{\n type: Input\n }], scrollable: [{\n type: Input\n }], trackBy: [{\n type: Input\n }], virtualColumns: [{\n type: Input\n }], filterable: [{\n type: Input\n }], sortable: [{\n type: Input\n }], pageable: [{\n type: Input\n }], navigable: [{\n type: Input\n }], autoSize: [{\n type: Input\n }], resizable: [{\n type: Input\n }], reorderable: [{\n type: Input\n }], loading: [{\n type: Input\n }], columnMenu: [{\n type: Input\n }], hideHeader: [{\n type: Input\n }], selectionChange: [{\n type: Output\n }], filterChange: [{\n type: Output\n }], pageChange: [{\n type: Output\n }], sortChange: [{\n type: Output\n }], dataStateChange: [{\n type: Output\n }], edit: [{\n type: Output\n }], cancel: [{\n type: Output\n }], save: [{\n type: Output\n }], remove: [{\n type: Output\n }], add: [{\n type: Output\n }], cellClose: [{\n type: Output\n }], cellClick: [{\n type: Output\n }], pdfExport: [{\n type: Output\n }], excelExport: [{\n type: Output\n }], columnResize: [{\n type: Output\n }], columnReorder: [{\n type: Output\n }], columnVisibilityChange: [{\n type: Output\n }], columnLockedChange: [{\n type: Output\n }], scrollBottom: [{\n type: Output\n }], contentScroll: [{\n type: Output\n }], expandEvent: [{\n type: Output,\n args: ['expand']\n }], collapseEvent: [{\n type: Output,\n args: ['collapse']\n }], expandStateChange: [{\n type: Output\n }], columns: [{\n type: ContentChildren,\n args: [ColumnBase$1]\n }], footer: [{\n type: ViewChildren,\n args: ['footer']\n }], skip: [{\n type: Input\n }], data: [{\n type: Input\n }], sort: [{\n type: Input\n }], navigatable: [{\n type: Input\n }], rowClass: [{\n type: Input\n }], idField: [{\n type: Input\n }], selectable: [{\n type: Input\n }], isSelected: [{\n type: Input\n }], columnsRef: [{\n type: Input,\n args: ['columns']\n }], dir: [{\n type: HostBinding,\n args: ['attr.dir']\n }], hostClasses: [{\n type: HostBinding,\n args: ['class.k-widget']\n }, {\n type: HostBinding,\n args: ['class.k-grid']\n }, {\n type: HostBinding,\n args: ['class.k-treelist']\n }], lockedClasses: [{\n type: HostBinding,\n args: ['class.k-grid-lockedcolumns']\n }], virtualClasses: [{\n type: HostBinding,\n args: ['class.k-grid-virtual']\n }], noScrollbarClass: [{\n type: HostBinding,\n args: ['class.k-grid-no-scrollbar']\n }], fetchChildren: [{\n type: Input\n }], hasChildren: [{\n type: Input\n }], isExpanded: [{\n type: Input\n }], ariaLabel: [{\n type: Input,\n args: ['aria-label']\n }], height: [{\n type: Input\n }], rowHeight: [{\n type: Input\n }], filter: [{\n type: Input\n }], noRecordsTemplateChildren: [{\n type: ContentChildren,\n args: [NoRecordsTemplateDirective]\n }], pagerTemplateChildren: [{\n type: ContentChildren,\n args: [PagerTemplateDirective]\n }], toolbarTemplateChildren: [{\n type: ContentChildren,\n args: [ToolbarTemplateDirective]\n }], columnMenuTemplates: [{\n type: ContentChildren,\n args: [ColumnMenuTemplateDirective]\n }], lockedHeader: [{\n type: ViewChild,\n args: ['lockedHeader', { static: false }]\n }], header: [{\n type: ViewChild,\n args: ['header', { static: false }]\n }], ariaRoot: [{\n type: ViewChild,\n args: ['ariaRoot', { static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ListComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: SCROLLER_FACTORY_TOKEN,\n useValue: DEFAULT_SCROLLER_FACTORY\n }\n ],\n selector: 'kendo-treelist-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 }], function () { return [{ type: Object, decorators: [{\n type: Inject,\n args: [SCROLLER_FACTORY_TOKEN]\n }] }, { type: ChangeNotificationService }, { type: SuspendService }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.Renderer2 }, { type: ScrollSyncService }, { type: ResizeService }, { type: EditService }, { type: BrowserSupportService }, { type: NavigationService }, { type: ScrollRequestService }, { type: ɵngcc2.LocalizationService }, { type: ColumnResizingService }, { type: ɵngcc0.ChangeDetectorRef }, { type: PDFService }, { type: ColumnInfoService }]; }, { skip: [{\n type: Input\n }], columns: [{\n type: Input\n }], trackBy: [{\n type: Input\n }], contentScroll: [{\n type: Output\n }], pageChange: [{\n type: Output\n }], scrollBottom: [{\n type: Output\n }], resizeSensors: [{\n type: ViewChildren,\n args: [ResizeSensorComponent]\n }], hostClass: [{\n type: HostBinding,\n args: [\"class.k-grid-container\"]\n }], hostRole: [{\n type: HostBinding,\n args: [\"attr.role\"]\n }], view: [{\n type: Input\n }], total: [{\n type: Input\n }], rowHeight: [{\n type: Input\n }], take: [{\n type: Input\n }], noRecordsTemplate: [{\n type: Input\n }], filterable: [{\n type: Input\n }], rowClass: [{\n type: Input\n }], loading: [{\n type: Input\n }], virtualColumns: [{\n type: Input\n }], isVirtual: [{\n type: Input\n }], expandIcons: [{\n type: Input\n }], container: [{\n type: ViewChild,\n args: ['container', { static: true }]\n }], table: [{\n type: ViewChild,\n args: ['table', { static: true }]\n }], lockedContainer: [{\n type: ViewChild,\n args: ['lockedContainer', { static: false }]\n }], lockedTable: [{\n type: ViewChild,\n args: ['lockedTable', { static: false }]\n }] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LocalizedMessagesDirective, [{\n type: Directive,\n args: [{\n providers: [\n {\n provide: Messages,\n useExisting: forwardRef(() => LocalizedMessagesDirective_1)\n }\n ],\n selector: '[kendoTreeListLocalizedMessages]'\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CustomMessagesComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: Messages,\n useExisting: forwardRef(() => CustomMessagesComponent_1)\n }\n ],\n selector: 'kendo-treelist-messages',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FilterRowComponent, [{\n type: Component,\n args: [{\n selector: '[kendoTreeListFilterRow]',\n template: `\n \n `\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, { columns: [{\n type: Input\n }], filterRowClass: [{\n type: HostBinding,\n args: ['class.k-filter-row']\n }], filter: [{\n type: Input\n }], logicalRowIndex: [{\n type: Input\n }], lockedColumnsCount: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FilterCellComponent, [{\n type: Component,\n args: [{\n selector: '[kendoTreeListFilterCell]',\n template: `\n \n \n \n \n \n \n \n \n \n \n
    \n `\n }]\n }], function () { return [{ type: FocusGroup }]; }, { filter: [{\n type: Input\n }], column: [{\n type: Input\n }] }); })();\n\n\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NumericFilterCellComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-treelist-numeric-filter-cell',\n template: `\n \n \n \n \n `\n }]\n }], function () { return [{ type: FilterService }, { type: ɵngcc2.LocalizationService }]; }, { filterDelay: [{\n type: Input\n }], showOperators: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FilterInputDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoFilterInput]'\n }]\n }], function () { return [{ type: Array, decorators: [{\n type: Self\n }, {\n type: Inject,\n args: [NG_VALUE_ACCESSOR]\n }] }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }]; }, { filterDelay: [{\n type: Input\n }], value: [{\n type: Input\n }] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FilterCellWrapperComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-treelist-filter-wrapper-cell',\n template: `\n \n \n \n `\n }]\n }], function () { return [{ type: FilterService }]; }, { showOperators: [{\n type: Input\n }], hostClasses: [{\n type: HostBinding,\n args: ['class.k-filtercell-wrapper']\n }], overrideBaseClasses: [{\n type: HostBinding,\n args: ['class.k-filtercell']\n }] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(StringFilterCellComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-treelist-string-filter-cell',\n template: `\n \n \n \n `\n }]\n }], function () { return [{ type: FilterService }, { type: ɵngcc2.LocalizationService }]; }, { filterDelay: [{\n type: Input\n }], showOperators: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FilterCellOperatorsComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-treelist-filter-cell-operators',\n template: `\n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, { operators: [{\n type: Input\n }], showOperators: [{\n type: Input\n }], valueChange: [{\n type: Output\n }], clear: [{\n type: Output\n }], hostClasses: [{\n type: HostBinding,\n args: ['class.k-filtercell-operator']\n }], dropdown: [{\n type: ViewChild,\n args: ['dropdown', { static: false }]\n }], showButton: [{\n type: Input\n }], value: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AutoCompleteFilterCellComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-treelist-autocomplete-filter-cell',\n template: `\n \n \n \n \n `\n }]\n }], function () { return [{ type: FilterService }, { type: ColumnComponent }, { type: ɵngcc2.LocalizationService }]; }, { showOperators: [{\n type: Input\n }], column: [{\n type: Input\n }], valueField: [{\n type: Input\n }], filter: [{\n type: Input\n }], data: [{\n type: Input\n }] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(BooleanFilterCellComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-treelist-boolean-filter-cell',\n template: `\n \n \n \n \n `\n }]\n }], function () { return [{ type: FilterService }, { type: ɵngcc2.LocalizationService }, { type: ɵngcc0.ChangeDetectorRef }]; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DateFilterCellComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-treelist-date-filter-cell',\n template: `\n \n \n \n \n `\n }]\n }], function () { return [{ type: FilterService }, { type: ɵngcc2.LocalizationService }]; }, { showOperators: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CheckboxColumnComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: ColumnBase$1,\n useExisting: forwardRef(() => CheckboxColumnComponent_1)\n }\n ],\n selector: 'kendo-treelist-checkbox-column',\n template: ``\n }]\n }], function () { return [{ type: ColumnBase$1, decorators: [{\n type: SkipSelf\n }, {\n type: Host\n }, {\n type: Optional\n }] }]; }, { showSelectAll: [{\n type: Input\n }], checkChildren: [{\n type: Input\n }], expandable: [{\n type: Input\n }], template: [{\n type: ContentChild,\n args: [CellTemplateDirective, { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColGroupComponent, [{\n type: Component,\n args: [{\n selector: '[kendoTreeListColGroup]',\n template: `\n \n `\n }]\n }], function () { return []; }, { columns: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LoadingComponent, [{\n type: Component,\n args: [{\n selector: '[kendoTreeListLoading]',\n template: `\n {{ loadingText }}\n
    \n
    \n `\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, { hostClass: [{\n type: HostBinding,\n args: ['class.k-loading-mask']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ResizableContainerDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTreeListResizableContainer]'\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ResizeService }, { type: TreeListComponent, decorators: [{\n type: Optional\n }] }]; }, { lockedWidth: [{\n type: Input,\n args: ['lockedWidth']\n }], kendoTreeListResizableContainer: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TemplateContextDirective, [{\n type: Directive,\n args: [{\n selector: '[templateContext]' // tslint:disable-line:directive-selector\n }]\n }], function () { return [{ type: ɵngcc0.ViewContainerRef }]; }, { templateContext: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LogicalCellDirective, [{\n type: Directive,\n args: [{\n providers: [{\n provide: FocusGroup,\n deps: [FocusRoot],\n useClass: FocusGroup\n }],\n selector: '[kendoTreeListLogicalCell]'\n }]\n }], function () { return [{ type: FocusGroup }, { type: ɵngcc0.ElementRef }, { type: ColumnInfoService }, { type: IdService }, { type: NavigationService }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.NgZone }]; }, { logicalSlaveCell: [{\n type: Input\n }], colSpan: [{\n type: Input\n }], rowSpan: [{\n type: Input\n }], dataRowIndex: [{\n type: Input\n }], expandable: [{\n type: Input\n }], id: [{\n type: HostBinding,\n args: ['attr.id']\n }], ariaColIndex: [{\n type: HostBinding,\n args: ['attr.aria-colindex']\n }], logicalColIndex: [{\n type: Input\n }], logicalRowIndex: [{\n type: Input\n }], column: [{\n type: Input\n }], colIndex: [{\n type: Input\n }], dataItem: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LogicalRowDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTreeListLogicalRow]'\n }]\n }], function () { return [{ type: IdService }, { type: NavigationService }]; }, { logicalSlaveRow: [{\n type: Input\n }], logicalSlaveCellsCount: [{\n type: Input\n }], dataRowIndex: [{\n type: Input\n }], isNew: [{\n type: Input\n }], hostRole: [{\n type: HostBinding,\n args: ['attr.role']\n }], ariaRowIndex: [{\n type: HostBinding,\n args: ['attr.aria-rowindex']\n }], ariaOwns: [{\n type: HostBinding,\n args: ['attr.aria-owns']\n }], logicalRowIndex: [{\n type: Input\n }], logicalCellsCount: [{\n type: Input\n }], dataItem: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FieldAccessorPipe, [{\n type: Pipe,\n args: [{\n name: 'valueOf',\n pure: false\n }]\n }], function () { return [{ type: ɵngcc10.IntlService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TableDirective, [{\n type: Directive,\n args: [{\n selector: 'table' // tslint:disable-line:directive-selector\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ColumnResizingService }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ChangeDetectorRef }]; }, { locked: [{\n type: Input\n }], minWidth: [{\n type: HostBinding,\n args: ['style.min-width']\n }], virtualColumns: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SharedModule, [{\n type: NgModule,\n args: [{\n declarations: [exportedModules],\n exports: [exportedModules, DraggableModule],\n imports: [CommonModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(SharedModule, { declarations: function () { return [ColumnComponent, ColumnGroupComponent, LogicalCellDirective, LogicalRowDirective, FocusableDirective, ColGroupComponent, ResizableContainerDirective, TemplateContextDirective, FieldAccessorPipe, SpanColumnComponent, TableDirective, LoadingComponent, CheckboxColumnComponent]; }, imports: function () { return [CommonModule]; }, exports: function () { return [ColumnComponent, ColumnGroupComponent, LogicalCellDirective, LogicalRowDirective, FocusableDirective, ColGroupComponent, ResizableContainerDirective, TemplateContextDirective, FieldAccessorPipe, SpanColumnComponent, TableDirective, LoadingComponent, CheckboxColumnComponent, DraggableModule]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ContainsFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => ContainsFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-treelist-filter-contains-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DoesNotContainFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => DoesNotContainFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-treelist-filter-not-contains-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EndsWithFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => EndsWithFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-treelist-filter-endswith-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EqualFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => EqualFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-treelist-filter-eq-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IsEmptyFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => IsEmptyFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-treelist-filter-isempty-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IsNotEmptyFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => IsNotEmptyFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-treelist-filter-isnotempty-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IsNotNullFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => IsNotNullFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-treelist-filter-isnotnull-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IsNullFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => IsNullFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-treelist-filter-isnull-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NotEqualFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => NotEqualFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-treelist-filter-neq-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(StartsWithFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => StartsWithFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-treelist-filter-startswith-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(GreaterFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => GreaterFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-treelist-filter-gt-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(GreaterOrEqualToFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => GreaterOrEqualToFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-treelist-filter-gte-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LessFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => LessFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-treelist-filter-lt-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LessOrEqualToFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => LessOrEqualToFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-treelist-filter-lte-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AfterFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => AfterFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-treelist-filter-after-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AfterEqFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => AfterEqFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-treelist-filter-after-eq-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(BeforeEqFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => BeforeEqFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-treelist-filter-before-eq-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(BeforeFilterOperatorComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => BeforeFilterOperatorComponent_1)\n }\n ],\n selector: 'kendo-treelist-filter-before-operator',\n template: ``\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SharedFilterModule, [{\n type: NgModule,\n args: [{\n declarations: [FILTER_OPERATORS, COMPONENTS],\n exports: [FILTER_OPERATORS, importedModules, COMPONENTS],\n imports: [...importedModules]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(SharedFilterModule, { declarations: [FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, FilterInputDirective], imports: [CommonModule,\n ReactiveFormsModule,\n FormsModule,\n DropDownListModule,\n AutoCompleteModule,\n InputsModule,\n DatePickerModule,\n PopupModule, SharedModule], exports: [FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, CommonModule,\n ReactiveFormsModule,\n FormsModule,\n DropDownListModule,\n AutoCompleteModule,\n InputsModule,\n DatePickerModule,\n PopupModule, SharedModule, FilterInputDirective] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FilterCellHostDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoFilterCellHost]'\n }]\n }], function () { return [{ type: ɵngcc0.ViewContainerRef }, { type: ɵngcc0.ComponentFactoryResolver }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(RowFilterModule, [{\n type: NgModule,\n args: [{\n declarations: [INTERNAL_COMPONENTS],\n entryComponents: ENTRY_COMPONENTS,\n exports: [INTERNAL_COMPONENTS, SharedFilterModule],\n imports: [SharedFilterModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(RowFilterModule, { declarations: [FilterRowComponent, FilterCellComponent, FilterCellTemplateDirective, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, FilterCellHostDirective, FilterCellWrapperComponent, DateFilterCellComponent], imports: [SharedFilterModule], exports: [FilterRowComponent, FilterCellComponent, FilterCellTemplateDirective, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, FilterCellHostDirective, FilterCellWrapperComponent, DateFilterCellComponent, SharedFilterModule] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PagerComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-treelist-pager',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: PagerContextService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }]; }, { allCount: [{\n type: Input\n }], total: [{\n type: Input\n }], skip: [{\n type: Input\n }], pageChange: [{\n type: Output\n }], pagerWrapClass: [{\n type: HostBinding,\n args: ['class.k-pager-wrap']\n }], gridPagerClass: [{\n type: HostBinding,\n args: ['class.k-grid-pager']\n }], widgetClass: [{\n type: HostBinding,\n args: ['class.k-widget']\n }], options: [{\n type: Input\n }], pageSize: [{\n type: Input\n }], template: [{\n type: Input\n }] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PagerPrevButtonsComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-treelist-pager-prev-buttons',\n template: `\n \n \n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }, { type: PagerContextService }, { type: ɵngcc0.ChangeDetectorRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PagerNextButtonsComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-treelist-pager-next-buttons',\n template: `\n \n \n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }, { type: PagerContextService }, { type: ɵngcc0.ChangeDetectorRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PagerNumericButtonsComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-treelist-pager-numeric-buttons',\n template: `\n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }, { type: ɵngcc0.ChangeDetectorRef }, { type: PagerContextService }]; }, { numbersWrapClass: [{\n type: HostBinding,\n args: ['class.k-pager-numbers-wrap']\n }], buttonCount: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PagerInputComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-treelist-pager-input',\n template: `\n \n {{textFor('pagerPage')}}\n \n \n {{textFor('pagerOf')}} {{totalPages}}\n \n `\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }, { type: PagerContextService }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ChangeDetectorRef }]; }, { numericInput: [{\n type: ViewChild,\n args: [NumericTextBoxComponent, { static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PagerInfoComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-treelist-pager-info',\n template: `{{textFor('pagerPage')}} {{currentPageText}} {{textFor('pagerOf')}} {{maxPage}} ({{allCount}} {{textFor('pagerItemsTotal')}})`\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }, { type: ɵngcc0.ChangeDetectorRef }, { type: PagerContextService }]; }, { classes: [{\n type: HostBinding,\n args: [\"class.k-pager-info\"]\n }, {\n type: HostBinding,\n args: [\"class.k-label\"]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PagerPageSizesComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-treelist-pager-page-sizes',\n template: `\n \n \n `\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }, { type: ɵngcc0.ChangeDetectorRef }, { type: PagerContextService }]; }, { pageSizes: [{\n type: Input\n }], classes: [{\n type: HostBinding,\n args: [\"class.k-pager-sizes\"]\n }, {\n type: HostBinding,\n args: [\"class.k-label\"]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PagerModule, [{\n type: NgModule,\n args: [{\n declarations: [INTERNAL_COMPONENTS$1],\n exports: [INTERNAL_COMPONENTS$1],\n imports: [...importedModules$1]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(PagerModule, { declarations: [PagerComponent, PagerPrevButtonsComponent, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerInputComponent, PagerInfoComponent, PagerPageSizesComponent, PagerTemplateDirective], imports: [CommonModule,\n InputsModule,\n LabelModule,\n DropDownsModule,\n ResizeSensorModule, SharedModule, EventsModule], exports: [PagerComponent, PagerPrevButtonsComponent, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerInputComponent, PagerInfoComponent, PagerPageSizesComponent, PagerTemplateDirective] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DropTargetDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoDropTarget]'\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: DragAndDropService }]; }, { context: [{\n type: Input\n }], enter: [{\n type: Output\n }], leave: [{\n type: Output\n }], drop: [{\n type: Output\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(HeaderComponent, [{\n type: Component,\n args: [{\n selector: '[kendoTreeListHeader]',\n template: `\n 0\"\n [logicalCellsCount]=\"columns.length\"\n [logicalSlaveCellsCount]=\"unlockedColumnsCount\">\n \n \n \n \n \n \n \n \n \n {{column.displayTitle}}\n \n \n \n \n \n \n \n {{column.displayTitle}}\n \n \n {{sortOrder(column.field)}}\n \n \n \n \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 }], function () { return [{ type: SinglePopupService }, { type: DragHintService }, { type: DropCueService }, { type: ColumnReorderService }, { type: SortService }, { type: SelectionService }, { type: ɵngcc2.LocalizationService }, { type: ɵngcc0.ChangeDetectorRef }]; }, { columns: [{\n type: Input\n }], sort: [{\n type: Input\n }], sortable: [{\n type: Input\n }], lockedColumnsCount: [{\n type: Input\n }], resizable: [{\n type: Input\n }], reorderable: [{\n type: Input\n }], columnMenu: [{\n type: Input\n }], totalColumnsCount: [{\n type: Input\n }], dropTargets: [{\n type: ViewChildren,\n args: [DropTargetDirective]\n }], headerClass: [{\n type: HostBinding,\n args: ['class.k-grid-header']\n }], totalColumnLevels: [{\n type: Input\n }], scrollable: [{\n type: Input\n }], filterable: [{\n type: Input\n }], filter: [{\n type: Input\n }], columnMenuTemplate: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnHandleDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTreeListColumnHandle]'\n }]\n }], function () { return [{ type: ɵngcc5.DraggableDirective, decorators: [{\n type: Host\n }] }, { type: ɵngcc0.ElementRef }, { type: ColumnResizingService }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc2.LocalizationService }]; }, { columns: [{\n type: Input\n }], visible: [{\n type: HostBinding,\n args: ['style.display']\n }], leftStyle: [{\n type: HostBinding,\n args: ['style.left']\n }], rightStyle: [{\n type: HostBinding,\n args: ['style.right']\n }], autoFit: [{\n type: HostListener,\n args: ['dblclick']\n }], column: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FilterMenuComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-treelist-filter-menu',\n template: `\n \n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: FilterService }, { type: SinglePopupService }, { type: ɵngcc2.LocalizationService }]; }, { column: [{\n type: Input\n }], filter: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FilterMenuContainerComponent, [{\n type: Component,\n args: [{\n providers: [FilterService],\n selector: 'kendo-treelist-filter-menu-container',\n template: `\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n
    \n \n {{clearText}}\n \n \n {{filterText}}\n \n
    \n
    \n
    \n `\n }]\n }], function () { return [{ type: FilterService, decorators: [{\n type: SkipSelf\n }] }, { type: FilterService }, { type: ɵngcc2.LocalizationService }, { type: ɵngcc0.ChangeDetectorRef }]; }, { close: [{\n type: Output\n }], actionsClass: [{\n type: Input\n }], filter: [{\n type: Input\n }], column: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FilterMenuInputWrapperComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-treelist-filter-menu-input-wrapper',\n template: `\n \n \n \n `\n }]\n }], function () { return []; }, { currentFilter: [{\n type: Input\n }], filterService: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(StringFilterMenuInputComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-treelist-string-filter-menu-input',\n template: `\n \n \n \n `\n }]\n }], function () { return []; }, { operators: [{\n type: Input\n }], column: [{\n type: Input\n }], filter: [{\n type: Input\n }], operator: [{\n type: Input\n }], currentFilter: [{\n type: Input\n }], filterService: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(StringFilterMenuComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-treelist-string-filter-menu',\n template: `\n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, { filter: [{\n type: Input\n }], extra: [{\n type: Input\n }], hostClasses: [{\n type: HostBinding,\n args: ['class.k-filtercell']\n }], column: [{\n type: Input\n }], filterService: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NumericFilterMenuComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-treelist-numeric-filter-menu',\n template: `\n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, { filter: [{\n type: Input\n }], extra: [{\n type: Input\n }], hostClasses: [{\n type: HostBinding,\n args: ['class.k-filtercell']\n }], column: [{\n type: Input\n }], filterService: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NumericFilterMenuInputComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-treelist-numeric-filter-menu-input',\n template: `\n \n \n \n \n `\n }]\n }], function () { return []; }, { operators: [{\n type: Input\n }], step: [{\n type: Input\n }], spinners: [{\n type: Input\n }], column: [{\n type: Input\n }], filter: [{\n type: Input\n }], operator: [{\n type: Input\n }], currentFilter: [{\n type: Input\n }], filterService: [{\n type: Input\n }], min: [{\n type: Input\n }], max: [{\n type: Input\n }], decimals: [{\n type: Input\n }], format: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DateFilterMenuComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-treelist-date-filter-menu',\n template: `\n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, { filter: [{\n type: Input\n }], extra: [{\n type: Input\n }], hostClasses: [{\n type: HostBinding,\n args: ['class.k-filtercell']\n }], column: [{\n type: Input\n }], filterService: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(BooleanFilterMenuComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-treelist-boolean-filter-menu',\n template: `\n
      \n
    • \n \n \n
    • \n
    \n `\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, { filter: [{\n type: Input\n }], hostClasses: [{\n type: HostBinding,\n args: ['class.k-filtercell']\n }], filterService: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FilterMenuHostDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoFilterMenuHost]'\n }]\n }], function () { return [{ type: ɵngcc0.ViewContainerRef }, { type: ɵngcc0.ComponentFactoryResolver }]; }, { filterService: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DateFilterMenuInputComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-treelist-date-filter-menu-input',\n template: `\n \n \n \n \n `\n }]\n }], function () { return [{ type: SinglePopupService }]; }, { operators: [{\n type: Input\n }], column: [{\n type: Input\n }], filter: [{\n type: Input\n }], operator: [{\n type: Input\n }], currentFilter: [{\n type: Input\n }], filterService: [{\n type: Input\n }], format: [{\n type: Input\n }], formatPlaceholder: [{\n type: Input\n }], placeholder: [{\n type: Input\n }], min: [{\n type: Input\n }], max: [{\n type: Input\n }], activeView: [{\n type: Input\n }], bottomView: [{\n type: Input\n }], topView: [{\n type: Input\n }], weekNumber: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FilterMenuModule, [{\n type: NgModule,\n args: [{\n declarations: [INTERNAL_COMPONENTS$2],\n entryComponents: ENTRY_COMPONENTS$1,\n exports: [INTERNAL_COMPONENTS$2, SharedFilterModule],\n imports: [SharedFilterModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(FilterMenuModule, { declarations: [FilterMenuComponent, FilterMenuContainerComponent, FilterMenuInputWrapperComponent, StringFilterMenuInputComponent, StringFilterMenuComponent, FilterMenuTemplateDirective, NumericFilterMenuComponent, NumericFilterMenuInputComponent, DateFilterMenuInputComponent, DateFilterMenuComponent, FilterMenuHostDirective, BooleanFilterMenuComponent], imports: [SharedFilterModule], exports: [FilterMenuComponent, FilterMenuContainerComponent, FilterMenuInputWrapperComponent, StringFilterMenuInputComponent, StringFilterMenuComponent, FilterMenuTemplateDirective, NumericFilterMenuComponent, NumericFilterMenuInputComponent, DateFilterMenuInputComponent, DateFilterMenuComponent, FilterMenuHostDirective, BooleanFilterMenuComponent, SharedFilterModule] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DraggableColumnDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoDraggableColumn]'\n }]\n }], function () { return [{ type: ɵngcc5.DraggableDirective, decorators: [{\n type: Host\n }] }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }, { type: DragAndDropService }, { type: DragHintService }, { type: DropCueService }, { type: NavigationService }, { type: ɵngcc0.Renderer2 }]; }, { context: [{\n type: Input\n }], drag: [{\n type: Output\n }], enableDrag: [{\n type: Input\n }], hostClass: [{\n type: HostBinding,\n args: ['class.k-grid-draggable-header']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DragAndDropModule, [{\n type: NgModule,\n args: [{\n declarations: [exported],\n exports: [exported]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(DragAndDropModule, { declarations: [DraggableColumnDirective, DropTargetDirective], exports: [DraggableColumnDirective, DropTargetDirective] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnListComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-treelist-columnlist',\n template: `\n
    \n \n
    \n
    \n \n {{ resetText }}\n \n \n {{ applyText }}\n \n
    \n `\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.Renderer2 }]; }, { reset: [{\n type: Output\n }], apply: [{\n type: Output\n }], columnChange: [{\n type: Output\n }], autoSync: [{\n type: Input\n }], allowHideAll: [{\n type: Input\n }], actionsClass: [{\n type: Input\n }], className: [{\n type: HostBinding,\n args: [\"class.k-column-list-wrapper\"]\n }], columns: [{\n type: Input\n }], applyText: [{\n type: Input\n }], resetText: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnChooserComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-treelist-column-chooser',\n template: `\n \n \n {{ localization.get('columns') }}\n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }, { type: ColumnInfoService }, { type: ɵngcc1.PopupService }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ChangeDetectorRef }]; }, { autoSync: [{\n type: Input\n }], allowHideAll: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnMenuService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnMenuChooserComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-treelist-columnmenu-chooser',\n template: `\n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }, { type: ColumnInfoService }, { type: ɵngcc0.ChangeDetectorRef }]; }, { expand: [{\n type: Output\n }], collapse: [{\n type: Output\n }], expanded: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnMenuFilterComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-treelist-columnmenu-filter',\n template: `\n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }]; }, { expand: [{\n type: Output\n }], collapse: [{\n type: Output\n }], expanded: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnMenuItemContentTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTreeListColumnMenuItemContentTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnMenuItemComponent, [{\n type: Component,\n 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-treelist-columnmenu-item',\n template: `\n
    \n \n \n {{ text }}\n
    \n
    \n \n \n
    \n `\n }]\n }], function () { return []; }, { itemClick: [{\n type: Output\n }], expand: [{\n type: Output\n }], collapse: [{\n type: Output\n }], expanded: [{\n type: Input\n }], icon: [{\n type: Input\n }], text: [{\n type: Input\n }], selected: [{\n type: Input\n }], disabled: [{\n type: Input\n }], contentTemplate: [{\n type: ContentChild,\n args: [ColumnMenuItemContentTemplateDirective, { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnMenuSortComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-treelist-columnmenu-sort',\n template: `\n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }, { type: SortService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnMenuComponent, [{\n type: Component,\n args: [{\n providers: [ColumnMenuService],\n selector: 'kendo-treelist-column-menu',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `\n }]\n }], function () { return [{ type: SinglePopupService }, { type: ɵngcc2.LocalizationService }, { type: ColumnMenuService }]; }, { standalone: [{\n type: HostBinding,\n args: ['class.k-grid-column-menu-standalone']\n }, {\n type: Input\n }], settings: [{\n type: Input\n }], sortable: [{\n type: Input\n }], column: [{\n type: Input\n }], sort: [{\n type: Input\n }], filter: [{\n type: Input\n }], columnMenuTemplate: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnMenuLockComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-treelist-columnmenu-lock',\n template: `\n \n \n `\n }]\n }], function () { return [{ type: ɵngcc2.LocalizationService }, { type: ColumnInfoService }, { type: ɵngcc0.ChangeDetectorRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnMenuModule, [{\n type: NgModule,\n args: [{\n declarations: [COMPONENTS$1],\n imports: [CommonModule, FilterMenuModule],\n exports: [COMPONENTS$1]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(ColumnMenuModule, { declarations: function () { return [ColumnListComponent, ColumnChooserComponent, ColumnMenuChooserComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuSortComponent, ColumnMenuComponent, ColumnMenuLockComponent, ColumnMenuTemplateDirective]; }, imports: function () { return [CommonModule, FilterMenuModule]; }, exports: function () { return [ColumnListComponent, ColumnChooserComponent, ColumnMenuChooserComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuSortComponent, ColumnMenuComponent, ColumnMenuLockComponent, ColumnMenuTemplateDirective]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(HeaderModule, [{\n type: NgModule,\n args: [{\n declarations: [exportedModules$1],\n exports: [exportedModules$1],\n imports: [...importedModules$2]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(HeaderModule, { declarations: [HeaderComponent, HeaderTemplateDirective, ColumnHandleDirective], imports: [CommonModule, RowFilterModule, FilterMenuModule, SharedModule, DragAndDropModule, ColumnMenuModule], exports: [HeaderComponent, HeaderTemplateDirective, ColumnHandleDirective] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CommandColumnComponent, [{\n type: Component,\n args: [{\n providers: [\n {\n provide: ColumnBase$1,\n useExisting: forwardRef(() => CommandColumnComponent_1)\n }\n ],\n selector: 'kendo-treelist-command-column',\n template: ``\n }]\n }], function () { return [{ type: ColumnBase$1, decorators: [{\n type: SkipSelf\n }, {\n type: Host\n }, {\n type: Optional\n }] }, { type: OptionChangesService }]; }, { template: [{\n type: ContentChild,\n args: [CellTemplateDirective, { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TableBodyComponent, [{\n type: Component,\n args: [{\n selector: '[kendoTreeListTableBody]',\n template: `\n \n \n \n \n \n {{noRecordsText}}\n \n \n \n \n 0\"\n [logicalCellsCount]=\"columns.length\"\n [logicalSlaveCellsCount]=\"unlockedColumnsCount\"\n [isNew]=\"item.isNew\"\n [ngClass]=\"rowClass({ dataItem: item.data, index: item.index })\"\n [class.k-alt]=\"isOdd(item)\"\n [class.k-grid-edit-row]=\"isEditingRow(item)\"\n [class.k-grid-add-row]=\"item.isNew\"\n [class.k-state-selected]=\"item.selected\"\n [attr.data-treelist-view-index]=\"rowIndex\">\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 }], function () { return [{ type: ChangeNotificationService }, { type: EditService }, { type: ɵngcc2.LocalizationService }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }, { type: DomEventsService }, { type: ColumnInfoService }, { type: NavigationService }, { type: ExpandStateService }, { type: SelectionService }]; }, { columns: [{\n type: Input\n }], skip: [{\n type: Input\n }], noRecordsText: [{\n type: Input\n }], isLocked: [{\n type: Input\n }], lockedColumnsCount: [{\n type: Input\n }], totalColumnsCount: [{\n type: Input\n }], trackBy: [{\n type: Input\n }], rowClass: [{\n type: Input\n }], allColumns: [{\n type: Input\n }], noRecordsTemplate: [{\n type: Input\n }], view: [{\n type: Input\n }], filterable: [{\n type: Input\n }], virtualColumns: [{\n type: Input\n }], expandIcons: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CellComponent, [{\n type: Component,\n args: [{\n selector: '[kendoTreeListCell]',\n template: `\n \n \n \n \n \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 }], function () { return [{ type: EditService }, { type: FocusGroup }]; }, { isNew: [{\n type: Input\n }], level: [{\n type: Input\n }], commandCellClass: [{\n type: HostBinding,\n args: ['class.k-command-cell']\n }], checkboxCellClass: [{\n type: HostBinding,\n args: ['class.k-checkbox-cell']\n }], textNoWrapClass: [{\n type: HostBinding,\n args: ['class.k-text-nowrap']\n }], viewItem: [{\n type: Input\n }], column: [{\n type: Input\n }], columnIndex: [{\n type: Input\n }], hasChildren: [{\n type: Input\n }], isExpanded: [{\n type: Input\n }], loading: [{\n type: Input\n }], expandIcons: [{\n type: Input\n }], selected: [{\n type: Input\n }], dataItem: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(BaseCommandDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTreeListBaseCommand]'\n }]\n }], function () { return [{ type: EditService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc2.LocalizationService }, { type: ɵngcc0.NgZone }]; }, { visible: [{\n type: HostBinding,\n args: ['style.display']\n }], \n /**\n * @hidden\n */\n clickHandler: [{\n type: HostListener,\n args: ['click', ['$event']]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EditCommandDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTreeListEditCommand]'\n }]\n }], function () { return [{ type: EditService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc2.LocalizationService }, { type: ɵngcc0.NgZone }]; }, { commandClass: [{\n type: HostBinding,\n args: ['class.k-grid-edit-command']\n }], cellContext: [{\n type: Input,\n args: ['kendoTreeListEditCommand']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CancelCommandDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTreeListCancelCommand]'\n }]\n }], function () { return [{ type: EditService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc2.LocalizationService }, { type: ɵngcc0.NgZone }]; }, { commandClass: [{\n type: HostBinding,\n args: ['class.k-grid-cancel-command']\n }], cellContext: [{\n type: Input,\n args: ['kendoTreeListCancelCommand']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SaveCommandDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTreeListSaveCommand]'\n }]\n }], function () { return [{ type: EditService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc2.LocalizationService }, { type: ɵngcc0.NgZone }]; }, { commandClass: [{\n type: HostBinding,\n args: ['class.k-grid-save-command']\n }], cellContext: [{\n type: Input,\n args: ['kendoTreeListSaveCommand']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(RemoveCommandDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTreeListRemoveCommand]'\n }]\n }], function () { return [{ type: EditService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc2.LocalizationService }, { type: ɵngcc0.NgZone }]; }, { commandClass: [{\n type: HostBinding,\n args: ['class.k-grid-remove-command']\n }], cellContext: [{\n type: Input,\n args: ['kendoTreeListRemoveCommand']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AddCommandDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTreeListAddCommand]'\n }]\n }], function () { return [{ type: EditService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc2.LocalizationService }, { type: ɵngcc0.NgZone }]; }, { commandClass: [{\n type: HostBinding,\n args: ['class.k-grid-add-command']\n }], cellContext: [{\n type: Input,\n args: ['kendoTreeListAddCommand']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LevelItemsPipe, [{\n type: Pipe,\n args: [{\n name: 'levelItems',\n pure: true\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(BodyModule, [{\n type: NgModule,\n args: [{\n declarations: [exported$1],\n exports: [exported$1],\n imports: [...importedModules$3]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(BodyModule, { declarations: [CommandColumnComponent, CellTemplateDirective, EditTemplateDirective, TableBodyComponent, NoRecordsTemplateDirective, CellComponent, BaseCommandDirective, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, LevelItemsPipe, FooterTemplateDirective], imports: [CommonModule,\n ReactiveFormsModule,\n FormsModule, SharedModule, NumericTextBoxModule,\n DatePickerModule], exports: [CommandColumnComponent, CellTemplateDirective, EditTemplateDirective, TableBodyComponent, NoRecordsTemplateDirective, CellComponent, BaseCommandDirective, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, LevelItemsPipe, FooterTemplateDirective] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ToolbarComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-treelist-toolbar',\n template: `\n \n \n `\n }]\n }], function () { return [{ type: TreeListComponent }]; }, { classNames: [{\n type: HostBinding,\n args: ['class']\n }], position: [{\n type: Input\n }] }); })();\n\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TemplateEditingDirective, [{\n type: Directive,\n args: [{\n exportAs: 'kendoTreeListTemplateEditing',\n selector: '[kendoTreeListTemplateEditing]'\n }]\n }], function () { return [{ type: TreeListComponent }]; }, { createNewItem: [{\n type: Input,\n args: ['kendoTreeListTemplateEditing']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ReactiveEditingDirective, [{\n type: Directive,\n args: [{\n exportAs: 'kendoTreeListReactiveEditing',\n selector: '[kendoTreeListReactiveEditing]'\n }]\n }], function () { return [{ type: TreeListComponent }]; }, { createFormGroup: [{\n type: Input,\n args: ['kendoTreeListReactiveEditing']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(InCellEditingDirective, [{\n type: Directive,\n args: [{\n exportAs: 'kendoTreeListInCellEditing',\n selector: '[kendoTreeListInCellEditing]'\n }]\n }], function () { return [{ type: TreeListComponent }]; }, { createFormGroup: [{\n type: Input,\n args: ['kendoTreeListInCellEditing']\n }] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(HierarchyBindingDirective, [{\n type: Directive,\n args: [{\n exportAs: 'kendoTreeListHierarchyBinding',\n selector: '[kendoTreeListHierarchyBinding]'\n }]\n }], function () { return [{ type: DataBoundTreeComponent }]; }, { childrenField: [{\n type: Input\n }], data: [{\n type: Input,\n args: [\"kendoTreeListHierarchyBinding\"]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FlatBindingDirective, [{\n type: Directive,\n args: [{\n exportAs: 'kendoTreeListFlatBinding',\n selector: '[kendoTreeListFlatBinding]'\n }]\n }], function () { return [{ type: DataBoundTreeComponent }]; }, { parentIdField: [{\n type: Input\n }], idField: [{\n type: Input\n }], data: [{\n type: Input,\n args: [\"kendoTreeListFlatBinding\"]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ExpandableDirective, [{\n type: Directive,\n args: [{\n exportAs: 'kendoTreeListExpandable',\n selector: '[kendoTreeListExpandable]'\n }]\n }], function () { return [{ type: ExpandableTreeComponent }]; }, { expandedKeysChange: [{\n type: Output\n }], initiallyExpanded: [{\n type: Input\n }], expandedKeys: [{\n type: Input\n }], expandBy: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SelectableDirective, [{\n type: Directive,\n args: [{\n exportAs: 'kendoTreeListSelectable',\n selector: '[kendoTreeListSelectable]'\n }]\n }], function () { return [{ type: TreeListComponent }]; }, { selectedItemsChange: [{\n type: Output\n }], selectable: [{\n type: Input\n }], selectedItems: [{\n type: Input\n }], itemKey: [{\n type: Input\n }], columnKey: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MarqueeDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTreeListSelectionMarquee]'\n }]\n }], function () { return [{ type: ɵngcc5.DraggableDirective }, { type: SelectionService }, { type: ɵngcc0.ChangeDetectorRef }]; }, { userSelection: [{\n type: HostBinding,\n args: ['style.user-select']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TreeListSpacerComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-treelist-spacer, kendo-treelist-pager-spacer',\n template: ``\n }]\n }], function () { return []; }, { hostClass: [{\n type: HostBinding,\n args: ['class.k-spacer']\n }], sizedClass: [{\n type: HostBinding,\n args: ['class.k-spacer-sized']\n }], flexBasisStyle: [{\n type: HostBinding,\n args: ['style.flexBasis']\n }], width: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TreeListModule, [{\n type: NgModule,\n args: [{\n declarations: [declarations],\n exports: [exportedModules$2],\n imports: [\n CommonModule,\n SharedModule,\n BodyModule,\n HeaderModule,\n PagerModule,\n RowFilterModule,\n FilterMenuModule,\n ResizeSensorModule,\n ColumnMenuModule\n ]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(TreeListModule, { declarations: function () { return [TreeListComponent, ListComponent, ToolbarComponent, LocalizedMessagesDirective, CustomMessagesComponent, ToolbarTemplateDirective, TemplateEditingDirective, ReactiveEditingDirective, InCellEditingDirective, HierarchyBindingDirective, FlatBindingDirective, ExpandableDirective, SelectableDirective, MarqueeDirective, TreeListSpacerComponent]; }, imports: function () { return [CommonModule, SharedModule, BodyModule, HeaderModule, PagerModule, RowFilterModule, FilterMenuModule, ResizeSensorModule, ColumnMenuModule]; }, exports: function () { return [TreeListComponent, ToolbarTemplateDirective, ToolbarComponent, TreeListSpacerComponent, CustomMessagesComponent, TemplateEditingDirective, ReactiveEditingDirective, InCellEditingDirective, HierarchyBindingDirective, FlatBindingDirective, ExpandableDirective, SelectableDirective, ColumnComponent, SpanColumnComponent, CheckboxColumnComponent, ColumnGroupComponent, FocusableDirective, CommandColumnComponent, CellTemplateDirective, NoRecordsTemplateDirective, EditTemplateDirective, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, FooterTemplateDirective, HeaderTemplateDirective, PagerComponent, PagerPrevButtonsComponent, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerInputComponent, PagerInfoComponent, PagerPageSizesComponent, PagerTemplateDirective, FilterRowComponent, FilterCellComponent, FilterCellTemplateDirective, FilterCellOperatorsComponent, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, DateFilterCellComponent, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, StringFilterMenuComponent, FilterMenuTemplateDirective, NumericFilterMenuComponent, DateFilterMenuComponent, BooleanFilterMenuComponent, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, ColumnChooserComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuSortComponent, ColumnMenuLockComponent, ColumnMenuChooserComponent, ColumnMenuTemplateDirective, ColumnMenuComponent]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PDFMarginComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-treelist-pdf-margin',\n template: ''\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PDFTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTreeListPDFTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PDFComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-treelist-pdf',\n template: ''\n }]\n }], function () { return [{ type: PDFService }, { type: SuspendService }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ElementRef }]; }, { columns: [{\n type: ContentChildren,\n args: [ColumnBase$1]\n }], allPages: [{\n type: Input\n }], marginComponent: [{\n type: ContentChild,\n args: [PDFMarginComponent, { static: false }]\n }], pageTemplateDirective: [{\n type: ContentChild,\n args: [PDFTemplateDirective, { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PDFCommandDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTreeListPDFCommand]'\n }]\n }], function () { return [{ type: PDFService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc2.LocalizationService }, { type: ɵngcc0.NgZone }]; }, { \n /**\n * @hidden\n */\n onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }], pdfClass: [{\n type: HostBinding,\n args: ['class.k-grid-pdf']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PDFModule, [{\n type: NgModule,\n args: [{\n declarations: [declarations$1],\n exports: [exportedModules$3]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(PDFModule, { declarations: [PDFComponent, PDFMarginComponent, PDFCommandDirective, PDFTemplateDirective], exports: [PDFComponent, PDFMarginComponent, PDFCommandDirective, PDFTemplateDirective] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ExcelComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-treelist-excel',\n template: ``\n }]\n }], function () { return [{ type: ExcelService }, { type: ɵngcc2.LocalizationService }, { type: ɵngcc0.NgZone }]; }, { fileName: [{\n type: Input\n }], allPages: [{\n type: Input\n }], expandAll: [{\n type: Input\n }], columns: [{\n type: ContentChildren,\n args: [ColumnBase, { descendants: true }]\n }], filterable: [{\n type: Input\n }], creator: [{\n type: Input\n }], date: [{\n type: Input\n }], forceProxy: [{\n type: Input\n }], proxyURL: [{\n type: Input\n }], fetchData: [{\n type: Input\n }], collapsible: [{\n type: Input\n }], paddingCellOptions: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ExcelCommandDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTreeListExcelCommand]'\n }]\n }], function () { return [{ type: ExcelService }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc2.LocalizationService }, { type: ɵngcc0.NgZone }]; }, { \n /**\n * @hidden\n */\n onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }], excelClass: [{\n type: HostBinding,\n args: ['class.k-grid-excel']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ExcelModule, [{\n type: NgModule,\n args: [{\n declarations: [declarations$2],\n exports: [declarations$2, ExcelExportModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(ExcelModule, { declarations: function () { return [ExcelComponent, ExcelCommandDirective]; }, exports: function () { return [ExcelComponent, ExcelCommandDirective, ExcelExportModule]; } }); })();\n\n\n\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BaseBindingDirective, ColumnChooserComponent, ColumnListComponent, ColumnMenuChooserComponent, ColumnMenuFilterComponent, ColumnMenuItemBase, ColumnMenuItemContentTemplateDirective, ColumnMenuItemComponent, ColumnMenuLockComponent, ColumnMenuSortComponent, ColumnMenuTemplateDirective, ColumnMenuModule, ColumnMenuService, ColumnHandleDirective, ColumnResizingService, TableDirective, ColumnInfoService, DomEventsService, IdService, OptionChangesService, PreventableEvent, SortService, ChangeNotificationService, ColumnReorderService, DragAndDropModule, DragAndDropService, DragHintService, DraggableColumnDirective, DropCueService, DropTargetDirective, EditingDirectiveBase, RowEditingDirectiveBase, AddCommandDirective, BaseCommandDirective, CancelCommandDirective, EditCommandDirective, EditService as EditService$1, RemoveCommandDirective, SaveCommandDirective, ExcelCommandDirective, ExpandStateService, BooleanFilterComponent, BooleanFilterCellComponent, FilterCellHostDirective, FilterCellOperatorsComponent, FilterCellWrapperComponent, DateFilterComponent, FilterHostDirective, FilterInputWrapperComponent, FilterInputDirective, FilterRowComponent, DateFilterMenuInputComponent, FilterMenuContainerComponent, FilterMenuHostDirective, FilterMenuInputWrapperComponent, FilterMenuComponent, NumericFilterMenuInputComponent, StringFilterMenuInputComponent, NumericFilterComponent, FilterOperatorBase, SharedFilterModule, StringFilterComponent, BrowserSupportService, ResizeService, ResponsiveService, LocalizedMessagesDirective, Messages, FocusGroup, FocusRoot, LogicalCellDirective, LogicalRowDirective, NavigationService, PagerContextService, PagerElementComponent, PDFCommandDirective, PDFTemplateDirective, CellComponent, FieldAccessorPipe, LevelItemsPipe, DEFAULT_SCROLLER_FACTORY, SCROLLER_FACTORY_TOKEN, ScrollRequestService, ScrollSyncService, ScrollerService, MarqueeDirective, SelectionService, TreeListModule, SharedModule, TreeListComponent, DataBoundTreeComponent, HierarchyBindingDirective, FlatBindingDirective, ColumnBase$1 as ColumnBase, ColumnComponent, CheckboxColumnComponent, CommandColumnComponent, SpanColumnComponent, ColumnGroupComponent, ToolbarComponent, ToolbarTemplateDirective, CellTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, PagerTemplateDirective, ResizableContainerDirective, TemplateContextDirective, NoRecordsTemplateDirective, FilterService, FilterCellTemplateDirective, FilterCellComponent, StringFilterCellComponent, DateFilterCellComponent, BaseFilterCellComponent, FilterMenuTemplateDirective, NumericFilterMenuComponent, StringFilterMenuComponent, DateFilterMenuComponent, BooleanFilterMenuComponent, TreeListSpacerComponent, 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, HeaderModule, PagerModule, TemplateEditingDirective, ReactiveEditingDirective, InCellEditingDirective, EditTemplateDirective, ColGroupComponent, HeaderComponent, ListComponent, TableBodyComponent, PagerComponent, CustomMessagesComponent, LoadingComponent, PDFModule, PDFComponent, PDFMarginComponent, PDFService, ExcelModule, ExcelComponent, ExcelService, SelectableDirective, SelectionChangeEvent, CellCloseEvent, SuspendService, Skip, ColumnReorderEvent, FocusableDirective, ColumnVisibilityChangeEvent, ColumnMenuComponent, SinglePopupService, PopupCloseEvent, ExpandEvent, ExpandableDirective, ExpandableTreeComponent };\n\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 { EventEmitter, Injectable, Directive, Optional, TemplateRef, forwardRef, isDevMode, HostBinding, ViewChild, ViewContainerRef, Input, Output, ContentChild, Component, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, NgZone, Renderer2, ComponentFactoryResolver, Host, NgModule } from '@angular/core';\nimport { isDocumentAvailable, Keys, anyChanged, hasObservers, isChanged, guid } from '@progress/kendo-angular-common';\nimport { LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';\nimport { Subject, of, BehaviorSubject, Subscription, EMPTY, merge } from 'rxjs';\nimport { validatePackage } from '@progress/kendo-licensing';\nimport { getter, setter } from '@progress/kendo-common';\nimport { trigger, transition, style, animate } from '@angular/animations';\nimport { filter, catchError, tap, finalize, switchMap, take, map, delay, takeUntil } from 'rxjs/operators';\nimport { CommonModule } from '@angular/common';\nimport Draggable from '@telerik/kendo-draggable';\nimport { InputsModule } from '@progress/kendo-angular-inputs';\n\n/**\n * @hidden\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@progress/kendo-angular-l10n';\nimport * as ɵngcc2 from '@angular/common';\nimport * as ɵngcc3 from '@progress/kendo-angular-inputs';\n\nconst _c0 = [\"assetsContainer\"];\nfunction TreeViewComponent_span_0_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 6);\n} }\nfunction TreeViewComponent_span_0_Template(rf, ctx) { if (rf & 1) {\n const _r4 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"span\", 3)(1, \"kendo-textbox\", 4);\n ɵngcc0.ɵɵlistener(\"valueChange\", function TreeViewComponent_span_0_Template_kendo_textbox_valueChange_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r4); const ctx_r3 = ɵngcc0.ɵɵnextContext(); return ctx_r3.filterChange.emit($event); });\n ɵngcc0.ɵɵtemplate(2, TreeViewComponent_span_0_ng_template_2_Template, 1, 0, \"ng-template\", 5);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"size\", ctx_r0.size)(\"value\", ctx_r0.filter)(\"clearButton\", true)(\"placeholder\", ctx_r0.filterInputPlaceholder);\n} }\nconst _c1 = [\"kendoTreeViewGroup\", \"\"];\nfunction TreeViewGroupComponent_li_0_span_2_Template(rf, ctx) { if (rf & 1) {\n const _r11 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"span\", 12);\n ɵngcc0.ɵɵlistener(\"click\", function TreeViewGroupComponent_li_0_span_2_Template_span_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r11); const ctx_r10 = ɵngcc0.ɵɵnextContext(); const index_r3 = ctx_r10.index; const node_r2 = ctx_r10.$implicit; const ctx_r9 = ɵngcc0.ɵɵnextContext(); return ctx_r9.expandNode(ctx_r9.nodeIndex(index_r3), node_r2, !ctx_r9.isExpanded(node_r2, ctx_r9.nodeIndex(index_r3))); });\n ɵngcc0.ɵɵelement(1, \"span\", 13);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r12 = ɵngcc0.ɵɵnextContext();\n const index_r3 = ctx_r12.index;\n const node_r2 = ctx_r12.$implicit;\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"kendoTreeViewLoading\", ctx_r4.nodeIndex(index_r3));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"k-i-collapse\", ctx_r4.isExpanded(node_r2, ctx_r4.nodeIndex(index_r3)))(\"k-i-expand\", !ctx_r4.isExpanded(node_r2, ctx_r4.nodeIndex(index_r3)));\n} }\nfunction TreeViewGroupComponent_li_0_kendo_checkbox_3_Template(rf, ctx) { if (rf & 1) {\n const _r15 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"kendo-checkbox\", 14);\n ɵngcc0.ɵɵlistener(\"checkStateChange\", function TreeViewGroupComponent_li_0_kendo_checkbox_3_Template_kendo_checkbox_checkStateChange_0_listener() { ɵngcc0.ɵɵrestoreView(_r15); const index_r3 = ɵngcc0.ɵɵnextContext().index; const ctx_r13 = ɵngcc0.ɵɵnextContext(); return ctx_r13.checkNode(ctx_r13.nodeIndex(index_r3)); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r16 = ɵngcc0.ɵɵnextContext();\n const node_r2 = ctx_r16.$implicit;\n const index_r3 = ctx_r16.index;\n const ctx_r5 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"size\", ctx_r5.size)(\"node\", node_r2)(\"index\", ctx_r5.nodeIndex(index_r3))(\"isChecked\", ctx_r5.isChecked);\n} }\nfunction TreeViewGroupComponent_li_0_ng_container_7_ng_template_1_Template(rf, ctx) { }\nconst _c2 = function (a0, a1) { return { $implicit: a0, index: a1 }; };\nfunction TreeViewGroupComponent_li_0_ng_container_7_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, TreeViewGroupComponent_li_0_ng_container_7_ng_template_1_Template, 0, 0, \"ng-template\", 15);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r18 = ɵngcc0.ɵɵnextContext();\n const node_r2 = ctx_r18.$implicit;\n const index_r3 = ctx_r18.index;\n const ctx_r6 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r6.nodeTemplateRef)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction2(2, _c2, node_r2, ctx_r6.nodeIndex(index_r3)));\n} }\nfunction TreeViewGroupComponent_li_0_ng_container_8_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const node_r2 = ɵngcc0.ɵɵnextContext().$implicit;\n const ctx_r7 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r7.nodeText(node_r2), \" \");\n} }\nfunction TreeViewGroupComponent_li_0_ul_9_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"ul\", 16);\n} if (rf & 2) {\n const ctx_r20 = ɵngcc0.ɵɵnextContext();\n const node_r2 = ctx_r20.$implicit;\n const index_r3 = ctx_r20.index;\n const ctx_r8 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"nodes\", ctx_r8.fetchChildren)(\"loadOnDemand\", ctx_r8.loadOnDemand)(\"checkboxes\", ctx_r8.checkboxes)(\"expandIcons\", ctx_r8.expandIcons)(\"selectable\", ctx_r8.selectable)(\"touchActions\", ctx_r8.touchActions)(\"children\", ctx_r8.children)(\"hasChildren\", ctx_r8.hasChildren)(\"isChecked\", ctx_r8.isChecked)(\"isDisabled\", ctx_r8.isDisabled)(\"disabled\", ctx_r8.disabled || ctx_r8.isDisabled(node_r2, ctx_r8.nodeIndex(index_r3)))(\"isExpanded\", ctx_r8.isExpanded)(\"isSelected\", ctx_r8.isSelected)(\"isVisible\", ctx_r8.isVisible)(\"nodeTemplateRef\", ctx_r8.nodeTemplateRef)(\"loadMoreButtonTemplateRef\", ctx_r8.loadMoreButtonTemplateRef)(\"parentIndex\", ctx_r8.nodeIndex(index_r3))(\"parentDataItem\", node_r2)(\"textField\", ctx_r8.nextFields)(\"loadMoreService\", ctx_r8.loadMoreService)(\"@toggle\", true)(\"trackBy\", ctx_r8.trackBy);\n} }\nfunction TreeViewGroupComponent_li_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"li\", 2)(1, \"div\", 3);\n ɵngcc0.ɵɵtemplate(2, TreeViewGroupComponent_li_0_span_2_Template, 2, 5, \"span\", 4);\n ɵngcc0.ɵɵtemplate(3, TreeViewGroupComponent_li_0_kendo_checkbox_3_Template, 1, 4, \"kendo-checkbox\", 5);\n ɵngcc0.ɵɵelementStart(4, \"span\", 6)(5, \"span\", 7);\n ɵngcc0.ɵɵelementContainerStart(6, 8);\n ɵngcc0.ɵɵtemplate(7, TreeViewGroupComponent_li_0_ng_container_7_Template, 2, 5, \"ng-container\", 9);\n ɵngcc0.ɵɵtemplate(8, TreeViewGroupComponent_li_0_ng_container_8_Template, 2, 1, \"ng-container\", 10);\n ɵngcc0.ɵɵelementContainerEnd();\n ɵngcc0.ɵɵelementEnd()()();\n ɵngcc0.ɵɵtemplate(9, TreeViewGroupComponent_li_0_ul_9_Template, 1, 22, \"ul\", 11);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const node_r2 = ctx.$implicit;\n const index_r3 = ctx.index;\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"k-display-none\", !ctx_r0.isVisible(node_r2, ctx_r0.nodeIndex(index_r3)));\n ɵngcc0.ɵɵproperty(\"dataItem\", node_r2)(\"index\", ctx_r0.nodeIndex(index_r3))(\"parentDataItem\", ctx_r0.parentDataItem)(\"parentIndex\", ctx_r0.parentIndex)(\"loadOnDemand\", ctx_r0.loadOnDemand)(\"checkable\", ctx_r0.checkboxes)(\"isChecked\", ctx_r0.isChecked(node_r2, ctx_r0.nodeIndex(index_r3)))(\"isDisabled\", ctx_r0.disabled || ctx_r0.isDisabled(node_r2, ctx_r0.nodeIndex(index_r3)))(\"isVisible\", ctx_r0.isVisible(node_r2, ctx_r0.nodeIndex(index_r3)))(\"expandable\", ctx_r0.expandIcons && ctx_r0.hasChildren(node_r2))(\"isExpanded\", ctx_r0.isExpanded(node_r2, ctx_r0.nodeIndex(index_r3)))(\"selectable\", ctx_r0.selectable)(\"isSelected\", ctx_r0.isSelected(node_r2, ctx_r0.nodeIndex(index_r3)));\n ɵngcc0.ɵɵattribute(\"aria-setsize\", ctx_r0.totalNodesCount)(\"data-treeindex\", ctx_r0.nodeIndex(index_r3));\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r0.expandIcons && ctx_r0.hasChildren(node_r2));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r0.checkboxes);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵstyleProp(\"touch-action\", ctx_r0.touchActions ? \"\" : \"none\");\n ɵngcc0.ɵɵproperty(\"dataItem\", node_r2)(\"index\", ctx_r0.nodeIndex(index_r3))(\"initialSelection\", ctx_r0.isSelected(node_r2, ctx_r0.nodeIndex(index_r3)))(\"isSelected\", ctx_r0.isSelected);\n ɵngcc0.ɵɵattribute(\"data-treeindex\", ctx_r0.nodeIndex(index_r3));\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngSwitch\", ctx_r0.hasTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngSwitchCase\", true);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r0.isExpanded(node_r2, ctx_r0.nodeIndex(index_r3)) && ctx_r0.hasChildren(node_r2));\n} }\nfunction TreeViewGroupComponent_li_1_span_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 21);\n} }\nfunction TreeViewGroupComponent_li_1_5_ng_template_0_Template(rf, ctx) { }\nconst _c3 = function (a0) { return { index: a0 }; };\nfunction TreeViewGroupComponent_li_1_5_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, TreeViewGroupComponent_li_1_5_ng_template_0_Template, 0, 0, \"ng-template\", 15);\n} if (rf & 2) {\n const ctx_r22 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r22.loadMoreButtonTemplateRef)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction1(2, _c3, ctx_r22.loadMoreButtonIndex));\n} }\nfunction TreeViewGroupComponent_li_1_ng_container_6_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtext(1, \" Load more \");\n ɵngcc0.ɵɵelementContainerEnd();\n} }\nfunction TreeViewGroupComponent_li_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"li\", 17)(1, \"div\", 3);\n ɵngcc0.ɵɵtemplate(2, TreeViewGroupComponent_li_1_span_2_Template, 1, 0, \"span\", 18);\n ɵngcc0.ɵɵelementStart(3, \"span\", 19)(4, \"span\", 7);\n ɵngcc0.ɵɵtemplate(5, TreeViewGroupComponent_li_1_5_Template, 1, 4, null, 20);\n ɵngcc0.ɵɵtemplate(6, TreeViewGroupComponent_li_1_ng_container_6_Template, 2, 0, \"ng-container\", 20);\n ɵngcc0.ɵɵelementEnd()()()();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"k-treeview-load-more-checkboxes-container\", ctx_r1.checkboxes);\n ɵngcc0.ɵɵproperty(\"selectable\", false)(\"checkable\", false)(\"expandable\", false)(\"index\", ctx_r1.loadMoreButtonIndex)(\"parentDataItem\", ctx_r1.parentDataItem)(\"parentIndex\", ctx_r1.parentIndex);\n ɵngcc0.ɵɵattribute(\"data-treeindex\", ctx_r1.loadMoreButtonIndex);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r1.loadingMoreNodes);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"index\", ctx_r1.loadMoreButtonIndex);\n ɵngcc0.ɵɵattribute(\"data-treeindex\", ctx_r1.loadMoreButtonIndex);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r1.loadMoreButtonTemplateRef);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r1.loadMoreButtonTemplateRef);\n} }\nfunction DragClueComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵelement(1, \"span\");\n ɵngcc0.ɵɵelementStart(2, \"span\");\n ɵngcc0.ɵɵtext(3);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassMapInterpolate1(\"k-icon \", ctx_r0.statusIconClass, \" k-drag-status\");\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate(ctx_r0.text);\n} }\nfunction DragClueComponent_1_ng_template_0_Template(rf, ctx) { }\nconst _c4 = function (a0, a1, a2, a3) { return { text: a0, action: a1, sourceItem: a2, destinationItem: a3 }; };\nfunction DragClueComponent_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DragClueComponent_1_ng_template_0_Template, 0, 0, \"ng-template\", 1);\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.template)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction4(2, _c4, ctx_r1.text, ctx_r1.action, ctx_r1.sourceItem, ctx_r1.destinationItem));\n} }\nfunction DropHintComponent_div_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 2);\n ɵngcc0.ɵɵelement(1, \"div\", 3)(2, \"div\", 4);\n ɵngcc0.ɵɵelementEnd();\n} }\nfunction DropHintComponent_1_ng_template_0_ng_template_0_Template(rf, ctx) { }\nfunction DropHintComponent_1_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DropHintComponent_1_ng_template_0_ng_template_0_Template, 0, 0, \"ng-template\");\n} }\nconst _c5 = function (a0, a1, a2) { return { action: a0, sourceItem: a1, destinationItem: a2 }; };\nfunction DropHintComponent_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DropHintComponent_1_ng_template_0_Template, 1, 0, \"ng-template\", 5);\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.template)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction3(2, _c5, ctx_r1.action, ctx_r1.sourceItem, ctx_r1.destinationItem));\n} }\nconst packageMetadata = {\n name: '@progress/kendo-angular-treeview',\n productName: 'Kendo UI for Angular',\n productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],\n publishDate: 1646219256,\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\n/**\n * @hidden\n */\nclass DataChangeNotificationService {\n constructor() {\n this.changes = new EventEmitter();\n }\n notify() {\n this.changes.emit();\n }\n}\nDataChangeNotificationService.ɵfac = function DataChangeNotificationService_Factory(t) { return new (t || DataChangeNotificationService)(); };\nDataChangeNotificationService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: DataChangeNotificationService, factory: DataChangeNotificationService.ɵfac });\n\n/**\n * @hidden\n */\nconst hasChildren = () => false;\n/**\n * @hidden\n */\nconst isChecked = () => 'none';\n/**\n * @hidden\n */\nconst isDisabled = () => false;\n/**\n * @hidden\n */\nconst isExpanded = () => true;\n/**\n * @hidden\n */\nconst isSelected = () => false;\n/**\n * @hidden\n */\nconst isVisible = () => true;\n/**\n * @hidden\n */\nconst trackBy = (_, item) => item;\n\n/**\n * @hidden\n */\nlet ExpandStateService = class ExpandStateService {\n /**\n * @hidden\n */\n constructor() {\n this.changes = new Subject();\n }\n expand(index, dataItem) {\n this.changes.next({ dataItem, index, expand: true });\n }\n collapse(index, dataItem) {\n this.changes.next({ dataItem, index, expand: false });\n }\n};\nExpandStateService.ɵfac = function ExpandStateService_Factory(t) { return new (t || ExpandStateService)(); };\nExpandStateService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ExpandStateService, factory: function (t) { return ExpandStateService.ɵfac(t); } });\n\n/**\n * @hidden\n */\nlet IndexBuilderService = class IndexBuilderService {\n /**\n * @hidden\n */\n constructor() {\n this.INDEX_SEPARATOR = '_';\n }\n nodeIndex(index = '', parentIndex = '') {\n return `${parentIndex}${parentIndex ? this.INDEX_SEPARATOR : ''}${index}`;\n }\n indexForLevel(index, level) {\n return index.split(this.INDEX_SEPARATOR).slice(0, level).join(this.INDEX_SEPARATOR);\n }\n lastLevelIndex(index = '') {\n const parts = index.split(this.INDEX_SEPARATOR);\n if (!parts.length) {\n return NaN;\n }\n return parseInt(parts[parts.length - 1], 10);\n }\n level(index) {\n return index.split(this.INDEX_SEPARATOR).length;\n }\n};\nIndexBuilderService.ɵfac = function IndexBuilderService_Factory(t) { return new (t || IndexBuilderService)(); };\nIndexBuilderService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: IndexBuilderService, factory: function (t) { return IndexBuilderService.ɵfac(t); } });\n\n/**\n * @hidden\n */\nlet LoadingNotificationService = class LoadingNotificationService {\n /**\n * @hidden\n */\n constructor() {\n this.changes = new Subject();\n }\n notifyLoaded(index) {\n this.changes.next(index);\n }\n};\nLoadingNotificationService.ɵfac = function LoadingNotificationService_Factory(t) { return new (t || LoadingNotificationService)(); };\nLoadingNotificationService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: LoadingNotificationService, factory: function (t) { return LoadingNotificationService.ɵfac(t); } });\n\nconst focusableRegex = /^(?:a|input|select|option|textarea|button|object)$/i;\n/**\n * @hidden\n */\nconst match = (element, selector) => {\n const matcher = element.matches || element.msMatchesSelector || element.webkitMatchesSelector;\n if (!matcher) {\n return false;\n }\n return matcher.call(element, selector);\n};\n/**\n * @hidden\n */\nconst closestWithMatch = (element, selector) => {\n if (!document.documentElement.contains(element)) {\n return null;\n }\n let parent = element;\n while (parent !== null && parent.nodeType === 1) {\n if (match(parent, selector)) {\n return parent;\n }\n parent = parent.parentElement || parent.parentNode;\n }\n return null;\n};\n/**\n * @hidden\n */\nconst noop = () => { };\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 isNullOrEmptyString = (value) => isBlank(value) || value.trim().length === 0;\n/**\n * @hidden\n */\nconst isBoolean = (value) => typeof value === 'boolean';\n/**\n * @hidden\n */\nconst closestNode = (element) => {\n const selector = 'li.k-treeview-item';\n if (!isDocumentAvailable()) {\n return null;\n }\n if (element.closest) {\n return element.closest(selector);\n }\n else {\n return closestWithMatch(element, selector);\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};\n/**\n * @hidden\n */\nconst isContent = (element) => {\n const scopeSelector = '.k-treeview-leaf:not(.k-treeview-load-more-button),.k-treeview-item,.k-treeview';\n if (!isDocumentAvailable()) {\n return null;\n }\n let node = element;\n while (node && !match(node, scopeSelector)) {\n node = node.parentNode;\n }\n if (node) {\n return match(node, '.k-treeview-leaf:not(.k-treeview-load-more-button)');\n }\n};\n/**\n * @hidden\n *\n * Returns the nested .k-treeview-leaf:not(.k-treeview-load-more-button) element.\n * If the passed parent item is itself a content node, it is returned.\n */\nconst getContentElement = (parent) => {\n if (!isPresent(parent)) {\n return null;\n }\n const selector = '.k-treeview-leaf:not(.k-treeview-load-more-button)';\n if (match(parent, selector)) {\n return parent;\n }\n return parent.querySelector(selector);\n};\n/**\n * @hidden\n */\nconst isLoadMoreButton = (element) => {\n return isPresent(closestWithMatch(element, '.k-treeview-leaf.k-treeview-load-more-button'));\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 hasParent = (element, container) => {\n return Boolean(closest(element, (node) => node === container));\n};\n/**\n * @hidden\n */\nconst focusableNode = (element) => element.nativeElement.querySelector('li[tabindex=\"0\"]');\n/**\n * @hidden\n */\nconst nodeId = (node) => node ? node.getAttribute('data-treeindex') : '';\n/**\n * @hidden\n */\nconst nodeIndex = (item) => (item || {}).index;\n/**\n * @hidden\n */\nconst dataItemsEqual = (first, second) => {\n if (!isPresent(first) && !isPresent(second)) {\n return true;\n }\n return isPresent(first) && isPresent(second) && first.item.dataItem === second.item.dataItem;\n};\n/**\n * @hidden\n */\nconst getDataItem = (lookup) => {\n if (!isPresent(lookup)) {\n return lookup;\n }\n return lookup.item.dataItem;\n};\n/**\n * @hidden\n */\nconst isArrayWithAtLeastOneItem = v => v && Array.isArray(v) && v.length !== 0;\n/**\n * @hidden\n * A recursive tree-filtering algorithm that returns:\n * - all child nodes of matching nodes\n * - a chain parent nodes from the match to the root node\n */\nconst filterTree = (items, term, { operator, ignoreCase, mode }, textField, depth = 0) => {\n const field = typeof textField === \"string\" ? textField : textField[depth];\n items.forEach((wrapper) => {\n const matcher = typeof operator === \"string\" ? matchByFieldAndCase(field, operator, ignoreCase) : operator;\n const isMatch = matcher(wrapper.dataItem, term);\n wrapper.isMatch = isMatch;\n wrapper.visible = isMatch;\n wrapper.containsMatches = false;\n if (isMatch) {\n setParentChain(wrapper.parent);\n }\n if (wrapper.children && wrapper.children.length > 0) {\n if (mode === \"strict\" || !isMatch) {\n filterTree(wrapper.children, term, { operator, ignoreCase, mode }, textField, depth + 1);\n }\n else {\n makeAllVisible(wrapper.children);\n }\n }\n });\n};\nconst setParentChain = (node) => {\n if (!isPresent(node)) {\n return;\n }\n node.containsMatches = true;\n node.visible = true;\n if (isPresent(node.parent) && !node.parent.containsMatches) {\n setParentChain(node.parent);\n }\n};\nconst makeAllVisible = (nodes) => {\n nodes.forEach(node => {\n node.visible = true;\n if (node.children) {\n makeAllVisible(node.children);\n }\n });\n};\nconst ɵ2 = (a, b) => a.indexOf(b) >= 0, ɵ3 = (a, b) => a.indexOf(b) === -1, ɵ4 = (a, b) => a.lastIndexOf(b, 0) === 0, ɵ5 = (a, b) => a.lastIndexOf(b, 0) === -1, ɵ6 = (a, b) => a.indexOf(b, a.length - b.length) >= 0, ɵ7 = (a, b) => a.indexOf(b, a.length - b.length) < 0;\nconst operators = {\n contains: ɵ2,\n doesnotcontain: ɵ3,\n startswith: ɵ4,\n doesnotstartwith: ɵ5,\n endswith: ɵ6,\n doesnotendwith: ɵ7\n};\nconst matchByCase = (matcher, ignoreCase) => (a, b) => {\n if (ignoreCase) {\n return matcher(a.toLowerCase(), b.toLowerCase());\n }\n return matcher(a, b);\n};\nconst matchByFieldAndCase = (field, operator, ignoreCase) => (dataItem, term) => matchByCase(operators[operator], ignoreCase)(getter(field)(dataItem), term);\n/**\n * @hidden\n */\nconst buildTreeIndex = (parentIndex, itemIndex) => {\n return [parentIndex, itemIndex].filter(part => isPresent(part)).join('_');\n};\n/**\n * @hidden\n */\nconst buildTreeItem = (dataItem, currentLevelIndex, parentIndex) => {\n if (!isPresent(dataItem)) {\n return null;\n }\n return {\n dataItem,\n index: buildTreeIndex(parentIndex, currentLevelIndex)\n };\n};\n/**\n * @hidden\n *\n * Retrieves all descendant nodes' lookups which are currently registered in the provided lookup item as a flat array.\n */\nconst fetchLoadedDescendants = (lookup, filterExpression) => {\n if (!isPresent(lookup) || lookup.children.length === 0) {\n return [];\n }\n let descendants = lookup.children;\n if (isPresent(filterExpression)) {\n descendants = descendants.filter(filterExpression);\n }\n descendants.forEach(child => descendants = descendants.concat(fetchLoadedDescendants(child, filterExpression)));\n return descendants;\n};\n/**\n * @hidden\n *\n * Compares two Seets to determine whether all unique elements in one, are present in the other.\n * Important:\n * - it disregards the element order\n */\nconst sameValues = (as, bs) => {\n if (as.size !== bs.size) {\n return false;\n }\n return Array.from(as).every(v => bs.has(v));\n};\n/**\n * @hidden\n * Returns the size class based on the component and size input.\n */\nconst getSizeClass = (component, size) => {\n const SIZE_CLASSES = {\n 'small': `k-${component}-sm`,\n 'medium': `k-${component}-md`,\n 'large': `k-${component}-lg`\n };\n return SIZE_CLASSES[size];\n};\n\nconst safe = node => (node || {});\nconst safeChildren = node => (safe(node).children || []);\nconst lastVisibleNode = (nodes) => {\n if (!Array.isArray(nodes) || nodes.length === 0) {\n return null;\n }\n const nodesCount = nodes.length;\n const lastIndex = nodesCount - 1;\n for (let index = lastIndex; index >= 0; index -= 1) {\n const node = nodes[index];\n if (node.visible) {\n return node;\n }\n }\n return null;\n};\n/**\n * @hidden\n */\nclass NavigationModel {\n constructor() {\n this.ib = new IndexBuilderService();\n this.nodes = [];\n }\n firstVisibleNode() {\n return (this.nodes || []).find(node => node.visible);\n }\n lastVisibleNode() {\n let node = lastVisibleNode(this.nodes);\n while (isPresent(node) && safeChildren(node).length > 0) {\n const children = safeChildren(node);\n const lastVisibleChild = lastVisibleNode(children);\n if (!isPresent(lastVisibleChild)) {\n return node;\n }\n node = lastVisibleChild;\n }\n return node;\n }\n closestNode(index) {\n const { prev } = safe(this.findNode(index));\n const sibling = prev || this.firstVisibleNode();\n return safe(sibling).index === index ? this.visibleSibling(sibling, 1) : sibling;\n }\n firstFocusableNode() {\n return this.nodes.find((node) => {\n return !node.disabled && node.visible;\n });\n }\n findNode(index) {\n return this.find(index, this.nodes);\n }\n findParent(index) {\n const parentLevel = this.ib.level(index) - 1;\n return this.findNode(this.ib.indexForLevel(index, parentLevel));\n }\n findVisibleChild(index) {\n const node = this.findNode(index);\n const children = safeChildren(node);\n return children.find((child) => child.visible);\n }\n findVisiblePrev(item) {\n const index = item.index;\n const parent = this.findParent(index);\n const levelIndex = this.ib.lastLevelIndex(index);\n const prevNodes = this.container(parent).slice(0, levelIndex);\n const prevNodesHidden = prevNodes.every(node => !node.visible);\n if (levelIndex === 0 || prevNodesHidden) {\n return parent;\n }\n const currentNode = this.findNode(index);\n let prev = this.visibleSibling(currentNode, -1);\n if (prev) {\n let children = this.container(prev);\n while (children.length > 0 && children.some(node => node.visible)) {\n prev = lastVisibleNode(children);\n children = this.container(prev);\n }\n }\n return prev;\n }\n findVisibleNext(item) {\n const children = this.container(item);\n const hasVisibleChildren = children.some(child => child.visible);\n if (children.length === 0 || !hasVisibleChildren) {\n return this.visibleSibling(item, 1);\n }\n return children.find(child => child.visible);\n }\n registerItem(id, index, disabled, loadMoreButton = false, visible = true) {\n const children = [];\n const level = this.ib.level(index);\n const parent = this.findParent(index);\n if (parent || level === 1) {\n const node = { id, children, index, parent, disabled, loadMoreButton, visible };\n this.insert(node, parent);\n }\n }\n unregisterItem(id, index) {\n const node = this.find(index, this.nodes);\n if (!node || node.id !== id) {\n return;\n }\n const children = this.container(node.parent);\n children.splice(children.indexOf(node), 1);\n }\n childLevel(nodes) {\n const children = nodes.filter(node => isPresent(node));\n if (!children || !children.length) {\n return 1;\n }\n return this.ib.level(children[0].index);\n }\n container(node) {\n return node ? node.children : this.nodes;\n }\n find(index, nodes) {\n const childLevel = this.childLevel(nodes);\n const indexToMatch = this.ib.indexForLevel(index, childLevel);\n const isLeaf = childLevel === this.ib.level(index);\n const node = nodes.find(n => n && n.index === indexToMatch);\n if (!node) {\n return null;\n }\n return isLeaf ? node : this.find(index, node.children);\n }\n insert(node, parent) {\n const nodes = this.container(parent);\n nodes.splice(this.ib.lastLevelIndex(node.index), 0, node);\n }\n visibleSibling(node, offset) {\n if (!node) {\n return null;\n }\n const parent = this.findParent(node.index);\n const container = this.container(parent);\n let nextItemIndex = container.indexOf(node) + offset;\n let nextItem = container[nextItemIndex];\n while (isPresent(nextItem)) {\n if (nextItem.visible) {\n return nextItem;\n }\n nextItemIndex += offset;\n nextItem = container[nextItemIndex];\n }\n return this.visibleSibling(parent, offset);\n }\n}\n\n/**\n * @hidden\n */\nlet NavigationService = class NavigationService {\n constructor(localization) {\n this.localization = localization;\n this.expands = new Subject();\n this.moves = new Subject();\n this.checks = new Subject();\n this.selects = new Subject();\n this.loadMore = new Subject();\n this.navigable = true;\n this.actions = {\n [Keys.ArrowUp]: () => this.activate(this.model.findVisiblePrev(this.focusableItem), true),\n [Keys.ArrowDown]: () => this.activate(this.model.findVisibleNext(this.focusableItem), true),\n [Keys.ArrowLeft]: () => !this.isLoadMoreButton && (this.expand({\n expand: this.localization.rtl,\n intercept: this.localization.rtl ? this.moveToFirstVisibleChild : this.moveToParent\n })),\n [Keys.ArrowRight]: () => !this.isLoadMoreButton && (this.expand({\n expand: !this.localization.rtl,\n intercept: this.localization.rtl ? this.moveToParent : this.moveToFirstVisibleChild\n })),\n [Keys.Home]: () => this.activate(this.model.firstVisibleNode(), true),\n [Keys.End]: () => this.activate(this.model.lastVisibleNode(), true),\n [Keys.Enter]: () => this.handleEnter(),\n [Keys.Space]: () => this.handleSpace()\n };\n this.isFocused = false;\n this.shouldScroll = false;\n this._model = new NavigationModel();\n this.moveToFirstVisibleChild = this.moveToFirstVisibleChild.bind(this);\n this.moveToParent = this.moveToParent.bind(this);\n }\n get model() {\n return this._model;\n }\n set model(model) {\n this._model = model;\n }\n get activeIndex() {\n return nodeIndex(this.activeItem) || null;\n }\n get isActiveExpanded() {\n return this.activeItem && this.activeItem.children.length > 0;\n }\n get isLoadMoreButton() {\n return this.activeItem && this.activeItem.loadMoreButton;\n }\n get focusableItem() {\n return this.activeItem || this.model.firstFocusableNode();\n }\n activate(item, shouldScroll = false) {\n if (!this.navigable || !item || this.isActive(nodeIndex(item))) {\n return;\n }\n this.isFocused = true;\n this.activeItem = item || this.activeItem;\n this.shouldScroll = shouldScroll;\n this.notifyMove();\n }\n activateParent(index) {\n this.activate(this.model.findParent(index));\n }\n activateIndex(index) {\n if (!index) {\n return;\n }\n this.activate(this.model.findNode(index));\n }\n activateClosest(index) {\n if (!index || nodeIndex(this.focusableItem) !== index) {\n return;\n }\n this.activeItem = this.model.closestNode(index);\n this.notifyMove();\n }\n activateFocusable() {\n if (this.activeItem) {\n return;\n }\n this.activeItem = this.model.firstVisibleNode();\n this.notifyMove();\n }\n deactivate() {\n if (!this.navigable || !this.isFocused) {\n return;\n }\n this.isFocused = false;\n this.notifyMove();\n }\n checkIndex(index) {\n if (!this.isDisabled(index)) {\n this.checks.next(index);\n }\n }\n selectIndex(index) {\n if (!this.isDisabled(index)) {\n this.selects.next(index);\n }\n }\n notifyLoadMore(index) {\n if (!isPresent(index)) {\n return;\n }\n this.loadMore.next(index);\n }\n isActive(index) {\n if (!index) {\n return false;\n }\n return this.isFocused && this.activeIndex === index;\n }\n isFocusable(index) {\n return nodeIndex(this.focusableItem) === index;\n }\n isDisabled(index) {\n return this.model.findNode(index).disabled;\n }\n registerItem(id, index, disabled, loadMoreButton = false, visible = true) {\n const itemAtIndex = this.model.findNode(index);\n if (isPresent(itemAtIndex)) {\n this.model.unregisterItem(itemAtIndex.id, itemAtIndex.index);\n if (this.isActive(index)) {\n this.deactivate();\n }\n }\n this.model.registerItem(id, index, disabled, loadMoreButton, visible);\n }\n unregisterItem(id, index) {\n if (this.isActive(index)) {\n this.activateParent(index);\n }\n this.model.unregisterItem(id, index);\n }\n move(e) {\n if (!this.navigable) {\n return;\n }\n const moveAction = this.actions[e.keyCode];\n if (!moveAction) {\n return;\n }\n moveAction();\n e.preventDefault();\n }\n expand({ expand, intercept }) {\n const index = nodeIndex(this.activeItem);\n if (!index || intercept(index)) {\n return;\n }\n this.notifyExpand(expand);\n }\n moveToParent() {\n if (this.isActiveExpanded) {\n return false;\n }\n this.activate(this.model.findParent(nodeIndex(this.activeItem)));\n return true;\n }\n moveToFirstVisibleChild() {\n if (!this.isActiveExpanded) {\n return false;\n }\n this.activate(this.model.findVisibleChild(nodeIndex(this.activeItem)));\n return true;\n }\n notifyExpand(expand) {\n this.expands.next(this.navigationState(expand));\n }\n notifyMove() {\n this.moves.next(this.navigationState());\n }\n navigationState(expand = false) {\n return ({ expand, index: this.activeIndex, isFocused: this.isFocused, shouldScroll: this.shouldScroll });\n }\n handleEnter() {\n if (!this.navigable) {\n return;\n }\n if (this.isLoadMoreButton) {\n this.notifyLoadMore(this.activeIndex);\n }\n else {\n this.selectIndex(this.activeIndex);\n }\n }\n handleSpace() {\n if (!this.navigable) {\n return;\n }\n if (this.isLoadMoreButton) {\n this.notifyLoadMore(this.activeIndex);\n }\n else {\n this.checkIndex(this.activeIndex);\n }\n }\n};\nNavigationService.ɵfac = function NavigationService_Factory(t) { return new (t || NavigationService)(ɵngcc0.ɵɵinject(ɵngcc1.LocalizationService)); };\nNavigationService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NavigationService, factory: function (t) { return NavigationService.ɵfac(t); } });\nNavigationService = __decorate([ __metadata(\"design:paramtypes\", [LocalizationService])\n], NavigationService);\n\n/**\n * @hidden\n */\nlet NodeChildrenService = class NodeChildrenService {\n /**\n * @hidden\n */\n constructor() {\n this.changes = new Subject();\n }\n childrenLoaded(item, children) {\n this.changes.next({ item, children });\n }\n};\nNodeChildrenService.ɵfac = function NodeChildrenService_Factory(t) { return new (t || NodeChildrenService)(); };\nNodeChildrenService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NodeChildrenService, factory: function (t) { return NodeChildrenService.ɵfac(t); } });\n\n/**\n * Represents the template for the TreeView nodes ([more information and example]({% slug nodetemplate_treeview %})).\n * The template helps to customize the content of the nodes. To define the node template, nest an ``\n * tag with the `kendoTreeViewNodeTemplate` directive inside a `` tag.\n *\n *\n * The node data item and its hierarchical index are available as context variables:\n *\n * - `let-dataItem` (`any`) - available as implicit context variable\n * - `let-index=\"index\"` (`string`)\n *\n *\n * @example\n * ```ts\n *\n * import { Component } from '@angular/core';\n * @Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * {{ index }}: {{ dataItem.text }}\n * \n * \n * `\n * })\n * export class AppComponent {\n * public data: any[] = [\n * {\n * text: \"Inbox\",\n * items: [{ text: \"Read Mail\" }]\n * },\n * {\n * text: \"Drafts\"\n * },\n * {\n * text: \"Search Folders\",\n * items: [\n * { text: \"Categorized Mail\" },\n * { text: \"Large Mail\" },\n * { text: \"Unread Mail\"}\n * ]\n * },\n * { text: \"Settings\" }\n * ];\n * }\n *\n * ```\n */\nlet NodeTemplateDirective = class NodeTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nNodeTemplateDirective.ɵfac = function NodeTemplateDirective_Factory(t) { return new (t || NodeTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nNodeTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NodeTemplateDirective, selectors: [[\"\", \"kendoTreeViewNodeTemplate\", \"\"]] });\nNodeTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], NodeTemplateDirective);\n\n/**\n * Represents the template for the TreeView load more buttons.\n * To define a button template, nest an ``\n * tag with the `kendoTreeViewLoadMoreButtonTemplate` directive inside a `` tag\n * ([see example]({% slug loadmorebutton_treeview %}#toc-button-template)).\n *\n * The hierarchical index of the load more button node is available as a context variable:\n *\n * - `let-index=\"index\"` (`string`)\n */\nlet LoadMoreButtonTemplateDirective = class LoadMoreButtonTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nLoadMoreButtonTemplateDirective.ɵfac = function LoadMoreButtonTemplateDirective_Factory(t) { return new (t || LoadMoreButtonTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nLoadMoreButtonTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LoadMoreButtonTemplateDirective, selectors: [[\"\", \"kendoTreeViewLoadMoreButtonTemplate\", \"\"]] });\nLoadMoreButtonTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], LoadMoreButtonTemplateDirective);\n\n/**\n * @hidden\n *\n * An injection token used by the data binding directives to interface with\n * the TreeView or the DropDownTree components.\n */\nlet DataBoundComponent = class DataBoundComponent {\n};\nDataBoundComponent.ɵfac = function DataBoundComponent_Factory(t) { return new (t || DataBoundComponent)(); };\nDataBoundComponent.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: DataBoundComponent, factory: function (t) { return DataBoundComponent.ɵfac(t); } });\n\n/**\n * @hidden\n *\n * An injection token used by the expand-directive to interface with\n * the TreeView or the DropDownTree components.\n */\nlet ExpandableComponent = class ExpandableComponent {\n};\nExpandableComponent.ɵfac = function ExpandableComponent_Factory(t) { return new (t || ExpandableComponent)(); };\nExpandableComponent.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ExpandableComponent, factory: function (t) { return ExpandableComponent.ɵfac(t); } });\n\n/**\n * @hidden\n */\nlet SelectionService = class SelectionService {\n /**\n * @hidden\n */\n constructor() {\n this.changes = new Subject();\n }\n isFirstSelected(index) {\n return this.firstIndex === index;\n }\n setFirstSelected(index, selected) {\n if (this.firstIndex === index && selected === false) {\n this.firstIndex = null;\n }\n else if (!this.firstIndex && selected) {\n this.firstIndex = index;\n }\n }\n select(index, dataItem) {\n this.changes.next({ dataItem, index });\n }\n};\nSelectionService.ɵfac = function SelectionService_Factory(t) { return new (t || SelectionService)(); };\nSelectionService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: SelectionService, factory: function (t) { return SelectionService.ɵfac(t); } });\n\nconst INDEX_REGEX = /\\d+$/;\n/**\n * @hidden\n */\nlet TreeViewLookupService = class TreeViewLookupService {\n /**\n * @hidden\n */\n constructor() {\n this.map = new Map();\n }\n reset() {\n this.map.clear();\n }\n registerItem(item, parent) {\n const currentLookup = {\n children: [],\n item,\n parent: this.item(nodeIndex(parent))\n };\n this.map.set(item.index, currentLookup);\n }\n registerChildren(index, children) {\n const item = this.item(index);\n if (!item) {\n return;\n }\n item.children = children;\n }\n unregisterItem(index, dataItem) {\n const current = this.item(index);\n if (current && current.item.dataItem === dataItem) {\n this.map.delete(index);\n if (current.parent && current.parent.children) {\n current.parent.children = current.parent.children.filter(item => item.dataItem !== dataItem);\n }\n }\n }\n replaceItem(index, item, parent) {\n if (!item) {\n return;\n }\n this.unregisterItem(index, item.dataItem);\n this.registerItem(item, parent);\n this.addToParent(item, parent);\n }\n itemLookup(index) {\n const item = this.item(index);\n if (!item) {\n return null;\n }\n return {\n children: this.mapChildren(item.children),\n item: item.item,\n parent: item.parent\n };\n }\n hasItem(index) {\n return this.map.has(index);\n }\n item(index) {\n return this.map.get(index) || null;\n }\n addToParent(item, parent) {\n if (parent) {\n const parentItem = this.item(parent.index);\n const index = parseInt(INDEX_REGEX.exec(item.index)[0], 10);\n parentItem.children = parentItem.children || [];\n parentItem.children.splice(index, 0, item);\n }\n }\n mapChildren(children = []) {\n return children.map(c => {\n const { item, parent, children } = this.item(c.index);\n return {\n children: this.mapChildren(children),\n item,\n parent\n };\n });\n }\n};\nTreeViewLookupService.ɵfac = function TreeViewLookupService_Factory(t) { return new (t || TreeViewLookupService)(); };\nTreeViewLookupService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: TreeViewLookupService, factory: function (t) { return TreeViewLookupService.ɵfac(t); } });\n\nconst LOAD_MORE_DOC_LINK = 'http://www.telerik.com/kendo-angular-ui/components/treeview/load-more-button/';\nconst providers = [\n ExpandStateService,\n IndexBuilderService,\n TreeViewLookupService,\n LoadingNotificationService,\n NodeChildrenService,\n NavigationService,\n SelectionService,\n DataChangeNotificationService,\n LocalizationService,\n {\n provide: L10N_PREFIX,\n useValue: 'kendo.treeview'\n },\n {\n provide: DataBoundComponent,\n useExisting: forwardRef(() => TreeViewComponent)\n },\n {\n provide: ExpandableComponent,\n useExisting: forwardRef(() => TreeViewComponent)\n }\n];\n/* tslint:disable:member-ordering */\n/**\n * Represents the [Kendo UI TreeView component for Angular]({% slug overview_treeview %}).\n *\n * @example\n * {% meta height:450 %}\n * {% embed_file get-started/app.component.ts preview %}\n * {% embed_file get-started/app.module.ts %}\n * {% embed_file shared/main.ts %}\n * {% endmeta %}\n */\nlet TreeViewComponent = class TreeViewComponent {\n constructor(element, changeDetectorRef, expandService, navigationService, nodeChildrenService, selectionService, treeViewLookupService, ngZone, renderer, dataChangeNotification, localization) {\n this.element = element;\n this.changeDetectorRef = changeDetectorRef;\n this.expandService = expandService;\n this.navigationService = navigationService;\n this.nodeChildrenService = nodeChildrenService;\n this.selectionService = selectionService;\n this.treeViewLookupService = treeViewLookupService;\n this.ngZone = ngZone;\n this.renderer = renderer;\n this.dataChangeNotification = dataChangeNotification;\n this.localization = localization;\n this.classNames = true;\n this.role = 'tree';\n /**\n * The hint which is displayed when the component is empty.\n */\n this.filterInputPlaceholder = \"\";\n /** @hidden */\n this.fetchNodes = () => this.data;\n /**\n * Fires when the children of the expanded node are loaded.\n */\n this.childrenLoaded = new EventEmitter();\n /**\n * Fires when the user blurs the component.\n */\n this.onBlur = new EventEmitter();\n /**\n * Fires when the user focuses the component.\n */\n this.onFocus = new EventEmitter();\n /**\n * Fires when the user expands a TreeView node.\n */\n this.expand = new EventEmitter();\n /**\n * Fires when the user collapses a TreeView node.\n */\n this.collapse = new EventEmitter();\n /**\n * Fires just before the dragging of the node starts ([see example]({% slug draganddrop_treeview %}#toc-setup)). This event is preventable.\n * If you prevent the event default, no drag hint will be created and the subsequent drag-related events will not be fired.\n */\n this.nodeDragStart = new EventEmitter();\n /**\n * Fires when an item is being dragged ([see example]({% slug draganddrop_treeview %}#toc-setup)).\n */\n this.nodeDrag = new EventEmitter();\n /**\n * Emits when the built-in filtering mechanism in the data-binding directives updates the node's visibility.\n * Used for the built-in auto-expand functionalities of the component and available for custom implementations.\n */\n this.filterStateChange = new EventEmitter();\n /**\n * Fires on the target TreeView when a dragged item is dropped ([see example]({% slug draganddrop_treeview %}#toc-setup)).\n * This event is preventable. If you prevent the event default (`event.preventDefualt()`) or invalidate its state (`event.setValid(false)`),\n * the `addItem` and `removeItem` events will not be triggered.\n *\n * Both operations cancel the default drop operation, but the indication to the user is different. `event.setValid(false)` indicates that the operation was\n * unsuccessful by animating the drag clue to its original position. `event.preventDefault()` simply removes the clue, as if it has been dropped successfully.\n * As a general rule, use `preventDefault` to manually handle the add and remove operations, and `setValid(false)` to indicate the operation was unsuccessful.\n */\n this.nodeDrop = new EventEmitter();\n /**\n * Fires on the source TreeView after the dragged item has been dropped ([see example]({% slug draganddrop_treeview %}#toc-setup)).\n */\n this.nodeDragEnd = new EventEmitter();\n /**\n * Fires after a dragged item is dropped ([see example]({% slug draganddrop_treeview %}#toc-setup)).\n * Called on the TreeView where the item is dropped.\n */\n this.addItem = new EventEmitter();\n /**\n * Fires after a dragged item is dropped ([see example]({% slug draganddrop_treeview %}#toc-setup)).\n * Called on the TreeView from where the item is dragged.\n */\n this.removeItem = new EventEmitter();\n /**\n * Fires when the user selects a TreeView node checkbox\n * ([see example]({% slug checkboxes_treeview %}#toc-modifying-the-checked-state)).\n */\n this.checkedChange = new EventEmitter();\n /**\n * Fires when the user selects a TreeView node\n * ([see example]({% slug selection_treeview %}#toc-modifying-the-selection)).\n */\n this.selectionChange = new EventEmitter();\n /**\n * Fires when the value of the built-in filter input element changes.\n */\n this.filterChange = new EventEmitter();\n /**\n * Fires when the user clicks a TreeView node.\n */\n this.nodeClick = new EventEmitter();\n /**\n * Fires when the user double clicks a TreeView node.\n */\n this.nodeDblClick = new EventEmitter();\n /**\n * A function that defines how to track node changes.\n * By default, the TreeView tracks the nodes by data item object reference.\n *\n * @example\n * ```ts\n * @Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * `\n * })\n * export class AppComponent {\n * public data: any[] = [\n * { text: \"Furniture\" },\n * { text: \"Decor\" }\n * ];\n *\n * public trackBy(index: number, item: any): any {\n * return item.text;\n * }\n * }\n * ```\n */\n this.trackBy = trackBy;\n /**\n * A function which determines if a specific node is disabled.\n */\n this.isDisabled = isDisabled;\n /**\n * A callback which determines whether a TreeView node should be rendered as hidden. The utility .k-display-none class is used to hide the nodes.\n * Useful for custom filtering implementations.\n */\n this.isVisible = isVisible;\n /**\n * Determines whether the TreeView keyboard navigable is enabled.\n */\n this.navigable = true;\n /**\n * A function which provides the child nodes for a given parent node\n * ([see example]({% slug databinding_treeview %})).\n */\n this.children = () => of([]);\n /**\n * Indicates whether the child nodes will be fetched on node expand or will be initially prefetched.\n * @default true\n */\n this.loadOnDemand = true;\n /**\n * Renders the built-in input element for filtering the TreeView.\n * If set to `true`, the component emits the `filterChange` event, which can be used to [filter the TreeView manually]({% slug filtering_treeview %}#toc-manual-filtering).\n * A built-in filtering implementation is available to use with the [`kendoTreeViewHierarchyBinding`]({% slug api_treeview_hierarchybindingdirective %}) and [`kendoTreeViewFlatDataBinding`]({% slug api_treeview_flatdatabindingdirective %}) directives.\n */\n this.filterable = false;\n /**\n * Sets an initial value of the built-in input element used for filtering.\n */\n this.filter = '';\n this.checkboxes = false;\n this.expandIcons = false;\n this.selectable = false;\n this.touchActions = true;\n this.isActive = false;\n this.data = new BehaviorSubject([]);\n this._animate = true;\n this._size = 'medium';\n this.subscriptions = new Subscription();\n this.domSubscriptions = [];\n validatePackage(packageMetadata);\n }\n /** @hidden */\n get direction() {\n return this.localization.rtl ? 'rtl' : 'ltr';\n }\n /**\n * Determines whether the content animation is enabled.\n */\n set animate(value) {\n this._animate = value;\n }\n get animate() {\n return !this._animate;\n }\n /**\n * @hidden\n *\n * Defines the template for each node.\n * Takes precedence over nested templates in the TreeView tag.\n */\n set nodeTemplateRef(template) {\n this._nodeTemplateRef = template;\n }\n get nodeTemplateRef() {\n return this._nodeTemplateRef || this.nodeTemplateQuery;\n }\n /**\n * @hidden\n *\n * Defines the template for each load-more button.\n * Takes precedence over nested templates in the TreeView tag.\n */\n set loadMoreButtonTemplateRef(template) {\n this._loadMoreButtonTemplateRef = template;\n }\n get loadMoreButtonTemplateRef() {\n return this._loadMoreButtonTemplateRef || this.loadMoreButtonTemplateQuery;\n }\n /**\n * The nodes which will be displayed by the TreeView\n * ([see example]({% slug databinding_treeview %})).\n */\n set nodes(value) {\n this.data.next(value || []);\n this.dataChangeNotification.notify();\n }\n get nodes() {\n return this.data.value;\n }\n /**\n * A function which determines if a specific node has child nodes\n * ([see example]({% slug databinding_treeview %})).\n */\n get hasChildren() {\n return this._hasChildren || hasChildren;\n }\n set hasChildren(callback) {\n this._hasChildren = callback;\n this.expandIcons = Boolean(this._isExpanded && this._hasChildren);\n }\n /**\n * A function which determines if a specific node is checked\n * ([see example]({% slug checkboxes_treeview %}#toc-modifying-the-checked-state)).\n */\n get isChecked() {\n return this._isChecked || isChecked;\n }\n set isChecked(callback) {\n this._isChecked = callback;\n this.checkboxes = Boolean(this._isChecked);\n }\n /**\n * A function which determines if a specific node is expanded.\n */\n get isExpanded() {\n return this._isExpanded || isExpanded;\n }\n set isExpanded(callback) {\n this._isExpanded = callback;\n this.expandIcons = Boolean(this._isExpanded && this._hasChildren);\n }\n /**\n * A function which determines if a specific node is selected\n * ([see example]({% slug selection_treeview %}#toc-modifying-the-selection)).\n */\n get isSelected() {\n return this._isSelected || isSelected;\n }\n set isSelected(callback) {\n this._isSelected = callback;\n this.selectable = Boolean(this._isSelected);\n }\n /**\n * Sets the size of the component.\n *\n * The possible values are:\n * * `'small'`\n * * `'medium'` (default)\n * * `'large'`\n * * `null`\n *\n */\n set size(size) {\n this.renderer.removeClass(this.element.nativeElement, getSizeClass('treeview', this.size));\n if (size) {\n this.renderer.addClass(this.element.nativeElement, getSizeClass('treeview', size));\n }\n this._size = size;\n }\n get size() {\n return this._size;\n }\n ngOnChanges(changes) {\n this.navigationService.navigable = Boolean(this.navigable);\n // TODO: should react to changes.loadOnDemand as well - should preload the data or clear the already cached items\n if (anyChanged(['nodes', 'children', 'hasChildren', 'loadOnDemand'], changes, false) && !this.loadOnDemand) {\n this.preloadChildNodes();\n }\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n this.domSubscriptions.forEach(subscription => subscription());\n }\n ngOnInit() {\n this.subscriptions.add(this.nodeChildrenService\n .changes\n .subscribe((x) => this.childrenLoaded.emit(x)));\n this.subscriptions.add(this.expandService.changes\n .subscribe(({ index, dataItem, expand }) => expand\n ? this.expand.emit({ index, dataItem })\n : this.collapse.emit({ index, dataItem })));\n this.subscriptions.add(this.navigationService.checks\n .subscribe((x) => this.checkedChange.emit(this.treeViewLookupService.itemLookup(x))));\n this.subscriptions.add(this.selectionService.changes\n .subscribe((x) => {\n if (hasObservers(this.selectionChange)) {\n this.ngZone.run(() => {\n this.selectionChange.emit(x);\n });\n }\n }));\n if (this.element) {\n this.ngZone.runOutsideAngular(() => {\n this.attachDomHandlers();\n });\n }\n if (this.size) {\n this.renderer.addClass(this.element.nativeElement, getSizeClass('treeview', this.size));\n }\n }\n /**\n * Blurs the focused TreeView item.\n */\n blur() {\n if (!isDocumentAvailable()) {\n return;\n }\n const target = focusableNode(this.element);\n if (document.activeElement === target) {\n target.blur();\n }\n }\n /**\n * Focuses the first focusable item in the TreeView component if no hierarchical index is provided.\n *\n * @example\n * ```ts\n * import { Component } from '@angular/core';\n *\n * @Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * `\n * })\n * export class AppComponent {\n * public data: any[] = [\n * { text: \"Furniture\" },\n * { text: \"Decor\" }\n * ];\n * }\n * ```\n */\n focus(index) {\n const focusIndex = index || nodeIndex(this.navigationService.focusableItem);\n this.navigationService.activateIndex(focusIndex);\n const target = focusableNode(this.element);\n if (target) {\n target.focus();\n }\n }\n /**\n * Based on the specified index, returns the TreeItemLookup node.\n *\n * @param index - The index of the node.\n * @returns {TreeItemLookup} - The item that was searched (looked up).\n */\n itemLookup(index) {\n return this.treeViewLookupService.itemLookup(index);\n }\n /**\n * Triggers the [`children`]({% slug api_treeview_treeviewcomponent %}#toc-children) function for every expanded node,\n * causing all rendered child nodes to be fetched again.\n */\n rebindChildren() {\n this.dataChangeNotification.notify();\n }\n /**\n * Triggers the `expand` event for the provided node and displays it's loading indicator.\n */\n expandNode(item, index) {\n this.expandService.expand(index, item);\n }\n /**\n * Triggers the `collapse` event for the provided node.\n */\n collapseNode(item, index) {\n this.expandService.collapse(index, item);\n }\n /**\n * Gets the current page size of the checked data item children collection\n * ([see example]({% slug loadmorebutton_treeview %}#toc-managing-page-sizes)).\n *\n * > Since the root nodes collection is not associated with any parent data item, pass `null` as `dataItem` param to get its page size.\n *\n * @param dataItem {any} - The parent data item of the targeted collection.\n * @returns {number} - The page size of the checked data item children collection.\n */\n getNodePageSize(dataItem) {\n this.verifyLoadMoreService();\n return this.loadMoreService.getGroupSize(dataItem);\n }\n /**\n * Sets the page size of the targeted data item children collection\n * ([see example]({% slug loadmorebutton_treeview %}#toc-managing-page-sizes)).\n *\n * > Since the root nodes collection is not associated with any parent data item, pass `null` as `dataItem` param to target its page size.\n *\n * @param dataItem {any} - The parent data item of the targeted collection.\n * @param pageSize {number} - The new page size.\n */\n setNodePageSize(dataItem, pageSize) {\n this.verifyLoadMoreService();\n this.loadMoreService.setGroupSize(dataItem, pageSize);\n }\n /**\n * @hidden\n *\n * Clears the current TreeViewLookupService node map and re-registers all nodes anew.\n * Child nodes are acquired through the provided `children` callback.\n */\n preloadChildNodes() {\n this.treeViewLookupService.reset();\n this.registerLookupItems(this.nodes);\n }\n attachDomHandlers() {\n const element = this.element.nativeElement;\n this.clickHandler = this.clickHandler.bind(this);\n this.domSubscriptions.push(this.renderer.listen(element, 'contextmenu', this.clickHandler), this.renderer.listen(element, 'click', this.clickHandler), this.renderer.listen(element, 'dblclick', this.clickHandler), this.renderer.listen(element, 'focusin', this.focusHandler.bind(this)), this.renderer.listen(element, 'focusout', this.blurHandler.bind(this)), this.renderer.listen(element, 'keydown', this.keydownHandler.bind(this)));\n }\n focusHandler(e) {\n let focusItem;\n if (match(e.target, '.k-treeview-item')) {\n focusItem = e.target;\n }\n else if (!isFocusable(e.target)) { // with compliments to IE\n focusItem = closestNode(e.target);\n }\n if (focusItem) {\n this.navigationService.activateIndex(nodeId(e.target));\n if (!this.isActive && hasObservers(this.onFocus)) {\n this.ngZone.run(() => {\n this.onFocus.emit();\n });\n }\n this.isActive = true;\n }\n }\n blurHandler(e) {\n if (this.isActive && match(e.target, '.k-treeview-item') &&\n (!e.relatedTarget || !match(e.relatedTarget, '.k-treeview-item') || !hasParent(e.relatedTarget, this.element.nativeElement))) {\n this.navigationService.deactivate();\n this.isActive = false;\n if (hasObservers(this.onBlur)) {\n this.ngZone.run(() => {\n this.onBlur.emit();\n });\n }\n }\n }\n clickHandler(e) {\n const target = e.target;\n if ((e.type === 'contextmenu' && !hasObservers(this.nodeClick)) ||\n (e.type === 'click' && !hasObservers(this.nodeClick) && !hasObservers(this.selectionChange) && !isLoadMoreButton(target)) ||\n (e.type === 'dblclick' && !hasObservers(this.nodeDblClick)) || isFocusable(target) ||\n (!isContent(target) && !isLoadMoreButton(target)) || !hasParent(target, this.element.nativeElement)) {\n return;\n }\n const index = nodeId(closestNode(target));\n // the disabled check is probably not needed due to the k-disabled styles\n if (!index || this.navigationService.isDisabled(index)) {\n return;\n }\n this.ngZone.run(() => {\n // record this value before emitting selectionChange (`this.navigationService.selectIndex`), as the treeview state may be changed on its emission\n const lookup = this.treeViewLookupService.itemLookup(index);\n if (e.type === 'click') {\n const loadMoreButton = this.navigationService.model.findNode(index).loadMoreButton;\n if (loadMoreButton) {\n this.navigationService.notifyLoadMore(index);\n return;\n }\n else {\n this.navigationService.selectIndex(index);\n }\n }\n const emitter = e.type === 'dblclick' ? this.nodeDblClick : this.nodeClick;\n emitter.emit({\n item: lookup.item,\n originalEvent: e,\n type: e.type\n });\n });\n }\n keydownHandler(e) {\n if (this.isActive && this.navigable) {\n this.ngZone.run(() => {\n this.navigationService.move(e);\n });\n }\n }\n verifyLoadMoreService() {\n if (isDevMode() && !isPresent(this.loadMoreService)) {\n throw new Error(`To use the TreeView paging functionality, you need to assign the \\`kendoTreeViewLoadMore\\` directive. See ${LOAD_MORE_DOC_LINK}.`);\n }\n }\n registerLookupItems(data, parentItem = null) {\n if (!isPresent(data) || data.length === 0) {\n return;\n }\n const parentIndex = nodeIndex(parentItem);\n const treeItems = data.map((node, index) => buildTreeItem(node, index, parentIndex));\n if (isPresent(parentItem)) {\n this.treeViewLookupService.registerChildren(parentIndex, treeItems);\n }\n treeItems.forEach(item => {\n this.treeViewLookupService.registerItem(item, parentItem);\n if (this.hasChildren(item.dataItem)) {\n this.children(item.dataItem)\n .subscribe(children => this.registerLookupItems(children, item));\n }\n });\n }\n};\nTreeViewComponent.ɵfac = function TreeViewComponent_Factory(t) { return new (t || TreeViewComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ExpandStateService), ɵngcc0.ɵɵdirectiveInject(NavigationService), ɵngcc0.ɵɵdirectiveInject(NodeChildrenService), ɵngcc0.ɵɵdirectiveInject(SelectionService), ɵngcc0.ɵɵdirectiveInject(TreeViewLookupService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(DataChangeNotificationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.LocalizationService)); };\nTreeViewComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: TreeViewComponent, selectors: [[\"kendo-treeview\"]], contentQueries: function TreeViewComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NodeTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, LoadMoreButtonTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.nodeTemplateQuery = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.loadMoreButtonTemplateQuery = _t.first);\n } }, viewQuery: function TreeViewComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c0, 7, ViewContainerRef);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.assetsContainer = _t.first);\n } }, hostVars: 5, hostBindings: function TreeViewComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"role\", ctx.role)(\"dir\", ctx.direction);\n ɵngcc0.ɵɵsyntheticHostProperty(\"@.disabled\", ctx.animate);\n ɵngcc0.ɵɵclassProp(\"k-treeview\", ctx.classNames);\n } }, inputs: { filterInputPlaceholder: \"filterInputPlaceholder\", trackBy: \"trackBy\", isDisabled: \"isDisabled\", isVisible: \"isVisible\", navigable: \"navigable\", children: \"children\", loadOnDemand: \"loadOnDemand\", filterable: \"filterable\", filter: \"filter\", animate: \"animate\", nodeTemplateRef: [\"nodeTemplate\", \"nodeTemplateRef\"], loadMoreButtonTemplateRef: [\"loadMoreButtonTemplate\", \"loadMoreButtonTemplateRef\"], nodes: \"nodes\", hasChildren: \"hasChildren\", isChecked: \"isChecked\", isExpanded: \"isExpanded\", isSelected: \"isSelected\", size: \"size\", textField: \"textField\" }, outputs: { childrenLoaded: \"childrenLoaded\", onBlur: \"blur\", onFocus: \"focus\", expand: \"expand\", collapse: \"collapse\", nodeDragStart: \"nodeDragStart\", nodeDrag: \"nodeDrag\", filterStateChange: \"filterStateChange\", nodeDrop: \"nodeDrop\", nodeDragEnd: \"nodeDragEnd\", addItem: \"addItem\", removeItem: \"removeItem\", checkedChange: \"checkedChange\", selectionChange: \"selectionChange\", filterChange: \"filterChange\", nodeClick: \"nodeClick\", nodeDblClick: \"nodeDblClick\" }, exportAs: [\"kendoTreeView\"], features: [ɵngcc0.ɵɵProvidersFeature(providers), ɵngcc0.ɵɵNgOnChangesFeature], decls: 4, vars: 20, consts: [[\"class\", \"k-treeview-filter\", 4, \"ngIf\"], [\"kendoTreeViewGroup\", \"\", \"role\", \"group\", 1, \"k-treeview-lines\", 3, \"size\", \"loadOnDemand\", \"checkboxes\", \"expandIcons\", \"selectable\", \"touchActions\", \"children\", \"hasChildren\", \"isChecked\", \"isDisabled\", \"isExpanded\", \"isSelected\", \"isVisible\", \"nodeTemplateRef\", \"loadMoreButtonTemplateRef\", \"textField\", \"nodes\", \"loadMoreService\", \"trackBy\"], [\"assetsContainer\", \"\"], [1, \"k-treeview-filter\"], [3, \"size\", \"value\", \"clearButton\", \"placeholder\", \"valueChange\"], [\"kendoTextBoxPrefixTemplate\", \"\"], [1, \"k-input-icon\", \"k-icon\", \"k-i-search\"]], template: function TreeViewComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, TreeViewComponent_span_0_Template, 3, 4, \"span\", 0);\n ɵngcc0.ɵɵelement(1, \"ul\", 1);\n ɵngcc0.ɵɵelementContainer(2, null, 2);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.filterable);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"size\", ctx.size)(\"loadOnDemand\", ctx.loadOnDemand)(\"checkboxes\", ctx.checkboxes)(\"expandIcons\", ctx.expandIcons)(\"selectable\", ctx.selectable)(\"touchActions\", ctx.touchActions)(\"children\", ctx.children)(\"hasChildren\", ctx.hasChildren)(\"isChecked\", ctx.isChecked)(\"isDisabled\", ctx.isDisabled)(\"isExpanded\", ctx.isExpanded)(\"isSelected\", ctx.isSelected)(\"isVisible\", ctx.isVisible)(\"nodeTemplateRef\", ctx.nodeTemplateRef == null ? null : ctx.nodeTemplateRef.templateRef)(\"loadMoreButtonTemplateRef\", ctx.loadMoreButtonTemplateRef == null ? null : ctx.loadMoreButtonTemplateRef.templateRef)(\"textField\", ctx.textField)(\"nodes\", ctx.fetchNodes)(\"loadMoreService\", ctx.loadMoreService)(\"trackBy\", ctx.trackBy);\n } }, directives: function () { return [ɵngcc2.NgIf, ɵngcc3.TextBoxComponent, ɵngcc3.TextBoxPrefixTemplateDirective, TreeViewGroupComponent]; }, encapsulation: 2 });\n__decorate([\n HostBinding(\"class.k-treeview\"),\n __metadata(\"design:type\", Boolean)\n], TreeViewComponent.prototype, \"classNames\", void 0);\n__decorate([\n HostBinding(\"attr.role\"),\n __metadata(\"design:type\", String)\n], TreeViewComponent.prototype, \"role\", void 0);\n__decorate([\n HostBinding(\"attr.dir\"),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], TreeViewComponent.prototype, \"direction\", null);\n__decorate([\n ViewChild('assetsContainer', { read: ViewContainerRef, static: true }),\n __metadata(\"design:type\", ViewContainerRef)\n], TreeViewComponent.prototype, \"assetsContainer\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TreeViewComponent.prototype, \"filterInputPlaceholder\", void 0);\n__decorate([\n Input(),\n HostBinding('@.disabled'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], TreeViewComponent.prototype, \"animate\", null);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeViewComponent.prototype, \"childrenLoaded\", void 0);\n__decorate([\n Output('blur'),\n __metadata(\"design:type\", EventEmitter)\n], TreeViewComponent.prototype, \"onBlur\", void 0);\n__decorate([\n Output('focus'),\n __metadata(\"design:type\", EventEmitter)\n], TreeViewComponent.prototype, \"onFocus\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeViewComponent.prototype, \"expand\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeViewComponent.prototype, \"collapse\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeViewComponent.prototype, \"nodeDragStart\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeViewComponent.prototype, \"nodeDrag\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeViewComponent.prototype, \"filterStateChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeViewComponent.prototype, \"nodeDrop\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeViewComponent.prototype, \"nodeDragEnd\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeViewComponent.prototype, \"addItem\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeViewComponent.prototype, \"removeItem\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeViewComponent.prototype, \"checkedChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeViewComponent.prototype, \"selectionChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeViewComponent.prototype, \"filterChange\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeViewComponent.prototype, \"nodeClick\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], TreeViewComponent.prototype, \"nodeDblClick\", void 0);\n__decorate([\n ContentChild(NodeTemplateDirective, { static: false }),\n __metadata(\"design:type\", NodeTemplateDirective)\n], TreeViewComponent.prototype, \"nodeTemplateQuery\", void 0);\n__decorate([\n Input('nodeTemplate'),\n __metadata(\"design:type\", NodeTemplateDirective),\n __metadata(\"design:paramtypes\", [NodeTemplateDirective])\n], TreeViewComponent.prototype, \"nodeTemplateRef\", null);\n__decorate([\n ContentChild(LoadMoreButtonTemplateDirective, { static: false }),\n __metadata(\"design:type\", LoadMoreButtonTemplateDirective)\n], TreeViewComponent.prototype, \"loadMoreButtonTemplateQuery\", void 0);\n__decorate([\n Input('loadMoreButtonTemplate'),\n __metadata(\"design:type\", LoadMoreButtonTemplateDirective),\n __metadata(\"design:paramtypes\", [LoadMoreButtonTemplateDirective])\n], TreeViewComponent.prototype, \"loadMoreButtonTemplateRef\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], TreeViewComponent.prototype, \"trackBy\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], TreeViewComponent.prototype, \"nodes\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], TreeViewComponent.prototype, \"textField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Function])\n], TreeViewComponent.prototype, \"hasChildren\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Function])\n], TreeViewComponent.prototype, \"isChecked\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], TreeViewComponent.prototype, \"isDisabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Function])\n], TreeViewComponent.prototype, \"isExpanded\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Function])\n], TreeViewComponent.prototype, \"isSelected\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], TreeViewComponent.prototype, \"isVisible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TreeViewComponent.prototype, \"navigable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], TreeViewComponent.prototype, \"children\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TreeViewComponent.prototype, \"loadOnDemand\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TreeViewComponent.prototype, \"filterable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TreeViewComponent.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], TreeViewComponent.prototype, \"size\", null);\nTreeViewComponent = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n ChangeDetectorRef,\n ExpandStateService,\n NavigationService,\n NodeChildrenService,\n SelectionService,\n TreeViewLookupService,\n NgZone,\n Renderer2,\n DataChangeNotificationService,\n LocalizationService])\n], TreeViewComponent);\n\n/**\n * @hidden\n */\nlet TreeViewGroupComponent = class TreeViewGroupComponent {\n constructor(expandService, loadingService, indexBuilder, treeViewLookupService, navigationService, nodeChildrenService, dataChangeNotification, changeDetectorRef) {\n this.expandService = expandService;\n this.loadingService = loadingService;\n this.indexBuilder = indexBuilder;\n this.treeViewLookupService = treeViewLookupService;\n this.navigationService = navigationService;\n this.nodeChildrenService = nodeChildrenService;\n this.dataChangeNotification = dataChangeNotification;\n this.changeDetectorRef = changeDetectorRef;\n this.kGroupClass = true;\n this.role = 'group';\n this.loadOnDemand = true;\n this.textField = \"\";\n this.size = 'medium';\n this.initialNodesLoaded = false;\n this.loadingMoreNodes = false;\n this._data = [];\n this.singleRecordSubscriptions = new Subscription();\n this.isChecked = () => 'none';\n this.isDisabled = () => false;\n this.isExpanded = () => false;\n this.isVisible = () => true;\n this.isSelected = () => false;\n this.children = () => of([]);\n this.hasChildren = () => false;\n }\n get moreNodesAvailable() {\n if (!isPresent(this.loadMoreService) || this.data.length === 0) {\n return false;\n }\n return this.pageSize < this.totalNodesCount;\n }\n get pageSize() {\n if (!isPresent(this.loadMoreService)) {\n return null;\n }\n return this.loadMoreService.getGroupSize(this.parentDataItem);\n }\n set pageSize(pageSize) {\n this.loadMoreService.setGroupSize(this.parentDataItem, pageSize);\n }\n get data() {\n if (isPresent(this.pageSize)) {\n const normalizedSizeValue = this.pageSize > 0 ? this.pageSize : 0;\n return this._data.slice(0, normalizedSizeValue);\n }\n return this._data;\n }\n set data(data) {\n this._data = data;\n this.registerLoadedNodes(this.data);\n }\n get loadMoreButtonIndex() {\n if (!this.loadMoreService) {\n return null;\n }\n return this.nodeIndex(this.data.length);\n }\n /**\n * Represents the total number of nodes for the current level.\n */\n get totalNodesCount() {\n if (!this.loadMoreService) {\n return this.data.length;\n }\n return this.loadMoreService.getTotalNodesCount(this.parentDataItem, this._data.length);\n }\n get hasTemplate() {\n return isPresent(this.nodeTemplateRef);\n }\n expandNode(index, dataItem, expand) {\n if (expand) {\n this.expandService.expand(index, dataItem);\n }\n else {\n this.expandService.collapse(index, dataItem);\n }\n }\n checkNode(index) {\n this.navigationService.checkIndex(index);\n this.navigationService.activateIndex(index);\n }\n nodeIndex(index) {\n return this.indexBuilder.nodeIndex(index.toString(), this.parentIndex);\n }\n nodeText(dataItem) {\n const textField = isArray(this.textField) ? this.textField[0] : this.textField;\n return getter(textField)(dataItem);\n }\n ngOnDestroy() {\n if (isPresent(this.nodesSubscription)) {\n this.nodesSubscription.unsubscribe();\n }\n if (isPresent(this.loadMoreNodesSubscription)) {\n this.loadMoreNodesSubscription.unsubscribe();\n }\n this.singleRecordSubscriptions.unsubscribe();\n }\n ngOnInit() {\n this.subscribeToNodesChange();\n this.singleRecordSubscriptions.add(this.dataChangeNotification\n .changes\n .subscribe(this.subscribeToNodesChange.bind(this)));\n this.singleRecordSubscriptions.add(this.navigationService.loadMore\n .pipe(filter(index => index === this.loadMoreButtonIndex))\n .subscribe(this.loadMoreNodes.bind(this)));\n }\n ngOnChanges(changes) {\n if (changes.parentIndex && this.loadOnDemand) {\n this.setNodeChildren(this.mapToTreeItem(this.data));\n }\n }\n fetchChildren(node, index) {\n return this.children(node)\n .pipe(catchError(() => {\n this.loadingService.notifyLoaded(index);\n return EMPTY;\n }), tap(() => this.loadingService.notifyLoaded(index)));\n }\n get nextFields() {\n if (isArray(this.textField)) {\n return this.textField.length > 1 ? this.textField.slice(1) : this.textField;\n }\n return [this.textField];\n }\n loadMoreNodes() {\n if (isPresent(this.loadMoreService.loadMoreNodes)) {\n this.fetchMoreNodes();\n }\n else {\n this.loadMoreLocalNodes();\n }\n }\n loadMoreLocalNodes() {\n const initialLoadMoreButtonIndex = this.loadMoreButtonIndex;\n this.pageSize += this.loadMoreService.getInitialPageSize(this.parentDataItem);\n this.registerLoadedNodes(this.data);\n // forces the new items to be registered before the focus is changed\n this.changeDetectorRef.detectChanges();\n this.reselectItemAt(initialLoadMoreButtonIndex);\n }\n fetchMoreNodes() {\n if (this.loadingMoreNodes) {\n return;\n }\n this.loadingMoreNodes = true;\n if (isPresent(this.loadMoreNodesSubscription)) {\n this.loadMoreNodesSubscription.unsubscribe();\n }\n this.loadMoreNodesSubscription = this.loadMoreService\n .loadMoreNodes({\n dataItem: this.parentDataItem,\n skip: this.data.length,\n take: this.loadMoreService.getInitialPageSize(this.parentDataItem)\n })\n .pipe(finalize(() => this.loadingMoreNodes = false))\n .subscribe(items => {\n if (!(Array.isArray(items) && items.length > 0)) {\n return;\n }\n const initialLoadMoreButtonIndex = this.loadMoreButtonIndex;\n this.pageSize += items.length;\n this.data = this.data.concat(items);\n if (this.navigationService.isActive(initialLoadMoreButtonIndex)) {\n // forces the new items to be registered before the focus is changed\n this.changeDetectorRef.detectChanges();\n this.reselectItemAt(initialLoadMoreButtonIndex);\n }\n });\n }\n setNodeChildren(children) {\n this.treeViewLookupService.registerChildren(this.parentIndex, children);\n }\n mapToTreeItem(data) {\n if (!this.parentIndex) {\n return [];\n }\n return data.map((dataItem, idx) => ({ dataItem, index: this.nodeIndex(idx) }));\n }\n emitChildrenLoaded(children) {\n if (!this.parentIndex) {\n return;\n }\n // ignores the registered load-more button\n const contentChildren = children.filter(item => item.dataItem);\n this.nodeChildrenService.childrenLoaded({ dataItem: this.parentDataItem, index: this.parentIndex }, contentChildren);\n }\n subscribeToNodesChange() {\n if (this.nodesSubscription) {\n this.nodesSubscription.unsubscribe();\n }\n this.nodesSubscription = this.nodes(this.parentDataItem, this.parentIndex)\n .subscribe(data => {\n this.data = data;\n this.initialNodesLoaded = true;\n });\n }\n reselectItemAt(index) {\n if (!isPresent(index)) {\n return;\n }\n // make sure the old index is cleared first\n this.navigationService.deactivate();\n this.navigationService.activateIndex(index);\n }\n registerLoadedNodes(nodes = []) {\n const mappedChildren = this.mapToTreeItem(nodes);\n if (this.loadOnDemand) {\n this.setNodeChildren(mappedChildren);\n }\n this.emitChildrenLoaded(mappedChildren);\n }\n};\nTreeViewGroupComponent.ɵfac = function TreeViewGroupComponent_Factory(t) { return new (t || TreeViewGroupComponent)(ɵngcc0.ɵɵdirectiveInject(ExpandStateService), ɵngcc0.ɵɵdirectiveInject(LoadingNotificationService), ɵngcc0.ɵɵdirectiveInject(IndexBuilderService), ɵngcc0.ɵɵdirectiveInject(TreeViewLookupService), ɵngcc0.ɵɵdirectiveInject(NavigationService), ɵngcc0.ɵɵdirectiveInject(NodeChildrenService), ɵngcc0.ɵɵdirectiveInject(DataChangeNotificationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nTreeViewGroupComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: TreeViewGroupComponent, selectors: [[\"\", \"kendoTreeViewGroup\", \"\"]], hostVars: 3, hostBindings: function TreeViewGroupComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"role\", ctx.role);\n ɵngcc0.ɵɵclassProp(\"k-treeview-group\", ctx.kGroupClass);\n } }, inputs: { loadOnDemand: \"loadOnDemand\", textField: \"textField\", size: \"size\", isChecked: \"isChecked\", isDisabled: \"isDisabled\", isExpanded: \"isExpanded\", isVisible: \"isVisible\", isSelected: \"isSelected\", children: \"children\", hasChildren: \"hasChildren\", checkboxes: \"checkboxes\", expandIcons: \"expandIcons\", disabled: \"disabled\", selectable: \"selectable\", touchActions: \"touchActions\", trackBy: \"trackBy\", nodes: \"nodes\", parentDataItem: \"parentDataItem\", parentIndex: \"parentIndex\", nodeTemplateRef: \"nodeTemplateRef\", loadMoreButtonTemplateRef: \"loadMoreButtonTemplateRef\", loadMoreService: \"loadMoreService\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], attrs: _c1, decls: 2, vars: 3, consts: [[\"class\", \"k-treeview-item\", \"kendoTreeViewItem\", \"\", 3, \"k-display-none\", \"dataItem\", \"index\", \"parentDataItem\", \"parentIndex\", \"loadOnDemand\", \"checkable\", \"isChecked\", \"isDisabled\", \"isVisible\", \"expandable\", \"isExpanded\", \"selectable\", \"isSelected\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"class\", \"k-treeview-item\", \"kendoTreeViewItem\", \"\", \"role\", \"button\", 3, \"k-treeview-load-more-checkboxes-container\", \"selectable\", \"checkable\", \"expandable\", \"index\", \"parentDataItem\", \"parentIndex\", 4, \"ngIf\"], [\"kendoTreeViewItem\", \"\", 1, \"k-treeview-item\", 3, \"dataItem\", \"index\", \"parentDataItem\", \"parentIndex\", \"loadOnDemand\", \"checkable\", \"isChecked\", \"isDisabled\", \"isVisible\", \"expandable\", \"isExpanded\", \"selectable\", \"isSelected\"], [1, \"k-treeview-mid\"], [\"class\", \"k-treeview-toggle\", 3, \"kendoTreeViewLoading\", \"click\", 4, \"ngIf\"], [\"tabindex\", \"-1\", 3, \"size\", \"node\", \"index\", \"isChecked\", \"checkStateChange\", 4, \"ngIf\"], [\"kendoTreeViewItemContent\", \"\", 1, \"k-treeview-leaf\", 3, \"dataItem\", \"index\", \"initialSelection\", \"isSelected\"], [1, \"k-treeview-leaf-text\"], [3, \"ngSwitch\"], [4, \"ngSwitchCase\"], [4, \"ngSwitchDefault\"], [\"kendoTreeViewGroup\", \"\", \"role\", \"group\", 3, \"nodes\", \"loadOnDemand\", \"checkboxes\", \"expandIcons\", \"selectable\", \"touchActions\", \"children\", \"hasChildren\", \"isChecked\", \"isDisabled\", \"disabled\", \"isExpanded\", \"isSelected\", \"isVisible\", \"nodeTemplateRef\", \"loadMoreButtonTemplateRef\", \"parentIndex\", \"parentDataItem\", \"textField\", \"loadMoreService\", \"trackBy\", 4, \"ngIf\"], [1, \"k-treeview-toggle\", 3, \"kendoTreeViewLoading\", \"click\"], [1, \"k-icon\"], [\"tabindex\", \"-1\", 3, \"size\", \"node\", \"index\", \"isChecked\", \"checkStateChange\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"kendoTreeViewGroup\", \"\", \"role\", \"group\", 3, \"nodes\", \"loadOnDemand\", \"checkboxes\", \"expandIcons\", \"selectable\", \"touchActions\", \"children\", \"hasChildren\", \"isChecked\", \"isDisabled\", \"disabled\", \"isExpanded\", \"isSelected\", \"isVisible\", \"nodeTemplateRef\", \"loadMoreButtonTemplateRef\", \"parentIndex\", \"parentDataItem\", \"textField\", \"loadMoreService\", \"trackBy\"], [\"kendoTreeViewItem\", \"\", \"role\", \"button\", 1, \"k-treeview-item\", 3, \"selectable\", \"checkable\", \"expandable\", \"index\", \"parentDataItem\", \"parentIndex\"], [\"class\", \"k-icon k-i-loading k-i-expand\", 4, \"ngIf\"], [\"kendoTreeViewItemContent\", \"\", 1, \"k-treeview-leaf\", \"k-treeview-load-more-button\", 3, \"index\"], [4, \"ngIf\"], [1, \"k-icon\", \"k-i-loading\", \"k-i-expand\"]], template: function TreeViewGroupComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, TreeViewGroupComponent_li_0_Template, 10, 29, \"li\", 0);\n ɵngcc0.ɵɵtemplate(1, TreeViewGroupComponent_li_1_Template, 7, 14, \"li\", 1);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.data)(\"ngForTrackBy\", ctx.trackBy);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.initialNodesLoaded && ctx.moreNodesAvailable);\n } }, directives: function () { return [ɵngcc2.NgForOf, TreeViewItemDirective, ɵngcc2.NgIf, LoadingIndicatorDirective, CheckBoxComponent, TreeViewItemContentDirective, ɵngcc2.NgSwitch, ɵngcc2.NgSwitchCase, ɵngcc2.NgTemplateOutlet, ɵngcc2.NgSwitchDefault, TreeViewGroupComponent]; }, encapsulation: 2, data: { animation: [\n trigger('toggle', [\n transition('void => *', [\n style({ height: 0 }),\n animate('0.1s ease-in', style({ height: \"*\" }))\n ]),\n transition('* => void', [\n style({ height: \"*\" }),\n animate('0.1s ease-in', style({ height: 0 }))\n ])\n ])\n ] } });\n__decorate([\n HostBinding(\"class.k-treeview-group\"),\n __metadata(\"design:type\", Boolean)\n], TreeViewGroupComponent.prototype, \"kGroupClass\", void 0);\n__decorate([\n HostBinding(\"attr.role\"),\n __metadata(\"design:type\", String)\n], TreeViewGroupComponent.prototype, \"role\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TreeViewGroupComponent.prototype, \"checkboxes\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TreeViewGroupComponent.prototype, \"expandIcons\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TreeViewGroupComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TreeViewGroupComponent.prototype, \"selectable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TreeViewGroupComponent.prototype, \"touchActions\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TreeViewGroupComponent.prototype, \"loadOnDemand\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], TreeViewGroupComponent.prototype, \"trackBy\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], TreeViewGroupComponent.prototype, \"nodes\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], TreeViewGroupComponent.prototype, \"textField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], TreeViewGroupComponent.prototype, \"parentDataItem\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TreeViewGroupComponent.prototype, \"parentIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], TreeViewGroupComponent.prototype, \"nodeTemplateRef\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef)\n], TreeViewGroupComponent.prototype, \"loadMoreButtonTemplateRef\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], TreeViewGroupComponent.prototype, \"loadMoreService\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TreeViewGroupComponent.prototype, \"size\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], TreeViewGroupComponent.prototype, \"isChecked\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], TreeViewGroupComponent.prototype, \"isDisabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], TreeViewGroupComponent.prototype, \"isExpanded\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], TreeViewGroupComponent.prototype, \"isVisible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], TreeViewGroupComponent.prototype, \"isSelected\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], TreeViewGroupComponent.prototype, \"children\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], TreeViewGroupComponent.prototype, \"hasChildren\", void 0);\nTreeViewGroupComponent = __decorate([ __metadata(\"design:paramtypes\", [ExpandStateService,\n LoadingNotificationService,\n IndexBuilderService,\n TreeViewLookupService,\n NavigationService,\n NodeChildrenService,\n DataChangeNotificationService,\n ChangeDetectorRef])\n], TreeViewGroupComponent);\n\nconst indexChecked = (keys, index) => keys.filter(k => k === index).length > 0;\nconst matchKey = index => k => {\n if (index === k) {\n return true;\n }\n if (!k.split) {\n return false;\n }\n return k.split('_').reduce(({ key, result }, part) => {\n key += part;\n if (index === key || result) {\n return { result: true };\n }\n key += \"_\";\n return { key, result: false };\n }, { key: \"\", result: false }).result;\n};\n/**\n * A directive which manages the in-memory checked state of the TreeView node\n * ([see example]({% slug checkboxes_treeview %})).\n */\nlet CheckDirective = class CheckDirective {\n constructor(treeView, zone) {\n this.treeView = treeView;\n this.zone = zone;\n /**\n * Fires when the `checkedKeys` collection was updated.\n */\n this.checkedKeysChange = new EventEmitter();\n this.subscriptions = new Subscription();\n this.checkActions = {\n 'multiple': (e) => this.checkMultiple(e),\n 'single': (e) => this.checkSingle(e)\n };\n /**\n * Reflectes the internal `checkedKeys` state.\n */\n this.state = new Set();\n this.subscriptions.add(this.treeView.checkedChange\n .subscribe((e) => this.check(e)));\n let expandedItems = [];\n this.subscriptions.add(this.treeView.childrenLoaded\n .pipe(filter(() => this.options.checkChildren && this.treeView.loadOnDemand), tap(item => expandedItems.push(item)), switchMap(() => this.zone.onStable.pipe(take(1))))\n .subscribe(() => this.addCheckedItemsChildren(expandedItems)));\n this.treeView.isChecked = this.isItemChecked.bind(this);\n }\n /**\n * @hidden\n */\n set isChecked(value) {\n this.treeView.isChecked = value;\n }\n get options() {\n const defaultOptions = {\n checkChildren: true,\n checkParents: true,\n enabled: true,\n mode: \"multiple\"\n };\n if (!isPresent(this.checkable) || typeof this.checkable === 'string') {\n return defaultOptions;\n }\n const checkSettings = isBoolean(this.checkable)\n ? { enabled: this.checkable }\n : this.checkable;\n return Object.assign(defaultOptions, checkSettings);\n }\n ngOnChanges(changes) {\n if (changes.checkable) {\n this.treeView.checkboxes = this.options.enabled;\n this.toggleCheckOnClick();\n }\n if (isChanged('checkedKeys', changes, false) && changes.checkedKeys.currentValue !== this.lastChange) {\n this.state = new Set(changes.checkedKeys.currentValue);\n }\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n this.unsubscribeClick();\n }\n isItemChecked(dataItem, index) {\n if (!this.checkKey) {\n return this.isIndexChecked(index);\n }\n const hasKey = this.state.has(this.itemKey({ dataItem, index }));\n return hasKey ? 'checked' : 'none';\n }\n isIndexChecked(index) {\n const checkedKeys = Array.from(this.state).filter(matchKey(index));\n if (indexChecked(checkedKeys, index)) {\n return 'checked';\n }\n const { mode, checkParents } = this.options;\n if (mode === 'multiple' && checkParents && checkedKeys.length) {\n return 'indeterminate';\n }\n return 'none';\n }\n itemKey(item) {\n if (!isPresent(this.checkKey)) {\n return item.index;\n }\n if (typeof this.checkKey === \"string\" && isPresent(item.dataItem)) {\n return item.dataItem[this.checkKey];\n }\n if (typeof this.checkKey === \"function\") {\n return this.checkKey(item);\n }\n }\n check(e) {\n const { enabled, mode } = this.options;\n const performSelection = this.checkActions[mode] || noop;\n if (!enabled) {\n return;\n }\n performSelection(e);\n }\n checkSingle(node) {\n const key = this.itemKey(node.item);\n const hasKey = this.state.has(key);\n this.state.clear();\n if (!hasKey) {\n this.state.add(key);\n }\n this.notify();\n }\n checkMultiple(node) {\n this.checkNode(node);\n if (this.options.checkParents) {\n this.checkParents(node.parent);\n }\n this.notify();\n }\n toggleCheckOnClick() {\n this.unsubscribeClick();\n if (this.options.checkOnClick) {\n this.clickSubscription = this.treeView.nodeClick.subscribe(args => {\n if (args.type === 'click') {\n const lookup = this.treeView.itemLookup(args.item.index);\n this.check(lookup);\n }\n });\n }\n }\n unsubscribeClick() {\n if (this.clickSubscription) {\n this.clickSubscription.unsubscribe();\n this.clickSubscription = null;\n }\n }\n checkNode(node) {\n if (!isPresent(node.item.dataItem) || this.treeView.isDisabled(node.item.dataItem, node.item.index)) {\n return;\n }\n const currentKey = this.itemKey(node.item);\n if (!isPresent(currentKey)) {\n return;\n }\n const pendingCheck = [currentKey];\n if (this.options.checkChildren) {\n const descendants = fetchLoadedDescendants(node, ({ item }) => this.treeView.isVisible(item.dataItem, item.index) &&\n !this.treeView.isDisabled(item.dataItem, item.index))\n .map(({ item }) => this.itemKey(item));\n pendingCheck.push(...descendants);\n }\n const shouldCheck = !this.state.has(currentKey);\n pendingCheck.forEach(key => {\n if (shouldCheck) {\n this.state.add(key);\n }\n else {\n this.state.delete(key);\n }\n });\n }\n checkParents(parent) {\n if (!isPresent(parent)) {\n return;\n }\n let currentParent = parent;\n while (currentParent) {\n const parentKey = this.itemKey(currentParent.item);\n const allChildrenSelected = currentParent.children.every(item => this.state.has(this.itemKey(item)));\n if (allChildrenSelected) {\n this.state.add(parentKey);\n }\n else {\n this.state.delete(parentKey);\n }\n currentParent = currentParent.parent;\n }\n }\n notify() {\n this.lastChange = Array.from(this.state);\n this.checkedKeysChange.emit(this.lastChange);\n }\n addCheckedItemsChildren(lookups) {\n if (!isPresent(lookups) || lookups.length === 0) {\n return;\n }\n const initiallyCheckedItemsCount = this.state.size;\n lookups.forEach(lookup => {\n const itemKey = this.itemKey(lookup.item);\n if (!this.state.has(itemKey)) {\n return;\n }\n lookup.children.forEach(item => {\n // ensure both the parent item and each child node is enabled\n if (!this.treeView.isDisabled(lookup.item.dataItem, lookup.item.index) &&\n !this.treeView.isDisabled(item.dataItem, item.index)) {\n this.state.add(this.itemKey(item));\n }\n });\n });\n const hasNewlyCheckedItems = initiallyCheckedItemsCount !== this.state.size;\n if (hasNewlyCheckedItems) {\n this.zone.run(() => this.notify());\n }\n }\n};\nCheckDirective.ɵfac = function CheckDirective_Factory(t) { return new (t || CheckDirective)(ɵngcc0.ɵɵdirectiveInject(TreeViewComponent), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nCheckDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: CheckDirective, selectors: [[\"\", \"kendoTreeViewCheckable\", \"\"]], inputs: { isChecked: \"isChecked\", checkKey: [\"checkBy\", \"checkKey\"], checkedKeys: \"checkedKeys\", checkable: [\"kendoTreeViewCheckable\", \"checkable\"] }, outputs: { checkedKeysChange: \"checkedKeysChange\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Function])\n], CheckDirective.prototype, \"isChecked\", null);\n__decorate([\n Input(\"checkBy\"),\n __metadata(\"design:type\", Object)\n], CheckDirective.prototype, \"checkKey\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], CheckDirective.prototype, \"checkedKeys\", void 0);\n__decorate([\n Input('kendoTreeViewCheckable'),\n __metadata(\"design:type\", Object)\n], CheckDirective.prototype, \"checkable\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], CheckDirective.prototype, \"checkedKeysChange\", void 0);\nCheckDirective = __decorate([ __metadata(\"design:paramtypes\", [TreeViewComponent,\n NgZone])\n], CheckDirective);\n\n/**\n * A directive which manages the disabled in-memory state of the TreeView node\n * ([see example]({% slug disabledstate_treeview %})).\n */\nlet DisableDirective = class DisableDirective {\n constructor(treeView, cdr) {\n this.treeView = treeView;\n this.cdr = cdr;\n /**\n * Defines the collection that will store the disabled keys.\n */\n this.disabledKeys = [];\n this.treeView.isDisabled = (dataItem, index) => (this.disabledKeys.indexOf(this.itemKey({ dataItem, index })) > -1);\n }\n /**\n * @hidden\n */\n set isDisabled(value) {\n this.treeView.isDisabled = value;\n }\n ngOnChanges(changes = {}) {\n const { disabledKeys } = changes;\n if (disabledKeys && !disabledKeys.firstChange) {\n this.cdr.markForCheck();\n }\n }\n itemKey(e) {\n if (!this.disableKey) {\n return e.index;\n }\n if (typeof this.disableKey === \"string\") {\n return e.dataItem[this.disableKey];\n }\n if (typeof this.disableKey === \"function\") {\n return this.disableKey(e);\n }\n }\n};\nDisableDirective.ɵfac = function DisableDirective_Factory(t) { return new (t || DisableDirective)(ɵngcc0.ɵɵdirectiveInject(TreeViewComponent), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nDisableDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DisableDirective, selectors: [[\"\", \"kendoTreeViewDisable\", \"\"]], inputs: { disabledKeys: \"disabledKeys\", isDisabled: \"isDisabled\", disableKey: [\"kendoTreeViewDisable\", \"disableKey\"] }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Function])\n], DisableDirective.prototype, \"isDisabled\", null);\n__decorate([\n Input(\"kendoTreeViewDisable\"),\n __metadata(\"design:type\", Object)\n], DisableDirective.prototype, \"disableKey\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], DisableDirective.prototype, \"disabledKeys\", void 0);\nDisableDirective = __decorate([ __metadata(\"design:paramtypes\", [TreeViewComponent,\n ChangeDetectorRef])\n], DisableDirective);\n\nconst DEFAULT_FILTER_EXPAND_SETTINGS = {\n maxAutoExpandResults: -1,\n expandMatches: false,\n expandedOnClear: \"none\"\n};\n/**\n * A directive which manages the expanded state of the TreeView.\n * ([see example]({% slug expandedstate_treeview %})).\n */\nlet ExpandDirective = class ExpandDirective {\n constructor(component) {\n this.component = component;\n /**\n * Whether or not to auto-expand the nodes leading from the root node to each filter result.\n * To fine-tune this behavior, pass a [`FilterExpandSettings`]({% slug api_treeview_filterexpandsettings %}) object to this input.\n * @default false\n */\n this.expandOnFilter = false;\n /**\n * Fires when the `expandedKeys` collection was updated.\n */\n this.expandedKeysChange = new EventEmitter();\n this.subscriptions = new Subscription();\n /**\n * Reflectes the internal `expandedKeys` state.\n */\n this.state = new Set();\n this.originalExpandedKeys = new Set();\n this.isFiltered = false;\n /**\n * Fills array with the correct expand keys according to wrapper metadata.\n */\n this.updateExpandedNodes = (collection, node, autoExpandMatches) => {\n if (node.containsMatches || node.isMatch && autoExpandMatches && isArrayWithAtLeastOneItem(node.children)) {\n collection.push(this.itemKey({ dataItem: node.dataItem, index: node.index }));\n }\n if (isArrayWithAtLeastOneItem(node.children)) {\n node.children.forEach(child => {\n this.updateExpandedNodes(collection, child, autoExpandMatches);\n });\n }\n };\n /**\n * Fills array with the expand key of every node.\n */\n this.getEveryExpandKey = (collection, node) => {\n if (isArrayWithAtLeastOneItem(node.children)) {\n collection.push(this.itemKey({ dataItem: node.dataItem, index: node.index }));\n }\n if (isArrayWithAtLeastOneItem(node.children)) {\n node.children.forEach(child => {\n this.getEveryExpandKey(collection, child);\n });\n }\n };\n this.subscriptions.add(merge(this.component.expand.pipe(map(e => (Object.assign({ expand: true }, e)))), this.component.collapse.pipe(map(e => (Object.assign({ expand: false }, e))))).subscribe(this.toggleExpand.bind(this)));\n if (this.component.filterStateChange) {\n this.subscriptions.add(this.component.filterStateChange.subscribe(this.handleAutoExpand.bind(this)));\n }\n this.component.isExpanded = (dataItem, index) => this.state.has(this.itemKey({ dataItem, index }));\n }\n /**\n * @hidden\n */\n set isExpanded(value) {\n this.component.isExpanded = value;\n }\n get filterExpandSettings() {\n const settings = isBoolean(this.expandOnFilter) ? { enabled: this.expandOnFilter } : Object.assign({}, this.expandOnFilter, { enabled: true });\n return Object.assign({}, DEFAULT_FILTER_EXPAND_SETTINGS, settings);\n }\n ngOnChanges(changes) {\n if (isChanged('expandedKeys', changes, false) && changes.expandedKeys.currentValue !== this.lastChange) {\n this.state = new Set(changes.expandedKeys.currentValue);\n }\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n /**\n * @hidden\n */\n itemKey(e) {\n if (this.expandKey) {\n if (typeof this.expandKey === \"string\") {\n return e.dataItem[this.expandKey];\n }\n if (typeof this.expandKey === \"function\") {\n return this.expandKey(e);\n }\n }\n return e.index;\n }\n toggleExpand({ index, dataItem, expand }) {\n const key = this.itemKey({ index, dataItem });\n const isExpanded = this.state.has(key);\n let notify = false;\n if (isExpanded && !expand) {\n this.state.delete(key);\n notify = true;\n }\n else if (!isExpanded && expand) {\n this.state.add(key);\n notify = true;\n }\n if (notify) {\n this.notify();\n }\n }\n handleAutoExpand({ nodes, matchCount, term }) {\n if (!this.filterExpandSettings.enabled) {\n return;\n }\n const { maxAutoExpandResults, expandMatches: autoExpandMatches, expandedOnClear } = this.filterExpandSettings;\n if (!this.isFiltered) {\n this.originalExpandedKeys = new Set(this.state);\n }\n const exitingFilteredState = this.isFiltered && !term;\n const maxExceeded = maxAutoExpandResults !== -1 && matchCount > maxAutoExpandResults;\n const exitAutoExpandedState = exitingFilteredState || maxExceeded;\n if (exitAutoExpandedState) {\n switch (expandedOnClear) {\n case \"initial\": {\n if (!sameValues(this.state, this.originalExpandedKeys)) {\n this.state = this.originalExpandedKeys;\n this.notify();\n }\n break;\n }\n case \"all\": {\n this.state = new Set(nodes.reduce((acc, rootNode) => {\n this.getEveryExpandKey(acc, rootNode);\n return acc;\n }, []));\n this.notify();\n break;\n }\n case \"unchanged\": {\n break;\n }\n case \"none\":\n default: {\n if (this.state.size !== 0) {\n this.state.clear();\n this.notify();\n }\n break;\n }\n }\n this.isFiltered = false;\n return;\n }\n const indicesToExpand = new Set(nodes.reduce((acc, rootNode) => {\n this.updateExpandedNodes(acc, rootNode, autoExpandMatches);\n return acc;\n }, []));\n if (!sameValues(this.state, indicesToExpand)) {\n this.state = indicesToExpand;\n this.notify();\n }\n this.isFiltered = true;\n }\n notify() {\n this.lastChange = Array.from(this.state);\n this.expandedKeysChange.emit(this.lastChange);\n }\n};\nExpandDirective.ɵfac = function ExpandDirective_Factory(t) { return new (t || ExpandDirective)(ɵngcc0.ɵɵdirectiveInject(ExpandableComponent)); };\nExpandDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ExpandDirective, selectors: [[\"\", \"kendoTreeViewExpandable\", \"\"]], inputs: { expandOnFilter: \"expandOnFilter\", isExpanded: \"isExpanded\", expandKey: [\"expandBy\", \"expandKey\"], expandedKeys: \"expandedKeys\" }, outputs: { expandedKeysChange: \"expandedKeysChange\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Function])\n], ExpandDirective.prototype, \"isExpanded\", null);\n__decorate([\n Input(\"expandBy\"),\n __metadata(\"design:type\", Object)\n], ExpandDirective.prototype, \"expandKey\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], ExpandDirective.prototype, \"expandOnFilter\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], ExpandDirective.prototype, \"expandedKeysChange\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], ExpandDirective.prototype, \"expandedKeys\", void 0);\nExpandDirective = __decorate([ __metadata(\"design:paramtypes\", [ExpandableComponent])\n], ExpandDirective);\n\n/**\n * A directive which manages the in-memory selection state of the TreeView node\n * ([see example]({% slug selection_treeview %})).\n */\nlet SelectDirective = class SelectDirective {\n constructor(treeView) {\n this.treeView = treeView;\n /**\n * Fires when the `selectedKeys` collection was updated.\n */\n this.selectedKeysChange = new EventEmitter();\n this.subscriptions = new Subscription();\n this.selectActions = {\n 'multiple': (e) => this.selectMultiple(e),\n 'single': (e) => this.selectSingle(e)\n };\n /**\n * Reflectes the internal `selectedKeys` state.\n */\n this.state = new Set();\n this.subscriptions.add(this.treeView.selectionChange.subscribe(this.select.bind(this)));\n this.treeView.isSelected = (dataItem, index) => (this.state.has(this.itemKey({ dataItem, index })));\n }\n /**\n * @hidden\n */\n set isSelected(value) {\n this.treeView.isSelected = value;\n }\n get getAriaMultiselectable() {\n return this.options.mode === 'multiple';\n }\n get options() {\n const defaultOptions = {\n enabled: true,\n mode: 'single'\n };\n if (!isPresent(this.selection) || typeof this.selection === 'string') {\n return defaultOptions;\n }\n const selectionSettings = isBoolean(this.selection) ? { enabled: this.selection } : this.selection;\n return Object.assign(defaultOptions, selectionSettings);\n }\n ngOnChanges(changes) {\n if (isChanged('selectedKeys', changes, false) && changes.selectedKeys.currentValue !== this.lastChange) {\n this.state = new Set(changes.selectedKeys.currentValue);\n }\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n itemKey(e) {\n if (!this.selectKey) {\n return e.index;\n }\n if (typeof this.selectKey === 'string') {\n return e.dataItem[this.selectKey];\n }\n if (typeof this.selectKey === 'function') {\n return this.selectKey(e);\n }\n }\n select(e) {\n const { enabled, mode } = this.options;\n const performSelection = this.selectActions[mode] || noop;\n if (!enabled) {\n return;\n }\n performSelection(e);\n }\n selectSingle(node) {\n const key = this.itemKey(node);\n if (!this.state.has(key)) {\n this.state.clear();\n this.state.add(key);\n this.notify();\n }\n }\n selectMultiple(node) {\n const key = this.itemKey(node);\n const isSelected = this.state.has(key);\n if (!isPresent(key)) {\n return;\n }\n if (isSelected) {\n this.state.delete(key);\n }\n else {\n this.state.add(key);\n }\n this.notify();\n }\n notify() {\n this.lastChange = Array.from(this.state);\n this.selectedKeysChange.emit(this.lastChange);\n }\n};\nSelectDirective.ɵfac = function SelectDirective_Factory(t) { return new (t || SelectDirective)(ɵngcc0.ɵɵdirectiveInject(TreeViewComponent)); };\nSelectDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SelectDirective, selectors: [[\"\", \"kendoTreeViewSelectable\", \"\"]], hostVars: 1, hostBindings: function SelectDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"aria-multiselectable\", ctx.getAriaMultiselectable);\n } }, inputs: { isSelected: \"isSelected\", selectKey: [\"selectBy\", \"selectKey\"], selection: [\"kendoTreeViewSelectable\", \"selection\"], selectedKeys: \"selectedKeys\" }, outputs: { selectedKeysChange: \"selectedKeysChange\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Function])\n], SelectDirective.prototype, \"isSelected\", null);\n__decorate([\n Input('selectBy'),\n __metadata(\"design:type\", Object)\n], SelectDirective.prototype, \"selectKey\", void 0);\n__decorate([\n Input('kendoTreeViewSelectable'),\n __metadata(\"design:type\", Object)\n], SelectDirective.prototype, \"selection\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], SelectDirective.prototype, \"selectedKeys\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], SelectDirective.prototype, \"selectedKeysChange\", void 0);\n__decorate([\n HostBinding('attr.aria-multiselectable'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], SelectDirective.prototype, \"getAriaMultiselectable\", null);\nSelectDirective = __decorate([ __metadata(\"design:paramtypes\", [TreeViewComponent])\n], SelectDirective);\n\n/**\n * Describes the attempted drop action during dragging.\n * Passed as `action` value to the [`kendoTreeViewDragClueTemplate`]({% slug api_treeview_dragcluetemplatedirective %}) directive.\n * By default, this value defines the rendered icon in the drag clue.\n */\nvar DropAction;\n(function (DropAction) {\n DropAction[DropAction[\"Add\"] = 0] = \"Add\";\n DropAction[DropAction[\"InsertTop\"] = 1] = \"InsertTop\";\n DropAction[DropAction[\"InsertBottom\"] = 2] = \"InsertBottom\";\n DropAction[DropAction[\"InsertMiddle\"] = 3] = \"InsertMiddle\";\n DropAction[DropAction[\"Invalid\"] = 4] = \"Invalid\";\n})(DropAction || (DropAction = {}));\n\n/**\n * Describes where the dragged item is dropped relative to the drop target item.\n */\nvar DropPosition;\n(function (DropPosition) {\n DropPosition[DropPosition[\"Over\"] = 0] = \"Over\";\n DropPosition[DropPosition[\"Before\"] = 1] = \"Before\";\n DropPosition[DropPosition[\"After\"] = 2] = \"After\";\n})(DropPosition || (DropPosition = {}));\n\n/**\n * @hidden\n */\nvar ScrollDirection;\n(function (ScrollDirection) {\n ScrollDirection[ScrollDirection[\"Up\"] = -1] = \"Up\";\n ScrollDirection[ScrollDirection[\"Down\"] = 1] = \"Down\";\n})(ScrollDirection || (ScrollDirection = {}));\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 TreeView [`nodeDrop`]({% slug api_treeview_treeviewcomponent %}#toc-nodedrop) event.\n */\nclass TreeItemDropEvent extends PreventableEvent {\n /**\n * @hidden\n */\n constructor(initializer, originalEvent) {\n super();\n /**\n * @hidden\n */\n this.isValid = true;\n Object.assign(this, initializer);\n this.originalEvent = originalEvent;\n }\n /**\n * Specifies if the drop action should be marked as valid.\n * If set to `false`, the [`addItem`]({% slug api_treeview_treeviewcomponent %}#toc-additem) and\n * [`removeItem`]({% slug api_treeview_treeviewcomponent %}#toc-removeitem) events will not be fired and the drag clue\n * will be animated back to the source item to indicate the action is marked as invalid.\n */\n setValid(isValid) {\n this.isValid = isValid;\n }\n}\n\n/**\n * Arguments for the TreeView [`nodeDragStart`]({% slug api_treeview_treeviewcomponent %}#toc-nodedragstart) event.\n */\nclass TreeItemDragStartEvent extends PreventableEvent {\n /**\n * @hidden\n */\n constructor(initializer) {\n super();\n Object.assign(this, initializer);\n }\n}\n\n/**\n * Arguments for the TreeView [`nodeDrag`]({% slug api_treeview_treeviewcomponent %}#toc-nodedrag) and\n * [`nodeDragEnd`]({% slug api_treeview_treeviewcomponent %}#toc-nodedragend) events.\n */\nclass TreeItemDragEvent {\n}\n\nconst ɵ0$3 = () => {\n if (!(isDocumentAvailable() && isPresent(document.body))) {\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 * Checks if the browser supports relative stacking context.\n * https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context\n */\nconst hasRelativeStackingContext = memoize(ɵ0$3);\n/**\n * Stores the result of the passed function's first invokation and returns it instead of invoking it again afterwards.\n */\nfunction memoize(fn) {\n let result;\n let called = false;\n return (...args) => {\n if (called) {\n return result;\n }\n result = fn(...args);\n called = true;\n return result;\n };\n}\n/**\n * @hidden\n *\n * Gets the offset of the parent element if the latter has the `transform` CSS prop applied.\n * Transformed parents create new stacking context and the `fixed` children must be position based on the transformed parent.\n * https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context\n *\n * If no parent container is `transform`-ed the function will return `{ left: 0, top: 0 }`;\n */\nconst getContainerOffset = (element) => {\n if (!(element && hasRelativeStackingContext())) {\n return { left: 0, top: 0 };\n }\n let offsetParent = element.parentElement;\n while (offsetParent) {\n if (window.getComputedStyle(offsetParent).transform !== 'none') {\n break;\n }\n offsetParent = offsetParent.parentElement;\n }\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 */\nconst getDropAction = (dropPosition, dropTarget) => {\n if (!(isPresent(dropPosition) && isPresent(dropTarget))) {\n return DropAction.Invalid;\n }\n switch (dropPosition) {\n case DropPosition.Over:\n return DropAction.Add;\n case DropPosition.Before:\n return isPresent(closestNode(dropTarget).previousElementSibling) ? DropAction.InsertMiddle : DropAction.InsertTop;\n case DropPosition.After:\n return isPresent(closestNode(dropTarget).nextElementSibling) ? DropAction.InsertMiddle : DropAction.InsertBottom;\n default:\n return DropAction.Invalid;\n }\n};\n/**\n * @hidden\n */\nconst getDropPosition = (draggedItem, target, clientY, targetTreeView, containerOffset) => {\n if (!(isPresent(draggedItem) && isPresent(target) && isPresent(targetTreeView) && isPresent(containerOffset))) {\n return;\n }\n // the .k-treeview-mid element starts just after the checkbox/expand arrow and stretches till the end of the treeview on the right\n const item = closestWithMatch(target, '.k-treeview-mid');\n if (!isPresent(item)) {\n return;\n }\n // the content element (.k-treeview-leaf:not(.k-treeview-load-more-button)) holds just the treeview item text\n const content = getContentElement(item);\n const targetChildOfDraggedItem = hasParent(item, closestNode(draggedItem));\n if (!isPresent(content) || (content === draggedItem) || targetChildOfDraggedItem) {\n return;\n }\n const itemViewPortCoords = content.getBoundingClientRect();\n /*\n if the user is hovering a treeview item, split the item height into four parts:\n - dropping into the top quarter should insert the dragged item before the drop target\n - dropping into the bottom quarter should insert the dragged item after the drop target\n - dropping into the second or third quarter should add the item as child node of the drop target\n\n if the user is NOT hovering a treeview item (he's dragging somewhere on the right), split the item height to just two parts:\n - dropping should insert before or after\n */\n const itemDivisionHeight = itemViewPortCoords.height / (isContent(target) ? 4 : 2);\n // clear any possible container offset created by parent elements with `transform` css property set\n const pointerPosition = clientY - containerOffset.top;\n const itemTop = itemViewPortCoords.top - containerOffset.top;\n if (pointerPosition < itemTop + itemDivisionHeight) {\n return DropPosition.Before;\n }\n if (pointerPosition >= itemTop + itemViewPortCoords.height - itemDivisionHeight) {\n return DropPosition.After;\n }\n return DropPosition.Over;\n};\n/**\n * @hidden\n */\nconst treeItemFromEventTarget = (treeView, dropTarget) => {\n if (!(isPresent(treeView) && isPresent(dropTarget))) {\n return null;\n }\n const node = closestNode(dropTarget);\n const index = nodeId(node);\n const lookup = treeView.itemLookup(index);\n if (!(isPresent(lookup) && isPresent(lookup.item.dataItem))) {\n return null;\n }\n return lookup;\n};\n/**\n * @hidden\n *\n * Emits `collapse` on the specified TreeView node if the latter is left empty after its last child node was dragged out.\n */\nconst collapseEmptyParent = (parent, parentNodes, treeview) => {\n if (isPresent(parent) && parentNodes.length === 0 && treeview.isExpanded(parent.item.dataItem, parent.item.index)) {\n treeview.collapseNode(parent.item.dataItem, parent.item.index);\n }\n};\n/**\n * @hidden\n *\n * Expands the node if it's dropped into and it's not yet expanded.\n */\nconst expandDropTarget = (dropTarget, treeView) => {\n if (!treeView.isExpanded(dropTarget.item.dataItem, dropTarget.item.index)) {\n treeView.expandNode(dropTarget.item.dataItem, dropTarget.item.index);\n }\n};\n/**\n * @hidden\n *\n * Extracts the event target from the viewport coords. Required for touch devices\n * where the `event.target` of a `pointermove` event is always the initially dragged item.\n */\nconst getDropTarget = (event) => {\n if (!(isDocumentAvailable() && isPresent(document.elementFromPoint))) {\n return event.target;\n }\n return document.elementFromPoint(event.clientX, event.clientY);\n};\n/**\n * @hidden\n *\n * Checks if the original index is before the new one and corrects the new one by decrementing the index for the level, where the original item stood.\n */\nconst updateMovedItemIndex = (newIndex, originalIndex) => {\n const movedItemNewIndexParts = newIndex.split('_');\n const originalItemIndexParts = originalIndex.split('_');\n // if the original item was moved from a deeper level, there's no need for index correction\n // e.g. 4_0_1 is moved to 5_0 => removing 4_0_1 will not cause 5_0 to be moved\n if (movedItemNewIndexParts.length < originalItemIndexParts.length) {\n return newIndex;\n }\n // check if the parent item paths are the same - index correction is not required when the original item path differs from the path of the moved item - they belong to different hierarchies\n // e.g. 4_1 is moved to 5_1 - the parent item paths are differen (4 compared to 5) => removing 4_1 will not cause 5_1 to be moved\n // e.g 4_1 is moved to 4_3 - the parent paths are the same (both 4) => removing 4_1 will cause 4_3 to be moved\n const originalItemParentPathLength = originalItemIndexParts.length - 1;\n const originalItemParentPath = originalItemIndexParts.slice(0, originalItemParentPathLength).join('_');\n const movedItemParentPath = movedItemNewIndexParts.slice(0, originalItemParentPathLength).join('_');\n // check if the the index of the level where the original item is taken from is greater than the one of the moved item\n // e.g. 4_5 is moved to 4_1 (comapre 5 and 1) => removing 4_5 will not cause 4_1 to be moved\n // e.g. 4_1 is moved to 4_5 (comapre 1 and 5) => removing 4_1 will cause 4_5 to be moved\n const originalItemIndexLevel = originalItemIndexParts.length - 1;\n const originalItemLevelIndex = Number(originalItemIndexParts[originalItemIndexLevel]);\n const movedItemLevelIndex = Number(movedItemNewIndexParts[originalItemIndexLevel]);\n if ((originalItemParentPath === movedItemParentPath) && (movedItemLevelIndex > originalItemLevelIndex)) {\n // if the removed item causes the dropped item to be moved a position up - decrement the index at that level\n movedItemNewIndexParts[originalItemIndexLevel] = String(movedItemLevelIndex - 1);\n return movedItemNewIndexParts.join('_');\n }\n return newIndex;\n};\n/**\n * @hidden\n */\nconst SCROLLBAR_REG_EXP = new RegExp('(auto|scroll)');\n/**\n * @hidden\n *\n * Retrives the first scrollable element starting the search from the provided one, traversing to the top of the DOM tree.\n */\nconst getScrollableContainer = (node) => {\n while (isPresent(node) && node.nodeName !== 'HTML') {\n const hasOverflow = node.scrollHeight > node.clientHeight;\n const hasScrollbar = SCROLLBAR_REG_EXP.test(getComputedStyle(node).overflowY);\n if (hasOverflow && hasScrollbar) {\n return node;\n }\n node = node.parentNode;\n }\n return node;\n};\n/**\n * @hidden\n *\n * Checks if the top of the scrollable element is reached.\n * Floors the scrollTop value.\n */\nconst isTopReached = (element) => Math.floor(element.scrollTop) <= 0;\n/**\n * @hidden\n *\n * Checks if the bottom of the scrollable element is reached.\n * Ceils the scrollTop value.\n */\nconst isBottomReached = (element) => Math.ceil(element.scrollTop) >= element.scrollHeight - element.clientHeight;\n/**\n * @hidden\n *\n * Scrolls the element in the given direction by the provided step.\n *\n * If the targeted scroll incrementation doesn't yield any result due to device pixel ratio issues (https://github.com/dimitar-pechev/RenderingIndependentScrollOffsets#readme),\n * increments the step with 1px and again attempts to change the scrollTop of the element, until the content is actually scrolled.\n *\n * Cuts the operation short after 20 unsuccessful attempts to prevent infinite loops in possible corner-case scenarios.\n */\nconst scrollElementBy = (element, step, direction) => {\n if (!(isPresent(element) && isDocumentAvailable())) {\n return;\n }\n const initialScrollTop = element.scrollTop;\n let currentStep = step;\n let iterations = 0;\n while (initialScrollTop === element.scrollTop &&\n !(direction === ScrollDirection.Up && isTopReached(element)) &&\n !(direction === ScrollDirection.Down && isBottomReached(element)) &&\n iterations < 20 // as the bulgarian saying goes - to ties our underpants\n ) {\n element.scrollTop += (currentStep * direction);\n currentStep += 1;\n iterations += 1;\n }\n};\n\n/**\n * @hidden\n */\nconst copyPageSize = (treeview, source, target) => {\n if (!isPresent(treeview.loadMoreService)) {\n return;\n }\n const sourceGroupSize = treeview.getNodePageSize(source);\n treeview.setNodePageSize(target, sourceGroupSize);\n};\n/**\n * @hidden\n */\nconst incrementPageSize = (treeview, dataItem) => {\n if (!isPresent(treeview.loadMoreService)) {\n return;\n }\n const currentPageSize = treeview.getNodePageSize(dataItem);\n treeview.setNodePageSize(dataItem, currentPageSize + 1);\n};\n/**\n * @hidden\n */\nconst decrementPageSize = (treeview, dataItem) => {\n if (!isPresent(treeview.loadMoreService)) {\n return;\n }\n const currentPageSize = treeview.getNodePageSize(dataItem);\n treeview.setNodePageSize(dataItem, currentPageSize - 1);\n};\n\n/**\n * @hidden\n */\nclass HierarchyEditingService {\n constructor(hierarchyBinding) {\n this.hierarchyBinding = hierarchyBinding;\n }\n add({ sourceItem, destinationItem, dropPosition, sourceTree, destinationTree }) {\n // shallow clone the item as not to mistake it for its 'older' version when the remove handler kicks in to splice the item at its old position\n const clonedSourceDataItem = Object.assign({}, getDataItem(sourceItem));\n if (dropPosition === DropPosition.Over) {\n // expand the item that was dropped into\n expandDropTarget(destinationItem, destinationTree);\n const destinationChildren = this.childrenFor(getDataItem(destinationItem));\n // add the moved node just before the load more button if load more is enabled\n const targetIndex = isPresent(destinationTree.loadMoreService) ?\n Math.min(destinationTree.loadMoreService.getGroupSize(getDataItem(destinationItem)), destinationChildren.length) : // the page size might be greater than the actual children array length\n destinationChildren.length;\n destinationChildren.splice(targetIndex, 0, clonedSourceDataItem);\n setter(this.hierarchyBinding.childrenField)(getDataItem(destinationItem), destinationChildren);\n this.movedItemNewIndex = buildTreeIndex(destinationItem.item.index, targetIndex);\n }\n else {\n const destinationParentNodes = this.getParentNodes(destinationItem, destinationTree);\n const shiftIndex = dropPosition === DropPosition.After ? 1 : 0;\n const targetIndex = destinationParentNodes.indexOf(getDataItem(destinationItem)) + shiftIndex;\n destinationParentNodes.splice(targetIndex, 0, clonedSourceDataItem);\n const parentIndex = destinationItem.parent ? destinationItem.parent.item.index : null;\n this.movedItemNewIndex = buildTreeIndex(parentIndex, targetIndex);\n }\n // increment the parent page size => an item is moved into it\n const updatedParent = dropPosition === DropPosition.Over ? getDataItem(destinationItem) : getDataItem(destinationItem.parent);\n incrementPageSize(destinationTree, updatedParent);\n // the page sizes are stored by data-item reference => copy the old item ref page size to the new item reference\n copyPageSize(destinationTree, getDataItem(sourceItem), clonedSourceDataItem);\n // the source tree nodes are reloaded on `removeItem` - reload the destination tree nodes if the soruce and the destination tree are different\n if (sourceTree !== destinationTree && !destinationTree.loadOnDemand) {\n destinationTree.preloadChildNodes();\n }\n // if the source and destination trees are the same, focusing the moved item here will not have the desired effect\n // as the `remove` handler has not yet kicked-in to remove the item from its old position\n if (sourceTree !== destinationTree) {\n // ensure the focus target is rendered and registered\n destinationTree.changeDetectorRef.detectChanges();\n destinationTree.focus(this.movedItemNewIndex);\n }\n }\n remove({ sourceItem, sourceTree, destinationTree }) {\n const sourceParentNodes = this.getParentNodes(sourceItem, sourceTree);\n const sourceItemIndex = sourceParentNodes.indexOf(getDataItem(sourceItem));\n sourceParentNodes.splice(sourceItemIndex, 1);\n // emit collapse for the parent node if its last child node was spliced\n collapseEmptyParent(sourceItem.parent, sourceParentNodes, sourceTree);\n // decrement source item parent page size => an item has been removed from it\n decrementPageSize(sourceTree, getDataItem(sourceItem.parent));\n // reload the treeview nodes\n if (!sourceTree.loadOnDemand) {\n sourceTree.preloadChildNodes();\n }\n // if the source and destination trees are different we want to focus only the moved item in the destination tree\n if (sourceTree === destinationTree) {\n // ensure the focus target is rendered and registered\n destinationTree.changeDetectorRef.detectChanges();\n // after the source item is removed from its original position, the candidate index might have to be corrected\n const index = updateMovedItemIndex(this.movedItemNewIndex, sourceItem.item.index);\n destinationTree.focus(index);\n }\n }\n getParentNodes(node, treeView) {\n return isPresent(node.parent) ?\n this.childrenFor(getDataItem(node.parent)) :\n treeView.nodes;\n }\n childrenFor(dataItem) {\n return getter(this.hierarchyBinding.childrenField)(dataItem) || [];\n }\n}\n\n/**\n * @hidden\n */\nlet DragClueComponent = class DragClueComponent {\n constructor(cdr) {\n this.cdr = cdr;\n this.hostClasses = true;\n this.posistionStyle = 'fixed';\n }\n get statusIconClass() {\n switch (this.action) {\n case DropAction.Add: return 'k-i-plus';\n case DropAction.InsertTop: return 'k-i-insert-up';\n case DropAction.InsertBottom: return 'k-i-insert-down';\n case DropAction.InsertMiddle: return 'k-i-insert-middle';\n case DropAction.Invalid:\n default: return 'k-i-cancel';\n }\n }\n // exposed as a public method that can be called from outside as the component uses `OnPush` strategy\n detectChanges() {\n this.cdr.detectChanges();\n }\n};\nDragClueComponent.ɵfac = function DragClueComponent_Factory(t) { return new (t || DragClueComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nDragClueComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DragClueComponent, selectors: [[\"kendo-treeview-drag-clue\"]], hostVars: 6, hostBindings: function DragClueComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"position\", ctx.posistionStyle);\n ɵngcc0.ɵɵclassProp(\"k-header\", ctx.hostClasses)(\"k-drag-clue\", ctx.hostClasses);\n } }, decls: 2, vars: 2, consts: [[4, \"ngIf\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]], template: function DragClueComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DragClueComponent_ng_container_0_Template, 4, 4, \"ng-container\", 0);\n ɵngcc0.ɵɵtemplate(1, DragClueComponent_1_Template, 1, 7, null, 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.template);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.template);\n } }, directives: [ɵngcc2.NgIf, ɵngcc2.NgTemplateOutlet], encapsulation: 2, changeDetection: 0 });\n__decorate([\n HostBinding('class.k-header'),\n HostBinding('class.k-drag-clue'),\n __metadata(\"design:type\", Boolean)\n], DragClueComponent.prototype, \"hostClasses\", void 0);\n__decorate([\n HostBinding('style.position'),\n __metadata(\"design:type\", String)\n], DragClueComponent.prototype, \"posistionStyle\", void 0);\nDragClueComponent = __decorate([ __metadata(\"design:paramtypes\", [ChangeDetectorRef])\n], DragClueComponent);\n\n/**\n * @hidden\n */\nclass DragAndDropAssetService {\n get componentRef() {\n if (!isPresent(this._componentRef)) {\n throw new Error('The `initalize` method must be called before calling other service methods.');\n }\n return this._componentRef;\n }\n set componentRef(componentRef) {\n this._componentRef = componentRef;\n }\n get element() {\n return this.componentRef.location.nativeElement;\n }\n ngOnDestroy() {\n if (!isPresent(this._componentRef)) {\n return;\n }\n this.element.parentElement.removeChild(this.element);\n this.componentRef.destroy();\n this.componentRef = null;\n }\n show() {\n this.element.style.display = '';\n }\n hide() {\n this.element.style.display = 'none';\n }\n move(left, top, offset = 0) {\n this.element.style.left = `${left + offset}px`;\n this.element.style.top = `${top + offset}px`;\n }\n}\nDragAndDropAssetService.ɵfac = function DragAndDropAssetService_Factory(t) { return new (t || DragAndDropAssetService)(); };\nDragAndDropAssetService.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DragAndDropAssetService });\n\n/**\n * @hidden\n */\nconst CLUE_OFFSET = 10;\n/**\n * @hidden\n */\nconst RETURN_ANIMATION_DURATION = 200;\n/**\n * @hidden\n */\nlet DragClueService = class DragClueService extends DragAndDropAssetService {\n constructor(componentFactoryResolver) {\n super();\n this.componentFactoryResolver = componentFactoryResolver;\n }\n initialize(container, template) {\n if (isPresent(this._componentRef)) {\n this.ngOnDestroy();\n }\n const clueComponentFactory = this.componentFactoryResolver.resolveComponentFactory(DragClueComponent);\n this.componentRef = container.createComponent(clueComponentFactory);\n this.hide();\n this.componentRef.instance.template = template;\n this.componentRef.changeDetectorRef.detectChanges();\n }\n ngOnDestroy() {\n this.cancelReturnAnimation();\n this.cancelScroll();\n super.ngOnDestroy();\n }\n move(left, top) {\n super.move(left, top, CLUE_OFFSET);\n }\n animateDragClueToElementPosition(target) {\n if (!(isPresent(target) && isPresent(this.element.animate))) {\n this.hide();\n return;\n }\n const targetElementViewPortCoords = target.getBoundingClientRect();\n const clueElementViewPortCoords = this.element.getBoundingClientRect();\n this.returnAnimation = this.element.animate([\n { transform: 'translate(0, 0)' },\n { transform: `translate(${targetElementViewPortCoords.left - clueElementViewPortCoords.left}px, ${targetElementViewPortCoords.top - clueElementViewPortCoords.top}px)` }\n ], RETURN_ANIMATION_DURATION);\n this.returnAnimation.onfinish = () => this.hide();\n }\n cancelReturnAnimation() {\n if (!isPresent(this.returnAnimation)) {\n return;\n }\n this.returnAnimation.cancel();\n this.returnAnimation = null;\n }\n updateDragClueData(action, sourceItem, destinationItem) {\n const dragClue = this.componentRef.instance;\n if (action === dragClue.action && dataItemsEqual(sourceItem, dragClue.sourceItem) && dataItemsEqual(destinationItem, dragClue.destinationItem)) {\n return;\n }\n dragClue.action = action;\n dragClue.sourceItem = sourceItem;\n dragClue.destinationItem = destinationItem;\n dragClue.detectChanges();\n }\n updateText(text) {\n if (text === this.componentRef.instance.text) {\n return;\n }\n this.componentRef.instance.text = text;\n this.componentRef.instance.detectChanges();\n }\n /**\n * Triggers the first scrollable parent to scroll upwards or downwards.\n * Uses setInterval, so should be called outside the angular zone.\n */\n scrollIntoView({ step, interval }) {\n this.cancelScroll();\n const scrollableContainer = getScrollableContainer(this.element);\n if (!isPresent(scrollableContainer)) {\n return;\n }\n const containerRect = scrollableContainer.getBoundingClientRect();\n const clueRect = this.element.getBoundingClientRect();\n // if the beginning of the scrollable container is above the current viewport, fall-back to 0\n const firstVisibleClientTopPart = Math.max(containerRect.top, 0);\n // start scrolling up when the first visible item is dragged over\n const topLimit = firstVisibleClientTopPart + clueRect.height;\n // if the end of the scrollable container is beneath the current viewport, fall-back to its client height\n // add the distance from the start of the viewport to the beginning of the container to ensure scrolling bottom begins when the actual end of the container is reached\n const bottomLimit = firstVisibleClientTopPart + Math.min(containerRect.bottom, scrollableContainer.clientHeight);\n if (clueRect.top < topLimit) {\n this.scrollInterval = setInterval(() => scrollElementBy(scrollableContainer, step, ScrollDirection.Up), interval);\n }\n else if (clueRect.bottom > bottomLimit) {\n this.scrollInterval = setInterval(() => scrollElementBy(scrollableContainer, step, ScrollDirection.Down), interval);\n }\n }\n /**\n * Cancels out the on-going scroll animation, if present.\n */\n cancelScroll() {\n if (isPresent(this.scrollInterval)) {\n clearInterval(this.scrollInterval);\n this.scrollInterval = null;\n }\n }\n};\nDragClueService.ɵfac = function DragClueService_Factory(t) { return new (t || DragClueService)(ɵngcc0.ɵɵinject(ɵngcc0.ComponentFactoryResolver)); };\nDragClueService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: DragClueService, factory: function (t) { return DragClueService.ɵfac(t); } });\nDragClueService = __decorate([ __metadata(\"design:paramtypes\", [ComponentFactoryResolver])\n], DragClueService);\n\n/**\n * @hidden\n */\nlet DropHintComponent = class DropHintComponent {\n constructor(changeDetectorRef) {\n this.changeDetectorRef = changeDetectorRef;\n this.hostClass = true;\n this.position = 'fixed';\n this.pointerEvents = 'none';\n }\n // exposed as a public method that can be called from outside as the component uses `OnPush` strategy\n detectChanges() {\n this.changeDetectorRef.detectChanges();\n }\n};\nDropHintComponent.ɵfac = function DropHintComponent_Factory(t) { return new (t || DropHintComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nDropHintComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DropHintComponent, selectors: [[\"kendo-treeview-drop-hint\"]], hostVars: 6, hostBindings: function DropHintComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"position\", ctx.position)(\"pointer-events\", ctx.pointerEvents);\n ɵngcc0.ɵɵclassProp(\"k-drop-hint-container\", ctx.hostClass);\n } }, decls: 2, vars: 2, consts: [[\"class\", \"k-drop-hint k-drop-hint-h\", 4, \"ngIf\"], [4, \"ngIf\"], [1, \"k-drop-hint\", \"k-drop-hint-h\"], [1, \"k-drop-hint-start\"], [1, \"k-drop-hint-line\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]], template: function DropHintComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DropHintComponent_div_0_Template, 3, 0, \"div\", 0);\n ɵngcc0.ɵɵtemplate(1, DropHintComponent_1_Template, 1, 6, null, 1);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.template);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.template);\n } }, directives: [ɵngcc2.NgIf, ɵngcc2.NgTemplateOutlet], encapsulation: 2, changeDetection: 0 });\n__decorate([\n HostBinding('class.k-drop-hint-container'),\n __metadata(\"design:type\", Boolean)\n], DropHintComponent.prototype, \"hostClass\", void 0);\n__decorate([\n HostBinding('style.position'),\n __metadata(\"design:type\", String)\n], DropHintComponent.prototype, \"position\", void 0);\n__decorate([\n HostBinding('style.pointer-events'),\n __metadata(\"design:type\", String)\n], DropHintComponent.prototype, \"pointerEvents\", void 0);\nDropHintComponent = __decorate([ __metadata(\"design:paramtypes\", [ChangeDetectorRef])\n], DropHintComponent);\n\n/**\n * @hidden\n */\nlet DropHintService = class DropHintService extends DragAndDropAssetService {\n constructor(componentFactoryResolver) {\n super();\n this.componentFactoryResolver = componentFactoryResolver;\n }\n initialize(container, template) {\n if (isPresent(this._componentRef)) {\n this.ngOnDestroy();\n }\n const hintComponentFactory = this.componentFactoryResolver.resolveComponentFactory(DropHintComponent);\n this.componentRef = container.createComponent(hintComponentFactory);\n this.hide();\n this.componentRef.instance.template = template;\n this.componentRef.changeDetectorRef.detectChanges();\n }\n updateDropHintData(action, sourceItem, destinationItem) {\n const dropHint = this.componentRef.instance;\n if (action === dropHint.action && dataItemsEqual(sourceItem, dropHint.sourceItem) && dataItemsEqual(destinationItem, dropHint.destinationItem)) {\n return;\n }\n dropHint.action = action;\n dropHint.sourceItem = sourceItem;\n dropHint.destinationItem = destinationItem;\n dropHint.detectChanges();\n }\n};\nDropHintService.ɵfac = function DropHintService_Factory(t) { return new (t || DropHintService)(ɵngcc0.ɵɵinject(ɵngcc0.ComponentFactoryResolver)); };\nDropHintService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: DropHintService, factory: function (t) { return DropHintService.ɵfac(t); } });\nDropHintService = __decorate([ __metadata(\"design:paramtypes\", [ComponentFactoryResolver])\n], DropHintService);\n\n/**\n * Represents the template for the TreeView drag clue when an item is dragged. To define the clue template,\n * nest an `` tag with the `kendoTreeViewDragClueTemplate` directive inside a `` tag\n * ([see example]({% slug draganddrop_treeview %}#toc-templates)).\n *\n *\n * The text, attempted drop action, source item and destination item are available as context variables in the template:\n *\n *\n * - `let-text=\"text\"` (`string`)\n * - `let-action=\"action\"` ([`DropAction`]({% slug api_treeview_dropaction %}))\n * - `let-sourceItem=\"sourceItem\"` ([`TreeItemLookup`]({% slug api_treeview_treeitemlookup %}))\n * - `let-destinationItem=\"destinationItem\"` ([`TreeItemLookup`]({% slug api_treeview_treeitemlookup %}))\n */\nlet DragClueTemplateDirective = class DragClueTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nDragClueTemplateDirective.ɵfac = function DragClueTemplateDirective_Factory(t) { return new (t || DragClueTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nDragClueTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DragClueTemplateDirective, selectors: [[\"\", \"kendoTreeViewDragClueTemplate\", \"\"]] });\nDragClueTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], DragClueTemplateDirective);\n\n/**\n * Represents the template for the TreeView drop hint when an item is dragged. To define the hint template,\n * nest an `` tag with the `kendoTreeViewDropHintTemplate` directive inside a `` tag\n * ([see example]({% slug draganddrop_treeview %}#toc-templates)).\n *\n * The attempted drop action, source item and destination item are available as context variables in the template:\n *\n * - `let-action=\"action\"` ([`DropAction`]({% slug api_treeview_dropaction %}))\n * - `let-sourceItem=\"sourceItem\"` ([`TreeItemLookup`]({% slug api_treeview_treeitemlookup %}))\n * - `let-destinationItem=\"destinationItem\"` ([`TreeItemLookup`]({% slug api_treeview_treeitemlookup %}))\n */\nlet DropHintTemplateDirective = class DropHintTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n};\nDropHintTemplateDirective.ɵfac = function DropHintTemplateDirective_Factory(t) { return new (t || DropHintTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef, 8)); };\nDropHintTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DropHintTemplateDirective, selectors: [[\"\", \"kendoTreeViewDropHintTemplate\", \"\"]] });\nDropHintTemplateDirective = __decorate([ __param(0, Optional()),\n __metadata(\"design:paramtypes\", [TemplateRef])\n], DropHintTemplateDirective);\n\nconst DEFAULT_SCROLL_SETTINGS = {\n enabled: true,\n step: 1,\n interval: 1\n};\n/**\n * A directive which enables the dragging and dropping items inside the current TreeView or between multiple linked TreeView component instances\n * ([see example]({% slug draganddrop_treeview %})).\n *\n * Triggers the [`nodeDragStart`]({% slug api_treeview_treeviewcomponent %}#toc-nodedragstart),\n * [`nodeDrag`]({% slug api_treeview_treeviewcomponent %}#toc-nodedrag),\n * [`nodeDrop`]({% slug api_treeview_treeviewcomponent %}#toc-nodedrop),\n * [`nodeDragEnd`]({% slug api_treeview_treeviewcomponent %}#toc-nodedragend),\n * [`addItem`]({% slug api_treeview_treeviewcomponent %}#toc-additem) and\n * [`removeItem`]({% slug api_treeview_treeviewcomponent %}#toc-removeitem)\n * events when the corresponding actions occur on the respective TreeView instance.\n */\nlet DragAndDropDirective = class DragAndDropDirective {\n constructor(element, zone, treeview, dragClueService, dropHintService) {\n this.element = element;\n this.zone = zone;\n this.treeview = treeview;\n this.dragClueService = dragClueService;\n this.dropHintService = dropHintService;\n /**\n * Specifies whether the `removeItem` event will be fired after an item is dropped when the `ctrl` key is pressed.\n * If enabled, the `removeItem` event will not be fired on the source TreeView\n * ([see example]({% slug draganddrop_treeview %}#toc-multiple-treeviews)).\n *\n * @default false\n */\n this.allowCopy = false;\n /**\n * Specifes the TreeViewComponent instances into which dragged items from the current TreeViewComponent can be dropped\n * ([see example]({% slug draganddrop_treeview %}#toc-multiple-treeviews)).\n */\n this.dropZoneTreeViews = [];\n /**\n * Specifies the distance in pixels from the initial item pointerdown event, before the dragging is initiated.\n * The `nodeDragStart` and all consequent TreeView drag events will not be fired until the actual dragging begins.\n *\n * @default 5\n */\n this.startDragAfter = 5;\n /**\n * Controlls the auto-scrolling behavior during drag-and-drop ([see example]({% slug draganddrop_treeview %}#toc-auto-scrolling)).\n * Enbaled by default. To turn the auto-scrolling off, set this prop to `false`.\n *\n * By default, the scrolling will be performed by 1 pixel at every 1 millisecond, when the dragged item reaches the top or the bottom of the scrollable container.\n * The `step` and `interval` can be overridden by providing a `DragAndDropScrollSettings` object to this prop.\n *\n * @default true\n */\n this.autoScroll = true;\n /**\n * @hidden\n */\n this.userSelectStyle = 'none';\n /**\n * Describes the offset of the parent element if the latter has the `transform` CSS prop applied.\n * Transformed parents create new stacking context and the fixed children must be position based on the transformed parent.\n * https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context\n */\n this.containerOffset = { top: 0, left: 0 };\n this.treeview.touchActions = false;\n }\n get scrollSettings() {\n const userProvidedSettings = typeof this.autoScroll === 'boolean' ?\n { enabled: this.autoScroll } :\n this.autoScroll;\n return Object.assign({}, DEFAULT_SCROLL_SETTINGS, userProvidedSettings);\n }\n ngAfterContentInit() {\n this.initalizeDraggable();\n this.dragClueService.initialize(this.treeview.assetsContainer, this.dragClueTemplate && this.dragClueTemplate.templateRef);\n this.dropHintService.initialize(this.treeview.assetsContainer, this.dropHintTemplate && this.dropHintTemplate.templateRef);\n }\n ngOnDestroy() {\n this.draggable.destroy();\n }\n /**\n * @hidden\n */\n handlePress({ originalEvent }) {\n if (!isContent(originalEvent.target)) {\n return;\n }\n // store the drag target on press, show it only when it's actually dragged\n this.draggedItem = closestWithMatch(originalEvent.target, '.k-treeview-leaf');\n // record the current pointer down coords - copared to the `startDragAfter` value to calculate whether to initiate dragging\n this.pendingDragStartEvent = originalEvent;\n }\n /**\n * @hidden\n */\n handleDrag({ originalEvent, clientX, clientY }) {\n if (this.shouldInitiateDragStart({ clientX, clientY })) {\n this.initiateDragStart();\n }\n if (!isPresent(this.draggedItem) || isPresent(this.pendingDragStartEvent)) {\n return;\n }\n const dropTarget = getDropTarget(originalEvent);\n if (hasObservers(this.treeview.nodeDrag)) {\n this.zone.run(() => this.notifyDrag(originalEvent, dropTarget));\n }\n const targetTreeView = this.getTargetTreeView(dropTarget);\n const dropPosition = getDropPosition(this.draggedItem, dropTarget, clientY, targetTreeView, this.containerOffset);\n const dropHintAnchor = closestWithMatch(dropTarget, '.k-treeview-mid');\n const dropAction = getDropAction(dropPosition, dropTarget);\n const sourceItem = treeItemFromEventTarget(this.treeview, this.draggedItem);\n const destinationItem = treeItemFromEventTarget(targetTreeView, dropTarget);\n this.updateDropHintState(dropPosition, dropHintAnchor, dropAction, sourceItem, destinationItem);\n this.updateDragClueState(dropAction, clientX, clientY, sourceItem, destinationItem);\n if (this.scrollSettings.enabled) {\n this.dragClueService.scrollIntoView(this.scrollSettings);\n }\n }\n /**\n * @hidden\n */\n handleRelease({ originalEvent, clientY }) {\n if (this.scrollSettings.enabled) {\n this.dragClueService.cancelScroll();\n }\n if (!isPresent(this.draggedItem) || isPresent(this.pendingDragStartEvent)) {\n this.pendingDragStartEvent = null;\n this.draggedItem = null;\n return;\n }\n const dropTarget = getDropTarget(originalEvent);\n const sourceTree = this.treeview;\n const destinationTree = this.getTargetTreeView(dropTarget);\n const dropPosition = getDropPosition(this.draggedItem, dropTarget, clientY, this.getTargetTreeView(dropTarget), this.containerOffset);\n const sourceItem = treeItemFromEventTarget(sourceTree, this.draggedItem);\n const destinationItem = treeItemFromEventTarget(destinationTree, dropTarget);\n if (isPresent(destinationItem) && isPresent(dropPosition)) {\n this.zone.run(() => this.notifyDrop({ sourceItem, destinationItem, dropPosition, sourceTree, destinationTree }, originalEvent));\n }\n else {\n this.dragClueService.animateDragClueToElementPosition(this.draggedItem);\n }\n if (hasObservers(this.treeview.nodeDragEnd)) {\n this.zone.run(() => this.notifyDragEnd({ sourceItem, destinationItem, originalEvent }));\n }\n this.dropHintService.hide();\n this.draggedItem = null;\n }\n updateDropHintState(dropPosition, dropHintAnchor, dropAction, sourceItem, destinationItem) {\n if (!isPresent(dropHintAnchor) || dropPosition === DropPosition.Over || !isPresent(dropPosition)) {\n this.dropHintService.hide();\n return;\n }\n const anchorViewPortCoords = dropHintAnchor.getBoundingClientRect();\n const insertBefore = dropPosition === DropPosition.Before;\n const top = insertBefore ? anchorViewPortCoords.top : (anchorViewPortCoords.top + anchorViewPortCoords.height);\n this.dropHintService.updateDropHintData(dropAction, sourceItem, destinationItem);\n // clear any possible container offset created by parent elements with `transform` css property set\n this.dropHintService.move(anchorViewPortCoords.left - this.containerOffset.left, top - this.containerOffset.top);\n this.dropHintService.show();\n }\n updateDragClueState(dropAction, clientX, clientY, sourceItem, destinationItem) {\n // clear any possible container offset created by parent elements with `transform` css property set\n this.dragClueService.move(clientX - this.containerOffset.left, clientY - this.containerOffset.top);\n this.dragClueService.updateDragClueData(dropAction, sourceItem, destinationItem);\n this.dragClueService.show();\n }\n initalizeDraggable() {\n this.draggable = new Draggable({\n press: this.handlePress.bind(this),\n drag: this.handleDrag.bind(this),\n release: this.handleRelease.bind(this)\n });\n this.zone.runOutsideAngular(() => this.draggable.bindTo(this.element.nativeElement));\n }\n notifyDragStart(originalEvent, dropTarget) {\n const sourceItem = treeItemFromEventTarget(this.treeview, dropTarget);\n const event = new TreeItemDragStartEvent({ sourceItem, originalEvent });\n this.treeview.nodeDragStart.emit(event);\n return event;\n }\n notifyDrag(originalEvent, dropTarget) {\n const dragEvent = {\n sourceItem: treeItemFromEventTarget(this.treeview, this.draggedItem),\n destinationItem: treeItemFromEventTarget(this.getTargetTreeView(dropTarget), dropTarget),\n originalEvent\n };\n this.treeview.nodeDrag.emit(dragEvent);\n }\n notifyDrop(args, originalEvent) {\n const event = new TreeItemDropEvent(args, originalEvent);\n args.destinationTree.nodeDrop.emit(event);\n // disable the animations on drop and restore them afterwards (if they were initially turned on)\n this.disableAnimationsForNextTick(args.destinationTree);\n if (args.sourceTree !== args.destinationTree) {\n this.disableAnimationsForNextTick(args.sourceTree);\n }\n if (!event.isDefaultPrevented() && event.isValid) {\n this.dragClueService.hide();\n // order matters in a flat data binding scenario (first add, then remove)\n args.destinationTree.addItem.emit(args);\n if (!(originalEvent.ctrlKey && this.allowCopy)) {\n args.sourceTree.removeItem.emit(args);\n }\n }\n else if (event.isDefaultPrevented()) {\n // directly hide the clue if the default is prevented\n this.dragClueService.hide();\n }\n else if (!event.isValid) {\n // animate the clue back to the source item position if marked as invalid\n this.dragClueService.animateDragClueToElementPosition(this.draggedItem);\n }\n }\n notifyDragEnd(dragEndEvent) {\n this.treeview.nodeDragEnd.emit(dragEndEvent);\n }\n getTargetTreeView(dropTarget) {\n const treeViewTagName = this.treeview.element.nativeElement.tagName;\n const targetTreeView = closestWithMatch(dropTarget, treeViewTagName);\n return [this.treeview, ...this.dropZoneTreeViews].find(treeView => isPresent(treeView) && treeView.element.nativeElement === targetTreeView);\n }\n disableAnimationsForNextTick(treeView) {\n // the treeView.animate getter returns `true` when the animations are turned off\n // confusing, but seems on purpose (the `animate` prop sets the value of the @.disabled host-bound attribute)\n if (treeView.animate) {\n return;\n }\n treeView.animate = false;\n this.zone.runOutsideAngular(() => setTimeout(() => treeView.animate = true));\n }\n shouldInitiateDragStart(currentPointerCoords) {\n if (!isPresent(this.pendingDragStartEvent)) {\n return false;\n }\n const distanceFromPointerDown = Math.sqrt(Math.pow((this.pendingDragStartEvent.clientX - currentPointerCoords.clientX), 2) +\n Math.pow((this.pendingDragStartEvent.clientY - currentPointerCoords.clientY), 2));\n return distanceFromPointerDown >= this.startDragAfter;\n }\n initiateDragStart() {\n if (hasObservers(this.treeview.nodeDragStart)) {\n const dragStartEvent = this.zone.run(() => this.notifyDragStart(this.pendingDragStartEvent, getDropTarget(this.pendingDragStartEvent)));\n if (dragStartEvent.isDefaultPrevented()) {\n this.pendingDragStartEvent = null;\n this.draggedItem = null;\n return;\n }\n }\n this.dragClueService.cancelReturnAnimation();\n this.dragClueService.updateText(this.draggedItem.innerText);\n this.containerOffset = getContainerOffset(this.draggedItem);\n this.pendingDragStartEvent = null;\n }\n};\nDragAndDropDirective.ɵfac = function DragAndDropDirective_Factory(t) { return new (t || DragAndDropDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(TreeViewComponent), ɵngcc0.ɵɵdirectiveInject(DragClueService), ɵngcc0.ɵɵdirectiveInject(DropHintService)); };\nDragAndDropDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DragAndDropDirective, selectors: [[\"\", \"kendoTreeViewDragAndDrop\", \"\"]], contentQueries: function DragAndDropDirective_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, DragClueTemplateDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, DropHintTemplateDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.dragClueTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.dropHintTemplate = _t.first);\n } }, hostVars: 8, hostBindings: function DragAndDropDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"user-select\", ctx.userSelectStyle)(\"-ms-user-select\", ctx.userSelectStyle)(\"-moz-user-select\", ctx.userSelectStyle)(\"-webkit-user-select\", ctx.userSelectStyle);\n } }, inputs: { allowCopy: \"allowCopy\", dropZoneTreeViews: \"dropZoneTreeViews\", startDragAfter: \"startDragAfter\", autoScroll: \"autoScroll\" }, features: [ɵngcc0.ɵɵProvidersFeature([\n DragClueService,\n DropHintService\n ])] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], DragAndDropDirective.prototype, \"allowCopy\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], DragAndDropDirective.prototype, \"dropZoneTreeViews\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], DragAndDropDirective.prototype, \"startDragAfter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], DragAndDropDirective.prototype, \"autoScroll\", void 0);\n__decorate([\n ContentChild(DragClueTemplateDirective, { static: false }),\n __metadata(\"design:type\", DragClueTemplateDirective)\n], DragAndDropDirective.prototype, \"dragClueTemplate\", void 0);\n__decorate([\n ContentChild(DropHintTemplateDirective, { static: false }),\n __metadata(\"design:type\", DropHintTemplateDirective)\n], DragAndDropDirective.prototype, \"dropHintTemplate\", void 0);\n__decorate([\n HostBinding('style.user-select'),\n HostBinding('style.-ms-user-select'),\n HostBinding('style.-moz-user-select'),\n HostBinding('style.-webkit-user-select'),\n __metadata(\"design:type\", String)\n], DragAndDropDirective.prototype, \"userSelectStyle\", void 0);\nDragAndDropDirective = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n NgZone,\n TreeViewComponent,\n DragClueService,\n DropHintService])\n], DragAndDropDirective);\n\n/**\n * @hidden\n */\nconst DEFAULT_FILTER_SETTINGS = {\n operator: 'contains',\n ignoreCase: true,\n mode: \"lenient\"\n};\n\n/**\n * @hidden\n */\nclass FilteringBase {\n constructor(component) {\n this.component = component;\n this.visibleNodes = new Set();\n this._filterSettings = DEFAULT_FILTER_SETTINGS;\n }\n /**\n * The settings which are applied when performing a filter on the component's data.\n */\n set filterSettings(settings) {\n this._filterSettings = Object.assign({}, DEFAULT_FILTER_SETTINGS, settings);\n }\n get filterSettings() {\n return this._filterSettings;\n }\n /**\n * Applies a filter and changes the visibility of the component's nodes accordingly.\n */\n set filter(term) {\n this.handleFilterChange(term);\n }\n /**\n * @hidden\n */\n handleFilterChange(term) {\n if (!this.filterData) {\n return;\n }\n this.resetNodesVisibility(this.filterData);\n if (term) {\n filterTree(this.filterData, term, this.filterSettings, this.component.textField);\n }\n this.updateVisibleNodes(this.filterData);\n if (isPresent(this.component.filterStateChange)) {\n this.component.filterStateChange.emit({\n nodes: this.filterData,\n matchCount: this.visibleNodes.size,\n term,\n filterSettings: this.filterSettings\n });\n }\n }\n updateVisibleNodes(items) {\n items.forEach((wrapper) => {\n if (wrapper.visible) {\n this.visibleNodes.add(wrapper.dataItem);\n }\n if (wrapper.children) {\n this.updateVisibleNodes(wrapper.children);\n }\n });\n }\n resetNodesVisibility(items) {\n this.visibleNodes.clear();\n items.forEach((wrapper) => {\n wrapper.visible = true;\n if (wrapper.children) {\n this.resetNodesVisibility(wrapper.children);\n }\n });\n }\n}\nFilteringBase.ɵfac = function FilteringBase_Factory(t) { ɵngcc0.ɵɵinvalidFactory(); };\nFilteringBase.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: FilteringBase, inputs: { filterSettings: \"filterSettings\", filter: \"filter\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], FilteringBase.prototype, \"filterSettings\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], FilteringBase.prototype, \"filter\", null);\n\nconst indexBuilder = new IndexBuilderService();\nconst mapToWrappers = (currentLevelNodes, childrenField, parent = null, parentIndex = '') => {\n if (!isArrayWithAtLeastOneItem(currentLevelNodes)) {\n return [];\n }\n return currentLevelNodes.map((node, idx) => {\n const index = indexBuilder.nodeIndex(idx.toString(), parentIndex);\n const wrapper = {\n dataItem: node,\n index,\n parent,\n visible: true\n };\n wrapper.children = mapToWrappers(getter(childrenField)(node), childrenField, wrapper, index);\n return wrapper;\n });\n};\n/**\n * A directive which encapsulates the retrieval of child nodes.\n */\nlet HierarchyBindingDirective = class HierarchyBindingDirective extends FilteringBase {\n constructor(component, dragAndDropDirective) {\n super(component);\n this.component = component;\n this.dragAndDropDirective = dragAndDropDirective;\n /**\n * @hidden\n */\n this.loadOnDemand = true;\n this.originalData = [];\n const shouldFilter = !isPresent(this.dragAndDropDirective);\n this.component.isVisible = shouldFilter ? (node) => this.visibleNodes.has(node) : isVisible;\n }\n /**\n * The field name which holds the data items of the child component.\n */\n set childrenField(value) {\n if (!value) {\n throw new Error(\"'childrenField' cannot be empty\");\n }\n this._childrenField = value;\n }\n /**\n * The nodes which will be displayed by the TreeView.\n */\n set nodes(values) {\n this.originalData = values || [];\n this.filterData = mapToWrappers(values, this.childrenField) || [];\n this.updateVisibleNodes(this.filterData);\n }\n /**\n * @hidden\n * A callback which determines whether a TreeView node should be rendered as hidden.\n */\n set isVisible(fn) {\n this.component.isVisible = fn;\n }\n /**\n * The field name which holds the data items of the child component.\n */\n get childrenField() {\n return this._childrenField;\n }\n ngOnInit() {\n if (isPresent(this.childrenField)) {\n this.component.children = item => of(getter(this.childrenField)(item));\n this.component.hasChildren = item => {\n const children = getter(this.childrenField)(item);\n return Boolean(children && children.length);\n };\n this.component.editService = new HierarchyEditingService(this);\n this.component.filterChange.subscribe(this.handleFilterChange.bind(this));\n if (this.component.filter) {\n this.handleFilterChange(this.component.filter);\n }\n if (!this.loadOnDemand && isPresent(this.component.preloadChildNodes)) {\n this.component.preloadChildNodes();\n }\n }\n }\n ngOnChanges(changes) {\n if (isChanged('childrenField', changes, false)) {\n this.nodes = this.originalData;\n }\n // should react to changes.loadOnDemand as well - should preload the data or clear the already cached items\n if (anyChanged(['nodes', 'loadOnDemand'], changes) && !this.loadOnDemand && isPresent(this.component.preloadChildNodes)) {\n this.component.preloadChildNodes();\n }\n }\n};\nHierarchyBindingDirective.ɵfac = function HierarchyBindingDirective_Factory(t) { return new (t || HierarchyBindingDirective)(ɵngcc0.ɵɵdirectiveInject(DataBoundComponent), ɵngcc0.ɵɵdirectiveInject(DragAndDropDirective, 9)); };\nHierarchyBindingDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: HierarchyBindingDirective, selectors: [[\"\", \"kendoTreeViewHierarchyBinding\", \"\"]], inputs: { loadOnDemand: \"loadOnDemand\", childrenField: \"childrenField\", nodes: \"nodes\", isVisible: \"isVisible\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature, ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], HierarchyBindingDirective.prototype, \"childrenField\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], HierarchyBindingDirective.prototype, \"nodes\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Function])\n], HierarchyBindingDirective.prototype, \"isVisible\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], HierarchyBindingDirective.prototype, \"loadOnDemand\", void 0);\nHierarchyBindingDirective = __decorate([ __param(1, Optional()), __param(1, Host()),\n __metadata(\"design:paramtypes\", [DataBoundComponent,\n DragAndDropDirective])\n], HierarchyBindingDirective);\n\n/**\n * @hidden\n */\nlet LoadingIndicatorDirective = class LoadingIndicatorDirective {\n constructor(expandService, loadingService, cd) {\n this.expandService = expandService;\n this.loadingService = loadingService;\n this.cd = cd;\n this._loading = false;\n }\n get loading() {\n return this._loading;\n }\n set loading(value) {\n this._loading = value;\n this.cd.markForCheck();\n }\n ngOnInit() {\n const loadingNotifications = this.loadingService\n .changes\n .pipe(filter(index => index === this.index));\n this.subscription = this.expandService\n .changes\n .pipe(filter(({ index }) => index === this.index), tap(({ expand }) => {\n if (!expand && this.loading) {\n this.loading = false;\n }\n }), filter(({ expand }) => expand), switchMap(x => of(x).pipe(delay(100), takeUntil(loadingNotifications))))\n .subscribe(() => this.loading = true);\n this.subscription.add(loadingNotifications.subscribe(() => this.loading = false));\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n};\nLoadingIndicatorDirective.ɵfac = function LoadingIndicatorDirective_Factory(t) { return new (t || LoadingIndicatorDirective)(ɵngcc0.ɵɵdirectiveInject(ExpandStateService), ɵngcc0.ɵɵdirectiveInject(LoadingNotificationService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nLoadingIndicatorDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LoadingIndicatorDirective, selectors: [[\"\", \"kendoTreeViewLoading\", \"\"]], hostVars: 2, hostBindings: function LoadingIndicatorDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-i-loading\", ctx.loading);\n } }, inputs: { index: [\"kendoTreeViewLoading\", \"index\"] } });\n__decorate([\n HostBinding(\"class.k-i-loading\"),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], LoadingIndicatorDirective.prototype, \"loading\", null);\n__decorate([\n Input(\"kendoTreeViewLoading\"),\n __metadata(\"design:type\", String)\n], LoadingIndicatorDirective.prototype, \"index\", void 0);\nLoadingIndicatorDirective = __decorate([ __metadata(\"design:paramtypes\", [ExpandStateService,\n LoadingNotificationService,\n ChangeDetectorRef])\n], LoadingIndicatorDirective);\n\n/**\n * @hidden\n * Performs the right-to-left function composition. Functions must have a unary.\n */\nconst compose = (...args) => (data) => args.reduceRight((acc, curr) => curr(acc), data);\n\n/**\n * @hidden\n */\nclass FlatEditingService {\n constructor(flatBinding) {\n this.flatBinding = flatBinding;\n }\n add({ sourceItem, destinationItem, dropPosition, sourceTree, destinationTree }) {\n // shallow clone the item as not to mistake it for its 'older' version when the remove handler kicks in to splice the item at its old position\n const clonedSourceDataItem = Object.assign({}, getDataItem(sourceItem));\n if (dropPosition === DropPosition.Over) {\n // expand the item that was dropped into\n expandDropTarget(destinationItem, destinationTree);\n const destinationItemId = getter(this.flatBinding.idField)(getDataItem(destinationItem));\n setter(this.flatBinding.parentIdField)(clonedSourceDataItem, destinationItemId);\n const lastChildNodeIndex = this.getLastVisibleChildNodeIndex(destinationTree, this.flatBinding.originalData, getDataItem(destinationItem));\n // insert after the last visible child\n const targetIndex = lastChildNodeIndex + 1;\n this.flatBinding.originalData.splice(targetIndex, 0, clonedSourceDataItem);\n // rebind the treeview data before searching for the focus target index\n this.rebindData();\n const focusTarget = this.fetchChildNodes(getDataItem(destinationItem), destinationTree).indexOf(clonedSourceDataItem);\n this.movedItemNewIndex = buildTreeIndex(destinationItem.item.index, focusTarget);\n }\n else {\n const shiftIndex = dropPosition === DropPosition.After ? 1 : 0;\n const targetIndex = this.flatBinding.originalData.indexOf(getDataItem(destinationItem)) + shiftIndex;\n this.flatBinding.originalData.splice(targetIndex, 0, clonedSourceDataItem);\n const destinationItemParentId = getter(this.flatBinding.parentIdField)(getDataItem(destinationItem));\n setter(this.flatBinding.parentIdField)(clonedSourceDataItem, destinationItemParentId);\n // rebind the treeview data before searching for the focus target index\n this.rebindData();\n const parentIndex = destinationItem.parent ?\n destinationItem.parent.item.index :\n null;\n const parentContainer = destinationItem.parent ?\n this.fetchChildNodes(getDataItem(destinationItem.parent), destinationTree) :\n destinationTree.nodes;\n const focusTarget = parentContainer.indexOf(clonedSourceDataItem);\n this.movedItemNewIndex = buildTreeIndex(parentIndex, focusTarget);\n }\n if (sourceTree !== destinationTree) {\n this.addChildNodes(clonedSourceDataItem, sourceTree);\n }\n // increment the parent page size => an item is moved into it\n const updatedParent = dropPosition === DropPosition.Over ? getDataItem(destinationItem) : getDataItem(destinationItem.parent);\n incrementPageSize(destinationTree, updatedParent);\n // the page sizes are stored by data-item reference => copy the old item ref page size to the new item reference\n copyPageSize(destinationTree, getDataItem(sourceItem), clonedSourceDataItem);\n // the source tree nodes are reloaded on `removeItem` - reload the destination tree nodes if the soruce and the destination tree are different\n if (sourceTree !== destinationTree && !destinationTree.loadOnDemand) {\n destinationTree.preloadChildNodes();\n }\n // if the source and destination trees are the same, focusing the moved item here will not have the desired effect\n // as the `remove` handler has not yet kicked-in to remove the item from its old position\n if (sourceTree !== destinationTree) {\n // ensure the focus target is rendered and registered\n destinationTree.changeDetectorRef.detectChanges();\n destinationTree.focus(this.movedItemNewIndex);\n }\n }\n remove({ sourceItem, sourceTree, destinationTree }) {\n const sourceDataItem = getDataItem(sourceItem);\n const sourceItemIndex = this.flatBinding.originalData.indexOf(sourceDataItem);\n this.flatBinding.originalData.splice(sourceItemIndex, 1);\n if (sourceTree !== destinationTree) {\n this.removeChildNodes(sourceDataItem, sourceTree);\n }\n this.rebindData();\n // emit collapse for the parent node if its last child node was spliced\n const parentChildren = sourceItem.parent ? sourceItem.parent.children : [];\n collapseEmptyParent(sourceItem.parent, parentChildren, sourceTree);\n // decrement source item parent page size => an item has been removed from it\n decrementPageSize(sourceTree, getDataItem(sourceItem.parent));\n // reload the treeview nodes\n if (!sourceTree.loadOnDemand) {\n sourceTree.preloadChildNodes();\n }\n // if the source and destination trees are different we want to focus only the moved item in the destination tree\n if (sourceTree === destinationTree) {\n // ensure the focus target is rendered and registered\n destinationTree.changeDetectorRef.detectChanges();\n // after the source item is removed from its original position, the candidate index might have to be corrected\n const index = updateMovedItemIndex(this.movedItemNewIndex, sourceItem.item.index);\n destinationTree.focus(index);\n }\n }\n addChildNodes(dataItem, source) {\n const itemChildren = this.fetchAllDescendantNodes(dataItem, source);\n this.flatBinding.originalData.push(...itemChildren);\n }\n removeChildNodes(dataItem, source) {\n const sourceChildren = this.fetchAllDescendantNodes(dataItem, source);\n sourceChildren.forEach(item => {\n const index = this.flatBinding.originalData.indexOf(item);\n this.flatBinding.originalData.splice(index, 1);\n });\n }\n fetchAllDescendantNodes(node, treeview) {\n let nodes = this.fetchChildNodes(node, treeview);\n nodes.forEach(node => nodes = nodes.concat(this.fetchAllDescendantNodes(node, treeview) || []));\n return nodes;\n }\n fetchChildNodes(node, treeview) {\n if (!node) {\n return [];\n }\n let nodes = [];\n treeview\n .children(node)\n .pipe(take(1))\n .subscribe(children => nodes = nodes.concat(children || []));\n return nodes;\n }\n getLastVisibleChildNodeIndex(treeview, data, node) {\n if (!isPresent(treeview.loadMoreService) || !treeview.hasChildren(node)) {\n return data.length;\n }\n const visibleNodesCount = treeview.loadMoreService.getGroupSize(node);\n const visibleChildren = this.fetchChildNodes(node, treeview).slice(0, visibleNodesCount);\n const lastNode = visibleChildren[visibleChildren.length - 1];\n const lastNodeIndex = data.indexOf(lastNode);\n return lastNodeIndex;\n }\n rebindData() {\n this.flatBinding.nodes = this.flatBinding.originalData;\n }\n}\n\nconst findChildren = (prop, nodes, value) => nodes.filter((x) => prop(x) === value);\nconst indexBuilder$1 = new IndexBuilderService();\nconst mapToTree = (currentLevelNodes, allNodes, parentIdField, idField, parent = null, parentIndex = '') => {\n if (!isArrayWithAtLeastOneItem(currentLevelNodes)) {\n return [];\n }\n return currentLevelNodes.map((node, idx) => {\n const index = indexBuilder$1.nodeIndex(idx.toString(), parentIndex);\n const wrapper = {\n dataItem: node,\n index,\n parent,\n visible: true\n };\n wrapper.children = mapToTree(findChildren(getter(parentIdField), allNodes || [], getter(idField)(node)), allNodes, parentIdField, idField, wrapper, index);\n return wrapper;\n });\n};\n/**\n * A directive which encapsulates the retrieval of the child nodes.\n */\nlet FlatDataBindingDirective = class FlatDataBindingDirective extends FilteringBase {\n constructor(component) {\n super(component);\n this.component = component;\n /**\n * @hidden\n */\n this.loadOnDemand = true;\n /**\n * @hidden\n */\n this.originalData = [];\n this.component.isVisible = (node) => this.visibleNodes.has(node);\n }\n /**\n * The nodes which will be displayed by the TreeView.\n */\n set nodes(values) {\n this.originalData = values || [];\n if (!isNullOrEmptyString(this.parentIdField)) {\n const prop = getter(this.parentIdField);\n this.component.nodes = this.originalData.filter(compose(isBlank, prop));\n this.filterData = mapToTree(this.component.nodes, this.originalData, this.parentIdField, this.idField);\n this.updateVisibleNodes(this.filterData);\n }\n else {\n this.component.nodes = this.originalData.slice(0);\n }\n }\n /**\n * @hidden\n * A callback which determines whether a TreeView node should be rendered as hidden.\n */\n set isVisible(fn) {\n this.component.isVisible = fn;\n }\n /**\n * @hidden\n */\n ngOnInit() {\n if (isPresent(this.parentIdField) && isPresent(this.idField)) {\n const fetchChildren = (node) => findChildren(getter(this.parentIdField), this.originalData || [], getter(this.idField)(node));\n this.component.hasChildren = (node) => fetchChildren(node).length > 0;\n this.component.children = (node) => of(fetchChildren(node));\n this.component.editService = new FlatEditingService(this);\n this.component.filterChange.subscribe(this.handleFilterChange.bind(this));\n if (this.component.filter) {\n this.handleFilterChange(this.component.filter);\n }\n if (!this.loadOnDemand && isPresent(this.component.preloadChildNodes)) {\n this.component.preloadChildNodes();\n }\n }\n }\n /**\n * @hidden\n */\n ngOnChanges(changes) {\n if (isChanged('parentIdField', changes, false)) {\n this.nodes = this.originalData;\n }\n // should react to changes.loadOnDemand as well - should preload the data or clear the already cached items\n if (anyChanged(['nodes', 'loadOnDemand'], changes) && !this.loadOnDemand && isPresent(this.component.preloadChildNodes)) {\n this.component.preloadChildNodes();\n }\n }\n};\nFlatDataBindingDirective.ɵfac = function FlatDataBindingDirective_Factory(t) { return new (t || FlatDataBindingDirective)(ɵngcc0.ɵɵdirectiveInject(DataBoundComponent)); };\nFlatDataBindingDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: FlatDataBindingDirective, selectors: [[\"\", \"kendoTreeViewFlatDataBinding\", \"\"]], inputs: { loadOnDemand: \"loadOnDemand\", nodes: \"nodes\", isVisible: \"isVisible\", parentIdField: \"parentIdField\", idField: \"idField\" }, features: [ɵngcc0.ɵɵInheritDefinitionFeature, ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n], FlatDataBindingDirective.prototype, \"nodes\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FlatDataBindingDirective.prototype, \"parentIdField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], FlatDataBindingDirective.prototype, \"idField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], FlatDataBindingDirective.prototype, \"loadOnDemand\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Function])\n], FlatDataBindingDirective.prototype, \"isVisible\", null);\nFlatDataBindingDirective = __decorate([ __metadata(\"design:paramtypes\", [DataBoundComponent])\n], FlatDataBindingDirective);\n\nconst buildItem = (index, dataItem) => ({ dataItem, index });\nlet id = 0;\nconst TREE_ITEM_ROLE = 'treeitem';\nconst BUTTON_ROLE = 'button';\n/**\n * @hidden\n *\n * A directive which manages the expanded state of the TreeView.\n */\nlet TreeViewItemDirective = class TreeViewItemDirective {\n constructor(element, expandService, navigationService, selectionService, lookupService, renderer, ib) {\n this.element = element;\n this.expandService = expandService;\n this.navigationService = navigationService;\n this.selectionService = selectionService;\n this.lookupService = lookupService;\n this.renderer = renderer;\n this.ib = ib;\n this.role = TREE_ITEM_ROLE;\n this.loadOnDemand = true;\n this.isDisabled = false;\n this.isVisible = true;\n this.ariaChecked = 'false';\n this.id = id++;\n this.isInitialized = false;\n this.subscriptions = [];\n this.subscribe();\n }\n set isChecked(checked) {\n if (checked === 'checked') {\n this.ariaChecked = 'true';\n }\n else if (checked === 'indeterminate') {\n this.ariaChecked = 'mixed';\n }\n else {\n this.ariaChecked = 'false';\n }\n }\n get isExpanded() {\n return this._isExpanded || false;\n }\n set isExpanded(isExpanded) {\n this._isExpanded = isExpanded;\n }\n get isSelected() {\n return this._isSelected || false;\n }\n set isSelected(isSelected) {\n this._isSelected = isSelected;\n }\n get isButton() {\n return this.role === BUTTON_ROLE;\n }\n get treeItem() {\n return buildItem(this.index, this.dataItem);\n }\n get parentTreeItem() {\n return this.parentDataItem ? buildItem(this.parentIndex, this.parentDataItem) : null;\n }\n ngOnInit() {\n if (this.loadOnDemand && !this.isButton) {\n this.lookupService.registerItem(this.treeItem, this.parentTreeItem);\n }\n this.registerNavigationItem();\n this.isInitialized = true;\n this.setAttribute('role', this.role);\n this.setAriaAttributes();\n this.setDisabledClass();\n this.updateTabIndex();\n }\n ngOnChanges(changes) {\n const { index, isDisabled } = changes;\n if (anyChanged(['index', 'checkable', 'isChecked', 'expandable', 'isExpanded', 'selectable', 'isSelected'], changes)) {\n this.setAriaAttributes();\n }\n if (isDisabled) {\n this.setDisabledClass();\n }\n if (this.loadOnDemand && !this.isButton) {\n this.moveLookupItem(changes);\n }\n this.moveNavigationItem(index);\n if (anyChanged(['isDisabled', 'isVisible'], changes)) {\n this.updateNodeAvailability();\n }\n }\n ngOnDestroy() {\n this.navigationService.unregisterItem(this.id, this.index);\n if (this.loadOnDemand && !this.isButton) {\n this.lookupService.unregisterItem(this.index, this.dataItem);\n }\n this.subscriptions = this.subscriptions.reduce((list, callback) => (callback.unsubscribe(), list), []);\n }\n subscribe() {\n this.subscriptions = [\n this.navigationService.moves\n .subscribe((navState) => {\n this.updateTabIndex();\n this.focusItem(navState.shouldScroll);\n }),\n this.navigationService.expands\n .pipe(filter(({ index }) => index === this.index && !this.isDisabled))\n .subscribe(({ expand }) => this.expand(expand))\n ];\n }\n registerNavigationItem() {\n this.navigationService.registerItem(this.id, this.index, this.isDisabled, this.isButton, this.isVisible);\n this.activateItem();\n }\n activateItem() {\n if (this.isDisabled) {\n return;\n }\n const navigationService = this.navigationService;\n const selectionService = this.selectionService;\n const index = this.index;\n selectionService.setFirstSelected(index, this.isSelected);\n if (!navigationService.isActive(index) && selectionService.isFirstSelected(index)) {\n navigationService.activateIndex(index);\n }\n }\n expand(shouldExpand) {\n this.expandService[shouldExpand ? 'expand' : 'collapse'](this.index, this.dataItem);\n }\n isFocusable() {\n return !this.isDisabled && this.navigationService.isFocusable(this.index);\n }\n focusItem(scrollIntoView = false) {\n if (this.isInitialized && this.navigationService.isActive(this.index)) {\n this.element.nativeElement.focus({ preventScroll: !scrollIntoView });\n }\n }\n moveLookupItem(changes = {}) {\n const { dataItem, index, parentDataItem, parentIndex } = changes;\n if ((index && index.firstChange) || //skip first change\n (!dataItem && !index && !parentDataItem && !parentIndex)) {\n return;\n }\n const oldIndex = (index || {}).previousValue || this.index;\n this.lookupService.replaceItem(oldIndex, this.treeItem, this.parentTreeItem);\n }\n moveNavigationItem(indexChange = {}) {\n const { currentValue, firstChange, previousValue } = indexChange;\n if (!firstChange && isPresent(currentValue) && isPresent(previousValue)) {\n this.navigationService.unregisterItem(this.id, previousValue);\n this.navigationService.registerItem(this.id, currentValue, this.isDisabled, this.isButton);\n }\n }\n updateNodeAvailability() {\n const service = this.navigationService;\n if (this.isDisabled || !this.isVisible) {\n service.activateClosest(this.index); // activate before unregister the item\n }\n else {\n service.activateFocusable();\n }\n service.unregisterItem(this.id, this.index);\n service.registerItem(this.id, this.index, this.isDisabled, this.isButton, this.isVisible);\n }\n setAriaAttributes() {\n this.setAttribute('aria-level', this.ib.level(this.index).toString());\n // don't render attributes when the component configuration doesn't allow the specified state\n this.setAttribute('aria-expanded', this.expandable ? this.isExpanded.toString() : null);\n this.setAttribute('aria-selected', this.selectable ? this.isSelected.toString() : null);\n this.setAttribute('aria-checked', this.checkable ? this.ariaChecked : null);\n }\n setDisabledClass() {\n this.setClass('k-disabled', this.isDisabled);\n }\n setClass(className, toggle) {\n const action = toggle ? 'addClass' : 'removeClass';\n this.renderer[action](this.element.nativeElement, className);\n }\n updateTabIndex() {\n this.setAttribute('tabIndex', this.isFocusable() ? '0' : '-1');\n }\n setAttribute(attr, value) {\n if (!isPresent(value)) {\n this.renderer.removeAttribute(this.element.nativeElement, attr);\n return;\n }\n this.renderer.setAttribute(this.element.nativeElement, attr, value);\n }\n};\nTreeViewItemDirective.ɵfac = function TreeViewItemDirective_Factory(t) { return new (t || TreeViewItemDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ExpandStateService), ɵngcc0.ɵɵdirectiveInject(NavigationService), ɵngcc0.ɵɵdirectiveInject(SelectionService), ɵngcc0.ɵɵdirectiveInject(TreeViewLookupService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(IndexBuilderService)); };\nTreeViewItemDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: TreeViewItemDirective, selectors: [[\"\", \"kendoTreeViewItem\", \"\"]], inputs: { role: \"role\", loadOnDemand: \"loadOnDemand\", isDisabled: \"isDisabled\", isVisible: \"isVisible\", isChecked: \"isChecked\", isExpanded: \"isExpanded\", isSelected: \"isSelected\", dataItem: \"dataItem\", index: \"index\", parentDataItem: \"parentDataItem\", parentIndex: \"parentIndex\", checkable: \"checkable\", selectable: \"selectable\", expandable: \"expandable\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], TreeViewItemDirective.prototype, \"dataItem\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TreeViewItemDirective.prototype, \"index\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], TreeViewItemDirective.prototype, \"parentDataItem\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TreeViewItemDirective.prototype, \"parentIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TreeViewItemDirective.prototype, \"role\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TreeViewItemDirective.prototype, \"loadOnDemand\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TreeViewItemDirective.prototype, \"checkable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TreeViewItemDirective.prototype, \"selectable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TreeViewItemDirective.prototype, \"expandable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n], TreeViewItemDirective.prototype, \"isChecked\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TreeViewItemDirective.prototype, \"isDisabled\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TreeViewItemDirective.prototype, \"isVisible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], TreeViewItemDirective.prototype, \"isExpanded\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n], TreeViewItemDirective.prototype, \"isSelected\", null);\nTreeViewItemDirective = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n ExpandStateService,\n NavigationService,\n SelectionService,\n TreeViewLookupService,\n Renderer2,\n IndexBuilderService])\n], TreeViewItemDirective);\n\n/**\n * @hidden\n *\n * A directive which manages the expanded state of the TreeView.\n */\nlet TreeViewItemContentDirective = class TreeViewItemContentDirective {\n constructor(element, navigationService, selectionService, renderer) {\n this.element = element;\n this.navigationService = navigationService;\n this.selectionService = selectionService;\n this.renderer = renderer;\n this.initialSelection = false;\n this.isSelected = isSelected;\n this.subscriptions = new Subscription();\n this.subscriptions.add(this.navigationService.moves\n .subscribe(this.updateFocusClass.bind(this)));\n this.subscriptions.add(this.navigationService.selects\n .pipe(filter((index) => index === this.index))\n .subscribe((index) => this.selectionService.select(index, this.dataItem)));\n this.subscriptions.add(this.selectionService.changes\n .subscribe(() => {\n this.updateSelectionClass(this.isSelected(this.dataItem, this.index));\n }));\n }\n ngOnChanges(changes) {\n if (changes.initialSelection) {\n this.updateSelectionClass(this.initialSelection);\n }\n if (changes.index) {\n this.updateFocusClass();\n }\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n updateFocusClass() {\n this.render(this.navigationService.isActive(this.index), 'k-focus');\n }\n updateSelectionClass(selected) {\n this.render(selected, 'k-selected');\n }\n render(addClass, className) {\n const action = addClass ? 'addClass' : 'removeClass';\n this.renderer[action](this.element.nativeElement, className);\n }\n};\nTreeViewItemContentDirective.ɵfac = function TreeViewItemContentDirective_Factory(t) { return new (t || TreeViewItemContentDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(NavigationService), ɵngcc0.ɵɵdirectiveInject(SelectionService), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nTreeViewItemContentDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: TreeViewItemContentDirective, selectors: [[\"\", \"kendoTreeViewItemContent\", \"\"]], inputs: { initialSelection: \"initialSelection\", isSelected: \"isSelected\", dataItem: \"dataItem\", index: \"index\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], TreeViewItemContentDirective.prototype, \"dataItem\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], TreeViewItemContentDirective.prototype, \"index\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Boolean)\n], TreeViewItemContentDirective.prototype, \"initialSelection\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Function)\n], TreeViewItemContentDirective.prototype, \"isSelected\", void 0);\nTreeViewItemContentDirective = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n NavigationService,\n SelectionService,\n Renderer2])\n], TreeViewItemContentDirective);\n\n/**\n * @hidden\n *\n * Represents the CheckBox component of the Kendo UI TreeView for Angular.\n *\n */\nlet CheckBoxComponent = class CheckBoxComponent {\n constructor(element, renderer, changeDetector) {\n this.element = element;\n this.renderer = renderer;\n this.changeDetector = changeDetector;\n /**\n * Specifies the [`id`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id) of the component.\n */\n this.id = `_${guid()}`;\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 size of the component.\n */\n this.size = 'medium';\n /**\n * Fires when the user changes the check state of the component.\n */\n this.checkStateChange = new EventEmitter();\n this.checkState = 'none';\n }\n //XXX: implement ComponentValueAccessor\n //XXX: focus/blur methods\n get classWrapper() { return true; }\n get indeterminate() {\n return this.checkState === 'indeterminate';\n }\n get checked() {\n return this.checkState === 'checked';\n }\n get checkBoxClasses() {\n return `k-checkbox ${this.size ? getSizeClass('checkbox', this.size) : ''} k-rounded-md`;\n }\n ngOnInit() {\n this.renderer.removeAttribute(this.element.nativeElement, \"tabindex\");\n }\n ngDoCheck() {\n this.checkState = this.isChecked(this.node, this.index);\n }\n handleChange(e) {\n const state = e.target.checked ? 'checked' : 'none';\n // update the View State so that Angular updates the input if the isChecked value is the same\n this.checkState = state;\n this.changeDetector.detectChanges();\n this.checkStateChange.emit(state);\n }\n};\nCheckBoxComponent.ɵfac = function CheckBoxComponent_Factory(t) { return new (t || CheckBoxComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nCheckBoxComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: CheckBoxComponent, selectors: [[\"kendo-checkbox\"]], hostVars: 2, hostBindings: function CheckBoxComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"k-checkbox-wrapper\", ctx.classWrapper);\n } }, inputs: { id: \"id\", tabindex: \"tabindex\", size: \"size\", isChecked: \"isChecked\", node: \"node\", index: \"index\", labelText: \"labelText\" }, outputs: { checkStateChange: \"checkStateChange\" }, decls: 3, vars: 8, consts: [[\"type\", \"checkbox\", 3, \"id\", \"checked\", \"indeterminate\", \"tabindex\", \"change\"], [\"tabindex\", \"-1\", 1, \"k-checkbox-label\", 3, \"for\"]], template: function CheckBoxComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"input\", 0);\n ɵngcc0.ɵɵlistener(\"change\", function CheckBoxComponent_Template_input_change_0_listener($event) { return ctx.handleChange($event); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(1, \"label\", 1);\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵclassMap(ctx.checkBoxClasses);\n ɵngcc0.ɵɵproperty(\"id\", ctx.id)(\"checked\", ctx.checked)(\"indeterminate\", ctx.indeterminate)(\"tabindex\", ctx.tabindex);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"for\", ctx.id);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx.labelText);\n } }, encapsulation: 2 });\n__decorate([\n HostBinding('class.k-checkbox-wrapper'),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [])\n], CheckBoxComponent.prototype, \"classWrapper\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CheckBoxComponent.prototype, \"id\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CheckBoxComponent.prototype, \"isChecked\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], CheckBoxComponent.prototype, \"node\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CheckBoxComponent.prototype, \"index\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CheckBoxComponent.prototype, \"labelText\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], CheckBoxComponent.prototype, \"tabindex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], CheckBoxComponent.prototype, \"size\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], CheckBoxComponent.prototype, \"checkStateChange\", void 0);\nCheckBoxComponent = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n Renderer2,\n ChangeDetectorRef])\n], CheckBoxComponent);\n\nconst COMPONENT_DIRECTIVES = [\n CheckBoxComponent\n];\n/**\n * @hidden\n *\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }}) definition for the CheckBox component.\n */\nlet CheckBoxModule = class CheckBoxModule {\n};\nCheckBoxModule.ɵfac = function CheckBoxModule_Factory(t) { return new (t || CheckBoxModule)(); };\nCheckBoxModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: CheckBoxModule });\nCheckBoxModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\n/**\n * A directive which enables the update of the initially provided data array during drag-and-drop.\n *\n * Either use this directive in combination with one of the data binding directives ([`kendoTreeViewHierarchyBinding`]({% slug api_treeview_hierarchybindingdirective %})\n * or [`kendoTreeViewFlatDataBinding`]({% slug api_treeview_flatdatabindingdirective %})) which set their own edit handlers, or provide\n * your own [`editService`]({% slug api_treeview_editservice %}) to this directive. The latter subscribes to and calls the\n * [`addItem`]({% slug api_treeview_treeviewcomponent %}#toc-additem) and [`removeItem`]({% slug api_treeview_treeviewcomponent %}#toc-removeitem)\n * handlers when the corresponding events are triggered by the TreeView component.\n */\nlet DragAndDropEditingDirective = class DragAndDropEditingDirective {\n constructor(treeview) {\n this.treeview = treeview;\n this.subscriptions = new Subscription();\n this.subscriptions.add(this.treeview.addItem.subscribe(this.handleAdd.bind(this)));\n this.subscriptions.add(this.treeview.removeItem.subscribe(this.handleRemove.bind(this)));\n }\n /**\n * Specifies the handlers called on drag-and-drop [`addItem`]({% slug api_treeview_treeviewcomponent %}#toc-additem)\n * and [`removeItem`]({% slug api_treeview_treeviewcomponent %}#toc-removeitem) events.\n */\n set editService(service) {\n this.treeview.editService = service;\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n handleAdd(args) {\n if (!isPresent(this.treeview.editService)) {\n throw new Error('No `editService` provided. Either provide your own implementation or use this directive in combination with one of the data binding directives (`kendoTreeViewHierarchyBinding` or `kendoTreeViewFlatDataBinding`).');\n }\n this.treeview.editService.add(args);\n }\n handleRemove(args) {\n if (!isPresent(this.treeview.editService)) {\n throw new Error('No `editService` provided. Either provide your own implementation or use this directive in combination with one of the data binding directives (`kendoTreeViewHierarchyBinding` or `kendoTreeViewFlatDataBinding`).');\n }\n this.treeview.editService.remove(args);\n }\n};\nDragAndDropEditingDirective.ɵfac = function DragAndDropEditingDirective_Factory(t) { return new (t || DragAndDropEditingDirective)(ɵngcc0.ɵɵdirectiveInject(TreeViewComponent)); };\nDragAndDropEditingDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DragAndDropEditingDirective, selectors: [[\"\", \"kendoTreeViewDragAndDropEditing\", \"\"]], inputs: { editService: \"editService\" } });\n__decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], DragAndDropEditingDirective.prototype, \"editService\", null);\nDragAndDropEditingDirective = __decorate([ __metadata(\"design:paramtypes\", [TreeViewComponent])\n], DragAndDropEditingDirective);\n\nconst LOAD_MORE_DOC_LINK$1 = 'http://www.telerik.com/kendo-angular-ui/components/treeview/load-more-button/';\n/**\n * A directive that enables the display of only a limited amount of nodes per level\n * ([see example]({% slug loadmorebutton_treeview %})).\n */\nlet LoadMoreDirective = class LoadMoreDirective {\n constructor(treeview) {\n this.treeview = treeview;\n /**\n * Keeps track of the current page size of each node over expand/collapse cycles.\n */\n this.pageSizes = new Map();\n /**\n * Used as an identifier for the root page size as the root collection of nodes is not associated with a data item.\n */\n this.rootLevelId = guid();\n this.treeview.loadMoreService = {\n getInitialPageSize: this.getInitalPageSize.bind(this),\n getGroupSize: this.getGroupSize.bind(this),\n setGroupSize: this.setGroupSize.bind(this),\n getTotalNodesCount: this.getTotalNodesCount.bind(this)\n };\n }\n /**\n * Specifies the callback that will be called when the load more button is clicked.\n * Providing a function is only required when additional nodes are fetched on demand\n * ([see example]({% slug loadmorebutton_treeview %}#toc-remote-data)).\n */\n set loadMoreNodes(loadMoreNodes) {\n if (typeof loadMoreNodes === 'string') {\n return;\n }\n this.treeview.loadMoreService.loadMoreNodes = loadMoreNodes;\n }\n ngOnChanges() {\n this.verifySettings();\n }\n verifySettings() {\n if (!isDevMode()) {\n return;\n }\n if (!isPresent(this.pageSize)) {\n throw new Error(`To use the TreeView \\`kendoTreeViewLoadMore\\` directive, you need to assign a \\`pageSize\\` value. See ${LOAD_MORE_DOC_LINK$1}.`);\n }\n const loadMoreNodes = this.treeview.loadMoreService.loadMoreNodes;\n if (isPresent(loadMoreNodes) && typeof loadMoreNodes !== 'function') {\n throw new Error(`The passed value to the \\`kendoTreeViewLoadMore\\` directive must be a function that retrieves additional nodes. See ${LOAD_MORE_DOC_LINK$1}.`);\n }\n if (isPresent(loadMoreNodes) && !isPresent(this.totalField)) {\n throw new Error(`When a function to fetch additional nodes is provided to the \\`kendoTreeViewLoadMore\\` directive, the \\`totalField\\` and \\`totalRootNodes\\` values must also be provided. See ${LOAD_MORE_DOC_LINK$1}.`);\n }\n }\n getGroupSize(dataItem) {\n const itemKey = dataItem || this.rootLevelId;\n return this.pageSizes.has(itemKey) ? this.pageSizes.get(itemKey) : this.pageSize;\n }\n setGroupSize(dataItem, pageSize) {\n const itemKey = dataItem || this.rootLevelId;\n const normalizedSizeValue = pageSize > 0 ? pageSize : 0;\n this.pageSizes.set(itemKey, normalizedSizeValue);\n }\n getTotalNodesCount(dataItem, loadedNodesCount) {\n if (isPresent(dataItem) && isPresent(this.totalField)) {\n return dataItem[this.totalField];\n }\n else if (!isPresent(dataItem) && isPresent(this.totalRootNodes)) {\n return this.totalRootNodes;\n }\n else {\n return loadedNodesCount;\n }\n }\n getInitalPageSize() {\n return this.pageSize;\n }\n};\nLoadMoreDirective.ɵfac = function LoadMoreDirective_Factory(t) { return new (t || LoadMoreDirective)(ɵngcc0.ɵɵdirectiveInject(TreeViewComponent)); };\nLoadMoreDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LoadMoreDirective, selectors: [[\"\", \"kendoTreeViewLoadMore\", \"\"]], inputs: { loadMoreNodes: [\"kendoTreeViewLoadMore\", \"loadMoreNodes\"], pageSize: \"pageSize\", totalRootNodes: \"totalRootNodes\", totalField: \"totalField\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n__decorate([\n Input('kendoTreeViewLoadMore'),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], LoadMoreDirective.prototype, \"loadMoreNodes\", null);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], LoadMoreDirective.prototype, \"pageSize\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Number)\n], LoadMoreDirective.prototype, \"totalRootNodes\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", String)\n], LoadMoreDirective.prototype, \"totalField\", void 0);\nLoadMoreDirective = __decorate([ __metadata(\"design:paramtypes\", [TreeViewComponent])\n], LoadMoreDirective);\n\nconst COMPONENT_DIRECTIVES$1 = [\n TreeViewComponent,\n TreeViewGroupComponent,\n TreeViewItemDirective,\n TreeViewItemContentDirective,\n NodeTemplateDirective,\n CheckDirective,\n DisableDirective,\n ExpandDirective,\n SelectDirective,\n HierarchyBindingDirective,\n LoadingIndicatorDirective,\n FlatDataBindingDirective,\n DragAndDropDirective,\n DragClueTemplateDirective,\n DragClueComponent,\n DropHintTemplateDirective,\n DropHintComponent,\n DragAndDropEditingDirective,\n LoadMoreDirective,\n LoadMoreButtonTemplateDirective\n];\n/**\n * @hidden\n */\nlet SharedModule = class SharedModule {\n};\nSharedModule.ɵfac = function SharedModule_Factory(t) { return new (t || SharedModule)(); };\nSharedModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: SharedModule });\nSharedModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[\n CommonModule,\n CheckBoxModule,\n InputsModule\n ]] });\n\nconst EXPORTS = [\n TreeViewComponent,\n NodeTemplateDirective,\n CheckDirective,\n DisableDirective,\n ExpandDirective,\n SelectDirective,\n HierarchyBindingDirective,\n FlatDataBindingDirective,\n DragAndDropDirective,\n DragClueTemplateDirective,\n DropHintTemplateDirective,\n DragAndDropEditingDirective,\n LoadMoreDirective,\n LoadMoreButtonTemplateDirective\n];\n/**\n * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }}) definition for the TreeView component.\n */\nlet TreeViewModule = class TreeViewModule {\n};\nTreeViewModule.ɵfac = function TreeViewModule_Factory(t) { return new (t || TreeViewModule)(); };\nTreeViewModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: TreeViewModule });\nTreeViewModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[SharedModule]] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ExpandStateService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IndexBuilderService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LoadingNotificationService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NavigationService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc1.LocalizationService }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NodeChildrenService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NodeTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTreeViewNodeTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LoadMoreButtonTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTreeViewLoadMoreButtonTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DataBoundComponent, [{\n type: Injectable\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ExpandableComponent, [{\n type: Injectable\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SelectionService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TreeViewLookupService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TreeViewComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.Default,\n exportAs: 'kendoTreeView',\n providers: providers,\n selector: 'kendo-treeview',\n template: `\n \n \n \n \n \n \n \n
      \n
    \n \n `\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.ChangeDetectorRef }, { type: ExpandStateService }, { type: NavigationService }, { type: NodeChildrenService }, { type: SelectionService }, { type: TreeViewLookupService }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.Renderer2 }, { type: DataChangeNotificationService }, { type: ɵngcc1.LocalizationService }]; }, { classNames: [{\n type: HostBinding,\n args: [\"class.k-treeview\"]\n }], role: [{\n type: HostBinding,\n args: [\"attr.role\"]\n }], filterInputPlaceholder: [{\n type: Input\n }], childrenLoaded: [{\n type: Output\n }], onBlur: [{\n type: Output,\n args: ['blur']\n }], onFocus: [{\n type: Output,\n args: ['focus']\n }], expand: [{\n type: Output\n }], collapse: [{\n type: Output\n }], nodeDragStart: [{\n type: Output\n }], nodeDrag: [{\n type: Output\n }], filterStateChange: [{\n type: Output\n }], nodeDrop: [{\n type: Output\n }], nodeDragEnd: [{\n type: Output\n }], addItem: [{\n type: Output\n }], removeItem: [{\n type: Output\n }], checkedChange: [{\n type: Output\n }], selectionChange: [{\n type: Output\n }], filterChange: [{\n type: Output\n }], nodeClick: [{\n type: Output\n }], nodeDblClick: [{\n type: Output\n }], trackBy: [{\n type: Input\n }], isDisabled: [{\n type: Input\n }], isVisible: [{\n type: Input\n }], navigable: [{\n type: Input\n }], children: [{\n type: Input\n }], loadOnDemand: [{\n type: Input\n }], filterable: [{\n type: Input\n }], filter: [{\n type: Input\n }], direction: [{\n type: HostBinding,\n args: [\"attr.dir\"]\n }], animate: [{\n type: Input\n }, {\n type: HostBinding,\n args: ['@.disabled']\n }], nodeTemplateRef: [{\n type: Input,\n args: ['nodeTemplate']\n }], loadMoreButtonTemplateRef: [{\n type: Input,\n args: ['loadMoreButtonTemplate']\n }], nodes: [{\n type: Input\n }], hasChildren: [{\n type: Input\n }], isChecked: [{\n type: Input\n }], isExpanded: [{\n type: Input\n }], isSelected: [{\n type: Input\n }], size: [{\n type: Input\n }], assetsContainer: [{\n type: ViewChild,\n args: ['assetsContainer', { read: ViewContainerRef, static: true }]\n }], nodeTemplateQuery: [{\n type: ContentChild,\n args: [NodeTemplateDirective, { static: false }]\n }], loadMoreButtonTemplateQuery: [{\n type: ContentChild,\n args: [LoadMoreButtonTemplateDirective, { static: false }]\n }], textField: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TreeViewGroupComponent, [{\n type: Component,\n args: [{\n animations: [\n trigger('toggle', [\n transition('void => *', [\n style({ height: 0 }),\n animate('0.1s ease-in', style({ height: \"*\" }))\n ]),\n transition('* => void', [\n style({ height: \"*\" }),\n animate('0.1s ease-in', style({ height: 0 }))\n ])\n ])\n ],\n selector: '[kendoTreeViewGroup]',\n template: `\n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{nodeText(node)}}\n \n \n \n \n
    \n \n \n \n \n
    \n \n \n \n \n \n \n \n Load more\n \n \n \n
    \n \n `\n }]\n }], function () { return [{ type: ExpandStateService }, { type: LoadingNotificationService }, { type: IndexBuilderService }, { type: TreeViewLookupService }, { type: NavigationService }, { type: NodeChildrenService }, { type: DataChangeNotificationService }, { type: ɵngcc0.ChangeDetectorRef }]; }, { kGroupClass: [{\n type: HostBinding,\n args: [\"class.k-treeview-group\"]\n }], role: [{\n type: HostBinding,\n args: [\"attr.role\"]\n }], loadOnDemand: [{\n type: Input\n }], textField: [{\n type: Input\n }], size: [{\n type: Input\n }], isChecked: [{\n type: Input\n }], isDisabled: [{\n type: Input\n }], isExpanded: [{\n type: Input\n }], isVisible: [{\n type: Input\n }], isSelected: [{\n type: Input\n }], children: [{\n type: Input\n }], hasChildren: [{\n type: Input\n }], checkboxes: [{\n type: Input\n }], expandIcons: [{\n type: Input\n }], disabled: [{\n type: Input\n }], selectable: [{\n type: Input\n }], touchActions: [{\n type: Input\n }], trackBy: [{\n type: Input\n }], nodes: [{\n type: Input\n }], parentDataItem: [{\n type: Input\n }], parentIndex: [{\n type: Input\n }], nodeTemplateRef: [{\n type: Input\n }], loadMoreButtonTemplateRef: [{\n type: Input\n }], loadMoreService: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CheckDirective, [{\n type: Directive,\n args: [{ selector: '[kendoTreeViewCheckable]' }]\n }], function () { return [{ type: TreeViewComponent }, { type: ɵngcc0.NgZone }]; }, { checkedKeysChange: [{\n type: Output\n }], isChecked: [{\n type: Input\n }], checkKey: [{\n type: Input,\n args: [\"checkBy\"]\n }], checkedKeys: [{\n type: Input\n }], checkable: [{\n type: Input,\n args: ['kendoTreeViewCheckable']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DisableDirective, [{\n type: Directive,\n args: [{ selector: '[kendoTreeViewDisable]' }]\n }], function () { return [{ type: TreeViewComponent }, { type: ɵngcc0.ChangeDetectorRef }]; }, { disabledKeys: [{\n type: Input\n }], isDisabled: [{\n type: Input\n }], disableKey: [{\n type: Input,\n args: [\"kendoTreeViewDisable\"]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ExpandDirective, [{\n type: Directive,\n args: [{ selector: '[kendoTreeViewExpandable]' }]\n }], function () { return [{ type: ExpandableComponent }]; }, { expandOnFilter: [{\n type: Input\n }], expandedKeysChange: [{\n type: Output\n }], isExpanded: [{\n type: Input\n }], expandKey: [{\n type: Input,\n args: [\"expandBy\"]\n }], expandedKeys: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SelectDirective, [{\n type: Directive,\n args: [{ selector: '[kendoTreeViewSelectable]' }]\n }], function () { return [{ type: TreeViewComponent }]; }, { selectedKeysChange: [{\n type: Output\n }], isSelected: [{\n type: Input\n }], getAriaMultiselectable: [{\n type: HostBinding,\n args: ['attr.aria-multiselectable']\n }], selectKey: [{\n type: Input,\n args: ['selectBy']\n }], selection: [{\n type: Input,\n args: ['kendoTreeViewSelectable']\n }], selectedKeys: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DragClueComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-treeview-drag-clue',\n template: `\n \n \n {{text}}\n \n\n \n
    \n `\n }]\n }], function () { return [{ type: ɵngcc0.ChangeDetectorRef }]; }, { hostClasses: [{\n type: HostBinding,\n args: ['class.k-header']\n }, {\n type: HostBinding,\n args: ['class.k-drag-clue']\n }], posistionStyle: [{\n type: HostBinding,\n args: ['style.position']\n }] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DragClueService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc0.ComponentFactoryResolver }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DropHintComponent, [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kendo-treeview-drop-hint',\n template: `\n \n
    \n
    \n
    \n\n \n \n `\n }]\n }], function () { return [{ type: ɵngcc0.ChangeDetectorRef }]; }, { hostClass: [{\n type: HostBinding,\n args: ['class.k-drop-hint-container']\n }], position: [{\n type: HostBinding,\n args: ['style.position']\n }], pointerEvents: [{\n type: HostBinding,\n args: ['style.pointer-events']\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DropHintService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc0.ComponentFactoryResolver }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DragClueTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTreeViewDragClueTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DropHintTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTreeViewDropHintTemplate]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef, decorators: [{\n type: Optional\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DragAndDropDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTreeViewDragAndDrop]',\n providers: [\n DragClueService,\n DropHintService\n ]\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }, { type: TreeViewComponent }, { type: DragClueService }, { type: DropHintService }]; }, { allowCopy: [{\n type: Input\n }], dropZoneTreeViews: [{\n type: Input\n }], startDragAfter: [{\n type: Input\n }], autoScroll: [{\n type: Input\n }], userSelectStyle: [{\n type: HostBinding,\n args: ['style.user-select']\n }, {\n type: HostBinding,\n args: ['style.-ms-user-select']\n }, {\n type: HostBinding,\n args: ['style.-moz-user-select']\n }, {\n type: HostBinding,\n args: ['style.-webkit-user-select']\n }], dragClueTemplate: [{\n type: ContentChild,\n args: [DragClueTemplateDirective, { static: false }]\n }], dropHintTemplate: [{\n type: ContentChild,\n args: [DropHintTemplateDirective, { static: false }]\n }] }); })();\n\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(HierarchyBindingDirective, [{\n type: Directive,\n args: [{ selector: '[kendoTreeViewHierarchyBinding]' }]\n }], function () { return [{ type: DataBoundComponent }, { type: DragAndDropDirective, decorators: [{\n type: Optional\n }, {\n type: Host\n }] }]; }, { loadOnDemand: [{\n type: Input\n }], childrenField: [{\n type: Input\n }], nodes: [{\n type: Input\n }], isVisible: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LoadingIndicatorDirective, [{\n type: Directive,\n args: [{ selector: '[kendoTreeViewLoading]' }]\n }], function () { return [{ type: ExpandStateService }, { type: LoadingNotificationService }, { type: ɵngcc0.ChangeDetectorRef }]; }, { loading: [{\n type: HostBinding,\n args: [\"class.k-i-loading\"]\n }], index: [{\n type: Input,\n args: [\"kendoTreeViewLoading\"]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FlatDataBindingDirective, [{\n type: Directive,\n args: [{ selector: \"[kendoTreeViewFlatDataBinding]\" }]\n }], function () { return [{ type: DataBoundComponent }]; }, { loadOnDemand: [{\n type: Input\n }], nodes: [{\n type: Input\n }], isVisible: [{\n type: Input\n }], parentIdField: [{\n type: Input\n }], idField: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TreeViewItemDirective, [{\n type: Directive,\n args: [{ selector: '[kendoTreeViewItem]' }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ExpandStateService }, { type: NavigationService }, { type: SelectionService }, { type: TreeViewLookupService }, { type: ɵngcc0.Renderer2 }, { type: IndexBuilderService }]; }, { role: [{\n type: Input\n }], loadOnDemand: [{\n type: Input\n }], isDisabled: [{\n type: Input\n }], isVisible: [{\n type: Input\n }], isChecked: [{\n type: Input\n }], isExpanded: [{\n type: Input\n }], isSelected: [{\n type: Input\n }], dataItem: [{\n type: Input\n }], index: [{\n type: Input\n }], parentDataItem: [{\n type: Input\n }], parentIndex: [{\n type: Input\n }], checkable: [{\n type: Input\n }], selectable: [{\n type: Input\n }], expandable: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TreeViewItemContentDirective, [{\n type: Directive,\n args: [{ selector: '[kendoTreeViewItemContent]' }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: NavigationService }, { type: SelectionService }, { type: ɵngcc0.Renderer2 }]; }, { initialSelection: [{\n type: Input\n }], isSelected: [{\n type: Input\n }], dataItem: [{\n type: Input\n }], index: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CheckBoxComponent, [{\n type: Component,\n args: [{\n selector: 'kendo-checkbox',\n template: `\n \n {{labelText}}\n `\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ChangeDetectorRef }]; }, { id: [{\n type: Input\n }], tabindex: [{\n type: Input\n }], size: [{\n type: Input\n }], checkStateChange: [{\n type: Output\n }], classWrapper: [{\n type: HostBinding,\n args: ['class.k-checkbox-wrapper']\n }], isChecked: [{\n type: Input\n }], node: [{\n type: Input\n }], index: [{\n type: Input\n }], labelText: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CheckBoxModule, [{\n type: NgModule,\n args: [{\n declarations: [COMPONENT_DIRECTIVES],\n exports: [COMPONENT_DIRECTIVES]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(CheckBoxModule, { declarations: [CheckBoxComponent], exports: [CheckBoxComponent] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DragAndDropEditingDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTreeViewDragAndDropEditing]'\n }]\n }], function () { return [{ type: TreeViewComponent }]; }, { editService: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LoadMoreDirective, [{\n type: Directive,\n args: [{\n selector: '[kendoTreeViewLoadMore]'\n }]\n }], function () { return [{ type: TreeViewComponent }]; }, { loadMoreNodes: [{\n type: Input,\n args: ['kendoTreeViewLoadMore']\n }], pageSize: [{\n type: Input\n }], totalRootNodes: [{\n type: Input\n }], totalField: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SharedModule, [{\n type: NgModule,\n args: [{\n declarations: [COMPONENT_DIRECTIVES$1],\n exports: [COMPONENT_DIRECTIVES$1],\n imports: [\n CommonModule,\n CheckBoxModule,\n InputsModule\n ],\n entryComponents: [\n DragClueComponent,\n DropHintComponent\n ]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(SharedModule, { declarations: function () { return [TreeViewComponent, TreeViewGroupComponent, TreeViewItemDirective, TreeViewItemContentDirective, NodeTemplateDirective, CheckDirective, DisableDirective, ExpandDirective, SelectDirective, HierarchyBindingDirective, LoadingIndicatorDirective, FlatDataBindingDirective, DragAndDropDirective, DragClueTemplateDirective, DragClueComponent, DropHintTemplateDirective, DropHintComponent, DragAndDropEditingDirective, LoadMoreDirective, LoadMoreButtonTemplateDirective]; }, imports: function () { return [CommonModule, CheckBoxModule, InputsModule]; }, exports: function () { return [TreeViewComponent, TreeViewGroupComponent, TreeViewItemDirective, TreeViewItemContentDirective, NodeTemplateDirective, CheckDirective, DisableDirective, ExpandDirective, SelectDirective, HierarchyBindingDirective, LoadingIndicatorDirective, FlatDataBindingDirective, DragAndDropDirective, DragClueTemplateDirective, DragClueComponent, DropHintTemplateDirective, DropHintComponent, DragAndDropEditingDirective, LoadMoreDirective, LoadMoreButtonTemplateDirective]; } }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TreeViewModule, [{\n type: NgModule,\n args: [{\n exports: [EXPORTS],\n imports: [SharedModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(TreeViewModule, { imports: [SharedModule], exports: [TreeViewComponent, NodeTemplateDirective, CheckDirective, DisableDirective, ExpandDirective, SelectDirective, HierarchyBindingDirective, FlatDataBindingDirective, DragAndDropDirective, DragClueTemplateDirective, DropHintTemplateDirective, DragAndDropEditingDirective, LoadMoreDirective, LoadMoreButtonTemplateDirective] }); })();\n\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CheckBoxComponent, CheckBoxModule, DataChangeNotificationService, DragClueComponent, DragClueService, DropHintComponent, DropHintService, DragAndDropAssetService, PreventableEvent, ExpandStateService, FilteringBase, IndexBuilderService, LoadingIndicatorDirective, LoadingNotificationService, NavigationService, NodeChildrenService, SelectionService, SharedModule, TreeViewGroupComponent, TreeViewItemContentDirective, TreeViewItemDirective, TreeViewLookupService, TreeViewComponent, TreeViewModule, NodeTemplateDirective, CheckDirective, DisableDirective, ExpandDirective, SelectDirective, DataBoundComponent, ExpandableComponent, HierarchyBindingDirective, FlatDataBindingDirective, DragAndDropDirective, DragAndDropEditingDirective, DropHintTemplateDirective, DragClueTemplateDirective, DropAction, DropPosition, TreeItemDropEvent, TreeItemDragStartEvent, TreeItemDragEvent, LoadMoreDirective, LoadMoreButtonTemplateDirective };\n\n","export { default as Barcode } from './barcode/barcode';\nexport { default as barcodeValidator } from './barcode/barcode-validator';\n","import { Encodings } from './encodings/main';\n\nconst validate = (encoding, size, prefix) => (value) => {\n try {\n encoding.encode(\n prefix + value,\n size.width,\n size.height\n );\n } catch (error) {\n return {\n valid: false,\n error\n };\n }\n\n return {\n valid: true\n };\n};\n\n// A default size for encodings, so the validator can check only the value if no size is provided.\nconst fallbackSize = { width: 500, height: 100 };\n\nfunction barcodeValidator(type, size = fallbackSize) {\n if (!type) {\n throw new Error(`Please specify barcode type to validate.`);\n }\n\n let resolvedType = type.toLowerCase();\n let prefix = '';\n if (resolvedType === 'upca') {\n resolvedType = 'ean13';\n prefix = '0';\n } else if (resolvedType === 'upce') {\n resolvedType = 'ean8';\n prefix = '0';\n }\n\n if (!Encodings[resolvedType]) {\n throw new Error(`Encoding '${type}' is not supported.`);\n }\n\n const encoding = new Encodings[resolvedType]();\n return validate(encoding, size, prefix);\n}\n\nexport default barcodeValidator;\n","import {\n geometry as geom,\n drawing as draw\n} from '@progress/kendo-drawing';\n\nimport {\n Class,\n defined,\n addClass,\n setDefaultOptions,\n deepExtend,\n getSpacing,\n isObject,\n defaultErrorHandler\n} from '../common';\n\nimport {\n Box,\n TextBox\n} from '../core';\n\nimport { Encodings } from './encodings/main';\nimport { surfaceSize } from './surface-size';\n\nconst DEFAULT_BARCODE_WIDTH = 300;\nconst DEFAULT_BARCODE_HEIGHT = 100;\n\nclass Barcode extends Class {\n constructor(element, options, errorHandler = defaultErrorHandler) {\n super();\n\n this.options = deepExtend({}, this.options, options);\n this.element = element;\n this.onError = errorHandler;\n\n this._initElement();\n this._initSurface();\n this._setOptions(options);\n\n if (options && defined(options.value)) {\n this.redraw();\n }\n }\n\n destroy() {\n this._destroySurface();\n }\n\n _initElement() {\n addClass(this.element, \"k-barcode\");\n }\n\n _initSurface() {\n const { options, surface } = this;\n\n if (!surface || surface.options.type !== options.renderAs) {\n this._destroySurface();\n this._initSurfaceElement();\n this.surface = this._createSurface();\n }\n }\n\n _createSurface() {\n return draw.Surface.create(this.surfaceElement, {\n type: this.options.renderAs\n });\n }\n\n _destroySurface() {\n if (this.surface) {\n this.surface.destroy();\n this.surface = null;\n this._destroySurfaceElement();\n }\n }\n\n _initSurfaceElement() {\n if (!this.surfaceElement) {\n this.surfaceElement = document.createElement('div');\n this.surfaceElement.style.position = 'relative';\n this.element.appendChild(this.surfaceElement);\n }\n }\n\n _destroySurfaceElement() {\n if (this.surfaceElement && this.surfaceElement.parentNode) {\n this.surfaceElement.parentNode.removeChild(this.surfaceElement);\n this.surfaceElement = null;\n }\n }\n\n setOptions(options) {\n this._setOptions(options);\n this._initSurface();\n this.redraw();\n }\n\n redraw() {\n let size = this._getSize();\n\n this.surface.clear();\n\n this.surface.setSize({\n width: size.width,\n height: size.height\n });\n\n this.createVisual();\n\n this.surface.draw(this.visual);\n }\n\n getSize() {\n return {\n width: this.element.offsetWidth,\n height: this.element.offsetHeight\n };\n }\n\n _resize() {\n this.redraw();\n }\n\n createVisual() {\n this.visual = this._render();\n }\n\n _render() {\n const options = this.options;\n const value = options.value;\n const textOptions = options.text;\n const textMargin = getSpacing(textOptions.margin);\n const size = this._getSize();\n const border = options.border || {};\n const encoding = this.encoding;\n const contentBox = new Box(0, 0, size.width, size.height).unpad(border.width).unpad(options.padding);\n let barHeight = contentBox.height();\n let encodedValue;\n let textToDisplay;\n let textHeight;\n const visual = new draw.Group();\n\n this.contentBox = contentBox;\n visual.append(this._getBackground(size));\n\n if (textOptions.visible) {\n textHeight = draw.util.measureText(value, { font: textOptions.font }).height;\n barHeight -= textHeight + textMargin.top + textMargin.bottom;\n }\n\n try {\n encodedValue = encoding.encode(value, contentBox.width(), barHeight);\n } catch (error) {\n this.onError(error);\n return visual;\n }\n\n if (textOptions.visible) {\n textToDisplay = value;\n\n if (options.checksum && defined(encoding.checksum)) {\n textToDisplay += \" \" + encoding.checksum;\n }\n\n visual.append(this._getText(textToDisplay));\n }\n\n this.barHeight = barHeight;\n this._bandsGroup = this._getBands(encodedValue.pattern, encodedValue.baseUnit);\n visual.append(this._bandsGroup);\n\n return visual;\n }\n\n exportVisual() {\n return this._render();\n }\n\n _getSize() {\n const element = this.element;\n const elementSize = surfaceSize(element, this.options.renderAs);\n const size = new geom.Size(DEFAULT_BARCODE_WIDTH, DEFAULT_BARCODE_HEIGHT);\n\n if (elementSize.width > 0) {\n size.width = elementSize.width;\n }\n\n if (elementSize.height > 0) {\n size.height = elementSize.height;\n }\n\n if (this.options.width) {\n size.width = this.options.width;\n }\n\n if (this.options.height) {\n size.height = this.options.height;\n }\n\n return size;\n }\n\n value(value) {\n if (!defined(value)) {\n return this.options.value;\n }\n\n this.options.value = String(value);\n this.redraw();\n }\n\n _getBands(pattern, baseUnit) {\n const contentBox = this.contentBox;\n let offsetX = contentBox.x1;\n let stepX;\n let patternItem;\n const group = new draw.Group();\n\n for (let i = 0; i < pattern.length; i++) {\n patternItem = isObject(pattern[i]) ? pattern[i] : {\n width: pattern[i],\n y1: 0,\n y2: this.barHeight\n };\n\n stepX = patternItem.width * baseUnit;\n\n if (i % 2) {\n const rect = geom.Rect.fromPoints(\n new geom.Point(offsetX, patternItem.y1 + contentBox.y1),\n new geom.Point(offsetX + stepX, patternItem.y2 + contentBox.y1)\n );\n\n const path = draw.Path.fromRect(rect, {\n fill: {\n color: this.options.color\n },\n stroke: null\n });\n\n group.append(path);\n }\n\n offsetX += stepX;\n }\n\n return group;\n }\n\n _getBackground(size) {\n const options = this.options;\n const border = options.border || {};\n const box = new Box(0, 0, size.width, size.height).unpad(border.width / 2);\n const path = draw.Path.fromRect(box.toRect(), {\n fill: {\n color: options.background\n },\n stroke: {\n color: border.width ? border.color : \"\",\n width: border.width,\n dashType: border.dashType\n }\n });\n\n return path;\n }\n\n _getText(value) {\n const textOptions = this.options.text;\n const text = this._textbox = new TextBox(value, {\n font: textOptions.font,\n color: textOptions.color,\n align: \"center\",\n vAlign: \"bottom\",\n margin: textOptions.margin\n });\n\n text.reflow(this.contentBox);\n text.renderVisual();\n\n return text.visual;\n }\n\n _setOptions(options) {\n this.type = (options.type || this.options.type).toLowerCase();\n\n if (this.type === \"upca\") {\n this.type = \"ean13\";\n options.value = '0' + options.value;\n }\n\n if (this.type === \"upce\") {\n this.type = \"ean8\";\n options.value = '0' + options.value;\n }\n\n if (!Encodings[this.type]) {\n throw new Error(`Encoding '${this.type}' is not supported.`);\n }\n\n this.encoding = new Encodings[this.type]();\n\n this.options = deepExtend({}, this.options, options);\n }\n}\n\nsetDefaultOptions(Barcode, {\n name: \"Barcode\",\n renderAs: \"svg\",\n value: \"\",\n type: \"code39\",\n checksum: false,\n width: 0,\n height: 0,\n color: \"black\",\n background: \"white\",\n text: {\n visible: true,\n font: \"16px Consolas, Monaco, Sans Mono, monospace, sans-serif\",\n color: \"black\",\n margin: {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0\n }\n },\n border: {\n width: 0,\n dashType: \"solid\",\n color: \"black\"\n },\n padding: {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0\n }\n});\n\nexport default Barcode;\n","import { Encoding } from './encoding';\nimport { setDefaultOptions } from '../../common';\n\nconst extend = Object.assign;\n\nexport class Code11 extends Encoding {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n name: \"Code 11\",\n characterMap: [\"111121\", \"211121\", \"121121\", \"221111\", \"112121\", \"212111\", \"122111\", \"111221\", \"211211\", \"211111\", \"112111\"],\n cCheckSumTotal: 10,\n kCheckSumTotal: 9,\n kCheckSumMinLength: 10,\n checkSumMod: 11,\n DASH_VALUE: 10,\n DASH: \"-\",\n START: \"112211\",\n STOP: \"11221\"\n });\n }\n\n initValue(value, width) {\n this.pattern = [];\n this.value = value;\n this.width = width;\n this.totalUnits = 0;\n }\n\n addData() {\n const value = this.value;\n\n this.addPattern(this.START);\n\n for (let i = 0; i < value.length; i++) {\n this.addCharacter(value.charAt(i));\n }\n\n if (this.options.addCheckSum) {\n this.addCheckSum();\n }\n\n this.addPattern(this.STOP);\n this.setBaseUnit();\n }\n\n setBaseUnit() {\n this.baseUnit = this.width / (this.totalUnits + this.quietZoneLength);\n }\n\n addCheckSum() {\n const value = this.value;\n let length = value.length;\n const cValue = this.getWeightedSum(value, length, this.cCheckSumTotal) % this.checkSumMod;\n\n this.checksum = String(cValue);\n this.addPattern(this.characterMap[cValue]);\n\n length++;\n\n if (length >= this.kCheckSumMinLength) {\n let kValue = (cValue + this.getWeightedSum(value, length, this.kCheckSumTotal)) % this.checkSumMod;\n this.checksum += kValue;\n this.addPattern(this.characterMap[kValue]);\n }\n }\n\n getWeightedSum(value, length, total) {\n let weightedSum = 0;\n\n for (let i = 0; i < value.length; i++) {\n weightedSum += this.weightedValue(this.getValue(value.charAt(i)), length, i, total);\n }\n\n return weightedSum;\n }\n\n weightedValue(value, length, index, total) {\n const weight = (length - index) % total || total;\n return weight * value;\n }\n\n getValue(character) {\n if (!isNaN(character)) {\n return parseInt(character, 10);\n } else if (character !== this.DASH) {\n this.invalidCharacterError(character);\n }\n\n return this.DASH_VALUE;\n }\n\n addCharacter(character) {\n const value = this.getValue(character);\n const pattern = this.characterMap[value];\n\n this.addPattern(pattern);\n }\n\n addPattern(pattern) {\n let value;\n\n for (let i = 0; i < pattern.length; i++) {\n value = parseInt(pattern.charAt(i), 10);\n this.pattern.push(value);\n this.totalUnits += value;\n }\n }\n}\n\nsetDefaultOptions(Code11, {\n addCheckSum: true\n});\n","import { Class } from '../../common';\nimport { Encoding } from './encoding';\nimport deepExtend from '../../common/deep-extend';\nimport inArray from '../../common/in-array';\n\nconst numberRegex = /^\\d+$/;\nconst alphanumericRegex = /^[a-z0-9]+$/i;\nconst extend = Object.assign;\n\nexport class State128 extends Class {\n constructor(encoding) {\n super();\n this.encoding = encoding;\n this.initProperties();\n }\n\n initProperties() { }\n\n addStart() { }\n\n is() { }\n\n isCode() {\n return false;\n }\n\n move() { }\n\n pushState() { }\n}\n\nexport class State128AB extends State128 {\n constructor(encoding, states) {\n super(encoding);\n this.states = states;\n this._initMoves(states);\n }\n\n initProperties() {\n super.initProperties();\n\n deepExtend(this, {\n FNC4: \"FNC4\",\n SHIFT: 98\n });\n }\n\n addStart() {\n this.encoding.addPattern(this.START);\n }\n\n is(value, index) {\n let code = value.charCodeAt(index);\n return this.isCode(code);\n }\n\n move(encodingState) {\n let idx = 0;\n\n while (!this._moves[idx].call(this, encodingState) && idx < this._moves.length) {\n idx++;\n }\n }\n\n pushState(encodingState) {\n let states = this.states,\n value = encodingState.value,\n maxLength = value.length,\n code;\n\n if (inArray(\"C\", states)) {\n let numberMatch = value.substr(encodingState.index).match(/\\d{4,}/g);\n\n if (numberMatch) {\n maxLength = value.indexOf(numberMatch[0], encodingState.index);\n }\n }\n\n while ((code = encodingState.value.charCodeAt(encodingState.index)) >= 0 &&\n this.isCode(code) &&\n encodingState.index < maxLength) {\n this.encoding.addPattern(this.getValue(code));\n encodingState.index++;\n }\n }\n\n _initMoves(states) {\n this._moves = [];\n\n if (inArray(this.FNC4, states)) {\n this._moves.push(this._moveFNC);\n }\n\n if (inArray(this.shiftKey, states)) {\n this._moves.push(this._shiftState);\n }\n\n this._moves.push(this._moveState);\n }\n\n _moveFNC(encodingState) {\n if (encodingState.fnc) {\n encodingState.fnc = false;\n return encodingState.previousState === this.key;\n }\n }\n\n _shiftState(encodingState) {\n if (encodingState.previousState === this.shiftKey &&\n (encodingState.index + 1 >= encodingState.value.length ||\n this.encoding[this.shiftKey].is(encodingState.value, encodingState.index + 1))) {\n this.encoding.addPattern(this.SHIFT);\n encodingState.shifted = true;\n return true;\n }\n }\n\n _moveState() {\n this.encoding.addPattern(this.MOVE);\n return true;\n }\n}\n\nconst states128 = {};\n\nstates128.A = class State128A extends State128AB {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n key: \"A\",\n shiftKey: \"B\",\n MOVE: 101,\n START: 103\n });\n }\n\n isCode(code) {\n return 0 <= code && code < 96;\n }\n\n getValue(code) {\n if (code < 32) {\n return code + 64;\n }\n\n return code - 32;\n }\n};\n\nstates128.B = class State128B extends State128AB {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n key: \"B\",\n shiftKey: \"A\",\n MOVE: 100,\n START: 104\n });\n }\n\n isCode(code) {\n return 32 <= code && code < 128;\n }\n\n getValue(code) {\n return code - 32;\n }\n};\n\nstates128.C = class State128C extends State128 {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n key: \"C\",\n MOVE: 99,\n START: 105\n });\n }\n\n addStart() {\n this.encoding.addPattern(this.START);\n }\n\n is(value, index) {\n let next4 = getSubstring(value, index, 4);\n return (index + 4 <= value.length || value.length === 2) && numberRegex.test(next4);\n }\n\n move() {\n this.encoding.addPattern(this.MOVE);\n }\n\n pushState(encodingState) {\n let code;\n\n while ((code = getSubstring(encodingState.value, encodingState.index, 2)) &&\n numberRegex.test(code) && code.length === 2) {\n this.encoding.addPattern(parseInt(code, 10));\n encodingState.index += 2;\n }\n }\n\n getValue(code) {\n return code;\n }\n};\n\nstates128.FNC4 = class State128FNC4 extends State128 {\n constructor(encoding, states) {\n super(encoding);\n this._initSubStates(states);\n }\n\n initProperties() {\n super.initProperties();\n\n extend(this, {\n key: \"FNC4\",\n dependentStates: [\"A\", \"B\"]\n });\n }\n\n addStart(encodingState) {\n let code = encodingState.value.charCodeAt(0) - 128,\n subState = this._getSubState(code);\n\n this.encoding[subState].addStart();\n }\n\n is(value, index) {\n let code = value.charCodeAt(index);\n return this.isCode(code);\n }\n\n isCode(code) {\n return 128 <= code && code < 256;\n }\n\n pushState(encodingState) {\n let subState = this._initSubState(encodingState),\n encoding = this.encoding,\n length = subState.value.length;\n let code;\n\n encodingState.index += length;\n\n if (length < 3) {\n for (; subState.index < length; subState.index++) {\n code = subState.value.charCodeAt(subState.index);\n subState.state = this._getSubState(code);\n\n if (subState.previousState !== subState.state) {\n subState.previousState = subState.state;\n encoding[subState.state].move(subState);\n }\n\n encoding.addPattern(encoding[subState.state].MOVE);\n encoding.addPattern(encoding[subState.state].getValue(code));\n }\n } else {\n if (subState.state !== subState.previousState) {\n encoding[subState.state].move(subState);\n }\n\n this._pushStart(subState);\n encoding.pushData(subState, this.subStates);\n\n if (encodingState.index < encodingState.value.length) {\n this._pushStart(subState);\n }\n }\n\n encodingState.fnc = true;\n encodingState.state = subState.state;\n }\n\n _pushStart(subState) {\n this.encoding.addPattern(this.encoding[subState.state].MOVE);\n this.encoding.addPattern(this.encoding[subState.state].MOVE);\n }\n\n _initSubState(encodingState) {\n const subState = {\n value: this._getAll(encodingState.value, encodingState.index),\n index: 0\n };\n\n subState.state = this._getSubState(subState.value.charCodeAt(0));\n subState.previousState = encodingState.previousState === this.key ?\n subState.state :\n encodingState.previousState;\n\n return subState;\n }\n\n _initSubStates(states) {\n this.subStates = [];\n\n for (let i = 0; i < states.length; i++) {\n if (inArray(states[i], this.dependentStates)) {\n this.subStates.push(states[i]);\n }\n }\n }\n\n _getSubState(code) {\n for (let i = 0; i < this.subStates.length; i++) {\n if (this.encoding[this.subStates[i]].isCode(code)) {\n return this.subStates[i];\n }\n }\n }\n\n _getAll(value, index) {\n let code;\n let result = \"\";\n let i = index;\n\n while ((code = value.charCodeAt(i++)) && this.isCode(code)) {\n result += String.fromCharCode(code - 128);\n }\n\n return result;\n }\n};\n\nstates128.FNC1 = class States128FNC1 extends State128 {\n constructor(encoding, states) {\n super(encoding);\n this.states = states;\n }\n\n initProperties() {\n super.initProperties();\n\n extend(this, {\n key: \"FNC1\",\n startState: \"C\",\n startAI: \"(\",\n endAI: \")\",\n dependentStates: [\"C\", \"B\"],\n applicationIdentifiers: {\n \"22\": { max: 29, type: \"alphanumeric\" },\n \"402\": { length: 17 },\n \"7004\": { max: 4, type: \"alphanumeric\" },\n \"242\": { max: 6, type: \"alphanumeric\" },\n \"8020\": { max: 25, type: \"alphanumeric\" },\n \"703\": { min: 3, max: 30, type: \"alphanumeric\" },\n \"8008\": { min: 8, max: 12, type: \"alphanumeric\" },\n \"253\": { min: 13, max: 17, type: \"alphanumeric\" },\n \"8003\": { min: 14, max: 30, type: \"alphanumeric\" },\n multiKey: [{\n ids: [\"15\", \"17\", \"8005\", \"8100\"],\n ranges: [\n [11, 13],\n [310, 316],\n [320, 336],\n [340, 369]\n ],\n type: { length: 6 }\n }, {\n ids: [\"240\", \"241\", \"250\", \"251\", \"400\", \"401\", \"403\", \"7002\", \"8004\", \"8007\", \"8110\"],\n ranges: [[90 - 99]],\n type: { max: 30, type: \"alphanumeric\" }\n }, {\n ids: [\"7001\"],\n ranges: [[410, 414]],\n type: { length: 13 }\n }, {\n ids: [\"10\", \"21\", \"254\", \"420\", \"8002\"],\n type: { max: 20, type: \"alphanumeric\" }\n }, {\n ids: [\"00\", \"8006\", \"8017\", \"8018\"],\n type: { length: 18 }\n }, {\n ids: [\"01\", \"02\", \"8001\"],\n type: { length: 14 }\n }, {\n ids: [\"422\"],\n ranges: [\n [424, 426]\n ],\n type: { length: 3 }\n }, {\n ids: [\"20\", \"8102\"],\n type: { length: 2 }\n }, {\n ids: [\"30\", \"37\"],\n type: { max: 8, type: \"alphanumeric\" }\n }, {\n ids: [\"390\", \"392\"],\n type: { max: 15, type: \"alphanumeric\" }\n }, {\n ids: [\"421\", \"423\"],\n type: { min: 3, max: 15, type: \"alphanumeric\" }\n }, {\n ids: [\"391\", \"393\"],\n type: { min: 3, max: 18, type: \"alphanumeric\" }\n }, {\n ids: [\"7003\", \"8101\"],\n type: { length: 10 }\n }]\n },\n START: 102\n });\n }\n\n\n addStart() {\n this.encoding[this.startState].addStart();\n }\n\n is() {\n return inArray(this.key, this.states);\n }\n\n pushState(encodingState) {\n let encoding = this.encoding,\n value = encodingState.value.replace(/\\s/g, \"\"),\n regexSeparators = new RegExp(\"[\" + this.startAI + this.endAI + \"]\", \"g\"),\n index = encodingState.index,\n subState = {\n state: this.startState\n },\n current,\n nextStart,\n separatorLength;\n\n encoding.addPattern(this.START);\n\n const trueCondition = true;\n\n while (trueCondition) {\n subState.index = 0;\n\n separatorLength = value.charAt(index) === this.startAI ? 2 : 0;\n current = separatorLength > 0 ? this.getBySeparator(value, index) : this.getByLength(value, index);\n\n if (current.ai.length) {\n nextStart = index + separatorLength + current.id.length + current.ai.length;\n } else {\n nextStart = value.indexOf(this.startAI, index + 1);\n\n if (nextStart < 0) {\n if (index + current.ai.max + current.id.length + separatorLength < value.length) {\n throw new Error(\"Separators are required after variable length identifiers\");\n }\n\n nextStart = value.length;\n }\n }\n\n subState.value = value.substring(index, nextStart).replace(regexSeparators, \"\");\n this.validate(current, subState.value);\n encoding.pushData(subState, this.dependentStates);\n\n if (nextStart >= value.length) {\n break;\n }\n\n index = nextStart;\n\n if (subState.state !== this.startState) {\n encoding[this.startState].move(subState);\n subState.state = this.startState;\n }\n\n if (!current.ai.length) {\n encoding.addPattern(this.START);\n }\n }\n\n encodingState.index = encodingState.value.length;\n }\n\n validate(current, value) {\n let code = value.substr(current.id.length),\n ai = current.ai;\n\n if (!ai.type && !numberRegex.test(code)) {\n throw new Error(\"Application identifier \" + current.id + \" is numeric only but contains non numeric character(s).\");\n }\n\n if (ai.type === \"alphanumeric\" && !alphanumericRegex.test(code)) {\n throw new Error(\"Application identifier \" + current.id + \" is alphanumeric only but contains non alphanumeric character(s).\");\n }\n\n if (ai.length && ai.length !== code.length) {\n throw new Error(\"Application identifier \" + current.id + \" must be \" + ai.length + \" characters long.\");\n }\n\n if (ai.min && ai.min > code.length) {\n throw new Error(\"Application identifier \" + current.id + \" must be at least \" + ai.min + \" characters long.\");\n }\n\n if (ai.max && ai.max < code.length) {\n throw new Error(\"Application identifier \" + current.id + \" must be at most \" + ai.max + \" characters long.\");\n }\n }\n\n getByLength(value, index) {\n let id;\n let applicationIdentifier;\n\n for (let i = 2; i <= 4; i++) {\n id = getSubstring(value, index, i);\n applicationIdentifier = this.getApplicationIdentifier(id) || this.getApplicationIdentifier(id.substring(0, id.length - 1));\n if (applicationIdentifier) {\n return {\n id: id,\n ai: applicationIdentifier\n };\n }\n }\n this.unsupportedAIError(id);\n }\n\n unsupportedAIError(id) {\n throw new Error(\"'\" + id + \"' is not a supported Application Identifier\");\n }\n\n getBySeparator(value, index) {\n let start = value.indexOf(this.startAI, index),\n end = value.indexOf(this.endAI, start),\n id = value.substring(start + 1, end),\n ai = this.getApplicationIdentifier(id) || this.getApplicationIdentifier(id.substr(id.length - 1));\n\n if (!ai) {\n this.unsupportedAIError(id);\n }\n\n return {\n ai: ai,\n id: id\n };\n }\n\n getApplicationIdentifier(id) {\n let applicationIdentifier = this.applicationIdentifiers,\n multiKey = applicationIdentifier.multiKey;\n\n if (applicationIdentifier[id]) {\n return applicationIdentifier[id];\n }\n\n for (let i = 0; i < multiKey.length; i++) {\n if (multiKey[i].ids && inArray(id, multiKey[i].ids)) {\n return multiKey[i].type;\n } else if (multiKey[i].ranges) {\n let ranges = multiKey[i].ranges;\n\n for (let j = 0; j < ranges.length; j++) {\n if (ranges[j][0] <= id && id <= ranges[j][1]) {\n return multiKey[i].type;\n }\n }\n }\n }\n }\n};\n\nexport class Code128Base extends Encoding {\n constructor(options) {\n super(options);\n this._initStates();\n }\n\n initProperties() {\n super.initProperties();\n\n extend(this, {\n characterMap: [\n 212222, 222122, 222221, 121223, 121322, 131222, 122213, 122312, 132212, 221213,\n 221312, 231212, 112232, 122132, 122231, 113222, 123122, 123221, 223211, 221132,\n 221231, 213212, 223112, 312131, 311222, 321122, 321221, 312212, 322112, 322211,\n 212123, 212321, 232121, 111323, 131123, 131321, 112313, 132113, 132311, 211313,\n 231113, 231311, 112133, 112331, 132131, 113123, 113321, 133121, 313121, 211331,\n 231131, 213113, 213311, 213131, 311123, 311321, 331121, 312113, 312311, 332111,\n 314111, 221411, 431111, 111224, 111422, 121124, 121421, 141122, 141221, 112214,\n 112412, 122114, 122411, 142112, 142211, 241211, 221114, 413111, 241112, 134111,\n 111242, 121142, 121241, 114212, 124112, 124211, 411212, 421112, 421211, 212141,\n 214121, 412121, 111143, 111341, 131141, 114113, 114311, 411113, 411311, 113141,\n 114131, 311141, 411131, 211412, 211214, 211232, 2331112\n ],\n STOP: 106\n });\n }\n\n _initStates() {\n for (let i = 0; i < this.states.length; i++) {\n this[this.states[i]] = new states128[this.states[i]](this, this.states);\n }\n }\n\n initValue(value, width, height) {\n this.pattern = [];\n this.value = value;\n this.width = width;\n this.height = height;\n this.checkSum = 0;\n this.totalUnits = 0;\n this.index = 0;\n this.position = 1;\n }\n\n addData() {\n let encodingState = {\n value: this.value,\n index: 0,\n state: \"\"\n };\n\n if (this.value.length === 0) {\n return;\n }\n\n encodingState.state =\n encodingState.previousState = this.getNextState(encodingState, this.states);\n\n this.addStart(encodingState);\n\n this.pushData(encodingState, this.states);\n\n this.addCheckSum();\n this.addStop();\n this.setBaseUnit();\n }\n\n pushData(encodingState, states) {\n const trueCondition = true;\n\n while (trueCondition) {\n this[encodingState.state].pushState(encodingState);\n\n if (encodingState.index >= encodingState.value.length) {\n break;\n }\n\n if (!encodingState.shifted) {\n encodingState.previousState = encodingState.state;\n encodingState.state = this.getNextState(encodingState, states);\n this[encodingState.state].move(encodingState);\n } else {\n let temp = encodingState.state;\n encodingState.state = encodingState.previousState;\n encodingState.previousState = temp;\n encodingState.shifted = false;\n }\n }\n }\n\n addStart(encodingState) {\n this[encodingState.state].addStart(encodingState);\n this.position = 1;\n }\n\n addCheckSum() {\n this.checksum = this.checkSum % 103;\n this.addPattern(this.checksum);\n }\n\n addStop() {\n this.addPattern(this.STOP);\n }\n\n setBaseUnit() {\n this.baseUnit = this.width / (this.totalUnits + this.quietZoneLength);\n }\n\n addPattern(code) {\n const pattern = this.characterMap[code].toString();\n let value;\n\n for (let i = 0; i < pattern.length; i++) {\n value = parseInt(pattern.charAt(i), 10);\n this.pattern.push(value);\n this.totalUnits += value;\n }\n this.checkSum += code * this.position++;\n }\n\n getNextState(encodingState, states) {\n for (let i = 0; i < states.length; i++) {\n if (this[states[i]].is(encodingState.value, encodingState.index)) {\n return states[i];\n }\n }\n\n this.invalidCharacterError(encodingState.value.charAt(encodingState.index));\n }\n}\n\nexport class Code128a extends Code128Base {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n name: \"Code 128 A\",\n states: [\"A\"]\n });\n }\n}\n\nexport class Code128b extends Code128Base {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n name: \"Code 128 B\",\n states: [\"B\"]\n });\n }\n}\n\nexport class Code128c extends Code128Base {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n name: \"Code 128 C\",\n states: [\"C\"]\n });\n }\n}\n\nexport class Code128 extends Code128Base {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n name: \"Code 128\",\n states: [\"C\", \"B\", \"A\", \"FNC4\"]\n });\n }\n}\n\nexport class CodeGS1128 extends Code128Base {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n name: \"Code GS1-128\",\n states: [\"FNC1\", \"C\", \"B\"]\n });\n }\n}\n\nfunction getSubstring(value, index, count) {\n return value.substring(index, index + count);\n}\n","import { Code39 } from './code39';\nimport deepExtend from '../../common/deep-extend';\n\nexport const Code39ExtendedBase = {\n addCharacter(character) {\n if (this.characterMap[character]) {\n this.addBase(this.characterMap[character]);\n } else if (character.charCodeAt(0) > 127) {\n this.invalidCharacterError(character);\n } else {\n this.addExtended(character.charCodeAt(0));\n }\n },\n\n addExtended(code) {\n let patterns;\n\n for (let i = 0; i < this.extendedMappings.length; i++) {\n patterns = this.extendedMappings[i].call(this, code);\n\n if (patterns) {\n for (let patternIndex = 0; patternIndex < patterns.length; patternIndex++) {\n const pattern = patterns[patternIndex];\n this.addBase(pattern);\n }\n\n this.dataLength += patterns.length - 1;\n return;\n }\n }\n },\n\n extendedMappings: [\n function(code) {\n if (97 <= code && code <= 122) {\n return [this.characterMap[this.shiftCharacters[0]], this.characterMap[String.fromCharCode(code - 32)]];\n }\n },\n function(code) {\n if (33 <= code && code <= 58) {\n return [this.characterMap[this.shiftCharacters[1]], this.characterMap[String.fromCharCode(code + 32)]];\n }\n },\n function(code) {\n if (1 <= code && code <= 26) {\n return [this.characterMap[this.shiftCharacters[2]], this.characterMap[String.fromCharCode(code + 64)]];\n }\n },\n function(code) {\n let result;\n let dataCharacter;\n\n if (!this.specialAsciiCodes[code]) {\n dataCharacter = Math.floor(code / 32) * 6 + (code - 27) % 32 + 64;\n result = [this.characterMap[this.shiftCharacters[3]], this.characterMap[String.fromCharCode(dataCharacter)]];\n } else {\n result = [];\n\n for (let i = 0; i < this.specialAsciiCodes[code].length; i++) {\n result.push(this.characterMap[this.shiftCharacters[3]]);\n result.push(this.characterMap[this.specialAsciiCodes[code][i]]);\n }\n }\n\n return result;\n }\n ],\n specialAsciiCodes: {\n \"0\": [\"U\"],\n \"64\": [\"V\"],\n \"96\": [\"W\"],\n \"127\": [\"T\", \"X\", \"Y\", \"Z\"]\n },\n shiftValuesAsciiCodes: {\n \"39\": 36,\n \"40\": 47,\n \"41\": 43,\n \"42\": 37\n },\n characterMap: {\n \"+\": false,\n \"/\": false,\n \"$\": false,\n \"%\": false\n },\n shiftCharacters: [\"SHIFT0\", \"SHIFT1\", \"SHIFT2\", \"SHIFT3\"]\n};\n\nexport class Code39Extended extends Code39 {\n initProperties() {\n super.initProperties();\n\n deepExtend(this, Code39ExtendedBase, {\n name: \"Code 39 extended\",\n characterMap: {\n SHIFT0: { \"pattern\": \"bWbwbWbWb\", \"value\": 41 },\n SHIFT1: { \"pattern\": \"bWbWbwbWb\", \"value\": 40 },\n SHIFT2: { \"pattern\": \"bWbWbWbwb\", \"value\": 39 },\n SHIFT3: { \"pattern\": \"bwbWbWbWb\", \"value\": 42 }\n }\n });\n }\n}\n","import { setDefaultOptions } from '../../common';\nimport { Encoding } from './encoding';\n\nconst extend = Object.assign;\n\nexport class Code39Base extends Encoding {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n minBaseUnitLength: 0.7\n });\n }\n\n addData() {\n const value = this.value;\n\n this.addStart();\n\n for (let idx = 0; idx < value.length; idx++) {\n this.addCharacter(value.charAt(idx));\n }\n\n if (this.options.addCheckSum) {\n this.pushCheckSum();\n }\n\n this.addStop();\n this.prepareValues();\n }\n\n addCharacter(character) {\n const characterData = this.characterMap[character];\n\n if (!characterData) {\n this.invalidCharacterError(character);\n }\n\n this.addBase(characterData);\n }\n\n addBase() { }\n}\n\nexport class Code39 extends Code39Base {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n name: \"Code 39\",\n checkSumMod: 43,\n minRatio: 2.5,\n maxRatio: 3,\n gapWidth: 1,\n splitCharacter: \"|\",\n patternMappings: {\n \"b\": \"1|\",\n \"w\": \"1|\",\n \"B\": \"ratio|\",\n \"W\": \"ratio|\"\n },\n characterMap: {\n \"0\": { \"pattern\": \"bwbWBwBwb\", \"value\": 0 },\n \"1\": { \"pattern\": \"BwbWbwbwB\", \"value\": 1 },\n \"2\": { \"pattern\": \"bwBWbwbwB\", \"value\": 2 },\n \"3\": { \"pattern\": \"BwBWbwbwb\", \"value\": 3 },\n \"4\": { \"pattern\": \"bwbWBwbwB\", \"value\": 4 },\n \"5\": { \"pattern\": \"BwbWBwbwb\", \"value\": 5 },\n \"6\": { \"pattern\": \"bwBWBwbwb\", \"value\": 6 },\n \"7\": { \"pattern\": \"bwbWbwBwB\", \"value\": 7 },\n \"8\": { \"pattern\": \"BwbWbwBwb\", \"value\": 8 },\n \"9\": { \"pattern\": \"bwBWbwBwb\", \"value\": 9 },\n \"A\": { \"pattern\": \"BwbwbWbwB\", \"value\": 10 },\n \"B\": { \"pattern\": \"bwBwbWbwB\", \"value\": 11 },\n \"C\": { \"pattern\": \"BwBwbWbwb\", \"value\": 12 },\n \"D\": { \"pattern\": \"bwbwBWbwB\", \"value\": 13 },\n \"E\": { \"pattern\": \"BwbwBWbwb\", \"value\": 14 },\n \"F\": { \"pattern\": \"bwBwBWbwb\", \"value\": 15 },\n \"G\": { \"pattern\": \"bwbwbWBwB\", \"value\": 16 },\n \"H\": { \"pattern\": \"BwbwbWBwb\", \"value\": 17 },\n \"I\": { \"pattern\": \"bwBwbWBwb\", \"value\": 18 },\n \"J\": { \"pattern\": \"bwbwBWBwb\", \"value\": 19 },\n \"K\": { \"pattern\": \"BwbwbwbWB\", \"value\": 20 },\n \"L\": { \"pattern\": \"bwBwbwbWB\", \"value\": 21 },\n \"M\": { \"pattern\": \"BwBwbwbWb\", \"value\": 22 },\n \"N\": { \"pattern\": \"bwbwBwbWB\", \"value\": 23 },\n \"O\": { \"pattern\": \"BwbwBwbWb\", \"value\": 24 },\n \"P\": { \"pattern\": \"bwBwBwbWb\", \"value\": 25 },\n \"Q\": { \"pattern\": \"bwbwbwBWB\", \"value\": 26 },\n \"R\": { \"pattern\": \"BwbwbwBWb\", \"value\": 27 },\n \"S\": { \"pattern\": \"bwBwbwBWb\", \"value\": 28 },\n \"T\": { \"pattern\": \"bwbwBwBWb\", \"value\": 29 },\n \"U\": { \"pattern\": \"BWbwbwbwB\", \"value\": 30 },\n \"V\": { \"pattern\": \"bWBwbwbwB\", \"value\": 31 },\n \"W\": { \"pattern\": \"BWBwbwbwb\", \"value\": 32 },\n \"X\": { \"pattern\": \"bWbwBwbwB\", \"value\": 33 },\n \"Y\": { \"pattern\": \"BWbwBwbwb\", \"value\": 34 },\n \"Z\": { \"pattern\": \"bWBwBwbwb\", \"value\": 35 },\n \"-\": { \"pattern\": \"bWbwbwBwB\", \"value\": 36 },\n \".\": { \"pattern\": \"BWbwbwBwb\", \"value\": 37 },\n \" \": { \"pattern\": \"bWBwbwBwb\", \"value\": 38 },\n \"$\": { \"pattern\": \"bWbWbWbwb\", \"value\": 39 },\n \"/\": { \"pattern\": \"bWbWbwbWb\", \"value\": 40 },\n \"+\": { \"pattern\": \"bWbwbWbWb\", \"value\": 41 },\n \"%\": { \"pattern\": \"bwbWbWbWb\", \"value\": 42 },\n START: { pattern: \"bWbwBwBwb\" }\n }\n });\n }\n\n initValue(value, width, height) {\n this.width = width;\n this.height = height;\n this.value = value;\n this.dataLength = value.length;\n this.pattern = [];\n this.patternString = \"\";\n }\n\n prepareValues() {\n const minBaseUnit = this.minBaseUnitLength;\n const minRatio = this.minRatio;\n const minHeight = Math.ceil(Math.max(0.15 * this.width, 24));\n let baseUnit;\n let ratio = this.maxRatio;\n\n if (this.height < minHeight) {\n throw new Error(`Insufficient height for Code39 encoding: the current height is ${this.height}px and the minimum height is ${minHeight}px.`);\n }\n\n baseUnit = this.getBaseUnit(ratio);\n\n while (baseUnit < minBaseUnit && ratio > minRatio) {\n ratio = parseFloat((ratio - 0.1).toFixed(1));\n baseUnit = this.getBaseUnit(ratio);\n }\n\n if (baseUnit < minBaseUnit) {\n let minWidth = Math.ceil(this.getBaseWidth(minRatio) * minBaseUnit);\n throw new Error(`Insufficient width for Code39 encoding: the current width is ${this.width}px and the minimum width for value \"${this.value}\" is ${minWidth}px.`);\n }\n\n this.ratio = ratio;\n this.baseUnit = baseUnit;\n this.patternString = this.patternString.substring(0, this.patternString.length - 1);\n this.pattern = this.pattern.concat(this.patternString.replace(/ratio/g, ratio).split(this.splitCharacter));\n }\n\n getBaseUnit(ratio) {\n return this.width / this.getBaseWidth(ratio);\n }\n\n getBaseWidth(ratio) {\n const characterLength = 3 * (ratio + 2);\n return this.quietZoneLength + characterLength * (this.dataLength + 2) + this.gapWidth * (this.dataLength + 1);\n }\n\n addStart() {\n this.addPattern(this.characterMap.START.pattern);\n this.addCharacterGap();\n }\n\n addBase(character) {\n this.addPattern(character.pattern);\n this.addCharacterGap();\n }\n\n addStop() {\n this.addPattern(this.characterMap.START.pattern);\n }\n\n addPattern(pattern) {\n for (let i = 0; i < pattern.length; i++) {\n this.patternString += this.patternMappings[pattern.charAt(i)];\n }\n }\n\n addCharacterGap() {\n this.patternString += this.gapWidth + this.splitCharacter;\n }\n}\n\nsetDefaultOptions(Code39, {\n addCheckSum: false\n});\n","import { Code93 } from './code93';\nimport { Code39ExtendedBase } from './code39-extended';\nimport deepExtend from '../../common/deep-extend';\n\nexport class Code93Extended extends Code93 {\n initProperties() {\n super.initProperties();\n\n deepExtend(this, Code39ExtendedBase, {\n name: \"Code 93 extended\",\n pushCheckSum: function() {\n const checkValues = this._getCheckValues();\n let value;\n\n this.checksum = checkValues.join(\"\");\n\n for (let i = 0; i < checkValues.length; i++) {\n value = checkValues[i];\n\n if (this.shiftValuesAsciiCodes[value]) {\n this.addExtended(this.shiftValuesAsciiCodes[value]);\n } else {\n const characterByValue = this._findCharacterByValue(value);\n this.addPattern(this.characterMap[characterByValue].pattern);\n }\n }\n }\n });\n }\n}\n","import { Code39Base } from './code39';\n\nconst extend = Object.assign;\n\nexport class Code93 extends Code39Base {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n name: \"Code 93\",\n cCheckSumTotal: 20,\n kCheckSumTotal: 15,\n checkSumMod: 47,\n characterMap: {\n \"0\": { \"pattern\": \"131112\", \"value\": 0 },\n \"1\": { \"pattern\": \"111213\", \"value\": 1 },\n \"2\": { \"pattern\": \"111312\", \"value\": 2 },\n \"3\": { \"pattern\": \"111411\", \"value\": 3 },\n \"4\": { \"pattern\": \"121113\", \"value\": 4 },\n \"5\": { \"pattern\": \"121212\", \"value\": 5 },\n \"6\": { \"pattern\": \"121311\", \"value\": 6 },\n \"7\": { \"pattern\": \"111114\", \"value\": 7 },\n \"8\": { \"pattern\": \"131211\", \"value\": 8 },\n \"9\": { \"pattern\": \"141111\", \"value\": 9 },\n \"A\": { \"pattern\": \"211113\", \"value\": 10 },\n \"B\": { \"pattern\": \"211212\", \"value\": 11 },\n \"C\": { \"pattern\": \"211311\", \"value\": 12 },\n \"D\": { \"pattern\": \"221112\", \"value\": 13 },\n \"E\": { \"pattern\": \"221211\", \"value\": 14 },\n \"F\": { \"pattern\": \"231111\", \"value\": 15 },\n \"G\": { \"pattern\": \"112113\", \"value\": 16 },\n \"H\": { \"pattern\": \"112212\", \"value\": 17 },\n \"I\": { \"pattern\": \"112311\", \"value\": 18 },\n \"J\": { \"pattern\": \"122112\", \"value\": 19 },\n \"K\": { \"pattern\": \"132111\", \"value\": 20 },\n \"L\": { \"pattern\": \"111123\", \"value\": 21 },\n \"M\": { \"pattern\": \"111222\", \"value\": 22 },\n \"N\": { \"pattern\": \"111321\", \"value\": 23 },\n \"O\": { \"pattern\": \"121122\", \"value\": 24 },\n \"P\": { \"pattern\": \"131121\", \"value\": 25 },\n \"Q\": { \"pattern\": \"212112\", \"value\": 26 },\n \"R\": { \"pattern\": \"212211\", \"value\": 27 },\n \"S\": { \"pattern\": \"211122\", \"value\": 28 },\n \"T\": { \"pattern\": \"211221\", \"value\": 29 },\n \"U\": { \"pattern\": \"221121\", \"value\": 30 },\n \"V\": { \"pattern\": \"222111\", \"value\": 31 },\n \"W\": { \"pattern\": \"112122\", \"value\": 32 },\n \"X\": { \"pattern\": \"112221\", \"value\": 33 },\n \"Y\": { \"pattern\": \"122121\", \"value\": 34 },\n \"Z\": { \"pattern\": \"123111\", \"value\": 35 },\n \"-\": { \"pattern\": \"121131\", \"value\": 36 },\n \".\": { \"pattern\": \"311112\", \"value\": 37 },\n \" \": { \"pattern\": \"311211\", \"value\": 38 },\n \"$\": { \"pattern\": \"321111\", \"value\": 39 },\n \"/\": { \"pattern\": \"112131\", \"value\": 40 },\n \"+\": { \"pattern\": \"113121\", \"value\": 41 },\n \"%\": { \"pattern\": \"211131\", \"value\": 42 },\n SHIFT0: { \"pattern\": \"122211\", \"value\": 46 },\n SHIFT1: { \"pattern\": \"311121\", \"value\": 45 },\n SHIFT2: { \"pattern\": \"121221\", \"value\": 43 },\n SHIFT3: { \"pattern\": \"312111\", \"value\": 44 },\n START: { \"pattern\": \"111141\" },\n TERMINATION_BAR: \"1\"\n }\n });\n }\n\n initValue(value, width, height) {\n this.value = value;\n this.width = width;\n this.height = height;\n this.pattern = [];\n this.values = [];\n this.dataLength = value.length;\n }\n\n prepareValues() {\n let minHeight = Math.ceil(Math.max(0.15 * this.width, 24));\n\n if (this.height < minHeight) {\n throw new Error(`Insufficient height for Code93 encoding: the current height is ${this.height}px, the minimum required height is ${minHeight}px.`);\n }\n\n this.setBaseUnit();\n\n if (this.baseUnit < this.minBaseUnitLength) {\n const minWidth = Math.ceil(this.minBaseUnitLength * (this.width / this.baseUnit));\n throw new Error(`Insufficient width for Code93 encoding: the current width is ${this.width}px and the minimum required width for value \"${this.value}\" is ${minWidth}px.`);\n }\n }\n\n setBaseUnit() {\n const checkSumLength = 2;\n\n this.baseUnit = this.width / (9 * (this.dataLength + 2 + checkSumLength) + this.quietZoneLength + 1);\n }\n\n addStart() {\n let pattern = this.characterMap.START.pattern;\n this.addPattern(pattern);\n }\n\n addStop() {\n this.addStart();\n this.pattern.push(this.characterMap.TERMINATION_BAR);\n }\n\n addBase(charData) {\n this.addPattern(charData.pattern);\n this.values.push(charData.value);\n }\n\n pushCheckSum() {\n const checkValues = this._getCheckValues();\n let charData;\n\n this.checksum = checkValues.join(\"\");\n\n for (let i = 0; i < checkValues.length; i++) {\n charData = this.characterMap[this._findCharacterByValue(checkValues[i])];\n this.addPattern(charData.pattern);\n }\n }\n\n _getCheckValues() {\n const values = this.values;\n const length = values.length;\n let wightedSum = 0;\n let cValue;\n let kValue;\n let idx;\n\n for (idx = length - 1; idx >= 0; idx--) {\n wightedSum += this.weightedValue(values[idx], length - idx, this.cCheckSumTotal);\n }\n\n cValue = wightedSum % this.checkSumMod;\n\n wightedSum = this.weightedValue(cValue, 1, this.kCheckSumTotal);\n\n for (idx = length - 1; idx >= 0; idx--) {\n wightedSum += this.weightedValue(values[idx], length - idx + 1, this.kCheckSumTotal);\n }\n\n kValue = wightedSum % this.checkSumMod;\n return [cValue, kValue];\n }\n\n _findCharacterByValue(value) {\n for (let character in this.characterMap) {\n if (this.characterMap[character].value === value) {\n return character;\n }\n }\n }\n\n weightedValue(value, index, total) {\n return (index % total || total) * value;\n }\n\n addPattern(pattern) {\n let value;\n\n for (let i = 0; i < pattern.length; i++) {\n value = parseInt(pattern.charAt(i), 10);\n this.pattern.push(value);\n }\n }\n}\n","import { Encoding } from './encoding';\n\nconst extend = Object.assign;\n\nexport class Ean13 extends Encoding {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n name: \"EAN 13\",\n keyTable: [\n '000000',\n '001011',\n '001101',\n '001110',\n '010011',\n '011001',\n '011100',\n '010101',\n '010110',\n '011010'\n ],\n characterMap: {\n digits: [\n [3, 2, 1, 1],\n [2, 2, 2, 1],\n [2, 1, 2, 2],\n [1, 4, 1, 1],\n [1, 1, 3, 2],\n [1, 2, 3, 1],\n [1, 1, 1, 4],\n [1, 3, 1, 2],\n [1, 2, 1, 3],\n [3, 1, 1, 2]\n ],\n start: [1, 1, 1],\n middle: [1, 1, 1, 1, 1]\n }\n });\n }\n\n initValue(value, width, height) {\n const valueAsString = String(value);\n\n if (valueAsString.length !== 12 || /\\D/.test(valueAsString)) {\n throw new Error('The value of the \"EAN13\" encoding should be 12 symbols');\n }\n\n this.pattern = [];\n this.options.height = height;\n this.baseUnit = width / (95 + this.quietZoneLength);\n this.value = valueAsString;\n this.checksum = this.calculateChecksum();\n this.leftKey = valueAsString[0];\n this.leftPart = valueAsString.substr(1, 6);\n this.rightPart = valueAsString.substr(7) + this.checksum;\n }\n\n addData() {\n this.addPieces(this.characterMap.start);\n this.addSide(this.leftPart, this.leftKey);\n this.addPieces(this.characterMap.middle);\n this.addSide(this.rightPart);\n this.addPieces(this.characterMap.start);\n }\n\n addSide(leftPart, key) {\n for (let i = 0; i < leftPart.length; i++) {\n if (key && parseInt(this.keyTable[key].charAt(i), 10)) {\n this.addPieces(Array.prototype.slice.call(this.characterMap.digits[leftPart.charAt(i)]).reverse(), true);\n } else {\n this.addPieces(this.characterMap.digits[leftPart.charAt(i)], true);\n }\n }\n }\n\n addPieces(arrToAdd, limitedHeight) {\n for (let i = 0; i < arrToAdd.length; i++) {\n if (limitedHeight) {\n this.pattern.push({\n y1: 0,\n y2: this.options.height * 0.95,\n width: arrToAdd[i]\n });\n } else {\n this.pattern.push(arrToAdd[i]);\n }\n }\n }\n\n calculateChecksum() {\n let odd = 0,\n even = 0,\n value = this.value.split(\"\").reverse().join(\"\");\n\n for (let i = 0; i < value.length; i++) {\n if (i % 2) {\n even += parseInt(value.charAt(i), 10);\n } else {\n odd += parseInt(value.charAt(i), 10);\n }\n }\n\n let checksum = (10 - ((3 * odd + even) % 10)) % 10;\n\n return checksum;\n }\n}\n","import { Ean13 } from './ean13';\n\nconst extend = Object.assign;\n\nexport class Ean8 extends Ean13 {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n name: \"EAN 8\"\n });\n }\n\n initValue(value, width, height) {\n if (value.length !== 7 || /\\D/.test(value)) {\n throw new Error('Invalid value provided');\n }\n\n this.value = value;\n this.options.height = height;\n this.checksum = this.calculateChecksum(this.value);\n this.leftPart = this.value.substr(0, 4);\n this.rightPart = this.value.substr(4) + this.checksum;\n this.pattern = [];\n this.baseUnit = width / (67 + this.quietZoneLength);\n }\n}\n","import {\n Class,\n defined,\n setDefaultOptions\n} from '../../common';\n\nconst DEFAULT_QUIET_ZONE_LENGTH = 10;\n\nexport class Encoding extends Class {\n constructor(options) {\n super();\n this.setOptions(options);\n this.initProperties();\n }\n\n initProperties() { }\n\n setOptions(options) {\n this.options = Object.assign({}, this.options, options);\n this.quietZoneLength = this.options.addQuietZone ? 2 * this.options.quietZoneLength : 0;\n }\n\n encode(value, width, height) {\n const convertedValue = defined(value) ? String(value) : value;\n\n this.initValue(convertedValue, width, height);\n\n if (this.options.addQuietZone) {\n this.addQuietZone();\n }\n\n this.addData();\n\n if (this.options.addQuietZone) {\n this.addQuietZone();\n }\n\n return {\n baseUnit: this.baseUnit,\n pattern: this.pattern\n };\n }\n\n initValue() { }\n\n addQuietZone() {\n this.pattern.push(this.options.quietZoneLength || DEFAULT_QUIET_ZONE_LENGTH);\n }\n\n addData() { }\n\n invalidCharacterError(character) {\n throw new Error(`Character \"${character}\" is not valid for symbology ${this.name}.`);\n }\n}\n\nsetDefaultOptions(Encoding, {\n quietZoneLength: DEFAULT_QUIET_ZONE_LENGTH,\n addQuietZone: true,\n addCheckSum: true\n});\n","import { Code11 } from './code11';\nimport { Code39 } from './code39';\nimport { Code39Extended } from './code39-extended';\nimport { Code93 } from './code93';\nimport { Code93Extended } from './code93-extended';\nimport { Postnet } from './postnet';\n\nimport {\n Code128,\n Code128a,\n Code128b,\n Code128c,\n CodeGS1128\n} from './code128';\n\nimport {\n MsiMod10,\n MsiMod11,\n MsiMod1010,\n MsiMod1110\n} from './msi';\n\nimport { Ean8 } from './ean8';\nimport { Ean13 } from './ean13';\n\nexport const Encodings = {\n code11: Code11,\n\n code39: Code39,\n code39extended: Code39Extended,\n\n code93: Code93,\n code93extended: Code93Extended,\n\n code128: Code128,\n code128a: Code128a,\n code128b: Code128b,\n code128c: Code128c,\n [\"gs1-128\"]: CodeGS1128,\n\n msimod10: MsiMod10,\n msimod11: MsiMod11,\n msimod1010: MsiMod1010,\n msimod1110: MsiMod1110,\n\n postnet: Postnet,\n\n ean8: Ean8,\n ean13: Ean13\n};\n","import { Encoding } from './encoding';\n\nconst extend = Object.assign;\n\nexport class MsiBase extends Encoding {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n characterMap: [\n \"12121212\",\n \"12121221\",\n \"12122112\",\n \"12122121\",\n \"12211212\",\n \"12211221\",\n \"12212112\",\n \"12212121\",\n \"21121212\",\n \"21121221\"\n ],\n START: \"21\",\n STOP: \"121\",\n checkSumType: \"\",\n checkSums: checkSums\n });\n }\n\n initValue(value, width) {\n this.pattern = [];\n this.value = value;\n this.checkSumLength = 0;\n this.width = width;\n }\n\n setBaseUnit() {\n const startStopLength = 7;\n\n this.baseUnit = this.width /\n (12 * (this.value.length + this.checkSumLength) + this.quietZoneLength + startStopLength);\n }\n\n addData() {\n const value = this.value;\n\n this.addPattern(this.START);\n\n for (let i = 0; i < value.length; i++) {\n this.addCharacter(value.charAt(i));\n }\n\n if (this.options.addCheckSum) {\n this.addCheckSum();\n }\n\n this.addPattern(this.STOP);\n this.setBaseUnit();\n }\n\n addCharacter(character) {\n const pattern = this.characterMap[character];\n\n if (!pattern) {\n this.invalidCharacterError(character);\n }\n\n this.addPattern(pattern);\n }\n\n addPattern(pattern) {\n for (let i = 0; i < pattern.length; i++) {\n this.pattern.push(parseInt(pattern.charAt(i), 10));\n }\n }\n\n addCheckSum() {\n const checkSumFunction = this.checkSums[this.checkSumType];\n const checkValues = checkSumFunction.call(this.checkSums, this.value);\n\n this.checksum = checkValues.join(\"\");\n\n for (let i = 0; i < checkValues.length; i++) {\n this.checkSumLength++;\n this.addPattern(this.characterMap[checkValues[i]]);\n }\n }\n}\n\nexport class MsiMod10 extends MsiBase {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n name: \"MSI Modulo10\",\n checkSumType: \"Modulo10\"\n });\n }\n}\n\nexport class MsiMod11 extends MsiBase {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n name: \"MSI Modulo11\",\n checkSumType: \"Modulo11\"\n });\n }\n}\n\nexport class MsiMod1010 extends MsiBase {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n name: \"MSI Modulo10 Modulo10\",\n checkSumType: \"Modulo10Modulo10\"\n });\n }\n}\n\nexport class MsiMod1110 extends MsiBase {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n name: \"MSI Modulo11 Modulo10\",\n checkSumType: \"Modulo11Modulo10\"\n });\n }\n}\n\nconst checkSums = {\n Modulo10(value) {\n let checkValues = [0, \"\"],\n odd = value.length % 2,\n idx,\n evenSum,\n oddSum;\n\n for (idx = 0; idx < value.length; idx++) {\n checkValues[(idx + odd) % 2] += parseInt(value.charAt(idx), 10);\n }\n\n oddSum = checkValues[0];\n evenSum = (checkValues[1] * 2).toString();\n\n for (idx = 0; idx < evenSum.length; idx++) {\n oddSum += parseInt(evenSum.charAt(idx), 10);\n }\n\n return [(10 - (oddSum % 10)) % 10];\n },\n Modulo11(value) {\n let weightedSum = 0,\n mod = 11,\n length = value.length,\n weight,\n checkValue;\n\n for (let i = 0; i < length; i++) {\n weight = ((length - i) % 6 || 6) + 1;\n weightedSum += weight * value.charAt(i);\n }\n\n checkValue = (mod - weightedSum % mod) % mod;\n\n if (checkValue !== 10) {\n return [checkValue];\n }\n\n return [1, 0];\n },\n Modulo11Modulo10(value) {\n let checkValues = this.Modulo11(value),\n mod11Value;\n mod11Value = value + checkValues[0];\n\n return checkValues.concat(this.Modulo10(mod11Value));\n },\n Modulo10Modulo10(value) {\n let checkValues = this.Modulo10(value),\n mod10Value;\n mod10Value = value + checkValues[0];\n\n return checkValues.concat(this.Modulo10(mod10Value));\n }\n};\n","import { Encoding } from './encoding';\nimport inArray from '../../common/in-array';\n\nconst numberRegex = /^\\d+$/;\nconst extend = Object.assign;\n\nexport class Postnet extends Encoding {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n name: \"Postnet\",\n START: \"2\",\n VALID_CODE_LENGTHS: [5, 9, 11],\n DIGIT_SEPARATOR: \"-\",\n characterMap: [\"22111\", \"11122\", \"11212\", \"11221\", \"12112\", \"12121\", \"12211\", \"21112\", \"21121\", \"21211\"]\n });\n }\n\n initValue(value, width, height) {\n this.height = height;\n this.width = width;\n this.baseHeight = height / 2;\n this.value = value.replace(new RegExp(this.DIGIT_SEPARATOR, \"g\"), \"\");\n this.pattern = [];\n this.validate(this.value);\n this.checkSum = 0;\n this.setBaseUnit();\n }\n\n addData() {\n const value = this.value;\n\n this.addPattern(this.START);\n\n for (let i = 0; i < value.length; i++) {\n this.addCharacter(value.charAt(i));\n }\n\n if (this.options.addCheckSum) {\n this.addCheckSum();\n }\n\n this.addPattern(this.START);\n this.pattern.pop();\n }\n\n addCharacter(character) {\n const pattern = this.characterMap[character];\n this.checkSum += parseInt(character, 10);\n this.addPattern(pattern);\n }\n\n addCheckSum() {\n this.checksum = (10 - (this.checkSum % 10)) % 10;\n this.addCharacter(this.checksum);\n }\n\n setBaseUnit() {\n const startStopLength = 3;\n\n this.baseUnit = this.width / ((this.value.length + 1) * 10 + startStopLength + this.quietZoneLength);\n }\n\n validate(value) {\n if (!numberRegex.test(value)) {\n this.invalidCharacterError(value.match(/[^0-9]/)[0]);\n }\n\n if (!inArray(value.length, this.VALID_CODE_LENGTHS)) {\n throw new Error(\"Invalid value length. Valid lengths for the Postnet symbology are \" + this.VALID_CODE_LENGTHS.join(\",\") + \".\");\n }\n }\n\n addPattern(pattern) {\n let y1;\n\n for (let i = 0; i < pattern.length; i++) {\n y1 = this.height - this.baseHeight * pattern.charAt(i);\n this.pattern.push({ width: 1, y1: y1, y2: this.height });\n this.pattern.push(1);\n }\n }\n}\n","export function surfaceSize(element, surfaceType) {\n const display = element.style.display;\n if (surfaceType === 'canvas') {\n // The Canvas default size is different from SVG for\n // inline-block containers such as the Barcode and QR Code.\n //\n // Switch to display: block to get same dimensions.\n element.style.display = 'block';\n }\n\n const size = {\n width: element.clientWidth,\n height: element.clientHeight\n };\n\n element.style.display = display;\n\n return size;\n}\n","export * from './chart/api-elements';\n\nexport { default as Aggregates } from './chart/aggregates/aggregates';\nexport { default as AreaChart } from './chart/area-chart/area-chart';\nexport { default as AreaSegment } from './chart/area-chart/area-segment';\nexport { default as AxisGroupRangeTracker } from './chart/axis-group-range-tracker';\nexport { default as Bar } from './chart/bar-chart/bar';\nexport { default as BarChart } from './chart/bar-chart/bar-chart';\nexport { default as BarLabel } from './chart/bar-chart/bar-label';\nexport { default as BoxPlotChart } from './chart/box-plot-chart/box-plot-chart';\nexport { default as BoxPlot } from './chart/box-plot-chart/box-plot';\nexport { default as BubbleChart } from './chart/bubble-chart/bubble-chart';\nexport { default as Bullet } from './chart/bullet-chart/bullet';\nexport { default as BulletChart } from './chart/bullet-chart/bullet-chart';\nexport { default as CandlestickChart } from './chart/candlestick-chart/candlestick-chart';\nexport { default as Candlestick } from './chart/candlestick-chart/candlestick';\nexport { default as CategoricalChart } from './chart/categorical-chart';\nexport { default as CategoricalErrorBar } from './chart/error-bars/categorical-error-bar';\nexport { default as CategoricalPlotArea } from './chart/plotarea/categorical-plotarea';\nexport { default as Chart } from './chart/chart';\nexport { default as ChartContainer } from './chart/chart-container';\nexport { default as ClipAnimation } from './chart/animations/clip-animation';\nexport { default as ClusterLayout } from './chart/layout/cluster-layout';\nexport { default as Crosshair } from './chart/crosshair/crosshair';\nexport { default as CrosshairTooltip } from './chart/crosshair/crosshair-tooltip';\nexport { default as DefaultAggregates } from './chart/aggregates/default-aggregates';\nexport { default as DonutChart } from './chart/donut-chart/donut-chart';\nexport { default as DonutPlotArea } from './chart/plotarea/donut-plotarea';\nexport { default as DonutSegment } from './chart/donut-chart/donut-segment';\nexport { default as ErrorBarBase } from './chart/error-bars/error-bar-base';\nexport { default as ErrorRangeCalculator } from './chart/error-bars/error-range-calculator';\nexport { default as Highlight } from './chart/highlight';\nexport { default as SharedTooltip } from './chart/tooltip/shared-tooltip';\nexport { default as Legend } from './chart/legend/legend';\nexport { default as LegendItem } from './chart/legend/legend-item';\nexport { default as LegendLayout } from './chart/legend/legend-layout';\nexport { default as LineChart } from './chart/line-chart/line-chart';\nexport { default as LinePoint } from './chart/line-chart/line-point';\nexport { default as LineSegment } from './chart/line-chart/line-segment';\nexport { default as Pane } from './chart/pane';\nexport { default as PieAnimation } from './chart/animations/pie-animation';\nexport { default as PieChart } from './chart/pie-chart/pie-chart';\nexport { default as PieChartMixin } from './chart/mixins/pie-chart-mixin';\nexport { default as PiePlotArea } from './chart/plotarea/pie-plotarea';\nexport { default as PieSegment } from './chart/pie-chart/pie-segment';\nexport { default as PlotAreaBase } from './chart/plotarea/plotarea-base';\nexport { default as PlotAreaEventsMixin } from './chart/mixins/plotarea-events-mixin';\nexport { default as PlotAreaFactory } from './chart/plotarea/plotarea-factory';\nexport { default as PointEventsMixin } from './chart/mixins/point-events-mixin';\nexport { default as RangeBar } from './chart/range-bar-chart/range-bar';\nexport { default as RangeBarChart } from './chart/range-bar-chart/range-bar-chart';\nexport { default as RangeAreaPoint } from './chart/range-area-chart/range-area-point';\nexport { default as RangeAreaChart } from './chart/range-area-chart/range-area-chart';\nexport { default as ScatterChart } from './chart/scatter-charts/scatter-chart';\nexport { default as ScatterErrorBar } from './chart/error-bars/scatter-error-bar';\nexport { default as ScatterLineChart } from './chart/scatter-charts/scatter-line-chart';\nexport { default as Selection } from './chart/selection';\nexport { default as SeriesAggregator } from './chart/aggregates/series-aggregator';\nexport { default as SeriesBinder } from './chart/series-binder';\nexport { default as SplineSegment } from './chart/line-chart/spline-segment';\nexport { default as SplineAreaSegment } from './chart/area-chart/spline-area-segment';\nexport { default as StackWrap } from './chart/layout/stack-wrap';\nexport { default as Tooltip } from './chart/tooltip/tooltip';\nexport { default as OHLCChart } from './chart/ohlc-chart/ohlc-chart';\nexport { default as OHLCPoint } from './chart/ohlc-chart/ohlc-point';\nexport { default as WaterfallChart } from './chart/waterfall-chart/waterfall-chart';\nexport { default as WaterfallSegment } from './chart/waterfall-chart/waterfall-segment';\nexport { default as XYPlotArea } from './chart/plotarea/xy-plotarea';\nexport { default as MousewheelZoom } from './chart/pan-and-zoom/mousewheel-zoom';\nexport { default as ZoomSelection } from './chart/pan-and-zoom/zoom-selection';\nexport { default as Pannable } from './chart/pan-and-zoom/pannable';\n\nexport * from './chart/utils';","import { MIN_VALUE, MAX_VALUE } from '../../common/constants';\nimport { defined, isNumber } from '../../common';\n\nimport countNumbers from '../utils/count-numbers';\n\nconst Aggregates = {\n min: function(values) {\n const length = values.length;\n let min = MAX_VALUE;\n\n for (let i = 0; i < length; i++) {\n const value = values[i];\n if (isNumber(value)) {\n min = Math.min(min, value);\n }\n }\n\n return min === MAX_VALUE ? values[0] : min;\n },\n\n max: function(values) {\n const length = values.length;\n let max = MIN_VALUE;\n\n for (let i = 0; i < length; i++) {\n const value = values[i];\n if (isNumber(value)) {\n max = Math.max(max, value);\n }\n }\n\n return max === MIN_VALUE ? values[0] : max;\n },\n\n sum: function(values) {\n const length = values.length;\n let sum = 0;\n\n for (let i = 0; i < length; i++) {\n const value = values[i];\n if (isNumber(value)) {\n sum += value;\n }\n }\n\n return sum;\n },\n\n sumOrNull: function(values) {\n let result = null;\n\n if (countNumbers(values)) {\n result = Aggregates.sum(values);\n }\n\n return result;\n },\n\n count: function(values) {\n const length = values.length;\n let count = 0;\n\n for (let i = 0; i < length; i++) {\n const value = values[i];\n if (value !== null && defined(value)) {\n count++;\n }\n }\n\n return count;\n },\n\n avg: function(values) {\n const count = countNumbers(values);\n let result = values[0];\n\n if (count > 0) {\n result = Aggregates.sum(values) / count;\n }\n\n return result;\n },\n\n first: function(values) {\n const length = values.length;\n\n for (let i = 0; i < length; i++) {\n const value = values[i];\n if (value !== null && defined(value)) {\n return value;\n }\n }\n\n return values[0];\n }\n};\n\nexport default Aggregates;","import { Class } from '../../common';\n\nclass DefaultAggregates extends Class {\n constructor() {\n super();\n\n this._defaults = {};\n }\n\n register(seriesTypes, aggregates) {\n for (let i = 0; i < seriesTypes.length; i++) {\n this._defaults[seriesTypes[i]] = aggregates;\n }\n }\n\n query(seriesType) {\n return this._defaults[seriesType];\n }\n}\n\nDefaultAggregates.current = new DefaultAggregates();\n\nexport default DefaultAggregates;","import Aggregates from './aggregates';\n\nimport { Class, defined, inArray, isArray, isFunction, isNumber, isObject } from '../../common';\n\nclass SeriesAggregator extends Class {\n constructor(series, binder, defaultAggregates) {\n super();\n\n const canonicalFields = binder.canonicalFields(series);\n const valueFields = binder.valueFields(series);\n const sourceFields = binder.sourceFields(series, canonicalFields);\n const seriesFields = this._seriesFields = [];\n const defaults = defaultAggregates.query(series.type);\n const rootAggregate = series.aggregate || defaults;\n\n this._series = series;\n this._binder = binder;\n\n for (let i = 0; i < canonicalFields.length; i++) {\n const field = canonicalFields[i];\n let fieldAggregate;\n\n if (isObject(rootAggregate)) {\n fieldAggregate = rootAggregate[field];\n } else if (i === 0 || inArray(field, valueFields)) {\n fieldAggregate = rootAggregate;\n } else {\n break;\n }\n\n if (fieldAggregate) {\n seriesFields.push({\n canonicalName: field,\n name: sourceFields[i],\n transform: isFunction(fieldAggregate) ? fieldAggregate : Aggregates[fieldAggregate]\n });\n }\n }\n }\n\n aggregatePoints(srcPoints, group) {\n const { _series: series, _seriesFields: seriesFields } = this;\n const data = this._bindPoints(srcPoints || []);\n const firstDataItem = data.dataItems[0];\n let result = {};\n\n if (firstDataItem && !isNumber(firstDataItem) && !isArray(firstDataItem)) {\n const fn = function() {};\n fn.prototype = firstDataItem;\n result = new fn();\n }\n\n for (let i = 0; i < seriesFields.length; i++) {\n const field = seriesFields[i];\n const srcValues = this._bindField(data.values, field.canonicalName);\n const value = field.transform(srcValues, series, data.dataItems, group);\n\n if (value !== null && isObject(value) && !defined(value.length) && !(value instanceof Date)) {\n result = value;\n break;\n } else {\n if (defined(value)) {\n setValue(field.name, result, value);\n }\n }\n }\n\n return result;\n }\n\n _bindPoints(points) {\n const { _binder: binder, _series: series } = this;\n const values = [];\n const dataItems = [];\n\n for (let i = 0; i < points.length; i++) {\n const pointIx = points[i];\n\n values.push(binder.bindPoint(series, pointIx));\n dataItems.push(series.data[pointIx]);\n }\n\n return {\n values: values,\n dataItems: dataItems\n };\n }\n\n _bindField(data, field) {\n const values = [];\n const count = data.length;\n\n for (let i = 0; i < count; i++) {\n const item = data[i];\n const valueFields = item.valueFields;\n let value;\n\n if (defined(valueFields[field])) {\n value = valueFields[field];\n } else {\n value = item.fields[field];\n }\n\n values.push(value);\n }\n\n return values;\n }\n}\n\nfunction setValue(fieldName, target, value) {\n let parentObj = target;\n let field = fieldName;\n\n if (fieldName.indexOf(\".\") > -1) {\n const parts = fieldName.split(\".\");\n\n while (parts.length > 1) {\n field = parts.shift();\n if (!defined(parentObj[field])) {\n parentObj[field] = {};\n }\n parentObj = parentObj[field];\n }\n field = parts.shift();\n }\n\n parentObj[field] = value;\n}\n\nexport default SeriesAggregator;","import './animations/bar-chart-animation';\nimport './animations/bubble-animation';\nimport './animations/fade-in-animation';\nimport './animations/clip-animation';\nimport './animations/pie-animation';","import { drawing as draw, geometry as geom } from '@progress/kendo-drawing';\n\nimport { INITIAL_ANIMATION_DURATION, BAR, START_SCALE } from '../constants';\n\nimport { X, Y } from '../../common/constants';\nimport { interpolateValue, setDefaultOptions } from '../../common';\n\nclass BarChartAnimation extends draw.Animation {\n\n setup() {\n const { element, options } = this;\n const bbox = element.bbox();\n\n if (bbox) {\n this.origin = options.origin;\n const axis = options.vertical ? Y : X;\n\n const fromScale = this.fromScale = new geom.Point(1, 1);\n fromScale[axis] = START_SCALE;\n\n element.transform(geom.transform()\n .scale(fromScale.x, fromScale.y)\n );\n } else {\n this.abort();\n }\n }\n\n step(pos) {\n const scaleX = interpolateValue(this.fromScale.x, 1, pos);\n const scaleY = interpolateValue(this.fromScale.y, 1, pos);\n\n this.element.transform(geom.transform()\n .scale(scaleX, scaleY, this.origin)\n );\n }\n\n abort() {\n super.abort();\n this.element.transform(null);\n }\n}\n\nsetDefaultOptions(BarChartAnimation, {\n duration: INITIAL_ANIMATION_DURATION\n});\n\ndraw.AnimationFactory.current.register(BAR, BarChartAnimation);\n\nexport default BarChartAnimation;","import { drawing as draw, geometry as geom } from '@progress/kendo-drawing';\n\nimport { START_SCALE, BUBBLE } from '../constants';\n\nimport { setDefaultOptions } from '../../common';\n\nclass BubbleAnimation extends draw.Animation {\n setup() {\n const center = this.center = this.element.bbox().center();\n this.element.transform(geom.transform()\n .scale(START_SCALE, START_SCALE, center)\n );\n }\n\n step(pos) {\n this.element.transform(geom.transform()\n .scale(pos, pos, this.center)\n );\n }\n}\n\nsetDefaultOptions(BubbleAnimation, {\n easing: \"easeOutElastic\"\n});\n\ndraw.AnimationFactory.current.register(BUBBLE, BubbleAnimation);\n\nexport default BubbleAnimation;","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport { INITIAL_ANIMATION_DURATION } from '../constants';\n\nimport { interpolateValue, setDefaultOptions } from '../../common';\n\nclass ClipAnimation extends draw.Animation {\n setup() {\n this._setEnd(this.options.box.x1);\n }\n\n step(pos) {\n const box = this.options.box;\n this._setEnd(interpolateValue(box.x1, box.x2, pos));\n }\n\n _setEnd(x) {\n const element = this.element;\n const segments = element.segments;\n const topRight = segments[1].anchor();\n const bottomRight = segments[2].anchor();\n\n element.suspend();\n topRight.setX(x);\n element.resume();\n bottomRight.setX(x);\n }\n}\n\nsetDefaultOptions(ClipAnimation, {\n duration: INITIAL_ANIMATION_DURATION\n});\n\ndraw.AnimationFactory.current.register(\"clip\", ClipAnimation);\n\nexport default ClipAnimation;","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport { FADEIN } from '../constants';\n\nimport { setDefaultOptions } from '../../common';\n\nclass FadeInAnimation extends draw.Animation {\n setup() {\n this.fadeTo = this.element.opacity();\n this.element.opacity(0);\n }\n\n step(pos) {\n this.element.opacity(pos * this.fadeTo);\n }\n}\n\nsetDefaultOptions(FadeInAnimation, {\n duration: 200,\n easing: \"linear\"\n});\n\ndraw.AnimationFactory.current.register(FADEIN, FadeInAnimation);\n\nexport default FadeInAnimation;","import { drawing as draw, geometry as geom } from '@progress/kendo-drawing';\n\nimport { START_SCALE, INITIAL_ANIMATION_DURATION, PIE } from '../constants';\n\nimport { setDefaultOptions } from '../../common';\n\nclass PieAnimation extends draw.Animation {\n setup() {\n this.element.transform(geom.transform()\n .scale(START_SCALE, START_SCALE, this.options.center)\n );\n }\n\n step(pos) {\n this.element.transform(geom.transform()\n .scale(pos, pos, this.options.center)\n );\n }\n}\n\nsetDefaultOptions(PieAnimation, {\n easing: \"easeOutElastic\",\n duration: INITIAL_ANIMATION_DURATION\n});\n\ndraw.AnimationFactory.current.register(PIE, PieAnimation);\n\nexport default PieAnimation;","export { default as ChartAxis } from './api-elements/chart-axis';\nexport { default as ChartPane } from './api-elements/chart-pane';\nexport { default as ChartPlotArea } from './api-elements/chart-plotarea';\nexport { default as findAxisByName } from './api-elements/find-axis-by-name';","import { Class } from '../../common';\n\nclass ChartAxis extends Class {\n constructor(axis) {\n super();\n\n this._axis = axis;\n this.options = axis.options;\n }\n\n value(point) {\n const axis = this._axis;\n const value = axis.getCategory ? axis.getCategory(point) : axis.getValue(point);\n\n return value;\n }\n\n slot(from, to, limit = true) {\n return this._axis.slot(from, to, limit);\n }\n\n range() {\n return this._axis.range();\n }\n\n valueRange() {\n return this._axis.valueRange();\n }\n}\n\nexport default ChartAxis;","import findAxisByName from './find-axis-by-name';\n\nclass ChartPane {\n constructor(pane) {\n this.visual = pane.visual;\n this.chartsVisual = pane.chartContainer.visual;\n this._pane = pane;\n }\n\n findAxisByName(name) {\n return findAxisByName(name, this._pane.axes);\n }\n}\n\nexport default ChartPane;","import { Class } from '../../common';\n\nclass ChartPlotArea extends Class {\n constructor(plotArea) {\n super();\n\n this._plotArea = plotArea;\n this.visual = plotArea.visual;\n this.backgroundVisual = plotArea._bgVisual;\n }\n}\n\nexport default ChartPlotArea;","import ChartAxis from './chart-axis';\n\nexport default function findAxisByName(name, axes) {\n for (let idx = 0; idx < axes.length; idx++) {\n if (axes[idx].options.name === name) {\n axes[idx].prepareUserOptions();\n return new ChartAxis(axes[idx]);\n }\n }\n}","import LineChart from '../line-chart/line-chart';\nimport LinePoint from '../line-chart/line-point';\n\nimport AreaSegment from './area-segment';\nimport StepAreaSegment from './step-area-segment';\nimport SplineAreaSegment from './spline-area-segment';\n\nimport { STEP, SMOOTH, ZERO } from '../constants';\n\nclass AreaChart extends LineChart {\n createSegment(linePoints, currentSeries, seriesIx, prevSegment) {\n const isStacked = this.options.isStacked;\n const style = (currentSeries.line || {}).style;\n let previousSegment;\n\n let stackPoints;\n if (isStacked && seriesIx > 0 && prevSegment) {\n const missingValues = this.seriesMissingValues(currentSeries);\n if (missingValues !== \"gap\") {\n stackPoints = prevSegment.linePoints;\n previousSegment = prevSegment;\n } else {\n stackPoints = this._gapStackPoints(linePoints, seriesIx, style);\n }\n }\n\n let pointType;\n if (style === STEP) {\n pointType = StepAreaSegment;\n } else if (style === SMOOTH) {\n pointType = SplineAreaSegment;\n } else {\n pointType = AreaSegment;\n }\n\n return new pointType(linePoints, currentSeries, seriesIx, previousSegment, stackPoints);\n }\n\n reflow(targetBox) {\n super.reflow(targetBox);\n\n const stackPoints = this._stackPoints;\n if (stackPoints) {\n for (let idx = 0; idx < stackPoints.length; idx++) {\n const stackPoint = stackPoints[idx];\n const pointSlot = this.categoryAxis.getSlot(stackPoint.categoryIx);\n stackPoint.reflow(pointSlot);\n }\n }\n }\n\n _gapStackPoints(linePoints, seriesIx, style) {\n const seriesPoints = this.seriesPoints;\n let startIdx = linePoints[0].categoryIx;\n let length = linePoints.length;\n if (startIdx < 0) {\n startIdx = 0;\n length--;\n }\n\n const endIdx = startIdx + length;\n const pointOffset = this.seriesOptions[0]._outOfRangeMinPoint ? 1 : 0;\n const stackPoints = [];\n\n this._stackPoints = this._stackPoints || [];\n for (let categoryIx = startIdx; categoryIx < endIdx; categoryIx++) {\n const pointIx = categoryIx + pointOffset;\n let currentSeriesIx = seriesIx;\n let point;\n\n do {\n currentSeriesIx--;\n point = seriesPoints[currentSeriesIx][pointIx];\n } while (currentSeriesIx > 0 && !point);\n\n if (point) {\n if (style !== STEP && categoryIx > startIdx && !seriesPoints[currentSeriesIx][pointIx - 1]) {\n stackPoints.push(this._previousSegmentPoint(categoryIx, pointIx, pointIx - 1, currentSeriesIx));\n }\n\n stackPoints.push(point);\n\n if (style !== STEP && categoryIx + 1 < endIdx && !seriesPoints[currentSeriesIx][pointIx + 1]) {\n stackPoints.push(this._previousSegmentPoint(categoryIx, pointIx, pointIx + 1, currentSeriesIx));\n }\n } else {\n const gapStackPoint = this._createGapStackPoint(categoryIx);\n this._stackPoints.push(gapStackPoint);\n stackPoints.push(gapStackPoint);\n }\n }\n\n return stackPoints;\n }\n\n _previousSegmentPoint(categoryIx, pointIx, segmentIx, seriesIdx) {\n const seriesPoints = this.seriesPoints;\n let index = seriesIdx;\n let point;\n\n while (index > 0 && !point) {\n index--;\n point = seriesPoints[index][segmentIx];\n }\n\n if (!point) {\n point = this._createGapStackPoint(categoryIx);\n this._stackPoints.push(point);\n } else {\n point = seriesPoints[index][pointIx];\n }\n\n return point;\n }\n\n _createGapStackPoint(categoryIx) {\n const options = this.pointOptions({}, 0);\n const point = new LinePoint(0, options);\n point.categoryIx = categoryIx;\n point.series = {};\n\n return point;\n }\n\n seriesMissingValues(series) {\n return series.missingValues || ZERO;\n }\n\n supportsPointInactiveOpacity() {\n return false;\n }\n}\n\nexport default AreaChart;\n","import { drawing as draw, geometry as geom } from '@progress/kendo-drawing';\nimport LineSegment from '../line-chart/line-segment';\n\nimport { append, deepExtend, isFunction, last } from '../../common';\n\nclass AreaSegment extends LineSegment {\n constructor(linePoints, currentSeries, seriesIx, prevSegment, stackPoints) {\n super(linePoints, currentSeries, seriesIx);\n\n this.prevSegment = prevSegment;\n this.stackPoints = stackPoints;\n }\n\n createVisual() {\n const series = this.series;\n const defaults = series._defaults;\n const lineOptions = series.line || {};\n let color = series.color;\n\n if (isFunction(color) && defaults) {\n color = defaults.color;\n }\n\n this.visual = new draw.Group({\n zIndex: series.zIndex\n });\n\n this.createFill({\n fill: {\n color: color,\n opacity: series.opacity\n },\n stroke: null\n });\n\n if (lineOptions.width > 0 && lineOptions.visible !== false) {\n this.createStroke({\n stroke: deepExtend({\n color: color,\n opacity: series.opacity,\n lineCap: \"butt\"\n }, lineOptions)\n });\n }\n }\n\n strokeSegments() {\n let segments = this._strokeSegments;\n\n if (!segments) {\n segments = this._strokeSegments = this.createStrokeSegments();\n }\n\n return segments;\n }\n\n createStrokeSegments() {\n return this.segmentsFromPoints(this.points());\n }\n\n stackSegments() {\n if (this.prevSegment) {\n return this.prevSegment.createStackSegments(this.stackPoints);\n }\n\n return this.createStackSegments(this.stackPoints);\n }\n\n createStackSegments(stackPoints) {\n return this.segmentsFromPoints(this.toGeometryPoints(stackPoints)).reverse();\n }\n\n segmentsFromPoints(points) {\n return points.map((point) => new geom.Segment(point));\n }\n\n createStroke(style) {\n const stroke = new draw.Path(style);\n stroke.segments.push.apply(stroke.segments, this.strokeSegments());\n\n this.visual.append(stroke);\n }\n\n hasStackSegment() {\n return this.prevSegment || (this.stackPoints && this.stackPoints.length);\n }\n\n createFill(style) {\n const strokeSegments = this.strokeSegments();\n const fillSegments = strokeSegments.slice(0);\n const hasStackSegments = this.hasStackSegment();\n\n if (hasStackSegments) {\n const stackSegments = this.stackSegments();\n\n append(fillSegments, stackSegments);\n }\n\n const fill = new draw.Path(style);\n fill.segments.push.apply(fill.segments, fillSegments);\n\n if (!hasStackSegments && strokeSegments.length > 1) {\n this.fillToAxes(fill);\n }\n\n this.visual.append(fill);\n }\n\n fillToAxes(fillPath) {\n const chart = this.parent;\n const invertAxes = chart.options.invertAxes;\n const valueAxis = chart.seriesValueAxis(this.series);\n const crossingValue = chart.categoryAxisCrossingValue(valueAxis);\n const endSlot = valueAxis.getSlot(crossingValue, crossingValue, true);\n const segments = this.strokeSegments();\n const firstPoint = segments[0].anchor();\n const lastPoint = last(segments).anchor();\n let end = invertAxes ? endSlot.x1 : endSlot.y1;\n\n if (invertAxes) {\n fillPath.lineTo(end, lastPoint.y)\n .lineTo(end, firstPoint.y);\n } else {\n fillPath.lineTo(lastPoint.x, end)\n .lineTo(firstPoint.x, end);\n }\n }\n}\n\nexport default AreaSegment;","import { geometry as geom } from '@progress/kendo-drawing';\nimport { CurveProcessor } from '../../core';\n\nimport AreaSegment from './area-segment';\n\nclass SplineAreaSegment extends AreaSegment {\n\n createStrokeSegments() {\n const curveProcessor = new CurveProcessor(this.options.closed);\n const linePoints = this.points();\n\n return curveProcessor.process(linePoints);\n }\n\n createStackSegments() {\n const strokeSegments = this.strokeSegments();\n const stackSegments = [];\n for (let idx = strokeSegments.length - 1; idx >= 0; idx--) {\n const segment = strokeSegments[idx];\n stackSegments.push(new geom.Segment(\n segment.anchor(),\n segment.controlOut(),\n segment.controlIn()\n ));\n }\n\n return stackSegments;\n }\n}\n\nexport default SplineAreaSegment;","import StepLineMixin from '../line-chart/step-line-mixin';\nimport AreaSegment from './area-segment';\n\nimport { deepExtend } from '../../common';\n\nclass StepAreaSegment extends AreaSegment {\n\n createStrokeSegments() {\n return this.segmentsFromPoints(this.calculateStepPoints(this.linePoints));\n }\n\n createStackSegments(stackPoints) {\n return this.segmentsFromPoints(this.calculateStepPoints(stackPoints)).reverse();\n }\n}\n\ndeepExtend(StepAreaSegment.prototype, StepLineMixin);\n\nexport default StepAreaSegment;","import { MIN_VALUE, MAX_VALUE } from '../common/constants';\nimport { Class } from '../common';\n\nclass AxisGroupRangeTracker extends Class {\n constructor() {\n super();\n\n this.axisRanges = {};\n }\n\n update(chartAxisRanges) {\n const axisRanges = this.axisRanges;\n\n for (let axisName in chartAxisRanges) {\n const chartRange = chartAxisRanges[axisName];\n let range = axisRanges[axisName];\n axisRanges[axisName] = range = range || { min: MAX_VALUE, max: MIN_VALUE };\n\n range.min = Math.min(range.min, chartRange.min);\n range.max = Math.max(range.max, chartRange.max);\n }\n }\n\n reset(axisName) {\n this.axisRanges[axisName] = undefined;\n }\n\n query(axisName) {\n return this.axisRanges[axisName];\n }\n}\n\nexport default AxisGroupRangeTracker;","import { geometry as geom } from '@progress/kendo-drawing';\n\nimport Bar from './bar';\n\nimport CategoricalChart from '../categorical-chart';\nimport ClusterLayout from '../layout/cluster-layout';\nimport StackWrap from '../layout/stack-wrap';\nimport { BAR, OUTSIDE_END, INSIDE_END } from '../constants';\n\nimport anyHasZIndex from '../utils/any-has-z-index';\n\nimport { STRING, X, Y } from '../../common/constants';\nimport { defined, isFunction, setDefaultOptions } from '../../common';\n\nclass BarChart extends CategoricalChart {\n\n render() {\n super.render();\n this.updateStackRange();\n }\n\n pointType() {\n return Bar;\n }\n\n clusterType() {\n return ClusterLayout;\n }\n\n stackType() {\n return StackWrap;\n }\n\n stackLimits(axisName, stackName) {\n const limits = super.stackLimits(axisName, stackName);\n\n return limits;\n }\n\n createPoint(data, fields) {\n const { categoryIx, category, series, seriesIx } = fields;\n const { options, children } = this;\n const isStacked = options.isStacked;\n const value = this.pointValue(data);\n let pointOptions = this.pointOptions(series, seriesIx);\n\n const labelOptions = pointOptions.labels;\n if (isStacked) {\n if (labelOptions.position === OUTSIDE_END) {\n labelOptions.position = INSIDE_END;\n }\n }\n\n pointOptions.isStacked = isStacked;\n\n let color = data.fields.color || series.color;\n if (value < 0 && pointOptions.negativeColor) {\n color = pointOptions.negativeColor;\n }\n\n pointOptions = this.evalPointOptions(\n pointOptions, value, category, categoryIx, series, seriesIx\n );\n\n if (isFunction(series.color)) {\n color = pointOptions.color;\n }\n\n const pointType = this.pointType();\n const point = new pointType(value, pointOptions);\n point.color = color;\n\n let cluster = children[categoryIx];\n if (!cluster) {\n const clusterType = this.clusterType();\n cluster = new clusterType({\n vertical: options.invertAxes,\n gap: options.gap,\n spacing: options.spacing,\n rtl: !options.invertAxes && (this.chartService || {}).rtl\n });\n this.append(cluster);\n }\n\n if (isStacked) {\n const stackWrap = this.getStackWrap(series, cluster);\n stackWrap.append(point);\n } else {\n cluster.append(point);\n }\n\n return point;\n }\n\n getStackWrap(series, cluster) {\n const stack = series.stack;\n const stackGroup = stack ? stack.group || stack : stack;\n const wraps = cluster.children;\n let stackWrap;\n\n if (typeof stackGroup === STRING) {\n for (let i = 0; i < wraps.length; i++) {\n if (wraps[i]._stackGroup === stackGroup) {\n stackWrap = wraps[i];\n break;\n }\n }\n } else {\n stackWrap = wraps[0];\n }\n\n if (!stackWrap) {\n const stackType = this.stackType();\n stackWrap = new stackType({\n vertical: !this.options.invertAxes\n });\n stackWrap._stackGroup = stackGroup;\n cluster.append(stackWrap);\n }\n\n return stackWrap;\n }\n\n categorySlot(categoryAxis, categoryIx, valueAxis) {\n const options = this.options;\n const categorySlot = categoryAxis.getSlot(categoryIx);\n const startValue = valueAxis.startValue();\n\n if (options.isStacked) {\n const zeroSlot = valueAxis.getSlot(startValue, startValue, true);\n const stackAxis = options.invertAxes ? X : Y;\n categorySlot[stackAxis + 1] = categorySlot[stackAxis + 2] = zeroSlot[stackAxis + 1];\n }\n\n return categorySlot;\n }\n\n reflowCategories(categorySlots) {\n const children = this.children;\n const childrenLength = children.length;\n\n for (let i = 0; i < childrenLength; i++) {\n children[i].reflow(categorySlots[i]);\n }\n }\n\n createAnimation() {\n this._setAnimationOptions();\n super.createAnimation();\n\n if (anyHasZIndex(this.options.series)) {\n this._setChildrenAnimation();\n }\n }\n\n _setChildrenAnimation() {\n const points = this.points;\n\n for (let idx = 0; idx < points.length; idx++) {\n const point = points[idx];\n const pointVisual = point.visual;\n if (pointVisual && defined(pointVisual.options.zIndex)) {\n point.options.animation = this.options.animation;\n point.createAnimation();\n }\n }\n }\n\n _setAnimationOptions() {\n const options = this.options;\n const animation = options.animation || {};\n let origin;\n\n if (options.isStacked) {\n const valueAxis = this.seriesValueAxis(options.series[0]);\n origin = valueAxis.getSlot(valueAxis.startValue());\n } else {\n origin = this.categoryAxis.getSlot(0);\n }\n\n animation.origin = new geom.Point(origin.x1, origin.y1);\n animation.vertical = !options.invertAxes;\n }\n}\n\nsetDefaultOptions(BarChart, {\n animation: {\n type: BAR\n }\n});\n\nexport default BarChart;","import { ChartElement, TextBox, Box } from '../../core';\nimport { FADEIN, INITIAL_ANIMATION_DURATION, INSIDE_END, INSIDE_BASE, OUTSIDE_END } from '../constants';\n\nimport { CENTER, TOP, BOTTOM, LEFT, RIGHT, X, Y, BLACK } from '../../common/constants';\nimport { getSpacing, setDefaultOptions } from '../../common';\n\nclass BarLabel extends ChartElement {\n constructor(content, options, pointData) {\n super(options);\n\n this.textBox = new TextBox(content, this.options, pointData);\n this.append(this.textBox);\n }\n\n createVisual() {\n this.textBox.options.noclip = this.options.noclip;\n }\n\n reflow(targetBox) {\n const options = this.options;\n const { vertical, aboveAxis } = options;\n const text = this.children[0];\n const textOptions = text.options;\n const box = text.box;\n const padding = text.options.padding;\n let labelBox = targetBox;\n\n textOptions.align = vertical ? CENTER : LEFT;\n textOptions.vAlign = vertical ? TOP : CENTER;\n\n if (options.position === INSIDE_END) {\n if (vertical) {\n textOptions.vAlign = TOP;\n\n if (!aboveAxis && box.height() < targetBox.height()) {\n textOptions.vAlign = BOTTOM;\n }\n } else {\n textOptions.align = aboveAxis ? RIGHT : LEFT;\n }\n } else if (options.position === CENTER) {\n textOptions.vAlign = CENTER;\n textOptions.align = CENTER;\n } else if (options.position === INSIDE_BASE) {\n if (vertical) {\n textOptions.vAlign = aboveAxis ? BOTTOM : TOP;\n } else {\n textOptions.align = aboveAxis ? LEFT : RIGHT;\n }\n } else if (options.position === OUTSIDE_END) {\n if (vertical) {\n if (aboveAxis) {\n labelBox = new Box(\n targetBox.x1, targetBox.y1 - box.height(),\n targetBox.x2, targetBox.y1\n );\n } else {\n labelBox = new Box(\n targetBox.x1, targetBox.y2,\n targetBox.x2, targetBox.y2 + box.height()\n );\n }\n } else {\n textOptions.align = CENTER;\n if (aboveAxis) {\n labelBox = new Box(\n targetBox.x2, targetBox.y1,\n targetBox.x2 + box.width(), targetBox.y2\n );\n } else {\n labelBox = new Box(\n targetBox.x1 - box.width(), targetBox.y1,\n targetBox.x1, targetBox.y2\n );\n }\n }\n }\n\n if (!options.rotation) {\n if (vertical) {\n padding.left = padding.right =\n (labelBox.width() - text.contentBox.width()) / 2;\n } else {\n padding.top = padding.bottom =\n (labelBox.height() - text.contentBox.height()) / 2;\n }\n }\n\n text.reflow(labelBox);\n }\n\n alignToClipBox(clipBox) {\n const vertical = this.options.vertical;\n const field = vertical ? Y : X;\n const start = field + \"1\";\n const end = field + \"2\";\n const text = this.children[0];\n const parentBox = this.parent.box;\n\n if (parentBox[start] < clipBox[start] || clipBox[end] < parentBox[end]) {\n const targetBox = text.paddingBox.clone();\n targetBox[start] = Math.max(parentBox[start], clipBox[start]);\n targetBox[end] = Math.min(parentBox[end], clipBox[end]);\n\n this.reflow(targetBox);\n }\n }\n}\n\nsetDefaultOptions(BarLabel, {\n position: OUTSIDE_END,\n margin: getSpacing(3),\n padding: getSpacing(4),\n color: BLACK,\n background: \"\",\n border: {\n width: 1,\n color: \"\"\n },\n aboveAxis: true,\n vertical: false,\n animation: {\n type: FADEIN,\n delay: INITIAL_ANIMATION_DURATION\n },\n zIndex: 2\n});\n\nexport default BarLabel;","import { drawing as draw, Color } from '@progress/kendo-drawing';\n\nimport BarLabel from './bar-label';\n\nimport { BORDER_BRIGHTNESS, TOOLTIP_OFFSET } from '../constants';\n\nimport hasGradientOverlay from '../utils/has-gradient-overlay';\n\nimport { ChartElement, Point } from '../../core';\n\nimport PointEventsMixin from '../mixins/point-events-mixin';\nimport NoteMixin from '../mixins/note-mixin';\n\nimport { WHITE, LEFT, RIGHT, BOTTOM, TOP } from '../../common/constants';\nimport { alignPathToPixel, deepExtend, defined, getTemplate, valueOrDefault } from '../../common';\n\nconst BAR_ALIGN_MIN_WIDTH = 6;\n\nclass Bar extends ChartElement {\n constructor(value, options) {\n super();\n\n this.options = options;\n this.color = options.color || WHITE;\n this.aboveAxis = valueOrDefault(this.options.aboveAxis, true);\n this.value = value;\n }\n\n render() {\n if (this._rendered) {\n return;\n }\n\n this._rendered = true;\n\n this.createLabel();\n this.createNote();\n\n if (this.errorBar) {\n this.append(this.errorBar);\n }\n }\n\n createLabel() {\n const options = this.options;\n const labels = options.labels;\n\n if (labels.visible) {\n const pointData = this.pointData();\n let labelTemplate = getTemplate(labels);\n let labelText;\n\n if (labelTemplate) {\n labelText = labelTemplate(pointData);\n } else {\n labelText = this.formatValue(labels.format);\n }\n\n this.label = new BarLabel(labelText,\n deepExtend({\n vertical: options.vertical\n },\n labels\n ), pointData);\n this.append(this.label);\n }\n }\n\n formatValue(format) {\n return this.owner.formatPointValue(this, format);\n }\n\n reflow(targetBox) {\n this.render();\n\n const label = this.label;\n\n this.box = targetBox;\n\n if (label) {\n label.options.aboveAxis = this.aboveAxis;\n label.reflow(targetBox);\n }\n\n if (this.note) {\n this.note.reflow(targetBox);\n }\n\n if (this.errorBars) {\n for (let i = 0; i < this.errorBars.length; i++) {\n this.errorBars[i].reflow(targetBox);\n }\n }\n }\n\n createVisual() {\n const { box, options } = this;\n const customVisual = options.visual;\n\n if (this.visible !== false) {\n super.createVisual();\n\n if (customVisual) {\n const visual = this.rectVisual = customVisual({\n category: this.category,\n dataItem: this.dataItem,\n value: this.value,\n sender: this.getSender(),\n series: this.series,\n percentage: this.percentage,\n stackValue: this.stackValue,\n runningTotal: this.runningTotal,\n total: this.total,\n rect: box.toRect(),\n createVisual: () => {\n const group = new draw.Group();\n this.createRect(group);\n return group;\n },\n options: options\n });\n\n if (visual) {\n this.visual.append(visual);\n }\n } else if (box.width() > 0 && box.height() > 0) {\n this.createRect(this.visual);\n }\n }\n }\n\n createRect(visual) {\n const options = this.options;\n const border = options.border;\n const strokeOpacity = defined(border.opacity) ? border.opacity : options.opacity;\n const rect = this.box.toRect();\n\n rect.size.width = Math.round(rect.size.width);\n\n const path = this.rectVisual = draw.Path.fromRect(rect, {\n fill: {\n color: this.color,\n opacity: options.opacity\n },\n stroke: {\n color: this.getBorderColor(),\n width: border.width,\n opacity: strokeOpacity,\n dashType: border.dashType\n }\n });\n\n const width = this.box.width();\n const height = this.box.height();\n\n const size = options.vertical ? width : height;\n\n if (size > BAR_ALIGN_MIN_WIDTH) {\n alignPathToPixel(path);\n\n // Fixes lineJoin issue in firefox when the joined lines are parallel\n if (width < 1 || height < 1) {\n path.options.stroke.lineJoin = \"round\";\n }\n }\n\n visual.append(path);\n\n if (hasGradientOverlay(options)) {\n const overlay = this.createGradientOverlay(path, { baseColor: this.color }, deepExtend({\n end: !options.vertical ? [ 0, 1 ] : undefined\n }, options.overlay));\n\n visual.append(overlay);\n }\n }\n\n createHighlight(style) {\n const highlight = draw.Path.fromRect(this.box.toRect(), style);\n\n return alignPathToPixel(highlight);\n }\n\n highlightVisual() {\n return this.rectVisual;\n }\n\n highlightVisualArgs() {\n return {\n options: this.options,\n rect: this.box.toRect(),\n visual: this.rectVisual\n };\n }\n\n getBorderColor() {\n const color = this.color;\n const border = this.options.border;\n const brightness = border._brightness || BORDER_BRIGHTNESS;\n let borderColor = border.color;\n\n if (!defined(borderColor)) {\n borderColor = new Color(color).brightness(brightness).toHex();\n }\n\n return borderColor;\n }\n\n tooltipAnchor() {\n const { options, box, aboveAxis } = this;\n const clipBox = this.owner.pane.clipBox() || box;\n let horizontalAlign = LEFT;\n let verticalAlign = TOP;\n let x, y;\n\n if (options.vertical) {\n x = Math.min(box.x2, clipBox.x2) + TOOLTIP_OFFSET;\n if (aboveAxis) {\n y = Math.max(box.y1, clipBox.y1);\n } else {\n y = Math.min(box.y2, clipBox.y2);\n verticalAlign = BOTTOM;\n }\n } else {\n const x1 = Math.max(box.x1, clipBox.x1);\n const x2 = Math.min(box.x2, clipBox.x2);\n\n if (options.isStacked) {\n verticalAlign = BOTTOM;\n if (aboveAxis) {\n horizontalAlign = RIGHT;\n x = x2;\n } else {\n x = x1;\n }\n y = Math.max(box.y1, clipBox.y1) - TOOLTIP_OFFSET;\n } else {\n if (aboveAxis) {\n x = x2 + TOOLTIP_OFFSET;\n } else {\n x = x1 - TOOLTIP_OFFSET;\n horizontalAlign = RIGHT;\n }\n y = Math.max(box.y1, clipBox.y1);\n }\n }\n\n return {\n point: new Point(x, y),\n align: {\n horizontal: horizontalAlign,\n vertical: verticalAlign\n }\n };\n }\n\n overlapsBox(box) {\n return this.box.overlaps(box);\n }\n\n pointData() {\n return {\n dataItem: this.dataItem,\n category: this.category,\n value: this.value,\n percentage: this.percentage,\n stackValue: this.stackValue,\n runningTotal: this.runningTotal,\n total: this.total,\n series: this.series\n };\n }\n}\n\ndeepExtend(Bar.prototype, PointEventsMixin);\ndeepExtend(Bar.prototype, NoteMixin);\n\nBar.prototype.defaults = {\n border: {\n width: 1\n },\n vertical: true,\n overlay: {\n gradient: \"glass\"\n },\n labels: {\n visible: false,\n format: \"{0}\"\n },\n opacity: 1,\n notes: {\n label: {}\n }\n};\n\nexport default Bar;","const BAR_GAP = 1.5;\nconst BAR_SPACING = 0.4;\nconst BLACK = '#000';\nconst SANS = 'Arial, Helvetica, sans-serif';\nconst SANS11 = \"11px \" + SANS;\nconst SANS12 = '12px ' + SANS;\nconst SANS16 = '16px ' + SANS;\nconst TRANSPARENT = 'transparent';\nconst WHITE = '#fff';\n\nconst notes = () => ({\n icon: {\n border: {\n width: 1\n }\n },\n label: {\n font: SANS12,\n padding: 3\n },\n line: {\n length: 10,\n width: 2\n },\n visible: true\n});\n\nconst axisDefaults = () => ({\n labels: {\n font: SANS12\n },\n notes: notes(),\n title: {\n font: SANS16,\n margin: 5\n }\n});\n\nconst areaSeries = () => ({\n highlight: {\n markers: {\n border: {}\n }\n },\n line: {\n opacity: 1,\n width: 0\n },\n markers: {\n size: 6,\n visible: false\n },\n opacity: 0.4\n});\n\nconst rangeAreaSeries = () => ({\n highlight: {\n markers: {\n border: {}\n }\n },\n line: {\n opacity: 1,\n width: 0\n },\n markers: {\n size: 6,\n visible: false\n },\n opacity: 0.4\n});\n\nconst barSeries = () => ({\n gap: BAR_GAP,\n spacing: BAR_SPACING\n});\n\nconst boxPlotSeries = () => ({\n outliersField: \"\",\n meanField: \"\",\n border: {\n _brightness: 0.8,\n width: 1\n },\n downColor: WHITE,\n gap: 1,\n highlight: {\n border: {\n opacity: 1,\n width: 2\n },\n whiskers: {\n width: 3\n },\n mean: {\n width: 2\n },\n median: {\n width: 2\n }\n },\n mean: {\n width: 2\n },\n median: {\n width: 2\n },\n spacing: 0.3,\n whiskers: {\n width: 2\n }\n});\n\nconst bubbleSeries = () => ({\n border: {\n width: 0\n },\n labels: {\n background: TRANSPARENT\n },\n opacity: 0.6\n});\n\nconst bulletSeries = () => ({\n gap: BAR_GAP,\n spacing: BAR_SPACING,\n target: {\n color: \"#ff0000\"\n }\n});\n\nconst candlestickSeries = () => ({\n border: {\n _brightness: 0.8,\n width: 1\n },\n downColor: WHITE,\n gap: 1,\n highlight: {\n border: {\n opacity: 1,\n width: 2\n },\n line: {\n width: 2\n }\n },\n line: {\n color: BLACK,\n width: 1\n },\n spacing: 0.3\n});\n\nconst columnSeries = () => ({\n gap: BAR_GAP,\n spacing: BAR_SPACING\n});\n\nconst donutSeries = () => ({\n margin: 1\n});\n\nconst lineSeries = () => ({\n width: 2\n});\n\nconst ohlcSeries = () => ({\n gap: 1,\n highlight: {\n line: {\n opacity: 1,\n width: 3\n }\n },\n line: {\n width: 1\n },\n spacing: 0.3\n});\n\nconst radarAreaSeries = () => ({\n line: {\n opacity: 1,\n width: 0\n },\n markers: {\n size: 6,\n visible: false\n },\n opacity: 0.5\n});\n\nconst radarLineSeries = () => ({\n markers: {\n visible: false\n },\n width: 2\n});\n\nconst rangeBarSeries = () => ({\n gap: BAR_GAP,\n spacing: BAR_SPACING\n});\n\nconst rangeColumnSeries = () => ({\n gap: BAR_GAP,\n spacing: BAR_SPACING\n});\n\nconst scatterLineSeries = () => ({\n width: 1\n});\n\nconst waterfallSeries = () => ({\n gap: 0.5,\n line: {\n color: BLACK,\n width: 1\n },\n spacing: BAR_SPACING\n});\n\nconst pieSeries = () => ({\n labels: {\n background: '',\n color: '',\n padding: {\n top: 5,\n bottom: 5,\n left: 7,\n right: 7\n }\n }\n});\n\nconst funnelSeries = () => ({\n labels: {\n background: '',\n color: '',\n padding: {\n top: 5,\n bottom: 5,\n left: 7,\n right: 7\n }\n }\n});\n\nconst heatmapSeries = () => ({\n labels: {\n color: '',\n background: TRANSPARENT,\n visible: true\n },\n highlight: {\n border: {\n width: 0\n }\n }\n});\n\nconst seriesDefaults = (options) => ({\n visible: true,\n labels: {\n font: SANS11\n },\n overlay: options.gradients ? {} : {\n gradient: \"none\"\n },\n area: areaSeries(),\n rangeArea: rangeAreaSeries(),\n verticalRangeArea: rangeAreaSeries(),\n bar: barSeries(),\n boxPlot: boxPlotSeries(),\n bubble: bubbleSeries(),\n bullet: bulletSeries(),\n candlestick: candlestickSeries(),\n column: columnSeries(),\n heatmap: heatmapSeries(),\n pie: pieSeries(),\n donut: donutSeries(),\n funnel: funnelSeries(),\n horizontalWaterfall: waterfallSeries(),\n line: lineSeries(),\n notes: notes(),\n ohlc: ohlcSeries(),\n radarArea: radarAreaSeries(),\n radarLine: radarLineSeries(),\n polarArea: radarAreaSeries(),\n polarLine: radarLineSeries(),\n rangeBar: rangeBarSeries(),\n rangeColumn: rangeColumnSeries(),\n scatterLine: scatterLineSeries(),\n verticalArea: areaSeries(),\n verticalBoxPlot: boxPlotSeries(),\n verticalBullet: bulletSeries(),\n verticalLine: lineSeries(),\n waterfall: waterfallSeries()\n});\n\nconst title = () => ({\n font: SANS16\n});\n\nconst legend = () => ({\n labels: {\n font: SANS12\n }\n});\n\nexport const baseTheme = (options = {}) => ({\n axisDefaults: axisDefaults(),\n categoryAxis: {\n majorGridLines: {\n visible: true\n }\n },\n navigator: {\n pane: {\n height: 90,\n margin: {\n top: 10\n }\n }\n },\n seriesDefaults: seriesDefaults(options),\n title: title(),\n legend: legend()\n});\n\n","import CandlestickChart from '../candlestick-chart/candlestick-chart';\nimport VerticalBoxPlot from './vertical-box-plot';\nimport BoxPlot from './box-plot';\nimport ClusterLayout from '../layout/cluster-layout';\n\nimport areNumbers from '../utils/are-numbers';\n\nimport { MIN_VALUE, MAX_VALUE } from '../../common/constants';\nimport { defined } from '../../common';\n\nclass BoxPlotChart extends CandlestickChart {\n addValue(data, fields) {\n const { categoryIx, category, series, seriesIx } = fields;\n const { children, options } = this;\n const value = data.valueFields;\n const valueParts = this.splitValue(value);\n const hasValue = areNumbers(valueParts);\n const dataItem = series.data[categoryIx];\n let categoryPoints = this.categoryPoints[categoryIx];\n let point;\n\n if (!categoryPoints) {\n this.categoryPoints[categoryIx] = categoryPoints = [];\n }\n\n if (hasValue) {\n point = this.createPoint(data, fields);\n }\n\n let cluster = children[categoryIx];\n if (!cluster) {\n cluster = new ClusterLayout({\n vertical: options.invertAxes,\n gap: options.gap,\n spacing: options.spacing,\n rtl: !options.invertAxes && (this.chartService || {}).rtl\n });\n this.append(cluster);\n }\n\n if (point) {\n this.updateRange(value, fields);\n\n cluster.append(point);\n\n point.categoryIx = categoryIx;\n point.category = category;\n point.series = series;\n point.seriesIx = seriesIx;\n point.owner = this;\n point.dataItem = dataItem;\n }\n\n this.points.push(point);\n categoryPoints.push(point);\n }\n\n pointType() {\n if (this.options.invertAxes) {\n return VerticalBoxPlot;\n }\n\n return BoxPlot;\n }\n\n splitValue(value) {\n return [\n value.lower, value.q1, value.median,\n value.q3, value.upper\n ];\n }\n\n updateRange(value, fields) {\n const axisName = fields.series.axis;\n let axisRange = this.valueAxisRanges[axisName];\n let parts = this.splitValue(value).concat(this.filterOutliers(value.outliers));\n\n if (defined(value.mean)) {\n parts = parts.concat(value.mean);\n }\n\n axisRange = this.valueAxisRanges[axisName] =\n axisRange || { min: MAX_VALUE, max: MIN_VALUE };\n\n axisRange = this.valueAxisRanges[axisName] = {\n min: Math.min.apply(Math, parts.concat([ axisRange.min ])),\n max: Math.max.apply(Math, parts.concat([ axisRange.max ]))\n };\n }\n\n formatPointValue(point, format) {\n const value = point.value;\n\n return this.chartService.format.auto(format,\n value.lower, value.q1, value.median,\n value.q3, value.upper, value.mean, point.category\n );\n }\n\n filterOutliers(items) {\n const length = (items || []).length;\n const result = [];\n\n for (let i = 0; i < length; i++) {\n const item = items[i];\n if (defined(item) && item !== null) {\n result.push(item);\n }\n }\n\n return result;\n }\n\n supportsPointInactiveOpacity() {\n return false;\n }\n}\n\nexport default BoxPlotChart;\n","import { Color } from '@progress/kendo-drawing';\n\nimport Candlestick from '../candlestick-chart/candlestick';\nimport PointEventsMixin from '../mixins/point-events-mixin';\nimport { ShapeElement } from '../../core';\n\nimport { LINE_MARKER_SIZE, BORDER_BRIGHTNESS } from '../constants';\n\nimport { CROSS, CIRCLE, WHITE } from '../../common/constants';\nimport { deepExtend, defined, setDefaultOptions } from '../../common';\n\nclass BoxPlot extends Candlestick {\n constructor(value, options) {\n super(value, options);\n\n this.createNote();\n }\n\n reflow(box) {\n const { options, value, owner: chart } = this;\n const valueAxis = chart.seriesValueAxis(options);\n let whiskerSlot, boxSlot;\n\n this.boxSlot = boxSlot = valueAxis.getSlot(value.q1, value.q3);\n this.realBody = boxSlot;\n this.reflowBoxSlot(box);\n\n this.whiskerSlot = whiskerSlot = valueAxis.getSlot(value.lower, value.upper);\n this.reflowWhiskerSlot(box);\n\n const medianSlot = valueAxis.getSlot(value.median);\n\n if (value.mean) {\n const meanSlot = valueAxis.getSlot(value.mean);\n this.meanPoints = this.calcMeanPoints(box, meanSlot);\n }\n\n this.whiskerPoints = this.calcWhiskerPoints(boxSlot, whiskerSlot);\n this.medianPoints = this.calcMedianPoints(box, medianSlot);\n\n this.box = whiskerSlot.clone().wrap(boxSlot);\n this.reflowNote();\n }\n\n reflowBoxSlot(box) {\n this.boxSlot.x1 = box.x1;\n this.boxSlot.x2 = box.x2;\n }\n\n reflowWhiskerSlot(box) {\n this.whiskerSlot.x1 = box.x1;\n this.whiskerSlot.x2 = box.x2;\n }\n\n calcMeanPoints(box, meanSlot) {\n return [\n [ [ box.x1, meanSlot.y1 ], [ box.x2, meanSlot.y1 ] ]\n ];\n }\n\n calcWhiskerPoints(boxSlot, whiskerSlot) {\n const mid = whiskerSlot.center().x;\n return [ [\n [ mid - 5, whiskerSlot.y1 ], [ mid + 5, whiskerSlot.y1 ],\n [ mid, whiskerSlot.y1 ], [ mid, boxSlot.y1 ]\n ], [\n [ mid - 5, whiskerSlot.y2 ], [ mid + 5, whiskerSlot.y2 ],\n [ mid, whiskerSlot.y2 ], [ mid, boxSlot.y2 ]\n ] ];\n }\n\n calcMedianPoints(box, medianSlot) {\n return [\n [ [ box.x1, medianSlot.y1 ], [ box.x2, medianSlot.y1 ] ]\n ];\n }\n\n renderOutliers(options) {\n const value = this.value;\n const outliers = value.outliers || [];\n const outerFence = Math.abs(value.q3 - value.q1) * 3;\n const elements = [];\n let markers = options.markers || {};\n\n for (let i = 0; i < outliers.length; i++) {\n const outlierValue = outliers[i];\n if (outlierValue < value.q3 + outerFence && outlierValue > value.q1 - outerFence) {\n markers = options.outliers;\n } else {\n markers = options.extremes;\n }\n let markersBorder = deepExtend({}, markers.border);\n\n if (!defined(markersBorder.color)) {\n if (defined(this.color)) {\n markersBorder.color = this.color;\n } else {\n markersBorder.color =\n new Color(markers.background).brightness(BORDER_BRIGHTNESS).toHex();\n }\n }\n\n const shape = new ShapeElement({\n type: markers.type,\n width: markers.size,\n height: markers.size,\n rotation: markers.rotation,\n background: markers.background,\n border: markersBorder,\n opacity: markers.opacity\n });\n\n shape.value = outlierValue;\n\n elements.push(shape);\n }\n\n this.reflowOutliers(elements);\n return elements;\n }\n\n reflowOutliers(outliers) {\n const valueAxis = this.owner.seriesValueAxis(this.options);\n const center = this.box.center();\n\n for (let i = 0; i < outliers.length; i++) {\n const outlierValue = outliers[i].value;\n const markerBox = valueAxis.getSlot(outlierValue);\n\n if (this.options.vertical) {\n markerBox.move(center.x);\n } else {\n markerBox.move(undefined, center.y);\n }\n\n this.box = this.box.wrap(markerBox);\n outliers[i].reflow(markerBox);\n }\n }\n\n mainVisual(options) {\n const group = super.mainVisual(options);\n const outliers = this.renderOutliers(options);\n\n for (let i = 0; i < outliers.length; i++) {\n const element = outliers[i].getElement();\n if (element) {\n group.append(element);\n }\n }\n\n return group;\n }\n\n createLines(container, options) {\n this.drawLines(container, options, this.whiskerPoints, options.whiskers);\n this.drawLines(container, options, this.medianPoints, options.median);\n this.drawLines(container, options, this.meanPoints, options.mean);\n }\n\n getBorderColor() {\n if ((this.options.border || {}).color) {\n return this.options.border.color;\n }\n\n if (this.color) {\n return this.color;\n }\n\n return super.getBorderColor();\n }\n}\n\nsetDefaultOptions(BoxPlot, {\n border: {\n _brightness: 0.8\n },\n line: {\n width: 2\n },\n median: {\n color: \"#f6f6f6\"\n },\n mean: {\n width: 2,\n dashType: \"dash\",\n color: \"#f6f6f6\"\n },\n overlay: {\n gradient: \"glass\"\n },\n tooltip: {\n format: \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"
    {6:d}
    Lower:{0:C}
    Q1:{1:C}
    Median:{2:C}
    Mean:{5:C}
    Q3:{3:C}
    Upper:{4:C}
    \"\n },\n highlight: {\n opacity: 1,\n border: {\n width: 1,\n opacity: 1\n },\n line: {\n width: 1,\n opacity: 1\n }\n },\n notes: {\n visible: true,\n label: {}\n },\n outliers: {\n visible: true,\n size: LINE_MARKER_SIZE,\n type: CROSS,\n background: WHITE,\n border: {\n width: 2,\n opacity: 1\n },\n opacity: 0\n },\n extremes: {\n visible: true,\n size: LINE_MARKER_SIZE,\n type: CIRCLE,\n background: WHITE,\n border: {\n width: 2,\n opacity: 1\n },\n opacity: 0\n }\n});\n\ndeepExtend(BoxPlot.prototype, PointEventsMixin);\n\nexport default BoxPlot;","import BoxPlot from './box-plot';\n\nclass VerticalBoxPlot extends BoxPlot {\n reflowBoxSlot(box) {\n this.boxSlot.y1 = box.y1;\n this.boxSlot.y2 = box.y2;\n }\n\n reflowWhiskerSlot(box) {\n this.whiskerSlot.y1 = box.y1;\n this.whiskerSlot.y2 = box.y2;\n }\n\n calcMeanPoints(box, meanSlot) {\n return [\n [ [ meanSlot.x1, box.y1 ], [ meanSlot.x1, box.y2 ] ]\n ];\n }\n\n calcWhiskerPoints(boxSlot, whiskerSlot) {\n const mid = whiskerSlot.center().y;\n return [ [\n [ whiskerSlot.x1, mid - 5 ], [ whiskerSlot.x1, mid + 5 ],\n [ whiskerSlot.x1, mid ], [ boxSlot.x1, mid ]\n ], [\n [ whiskerSlot.x2, mid - 5 ], [ whiskerSlot.x2, mid + 5 ],\n [ whiskerSlot.x2, mid ], [ boxSlot.x2, mid ]\n ] ];\n }\n\n calcMedianPoints(box, medianSlot) {\n return [\n [ [ medianSlot.x1, box.y1 ], [ medianSlot.x1, box.y2 ] ]\n ];\n }\n}\n\nexport default VerticalBoxPlot;","import ScatterChart from '../scatter-charts/scatter-chart';\nimport Bubble from './bubble';\n\nimport { INITIAL_ANIMATION_DURATION, BUBBLE } from '../constants';\n\nimport { MIN_VALUE, CIRCLE } from '../../common/constants';\nimport { deepExtend, isFunction, setDefaultOptions, valueOrDefault } from '../../common';\n\nclass BubbleChart extends ScatterChart {\n _initFields() {\n this._maxSize = MIN_VALUE;\n super._initFields();\n }\n\n addValue(value, fields) {\n if (value.size !== null && (value.size > 0 || (value.size < 0 && fields.series.negativeValues.visible))) {\n this._maxSize = Math.max(this._maxSize, Math.abs(value.size));\n super.addValue(value, fields);\n } else {\n this.points.push(null);\n this.seriesPoints[fields.seriesIx].push(null);\n }\n }\n\n reflow(box) {\n this.updateBubblesSize(box);\n super.reflow(box);\n }\n\n pointType() {\n return Bubble;\n }\n\n createPoint(value, fields) {\n const series = fields.series;\n const pointsCount = series.data.length;\n const delay = fields.pointIx * (INITIAL_ANIMATION_DURATION / pointsCount);\n const animationOptions = {\n delay: delay,\n duration: INITIAL_ANIMATION_DURATION - delay,\n type: BUBBLE\n };\n\n let color = fields.color || series.color;\n if (value.size < 0 && series.negativeValues.visible) {\n color = valueOrDefault(\n series.negativeValues.color, color\n );\n }\n\n let pointOptions = deepExtend({\n labels: {\n animation: {\n delay: delay,\n duration: INITIAL_ANIMATION_DURATION - delay\n }\n }\n }, this.pointOptions(series, fields.seriesIx), {\n markers: {\n type: CIRCLE,\n border: series.border,\n opacity: series.opacity,\n animation: animationOptions\n }\n });\n\n pointOptions = this.evalPointOptions(pointOptions, value, fields);\n if (isFunction(series.color)) {\n color = pointOptions.color;\n }\n\n pointOptions.markers.background = color;\n\n const point = new Bubble(value, pointOptions);\n point.color = color;\n\n this.append(point);\n\n return point;\n }\n\n updateBubblesSize(box) {\n const { options: { series } } = this;\n const boxSize = Math.min(box.width(), box.height());\n\n for (let seriesIx = 0; seriesIx < series.length; seriesIx++) {\n const currentSeries = series[seriesIx];\n const seriesPoints = this.seriesPoints[seriesIx];\n const minSize = currentSeries.minSize || Math.max(boxSize * 0.02, 10);\n const maxSize = currentSeries.maxSize || boxSize * 0.2;\n const minR = minSize / 2;\n const maxR = maxSize / 2;\n const minArea = Math.PI * minR * minR;\n const maxArea = Math.PI * maxR * maxR;\n const areaRange = maxArea - minArea;\n const areaRatio = areaRange / this._maxSize;\n\n for (let pointIx = 0; pointIx < seriesPoints.length; pointIx++) {\n const point = seriesPoints[pointIx];\n if (point) {\n const area = Math.abs(point.value.size) * areaRatio;\n const radius = Math.sqrt((minArea + area) / Math.PI);\n const baseZIndex = valueOrDefault(point.options.zIndex, 0);\n const zIndex = baseZIndex + (1 - radius / maxR);\n\n deepExtend(point.options, {\n zIndex: zIndex,\n markers: {\n size: radius * 2,\n zIndex: zIndex\n },\n labels: {\n zIndex: zIndex + 1\n }\n });\n }\n }\n }\n }\n\n formatPointValue(point, format) {\n const value = point.value;\n return this.chartService.format.auto(format, value.x, value.y, value.size, point.category);\n }\n\n createAnimation() {}\n createVisual() {}\n}\n\nsetDefaultOptions(BubbleChart, {\n tooltip: {\n format: \"{3}\"\n },\n labels: {\n format: \"{3}\"\n }\n});\n\nexport default BubbleChart;","import { drawing as draw, geometry as geom, Color } from '@progress/kendo-drawing';\n\nimport LinePoint from '../line-chart/line-point';\nimport { BORDER_BRIGHTNESS } from '../constants';\n\nimport { CENTER } from '../../common/constants';\nimport { deepExtend } from '../../common';\n\nclass Bubble extends LinePoint {\n constructor(value, options) {\n super(value, options);\n\n this.category = value.category;\n }\n\n createHighlight() {\n const highlight = this.options.highlight;\n const border = highlight.border;\n const markers = this.options.markers;\n const center = this.box.center();\n const radius = (markers.size + markers.border.width + border.width) / 2;\n const highlightGroup = new draw.Group();\n const shadow = new draw.Circle(new geom.Circle([ center.x, center.y + radius / 5 + border.width / 2 ], radius + border.width / 2), {\n stroke: {\n color: 'none'\n },\n fill: this.createGradient({\n gradient: 'bubbleShadow',\n color: markers.background,\n stops: [ {\n offset: 0,\n color: markers.background,\n opacity: 0.3\n }, {\n offset: 1,\n color: markers.background,\n opacity: 0\n } ]\n })\n });\n const overlay = new draw.Circle(new geom.Circle([ center.x, center.y ], radius), {\n stroke: {\n color: border.color ||\n new Color(markers.background).brightness(BORDER_BRIGHTNESS).toHex(),\n width: border.width,\n opacity: border.opacity\n },\n fill: {\n color: markers.background,\n opacity: highlight.opacity\n }\n });\n\n highlightGroup.append(shadow, overlay);\n\n return highlightGroup;\n }\n}\n\nBubble.prototype.defaults = deepExtend({}, Bubble.prototype.defaults, {\n labels: {\n position: CENTER\n },\n highlight: {\n opacity: 1,\n border: {\n color: \"#fff\",\n width: 2,\n opacity: 1\n }\n }\n});\n\nBubble.prototype.defaults.highlight.zIndex = undefined;\n\nexport default Bubble;","\nimport CategoricalChart from '../categorical-chart';\nimport BarChart from '../bar-chart/bar-chart';\nimport Bullet from './bullet';\nimport ClusterLayout from '../layout/cluster-layout';\nimport { BAR } from '../constants';\n\nimport { MIN_VALUE, MAX_VALUE } from '../../common/constants';\nimport { deepExtend, defined, isArray, isFunction, isObject, setDefaultOptions } from '../../common';\n\nclass BulletChart extends CategoricalChart {\n constructor(plotArea, options) {\n\n wrapData(options);\n\n super(plotArea, options);\n }\n\n reflowCategories(categorySlots) {\n const children = this.children;\n const childrenLength = children.length;\n\n for (let i = 0; i < childrenLength; i++) {\n children[i].reflow(categorySlots[i]);\n }\n }\n\n plotRange(point) {\n const series = point.series;\n const valueAxis = this.seriesValueAxis(series);\n const axisCrossingValue = this.categoryAxisCrossingValue(valueAxis);\n\n return [ axisCrossingValue, point.value.current || axisCrossingValue ];\n }\n\n createPoint(data, fields) {\n const { categoryIx, category, series, seriesIx } = fields;\n const { options, children } = this;\n const value = data.valueFields;\n\n let bulletOptions = deepExtend({\n vertical: !options.invertAxes,\n overlay: series.overlay,\n categoryIx: categoryIx,\n invertAxes: options.invertAxes\n }, series);\n\n let color = data.fields.color || series.color;\n bulletOptions = this.evalPointOptions(\n bulletOptions, value, category, categoryIx, series, seriesIx\n );\n\n if (isFunction(series.color)) {\n color = bulletOptions.color;\n }\n\n const bullet = new Bullet(value, bulletOptions);\n bullet.color = color;\n\n let cluster = children[categoryIx];\n if (!cluster) {\n cluster = new ClusterLayout({\n vertical: options.invertAxes,\n gap: options.gap,\n spacing: options.spacing,\n rtl: !options.invertAxes && (this.chartService || {}).rtl\n });\n this.append(cluster);\n }\n\n cluster.append(bullet);\n\n return bullet;\n }\n\n updateRange(value, fields) {\n const { current, target } = value;\n const axisName = fields.series.axis;\n let axisRange = this.valueAxisRanges[axisName];\n\n if (defined(current) && !isNaN(current) && defined(target && !isNaN(target))) {\n axisRange = this.valueAxisRanges[axisName] =\n axisRange || { min: MAX_VALUE, max: MIN_VALUE };\n\n axisRange.min = Math.min(axisRange.min, current, target);\n axisRange.max = Math.max(axisRange.max, current, target);\n }\n }\n\n formatPointValue(point, format) {\n return this.chartService.format.auto(format, point.value.current, point.value.target);\n }\n\n pointValue(data) {\n return data.valueFields.current;\n }\n\n aboveAxis(point) {\n const value = point.value.current;\n\n return value > 0;\n }\n\n createAnimation() {\n const points = this.points;\n\n this._setAnimationOptions();\n\n for (let idx = 0; idx < points.length; idx++) {\n const point = points[idx];\n point.options.animation = this.options.animation;\n point.createAnimation();\n }\n }\n}\n\nBulletChart.prototype._setAnimationOptions = BarChart.prototype._setAnimationOptions;\n\nsetDefaultOptions(BulletChart, {\n animation: {\n type: BAR\n }\n});\n\nfunction wrapData(options) {\n const series = options.series;\n\n for (let i = 0; i < series.length; i++) {\n const seriesItem = series[i];\n const data = seriesItem.data;\n if (data && !isArray(data[0]) && !isObject(data[0])) {\n seriesItem.data = [ data ];\n }\n }\n}\n\nexport default BulletChart;","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport Target from './target';\n\nimport { ChartElement, Box } from '../../core';\n\nimport PointEventsMixin from '../mixins/point-events-mixin';\nimport NoteMixin from '../mixins/note-mixin';\nimport Bar from '../bar-chart/bar';\n\nimport { WHITE, TOP, RIGHT } from '../../common/constants';\nimport { alignPathToPixel, deepExtend, defined, setDefaultOptions, valueOrDefault } from '../../common';\n\nclass Bullet extends ChartElement {\n constructor(value, options) {\n super(options);\n\n this.aboveAxis = this.options.aboveAxis;\n this.color = options.color || WHITE;\n this.value = value;\n }\n\n render() {\n const options = this.options;\n\n if (!this._rendered) {\n this._rendered = true;\n\n if (defined(this.value.target)) {\n this.target = new Target({\n type: options.target.shape,\n background: options.target.color || this.color,\n opacity: options.opacity,\n zIndex: options.zIndex,\n border: options.target.border,\n vAlign: TOP,\n align: RIGHT\n });\n\n this.target.value = this.value;\n this.target.dataItem = this.dataItem;\n this.target.series = this.series;\n\n this.append(this.target);\n }\n\n this.createNote();\n }\n }\n\n reflow(box) {\n this.render();\n\n const { options, target, owner: chart } = this;\n const invertAxes = options.invertAxes;\n const valueAxis = chart.seriesValueAxis(this.options);\n const categorySlot = chart.categorySlot(chart.categoryAxis, options.categoryIx, valueAxis);\n const targetValueSlot = valueAxis.getSlot(this.value.target);\n const targetSlotX = invertAxes ? targetValueSlot : categorySlot;\n const targetSlotY = invertAxes ? categorySlot : targetValueSlot;\n\n if (target) {\n const targetSlot = new Box(\n targetSlotX.x1, targetSlotY.y1,\n targetSlotX.x2, targetSlotY.y2\n );\n target.options.height = invertAxes ? targetSlot.height() : options.target.line.width;\n target.options.width = invertAxes ? options.target.line.width : targetSlot.width();\n target.reflow(targetSlot);\n }\n\n if (this.note) {\n this.note.reflow(box);\n }\n\n this.box = box;\n }\n\n createVisual() {\n super.createVisual();\n\n const options = this.options;\n const body = draw.Path.fromRect(this.box.toRect(), {\n fill: {\n color: this.color,\n opacity: options.opacity\n },\n stroke: null\n });\n\n if (options.border.width > 0) {\n body.options.set(\"stroke\", {\n color: options.border.color || this.color,\n width: options.border.width,\n dashType: options.border.dashType,\n opacity: valueOrDefault(options.border.opacity, options.opacity)\n });\n }\n\n this.bodyVisual = body;\n\n alignPathToPixel(body);\n this.visual.append(body);\n }\n\n createAnimation() {\n if (this.bodyVisual) {\n this.animation = draw.Animation.create(\n this.bodyVisual, this.options.animation\n );\n }\n }\n\n createHighlight(style) {\n return draw.Path.fromRect(this.box.toRect(), style);\n }\n\n highlightVisual() {\n return this.bodyVisual;\n }\n\n highlightVisualArgs() {\n return {\n rect: this.box.toRect(),\n visual: this.bodyVisual,\n options: this.options\n };\n }\n\n formatValue(format) {\n return this.owner.formatPointValue(this, format);\n }\n}\n\nBullet.prototype.tooltipAnchor = Bar.prototype.tooltipAnchor;\n\nsetDefaultOptions(Bullet, {\n border: {\n width: 1\n },\n vertical: false,\n opacity: 1,\n target: {\n shape: \"\",\n border: {\n width: 0,\n color: \"green\"\n },\n line: {\n width: 2\n }\n },\n tooltip: {\n format: \"Current: {0}
    Target: {1}\"\n }\n});\n\ndeepExtend(Bullet.prototype, PointEventsMixin);\ndeepExtend(Bullet.prototype, NoteMixin);\n\nexport default Bullet;","import { ShapeElement } from '../../core';\nimport { deepExtend } from '../../common';\nimport PointEventsMixin from '../mixins/point-events-mixin';\n\nclass Target extends ShapeElement { }\n\ndeepExtend(Target.prototype, PointEventsMixin);\n\nexport default Target;","import CategoricalChart from '../categorical-chart';\nimport ClusterLayout from '../layout/cluster-layout';\nimport Candlestick from './candlestick';\n\nimport ClipAnimationMixin from '../mixins/clip-animation-mixin';\nimport { CANDLESTICK } from '../constants';\nimport areNumbers from '../utils/are-numbers';\n\nimport { MIN_VALUE, MAX_VALUE } from '../../common/constants';\nimport { deepExtend, isFunction } from '../../common';\n\nclass CandlestickChart extends CategoricalChart {\n\n reflowCategories(categorySlots) {\n const children = this.children;\n const childrenLength = children.length;\n\n for (let i = 0; i < childrenLength; i++) {\n children[i].reflow(categorySlots[i]);\n }\n }\n\n addValue(data, fields) {\n const { categoryIx, category, series, seriesIx } = fields;\n const { children, options } = this;\n const value = data.valueFields;\n const valueParts = this.splitValue(value);\n const hasValue = areNumbers(valueParts);\n const dataItem = series.data[categoryIx];\n let categoryPoints = this.categoryPoints[categoryIx];\n let point;\n\n if (!categoryPoints) {\n this.categoryPoints[categoryIx] = categoryPoints = [];\n }\n\n if (hasValue) {\n point = this.createPoint(data, fields);\n }\n\n let cluster = children[categoryIx];\n if (!cluster) {\n cluster = new ClusterLayout({\n vertical: options.invertAxes,\n gap: options.gap,\n spacing: options.spacing,\n rtl: !options.invertAxes && (this.chartService || {}).rtl\n });\n this.append(cluster);\n }\n\n if (point) {\n this.updateRange(value, fields);\n\n cluster.append(point);\n\n point.categoryIx = categoryIx;\n point.category = category;\n point.series = series;\n point.seriesIx = seriesIx;\n point.owner = this;\n point.dataItem = dataItem;\n point.noteText = data.fields.noteText;\n }\n\n this.points.push(point);\n categoryPoints.push(point);\n }\n\n pointType() {\n return Candlestick;\n }\n\n createPoint(data, fields) {\n const { categoryIx, category, series, seriesIx } = fields;\n const pointType = this.pointType();\n const value = data.valueFields;\n let pointOptions = deepExtend({}, series);\n let color = data.fields.color || series.color;\n\n pointOptions = this.evalPointOptions(\n pointOptions, value, category, categoryIx, series, seriesIx\n );\n\n if (series.type === CANDLESTICK) {\n if (value.open > value.close) {\n color = data.fields.downColor || series.downColor || series.color;\n }\n }\n\n if (isFunction(series.color)) {\n color = pointOptions.color;\n }\n\n pointOptions.vertical = !this.options.invertAxes;\n\n const point = new pointType(value, pointOptions);\n point.color = color;\n\n return point;\n }\n\n splitValue(value) {\n return [ value.low, value.open, value.close, value.high ];\n }\n\n updateRange(value, fields) {\n const axisName = fields.series.axis;\n const parts = this.splitValue(value);\n let axisRange = this.valueAxisRanges[axisName];\n\n axisRange = this.valueAxisRanges[axisName] =\n axisRange || { min: MAX_VALUE, max: MIN_VALUE };\n\n axisRange = this.valueAxisRanges[axisName] = {\n min: Math.min.apply(Math, parts.concat([ axisRange.min ])),\n max: Math.max.apply(Math, parts.concat([ axisRange.max ]))\n };\n }\n\n formatPointValue(point, format) {\n const value = point.value;\n\n return this.chartService.format.auto(format,\n value.open, value.high,\n value.low, value.close, point.category\n );\n }\n\n animationPoints() {\n return this.points;\n }\n}\n\ndeepExtend(CandlestickChart.prototype, ClipAnimationMixin);\n\nexport default CandlestickChart;","import { drawing as draw, Color } from '@progress/kendo-drawing';\n\nimport { ChartElement, Point } from '../../core';\nimport PointEventsMixin from '../mixins/point-events-mixin';\nimport NoteMixin from '../mixins/note-mixin';\n\nimport { TOOLTIP_OFFSET } from '../constants';\nimport hasGradientOverlay from '../utils/has-gradient-overlay';\n\nimport { WHITE, LEFT, TOP } from '../../common/constants';\nimport { alignPathToPixel, deepExtend, defined, setDefaultOptions, valueOrDefault } from '../../common';\n\nclass Candlestick extends ChartElement {\n constructor(value, options) {\n super(options);\n this.value = value;\n }\n\n reflow(box) {\n const { options, value, owner: chart } = this;\n const valueAxis = chart.seriesValueAxis(options);\n const ocSlot = valueAxis.getSlot(value.open, value.close);\n const lhSlot = valueAxis.getSlot(value.low, value.high);\n\n ocSlot.x1 = lhSlot.x1 = box.x1;\n ocSlot.x2 = lhSlot.x2 = box.x2;\n\n this.realBody = ocSlot;\n\n const mid = lhSlot.center().x;\n const points = [];\n\n points.push([ [ mid, lhSlot.y1 ], [ mid, ocSlot.y1 ] ]);\n points.push([ [ mid, ocSlot.y2 ], [ mid, lhSlot.y2 ] ]);\n\n this.lines = points;\n\n this.box = lhSlot.clone().wrap(ocSlot);\n\n if (!this._rendered) {\n this._rendered = true;\n this.createNote();\n }\n\n this.reflowNote();\n }\n\n reflowNote() {\n if (this.note) {\n this.note.reflow(this.box);\n }\n }\n\n createVisual() {\n super.createVisual();\n this._mainVisual = this.mainVisual(this.options);\n this.visual.append(\n this._mainVisual\n );\n\n this.createOverlay();\n }\n\n mainVisual(options) {\n const group = new draw.Group();\n\n this.createBody(group, options);\n this.createLines(group, options);\n\n return group;\n }\n\n createBody(container, options) {\n const body = draw.Path.fromRect(this.realBody.toRect(), {\n fill: {\n color: this.color,\n opacity: options.opacity\n },\n stroke: null\n });\n\n if (options.border.width > 0) {\n body.options.set(\"stroke\", {\n color: this.getBorderColor(),\n width: options.border.width,\n dashType: options.border.dashType,\n opacity: valueOrDefault(options.border.opacity, options.opacity)\n });\n }\n\n alignPathToPixel(body);\n container.append(body);\n\n if (hasGradientOverlay(options)) {\n container.append(this.createGradientOverlay(body, { baseColor: this.color }, deepExtend({\n end: !options.vertical ? [ 0, 1 ] : undefined\n }, options.overlay)));\n }\n }\n\n createLines(container, options) {\n this.drawLines(container, options, this.lines, options.line);\n }\n\n drawLines(container, options, lines, lineOptions) {\n if (!lines) {\n return;\n }\n\n const lineStyle = {\n stroke: {\n color: lineOptions.color || this.color,\n opacity: valueOrDefault(lineOptions.opacity, options.opacity),\n width: lineOptions.width,\n dashType: lineOptions.dashType,\n lineCap: \"butt\"\n }\n };\n\n for (let i = 0; i < lines.length; i++) {\n const line = draw.Path.fromPoints(lines[i], lineStyle);\n alignPathToPixel(line);\n container.append(line);\n }\n }\n\n getBorderColor() {\n const border = this.options.border;\n let borderColor = border.color;\n\n if (!defined(borderColor)) {\n borderColor = new Color(this.color).brightness(border._brightness).toHex();\n }\n\n return borderColor;\n }\n\n createOverlay() {\n const overlay = draw.Path.fromRect(this.box.toRect(), {\n fill: {\n color: WHITE,\n opacity: 0\n },\n stroke: null\n });\n\n this.visual.append(overlay);\n }\n\n createHighlight() {\n const highlight = this.options.highlight;\n const normalColor = this.color;\n\n this.color = highlight.color || this.color;\n const overlay = this.mainVisual(\n deepExtend({}, this.options, {\n line: {\n color: this.getBorderColor()\n }\n }, highlight)\n );\n this.color = normalColor;\n\n return overlay;\n }\n\n highlightVisual() {\n return this._mainVisual;\n }\n\n highlightVisualArgs() {\n return {\n options: this.options,\n rect: this.box.toRect(),\n visual: this._mainVisual\n };\n }\n\n tooltipAnchor() {\n const box = this.box;\n const clipBox = this.owner.pane.clipBox() || box;\n\n return {\n point: new Point(box.x2 + TOOLTIP_OFFSET, Math.max(box.y1, clipBox.y1) + TOOLTIP_OFFSET),\n align: {\n horizontal: LEFT,\n vertical: TOP\n }\n };\n }\n\n formatValue(format) {\n return this.owner.formatPointValue(this, format);\n }\n\n overlapsBox(box) {\n return this.box.overlaps(box);\n }\n}\n\nsetDefaultOptions(Candlestick, {\n vertical: true,\n border: {\n _brightness: 0.8\n },\n line: {\n width: 2\n },\n overlay: {\n gradient: \"glass\"\n },\n tooltip: {\n format: \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"
    {4:d}
    Open:{0:C}
    High:{1:C}
    Low:{2:C}
    Close:{3:C}
    \"\n },\n highlight: {\n opacity: 1,\n border: {\n width: 1,\n opacity: 1\n },\n line: {\n width: 1,\n opacity: 1\n }\n },\n notes: {\n visible: true,\n label: {}\n }\n});\n\ndeepExtend(Candlestick.prototype, PointEventsMixin);\ndeepExtend(Candlestick.prototype, NoteMixin);\n\nexport default Candlestick;","import ErrorRangeCalculator from './error-bars/error-range-calculator';\nimport CategoricalErrorBar from './error-bars/categorical-error-bar';\n\nimport SeriesBinder from './series-binder';\nimport { ERROR_LOW_FIELD, ERROR_HIGH_FIELD } from './constants';\n\nimport evalOptions from './utils/eval-options';\nimport categoriesCount from './utils/categories-count';\n\nimport { ChartElement, Box } from '../core';\n\nimport { VALUE, STRING, MIN_VALUE, MAX_VALUE } from '../common/constants';\nimport { convertableToNumber, deepExtend, defined, isNumber, last, setDefaultOptions, sparseArrayLimits } from '../common';\n\nclass CategoricalChart extends ChartElement {\n constructor(plotArea, options) {\n super(options);\n\n this.plotArea = plotArea;\n this.chartService = plotArea.chartService;\n this.categoryAxis = plotArea.seriesCategoryAxis(options.series[0]);\n\n // Value axis ranges grouped by axis name, e.g.:\n // primary: { min: 0, max: 1 }\n this.valueAxisRanges = {};\n\n this.points = [];\n this.categoryPoints = [];\n this.seriesPoints = [];\n this.seriesOptions = [];\n this._evalSeries = [];\n\n this.render();\n }\n\n render() {\n this.traverseDataPoints(this.addValue.bind(this));\n }\n\n pointOptions(series, seriesIx) {\n let options = this.seriesOptions[seriesIx];\n if (!options) {\n const defaults = this.pointType().prototype.defaults;\n this.seriesOptions[seriesIx] = options = deepExtend({ }, defaults, {\n vertical: !this.options.invertAxes\n }, series);\n }\n\n return options;\n }\n\n plotValue(point) {\n if (!point) {\n return 0;\n }\n\n if (this.options.isStacked100 && isNumber(point.value)) {\n const categoryIx = point.categoryIx;\n const categoryPoints = this.categoryPoints[categoryIx];\n const otherValues = [];\n let categorySum = 0;\n\n for (let i = 0; i < categoryPoints.length; i++) {\n const other = categoryPoints[i];\n if (other) {\n const stack = point.series.stack;\n const otherStack = other.series.stack;\n\n if ((stack && otherStack) && stack.group !== otherStack.group) {\n continue;\n }\n\n if (isNumber(other.value)) {\n categorySum += Math.abs(other.value);\n otherValues.push(Math.abs(other.value));\n }\n }\n }\n\n if (categorySum > 0) {\n return point.value / categorySum;\n }\n }\n\n return point.value;\n }\n\n plotRange(point, startValue = 0) {\n const categoryPoints = this.categoryPoints[point.categoryIx];\n\n if (this.options.isStacked) {\n let plotValue = this.plotValue(point);\n const positive = plotValue >= 0;\n let prevValue = startValue;\n let isStackedBar = false;\n\n for (let i = 0; i < categoryPoints.length; i++) {\n const other = categoryPoints[i];\n\n if (point === other) {\n break;\n }\n\n const stack = point.series.stack;\n const otherStack = other.series.stack;\n if (stack && otherStack) {\n if (typeof stack === STRING && stack !== otherStack) {\n continue;\n }\n\n if (stack.group && stack.group !== otherStack.group) {\n continue;\n }\n }\n\n const otherValue = this.plotValue(other);\n if ((otherValue >= 0 && positive) ||\n (otherValue < 0 && !positive)) {\n prevValue += otherValue;\n plotValue += otherValue;\n isStackedBar = true;\n\n if (this.options.isStacked100) {\n plotValue = Math.min(plotValue, 1);\n }\n }\n }\n\n if (isStackedBar) {\n prevValue -= startValue;\n }\n\n return [ prevValue, plotValue ];\n }\n\n const series = point.series;\n const valueAxis = this.seriesValueAxis(series);\n const axisCrossingValue = this.categoryAxisCrossingValue(valueAxis);\n\n return [ axisCrossingValue, convertableToNumber(point.value) ? point.value : axisCrossingValue ];\n }\n\n stackLimits(axisName, stackName) {\n let min = MAX_VALUE;\n let max = MIN_VALUE;\n\n for (let i = 0; i < this.categoryPoints.length; i++) {\n const categoryPoints = this.categoryPoints[i];\n if (!categoryPoints) {\n continue;\n }\n\n for (let pIx = 0; pIx < categoryPoints.length; pIx++) {\n const point = categoryPoints[pIx];\n if (point) {\n if (point.series.stack === stackName || point.series.axis === axisName) {\n const to = this.plotRange(point, 0)[1];\n if (defined(to) && isFinite(to)) {\n max = Math.max(max, to);\n min = Math.min(min, to);\n }\n }\n }\n }\n }\n\n return { min: min, max: max };\n }\n\n updateStackRange() {\n const { isStacked, series: chartSeries } = this.options;\n const limitsCache = {};\n\n if (isStacked) {\n for (let i = 0; i < chartSeries.length; i++) {\n const series = chartSeries[i];\n const axisName = series.axis;\n const key = axisName + series.stack;\n\n let limits = limitsCache[key];\n if (!limits) {\n limits = this.stackLimits(axisName, series.stack);\n\n const errorTotals = this.errorTotals;\n if (errorTotals) {\n if (errorTotals.negative.length) {\n limits.min = Math.min(limits.min, sparseArrayLimits(errorTotals.negative).min);\n }\n if (errorTotals.positive.length) {\n limits.max = Math.max(limits.max, sparseArrayLimits(errorTotals.positive).max);\n }\n }\n\n if (limits.min !== MAX_VALUE || limits.max !== MIN_VALUE) {\n limitsCache[key] = limits;\n } else {\n limits = null;\n }\n }\n\n if (limits) {\n this.valueAxisRanges[axisName] = limits;\n }\n }\n }\n }\n\n addErrorBar(point, data, categoryIx) {\n const { value, series, seriesIx } = point;\n const errorBars = point.options.errorBars;\n const lowValue = data.fields[ERROR_LOW_FIELD];\n const highValue = data.fields[ERROR_HIGH_FIELD];\n let errorRange;\n\n if (isNumber(lowValue) && isNumber(highValue)) {\n errorRange = { low: lowValue, high: highValue };\n } else if (errorBars && defined(errorBars.value)) {\n this.seriesErrorRanges = this.seriesErrorRanges || [];\n this.seriesErrorRanges[seriesIx] = this.seriesErrorRanges[seriesIx] ||\n new ErrorRangeCalculator(errorBars.value, series, VALUE);\n\n errorRange = this.seriesErrorRanges[seriesIx].getErrorRange(value, errorBars.value);\n }\n\n if (errorRange) {\n point.low = errorRange.low;\n point.high = errorRange.high;\n this.addPointErrorBar(point, categoryIx);\n }\n }\n\n addPointErrorBar(point, categoryIx) {\n const isVertical = !this.options.invertAxes;\n const options = point.options.errorBars;\n let { series, low, high } = point;\n\n if (this.options.isStacked) {\n const stackedErrorRange = this.stackedErrorRange(point, categoryIx);\n low = stackedErrorRange.low;\n high = stackedErrorRange.high;\n } else {\n const fields = { categoryIx: categoryIx, series: series };\n this.updateRange({ value: low }, fields);\n this.updateRange({ value: high }, fields);\n }\n\n const errorBar = new CategoricalErrorBar(low, high, isVertical, this, series, options);\n point.errorBars = [ errorBar ];\n point.append(errorBar);\n }\n\n stackedErrorRange(point, categoryIx) {\n const plotValue = this.plotRange(point, 0)[1] - point.value;\n const low = point.low + plotValue;\n const high = point.high + plotValue;\n\n this.errorTotals = this.errorTotals || { positive: [], negative: [] };\n\n if (low < 0) {\n this.errorTotals.negative[categoryIx] = Math.min(this.errorTotals.negative[categoryIx] || 0, low);\n }\n\n if (high > 0) {\n this.errorTotals.positive[categoryIx] = Math.max(this.errorTotals.positive[categoryIx] || 0, high);\n }\n\n return { low: low, high: high };\n }\n\n addValue(data, fields) {\n const { categoryIx, series, seriesIx } = fields;\n\n let categoryPoints = this.categoryPoints[categoryIx];\n if (!categoryPoints) {\n this.categoryPoints[categoryIx] = categoryPoints = [];\n }\n\n let seriesPoints = this.seriesPoints[seriesIx];\n if (!seriesPoints) {\n this.seriesPoints[seriesIx] = seriesPoints = [];\n }\n\n const point = this.createPoint(data, fields);\n if (point) {\n Object.assign(point, fields);\n\n point.owner = this;\n point.noteText = data.fields.noteText;\n if (!defined(point.dataItem)) {\n point.dataItem = series.data[categoryIx];\n }\n this.addErrorBar(point, data, categoryIx);\n }\n\n this.points.push(point);\n seriesPoints.push(point);\n categoryPoints.push(point);\n\n this.updateRange(data.valueFields, fields);\n }\n\n evalPointOptions(options, value, category, categoryIx, series, seriesIx) {\n const state = { defaults: series._defaults, excluded: [ \"data\", \"aggregate\", \"_events\", \"tooltip\", \"content\", \"template\", \"visual\", \"toggle\", \"_outOfRangeMinPoint\", \"_outOfRangeMaxPoint\" ] };\n\n let doEval = this._evalSeries[seriesIx];\n if (!defined(doEval)) {\n this._evalSeries[seriesIx] = doEval = evalOptions(options, {}, state, true);\n }\n\n let pointOptions = options;\n if (doEval) {\n pointOptions = deepExtend({}, pointOptions);\n evalOptions(pointOptions, {\n value: value,\n category: category,\n index: categoryIx,\n series: series,\n dataItem: series.data[categoryIx]\n }, state);\n }\n\n return pointOptions;\n }\n\n updateRange(data, fields) {\n const axisName = fields.series.axis;\n const value = data.value;\n let axisRange = this.valueAxisRanges[axisName];\n\n if (isFinite(value) && value !== null) {\n axisRange = this.valueAxisRanges[axisName] =\n axisRange || { min: MAX_VALUE, max: MIN_VALUE };\n\n axisRange.min = Math.min(axisRange.min, value);\n axisRange.max = Math.max(axisRange.max, value);\n }\n }\n\n seriesValueAxis(series) {\n const plotArea = this.plotArea;\n const axisName = series.axis;\n const axis = axisName ? plotArea.namedValueAxes[axisName] : plotArea.valueAxis;\n\n if (!axis) {\n throw new Error(\"Unable to locate value axis with name \" + axisName);\n }\n\n return axis;\n }\n\n reflow(targetBox) {\n const categorySlots = this.categorySlots = [];\n const chartPoints = this.points;\n const categoryAxis = this.categoryAxis;\n let pointIx = 0;\n\n this.traverseDataPoints((data, fields) => {\n const { categoryIx, series: currentSeries } = fields;\n\n const valueAxis = this.seriesValueAxis(currentSeries);\n const point = chartPoints[pointIx++];\n\n let categorySlot = categorySlots[categoryIx];\n if (!categorySlot) {\n categorySlots[categoryIx] = categorySlot =\n this.categorySlot(categoryAxis, categoryIx, valueAxis);\n }\n\n if (point) {\n const plotRange = this.plotRange(point, valueAxis.startValue());\n const valueSlot = this.valueSlot(valueAxis, plotRange);\n if (valueSlot) {\n const pointSlot = this.pointSlot(categorySlot, valueSlot);\n\n point.aboveAxis = this.aboveAxis(point, valueAxis);\n point.stackValue = plotRange[1];\n\n if (this.options.isStacked100) {\n point.percentage = this.plotValue(point);\n }\n\n this.reflowPoint(point, pointSlot);\n } else {\n point.visible = false;\n }\n }\n });\n\n this.reflowCategories(categorySlots);\n if (!this.options.clip && this.options.limitPoints && this.points.length) {\n this.limitPoints();\n }\n\n this.box = targetBox;\n }\n\n valueSlot(valueAxis, plotRange) {\n return valueAxis.getSlot(plotRange[0], plotRange[1], !this.options.clip);\n }\n\n limitPoints() {\n const categoryPoints = this.categoryPoints;\n const points = categoryPoints[0].concat(last(categoryPoints));\n for (let idx = 0; idx < points.length; idx++) {\n if (points[idx]) {\n this.limitPoint(points[idx]);\n }\n }\n }\n\n limitPoint(point) {\n const limittedSlot = this.categoryAxis.limitSlot(point.box);\n if (!limittedSlot.equals(point.box)) {\n point.reflow(limittedSlot);\n }\n }\n\n aboveAxis(point, valueAxis) {\n const axisCrossingValue = this.categoryAxisCrossingValue(valueAxis);\n const value = point.value;\n\n return valueAxis.options.reverse ?\n value < axisCrossingValue : value >= axisCrossingValue;\n }\n\n categoryAxisCrossingValue(valueAxis) {\n const categoryAxis = this.categoryAxis;\n const options = valueAxis.options;\n const crossingValues = [].concat(\n options.axisCrossingValues || options.axisCrossingValue\n );\n\n return crossingValues[categoryAxis.axisIndex || 0] || 0;\n }\n\n reflowPoint(point, pointSlot) {\n point.reflow(pointSlot);\n }\n\n reflowCategories() { }\n\n pointSlot(categorySlot, valueSlot) {\n const options = this.options;\n const invertAxes = options.invertAxes;\n const slotX = invertAxes ? valueSlot : categorySlot;\n const slotY = invertAxes ? categorySlot : valueSlot;\n\n return new Box(slotX.x1, slotY.y1, slotX.x2, slotY.y2);\n }\n\n categorySlot(categoryAxis, categoryIx) {\n return categoryAxis.getSlot(categoryIx);\n }\n\n traverseDataPoints(callback) {\n const series = this.options.series;\n const count = categoriesCount(series);\n const seriesCount = series.length;\n\n for (let seriesIx = 0; seriesIx < seriesCount; seriesIx++) {\n this._outOfRangeCallback(series[seriesIx], \"_outOfRangeMinPoint\", seriesIx, callback);\n }\n\n for (let categoryIx = 0; categoryIx < count; categoryIx++) {\n for (let seriesIx = 0; seriesIx < seriesCount; seriesIx++) {\n const currentSeries = series[seriesIx];\n const currentCategory = this.categoryAxis.categoryAt(categoryIx);\n const pointData = this._bindPoint(currentSeries, seriesIx, categoryIx);\n\n callback(pointData, {\n category: currentCategory,\n categoryIx: categoryIx,\n categoriesCount: count,\n series: currentSeries,\n seriesIx: seriesIx\n });\n }\n }\n\n for (let seriesIx = 0; seriesIx < seriesCount; seriesIx++) {\n this._outOfRangeCallback(series[seriesIx], \"_outOfRangeMaxPoint\", seriesIx, callback);\n }\n }\n\n _outOfRangeCallback(series, field, seriesIx, callback) {\n const outOfRangePoint = series[field];\n if (outOfRangePoint) {\n const categoryIx = outOfRangePoint.categoryIx;\n const pointData = this._bindPoint(series, seriesIx, categoryIx, outOfRangePoint.item);\n\n callback(pointData, {\n category: outOfRangePoint.category,\n categoryIx: categoryIx,\n series: series,\n seriesIx: seriesIx,\n dataItem: outOfRangePoint.item\n });\n }\n }\n\n _bindPoint(series, seriesIx, categoryIx, item) {\n if (!this._bindCache) {\n this._bindCache = [];\n }\n\n let bindCache = this._bindCache[seriesIx];\n if (!bindCache) {\n bindCache = this._bindCache[seriesIx] = [];\n }\n\n let data = bindCache[categoryIx];\n if (!data) {\n data = bindCache[categoryIx] = SeriesBinder.current.bindPoint(series, categoryIx, item);\n }\n\n return data;\n }\n\n formatPointValue(point, format) {\n if (point.value === null) {\n return \"\";\n }\n\n return this.chartService.format.auto(format, point.value);\n }\n\n pointValue(data) {\n return data.valueFields.value;\n }\n}\n\nsetDefaultOptions(CategoricalChart, {\n series: [],\n invertAxes: false,\n isStacked: false,\n clip: true,\n limitPoints: true\n});\n\nexport default CategoricalChart;\n","import { drawing as draw } from '@progress/kendo-drawing';\nimport { alignPathToPixel } from '../common';\n\nimport { ChartElement } from '../core';\n\nclass ChartContainer extends ChartElement {\n constructor(options, pane) {\n super(options);\n this.pane = pane;\n }\n\n shouldClip() {\n const children = this.children;\n const length = children.length;\n\n for (let i = 0; i < length; i++) {\n if (children[i].options.clip === true) {\n return true;\n }\n }\n return false;\n }\n\n _clipBox() {\n return this.pane.chartsBox();\n }\n\n createVisual() {\n this.visual = new draw.Group({\n zIndex: 0\n });\n\n if (this.shouldClip()) {\n const clipBox = this.clipBox = this._clipBox();\n const clipRect = clipBox.toRect();\n const clipPath = draw.Path.fromRect(clipRect);\n alignPathToPixel(clipPath);\n\n this.visual.clip(clipPath);\n this.unclipLabels();\n }\n }\n\n stackRoot() {\n return this;\n }\n\n unclipLabels() {\n const { children: charts, clipBox } = this;\n\n for (let i = 0; i < charts.length; i++) {\n const points = charts[i].points || {};\n const length = points.length;\n\n for (let j = 0; j < length; j++) {\n const point = points[j];\n if (point && point.visible !== false && point.overlapsBox && point.overlapsBox(clipBox)) {\n if (point.unclipElements) {\n point.unclipElements();\n } else {\n const { label, note } = point;\n\n if (label && label.options.visible) {\n if (label.alignToClipBox) {\n label.alignToClipBox(clipBox);\n }\n label.options.noclip = true;\n }\n\n if (note && note.options.visible) {\n note.options.noclip = true;\n }\n }\n }\n }\n }\n }\n\n destroy() {\n super.destroy();\n\n delete this.parent;\n }\n}\n\nChartContainer.prototype.isStackRoot = true;\n\nexport default ChartContainer;","import { drawing as draw, throttle, geometry } from '@progress/kendo-drawing';\n\nimport { RootElement, Title, CategoryAxis, Point } from '../core';\n\nimport Highlight from './highlight';\nimport Pannable from './pan-and-zoom/pannable';\nimport ZoomSelection from './pan-and-zoom/zoom-selection';\nimport MousewheelZoom from './pan-and-zoom/mousewheel-zoom';\nimport Legend from './legend/legend';\nimport PlotAreaFactory from './plotarea/plotarea-factory';\nimport Selection from './selection';\nimport SeriesBinder from './series-binder';\nimport Tooltip from './tooltip/tooltip';\nimport SharedTooltip from './tooltip/shared-tooltip';\nimport CategoricalPlotArea from './plotarea/categorical-plotarea';\nimport PlotAreaBase from './plotarea/plotarea-base';\nimport { ChartService, DomEventsBuilder } from '../services';\nimport getField from './utils/get-field';\nimport isDateAxis from './utils/is-date-axis';\nimport getDateField from './utils/get-date-field';\nimport { ChartPane, ChartPlotArea, findAxisByName } from './api-elements';\n\nimport { X, Y, VALUE, DEFAULT_WIDTH, DEFAULT_HEIGHT, DEFAULT_SERIES_OPACITY } from '../common/constants';\nimport { addClass, Class, setDefaultOptions, deepExtend, defined, find, isObject, isFunction, elementSize, elementOffset,\n elementScale, elementStyles, eventCoordinates, bindEvents, unbindEvents, mousewheelDelta, FontLoader, inArray, last, round,\n HashMap, valueOrDefault } from '../common';\n\nimport { dateComparer } from '../date-utils';\n\nimport { DRAG_START, DRAG, DRAG_END, ZOOM_START, ZOOM, ZOOM_END, SELECT_START, SELECT, SELECT_END, PLOT_AREA_HOVER, PLOT_AREA_LEAVE,\n RENDER, CATEGORY, PIE, DONUT, FUNNEL, COLUMN, MOUSEWHEEL, MOUSEWHEEL_DELAY, MOUSEWHEEL_ZOOM_RATE, SHOW_TOOLTIP, SERIES_HOVER } from './constants';\n\nimport './animations';\nimport './register-charts';\n\nconst AXIS_NAMES = [ CATEGORY, VALUE, X, Y ];\n\nconst MOUSEMOVE = \"mousemove\";\nconst CONTEXTMENU = \"contextmenu\";\nconst MOUSELEAVE = \"mouseleave\";\nconst MOUSEMOVE_DELAY = 20;\n\nclass Chart extends Class {\n constructor(element, userOptions, themeOptions, context = {}) {\n super();\n\n this.observers = [];\n this.addObserver(context.observer);\n this.chartService = new ChartService(this, context);\n this.chartService.theme = themeOptions;\n\n this._initElement(element);\n\n const options = deepExtend({}, this.options, userOptions);\n this._originalOptions = deepExtend({}, options);\n this._theme = themeOptions;\n this._initTheme(options, themeOptions);\n\n this._initHandlers();\n this._initSurface();\n\n this.bindCategories();\n FontLoader.preloadFonts(userOptions, () => {\n this.fontLoaded = true;\n if (!this._destroyed) {\n this.trigger('init');\n this._redraw();\n this._attachEvents();\n }\n });\n }\n\n _initElement(element) {\n this._setElementClass(element);\n element.style.position = \"relative\";\n while (element.firstChild) {\n element.removeChild(element.firstChild);\n }\n this.element = element;\n }\n\n _setElementClass(element) {\n addClass(element, \"k-chart\");\n }\n\n _initTheme(options, themeOptions) {\n const seriesCopies = [];\n const series = options.series || [];\n\n for (let i = 0; i < series.length; i++) {\n seriesCopies.push(Object.assign({}, series[i]));\n }\n options.series = seriesCopies;\n\n resolveAxisAliases(options);\n this.applyDefaults(options, themeOptions);\n\n // Clean up default if not overriden by data attributes\n if (options.seriesColors === null) {\n delete options.seriesColors;\n }\n\n this.options = deepExtend({}, themeOptions, options);\n this.applySeriesColors();\n }\n\n getSize() {\n const chartArea = this.options.chartArea || {};\n const width = chartArea.width ? parseInt(chartArea.width, 10) : Math.floor(this.element.offsetWidth);\n const height = chartArea.height ? parseInt(chartArea.height, 10) : Math.floor(this.element.offsetHeight);\n\n return {\n width: width,\n height: height\n };\n }\n\n resize(force) {\n const size = this.getSize();\n const currentSize = this._size;\n const hasSize = size.width > 0 || size.height > 0;\n\n if (force || hasSize && (!currentSize || size.width !== currentSize.width || size.height !== currentSize.height)) {\n this._size = size;\n this._resize(size, force);\n this.trigger(\"resize\", size);\n } else if (hasSize && this._selections && find(this._selections, s => !s.visible)) {\n this._destroySelections();\n this._setupSelection();\n }\n }\n\n _resize() {\n this._noTransitionsRedraw();\n }\n\n redraw(paneName) {\n this.applyDefaults(this.options);\n this.applySeriesColors();\n\n if (paneName) {\n const plotArea = this._model._plotArea;\n const pane = plotArea.findPane(paneName);\n plotArea.redraw(pane);\n } else {\n this._redraw();\n }\n }\n\n getAxis(name) {\n return findAxisByName(name, this._plotArea.axes);\n }\n\n findAxisByName(name) {\n return this.getAxis(name);\n }\n\n findPaneByName(name) {\n const panes = this._plotArea.panes;\n\n for (let idx = 0; idx < panes.length; idx++) {\n if (panes[idx].options.name === name) {\n return new ChartPane(panes[idx]);\n }\n }\n }\n\n findPaneByIndex(idx) {\n const panes = this._plotArea.panes;\n if (panes[idx]) {\n return new ChartPane(panes[idx]);\n }\n }\n\n plotArea() {\n return new ChartPlotArea(this._plotArea);\n }\n\n toggleHighlight(show, filter) {\n const plotArea = this._plotArea;\n const firstSeries = (plotArea.srcSeries || plotArea.series || [])[0];\n let points;\n\n if (isFunction(filter)) {\n points = plotArea.filterPoints(filter);\n } else {\n let seriesName, categoryName;\n if (isObject(filter)) {\n seriesName = filter.series;\n categoryName = filter.category;\n } else {\n seriesName = categoryName = filter;\n }\n\n if (firstSeries.type === DONUT) {\n points = pointByCategoryName(plotArea.pointsBySeriesName(seriesName), categoryName);\n } else if (firstSeries.type === PIE || firstSeries.type === FUNNEL) {\n points = pointByCategoryName((plotArea.charts[0] || {}).points, categoryName);\n } else {\n points = plotArea.pointsBySeriesName(seriesName);\n }\n }\n\n if (points) {\n this.togglePointsHighlight(show, points);\n }\n }\n\n togglePointsHighlight(show, points) {\n const highlight = this._highlight;\n for (let idx = 0; idx < points.length; idx++) {\n highlight.togglePointHighlight(points[idx], show);\n }\n }\n\n showTooltip(filter) {\n const shared = this._sharedTooltip();\n const { _tooltip: tooltip, _plotArea: plotArea } = this;\n let point, categoryIndex;\n\n if (isFunction(filter)) {\n point = plotArea.findPoint(filter);\n if (point && shared) {\n categoryIndex = point.categoryIx;\n }\n } else if (shared && defined(filter)) {\n categoryIndex = plotArea.categoryAxis.categoryIndex(filter);\n }\n\n if (shared) {\n if (categoryIndex >= 0) {\n const points = this._plotArea.pointsByCategoryIndex(categoryIndex);\n tooltip.showAt(points);\n }\n } else if (point) {\n tooltip.show(point);\n }\n }\n\n hideTooltip() {\n this._tooltip.hide();\n }\n\n _initSurface() {\n const surface = this.surface;\n const wrap = this._surfaceWrap();\n\n const chartArea = this.options.chartArea || {};\n if (chartArea.width) {\n elementSize(wrap, { width: chartArea.width });\n }\n if (chartArea.height) {\n elementSize(wrap, { height: chartArea.height });\n }\n\n if (!surface || surface.options.type !== this.options.renderAs) {\n this._destroySurface();\n\n this.surface = draw.Surface.create(wrap, {\n type: this.options.renderAs\n });\n\n this.surface.bind(\"mouseenter\", this._surfaceMouseenterHandler);\n this.surface.bind(\"mouseleave\", this._surfaceMouseleaveHandler);\n\n } else {\n this.surface.clear();\n this.surface.resize();\n }\n }\n\n _surfaceWrap() {\n return this.element;\n }\n\n _redraw() {\n const model = this._getModel();\n this._size = {\n width: model.options.width,\n height: model.options.height\n };\n\n this._destroyView();\n\n this._model = model;\n this._plotArea = model._plotArea;\n\n model.renderVisual();\n\n if (this.options.transitions !== false) {\n model.traverse(function(element) {\n if (element.animation) {\n element.animation.setup();\n }\n });\n }\n\n this._initSurface();\n this.surface.draw(model.visual);\n\n if (this.options.transitions !== false) {\n model.traverse(function(element) {\n if (element.animation) {\n element.animation.play();\n }\n });\n }\n\n this._tooltip = this._createTooltip();\n this._highlight = new Highlight();\n this._setupSelection();\n this._createPannable();\n this._createZoomSelection();\n this._createMousewheelZoom();\n\n this.trigger(RENDER);\n triggerPaneRender(this._plotArea.panes);\n\n if (!this._navState) {\n this._cancelDomEvents();\n }\n }\n\n exportVisual(exportOptions) {\n let visual;\n if (exportOptions && (exportOptions.width || exportOptions.height || exportOptions.options)) {\n const currentOptions = this.options;\n const options = deepExtend({}, exportOptions.options, {\n chartArea: {\n width: exportOptions.width,\n height: exportOptions.height\n }\n });\n\n clearMissingValues(this._originalOptions, options);\n this.options = deepExtend({}, this._originalOptions, options);\n this._initTheme(this.options, this._theme);\n this.bindCategories();\n\n const model = this._getModel();\n\n model.renderVisual();\n triggerPaneRender(model._plotArea.panes);\n\n visual = model.visual;\n\n this.options = currentOptions;\n } else {\n visual = this.surface.exportVisual();\n }\n\n return visual;\n }\n\n _sharedTooltip() {\n return this._plotArea instanceof CategoricalPlotArea && this.options.tooltip && this.options.tooltip.shared;\n }\n\n _createPannable() {\n const options = this.options;\n if (options.pannable !== false) {\n this._pannable = new Pannable(this._plotArea, options.pannable);\n }\n }\n\n _createZoomSelection() {\n const zoomable = this.options.zoomable;\n const selection = (zoomable || {}).selection;\n if (zoomable !== false && selection !== false) {\n this._zoomSelection = new ZoomSelection(this, selection);\n }\n }\n\n _createMousewheelZoom() {\n const zoomable = this.options.zoomable;\n const mousewheel = (zoomable || {}).mousewheel;\n if (zoomable !== false && mousewheel !== false) {\n this._mousewheelZoom = new MousewheelZoom(this, mousewheel);\n }\n }\n\n _toggleDragZoomEvents() {\n const pannable = this.options.pannable;\n const zoomable = this.options.zoomable;\n const selection = (zoomable || {}).selection;\n const mousewheel = (zoomable || {}).mousewheel;\n const allowDrag = !pannable && (zoomable === false || selection === false) && !this.requiresHandlers([ DRAG_START, DRAG, DRAG_END ]);\n const allowZoom = (zoomable === false || mousewheel === false) && !this.requiresHandlers([ ZOOM_START, ZOOM, ZOOM_END ]);\n const element = this.element;\n\n if (this._dragZoomEnabled && allowDrag && allowZoom) {\n element.style.touchAction = this._touchAction || '';\n this._dragZoomEnabled = false;\n } else if (!this._dragZoomEnabled && !(allowDrag && allowZoom)) {\n element.style.touchAction = \"none\";\n\n this._dragZoomEnabled = true;\n }\n\n this._toggleDomEvents(!allowDrag, !allowZoom);\n }\n\n _toggleDomEvents(drag, zoom) {\n const domEvents = this.domEvents;\n if (!domEvents) {\n return;\n }\n\n if (domEvents.toggleDrag) {\n domEvents.toggleDrag(drag);\n }\n\n if (domEvents.toggleZoom) {\n domEvents.toggleZoom(zoom);\n }\n }\n\n _createTooltip() {\n const { options: { tooltip: tooltipOptions } } = this;\n let tooltip;\n\n if (this._sharedTooltip()) {\n tooltip = this._createSharedTooltip(tooltipOptions);\n } else {\n tooltip = new Tooltip(this.chartService, tooltipOptions);\n }\n\n return tooltip;\n }\n\n _createSharedTooltip(options) {\n return new SharedTooltip(this._plotArea, options);\n }\n\n applyDefaults(options, themeOptions) {\n applyAxisDefaults(options, themeOptions);\n applySeriesDefaults(options, themeOptions);\n }\n\n applySeriesColors() {\n const options = this.options;\n const series = options.series;\n const colors = options.seriesColors || [];\n\n for (let i = 0; i < series.length; i++) {\n const currentSeries = series[i];\n const seriesColor = colors[i % colors.length];\n const defaults = currentSeries._defaults;\n\n currentSeries.color = currentSeries.color || seriesColor;\n if (defaults) {\n defaults.color = defaults.color || seriesColor;\n }\n }\n }\n\n _getModel() {\n const options = this.options;\n const plotArea = this._createPlotArea();\n const model = new RootElement(this._modelOptions());\n model.chart = this;\n model._plotArea = plotArea;\n\n Title.buildTitle(options.title, model);\n\n if (options.legend && options.legend.visible) {\n model.append(new Legend(plotArea.options.legend, this.chartService));\n }\n model.append(plotArea);\n model.reflow();\n\n return model;\n }\n\n _modelOptions() {\n const options = this.options;\n const size = this.getSize();\n\n return deepExtend({\n transitions: options.transitions,\n width: size.width || DEFAULT_WIDTH,\n height: size.height || DEFAULT_HEIGHT\n }, options.chartArea);\n }\n\n _createPlotArea(skipSeries) {\n const options = this.options;\n\n const plotArea = PlotAreaFactory.current.create(skipSeries ? [] : options.series, options, this.chartService);\n\n return plotArea;\n }\n\n _setupSelection() {\n const { _plotArea: { axes } } = this;\n const selections = this._selections = [];\n\n for (let i = 0; i < axes.length; i++) {\n const axis = axes[i];\n const options = axis.options;\n if (axis instanceof CategoryAxis && options.select && !options.vertical) {\n const range = axis.range();\n\n const selection = new Selection(this, axis,\n deepExtend({ min: range.min, max: range.max }, options.select)\n );\n\n selections.push(selection);\n }\n }\n }\n\n _selectStart(e) {\n return this.trigger(SELECT_START, e);\n }\n\n _select(e) {\n return this.trigger(SELECT, e);\n }\n\n _selectEnd(e) {\n return this.trigger(SELECT_END, e);\n }\n\n _initHandlers() {\n this._clickHandler = this._click.bind(this);\n this._mousewheelHandler = this._mousewheel.bind(this);\n this._mouseleaveHandler = this._mouseleave.bind(this);\n this._surfaceMouseenterHandler = this._mouseover.bind(this);\n this._surfaceMouseleaveHandler = this._mouseout.bind(this);\n\n this._mousemove = throttle(\n this._mousemove.bind(this),\n MOUSEMOVE_DELAY\n );\n }\n\n addObserver(observer) {\n if (observer) {\n this.observers.push(observer);\n }\n }\n\n removeObserver(observer) {\n const index = this.observers.indexOf(observer);\n if (index >= 0) {\n this.observers.splice(index, 1);\n }\n }\n\n requiresHandlers(eventNames) {\n const observers = this.observers;\n for (let idx = 0; idx < observers.length; idx++) {\n if (observers[idx].requiresHandlers(eventNames)) {\n return true;\n }\n }\n }\n\n trigger(name, args = {}) {\n if (name === SHOW_TOOLTIP) {\n args.anchor.point = this._toDocumentCoordinates(args.anchor.point);\n }\n args.sender = this;\n\n const observers = this.observers;\n let isDefaultPrevented = false;\n for (let idx = 0; idx < observers.length; idx++) {\n if (observers[idx].trigger(name, args)) {\n isDefaultPrevented = true;\n }\n }\n\n return isDefaultPrevented;\n }\n\n _attachEvents() {\n const element = this.element;\n\n this._touchAction = element.style.touchAction;\n\n bindEvents(element, {\n [ CONTEXTMENU ]: this._clickHandler,\n [ MOUSEWHEEL ]: this._mousewheelHandler,\n [ MOUSELEAVE ]: this._mouseleaveHandler\n });\n\n if (this._shouldAttachMouseMove()) {\n bindEvents(element, { [ MOUSEMOVE ]: this._mousemove });\n }\n\n this.domEvents = DomEventsBuilder.create(this.element, {\n start: this._start.bind(this),\n move: this._move.bind(this),\n end: this._end.bind(this),\n tap: this._tap.bind(this),\n gesturestart: this._gesturestart.bind(this),\n gesturechange: this._gesturechange.bind(this),\n gestureend: this._gestureend.bind(this)\n });\n\n this._toggleDragZoomEvents();\n }\n\n _mouseleave(e) {\n if (this._hoveredPoint) {\n this._hoveredPoint.out(this, e);\n this._hoveredPoint = null;\n }\n\n if (this._plotArea.hovered) {\n this.trigger(PLOT_AREA_LEAVE);\n this._plotArea.hovered = false;\n }\n }\n\n _cancelDomEvents() {\n if (this.domEvents && this.domEvents.cancel) {\n this.domEvents.cancel();\n }\n }\n\n _gesturestart(e) {\n if (this._mousewheelZoom && !this._stopChartHandlers(e)) {\n this._gestureDistance = e.distance;\n this._unsetActivePoint();\n this.surface.suspendTracking();\n }\n }\n\n _gestureend(e) {\n if (this._zooming && !this._stopChartHandlers(e)) {\n if (this.surface) {\n this.surface.resumeTracking();\n }\n this._zooming = false;\n this.trigger(ZOOM_END, {});\n }\n }\n\n _gesturechange(e) {\n const mousewheelZoom = this._mousewheelZoom;\n\n if (mousewheelZoom && !this._stopChartHandlers(e)) {\n e.preventDefault();\n const previousGestureDistance = this._gestureDistance;\n let scaleDelta = -e.distance / previousGestureDistance + 1;\n\n if (Math.abs(scaleDelta) >= 0.1) {\n scaleDelta = Math.round(scaleDelta * 10);\n\n this._gestureDistance = e.distance;\n const args = { delta: scaleDelta, axisRanges: axisRanges(this._plotArea.axes), originalEvent: e };\n if (this._zooming || !this.trigger(ZOOM_START, args)) {\n const coords = this._eventCoordinates(e);\n\n if (!this._zooming) {\n this._zooming = true;\n }\n\n const ranges = args.axisRanges = mousewheelZoom.updateRanges(scaleDelta, coords);\n if (ranges && !this.trigger(ZOOM, args)) {\n mousewheelZoom.zoom();\n }\n }\n }\n }\n }\n\n _mouseout(e) {\n if (e.element) {\n const element = this._drawingChartElement(e.element, e);\n\n if (element && element.leave) {\n element.leave(this, e.originalEvent);\n }\n }\n }\n\n _start(e) {\n const coords = this._eventCoordinates(e);\n\n if (this._stopChartHandlers(e) || !this._plotArea.backgroundContainsPoint(coords)) {\n return;\n }\n\n\n if (this.requiresHandlers([ DRAG_START, DRAG, DRAG_END ])) {\n this._startNavigation(e, coords, DRAG_START);\n }\n\n if (this._pannable && this._pannable.start(e)) {\n this.surface.suspendTracking();\n this._unsetActivePoint();\n this._suppressHover = true;\n this.chartService.panning = true;\n }\n\n if (this._zoomSelection) {\n if (this._zoomSelection.start(e)) {\n this.trigger(ZOOM_START, { axisRanges: axisRanges(this._plotArea.axes), originalEvent: e });\n }\n }\n }\n\n _move(e) {\n let { _navState: state, _pannable: pannable } = this;\n\n if (this._stopChartHandlers(e)) {\n return;\n }\n\n if (pannable) {\n const ranges = pannable.move(e);\n\n if (ranges && !this.trigger(DRAG, { axisRanges: ranges, originalEvent: e })) {\n pannable.pan();\n }\n } else if (state) {\n const ranges = {};\n const axes = state.axes;\n\n for (let i = 0; i < axes.length; i++) {\n const currentAxis = axes[i];\n const axisName = currentAxis.options.name;\n if (axisName) {\n const axis = currentAxis.options.vertical ? e.y : e.x;\n const delta = axis.startLocation - axis.location;\n\n if (delta !== 0) {\n ranges[currentAxis.options.name] = currentAxis.translateRange(delta);\n }\n }\n }\n\n state.axisRanges = ranges;\n this.trigger(DRAG, {\n axisRanges: ranges,\n originalEvent: e\n });\n }\n\n if (this._zoomSelection) {\n this._zoomSelection.move(e);\n }\n }\n\n _end(e) {\n if (this._stopChartHandlers(e)) {\n return;\n }\n\n const pannable = this._pannable;\n if (pannable && pannable.end(e)) {\n this.surface.resumeTracking();\n this.trigger(DRAG_END, {\n axisRanges: axisRanges(this._plotArea.axes),\n originalEvent: e\n });\n this._suppressHover = false;\n this.chartService.panning = false;\n } else {\n this._endNavigation(e, DRAG_END);\n }\n\n if (this._zoomSelection) {\n const ranges = this._zoomSelection.end(e);\n if (ranges && !this.trigger(ZOOM, { axisRanges: ranges, originalEvent: e })) {\n this._zoomSelection.zoom();\n this.trigger(ZOOM_END, { axisRanges: ranges, originalEvent: e });\n }\n }\n }\n\n _stopChartHandlers(e) {\n const selections = this._selections || [];\n if (!selections.length) {\n return false;\n }\n\n const coords = this._eventCoordinates(e);\n const pane = this._plotArea.paneByPoint(coords);\n if (pane) {\n for (let idx = 0; idx < selections.length; idx++) {\n if (selections[idx].onPane(pane)) {\n return true;\n }\n }\n }\n }\n\n _mousewheelZoomRate() {\n const zoomable = this.options.zoomable;\n const mousewheel = (zoomable || {}).mousewheel || {};\n return valueOrDefault(mousewheel.rate, MOUSEWHEEL_ZOOM_RATE);\n }\n\n _mousewheel(e) {\n const delta = mousewheelDelta(e);\n const mousewheelZoom = this._mousewheelZoom;\n const coords = this._eventCoordinates(e);\n\n if (this._stopChartHandlers(e) || !this._plotArea.backgroundContainsPoint(coords)) {\n return;\n }\n\n if (mousewheelZoom) {\n const args = { delta: delta, axisRanges: axisRanges(this._plotArea.axes), originalEvent: e };\n if (this._zooming || !this.trigger(ZOOM_START, args)) {\n e.preventDefault();\n\n if (!this._zooming) {\n this._unsetActivePoint();\n this.surface.suspendTracking();\n this._zooming = true;\n }\n\n if (this._mwTimeout) {\n clearTimeout(this._mwTimeout);\n }\n\n args.axisRanges = mousewheelZoom.updateRanges(delta, coords);\n if (args.axisRanges && !this.trigger(ZOOM, args)) {\n mousewheelZoom.zoom();\n }\n\n this._mwTimeout = setTimeout(() => {\n this.trigger(ZOOM_END, args);\n this._zooming = false;\n if (this.surface) {\n this.surface.resumeTracking();\n }\n }, MOUSEWHEEL_DELAY);\n }\n } else {\n let state = this._navState;\n if (!state) {\n const prevented = this._startNavigation(e, coords, ZOOM_START);\n if (!prevented) {\n state = this._navState;\n }\n }\n\n if (state) {\n const totalDelta = state.totalDelta || delta;\n state.totalDelta = totalDelta + delta;\n\n const axes = this._navState.axes;\n const ranges = {};\n\n for (let i = 0; i < axes.length; i++) {\n const currentAxis = axes[i];\n const axisName = currentAxis.options.name;\n if (axisName) {\n ranges[axisName] = currentAxis.scaleRange(-totalDelta * this._mousewheelZoomRate(), coords);\n }\n }\n\n this.trigger(ZOOM, {\n delta: delta,\n axisRanges: ranges,\n originalEvent: e\n });\n\n if (this._mwTimeout) {\n clearTimeout(this._mwTimeout);\n }\n\n this._mwTimeout = setTimeout(() => {\n this._endNavigation(e, ZOOM_END);\n }, MOUSEWHEEL_DELAY);\n }\n }\n }\n\n _startNavigation(e, coords, chartEvent) {\n const plotArea = this._model._plotArea;\n const pane = plotArea.findPointPane(coords);\n const axes = plotArea.axes.slice(0);\n\n if (!pane) {\n return;\n }\n\n const ranges = axisRanges(axes);\n\n const prevented = this.trigger(chartEvent, {\n axisRanges: ranges,\n originalEvent: e\n });\n\n if (prevented) {\n this._cancelDomEvents();\n } else {\n this._suppressHover = true;\n this._unsetActivePoint();\n this._navState = {\n axisRanges: ranges,\n pane: pane,\n axes: axes\n };\n }\n }\n\n _endNavigation(e, chartEvent) {\n if (this._navState) {\n this.trigger(chartEvent, {\n axisRanges: this._navState.axisRanges,\n originalEvent: e\n });\n this._suppressHover = false;\n this._navState = null;\n }\n }\n\n _getChartElement(e, match) {\n const element = this.surface.eventTarget(e);\n if (element) {\n return this._drawingChartElement(element, e, match);\n }\n }\n\n _drawingChartElement(element, e, match) {\n let current = element;\n let chartElement;\n while (current && !chartElement) {\n chartElement = current.chartElement;\n current = current.parent;\n }\n\n if (chartElement) {\n if (chartElement.aliasFor) {\n chartElement = chartElement.aliasFor(e, this._eventCoordinates(e));\n }\n\n if (match) {\n chartElement = chartElement.closest(match);\n if (chartElement && chartElement.aliasFor) {\n chartElement = chartElement.aliasFor();\n }\n }\n\n return chartElement;\n }\n }\n\n _eventCoordinates(e) {\n const coordinates = eventCoordinates(e);\n return this._toModelCoordinates(coordinates.x, coordinates.y);\n }\n\n _elementPadding() {\n if (!this._padding) {\n const { paddingLeft, paddingTop } = elementStyles(this.element, [ \"paddingLeft\", \"paddingTop\" ]);\n this._padding = {\n top: paddingTop,\n left: paddingLeft\n };\n }\n\n return this._padding;\n }\n\n _toDocumentCoordinates(point) {\n const padding = this._elementPadding();\n const offset = elementOffset(this.element);\n\n return {\n left: round(point.x + padding.left + offset.left),\n top: round(point.y + padding.top + offset.top)\n };\n }\n\n // TODO: Breaking change due to peer version change\n // Reuse by exposing _surfacePoint on Surface\n _toModelCoordinates(clientX, clientY) {\n const element = this.element;\n const offset = elementOffset(element);\n const padding = this._elementPadding();\n const inverseTransform = elementScale(element).invert();\n const point = new geometry.Point(\n clientX - offset.left - padding.left,\n clientY - offset.top - padding.top\n ).transform(inverseTransform);\n\n return new Point(point.x, point.y);\n }\n\n _tap(e) {\n const drawingElement = this.surface.eventTarget(e);\n const element = this._drawingChartElement(drawingElement, e);\n const sharedTooltip = this._sharedTooltip();\n\n if (!this._startHover(drawingElement, e) && !sharedTooltip) {\n this._unsetActivePoint();\n }\n\n if (sharedTooltip) {\n this._trackSharedTooltip(this._eventCoordinates(e), e, true);\n }\n\n this._propagateClick(element, e);\n\n //part of fix for hover issue on windows touch\n this.handlingTap = true;\n setTimeout(() => {\n this.handlingTap = false;\n }, 0);\n }\n\n _click(e) {\n const element = this._getChartElement(e);\n this._propagateClick(element, e);\n }\n\n _propagateClick(element, e) {\n let current = element;\n while (current) {\n if (current.click) {\n current.click(this, e);\n }\n\n current = current.parent;\n }\n }\n\n _startHover(element, e) {\n if (this._suppressHover) {\n return false;\n }\n\n let point = this._drawingChartElement(element, e, function(element) {\n return (element.hover || element.over) && !(element instanceof PlotAreaBase);\n });\n\n const activePoint = this._activePoint;\n const multipleSeries = this._plotArea.series.length > 1;\n const hasInactiveOpacity = this._hasInactiveOpacity();\n\n this._updateHoveredPoint(point, e);\n\n if (point && activePoint !== point && point.hover) {\n this._activePoint = point;\n\n if (!this._sharedTooltip() && !point.hover(this, e)) {\n this._displayTooltip(point);\n\n if (hasInactiveOpacity) {\n this._displayInactiveOpacity(point, multipleSeries);\n } else {\n this._highlight.show(point);\n }\n }\n } else if (!point && hasInactiveOpacity) {\n if (multipleSeries && this._activeChartInstance) {\n this._updateSeriesOpacity(point, true);\n this._applySeriesOpacity(this._activeChartInstance.children, null, true);\n this._activeChartInstance = null;\n }\n this._highlight && this._highlight.hide();\n this._activePoint = null;\n }\n\n return point;\n }\n\n _displayTooltip(point) {\n const tooltipOptions = deepExtend({}, this.options.tooltip, point.options.tooltip);\n if (tooltipOptions.visible) {\n this._tooltip.show(point);\n }\n }\n\n _displayInactiveOpacity(activePoint, multipleSeries, highlightPoints) {\n const chartInstance = this._activeChartInstance = this._chartInstanceFromPoint(activePoint);\n if (!chartInstance) {\n return;\n }\n\n if (multipleSeries) {\n this._updateSeriesOpacity(activePoint);\n this._applySeriesOpacity(chartInstance.children, null, true);\n this._applySeriesOpacity(chartInstance.children, activePoint.series);\n this._highlight.show(highlightPoints || activePoint);\n } else {\n let inactivePoints;\n\n if (!chartInstance.supportsPointInactiveOpacity()) {\n this._highlight.show(activePoint);\n return;\n }\n\n inactivePoints = this._getInactivePoints(activePoint, chartInstance);\n\n if (inactivePoints && inactivePoints.length) {\n this._highlight.show(inactivePoints, 1 - this._getInactiveOpacityForSeries(activePoint.series));\n }\n }\n }\n\n _getInactivePoints(activePoint, chartInstance) {\n let allPoints = this._getAllPointsOfType(chartInstance, activePoint.constructor);\n\n return allPoints.filter(point => point !== activePoint);\n }\n\n _getAllPointsOfType(container, type) {\n let points = [];\n\n for (let i = 0; i < container.children.length; i++) {\n const element = container.children[i];\n\n if (element.constructor === type) {\n points.push(element);\n } else if (element.children && element.children.length) {\n points = points.concat(this._getAllPointsOfType(element, type));\n }\n }\n\n return points;\n }\n\n _updateHoveredPoint(point, e) {\n const hoveredPoint = this._hoveredPoint;\n\n if (hoveredPoint && hoveredPoint !== point) {\n hoveredPoint.out(this, e);\n this._hoveredPoint = null;\n }\n\n if (point && hoveredPoint !== point && point.over) {\n this._hoveredPoint = point;\n point.over(this, e);\n }\n }\n\n _updateSeriesOpacity(point, resetOpacity) {\n const plotArea = this._plotArea;\n const length = plotArea.series.length;\n\n for (let i = 0; i < length; i++) {\n const currSeries = plotArea.series[i];\n const defaultOpacity = this._getDefaultOpacityForSeries(currSeries);\n const inactiveOpacity = this._getInactiveOpacityForSeries(currSeries);\n\n if (!resetOpacity && currSeries !== point.series) {\n currSeries.defaultOpacity = defaultOpacity;\n currSeries.opacity = inactiveOpacity;\n\n if (currSeries.line) {\n currSeries.line.opacity = inactiveOpacity;\n }\n } else {\n currSeries.opacity = defaultOpacity;\n\n if (currSeries.line) {\n currSeries.line.opacity = defaultOpacity;\n }\n }\n }\n }\n\n _applySeriesOpacity(elements, activeSeries, reset, series) {\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n const currSeries = element.series || series;\n const shouldHighlight = currSeries && (currSeries.highlight || {}).visible;\n\n if (shouldHighlight && element.visual) {\n const opacity = series ? series.opacity : element.series.opacity;\n if (currSeries !== activeSeries || reset) {\n element.visual.opacity(reset ? 1 : opacity);\n }\n }\n\n if (element.children && element.children.length) {\n this._applySeriesOpacity(element.children, activeSeries, reset, element.series);\n }\n }\n }\n\n _chartInstanceFromPoint(point) {\n let chartInstance = point.parent;\n\n while (chartInstance && !chartInstance.plotArea) {\n chartInstance = chartInstance.parent;\n }\n\n return chartInstance;\n }\n\n _hasInactiveOpacity() {\n let hasDefaultInactiveOpacity = this.options.seriesDefaults.highlight.inactiveOpacity !== undefined;\n let hasInactiveOpacity = this.options.series.filter(s => s.highlight.inactiveOpacity !== undefined ).length > 0;\n return hasDefaultInactiveOpacity || hasInactiveOpacity;\n }\n\n _getInactiveOpacityForSeries(series) {\n let defaultInactiveOpacity = this.options.seriesDefaults.highlight.inactiveOpacity;\n let seriesInactiveOpacity = series.highlight.inactiveOpacity;\n return seriesInactiveOpacity || defaultInactiveOpacity || series.opacity || DEFAULT_SERIES_OPACITY;\n }\n\n _getDefaultOpacityForSeries(series) {\n return series.defaultOpacity || series.opacity || DEFAULT_SERIES_OPACITY;\n }\n\n _mouseover(e) {\n const point = this._startHover(e.element, e.originalEvent);\n\n if (point && point.tooltipTracking && !this._mouseMoveTrackHandler && !this._sharedTooltip()) {\n this._mouseMoveTrackHandler = this._mouseMoveTracking.bind(this);\n bindEvents(document, {\n [ MOUSEMOVE ]: this._mouseMoveTrackHandler\n });\n }\n }\n\n _mouseMoveTracking(e) {\n const { options, _tooltip: tooltip, _highlight: highlight, _activePoint: point } = this;\n const coords = this._eventCoordinates(e);\n\n if (this._plotArea.box.containsPoint(coords)) {\n if (point && point.tooltipTracking && point.series && point.parent.getNearestPoint) {\n const seriesPoint = point.parent.getNearestPoint(coords.x, coords.y, point.seriesIx);\n if (seriesPoint && seriesPoint !== point) {\n this._activePoint = seriesPoint;\n\n if (!seriesPoint.hover(this, e)) {\n const tooltipOptions = deepExtend({}, options.tooltip, seriesPoint.options.tooltip);\n if (tooltipOptions.visible) {\n tooltip.show(seriesPoint);\n }\n\n highlight.show(seriesPoint);\n }\n }\n }\n } else {\n unbindEvents(document, {\n [ MOUSEMOVE ]: this._mouseMoveTrackHandler\n });\n this._unsetActivePoint();\n this._mouseMoveTrackHandler = null;\n }\n }\n\n _mousemove(e) {\n const coords = this._eventCoordinates(e);\n const plotArea = this._plotArea;\n\n this._trackCrosshairs(coords);\n\n if (plotArea.hover) {\n const overPlotArea = plotArea.backgroundContainsPoint(coords);\n if (overPlotArea) {\n plotArea.hovered = true;\n this._plotArea.hover(this, e);\n } else if (plotArea.hovered && !overPlotArea) {\n this.trigger(PLOT_AREA_LEAVE);\n plotArea.hovered = false;\n }\n }\n\n if (this._sharedTooltip()) {\n this._trackSharedTooltip(coords, e);\n }\n }\n\n _trackCrosshairs(coords) {\n const crosshairs = this._plotArea.crosshairs;\n\n for (let i = 0; i < crosshairs.length; i++) {\n const current = crosshairs[i];\n\n if (current.box.containsPoint(coords)) {\n current.showAt(coords);\n } else {\n current.hide();\n }\n }\n }\n\n _trackSharedTooltip(coords, e, toggle) {\n if (this._suppressHover) {\n return;\n }\n\n const { options: { tooltip: tooltipOptions }, _plotArea: plotArea, _plotArea: { categoryAxis }, _tooltip: tooltip, _highlight: highlight } = this;\n\n if (plotArea.backgroundContainsPoint(coords)) {\n const index = categoryAxis.pointCategoryIndex(coords);\n if (index !== this._tooltipCategoryIx || (!this._sharedHighlight && toggle)) {\n const points = plotArea.pointsByCategoryIndex(index);\n const pointArgs = points.map(function(point) {\n return point.eventArgs(e);\n });\n const hoverArgs = pointArgs[0] || {};\n hoverArgs.categoryPoints = pointArgs;\n\n if (points.length > 0 && !this.trigger(SERIES_HOVER, hoverArgs)) {\n if (tooltipOptions.visible) {\n tooltip.showAt(points, coords);\n }\n\n highlight.show(points);\n\n this._sharedHighlight = true;\n } else {\n tooltip.hide();\n }\n\n this._tooltipCategoryIx = index;\n } else if (toggle && this._sharedHighlight) {\n highlight.hide();\n tooltip.hide();\n this._sharedHighlight = false;\n }\n } else if (this._sharedHighlight) {\n highlight.hide();\n tooltip.hide();\n this._tooltipCategoryIx = null;\n this._sharedHighlight = false;\n }\n }\n\n hideElements(options) {\n const plotArea = this._plotArea;\n this._mousemove.cancel();\n\n plotArea.hideCrosshairs();\n\n this._unsetActivePoint(options);\n }\n\n _unsetActivePoint(options) {\n const { _tooltip: tooltip, _highlight: highlight } = this;\n\n this._activePoint = null;\n this._hoveredPoint = null;\n\n if (tooltip && !(options && options.keepTooltipOpen)) {\n tooltip.hide();\n }\n\n this._tooltipCategoryIx = null;\n this._sharedHighlight = false;\n\n if (highlight) {\n highlight.hide();\n }\n }\n\n _deferRedraw() {\n this._redraw();\n }\n\n _clearRedrawTimeout() {\n if (this._redrawTimeout) {\n clearInterval(this._redrawTimeout);\n this._redrawTimeout = null;\n }\n }\n\n bindCategories() {\n const options = this.options;\n const definitions = [].concat(options.categoryAxis);\n\n for (let axisIx = 0; axisIx < definitions.length; axisIx++) {\n const axis = definitions[axisIx];\n if (axis.autoBind !== false) {\n this.bindCategoryAxisFromSeries(axis, axisIx);\n }\n }\n }\n\n bindCategoryAxisFromSeries(axis, axisIx) {\n const series = this.options.series;\n const seriesLength = series.length;\n const uniqueCategories = new HashMap();//perf improvement in case type category with dates\n let items = [];\n let bindable = false;\n let dateAxis;\n\n for (let seriesIx = 0; seriesIx < seriesLength; seriesIx++) {\n const s = series[seriesIx];\n const onAxis = s.categoryAxis === axis.name || (!s.categoryAxis && axisIx === 0);\n const data = s.data;\n const dataLength = data.length;\n const bind = s.categoryField && onAxis;\n bindable = bind || bindable;\n\n if (bind && dataLength > 0) {\n dateAxis = isDateAxis(axis, getField(s.categoryField, data[0]));\n\n const getFn = dateAxis ? getDateField : getField;\n\n for (let dataIx = 0; dataIx < dataLength; dataIx++) {\n const dataRow = data[dataIx];\n const category = getFn(s.categoryField, dataRow, this.chartService.intl);\n\n if (dateAxis || !uniqueCategories.get(category)) {\n items.push([ category, dataRow ]);\n\n if (!dateAxis) {\n uniqueCategories.set(category, true);\n }\n }\n }\n }\n }\n\n if (items.length > 0) {\n if (dateAxis) {\n items = uniqueDates(items, function(a, b) {\n return dateComparer(a[0], b[0]);\n });\n }\n\n const result = transpose(items);\n axis.categories = result[0];\n } else if (bindable) {\n axis.categories = [];\n }\n }\n\n _isBindable(series) {\n const valueFields = SeriesBinder.current.valueFields(series);\n let result = true;\n\n for (let i = 0; i < valueFields.length; i++) {\n let field = valueFields[i];\n if (field === VALUE) {\n field = \"field\";\n } else {\n field = field + \"Field\";\n }\n\n if (!defined(series[field])) {\n result = false;\n break;\n }\n }\n\n return result;\n }\n\n _noTransitionsRedraw() {\n const options = this.options;\n let transitionsState;\n\n if (options.transitions !== false) {\n options.transitions = false;\n transitionsState = true;\n }\n\n this._redraw();\n\n if (transitionsState) {\n options.transitions = true;\n }\n }\n\n _legendItemHover(seriesIndex, pointIndex) {\n const { _plotArea: plotArea, _highlight: highlight } = this;\n const currentSeries = (plotArea.srcSeries || plotArea.series)[seriesIndex];\n let items;\n\n if (inArray(currentSeries.type, [ PIE, DONUT, FUNNEL ])) {\n items = plotArea.findPoint(function(point) {\n return point.series.index === seriesIndex && point.index === pointIndex;\n });\n } else {\n items = plotArea.pointsBySeriesIndex(seriesIndex);\n }\n\n if (this._hasInactiveOpacity() && currentSeries.visible && items) {\n const multipleSeries = plotArea.series.length > 1;\n const point = items.length ? items[0] : items;\n\n this._displayInactiveOpacity(point, multipleSeries, items);\n } else {\n highlight.show(items);\n }\n }\n\n _shouldAttachMouseMove() {\n return this._plotArea.crosshairs.length || (this._tooltip && this._sharedTooltip()) || this.requiresHandlers([ PLOT_AREA_HOVER, PLOT_AREA_LEAVE ]);\n }\n\n updateMouseMoveHandler() {\n unbindEvents(this.element, {\n [ MOUSEMOVE ]: this._mousemove\n });\n\n if (this._shouldAttachMouseMove()) {\n bindEvents(this.element, {\n [ MOUSEMOVE ]: this._mousemove\n });\n }\n }\n\n applyOptions(options, theme) {\n clearMissingValues(this._originalOptions, options);\n this._originalOptions = deepExtend(this._originalOptions, options);\n this.options = deepExtend({}, this._originalOptions);\n\n if (theme) {\n this._theme = theme;\n this.chartService.theme = theme;\n }\n this._initTheme(this.options, this._theme);\n\n this._toggleDragZoomEvents();\n }\n\n setOptions(options, theme) {\n this.applyOptions(options, theme);\n this.bindCategories();\n this.redraw();\n this.updateMouseMoveHandler();\n }\n\n setDirection(rtl) {\n this.chartService.rtl = Boolean(rtl);\n if (this.surface && this.surface.type === 'svg') {\n this._destroySurface();\n }\n }\n\n setIntlService(intl) {\n this.chartService.intl = intl;\n }\n\n noTransitionsRedraw() {\n this._noTransitionsRedraw();\n }\n\n destroy() {\n this._destroyed = true;\n\n unbindEvents(this.element, {\n [ CONTEXTMENU ]: this._clickHandler,\n [ MOUSEWHEEL ]: this._mousewheelHandler,\n [ MOUSEMOVE ]: this._mousemove,\n [ MOUSELEAVE ]: this._mouseleaveHandler\n });\n\n if (this.domEvents) {\n this.domEvents.destroy();\n delete this.domEvents;\n }\n\n if (this._mouseMoveTrackHandler) {\n unbindEvents(document, {\n [ MOUSEMOVE ]: this._mouseMoveTrackHandler\n });\n }\n\n this._destroyView();\n\n this._destroySurface();\n\n this._clearRedrawTimeout();\n }\n\n _destroySurface() {\n const surface = this.surface;\n if (surface) {\n surface.unbind(\"mouseenter\", this._surfaceMouseenterHandler);\n surface.unbind(\"mouseleave\", this._surfaceMouseleaveHandler);\n surface.destroy();\n\n this.surface = null;\n }\n }\n\n _destroySelections() {\n const selections = this._selections;\n\n if (selections) {\n while (selections.length > 0) {\n selections.shift().destroy();\n }\n }\n }\n\n _destroyView() {\n const model = this._model;\n\n if (model) {\n model.destroy();\n this._model = null;\n }\n\n this._unsetActivePoint();\n\n this._destroySelections();\n\n if (this._tooltip) {\n this._tooltip.destroy();\n }\n\n if (this._highlight) {\n this._highlight.destroy();\n }\n\n if (this._zoomSelection) {\n this._zoomSelection.destroy();\n delete this._zoomSelection;\n }\n\n if (this._pannable) {\n this._pannable.destroy();\n delete this._pannable;\n }\n\n if (this._mousewheelZoom) {\n this._mousewheelZoom.destroy();\n delete this._mousewheelZoom;\n }\n }\n}\n\nfunction resolveAxisAliases(options) {\n const aliases = AXIS_NAMES;\n\n for (let idx = 0; idx < aliases.length; idx++) {\n const alias = aliases[idx] + \"Axes\";\n if (options[alias]) {\n options[aliases[idx] + \"Axis\"] = options[alias];\n delete options[alias];\n }\n }\n}\n\nfunction pointByCategoryName(points, name) {\n if (points) {\n for (let idx = 0; idx < points.length; idx++) {\n if (points[idx].category === name) {\n return [ points[idx] ];\n }\n }\n }\n}\n\nfunction applyAxisDefaults(options, themeOptions) {\n const themeAxisDefaults = ((themeOptions || {}).axisDefaults) || {};\n let axisName, axisDefaults, axes;\n\n function mapAxisOptions(axisOptions) {\n const axisColor = (axisOptions || {}).color || axisDefaults.color;\n const result = deepExtend({},\n themeAxisDefaults,\n themeAxisDefaults[axisName],\n axisDefaults,\n axisDefaults[axisName], {\n line: { color: axisColor },\n labels: { color: axisColor },\n title: { color: axisColor }\n },\n axisOptions\n );\n\n delete result[axisName];\n\n return result;\n }\n\n for (let idx = 0; idx < AXIS_NAMES.length; idx++) {\n axisName = AXIS_NAMES[idx] + \"Axis\";\n axisDefaults = options.axisDefaults || {};\n axes = [].concat(options[axisName]);\n\n axes = axes.map(mapAxisOptions);\n\n options[axisName] = axes.length > 1 ? axes : axes[0];\n }\n}\n\nfunction applySeriesDefaults(options, themeOptions) {\n const series = options.series;\n const seriesLength = series.length;\n const seriesDefaults = options.seriesDefaults;\n const commonDefaults = deepExtend({}, options.seriesDefaults);\n const themeSeriesDefaults = themeOptions ? deepExtend({}, themeOptions.seriesDefaults) : {};\n const commonThemeDefaults = deepExtend({}, themeSeriesDefaults);\n\n cleanupNestedSeriesDefaults(commonDefaults);\n cleanupNestedSeriesDefaults(commonThemeDefaults);\n\n for (let i = 0; i < seriesLength; i++) {\n const seriesType = series[i].type || options.seriesDefaults.type;\n\n const baseOptions = deepExtend(\n { data: [] },\n commonThemeDefaults,\n themeSeriesDefaults[seriesType],\n { tooltip: options.tooltip },\n commonDefaults,\n seriesDefaults[seriesType]\n );\n\n series[i]._defaults = baseOptions;\n series[i] = deepExtend({}, baseOptions, series[i]);\n series[i].data = series[i].data || [];\n }\n}\n\nfunction cleanupNestedSeriesDefaults(seriesDefaults) {\n delete seriesDefaults.bar;\n delete seriesDefaults.column;\n delete seriesDefaults.rangeColumn;\n delete seriesDefaults.line;\n delete seriesDefaults.verticalLine;\n delete seriesDefaults.pie;\n delete seriesDefaults.donut;\n delete seriesDefaults.area;\n delete seriesDefaults.verticalArea;\n delete seriesDefaults.scatter;\n delete seriesDefaults.scatterLine;\n delete seriesDefaults.bubble;\n delete seriesDefaults.candlestick;\n delete seriesDefaults.ohlc;\n delete seriesDefaults.boxPlot;\n delete seriesDefaults.bullet;\n delete seriesDefaults.verticalBullet;\n delete seriesDefaults.polarArea;\n delete seriesDefaults.polarLine;\n delete seriesDefaults.radarArea;\n delete seriesDefaults.radarLine;\n delete seriesDefaults.waterfall;\n}\n\n\nfunction axisRanges(axes) {\n const ranges = {};\n\n for (let i = 0; i < axes.length; i++) {\n const axis = axes[i];\n const axisName = axis.options.name;\n if (axisName) {\n ranges[axisName] = axis.range();\n }\n }\n\n return ranges;\n}\n\nfunction sortDates(dates, comparer = dateComparer) {\n for (let i = 1, length = dates.length; i < length; i++) {\n if (comparer(dates[i], dates[i - 1]) < 0) {\n dates.sort(comparer);\n break;\n }\n }\n\n return dates;\n}\n\nfunction uniqueDates(srcDates, comparer = dateComparer) {\n const dates = sortDates(srcDates, comparer);\n const length = dates.length;\n const result = length > 0 ? [ dates[0] ] : [];\n\n for (let i = 1; i < length; i++) {\n if (comparer(dates[i], last(result)) !== 0) {\n result.push(dates[i]);\n }\n }\n\n return result;\n}\n\nfunction transpose(rows) {\n const rowCount = rows.length;\n const result = [];\n\n for (let rowIx = 0; rowIx < rowCount; rowIx++) {\n const row = rows[rowIx];\n const colCount = row.length;\n\n for (let colIx = 0; colIx < colCount; colIx++) {\n result[colIx] = result[colIx] || [];\n result[colIx].push(row[colIx]);\n }\n }\n\n return result;\n}\n\nconst DATA_FIELDS = [ 'data', 'categories' ];\n\nfunction clearMissingValues(originalOptions, options) {\n for (let field in options) {\n if (!inArray(field, DATA_FIELDS) && options.hasOwnProperty(field)) {\n const fieldValue = options[field];\n const originalValue = originalOptions[field];\n if (defined(originalValue)) {\n const nullValue = fieldValue === null;\n if ((nullValue || !defined(fieldValue))) {\n delete originalOptions[field];\n if (nullValue) {\n delete options[field];\n }\n } else if (originalValue && isObject(fieldValue)) {\n if (isObject(originalValue)) {\n clearMissingValues(originalValue, fieldValue);\n }\n }\n }\n }\n }\n}\n\nfunction triggerPaneRender(panes) {\n for (let idx = 0; idx < panes.length; idx++) {\n panes[idx].notifyRender();\n }\n}\n\nsetDefaultOptions(Chart, {\n renderAs: \"\",\n chartArea: {},\n legend: {\n visible: true,\n labels: {}\n },\n categoryAxis: {},\n seriesDefaults: {\n type: COLUMN,\n data: [],\n highlight: {\n visible: true\n },\n labels: {},\n negativeValues: {\n visible: false\n }\n },\n series: [],\n seriesColors: null,\n tooltip: {\n visible: false\n },\n transitions: true,\n valueAxis: {},\n plotArea: {},\n title: {},\n xAxis: {},\n yAxis: {},\n panes: [ {} ],\n pannable: false,\n zoomable: false\n});\n\nexport default Chart;\n","import { support } from '@progress/kendo-drawing';\n\nconst browser = support.browser || {};\n\nconst INITIAL_ANIMATION_DURATION = 600;\nconst FADEIN = \"fadeIn\";\n\nconst GLASS = \"glass\";\nconst BORDER_BRIGHTNESS = 0.8;\nconst TOOLTIP_OFFSET = 5;\nconst START_SCALE = browser.msie ? 0.001 : 0;\nconst ERROR_LOW_FIELD = \"errorLow\";\nconst ERROR_HIGH_FIELD = \"errorHigh\";\nconst X_ERROR_LOW_FIELD = \"xErrorLow\";\nconst X_ERROR_HIGH_FIELD = \"xErrorHigh\";\nconst Y_ERROR_LOW_FIELD = \"yErrorLow\";\nconst Y_ERROR_HIGH_FIELD = \"yErrorHigh\";\nconst LINE_MARKER_SIZE = 8;\nconst ZERO = \"zero\";\nconst INTERPOLATE = \"interpolate\";\nconst GAP = \"gap\";\nconst ABOVE = \"above\";\nconst BELOW = \"below\";\n\nconst SMOOTH = \"smooth\";\nconst STEP = \"step\";\n\nconst AREA = \"area\";\nconst BAR = \"bar\";\nconst BOX_PLOT = \"boxPlot\";\nconst BUBBLE = \"bubble\";\nconst BULLET = \"bullet\";\nconst CANDLESTICK = \"candlestick\";\nconst COLUMN = \"column\";\nconst DONUT = \"donut\";\nconst FUNNEL = \"funnel\";\nconst HEATMAP = \"heatmap\";\nconst HORIZONTAL_WATERFALL = \"horizontalWaterfall\";\nconst LINE = \"line\";\nconst OHLC = \"ohlc\";\nconst PIE = \"pie\";\nconst POLAR_AREA = \"polarArea\";\nconst POLAR_LINE = \"polarLine\";\nconst POLAR_SCATTER = \"polarScatter\";\nconst RADAR_AREA = \"radarArea\";\nconst RADAR_COLUMN = \"radarColumn\";\nconst RADAR_LINE = \"radarLine\";\nconst RANGE_AREA = \"rangeArea\";\nconst RANGE_BAR = \"rangeBar\";\nconst RANGE_COLUMN = \"rangeColumn\";\nconst SCATTER = \"scatter\";\nconst SCATTER_LINE = \"scatterLine\";\nconst VERTICAL_AREA = \"verticalArea\";\nconst VERTICAL_BOX_PLOT = \"verticalBoxPlot\";\nconst VERTICAL_BULLET = \"verticalBullet\";\nconst VERTICAL_LINE = \"verticalLine\";\nconst VERTICAL_RANGE_AREA = \"verticalRangeArea\";\nconst WATERFALL = \"waterfall\";\nconst EQUALLY_SPACED_SERIES = [\n BAR, COLUMN, OHLC, CANDLESTICK, BOX_PLOT, VERTICAL_BOX_PLOT,\n BULLET, RANGE_COLUMN, RANGE_BAR, WATERFALL, HORIZONTAL_WATERFALL\n];\n\nconst LEGEND_ITEM_CLICK = \"legendItemClick\";\nconst LEGEND_ITEM_HOVER = \"legendItemHover\";\nconst LEGEND_ITEM_LEAVE = \"legendItemLeave\";\nconst SERIES_CLICK = \"seriesClick\";\nconst SERIES_HOVER = \"seriesHover\";\nconst SERIES_OVER = \"seriesOver\";\nconst SERIES_LEAVE = \"seriesLeave\";\nconst PLOT_AREA_CLICK = \"plotAreaClick\";\nconst PLOT_AREA_HOVER = \"plotAreaHover\";\nconst PLOT_AREA_LEAVE = \"plotAreaLeave\";\nconst DRAG = \"drag\";\nconst DRAG_END = \"dragEnd\";\nconst DRAG_START = \"dragStart\";\nconst ZOOM_START = \"zoomStart\";\nconst ZOOM = \"zoom\";\nconst ZOOM_END = \"zoomEnd\";\nconst SELECT_START = \"selectStart\";\nconst SELECT = \"select\";\nconst SELECT_END = \"selectEnd\";\nconst RENDER = \"render\";\nconst SHOW_TOOLTIP = \"showTooltip\";\nconst HIDE_TOOLTIP = \"hideTooltip\";\nconst PANE_RENDER = \"paneRender\";\n\nconst LOGARITHMIC = \"log\";\nconst CATEGORY = \"category\";\n\nconst INSIDE_END = \"insideEnd\";\nconst INSIDE_BASE = \"insideBase\";\nconst OUTSIDE_END = \"outsideEnd\";\n\nconst MOUSEWHEEL = \"DOMMouseScroll mousewheel\";\nconst MOUSEWHEEL_DELAY = 150;\nconst MOUSEWHEEL_ZOOM_RATE = 0.3;\n\nexport {\n INITIAL_ANIMATION_DURATION, FADEIN,\n LEGEND_ITEM_CLICK, LEGEND_ITEM_HOVER, LEGEND_ITEM_LEAVE,\n SERIES_CLICK, SERIES_HOVER, SERIES_OVER, SERIES_LEAVE, GLASS,\n BORDER_BRIGHTNESS, TOOLTIP_OFFSET,\n START_SCALE, ERROR_LOW_FIELD, ERROR_HIGH_FIELD,\n X_ERROR_LOW_FIELD, X_ERROR_HIGH_FIELD,\n Y_ERROR_LOW_FIELD, Y_ERROR_HIGH_FIELD,\n LINE_MARKER_SIZE, INTERPOLATE, ZERO,\n SMOOTH, STEP, CATEGORY, FUNNEL,\n BAR, CANDLESTICK, PIE, COLUMN, AREA,\n VERTICAL_BULLET, BOX_PLOT, OHLC, WATERFALL, LINE,\n BULLET, VERTICAL_LINE, VERTICAL_AREA, RANGE_AREA, VERTICAL_RANGE_AREA,\n RANGE_COLUMN, VERTICAL_BOX_PLOT, RANGE_BAR, HORIZONTAL_WATERFALL,\n SCATTER, SCATTER_LINE, BUBBLE, RADAR_AREA, RADAR_LINE,\n RADAR_COLUMN, POLAR_LINE, POLAR_AREA, POLAR_SCATTER,\n RENDER, PLOT_AREA_CLICK, PLOT_AREA_HOVER, PLOT_AREA_LEAVE,\n LOGARITHMIC, DRAG, DRAG_START, DRAG_END, ZOOM_START, ZOOM, ZOOM_END,\n SELECT_START, SELECT, SELECT_END, PANE_RENDER, GAP,\n DONUT, INSIDE_END, INSIDE_BASE, OUTSIDE_END,\n MOUSEWHEEL, MOUSEWHEEL_DELAY, MOUSEWHEEL_ZOOM_RATE,\n SHOW_TOOLTIP, HIDE_TOOLTIP,\n EQUALLY_SPACED_SERIES, ABOVE, BELOW,\n HEATMAP\n};\n","import BaseTooltip from '../tooltip/base-tooltip';\n\nimport { HIDE_TOOLTIP } from '../constants';\nimport { TOP, BOTTOM, LEFT, RIGHT, CENTER, DATE } from '../../common/constants';\nimport { setDefaultOptions } from '../../common';\n\nclass CrosshairTooltip extends BaseTooltip {\n constructor(chartService, crosshair, options) {\n super(chartService, options);\n\n this.crosshair = crosshair;\n this.formatService = chartService.format;\n this.initAxisName();\n }\n\n initAxisName() {\n const axis = this.crosshair.axis;\n const plotArea = axis.plotArea;\n let name;\n if (plotArea.categoryAxis) {\n name = axis.getCategory ? \"categoryAxis\" : \"valueAxis\";\n } else {\n name = axis.options.vertical ? \"yAxis\" : \"xAxis\";\n }\n this.axisName = name;\n }\n\n showAt(point) {\n const { crosshair: { axis }, options } = this;\n let value = axis[options.stickyMode ? \"getCategory\" : \"getValue\"](point);\n let formattedValue = value;\n\n if (options.format) {\n formattedValue = this.formatService.auto(options.format, value);\n } else if (axis.options.type === DATE) {\n formattedValue = this.formatService.auto(axis.options.labels.dateFormats[axis.options.baseUnit], value);\n }\n\n this.show({\n point: point,\n anchor: this.getAnchor(),\n crosshair: this.crosshair,\n value: formattedValue,\n axisName: this.axisName,\n axisIndex: this.crosshair.axis.axisIndex\n }, this.options);\n }\n\n hide() {\n this.chartService.notify(HIDE_TOOLTIP, {\n crosshair: this.crosshair,\n axisName: this.axisName,\n axisIndex: this.crosshair.axis.axisIndex\n });\n }\n\n getAnchor() {\n const { crosshair, options: { position, padding } } = this;\n const vertical = !crosshair.axis.options.vertical;\n const lineBox = crosshair.line.bbox();\n let horizontalAlign, verticalAlign, point;\n\n if (vertical) {\n horizontalAlign = CENTER;\n if (position === BOTTOM) {\n verticalAlign = TOP;\n point = lineBox.bottomLeft().translate(0, padding);\n } else {\n verticalAlign = BOTTOM;\n point = lineBox.topLeft().translate(0, -padding);\n }\n } else {\n verticalAlign = CENTER;\n if (position === LEFT) {\n horizontalAlign = RIGHT;\n point = lineBox.topLeft().translate(-padding, 0);\n } else {\n horizontalAlign = LEFT;\n point = lineBox.topRight().translate(padding, 0);\n }\n }\n\n return {\n point: point,\n align: {\n horizontal: horizontalAlign,\n vertical: verticalAlign\n }\n };\n }\n}\n\nsetDefaultOptions(CrosshairTooltip, {\n padding: 10\n});\n\nexport default CrosshairTooltip;\n\n","import { drawing as draw, geometry as geom } from '@progress/kendo-drawing';\n\nimport { ChartElement, CategoryAxis } from '../../core';\nimport CrosshairTooltip from './crosshair-tooltip';\n\nimport { BLACK, X, Y } from '../../common/constants';\nimport { deepExtend, setDefaultOptions } from '../../common';\n\nclass Crosshair extends ChartElement {\n constructor(chartService, axis, options) {\n super(options);\n\n this.axis = axis;\n this.stickyMode = axis instanceof CategoryAxis;\n\n const tooltipOptions = this.options.tooltip;\n\n if (tooltipOptions.visible) {\n this.tooltip = new CrosshairTooltip(chartService, this,\n deepExtend({}, tooltipOptions, { stickyMode: this.stickyMode })\n );\n }\n }\n\n showAt(point) {\n this.point = point;\n this.moveLine();\n this.line.visible(true);\n\n if (this.tooltip) {\n this.tooltip.showAt(point);\n }\n }\n\n hide() {\n this.line.visible(false);\n\n if (this.tooltip) {\n this.tooltip.hide();\n }\n }\n\n moveLine() {\n const { axis, point } = this;\n const vertical = axis.options.vertical;\n const box = this.getBox();\n const dim = vertical ? Y : X;\n const lineStart = new geom.Point(box.x1, box.y1);\n let lineEnd;\n\n if (vertical) {\n lineEnd = new geom.Point(box.x2, box.y1);\n } else {\n lineEnd = new geom.Point(box.x1, box.y2);\n }\n\n if (point) {\n if (this.stickyMode) {\n const slot = axis.getSlot(axis.pointCategoryIndex(point));\n lineStart[dim] = lineEnd[dim] = slot.center()[dim];\n } else {\n lineStart[dim] = lineEnd[dim] = point[dim];\n }\n }\n\n this.box = box;\n\n this.line.moveTo(lineStart).lineTo(lineEnd);\n }\n\n getBox() {\n const axis = this.axis;\n const axes = axis.pane.axes;\n const length = axes.length;\n const vertical = axis.options.vertical;\n const box = axis.lineBox().clone();\n const dim = vertical ? X : Y;\n let axisLineBox;\n\n for (let i = 0; i < length; i++) {\n const currentAxis = axes[i];\n if (currentAxis.options.vertical !== vertical) {\n if (!axisLineBox) {\n axisLineBox = currentAxis.lineBox().clone();\n } else {\n axisLineBox.wrap(currentAxis.lineBox());\n }\n }\n }\n\n box[dim + 1] = axisLineBox[dim + 1];\n box[dim + 2] = axisLineBox[dim + 2];\n\n return box;\n }\n\n createVisual() {\n super.createVisual();\n\n const options = this.options;\n this.line = new draw.Path({\n stroke: {\n color: options.color,\n width: options.width,\n opacity: options.opacity,\n dashType: options.dashType\n },\n visible: false\n });\n\n this.moveLine();\n this.visual.append(this.line);\n }\n\n destroy() {\n if (this.tooltip) {\n this.tooltip.destroy();\n }\n\n super.destroy();\n }\n}\n\nsetDefaultOptions(Crosshair, {\n color: BLACK,\n width: 2,\n zIndex: -1,\n tooltip: {\n visible: false\n }\n});\n\nexport default Crosshair;","import PieChart from '../pie-chart/pie-chart';\nimport DonutSegment from './donut-segment';\n\nimport { INITIAL_ANIMATION_DURATION } from '../constants';\n\nimport { deepExtend, defined, setDefaultOptions, valueOrDefault } from '../../common';\n\nconst DONUT_SECTOR_ANIM_DELAY = 50;\n\nclass DonutChart extends PieChart {\n addValue(value, sector, fields) {\n const segmentOptions = deepExtend({}, fields.series, { index: fields.index });\n this.evalSegmentOptions(segmentOptions, value, fields);\n\n this.createLegendItem(value, segmentOptions, fields);\n\n if (!value || fields.visible === false) {\n return;\n }\n\n const segment = new DonutSegment(value, sector, segmentOptions);\n\n Object.assign(segment, fields);\n this.append(segment);\n this.points.push(segment);\n }\n\n reflow(targetBox) {\n const options = this.options;\n const box = targetBox.clone();\n const space = 5;\n const minWidth = Math.min(box.width(), box.height());\n const halfMinWidth = minWidth / 2;\n const defaultPadding = minWidth - minWidth * 0.85;\n const series = options.series;\n const seriesCount = series.length;\n\n let padding = valueOrDefault(options.padding, defaultPadding);\n padding = padding > halfMinWidth - space ? halfMinWidth - space : padding;\n\n let totalSize = halfMinWidth - padding;\n let seriesWithoutSize = 0;\n let holeSize;\n\n for (let i = 0; i < seriesCount; i++) {\n const currentSeries = series[i];\n if (i === 0) {\n if (defined(currentSeries.holeSize)) {\n holeSize = currentSeries.holeSize;\n totalSize -= currentSeries.holeSize;\n }\n }\n\n if (defined(currentSeries.size)) {\n totalSize -= currentSeries.size;\n } else {\n seriesWithoutSize++;\n }\n\n if (defined(currentSeries.margin) && i !== seriesCount - 1) {\n totalSize -= currentSeries.margin;\n }\n }\n\n if (!defined(holeSize)) {\n const currentSize = (halfMinWidth - padding) / (seriesCount + 0.75);\n holeSize = currentSize * 0.75;\n totalSize -= holeSize;\n }\n\n let innerRadius = holeSize;\n let margin = 0;\n let size, radius;\n\n this.seriesConfigs = [];\n\n for (let i = 0; i < seriesCount; i++) {\n const currentSeries = series[i];\n size = valueOrDefault(currentSeries.size, totalSize / seriesWithoutSize);\n innerRadius += margin;\n radius = innerRadius + size;\n this.seriesConfigs.push({ innerRadius: innerRadius, radius: radius });\n margin = currentSeries.margin || 0;\n innerRadius = radius;\n }\n\n super.reflow(targetBox);\n }\n\n animationDelay(categoryIndex, seriesIndex, seriesCount) {\n return categoryIndex * DONUT_SECTOR_ANIM_DELAY +\n (INITIAL_ANIMATION_DURATION * (seriesIndex + 1) / (seriesCount + 1));\n }\n}\n\n\nsetDefaultOptions(DonutChart, {\n startAngle: 90,\n connectors: {\n width: 2,\n color: \"#939393\",\n padding: 8\n }\n});\n\nexport default DonutChart;","import PieSegment from '../pie-chart/pie-segment';\nimport PointEventsMixin from '../mixins/point-events-mixin';\n\nimport { PIE } from '../constants';\n\nimport { ShapeBuilder, Box } from '../../core';\n\nimport { CENTER } from '../../common/constants';\nimport { deepExtend, setDefaultOptions } from '../../common';\n\nclass DonutSegment extends PieSegment {\n reflowLabel() {\n const { options: { labels: labelsOptions }, label } = this;\n const sector = this.sector.clone();\n const angle = sector.middle();\n\n if (label) {\n const labelHeight = label.box.height();\n if (labelsOptions.position === CENTER) {\n sector.radius -= (sector.radius - sector.innerRadius) / 2;\n\n const lp = sector.point(angle);\n\n label.reflow(new Box(lp.x, lp.y - labelHeight / 2, lp.x, lp.y));\n } else {\n super.reflowLabel();\n }\n }\n }\n\n createSegment(sector, options) {\n return ShapeBuilder.current.createRing(sector, options);\n }\n}\n\nsetDefaultOptions(DonutSegment, {\n overlay: {\n gradient: \"roundedGlass\"\n },\n labels: {\n position: CENTER\n },\n animation: {\n type: PIE\n }\n});\n\ndeepExtend(DonutSegment.prototype, PointEventsMixin);\n\n\nexport default DonutSegment;\n","import ErrorBarBase from './error-bar-base';\n\nclass CategoricalErrorBar extends ErrorBarBase {\n getAxis() {\n const axis = this.chart.seriesValueAxis(this.series);\n\n return axis;\n }\n}\n\nexport default CategoricalErrorBar;","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport { ChartElement, Point, Box } from '../../core';\n\nimport { FADEIN, INITIAL_ANIMATION_DURATION } from '../constants';\n\nimport { setDefaultOptions, alignPathToPixel } from '../../common';\n\nconst DEFAULT_ERROR_BAR_WIDTH = 4;\n\nclass ErrorBarBase extends ChartElement {\n constructor(low, high, isVertical, chart, series, options) {\n super(options);\n\n this.low = low;\n this.high = high;\n this.isVertical = isVertical;\n this.chart = chart;\n this.series = series;\n }\n\n reflow(targetBox) {\n const endCaps = this.options.endCaps;\n const isVertical = this.isVertical;\n const axis = this.getAxis();\n const valueBox = axis.getSlot(this.low, this.high);\n const centerBox = targetBox.center();\n const capsWidth = this.getCapsWidth(targetBox, isVertical);\n const capValue = isVertical ? centerBox.x : centerBox.y;\n const capStart = capValue - capsWidth;\n const capEnd = capValue + capsWidth;\n let linePoints;\n\n if (isVertical) {\n linePoints = [\n new Point(centerBox.x, valueBox.y1),\n new Point(centerBox.x, valueBox.y2)\n ];\n if (endCaps) {\n linePoints.push(new Point(capStart, valueBox.y1),\n new Point(capEnd, valueBox.y1),\n new Point(capStart, valueBox.y2),\n new Point(capEnd, valueBox.y2));\n }\n this.box = new Box(capStart, valueBox.y1, capEnd, valueBox.y2);\n } else {\n linePoints = [\n new Point(valueBox.x1, centerBox.y),\n new Point(valueBox.x2, centerBox.y)\n ];\n if (endCaps) {\n linePoints.push(new Point(valueBox.x1, capStart),\n new Point(valueBox.x1, capEnd),\n new Point(valueBox.x2, capStart),\n new Point(valueBox.x2, capEnd));\n }\n this.box = new Box(valueBox.x1, capStart, valueBox.x2, capEnd);\n }\n\n this.linePoints = linePoints;\n }\n\n getCapsWidth(box, isVertical) {\n const boxSize = isVertical ? box.width() : box.height();\n const capsWidth = Math.min(Math.floor(boxSize / 2), DEFAULT_ERROR_BAR_WIDTH) || DEFAULT_ERROR_BAR_WIDTH;\n\n return capsWidth;\n }\n\n createVisual() {\n const options = this.options;\n const visual = options.visual;\n\n if (visual) {\n this.visual = visual({\n low: this.low,\n high: this.high,\n rect: this.box.toRect(),\n sender: this.getSender(),\n options: {\n endCaps: options.endCaps,\n color: options.color,\n line: options.line\n },\n createVisual: () => {\n this.createDefaultVisual();\n const defaultVisual = this.visual;\n delete this.visual;\n return defaultVisual;\n }\n });\n } else {\n this.createDefaultVisual();\n }\n }\n\n createDefaultVisual() {\n const { options, linePoints } = this;\n const lineOptions = {\n stroke: {\n color: options.color,\n width: options.line.width,\n dashType: options.line.dashType\n }\n };\n\n super.createVisual();\n\n for (let idx = 0; idx < linePoints.length; idx += 2) {\n const line = new draw.Path(lineOptions)\n .moveTo(linePoints[idx].x, linePoints[idx].y)\n .lineTo(linePoints[idx + 1].x, linePoints[idx + 1].y);\n\n alignPathToPixel(line);\n this.visual.append(line);\n }\n }\n}\n\nsetDefaultOptions(ErrorBarBase, {\n animation: {\n type: FADEIN,\n delay: INITIAL_ANIMATION_DURATION\n },\n endCaps: true,\n line: {\n width: 2\n },\n zIndex: 1\n});\n\nexport default ErrorBarBase;","import SeriesBinder from '../series-binder';\n\nimport { OBJECT } from '../../common/constants';\nimport { Class, defined, getter, isArray, isNumber } from '../../common';\n\nconst STD_ERR = \"stderr\";\nconst STD_DEV = \"stddev\";\nconst percentRegex = /percent(?:\\w*)\\((\\d+)\\)/;\nconst standardDeviationRegex = new RegExp(\"^\" + STD_DEV + \"(?:\\\\((\\\\d+(?:\\\\.\\\\d+)?)\\\\))?$\");\n\nclass ErrorRangeCalculator extends Class {\n constructor(errorValue, series, field) {\n super();\n\n this.initGlobalRanges(errorValue, series, field);\n }\n\n initGlobalRanges(errorValue, series, field) {\n const data = series.data;\n const deviationMatch = standardDeviationRegex.exec(errorValue);\n\n if (deviationMatch) {\n this.valueGetter = this.createValueGetter(series, field);\n\n const average = this.getAverage(data);\n const deviation = this.getStandardDeviation(data, average, false);\n const multiple = deviationMatch[1] ? parseFloat(deviationMatch[1]) : 1;\n const errorRange = { low: average.value - deviation * multiple, high: average.value + deviation * multiple };\n\n this.globalRange = function() {\n return errorRange;\n };\n } else if (errorValue.indexOf && errorValue.indexOf(STD_ERR) >= 0) {\n this.valueGetter = this.createValueGetter(series, field);\n const standardError = this.getStandardError(data, this.getAverage(data));\n\n this.globalRange = function(value) {\n return { low: value - standardError, high: value + standardError };\n };\n }\n }\n\n createValueGetter(series, field) {\n const data = series.data;\n const binder = SeriesBinder.current;\n const valueFields = binder.valueFields(series);\n const item = defined(data[0]) ? data[0] : {};\n let valueGetter;\n\n if (isArray(item)) {\n const index = field ? valueFields.indexOf(field) : 0;\n valueGetter = getter(\"[\" + index + \"]\");\n } else if (isNumber(item)) {\n valueGetter = getter();\n } else if (typeof item === OBJECT) {\n const srcValueFields = binder.sourceFields(series, valueFields);\n valueGetter = getter(srcValueFields[valueFields.indexOf(field)]);\n }\n\n return valueGetter;\n }\n\n getErrorRange(pointValue, errorValue) {\n let low, high, value;\n\n if (!defined(errorValue)) {\n return null;\n }\n\n if (this.globalRange) {\n return this.globalRange(pointValue);\n }\n\n if (isArray(errorValue)) {\n low = pointValue - errorValue[0];\n high = pointValue + errorValue[1];\n } else if (isNumber(value = parseFloat(errorValue))) {\n low = pointValue - value;\n high = pointValue + value;\n } else if ((value = percentRegex.exec(errorValue))) {\n const percentValue = pointValue * (parseFloat(value[1]) / 100);\n low = pointValue - Math.abs(percentValue);\n high = pointValue + Math.abs(percentValue);\n } else {\n throw new Error(\"Invalid ErrorBar value: \" + errorValue);\n }\n\n return { low: low, high: high };\n }\n\n getStandardError(data, average) {\n return this.getStandardDeviation(data, average, true) / Math.sqrt(average.count);\n }\n\n getStandardDeviation(data, average, isSample) {\n const length = data.length;\n const total = isSample ? average.count - 1 : average.count;\n let squareDifferenceSum = 0;\n\n for (let idx = 0; idx < length; idx++) {\n const value = this.valueGetter(data[idx]);\n if (isNumber(value)) {\n squareDifferenceSum += Math.pow(value - average.value, 2);\n }\n }\n\n return Math.sqrt(squareDifferenceSum / total);\n }\n\n getAverage(data) {\n const length = data.length;\n let sum = 0;\n let count = 0;\n\n for (let idx = 0; idx < length; idx++) {\n const value = this.valueGetter(data[idx]);\n if (isNumber(value)) {\n sum += value;\n count++;\n }\n }\n\n return {\n value: sum / count,\n count: count\n };\n }\n}\n\nexport default ErrorRangeCalculator;","import ErrorBarBase from './error-bar-base';\n\nclass ScatterErrorBar extends ErrorBarBase {\n getAxis() {\n const axes = this.chart.seriesAxes(this.series);\n const axis = this.isVertical ? axes.y : axes.x;\n\n return axis;\n }\n}\n\nexport default ScatterErrorBar;","import { geometry as geom } from '@progress/kendo-drawing';\n\nimport { ChartElement, TextBox } from '../../core';\nimport PieChartMixin from '../mixins/pie-chart-mixin';\nimport FunnelSegment from './funnel-segment';\n\nimport { bindSegments, evalOptions } from '../utils';\n\nimport { CENTER, LEFT } from '../../common/constants';\nimport { autoTextColor, deepExtend, isFunction, getTemplate, limitValue, setDefaultOptions } from '../../common';\n\nclass FunnelChart extends ChartElement {\n constructor(plotArea, options) {\n super(options);\n\n this.plotArea = plotArea;\n this.points = [];\n this.labels = [];\n this.legendItems = [];\n this.render();\n }\n\n formatPointValue(point, format) {\n return this.chartService.format.auto(format,point.value);\n }\n\n render() {\n const { options, plotArea: { options: { seriesColors = [] } } } = this;\n const series = options.series[0];\n const data = series.data;\n\n if (!data) {\n return;\n }\n\n const { total, points } = bindSegments(series);\n\n for (let i = 0; i < points.length; i++) {\n const pointData = points[i];\n\n if (!pointData) {\n continue;\n }\n\n let fields = pointData.fields;\n\n if (!isFunction(series.color)) {\n series.color = fields.color || seriesColors[i % seriesColors.length];\n }\n\n fields = deepExtend({\n index: i,\n owner: this,\n series: series,\n dataItem: data[i],\n percentage: pointData.value / total\n }, fields, { visible: pointData.visible });\n\n const value = pointData.valueFields.value;\n const segment = this.createSegment(value, fields);\n const label = this.createLabel(value, fields);\n\n if (segment && label) {\n segment.append(label);\n }\n }\n }\n\n evalSegmentOptions(options, value, fields) {\n const series = fields.series;\n\n evalOptions(options, {\n value: value,\n series: series,\n dataItem: fields.dataItem,\n index: fields.index\n }, { defaults: series._defaults, excluded: [ \"data\", \"content\", \"template\", \"toggle\", \"visual\" ] });\n }\n\n createSegment(value, fields) {\n const seriesOptions = deepExtend({}, fields.series);\n this.evalSegmentOptions(seriesOptions, value, fields);\n\n this.createLegendItem(value, seriesOptions, fields);\n\n if (fields.visible !== false) {\n\n const segment = new FunnelSegment(value, seriesOptions, fields);\n Object.assign(segment, fields);\n\n this.append(segment);\n this.points.push(segment);\n\n return segment;\n }\n }\n\n createLabel(value, fields) {\n const { series, dataItem } = fields;\n const labels = deepExtend({}, this.options.labels, series.labels);\n let text = value;\n\n if (labels.visible) {\n const labelTemplate = getTemplate(labels);\n const data = {\n dataItem: dataItem,\n value: value,\n percentage: fields.percentage,\n category: fields.category,\n series: series\n };\n if (labelTemplate) {\n text = labelTemplate(data);\n } else if (labels.format) {\n text = this.plotArea.chartService.format.auto(labels.format, text);\n }\n\n if (!labels.color) {\n labels.color = autoTextColor(series.color);\n if (!labels.background) {\n labels.background = series.color;\n }\n }\n\n this.evalSegmentOptions(labels, value, fields);\n const textBox = new TextBox(text, deepExtend({\n vAlign: labels.position\n }, labels), data);\n\n this.labels.push(textBox);\n\n return textBox;\n }\n }\n\n labelPadding() {\n const labels = this.labels;\n const padding = { left: 0, right: 0 };\n\n for (let i = 0; i < labels.length; i++) {\n const label = labels[i];\n const align = label.options.align;\n if (align !== CENTER) {\n const width = labels[i].box.width();\n\n if (align === LEFT) {\n padding.left = Math.max(padding.left, width);\n } else {\n padding.right = Math.max(padding.right, width);\n }\n }\n }\n\n return padding;\n }\n\n dynamicSlopeReflow(box, width, totalHeight) {\n const { options, points: segments } = this;\n const count = segments.length;\n const firstSegment = segments[0];\n let maxSegment = firstSegment;\n\n for (let idx = 0; idx < segments.length; idx++) {\n if (segments[idx].percentage > maxSegment.percentage) {\n maxSegment = segments[idx];\n }\n }\n\n let lastUpperSide = (firstSegment.percentage / maxSegment.percentage) * width;\n let previousOffset = (width - lastUpperSide) / 2;\n let previousHeight = 0;\n\n for (let idx = 0; idx < count; idx++) {\n const percentage = segments[idx].percentage;\n const nextSegment = segments[idx + 1];\n const nextPercentage = (nextSegment ? nextSegment.percentage : percentage);\n const points = segments[idx].points = [];\n const height = (options.dynamicHeight) ? (totalHeight * percentage) : (totalHeight / count);\n let offset;\n\n if (!percentage) {\n offset = nextPercentage ? 0 : width / 2;\n } else {\n offset = (width - lastUpperSide * (nextPercentage / percentage)) / 2;\n }\n\n offset = limitValue(offset, 0, width);\n\n points.push(new geom.Point(box.x1 + previousOffset, box.y1 + previousHeight));\n points.push(new geom.Point(box.x1 + width - previousOffset, box.y1 + previousHeight));\n points.push(new geom.Point(box.x1 + width - offset, box.y1 + height + previousHeight));\n points.push(new geom.Point(box.x1 + offset, box.y1 + height + previousHeight));\n\n previousOffset = offset;\n previousHeight += height + options.segmentSpacing;\n lastUpperSide = limitValue(width - 2 * offset, 0, width);\n }\n }\n\n constantSlopeReflow(box, width, totalHeight) {\n const { options, points: segments } = this;\n const count = segments.length;\n const decreasingWidth = options.neckRatio <= 1;\n const neckRatio = decreasingWidth ? options.neckRatio * width : width;\n let previousOffset = decreasingWidth ? 0 : (width - width / options.neckRatio) / 2;\n const topMostWidth = decreasingWidth ? width : width - previousOffset * 2;\n const finalNarrow = (topMostWidth - neckRatio) / 2;\n let previousHeight = 0;\n\n for (let idx = 0; idx < count; idx++) {\n const points = segments[idx].points = [];\n const percentage = segments[idx].percentage;\n const offset = (options.dynamicHeight) ? (finalNarrow * percentage) : (finalNarrow / count);\n const height = (options.dynamicHeight) ? (totalHeight * percentage) : (totalHeight / count);\n\n points.push(new geom.Point(box.x1 + previousOffset, box.y1 + previousHeight));\n points.push(new geom.Point(box.x1 + width - previousOffset, box.y1 + previousHeight));\n points.push(new geom.Point(box.x1 + width - previousOffset - offset, box.y1 + height + previousHeight));\n points.push(new geom.Point(box.x1 + previousOffset + offset,box.y1 + height + previousHeight));\n previousOffset += offset;\n previousHeight += height + options.segmentSpacing;\n }\n }\n\n reflow(chartBox) {\n const points = this.points;\n const count = points.length;\n\n if (!count) {\n return;\n }\n\n const options = this.options;\n const box = chartBox.clone().unpad(this.labelPadding());\n const totalHeight = box.height() - options.segmentSpacing * (count - 1);\n const width = box.width();\n\n if (options.dynamicSlope) {\n this.dynamicSlopeReflow(box, width, totalHeight);\n } else {\n this.constantSlopeReflow(box, width, totalHeight);\n }\n\n for (let idx = 0; idx < count; idx++) {\n points[idx].reflow(chartBox);\n }\n }\n}\n\nsetDefaultOptions(FunnelChart, {\n neckRatio: 0.3,\n width: 300,\n dynamicSlope: false,\n dynamicHeight: true,\n segmentSpacing: 0,\n labels: {\n visible: false,\n align: CENTER,\n position: CENTER,\n zIndex: 1\n }\n});\n\ndeepExtend(FunnelChart.prototype, PieChartMixin);\n\nexport default FunnelChart;\n","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport { ChartElement, Box, Point } from '../../core';\nimport PointEventsMixin from '../mixins/point-events-mixin';\n\nimport { WHITE } from '../../common/constants';\nimport { deepExtend, setDefaultOptions } from '../../common';\n\nclass FunnelSegment extends ChartElement {\n constructor(value, options, segmentOptions) {\n super(options);\n\n this.value = value;\n this.options.index = segmentOptions.index;\n }\n\n reflow(chartBox) {\n const points = this.points;\n const label = this.children[0];\n\n this.box = new Box(points[0].x, points[0].y, points[1].x, points[2].y);\n\n if (label) {\n label.reflow(new Box(chartBox.x1, points[0].y, chartBox.x2, points[2].y));\n }\n }\n\n createVisual() {\n const options = this.options;\n let visual;\n\n super.createVisual();\n\n if (options.visual) {\n visual = options.visual({\n category: this.category,\n dataItem: this.dataItem,\n value: this.value,\n series: this.series,\n percentage: this.percentage,\n points: this.points,\n options: options,\n sender: this.getSender(),\n createVisual: () => this.createPath()\n });\n } else {\n visual = this.createPath();\n }\n\n if (visual) {\n this.visual.append(visual);\n }\n }\n\n createPath() {\n const options = this.options;\n const border = options.border;\n const path = draw.Path.fromPoints(this.points, {\n fill: {\n color: options.color,\n opacity: options.opacity\n },\n stroke: {\n color: border.color,\n opacity: border.opacity,\n width: border.width\n }\n }).close();\n\n return path;\n }\n\n createHighlight(style) {\n return draw.Path.fromPoints(this.points, style);\n }\n\n highlightVisual() {\n return this.visual.children[0];\n }\n\n highlightVisualArgs() {\n const path = draw.Path.fromPoints(this.points).close();\n\n return {\n options: this.options,\n path: path\n };\n }\n\n tooltipAnchor() {\n const box = this.box;\n return {\n point: new Point(box.center().x, box.y1),\n align: {\n horizontal: \"center\",\n vertical: \"top\"\n }\n };\n }\n\n formatValue(format) {\n const point = this;\n return point.owner.formatPointValue(point, format);\n }\n}\n\nsetDefaultOptions(FunnelSegment, {\n color: WHITE,\n border: {\n width: 1\n }\n});\n\ndeepExtend(FunnelSegment.prototype, PointEventsMixin);\n\nexport default FunnelSegment;","import { parseColor } from '@progress/kendo-drawing';\n\n// Linear color scale from the given color to white minus minimum lightness offset.\nconst colorScale = (color, minLightnessOffset = 0.05) => {\n const baseColor = parseColor(color);\n const offset = 1 - minLightnessOffset;\n\n return (value) => {\n const hsl = baseColor.toHSL();\n const range = 100 - hsl.l;\n const point = offset - value;\n hsl.l += Math.min(point * range, range);\n\n return hsl.toCss();\n };\n};\n\nexport default colorScale;\n","import { deepExtend, defined, isFunction, setDefaultOptions } from '../../common';\nimport { MAX_VALUE, MIN_VALUE } from '../../common/constants';\nimport { Box, ChartElement } from '../../core';\nimport CategoricalChart from '../categorical-chart';\nimport evalOptions from '../utils/eval-options';\nimport colorScale from './color-scale';\nimport HeatmapPoint from './heatmap-point';\n\nclass HeatmapChart extends ChartElement {\n constructor(plotArea, options) {\n super(options);\n\n this.plotArea = plotArea;\n this.chartService = plotArea.chartService;\n this._initFields();\n\n this.render();\n }\n\n _initFields() {\n this.points = [];\n this.seriesOptions = [];\n this.valueRange = { min: MAX_VALUE, max: MIN_VALUE };\n this._evalSeries = [];\n }\n\n render() {\n this.setRange();\n this.traverseDataPoints(this.addValue.bind(this));\n }\n\n setRange() {\n const { options: { series } } = this;\n\n for (let seriesIx = 0; seriesIx < series.length; seriesIx++) {\n const currentSeries = series[seriesIx];\n\n for (let pointIx = 0; pointIx < currentSeries.data.length; pointIx++) {\n const { valueFields } = this._bindPoint(currentSeries, seriesIx, pointIx);\n if (defined(valueFields.value) && valueFields.value !== null) {\n this.valueRange.min = Math.min(this.valueRange.min, valueFields.value);\n this.valueRange.max = Math.max(this.valueRange.max, valueFields.value);\n }\n }\n }\n }\n\n addValue(value, fields) {\n let point;\n if (value && defined(value.value) && value.value !== null) {\n point = this.createPoint(value, fields);\n if (point) {\n Object.assign(point, fields);\n }\n }\n\n this.points.push(point);\n }\n\n evalPointOptions(options, value, fields) {\n const { series, seriesIx } = fields;\n const state = { defaults: series._defaults, excluded: [ \"data\", \"tooltip\", \"content\", \"template\", \"visual\", \"toggle\" ] };\n\n let doEval = this._evalSeries[seriesIx];\n if (!defined(doEval)) {\n this._evalSeries[seriesIx] = doEval = evalOptions(options, {}, state, true);\n }\n\n let pointOptions = options;\n if (doEval) {\n pointOptions = deepExtend({}, options);\n evalOptions(pointOptions, {\n value: value,\n series: series,\n dataItem: fields.dataItem,\n min: this.valueRange.min,\n max: this.valueRange.max\n }, state);\n }\n\n return pointOptions;\n }\n\n pointType() {\n return HeatmapPoint;\n }\n\n pointOptions(series, seriesIx) {\n let options = this.seriesOptions[seriesIx];\n if (!options) {\n const defaults = this.pointType().prototype.defaults;\n this.seriesOptions[seriesIx] = options = deepExtend({}, defaults, {\n markers: {\n opacity: series.opacity\n },\n tooltip: {\n format: this.options.tooltip.format\n },\n labels: {\n format: this.options.labels.format\n }\n }, series);\n }\n\n return options;\n }\n\n createPoint(value, fields) {\n const series = fields.series;\n let pointOptions = this.pointOptions(series, fields.seriesIx);\n let color = fields.color || series.color;\n\n pointOptions = this.evalPointOptions(pointOptions, value, fields);\n\n if (isFunction(series.color)) {\n color = pointOptions.color;\n } else if (this.valueRange.max !== 0) {\n const scale = colorScale(color);\n color = scale(value.value / this.valueRange.max);\n }\n\n const point = new HeatmapPoint(value, pointOptions);\n point.color = color;\n\n this.append(point);\n\n return point;\n }\n\n seriesAxes(series) {\n const { xAxis: xAxisName, yAxis: yAxisName } = series;\n const plotArea = this.plotArea;\n const xAxis = xAxisName ? plotArea.namedXAxes[xAxisName] : plotArea.axisX;\n const yAxis = yAxisName ? plotArea.namedYAxes[yAxisName] : plotArea.axisY;\n\n if (!xAxis) {\n throw new Error(\"Unable to locate X axis with name \" + xAxisName);\n }\n\n if (!yAxis) {\n throw new Error(\"Unable to locate Y axis with name \" + yAxisName);\n }\n\n return { xAxis, yAxis };\n }\n\n reflow(targetBox) {\n const chartPoints = this.points;\n const limit = !this.options.clip;\n let pointIx = 0;\n\n\n this.traverseDataPoints((value, fields) => {\n const point = chartPoints[pointIx++];\n const { xAxis, yAxis } = this.seriesAxes(fields.series);\n const indexX = xAxis.categoryIndex(value.x);\n const indexY = yAxis.categoryIndex(value.y);\n const slotX = xAxis.getSlot(indexX, indexX, limit);\n const slotY = yAxis.getSlot(indexY, indexY, limit);\n\n if (point) {\n if (slotX && slotY) {\n const pointSlot = this.pointSlot(slotX, slotY);\n point.reflow(pointSlot);\n } else {\n point.visible = false;\n }\n }\n });\n\n this.box = targetBox;\n }\n\n pointSlot(slotX, slotY) {\n return new Box(slotX.x1, slotY.y1, slotX.x2, slotY.y2);\n }\n\n traverseDataPoints(callback) {\n const { options: { series } } = this;\n\n for (let seriesIx = 0; seriesIx < series.length; seriesIx++) {\n const currentSeries = series[seriesIx];\n const { xAxis, yAxis } = this.seriesAxes(currentSeries);\n const xRange = xAxis.currentRangeIndices();\n const yRange = yAxis.currentRangeIndices();\n\n for (let pointIx = 0; pointIx < currentSeries.data.length; pointIx++) {\n const { valueFields: value, fields } = this._bindPoint(currentSeries, seriesIx, pointIx);\n const xIndex = xAxis.totalIndex(value.x);\n const yIndex = yAxis.totalIndex(value.y);\n const xIn = xRange.min <= xIndex && xIndex <= xRange.max;\n const yIn = yRange.min <= yIndex && yIndex <= yRange.max;\n\n if (xIn && yIn) {\n callback(value, deepExtend({\n pointIx: pointIx,\n series: currentSeries,\n seriesIx: seriesIx,\n dataItem: currentSeries.data[pointIx],\n owner: this\n }, fields));\n }\n }\n }\n }\n\n formatPointValue(point, format) {\n const value = point.value;\n return this.chartService.format.auto(format, value.x, value.y, value.value);\n }\n\n animationPoints() {\n const points = this.points;\n const result = [];\n for (let idx = 0; idx < points.length; idx++) {\n result.push((points[idx] || {}).marker);\n }\n return result;\n }\n}\nsetDefaultOptions(HeatmapChart, {\n series: [],\n tooltip: {\n format: \"{0}, {1}: {2}\"\n },\n labels: {\n format: \"{2}\"\n },\n clip: true\n});\ndeepExtend(HeatmapChart.prototype, {\n _bindPoint: CategoricalChart.prototype._bindPoint\n});\n\nexport default HeatmapChart;\n","import { autoTextColor, deepExtend, getTemplate, valueOrDefault } from '../../common';\nimport { CENTER, ROUNDED_RECT, BOTTOM, WHITE } from '../../common/constants';\nimport { ChartElement, Point, rectToBox, ShapeElement, TextBox } from '../../core';\nimport { TOOLTIP_OFFSET } from '../constants';\nimport NoteMixin from '../mixins/note-mixin';\nimport PointEventsMixin from '../mixins/point-events-mixin';\n\nclass HeatmapPoint extends ChartElement {\n constructor(value, options) {\n super();\n\n this.options = options;\n this.color = options.color || WHITE;\n this.value = value;\n }\n\n render() {\n if (this._rendered) {\n return;\n }\n\n this._rendered = true;\n\n this.createMarker();\n this.createLabel();\n this.createNote();\n }\n\n createLabel() {\n const options = this.options;\n const labels = options.labels;\n\n if (labels.visible) {\n const pointData = this.pointData();\n let labelTemplate = getTemplate(labels);\n let labelText;\n let labelColor = labels.color;\n\n if (labelTemplate) {\n labelText = labelTemplate(pointData);\n } else {\n labelText = this.formatValue(labels.format);\n }\n\n if (!labelColor) {\n labelColor = autoTextColor(this.color);\n }\n\n this.label = new TextBox(labelText,\n deepExtend({\n align: CENTER,\n vAlign: CENTER,\n margin: {\n left: 5,\n right: 5\n },\n zIndex: valueOrDefault(labels.zIndex, this.series.zIndex)\n },\n labels, {\n color: labelColor\n }),\n pointData\n );\n this.append(this.label);\n }\n }\n\n formatValue(format) {\n return this.owner.formatPointValue(this, format);\n }\n\n reflow(targetBox) {\n this.render();\n\n const label = this.label;\n\n this.box = targetBox;\n\n if (label) {\n label.reflow(this.markerBox());\n }\n\n if (this.note) {\n this.note.reflow(targetBox);\n }\n\n this.marker.reflow(this.markerBox());\n }\n\n markerBox() {\n const options = this.options;\n const markers = options.markers;\n const border = markers.border;\n const rect = this.box.toRect();\n const type = valueOrDefault(markers.type, 'rect');\n const isRoundRect = type === ROUNDED_RECT;\n let borderWidth = valueOrDefault(border.width, isRoundRect ? 1 : 0);\n const halfBorderWidth = Math.round(borderWidth / 2);\n\n if (markers.size) {\n const center = rect.center();\n rect.size.width = rect.size.height = markers.size;\n rect.origin.x = Math.round(center.x - rect.size.width / 2);\n rect.origin.y = Math.round(center.y - rect.size.height / 2);\n }\n\n rect.size.width -= borderWidth;\n rect.size.height -= borderWidth;\n rect.origin.y += halfBorderWidth + 0.5;\n rect.origin.x += halfBorderWidth + 0.5;\n\n return rectToBox(rect);\n }\n\n markerBorder() {\n const options = this.options;\n const markers = options.markers;\n const border = markers.border;\n const opacity = valueOrDefault(border.opacity, options.opacity);\n\n return {\n color: border.color || this.color,\n width: border.width,\n opacity: opacity,\n dashType: border.dashType\n };\n }\n\n createMarker() {\n const options = this.options;\n const markerOptions = options.markers;\n const marker = new ShapeElement({\n type: valueOrDefault(markerOptions.type, 'rect'),\n width: markerOptions.size,\n height: markerOptions.size,\n rotation: markerOptions.rotation,\n background: this.color,\n border: this.markerBorder(),\n borderRadius: markerOptions.borderRadius,\n opacity: this.series.opacity || options.opacity,\n zIndex: valueOrDefault(options.zIndex, this.series.zIndex),\n animation: options.animation,\n visual: options.visual\n }, {\n dataItem: this.dataItem,\n value: this.value,\n series: this.series,\n category: this.category\n });\n\n this.marker = marker;\n this.append(marker);\n }\n\n createHighlight(style) {\n const options = this.options;\n const markerOptions = this.options.highlight.markers || this.options.markers;\n\n const highlight = new ShapeElement({\n type: valueOrDefault(markerOptions.type, 'rect'),\n width: markerOptions.size,\n height: markerOptions.size,\n rotation: markerOptions.rotation,\n background: markerOptions.color || this.color,\n border: this.markerBorder(),\n borderRadius: markerOptions.borderRadius,\n opacity: this.series.opacity || options.opacity,\n zIndex: valueOrDefault(options.zIndex, this.series.zIndex)\n });\n\n highlight.reflow(this.markerBox());\n const visual = highlight.getElement();\n\n visual.options.fill = style.fill;\n visual.options.stroke = style.stroke;\n\n return visual;\n }\n\n highlightVisual() {\n return this.rectVisual;\n }\n\n highlightVisualArgs() {\n return {\n options: this.options,\n rect: this.box.toRect(),\n visual: this.rectVisual\n };\n }\n\n tooltipAnchor() {\n const left = this.box.center().x;\n const top = this.box.y1 - TOOLTIP_OFFSET;\n\n return {\n point: new Point(left, top),\n align: {\n horizontal: CENTER,\n vertical: BOTTOM\n }\n };\n }\n\n overlapsBox(box) {\n return this.box.overlaps(box);\n }\n\n unclipElements() {\n /* noop, clip labels */\n }\n\n pointData() {\n return {\n x: this.value.x,\n y: this.value.y,\n value: this.value.value,\n dataItem: this.dataItem,\n series: this.series\n };\n }\n}\n\ndeepExtend(HeatmapPoint.prototype, PointEventsMixin);\ndeepExtend(HeatmapPoint.prototype, NoteMixin);\n\nHeatmapPoint.prototype.defaults = {\n markers: {\n type: 'rect',\n borderRadius: 4,\n border: {\n color: 'transparent'\n }\n },\n padding: { top: 1 },\n labels: {\n visible: false,\n padding: 3\n },\n opacity: 1,\n notes: {\n label: {}\n }\n};\n\nexport default HeatmapPoint;\n","import { Class } from '../common';\n\nclass Highlight extends Class {\n constructor() {\n super();\n\n this._points = [];\n }\n\n destroy() {\n this._points = [];\n }\n\n show(points, opacity) {\n const arrayPoints = [].concat(points);\n this.hide();\n\n for (let i = 0; i < arrayPoints.length; i++) {\n const point = arrayPoints[i];\n if (point && point.toggleHighlight && point.hasHighlight()) {\n this.togglePointHighlight(point, true, opacity);\n this._points.push(point);\n }\n }\n }\n\n togglePointHighlight(point, show, opacity) {\n const toggleHandler = (point.options.highlight || {}).toggle;\n if (toggleHandler) {\n const eventArgs = {\n category: point.category,\n series: point.series,\n dataItem: point.dataItem,\n value: point.value,\n stackValue: point.stackValue,\n preventDefault: preventDefault,\n visual: point.highlightVisual(),\n show: show\n };\n toggleHandler(eventArgs);\n if (!eventArgs._defaultPrevented) {\n point.toggleHighlight(show, opacity);\n }\n } else {\n point.toggleHighlight(show, opacity);\n }\n }\n\n hide() {\n const points = this._points;\n while (points.length) {\n this.togglePointHighlight(points.pop(), false);\n }\n }\n\n isHighlighted(element) {\n const points = this._points;\n\n for (let i = 0; i < points.length; i++) {\n const point = points[i];\n if (element === point) {\n return true;\n }\n }\n\n return false;\n }\n}\n\nfunction preventDefault() {\n this._defaultPrevented = true;\n}\n\nexport default Highlight;","import { ChartElement } from '../../core';\n\nimport { X, Y } from '../../common/constants';\nimport { setDefaultOptions } from '../../common';\nimport { forEach, forEachReverse } from './utils';\n\nclass ClusterLayout extends ChartElement {\n constructor(options) {\n super(options);\n\n this.forEach = options.rtl ? forEachReverse : forEach;\n }\n\n reflow(box) {\n const { vertical, gap, spacing } = this.options;\n const children = this.children;\n const count = children.length;\n const axis = vertical ? Y : X;\n const slots = count + gap + (spacing * (count - 1));\n const slotSize = (vertical ? box.height() : box.width()) / slots;\n let position = box[axis + 1] + slotSize * (gap / 2);\n\n this.forEach(children, (child, idx) => {\n const childBox = (child.box || box).clone();\n\n childBox[axis + 1] = position;\n childBox[axis + 2] = position + slotSize;\n\n child.reflow(childBox);\n if (idx < count - 1) {\n position += (slotSize * spacing);\n }\n\n position += slotSize;\n });\n }\n}\n\nsetDefaultOptions(ClusterLayout, {\n vertical: false,\n gap: 0,\n spacing: 0\n});\n\nexport default ClusterLayout;","import { ChartElement } from '../../core';\n\nimport { setDefaultOptions } from '../../common';\n\nimport { forEach, forEachReverse } from './utils';\n\nclass RadarClusterLayout extends ChartElement {\n constructor(options) {\n super(options);\n\n this.forEach = options.rtl ? forEachReverse : forEach;\n }\n\n reflow(sector) {\n const { options, children } = this;\n const { gap, spacing } = options;\n const count = children.length;\n const slots = count + gap + (spacing * (count - 1));\n const slotAngle = sector.angle / slots;\n let angle = sector.startAngle + slotAngle * (gap / 2);\n\n this.forEach(children, (child) => {\n const slotSector = sector.clone();\n slotSector.startAngle = angle;\n slotSector.angle = slotAngle;\n\n if (child.sector) {\n slotSector.radius = child.sector.radius;\n }\n\n child.reflow(slotSector);\n child.sector = slotSector;\n\n angle += slotAngle + (slotAngle * spacing);\n });\n }\n}\n\nsetDefaultOptions(RadarClusterLayout, {\n gap: 1,\n spacing: 0\n});\n\nexport default RadarClusterLayout;","import { ChartElement, Box } from '../../core';\n\nclass RadarStackLayout extends ChartElement {\n reflow(sector) {\n const { options: { reverse }, children } = this;\n const childrenCount = children.length;\n const first = reverse ? childrenCount - 1 : 0;\n const step = reverse ? -1 : 1;\n\n this.box = new Box();\n\n for (let i = first; i >= 0 && i < childrenCount; i += step) {\n const childSector = children[i].sector;\n childSector.startAngle = sector.startAngle;\n childSector.angle = sector.angle;\n }\n }\n}\n\nexport default RadarStackLayout;","import { ChartElement, Box } from '../../core';\n\nimport { X, Y } from '../../common/constants';\nimport { setDefaultOptions } from '../../common';\n\nclass StackWrap extends ChartElement {\n reflow(targetBox) {\n const positionAxis = this.options.vertical ? X : Y;\n const children = this.children;\n const childrenCount = children.length;\n let box = this.box = new Box();\n\n for (let i = 0; i < childrenCount; i++) {\n const currentChild = children[i];\n\n if (currentChild.visible !== false) {\n const childBox = currentChild.box.clone();\n childBox.snapTo(targetBox, positionAxis);\n\n if (i === 0) {\n box = this.box = childBox.clone();\n }\n\n currentChild.reflow(childBox);\n box.wrap(childBox);\n }\n }\n }\n}\n\nsetDefaultOptions(StackWrap, {\n vertical: true\n});\n\nexport default StackWrap;","export function forEach(elements, callback) {\n elements.forEach(callback);\n}\n\nexport function forEachReverse(elements, callback) {\n const length = elements.length;\n\n for (let idx = length - 1; idx >= 0; idx--) {\n callback(elements[idx], idx - length - 1);\n }\n}","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport { BoxElement, FloatElement, ShapeElement, TextBox } from '../../core';\nimport { LEGEND_ITEM_CLICK, LEGEND_ITEM_HOVER, LEGEND_ITEM_LEAVE } from '../constants';\nimport { CENTER, WHITE } from '../../common/constants';\nimport { deepExtend, eventElement } from '../../common';\n\nclass LegendItem extends BoxElement {\n constructor(options) {\n super(options);\n\n this.createContainer();\n if (!options.rtl) {\n this.createMarker();\n this.createLabel();\n } else {\n this.createLabel();\n this.createMarker();\n }\n }\n\n createContainer() {\n this.container = new FloatElement({ vertical: false, wrap: false, align: CENTER, spacing: this.options.spacing });\n this.append(this.container);\n }\n\n createMarker() {\n this.container.append(new ShapeElement(this.markerOptions()));\n }\n\n markerOptions() {\n const options = this.options;\n const markerColor = options.markerColor;\n return deepExtend({}, options.markers, {\n background: markerColor,\n border: {\n color: markerColor\n }\n });\n }\n\n createLabel() {\n const options = this.options;\n const labelOptions = deepExtend({}, options.labels);\n\n this.container.append(new TextBox(options.text, labelOptions));\n }\n\n renderComplete() {\n super.renderComplete();\n\n const cursor = this.options.cursor || {};\n const eventSink = this._itemOverlay = draw.Path.fromRect(this.container.box.toRect(), {\n fill: {\n color: WHITE,\n opacity: 0\n },\n stroke: null,\n cursor: cursor.style || cursor\n });\n\n this.appendVisual(eventSink);\n }\n\n click(widget, e) {\n const args = this.eventArgs(e);\n\n if (!widget.trigger(LEGEND_ITEM_CLICK, args) && e && e.type === 'contextmenu') {\n e.preventDefault();\n }\n }\n\n over(widget, e) {\n const args = this.eventArgs(e);\n\n if (!widget.trigger(LEGEND_ITEM_HOVER, args)) {\n widget._legendItemHover(args.seriesIndex, args.pointIndex);\n }\n\n // Don't trigger point hover for legend items\n return true;\n }\n\n out(widget, e) {\n widget._unsetActivePoint();\n\n widget.trigger(LEGEND_ITEM_LEAVE, this.eventArgs(e));\n }\n\n eventArgs(e) {\n const options = this.options;\n\n return {\n element: eventElement(e),\n text: options.text,\n series: options.series,\n seriesIndex: options.series.index,\n pointIndex: options.pointIndex\n };\n }\n\n renderVisual() {\n const options = this.options;\n const customVisual = options.visual;\n\n if (customVisual) {\n this.visual = customVisual({\n active: options.active,\n series: options.series,\n sender: this.getSender(),\n pointIndex: options.pointIndex,\n options: {\n markers: this.markerOptions(),\n labels: options.labels\n },\n createVisual: () => {\n this.createVisual();\n this.renderChildren();\n this.renderComplete();\n\n const defaultVisual = this.visual;\n\n delete this.visual;\n\n return defaultVisual;\n }\n });\n this.addVisual();\n } else {\n super.renderVisual();\n }\n }\n}\n\nexport default LegendItem;\n","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport { ChartElement, Box, rectToBox } from '../../core';\n\nclass LegendLayout extends ChartElement {\n\n constructor(options, chartService) {\n super(options);\n\n this.chartService = chartService;\n }\n\n render() {\n const { children, options } = this;\n const vertical = options.vertical;\n\n this.visual = new draw.Layout(null, {\n spacing: vertical ? 0 : options.spacing,\n lineSpacing: vertical ? options.spacing : 0,\n orientation: vertical ? \"vertical\" : \"horizontal\",\n reverse: options.rtl,\n alignItems: vertical ? \"start\" : \"center\"\n });\n\n for (let idx = 0; idx < children.length; idx++) {\n let legendItem = children[idx];\n legendItem.reflow(new Box());\n legendItem.renderVisual();\n }\n }\n\n reflow(box) {\n this.visual.rect(box.toRect());\n this.visual.reflow();\n const bbox = this.visual.clippedBBox();\n\n if (bbox) {\n this.box = rectToBox(bbox);\n } else {\n this.box = new Box();\n }\n }\n\n renderVisual() {\n this.addVisual();\n }\n\n createVisual() {}\n}\n\nexport default LegendLayout;","\nimport { ChartElement, BoxElement, Box, TextBox, FloatElement } from '../../core';\nimport LegendLayout from './legend-layout';\nimport LegendItem from './legend-item';\n\nimport { TOP, RIGHT, BOTTOM, LEFT, CENTER, X, Y, BLACK } from '../../common/constants';\nimport { deepExtend, defined, getTemplate, getSpacing, inArray, setDefaultOptions } from '../../common';\n\nconst HORIZONTAL = \"horizontal\";\nconst POINTER = \"pointer\";\nconst CUSTOM = \"custom\";\n\nclass Legend extends ChartElement {\n constructor(options, chartService = {}) {\n super(options);\n\n this.chartService = chartService;\n\n if (!inArray(this.options.position, [ TOP, RIGHT, BOTTOM, LEFT, CUSTOM ])) {\n this.options.position = RIGHT;\n }\n\n this.createContainers();\n\n this.createLegendTitle(options.title);\n\n this.createItems();\n }\n\n createContainers() {\n const options = this.options;\n const { position, align: userAlign } = options;\n let align = position;\n let vAlign = CENTER;\n\n if (position === CUSTOM) {\n align = LEFT;\n } else if (inArray(position, [ TOP, BOTTOM ])) {\n if (userAlign === \"start\") {\n align = LEFT;\n } else if (userAlign === \"end\") {\n align = RIGHT;\n } else {\n align = CENTER;\n }\n vAlign = position;\n } else if (userAlign) {\n if (userAlign === \"start\") {\n vAlign = TOP;\n } else if (userAlign === \"end\") {\n vAlign = BOTTOM;\n }\n }\n\n this.container = new BoxElement({\n margin: options.margin,\n padding: options.padding,\n background: options.background,\n border: options.border,\n vAlign: vAlign,\n align: align,\n zIndex: options.zIndex,\n shrinkToFit: true\n });\n\n if (this.hasTitle()) {\n this.itemsContainer = new BoxElement({\n vAlign: vAlign,\n align: align,\n zIndex: options.zIndex,\n shrinkToFit: true\n });\n } else {\n this.itemsContainer = this.container;\n }\n\n this.append(this.container);\n }\n\n createItems() {\n const chartService = this.getService();\n const options = this.options;\n const vertical = this.isVertical();\n const innerElement = new LegendLayout({\n vertical: vertical,\n spacing: options.spacing,\n rtl: chartService.rtl\n }, chartService);\n let items = options.items;\n\n if (options.reverse) {\n items = items.slice(0).reverse();\n }\n\n const count = items.length;\n\n for (let i = 0; i < count; i++) {\n let item = items[i];\n\n innerElement.append(new LegendItem(deepExtend({}, {\n markers: options.markers,\n labels: options.labels,\n rtl: chartService.rtl\n }, options.item, item)));\n }\n\n innerElement.render();\n this.itemsContainer.append(innerElement);\n }\n\n isVertical() {\n const { orientation, position } = this.options;\n const vertical = (position === CUSTOM && orientation !== HORIZONTAL) ||\n (defined(orientation) ? orientation !== HORIZONTAL : inArray(position, [ LEFT, RIGHT ]));\n\n return vertical;\n }\n\n hasItems() {\n return this.container.children[0].children.length > 0;\n }\n\n reflow(targetBox) {\n const options = this.options;\n const legendBox = targetBox.clone();\n\n if (!this.hasItems()) {\n this.box = legendBox;\n return;\n }\n\n if (options.position === CUSTOM) {\n this.containerCustomReflow(legendBox);\n this.box = legendBox;\n } else {\n this.containerReflow(legendBox);\n }\n\n if (this.hasTitle()) {\n this.title.reflow(new Box(this.container.box.x1, this.title.box.y1, this.container.box.x2, this.title.box.y2));\n }\n }\n\n containerReflow(targetBox) {\n const { options, container } = this;\n const { position, width, height } = options;\n const pos = position === TOP || position === BOTTOM ? X : Y;\n const vertical = this.isVertical();\n const alignTarget = targetBox.clone();\n let containerBox = targetBox.clone();\n\n if (position === LEFT || position === RIGHT) {\n containerBox.y1 = alignTarget.y1 = 0;\n }\n\n if (vertical && height) {\n containerBox.y2 = containerBox.y1 + height;\n containerBox.align(alignTarget, Y, container.options.vAlign);\n } else if (!vertical && width) {\n containerBox.x2 = containerBox.x1 + width;\n containerBox.align(alignTarget, X, container.options.align);\n }\n\n container.reflow(containerBox);\n containerBox = container.box;\n\n const box = containerBox.clone();\n\n if (options.offsetX || options.offsetY) {\n containerBox.translate(options.offsetX, options.offsetY);\n container.reflow(containerBox);\n }\n\n box[pos + 1] = targetBox[pos + 1];\n box[pos + 2] = targetBox[pos + 2];\n\n this.box = box;\n }\n\n containerCustomReflow(targetBox) {\n const { options, container } = this;\n const { offsetX, offsetY, width, height } = options;\n const vertical = this.isVertical();\n let containerBox = targetBox.clone();\n\n if (vertical && height) {\n containerBox.y2 = containerBox.y1 + height;\n } else if (!vertical && width) {\n containerBox.x2 = containerBox.x1 + width;\n }\n container.reflow(containerBox);\n containerBox = container.box;\n\n container.reflow(new Box(\n offsetX, offsetY,\n offsetX + containerBox.width(), offsetY + containerBox.height()\n ));\n }\n\n renderVisual() {\n if (this.hasItems()) {\n super.renderVisual();\n }\n }\n\n createLegendTitle(title) {\n let titleOptions = deepExtend({}, {\n color: BLACK,\n position: TOP,\n align: CENTER\n }, title);\n let text = titleOptions.text;\n\n if (!title || title.visible === false) {\n return;\n }\n\n if (defined(titleOptions) && titleOptions.visible) {\n const labelTemplate = getTemplate(titleOptions);\n if (labelTemplate) {\n text = labelTemplate({ text: text });\n } else if (titleOptions.format) {\n text = this.chartService.format.auto(titleOptions.format, text);\n }\n }\n\n this.title = new TextBox(text, titleOptions);\n\n this.createTitleLayout();\n\n this.appendTitleLayoutContent();\n }\n\n createTitleLayout() {\n this.layout = new FloatElement({\n vertical: true,\n wrap: false\n });\n\n this.container.append(this.layout);\n }\n\n hasTitle() {\n return Boolean(this.options.title && this.options.title.visible !== false);\n }\n\n appendTitleLayoutContent() {\n const options = this.options;\n\n if (options.title.position === BOTTOM) {\n this.layout.append(this.itemsContainer);\n this.layout.append(this.title);\n } else {\n this.layout.append(this.title);\n this.layout.append(this.itemsContainer);\n }\n }\n}\n\nsetDefaultOptions(Legend, {\n position: RIGHT,\n items: [],\n offsetX: 0,\n offsetY: 0,\n margin: getSpacing(5),\n padding: getSpacing(5),\n border: {\n color: BLACK,\n width: 0\n },\n item: {\n cursor: POINTER,\n spacing: 6\n },\n spacing: 6,\n background: \"\",\n zIndex: 1,\n markers: {\n border: {\n width: 0\n },\n width: 15,\n height: 3,\n type: \"rect\",\n align: LEFT,\n vAlign: CENTER\n }\n});\n\nexport default Legend;\n","import CategoricalChart from '../categorical-chart';\nimport LinePoint from './line-point';\nimport LineSegment from './line-segment';\nimport StepLineSegment from './step-line-segment';\nimport SplineSegment from './spline-segment';\nimport LineChartMixin from '../mixins/line-chart-mixin';\nimport ClipAnimationMixin from '../mixins/clip-animation-mixin';\n\nimport { ZERO, SMOOTH, STEP } from '../constants';\n\nimport { deepExtend, defined, isFunction } from '../../common';\n\nclass LineChart extends CategoricalChart {\n render() {\n\n super.render();\n\n this.updateStackRange();\n this.renderSegments();\n }\n\n pointType() {\n return LinePoint;\n }\n\n createPoint(data, fields) {\n const { categoryIx, category, series, seriesIx } = fields;\n const missingValues = this.seriesMissingValues(series);\n let value = data.valueFields.value;\n\n if (!defined(value) || value === null) {\n if (missingValues === ZERO) {\n value = 0;\n } else {\n return null;\n }\n }\n\n let pointOptions = this.pointOptions(series, seriesIx);\n pointOptions = this.evalPointOptions(\n pointOptions, value, category, categoryIx, series, seriesIx\n );\n\n let color = data.fields.color || series.color;\n if (isFunction(series.color)) {\n color = pointOptions.color;\n }\n\n const point = new LinePoint(value, pointOptions);\n point.color = color;\n\n this.append(point);\n\n return point;\n }\n\n plotRange(point) {\n let plotValue = this.plotValue(point);\n\n if (this.options.isStacked) {\n const categoryIx = point.categoryIx;\n const categoryPoints = this.categoryPoints[categoryIx];\n\n for (let i = 0; i < categoryPoints.length; i++) {\n const other = categoryPoints[i];\n\n if (point === other) {\n break;\n }\n\n plotValue += this.plotValue(other);\n\n if (this.options.isStacked100) {\n plotValue = Math.min(plotValue, 1);\n }\n }\n\n }\n\n return [ plotValue, plotValue ];\n }\n\n createSegment(linePoints, currentSeries, seriesIx) {\n const style = currentSeries.style;\n let pointType;\n\n if (style === STEP) {\n pointType = StepLineSegment;\n } else if (style === SMOOTH) {\n pointType = SplineSegment;\n } else {\n pointType = LineSegment;\n }\n\n return new pointType(linePoints, currentSeries, seriesIx);\n }\n\n animationPoints() {\n const points = this.points;\n const result = [];\n for (let idx = 0; idx < points.length; idx++) {\n result.push((points[idx] || {}).marker);\n }\n return result.concat(this._segments);\n }\n\n supportsPointInactiveOpacity() {\n return false;\n }\n}\n\ndeepExtend(LineChart.prototype, LineChartMixin, ClipAnimationMixin);\n\nexport default LineChart;\n","import { geometry as geom, Color } from '@progress/kendo-drawing';\n\nimport { ChartElement, TextBox, ShapeElement, Box, Point } from '../../core';\n\nimport PointEventsMixin from '../mixins/point-events-mixin';\nimport NoteMixin from '../mixins/note-mixin';\nimport { LINE_MARKER_SIZE, FADEIN, INITIAL_ANIMATION_DURATION, BORDER_BRIGHTNESS, TOOLTIP_OFFSET, ABOVE, BELOW } from '../constants';\n\nimport { WHITE, CIRCLE, CENTER, TOP, BOTTOM, LEFT, HIGHLIGHT_ZINDEX } from '../../common/constants';\nimport { deepExtend, defined, getTemplate, valueOrDefault, getSpacing } from '../../common';\n\nclass LinePoint extends ChartElement {\n constructor(value, options) {\n super();\n\n this.value = value;\n this.options = options;\n this.aboveAxis = valueOrDefault(this.options.aboveAxis, true);\n this.tooltipTracking = true;\n }\n\n render() {\n const { markers, labels } = this.options;\n\n if (this._rendered) {\n return;\n }\n\n this._rendered = true;\n\n if (markers.visible && markers.size) {\n this.marker = this.createMarker();\n this.append(this.marker);\n }\n\n if (labels.visible) {\n const labelTemplate = getTemplate(labels);\n const pointData = this.pointData();\n let labelText = this.value;\n if (labelTemplate) {\n labelText = labelTemplate(pointData);\n } else if (labels.format) {\n labelText = this.formatValue(labels.format);\n }\n this.label = new TextBox(labelText,\n deepExtend({\n align: CENTER,\n vAlign: CENTER,\n margin: {\n left: 5,\n right: 5\n },\n zIndex: valueOrDefault(labels.zIndex, this.series.zIndex)\n }, labels),\n pointData\n );\n this.append(this.label);\n }\n\n this.createNote();\n\n if (this.errorBar) {\n this.append(this.errorBar);\n }\n }\n\n markerBorder() {\n const options = this.options.markers;\n const background = options.background;\n const border = deepExtend({ color: this.color }, options.border);\n\n if (!defined(border.color)) {\n border.color = new Color(background).brightness(BORDER_BRIGHTNESS).toHex();\n }\n\n return border;\n }\n\n createVisual() {}\n\n createMarker() {\n const options = this.options.markers;\n const marker = new ShapeElement({\n type: options.type,\n width: options.size,\n height: options.size,\n rotation: options.rotation,\n background: options.background,\n border: this.markerBorder(),\n opacity: this.series.opacity || options.opacity,\n zIndex: valueOrDefault(options.zIndex, this.series.zIndex),\n animation: options.animation,\n visual: options.visual\n }, {\n dataItem: this.dataItem,\n value: this.value,\n series: this.series,\n category: this.category\n });\n\n return marker;\n }\n\n markerBox() {\n if (!this.marker) {\n this.marker = this.createMarker();\n this.marker.reflow(this._childBox);\n }\n\n return this.marker.box;\n }\n\n reflow(targetBox) {\n const { options, aboveAxis } = this;\n const vertical = options.vertical;\n\n this.render();\n\n this.box = targetBox;\n const childBox = targetBox.clone();\n\n if (vertical) {\n if (aboveAxis) {\n childBox.y1 -= childBox.height();\n } else {\n childBox.y2 += childBox.height();\n }\n } else {\n if (aboveAxis) {\n childBox.x1 += childBox.width();\n } else {\n childBox.x2 -= childBox.width();\n }\n }\n\n this._childBox = childBox;\n if (this.marker) {\n this.marker.reflow(childBox);\n }\n\n this.reflowLabel(childBox);\n\n if (this.errorBars) {\n for (let i = 0; i < this.errorBars.length; i++) {\n this.errorBars[i].reflow(childBox);\n }\n }\n\n if (this.note) {\n let noteTargetBox = this.markerBox();\n\n if (!(options.markers.visible && options.markers.size)) {\n const center = noteTargetBox.center();\n noteTargetBox = new Box(center.x, center.y, center.x, center.y);\n }\n\n this.note.reflow(noteTargetBox);\n }\n }\n\n reflowLabel(box) {\n const { options, label } = this;\n let anchor = options.labels.position;\n\n if (label) {\n anchor = anchor === ABOVE ? TOP : anchor;\n anchor = anchor === BELOW ? BOTTOM : anchor;\n\n label.reflow(box);\n label.box.alignTo(this.markerBox(), anchor);\n label.reflow(label.box);\n }\n }\n\n createHighlight() {\n const markers = this.options.highlight.markers;\n const defaultColor = this.markerBorder().color;\n const options = this.options.markers;\n const size = options.size + (options.border.width || 0) + (markers.border.width || 0);\n\n const shadow = new ShapeElement({\n type: options.type,\n width: size,\n height: size,\n rotation: options.rotation,\n background: markers.color || defaultColor,\n border: {\n color: markers.border.color,\n width: markers.border.width,\n opacity: valueOrDefault(markers.border.opacity, 1)\n },\n opacity: valueOrDefault(markers.opacity, 1)\n });\n shadow.reflow(this._childBox);\n\n return shadow.getElement();\n }\n\n highlightVisual() {\n return (this.marker || {}).visual;\n }\n\n highlightVisualArgs() {\n const marker = this.marker;\n let visual, rect;\n\n if (marker) {\n rect = marker.paddingBox.toRect();\n visual = marker.visual;\n } else {\n const size = this.options.markers.size;\n const halfSize = size / 2;\n const center = this.box.center();\n rect = new geom.Rect([ center.x - halfSize, center.y - halfSize ], [ size, size ]);\n }\n\n return {\n options: this.options,\n rect: rect,\n visual: visual\n };\n }\n\n tooltipAnchor() {\n const markerBox = this.markerBox();\n const clipBox = this.owner.pane.clipBox();\n const showTooltip = !clipBox || clipBox.overlaps(markerBox);\n\n if (showTooltip) {\n const x = markerBox.x2 + TOOLTIP_OFFSET;\n const horizontalAlign = LEFT;\n let y, verticalAlign;\n\n if (this.aboveAxis) {\n y = markerBox.y1;\n verticalAlign = BOTTOM;\n } else {\n y = markerBox.y2;\n verticalAlign = TOP;\n }\n\n return {\n point: new Point(x, y),\n align: {\n horizontal: horizontalAlign,\n vertical: verticalAlign\n }\n };\n }\n }\n\n formatValue(format) {\n return this.owner.formatPointValue(this, format);\n }\n\n overlapsBox(box) {\n const markerBox = this.markerBox();\n return markerBox.overlaps(box);\n }\n\n unclipElements() {\n if (this.label) {\n this.label.options.noclip = true;\n }\n\n if (this.note) {\n this.note.options.noclip = true;\n }\n }\n\n pointData() {\n return {\n dataItem: this.dataItem,\n category: this.category,\n value: this.value,\n percentage: this.percentage,\n stackValue: this.stackValue,\n series: this.series\n };\n }\n}\n\nLinePoint.prototype.defaults = {\n vertical: true,\n markers: {\n visible: true,\n background: WHITE,\n size: LINE_MARKER_SIZE,\n type: CIRCLE,\n border: {\n width: 2\n },\n opacity: 1\n },\n labels: {\n visible: false,\n position: ABOVE,\n margin: getSpacing(3),\n padding: getSpacing(4),\n animation: {\n type: FADEIN,\n delay: INITIAL_ANIMATION_DURATION\n }\n },\n notes: {\n label: {}\n },\n highlight: {\n markers: {\n border: {\n color: \"#fff\",\n width: 2\n }\n },\n zIndex: HIGHLIGHT_ZINDEX\n },\n errorBars: {\n line: {\n width: 1\n }\n }\n};\n\ndeepExtend(LinePoint.prototype, PointEventsMixin);\ndeepExtend(LinePoint.prototype, NoteMixin);\n\nexport default LinePoint;\n","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport { ChartElement } from '../../core';\n\nimport { defined, isFunction, setDefaultOptions } from '../../common';\n\nclass LineSegment extends ChartElement {\n constructor(linePoints, series, seriesIx) {\n super();\n\n this.linePoints = linePoints;\n this.series = series;\n this.seriesIx = seriesIx;\n }\n\n points() {\n return this.toGeometryPoints(this.linePoints);\n }\n\n toGeometryPoints(points) {\n const result = [];\n for (let i = 0, length = points.length; i < length; i++) {\n if (points[i] && points[i].visible !== false) {\n result.push(points[i]._childBox.toRect().center());\n }\n }\n\n return result;\n }\n\n createVisual() {\n const customVisual = this.series.visual;\n if (customVisual) {\n this.visual = customVisual({\n points: this.toGeometryPoints(this.linePoints),\n series: this.series,\n sender: this.getSender(),\n createVisual: () => {\n this.segmentVisual();\n\n return this.visual;\n }\n });\n if (this.visual && !defined(this.visual.options.zIndex)) {\n this.visual.options.zIndex = this.series.zIndex;\n }\n } else {\n this.segmentVisual();\n }\n }\n\n segmentVisual() {\n const { options, series } = this;\n let { color, _defaults: defaults } = series;\n\n if (isFunction(color) && defaults) {\n color = defaults.color;\n }\n\n const line = draw.Path.fromPoints(this.points(), {\n stroke: {\n color: color,\n width: series.width,\n opacity: series.opacity,\n dashType: series.dashType\n },\n zIndex: series.zIndex\n });\n\n if (options.closed) {\n line.close();\n }\n\n this.visual = line;\n }\n\n aliasFor(e, coords) {\n return this.parent.getNearestPoint(coords.x, coords.y, this.seriesIx);\n }\n}\n\nsetDefaultOptions(LineSegment, {\n closed: false\n});\n\nexport default LineSegment;","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport LineSegment from './line-segment';\n\nimport { CurveProcessor } from '../../core';\n\nimport { isFunction } from '../../common';\n\nclass SplineSegment extends LineSegment {\n segmentVisual() {\n const series = this.series;\n const defaults = series._defaults;\n let color = series.color;\n\n if (isFunction(color) && defaults) {\n color = defaults.color;\n }\n\n const curveProcessor = new CurveProcessor(this.options.closed);\n const segments = curveProcessor.process(this.points());\n const curve = new draw.Path({\n stroke: {\n color: color,\n width: series.width,\n opacity: series.opacity,\n dashType: series.dashType\n },\n zIndex: series.zIndex\n });\n\n curve.segments.push.apply(curve.segments, segments);\n\n this.visual = curve;\n }\n}\n\nexport default SplineSegment;","import { geometry as geom } from '@progress/kendo-drawing';\n\nimport { last } from '../../common';\nimport { X, Y } from '../../common/constants';\n\nconst StepLineMixin = {\n calculateStepPoints: function(points) {\n const categoryAxis = this.parent.plotArea.seriesCategoryAxis(this.series);\n const { justified, vertical, reverse } = categoryAxis.options;\n\n const stepAxis = vertical ? X : Y;\n const axis = vertical ? Y : X;\n const stepDir = reverse ? 2 : 1;\n const dir = stepDir;\n\n let previousPoint = toGeometryPoint(points[0], stepAxis, stepDir, axis, dir);\n const result = [ previousPoint ];\n\n for (let idx = 1; idx < points.length; idx++) {\n const point = toGeometryPoint(points[idx], stepAxis, stepDir, axis, dir);\n\n if (previousPoint[stepAxis] !== point[stepAxis]) {\n const stepPoint = new geom.Point();\n stepPoint[stepAxis] = previousPoint[stepAxis];\n stepPoint[axis] = point[axis];\n\n result.push(stepPoint, point);\n }\n\n previousPoint = point;\n }\n\n if (!justified) {\n result.push(toGeometryPoint(last(points), stepAxis, stepDir, axis, reverse ? 1 : 2));\n } else if (previousPoint !== last(result)) {\n result.push(previousPoint);\n }\n\n return result;\n\n }\n};\n\nfunction toGeometryPoint(lintPoint, stepAxis, stepDir, axis, dir) {\n const box = lintPoint.box;\n const result = new geom.Point();\n\n result[stepAxis] = box[stepAxis + stepDir];\n result[axis] = box[axis + dir];\n\n return result;\n}\n\nexport default StepLineMixin;","import LineSegment from './line-segment';\nimport StepLineMixin from './step-line-mixin';\nimport { deepExtend } from '../../common';\n\nclass StepLineSegment extends LineSegment {\n points() {\n return this.calculateStepPoints(this.linePoints);\n }\n}\n\ndeepExtend(StepLineSegment.prototype, StepLineMixin);\n\nexport default StepLineSegment;","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport ClipAnimation from '../animations/clip-animation';\nimport anyHasZIndex from '../utils/any-has-z-index';\nimport { defined } from '../../common';\n\nconst ClipAnimationMixin = {\n createAnimation: function() {\n const root = this.getRoot();\n if (root && (root.options || {}).transitions !== false) {\n const box = root.size();\n const clipPath = draw.Path.fromRect(box.toRect());\n this.visual.clip(clipPath);\n this.animation = new ClipAnimation(clipPath, {\n box: box\n });\n if (anyHasZIndex(this.options.series)) {\n this._setChildrenAnimation(clipPath);\n }\n }\n },\n\n _setChildrenAnimation: function(clipPath) {\n const points = this.animationPoints();\n\n for (let idx = 0; idx < points.length; idx++) {\n const point = points[idx];\n if (point && point.visual && defined(point.visual.options.zIndex)) {\n point.visual.clip(clipPath);\n }\n }\n }\n};\n\nexport default ClipAnimationMixin;","import { ZERO, INTERPOLATE } from '../constants';\n\nimport { Point } from '../../core';\nimport { MAX_VALUE } from '../../common/constants';\nimport { defined } from '../../common';\n\nconst LineChartMixin = {\n renderSegments: function() {\n const { options, seriesPoints } = this;\n const series = options.series;\n const seriesCount = seriesPoints.length;\n let lastSegment;\n\n this._segments = [];\n\n for (let seriesIx = 0; seriesIx < seriesCount; seriesIx++) {\n const currentSeries = series[seriesIx];\n const sortedPoints = this.sortPoints(seriesPoints[seriesIx]);\n const pointCount = sortedPoints.length;\n let linePoints = [];\n\n for (let pointIx = 0; pointIx < pointCount; pointIx++) {\n const point = sortedPoints[pointIx];\n if (point) {\n linePoints.push(point);\n } else if (this.seriesMissingValues(currentSeries) !== INTERPOLATE) {\n if (linePoints.length > 1) {\n lastSegment = this.createSegment(\n linePoints, currentSeries, seriesIx, lastSegment\n );\n this._addSegment(lastSegment);\n }\n linePoints = [];\n }\n }\n\n if (linePoints.length > 1) {\n lastSegment = this.createSegment(\n linePoints, currentSeries, seriesIx, lastSegment\n );\n this._addSegment(lastSegment);\n }\n }\n\n this.children.unshift.apply(this.children, this._segments);\n },\n\n _addSegment: function(segment) {\n this._segments.push(segment);\n segment.parent = this;\n },\n\n sortPoints: function(points) {\n return points;\n },\n\n seriesMissingValues: function(series) {\n const missingValues = series.missingValues;\n const assumeZero = !missingValues && this.options.isStacked;\n\n return assumeZero ? ZERO : missingValues || INTERPOLATE;\n },\n\n getNearestPoint: function(x, y, seriesIx) {\n const target = new Point(x, y);\n const allPoints = this.seriesPoints[seriesIx];\n let nearestPointDistance = MAX_VALUE;\n let nearestPoint;\n\n for (let i = 0; i < allPoints.length; i++) {\n const point = allPoints[i];\n\n if (point && defined(point.value) && point.value !== null && point.visible !== false) {\n const pointBox = point.box;\n const pointDistance = pointBox.center().distanceTo(target);\n\n if (pointDistance < nearestPointDistance) {\n nearestPoint = point;\n nearestPointDistance = pointDistance;\n }\n }\n }\n\n return nearestPoint;\n }\n};\n\nexport default LineChartMixin;","import { Note } from '../../core';\nimport { defined } from '../../common';\n\nconst NoteMixin = {\n createNote: function() {\n const options = this.options.notes;\n const text = this.noteText || options.label.text;\n\n if (options.visible !== false && defined(text) && text !== null) {\n this.note = new Note({\n value: this.value,\n text: text,\n dataItem: this.dataItem,\n category: this.category,\n series: this.series\n }, this.options.notes, this.owner.chartService);\n\n this.append(this.note);\n }\n }\n};\n\nexport default NoteMixin;","import { getTemplate } from '../../common';\nimport { hasValue } from '../utils';\n\nconst PieChartMixin = {\n createLegendItem: function(value, point, options) {\n const legendOptions = this.options.legend || {};\n const labelsOptions = legendOptions.labels || {};\n const inactiveItems = legendOptions.inactiveItems || {};\n const inactiveItemsLabels = inactiveItems.labels || {};\n\n if (options && options.visibleInLegend !== false) {\n const pointVisible = options.visible !== false;\n const labelTemplate = pointVisible ? getTemplate(labelsOptions) :\n getTemplate(inactiveItemsLabels) || getTemplate(labelsOptions);\n let text = options.category;\n\n if (labelTemplate) {\n text = labelTemplate({\n text: text,\n series: options.series,\n dataItem: options.dataItem,\n percentage: options.percentage,\n value: value\n });\n }\n\n let itemLabelOptions, markerColor;\n if (pointVisible) {\n itemLabelOptions = {};\n markerColor = point.color;\n } else {\n itemLabelOptions = {\n color: inactiveItemsLabels.color,\n font: inactiveItemsLabels.font\n };\n markerColor = (inactiveItems.markers || {}).color;\n }\n\n if (hasValue(text) && text !== \"\") {\n this.legendItems.push({\n active: pointVisible,\n pointIndex: options.index,\n text: text,\n series: options.series,\n markerColor: markerColor,\n labels: itemLabelOptions\n });\n }\n }\n }\n};\n\nexport default PieChartMixin;","import { PLOT_AREA_HOVER, PLOT_AREA_CLICK } from '../constants';\n\nconst PlotAreaEventsMixin = {\n hover: function(chart, e) {\n this._dispatchEvent(chart, e, PLOT_AREA_HOVER);\n },\n\n click: function(chart, e) {\n this._dispatchEvent(chart, e, PLOT_AREA_CLICK);\n }\n};\n\nexport default PlotAreaEventsMixin;","import { SERIES_CLICK, SERIES_HOVER, SERIES_LEAVE, SERIES_OVER } from '../constants';\nimport { eventElement } from '../../common';\n\nconst PointEventsMixin = {\n click: function(chart, e) {\n return chart.trigger(\n SERIES_CLICK,\n this.eventArgs(e)\n );\n },\n\n hover: function(chart, e) {\n return chart.trigger(\n SERIES_HOVER,\n this.eventArgs(e)\n );\n },\n\n over: function(chart, e) {\n return chart.trigger(\n SERIES_OVER,\n this.eventArgs(e)\n );\n },\n\n out: function(chart, e) {\n return chart.trigger(\n SERIES_LEAVE,\n this.eventArgs(e)\n );\n },\n\n eventArgs: function(e) {\n return {\n value: this.value,\n percentage: this.percentage,\n stackValue: this.stackValue,\n category: this.category,\n series: this.series,\n dataItem: this.dataItem,\n runningTotal: this.runningTotal,\n total: this.total,\n element: eventElement(e),\n originalEvent: e,\n point: this\n };\n }\n};\n\nexport default PointEventsMixin;","import CandlestickChart from '../candlestick-chart/candlestick-chart';\nimport OHLCPoint from './ohlc-point';\n\nclass OHLCChart extends CandlestickChart {\n pointType() {\n return OHLCPoint;\n }\n}\n\nexport default OHLCChart;","import Candlestick from '../candlestick-chart/candlestick';\n\nclass OHLCPoint extends Candlestick {\n reflow(box) {\n const { options, value, owner: chart } = this;\n const valueAxis = chart.seriesValueAxis(options);\n const oPoints = [];\n const cPoints = [];\n const lhPoints = [];\n\n const lhSlot = valueAxis.getSlot(value.low, value.high);\n const oSlot = valueAxis.getSlot(value.open, value.open);\n const cSlot = valueAxis.getSlot(value.close, value.close);\n\n oSlot.x1 = cSlot.x1 = lhSlot.x1 = box.x1;\n oSlot.x2 = cSlot.x2 = lhSlot.x2 = box.x2;\n\n const mid = lhSlot.center().x;\n\n oPoints.push([ oSlot.x1, oSlot.y1 ]);\n oPoints.push([ mid, oSlot.y1 ]);\n cPoints.push([ mid, cSlot.y1 ]);\n cPoints.push([ cSlot.x2, cSlot.y1 ]);\n lhPoints.push([ mid, lhSlot.y1 ]);\n lhPoints.push([ mid, lhSlot.y2 ]);\n\n this.lines = [\n oPoints, cPoints, lhPoints\n ];\n\n this.box = lhSlot.clone().wrap(oSlot.clone().wrap(cSlot));\n\n this.reflowNote();\n }\n\n createBody() {}\n}\n\nexport default OHLCPoint;","export default function acceptKey(e, mouseKey) {\n const key = (mouseKey || \"\").toLowerCase();\n const event = e.event;\n const accept = (key === \"none\" && !(event.ctrlKey || event.shiftKey || event.altKey)) || event[key + \"Key\"];\n\n return accept;\n}","\nimport toChartAxisRanges from './to-chart-axis-ranges';\n\nimport { X, Y } from '../../common/constants';\nimport { Class, deepExtend } from '../../common';\nimport { limitValue } from '../../drawing-utils';\n\n// Limit the zoom rate between 1% and 90% per mousewheel event.\n// At zoom rates close to 100% the axis range quickly becomes 0.\nconst MIN_RATE = 0.01;\nconst MAX_RATE = 0.9;\nconst DEFAULT_RATE = 0.3;\n\nclass MousewheelZoom extends Class {\n constructor(chart, options) {\n super();\n\n this.chart = chart;\n this.options = deepExtend({\n rate: DEFAULT_RATE\n }, this.options, options);\n }\n\n updateRanges(delta, coords) {\n const lock = (this.options.lock || \"\").toLowerCase();\n const axisRanges = [];\n const axes = this.chart._plotArea.axes;\n\n for (let idx = 0; idx < axes.length; idx++) {\n const axis = axes[idx];\n const vertical = axis.options.vertical;\n\n if (!(lock === X && !vertical) && !(lock === Y && vertical) && axis.zoomRange) {\n const rate = limitValue(this.options.rate, MIN_RATE, MAX_RATE);\n const range = axis.zoomRange(-delta * rate, coords);\n\n if (range) {\n axisRanges.push({\n axis: axis,\n range: range\n });\n }\n }\n }\n\n this.axisRanges = axisRanges;\n return toChartAxisRanges(axisRanges);\n }\n\n zoom() {\n const axisRanges = this.axisRanges;\n const plotArea = this.chart._plotArea;\n\n if (axisRanges && axisRanges.length && plotArea.updateAxisOptions) {\n for (let idx = 0; idx < axisRanges.length; idx++) {\n const axisRange = axisRanges[idx];\n plotArea.updateAxisOptions(axisRange.axis, axisRange.range);\n }\n plotArea.redraw(plotArea.panes);\n }\n }\n\n destroy() {\n delete this.chart;\n }\n}\n\nexport default MousewheelZoom;\n","import acceptKey from './accept-key';\nimport toChartAxisRanges from './to-chart-axis-ranges';\n\nimport { X, Y } from '../../common/constants';\nimport { Class, deepExtend } from '../../common';\n\nclass Pannable extends Class {\n constructor(plotArea, options) {\n super();\n\n this.plotArea = plotArea;\n this.options = deepExtend({}, this.options, options);\n }\n\n start(e) {\n this._active = acceptKey(e, this.options.key);\n return this._active;\n }\n\n move(e) {\n if (this._active) {\n const axisRanges = this.axisRanges = this._panAxes(e, X).concat(this._panAxes(e, Y));\n if (axisRanges.length) {\n this.axisRanges = axisRanges;\n return toChartAxisRanges(axisRanges);\n }\n }\n }\n\n end() {\n const active = this._active;\n this._active = false;\n\n return active;\n }\n\n pan() {\n const { plotArea, axisRanges } = this;\n if (axisRanges.length) {\n for (let idx = 0; idx < axisRanges.length; idx++) {\n const range = axisRanges[idx];\n plotArea.updateAxisOptions(range.axis, range.range);\n }\n plotArea.redraw(plotArea.panes);\n }\n }\n\n destroy() {\n delete this.plotArea;\n }\n\n _panAxes(e, position) {\n const plotArea = this.plotArea;\n const delta = -e[position].delta;\n const lock = (this.options.lock || \"\").toLowerCase();\n const updatedAxes = [];\n\n if (delta !== 0 && (lock || \"\").toLowerCase() !== position) {\n const axes = plotArea.axes;\n for (let idx = 0; idx < axes.length; idx++) {\n const axis = axes[idx];\n\n if (position === X && !axis.options.vertical || position === Y && axis.options.vertical) {\n const range = axis.pan(delta);\n\n if (range) {\n range.limitRange = true;\n updatedAxes.push({\n axis: axis,\n range: range\n });\n }\n }\n }\n }\n\n return updatedAxes;\n }\n}\n\nPannable.prototype.options = {\n key: \"none\",\n lock: \"none\"\n};\n\nexport default Pannable;","export default function toChartAxisRanges(axisRanges) {\n const ranges = {};\n for (let idx = 0; idx < axisRanges.length; idx++) {\n const axisRange = axisRanges[idx];\n if (axisRange.axis.options.name) {\n ranges[axisRange.axis.options.name] = {\n min: axisRange.range.min,\n max: axisRange.range.max\n };\n }\n }\n return ranges;\n}","import acceptKey from './accept-key';\nimport toChartAxisRanges from './to-chart-axis-ranges';\n\nimport { X, Y } from '../../common/constants';\nimport { Class, deepExtend, elementStyles, elementOffset, defined } from '../../common';\n\nclass ZoomSelection extends Class {\n constructor(chart, options) {\n super();\n\n this.chart = chart;\n this.options = deepExtend({}, this.options, options);\n this.createElement();\n }\n\n createElement() {\n const marquee = this._marquee = document.createElement(\"div\");\n marquee.className = \"k-marquee\";\n const marqueeColor = document.createElement(\"div\");\n marqueeColor.className = \"k-marquee-color\";\n marquee.appendChild(marqueeColor);\n }\n\n removeElement() {\n if (this._marquee.parentNode) {\n this._marquee.parentNode.removeChild(this._marquee);\n }\n }\n\n setStyles(styles) {\n elementStyles(this._marquee, styles);\n }\n\n start(e) {\n if (acceptKey(e, this.options.key)) {\n const chart = this.chart;\n const point = chart._eventCoordinates(e);\n const zoomPane = this._zoomPane = chart._plotArea.paneByPoint(point);\n const clipBox = zoomPane ? zoomPane.chartsBox().clone() : null;\n\n if (zoomPane && clipBox) {\n const offset = this._elementOffset();\n\n clipBox.translate(offset.left, offset.top);\n this._zoomPaneClipBox = clipBox;\n\n document.body.appendChild(this._marquee);\n this.setStyles({\n left: e.pageX + 1,\n top: e.pageY + 1,\n width: 0,\n height: 0\n });\n\n return true;\n }\n }\n return false;\n }\n\n _elementOffset() {\n const chartElement = this.chart.element;\n const { paddingLeft, paddingTop } = elementStyles(chartElement, [ \"paddingLeft\", \"paddingTop\" ]);\n const offset = elementOffset(chartElement);\n\n return {\n left: paddingLeft + offset.left,\n top: paddingTop + offset.top\n };\n }\n\n move(e) {\n const zoomPane = this._zoomPane;\n if (zoomPane) {\n this.setStyles(this._selectionPosition(e));\n }\n }\n\n end(e) {\n const zoomPane = this._zoomPane;\n if (zoomPane) {\n const elementOffset = this._elementOffset();\n const selectionPosition = this._selectionPosition(e);\n selectionPosition.left -= elementOffset.left;\n selectionPosition.top -= elementOffset.top;\n\n const start = { x: selectionPosition.left, y: selectionPosition.top };\n const end = { x: selectionPosition.left + selectionPosition.width, y: selectionPosition.top + selectionPosition.height };\n this._updateAxisRanges(start, end);\n\n this.removeElement();\n delete this._zoomPane;\n\n return toChartAxisRanges(this.axisRanges);\n }\n }\n\n zoom() {\n const axisRanges = this.axisRanges;\n if (axisRanges && axisRanges.length) {\n const plotArea = this.chart._plotArea;\n for (let idx = 0; idx < axisRanges.length; idx++) {\n const axisRange = axisRanges[idx];\n plotArea.updateAxisOptions(axisRange.axis, axisRange.range);\n }\n plotArea.redraw(plotArea.panes);\n }\n }\n\n destroy() {\n this.removeElement();\n delete this._marquee;\n delete this.chart;\n }\n\n _updateAxisRanges(start, end) {\n const lock = (this.options.lock || \"\").toLowerCase();\n const axisRanges = [];\n\n const axes = this._zoomPane.axes;\n for (let idx = 0; idx < axes.length; idx++) {\n const axis = axes[idx];\n const vertical = axis.options.vertical;\n if (!(lock === X && !vertical) && !(lock === Y && vertical) && defined(axis.axisIndex)) {\n const range = axis.pointsRange(start, end);\n if (range) {\n axisRanges.push({\n axis: axis,\n range: range\n });\n }\n }\n }\n\n this.axisRanges = axisRanges;\n }\n\n _selectionPosition(e) {\n const clipBox = this._zoomPaneClipBox;\n const startLocation = {\n x: e.x.startLocation,\n y: e.y.startLocation\n };\n const { x: { location: pageX }, y: { location: pageY } } = e;\n const lock = (this.options.lock || \"\").toLowerCase();\n let left = Math.min(startLocation.x, pageX);\n let top = Math.min(startLocation.y, pageY);\n let width = Math.abs(startLocation.x - pageX);\n let height = Math.abs(startLocation.y - pageY);\n\n if (lock === X) {\n left = clipBox.x1;\n width = clipBox.width();\n }\n if (lock === Y) {\n top = clipBox.y1;\n height = clipBox.height();\n }\n\n if (pageX > clipBox.x2) {\n width = clipBox.x2 - startLocation.x;\n }\n\n if (pageX < clipBox.x1) {\n width = startLocation.x - clipBox.x1;\n }\n\n if (pageY > clipBox.y2) {\n height = clipBox.y2 - startLocation.y;\n }\n\n if (pageY < clipBox.y1) {\n height = startLocation.y - clipBox.y1;\n }\n\n return {\n left: Math.max(left, clipBox.x1),\n top: Math.max(top, clipBox.y1),\n width: width,\n height: height\n };\n }\n}\n\nZoomSelection.prototype.options = {\n key: \"shift\",\n lock: \"none\"\n};\n\nexport default ZoomSelection;","import { ChartElement, BoxElement, Title, Box } from '../core';\nimport { ChartPane } from './api-elements';\nimport ChartContainer from './chart-container';\n\nimport { PANE_RENDER } from './constants';\nimport { TOP, LEFT, X, Y } from '../common/constants';\nimport { append, deepExtend, isObject, last, setDefaultOptions } from '../common';\n\nclass Pane extends BoxElement {\n constructor(options) {\n super(options);\n\n this.id = paneID();\n\n this.createTitle();\n\n this.content = new ChartElement();\n\n this.chartContainer = new ChartContainer({}, this);\n this.append(this.content);\n\n this.axes = [];\n this.charts = [];\n }\n\n createTitle() {\n let titleOptions = this.options.title;\n if (isObject(titleOptions)) {\n titleOptions = deepExtend({}, titleOptions, {\n align: titleOptions.position,\n position: TOP\n });\n }\n\n this.title = Title.buildTitle(titleOptions, this, Pane.prototype.options.title);\n }\n\n appendAxis(axis) {\n this.content.append(axis);\n this.axes.push(axis);\n axis.pane = this;\n }\n\n appendAxisAt(axis, pos) {\n this.content.append(axis);\n this.axes.splice(pos, 0, axis);\n axis.pane = this;\n }\n\n appendChart(chart) {\n if (this.chartContainer.parent !== this.content) {\n this.content.append(this.chartContainer);\n }\n\n this.charts.push(chart);\n this.chartContainer.append(chart);\n chart.pane = this;\n }\n\n empty() {\n const plotArea = this.parent;\n\n if (plotArea) {\n for (let i = 0; i < this.axes.length; i++) {\n plotArea.removeAxis(this.axes[i]);\n }\n\n for (let i = 0; i < this.charts.length; i++) {\n plotArea.removeChart(this.charts[i]);\n }\n }\n\n this.axes = [];\n this.charts = [];\n\n this.content.destroy();\n this.content.children = [];\n this.chartContainer.children = [];\n }\n\n reflow(targetBox) {\n // Content (such as charts) is rendered, but excluded from reflows\n let content;\n if (last(this.children) === this.content) {\n content = this.children.pop();\n }\n\n super.reflow(targetBox);\n\n if (content) {\n this.children.push(content);\n }\n\n if (this.title) {\n this.contentBox.y1 += this.title.box.height();\n }\n }\n\n visualStyle() {\n const style = super.visualStyle();\n style.zIndex = -10;\n\n return style;\n }\n\n renderComplete() {\n if (this.options.visible) {\n this.createGridLines();\n }\n }\n\n stackRoot() {\n return this;\n }\n\n clipRoot() {\n return this;\n }\n\n createGridLines() {\n const axes = this.axes;\n const allAxes = axes.concat(this.parent.axes);\n const vGridLines = [];\n const hGridLines = [];\n\n // TODO\n // Is full combination really necessary?\n for (let i = 0; i < axes.length; i++) {\n const axis = axes[i];\n const vertical = axis.options.vertical;\n const gridLines = vertical ? vGridLines : hGridLines;\n for (let j = 0; j < allAxes.length; j++) {\n if (gridLines.length === 0) {\n const altAxis = allAxes[j];\n if (vertical !== altAxis.options.vertical) {\n append(gridLines, axis.createGridLines(altAxis));\n }\n }\n }\n }\n }\n\n refresh() {\n this.visual.clear();\n\n this.content.parent = null;\n this.content.createGradient = this.createGradient.bind(this);\n this.content.renderVisual();\n this.content.parent = this;\n\n if (this.title) {\n this.visual.append(this.title.visual);\n }\n\n this.visual.append(this.content.visual);\n\n this.renderComplete();\n this.notifyRender();\n }\n\n chartsBox() {\n const axes = this.axes;\n const length = axes.length;\n const chartsBox = new Box();\n\n for (let idx = 0; idx < length; idx++) {\n const axis = axes[idx];\n const axisValueField = axis.options.vertical ? Y : X;\n const lineBox = axis.lineBox();\n chartsBox[axisValueField + 1] = lineBox[axisValueField + 1];\n chartsBox[axisValueField + 2] = lineBox[axisValueField + 2];\n }\n\n if (chartsBox.x2 === 0) {\n const allAxes = this.parent.axes;\n const length = allAxes.length;\n\n for (let idx = 0; idx < length; idx++) {\n const axis = allAxes[idx];\n if (!axis.options.vertical) {\n const lineBox = axis.lineBox();\n chartsBox.x1 = lineBox.x1;\n chartsBox.x2 = lineBox.x2;\n }\n }\n }\n return chartsBox;\n }\n\n clipBox() {\n return this.chartContainer.clipBox;\n }\n\n notifyRender() {\n const service = this.getService();\n if (service) {\n service.notify(PANE_RENDER, {\n pane: new ChartPane(this),\n index: this.paneIndex,\n name: this.options.name\n });\n }\n }\n}\n\nlet ID = 1;\n\nfunction paneID() {\n return \"pane\" + ID++;\n}\n\nPane.prototype.isStackRoot = true;\n\nsetDefaultOptions(Pane, {\n zIndex: -1,\n shrinkToFit: true,\n title: {\n align: LEFT\n },\n visible: true\n});\n\nexport default Pane;\n","import { drawing as draw, geometry } from '@progress/kendo-drawing';\n\nimport PieSegment from './pie-segment';\nimport PieChartMixin from '../mixins/pie-chart-mixin';\nimport { ChartElement, Ring, Box, Point } from '../../core';\n\nimport { OUTSIDE_END, FADEIN, COLUMN } from '../constants';\nimport { bindSegments, evalOptions } from '../utils';\n\nimport { CIRCLE, RIGHT, CENTER } from '../../common/constants';\nimport { deepExtend, defined, find, isFunction, last, round, setDefaultOptions, valueOrDefault } from '../../common';\n\nconst PIE_SECTOR_ANIM_DELAY = 70;\n\nclass PieChart extends ChartElement {\n constructor(plotArea, options) {\n super(options);\n\n this.plotArea = plotArea;\n this.chartService = plotArea.chartService;\n this.points = [];\n this.legendItems = [];\n this.render();\n }\n\n render() {\n this.traverseDataPoints(this.addValue.bind(this));\n }\n\n traverseDataPoints(callback) {\n const { options, plotArea: { options: { seriesColors = [] } } } = this;\n const colorsCount = seriesColors.length;\n const series = options.series;\n const seriesCount = series.length;\n\n for (let seriesIx = 0; seriesIx < seriesCount; seriesIx++) {\n const currentSeries = series[seriesIx];\n const data = currentSeries.data;\n const { total, points, count } = bindSegments(currentSeries);\n const anglePerValue = 360 / total;\n let constantAngle;\n if (!isFinite(anglePerValue)) {\n constantAngle = 360 / count;\n }\n let currentAngle;\n\n if (defined(currentSeries.startAngle)) {\n currentAngle = currentSeries.startAngle;\n } else {\n currentAngle = options.startAngle;\n }\n\n if (seriesIx !== seriesCount - 1) {\n if (currentSeries.labels.position === OUTSIDE_END) {\n currentSeries.labels.position = CENTER;\n }\n }\n\n for (let i = 0; i < points.length; i++) {\n const pointData = points[i];\n if (!pointData) {\n continue;\n }\n\n const { fields, value, visible } = pointData;\n const angle = value !== 0 ? (constantAngle || (value * anglePerValue)) : 0;\n const explode = data.length !== 1 && Boolean(fields.explode);\n\n if (!isFunction(currentSeries.color)) {\n currentSeries.color = fields.color || seriesColors[i % colorsCount];\n }\n\n callback(pointData.valueFields.value, new Ring(null, 0, 0, currentAngle, angle), {\n owner: this,\n category: defined(fields.category) ? fields.category : \"\",\n index: i,\n series: currentSeries,\n seriesIx: seriesIx,\n dataItem: data[i],\n percentage: total !== 0 ? value / total : 0,\n explode: explode,\n visibleInLegend: fields.visibleInLegend,\n visible: visible,\n zIndex: seriesCount - seriesIx,\n animationDelay: this.animationDelay(i, seriesIx, seriesCount)\n });\n\n if (visible !== false) {\n currentAngle += angle;\n }\n }\n }\n }\n\n evalSegmentOptions(options, value, fields) {\n const series = fields.series;\n\n evalOptions(options, {\n value: value,\n series: series,\n dataItem: fields.dataItem,\n category: fields.category,\n percentage: fields.percentage\n }, { defaults: series._defaults, excluded: [ \"data\", \"content\", \"template\", \"visual\", \"toggle\" ] });\n }\n\n addValue(value, sector, fields) {\n const segmentOptions = deepExtend({}, fields.series, { index: fields.index });\n this.evalSegmentOptions(segmentOptions, value, fields);\n\n this.createLegendItem(value, segmentOptions, fields);\n\n if (fields.visible === false) {\n return;\n }\n\n const segment = new PieSegment(value, sector, segmentOptions);\n Object.assign(segment, fields);\n this.append(segment);\n this.points.push(segment);\n }\n\n reflow(targetBox) {\n const { options, points, seriesConfigs = [] } = this;\n const count = points.length;\n const box = targetBox.clone();\n const space = 5;\n const minWidth = Math.min(box.width(), box.height());\n const halfMinWidth = minWidth / 2;\n const defaultPadding = minWidth - minWidth * 0.85;\n const newBox = new Box(box.x1, box.y1, box.x1 + minWidth, box.y1 + minWidth);\n const newBoxCenter = newBox.center();\n const boxCenter = box.center();\n const seriesCount = options.series.length;\n const leftSideLabels = [];\n const rightSideLabels = [];\n let padding = valueOrDefault(options.padding, defaultPadding);\n\n this.targetBox = targetBox;\n\n padding = padding > halfMinWidth - space ? halfMinWidth - space : padding;\n newBox.translate(boxCenter.x - newBoxCenter.x, boxCenter.y - newBoxCenter.y);\n\n const radius = halfMinWidth - padding;\n const center = new Point(\n radius + newBox.x1 + padding,\n radius + newBox.y1 + padding\n );\n\n for (let i = 0; i < count; i++) {\n const segment = points[i];\n const sector = segment.sector;\n const seriesIndex = segment.seriesIx;\n sector.radius = radius;\n sector.center = center;\n\n if (seriesConfigs.length) {\n const seriesConfig = seriesConfigs[seriesIndex];\n sector.innerRadius = seriesConfig.innerRadius;\n sector.radius = seriesConfig.radius;\n }\n\n if (seriesIndex === seriesCount - 1 && segment.explode) {\n sector.center = sector.clone().setRadius(sector.radius * 0.15).point(sector.middle());\n }\n\n segment.reflow(newBox);\n\n const label = segment.label;\n if (label) {\n if (label.options.position === OUTSIDE_END) {\n if (seriesIndex === seriesCount - 1) {\n if (label.orientation === RIGHT) {\n rightSideLabels.push(label);\n } else {\n leftSideLabels.push(label);\n }\n }\n }\n }\n }\n\n if (leftSideLabels.length > 0) {\n leftSideLabels.sort(this.labelComparator(true));\n this.leftLabelsReflow(leftSideLabels);\n }\n\n if (rightSideLabels.length > 0) {\n rightSideLabels.sort(this.labelComparator(false));\n this.rightLabelsReflow(rightSideLabels);\n }\n\n this.box = newBox;\n }\n\n leftLabelsReflow(labels) {\n const distances = this.distanceBetweenLabels(labels);\n\n this.distributeLabels(distances, labels);\n }\n\n rightLabelsReflow(labels) {\n const distances = this.distanceBetweenLabels(labels);\n\n this.distributeLabels(distances, labels);\n }\n\n distanceBetweenLabels(labels) {\n const segment = last(this.points);\n const sector = segment.sector;\n const count = labels.length - 1;\n const lr = sector.radius + segment.options.labels.distance;\n const distances = [];\n let firstBox = labels[0].box;\n let distance = round(firstBox.y1 - (sector.center.y - lr - firstBox.height() - firstBox.height() / 2));\n\n distances.push(distance);\n\n for (let i = 0; i < count; i++) {\n const secondBox = labels[i + 1].box;\n\n firstBox = labels[i].box;\n distance = round(secondBox.y1 - firstBox.y2);\n distances.push(distance);\n }\n distance = round(sector.center.y + lr - labels[count].box.y2 - labels[count].box.height() / 2);\n distances.push(distance);\n\n return distances;\n }\n\n distributeLabels(distances, labels) {\n const count = distances.length;\n let left, right, remaining;\n\n for (let i = 0; i < count; i++) {\n remaining = -distances[i];\n left = right = i;\n\n while (remaining > 0 && (left >= 0 || right < count)) {\n remaining = this._takeDistance(distances, i, --left, remaining);\n remaining = this._takeDistance(distances, i, ++right, remaining);\n }\n }\n\n this.reflowLabels(distances, labels);\n }\n\n _takeDistance(distances, anchor, position, amount) {\n let result = amount;\n if (distances[position] > 0) {\n const available = Math.min(distances[position], result);\n result -= available;\n distances[position] -= available;\n distances[anchor] += available;\n }\n\n return result;\n }\n\n reflowLabels(distances, labels) {\n const segment = last(this.points);\n const sector = segment.sector;\n const labelOptions = segment.options.labels;\n const labelsCount = labels.length;\n const labelDistance = labelOptions.distance;\n let boxY = sector.center.y - (sector.radius + labelDistance) - labels[0].box.height();\n let boxX;\n\n distances[0] += 2;\n for (let i = 0; i < labelsCount; i++) {\n const label = labels[i];\n const box = label.box;\n\n boxY += distances[i];\n boxX = this.hAlignLabel(\n box.x2,\n sector.clone().expand(labelDistance),\n boxY,\n boxY + box.height(),\n label.orientation === RIGHT);\n\n if (label.orientation === RIGHT) {\n if (labelOptions.align !== CIRCLE) {\n boxX = sector.radius + sector.center.x + labelDistance;\n }\n label.reflow(new Box(boxX + box.width(), boxY, boxX, boxY));\n } else {\n if (labelOptions.align !== CIRCLE) {\n boxX = sector.center.x - sector.radius - labelDistance;\n }\n label.reflow(new Box(boxX - box.width(), boxY, boxX, boxY));\n }\n\n boxY += box.height();\n }\n }\n\n createVisual() {\n const { options: { connectors }, points } = this;\n const count = points.length;\n const space = 4;\n\n super.createVisual();\n\n this._connectorLines = [];\n\n for (let i = 0; i < count; i++) {\n const segment = points[i];\n const { sector, label } = segment;\n const angle = sector.middle();\n const connectorsColor = (segment.options.connectors || {}).color || connectors.color;\n\n if (label) {\n const connectorLine = new draw.Path({\n stroke: {\n color: connectorsColor,\n width: connectors.width\n },\n animation: {\n type: FADEIN,\n delay: segment.animationDelay\n }\n });\n\n if (label.options.position === OUTSIDE_END) {\n const box = label.box;\n const centerPoint = sector.center;\n let start = sector.point(angle);\n let middle = new Point(box.x1, box.center().y);\n let sr, end, crossing;\n\n start = sector.clone().expand(connectors.padding).point(angle);\n connectorLine.moveTo(start.x, start.y);\n // TODO: Extract into a method to remove duplication\n if (label.orientation === RIGHT) {\n end = new Point(box.x1 - connectors.padding, box.center().y);\n crossing = intersection(centerPoint, start, middle, end);\n middle = new Point(end.x - space, end.y);\n crossing = crossing || middle;\n crossing.x = Math.min(crossing.x, middle.x);\n\n if (this.pointInCircle(crossing, sector.center, sector.radius + space) ||\n crossing.x < sector.center.x) {\n sr = sector.center.x + sector.radius + space;\n if (segment.options.labels.align !== COLUMN) {\n if (sr < middle.x) {\n connectorLine.lineTo(sr, start.y);\n } else {\n connectorLine.lineTo(start.x + space * 2, start.y);\n }\n } else {\n connectorLine.lineTo(sr, start.y);\n }\n connectorLine.lineTo(middle.x, end.y);\n } else {\n crossing.y = end.y;\n connectorLine.lineTo(crossing.x, crossing.y);\n }\n } else {\n end = new Point(box.x2 + connectors.padding, box.center().y);\n crossing = intersection(centerPoint, start, middle, end);\n middle = new Point(end.x + space, end.y);\n crossing = crossing || middle;\n crossing.x = Math.max(crossing.x, middle.x);\n\n if (this.pointInCircle(crossing, sector.center, sector.radius + space) ||\n crossing.x > sector.center.x) {\n sr = sector.center.x - sector.radius - space;\n if (segment.options.labels.align !== COLUMN) {\n if (sr > middle.x) {\n connectorLine.lineTo(sr, start.y);\n } else {\n connectorLine.lineTo(start.x - space * 2, start.y);\n }\n } else {\n connectorLine.lineTo(sr, start.y);\n }\n connectorLine.lineTo(middle.x, end.y);\n } else {\n crossing.y = end.y;\n connectorLine.lineTo(crossing.x, crossing.y);\n }\n }\n\n connectorLine.lineTo(end.x, end.y);\n\n this._connectorLines.push(connectorLine);\n this.visual.append(connectorLine);\n }\n }\n }\n }\n\n renderVisual() {\n super.renderVisual();\n\n if (find(this.options.series, options => options.autoFit)) {\n const targetBox = this.targetBox;\n const pieCenter = this.box.center();\n const bbox = this.visual.bbox();\n if (!bbox) {\n return;\n }\n\n const bboxBottom = bbox.bottomRight();\n\n const scale = Math.min(\n (pieCenter.y - targetBox.y1) / (pieCenter.y - bbox.origin.y),\n (targetBox.y2 - pieCenter.y) / (bboxBottom.y - pieCenter.y),\n (pieCenter.x - targetBox.x1) / (pieCenter.x - bbox.origin.x),\n (targetBox.x2 - pieCenter.x) / (bboxBottom.x - pieCenter.x)\n );\n\n if (scale < 1) {\n this.visual.transform(geometry.transform().scale(scale, scale, [ pieCenter.x, pieCenter.y ]));\n }\n }\n }\n\n labelComparator(reverse) {\n const reverseValue = reverse ? -1 : 1;\n\n return function(a, b) {\n const first = (a.parent.sector.middle() + 270) % 360;\n const second = (b.parent.sector.middle() + 270) % 360;\n return (first - second) * reverseValue;\n };\n }\n\n hAlignLabel(originalX, sector, y1, y2, direction) {\n const { radius, center: { x: cx, y: cy } } = sector;\n const t = Math.min(Math.abs(cy - y1), Math.abs(cy - y2));\n\n if (t > radius) {\n return originalX;\n }\n\n return cx + Math.sqrt((radius * radius) - (t * t)) * (direction ? 1 : -1);\n }\n\n pointInCircle(point, center, radius) {\n return Math.pow(center.x - point.x, 2) + Math.pow(center.y - point.y, 2) < Math.pow(radius, 2);\n }\n\n formatPointValue(point, format) {\n return this.chartService.format.auto(format, point.value);\n }\n\n animationDelay(categoryIndex) {\n return categoryIndex * PIE_SECTOR_ANIM_DELAY;\n }\n\n stackRoot() {\n return this;\n }\n}\n\nfunction intersection(a1, a2, b1, b2) {\n const uat = (b2.x - b1.x) * (a1.y - b1.y) - (b2.y - b1.y) * (a1.x - b1.x);\n const ub = (b2.y - b1.y) * (a2.x - a1.x) - (b2.x - b1.x) * (a2.y - a1.y);\n\n let result;\n if (ub !== 0) {\n const ua = (uat / ub);\n\n result = new Point(\n a1.x + ua * (a2.x - a1.x),\n a1.y + ua * (a2.y - a1.y)\n );\n }\n\n return result;\n}\n\nsetDefaultOptions(PieChart, {\n startAngle: 90,\n connectors: {\n width: 2,\n color: \"#939393\",\n padding: 8\n },\n inactiveItems: {\n markers: {},\n labels: {}\n }\n});\n\ndeepExtend(PieChart.prototype, PieChartMixin);\n\nPieChart.prototype.isStackRoot = true;\n\nexport default PieChart;\n","import { drawing as draw, geometry as geom } from '@progress/kendo-drawing';\n\nimport { ChartElement, ShapeBuilder, TextBox, Box } from '../../core';\n\nimport PointEventsMixin from '../mixins/point-events-mixin';\n\nimport { OUTSIDE_END, INSIDE_END, PIE, FADEIN, TOOLTIP_OFFSET } from '../constants';\nimport hasGradientOverlay from '../utils/has-gradient-overlay';\n\nimport { TOP, BOTTOM, LEFT, RIGHT, DEFAULT_FONT, CIRCLE, WHITE, CENTER, DEFAULT_PRECISION } from '../../common/constants';\nimport { autoTextColor, setDefaultOptions, getSpacing, getTemplate, deepExtend, round, rad } from '../../common';\n\nclass PieSegment extends ChartElement {\n constructor(value, sector, options) {\n super(options);\n\n this.value = value;\n this.sector = sector;\n }\n\n render() {\n const labels = this.options.labels;\n const chartService = this.owner.chartService;\n let labelText = this.value;\n\n if (this._rendered || this.visible === false) {\n return;\n }\n this._rendered = true;\n\n const labelTemplate = getTemplate(labels);\n const pointData = this.pointData();\n\n if (labelTemplate) {\n labelText = labelTemplate(pointData);\n } else if (labels.format) {\n labelText = chartService.format.auto(labels.format, labelText);\n }\n\n if (labels.visible && (labelText || labelText === 0)) {\n if (labels.position === CENTER || labels.position === INSIDE_END) {\n if (!labels.color) {\n labels.color = autoTextColor(this.options.color);\n }\n if (!labels.background) {\n labels.background = this.options.color;\n }\n } else {\n const themeLabels = chartService.theme.seriesDefaults.labels;\n labels.color = labels.color || themeLabels.color;\n labels.background = labels.background || themeLabels.background;\n }\n\n\n this.label = new TextBox(labelText, deepExtend({}, labels, {\n align: CENTER,\n vAlign: \"\",\n animation: {\n type: FADEIN,\n delay: this.animationDelay\n }\n }), pointData);\n\n this.append(this.label);\n }\n }\n\n reflow(targetBox) {\n this.render();\n this.box = targetBox;\n this.reflowLabel();\n }\n\n reflowLabel() {\n const { options: { labels: labelsOptions }, label } = this;\n const sector = this.sector.clone();\n const labelsDistance = labelsOptions.distance;\n const angle = sector.middle();\n\n if (label) {\n const labelHeight = label.box.height();\n const labelWidth = label.box.width();\n let lp;\n\n if (labelsOptions.position === CENTER) {\n sector.radius = Math.abs((sector.radius - labelHeight) / 2) + labelHeight;\n lp = sector.point(angle);\n label.reflow(new Box(lp.x, lp.y - labelHeight / 2, lp.x, lp.y));\n } else if (labelsOptions.position === INSIDE_END) {\n sector.radius = sector.radius - labelHeight / 2;\n lp = sector.point(angle);\n label.reflow(new Box(lp.x, lp.y - labelHeight / 2, lp.x, lp.y));\n } else {\n let x1;\n lp = sector.clone().expand(labelsDistance).point(angle);\n if (lp.x >= sector.center.x) {\n x1 = lp.x + labelWidth;\n label.orientation = RIGHT;\n } else {\n x1 = lp.x - labelWidth;\n label.orientation = LEFT;\n }\n label.reflow(new Box(x1, lp.y - labelHeight, lp.x, lp.y));\n }\n }\n }\n\n createVisual() {\n const { sector, options } = this;\n\n super.createVisual();\n\n if (this.value) {\n if (options.visual) {\n const startAngle = (sector.startAngle + 180) % 360;\n const visual = options.visual({\n category: this.category,\n dataItem: this.dataItem,\n value: this.value,\n series: this.series,\n percentage: this.percentage,\n center: new geom.Point(sector.center.x, sector.center.y),\n radius: sector.radius,\n innerRadius: sector.innerRadius,\n startAngle: startAngle,\n endAngle: startAngle + sector.angle,\n options: options,\n sender: this.getSender(),\n createVisual: () => {\n const group = new draw.Group();\n this.createSegmentVisual(group);\n\n return group;\n }\n });\n\n if (visual) {\n this.visual.append(visual);\n }\n } else {\n this.createSegmentVisual(this.visual);\n }\n }\n }\n\n createSegmentVisual(group) {\n const { sector, options } = this;\n const borderOptions = options.border || {};\n const border = borderOptions.width > 0 ? {\n stroke: {\n color: borderOptions.color,\n width: borderOptions.width,\n opacity: borderOptions.opacity,\n dashType: borderOptions.dashType\n }\n } : {};\n const color = options.color;\n const fill = {\n color: color,\n opacity: options.opacity\n };\n const visual = this.createSegment(sector, deepExtend({\n fill: fill,\n stroke: {\n opacity: options.opacity\n },\n zIndex: options.zIndex\n }, border));\n\n group.append(visual);\n\n if (hasGradientOverlay(options)) {\n group.append(this.createGradientOverlay(visual, {\n baseColor: color,\n fallbackFill: fill\n }, deepExtend({\n center: [ sector.center.x, sector.center.y ],\n innerRadius: sector.innerRadius,\n radius: sector.radius,\n userSpace: true\n }, options.overlay)));\n }\n }\n\n createSegment(sector, options) {\n if (options.singleSegment) {\n return new draw.Circle(new geom.Circle(new geom.Point(sector.center.x, sector.center.y), sector.radius), options);\n }\n\n return ShapeBuilder.current.createRing(sector, options);\n }\n\n createAnimation() {\n const { options, sector: { center } } = this;\n\n deepExtend(options, {\n animation: {\n center: [ center.x, center.y ],\n delay: this.animationDelay\n }\n });\n\n super.createAnimation();\n }\n\n createHighlight(options) {\n const highlight = this.options.highlight || {};\n const border = highlight.border || {};\n\n return this.createSegment(this.sector, deepExtend({}, options, {\n fill: {\n color: highlight.color,\n opacity: highlight.opacity\n },\n stroke: {\n opacity: border.opacity,\n width: border.width,\n color: border.color\n }\n }));\n }\n\n highlightVisual() {\n return this.visual.children[0];\n }\n\n highlightVisualArgs() {\n const sector = this.sector;\n\n return {\n options: this.options,\n radius: sector.radius,\n innerRadius: sector.innerRadius,\n center: new geom.Point(sector.center.x, sector.center.y),\n startAngle: sector.startAngle,\n endAngle: sector.angle + sector.startAngle,\n visual: this.visual\n };\n }\n\n tooltipAnchor() {\n const sector = this.sector.clone().expand(TOOLTIP_OFFSET);\n const midAndle = sector.middle();\n const midPoint = sector.point(midAndle);\n\n return {\n point: midPoint,\n align: tooltipAlignment(midAndle + 180)\n };\n }\n\n formatValue(format) {\n return this.owner.formatPointValue(this, format);\n }\n\n pointData() {\n return {\n dataItem: this.dataItem,\n category: this.category,\n value: this.value,\n series: this.series,\n percentage: this.percentage\n };\n }\n}\n\nconst RAD_30 = round(rad(30), DEFAULT_PRECISION);\nconst RAD_60 = round(rad(60), DEFAULT_PRECISION);\n\nfunction tooltipAlignment(angle) {\n const radians = rad(angle);\n const sine = round(Math.sin(radians), DEFAULT_PRECISION);\n const cosine = round(Math.cos(radians), DEFAULT_PRECISION);\n\n\n let horizontal;\n if (Math.abs(sine) > RAD_60) {\n horizontal = CENTER;\n } else if (cosine < 0) {\n horizontal = RIGHT;\n } else {\n horizontal = LEFT;\n }\n\n let vertical;\n if (Math.abs(sine) < RAD_30) {\n vertical = CENTER;\n } else if (sine < 0) {\n vertical = BOTTOM;\n } else {\n vertical = TOP;\n }\n\n return {\n horizontal: horizontal,\n vertical: vertical\n };\n}\n\nsetDefaultOptions(PieSegment, {\n color: WHITE,\n overlay: {\n gradient: \"roundedBevel\"\n },\n border: {\n width: 0.5\n },\n labels: {\n visible: false,\n distance: 35,\n font: DEFAULT_FONT,\n margin: getSpacing(0.5),\n align: CIRCLE,\n zIndex: 1,\n position: OUTSIDE_END\n },\n animation: {\n type: PIE\n },\n highlight: {\n visible: true,\n border: {\n width: 1\n }\n },\n visible: true\n});\n\ndeepExtend(PieSegment.prototype, PointEventsMixin);\n\nexport default PieSegment;\n","import PlotAreaBase from './plotarea-base';\nimport AxisGroupRangeTracker from '../axis-group-range-tracker';\nimport PlotAreaEventsMixin from '../mixins/plotarea-events-mixin';\nimport SeriesAggregator from '../aggregates/series-aggregator';\nimport DefaultAggregates from '../aggregates/default-aggregates';\nimport SeriesBinder from '../series-binder';\nimport BarChart from '../bar-chart/bar-chart';\nimport RangeBarChart from '../range-bar-chart/range-bar-chart';\nimport BulletChart from '../bullet-chart/bullet-chart';\nimport LineChart from '../line-chart/line-chart';\nimport AreaChart from '../area-chart/area-chart';\nimport RangeAreaChart from '../range-area-chart/range-area-chart';\nimport OHLCChart from '../ohlc-chart/ohlc-chart';\nimport CandlestickChart from '../candlestick-chart/candlestick-chart';\nimport BoxPlotChart from '../box-plot-chart/box-plot-chart';\nimport WaterfallChart from '../waterfall-chart/waterfall-chart';\n\nimport { CategoryAxis, DateCategoryAxis, NumericAxis, LogarithmicAxis, Point } from '../../core';\n\nimport { appendIfNotNull, categoriesCount, createOutOfRangePoints, equalsIgnoreCase, filterSeriesByType,\n getDateField, getField, isDateAxis, singleItemOrArray } from '../utils';\n\nimport { BAR, COLUMN, BULLET, VERTICAL_BULLET, LINE, VERTICAL_LINE, AREA, VERTICAL_AREA,\n RANGE_AREA, VERTICAL_RANGE_AREA, RANGE_COLUMN, RANGE_BAR, WATERFALL, HORIZONTAL_WATERFALL,\n BOX_PLOT, VERTICAL_BOX_PLOT, OHLC, CANDLESTICK, LOGARITHMIC, STEP, EQUALLY_SPACED_SERIES } from '../constants';\n\nimport { DATE, MAX_VALUE } from '../../common/constants';\nimport { setDefaultOptions, inArray, isNumber, deepExtend, defined, eventElement, grep } from '../../common';\n\nconst AREA_SERIES = [ AREA, VERTICAL_AREA, RANGE_AREA, VERTICAL_RANGE_AREA ];\nconst OUT_OF_RANGE_SERIES = [ LINE, VERTICAL_LINE ].concat(AREA_SERIES);\n\nclass CategoricalPlotArea extends PlotAreaBase {\n\n initFields(series) {\n this.namedCategoryAxes = {};\n this.namedValueAxes = {};\n this.valueAxisRangeTracker = new AxisGroupRangeTracker();\n\n if (series.length > 0) {\n this.invertAxes = inArray(\n series[0].type, [ BAR, BULLET, VERTICAL_LINE, VERTICAL_AREA, VERTICAL_RANGE_AREA,\n RANGE_BAR, HORIZONTAL_WATERFALL, VERTICAL_BOX_PLOT ]\n );\n\n for (let i = 0; i < series.length; i++) {\n const stack = series[i].stack;\n if (stack && stack.type === \"100%\") {\n this.stack100 = true;\n break;\n }\n }\n }\n\n }\n\n render(panes = this.panes) {\n this.createCategoryAxes(panes);\n this.aggregateCategories(panes);\n this.createCategoryAxesLabels(panes);\n this.createCharts(panes);\n this.createValueAxes(panes);\n }\n\n removeAxis(axis) {\n const axisName = axis.options.name;\n\n super.removeAxis(axis);\n\n if (axis instanceof CategoryAxis) {\n delete this.namedCategoryAxes[axisName];\n } else {\n this.valueAxisRangeTracker.reset(axisName);\n delete this.namedValueAxes[axisName];\n }\n\n if (axis === this.categoryAxis) {\n delete this.categoryAxis;\n }\n\n if (axis === this.valueAxis) {\n delete this.valueAxis;\n }\n }\n\n createCharts(panes) {\n const seriesByPane = this.groupSeriesByPane();\n\n for (let i = 0; i < panes.length; i++) {\n const pane = panes[i];\n const paneSeries = seriesByPane[pane.options.name || \"default\"] || [];\n this.addToLegend(paneSeries);\n\n const visibleSeries = this.filterVisibleSeries(paneSeries);\n if (!visibleSeries) {\n continue;\n }\n\n const groups = this.groupSeriesByCategoryAxis(visibleSeries);\n for (let groupIx = 0; groupIx < groups.length; groupIx++) {\n this.createChartGroup(groups[groupIx], pane);\n }\n }\n }\n\n createChartGroup(series, pane) {\n this.createAreaChart(\n filterSeriesByType(series, [ AREA, VERTICAL_AREA ]), pane\n );\n\n this.createRangeAreaChart(\n filterSeriesByType(series, [ RANGE_AREA, VERTICAL_RANGE_AREA ]), pane\n );\n\n this.createBarChart(\n filterSeriesByType(series, [ COLUMN, BAR ]), pane\n );\n\n this.createRangeBarChart(\n filterSeriesByType(series, [ RANGE_COLUMN, RANGE_BAR ]), pane\n );\n\n this.createBulletChart(\n filterSeriesByType(series, [ BULLET, VERTICAL_BULLET ]), pane\n );\n\n this.createCandlestickChart(\n filterSeriesByType(series, CANDLESTICK), pane\n );\n\n this.createBoxPlotChart(\n filterSeriesByType(series, [ BOX_PLOT, VERTICAL_BOX_PLOT ]), pane\n );\n\n this.createOHLCChart(\n filterSeriesByType(series, OHLC), pane\n );\n\n this.createWaterfallChart(\n filterSeriesByType(series, [ WATERFALL, HORIZONTAL_WATERFALL ]), pane\n );\n\n this.createLineChart(\n filterSeriesByType(series, [ LINE, VERTICAL_LINE ]), pane\n );\n }\n\n aggregateCategories(panes) {\n const series = this.srcSeries || this.series;\n const processedSeries = [];\n this._currentPointsCache = {};\n this._seriesPointsCache = this._seriesPointsCache || {};\n\n for (let i = 0; i < series.length; i++) {\n let currentSeries = series[i];\n const categoryAxis = this.seriesCategoryAxis(currentSeries);\n const axisPane = this.findPane(categoryAxis.options.pane);\n const dateAxis = equalsIgnoreCase(categoryAxis.options.type, DATE);\n\n if ((dateAxis || currentSeries.categoryField) && inArray(axisPane, panes)) {\n currentSeries = this.aggregateSeries(currentSeries, categoryAxis);\n } else {\n currentSeries = this.filterSeries(currentSeries, categoryAxis);\n }\n\n processedSeries.push(currentSeries);\n }\n\n this._seriesPointsCache = this._currentPointsCache;\n this._currentPointsCache = null;\n\n this.srcSeries = series;\n this.series = processedSeries;\n }\n\n filterSeries(series, categoryAxis) {\n const dataLength = (series.data || {}).length;\n categoryAxis._seriesMax = Math.max(categoryAxis._seriesMax || 0, dataLength);\n\n if (!(isNumber(categoryAxis.options.min) || isNumber(categoryAxis.options.max))) {\n return series;\n }\n\n const range = categoryAxis.currentRangeIndices();\n const outOfRangePoints = inArray(series.type, OUT_OF_RANGE_SERIES);\n const currentSeries = deepExtend({}, series);\n\n currentSeries.data = (currentSeries.data || []).slice(range.min, range.max + 1);\n\n if (outOfRangePoints) {\n createOutOfRangePoints(currentSeries, range, dataLength, (idx) => ({\n item: series.data[idx],\n category: categoryAxis.categoryAt(idx, true),\n categoryIx: idx - range.min\n }), (idx) => defined(series.data[idx]));\n }\n\n return currentSeries;\n }\n\n clearSeriesPointsCache() {\n this._seriesPointsCache = {};\n }\n\n seriesSourcePoints(series, categoryAxis) {\n const key = `${ series.index };${ categoryAxis.categoriesHash() }`;\n if (this._seriesPointsCache[key]) {\n this._currentPointsCache[key] = this._seriesPointsCache[key];\n return this._seriesPointsCache[key];\n }\n\n const axisOptions = categoryAxis.options;\n const srcCategories = axisOptions.srcCategories;\n const dateAxis = equalsIgnoreCase(axisOptions.type, DATE);\n const srcData = series.data;\n const getFn = dateAxis ? getDateField : getField;\n const result = [];\n if (!dateAxis) {\n categoryAxis.mapCategories();//fixes major performance issue caused by searching for the index for large data\n }\n\n for (let idx = 0; idx < srcData.length; idx++) {\n let category;\n if (series.categoryField) {\n category = getFn(series.categoryField, srcData[idx], this.chartService.intl);\n } else {\n category = srcCategories[idx];\n }\n\n if (defined(category) && category !== null) {\n const categoryIx = categoryAxis.totalIndex(category);\n result[categoryIx] = result[categoryIx] || { items: [], category: category };\n result[categoryIx].items.push(idx);\n }\n }\n\n this._currentPointsCache[key] = result;\n\n return result;\n }\n\n aggregateSeries(series, categoryAxis) {\n const srcData = series.data;\n if (!srcData.length) {\n return series;\n }\n\n const srcPoints = this.seriesSourcePoints(series, categoryAxis);\n const result = deepExtend({}, series);\n const aggregator = new SeriesAggregator(deepExtend({}, series), SeriesBinder.current, DefaultAggregates.current);\n const data = result.data = [];\n const dataItems = categoryAxis.options.dataItems || [];\n\n const range = categoryAxis.currentRangeIndices();\n const categoryItem = (idx) => {\n const categoryIdx = idx - range.min;\n let point = srcPoints[idx];\n if (!point) {\n point = srcPoints[idx] = {};\n }\n\n point.categoryIx = categoryIdx;\n\n if (!point.item) {\n const category = categoryAxis.categoryAt(idx, true);\n point.category = category;\n point.item = aggregator.aggregatePoints(point.items, category);\n }\n\n return point;\n };\n\n for (let idx = range.min; idx <= range.max; idx++) {\n const point = categoryItem(idx);\n data[point.categoryIx] = point.item;\n\n if (point.items && point.items.length) {\n dataItems[point.categoryIx] = point.item;\n }\n }\n\n if (inArray(result.type, OUT_OF_RANGE_SERIES)) {\n createOutOfRangePoints(result, range, categoryAxis.totalCount(), categoryItem, (idx) => srcPoints[idx]);\n }\n\n categoryAxis.options.dataItems = dataItems;\n\n return result;\n }\n\n appendChart(chart, pane) {\n const series = chart.options.series;\n const categoryAxis = this.seriesCategoryAxis(series[0]);\n let categories = categoryAxis.options.categories;\n let categoriesToAdd = Math.max(0, categoriesCount(series) - categories.length);\n\n if (categoriesToAdd > 0) {//consider setting an option to axis instead of adding fake categories\n categories = categoryAxis.options.categories = categoryAxis.options.categories.slice(0);\n while (categoriesToAdd--) {\n categories.push(\"\");\n }\n }\n\n this.valueAxisRangeTracker.update(chart.valueAxisRanges);\n\n super.appendChart(chart, pane);\n }\n\n // TODO: Refactor, optionally use series.pane option\n seriesPaneName(series) {\n const options = this.options;\n const axisName = series.axis;\n const axisOptions = [].concat(options.valueAxis);\n const axis = grep(axisOptions, function(a) { return a.name === axisName; })[0];\n const panes = options.panes || [ {} ];\n const defaultPaneName = (panes[0] || {}).name || \"default\";\n const paneName = (axis || {}).pane || defaultPaneName;\n\n return paneName;\n }\n\n seriesCategoryAxis(series) {\n const axisName = series.categoryAxis;\n const axis = axisName ? this.namedCategoryAxes[axisName] : this.categoryAxis;\n\n if (!axis) {\n throw new Error(\"Unable to locate category axis with name \" + axisName);\n }\n\n return axis;\n }\n\n stackableChartOptions(firstSeries, pane) {\n const stack = firstSeries.stack;\n const isStacked100 = stack && stack.type === \"100%\";\n const clip = pane.options.clip;\n\n return {\n isStacked: stack,\n isStacked100: isStacked100,\n clip: clip\n };\n }\n\n groupSeriesByCategoryAxis(series) {\n const categoryAxes = [];\n const unique = {};\n for (let idx = 0; idx < series.length; idx++) {\n const name = series[idx].categoryAxis || \"$$default$$\";\n if (!unique.hasOwnProperty(name)) {\n unique[name] = true;\n categoryAxes.push(name);\n }\n }\n\n const groups = [];\n for (let axisIx = 0; axisIx < categoryAxes.length; axisIx++) {\n const axis = categoryAxes[axisIx];\n const axisSeries = groupSeries(series, axis, axisIx);\n if (axisSeries.length === 0) {\n continue;\n }\n\n groups.push(axisSeries);\n }\n\n return groups;\n }\n\n createBarChart(series, pane) {\n if (series.length === 0) {\n return;\n }\n\n const firstSeries = series[0];\n const barChart = new BarChart(this, Object.assign({\n series: series,\n invertAxes: this.invertAxes,\n gap: firstSeries.gap,\n spacing: firstSeries.spacing\n }, this.stackableChartOptions(firstSeries, pane)));\n\n this.appendChart(barChart, pane);\n }\n\n createRangeBarChart(series, pane) {\n if (series.length === 0) {\n return;\n }\n\n const firstSeries = series[0];\n const rangeColumnChart = new RangeBarChart(this, {\n series: series,\n invertAxes: this.invertAxes,\n gap: firstSeries.gap,\n spacing: firstSeries.spacing\n });\n\n this.appendChart(rangeColumnChart, pane);\n }\n\n createBulletChart(series, pane) {\n if (series.length === 0) {\n return;\n }\n\n const firstSeries = series[0];\n const bulletChart = new BulletChart(this, {\n series: series,\n invertAxes: this.invertAxes,\n gap: firstSeries.gap,\n spacing: firstSeries.spacing,\n clip: pane.options.clip\n });\n\n this.appendChart(bulletChart, pane);\n }\n\n createLineChart(series, pane) {\n if (series.length === 0) {\n return;\n }\n\n const firstSeries = series[0];\n const lineChart = new LineChart(this, Object.assign({\n invertAxes: this.invertAxes,\n series: series\n }, this.stackableChartOptions(firstSeries, pane)));\n\n this.appendChart(lineChart, pane);\n }\n\n createAreaChart(series, pane) {\n if (series.length === 0) {\n return;\n }\n\n const firstSeries = series[0];\n const areaChart = new AreaChart(this, Object.assign({\n invertAxes: this.invertAxes,\n series: series\n }, this.stackableChartOptions(firstSeries, pane)));\n\n this.appendChart(areaChart, pane);\n }\n\n createRangeAreaChart(series, pane) {\n if (series.length === 0) {\n return;\n }\n\n const rangeAreaChart = new RangeAreaChart(this, {\n invertAxes: this.invertAxes,\n series: series,\n clip: pane.options.clip\n });\n\n this.appendChart(rangeAreaChart, pane);\n }\n\n createOHLCChart(series, pane) {\n if (series.length === 0) {\n return;\n }\n\n const firstSeries = series[0];\n const chart = new OHLCChart(this, {\n invertAxes: this.invertAxes,\n gap: firstSeries.gap,\n series: series,\n spacing: firstSeries.spacing,\n clip: pane.options.clip\n });\n\n this.appendChart(chart, pane);\n }\n\n createCandlestickChart(series, pane) {\n if (series.length === 0) {\n return;\n }\n\n const firstSeries = series[0];\n const chart = new CandlestickChart(this, {\n invertAxes: this.invertAxes,\n gap: firstSeries.gap,\n series: series,\n spacing: firstSeries.spacing,\n clip: pane.options.clip\n });\n\n this.appendChart(chart, pane);\n }\n\n createBoxPlotChart(series, pane) {\n if (series.length === 0) {\n return;\n }\n\n const firstSeries = series[0];\n const chart = new BoxPlotChart(this, {\n invertAxes: this.invertAxes,\n gap: firstSeries.gap,\n series: series,\n spacing: firstSeries.spacing,\n clip: pane.options.clip\n });\n\n this.appendChart(chart, pane);\n }\n\n createWaterfallChart(series, pane) {\n if (series.length === 0) {\n return;\n }\n\n const firstSeries = series[0];\n const waterfallChart = new WaterfallChart(this, {\n series: series,\n invertAxes: this.invertAxes,\n gap: firstSeries.gap,\n spacing: firstSeries.spacing\n });\n\n this.appendChart(waterfallChart, pane);\n }\n\n axisRequiresRounding(categoryAxisName, categoryAxisIndex) {\n const centeredSeries = filterSeriesByType(this.series, EQUALLY_SPACED_SERIES);\n\n for (let seriesIx = 0; seriesIx < this.series.length; seriesIx++) {\n const currentSeries = this.series[seriesIx];\n if (inArray(currentSeries.type, AREA_SERIES)) {\n const line = currentSeries.line;\n if (line && line.style === STEP) {\n centeredSeries.push(currentSeries);\n }\n }\n }\n\n for (let seriesIx = 0; seriesIx < centeredSeries.length; seriesIx++) {\n const seriesAxis = centeredSeries[seriesIx].categoryAxis || \"\";\n if (seriesAxis === categoryAxisName || (!seriesAxis && categoryAxisIndex === 0)) {\n return true;\n }\n }\n }\n\n aggregatedAxis(categoryAxisName, categoryAxisIndex) {\n const series = this.series;\n\n for (let seriesIx = 0; seriesIx < series.length; seriesIx++) {\n const seriesAxis = series[seriesIx].categoryAxis || \"\";\n if ((seriesAxis === categoryAxisName || (!seriesAxis && categoryAxisIndex === 0)) && series[seriesIx].categoryField) {\n return true;\n }\n }\n }\n\n createCategoryAxesLabels() {\n const axes = this.axes;\n for (let i = 0; i < axes.length; i++) {\n if (axes[i] instanceof CategoryAxis) {\n axes[i].createLabels();\n }\n }\n }\n\n createCategoryAxes(panes) {\n const invertAxes = this.invertAxes;\n const definitions = [].concat(this.options.categoryAxis);\n const axes = [];\n\n for (let i = 0; i < definitions.length; i++) {\n let axisOptions = definitions[i];\n const axisPane = this.findPane(axisOptions.pane);\n\n if (inArray(axisPane, panes)) {\n const { name, categories = [] } = axisOptions;\n axisOptions = deepExtend({\n vertical: invertAxes,\n reverse: !invertAxes && this.chartService.rtl,\n axisCrossingValue: invertAxes ? MAX_VALUE : 0\n }, axisOptions);\n\n if (!defined(axisOptions.justified)) {\n axisOptions.justified = this.isJustified();\n }\n\n if (this.axisRequiresRounding(name, i)) {\n axisOptions.justified = false;\n }\n\n let categoryAxis;\n\n if (isDateAxis(axisOptions, categories[0])) {\n categoryAxis = new DateCategoryAxis(axisOptions, this.chartService);\n } else {\n categoryAxis = new CategoryAxis(axisOptions, this.chartService);\n }\n\n definitions[i].categories = categoryAxis.options.srcCategories;\n\n if (name) {\n if (this.namedCategoryAxes[name]) {\n throw new Error(`Category axis with name ${ name } is already defined`);\n }\n this.namedCategoryAxes[name] = categoryAxis;\n }\n\n categoryAxis.axisIndex = i;\n axes.push(categoryAxis);\n this.appendAxis(categoryAxis);\n }\n }\n\n const primaryAxis = this.categoryAxis || axes[0];\n this.categoryAxis = primaryAxis;\n\n if (invertAxes) {\n this.axisY = primaryAxis;\n } else {\n this.axisX = primaryAxis;\n }\n }\n\n isJustified() {\n const series = this.series;\n\n for (let i = 0; i < series.length; i++) {\n const currentSeries = series[i];\n if (!inArray(currentSeries.type, AREA_SERIES)) {\n return false;\n }\n }\n\n return true;\n }\n\n createValueAxes(panes) {\n const tracker = this.valueAxisRangeTracker;\n const defaultRange = tracker.query();\n const definitions = [].concat(this.options.valueAxis);\n const invertAxes = this.invertAxes;\n const baseOptions = { vertical: !invertAxes, reverse: invertAxes && this.chartService.rtl };\n const axes = [];\n\n if (this.stack100) {\n baseOptions.roundToMajorUnit = false;\n baseOptions.labels = { format: \"P0\" };\n }\n\n for (let i = 0; i < definitions.length; i++) {\n const axisOptions = definitions[i];\n const axisPane = this.findPane(axisOptions.pane);\n\n if (inArray(axisPane, panes)) {\n const name = axisOptions.name;\n const defaultAxisRange = equalsIgnoreCase(axisOptions.type, LOGARITHMIC) ? { min: 0.1, max: 1 } : { min: 0, max: 1 };\n const range = tracker.query(name) || defaultRange || defaultAxisRange;\n\n if (i === 0 && range && defaultRange) {\n range.min = Math.min(range.min, defaultRange.min);\n range.max = Math.max(range.max, defaultRange.max);\n }\n\n let axisType;\n if (equalsIgnoreCase(axisOptions.type, LOGARITHMIC)) {\n axisType = LogarithmicAxis;\n } else {\n axisType = NumericAxis;\n }\n\n const valueAxis = new axisType(range.min, range.max,\n deepExtend({}, baseOptions, axisOptions),\n this.chartService\n );\n\n if (name) {\n if (this.namedValueAxes[name]) {\n throw new Error(`Value axis with name ${ name } is already defined`);\n }\n this.namedValueAxes[name] = valueAxis;\n }\n valueAxis.axisIndex = i;\n\n axes.push(valueAxis);\n this.appendAxis(valueAxis);\n }\n }\n\n const primaryAxis = this.valueAxis || axes[0];\n this.valueAxis = primaryAxis;\n\n if (invertAxes) {\n this.axisX = primaryAxis;\n } else {\n this.axisY = primaryAxis;\n }\n }\n\n _dispatchEvent(chart, e, eventType) {\n const coords = chart._eventCoordinates(e);\n const point = new Point(coords.x, coords.y);\n const pane = this.pointPane(point);\n const categories = [];\n const values = [];\n\n if (!pane) {\n return;\n }\n\n const allAxes = pane.axes;\n for (let i = 0; i < allAxes.length; i++) {\n const axis = allAxes[i];\n if (axis.getValue) {\n appendIfNotNull(values, axis.getValue(point));\n } else {\n appendIfNotNull(categories, axis.getCategory(point));\n }\n }\n\n if (categories.length === 0) {\n appendIfNotNull(categories, this.categoryAxis.getCategory(point));\n }\n\n if (categories.length > 0 && values.length > 0) {\n chart.trigger(eventType, {\n element: eventElement(e),\n originalEvent: e,\n category: singleItemOrArray(categories),\n value: singleItemOrArray(values)\n });\n }\n }\n\n pointPane(point) {\n const panes = this.panes;\n\n for (let i = 0; i < panes.length; i++) {\n const currentPane = panes[i];\n if (currentPane.contentBox.containsPoint(point)) {\n return currentPane;\n }\n }\n }\n\n updateAxisOptions(axis, options) {\n updateAxisOptions(this.options, axis, options);\n updateAxisOptions(this.originalOptions, axis, options);\n }\n}\n\nfunction updateAxisOptions(targetOptions, axis, options) {\n const axesOptions = axis instanceof CategoryAxis ? [].concat(targetOptions.categoryAxis) : [].concat(targetOptions.valueAxis);\n deepExtend(axesOptions[axis.axisIndex], options);\n}\n\nfunction groupSeries(series, axis, axisIx) {\n return grep(series, function(s) {\n return (axisIx === 0 && !s.categoryAxis) || (s.categoryAxis === axis);\n });\n}\n\nsetDefaultOptions(CategoricalPlotArea, {\n categoryAxis: {},\n valueAxis: {}\n});\n\ndeepExtend(CategoricalPlotArea.prototype, PlotAreaEventsMixin);\n\nexport default CategoricalPlotArea;","import PiePlotArea from './pie-plotarea';\nimport DonutChart from '../donut-chart/donut-chart';\n\nclass DonutPlotArea extends PiePlotArea {\n render() {\n this.createDonutChart(this.series);\n }\n\n createDonutChart(series) {\n const firstSeries = series[0];\n const donutChart = new DonutChart(this, {\n series: series,\n padding: firstSeries.padding,\n connectors: firstSeries.connectors,\n legend: this.options.legend\n });\n\n this.appendChart(donutChart);\n }\n}\n\nexport default DonutPlotArea;","import PlotAreaBase from './plotarea-base';\nimport FunnelChart from '../funnel-chart/funnel-chart';\n\nimport { append } from '../../common';\n\nclass FunnelPlotArea extends PlotAreaBase {\n render() {\n this.createFunnelChart(this.series);\n }\n\n createFunnelChart(series) {\n const firstSeries = series[0];\n const funnelChart = new FunnelChart(this, {\n series: series,\n legend: this.options.legend,\n neckRatio: firstSeries.neckRatio,\n dynamicHeight: firstSeries.dynamicHeight,\n dynamicSlope: firstSeries.dynamicSlope,\n segmentSpacing: firstSeries.segmentSpacing,\n highlight: firstSeries.highlight\n });\n\n this.appendChart(funnelChart);\n }\n\n appendChart(chart, pane) {\n super.appendChart(chart, pane);\n append(this.options.legend.items, chart.legendItems);\n }\n}\n\nexport default FunnelPlotArea;","import { deepExtend, eventElement, grep, inArray, setDefaultOptions, createHashSet } from '../../common';\nimport { DATE } from '../../common/constants';\nimport { CategoryAxis, DateCategoryAxis, Point } from '../../core';\nimport { HEATMAP } from '../constants';\nimport HeatmapChart from '../heatmap-chart/heatmap-chart';\nimport PlotAreaEventsMixin from '../mixins/plotarea-events-mixin';\nimport SeriesBinder from '../series-binder';\nimport { appendIfNotNull, equalsIgnoreCase, filterSeriesByType, singleItemOrArray } from '../utils';\nimport PlotAreaBase from './plotarea-base';\n\n\nclass HeatmapPlotArea extends PlotAreaBase {\n initFields() {\n this.namedXAxes = {};\n this.namedYAxes = {};\n }\n\n render(panes = this.panes) {\n this.bindCategories();\n this.createAxes(panes);\n this.createCharts(panes);\n this.createAxisLabels();\n }\n\n bindCategories() {\n const series = this.srcSeries || this.series;\n\n for (let i = 0; i < series.length; i++) {\n const currentSeries = series[i];\n const data = currentSeries.data || [];\n const { xAxis, yAxis } = this.seriesAxes(currentSeries);\n\n const xCategories = createHashSet(xAxis.categories || []);\n const yCategories = createHashSet(yAxis.categories || []);\n\n for (let pointIndex = 0; pointIndex < data.length; pointIndex++) {\n const { x, y } = SeriesBinder.current.bindPoint(currentSeries, pointIndex).valueFields;\n\n if (!xCategories.has(x)) {\n xCategories.add(x);\n }\n\n if (!yCategories.has(y)) {\n yCategories.add(y);\n }\n }\n\n xAxis.categories = xCategories.values();\n yAxis.categories = yCategories.values();\n }\n }\n\n createCharts(panes) {\n const seriesByPane = this.groupSeriesByPane();\n\n for (let i = 0; i < panes.length; i++) {\n const pane = panes[i];\n const paneSeries = seriesByPane[pane.options.name || \"default\"] || [];\n this.addToLegend(paneSeries);\n const filteredSeries = this.filterVisibleSeries(paneSeries);\n\n if (!filteredSeries) {\n continue;\n }\n\n this.createHeatmapChart(\n filterSeriesByType(filteredSeries, [ HEATMAP ]),\n pane\n );\n }\n }\n\n createHeatmapChart(series, pane) {\n const chart = new HeatmapChart(this, {\n series: series\n });\n\n this.appendChart(chart, pane);\n }\n\n seriesPaneName(series) {\n const options = this.options;\n const xAxisName = series.xAxis;\n const xAxisOptions = [].concat(options.xAxis);\n const xAxis = grep(xAxisOptions, function(a) { return a.name === xAxisName; })[0];\n const yAxisName = series.yAxis;\n const yAxisOptions = [].concat(options.yAxis);\n const yAxis = grep(yAxisOptions, function(a) { return a.name === yAxisName; })[0];\n const panes = options.panes || [ {} ];\n const defaultPaneName = panes[0].name || \"default\";\n const paneName = (xAxis || {}).pane || (yAxis || {}).pane || defaultPaneName;\n\n return paneName;\n }\n\n seriesAxes(series) {\n let xAxis;\n let yAxis;\n\n const options = this.options;\n\n const xAxisOptions = [].concat(options.xAxis);\n const xAxisName = series.xAxis;\n if (xAxisName) {\n xAxis = xAxisOptions.find(axis => axis.name === xAxisName);\n } else {\n xAxis = xAxisOptions[0];\n }\n\n const yAxisOptions = [].concat(options.yAxis);\n const yAxisName = series.yAxis;\n if (yAxisName) {\n yAxis = yAxisOptions.find(axis => axis.name === yAxisName);\n } else {\n yAxis = yAxisOptions[0];\n }\n\n if (!xAxis) {\n throw new Error(\"Unable to locate X axis with name \" + xAxisName);\n }\n\n if (!yAxis) {\n throw new Error(\"Unable to locate Y axis with name \" + yAxisName);\n }\n\n return { xAxis, yAxis };\n }\n\n createAxisLabels() {\n const axes = this.axes;\n for (let i = 0; i < axes.length; i++) {\n axes[i].createLabels();\n }\n }\n\n createXYAxis(options, vertical, axisIndex) {\n const axisName = options.name;\n const namedAxes = vertical ? this.namedYAxes : this.namedXAxes;\n const axisOptions = Object.assign({\n axisCrossingValue: 0\n }, options, {\n vertical: vertical,\n reverse: (vertical || this.chartService.rtl) ? !options.reverse : options.reverse,\n justified: false\n });\n const firstCategory = axisOptions.categories ? axisOptions.categories[0] : null;\n const typeSamples = [ axisOptions.min, axisOptions.max, firstCategory ];\n const series = this.series;\n\n for (let seriesIx = 0; seriesIx < series.length; seriesIx++) {\n const currentSeries = series[seriesIx];\n const seriesAxisName = currentSeries[vertical ? \"yAxis\" : \"xAxis\"];\n if ((seriesAxisName === axisOptions.name) || (axisIndex === 0 && !seriesAxisName)) {\n const firstPointValue = SeriesBinder.current.bindPoint(currentSeries, 0).valueFields;\n typeSamples.push(firstPointValue[vertical ? \"y\" : \"x\"]);\n\n break;\n }\n }\n\n let inferredDate;\n\n for (let i = 0; i < typeSamples.length; i++) {\n if (typeSamples[i] instanceof Date) {\n inferredDate = true;\n break;\n }\n }\n\n let axisType;\n if (equalsIgnoreCase(axisOptions.type, DATE) || (!axisOptions.type && inferredDate)) {\n axisType = DateCategoryAxis;\n } else {\n axisType = CategoryAxis;\n }\n\n const axis = new axisType(axisOptions, this.chartService);\n axis.axisIndex = axisIndex;\n\n if (axisName) {\n if (namedAxes[axisName]) {\n throw new Error(`${ vertical ? \"Y\" : \"X\" } axis with name ${ axisName } is already defined`);\n }\n namedAxes[axisName] = axis;\n }\n\n this.appendAxis(axis);\n axis.mapCategories();\n\n return axis;\n }\n\n createAxes(panes) {\n const options = this.options;\n const xAxesOptions = [].concat(options.xAxis);\n const xAxes = [];\n const yAxesOptions = [].concat(options.yAxis);\n const yAxes = [];\n\n for (let idx = 0; idx < xAxesOptions.length; idx++) {\n const axisPane = this.findPane(xAxesOptions[idx].pane);\n if (inArray(axisPane, panes)) {\n xAxes.push(this.createXYAxis(xAxesOptions[idx], false, idx));\n }\n }\n\n for (let idx = 0; idx < yAxesOptions.length; idx++) {\n const axisPane = this.findPane(yAxesOptions[idx].pane);\n if (inArray(axisPane, panes)) {\n yAxes.push(this.createXYAxis(yAxesOptions[idx], true, idx));\n }\n }\n\n this.axisX = this.axisX || xAxes[0];\n this.axisY = this.axisY || yAxes[0];\n }\n\n removeAxis(axis) {\n const axisName = axis.options.name;\n\n super.removeAxis(axis);\n\n if (axis.options.vertical) {\n delete this.namedYAxes[axisName];\n } else {\n delete this.namedXAxes[axisName];\n }\n\n if (axis === this.axisX) {\n delete this.axisX;\n }\n\n if (axis === this.axisY) {\n delete this.axisY;\n }\n }\n\n _dispatchEvent(chart, e, eventType) {\n const coords = chart._eventCoordinates(e);\n const point = new Point(coords.x, coords.y);\n const allAxes = this.axes;\n const length = allAxes.length;\n const xValues = [];\n const yValues = [];\n\n for (let i = 0; i < length; i++) {\n const axis = allAxes[i];\n const values = axis.options.vertical ? yValues : xValues;\n appendIfNotNull(values, axis.getCategory(point));\n }\n\n if (xValues.length > 0 && yValues.length > 0) {\n chart.trigger(eventType, {\n element: eventElement(e),\n originalEvent: e,\n x: singleItemOrArray(xValues),\n y: singleItemOrArray(yValues)\n });\n }\n }\n\n updateAxisOptions(axis, options) {\n const vertical = axis.options.vertical;\n const axes = this.groupAxes(this.panes);\n const index = (vertical ? axes.y : axes.x).indexOf(axis);\n\n updateAxisOptions(this.options, index, vertical, options);\n updateAxisOptions(this.originalOptions, index, vertical, options);\n }\n\n crosshairOptions(axis) {\n // Stack the crosshair above the series points.\n return Object.assign({}, axis.options.crosshair, { zIndex: 0 });\n }\n}\n\nfunction updateAxisOptions(targetOptions, axisIndex, vertical, options) {\n const axisOptions = ([].concat(vertical ? targetOptions.yAxis : targetOptions.xAxis))[axisIndex];\n deepExtend(axisOptions, options);\n}\n\nsetDefaultOptions(HeatmapPlotArea, {\n xAxis: {},\n yAxis: {}\n});\n\ndeepExtend(HeatmapPlotArea.prototype, PlotAreaEventsMixin);\n\nexport default HeatmapPlotArea;\n","import PlotAreaBase from './plotarea-base';\nimport PieChart from '../pie-chart/pie-chart';\n\nimport { append } from '../../common';\n\nclass PiePlotArea extends PlotAreaBase {\n render() {\n this.createPieChart(this.series);\n }\n\n createPieChart(series) {\n const firstSeries = series[0];\n const pieChart = new PieChart(this, {\n series: series,\n padding: firstSeries.padding,\n startAngle: firstSeries.startAngle,\n connectors: firstSeries.connectors,\n legend: this.options.legend\n });\n\n this.appendChart(pieChart);\n }\n\n appendChart(chart, pane) {\n super.appendChart(chart, pane);\n append(this.options.legend.items, chart.legendItems);\n }\n}\n\nexport default PiePlotArea;","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport { ChartElement, Box } from '../../core';\nimport Crosshair from '../crosshair/crosshair';\nimport Pane from '../pane';\nimport { hasValue } from '../utils';\n\nimport { WHITE, BLACK, X, Y, COORD_PRECISION, TOP, BOTTOM, LEFT, RIGHT, START, END } from '../../common/constants';\nimport { append, deepExtend, defined, getSpacing, getTemplate, inArray, isFunction, isString, limitValue, round, setDefaultOptions } from '../../common';\n\nclass PlotAreaBase extends ChartElement {\n constructor(series, options, chartService) {\n super(options);\n\n this.initFields(series, options);\n this.series = series;\n this.initSeries();\n this.charts = [];\n this.options.legend = this.options.legend || {};\n this.options.legend.items = [];\n this.axes = [];\n this.crosshairs = [];\n this.chartService = chartService;\n this.originalOptions = options;\n\n this.createPanes();\n this.render();\n this.createCrosshairs();\n }\n\n initFields() { }\n\n initSeries() {\n const series = this.series;\n\n for (let i = 0; i < series.length; i++) {\n series[i].index = i;\n }\n }\n\n createPanes() {\n const titleOptions = this.options.title || {};\n const paneDefaults = this.options.paneDefaults;\n const paneOptions = this.options.panes || [];\n const panesLength = Math.max(paneOptions.length, 1);\n const panes = [];\n\n const defaults = deepExtend({\n title: {\n color: titleOptions.color\n }\n }, paneDefaults);\n\n for (let i = 0; i < panesLength; i++) {\n const options = deepExtend({}, defaults, paneOptions[i]);\n if (isString(options.title)) {\n options.title = deepExtend({ text: options.title }, defaults.title);\n }\n\n const currentPane = new Pane(options);\n currentPane.paneIndex = i;\n\n panes.push(currentPane);\n this.append(currentPane);\n }\n\n this.panes = panes;\n }\n\n crosshairOptions(axis) {\n return axis.options.crosshair;\n }\n\n createCrosshairs(panes = this.panes) {\n for (let i = 0; i < panes.length; i++) {\n const pane = panes[i];\n for (let j = 0; j < pane.axes.length; j++) {\n const axis = pane.axes[j];\n const options = this.crosshairOptions(axis);\n if (options && options.visible) {\n const currentCrosshair = new Crosshair(this.chartService, axis, options);\n\n this.crosshairs.push(currentCrosshair);\n pane.content.append(currentCrosshair);\n }\n }\n }\n }\n\n removeCrosshairs(pane) {\n const crosshairs = this.crosshairs;\n const axes = pane.axes;\n\n for (let i = crosshairs.length - 1; i >= 0; i--) {\n for (let j = 0; j < axes.length; j++) {\n if (crosshairs[i].axis === axes[j]) {\n crosshairs.splice(i, 1);\n break;\n }\n }\n }\n }\n\n hideCrosshairs() {\n const crosshairs = this.crosshairs;\n for (let idx = 0; idx < crosshairs.length; idx++) {\n crosshairs[idx].hide();\n }\n }\n\n findPane(name) {\n const panes = this.panes;\n let matchingPane;\n\n for (let i = 0; i < panes.length; i++) {\n if (panes[i].options.name === name) {\n matchingPane = panes[i];\n break;\n }\n }\n\n return matchingPane || panes[0];\n }\n\n findPointPane(point) {\n const panes = this.panes;\n let matchingPane;\n\n for (let i = 0; i < panes.length; i++) {\n if (panes[i].box.containsPoint(point)) {\n matchingPane = panes[i];\n break;\n }\n }\n\n return matchingPane;\n }\n\n appendAxis(axis) {\n const pane = this.findPane(axis.options.pane);\n\n pane.appendAxis(axis);\n this.axes.push(axis);\n axis.plotArea = this;\n }\n\n removeAxis(axisToRemove) {\n const filteredAxes = [];\n\n for (let i = 0; i < this.axes.length; i++) {\n const axis = this.axes[i];\n if (axisToRemove !== axis) {\n filteredAxes.push(axis);\n } else {\n axis.destroy();\n }\n }\n\n this.axes = filteredAxes;\n }\n\n appendChart(chart, pane) {\n this.charts.push(chart);\n if (pane) {\n pane.appendChart(chart);\n } else {\n this.append(chart);\n }\n }\n\n removeChart(chartToRemove) {\n const filteredCharts = [];\n\n for (let i = 0; i < this.charts.length; i++) {\n const chart = this.charts[i];\n if (chart !== chartToRemove) {\n filteredCharts.push(chart);\n } else {\n chart.destroy();\n }\n }\n\n this.charts = filteredCharts;\n }\n\n addToLegend(series) {\n const count = series.length;\n const legend = this.options.legend;\n const labels = legend.labels || {};\n const inactiveItems = legend.inactiveItems || {};\n const inactiveItemsLabels = inactiveItems.labels || {};\n const data = [];\n\n for (let i = 0; i < count; i++) {\n const currentSeries = series[i];\n const seriesVisible = currentSeries.visible !== false;\n if (currentSeries.visibleInLegend === false) {\n continue;\n }\n\n let text = currentSeries.name;\n const labelTemplate = seriesVisible ? getTemplate(labels) : getTemplate(inactiveItemsLabels) || getTemplate(labels);\n if (labelTemplate) {\n text = labelTemplate({\n text: hasValue(text) ? text : \"\",\n series: currentSeries\n });\n }\n\n const defaults = currentSeries._defaults;\n let color = currentSeries.color;\n if (isFunction(color) && defaults) {\n color = defaults.color;\n }\n\n let itemLabelOptions, markerColor;\n if (seriesVisible) {\n itemLabelOptions = {};\n markerColor = color;\n } else {\n itemLabelOptions = {\n color: inactiveItemsLabels.color,\n font: inactiveItemsLabels.font\n };\n markerColor = inactiveItems.markers.color;\n }\n\n if (hasValue(text) && text !== \"\") {\n data.push({\n text: text,\n labels: itemLabelOptions,\n markerColor: markerColor,\n series: currentSeries,\n active: seriesVisible\n });\n }\n }\n\n append(legend.items, data);\n }\n\n groupAxes(panes) {\n const xAxes = [];\n const yAxes = [];\n\n for (let paneIx = 0; paneIx < panes.length; paneIx++) {\n const paneAxes = panes[paneIx].axes;\n for (let axisIx = 0; axisIx < paneAxes.length; axisIx++) {\n const axis = paneAxes[axisIx];\n if (axis.options.vertical) {\n yAxes.push(axis);\n } else {\n xAxes.push(axis);\n }\n }\n }\n\n return { x: xAxes, y: yAxes, any: xAxes.concat(yAxes) };\n }\n\n groupSeriesByPane() {\n const series = this.series;\n const seriesByPane = {};\n\n for (let i = 0; i < series.length; i++) {\n const currentSeries = series[i];\n const pane = this.seriesPaneName(currentSeries);\n\n if (seriesByPane[pane]) {\n seriesByPane[pane].push(currentSeries);\n } else {\n seriesByPane[pane] = [ currentSeries ];\n }\n }\n\n return seriesByPane;\n }\n\n filterVisibleSeries(series) {\n const result = [];\n\n for (let i = 0; i < series.length; i++) {\n const currentSeries = series[i];\n if (currentSeries.visible !== false) {\n result.push(currentSeries);\n }\n }\n\n return result;\n }\n\n reflow(targetBox) {\n const options = this.options.plotArea;\n const panes = this.panes;\n const margin = getSpacing(options.margin);\n\n this.box = targetBox.clone().unpad(margin);\n this.reflowPanes();\n\n this.detachLabels();\n this.reflowAxes(panes);\n this.reflowCharts(panes);\n }\n\n redraw(panes) {\n const panesArray = [].concat(panes);\n this.initSeries();\n\n //prevents leak during partial redraws. the cached gradients observers retain reference to the destroyed elements.\n const root = this.getRoot();\n if (root) {\n root.cleanGradients();\n }\n\n for (let i = 0; i < panesArray.length; i++) {\n this.removeCrosshairs(panesArray[i]);\n panesArray[i].empty();\n }\n\n this.render(panesArray);\n this.detachLabels();\n this.reflowAxes(this.panes);\n this.reflowCharts(panesArray);\n\n this.createCrosshairs(panesArray);\n\n for (let i = 0; i < panesArray.length; i++) {\n panesArray[i].refresh();\n }\n }\n\n axisCrossingValues(axis, crossingAxes) {\n const options = axis.options;\n const crossingValues = [].concat(\n options.axisCrossingValues || options.axisCrossingValue\n );\n const valuesToAdd = crossingAxes.length - crossingValues.length;\n const defaultValue = crossingValues[0] || 0;\n\n for (let i = 0; i < valuesToAdd; i++) {\n crossingValues.push(defaultValue);\n }\n\n return crossingValues;\n }\n\n alignAxisTo(axis, targetAxis, crossingValue, targetCrossingValue) {\n const slot = axis.getSlot(crossingValue, crossingValue, true);\n const slotEdge = axis.options.reverse ? 2 : 1;\n const targetSlot = targetAxis.getSlot(targetCrossingValue, targetCrossingValue, true);\n const targetEdge = targetAxis.options.reverse ? 2 : 1;\n const axisBox = axis.box.translate(\n targetSlot[X + targetEdge] - slot[X + slotEdge],\n targetSlot[Y + targetEdge] - slot[Y + slotEdge]\n );\n\n if (axis.pane !== targetAxis.pane) {\n axisBox.translate(0, axis.pane.box.y1 - targetAxis.pane.box.y1);\n }\n\n axis.reflow(axisBox);\n }\n\n alignAxes(xAxes, yAxes) {\n const xAnchor = xAxes[0];\n const yAnchor = yAxes[0];\n const xAnchorCrossings = this.axisCrossingValues(xAnchor, yAxes);\n const yAnchorCrossings = this.axisCrossingValues(yAnchor, xAxes);\n const leftAnchors = {};\n const rightAnchors = {};\n const topAnchors = {};\n const bottomAnchors = {};\n\n for (let i = 0; i < yAxes.length; i++) {\n const axis = yAxes[i];\n const pane = axis.pane;\n const paneId = pane.id;\n const visible = axis.options.visible !== false;\n\n // Locate pane anchor, if any, and use its axisCrossingValues\n const anchor = paneAnchor(xAxes, pane) || xAnchor;\n let anchorCrossings = xAnchorCrossings;\n\n if (anchor !== xAnchor) {\n anchorCrossings = this.axisCrossingValues(anchor, yAxes);\n }\n\n this.alignAxisTo(axis, anchor, yAnchorCrossings[i], anchorCrossings[i]);\n\n if (axis.options._overlap) {\n continue;\n }\n\n if (round(axis.lineBox().x1) === round(anchor.lineBox().x1)) {\n // Push the axis to the left the previous y-axis so they don't overlap\n if (leftAnchors[paneId]) {\n axis.reflow(axis.box\n .alignTo(leftAnchors[paneId].box, LEFT)\n .translate(-axis.options.margin, 0)\n );\n }\n\n if (visible) {\n leftAnchors[paneId] = axis;\n }\n }\n\n if (round(axis.lineBox().x2) === round(anchor.lineBox().x2)) {\n // Flip the labels on the right if we're at the right end of the pane\n if (!axis._mirrored) {\n axis.options.labels.mirror = !axis.options.labels.mirror;\n axis._mirrored = true;\n }\n\n this.alignAxisTo(axis, anchor, yAnchorCrossings[i], anchorCrossings[i]);\n\n // Push the axis to the right the previous y-axis so they don't overlap\n if (rightAnchors[paneId]) {\n axis.reflow(axis.box\n .alignTo(rightAnchors[paneId].box, RIGHT)\n .translate(axis.options.margin, 0)\n );\n }\n\n if (visible) {\n rightAnchors[paneId] = axis;\n }\n }\n\n if (i !== 0 && yAnchor.pane === axis.pane) {\n axis.alignTo(yAnchor);\n axis.reflow(axis.box);\n }\n }\n\n for (let i = 0; i < xAxes.length; i++) {\n const axis = xAxes[i];\n const pane = axis.pane;\n const paneId = pane.id;\n const visible = axis.options.visible !== false;\n\n // Locate pane anchor and use its axisCrossingValues\n const anchor = paneAnchor(yAxes, pane) || yAnchor;\n let anchorCrossings = yAnchorCrossings;\n if (anchor !== yAnchor) {\n anchorCrossings = this.axisCrossingValues(anchor, xAxes);\n }\n\n this.alignAxisTo(axis, anchor, xAnchorCrossings[i], anchorCrossings[i]);\n\n if (axis.options._overlap) {\n continue;\n }\n\n if (round(axis.lineBox().y1) === round(anchor.lineBox().y1)) {\n // Flip the labels on top if we're at the top of the pane\n if (!axis._mirrored) {\n axis.options.labels.mirror = !axis.options.labels.mirror;\n axis._mirrored = true;\n }\n this.alignAxisTo(axis, anchor, xAnchorCrossings[i], anchorCrossings[i]);\n\n // Push the axis above the previous x-axis so they don't overlap\n if (topAnchors[paneId]) {\n axis.reflow(axis.box\n .alignTo(topAnchors[paneId].box, TOP)\n .translate(0, -axis.options.margin)\n );\n }\n\n if (visible) {\n topAnchors[paneId] = axis;\n }\n }\n\n if (round(axis.lineBox().y2, COORD_PRECISION) === round(anchor.lineBox().y2, COORD_PRECISION)) {\n // Push the axis below the previous x-axis so they don't overlap\n if (bottomAnchors[paneId]) {\n axis.reflow(axis.box\n .alignTo(bottomAnchors[paneId].box, BOTTOM)\n .translate(0, axis.options.margin)\n );\n }\n\n if (visible) {\n bottomAnchors[paneId] = axis;\n }\n }\n\n if (i !== 0) {\n axis.alignTo(xAnchor);\n axis.reflow(axis.box);\n }\n }\n }\n\n shrinkAxisWidth(panes) {\n const axes = this.groupAxes(panes).any;\n const axisBox = axisGroupBox(axes);\n let overflowX = 0;\n\n for (let i = 0; i < panes.length; i++) {\n const currentPane = panes[i];\n\n if (currentPane.axes.length > 0) {\n overflowX = Math.max(\n overflowX,\n axisBox.width() - currentPane.contentBox.width()\n );\n }\n }\n\n if (overflowX !== 0) {\n for (let i = 0; i < axes.length; i++) {\n const currentAxis = axes[i];\n\n if (!currentAxis.options.vertical) {\n currentAxis.reflow(currentAxis.box.shrink(overflowX, 0));\n }\n }\n }\n }\n\n shrinkAxisHeight(panes) {\n let shrinked;\n\n for (let i = 0; i < panes.length; i++) {\n const currentPane = panes[i];\n const axes = currentPane.axes;\n const overflowY = Math.max(0, axisGroupBox(axes).height() - currentPane.contentBox.height());\n\n if (overflowY !== 0) {\n for (let j = 0; j < axes.length; j++) {\n const currentAxis = axes[j];\n\n if (currentAxis.options.vertical) {\n currentAxis.reflow(\n currentAxis.box.shrink(0, overflowY)\n );\n }\n }\n shrinked = true;\n }\n }\n\n return shrinked;\n }\n\n fitAxes(panes) {\n const axes = this.groupAxes(panes).any;\n let offsetX = 0;\n\n for (let i = 0; i < panes.length; i++) {\n const currentPane = panes[i];\n const paneAxes = currentPane.axes;\n const paneBox = currentPane.contentBox;\n\n if (paneAxes.length > 0) {\n const axisBox = axisGroupBox(paneAxes);\n // OffsetY is calculated and applied per pane\n const offsetY = Math.max(paneBox.y1 - axisBox.y1, paneBox.y2 - axisBox.y2);\n\n // OffsetX is calculated and applied globally\n offsetX = Math.max(offsetX, paneBox.x1 - axisBox.x1);\n\n\n for (let j = 0; j < paneAxes.length; j++) {\n const currentAxis = paneAxes[j];\n\n currentAxis.reflow(\n currentAxis.box.translate(0, offsetY)\n );\n }\n }\n }\n\n for (let i = 0; i < axes.length; i++) {\n const currentAxis = axes[i];\n\n currentAxis.reflow(\n currentAxis.box.translate(offsetX, 0)\n );\n }\n }\n\n reflowAxes(panes) {\n const axes = this.groupAxes(panes);\n\n for (let i = 0; i < panes.length; i++) {\n this.reflowPaneAxes(panes[i]);\n }\n\n if (axes.x.length > 0 && axes.y.length > 0) {\n this.alignAxes(axes.x, axes.y);\n this.shrinkAxisWidth(panes);\n\n this.autoRotateAxisLabels(axes);\n\n this.alignAxes(axes.x, axes.y);\n if (this.shrinkAxisWidth(panes)) {\n this.alignAxes(axes.x, axes.y);\n }\n\n this.shrinkAxisHeight(panes);\n this.alignAxes(axes.x, axes.y);\n\n if (this.shrinkAxisHeight(panes)) {\n this.alignAxes(axes.x, axes.y);\n }\n\n this.fitAxes(panes);\n }\n }\n\n autoRotateAxisLabels(groupedAxes) {\n const { panes } = this;\n const axes = allPaneAxes(panes);\n let rotated;\n\n for (let idx = 0; idx < axes.length; idx++) {\n const axis = axes[idx];\n if (axis.autoRotateLabels()) {\n rotated = true;\n }\n }\n\n if (rotated) {\n for (let idx = 0; idx < panes.length; idx++) {\n this.reflowPaneAxes(panes[idx]);\n }\n\n if (groupedAxes.x.length > 0 && groupedAxes.y.length > 0) {\n this.alignAxes(groupedAxes.x, groupedAxes.y);\n this.shrinkAxisWidth(panes);\n }\n }\n }\n\n reflowPaneAxes(pane) {\n const axes = pane.axes;\n const length = axes.length;\n\n if (length > 0) {\n for (let i = 0; i < length; i++) {\n axes[i].reflow(pane.contentBox);\n }\n }\n }\n\n reflowCharts(panes) {\n const charts = this.charts;\n const count = charts.length;\n const box = this.box;\n\n for (let i = 0; i < count; i++) {\n const chartPane = charts[i].pane;\n if (!chartPane || inArray(chartPane, panes)) {\n charts[i].reflow(box);\n }\n }\n }\n\n reflowPanes() {\n const { box, panes } = this;\n const panesLength = panes.length;\n let remainingHeight = box.height();\n let remainingPanes = panesLength;\n let autoHeightPanes = 0;\n let top = box.y1;\n\n for (let i = 0; i < panesLength; i++) {\n const currentPane = panes[i];\n const height = currentPane.options.height;\n\n currentPane.options.width = box.width();\n\n if (!currentPane.options.height) {\n autoHeightPanes++;\n } else {\n if (height.indexOf && height.indexOf(\"%\")) {\n const percents = parseInt(height, 10) / 100;\n currentPane.options.height = percents * box.height();\n }\n\n currentPane.reflow(box.clone());\n\n remainingHeight -= currentPane.options.height;\n }\n }\n\n for (let i = 0; i < panesLength; i++) {\n const currentPane = panes[i];\n\n if (!currentPane.options.height) {\n currentPane.options.height = remainingHeight / autoHeightPanes;\n }\n }\n\n for (let i = 0; i < panesLength; i++) {\n const currentPane = panes[i];\n const paneBox = box\n .clone()\n .move(box.x1, top);\n\n currentPane.reflow(paneBox);\n\n remainingPanes--;\n top += currentPane.options.height;\n }\n }\n\n backgroundBox() {\n const axes = this.axes;\n const axesCount = axes.length;\n let box;\n\n for (let i = 0; i < axesCount; i++) {\n const axisA = axes[i];\n\n for (let j = 0; j < axesCount; j++) {\n const axisB = axes[j];\n\n if (axisA.options.vertical !== axisB.options.vertical) {\n const lineBox = axisA.lineBox().clone().wrap(axisB.lineBox());\n\n if (!box) {\n box = lineBox;\n } else {\n box = box.wrap(lineBox);\n }\n }\n }\n }\n\n return box || this.box;\n }\n\n chartsBoxes() {\n const panes = this.panes;\n const boxes = [];\n\n for (let idx = 0; idx < panes.length; idx++) {\n boxes.push(panes[idx].chartsBox());\n }\n\n return boxes;\n }\n\n addBackgroundPaths(multipath) {\n const boxes = this.chartsBoxes();\n for (let idx = 0; idx < boxes.length; idx++) {\n multipath.paths.push(draw.Path.fromRect(boxes[idx].toRect()));\n }\n }\n\n backgroundContainsPoint(point) {\n const boxes = this.chartsBoxes();\n for (let idx = 0; idx < boxes.length; idx++) {\n if (boxes[idx].containsPoint(point)) {\n return true;\n }\n }\n }\n\n createVisual() {\n super.createVisual();\n\n const options = this.options.plotArea;\n let { opacity, background, border = {} } = options;\n if (isTransparent(background)) {\n background = WHITE;\n opacity = 0;\n }\n\n const bg = this._bgVisual = new draw.MultiPath({\n fill: {\n color: background,\n opacity: opacity\n },\n stroke: {\n color: border.width ? border.color : \"\",\n width: border.width,\n dashType: border.dashType\n },\n zIndex: -1\n });\n\n this.addBackgroundPaths(bg);\n\n this.appendVisual(bg);\n }\n\n pointsByCategoryIndex(categoryIndex) {\n const charts = this.charts;\n const result = [];\n\n if (categoryIndex !== null) {\n for (let i = 0; i < charts.length; i++) {\n const chart = charts[i];\n if (chart.pane.options.name === \"_navigator\") {\n continue;\n }\n\n const points = charts[i].categoryPoints[categoryIndex];\n if (points && points.length) {\n for (let j = 0; j < points.length; j++) {\n const point = points[j];\n if (point && defined(point.value) && point.value !== null) {\n result.push(point);\n }\n }\n }\n }\n }\n\n return result;\n }\n\n pointsBySeriesIndex(seriesIndex) {\n return this.filterPoints(function(point) {\n return point.series.index === seriesIndex;\n });\n }\n\n pointsBySeriesName(name) {\n return this.filterPoints(function(point) {\n return point.series.name === name;\n });\n }\n\n filterPoints(callback) {\n const charts = this.charts;\n const result = [];\n\n for (let i = 0; i < charts.length; i++) {\n const chart = charts[i];\n const points = chart.points;\n for (let j = 0; j < points.length; j++) {\n const point = points[j];\n if (point && point.visible !== false && callback(point)) {\n result.push(point);\n }\n }\n }\n\n return result;\n }\n\n findPoint(callback) {\n const charts = this.charts;\n\n for (let i = 0; i < charts.length; i++) {\n const chart = charts[i];\n const points = chart.points;\n for (let j = 0; j < points.length; j++) {\n const point = points[j];\n if (point && point.visible !== false && callback(point)) {\n return point;\n }\n }\n }\n }\n\n paneByPoint(point) {\n const panes = this.panes;\n\n for (let i = 0; i < panes.length; i++) {\n const pane = panes[i];\n if (pane.box.containsPoint(point)) {\n return pane;\n }\n }\n }\n\n detachLabels() {\n const axes = this.groupAxes(this.panes);\n const xAxes = axes.x;\n const yAxes = axes.y;\n\n this.detachAxisGroupLabels(yAxes, xAxes);\n this.detachAxisGroupLabels(xAxes, yAxes);\n }\n\n detachAxisGroupLabels(axes, crossingAxes) {\n let labelAxisCount = 0;\n\n for (let i = 0; i < axes.length; i++) {\n const axis = axes[i];\n const pane = axis.pane;\n const anchor = paneAnchor(crossingAxes, pane) || crossingAxes[0];\n const axisIndex = i + labelAxisCount;\n const labelAxis = this.createLabelAxis(axis, axisIndex, anchor);\n\n if (labelAxis) {\n labelAxisCount++;\n\n const pos = pane.axes.indexOf(axis) + labelAxisCount;\n pane.appendAxisAt(labelAxis, pos);\n }\n }\n }\n\n createLabelAxis(axis, axisIndex, anchor) {\n const labelOptions = axis.options.labels;\n const position = labelOptions.position;\n const onAxis = position !== END && position !== START;\n const visible = labelOptions.visible;\n\n if (onAxis || visible === false) {\n return null;\n }\n\n const allAxes = this.groupAxes(this.panes);\n const crossingAxes = anchor.options.vertical ? allAxes.x : allAxes.y;\n const anchorCrossings = this.axisCrossingValues(anchor, crossingAxes);\n const end = position === END;\n const range = anchor.range();\n const edge = end ? range.max : range.min;\n const crossingValue = limitValue(anchorCrossings[axisIndex], range.min, range.max);\n\n if (crossingValue - edge === 0) {\n return null;\n }\n\n anchorCrossings.splice(axisIndex + 1, 0, edge);\n anchor.options.axisCrossingValues = anchorCrossings;\n\n const labelAxis = axis.clone();\n axis.clear();\n\n labelAxis.options.name = undefined;\n labelAxis.options.line.visible = false;\n\n labelAxis.options.crosshair = undefined;\n labelAxis.options.notes = undefined;\n labelAxis.options.plotBands = undefined;\n\n return labelAxis;\n }\n}\n\nfunction isSingleAxis(axis) {\n return !axis.pane.axes.some((a) =>\n a.options.vertical === axis.options.vertical && a !== axis && a.options.visible !== false\n );\n}\n\nfunction axisGroupBox(axes) {\n const length = axes.length;\n let box;\n\n for (let i = 0; i < length; i++) {\n const axis = axes[i];\n const visible = axis.options.visible !== false;\n if (visible || isSingleAxis(axis)) {\n const axisBox = visible ? axis.contentBox() : axis.lineBox();\n\n if (!box) {\n box = axisBox.clone();\n } else {\n box.wrap(axisBox);\n }\n }\n }\n\n return box || new Box();\n}\n\nfunction paneAnchor(axes, pane) {\n for (let i = 0; i < axes.length; i++) {\n const anchor = axes[i];\n if (anchor && anchor.pane === pane) {\n return anchor;\n }\n }\n}\n\nfunction isTransparent(color) {\n return color === \"\" || color === null || color === \"none\" || color === \"transparent\" || !defined(color);\n}\n\nconst allPaneAxes = (panes) => panes.reduce((acc, pane) => acc.concat(pane.axes), []);\n\nsetDefaultOptions(PlotAreaBase, {\n series: [],\n plotArea: {\n margin: {}\n },\n background: \"\",\n border: {\n color: BLACK,\n width: 0\n },\n paneDefaults: {\n title: {}\n },\n legend: {\n inactiveItems: {\n labels: {\n color: \"#919191\"\n },\n markers: {\n color: \"#919191\"\n }\n }\n }\n});\n\nexport default PlotAreaBase;\n","import filterSeriesByType from '../utils/filter-series-by-type';\nimport { Class } from '../../common';\n\nclass PlotAreaFactory extends Class {\n\n constructor() {\n super();\n\n this._registry = [];\n }\n\n register(type, seriesTypes) {\n this._registry.push({\n type: type,\n seriesTypes: seriesTypes\n });\n }\n\n create(srcSeries, options, chartService) {\n const registry = this._registry;\n let match = registry[0];\n let series;\n\n for (let idx = 0; idx < registry.length; idx++) {\n const entry = registry[idx];\n series = filterSeriesByType(srcSeries, entry.seriesTypes);\n\n if (series.length > 0) {\n match = entry;\n break;\n }\n }\n\n return new match.type(series, options, chartService);\n }\n}\n\nPlotAreaFactory.current = new PlotAreaFactory();\n\nexport default PlotAreaFactory;","import PlotAreaBase from './plotarea-base';\nimport AxisGroupRangeTracker from '../axis-group-range-tracker';\nimport { RadarLogarithmicAxis, RadarNumericAxis } from '../../core';\n\nimport { LOGARITHMIC } from '../constants';\n\nimport { getSpacing } from '../../common';\nimport { Y, CENTER } from '../../common/constants';\n\nconst DEFAULT_PADDING = 0.15;\n\nclass PolarPlotAreaBase extends PlotAreaBase {\n initFields() {\n this.valueAxisRangeTracker = new AxisGroupRangeTracker();\n }\n\n render() {\n this.addToLegend(this.series);\n this.createPolarAxis();\n this.createCharts();\n this.createValueAxis();\n }\n\n alignAxes() {\n const axis = this.valueAxis;\n const range = axis.range();\n const crossingValue = axis.options.reverse ? range.max : range.min;\n const slot = axis.getSlot(crossingValue);\n const center = this.polarAxis.getSlot(0).center;\n const axisBox = axis.box.translate(\n center.x - slot.x1,\n center.y - slot.y1\n );\n\n axis.reflow(axisBox);\n }\n\n createValueAxis() {\n const tracker = this.valueAxisRangeTracker;\n const defaultRange = tracker.query();\n const axisOptions = this.valueAxisOptions({\n roundToMajorUnit: false,\n zIndex: -1\n });\n let axisType, axisDefaultRange;\n\n if (axisOptions.type === LOGARITHMIC) {\n axisType = RadarLogarithmicAxis;\n axisDefaultRange = { min: 0.1, max: 1 };\n } else {\n axisType = RadarNumericAxis;\n axisDefaultRange = { min: 0, max: 1 };\n }\n\n const range = tracker.query(name) || defaultRange || axisDefaultRange;\n\n if (range && defaultRange) {\n range.min = Math.min(range.min, defaultRange.min);\n range.max = Math.max(range.max, defaultRange.max);\n }\n\n const valueAxis = new axisType(\n range.min, range.max,\n axisOptions,\n this.chartService\n );\n\n this.valueAxis = valueAxis;\n this.appendAxis(valueAxis);\n }\n\n reflowAxes() {\n const { options: { plotArea: options }, valueAxis, polarAxis, box } = this;\n const defaultPadding = Math.min(box.width(), box.height()) * DEFAULT_PADDING;\n const padding = getSpacing(options.padding || {}, defaultPadding);\n const paddingBox = box.clone().unpad(padding);\n const axisBox = paddingBox.clone();\n\n axisBox.y2 = axisBox.y1 + Math.min(axisBox.width(), axisBox.height());\n axisBox.align(paddingBox, Y, CENTER);\n\n const valueAxisBox = axisBox.clone().shrink(0, axisBox.height() / 2);\n\n polarAxis.reflow(axisBox);\n valueAxis.reflow(valueAxisBox);\n const heightDiff = valueAxis.lineBox().height() - valueAxis.box.height();\n valueAxis.reflow(valueAxis.box.unpad({ top: heightDiff }));\n\n this.axisBox = axisBox;\n this.alignAxes(axisBox);\n }\n\n backgroundBox() {\n return this.box;\n }\n\n detachLabels() {}\n}\n\nexport default PolarPlotAreaBase;\n","import PolarPlotAreaBase from './polar-plotarea-base';\nimport PlotAreaBase from './plotarea-base';\nimport PolarLineChart from '../polar-line-chart/polar-line-chart';\nimport PolarScatterChart from '../polar-scatter-chart/polar-scatter-chart';\nimport PolarAreaChart from '../polar-area-chart/polar-area-chart';\nimport PlotAreaEventsMixin from '../mixins/plotarea-events-mixin';\n\nimport { PolarAxis, Point } from '../../core';\n\nimport { POLAR_AREA, POLAR_LINE, POLAR_SCATTER } from '../constants';\n\nimport filterSeriesByType from '../utils/filter-series-by-type';\n\nimport { ARC } from '../../common/constants';\nimport { deepExtend, eventElement, setDefaultOptions } from '../../common';\n\nclass PolarPlotArea extends PolarPlotAreaBase {\n createPolarAxis() {\n const polarAxis = new PolarAxis(this.options.xAxis, this.chartService);\n\n this.polarAxis = polarAxis;\n this.axisX = polarAxis;\n this.appendAxis(polarAxis);\n }\n\n valueAxisOptions(defaults) {\n return deepExtend(defaults, {\n majorGridLines: { type: ARC },\n minorGridLines: { type: ARC }\n }, this.options.yAxis);\n }\n\n createValueAxis() {\n super.createValueAxis();\n this.axisY = this.valueAxis;\n }\n\n appendChart(chart, pane) {\n this.valueAxisRangeTracker.update(chart.yAxisRanges);\n\n PlotAreaBase.prototype.appendChart.call(this, chart, pane);\n }\n\n createCharts() {\n const series = this.filterVisibleSeries(this.series);\n const pane = this.panes[0];\n\n this.createLineChart(\n filterSeriesByType(series, [ POLAR_LINE ]),\n pane\n );\n\n this.createScatterChart(\n filterSeriesByType(series, [ POLAR_SCATTER ]),\n pane\n );\n\n this.createAreaChart(\n filterSeriesByType(series, [ POLAR_AREA ]),\n pane\n );\n }\n\n createLineChart(series, pane) {\n if (series.length === 0) {\n return;\n }\n\n const lineChart = new PolarLineChart(this, { series: series });\n\n this.appendChart(lineChart, pane);\n }\n\n createScatterChart(series, pane) {\n if (series.length === 0) {\n return;\n }\n\n const scatterChart = new PolarScatterChart(this, { series: series });\n\n this.appendChart(scatterChart, pane);\n }\n\n createAreaChart(series, pane) {\n if (series.length === 0) {\n return;\n }\n\n const areaChart = new PolarAreaChart(this, { series: series });\n\n this.appendChart(areaChart, pane);\n }\n\n _dispatchEvent(chart, e, eventType) {\n const coords = chart._eventCoordinates(e);\n const point = new Point(coords.x, coords.y);\n const xValue = this.axisX.getValue(point);\n const yValue = this.axisY.getValue(point);\n\n if (xValue !== null && yValue !== null) {\n chart.trigger(eventType, {\n element: eventElement(e),\n x: xValue,\n y: yValue\n });\n }\n }\n\n createCrosshairs() {}\n}\n\nsetDefaultOptions(PolarPlotArea, {\n xAxis: {},\n yAxis: {}\n});\n\ndeepExtend(PolarPlotArea.prototype, PlotAreaEventsMixin);\n\nexport default PolarPlotArea;","import PolarPlotAreaBase from './polar-plotarea-base';\nimport CategoricalPlotArea from './categorical-plotarea';\nimport RadarAreaChart from '../radar-area-chart/radar-area-chart';\nimport RadarLineChart from '../radar-line-chart/radar-line-chart';\nimport RadarBarChart from '../radar-bar-chart/radar-bar-chart';\nimport PlotAreaEventsMixin from '../mixins/plotarea-events-mixin';\n\nimport { RadarCategoryAxis, Point } from '../../core';\n\nimport { RADAR_AREA, RADAR_LINE, RADAR_COLUMN } from '../constants';\n\nimport filterSeriesByType from '../utils/filter-series-by-type';\n\nimport { ARC } from '../../common/constants';\nimport { eventElement, deepExtend, setDefaultOptions } from '../../common';\n\nclass RadarPlotArea extends PolarPlotAreaBase {\n createPolarAxis() {\n const categoryAxis = new RadarCategoryAxis(this.options.categoryAxis, this.chartService);\n\n this.polarAxis = categoryAxis;\n this.categoryAxis = categoryAxis;\n this.appendAxis(categoryAxis);\n this.aggregateCategories();\n this.createCategoryAxesLabels();\n }\n\n valueAxisOptions(defaults) {\n if (this._hasBarCharts) {\n deepExtend(defaults, {\n majorGridLines: { type: ARC },\n minorGridLines: { type: ARC }\n });\n }\n\n if (this._isStacked100) {\n deepExtend(defaults, {\n roundToMajorUnit: false,\n labels: { format: \"P0\" }\n });\n }\n\n return deepExtend(defaults, this.options.valueAxis);\n }\n\n aggregateCategories() {\n // No separate panes in radar charts\n CategoricalPlotArea.prototype.aggregateCategories.call(this, this.panes);\n }\n\n createCategoryAxesLabels() {\n CategoricalPlotArea.prototype.createCategoryAxesLabels.call(this, this.panes);\n }\n\n filterSeries(currentSeries) {\n // Not supported for radar charts\n return currentSeries;\n }\n\n createCharts() {\n const series = this.filterVisibleSeries(this.series);\n const pane = this.panes[0];\n\n this.createAreaChart(\n filterSeriesByType(series, [ RADAR_AREA ]),\n pane\n );\n\n this.createLineChart(\n filterSeriesByType(series, [ RADAR_LINE ]),\n pane\n );\n\n this.createBarChart(\n filterSeriesByType(series, [ RADAR_COLUMN ]),\n pane\n );\n }\n\n chartOptions(series) {\n const options = { series: series };\n const firstSeries = series[0];\n if (firstSeries) {\n const filteredSeries = this.filterVisibleSeries(series);\n const stack = firstSeries.stack;\n options.isStacked = stack && filteredSeries.length > 1;\n options.isStacked100 = stack && stack.type === \"100%\" && filteredSeries.length > 1;\n\n if (options.isStacked100) {\n this._isStacked100 = true;\n }\n }\n\n return options;\n }\n\n createAreaChart(series, pane) {\n if (series.length === 0) {\n return;\n }\n\n const areaChart = new RadarAreaChart(this, this.chartOptions(series));\n this.appendChart(areaChart, pane);\n }\n\n createLineChart(series, pane) {\n if (series.length === 0) {\n return;\n }\n\n const lineChart = new RadarLineChart(this, this.chartOptions(series));\n this.appendChart(lineChart, pane);\n }\n\n createBarChart(series, pane) {\n if (series.length === 0) {\n return;\n }\n\n const firstSeries = series[0];\n const options = this.chartOptions(series);\n options.gap = firstSeries.gap;\n options.spacing = firstSeries.spacing;\n\n const barChart = new RadarBarChart(this, options);\n this.appendChart(barChart, pane);\n\n this._hasBarCharts = true;\n }\n\n seriesCategoryAxis() {\n return this.categoryAxis;\n }\n\n _dispatchEvent(chart, e, eventType) {\n const coords = chart._eventCoordinates(e);\n const point = new Point(coords.x, coords.y);\n const category = this.categoryAxis.getCategory(point);\n const value = this.valueAxis.getValue(point);\n\n if (category !== null && value !== null) {\n chart.trigger(eventType, {\n element: eventElement(e),\n category: category,\n value: value\n });\n }\n }\n\n createCrosshairs() {}\n}\n\ndeepExtend(RadarPlotArea.prototype, PlotAreaEventsMixin, {\n appendChart: CategoricalPlotArea.prototype.appendChart,\n aggregateSeries: CategoricalPlotArea.prototype.aggregateSeries,\n seriesSourcePoints: CategoricalPlotArea.prototype.seriesSourcePoints\n});\n\nsetDefaultOptions(RadarPlotArea, {\n categoryAxis: {\n categories: []\n },\n valueAxis: {}\n});\n\nexport default RadarPlotArea;","import PlotAreaBase from './plotarea-base';\nimport AxisGroupRangeTracker from '../axis-group-range-tracker';\nimport PlotAreaEventsMixin from '../mixins/plotarea-events-mixin';\nimport ScatterChart from '../scatter-charts/scatter-chart';\nimport ScatterLineChart from '../scatter-charts/scatter-line-chart';\nimport BubbleChart from '../bubble-chart/bubble-chart';\nimport SeriesBinder from '../series-binder';\n\nimport { NumericAxis, LogarithmicAxis, DateValueAxis, Point } from '../../core';\n\nimport filterSeriesByType from '../utils/filter-series-by-type';\nimport equalsIgnoreCase from '../utils/equals-ignore-case';\nimport singleItemOrArray from '../utils/single-item-or-array';\n\nimport { SCATTER, SCATTER_LINE, BUBBLE, LOGARITHMIC } from '../constants';\n\nimport { DATE } from '../../common/constants';\nimport { deepExtend, eventElement, grep, inArray, setDefaultOptions } from '../../common';\n\nclass XYPlotArea extends PlotAreaBase {\n initFields() {\n this.namedXAxes = {};\n this.namedYAxes = {};\n\n this.xAxisRangeTracker = new AxisGroupRangeTracker();\n this.yAxisRangeTracker = new AxisGroupRangeTracker();\n }\n\n render(panes = this.panes) {\n const seriesByPane = this.groupSeriesByPane();\n\n for (let i = 0; i < panes.length; i++) {\n const pane = panes[i];\n const paneSeries = seriesByPane[pane.options.name || \"default\"] || [];\n this.addToLegend(paneSeries);\n const filteredSeries = this.filterVisibleSeries(paneSeries);\n\n if (!filteredSeries) {\n continue;\n }\n\n this.createScatterChart(\n filterSeriesByType(filteredSeries, SCATTER),\n pane\n );\n\n this.createScatterLineChart(\n filterSeriesByType(filteredSeries, SCATTER_LINE),\n pane\n );\n\n this.createBubbleChart(\n filterSeriesByType(filteredSeries, BUBBLE),\n pane\n );\n }\n\n this.createAxes(panes);\n }\n\n appendChart(chart, pane) {\n this.xAxisRangeTracker.update(chart.xAxisRanges);\n this.yAxisRangeTracker.update(chart.yAxisRanges);\n\n super.appendChart(chart, pane);\n }\n\n removeAxis(axis) {\n const axisName = axis.options.name;\n\n super.removeAxis(axis);\n\n if (axis.options.vertical) {\n this.yAxisRangeTracker.reset(axisName);\n delete this.namedYAxes[axisName];\n } else {\n this.xAxisRangeTracker.reset(axisName);\n delete this.namedXAxes[axisName];\n }\n\n if (axis === this.axisX) {\n delete this.axisX;\n }\n\n if (axis === this.axisY) {\n delete this.axisY;\n }\n }\n\n // TODO: Refactor, optionally use series.pane option\n seriesPaneName(series) {\n const options = this.options;\n const xAxisName = series.xAxis;\n const xAxisOptions = [].concat(options.xAxis);\n const xAxis = grep(xAxisOptions, function(a) { return a.name === xAxisName; })[0];\n const yAxisName = series.yAxis;\n const yAxisOptions = [].concat(options.yAxis);\n const yAxis = grep(yAxisOptions, function(a) { return a.name === yAxisName; })[0];\n const panes = options.panes || [ {} ];\n const defaultPaneName = panes[0].name || \"default\";\n const paneName = (xAxis || {}).pane || (yAxis || {}).pane || defaultPaneName;\n\n return paneName;\n }\n\n createScatterChart(series, pane) {\n if (series.length > 0) {\n this.appendChart(\n new ScatterChart(this, { series: series, clip: pane.options.clip }),\n pane\n );\n }\n }\n\n createScatterLineChart(series, pane) {\n if (series.length > 0) {\n this.appendChart(\n new ScatterLineChart(this, { series: series, clip: pane.options.clip }),\n pane\n );\n }\n }\n\n createBubbleChart(series, pane) {\n if (series.length > 0) {\n this.appendChart(\n new BubbleChart(this, { series: series, clip: pane.options.clip }),\n pane\n );\n }\n }\n\n createXYAxis(options, vertical, axisIndex) {\n const axisName = options.name;\n const namedAxes = vertical ? this.namedYAxes : this.namedXAxes;\n const tracker = vertical ? this.yAxisRangeTracker : this.xAxisRangeTracker;\n const axisOptions = deepExtend({ reverse: !vertical && this.chartService.rtl }, options, { vertical: vertical });\n const isLog = equalsIgnoreCase(axisOptions.type, LOGARITHMIC);\n const defaultRange = tracker.query();\n const defaultAxisRange = isLog ? { min: 0.1, max: 1 } : { min: 0, max: 1 };\n const range = tracker.query(axisName) || defaultRange || defaultAxisRange;\n const typeSamples = [ axisOptions.min, axisOptions.max ];\n const series = this.series;\n\n for (let seriesIx = 0; seriesIx < series.length; seriesIx++) {\n const currentSeries = series[seriesIx];\n const seriesAxisName = currentSeries[vertical ? \"yAxis\" : \"xAxis\"];\n if ((seriesAxisName === axisOptions.name) || (axisIndex === 0 && !seriesAxisName)) {\n const firstPointValue = SeriesBinder.current.bindPoint(currentSeries, 0).valueFields;\n typeSamples.push(firstPointValue[vertical ? \"y\" : \"x\"]);\n\n break;\n }\n }\n\n if (axisIndex === 0 && defaultRange) {\n range.min = Math.min(range.min, defaultRange.min);\n range.max = Math.max(range.max, defaultRange.max);\n }\n\n let inferredDate;\n\n for (let i = 0; i < typeSamples.length; i++) {\n if (typeSamples[i] instanceof Date) {\n inferredDate = true;\n break;\n }\n }\n\n let axisType;\n if (equalsIgnoreCase(axisOptions.type, DATE) || (!axisOptions.type && inferredDate)) {\n axisType = DateValueAxis;\n } else if (isLog) {\n axisType = LogarithmicAxis;\n } else {\n axisType = NumericAxis;\n }\n\n const axis = new axisType(range.min, range.max, axisOptions, this.chartService);\n axis.axisIndex = axisIndex;\n\n if (axisName) {\n if (namedAxes[axisName]) {\n throw new Error(`${ vertical ? \"Y\" : \"X\" } axis with name ${ axisName } is already defined`);\n }\n namedAxes[axisName] = axis;\n }\n\n this.appendAxis(axis);\n\n return axis;\n }\n\n createAxes(panes) {\n const options = this.options;\n const xAxesOptions = [].concat(options.xAxis);\n const xAxes = [];\n const yAxesOptions = [].concat(options.yAxis);\n const yAxes = [];\n\n for (let idx = 0; idx < xAxesOptions.length; idx++) {\n const axisPane = this.findPane(xAxesOptions[idx].pane);\n if (inArray(axisPane, panes)) {\n xAxes.push(this.createXYAxis(xAxesOptions[idx], false, idx));\n }\n }\n\n for (let idx = 0; idx < yAxesOptions.length; idx++) {\n const axisPane = this.findPane(yAxesOptions[idx].pane);\n if (inArray(axisPane, panes)) {\n yAxes.push(this.createXYAxis(yAxesOptions[idx], true, idx));\n }\n }\n\n this.axisX = this.axisX || xAxes[0];\n this.axisY = this.axisY || yAxes[0];\n }\n\n _dispatchEvent(chart, e, eventType) {\n const coords = chart._eventCoordinates(e);\n const point = new Point(coords.x, coords.y);\n const allAxes = this.axes;\n const length = allAxes.length;\n const xValues = [];\n const yValues = [];\n\n for (let i = 0; i < length; i++) {\n const axis = allAxes[i];\n const values = axis.options.vertical ? yValues : xValues;\n const currentValue = axis.getValue(point);\n if (currentValue !== null) {\n values.push(currentValue);\n }\n }\n\n if (xValues.length > 0 && yValues.length > 0) {\n chart.trigger(eventType, {\n element: eventElement(e),\n originalEvent: e,\n x: singleItemOrArray(xValues),\n y: singleItemOrArray(yValues)\n });\n }\n }\n\n updateAxisOptions(axis, options) {\n const vertical = axis.options.vertical;\n const axes = this.groupAxes(this.panes);\n const index = (vertical ? axes.y : axes.x).indexOf(axis);\n\n updateAxisOptions(this.options, index, vertical, options);\n updateAxisOptions(this.originalOptions, index, vertical, options);\n }\n}\n\nfunction updateAxisOptions(targetOptions, axisIndex, vertical, options) {\n const axisOptions = ([].concat(vertical ? targetOptions.yAxis : targetOptions.xAxis))[axisIndex];\n deepExtend(axisOptions, options);\n}\n\nsetDefaultOptions(XYPlotArea, {\n xAxis: {},\n yAxis: {}\n});\n\ndeepExtend(XYPlotArea.prototype, PlotAreaEventsMixin);\n\nexport default XYPlotArea;","import PolarLineChart from '../polar-line-chart/polar-line-chart';\nimport SplinePolarAreaSegment from './spline-polar-area-segment';\nimport PolarAreaSegment from './polar-area-segment';\n\nimport { SMOOTH, INTERPOLATE, ZERO, GAP } from '../constants';\n\nimport hasValue from '../utils/has-value';\n\nclass PolarAreaChart extends PolarLineChart {\n createSegment(linePoints, currentSeries, seriesIx) {\n const style = (currentSeries.line || {}).style;\n let segment;\n\n if (style === SMOOTH) {\n segment = new SplinePolarAreaSegment(linePoints, currentSeries, seriesIx);\n } else {\n segment = new PolarAreaSegment(linePoints, currentSeries, seriesIx);\n }\n return segment;\n }\n\n createMissingValue(value, missingValues) {\n let missingValue;\n\n if (hasValue(value.x) && missingValues !== INTERPOLATE) {\n missingValue = {\n x: value.x,\n y: value.y\n };\n if (missingValues === ZERO) {\n missingValue.y = 0;\n }\n }\n\n return missingValue;\n }\n\n seriesMissingValues(series) {\n return series.missingValues || ZERO;\n }\n\n _hasMissingValuesGap() {\n const series = this.options.series;\n\n for (let idx = 0; idx < series.length; idx++) {\n if (this.seriesMissingValues(series[idx]) === GAP) {\n return true;\n }\n }\n }\n\n sortPoints(points) {\n points.sort(xComparer);\n\n if (this._hasMissingValuesGap()) {\n for (let idx = 0; idx < points.length; idx++) {\n const point = points[idx];\n if (point) {\n const value = point.value;\n if (!hasValue(value.y) && this.seriesMissingValues(point.series) === GAP) {\n delete points[idx];\n }\n }\n }\n }\n\n return points;\n }\n}\n\nfunction xComparer(a, b) {\n return a.value.x - b.value.x;\n}\n\nexport default PolarAreaChart;","import { geometry as geom } from '@progress/kendo-drawing';\nimport AreaSegment from '../area-chart/area-segment';\n\nclass PolarAreaSegment extends AreaSegment {\n fillToAxes(fillPath) {\n const polarAxis = this.parent.plotArea.polarAxis;\n const center = polarAxis.box.center();\n const centerSegment = new geom.Segment([ center.x, center.y ]);\n\n fillPath.segments.unshift(centerSegment);\n fillPath.segments.push(centerSegment);\n }\n}\n\nexport default PolarAreaSegment;","import SplineAreaSegment from '../area-chart/spline-area-segment';\nimport { CurveProcessor } from '../../core';\n\nclass SplinePolarAreaSegment extends SplineAreaSegment {\n fillToAxes(fillPath) {\n const center = this._polarAxisCenter();\n fillPath.lineTo(center.x, center.y);\n }\n\n _polarAxisCenter() {\n const polarAxis = this.parent.plotArea.polarAxis;\n const center = polarAxis.box.center();\n return center;\n }\n\n strokeSegments() {\n let segments = this._strokeSegments;\n\n if (!segments) {\n const center = this._polarAxisCenter();\n const curveProcessor = new CurveProcessor(false);\n const linePoints = this.points();\n\n linePoints.push(center);\n segments = this._strokeSegments = curveProcessor.process(linePoints);\n segments.pop();\n }\n\n return segments;\n }\n}\n\nexport default SplinePolarAreaSegment;","import ScatterLineChart from '../scatter-charts/scatter-line-chart';\nimport PolarScatterChart from '../polar-scatter-chart/polar-scatter-chart';\n\nimport { setDefaultOptions } from '../../common';\n\nclass PolarLineChart extends ScatterLineChart {\n}\n\nPolarLineChart.prototype.pointSlot = PolarScatterChart.prototype.pointSlot;\n\nsetDefaultOptions(PolarLineChart, {\n clip: false\n});\n\nexport default PolarLineChart;","import ScatterChart from '../scatter-charts/scatter-chart';\n\nimport { Point, Box } from '../../core';\n\nimport { setDefaultOptions } from '../../common';\n\nclass PolarScatterChart extends ScatterChart {\n pointSlot(slotX, slotY) {\n const valueRadius = slotX.center.y - slotY.y1;\n const slot = Point.onCircle(slotX.center, slotX.startAngle, valueRadius);\n\n return new Box(slot.x, slot.y, slot.x, slot.y);\n }\n}\n\nsetDefaultOptions(PolarScatterChart, {\n clip: false\n});\n\nexport default PolarScatterChart;","import RadarLineChart from '../radar-line-chart/radar-line-chart';\nimport SplineRadarAreaSegment from './spline-radar-area-segment';\nimport RadarAreaSegment from './radar-area-segment';\n\nimport { SMOOTH, ZERO } from '../constants';\n\nclass RadarAreaChart extends RadarLineChart {\n createSegment(linePoints, currentSeries, seriesIx, prevSegment) {\n const isStacked = this.options.isStacked;\n const style = (currentSeries.line || {}).style;\n let previousSegment;\n let stackPoints;\n let segment;\n\n if (isStacked && seriesIx > 0 && prevSegment) {\n stackPoints = prevSegment.linePoints.slice(0);\n previousSegment = prevSegment;\n }\n\n if (style === SMOOTH) {\n segment = new SplineRadarAreaSegment(linePoints, currentSeries, seriesIx, previousSegment, stackPoints);\n segment.options.closed = true;\n } else {\n linePoints.push(linePoints[0]);\n segment = new RadarAreaSegment(linePoints, currentSeries, seriesIx, previousSegment, stackPoints);\n }\n\n return segment;\n }\n\n seriesMissingValues(series) {\n return series.missingValues || ZERO;\n }\n}\n\nexport default RadarAreaChart;","import AreaSegment from '../area-chart/area-segment';\n\nclass RadarAreaSegment extends AreaSegment {\n fillToAxes() {}\n}\n\nexport default RadarAreaSegment;","import SplineAreaSegment from '../area-chart/spline-area-segment';\n\nclass SplineRadarAreaSegment extends SplineAreaSegment {\n fillToAxes() {}\n}\n\nexport default SplineRadarAreaSegment;","import BarChart from '../bar-chart/bar-chart';\nimport RadarSegment from './radar-segment';\nimport RadarClusterLayout from '../layout/radar-cluster-layout';\nimport RadarStackLayout from '../layout/radar-stack-layout';\nimport CategoricalChart from '../categorical-chart';\n\nimport { setDefaultOptions } from '../../common';\n\nclass RadarBarChart extends BarChart {\n pointType() {\n return RadarSegment;\n }\n\n clusterType() {\n return RadarClusterLayout;\n }\n\n stackType() {\n return RadarStackLayout;\n }\n\n categorySlot(categoryAxis, categoryIx) {\n return categoryAxis.getSlot(categoryIx);\n }\n\n pointSlot(categorySlot, valueSlot) {\n const slot = categorySlot.clone();\n const y = categorySlot.center.y;\n\n slot.radius = y - valueSlot.y1;\n slot.innerRadius = y - valueSlot.y2;\n\n return slot;\n }\n\n reflowPoint(point, pointSlot) {\n point.sector = pointSlot;\n point.reflow();\n }\n\n createAnimation() {\n this.options.animation.center = this.box.toRect().center();\n super.createAnimation();\n }\n}\n\nRadarBarChart.prototype.reflow = CategoricalChart.prototype.reflow;\n\nsetDefaultOptions(RadarBarChart, {\n clip: false,\n limitPoints: false,\n animation: {\n type: \"pie\"\n }\n});\n\nexport default RadarBarChart;","import DonutSegment from '../donut-chart/donut-segment';\n\nimport { setDefaultOptions } from '../../common';\n\nclass RadarSegment extends DonutSegment {\n constructor(value, options) {\n super(value, null, options);\n }\n}\n\nsetDefaultOptions(RadarSegment, {\n overlay: {\n gradient: \"none\"\n },\n labels: {\n distance: 10\n }\n});\n\nexport default RadarSegment;","import LineChart from '../line-chart/line-chart';\nimport SplineSegment from '../line-chart/spline-segment';\nimport LineSegment from '../line-chart/line-segment';\n\nimport { Point, Box } from '../../core';\n\nimport { SMOOTH, INTERPOLATE } from '../constants';\n\nimport { setDefaultOptions, last } from '../../common';\n\nfunction groupBySeriesIx(segments) {\n const seriesSegments = [];\n for (let idx = 0; idx < segments.length; idx++) {\n const segment = segments[idx];\n seriesSegments[segment.seriesIx] = seriesSegments[segment.seriesIx] || [];\n seriesSegments[segment.seriesIx].push(segment);\n }\n\n return seriesSegments;\n}\n\nclass RadarLineChart extends LineChart {\n\n pointSlot(categorySlot, valueSlot) {\n const valueRadius = categorySlot.center.y - valueSlot.y1;\n const slot = Point.onCircle(categorySlot.center, categorySlot.middle(), valueRadius);\n\n return new Box(slot.x, slot.y, slot.x, slot.y);\n }\n\n renderSegments() {\n super.renderSegments();\n\n if (this._segments && this._segments.length > 1) {\n const seriesSegments = groupBySeriesIx(this._segments);\n\n for (let idx = 0; idx < seriesSegments.length; idx++) {\n const segments = seriesSegments[idx];\n if (segments && segments.length > 1) {\n const firstPoint = segments[0].linePoints[0];\n const lastSegment = last(segments);\n const lastPoint = last(lastSegment.linePoints);\n const isFirstDataPoint = firstPoint.categoryIx === 0;\n const isLastDataPoint = lastPoint.categoryIx === lastPoint.categoriesCount - 1;\n if (isFirstDataPoint && isLastDataPoint) {\n last(segments).linePoints.push(firstPoint);\n }\n }\n }\n }\n }\n\n createSegment(linePoints, currentSeries, seriesIx) {\n const style = currentSeries.style;\n let pointType;\n\n if (style === SMOOTH) {\n pointType = SplineSegment;\n } else {\n pointType = LineSegment;\n }\n\n const segment = new pointType(linePoints, currentSeries, seriesIx);\n const missingValues = this.seriesMissingValues(currentSeries);\n\n if (linePoints.length === currentSeries.data.length || missingValues === INTERPOLATE) {\n segment.options.closed = true;\n }\n\n return segment;\n }\n}\n\nsetDefaultOptions(RadarLineChart, {\n clip: false,\n limitPoints: false\n});\n\nexport default RadarLineChart;\n","import CategoricalChart from '../categorical-chart';\nimport LineChartMixin from '../mixins/line-chart-mixin';\nimport ClipAnimationMixin from '../mixins/clip-animation-mixin';\nimport RangeAreaPoint from './range-area-point';\nimport RangeAreaSegment from './range-area-segment';\nimport SplineRangeAreaSegment from './spline-range-area-segment';\nimport StepRangeAreaSegment from './step-range-area-segment';\n\nimport { Box } from '../../core';\nimport { ZERO } from '../constants';\nimport { MIN_VALUE, MAX_VALUE } from '../../common/constants';\nimport { isNumber } from '../../common';\nimport { deepExtend, isFunction } from '../../common';\nimport { hasValue } from '../utils';\n\nclass RangeAreaChart extends CategoricalChart {\n\n render() {\n super.render();\n\n this.renderSegments();\n }\n\n pointType() {\n return RangeAreaPoint;\n }\n\n createPoint(data, fields) {\n const { categoryIx, category, series, seriesIx } = fields;\n let value = data.valueFields;\n\n if (!hasValue(value.from) && !hasValue(value.to)) {\n if (this.seriesMissingValues(series) === ZERO) {\n value = {\n from: 0,\n to: 0\n };\n } else {\n return null;\n }\n }\n\n let pointOptions = this.pointOptions(series, seriesIx);\n pointOptions = this.evalPointOptions(\n pointOptions, value, category, categoryIx, series, seriesIx\n );\n\n let color = data.fields.color || series.color;\n if (isFunction(series.color)) {\n color = pointOptions.color;\n }\n\n const point = new RangeAreaPoint(value, pointOptions);\n point.color = color;\n\n this.append(point);\n\n return point;\n }\n\n createSegment(linePoints, currentSeries, seriesIx) {\n const style = (currentSeries.line || {}).style;\n let segmentType;\n if (style === \"smooth\") {\n segmentType = SplineRangeAreaSegment;\n } else if (style === \"step\") {\n segmentType = StepRangeAreaSegment;\n } else {\n segmentType = RangeAreaSegment;\n }\n\n return new segmentType(linePoints, currentSeries, seriesIx);\n }\n\n plotRange(point, startValue) {\n if (!point) {\n return [ startValue, startValue ];\n }\n\n return [ point.value.from, point.value.to ];\n }\n\n valueSlot(valueAxis, plotRange) {\n const fromSlot = valueAxis.getSlot(plotRange[0], plotRange[0], !this.options.clip);\n const toSlot = valueAxis.getSlot(plotRange[1], plotRange[1], !this.options.clip);\n if (fromSlot && toSlot) {\n return {\n from: fromSlot,\n to: toSlot\n };\n }\n }\n\n pointSlot(categorySlot, valueSlot) {\n const { from, to } = valueSlot;\n let fromSlot, toSlot;\n\n if (this.options.invertAxes) {\n fromSlot = new Box(from.x1, categorySlot.y1, from.x2, categorySlot.y2);\n toSlot = new Box(to.x1, categorySlot.y1, to.x2, categorySlot.y2);\n } else {\n fromSlot = new Box(categorySlot.x1, from.y1, categorySlot.x2, from.y2);\n toSlot = new Box(categorySlot.x1, to.y1, categorySlot.x2, to.y2);\n }\n\n return {\n from: fromSlot,\n to: toSlot\n };\n }\n\n addValue(data, fields) {\n const valueFields = data.valueFields;\n if (!isNumber(valueFields.from)) {\n valueFields.from = valueFields.to;\n }\n\n if (!isNumber(valueFields.to)) {\n valueFields.to = valueFields.from;\n }\n\n super.addValue(data, fields);\n }\n\n updateRange(value, fields) {\n if (value !== null && isNumber(value.from) && isNumber(value.to)) {\n const axisName = fields.series.axis;\n const axisRange = this.valueAxisRanges[axisName] = this.valueAxisRanges[axisName] || { min: MAX_VALUE, max: MIN_VALUE };\n const { from, to } = value;\n\n axisRange.min = Math.min(axisRange.min, from, to);\n axisRange.max = Math.max(axisRange.max, from, to);\n }\n }\n\n formatPointValue(point, format) {\n const value = point.value;\n\n return this.chartService.format.auto(format, value.from, value.to);\n }\n\n animationPoints() {\n const points = this.points;\n const result = [];\n for (let idx = 0; idx < points.length; idx++) {\n const point = points[idx];\n if (point) {\n result.push((point.fromPoint || {}).marker);\n result.push((point.toPoint || {}).marker);\n }\n }\n\n return result.concat(this._segments);\n }\n}\n\ndeepExtend(RangeAreaChart.prototype, LineChartMixin, ClipAnimationMixin);\n\nexport default RangeAreaChart;\n","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport { ChartElement, Point } from '../../core';\nimport RangeLinePoint from './range-line-point';\nimport PointEventsMixin from '../mixins/point-events-mixin';\nimport NoteMixin from '../mixins/note-mixin';\n\nimport { LINE_MARKER_SIZE, FADEIN, INITIAL_ANIMATION_DURATION, TOOLTIP_OFFSET, ABOVE, BELOW } from '../constants';\nimport { WHITE, CIRCLE, HIGHLIGHT_ZINDEX, LEFT, RIGHT, BOTTOM, CENTER } from '../../common/constants';\nimport { deepExtend, valueOrDefault, getSpacing } from '../../common';\n\nconst AUTO = 'auto';\nconst DEFAULT_FROM_FORMAT = '{0}';\nconst DEFAULT_TO_FORMAT = '{1}';\n\nclass RangeAreaPoint extends ChartElement {\n constructor(value, options) {\n super();\n\n this.value = value;\n this.options = options;\n this.aboveAxis = valueOrDefault(this.options.aboveAxis, true);\n this.tooltipTracking = true;\n this.initLabelsFormat();\n }\n\n render() {\n if (this._rendered) {\n return;\n }\n\n this._rendered = true;\n\n const { markers, labels } = this.options;\n const value = this.value;\n\n const fromPoint = this.fromPoint = new RangeLinePoint(value, deepExtend({}, this.options, {\n labels: labels.from,\n markers: markers.from\n }));\n\n const toPoint = this.toPoint = new RangeLinePoint(value, deepExtend({}, this.options, {\n labels: labels.to,\n markers: markers.to\n }));\n\n this.copyFields(fromPoint);\n this.copyFields(toPoint);\n\n this.append(fromPoint);\n this.append(toPoint);\n }\n\n reflow(targetBox) {\n this.render();\n\n const { from: fromBox, to: toBox } = targetBox;\n\n this.positionLabels(fromBox, toBox);\n\n this.fromPoint.reflow(fromBox);\n this.toPoint.reflow(toBox);\n\n this.box = this.fromPoint.markerBox().clone().wrap(this.toPoint.markerBox());\n }\n\n createHighlight() {\n const group = new draw.Group();\n group.append(this.fromPoint.createHighlight());\n group.append(this.toPoint.createHighlight());\n\n return group;\n }\n\n highlightVisual() {\n return this.visual;\n }\n\n highlightVisualArgs() {\n return {\n options: this.options,\n from: this.fromPoint.highlightVisualArgs(),\n to: this.toPoint.highlightVisualArgs()\n };\n }\n\n tooltipAnchor() {\n const clipBox = this.owner.pane.clipBox();\n const showTooltip = !clipBox || clipBox.overlaps(this.box);\n\n if (showTooltip) {\n const box = this.box;\n const center = box.center();\n const horizontalAlign = LEFT;\n let x, y, verticalAlign;\n\n if (this.options.vertical) {\n x = center.x;\n y = box.y1 - TOOLTIP_OFFSET;\n verticalAlign = BOTTOM;\n } else {\n x = box.x2 + TOOLTIP_OFFSET;\n y = center.y;\n verticalAlign = CENTER;\n }\n\n return {\n point: new Point(x, y),\n align: {\n horizontal: horizontalAlign,\n vertical: verticalAlign\n }\n };\n }\n }\n\n formatValue(format) {\n return this.owner.formatPointValue(this, format);\n }\n\n overlapsBox(box) {\n return this.box.overlaps(box);\n }\n\n unclipElements() {\n this.fromPoint.unclipElements();\n this.toPoint.unclipElements();\n }\n\n initLabelsFormat() {\n const labels = this.options.labels;\n if (!labels.format) {\n if (!labels.from || !labels.from.format) {\n labels.from = Object.assign({}, labels.from, {\n format: DEFAULT_FROM_FORMAT\n });\n }\n\n if (!labels.to || !labels.to.format) {\n labels.to = Object.assign({}, labels.to, {\n format: DEFAULT_TO_FORMAT\n });\n }\n }\n }\n\n positionLabels(fromBox, toBox) {\n const { labels, vertical } = this.options;\n\n if (labels.position === AUTO) {\n let fromLabelPosition, toLabelPosition;\n if (vertical) {\n if (toBox.y1 <= fromBox.y1) {\n toLabelPosition = ABOVE;\n fromLabelPosition = BELOW;\n } else {\n toLabelPosition = BELOW;\n fromLabelPosition = ABOVE;\n }\n } else {\n if (toBox.x1 <= fromBox.x1) {\n toLabelPosition = LEFT;\n fromLabelPosition = RIGHT;\n } else {\n toLabelPosition = RIGHT;\n fromLabelPosition = LEFT;\n }\n }\n\n if (!labels.from || !labels.from.position) {\n this.fromPoint.options.labels.position = fromLabelPosition;\n }\n\n if (!labels.to || !labels.to.position) {\n this.toPoint.options.labels.position = toLabelPosition;\n }\n }\n }\n\n copyFields(point) {\n point.dataItem = this.dataItem;\n point.category = this.category;\n point.series = this.series;\n point.color = this.color;\n point.owner = this.owner;\n }\n}\n\ndeepExtend(RangeAreaPoint.prototype, PointEventsMixin);\ndeepExtend(RangeAreaPoint.prototype, NoteMixin);\n\nRangeAreaPoint.prototype.defaults = {\n markers: {\n visible: false,\n background: WHITE,\n size: LINE_MARKER_SIZE,\n type: CIRCLE,\n border: {\n width: 2\n },\n opacity: 1\n },\n labels: {\n visible: false,\n margin: getSpacing(3),\n padding: getSpacing(4),\n animation: {\n type: FADEIN,\n delay: INITIAL_ANIMATION_DURATION\n },\n position: AUTO\n },\n notes: {\n label: {}\n },\n highlight: {\n markers: {\n border: {\n color: WHITE,\n width: 2\n }\n },\n zIndex: HIGHLIGHT_ZINDEX\n },\n tooltip: {\n format: '{0} - {1}'\n }\n};\n\nexport default RangeAreaPoint;\n","import { drawing as draw } from '@progress/kendo-drawing';\nimport AreaSegment from '../area-chart/area-segment';\n\nclass RangeAreaSegment extends AreaSegment {\n\n createStrokeSegments() {\n return this.segmentsFromPoints(this.toGeometryPoints(this.toPoints()));\n }\n\n stackSegments() {\n let fromSegments = this.fromSegments;\n if (!this.fromSegments) {\n fromSegments = this.fromSegments = this.segmentsFromPoints(this.toGeometryPoints(this.fromPoints().reverse()));\n }\n\n return fromSegments;\n }\n\n createStroke(style) {\n const toPath = new draw.Path(style);\n const fromPath = new draw.Path(style);\n\n toPath.segments.push.apply(toPath.segments, this.strokeSegments());\n fromPath.segments.push.apply(fromPath.segments, this.stackSegments());\n\n this.visual.append(toPath);\n this.visual.append(fromPath);\n }\n\n hasStackSegment() {\n return true;\n }\n\n fromPoints() {\n return this.linePoints.map(point => point.fromPoint);\n }\n\n toPoints() {\n return this.linePoints.map(point => point.toPoint);\n }\n}\n\nexport default RangeAreaSegment;","import LinePoint from '../line-chart/line-point';\n\nclass RangeLinePoint extends LinePoint {\n aliasFor() {\n return this.parent;\n }\n}\n\nexport default RangeLinePoint;","import { CurveProcessor } from '../../core';\n\nimport RangeAreaSegment from './range-area-segment';\n\nclass SplineRangeAreaSegment extends RangeAreaSegment {\n\n createStrokeSegments() {\n return this.createCurveSegments(this.toPoints());\n }\n\n stackSegments() {\n let fromSegments = this.fromSegments;\n if (!this.fromSegments) {\n fromSegments = this.fromSegments = this.createCurveSegments(this.fromPoints().reverse());\n }\n\n return fromSegments;\n }\n\n createCurveSegments(points) {\n const curveProcessor = new CurveProcessor();\n\n return curveProcessor.process(this.toGeometryPoints(points));\n }\n\n\n}\n\nexport default SplineRangeAreaSegment;","import StepLineMixin from '../line-chart/step-line-mixin';\nimport RangeAreaSegment from './range-area-segment';\nimport { deepExtend } from '../../common';\n\nclass StepRangeAreaSegment extends RangeAreaSegment {\n\n createStrokeSegments() {\n return this.segmentsFromPoints(this.calculateStepPoints(this.toPoints()));\n }\n\n stackSegments() {\n let fromSegments = this.fromSegments;\n if (!this.fromSegments) {\n fromSegments = this.fromSegments = this.segmentsFromPoints(this.calculateStepPoints(this.fromPoints()));\n fromSegments.reverse();\n }\n\n return fromSegments;\n }\n}\n\ndeepExtend(StepRangeAreaSegment.prototype, StepLineMixin);\n\nexport default StepRangeAreaSegment;","import BarChart from '../bar-chart/bar-chart';\nimport RangeBar from './range-bar';\nimport CategoricalChart from '../categorical-chart';\n\nimport { MIN_VALUE, MAX_VALUE } from '../../common/constants';\nimport { isNumber } from '../../common';\n\nclass RangeBarChart extends BarChart {\n pointType() {\n return RangeBar;\n }\n\n pointValue(data) {\n return data.valueFields;\n }\n\n formatPointValue(point, format) {\n if (point.value.from === null && point.value.to === null) {\n return \"\";\n }\n\n return this.chartService.format.auto(format, point.value.from, point.value.to);\n }\n\n plotRange(point) {\n if (!point) {\n return 0;\n }\n\n return [ point.value.from, point.value.to ];\n }\n\n updateRange(value, fields) {\n const axisName = fields.series.axis;\n const { from, to } = value;\n let axisRange = this.valueAxisRanges[axisName];\n\n if (value !== null && isNumber(from) && isNumber(to)) {\n axisRange = this.valueAxisRanges[axisName] = axisRange || { min: MAX_VALUE, max: MIN_VALUE };\n\n axisRange.min = Math.min(axisRange.min, from);\n axisRange.max = Math.max(axisRange.max, from);\n\n axisRange.min = Math.min(axisRange.min, to);\n axisRange.max = Math.max(axisRange.max, to);\n }\n }\n\n aboveAxis(point) {\n const value = point.value;\n return value.from < value.to;\n }\n}\n\nRangeBarChart.prototype.plotLimits = CategoricalChart.prototype.plotLimits;\n\nexport default RangeBarChart;","import Bar from '../bar-chart/bar';\nimport BarLabel from '../bar-chart/bar-label';\n\nimport { deepExtend, getTemplate } from '../../common';\n\nclass RangeBar extends Bar {\n createLabel() {\n const labels = this.options.labels;\n const fromOptions = deepExtend({}, labels, labels.from);\n const toOptions = deepExtend({}, labels, labels.to);\n\n if (fromOptions.visible) {\n this.labelFrom = this._createLabel(fromOptions);\n this.append(this.labelFrom);\n }\n\n if (toOptions.visible) {\n this.labelTo = this._createLabel(toOptions);\n this.append(this.labelTo);\n }\n }\n\n _createLabel(options) {\n const labelTemplate = getTemplate(options);\n const pointData = this.pointData();\n\n let labelText;\n\n if (labelTemplate) {\n labelText = labelTemplate(pointData);\n } else {\n labelText = this.formatValue(options.format);\n }\n\n return new BarLabel(labelText,\n deepExtend({\n vertical: this.options.vertical\n },\n options\n ), pointData);\n }\n\n reflow(targetBox) {\n this.render();\n\n const { labelFrom, labelTo, value } = this;\n\n this.box = targetBox;\n\n if (labelFrom) {\n labelFrom.options.aboveAxis = value.from > value.to;\n labelFrom.reflow(targetBox);\n }\n\n if (labelTo) {\n labelTo.options.aboveAxis = value.to > value.from;\n labelTo.reflow(targetBox);\n }\n\n if (this.note) {\n this.note.reflow(targetBox);\n }\n }\n}\n\nRangeBar.prototype.defaults = deepExtend({}, RangeBar.prototype.defaults, {\n labels: {\n format: \"{0} - {1}\"\n },\n tooltip: {\n format: \"{1}\"\n }\n});\n\nexport default RangeBar;","import PlotAreaFactory from './plotarea/plotarea-factory';\nimport SeriesBinder from './series-binder';\nimport DefaultAggregates from './aggregates/default-aggregates';\nimport CategoricalPlotArea from './plotarea/categorical-plotarea';\nimport XYPlotArea from './plotarea/xy-plotarea';\nimport PiePlotArea from './plotarea/pie-plotarea';\nimport DonutPlotArea from './plotarea/donut-plotarea';\nimport PolarPlotArea from './plotarea/polar-plotarea';\nimport RadarPlotArea from './plotarea/radar-plotarea';\nimport FunnelPlotArea from './plotarea/funnel-plotarea';\nimport HeatmapPlotArea from './plotarea/heatmap-plotarea';\n\nimport { COLUMN, DONUT, PIE, FUNNEL, BAR, LINE, VERTICAL_LINE, AREA, VERTICAL_AREA,\n CANDLESTICK, OHLC, BULLET, VERTICAL_BULLET, BOX_PLOT, VERTICAL_BOX_PLOT, RANGE_COLUMN,\n RANGE_BAR, WATERFALL, HORIZONTAL_WATERFALL, SCATTER, SCATTER_LINE, BUBBLE,\n POLAR_AREA, POLAR_LINE, POLAR_SCATTER, RADAR_AREA, RADAR_COLUMN, RADAR_LINE, CATEGORY,\n RANGE_AREA, VERTICAL_RANGE_AREA, X_ERROR_LOW_FIELD, X_ERROR_HIGH_FIELD, Y_ERROR_LOW_FIELD, Y_ERROR_HIGH_FIELD,\n ERROR_LOW_FIELD, ERROR_HIGH_FIELD, HEATMAP } from './constants';\nimport { X, Y, VALUE } from '../common/constants';\n\nconst COLOR = \"color\";\nconst FIRST = \"first\";\nconst FROM = \"from\";\nconst MAX = \"max\";\nconst MIN = \"min\";\nconst NOTE_TEXT = \"noteText\";\nconst SUMMARY_FIELD = \"summary\";\nconst TO = \"to\";\n\nPlotAreaFactory.current.register(CategoricalPlotArea, [\n BAR, COLUMN, LINE, VERTICAL_LINE, AREA, VERTICAL_AREA,\n CANDLESTICK, OHLC, BULLET, VERTICAL_BULLET, BOX_PLOT, VERTICAL_BOX_PLOT,\n RANGE_COLUMN, RANGE_BAR, WATERFALL, HORIZONTAL_WATERFALL, RANGE_AREA, VERTICAL_RANGE_AREA\n]);\n\nPlotAreaFactory.current.register(XYPlotArea, [\n SCATTER, SCATTER_LINE, BUBBLE\n]);\n\nPlotAreaFactory.current.register(PiePlotArea, [ PIE ]);\nPlotAreaFactory.current.register(DonutPlotArea, [ DONUT ]);\nPlotAreaFactory.current.register(FunnelPlotArea, [ FUNNEL ]);\n\nPlotAreaFactory.current.register(PolarPlotArea, [ POLAR_AREA, POLAR_LINE, POLAR_SCATTER ]);\nPlotAreaFactory.current.register(RadarPlotArea, [ RADAR_AREA, RADAR_COLUMN, RADAR_LINE ]);\n\nPlotAreaFactory.current.register(HeatmapPlotArea, [ HEATMAP ]);\n\nSeriesBinder.current.register(\n [ BAR, COLUMN, LINE, VERTICAL_LINE, AREA, VERTICAL_AREA ],\n [ VALUE ], [ CATEGORY, COLOR, NOTE_TEXT, ERROR_LOW_FIELD, ERROR_HIGH_FIELD ]\n);\n\nSeriesBinder.current.register(\n [ RANGE_COLUMN, RANGE_BAR, RANGE_AREA, VERTICAL_RANGE_AREA ],\n [ FROM, TO ], [ CATEGORY, COLOR, NOTE_TEXT ]\n);\n\nSeriesBinder.current.register(\n [ WATERFALL, HORIZONTAL_WATERFALL ],\n [ VALUE ], [ CATEGORY, COLOR, NOTE_TEXT, SUMMARY_FIELD ]\n);\n\nSeriesBinder.current.register([ POLAR_AREA, POLAR_LINE, POLAR_SCATTER ], [ X, Y ], [ COLOR ]);\nSeriesBinder.current.register([ RADAR_AREA, RADAR_COLUMN, RADAR_LINE ], [ VALUE ], [ COLOR ]);\n\nSeriesBinder.current.register(\n [ FUNNEL ],\n [ VALUE ], [ CATEGORY, COLOR, \"visibleInLegend\", \"visible\" ]\n);\n\nDefaultAggregates.current.register(\n [ BAR, COLUMN, LINE, VERTICAL_LINE, AREA, VERTICAL_AREA, WATERFALL, HORIZONTAL_WATERFALL ],\n { value: MAX, color: FIRST, noteText: FIRST, errorLow: MIN, errorHigh: MAX }\n);\n\nDefaultAggregates.current.register(\n [ RANGE_COLUMN, RANGE_BAR, RANGE_AREA, VERTICAL_RANGE_AREA ],\n { from: MIN, to: MAX, color: FIRST, noteText: FIRST }\n);\n\nDefaultAggregates.current.register(\n [ RADAR_AREA, RADAR_COLUMN, RADAR_LINE ],\n { value: MAX, color: FIRST }\n);\n\nSeriesBinder.current.register(\n [ SCATTER, SCATTER_LINE, BUBBLE ],\n [ X, Y ], [ COLOR, NOTE_TEXT, X_ERROR_LOW_FIELD, X_ERROR_HIGH_FIELD, Y_ERROR_LOW_FIELD, Y_ERROR_HIGH_FIELD ]\n);\n\nSeriesBinder.current.register(\n [ BUBBLE ], [ X, Y, \"size\" ], [ COLOR, CATEGORY, NOTE_TEXT ]\n);\n\nSeriesBinder.current.register(\n [ HEATMAP ],\n [ X, Y, VALUE ], [ COLOR, NOTE_TEXT ]\n);\n\nSeriesBinder.current.register(\n [ CANDLESTICK, OHLC ],\n [ \"open\", \"high\", \"low\", \"close\" ], [ CATEGORY, COLOR, \"downColor\", NOTE_TEXT ]\n);\n\nDefaultAggregates.current.register(\n [ CANDLESTICK, OHLC ],\n { open: MAX, high: MAX, low: MIN, close: MAX,\n color: FIRST, downColor: FIRST, noteText: FIRST }\n);\n\nSeriesBinder.current.register(\n [ BOX_PLOT, VERTICAL_BOX_PLOT ],\n [ \"lower\", \"q1\", \"median\", \"q3\", \"upper\", \"mean\", \"outliers\" ], [ CATEGORY, COLOR, NOTE_TEXT ]\n);\n\nDefaultAggregates.current.register(\n [ BOX_PLOT, VERTICAL_BOX_PLOT ],\n { lower: MAX, q1: MAX, median: MAX, q3: MAX, upper: MAX, mean: MAX, outliers: FIRST,\n color: FIRST, noteText: FIRST }\n);\n\nSeriesBinder.current.register(\n [ BULLET, VERTICAL_BULLET ],\n [ \"current\", \"target\" ], [ CATEGORY, COLOR, \"visibleInLegend\", NOTE_TEXT ]\n);\n\nDefaultAggregates.current.register(\n [ BULLET, VERTICAL_BULLET ],\n { current: MAX, target: MAX, color: FIRST, noteText: FIRST }\n);\n\nSeriesBinder.current.register(\n [ PIE, DONUT ],\n [ VALUE ], [ CATEGORY, COLOR, \"explode\", \"visibleInLegend\", \"visible\" ]\n);\n","import { ChartElement, Box } from '../../core';\n\nimport ClipAnimationMixin from '../mixins/clip-animation-mixin';\nimport ErrorRangeCalculator from '../error-bars/error-range-calculator';\nimport ScatterErrorBar from '../error-bars/scatter-error-bar';\nimport LinePoint from '../line-chart/line-point';\nimport CategoricalChart from '../categorical-chart';\n\nimport hasValue from '../utils/has-value';\nimport evalOptions from '../utils/eval-options';\n\nimport { deepExtend, isNumber, isString, defined, isFunction, setDefaultOptions } from '../../common';\nimport { X, Y, MIN_VALUE, MAX_VALUE } from '../../common/constants';\nimport { parseDate } from '../../date-utils';\n\nclass ScatterChart extends ChartElement {\n constructor(plotArea, options) {\n\n super(options);\n\n this.plotArea = plotArea;\n this.chartService = plotArea.chartService;\n this._initFields();\n\n this.render();\n }\n\n _initFields() {\n // X and Y axis ranges grouped by name, e.g.:\n // primary: { min: 0, max: 1 }\n this.xAxisRanges = {};\n this.yAxisRanges = {};\n\n this.points = [];\n this.seriesPoints = [];\n this.seriesOptions = [];\n this._evalSeries = [];\n }\n\n render() {\n this.traverseDataPoints(this.addValue.bind(this));\n }\n\n addErrorBar(point, field, fields) {\n const value = point.value[field];\n const valueErrorField = field + \"Value\";\n const lowField = field + \"ErrorLow\";\n const highField = field + \"ErrorHigh\";\n const { seriesIx, series } = fields;\n const errorBars = point.options.errorBars;\n const lowValue = fields[lowField];\n const highValue = fields[highField];\n\n if (isNumber(value)) {\n let errorRange;\n if (isNumber(lowValue) && isNumber(highValue)) {\n errorRange = { low: lowValue, high: highValue };\n }\n\n if (errorBars && defined(errorBars[valueErrorField])) {\n this.seriesErrorRanges = this.seriesErrorRanges || { x: [], y: [] };\n this.seriesErrorRanges[field][seriesIx] = this.seriesErrorRanges[field][seriesIx] ||\n new ErrorRangeCalculator(errorBars[valueErrorField], series, field);\n\n errorRange = this.seriesErrorRanges[field][seriesIx].getErrorRange(value, errorBars[valueErrorField]);\n }\n\n if (errorRange) {\n this.addPointErrorBar(errorRange, point, field);\n }\n }\n }\n\n addPointErrorBar(errorRange, point, field) {\n const { low, high } = errorRange;\n const { series, options: { errorBars: options } } = point;\n const isVertical = field === Y;\n const item = {};\n\n point[field + \"Low\"] = low;\n point[field + \"High\"] = high;\n\n point.errorBars = point.errorBars || [];\n const errorBar = new ScatterErrorBar(low, high, isVertical, this, series, options);\n point.errorBars.push(errorBar);\n point.append(errorBar);\n\n item[field] = low;\n this.updateRange(item, series);\n item[field] = high;\n this.updateRange(item, series);\n }\n\n addValue(value, fields) {\n const { x, y } = value;\n const seriesIx = fields.seriesIx;\n const series = this.options.series[seriesIx];\n const missingValues = this.seriesMissingValues(series);\n const seriesPoints = this.seriesPoints[seriesIx];\n\n let pointValue = value;\n if (!(hasValue(x) && hasValue(y))) {\n pointValue = this.createMissingValue(pointValue, missingValues);\n }\n\n let point;\n if (pointValue) {\n point = this.createPoint(pointValue, fields);\n if (point) {\n Object.assign(point, fields);\n this.addErrorBar(point, X, fields);\n this.addErrorBar(point, Y, fields);\n }\n this.updateRange(pointValue, fields.series);\n }\n\n this.points.push(point);\n seriesPoints.push(point);\n }\n\n seriesMissingValues(series) {\n return series.missingValues;\n }\n\n createMissingValue() {}\n\n updateRange(value, series) {\n const intlService = this.chartService.intl;\n const { xAxis: xAxisName, yAxis: yAxisName } = series;\n let { x, y } = value;\n let xAxisRange = this.xAxisRanges[xAxisName];\n let yAxisRange = this.yAxisRanges[yAxisName];\n\n if (hasValue(x)) {\n xAxisRange = this.xAxisRanges[xAxisName] =\n xAxisRange || { min: MAX_VALUE, max: MIN_VALUE };\n\n if (isString(x)) {\n x = parseDate(intlService, x);\n }\n\n xAxisRange.min = Math.min(xAxisRange.min, x);\n xAxisRange.max = Math.max(xAxisRange.max, x);\n }\n\n if (hasValue(y)) {\n yAxisRange = this.yAxisRanges[yAxisName] =\n yAxisRange || { min: MAX_VALUE, max: MIN_VALUE };\n\n if (isString(y)) {\n y = parseDate(intlService, y);\n }\n\n yAxisRange.min = Math.min(yAxisRange.min, y);\n yAxisRange.max = Math.max(yAxisRange.max, y);\n }\n }\n\n evalPointOptions(options, value, fields) {\n const { series, seriesIx } = fields;\n const state = { defaults: series._defaults, excluded: [ \"data\", \"tooltip\", \"content\", \"template\", \"visual\", \"toggle\", \"_outOfRangeMinPoint\", \"_outOfRangeMaxPoint\" ] };\n\n let doEval = this._evalSeries[seriesIx];\n if (!defined(doEval)) {\n this._evalSeries[seriesIx] = doEval = evalOptions(options, {}, state, true);\n }\n\n let pointOptions = options;\n if (doEval) {\n pointOptions = deepExtend({}, options);\n evalOptions(pointOptions, {\n value: value,\n series: series,\n dataItem: fields.dataItem\n }, state);\n }\n\n return pointOptions;\n }\n\n pointType() {\n return LinePoint;\n }\n\n pointOptions(series, seriesIx) {\n let options = this.seriesOptions[seriesIx];\n if (!options) {\n const defaults = this.pointType().prototype.defaults;\n this.seriesOptions[seriesIx] = options = deepExtend({}, defaults, {\n markers: {\n opacity: series.opacity\n },\n tooltip: {\n format: this.options.tooltip.format\n },\n labels: {\n format: this.options.labels.format\n }\n }, series);\n }\n\n return options;\n }\n\n createPoint(value, fields) {\n const series = fields.series;\n let pointOptions = this.pointOptions(series, fields.seriesIx);\n let color = fields.color || series.color;\n\n pointOptions = this.evalPointOptions(pointOptions, value, fields);\n\n if (isFunction(series.color)) {\n color = pointOptions.color;\n }\n\n const point = new LinePoint(value, pointOptions);\n point.color = color;\n\n this.append(point);\n\n return point;\n }\n\n seriesAxes(series) {\n const { xAxis: xAxisName, yAxis: yAxisName } = series;\n const plotArea = this.plotArea;\n const xAxis = xAxisName ? plotArea.namedXAxes[xAxisName] : plotArea.axisX;\n const yAxis = yAxisName ? plotArea.namedYAxes[yAxisName] : plotArea.axisY;\n\n if (!xAxis) {\n throw new Error(\"Unable to locate X axis with name \" + xAxisName);\n }\n\n if (!yAxis) {\n throw new Error(\"Unable to locate Y axis with name \" + yAxisName);\n }\n\n return {\n x: xAxis,\n y: yAxis\n };\n }\n\n reflow(targetBox) {\n const chartPoints = this.points;\n const limit = !this.options.clip;\n let pointIx = 0;\n\n\n this.traverseDataPoints((value, fields) => {\n const point = chartPoints[pointIx++];\n const seriesAxes = this.seriesAxes(fields.series);\n const slotX = seriesAxes.x.getSlot(value.x, value.x, limit);\n const slotY = seriesAxes.y.getSlot(value.y, value.y, limit);\n\n if (point) {\n if (slotX && slotY) {\n const pointSlot = this.pointSlot(slotX, slotY);\n point.reflow(pointSlot);\n } else {\n point.visible = false;\n }\n }\n });\n\n this.box = targetBox;\n }\n\n pointSlot(slotX, slotY) {\n return new Box(slotX.x1, slotY.y1, slotX.x2, slotY.y2);\n }\n\n traverseDataPoints(callback) {\n const { options: { series }, seriesPoints } = this;\n\n for (let seriesIx = 0; seriesIx < series.length; seriesIx++) {\n const currentSeries = series[seriesIx];\n const currentSeriesPoints = seriesPoints[seriesIx];\n if (!currentSeriesPoints) {\n seriesPoints[seriesIx] = [];\n }\n\n for (let pointIx = 0; pointIx < currentSeries.data.length; pointIx++) {\n const { valueFields: value, fields } = this._bindPoint(currentSeries, seriesIx, pointIx);\n\n callback(value, deepExtend({\n pointIx: pointIx,\n series: currentSeries,\n seriesIx: seriesIx,\n dataItem: currentSeries.data[pointIx],\n owner: this\n }, fields));\n }\n }\n }\n\n formatPointValue(point, format) {\n const value = point.value;\n return this.chartService.format.auto(format, value.x, value.y);\n }\n\n animationPoints() {\n const points = this.points;\n const result = [];\n for (let idx = 0; idx < points.length; idx++) {\n result.push((points[idx] || {}).marker);\n }\n return result;\n }\n}\nsetDefaultOptions(ScatterChart, {\n series: [],\n tooltip: {\n format: \"{0}, {1}\"\n },\n labels: {\n format: \"{0}, {1}\"\n },\n clip: true\n});\ndeepExtend(ScatterChart.prototype, ClipAnimationMixin, {\n _bindPoint: CategoricalChart.prototype._bindPoint\n});\n\nexport default ScatterChart;","import ScatterChart from './scatter-chart';\nimport LineChartMixin from '../mixins/line-chart-mixin';\nimport LineSegment from '../line-chart/line-segment';\nimport SplineSegment from '../line-chart/spline-segment';\n\nimport { SMOOTH, ZERO } from '../constants';\n\nimport hasValue from '../utils/has-value';\n\nimport { deepExtend } from '../../common';\n\nclass ScatterLineChart extends ScatterChart {\n render() {\n super.render();\n\n this.renderSegments();\n }\n\n createSegment(linePoints, currentSeries, seriesIx) {\n const style = currentSeries.style;\n let pointType;\n\n if (style === SMOOTH) {\n pointType = SplineSegment;\n } else {\n pointType = LineSegment;\n }\n\n return new pointType(linePoints, currentSeries, seriesIx);\n }\n\n animationPoints() {\n const points = super.animationPoints();\n return points.concat(this._segments);\n }\n\n createMissingValue(value, missingValues) {\n if (missingValues === ZERO) {\n const missingValue = {\n x: value.x,\n y: value.y\n };\n if (!hasValue(missingValue.x)) {\n missingValue.x = 0;\n }\n if (!hasValue(missingValue.y)) {\n missingValue.y = 0;\n }\n return missingValue;\n }\n }\n}\n\ndeepExtend(ScatterLineChart.prototype, LineChartMixin);\n\nexport default ScatterLineChart;","import { DomEventsBuilder } from '../services';\n\nimport { DateCategoryAxis, Point } from '../core';\n\nimport { MOUSEWHEEL_DELAY, MOUSEWHEEL, SELECT_START, SELECT, SELECT_END } from './constants';\n\nimport { LEFT, RIGHT, MIN_VALUE, MAX_VALUE, X } from '../common/constants';\nimport { addClass, Class, removeClass, deepExtend, elementStyles, eventElement, setDefaultOptions, limitValue, round, bindEvents, unbindEvents, mousewheelDelta, hasClasses } from '../common';\nimport { parseDate } from '../date-utils';\n\nconst ZOOM_ACCELERATION = 3;\nconst SELECTOR_HEIGHT_ADJUST = 0.1;\n\nfunction createDiv(className) {\n const element = document.createElement(\"div\");\n if (className) {\n element.className = className;\n }\n\n return element;\n}\n\nfunction closestHandle(element) {\n let current = element;\n while (current && !hasClasses(current, \"k-handle\")) {\n current = current.parentNode;\n }\n\n return current;\n}\n\nclass Selection extends Class {\n constructor(chart, categoryAxis, options, observer) {\n super();\n\n const chartElement = chart.element;\n\n this.options = deepExtend({}, this.options, options);\n this.chart = chart;\n this.observer = observer;\n this.chartElement = chartElement;\n this.categoryAxis = categoryAxis;\n this._dateAxis = this.categoryAxis instanceof DateCategoryAxis;\n\n this.initOptions();\n\n this.visible = this.options.visible && chartElement.offsetHeight;\n\n if (this.visible) {\n this.createElements();\n\n this.set(this._index(this.options.from), this._index(this.options.to));\n\n this.bindEvents();\n }\n }\n\n onPane(pane) {\n return this.categoryAxis.pane === pane;\n }\n\n createElements() {\n const options = this.options;\n const wrapper = this.wrapper = createDiv(\"k-selector\");\n elementStyles(wrapper, {\n top: options.offset.top,\n left: options.offset.left,\n width: options.width,\n height: options.height,\n direction: 'ltr'\n });\n const selection = this.selection = createDiv(\"k-selection\");\n this.leftMask = createDiv(\"k-mask\");\n this.rightMask = createDiv(\"k-mask\");\n\n wrapper.appendChild(this.leftMask);\n wrapper.appendChild(this.rightMask);\n wrapper.appendChild(selection);\n\n selection.appendChild(createDiv(\"k-selection-bg\"));\n\n const leftHandle = this.leftHandle = createDiv(\"k-handle k-left-handle\");\n const rightHandle = this.rightHandle = createDiv(\"k-handle k-right-handle\");\n leftHandle.appendChild(createDiv());\n rightHandle.appendChild(createDiv());\n\n selection.appendChild(leftHandle);\n selection.appendChild(rightHandle);\n\n this.chartElement.appendChild(wrapper);\n const selectionStyles = elementStyles(selection, [ \"borderLeftWidth\", \"borderRightWidth\", \"height\" ]);\n const leftHandleHeight = elementStyles(leftHandle, \"height\").height;\n const rightHandleHeight = elementStyles(rightHandle, \"height\").height;\n\n options.selection = {\n border: {\n left: selectionStyles.borderLeftWidth,\n right: selectionStyles.borderRightWidth\n }\n };\n\n elementStyles(leftHandle, {\n top: (selectionStyles.height - leftHandleHeight) / 2\n });\n\n elementStyles(rightHandle, {\n top: (selectionStyles.height - rightHandleHeight) / 2\n });\n\n wrapper.style.cssText = wrapper.style.cssText;\n }\n\n bindEvents() {\n if (this.options.mousewheel !== false) {\n this._mousewheelHandler = this._mousewheel.bind(this);\n bindEvents(this.wrapper, {\n [ MOUSEWHEEL ]: this._mousewheelHandler\n });\n }\n\n this._domEvents = DomEventsBuilder.create(this.wrapper, {\n stopPropagation: true, // applicable for the jQuery UserEvents\n start: this._start.bind(this),\n move: this._move.bind(this),\n end: this._end.bind(this),\n tap: this._tap.bind(this),\n press: this._press.bind(this),\n gesturestart: this._gesturestart.bind(this),\n gesturechange: this._gesturechange.bind(this),\n gestureend: this._gestureend.bind(this)\n });\n }\n\n initOptions() {\n const { options, categoryAxis } = this;\n const box = categoryAxis.pane.chartsBox();\n const intlService = this.chart.chartService.intl;\n\n if (this._dateAxis) {\n deepExtend(options, {\n min: parseDate(intlService, options.min),\n max: parseDate(intlService, options.max),\n from: parseDate(intlService, options.from),\n to: parseDate(intlService, options.to)\n });\n }\n\n const { paddingLeft, paddingTop } = elementStyles(this.chartElement, [ \"paddingLeft\", \"paddingTop\" ]);\n\n this.options = deepExtend({}, {\n width: box.width(),\n height: box.height() + SELECTOR_HEIGHT_ADJUST, //workaround for sub-pixel hover on the paths in chrome\n padding: {\n left: paddingLeft,\n top: paddingTop\n },\n offset: {\n left: box.x1 + paddingLeft,\n top: box.y1 + paddingTop\n },\n from: options.min,\n to: options.max\n }, options);\n }\n\n destroy() {\n if (this._domEvents) {\n this._domEvents.destroy();\n delete this._domEvents;\n }\n\n clearTimeout(this._mwTimeout);\n this._state = null;\n\n if (this.wrapper) {\n if (this._mousewheelHandler) {\n unbindEvents(this.wrapper, {\n [ MOUSEWHEEL ]: this._mousewheelHandler\n });\n this._mousewheelHandler = null;\n }\n this.chartElement.removeChild(this.wrapper);\n this.wrapper = null;\n }\n }\n\n _rangeEventArgs(range) {\n\n return {\n axis: this.categoryAxis.options,\n from: this._value(range.from),\n to: this._value(range.to)\n };\n }\n\n _start(e) {\n const options = this.options;\n const target = eventElement(e);\n\n if (this._state || !target) {\n return;\n }\n\n this.chart._unsetActivePoint();\n this._state = {\n moveTarget: closestHandle(target) || target,\n startLocation: e.x ? e.x.location : 0,\n range: {\n from: this._index(options.from),\n to: this._index(options.to)\n }\n };\n\n const args = this._rangeEventArgs({\n from: this._index(options.from),\n to: this._index(options.to)\n });\n\n if (this.trigger(SELECT_START, args)) {\n this._state = null;\n }\n }\n\n _press(e) {\n let handle;\n if (this._state) {\n handle = this._state.moveTarget;\n } else {\n handle = closestHandle(eventElement(e));\n }\n if (handle) {\n addClass(handle, \"k-handle-active\");\n }\n }\n\n _move(e) {\n if (!this._state) {\n return;\n }\n\n const { _state: state, options, categoryAxis } = this;\n const { range, moveTarget: target } = state;\n const reverse = categoryAxis.options.reverse;\n const from = this._index(options.from);\n const to = this._index(options.to);\n const min = this._index(options.min);\n const max = this._index(options.max);\n const delta = state.startLocation - e.x.location;\n const oldRange = { from: range.from, to: range.to };\n const span = range.to - range.from;\n const scale = elementStyles(this.wrapper, \"width\").width / (categoryAxis.categoriesCount() - 1);\n const offset = Math.round(delta / scale) * (reverse ? -1 : 1);\n\n if (!target) {\n return;\n }\n\n const leftHandle = hasClasses(target, \"k-left-handle\");\n const rightHandle = hasClasses(target, \"k-right-handle\");\n\n if (hasClasses(target, \"k-selection k-selection-bg\")) {\n range.from = Math.min(\n Math.max(min, from - offset),\n max - span\n );\n range.to = Math.min(\n range.from + span,\n max\n );\n } else if ((leftHandle && !reverse) || (rightHandle && reverse)) {\n range.from = Math.min(\n Math.max(min, from - offset),\n max - 1\n );\n range.to = Math.max(range.from + 1, range.to);\n } else if ((leftHandle && reverse) || (rightHandle && !reverse)) {\n range.to = Math.min(\n Math.max(min + 1, to - offset),\n max\n );\n range.from = Math.min(range.to - 1, range.from);\n }\n\n if (range.from !== oldRange.from || range.to !== oldRange.to) {\n this.move(range.from, range.to);\n this.trigger(SELECT, this._rangeEventArgs(range));\n }\n }\n\n _end() {\n if (this._state) {\n const moveTarget = this._state.moveTarget;\n if (moveTarget) {\n removeClass(moveTarget, \"k-handle-active\");\n }\n\n const range = this._state.range;\n this.set(range.from, range.to);\n this.trigger(SELECT_END, this._rangeEventArgs(range));\n\n delete this._state;\n }\n }\n\n _tap(e) {\n const { options, categoryAxis } = this;\n const coords = this.chart._eventCoordinates(e);\n const categoryIx = categoryAxis.pointCategoryIndex(new Point(coords.x, categoryAxis.box.y1));\n const from = this._index(options.from);\n const to = this._index(options.to);\n const min = this._index(options.min);\n const max = this._index(options.max);\n const span = to - from;\n const mid = from + span / 2;\n const range = {};\n const rightClick = e.event.which === 3;\n let offset = Math.round(mid - categoryIx);\n\n if (this._state || rightClick) {\n return;\n }\n\n\n this.chart._unsetActivePoint();\n\n if (!categoryAxis.options.justified) {\n offset--;\n }\n\n range.from = Math.min(\n Math.max(min, from - offset),\n max - span\n );\n\n range.to = Math.min(range.from + span, max);\n\n this._start(e);\n if (this._state) {\n this._state.range = range;\n this.trigger(SELECT, this._rangeEventArgs(range));\n this._end();\n }\n }\n\n _mousewheel(e) {\n let delta = mousewheelDelta(e);\n\n this._start({ target: this.selection });\n\n if (this._state) {\n const range = this._state.range;\n\n e.preventDefault();\n e.stopPropagation();\n\n if (Math.abs(delta) > 1) {\n delta *= ZOOM_ACCELERATION;\n }\n\n if (this.options.mousewheel.reverse) {\n delta *= -1;\n }\n\n if (this.expand(delta)) {\n this.trigger(SELECT, {\n axis: this.categoryAxis.options,\n delta: delta,\n originalEvent: e,\n from: this._value(range.from),\n to: this._value(range.to)\n });\n }\n\n if (this._mwTimeout) {\n clearTimeout(this._mwTimeout);\n }\n\n this._mwTimeout = setTimeout(() => {\n this._end();\n }, MOUSEWHEEL_DELAY);\n }\n }\n\n _gesturestart(e) {\n const options = this.options;\n\n this._state = {\n range: {\n from: this._index(options.from),\n to: this._index(options.to)\n }\n };\n const args = this._rangeEventArgs(this._state.range);\n\n if (this.trigger(SELECT_START, args)) {\n this._state = null;\n } else {\n e.preventDefault();\n }\n }\n\n _gestureend() {\n if (this._state) {\n this.trigger(SELECT_END, this._rangeEventArgs(this._state.range));\n delete this._state;\n }\n }\n\n _gesturechange(e) {\n const { chart, _state: state, options, categoryAxis } = this;\n const range = state.range;\n const p0 = chart._toModelCoordinates(e.touches[0].x.location).x;\n const p1 = chart._toModelCoordinates(e.touches[1].x.location).x;\n const left = Math.min(p0, p1);\n const right = Math.max(p0, p1);\n\n e.preventDefault();\n\n range.from = categoryAxis.pointCategoryIndex(new Point(left)) || options.min;\n\n range.to = categoryAxis.pointCategoryIndex(new Point(right)) || options.max;\n\n this.move(range.from, range.to);\n\n this.trigger(SELECT, this._rangeEventArgs(range));\n }\n\n _index(value) {\n let index = value;\n\n if (value instanceof Date) {\n index = this.categoryAxis.categoryIndex(value);\n }\n\n return index;\n }\n\n _value(index) {\n let value = index;\n if (this._dateAxis) {\n value = this.categoryAxis.categoryAt(index);\n if (value > this.options.max) {\n value = this.options.max;\n }\n }\n\n return value;\n }\n\n _slot(value) {\n const categoryAxis = this.categoryAxis;\n const index = this._index(value);\n\n return categoryAxis.getSlot(index, index, true);\n }\n\n move(from, to) {\n const options = this.options;\n const reverse = this.categoryAxis.options.reverse;\n const { offset, padding, selection: { border } } = options;\n const left = reverse ? to : from;\n const right = reverse ? from : to;\n const edge = 'x' + (reverse ? 2 : 1);\n\n let box = this._slot(left);\n const leftMaskWidth = round(box[edge] - offset.left + padding.left);\n\n elementStyles(this.leftMask, {\n width: leftMaskWidth\n });\n elementStyles(this.selection, {\n left: leftMaskWidth\n });\n\n box = this._slot(right);\n\n const rightMaskWidth = round(options.width - (box[edge] - offset.left + padding.left));\n elementStyles(this.rightMask, {\n width: rightMaskWidth\n });\n\n let distance = options.width - rightMaskWidth;\n if (distance !== options.width) {\n distance += border.right;\n }\n\n elementStyles(this.rightMask, {\n left: distance\n });\n elementStyles(this.selection, {\n width: Math.max(options.width - (leftMaskWidth + rightMaskWidth) - border.right, 0)\n });\n }\n\n set(from, to) {\n const options = this.options;\n const min = this._index(options.min);\n const max = this._index(options.max);\n const fromValue = limitValue(this._index(from), min, max);\n const toValue = limitValue(this._index(to), fromValue + 1, max);\n\n if (options.visible) {\n this.move(fromValue, toValue);\n }\n\n options.from = this._value(fromValue);\n options.to = this._value(toValue);\n }\n\n expand(delta) {\n const options = this.options;\n const min = this._index(options.min);\n const max = this._index(options.max);\n const zDir = options.mousewheel.zoom;\n const from = this._index(options.from);\n const to = this._index(options.to);\n let range = { from: from, to: to };\n const oldRange = deepExtend({}, range);\n\n if (this._state) {\n range = this._state.range;\n }\n\n if (zDir !== RIGHT) {\n range.from = limitValue(\n limitValue(from - delta, 0, to - 1),\n min, max\n );\n }\n\n if (zDir !== LEFT) {\n range.to = limitValue(\n limitValue(to + delta, range.from + 1, max),\n min,\n max\n );\n }\n\n if (range.from !== oldRange.from || range.to !== oldRange.to) {\n this.set(range.from, range.to);\n return true;\n }\n }\n\n zoom(delta, coords) {\n const options = this.options;\n const min = this._index(options.min);\n const max = this._index(options.max);\n const from = this._index(options.from);\n const to = this._index(options.to);\n let range = { from: from, to: to };\n const oldRange = deepExtend({}, range);\n\n const { reverse } = this.categoryAxis.options;\n const origin = X + (reverse ? '2' : '1');\n const lineBox = this.categoryAxis.lineBox();\n const relative = Math.abs(lineBox[origin] - coords[X]);\n const size = lineBox.width();\n const position = round(relative / size, 2);\n const minDelta = round(position * delta);\n const maxDelta = round((1 - position) * delta);\n\n if (this._state) {\n range = this._state.range;\n }\n\n range.from = limitValue(\n limitValue(from - minDelta, 0, to - 1),\n min, max\n );\n\n range.to = limitValue(\n limitValue(to + maxDelta, range.from + 1, max),\n min,\n max\n );\n\n if (range.from !== oldRange.from || range.to !== oldRange.to) {\n this.set(range.from, range.to);\n return true;\n }\n }\n\n trigger(name, args) {\n return (this.observer || this.chart).trigger(name, args);\n }\n}\n\nsetDefaultOptions(Selection, {\n visible: true,\n mousewheel: {\n zoom: \"both\"\n },\n min: MIN_VALUE,\n max: MAX_VALUE\n});\n\nexport default Selection;\n","import getField from './utils/get-field';\nimport { VALUE } from '../common/constants';\nimport { Class, defined } from '../common';\n\nclass SeriesBinder extends Class {\n\n constructor() {\n super();\n\n this._valueFields = {};\n this._otherFields = {};\n this._nullValue = {};\n this._undefinedValue = {};\n }\n\n register(seriesTypes, valueFields = [ VALUE ], otherFields = {}) {\n\n for (let i = 0; i < seriesTypes.length; i++) {\n const type = seriesTypes[i];\n\n this._valueFields[type] = valueFields;\n this._otherFields[type] = otherFields;\n this._nullValue[type] = this._makeValue(valueFields, null);\n this._undefinedValue[type] = this._makeValue(valueFields, undefined);\n }\n }\n\n canonicalFields(series) {\n return this.valueFields(series).concat(this.otherFields(series));\n }\n\n valueFields(series) {\n return this._valueFields[series.type] || [ VALUE ];\n }\n\n otherFields(series) {\n return this._otherFields[series.type] || [ VALUE ];\n }\n\n bindPoint(series, pointIx, item) {\n const data = series.data;\n const pointData = defined(item) ? item : data[pointIx];\n const result = { valueFields: { value: pointData } };\n const valueFields = this.valueFields(series);\n const otherFields = this._otherFields[series.type];\n let fields, value;\n\n if (pointData === null) {\n value = this._nullValue[series.type];\n } else if (!defined(pointData)) {\n value = this._undefinedValue[series.type];\n } else if (Array.isArray(pointData)) {\n const fieldData = pointData.slice(valueFields.length);\n value = this._bindFromArray(pointData, valueFields);\n fields = this._bindFromArray(fieldData, otherFields);\n } else if (typeof pointData === \"object\") {\n const srcValueFields = this.sourceFields(series, valueFields);\n const srcPointFields = this.sourceFields(series, otherFields);\n\n value = this._bindFromObject(pointData, valueFields, srcValueFields);\n fields = this._bindFromObject(pointData, otherFields, srcPointFields);\n }\n\n if (defined(value)) {\n if (valueFields.length === 1) {\n result.valueFields.value = value[valueFields[0]];\n } else {\n result.valueFields = value;\n }\n }\n\n result.fields = fields || {};\n\n return result;\n }\n\n _makeValue(fields, initialValue) {\n const value = {};\n const length = fields.length;\n\n for (let i = 0; i < length; i++) {\n const fieldName = fields[i];\n value[fieldName] = initialValue;\n }\n\n return value;\n }\n\n _bindFromArray(array, fields) {\n const value = {};\n\n if (fields) {\n const length = Math.min(fields.length, array.length);\n\n for (let i = 0; i < length; i++) {\n value[fields[i]] = array[i];\n }\n }\n\n return value;\n }\n\n _bindFromObject(object, fields, srcFields = fields) {\n const value = {};\n\n if (fields) {\n const length = fields.length;\n\n for (let i = 0; i < length; i++) {\n const fieldName = fields[i];\n const srcFieldName = srcFields[i];\n if (srcFieldName !== null) {\n value[fieldName] = getField(srcFieldName, object);\n }\n }\n }\n\n return value;\n }\n\n sourceFields(series, canonicalFields) {\n const sourceFields = [];\n\n if (canonicalFields) {\n const length = canonicalFields.length;\n\n for (let i = 0; i < length; i++) {\n const fieldName = canonicalFields[i];\n const sourceFieldName = fieldName === VALUE ? \"field\" : fieldName + \"Field\";\n\n sourceFields.push(series[sourceFieldName] !== null ? (series[sourceFieldName] || fieldName) : null);\n }\n }\n\n return sourceFields;\n }\n}\n\nSeriesBinder.current = new SeriesBinder();\n\nexport default SeriesBinder;","import { Color } from '@progress/kendo-drawing';\n\nimport { Class, defined, deepExtend, setDefaultOptions, valueOrDefault, getSpacing, styleValue } from '../../common';\nimport { SHOW_TOOLTIP, HIDE_TOOLTIP } from '../constants';\n\nclass BaseTooltip extends Class {\n constructor(chartService, options) {\n super();\n\n this.chartService = chartService;\n this.options = deepExtend({}, this.options, options);\n }\n\n getStyle(options, point) {\n let { background, border: { color: border } } = options;\n\n if (point) {\n const pointColor = point.color || point.options.color;\n background = valueOrDefault(background, pointColor);\n border = valueOrDefault(border, pointColor);\n }\n\n const padding = getSpacing(options.padding || {}, \"auto\");\n\n return {\n backgroundColor: background,\n borderColor: border,\n font: options.font,\n color: options.color,\n opacity: options.opacity,\n borderWidth: styleValue(options.border.width),\n paddingTop: styleValue(padding.top),\n paddingBottom: styleValue(padding.bottom),\n paddingLeft: styleValue(padding.left),\n paddingRight: styleValue(padding.right)\n };\n }\n\n show(options, tooltipOptions, point) {\n options.format = tooltipOptions.format;\n\n const style = this.getStyle(tooltipOptions, point);\n options.style = style;\n\n const background = new Color(style.backgroundColor);\n if (!defined(tooltipOptions.color) && !background.isDark()) {\n options.className = \"k-chart-tooltip-inverse\";\n }\n\n this.chartService.notify(SHOW_TOOLTIP, options);\n\n this.visible = true;\n }\n\n hide() {\n if (this.chartService) {\n this.chartService.notify(HIDE_TOOLTIP);\n }\n\n this.visible = false;\n }\n\n destroy() {\n delete this.chartService;\n }\n}\n\nsetDefaultOptions(BaseTooltip, {\n border: {\n width: 1\n },\n opacity: 1\n});\n\nexport default BaseTooltip;\n","import BaseTooltip from './base-tooltip';\nimport { Point } from '../../core';\n\nimport { grep, setDefaultOptions } from '../../common';\n\nclass SharedTooltip extends BaseTooltip {\n constructor(plotArea, options) {\n super(plotArea.chartService, options);\n\n this.plotArea = plotArea;\n this.formatService = plotArea.chartService.format;\n }\n\n showAt(points, coords) {\n const tooltipPoints = grep(points, function(point) {\n const tooltip = point.series.tooltip;\n const excluded = tooltip && tooltip.visible === false;\n\n return !excluded;\n });\n\n if (tooltipPoints.length > 0) {\n const point = tooltipPoints[0];\n const slot = this.plotArea.categoryAxis.getSlot(point.categoryIx);\n\n const anchor = coords ? this._slotAnchor(coords, slot) : this._defaultAnchor(point, slot);\n\n this.show({\n anchor: anchor,\n shared: true,\n points: points,\n category: point.category,\n categoryText: this.formatService.auto(this.options.categoryFormat, point.category),\n series: this.plotArea.series\n }, this.options);\n }\n }\n\n _slotAnchor(point, slot) {\n const axis = this.plotArea.categoryAxis;\n const align = {\n horizontal: \"left\",\n vertical: \"center\"\n };\n\n if (!axis.options.vertical) {\n point.x = slot.center().x;\n }\n\n return {\n point: point,\n align: align\n };\n }\n\n _defaultAnchor(point, slot) {\n const box = point.owner.pane.chartsBox();\n const vertical = this.plotArea.categoryAxis.options.vertical;\n const center = box.center();\n const slotCenter = slot.center();\n const align = {\n horizontal: \"center\",\n vertical: \"center\"\n };\n\n let centerPoint;\n if (vertical) {\n centerPoint = new Point(center.x, slotCenter.y);\n } else {\n centerPoint = new Point(slotCenter.x, center.y);\n }\n\n return {\n point: centerPoint,\n align: align\n };\n }\n}\n\nsetDefaultOptions(SharedTooltip, {\n categoryFormat: '{0:d}'\n});\n\nexport default SharedTooltip;","import BaseTooltip from './base-tooltip';\n\nimport { deepExtend } from '../../common';\n\nclass Tooltip extends BaseTooltip {\n show(point) {\n if (!point || !point.tooltipAnchor || (this._current && this._current === point)) {\n return;\n }\n\n const options = deepExtend({}, this.options, point.options.tooltip);\n const anchor = point.tooltipAnchor();\n\n if (anchor) {\n this._current = point;\n super.show({\n point: point,\n anchor: anchor\n }, options, point);\n } else {\n this.hide();\n }\n }\n\n hide() {\n delete this._current;\n super.hide();\n }\n}\n\nexport default Tooltip;","export { default as anyHasZIndex } from './utils/any-has-z-index';\nexport { default as appendIfNotNull } from './utils/append-if-not-null';\nexport { default as areNumbers } from './utils/are-numbers';\nexport { default as bindSegments } from './utils/bind-segments';\nexport { default as categoriesCount } from './utils/categories-count';\nexport { default as countNumbers } from './utils/count-numbers';\nexport { default as equalsIgnoreCase } from './utils/equals-ignore-case';\nexport { default as evalOptions } from './utils/eval-options';\nexport { default as filterSeriesByType } from './utils/filter-series-by-type';\nexport { default as getDateField } from './utils/get-date-field';\nexport { default as getField } from './utils/get-field';\nexport { default as hasGradientOverlay } from './utils/has-gradient-overlay';\nexport { default as hasValue } from './utils/has-value';\nexport { default as isDateAxis } from './utils/is-date-axis';\nexport { default as segmentVisible } from './utils/segment-visible';\nexport { default as singleItemOrArray } from './utils/single-item-or-array';\nexport { default as createOutOfRangePoints } from './utils/create-out-of-range-points';\n\n\n","import { defined } from '../../common';\n\nexport default function anyHasZIndex(elements) {\n for (let idx = 0; idx < elements.length; idx++) {\n if (defined(elements[idx].zIndex)) {\n return true;\n }\n }\n}","export default function appendIfNotNull(array, element) {\n if (element !== null) {\n array.push(element);\n }\n}","import countNumbers from './count-numbers';\n\nexport default function areNumbers(values) {\n return countNumbers(values) === values.length;\n}","import { isNumber, isString } from '../../common';\nimport SeriesBinder from '../series-binder';\nimport segmentVisible from './segment-visible';\n\nexport default function bindSegments(series) {\n const data = series.data;\n const points = [];\n let sum = 0;\n let count = 0;\n\n for (let idx = 0; idx < data.length; idx++) {\n const pointData = SeriesBinder.current.bindPoint(series, idx);\n let value = pointData.valueFields.value;\n\n\n if (isString(value)) {\n value = parseFloat(value);\n }\n\n if (isNumber(value)) {\n pointData.visible = segmentVisible(series, pointData.fields, idx) !== false;\n\n pointData.value = Math.abs(value);\n points.push(pointData);\n\n if (pointData.visible) {\n sum += pointData.value;\n }\n\n if (value !== 0) {\n count++;\n }\n } else {\n points.push(null);\n }\n }\n\n return {\n total: sum,\n points: points,\n count: count\n };\n}","export default function categoriesCount(series) {\n const seriesCount = series.length;\n let categories = 0;\n\n for (let i = 0; i < seriesCount; i++) {\n categories = Math.max(categories, series[i].data.length);\n }\n\n return categories;\n}","import { isNumber } from '../../common';\n\nexport default function countNumbers(values) {\n const length = values.length;\n let count = 0;\n\n for (let i = 0; i < length; i++) {\n const num = values[i];\n if (isNumber(num)) {\n count++;\n }\n }\n\n return count;\n}","import { INTERPOLATE, ZERO } from '../constants';\nimport { convertableToNumber } from '../../common';\nimport SeriesBinder from '../series-binder';\n\nconst AREA_REGEX = /area/i;\n\nfunction seriesMissingValues(series) {\n if (series.missingValues) {\n return series.missingValues;\n }\n\n return AREA_REGEX.test(series.type) || series.stack ? ZERO : INTERPOLATE;\n}\n\nfunction hasValue(series, item) {\n const fields = SeriesBinder.current.bindPoint(series, null, item);\n const valueFields = fields.valueFields;\n\n for (let field in valueFields) {\n if (convertableToNumber(valueFields[field])) {\n return true;\n }\n }\n}\n\nfunction findNext({ start, dir, min, max, getter, hasItem, series }) {\n let pointHasValue, outPoint;\n let idx = start;\n do {\n idx += dir;\n //aggregating and binding the item takes too much time for large number of categories\n //will assume that if the aggregation does not create value for a missing item for one it will not create for others\n if (hasItem(idx)) {\n outPoint = getter(idx);\n pointHasValue = hasValue(series, outPoint.item);\n }\n } while (min <= idx && idx <= max && !pointHasValue);\n\n if (pointHasValue) {\n return outPoint;\n }\n}\n\nexport default function createOutOfRangePoints(series, range, count, getter, hasItem) {\n const { min, max } = range;\n const hasMinPoint = min > 0 && min < count;\n const hasMaxPoint = max + 1 < count;\n\n if (hasMinPoint || hasMaxPoint) {\n const missingValues = seriesMissingValues(series);\n let minPoint, maxPoint;\n if (missingValues !== INTERPOLATE) {\n if (hasMinPoint) {\n minPoint = getter(min - 1);\n }\n\n if (hasMaxPoint) {\n maxPoint = getter(max + 1);\n }\n } else {\n let outPoint, pointHasValue;\n if (hasMinPoint) {\n outPoint = getter(min - 1);\n pointHasValue = hasValue(series, outPoint.item);\n if (!pointHasValue) {\n minPoint = findNext({\n start: min,\n dir: -1,\n min: 0,\n max: count - 1,\n getter: getter,\n hasItem: hasItem,\n series: series\n });\n } else {\n minPoint = outPoint;\n }\n }\n\n if (hasMaxPoint) {\n outPoint = getter(max + 1);\n pointHasValue = hasValue(series, outPoint.item);\n if (!pointHasValue) {\n maxPoint = findNext({\n start: max,\n dir: 1,\n min: 0,\n max: count - 1,\n getter: getter,\n hasItem: hasItem,\n series: series\n });\n } else {\n maxPoint = outPoint;\n }\n }\n }\n\n if (minPoint) {\n series._outOfRangeMinPoint = minPoint;\n }\n\n if (maxPoint) {\n series._outOfRangeMaxPoint = maxPoint;\n }\n }\n}","export default function equalsIgnoreCase(a, b) {\n if (a && b) {\n return a.toLowerCase() === b.toLowerCase();\n }\n\n return a === b;\n}","import { inArray, isFunction, isObject, valueOrDefault } from '../../common';\n\nconst MAX_EXPAND_DEPTH = 5;\n\nexport default function evalOptions(options, context, state = {}, dryRun = false) {\n const defaults = state.defaults = state.defaults || {};\n const depth = state.depth = state.depth || 0;\n let needsEval = false;\n\n state.excluded = state.excluded || [];\n\n if (depth > MAX_EXPAND_DEPTH) {\n return null;\n }\n\n for (let property in options) {\n if (!inArray(property, state.excluded) && options.hasOwnProperty(property)) {\n const propValue = options[property];\n if (isFunction(propValue)) {\n needsEval = true;\n if (!dryRun) {\n options[property] = valueOrDefault(propValue(context), defaults[property]);\n }\n } else if (isObject(propValue)) {\n if (!dryRun) {\n state.defaults = defaults[property];\n }\n state.depth++;\n needsEval = evalOptions(propValue, context, state, dryRun) || needsEval;\n state.depth--;\n }\n }\n }\n\n return needsEval;\n}","import { inArray } from '../../common';\n\nexport default function filterSeriesByType(series, types) {\n const result = [];\n\n const seriesTypes = [].concat(types);\n for (let idx = 0; idx < series.length; idx++) {\n const currentSeries = series[idx];\n if (inArray(currentSeries.type, seriesTypes)) {\n result.push(currentSeries);\n }\n }\n\n return result;\n}","import { parseDate } from '../../date-utils';\nimport { getter } from '../../common';\n\nexport default function getDateField(field, row, intlService) {\n if (row === null) {\n return row;\n }\n\n const key = \"_date_\" + field;\n let value = row[key];\n\n if (!value) {\n value = parseDate(intlService, getter(field, true)(row));\n row[key] = value;\n }\n\n return value;\n}","import { getter } from '../../common';\n\nexport default function getField(field, row) {\n if (row === null) {\n return row;\n }\n\n const get = getter(field, true);\n return get(row);\n}","export default function hasGradientOverlay(options) {\n const overlay = options.overlay;\n\n return overlay && overlay.gradient && overlay.gradient !== \"none\";\n}","import { defined } from '../../common';\n\nexport default function hasValue(value) {\n return defined(value) && value !== null;\n}","import equalsIgnoreCase from './equals-ignore-case';\n\nimport { DATE } from '../../common/constants';\n\nexport default function isDateAxis(axisOptions, sampleCategory) {\n const type = axisOptions.type;\n const dateCategory = sampleCategory instanceof Date;\n\n return (!type && dateCategory) || equalsIgnoreCase(type, DATE);\n}","import { defined } from '../../common';\n\nexport default function segmentVisible(series, fields, index) {\n const visible = fields.visible;\n if (defined(visible)) {\n return visible;\n }\n\n const pointVisibility = series.pointVisibility;\n if (pointVisibility) {\n return pointVisibility[index];\n }\n}\n\n","export default function singleItemOrArray(array) {\n return array.length === 1 ? array[0] : array;\n}","import BarChart from '../bar-chart/bar-chart';\nimport SeriesBinder from '../series-binder';\nimport WaterfallSegment from './waterfall-segment';\n\nimport categoriesCount from '../utils/categories-count';\n\nimport { isNumber } from '../../common';\n\nclass WaterfallChart extends BarChart {\n render() {\n super.render();\n this.createSegments();\n }\n\n traverseDataPoints(callback) {\n const series = this.options.series;\n const totalCategories = categoriesCount(series);\n const isVertical = !this.options.invertAxes;\n\n for (let seriesIx = 0; seriesIx < series.length; seriesIx++) {\n const currentSeries = series[seriesIx];\n let total = 0;\n let runningTotal = 0;\n\n for (let categoryIx = 0; categoryIx < totalCategories; categoryIx++) {\n const data = SeriesBinder.current.bindPoint(currentSeries, categoryIx);\n const value = data.valueFields.value;\n const summary = data.fields.summary;\n let from = total;\n let to;\n\n if (summary) {\n if (summary.toLowerCase() === \"total\") {\n data.valueFields.value = total;\n from = 0;\n to = total;\n } else {\n data.valueFields.value = runningTotal;\n to = from - runningTotal;\n runningTotal = 0;\n }\n } else if (isNumber(value)) {\n runningTotal += value;\n total += value;\n to = total;\n }\n\n callback(data, {\n category: this.categoryAxis.categoryAt(categoryIx),\n categoryIx: categoryIx,\n series: currentSeries,\n seriesIx: seriesIx,\n total: total,\n runningTotal: runningTotal,\n from: from,\n to: to,\n isVertical: isVertical\n });\n }\n }\n }\n\n updateRange(value, fields) {\n super.updateRange({ value: fields.to }, fields);\n }\n\n aboveAxis(point) {\n return point.value >= 0;\n }\n\n plotRange(point) {\n return [ point.from, point.to ];\n }\n\n createSegments() {\n const series = this.options.series;\n const seriesPoints = this.seriesPoints;\n const segments = this.segments = [];\n\n for (let seriesIx = 0; seriesIx < series.length; seriesIx++) {\n const currentSeries = series[seriesIx];\n const points = seriesPoints[seriesIx];\n\n if (points) {\n let prevPoint;\n for (let pointIx = 0; pointIx < points.length; pointIx++) {\n const point = points[pointIx];\n\n if (point && prevPoint) {\n const segment = new WaterfallSegment(prevPoint, point, currentSeries);\n segments.push(segment);\n this.append(segment);\n }\n\n prevPoint = point;\n }\n }\n }\n }\n}\n\nexport default WaterfallChart;","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport { ChartElement } from '../../core';\n\nimport { FADEIN, INITIAL_ANIMATION_DURATION } from '../constants';\n\nimport { alignPathToPixel, setDefaultOptions } from '../../common';\n\nclass WaterfallSegment extends ChartElement {\n constructor(from, to, series) {\n super();\n\n this.from = from;\n this.to = to;\n this.series = series;\n }\n\n linePoints() {\n const from = this.from;\n const { from: { box: fromBox }, to: { box: toBox } } = this;\n const points = [];\n\n if (from.isVertical) {\n const y = from.aboveAxis ? fromBox.y1 : fromBox.y2;\n points.push(\n [ fromBox.x1, y ],\n [ toBox.x2, y ]\n );\n } else {\n const x = from.aboveAxis ? fromBox.x2 : fromBox.x1;\n points.push(\n [ x, fromBox.y1 ],\n [ x, toBox.y2 ]\n );\n }\n\n return points;\n }\n\n createVisual() {\n super.createVisual();\n\n const line = this.series.line || {};\n\n const path = draw.Path.fromPoints(this.linePoints(), {\n stroke: {\n color: line.color,\n width: line.width,\n opacity: line.opacity,\n dashType: line.dashType\n }\n });\n\n alignPathToPixel(path);\n this.visual.append(path);\n }\n}\n\nsetDefaultOptions(WaterfallSegment, {\n animation: {\n type: FADEIN,\n delay: INITIAL_ANIMATION_DURATION\n }\n});\n\nexport default WaterfallSegment;","export { default as addClass } from './common/add-class';\nexport { default as removeClass } from './common/remove-class';\nexport { default as alignPathToPixel } from './common/align-path-to-pixel';\nexport { default as clockwise } from './common/clockwise';\nexport { default as convertableToNumber } from './common/convertable-to-number';\nexport { default as deepExtend } from './common/deep-extend';\nexport { default as elementStyles } from './common/element-styles';\nexport { default as getSpacing } from './common/get-spacing';\nexport { default as getTemplate } from './common/get-template';\nexport { default as getter } from './common/getter';\nexport { default as grep } from './common/grep';\nexport { default as hasClasses } from './common/has-classes';\nexport { default as HashMap } from './common/hash-map';\nexport { default as inArray } from './common/in-array';\nexport { default as interpolateValue } from './common/interpolate-value';\nexport { default as InstanceObserver } from './common/instance-observer';\nexport { default as isArray } from './common/is-array';\nexport { default as isFunction } from './common/is-function';\nexport { default as isNumber } from './common/is-number';\nexport { default as isObject } from './common/is-object';\nexport { default as isString } from './common/is-string';\nexport { default as map } from './common/map';\nexport { default as mousewheelDelta } from './common/mousewheel-delta';\nexport { default as FontLoader } from './common/font-loader';\nexport { default as setDefaultOptions } from './common/set-default-options';\nexport { default as sparseArrayLimits } from './common/sparse-array-limits';\nexport { default as styleValue } from './common/style-value';\nexport { default as find } from './common/find';\nexport { default as elementScale } from './common/element-scale';\nexport { default as autoTextColor } from './common/auto-text-color';\nexport { default as createHashSet } from './common/create-hash-set';\nexport { default as defaultErrorHandler } from './common/default-error-handler';\nexport { default as keys } from './common/keys';\n\nexport * from './drawing-utils';\n","import isArray from './is-array';\n\nexport default function addClass(element, classes) {\n const classArray = isArray(classes) ? classes : [ classes ];\n\n for (let idx = 0; idx < classArray.length; idx++) {\n const className = classArray[idx];\n if (element.className.indexOf(className) === -1) {\n element.className += \" \" + className;\n }\n }\n}","import { drawing } from '@progress/kendo-drawing';\n\nexport default function alignPathToPixel(path) {\n let offset = 0.5;\n if (path.options.stroke && drawing.util.defined(path.options.stroke.width)) {\n if (path.options.stroke.width % 2 === 0) {\n offset = 0;\n }\n }\n\n for (let i = 0; i < path.segments.length; i++) {\n path.segments[i].anchor().round(0).translate(offset, offset);\n }\n\n return path;\n}","import { Color } from '@progress/kendo-drawing';\nimport { WHITE, BLACK } from './constants';\n\nfunction autoTextColor(color) {\n const isDark = new Color(color).isDark();\n if (isDark) {\n return WHITE;\n }\n\n return BLACK;\n}\n\nexport default autoTextColor;\n","export default function clockwise(angle1, angle2) {\n // True if angle2 is clockwise of angle1\n // assuming angles grow in clock-wise direction\n // (as in the pie and radar charts)\n return -angle1.x * angle2.y + angle1.y * angle2.x < 0;\n}","export const ARC = \"arc\";\nexport const AXIS_LABEL_CLICK = \"axisLabelClick\";\nexport const BLACK = \"#000\";\nexport const BOTTOM = \"bottom\";\nexport const CENTER = \"center\";\nexport const CIRCLE = \"circle\";\nexport const COORD_PRECISION = 3;\nexport const CROSS = \"cross\";\nexport const DATE = \"date\";\nexport const DEFAULT_FONT = \"12px sans-serif\";\nexport const DEFAULT_HEIGHT = 400;\nexport const DEFAULT_PRECISION = 10;\nexport const DEFAULT_WIDTH = 600;\nexport const END = \"end\";\nexport const FORMAT_REGEX = /\\{\\d+:?/;\nexport const HEIGHT = \"height\";\nexport const HIGHLIGHT_ZINDEX = 100;\nexport const INSIDE = \"inside\";\nexport const LEFT = \"left\";\nexport const MAX_VALUE = Number.MAX_VALUE;\nexport const MIN_VALUE = -Number.MAX_VALUE;\nexport const NONE = \"none\";\nexport const NOTE_CLICK = \"noteClick\";\nexport const NOTE_HOVER = \"noteHover\";\nexport const NOTE_LEAVE = \"noteLeave\";\nexport const OBJECT = \"object\";\nexport const OUTSIDE = \"outside\";\nexport const RIGHT = \"right\";\nexport const ROUNDED_RECT = \"roundedRect\";\nexport const START = \"start\";\nexport const STRING = \"string\";\nexport const TOP = \"top\";\nexport const TRIANGLE = \"triangle\";\nexport const VALUE = \"value\";\nexport const WHITE = \"#fff\";\nexport const WIDTH = \"width\";\nexport const X = \"x\";\nexport const Y = \"y\";\nexport const DEFAULT_SERIES_OPACITY = 1;\n","import isNumber from './is-number';\nimport isString from './is-string';\n\nexport default function convertableToNumber(value) {\n return isNumber(value) || (isString(value) && isFinite(value));\n}","const DELETED = {};\n\nclass LegacySet {\n constructor(values) {\n this._index = {};\n this._values = values ? values.slice(0) : [];\n\n for (let i = 0; i < this._values.length; i++) {\n this._index[this._values[i]] = i;\n }\n }\n\n values() {\n return this._values.filter(item => item !== DELETED);\n }\n\n has(value) {\n return this._index[value] !== undefined;\n }\n\n add(value) {\n if (!this.has(value)) {\n this._index[value] = this._values.length;\n this._values.push(value);\n }\n }\n\n delete(value) {\n const index = this._index[value];\n if (index !== undefined) {\n this._values[index] = DELETED;\n delete this._index[value];\n }\n }\n\n clear() {\n this._index = {};\n this._values = [];\n }\n\n get size() {\n return this._values.length;\n }\n}\n\nclass SetWrapper {\n constructor(values) {\n this._set = new Set(values);\n }\n\n values() {\n return Array.from(this._set);\n }\n\n has(value) {\n return this._set.has(value);\n }\n\n add(value) {\n this._set.add(value);\n }\n\n delete(value) {\n this._set.delete(value);\n }\n\n clear() {\n this._set.clear();\n }\n\n get size() {\n return this._set.size;\n }\n}\n\n// TODO: Drop LegacySet when removing support for IE10\nlet supportsSet = () => {\n let supported = false;\n\n if (typeof Set === 'function') {\n const set = new Set([1]);\n supported = set.has(1);\n }\n\n return supported;\n};\n\nexport default function createHashSet(values) {\n if (supportsSet()) {\n return new SetWrapper(values);\n }\n\n return new LegacySet(values);\n}\n","import isFunction from './is-function';\n\nconst OBJECT = \"object\";\nconst UNDEFINED = \"undefined\";\n\nfunction deepExtendOne(destination, source) {\n\n for (let property in source) {\n let propValue = source[property];\n let propType = typeof propValue;\n\n let propInit;\n if (propType === OBJECT && propValue !== null) {\n propInit = propValue.constructor;\n } else {\n propInit = null;\n }\n\n if (propInit && propInit !== Array) {\n\n if (propValue instanceof Date) {\n destination[property] = new Date(propValue.getTime());\n } else if (isFunction(propValue.clone)) {\n destination[property] = propValue.clone();\n } else {\n let destProp = destination[property];\n if (typeof (destProp) === OBJECT) {\n destination[property] = destProp || {};\n } else {\n destination[property] = {};\n }\n deepExtendOne(destination[property], propValue);\n }\n } else if (propType !== UNDEFINED) {\n destination[property] = propValue;\n }\n }\n\n return destination;\n}\n\nexport default function deepExtend(destination) {\n const length = arguments.length;\n\n for (let i = 1; i < length; i++) {\n deepExtendOne(destination, arguments[i]);\n }\n\n return destination;\n}","export default function defaultErrorHandler(error) {\n throw error;\n}\n","import { geometry } from '@progress/kendo-drawing';\n\nconst Matrix = geometry.Matrix;\nconst matrixRegexp = /matrix\\((.*)\\)/;\n\nfunction parseMatrix(matrixString) {\n const match = matrixString.match(matrixRegexp);\n if (match === null || match.length !== 2) {\n return Matrix.unit();\n }\n\n const members = match[1].split(',').map(x => parseFloat(x));\n return new Matrix(...members);\n}\n\nfunction transformMatrix(element) {\n const transform = getComputedStyle(element).transform;\n\n if (transform === 'none') {\n return Matrix.unit();\n }\n\n return parseMatrix(transform);\n}\n\nexport default function elementScale(element) {\n if (!element) {\n return Matrix.unit();\n }\n\n let matrix = transformMatrix(element);\n let parent = element.parentElement;\n while (parent) {\n const parentMatrix = transformMatrix(parent);\n matrix = matrix.multiplyCopy(parentMatrix);\n parent = parent.parentElement;\n }\n\n matrix.b = matrix.c = matrix.e = matrix.f = 0;\n return matrix;\n}\n","import isObject from './is-object';\nimport isArray from './is-array';\nimport isString from './is-string';\nimport styleValue from './style-value';\n\nconst SIZE_STYLES_REGEX = /width|height|top|left|bottom|right/i;\n\nfunction isSizeField(field) {\n return SIZE_STYLES_REGEX.test(field);\n}\n\nexport default function elementStyles(element, styles) {\n const stylesArray = isString(styles) ? [ styles ] : styles;\n\n if (isArray(stylesArray)) {\n const result = {};\n const style = window.getComputedStyle(element);\n\n for (let idx = 0; idx < stylesArray.length; idx++) {\n let field = stylesArray[idx];\n result[field] = isSizeField(field) ? parseFloat(style[field]) : style[field];\n }\n\n return result;\n } else if (isObject(styles)) {\n for (let field in styles) {\n element.style[field] = styleValue(styles[field]);\n }\n }\n}","export default function find(array, predicate) {\n for (let i = 0; i < array.length; i++) {\n const item = array[i];\n if (predicate(item, i, array)) {\n return item;\n }\n }\n}\n","import { logToConsole } from '../drawing-utils';\n\nclass FontLoader {\n static fetchFonts(options, fonts, state = { depth: 0 }) {\n const MAX_DEPTH = 5;\n\n if (!options || state.depth > MAX_DEPTH || !document.fonts) {\n return;\n }\n\n Object.keys(options).forEach(function(key) {\n const value = options[key];\n if (key === \"dataSource\" || key[0] === \"$\" || !value) {\n return;\n }\n\n if (key === \"font\") {\n fonts.push(value);\n } else if (typeof value === \"object\") {\n state.depth++;\n FontLoader.fetchFonts(value, fonts, state);\n state.depth--;\n }\n });\n }\n\n static loadFonts(fonts, callback) {\n let promises = [];\n\n if (fonts.length > 0 && document.fonts) {\n try {\n promises = fonts.map(function(font) {\n return document.fonts.load(font);\n });\n } catch (e) {\n // Silence font-loading errors\n logToConsole(e);\n }\n\n Promise.all(promises).then(callback, callback);\n } else {\n callback();\n }\n }\n\n static preloadFonts(options, callback) {\n const fonts = [];\n FontLoader.fetchFonts(options, fonts);\n\n FontLoader.loadFonts(fonts, callback);\n }\n}\n\nexport default FontLoader;","import { TOP, BOTTOM, LEFT, RIGHT } from './constants';\n\nexport default function getSpacing(value, defaultSpacing = 0) {\n const spacing = { top: 0, right: 0, bottom: 0, left: 0 };\n\n if (typeof(value) === \"number\") {\n spacing[TOP] = spacing[RIGHT] = spacing[BOTTOM] = spacing[LEFT] = value;\n } else {\n spacing[TOP] = value[TOP] || defaultSpacing;\n spacing[RIGHT] = value[RIGHT] || defaultSpacing;\n spacing[BOTTOM] = value[BOTTOM] || defaultSpacing;\n spacing[LEFT] = value[LEFT] || defaultSpacing;\n }\n\n return spacing;\n}","import TemplateService from '../services/template-service';\nimport isFunction from './is-function';\n\nexport default function getTemplate(options = {}) {\n let template;\n if (options.template) {\n options.template = template = TemplateService.compile(options.template);\n } else if (isFunction(options.content)) {\n template = options.content;\n }\n\n return template;\n}\n","import { drawing } from '@progress/kendo-drawing';\n\nconst FIELD_REGEX = /\\[(?:(\\d+)|['\"](.*?)['\"])\\]|((?:(?!\\[.*?\\]|\\.).)+)/g;\nconst getterCache = {};\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(drawing.util.defined(index) ? 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 grep(array, callback) {\n const length = array.length;\n const result = [];\n for (let idx = 0; idx < length; idx++) {\n if (callback(array[idx])) {\n result .push(array[idx]);\n }\n }\n\n return result;\n}","export default function hasClasses(element, classNames) {\n if (element.className) {\n const names = classNames.split(\" \");\n for (let idx = 0; idx < names.length; idx++) {\n if (element.className.indexOf(names[idx]) !== -1) {\n return true;\n }\n }\n }\n}","\nexport default class HashMap {\n constructor() {\n this._map = {};\n }\n\n get(name) {\n return this._map[this._key(name)];\n }\n\n set(name, value) {\n this._map[this._key(name)] = value;\n }\n\n _key(name) {\n return name instanceof Date ? name.getTime() : name;\n }\n}","export default function inArray(value, array) {\n if (array) {\n return array.indexOf(value) !== -1;\n }\n}","import deepExtend from './deep-extend';\n\nconst TRIGGER = 'trigger';\n\nclass InstanceObserver {\n constructor(observer, handlers) {\n this.observer = observer;\n this.handlerMap = deepExtend({}, this.handlerMap, handlers);\n }\n\n trigger(name, args) {\n const { observer, handlerMap } = this;\n let isDefaultPrevented;\n if (handlerMap[name]) {\n isDefaultPrevented = this.callObserver(handlerMap[name], args);\n } else if (observer[TRIGGER]) {\n isDefaultPrevented = this.callObserver(TRIGGER, name, args);\n }\n\n return isDefaultPrevented;\n }\n\n callObserver(fnName, ...args) {\n return this.observer[fnName].apply(this.observer, args);\n }\n\n requiresHandlers(names) {\n if (this.observer.requiresHandlers) {\n return this.observer.requiresHandlers(names);\n }\n\n for (let idx = 0; idx < names.length; idx++) {\n if (this.handlerMap[names[idx]]) {\n return true;\n }\n }\n }\n}\n\nexport default InstanceObserver;","import { drawing } from '@progress/kendo-drawing';\nimport { COORD_PRECISION } from './constants';\n\nexport default function interpolateValue(start, end, progress) {\n return drawing.util.round(start + (end - start) * progress, COORD_PRECISION);\n}","export default function isArray(value) {\n return Array.isArray(value);\n}","export default function isFunction(fn) {\n return typeof fn === \"function\";\n}","export default function isNumber(value) {\n return typeof value === \"number\" && !isNaN(value);\n}","export default function isObject(value) {\n return typeof value === \"object\";\n}","import { STRING } from './constants';\n\nexport default function isString(value) {\n return typeof value === STRING;\n}","let keys = {\n INSERT: 45,\n DELETE: 46,\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n ESC: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n END: 35,\n HOME: 36,\n SPACEBAR: 32,\n PAGEUP: 33,\n PAGEDOWN: 34,\n F2: 113,\n F10: 121,\n F12: 123,\n NUMPAD_PLUS: 107,\n NUMPAD_MINUS: 109,\n NUMPAD_DOT: 110\n};\n\nexport default keys;\n","import { drawing } from '@progress/kendo-drawing';\n\nexport default function map(array, callback) {\n const length = array.length;\n const result = [];\n for (let idx = 0; idx < length; idx++) {\n let value = callback(array[idx]);\n if (drawing.util.defined(value)) {\n result.push(value);\n }\n }\n return result;\n}","import { support } from '@progress/kendo-drawing';\n\nconst browser = support.browser || {};\n\nexport default function mousewheelDelta(e) {\n let delta = 0;\n\n if (e.wheelDelta) {\n delta = -e.wheelDelta / 120;\n\n if (browser.webkit) {\n // Webkit browsers scale the delta by twice the device resolution.\n // Possibly related to https://bugs.webkit.org/show_bug.cgi?id=196339\n //\n // Low device resolutions (e.g. zoom-out to 30%) also behave strangely.\n delta = delta / (2 * Math.max(window.devicePixelRatio, 0.625));\n }\n } else if (e.detail) {\n delta = e.detail / 3;\n }\n\n delta = delta > 0 ? Math.ceil(delta) : Math.floor(delta);\n\n return delta;\n}\n","const SPACE_REGEX = /\\s+/g;\n\nexport default function removeClass(element, className) {\n if (element && element.className) {\n element.className = element.className.replace(className, \"\").replace(SPACE_REGEX, \" \");\n }\n}","import deepExtend from './deep-extend';\n\nexport default function setDefaultOptions(type, options) {\n const proto = type.prototype;\n if (proto.options) {\n proto.options = deepExtend({}, proto.options, options);\n } else {\n proto.options = options;\n }\n}","import { MIN_VALUE, MAX_VALUE } from './constants';\n\nexport default function sparseArrayLimits(arr) {\n let min = MAX_VALUE;\n let max = MIN_VALUE;\n\n for (let idx = 0, length = arr.length; idx < length; idx++) {\n const value = arr[idx];\n if (value !== null && isFinite(value)) {\n min = Math.min(min, value);\n max = Math.max(max, value);\n }\n }\n\n return {\n min: min === MAX_VALUE ? undefined : min,\n max: max === MIN_VALUE ? undefined : max\n };\n}","import isNumber from './is-number';\n\nexport default function styleValue(value) {\n if (isNumber(value)) {\n return value + \"px\";\n }\n return value;\n}","export { default as autoMajorUnit } from './core/utils/auto-major-unit';\nexport { default as Point } from './core/point';\nexport { default as Box } from './core/box';\nexport { default as Ring } from './core/ring';\nexport { default as Sector } from './core/sector';\nexport { default as ShapeBuilder } from './core/shape-builder';\nexport { default as ShapeElement } from './core/shape-element';\nexport { default as ChartElement } from './core/chart-element';\nexport { default as BoxElement } from './core/box-element';\nexport { default as RootElement } from './core/root-element';\nexport { default as FloatElement } from './core/float-element';\nexport { default as Text } from './core/text';\nexport { default as TextBox } from './core/text-box';\nexport { default as Title } from './core/title';\nexport { default as AxisLabel } from './core/axis-label';\nexport { default as Axis } from './core/axis';\nexport { default as Note } from './core/note';\nexport { default as CategoryAxis } from './core/category-axis';\nexport { default as DateCategoryAxis } from './core/date-category-axis';\nexport { default as DateValueAxis } from './core/date-value-axis';\nexport { default as NumericAxis } from './core/numeric-axis';\nexport { default as LogarithmicAxis } from './core/logarithmic-axis';\nexport { default as PolarAxis } from './core/polar-axis';\nexport { default as RadarCategoryAxis } from './core/radar-category-axis';\nexport { default as RadarNumericAxis } from './core/radar-numeric-axis';\nexport { default as RadarLogarithmicAxis } from './core/radar-logarithmic-axis';\nexport { default as CurveProcessor } from './core/curve-processor';\nexport { default as Gradients } from './core/gradients';\nexport { default as rectToBox } from './core/utils/rect-to-box';\n","import { geometry as geom } from '@progress/kendo-drawing';\n\nimport TextBox from './text-box';\nimport Box from './box';\n\nimport rectToBox from './utils/rect-to-box';\n\nimport { AXIS_LABEL_CLICK, CENTER, TOP, BOTTOM, LEFT, DEFAULT_PRECISION, X, Y } from '../common/constants';\n\nimport { eventElement, round, setDefaultOptions } from '../common';\n\nclass AxisLabel extends TextBox {\n constructor(value, text, index, dataItem, options) {\n super(text, options);\n\n this.text = text;\n this.value = value;\n this.index = index;\n this.dataItem = dataItem;\n this.reflow(new Box());\n }\n\n visualContext(targetBox) {\n const context = super.visualContext(targetBox);\n\n context.value = this.value;\n context.dataItem = this.dataItem;\n context.format = this.options.format;\n context.culture = this.options.culture;\n\n return context;\n }\n\n click(widget, e) {\n\n widget.trigger(AXIS_LABEL_CLICK, {\n element: eventElement(e),\n value: this.value,\n text: this.text,\n index: this.index,\n dataItem: this.dataItem,\n axis: this.parent.options\n });\n }\n\n rotate() {\n if (this.options.alignRotation !== CENTER) {\n const box = this.normalBox.toRect();\n const transform = this.rotationTransform();\n\n this.box = rectToBox(box.bbox(transform.matrix()));\n } else {\n super.rotate();\n }\n\n return this.box;\n }\n\n rotationTransform() {\n const options = this.options;\n const rotation = options.rotation;\n if (!rotation) {\n return null;\n }\n\n if (options.alignRotation === CENTER) {\n return super.rotationTransform();\n }\n\n const rotationMatrix = geom.transform().rotate(rotation).matrix();\n const box = this.normalBox.toRect();\n const rect = this.targetBox.toRect();\n\n const rotationOrigin = options.rotationOrigin || TOP;\n const alignAxis = rotationOrigin === TOP || rotationOrigin === BOTTOM ? X : Y;\n const distanceAxis = rotationOrigin === TOP || rotationOrigin === BOTTOM ? Y : X;\n const axisAnchor = rotationOrigin === TOP || rotationOrigin === LEFT ? rect.origin : rect.bottomRight();\n\n const topLeft = box.topLeft().transformCopy(rotationMatrix);\n const topRight = box.topRight().transformCopy(rotationMatrix);\n const bottomRight = box.bottomRight().transformCopy(rotationMatrix);\n const bottomLeft = box.bottomLeft().transformCopy(rotationMatrix);\n const rotatedBox = geom.Rect.fromPoints(topLeft, topRight, bottomRight, bottomLeft);\n\n const translate = {\n [distanceAxis]: rect.origin[distanceAxis] - rotatedBox.origin[distanceAxis]\n };\n\n const distanceLeft = Math.abs(topLeft[distanceAxis] + translate[distanceAxis] - axisAnchor[distanceAxis]);\n const distanceRight = Math.abs(topRight[distanceAxis] + translate[distanceAxis] - axisAnchor[distanceAxis]);\n\n let alignStart, alignEnd;\n\n if (round(distanceLeft, DEFAULT_PRECISION) === round(distanceRight, DEFAULT_PRECISION)) {\n alignStart = topLeft;\n alignEnd = topRight;\n } else if (distanceRight < distanceLeft) {\n alignStart = topRight;\n alignEnd = bottomRight;\n } else {\n alignStart = topLeft;\n alignEnd = bottomLeft;\n }\n\n const alignCenter = alignStart[alignAxis] + (alignEnd[alignAxis] - alignStart[alignAxis]) / 2;\n translate[alignAxis] = rect.center()[alignAxis] - alignCenter;\n\n return geom.transform()\n .translate(translate.x, translate.y)\n .rotate(rotation);\n }\n}\n\nsetDefaultOptions(AxisLabel, {\n _autoReflow: false\n});\n\nexport default AxisLabel;\n","import { drawing as draw, geometry as geom } from '@progress/kendo-drawing';\n\nimport ChartElement from './chart-element';\nimport TextBox from './text-box';\nimport AxisLabel from './axis-label';\nimport Note from './note';\nimport Box from './box';\nimport { ChartService } from '../services';\n\nimport createAxisTick from './utils/create-axis-tick';\nimport createAxisGridLine from './utils/create-axis-grid-line';\n\nimport { NONE, BLACK, CENTER, TOP, BOTTOM, LEFT, RIGHT, OUTSIDE, X, Y, WIDTH, HEIGHT } from '../common/constants';\nimport { alignPathToPixel, deepExtend, getTemplate, grep, defined, isObject, inArray, limitValue, round, setDefaultOptions } from '../common';\n\nclass Axis extends ChartElement {\n constructor(options, chartService = new ChartService()) {\n super(options);\n\n this.chartService = chartService;\n\n if (!this.options.visible) {\n this.options = deepExtend({}, this.options, {\n labels: {\n visible: false\n },\n line: {\n visible: false\n },\n margin: 0,\n majorTickSize: 0,\n minorTickSize: 0\n });\n }\n\n this.options.minorTicks = deepExtend({}, {\n color: this.options.line.color,\n width: this.options.line.width,\n visible: this.options.minorTickType !== NONE\n }, this.options.minorTicks, {\n size: this.options.minorTickSize,\n align: this.options.minorTickType\n });\n\n this.options.majorTicks = deepExtend({}, {\n color: this.options.line.color,\n width: this.options.line.width,\n visible: this.options.majorTickType !== NONE\n }, this.options.majorTicks, {\n size: this.options.majorTickSize,\n align: this.options.majorTickType\n });\n\n this.initFields();\n\n if (!this.options._deferLabels) {\n this.createLabels();\n }\n\n this.createTitle();\n this.createNotes();\n }\n\n initFields() {\n }\n\n // abstract labelsCount(): Number\n // abstract createAxisLabel(index, options): AxisLabel\n\n labelsRange() {\n return {\n min: this.options.labels.skip,\n max: this.labelsCount()\n };\n }\n\n normalizeLabelRotation(labelOptions) {\n const rotation = labelOptions.rotation;\n\n if (isObject(rotation)) {\n labelOptions.alignRotation = rotation.align;\n labelOptions.rotation = rotation.angle;\n }\n }\n\n createLabels() {\n const options = this.options;\n const align = options.vertical ? RIGHT : CENTER;\n const labelOptions = deepExtend({ }, options.labels, {\n align: align,\n zIndex: options.zIndex\n });\n const step = Math.max(1, labelOptions.step);\n\n this.clearLabels();\n\n if (labelOptions.visible) {\n this.normalizeLabelRotation(labelOptions);\n if (labelOptions.rotation === \"auto\") {\n labelOptions.rotation = 0;\n options.autoRotateLabels = true;\n }\n\n const range = this.labelsRange();\n for (let idx = range.min; idx < range.max; idx += step) {\n const labelContext = { index: idx, count: range.max };\n let label = this.createAxisLabel(idx, labelOptions, labelContext);\n if (label) {\n this.append(label);\n this.labels.push(label);\n }\n }\n }\n }\n\n clearLabels() {\n this.children = grep(this.children, child => !(child instanceof AxisLabel));\n this.labels = [];\n }\n\n clearTitle() {\n if (this.title) {\n this.children = grep(this.children, child => child !== this.title);\n this.title = undefined;\n }\n }\n\n clear() {\n this.clearLabels();\n this.clearTitle();\n }\n\n lineBox() {\n const { options, box } = this;\n const vertical = options.vertical;\n const mirror = options.labels.mirror;\n const axisX = mirror ? box.x1 : box.x2;\n const axisY = mirror ? box.y2 : box.y1;\n const lineWidth = options.line.width || 0;\n\n return vertical ?\n new Box(axisX, box.y1, axisX, box.y2 - lineWidth) :\n new Box(box.x1, axisY, box.x2 - lineWidth, axisY);\n }\n\n createTitle() {\n const options = this.options;\n const titleOptions = deepExtend({\n rotation: options.vertical ? -90 : 0,\n text: \"\",\n zIndex: 1,\n visualSize: true\n }, options.title);\n\n if (titleOptions.visible && titleOptions.text) {\n const title = new TextBox(titleOptions.text, titleOptions);\n this.append(title);\n this.title = title;\n }\n }\n\n createNotes() {\n const options = this.options;\n const notes = options.notes;\n const items = notes.data || [];\n\n this.notes = [];\n\n for (let i = 0; i < items.length; i++) {\n const item = deepExtend({}, notes, items[i]);\n item.value = this.parseNoteValue(item.value);\n\n const note = new Note({\n value: item.value,\n text: item.label.text,\n dataItem: item\n }, item, this.chartService);\n\n if (note.options.visible) {\n if (defined(note.options.position)) {\n if (options.vertical && !inArray(note.options.position, [ LEFT, RIGHT ])) {\n note.options.position = options.reverse ? LEFT : RIGHT;\n } else if (!options.vertical && !inArray(note.options.position, [ TOP, BOTTOM ])) {\n note.options.position = options.reverse ? BOTTOM : TOP;\n }\n } else {\n if (options.vertical) {\n note.options.position = options.reverse ? LEFT : RIGHT;\n } else {\n note.options.position = options.reverse ? BOTTOM : TOP;\n }\n }\n this.append(note);\n this.notes.push(note);\n }\n }\n }\n\n parseNoteValue(value) {\n return value;\n }\n\n renderVisual() {\n super.renderVisual();\n\n this.createPlotBands();\n }\n\n createVisual() {\n super.createVisual();\n\n this.createBackground();\n this.createLine();\n }\n\n gridLinesVisual() {\n let gridLines = this._gridLines;\n if (!gridLines) {\n gridLines = this._gridLines = new draw.Group({\n zIndex: -2\n });\n this.appendVisual(this._gridLines);\n }\n\n return gridLines;\n }\n\n createTicks(lineGroup) {\n const options = this.options;\n const lineBox = this.lineBox();\n const mirror = options.labels.mirror;\n const majorUnit = options.majorTicks.visible ? options.majorUnit : 0;\n const tickLineOptions = {\n // TODO\n // _alignLines: options._alignLines,\n vertical: options.vertical\n };\n\n function render(tickPositions, tickOptions, skipUnit) {\n const count = tickPositions.length;\n const step = Math.max(1, tickOptions.step);\n\n if (tickOptions.visible) {\n for (let i = tickOptions.skip; i < count; i += step) {\n if (defined(skipUnit) && (i % skipUnit === 0)) {\n continue;\n }\n\n tickLineOptions.tickX = mirror ? lineBox.x2 : lineBox.x2 - tickOptions.size;\n tickLineOptions.tickY = mirror ? lineBox.y1 - tickOptions.size : lineBox.y1;\n tickLineOptions.position = tickPositions[i];\n\n lineGroup.append(createAxisTick(tickLineOptions, tickOptions));\n }\n }\n }\n\n render(this.getMajorTickPositions(), options.majorTicks);\n render(this.getMinorTickPositions(), options.minorTicks, majorUnit / options.minorUnit);\n }\n\n createLine() {\n const options = this.options;\n const line = options.line;\n const lineBox = this.lineBox();\n\n if (line.width > 0 && line.visible) {\n const path = new draw.Path({\n stroke: {\n width: line.width,\n color: line.color,\n dashType: line.dashType\n }\n\n /* TODO\n zIndex: line.zIndex,\n */\n });\n\n path.moveTo(lineBox.x1, lineBox.y1)\n .lineTo(lineBox.x2, lineBox.y2);\n\n if (options._alignLines) {\n alignPathToPixel(path);\n }\n\n const group = this._lineGroup = new draw.Group();\n group.append(path);\n\n this.visual.append(group);\n this.createTicks(group);\n }\n }\n\n getActualTickSize() {\n const options = this.options;\n let tickSize = 0;\n\n if (options.majorTicks.visible && options.minorTicks.visible) {\n tickSize = Math.max(options.majorTicks.size, options.minorTicks.size);\n } else if (options.majorTicks.visible) {\n tickSize = options.majorTicks.size;\n } else if (options.minorTicks.visible) {\n tickSize = options.minorTicks.size;\n }\n\n return tickSize;\n }\n\n createBackground() {\n const { options, box } = this;\n const background = options.background;\n\n if (background) {\n this._backgroundPath = draw.Path.fromRect(box.toRect(), {\n fill: {\n color: background\n },\n stroke: null\n });\n\n this.visual.append(this._backgroundPath);\n }\n }\n\n createPlotBands() {\n const options = this.options;\n const plotBands = options.plotBands || [];\n const vertical = options.vertical;\n const plotArea = this.plotArea;\n\n if (plotBands.length === 0) {\n return;\n }\n\n const group = this._plotbandGroup = new draw.Group({\n zIndex: -1\n });\n\n const altAxis = grep(this.pane.axes, axis => axis.options.vertical !== this.options.vertical)[0];\n\n for (let idx = 0; idx < plotBands.length; idx++) {\n let item = plotBands[idx];\n let slotX, slotY;\n let labelOptions = item.label;\n let label;\n\n if (vertical) {\n slotX = (altAxis || plotArea.axisX).lineBox();\n slotY = this.getSlot(item.from, item.to, true);\n } else {\n slotX = this.getSlot(item.from, item.to, true);\n slotY = (altAxis || plotArea.axisY).lineBox();\n }\n\n if (labelOptions) {\n labelOptions.vAlign = labelOptions.position || LEFT;\n label = this.createPlotBandLabel(\n labelOptions,\n item,\n new Box(\n slotX.x1,\n slotY.y1,\n slotX.x2,\n slotY.y2\n )\n\n );\n }\n\n if (slotX.width() !== 0 && slotY.height() !== 0) {\n const bandRect = new geom.Rect(\n [ slotX.x1, slotY.y1 ],\n [ slotX.width(), slotY.height() ]\n );\n\n const path = draw.Path.fromRect(bandRect, {\n fill: {\n color: item.color,\n opacity: item.opacity\n },\n stroke: null\n });\n\n group.append(path);\n if (label) {\n group.append(label);\n }\n }\n }\n\n this.appendVisual(group);\n }\n\n createPlotBandLabel(label, item, box) {\n\n if (label.visible === false) {\n return null;\n }\n\n let text = label.text;\n let textbox;\n\n if (defined(label) && label.visible) {\n const labelTemplate = getTemplate(label);\n if (labelTemplate) {\n text = labelTemplate({ text: text, item: item });\n } else if (label.format) {\n text = this.chartService.format.auto(label.format, text);\n }\n\n if (!label.color) {\n label.color = this.options.labels.color;\n }\n }\n\n textbox = new TextBox(text, label);\n textbox.reflow(box);\n textbox.renderVisual();\n\n return textbox.visual;\n }\n\n createGridLines(altAxis) {\n const options = this.options;\n const { minorGridLines, majorGridLines, minorUnit, vertical } = options;\n const axisLineVisible = altAxis.options.line.visible;\n const majorUnit = majorGridLines.visible ? options.majorUnit : 0;\n const lineBox = altAxis.lineBox();\n const linePos = lineBox[vertical ? \"y1\" : \"x1\"];\n const lineOptions = {\n lineStart: lineBox[vertical ? \"x1\" : \"y1\"],\n lineEnd: lineBox[vertical ? \"x2\" : \"y2\"],\n vertical: vertical\n };\n const majorTicks = [];\n\n const container = this.gridLinesVisual();\n\n function render(tickPositions, gridLine, skipUnit) {\n const count = tickPositions.length;\n const step = Math.max(1, gridLine.step);\n\n if (gridLine.visible) {\n for (let i = gridLine.skip; i < count; i += step) {\n let pos = round(tickPositions[i]);\n if (!inArray(pos, majorTicks)) {\n if (i % skipUnit !== 0 && (!axisLineVisible || linePos !== pos)) {\n lineOptions.position = pos;\n container.append(createAxisGridLine(lineOptions, gridLine));\n\n majorTicks.push(pos);\n }\n }\n }\n }\n }\n\n render(this.getMajorTickPositions(), majorGridLines);\n render(this.getMinorTickPositions(), minorGridLines, majorUnit / minorUnit);\n\n return container.children;\n }\n\n reflow(box) {\n const { options, labels, title } = this;\n const vertical = options.vertical;\n const count = labels.length;\n const sizeFn = vertical ? WIDTH : HEIGHT;\n const titleSize = title ? title.box[sizeFn]() : 0;\n const space = this.getActualTickSize() + options.margin + titleSize;\n const rootBox = (this.getRoot() || {}).box || box;\n const boxSize = rootBox[sizeFn]();\n let maxLabelSize = 0;\n\n for (let i = 0; i < count; i++) {\n let labelSize = labels[i].box[sizeFn]();\n if (labelSize + space <= boxSize) {\n maxLabelSize = Math.max(maxLabelSize, labelSize);\n }\n }\n\n if (vertical) {\n this.box = new Box(\n box.x1, box.y1,\n box.x1 + maxLabelSize + space, box.y2\n );\n } else {\n this.box = new Box(\n box.x1, box.y1,\n box.x2, box.y1 + maxLabelSize + space\n );\n }\n\n this.arrangeTitle();\n this.arrangeLabels();\n this.arrangeNotes();\n }\n\n getLabelsTickPositions() {\n return this.getMajorTickPositions();\n }\n\n labelTickIndex(label) {\n return label.index;\n }\n\n arrangeLabels() {\n const { options, labels } = this;\n const labelsBetweenTicks = this.labelsBetweenTicks();\n const vertical = options.vertical;\n const mirror = options.labels.mirror;\n const tickPositions = this.getLabelsTickPositions();\n\n for (let idx = 0; idx < labels.length; idx++) {\n const label = labels[idx];\n const tickIx = this.labelTickIndex(label);\n const labelSize = vertical ? label.box.height() : label.box.width();\n const firstTickPosition = tickPositions[tickIx];\n const nextTickPosition = tickPositions[tickIx + 1];\n let positionStart, positionEnd;\n\n if (vertical) {\n if (labelsBetweenTicks) {\n const middle = firstTickPosition + (nextTickPosition - firstTickPosition) / 2;\n positionStart = middle - (labelSize / 2);\n } else {\n positionStart = firstTickPosition - (labelSize / 2);\n }\n\n positionEnd = positionStart;\n } else {\n if (labelsBetweenTicks) {\n positionStart = firstTickPosition;\n positionEnd = nextTickPosition;\n } else {\n positionStart = firstTickPosition - (labelSize / 2);\n positionEnd = positionStart + labelSize;\n }\n }\n\n this.positionLabel(label, mirror, positionStart, positionEnd);\n }\n }\n\n positionLabel(label, mirror, positionStart, positionEnd = positionStart) {\n const options = this.options;\n const vertical = options.vertical;\n const lineBox = this.lineBox();\n const labelOffset = this.getActualTickSize() + options.margin;\n let labelBox;\n\n if (vertical) {\n let labelX = lineBox.x2;\n\n if (mirror) {\n labelX += labelOffset;\n label.options.rotationOrigin = LEFT;\n } else {\n labelX -= labelOffset + label.box.width();\n label.options.rotationOrigin = RIGHT;\n }\n\n labelBox = label.box.move(labelX, positionStart);\n } else {\n let labelY = lineBox.y1;\n\n if (mirror) {\n labelY -= labelOffset + label.box.height();\n label.options.rotationOrigin = BOTTOM;\n } else {\n labelY += labelOffset;\n label.options.rotationOrigin = TOP;\n }\n\n labelBox = new Box(\n positionStart, labelY,\n positionEnd, labelY + label.box.height()\n );\n }\n\n label.reflow(labelBox);\n }\n\n autoRotateLabelAngle(labelBox, slotWidth) {\n if (labelBox.width() < slotWidth) {\n return 0;\n }\n\n if (labelBox.height() > slotWidth) {\n return -90;\n }\n\n return -45;\n }\n\n autoRotateLabels() {\n if (!this.options.autoRotateLabels || this.options.vertical) {\n return false;\n }\n\n const tickPositions = this.getMajorTickPositions();\n const labels = this.labels;\n const limit = Math.min(labels.length, tickPositions.length - 1);\n let angle = 0;\n\n for (let idx = 0; idx < limit; idx++) {\n const width = Math.abs(tickPositions[idx + 1] - tickPositions[idx]);\n const labelBox = labels[idx].box;\n const labelAngle = this.autoRotateLabelAngle(labelBox, width);\n\n if (labelAngle !== 0) {\n angle = labelAngle;\n }\n\n if (angle === -90) {\n break;\n }\n }\n\n if (angle !== 0) {\n for (let idx = 0; idx < labels.length; idx++) {\n labels[idx].options.rotation = angle;\n labels[idx].reflow(new Box());\n }\n\n return true;\n }\n }\n\n arrangeTitle() {\n const { options, title } = this;\n const mirror = options.labels.mirror;\n const vertical = options.vertical;\n\n if (title) {\n if (vertical) {\n title.options.align = mirror ? RIGHT : LEFT;\n title.options.vAlign = title.options.position;\n } else {\n title.options.align = title.options.position;\n title.options.vAlign = mirror ? TOP : BOTTOM;\n }\n\n title.reflow(this.box);\n }\n }\n\n arrangeNotes() {\n for (let idx = 0; idx < this.notes.length; idx++) {\n const item = this.notes[idx];\n const value = item.options.value;\n let slot;\n\n if (defined(value)) {\n if (this.shouldRenderNote(value)) {\n item.show();\n } else {\n item.hide();\n }\n\n slot = this.noteSlot(value);\n } else {\n item.hide();\n }\n\n item.reflow(slot || this.lineBox());\n }\n }\n\n noteSlot(value) {\n return this.getSlot(value);\n }\n\n alignTo(secondAxis) {\n const lineBox = secondAxis.lineBox();\n const vertical = this.options.vertical;\n const pos = vertical ? Y : X;\n\n this.box.snapTo(lineBox, pos);\n if (vertical) {\n this.box.shrink(0, this.lineBox().height() - lineBox.height());\n } else {\n this.box.shrink(this.lineBox().width() - lineBox.width(), 0);\n }\n this.box[pos + 1] -= this.lineBox()[pos + 1] - lineBox[pos + 1];\n this.box[pos + 2] -= this.lineBox()[pos + 2] - lineBox[pos + 2];\n }\n\n axisLabelText(value, options, context) {\n let text;\n const tmpl = getTemplate(options);\n const defaultText = () => {\n if (!options.format) {\n return value;\n }\n\n return this.chartService.format.localeAuto(\n options.format, [ value ], options.culture\n );\n };\n\n if (tmpl) {\n const templateContext = Object.assign({}, context, {\n get text() { return defaultText(); },\n value,\n format: options.format,\n culture: options.culture\n });\n\n text = tmpl(templateContext);\n } else {\n text = defaultText();\n }\n\n return text;\n }\n\n slot(from , to, limit) {\n const slot = this.getSlot(from, to, limit);\n if (slot) {\n return slot.toRect();\n }\n }\n\n contentBox() {\n const box = this.box.clone();\n const labels = this.labels;\n if (labels.length) {\n const axis = this.options.vertical ? Y : X;\n if (this.chartService.isPannable(axis)) {\n const offset = this.maxLabelOffset();\n box[axis + 1] -= offset.start;\n box[axis + 2] += offset.end;\n } else {\n if (labels[0].options.visible) {\n box.wrap(labels[0].box);\n }\n const lastLabel = labels[labels.length - 1];\n if (lastLabel.options.visible) {\n box.wrap(lastLabel.box);\n }\n }\n }\n\n return box;\n }\n\n maxLabelOffset() {\n const { vertical, reverse } = this.options;\n const labelsBetweenTicks = this.labelsBetweenTicks();\n const tickPositions = this.getLabelsTickPositions();\n const offsetField = vertical ? Y : X;\n const labels = this.labels;\n const startPosition = reverse ? 1 : 0;\n const endPosition = reverse ? 0 : 1;\n let maxStartOffset = 0;\n let maxEndOffset = 0;\n\n for (let idx = 0; idx < labels.length; idx++) {\n const label = labels[idx];\n const tickIx = this.labelTickIndex(label);\n let startTick, endTick;\n\n if (labelsBetweenTicks) {\n startTick = tickPositions[tickIx + startPosition];\n endTick = tickPositions[tickIx + endPosition];\n } else {\n startTick = endTick = tickPositions[tickIx];\n }\n\n maxStartOffset = Math.max(maxStartOffset, startTick - label.box[offsetField + 1]);\n maxEndOffset = Math.max(maxEndOffset, label.box[offsetField + 2] - endTick);\n }\n\n return {\n start: maxStartOffset,\n end: maxEndOffset\n };\n }\n\n limitRange(from, to, min, max, offset) {\n const options = this.options;\n\n if ((from < min && offset < 0 && (!defined(options.min) || options.min <= min)) || (max < to && offset > 0 && (!defined(options.max) || max <= options.max))) {\n return null;\n }\n\n if ((to < min && offset > 0) || (max < from && offset < 0)) {\n return {\n min: from,\n max: to\n };\n }\n\n const rangeSize = to - from;\n let minValue = from;\n let maxValue = to;\n\n if (from < min && offset < 0) {\n minValue = limitValue(from, min, max);\n maxValue = limitValue(from + rangeSize, min + rangeSize, max);\n } else if (to > max && offset > 0) {\n maxValue = limitValue(to, min, max);\n minValue = limitValue(to - rangeSize, min, max - rangeSize);\n }\n\n return {\n min: minValue,\n max: maxValue\n };\n }\n\n valueRange() {\n return {\n min: this.seriesMin,\n max: this.seriesMax\n };\n }\n\n lineDir() {\n /*\n * Axis line direction:\n * * Vertical: up.\n * * Horizontal: right.\n */\n\n const { vertical, reverse } = this.options;\n return (vertical ? -1 : 1) * (reverse ? -1 : 1);\n }\n\n lineInfo() {\n const { vertical } = this.options;\n const lineBox = this.lineBox();\n const lineSize = vertical ? lineBox.height() : lineBox.width();\n const axis = vertical ? Y : X;\n const axisDir = this.lineDir();\n const startEdge = axisDir === 1 ? 1 : 2;\n const axisOrigin = axis + startEdge.toString();\n const lineStart = lineBox[axisOrigin];\n\n return {\n axis,\n axisOrigin,\n axisDir,\n lineBox,\n lineSize,\n lineStart\n };\n }\n\n pointOffset(point) {\n const { axis, axisDir, axisOrigin, lineBox, lineSize } = this.lineInfo();\n const relative = axisDir > 0 ? point[axis] - lineBox[axisOrigin] : lineBox[axisOrigin] - point[axis];\n const offset = relative / lineSize;\n\n return offset;\n }\n\n // Computes the axis range change (delta) for a given scale factor.\n // The delta is subtracted from the axis range:\n // * delta > 0 reduces the axis range (zoom-in)\n // * delta < 0 expands the axis range (zoom-out)\n scaleToDelta(rawScale, range) {\n // Scale >= 1 would result in axis range of 0.\n // Scale <= -1 would reverse the scale direction.\n const MAX_SCALE = 0.999;\n const scale = limitValue(rawScale, -MAX_SCALE, MAX_SCALE);\n\n let delta;\n if (scale > 0) {\n delta = range * Math.min(1, scale);\n } else {\n delta = range - (range / (1 + scale));\n }\n\n return delta;\n }\n\n labelsBetweenTicks() {\n return !this.options.justified;\n }\n\n //add legacy fields to the options that are no longer generated by default\n prepareUserOptions() {\n }\n}\n\nsetDefaultOptions(Axis, {\n labels: {\n visible: true,\n rotation: 0,\n mirror: false,\n step: 1,\n skip: 0\n },\n line: {\n width: 1,\n color: BLACK,\n visible: true\n },\n title: {\n visible: true,\n position: CENTER\n },\n majorTicks: {\n align: OUTSIDE,\n size: 4,\n skip: 0,\n step: 1\n },\n minorTicks: {\n align: OUTSIDE,\n size: 3,\n skip: 0,\n step: 1\n },\n axisCrossingValue: 0,\n majorTickType: OUTSIDE,\n minorTickType: NONE,\n majorGridLines: {\n skip: 0,\n step: 1\n },\n minorGridLines: {\n visible: false,\n width: 1,\n color: BLACK,\n skip: 0,\n step: 1\n },\n // TODO: Move to line or labels options\n margin: 5,\n visible: true,\n reverse: false,\n justified: true,\n notes: {\n label: {\n text: \"\"\n }\n },\n\n _alignLines: true,\n _deferLabels: false\n});\n\nexport default Axis;\n","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport ChartElement from './chart-element';\nimport Box from './box';\n\nimport { BLACK, LEFT, TOP, X, Y } from '../common/constants';\nimport { getSpacing, setDefaultOptions, valueOrDefault } from '../common';\n\nclass BoxElement extends ChartElement {\n constructor(options) {\n super(options);\n\n this.options.margin = getSpacing(this.options.margin);\n this.options.padding = getSpacing(this.options.padding);\n }\n\n reflow(targetBox) {\n const options = this.options;\n const { width, height, shrinkToFit } = options;\n const hasSetSize = width && height;\n const margin = options.margin;\n const padding = options.padding;\n const borderWidth = options.border.width;\n let box;\n\n const reflowPaddingBox = () => {\n this.align(targetBox, X, options.align);\n this.align(targetBox, Y, options.vAlign);\n this.paddingBox = box.clone().unpad(margin).unpad(borderWidth);\n };\n\n let contentBox = targetBox.clone();\n if (hasSetSize) {\n contentBox.x2 = contentBox.x1 + width;\n contentBox.y2 = contentBox.y1 + height;\n }\n\n if (shrinkToFit) {\n contentBox.unpad(margin).unpad(borderWidth).unpad(padding);\n }\n\n super.reflow(contentBox);\n\n if (hasSetSize) {\n box = this.box = new Box(0, 0, width, height);\n } else {\n box = this.box;\n }\n\n if (shrinkToFit && hasSetSize) {\n reflowPaddingBox();\n contentBox = this.contentBox = this.paddingBox.clone().unpad(padding);\n } else {\n contentBox = this.contentBox = box.clone();\n box.pad(padding).pad(borderWidth).pad(margin);\n reflowPaddingBox();\n }\n\n this.translateChildren(\n box.x1 - contentBox.x1 + margin.left + borderWidth + padding.left,\n box.y1 - contentBox.y1 + margin.top + borderWidth + padding.top\n );\n\n const children = this.children;\n for (let i = 0; i < children.length; i++) {\n let item = children[i];\n item.reflow(item.box);\n }\n }\n\n align(targetBox, axis, alignment) {\n this.box.align(targetBox, axis, alignment);\n }\n\n hasBox() {\n const options = this.options;\n return options.border.width || options.background;\n }\n\n createVisual() {\n super.createVisual();\n\n const options = this.options;\n if (options.visible && this.hasBox()) {\n this.visual.append(draw.Path.fromRect(\n this.paddingBox.toRect(),\n this.visualStyle()\n ));\n }\n }\n\n visualStyle() {\n const options = this.options;\n const border = options.border || {};\n\n return {\n stroke: {\n width: border.width,\n color: border.color,\n opacity: valueOrDefault(border.opacity, options.opacity),\n dashType: border.dashType\n },\n fill: {\n color: options.background,\n opacity: options.opacity\n },\n cursor: options.cursor\n };\n }\n}\n\nsetDefaultOptions(BoxElement, {\n align: LEFT,\n vAlign: TOP,\n margin: {},\n padding: {},\n border: {\n color: BLACK,\n width: 0\n },\n background: \"\",\n shrinkToFit: false,\n width: 0,\n height: 0,\n visible: true\n});\n\nexport default BoxElement;","import { geometry as geom } from '@progress/kendo-drawing';\n\nimport Point from './point';\n\nimport { X, Y, TOP, BOTTOM, LEFT, RIGHT, CENTER, WIDTH, HEIGHT } from '../common/constants';\nimport { Class, defined, getSpacing, inArray, isArray, rad } from '../common';\n\nclass Box extends Class {\n constructor(x1, y1, x2, y2) {\n super();\n\n this.x1 = x1 || 0;\n this.y1 = y1 || 0;\n this.x2 = x2 || 0;\n this.y2 = y2 || 0;\n }\n\n equals(box) {\n return this.x1 === box.x1 && this.x2 === box.x2 &&\n this.y1 === box.y1 && this.y2 === box.y2;\n }\n\n width() {\n return this.x2 - this.x1;\n }\n\n height() {\n return this.y2 - this.y1;\n }\n\n translate(dx, dy) {\n this.x1 += dx;\n this.x2 += dx;\n this.y1 += dy;\n this.y2 += dy;\n\n return this;\n }\n\n move(x, y) {\n const height = this.height();\n const width = this.width();\n\n if (defined(x)) {\n this.x1 = x;\n this.x2 = this.x1 + width;\n }\n\n if (defined(y)) {\n this.y1 = y;\n this.y2 = this.y1 + height;\n }\n\n return this;\n }\n\n wrap(targetBox) {\n this.x1 = Math.min(this.x1, targetBox.x1);\n this.y1 = Math.min(this.y1, targetBox.y1);\n this.x2 = Math.max(this.x2, targetBox.x2);\n this.y2 = Math.max(this.y2, targetBox.y2);\n\n return this;\n }\n\n wrapPoint(point) {\n const arrayPoint = isArray(point);\n const x = arrayPoint ? point[0] : point.x;\n const y = arrayPoint ? point[1] : point.y;\n this.wrap(new Box(x, y, x, y));\n\n return this;\n }\n\n snapTo(targetBox, axis) {\n\n if (axis === X || !axis) {\n this.x1 = targetBox.x1;\n this.x2 = targetBox.x2;\n }\n\n if (axis === Y || !axis) {\n this.y1 = targetBox.y1;\n this.y2 = targetBox.y2;\n }\n\n return this;\n }\n\n alignTo(targetBox, anchor) {\n const height = this.height();\n const width = this.width();\n const axis = anchor === TOP || anchor === BOTTOM ? Y : X;\n const offset = axis === Y ? height : width;\n\n if (anchor === CENTER) {\n const targetCenter = targetBox.center();\n const center = this.center();\n\n this.x1 += targetCenter.x - center.x;\n this.y1 += targetCenter.y - center.y;\n } else if (anchor === TOP || anchor === LEFT) {\n this[axis + 1] = targetBox[axis + 1] - offset;\n } else {\n this[axis + 1] = targetBox[axis + 2];\n }\n\n this.x2 = this.x1 + width;\n this.y2 = this.y1 + height;\n\n return this;\n }\n\n shrink(dw, dh) {\n\n this.x2 -= dw;\n this.y2 -= dh;\n\n return this;\n }\n\n expand(dw, dh) {\n this.shrink(-dw, -dh);\n return this;\n }\n\n pad(padding) {\n const spacing = getSpacing(padding);\n\n this.x1 -= spacing.left;\n this.x2 += spacing.right;\n this.y1 -= spacing.top;\n this.y2 += spacing.bottom;\n\n return this;\n }\n\n unpad(padding) {\n const spacing = getSpacing(padding);\n\n spacing.left = -spacing.left;\n spacing.top = -spacing.top;\n spacing.right = -spacing.right;\n spacing.bottom = -spacing.bottom;\n\n return this.pad(spacing);\n }\n\n clone() {\n return new Box(this.x1, this.y1, this.x2, this.y2);\n }\n\n center() {\n return new Point(\n this.x1 + this.width() / 2,\n this.y1 + this.height() / 2\n );\n }\n\n containsPoint(point) {\n\n return point.x >= this.x1 && point.x <= this.x2 &&\n point.y >= this.y1 && point.y <= this.y2;\n }\n\n points() {\n return [\n new Point(this.x1, this.y1),\n new Point(this.x2, this.y1),\n new Point(this.x2, this.y2),\n new Point(this.x1, this.y2)\n ];\n }\n\n getHash() {\n return [ this.x1, this.y1, this.x2, this.y2 ].join(\",\");\n }\n\n overlaps(box) {\n return !(box.y2 < this.y1 || this.y2 < box.y1 || box.x2 < this.x1 || this.x2 < box.x1);\n }\n\n rotate(rotation) {\n let width = this.width();\n let height = this.height();\n const { x: cx, y: cy } = this.center();\n\n const r1 = rotatePoint(0, 0, cx, cy, rotation);\n const r2 = rotatePoint(width, 0, cx, cy, rotation);\n const r3 = rotatePoint(width, height, cx, cy, rotation);\n const r4 = rotatePoint(0, height, cx, cy, rotation);\n\n width = Math.max(r1.x, r2.x, r3.x, r4.x) - Math.min(r1.x, r2.x, r3.x, r4.x);\n height = Math.max(r1.y, r2.y, r3.y, r4.y) - Math.min(r1.y, r2.y, r3.y, r4.y);\n\n this.x2 = this.x1 + width;\n this.y2 = this.y1 + height;\n\n return this;\n }\n\n toRect() {\n return new geom.Rect([ this.x1, this.y1 ], [ this.width(), this.height() ]);\n }\n\n hasSize() {\n return this.width() !== 0 && this.height() !== 0;\n }\n\n align(targetBox, axis, alignment) {\n const c1 = axis + 1;\n const c2 = axis + 2;\n const sizeFunc = axis === X ? WIDTH : HEIGHT;\n const size = this[sizeFunc]();\n\n if (inArray(alignment, [ LEFT, TOP ])) {\n this[c1] = targetBox[c1];\n this[c2] = this[c1] + size;\n } else if (inArray(alignment, [ RIGHT, BOTTOM ])) {\n this[c2] = targetBox[c2];\n this[c1] = this[c2] - size;\n } else if (alignment === CENTER) {\n this[c1] = targetBox[c1] + (targetBox[sizeFunc]() - size) / 2;\n this[c2] = this[c1] + size;\n }\n }\n}\n\nfunction rotatePoint(x, y, cx, cy, angle) {\n const theta = rad(angle);\n\n return new Point(\n cx + (x - cx) * Math.cos(theta) + (y - cy) * Math.sin(theta),\n cy - (x - cx) * Math.sin(theta) + (y - cy) * Math.cos(theta)\n );\n}\n\nexport default Box;\n","import Axis from './axis';\nimport AxisLabel from './axis-label';\n\nimport { BLACK, COORD_PRECISION, DEFAULT_PRECISION, X, Y } from '../common/constants';\nimport { defined, isNumber, last, limitValue, round, setDefaultOptions, valueOrDefault, HashMap } from '../common';\nimport { dateEquals } from '../date-utils';\n\nconst MIN_CATEGORY_POINTS_RANGE = 0.01;\nconst MIN_CATEGORY_RANGE = 0.1;\n\nfunction indexOf(value, arr) {\n if (value instanceof Date) {\n const length = arr.length;\n for (let idx = 0; idx < length; idx++) {\n if (dateEquals(arr[idx], value)) {\n return idx;\n }\n }\n\n return -1;\n }\n\n return arr.indexOf(value);\n}\n\nclass CategoryAxis extends Axis {\n initFields() {\n this._ticks = {};\n }\n\n categoriesHash() {\n return \"\";\n }\n\n clone() {\n const copy = new CategoryAxis(Object.assign({}, this.options, {\n categories: this.options.srcCategories\n }), this.chartService);\n copy.createLabels();\n\n return copy;\n }\n\n initUserOptions(options) {\n const categories = options.categories || [];\n const definedMin = defined(options.min);\n const definedMax = defined(options.max);\n options.srcCategories = options.categories = categories;\n\n if ((definedMin || definedMax) && categories.length) {\n const min = definedMin ? Math.floor(options.min) : 0;\n let max;\n\n if (definedMax) {\n max = options.justified ? Math.floor(options.max) + 1 : Math.ceil(options.max);\n } else {\n max = categories.length;\n }\n\n options.categories = options.categories.slice(min, max);\n }\n\n return options;\n }\n\n rangeIndices() {\n const options = this.options;\n const length = options.categories.length || 1;\n const min = isNumber(options.min) ? options.min % 1 : 0;\n let max;\n\n if (isNumber(options.max) && options.max % 1 !== 0 && options.max < this.totalRange().max) {\n max = length - (1 - options.max % 1);\n } else {\n max = length - (options.justified ? 1 : 0);\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n totalRangeIndices(limit) {\n const options = this.options;\n let min = isNumber(options.min) ? options.min : 0;\n let max;\n\n if (isNumber(options.max)) {\n max = options.max;\n } else if (isNumber(options.min)) {\n max = min + options.categories.length;\n } else {\n max = this.totalRange().max || 1;\n }\n\n if (limit) {\n const totalRange = this.totalRange();\n min = limitValue(min, 0, totalRange.max);\n max = limitValue(max, 0, totalRange.max);\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n range() {\n const options = this.options;\n const min = isNumber(options.min) ? options.min : 0;\n const max = isNumber(options.max) ? options.max : this.totalRange().max;\n\n return {\n min: min,\n max: max\n };\n }\n\n roundedRange() {\n return this.range();\n }\n\n totalRange() {\n const options = this.options;\n return { min: 0, max: Math.max(this._seriesMax || 0, options.srcCategories.length) - (options.justified ? 1 : 0) };\n }\n\n scaleOptions() {\n const { min, max } = this.rangeIndices();\n const lineBox = this.lineBox();\n const size = this.options.vertical ? lineBox.height() : lineBox.width();\n const scale = size / ((max - min) || 1);\n\n return {\n scale: scale * (this.options.reverse ? -1 : 1),\n box: lineBox,\n min: min,\n max: max\n };\n }\n\n arrangeLabels() {\n super.arrangeLabels();\n this.hideOutOfRangeLabels();\n }\n\n hideOutOfRangeLabels() {\n const { box, labels } = this;\n\n if (labels.length > 0) {\n const valueAxis = this.options.vertical ? Y : X;\n const start = box[valueAxis + 1];\n const end = box[valueAxis + 2];\n const firstLabel = labels[0];\n const lastLabel = last(labels);\n\n if (firstLabel.box[valueAxis + 1] > end || firstLabel.box[valueAxis + 2] < start) {\n firstLabel.options.visible = false;\n }\n if (lastLabel.box[valueAxis + 1] > end || lastLabel.box[valueAxis + 2] < start) {\n lastLabel.options.visible = false;\n }\n }\n }\n\n getMajorTickPositions() {\n return this.getTicks().majorTicks;\n }\n\n getMinorTickPositions() {\n return this.getTicks().minorTicks;\n }\n\n getLabelsTickPositions() {\n return this.getTicks().labelTicks;\n }\n\n tickIndices(stepSize) {\n const { min, max } = this.rangeIndices();\n const limit = Math.ceil(max);\n let current = Math.floor(min);\n const indices = [];\n\n while (current <= limit) {\n indices.push(current);\n current += stepSize;\n }\n\n return indices;\n }\n\n getTickPositions(stepSize) {\n const { vertical, reverse } = this.options;\n const { scale, box, min } = this.scaleOptions();\n const pos = box[(vertical ? Y : X) + (reverse ? 2 : 1)];\n const indices = this.tickIndices(stepSize);\n const positions = [];\n\n for (let idx = 0; idx < indices.length; idx++) {\n positions.push(pos + round(scale * (indices[idx] - min), COORD_PRECISION));\n }\n\n return positions;\n }\n\n getTicks() {\n const options = this.options;\n const cache = this._ticks;\n const range = this.rangeIndices();\n const lineBox = this.lineBox();\n const hash = lineBox.getHash() + range.min + \",\" + range.max + options.reverse + options.justified;\n\n if (cache._hash !== hash) {\n const hasMinor = options.minorTicks.visible || options.minorGridLines.visible;\n cache._hash = hash;\n cache.labelTicks = this.getTickPositions(1);\n cache.majorTicks = this.filterOutOfRangePositions(cache.labelTicks, lineBox);\n cache.minorTicks = hasMinor ? this.filterOutOfRangePositions(this.getTickPositions(0.5), lineBox) : [];\n }\n\n return cache;\n }\n\n filterOutOfRangePositions(positions, lineBox) {\n if (!positions.length) {\n return positions;\n }\n\n const axis = this.options.vertical ? Y : X;\n const inRange = (position) => lineBox[axis + 1] <= position && position <= lineBox[axis + 2];\n\n const end = positions.length - 1;\n let startIndex = 0;\n while (!inRange(positions[startIndex]) && startIndex <= end) {\n startIndex++;\n }\n\n let endIndex = end;\n\n while (!inRange(positions[endIndex]) && endIndex >= 0) {\n endIndex--;\n }\n\n return positions.slice(startIndex, endIndex + 1);\n }\n\n lineInfo() {\n const { vertical, reverse } = this.options;\n const lineBox = this.lineBox();\n const lineSize = vertical ? lineBox.height() : lineBox.width();\n const axis = vertical ? Y : X;\n const axisDir = reverse ? -1 : 1;\n const startEdge = axisDir === 1 ? 1 : 2;\n const axisOrigin = axis + startEdge.toString();\n const lineStart = lineBox[axisOrigin];\n\n return {\n axis,\n axisOrigin,\n axisDir,\n lineBox,\n lineSize,\n lineStart\n };\n }\n\n lineDir() {\n /*\n * Category axis line direction:\n * * Vertical: down.\n * * Horizontal: right.\n */\n\n const { reverse } = this.options;\n return reverse ? -1 : 1;\n }\n\n // TODO: Rename to slotBox, valueSlot, slotByIndex?\n getSlot(from, to, limit) {\n const options = this.options;\n const { reverse, justified } = options;\n const { scale, box, min } = this.scaleOptions();\n const { axis: valueAxis, lineStart } = this.lineInfo();\n\n const slotBox = box.clone();\n const singleSlot = !defined(to);\n\n const start = valueOrDefault(from, 0);\n let end = valueOrDefault(to, start);\n end = Math.max(end - 1, start);\n\n // Fixes transient bug caused by iOS 6.0 JIT\n // (one can never be too sure)\n end = Math.max(start, end);\n\n let p1 = lineStart + (start - min) * scale;\n let p2 = lineStart + (end + 1 - min) * scale;\n\n if (singleSlot && justified) {\n p2 = p1;\n }\n\n if (limit) {\n p1 = limitValue(p1, box[valueAxis + 1], box[valueAxis + 2]);\n p2 = limitValue(p2, box[valueAxis + 1], box[valueAxis + 2]);\n }\n\n slotBox[valueAxis + 1] = reverse ? p2 : p1;\n slotBox[valueAxis + 2] = reverse ? p1 : p2;\n\n return slotBox;\n }\n\n limitSlot(slot) {\n const vertical = this.options.vertical;\n const valueAxis = vertical ? Y : X;\n const lineBox = this.lineBox();\n const limittedSlot = slot.clone();\n\n limittedSlot[valueAxis + 1] = limitValue(slot[valueAxis + 1], lineBox[valueAxis + 1], lineBox[valueAxis + 2]);\n limittedSlot[valueAxis + 2] = limitValue(slot[valueAxis + 2], lineBox[valueAxis + 1], lineBox[valueAxis + 2]);\n\n return limittedSlot;\n }\n\n slot(from, to, limit) {\n const min = Math.floor(this.options.min || 0);\n let start = from;\n let end = to;\n\n if (typeof start === \"string\") {\n start = this.categoryIndex(start);\n } else if (isNumber(start)) {\n start -= min;\n }\n\n if (typeof end === \"string\") {\n end = this.categoryIndex(end);\n } else if (isNumber(end)) {\n end -= min;\n }\n\n return super.slot(start, end, limit);\n }\n\n pointCategoryIndex(point) {\n const { reverse, justified, vertical } = this.options;\n const valueAxis = vertical ? Y : X;\n const { scale, box, min, max } = this.scaleOptions();\n const startValue = reverse ? max : min;\n const lineStart = box[valueAxis + 1];\n const lineEnd = box[valueAxis + 2];\n const pos = point[valueAxis];\n\n if (pos < lineStart || pos > lineEnd) {\n return null;\n }\n\n let value = startValue + (pos - lineStart) / scale;\n const diff = value % 1;\n\n if (justified) {\n value = Math.round(value);\n } else if (diff === 0 && value > 0) {\n value--;\n }\n\n return Math.floor(value);\n }\n\n getCategory(point) {\n const index = this.pointCategoryIndex(point);\n\n if (index === null) {\n return null;\n }\n\n return this.options.categories[index];\n }\n\n categoryIndex(value) {\n return this.totalIndex(value) - Math.floor(this.options.min || 0);\n }\n\n categoryAt(index, total) {\n const options = this.options;\n\n return (total ? options.srcCategories : options.categories)[index];\n }\n\n categoriesCount() {\n return (this.options.categories || []).length;\n }\n\n translateRange(delta) {\n const options = this.options;\n const lineBox = this.lineBox();\n const size = options.vertical ? lineBox.height() : lineBox.width();\n const range = options.categories.length;\n const scale = size / range;\n const offset = round(delta / scale, DEFAULT_PRECISION);\n\n return {\n min: offset,\n max: range + offset\n };\n }\n\n scaleRange(scale, cursor) {\n const position = Math.abs(this.pointOffset(cursor));\n const rangeIndices = this.totalRangeIndices();\n const range = rangeIndices.max - rangeIndices.min;\n const delta = this.scaleToDelta(scale, range);\n const minDelta = position * delta;\n const maxDelta = (1 - position) * delta;\n const min = rangeIndices.min + minDelta;\n let max = rangeIndices.max - maxDelta;\n\n if (max - min < MIN_CATEGORY_RANGE) {\n max = min + MIN_CATEGORY_RANGE;\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n zoomRange(scale, cursor) {\n const { min: totalMin, max: totalMax } = this.totalRange();\n const range = this.scaleRange(scale, cursor);\n\n return {\n min: limitValue(range.min, totalMin, totalMax),\n max: limitValue(range.max, totalMin, totalMax)\n };\n }\n\n labelsCount() {\n const labelsRange = this.labelsRange();\n\n return labelsRange.max - labelsRange.min;\n }\n\n labelsRange() {\n const options = this.options;\n const { justified, labels: labelOptions } = options;\n let { min, max } = this.totalRangeIndices(true);\n const start = Math.floor(min);\n\n if (!justified) {\n min = Math.floor(min);\n max = Math.ceil(max);\n } else {\n min = Math.ceil(min);\n max = Math.floor(max);\n }\n\n let skip;\n\n if (min > labelOptions.skip) {\n skip = labelOptions.skip + labelOptions.step * Math.ceil((min - labelOptions.skip) / labelOptions.step);\n } else {\n skip = labelOptions.skip;\n }\n\n return {\n min: skip - start,\n max: (options.categories.length ? max + (justified ? 1 : 0) : 0) - start\n };\n }\n\n createAxisLabel(index, labelOptions, labelContext) {\n const options = this.options;\n const dataItem = options.dataItems ? options.dataItems[index] : null;\n const category = valueOrDefault(options.categories[index], \"\");\n\n labelContext.dataItem = dataItem;\n const text = this.axisLabelText(category, labelOptions, labelContext);\n\n return new AxisLabel(category, text, index, dataItem, labelOptions);\n }\n\n shouldRenderNote(value) {\n const range = this.totalRangeIndices();\n\n return Math.floor(range.min) <= value && value <= Math.ceil(range.max);\n }\n\n noteSlot(value) {\n const options = this.options;\n const index = value - Math.floor(options.min || 0);\n return this.getSlot(index);\n }\n\n arrangeNotes() {\n super.arrangeNotes();\n this.hideOutOfRangeNotes();\n }\n\n hideOutOfRangeNotes() {\n const { notes, box } = this;\n if (notes && notes.length) {\n const valueAxis = this.options.vertical ? Y : X;\n const start = box[valueAxis + 1];\n const end = box[valueAxis + 2];\n\n for (let idx = 0; idx < notes.length; idx++) {\n const note = notes[idx];\n if (note.box && (end < note.box[valueAxis + 1] || note.box[valueAxis + 2] < start)) {\n note.hide();\n }\n }\n }\n }\n\n pan(delta) {\n const range = this.totalRangeIndices(true);\n const { scale } = this.scaleOptions();\n const offset = round(delta / scale, DEFAULT_PRECISION);\n const totalRange = this.totalRange();\n const min = range.min + offset;\n const max = range.max + offset;\n\n return this.limitRange(min, max, 0, totalRange.max, offset);\n }\n\n pointsRange(start, end) {\n const { reverse, vertical } = this.options;\n const valueAxis = vertical ? Y : X;\n const range = this.totalRangeIndices(true);\n const { scale, box } = this.scaleOptions();\n const lineStart = box[valueAxis + (reverse ? 2 : 1)];\n\n const diffStart = start[valueAxis] - lineStart;\n const diffEnd = end[valueAxis] - lineStart;\n\n const min = range.min + diffStart / scale;\n const max = range.min + diffEnd / scale;\n const rangeMin = Math.min(min, max);\n const rangeMax = Math.max(min, max);\n\n if (rangeMax - rangeMin >= MIN_CATEGORY_POINTS_RANGE) {\n return {\n min: rangeMin,\n max: rangeMax\n };\n }\n }\n\n valueRange() {\n return this.range();\n }\n\n totalIndex(value) {\n const options = this.options;\n const index = this._categoriesMap ?\n this._categoriesMap.get(value) : indexOf(value, options.srcCategories);\n\n return index;\n }\n\n currentRangeIndices() {\n const options = this.options;\n let min = 0;\n\n if (isNumber(options.min)) {\n min = Math.floor(options.min);\n }\n\n let max;\n if (isNumber(options.max)) {\n max = options.justified ? Math.floor(options.max) : Math.ceil(options.max) - 1;\n } else {\n max = this.totalCount() - 1;\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n mapCategories() {\n if (!this._categoriesMap) {\n const map = this._categoriesMap = new HashMap();\n const srcCategories = this.options.srcCategories;\n for (let idx = 0; idx < srcCategories.length; idx++) {\n map.set(srcCategories[idx], idx);\n }\n }\n }\n\n totalCount() {\n return Math.max(this.options.srcCategories.length, this._seriesMax || 0);\n }\n}\n\nsetDefaultOptions(CategoryAxis, {\n type: \"category\",\n vertical: false,\n majorGridLines: {\n visible: false,\n width: 1,\n color: BLACK\n },\n labels: {\n zIndex: 1\n },\n justified: false,\n _deferLabels: true\n});\n\nexport default CategoryAxis;\n","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport { WHITE } from '../common/constants';\nimport { Class, deepExtend, defined, valueOrDefault } from '../common';\n\nclass ChartElement extends Class {\n constructor(options) {\n super();\n\n this.children = [];\n\n this.options = deepExtend({}, this.options, this.initUserOptions(options));\n }\n\n initUserOptions(options) {\n return options;\n }\n\n reflow(targetBox) {\n const children = this.children;\n let box;\n\n for (let i = 0; i < children.length; i++) {\n let currentChild = children[i];\n currentChild.reflow(targetBox);\n\n box = box ? box.wrap(currentChild.box) : currentChild.box.clone();\n }\n\n this.box = box || targetBox;\n }\n\n destroy() {\n const children = this.children;\n\n if (this.animation) {\n this.animation.destroy();\n }\n\n for (let i = 0; i < children.length; i++) {\n children[i].destroy();\n }\n }\n\n getRoot() {\n const parent = this.parent;\n\n return parent ? parent.getRoot() : null;\n }\n\n getSender() {\n const service = this.getService();\n if (service) {\n return service.sender;\n }\n }\n\n getService() {\n let element = this;\n while (element) {\n if (element.chartService) {\n return element.chartService;\n }\n element = element.parent;\n }\n }\n\n translateChildren(dx, dy) {\n const children = this.children;\n const childrenCount = children.length;\n\n for (let i = 0; i < childrenCount; i++) {\n children[i].box.translate(dx, dy);\n }\n }\n\n append() {\n for (let i = 0; i < arguments.length; i++) {\n let item = arguments[i];\n this.children.push(item);\n item.parent = this;\n }\n }\n\n renderVisual() {\n if (this.options.visible === false) {\n return;\n }\n\n this.createVisual();\n\n this.addVisual();\n\n this.renderChildren();\n\n this.createAnimation();\n this.renderComplete();\n }\n\n addVisual() {\n if (this.visual) {\n this.visual.chartElement = this;\n\n if (this.parent) {\n this.parent.appendVisual(this.visual);\n }\n }\n }\n\n renderChildren() {\n const children = this.children;\n const length = children.length;\n for (let i = 0; i < length; i++) {\n children[i].renderVisual();\n }\n }\n\n createVisual() {\n this.visual = new draw.Group({\n zIndex: this.options.zIndex,\n visible: valueOrDefault(this.options.visible, true)\n });\n }\n\n createAnimation() {\n if (this.visual && this.options.animation) {\n this.animation = draw.Animation.create(\n this.visual, this.options.animation\n );\n }\n }\n\n appendVisual(childVisual) {\n if (!childVisual.chartElement) {\n childVisual.chartElement = this;\n }\n\n if (childVisual.options.noclip) {\n this.clipRoot().visual.append(childVisual);\n } else if (defined(childVisual.options.zIndex)) {\n this.stackRoot().stackVisual(childVisual);\n } else if (this.isStackRoot) {\n this.stackVisual(childVisual);\n } else if (this.visual) {\n this.visual.append(childVisual);\n } else {\n // Allow chart elements without visuals to\n // pass through child visuals\n this.parent.appendVisual(childVisual);\n }\n }\n\n clipRoot() {\n if (this.parent) {\n return this.parent.clipRoot();\n }\n\n return this;\n }\n\n stackRoot() {\n if (this.parent) {\n return this.parent.stackRoot();\n }\n\n return this;\n }\n\n stackVisual(childVisual) {\n const zIndex = childVisual.options.zIndex || 0;\n const visuals = this.visual.children;\n const length = visuals.length;\n let pos;\n\n for (pos = 0; pos < length; pos++) {\n let sibling = visuals[pos];\n let here = valueOrDefault(sibling.options.zIndex, 0);\n if (here > zIndex) {\n break;\n }\n }\n\n this.visual.insert(pos, childVisual);\n }\n\n traverse(callback) {\n const children = this.children;\n const length = children.length;\n\n for (let i = 0; i < length; i++) {\n let child = children[i];\n\n callback(child);\n if (child.traverse) {\n child.traverse(callback);\n }\n }\n }\n\n closest(match) {\n let element = this;\n let matched = false;\n\n while (element && !matched) {\n matched = match(element);\n\n if (!matched) {\n element = element.parent;\n }\n }\n\n if (matched) {\n return element;\n }\n }\n\n renderComplete() {}\n\n hasHighlight() {\n const options = (this.options || {}).highlight;\n return !(!this.createHighlight || (options && options.visible === false));\n }\n\n toggleHighlight(show, opacity) {\n const options = (this.options || {}).highlight || {};\n const customVisual = options.visual;\n let highlight = this._highlight;\n\n if (!highlight) {\n const highlightOptions = {\n fill: {\n color: WHITE,\n opacity: opacity || 0.2\n },\n stroke: {\n color: WHITE,\n width: 1,\n opacity: opacity || 0.2\n }\n };\n\n if (customVisual) {\n highlight = this._highlight = customVisual(\n Object.assign(this.highlightVisualArgs(), {\n createVisual: () => this.createHighlight(highlightOptions),\n sender: this.getSender(),\n series: this.series,\n dataItem: this.dataItem,\n category: this.category,\n value: this.value,\n percentage: this.percentage,\n runningTotal: this.runningTotal,\n total: this.total\n }\n ));\n\n if (!highlight) {\n return;\n }\n } else {\n highlight = this._highlight = this.createHighlight(highlightOptions);\n }\n\n if (!defined(highlight.options.zIndex)) {\n highlight.options.zIndex = valueOrDefault(options.zIndex, this.options.zIndex);\n }\n\n this.appendVisual(highlight);\n }\n\n highlight.visible(show);\n }\n\n createGradientOverlay(element, options, gradientOptions) {\n const overlay = new draw.Path(Object.assign({\n stroke: {\n color: \"none\"\n },\n fill: this.createGradient(gradientOptions),\n closed: element.options.closed\n }, options));\n\n overlay.segments.elements(element.segments.elements());\n\n return overlay;\n }\n\n createGradient(options) {\n if (this.parent) {\n return this.parent.createGradient(options);\n }\n }\n\n supportsPointInactiveOpacity() {\n return true;\n }\n}\n\nChartElement.prototype.options = { };\n\nexport default ChartElement;\n","const COORDINATE_LIMIT = 300000;\n\nconst DateLabelFormats = {\n milliseconds: \"HH:mm:ss.fff\",\n seconds: \"HH:mm:ss\",\n minutes: \"HH:mm\",\n hours: \"HH:mm\",\n days: \"M/d\",\n weeks: \"M/d\",\n months: \"MMM 'yy\",\n years: \"yyyy\"\n};\n\nconst ZERO_THRESHOLD = 0.2;\n\nexport {\n COORDINATE_LIMIT, DateLabelFormats, ZERO_THRESHOLD\n};","import { geometry as geom } from '@progress/kendo-drawing';\n\nimport { X, Y } from '../common/constants';\nimport { Class, last, round } from '../common';\n\nconst WEIGHT = 0.333;\nconst EXTREMUM_ALLOWED_DEVIATION = 0.01;\n\nclass CurveProcessor extends Class {\n\n constructor(closed) {\n super();\n\n this.closed = closed;\n }\n\n process(dataPoints) {\n const points = dataPoints.slice(0);\n const segments = [];\n let closed = this.closed;\n let length = points.length;\n\n if (length > 2) {\n this.removeDuplicates(0, points);\n length = points.length;\n }\n\n if (length < 2 || (length === 2 && points[0].equals(points[1]))) {\n return segments;\n }\n\n let p0 = points[0];\n let p1 = points[1];\n let p2 = points[2];\n\n segments.push(new geom.Segment(p0));\n\n while (p0.equals(points[length - 1])) {\n closed = true;\n points.pop();\n length--;\n }\n\n if (length === 2) {\n const tangent = this.tangent(p0,p1, X, Y);\n\n last(segments).controlOut(\n this.firstControlPoint(tangent, p0, p1, X, Y)\n );\n\n segments.push(new geom.Segment(\n p1,\n this.secondControlPoint(tangent, p0, p1, X, Y)\n ));\n\n return segments;\n }\n\n let initialControlPoint, lastControlPoint;\n\n if (closed) {\n p0 = points[length - 1]; p1 = points[0]; p2 = points[1];\n const controlPoints = this.controlPoints(p0, p1, p2);\n initialControlPoint = controlPoints[1];\n lastControlPoint = controlPoints[0];\n } else {\n const tangent = this.tangent(p0, p1, X,Y);\n initialControlPoint = this.firstControlPoint(tangent, p0, p1, X, Y);\n }\n\n let cp0 = initialControlPoint;\n for (let idx = 0; idx <= length - 3; idx++) {\n this.removeDuplicates(idx, points);\n length = points.length;\n if (idx + 3 <= length) {\n p0 = points[idx]; p1 = points[idx + 1]; p2 = points[idx + 2];\n const controlPoints = this.controlPoints(p0,p1,p2);\n\n last(segments).controlOut(cp0);\n cp0 = controlPoints[1];\n\n const cp1 = controlPoints[0];\n segments.push(new geom.Segment(p1, cp1));\n }\n }\n\n if (closed) {\n p0 = points[length - 2]; p1 = points[length - 1]; p2 = points[0];\n const controlPoints = this.controlPoints(p0, p1, p2);\n\n last(segments).controlOut(cp0);\n segments.push(new geom.Segment(\n p1,\n controlPoints[0]\n ));\n\n last(segments).controlOut(controlPoints[1]);\n segments.push(new geom.Segment(\n p2,\n lastControlPoint\n ));\n } else {\n const tangent = this.tangent(p1, p2, X, Y);\n\n last(segments).controlOut(cp0);\n segments.push(new geom.Segment(\n p2,\n this.secondControlPoint(tangent, p1, p2, X, Y)\n ));\n }\n\n return segments;\n }\n\n removeDuplicates(idx, points) {\n while (points[idx + 1] && (points[idx].equals(points[idx + 1]) || points[idx + 1].equals(points[idx + 2]))) {\n points.splice(idx + 1, 1);\n }\n }\n\n invertAxis(p0, p1, p2) {\n let invertAxis = false;\n\n if (p0.x === p1.x) {\n invertAxis = true;\n } else if (p1.x === p2.x) {\n if ((p1.y < p2.y && p0.y <= p1.y) || (p2.y < p1.y && p1.y <= p0.y)) {\n invertAxis = true;\n }\n } else {\n const fn = this.lineFunction(p0,p1);\n const y2 = this.calculateFunction(fn, p2.x);\n if (!(p0.y <= p1.y && p2.y <= y2) &&\n !(p1.y <= p0.y && p2.y >= y2)) {\n invertAxis = true;\n }\n }\n\n return invertAxis;\n }\n\n isLine(p0, p1, p2) {\n const fn = this.lineFunction(p0, p1);\n const y2 = this.calculateFunction(fn, p2.x);\n\n return (p0.x === p1.x && p1.x === p2.x) || round(y2, 1) === round(p2.y, 1);\n }\n\n lineFunction(p1, p2) {\n const a = (p2.y - p1.y) / (p2.x - p1.x);\n const b = p1.y - a * p1.x;\n\n return [ b, a ];\n }\n\n controlPoints(p0, p1, p2) {\n let xField = X;\n let yField = Y;\n let restrict = false;\n let switchOrientation = false;\n let tangent;\n\n if (this.isLine(p0, p1, p2)) {\n tangent = this.tangent(p0, p1, X, Y);\n } else {\n const monotonic = {\n x: this.isMonotonicByField(p0, p1, p2, X),\n y: this.isMonotonicByField(p0, p1, p2, Y)\n };\n\n if (monotonic.x && monotonic.y) {\n tangent = this.tangent(p0, p2, X, Y);\n restrict = true;\n } else {\n if (this.invertAxis(p0, p1, p2)) {\n xField = Y;\n yField = X;\n }\n\n if (monotonic[xField]) {\n tangent = 0;\n } else {\n let sign;\n if ((p2[yField] < p0[yField] && p0[yField] <= p1[yField]) ||\n (p0[yField] < p2[yField] && p1[yField] <= p0[yField])) {\n sign = numberSign((p2[yField] - p0[yField]) * (p1[xField] - p0[xField]));\n } else {\n sign = -numberSign((p2[xField] - p0[xField]) * (p1[yField] - p0[yField]));\n }\n\n tangent = EXTREMUM_ALLOWED_DEVIATION * sign;\n switchOrientation = true;\n }\n }\n }\n\n const secondControlPoint = this.secondControlPoint(tangent, p0, p1, xField, yField);\n\n if (switchOrientation) {\n const oldXField = xField;\n xField = yField;\n yField = oldXField;\n }\n\n const firstControlPoint = this.firstControlPoint(tangent, p1, p2, xField, yField);\n\n if (restrict) {\n this.restrictControlPoint(p0, p1, secondControlPoint, tangent);\n this.restrictControlPoint(p1, p2, firstControlPoint, tangent);\n }\n\n return [ secondControlPoint, firstControlPoint ];\n }\n\n restrictControlPoint(p1, p2, cp, tangent) {\n if (p1.y < p2.y) {\n if (p2.y < cp.y) {\n cp.x = p1.x + (p2.y - p1.y) / tangent;\n cp.y = p2.y;\n } else if (cp.y < p1.y) {\n cp.x = p2.x - (p2.y - p1.y) / tangent;\n cp.y = p1.y;\n }\n } else {\n if (cp.y < p2.y) {\n cp.x = p1.x - (p1.y - p2.y) / tangent;\n cp.y = p2.y;\n } else if (p1.y < cp.y) {\n cp.x = p2.x + (p1.y - p2.y) / tangent;\n cp.y = p1.y;\n }\n }\n }\n\n tangent(p0, p1, xField, yField) {\n const x = p1[xField] - p0[xField];\n const y = p1[yField] - p0[yField];\n let tangent;\n\n if (x === 0) {\n tangent = 0;\n } else {\n tangent = y / x;\n }\n\n return tangent;\n }\n\n isMonotonicByField(p0, p1, p2, field) {\n return (p2[field] > p1[field] && p1[field] > p0[field]) ||\n (p2[field] < p1[field] && p1[field] < p0[field]);\n }\n\n firstControlPoint(tangent, p0, p3, xField, yField) {\n const t1 = p0[xField];\n const t2 = p3[xField];\n const distance = (t2 - t1) * WEIGHT;\n\n return this.point(t1 + distance, p0[yField] + distance * tangent, xField, yField);\n }\n\n secondControlPoint(tangent, p0, p3, xField, yField) {\n const t1 = p0[xField];\n const t2 = p3[xField];\n const distance = (t2 - t1) * WEIGHT;\n\n return this.point(t2 - distance, p3[yField] - distance * tangent, xField, yField);\n }\n\n point(xValue, yValue, xField, yField) {\n const controlPoint = new geom.Point();\n controlPoint[xField] = xValue;\n controlPoint[yField] = yValue;\n\n return controlPoint;\n }\n\n calculateFunction(fn, x) {\n const length = fn.length;\n let result = 0;\n\n for (let i = 0; i < length; i++) {\n result += Math.pow(x,i) * fn[i];\n }\n return result;\n }\n}\n\nfunction numberSign(value) {\n return value <= 0 ? -1 : 1;\n}\n\nexport default CurveProcessor;","import CategoryAxis from './category-axis';\nimport AxisLabel from './axis-label';\nimport Box from './box';\n\nimport { CENTER, DATE, DEFAULT_PRECISION, MAX_VALUE, OBJECT, X, Y } from '../common/constants';\nimport { deepExtend, defined, inArray, last, limitValue, round, setDefaultOptions, sparseArrayLimits } from '../common';\n\nimport { MILLISECONDS, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS,\n TIME_PER_MINUTE, TIME_PER_HOUR, TIME_PER_DAY, TIME_PER_WEEK,\n TIME_PER_MONTH, TIME_PER_YEAR, TIME_PER_UNIT } from '../date-utils/constants';\nimport { dateComparer, toDate, addTicks, addDuration, dateDiff, absoluteDateDiff,\n dateIndex, dateEquals, toTime, parseDate, parseDates, firstDay } from '../date-utils';\n\nimport { DateLabelFormats } from './constants';\n\nconst AUTO = \"auto\";\nconst BASE_UNITS = [\n MILLISECONDS, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS\n];\nconst FIT = \"fit\";\n\n\nfunction categoryRange(categories) {\n let range = categories._range;\n if (!range) {\n range = categories._range = sparseArrayLimits(categories);\n range.min = toDate(range.min);\n range.max = toDate(range.max);\n }\n\n return range;\n}\n\nclass EmptyDateRange {\n constructor(options) {\n this.options = options;\n }\n\n displayIndices() {\n return {\n min: 0,\n max: 1\n };\n }\n\n displayRange() {\n return {};\n }\n\n total() {\n return {};\n }\n\n valueRange() {\n return {};\n }\n\n valueIndex() {\n return -1;\n }\n\n values() {\n return [];\n }\n\n totalIndex() {\n return -1;\n }\n\n valuesCount() {\n return 0;\n }\n\n totalCount() {\n return 0;\n }\n\n dateAt() {\n return null;\n }\n}\n\nclass DateRange {\n constructor(start, end, options) {\n this.options = options;\n options.baseUnitStep = options.baseUnitStep || 1;\n\n const { roundToBaseUnit, justified } = options;\n\n this.start = addDuration(start, 0, options.baseUnit, options.weekStartDay);\n const lowerEnd = this.roundToTotalStep(end);\n const expandEnd = !justified && dateEquals(end, lowerEnd) && !options.justifyEnd;\n\n this.end = this.roundToTotalStep(end, !justified, expandEnd ? 1 : 0);\n\n const min = options.min || start;\n this.valueStart = this.roundToTotalStep(min);\n this.displayStart = roundToBaseUnit ? this.valueStart : min;\n\n const max = options.max;\n if (!max) {\n this.valueEnd = lowerEnd;\n this.displayEnd = roundToBaseUnit || expandEnd ? this.end : end;\n } else {\n const next = !justified && dateEquals(max, this.roundToTotalStep(max)) ? -1 : 0;\n this.valueEnd = this.roundToTotalStep(max, false, next);\n this.displayEnd = roundToBaseUnit ? this.roundToTotalStep(max, !justified) : options.max;\n }\n\n if (this.valueEnd < this.valueStart) {\n this.valueEnd = this.valueStart;\n }\n if (this.displayEnd <= this.displayStart) {\n this.displayEnd = this.roundToTotalStep(this.displayStart, false, 1);\n }\n }\n\n displayRange() {\n return {\n min: this.displayStart,\n max: this.displayEnd\n };\n }\n\n displayIndices() {\n if (!this._indices) {\n const options = this.options;\n\n const { baseUnit, baseUnitStep } = options;\n\n const minIdx = dateIndex(this.displayStart, this.valueStart, baseUnit, baseUnitStep);\n const maxIdx = dateIndex(this.displayEnd, this.valueStart, baseUnit, baseUnitStep);\n\n this._indices = { min: minIdx, max: maxIdx };\n }\n\n return this._indices;\n }\n\n total() {\n return {\n min: this.start,\n max: this.end\n };\n }\n\n totalCount() {\n const last = this.totalIndex(this.end);\n\n return last + (this.options.justified ? 1 : 0);\n }\n\n valueRange() {\n return {\n min: this.valueStart,\n max: this.valueEnd\n };\n }\n\n valueIndex(value) {\n const options = this.options;\n return Math.floor(dateIndex(value, this.valueStart, options.baseUnit, options.baseUnitStep));\n }\n\n totalIndex(value) {\n const options = this.options;\n return Math.floor(dateIndex(value, this.start, options.baseUnit, options.baseUnitStep));\n }\n\n dateIndex(value) {\n const options = this.options;\n return dateIndex(value, this.valueStart, options.baseUnit, options.baseUnitStep);\n }\n\n valuesCount() {\n const maxIdx = this.valueIndex(this.valueEnd);\n\n return maxIdx + 1;\n }\n\n values() {\n let values = this._values;\n if (!values) {\n const options = this.options;\n const range = this.valueRange();\n this._values = values = [];\n\n for (let date = range.min; date <= range.max;) {\n values.push(date);\n date = addDuration(date, options.baseUnitStep, options.baseUnit, options.weekStartDay);\n }\n }\n\n return values;\n }\n\n dateAt(index, total) {\n const options = this.options;\n\n return addDuration(total ? this.start : this.valueStart, options.baseUnitStep * index, options.baseUnit, options.weekStartDay);\n }\n\n roundToTotalStep(value, upper, next) {\n const { baseUnit, baseUnitStep, weekStartDay } = this.options;\n const start = this.start;\n\n const step = dateIndex(value, start, baseUnit, baseUnitStep);\n let roundedStep = upper ? Math.ceil(step) : Math.floor(step);\n\n if (next) {\n roundedStep += next;\n }\n\n return addDuration(start, roundedStep * baseUnitStep, baseUnit, weekStartDay);\n }\n\n}\n\nfunction autoBaseUnit(options, startUnit, startStep) {\n const categoryLimits = categoryRange(options.categories);\n const span = (options.max || categoryLimits.max) - (options.min || categoryLimits.min);\n const { autoBaseUnitSteps, maxDateGroups } = options;\n const autoUnit = options.baseUnit === FIT;\n let autoUnitIx = startUnit ? BASE_UNITS.indexOf(startUnit) : 0;\n let baseUnit = autoUnit ? BASE_UNITS[autoUnitIx++] : options.baseUnit;\n let units = span / TIME_PER_UNIT[baseUnit];\n let totalUnits = units;\n let unitSteps, step, nextStep;\n\n while (!step || units >= maxDateGroups) {\n unitSteps = unitSteps || autoBaseUnitSteps[baseUnit].slice(0);\n\n do {\n nextStep = unitSteps.shift();\n } while (nextStep && startUnit === baseUnit && nextStep < startStep);\n\n if (nextStep) {\n step = nextStep;\n units = totalUnits / step;\n } else if (baseUnit === last(BASE_UNITS)) {\n step = Math.ceil(totalUnits / maxDateGroups);\n break;\n } else if (autoUnit) {\n baseUnit = BASE_UNITS[autoUnitIx++] || last(BASE_UNITS);\n totalUnits = span / TIME_PER_UNIT[baseUnit];\n unitSteps = null;\n } else {\n if (units > maxDateGroups) {\n step = Math.ceil(totalUnits / maxDateGroups);\n }\n break;\n }\n }\n\n options.baseUnitStep = step;\n options.baseUnit = baseUnit;\n}\n\nfunction defaultBaseUnit(options) {\n const categories = options.categories;\n const count = defined(categories) ? categories.length : 0;\n let minDiff = MAX_VALUE;\n let lastCategory, unit;\n\n for (let categoryIx = 0; categoryIx < count; categoryIx++) {\n const category = categories[categoryIx];\n\n if (category && lastCategory) {\n const diff = absoluteDateDiff(category, lastCategory);\n if (diff > 0) {\n minDiff = Math.min(minDiff, diff);\n\n if (minDiff >= TIME_PER_YEAR) {\n unit = YEARS;\n } else if (minDiff >= TIME_PER_MONTH - TIME_PER_DAY * 3) {\n unit = MONTHS;\n } else if (minDiff >= TIME_PER_WEEK) {\n unit = WEEKS;\n } else if (minDiff >= TIME_PER_DAY) {\n unit = DAYS;\n } else if (minDiff >= TIME_PER_HOUR) {\n unit = HOURS;\n } else if (minDiff >= TIME_PER_MINUTE) {\n unit = MINUTES;\n } else {\n unit = SECONDS;\n }\n }\n }\n\n lastCategory = category;\n }\n\n options.baseUnit = unit || DAYS;\n}\n\nfunction initUnit(options) {\n const baseUnit = (options.baseUnit || \"\").toLowerCase();\n const useDefault = baseUnit !== FIT && !inArray(baseUnit, BASE_UNITS);\n\n if (useDefault) {\n defaultBaseUnit(options);\n }\n\n if (baseUnit === FIT || options.baseUnitStep === AUTO) {\n autoBaseUnit(options);\n }\n\n return options;\n}\n\nclass DateCategoryAxis extends CategoryAxis {\n\n clone() {\n const copy = new DateCategoryAxis(Object.assign({}, this.options), this.chartService);\n copy.createLabels();\n\n return copy;\n }\n\n categoriesHash() {\n const start = this.dataRange.total().min;\n return this.options.baseUnit + this.options.baseUnitStep + start;\n }\n\n initUserOptions(options) {\n return options;\n }\n\n initFields() {\n super.initFields();\n\n const chartService = this.chartService;\n const intlService = chartService.intl;\n let options = this.options;\n\n let categories = options.categories || [];\n if (!categories._parsed) {\n categories = parseDates(intlService, categories);\n categories._parsed = true;\n }\n\n options = deepExtend({\n roundToBaseUnit: true\n }, options, {\n categories: categories,\n min: parseDate(intlService, options.min),\n max: parseDate(intlService, options.max),\n weekStartDay: firstDay(options, intlService)\n });\n\n if (chartService.panning && chartService.isPannable(options.vertical ? Y : X)) {\n options.roundToBaseUnit = false;\n }\n\n options.userSetBaseUnit = options.userSetBaseUnit || options.baseUnit;\n options.userSetBaseUnitStep = options.userSetBaseUnitStep || options.baseUnitStep;\n\n this.options = options;\n options.srcCategories = categories;\n\n if (categories.length > 0) {\n const range = categoryRange(categories);\n const maxDivisions = options.maxDivisions;\n\n this.dataRange = new DateRange(range.min, range.max, initUnit(options));\n\n if (maxDivisions) {\n const dataRange = this.dataRange.displayRange();\n\n const divisionOptions = Object.assign({}, options, {\n justified: true,\n roundToBaseUnit: false,\n baseUnit: 'fit',\n min: dataRange.min,\n max: dataRange.max,\n maxDateGroups: maxDivisions\n });\n\n const dataRangeOptions = this.dataRange.options;\n\n autoBaseUnit(divisionOptions, dataRangeOptions.baseUnit, dataRangeOptions.baseUnitStep);\n\n this.divisionRange = new DateRange(range.min, range.max, divisionOptions);\n } else {\n this.divisionRange = this.dataRange;\n }\n\n } else {\n options.baseUnit = options.baseUnit || DAYS;\n this.dataRange = this.divisionRange = new EmptyDateRange(options);\n }\n\n this.rangeLabels = [];\n }\n\n tickIndices(stepSize) {\n const { dataRange, divisionRange } = this;\n const valuesCount = divisionRange.valuesCount();\n\n if (!this.options.maxDivisions || !valuesCount) {\n return super.tickIndices(stepSize);\n }\n\n const indices = [];\n let values = divisionRange.values();\n let offset = 0;\n\n if (!this.options.justified) {\n values = values.concat(divisionRange.dateAt(valuesCount));\n offset = 0.5;//align ticks to the center of not justified categories\n }\n\n for (let idx = 0; idx < values.length; idx++) {\n indices.push(dataRange.dateIndex(values[idx]) + offset);\n if (stepSize !== 1 && idx >= 1) {\n const last = indices.length - 1;\n indices.splice(idx, 0, indices[last - 1] + (indices[last] - indices[last - 1]) * stepSize);\n }\n }\n\n return indices;\n }\n\n shouldRenderNote(value) {\n const range = this.range();\n const categories = this.options.categories || [];\n\n return dateComparer(value, range.min) >= 0 && dateComparer(value, range.max) <= 0 && categories.length;\n }\n\n parseNoteValue(value) {\n return parseDate(this.chartService.intl, value);\n }\n\n noteSlot(value) {\n return this.getSlot(value);\n }\n\n translateRange(delta) {\n const options = this.options;\n const { baseUnit, weekStartDay, vertical } = options;\n const lineBox = this.lineBox();\n const size = vertical ? lineBox.height() : lineBox.width();\n let range = this.range();\n const scale = size / (range.max - range.min);\n const offset = round(delta / scale, DEFAULT_PRECISION);\n\n if (range.min && range.max) {\n const from = addTicks(options.min || range.min, offset);\n const to = addTicks(options.max || range.max, offset);\n\n range = {\n min: addDuration(from, 0, baseUnit, weekStartDay),\n max: addDuration(to, 0, baseUnit, weekStartDay)\n };\n }\n\n return range;\n }\n\n labelsRange() {\n return {\n min: this.options.labels.skip,\n max: this.divisionRange.valuesCount()\n };\n }\n\n pan(delta) {\n if (this.isEmpty()) {\n return null;\n }\n\n const options = this.options;\n const lineBox = this.lineBox();\n const size = options.vertical ? lineBox.height() : lineBox.width();\n const { min, max } = this.dataRange.displayRange();\n const totalLimits = this.dataRange.total();\n const scale = size / (max - min);\n const offset = round(delta / scale, DEFAULT_PRECISION) * (options.reverse ? -1 : 1);\n const from = addTicks(min, offset);\n const to = addTicks(max, offset);\n\n const panRange = this.limitRange(toTime(from), toTime(to), toTime(totalLimits.min), toTime(totalLimits.max), offset);\n\n if (panRange) {\n panRange.min = toDate(panRange.min);\n panRange.max = toDate(panRange.max);\n panRange.baseUnit = options.baseUnit;\n panRange.baseUnitStep = options.baseUnitStep || 1;\n panRange.userSetBaseUnit = options.userSetBaseUnit;\n panRange.userSetBaseUnitStep = options.userSetBaseUnitStep;\n\n return panRange;\n }\n }\n\n pointsRange(start, end) {\n if (this.isEmpty()) {\n return null;\n }\n\n const pointsRange = super.pointsRange(start, end);\n const datesRange = this.dataRange.displayRange();\n const indicesRange = this.dataRange.displayIndices();\n const scale = dateDiff(datesRange.max, datesRange.min) / (indicesRange.max - indicesRange.min);\n const options = this.options;\n\n const min = addTicks(datesRange.min, pointsRange.min * scale);\n const max = addTicks(datesRange.min, pointsRange.max * scale);\n\n return {\n min: min,\n max: max,\n baseUnit: options.userSetBaseUnit || options.baseUnit,\n baseUnitStep: options.userSetBaseUnitStep || options.baseUnitStep\n };\n }\n\n scaleRange(scale, cursor) {\n if (this.isEmpty()) {\n return {};\n }\n\n const options = this.options;\n const fit = options.userSetBaseUnit === FIT;\n const totalLimits = this.dataRange.total();\n const { min: rangeMin, max: rangeMax } = this.dataRange.displayRange();\n\n const position = Math.abs(this.pointOffset(cursor));\n const range = rangeMax - rangeMin;\n const delta = this.scaleToDelta(scale, range);\n const minDelta = Math.round(position * delta);\n const maxDelta = Math.round((1 - position) * delta);\n\n let { baseUnit } = this.dataRange.options;\n let min = new Date(rangeMin.getTime() + minDelta);\n let max = new Date(rangeMax.getTime() - maxDelta);\n\n if (fit) {\n const { autoBaseUnitSteps, maxDateGroups } = options;\n\n const maxDiff = last(autoBaseUnitSteps[baseUnit]) * maxDateGroups * TIME_PER_UNIT[baseUnit];\n const rangeDiff = dateDiff(rangeMax, rangeMin);\n const diff = dateDiff(max, min);\n let baseUnitIndex = BASE_UNITS.indexOf(baseUnit);\n let autoBaseUnitStep, ticks;\n\n if (diff < TIME_PER_UNIT[baseUnit] && baseUnit !== MILLISECONDS) {\n baseUnit = BASE_UNITS[baseUnitIndex - 1];\n autoBaseUnitStep = last(autoBaseUnitSteps[baseUnit]);\n ticks = (rangeDiff - (maxDateGroups - 1) * autoBaseUnitStep * TIME_PER_UNIT[baseUnit]) / 2;\n min = addTicks(rangeMin, ticks);\n max = addTicks(rangeMax, -ticks);\n\n } else if (diff > maxDiff && baseUnit !== YEARS) {\n let stepIndex = 0;\n\n do {\n baseUnitIndex++;\n baseUnit = BASE_UNITS[baseUnitIndex];\n stepIndex = 0;\n ticks = 2 * TIME_PER_UNIT[baseUnit];\n do {\n autoBaseUnitStep = autoBaseUnitSteps[baseUnit][stepIndex];\n stepIndex++;\n } while (stepIndex < autoBaseUnitSteps[baseUnit].length && ticks * autoBaseUnitStep < rangeDiff);\n } while (baseUnit !== YEARS && ticks * autoBaseUnitStep < rangeDiff);\n\n ticks = (ticks * autoBaseUnitStep - rangeDiff) / 2;\n if (ticks > 0) {\n min = addTicks(rangeMin, -ticks);\n max = addTicks(rangeMax, ticks);\n min = addTicks(min, limitValue(max, totalLimits.min, totalLimits.max) - max);\n max = addTicks(max, limitValue(min, totalLimits.min, totalLimits.max) - min);\n }\n }\n }\n\n if (min && max && dateDiff(max, min) > 0) {\n return {\n min: min,\n max: max,\n baseUnit: options.userSetBaseUnit || options.baseUnit,\n baseUnitStep: options.userSetBaseUnitStep || options.baseUnitStep\n };\n }\n }\n\n zoomRange(scale, cursor) {\n const totalLimits = this.dataRange.total();\n const range = this.scaleRange(scale, cursor);\n\n if (range) {\n if (range.min < totalLimits.min) {\n range.min = totalLimits.min;\n }\n if (range.max > totalLimits.max) {\n range.max = totalLimits.max;\n }\n }\n\n return range;\n }\n\n range() {\n return this.dataRange.displayRange();\n }\n\n createLabels() {\n super.createLabels();\n this.createRangeLabels();\n }\n\n clearLabels() {\n super.clearLabels();\n this.rangeLabels = [];\n }\n\n arrangeLabels() {\n this.arrangeRangeLabels();\n super.arrangeLabels();\n }\n\n arrangeRangeLabels() {\n const { options, rangeLabels } = this;\n if (rangeLabels.length === 0) {\n return;\n }\n\n const lineBox = this.lineBox();\n const vertical = options.vertical;\n const mirror = options.rangeLabels.mirror || options.labels.mirror;\n\n const firstLabel = rangeLabels[0];\n if (firstLabel) {\n const position = vertical ? lineBox.y1 - (firstLabel.box.height() / 2) : lineBox.x1;\n this.positionLabel(firstLabel, mirror, position);\n }\n\n const lastLabel = rangeLabels[1];\n if (lastLabel) {\n const position = vertical ? lineBox.y2 - (lastLabel.box.height() / 2) : lineBox.x2;\n this.positionLabel(lastLabel, mirror, position);\n }\n }\n\n autoRotateLabels() {\n super.autoRotateLabels();\n this.autoRotateRangeLabels();\n }\n\n hideOutOfRangeLabels() {\n super.hideOutOfRangeLabels();\n this.hideOverlappingLabels();\n }\n\n hideOverlappingLabels() {\n const { rangeLabels, labels } = this;\n if (rangeLabels.length === 0) {\n return;\n }\n\n function clip(rangeLabel, label) {\n if (!label.options.visible || label.box.overlaps(rangeLabel.box)) {\n label.options.visible = false;\n return true;\n }\n\n return false;\n }\n\n const firstRangeLabel = rangeLabels[0];\n if (firstRangeLabel && firstRangeLabel.options.visible) {\n for (let i = 0; i < labels.length; i++) {\n const overlaps = clip(firstRangeLabel, labels[i]);\n if (!overlaps) {\n break;\n }\n }\n }\n\n const lastRangeLabel = rangeLabels[1];\n if (lastRangeLabel && lastRangeLabel.options.visible) {\n for (let i = labels.length - 1; i > 0; --i) {\n const overlaps = clip(lastRangeLabel, labels[i]);\n if (!overlaps) {\n break;\n }\n }\n }\n }\n\n contentBox() {\n const box = super.contentBox();\n const rangeLabels = this.rangeLabels;\n\n for (let i = 0; i < rangeLabels.length; i++) {\n const label = rangeLabels[i];\n if (label.options.visible) {\n box.wrap(label.box);\n }\n }\n\n return box;\n }\n\n createAxisLabel(index, labelOptions, labelContext = {}) {\n const options = this.options;\n const dataItem = options.dataItems && !options.maxDivisions ? options.dataItems[index] : null;\n const date = this.divisionRange.dateAt(index);\n const unitFormat = labelOptions.dateFormats[this.divisionRange.options.baseUnit];\n\n labelOptions.format = labelOptions.format || unitFormat;\n labelContext.dataItem = dataItem;\n\n const text = this.axisLabelText(date, labelOptions, labelContext);\n if (text) {\n return new AxisLabel(date, text, index, dataItem, labelOptions);\n }\n }\n\n createRangeLabels() {\n const { displayStart, displayEnd } = this.divisionRange;\n const options = this.options;\n const labelOptions = Object.assign({}, options.labels, options.rangeLabels, {\n align: CENTER,\n zIndex: options.zIndex\n });\n\n if (labelOptions.visible !== true) {\n return;\n }\n\n this.normalizeLabelRotation(labelOptions);\n labelOptions.alignRotation = CENTER;\n\n if (labelOptions.rotation === \"auto\") {\n labelOptions.rotation = 0;\n options.autoRotateRangeLabels = true;\n }\n\n const unitFormat = labelOptions.dateFormats[this.divisionRange.options.baseUnit];\n labelOptions.format = labelOptions.format || unitFormat;\n\n const createLabel = (index, date, text) => {\n if (text) {\n const label = new AxisLabel(date, text, index, null, labelOptions);\n this.append(label);\n this.rangeLabels.push(label);\n }\n };\n\n const startText = this.axisLabelText(displayStart, labelOptions, { index: 0, count: 2 });\n createLabel(0, displayStart, startText);\n\n const endText = this.axisLabelText(displayEnd, labelOptions, { index: 1, count: 2 });\n createLabel(1, displayEnd, endText);\n }\n\n autoRotateRangeLabels() {\n const labels = this.rangeLabels;\n if (!this.options.autoRotateRangeLabels || this.options.vertical || labels.length !== 2) {\n return;\n }\n\n const rotateLabel = (label, tickPositions, index) => {\n const width = Math.abs(tickPositions[index + 1] - tickPositions[index]) * 2;\n const angle = this.autoRotateLabelAngle(label.box, width);\n if (angle !== 0) {\n label.options.rotation = angle;\n label.reflow(new Box());\n }\n };\n\n const tickPositions = this.getMajorTickPositions();\n rotateLabel(labels[0], tickPositions, 0);\n rotateLabel(labels[1], tickPositions, tickPositions.length - 2);\n }\n\n categoryIndex(value) {\n return this.dataRange.valueIndex(value);\n }\n\n slot(from, to, limit) {\n const dateRange = this.dataRange;\n let start = from;\n let end = to;\n\n if (start instanceof Date) {\n start = dateRange.dateIndex(start);\n }\n\n if (end instanceof Date) {\n end = dateRange.dateIndex(end);\n }\n\n const slot = this.getSlot(start, end, limit);\n if (slot) {\n return slot.toRect();\n }\n }\n\n getSlot(a, b, limit) {\n let start = a;\n let end = b;\n\n if (typeof start === OBJECT) {\n start = this.categoryIndex(start);\n }\n\n if (typeof end === OBJECT) {\n end = this.categoryIndex(end);\n }\n\n return super.getSlot(start, end, limit);\n }\n\n valueRange() {\n const options = this.options;\n const range = categoryRange(options.srcCategories);\n\n return {\n min: toDate(range.min),\n max: toDate(range.max)\n };\n }\n\n categoryAt(index, total) {\n return this.dataRange.dateAt(index, total);\n }\n\n categoriesCount() {\n return this.dataRange.valuesCount();\n }\n\n rangeIndices() {\n return this.dataRange.displayIndices();\n }\n\n labelsBetweenTicks() {\n return !this.divisionRange.options.justified;\n }\n\n prepareUserOptions() {\n if (this.isEmpty()) {\n return;\n }\n\n this.options.categories = this.dataRange.values();\n }\n\n getCategory(point) {\n const index = this.pointCategoryIndex(point);\n\n if (index === null) {\n return null;\n }\n\n return this.dataRange.dateAt(index);\n }\n\n totalIndex(value) {\n return this.dataRange.totalIndex(value);\n }\n\n currentRangeIndices() {\n const range = this.dataRange.valueRange();\n return {\n min: this.dataRange.totalIndex(range.min),\n max: this.dataRange.totalIndex(range.max)\n };\n }\n\n totalRange() {\n return this.dataRange.total();\n }\n\n totalCount() {\n return this.dataRange.totalCount();\n }\n\n isEmpty() {\n return !this.options.srcCategories.length;\n }\n\n roundedRange() {\n if (this.options.roundToBaseUnit !== false || this.isEmpty()) {\n return this.range();\n }\n\n const options = this.options;\n const datesRange = categoryRange(options.srcCategories);\n\n const dateRange = new DateRange(datesRange.min, datesRange.max, Object.assign({}, options, {\n justified: false,\n roundToBaseUnit: true,\n justifyEnd: options.justified\n }));\n\n return dateRange.displayRange();\n }\n}\n\nsetDefaultOptions(DateCategoryAxis, {\n type: DATE,\n labels: {\n dateFormats: DateLabelFormats\n },\n rangeLabels: {\n visible: false\n },\n autoBaseUnitSteps: {\n milliseconds: [ 1, 10, 100 ],\n seconds: [ 1, 2, 5, 15, 30 ],\n minutes: [ 1, 2, 5, 15, 30 ],\n hours: [ 1, 2, 3 ],\n days: [ 1, 2, 3 ],\n weeks: [ 1, 2 ],\n months: [ 1, 2, 3, 6 ],\n years: [ 1, 2, 3, 5, 10, 25, 50 ]\n },\n maxDateGroups: 10\n});\n\nexport default DateCategoryAxis;\n","import Axis from './axis';\nimport NumericAxis from './numeric-axis';\nimport AxisLabel from './axis-label';\nimport { DateLabelFormats } from './constants';\n\nimport { BLACK, DATE, COORD_PRECISION, DEFAULT_PRECISION } from '../common/constants';\nimport { setDefaultOptions, deepExtend, limitValue, round } from '../common';\n\nimport autoMajorUnit from './utils/auto-major-unit';\nimport ceil from './utils/ceil';\n\nimport { toDate, toTime, floorDate, ceilDate, duration, addDuration, addTicks, dateDiff, absoluteDateDiff, dateComparer, parseDate, parseDates, firstDay } from '../date-utils';\nimport { HOURS, DAYS, WEEKS, MONTHS, YEARS, TIME_PER_DAY, TIME_PER_WEEK, TIME_PER_MONTH, TIME_PER_YEAR, TIME_PER_UNIT } from '../date-utils/constants';\n\nconst MIN_VALUE_RANGE = 1000;\n\nclass DateValueAxis extends Axis {\n constructor(seriesMin, seriesMax, axisOptions, chartService) {\n const min = toDate(seriesMin);\n const max = toDate(seriesMax);\n\n const intlService = chartService.intl;\n let options = axisOptions || {};\n options = deepExtend(options || {}, {\n min: parseDate(intlService, options.min),\n max: parseDate(intlService, options.max),\n axisCrossingValue: parseDates(intlService, options.axisCrossingValues || options.axisCrossingValue),\n weekStartDay: firstDay(options, intlService)\n });\n options = applyDefaults(min, max, options);\n\n super(options, chartService);\n\n this.intlService = intlService;\n this.seriesMin = min;\n this.seriesMax = max;\n\n const weekStartDay = options.weekStartDay || 0;\n this.totalMin = toTime(floorDate(toTime(min) - 1, options.baseUnit, weekStartDay));\n this.totalMax = toTime(ceilDate(toTime(max) + 1, options.baseUnit, weekStartDay));\n }\n\n clone() {\n return new DateValueAxis(this.seriesMin, this.seriesMax, Object.assign({}, this.options), this.chartService);\n }\n\n range() {\n const options = this.options;\n return { min: options.min, max: options.max };\n }\n\n getDivisions(stepValue) {\n const options = this.options;\n\n return Math.floor(\n duration(options.min, options.max, options.baseUnit) / stepValue + 1\n );\n }\n\n getTickPositions(step) {\n const options = this.options;\n const { axisDir: dir, lineSize, lineStart: start } = this.lineInfo();\n const divisions = this.getDivisions(step);\n const timeRange = dateDiff(options.max, options.min);\n const scale = lineSize / timeRange;\n const weekStartDay = options.weekStartDay || 0;\n\n const positions = [ start ];\n for (let i = 1; i < divisions; i++) {\n const date = addDuration(options.min, i * step, options.baseUnit, weekStartDay);\n const pos = start + dateDiff(date, options.min) * scale * dir;\n\n positions.push(round(pos, COORD_PRECISION));\n }\n\n return positions;\n }\n\n getMajorTickPositions() {\n return this.getTickPositions(this.options.majorUnit);\n }\n\n getMinorTickPositions() {\n return this.getTickPositions(this.options.minorUnit);\n }\n\n getSlot(a, b, limit) {\n return NumericAxis.prototype.getSlot.call(\n this, parseDate(this.intlService, a), parseDate(this.intlService, b), limit\n );\n }\n\n getValue(point) {\n const value = NumericAxis.prototype.getValue.call(this, point);\n\n return value !== null ? toDate(value) : null;\n }\n\n labelsCount() {\n return this.getDivisions(this.options.majorUnit);\n }\n\n createAxisLabel(index, labelOptions, labelContext) {\n const options = this.options;\n const offset = index * options.majorUnit;\n const weekStartDay = options.weekStartDay || 0;\n let date = options.min;\n\n if (offset > 0) {\n date = addDuration(date, offset, options.baseUnit, weekStartDay);\n }\n\n const unitFormat = labelOptions.dateFormats[options.baseUnit];\n labelOptions.format = labelOptions.format || unitFormat;\n\n const text = this.axisLabelText(date, labelOptions, labelContext);\n return new AxisLabel(date, text, index, null, labelOptions);\n }\n\n translateRange(delta) {\n const options = this.options;\n const lineBox = this.lineBox();\n const { vertical, reverse } = options;\n const size = vertical ? lineBox.height() : lineBox.width();\n const range = this.range();\n const scale = size / dateDiff(range.max, range.min);\n\n let offset = round(delta / scale, DEFAULT_PRECISION);\n if ((vertical || reverse) && !(vertical && reverse )) {\n offset = -offset;\n }\n\n let from = addTicks(options.min, offset);\n let to = addTicks(options.max, offset);\n\n return {\n min: from,\n max: to,\n offset: offset\n };\n }\n\n shouldRenderNote(value) {\n const range = this.range();\n\n return dateComparer(value, range.min) >= 0 && dateComparer(value, range.max) <= 0;\n }\n\n pan(delta) {\n const range = this.translateRange(delta, true);\n const limittedRange = this.limitRange(toTime(range.min), toTime(range.max), this.totalMin, this.totalMax, range.offset);\n\n if (limittedRange) {\n return {\n min: toDate(limittedRange.min),\n max: toDate(limittedRange.max)\n };\n }\n }\n\n pointsRange(start, end) {\n const startValue = this.getValue(start);\n const endValue = this.getValue(end);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n\n return {\n min: toDate(min),\n max: toDate(max)\n };\n }\n\n scaleRange(scale, cursor) {\n const position = Math.abs(this.pointOffset(cursor));\n const range = this.options.max - this.options.min;\n const delta = this.scaleToDelta(scale, range);\n const minDelta = position * delta;\n const maxDelta = (1 - position) * delta;\n const min = toDate(toTime(this.options.min) + minDelta);\n let max = toDate(toTime(this.options.max) - maxDelta);\n\n if (max - min < MIN_VALUE_RANGE) {\n max = toDate(toTime(min) + MIN_VALUE_RANGE);\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n zoomRange(scale, cursor) {\n const range = this.scaleRange(scale, cursor);\n const min = toDate(limitValue(toTime(range.min), this.totalMin, this.totalMax));\n const max = toDate(limitValue(toTime(range.max), this.totalMin, this.totalMax));\n\n return {\n min,\n max\n };\n }\n}\n\nfunction timeUnits(delta) {\n let unit = HOURS;\n\n if (delta >= TIME_PER_YEAR) {\n unit = YEARS;\n } else if (delta >= TIME_PER_MONTH) {\n unit = MONTHS;\n } else if (delta >= TIME_PER_WEEK) {\n unit = WEEKS;\n } else if (delta >= TIME_PER_DAY) {\n unit = DAYS;\n }\n\n return unit;\n}\n\nfunction applyDefaults(seriesMin, seriesMax, options) {\n const min = options.min || seriesMin;\n const max = options.max || seriesMax;\n const baseUnit = options.baseUnit || (max && min ? timeUnits(absoluteDateDiff(max, min)) : HOURS);\n const baseUnitTime = TIME_PER_UNIT[baseUnit];\n const weekStartDay = options.weekStartDay || 0;\n const autoMin = floorDate(toTime(min) - 1, baseUnit, weekStartDay) || toDate(max);\n const autoMax = ceilDate(toTime(max) + 1, baseUnit, weekStartDay);\n const userMajorUnit = options.majorUnit ? options.majorUnit : undefined;\n const majorUnit = userMajorUnit || ceil(\n autoMajorUnit(autoMin.getTime(), autoMax.getTime()),\n baseUnitTime\n ) / baseUnitTime;\n const actualUnits = duration(autoMin, autoMax, baseUnit);\n const totalUnits = ceil(actualUnits, majorUnit);\n const unitsToAdd = totalUnits - actualUnits;\n const head = Math.floor(unitsToAdd / 2);\n const tail = unitsToAdd - head;\n\n if (!options.baseUnit) {\n delete options.baseUnit;\n }\n\n options.baseUnit = options.baseUnit || baseUnit;\n options.min = options.min || addDuration(autoMin, -head, baseUnit, weekStartDay);\n options.max = options.max || addDuration(autoMax, tail, baseUnit, weekStartDay);\n options.minorUnit = options.minorUnit || majorUnit / 5;\n options.majorUnit = majorUnit;\n\n return options;\n}\n\nsetDefaultOptions(DateValueAxis, {\n type: DATE,\n majorGridLines: {\n visible: true,\n width: 1,\n color: BLACK\n },\n labels: {\n dateFormats: DateLabelFormats\n }\n});\n\nexport default DateValueAxis;\n","import ChartElement from './chart-element';\nimport Box from './box';\n\nimport { X, Y, WIDTH, HEIGHT, RIGHT, BOTTOM, CENTER } from '../common/constants';\nimport { round, setDefaultOptions } from '../common';\n\nclass FloatElement extends ChartElement {\n constructor(options) {\n super(options);\n this._initDirection();\n }\n\n _initDirection() {\n const options = this.options;\n if (options.vertical) {\n this.groupAxis = X;\n this.elementAxis = Y;\n this.groupSizeField = WIDTH;\n this.elementSizeField = HEIGHT;\n this.groupSpacing = options.spacing;\n this.elementSpacing = options.vSpacing;\n } else {\n this.groupAxis = Y;\n this.elementAxis = X;\n this.groupSizeField = HEIGHT;\n this.elementSizeField = WIDTH;\n this.groupSpacing = options.vSpacing;\n this.elementSpacing = options.spacing;\n }\n }\n\n reflow(targetBox) {\n this.box = targetBox.clone();\n this.reflowChildren();\n }\n\n reflowChildren() {\n const { box, elementAxis, groupAxis, elementSizeField, groupSizeField } = this;\n const { groups, groupsSize, maxGroupElementsSize } = this.groupOptions();\n const groupsCount = groups.length;\n const groupsStart = box[groupAxis + 1] + this.alignStart(groupsSize, box[groupSizeField]());\n\n if (groupsCount) {\n let groupStart = groupsStart;\n\n for (let groupIdx = 0; groupIdx < groupsCount; groupIdx++) {\n let group = groups[groupIdx];\n let groupElements = group.groupElements;\n let elementStart = box[elementAxis + 1];\n let groupElementsCount = groupElements.length;\n\n for (let idx = 0; idx < groupElementsCount; idx++) {\n let element = groupElements[idx];\n let elementSize = this.elementSize(element);\n let groupElementStart = groupStart + this.alignStart(elementSize[groupSizeField], group.groupSize);\n\n let elementBox = new Box();\n elementBox[groupAxis + 1] = groupElementStart;\n elementBox[groupAxis + 2] = groupElementStart + elementSize[groupSizeField];\n elementBox[elementAxis + 1] = elementStart;\n elementBox[elementAxis + 2] = elementStart + elementSize[elementSizeField];\n\n element.reflow(elementBox);\n\n elementStart += elementSize[elementSizeField] + this.elementSpacing;\n }\n groupStart += group.groupSize + this.groupSpacing;\n }\n box[groupAxis + 1] = groupsStart;\n box[groupAxis + 2] = groupsStart + groupsSize;\n box[elementAxis + 2] = box[elementAxis + 1] + maxGroupElementsSize;\n }\n }\n\n alignStart(size, maxSize) {\n let start = 0;\n const align = this.options.align;\n if (align === RIGHT || align === BOTTOM) {\n start = maxSize - size;\n } else if (align === CENTER) {\n start = (maxSize - size) / 2;\n }\n return start;\n }\n\n groupOptions() {\n const { box, children, elementSizeField, groupSizeField, elementSpacing, groupSpacing } = this;\n const maxSize = round(box[elementSizeField]());\n const childrenCount = children.length;\n const groups = [];\n\n let groupSize = 0;\n let groupElementsSize = 0;\n let groupsSize = 0;\n let maxGroupElementsSize = 0;\n let groupElements = [];\n\n for (let idx = 0; idx < childrenCount; idx++) {\n let element = children[idx];\n if (!element.box) {\n element.reflow(box);\n }\n\n let elementSize = this.elementSize(element);\n if (this.options.wrap && round(groupElementsSize + elementSpacing + elementSize[elementSizeField]) > maxSize) {\n groups.push({\n groupElements: groupElements,\n groupSize: groupSize,\n groupElementsSize: groupElementsSize\n });\n maxGroupElementsSize = Math.max(maxGroupElementsSize, groupElementsSize);\n groupsSize += groupSpacing + groupSize;\n groupSize = 0;\n groupElementsSize = 0;\n groupElements = [];\n }\n groupSize = Math.max(groupSize, elementSize[groupSizeField]);\n if (groupElementsSize > 0) {\n groupElementsSize += elementSpacing;\n }\n groupElementsSize += elementSize[elementSizeField];\n groupElements.push(element);\n }\n\n groups.push({\n groupElements: groupElements,\n groupSize: groupSize,\n groupElementsSize: groupElementsSize\n });\n maxGroupElementsSize = Math.max(maxGroupElementsSize, groupElementsSize);\n groupsSize += groupSize;\n\n return {\n groups: groups,\n groupsSize: groupsSize,\n maxGroupElementsSize: maxGroupElementsSize\n };\n }\n\n elementSize(element) {\n return {\n width: element.box.width(),\n height: element.box.height()\n };\n }\n\n createVisual() {}\n}\n\nsetDefaultOptions(FloatElement, {\n vertical: true,\n wrap: true,\n vSpacing: 0,\n spacing: 0\n});\n\nexport default FloatElement;","import { WHITE } from '../common/constants';\n\nconst LINEAR = \"linear\";\nconst RADIAL = \"radial\";\n\nconst GRADIENTS = {\n glass: {\n type: LINEAR,\n rotation: 0,\n stops: [ {\n offset: 0,\n color: WHITE,\n opacity: 0\n }, {\n offset: 0.25,\n color: WHITE,\n opacity: 0.3\n }, {\n offset: 1,\n color: WHITE,\n opacity: 0\n } ]\n },\n sharpBevel: {\n type: RADIAL,\n stops: [ {\n offset: 0,\n color: WHITE,\n opacity: 0.55\n }, {\n offset: 0.65,\n color: WHITE,\n opacity: 0\n }, {\n offset: 0.95,\n color: WHITE,\n opacity: 0.25\n } ]\n },\n roundedBevel: {\n type: RADIAL,\n stops: [ {\n offset: 0.33,\n color: WHITE,\n opacity: 0.06\n }, {\n offset: 0.83,\n color: WHITE,\n opacity: 0.2\n }, {\n offset: 0.95,\n color: WHITE,\n opacity: 0\n } ]\n },\n roundedGlass: {\n type: RADIAL,\n supportVML: false,\n stops: [ {\n offset: 0,\n color: WHITE,\n opacity: 0\n }, {\n offset: 0.5,\n color: WHITE,\n opacity: 0.3\n }, {\n offset: 0.99,\n color: WHITE,\n opacity: 0\n } ]\n },\n sharpGlass: {\n type: RADIAL,\n supportVML: false,\n stops: [ {\n offset: 0,\n color: WHITE,\n opacity: 0.2\n }, {\n offset: 0.15,\n color: WHITE,\n opacity: 0.15\n }, {\n offset: 0.17,\n color: WHITE,\n opacity: 0.35\n }, {\n offset: 0.85,\n color: WHITE,\n opacity: 0.05\n }, {\n offset: 0.87,\n color: WHITE,\n opacity: 0.15\n }, {\n offset: 0.99,\n color: WHITE,\n opacity: 0\n } ]\n },\n bubbleShadow: {\n type: RADIAL,\n center: [ 0.5, 0.5 ],\n radius: 0.5\n }\n};\n\nexport default GRADIENTS;","\nimport Axis from './axis';\nimport AxisLabel from './axis-label';\nimport Box from './box';\n\nimport createAxisTick from './utils/create-axis-tick';\nimport createAxisGridLine from './utils/create-axis-grid-line';\nimport limitCoordinate from './utils/limit-coordinate';\n\nimport { DEFAULT_PRECISION, BLACK } from '../common/constants';\nimport { deepExtend, defined, inArray, limitValue, round, setDefaultOptions, valueOrDefault } from '../common';\n\nconst DEFAULT_MAJOR_UNIT = 10;\nconst MIN_VALUE_RANGE = 1e-6;\n\nclass LogarithmicAxis extends Axis {\n constructor(seriesMin, seriesMax, options, chartService) {\n\n const axisOptions = deepExtend({ majorUnit: DEFAULT_MAJOR_UNIT, min: seriesMin, max: seriesMax }, options);\n const base = axisOptions.majorUnit;\n const autoMax = autoAxisMax(seriesMax, base);\n const autoMin = autoAxisMin(seriesMin, seriesMax, axisOptions);\n const range = initRange(autoMin, autoMax, axisOptions, options);\n\n axisOptions.max = range.max;\n axisOptions.min = range.min;\n axisOptions.minorUnit = options.minorUnit || round(base - 1, DEFAULT_PRECISION);\n\n super(axisOptions, chartService);\n\n this.totalMin = defined(options.min) ? Math.min(autoMin, options.min) : autoMin;\n this.totalMax = defined(options.max) ? Math.max(autoMax, options.max) : autoMax;\n this.logMin = round(log(range.min, base), DEFAULT_PRECISION);\n this.logMax = round(log(range.max, base), DEFAULT_PRECISION);\n this.seriesMin = seriesMin;\n this.seriesMax = seriesMax;\n\n this.createLabels();\n }\n\n clone() {\n return new LogarithmicAxis(\n this.seriesMin,\n this.seriesMax,\n Object.assign({}, this.options),\n this.chartService\n );\n }\n\n startValue() {\n return this.options.min;\n }\n\n getSlot(a, b, limit) {\n const { options, logMin, logMax } = this;\n const { majorUnit: base, min, max } = options;\n const { axis, axisDir, lineBox, lineSize, lineStart } = this.lineInfo();\n const step = axisDir * (lineSize / (logMax - logMin));\n let start = valueOrDefault(a, b || 1);\n let end = valueOrDefault(b, a || 1);\n\n if (start <= 0 || end <= 0) {\n return null;\n }\n\n if (limit) {\n start = limitValue(start, min, max);\n end = limitValue(end, min, max);\n }\n\n start = log(start, base);\n end = log(end, base);\n\n const p1 = Math.min(start, end) - logMin;\n const p2 = Math.max(start, end) - logMin;\n\n const slotBox = new Box(lineBox.x1, lineBox.y1, lineBox.x1, lineBox.y1);\n slotBox[axis + 1] = limitCoordinate(lineStart + step * (axisDir > 0 ? p1 : p2));\n slotBox[axis + 2] = limitCoordinate(lineStart + step * (axisDir > 0 ? p2 : p1));\n\n return slotBox;\n }\n\n getValue(point) {\n const { options, logMin, logMax } = this;\n const { majorUnit: base } = options;\n const { axis, axisDir, lineStart, lineSize } = this.lineInfo();\n const step = ((logMax - logMin) / lineSize);\n const offset = axisDir * (point[axis] - lineStart);\n const valueOffset = offset * step;\n\n if (offset < 0 || offset > lineSize) {\n return null;\n }\n\n const value = logMin + valueOffset;\n\n return round(Math.pow(base, value), DEFAULT_PRECISION);\n }\n\n range() {\n const options = this.options;\n return { min: options.min, max: options.max };\n }\n\n translateRange(delta) {\n const { options, logMin, logMax } = this;\n const { reverse, vertical, majorUnit: base } = options;\n const lineBox = this.lineBox();\n const size = vertical ? lineBox.height() : lineBox.width();\n const scale = size / (logMax - logMin);\n let offset = round(delta / scale, DEFAULT_PRECISION);\n\n if ((vertical || reverse) && !(vertical && reverse )) {\n offset = -offset;\n }\n\n return {\n min: Math.pow(base, logMin + offset),\n max: Math.pow(base, logMax + offset),\n offset: offset\n };\n }\n\n labelsCount() {\n const floorMax = Math.floor(this.logMax);\n const count = Math.floor(floorMax - this.logMin) + 1;\n\n return count;\n }\n\n getMajorTickPositions() {\n const ticks = [];\n\n this.traverseMajorTicksPositions((position) => {\n ticks.push(position);\n }, { step: 1, skip: 0 });\n\n return ticks;\n }\n\n createTicks(lineGroup) {\n const options = this.options;\n const { majorTicks, minorTicks, vertical } = options;\n const mirror = options.labels.mirror;\n const lineBox = this.lineBox();\n const ticks = [];\n const tickLineOptions = {\n // TODO\n // _alignLines: options._alignLines,\n vertical: vertical\n };\n\n function render(tickPosition, tickOptions) {\n tickLineOptions.tickX = mirror ? lineBox.x2 : lineBox.x2 - tickOptions.size;\n tickLineOptions.tickY = mirror ? lineBox.y1 - tickOptions.size : lineBox.y1;\n tickLineOptions.position = tickPosition;\n\n lineGroup.append(createAxisTick(tickLineOptions, tickOptions));\n }\n\n if (majorTicks.visible) {\n this.traverseMajorTicksPositions(render, majorTicks);\n }\n\n if (minorTicks.visible) {\n this.traverseMinorTicksPositions(render, minorTicks);\n }\n\n return ticks;\n }\n\n createGridLines(altAxis) {\n const options = this.options;\n const { minorGridLines, majorGridLines, vertical } = options;\n const lineBox = altAxis.lineBox();\n const lineOptions = {\n lineStart: lineBox[vertical ? \"x1\" : \"y1\"],\n lineEnd: lineBox[vertical ? \"x2\" : \"y2\"],\n vertical: vertical\n };\n const majorTicks = [];\n\n const container = this.gridLinesVisual();\n function render(tickPosition, gridLine) {\n if (!inArray(tickPosition, majorTicks)) {\n lineOptions.position = tickPosition;\n container.append(createAxisGridLine(lineOptions, gridLine));\n\n majorTicks.push(tickPosition);\n }\n }\n\n if (majorGridLines.visible) {\n this.traverseMajorTicksPositions(render, majorGridLines);\n }\n\n if (minorGridLines.visible) {\n this.traverseMinorTicksPositions(render, minorGridLines);\n }\n\n return container.children;\n }\n\n traverseMajorTicksPositions(callback, tickOptions) {\n const { lineStart, step } = this.lineInfo();\n const { logMin, logMax } = this;\n\n for (let power = Math.ceil(logMin) + tickOptions.skip; power <= logMax; power += tickOptions.step) {\n let position = round(lineStart + step * (power - logMin), DEFAULT_PRECISION);\n callback(position, tickOptions);\n }\n }\n\n traverseMinorTicksPositions(callback, tickOptions) {\n const { min, max, minorUnit, majorUnit: base } = this.options;\n const { lineStart, step } = this.lineInfo();\n const { logMin, logMax } = this;\n const start = Math.floor(logMin);\n\n for (let power = start; power < logMax; power++) {\n const minorOptions = this._minorIntervalOptions(power);\n for (let idx = tickOptions.skip; idx < minorUnit; idx += tickOptions.step) {\n const value = minorOptions.value + idx * minorOptions.minorStep;\n if (value > max) {\n break;\n }\n if (value >= min) {\n const position = round(lineStart + step * (log(value, base) - logMin), DEFAULT_PRECISION);\n callback(position, tickOptions);\n }\n }\n }\n }\n\n createAxisLabel(index, labelOptions, labelContext) {\n const power = Math.ceil(this.logMin + index);\n const value = Math.pow(this.options.majorUnit, power);\n const text = this.axisLabelText(value, labelOptions, labelContext);\n\n return new AxisLabel(value, text, index, null, labelOptions);\n }\n\n shouldRenderNote(value) {\n const range = this.range();\n return range.min <= value && value <= range.max;\n }\n\n pan(delta) {\n const range = this.translateRange(delta);\n return this.limitRange(range.min, range.max, this.totalMin, this.totalMax, range.offset);\n }\n\n pointsRange(start, end) {\n const startValue = this.getValue(start);\n const endValue = this.getValue(end);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n\n return {\n min: min,\n max: max\n };\n }\n\n scaleRange(scale, cursor) {\n const { majorUnit: base } = this.options;\n const logMin = log(this.options.min, base);\n const logMax = log(this.options.max, base);\n const position = Math.abs(this.pointOffset(cursor));\n const range = logMax - logMin;\n const delta = this.scaleToDelta(scale, range);\n const min = Math.pow(base, logMin + position * delta);\n let max = Math.pow(base, logMax - (1 - position) * delta);\n\n if (max - min < MIN_VALUE_RANGE) {\n max = min + MIN_VALUE_RANGE;\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n zoomRange(scale, cursor) {\n const range = this.scaleRange(scale, cursor);\n const { totalMin, totalMax } = this;\n\n return {\n min: limitValue(range.min, totalMin, totalMax),\n max: limitValue(range.max, totalMin, totalMax)\n };\n }\n\n _minorIntervalOptions(power) {\n const { minorUnit, majorUnit: base } = this.options;\n const value = Math.pow(base, power);\n const nextValue = Math.pow(base, power + 1);\n const difference = nextValue - value;\n const minorStep = difference / minorUnit;\n\n return {\n value: value,\n minorStep: minorStep\n };\n }\n\n lineInfo() {\n const info = super.lineInfo();\n info.step = info.axisDir * (info.lineSize / (this.logMax - this.logMin));\n\n return info;\n }\n}\n\nfunction initRange(autoMin, autoMax, axisOptions, options) {\n let { min, max } = axisOptions;\n\n if (defined(axisOptions.axisCrossingValue) && axisOptions.axisCrossingValue <= 0) {\n throwNegativeValuesError();\n }\n\n if (!defined(options.max)) {\n max = autoMax;\n } else if (options.max <= 0) {\n throwNegativeValuesError();\n }\n\n if (!defined(options.min)) {\n min = autoMin;\n } else if (options.min <= 0) {\n throwNegativeValuesError();\n }\n\n return {\n min: min,\n max: max\n };\n}\n\nfunction autoAxisMin(min, max, options) {\n const base = options.majorUnit;\n let autoMin = min;\n if (min <= 0) {\n autoMin = max <= 1 ? Math.pow(base, -2) : 1;\n } else if (!options.narrowRange) {\n autoMin = Math.pow(base, Math.floor(log(min, base)));\n }\n return autoMin;\n}\n\nfunction autoAxisMax(max, base) {\n const logMaxRemainder = round(log(max, base), DEFAULT_PRECISION) % 1;\n let autoMax;\n if (max <= 0) {\n autoMax = base;\n } else if (logMaxRemainder !== 0 && (logMaxRemainder < 0.3 || logMaxRemainder > 0.9)) {\n autoMax = Math.pow(base, log(max, base) + 0.2);\n } else {\n autoMax = Math.pow(base, Math.ceil(log(max, base)));\n }\n\n return autoMax;\n}\n\nfunction throwNegativeValuesError() {\n throw new Error(\"Non positive values cannot be used for a logarithmic axis\");\n}\n\nfunction log(x, base) {\n return Math.log(x) / Math.log(base);\n}\n\nsetDefaultOptions(LogarithmicAxis, {\n type: \"log\",\n majorUnit: DEFAULT_MAJOR_UNIT,\n minorUnit: 1,\n axisCrossingValue: 1,\n vertical: true,\n majorGridLines: {\n visible: true,\n width: 1,\n color: BLACK\n },\n zIndex: 1,\n _deferLabels: true\n});\n\nexport default LogarithmicAxis;\n","import { geometry as geom, drawing as draw } from '@progress/kendo-drawing';\n\nimport { append, map } from '../../common';\n\nconst GridLinesMixin = {\n createGridLines: function(altAxis) {\n const options = this.options;\n const radius = Math.abs(this.box.center().y - altAxis.lineBox().y1);\n let gridLines = [];\n let skipMajor = false;\n let majorAngles, minorAngles;\n\n if (options.majorGridLines.visible) {\n majorAngles = this.majorGridLineAngles(altAxis);\n skipMajor = true;\n\n gridLines = this.renderMajorGridLines(\n majorAngles, radius, options.majorGridLines\n );\n }\n\n if (options.minorGridLines.visible) {\n minorAngles = this.minorGridLineAngles(altAxis, skipMajor);\n\n append(gridLines, this.renderMinorGridLines(\n minorAngles, radius, options.minorGridLines, altAxis, skipMajor\n ));\n }\n\n return gridLines;\n },\n\n renderMajorGridLines: function(angles, radius, options) {\n return this.renderGridLines(angles, radius, options);\n },\n\n renderMinorGridLines: function(angles, radius, options, altAxis, skipMajor) {\n const radiusCallback = this.radiusCallback && this.radiusCallback(radius, altAxis, skipMajor);\n return this.renderGridLines(angles, radius, options, radiusCallback);\n },\n\n renderGridLines: function(angles, radius, options, radiusCallback) {\n const style = {\n stroke: {\n width: options.width,\n color: options.color,\n dashType: options.dashType\n }\n };\n\n const center = this.box.center();\n const circle = new geom.Circle([ center.x, center.y ], radius);\n const container = this.gridLinesVisual();\n\n for (let i = 0; i < angles.length; i++) {\n const line = new draw.Path(style);\n if (radiusCallback) {\n circle.radius = radiusCallback(angles[i]);\n }\n\n line.moveTo(circle.center)\n .lineTo(circle.pointAt(angles[i] + 180));\n\n container.append(line);\n }\n\n return container.children;\n },\n\n gridLineAngles: function(altAxis, size, skip, step, skipAngles) {\n const divs = this.intervals(size, skip, step, skipAngles);\n const options = altAxis.options;\n const altAxisVisible = options.visible && (options.line || {}).visible !== false;\n\n return map(divs, (d) => {\n const alpha = this.intervalAngle(d);\n\n if (!altAxisVisible || alpha !== 90) {\n return alpha;\n }\n });\n }\n};\n\nexport default GridLinesMixin;","import { geometry as geom, drawing as draw } from '@progress/kendo-drawing';\n\nimport ShapeBuilder from '../shape-builder';\nimport Ring from '../ring';\nimport Point from '../point';\n\nimport { ARC } from '../../common/constants';\nimport { append, deg, rad } from '../../common';\n\nconst RadarNumericAxisMixin = {\n options: {\n majorGridLines: {\n visible: true\n }\n },\n\n createPlotBands: function() {\n const { majorGridLines: { type }, plotBands = [] } = this.options;\n const altAxis = this.plotArea.polarAxis;\n const majorAngles = altAxis.majorAngles();\n const center = altAxis.box.center();\n const group = this._plotbandGroup = new draw.Group({\n zIndex: -1\n });\n\n for (let i = 0; i < plotBands.length; i++) {\n const band = plotBands[i];\n const bandStyle = {\n fill: {\n color: band.color,\n opacity: band.opacity\n },\n stroke: {\n opacity: band.opacity\n }\n };\n\n const slot = this.getSlot(band.from, band.to, true);\n const ring = new Ring(center, center.y - slot.y2, center.y - slot.y1, 0, 360);\n\n let shape;\n if (type === ARC) {\n shape = ShapeBuilder.current.createRing(ring, bandStyle);\n } else {\n shape = draw.Path.fromPoints(this.plotBandPoints(ring, majorAngles), bandStyle).close();\n }\n\n group.append(shape);\n }\n\n this.appendVisual(group);\n },\n\n plotBandPoints: function(ring, angles) {\n const innerPoints = [];\n const outerPoints = [];\n const center = [ ring.center.x, ring.center.y ];\n const innerCircle = new geom.Circle(center, ring.innerRadius);\n const outerCircle = new geom.Circle(center, ring.radius);\n\n for (let i = 0; i < angles.length; i++) {\n innerPoints.push(innerCircle.pointAt(angles[i] + 180));\n outerPoints.push(outerCircle.pointAt(angles[i] + 180));\n }\n\n innerPoints.reverse();\n innerPoints.push(innerPoints[0]);\n outerPoints.push(outerPoints[0]);\n\n return outerPoints.concat(innerPoints);\n },\n\n createGridLines: function(altAxis) {\n const options = this.options;\n const majorTicks = this.radarMajorGridLinePositions();\n const majorAngles = altAxis.majorAngles();\n const center = altAxis.box.center();\n let gridLines = [];\n\n if (options.majorGridLines.visible) {\n gridLines = this.renderGridLines(\n center, majorTicks, majorAngles, options.majorGridLines\n );\n }\n\n if (options.minorGridLines.visible) {\n const minorTicks = this.radarMinorGridLinePositions();\n append(gridLines, this.renderGridLines(\n center, minorTicks, majorAngles, options.minorGridLines\n ));\n }\n\n return gridLines;\n },\n\n renderGridLines: function(center, ticks, angles, options) {\n const style = {\n stroke: {\n width: options.width,\n color: options.color,\n dashType: options.dashType\n }\n };\n const { skip = 0, step = 0 } = options;\n const container = this.gridLinesVisual();\n\n for (let tickIx = skip; tickIx < ticks.length; tickIx += step) {\n const tickRadius = center.y - ticks[tickIx];\n if (tickRadius > 0) {\n const circle = new geom.Circle([ center.x, center.y ], tickRadius);\n if (options.type === ARC) {\n container.append(new draw.Circle(circle, style));\n } else {\n const line = new draw.Path(style);\n for (let angleIx = 0; angleIx < angles.length; angleIx++) {\n line.lineTo(circle.pointAt(angles[angleIx] + 180));\n }\n\n line.close();\n container.append(line);\n }\n }\n }\n\n return container.children;\n },\n\n getValue: function(point) {\n const lineBox = this.lineBox();\n const altAxis = this.plotArea.polarAxis;\n const majorAngles = altAxis.majorAngles();\n const center = altAxis.box.center();\n const radius = point.distanceTo(center);\n let distance = radius;\n\n if (this.options.majorGridLines.type !== ARC && majorAngles.length > 1) {\n const dx = point.x - center.x;\n const dy = point.y - center.y;\n const theta = (deg(Math.atan2(dy, dx)) + 540) % 360;\n\n majorAngles.sort(function(a, b) {\n return angularDistance(a, theta) - angularDistance(b, theta);\n });\n\n // Solve triangle (center, point, axis X) using one side (radius) and two angles.\n // Angles are derived from triangle (center, point, gridline X)\n const midAngle = angularDistance(majorAngles[0], majorAngles[1]) / 2;\n const alpha = angularDistance(theta, majorAngles[0]);\n const gamma = 90 - midAngle;\n const beta = 180 - alpha - gamma;\n\n distance = radius * (Math.sin(rad(beta)) / Math.sin(rad(gamma)));\n }\n\n return this.axisType().prototype.getValue.call(\n this, new Point(lineBox.x1, lineBox.y2 - distance)\n );\n }\n};\n\nfunction angularDistance(a, b) {\n return 180 - Math.abs(Math.abs(a - b) - 180);\n}\n\nexport default RadarNumericAxisMixin;","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport BoxElement from './box-element';\nimport TextBox from './text-box';\nimport ShapeElement from './shape-element';\nimport Box from './box';\n\nimport { CIRCLE, TOP, BOTTOM, LEFT, RIGHT, CENTER, INSIDE, OUTSIDE, NOTE_CLICK, NOTE_HOVER, NOTE_LEAVE } from '../common/constants';\nimport { alignPathToPixel, defined, deepExtend, eventElement, getTemplate, inArray, setDefaultOptions } from '../common';\n\nconst DEFAULT_ICON_SIZE = 7;\nconst DEFAULT_LABEL_COLOR = \"#fff\";\n\nclass Note extends BoxElement {\n constructor(fields, options, chartService) {\n super(options);\n\n this.fields = fields;\n this.chartService = chartService;\n\n this.render();\n }\n\n hide() {\n this.options.visible = false;\n }\n\n show() {\n this.options.visible = true;\n }\n\n render() {\n const options = this.options;\n\n if (options.visible) {\n const { label, icon } = options;\n const box = new Box();\n const childAlias = () => this;\n let size = icon.size;\n let text = this.fields.text;\n let width, height;\n\n if (defined(label) && label.visible) {\n const noteTemplate = getTemplate(label);\n if (noteTemplate) {\n text = noteTemplate(this.fields);\n } else if (label.format) {\n text = this.chartService.format.auto(label.format, text);\n }\n\n if (!label.color) {\n label.color = label.position === INSIDE ? DEFAULT_LABEL_COLOR : icon.background;\n }\n\n this.label = new TextBox(text, deepExtend({}, label));\n this.label.aliasFor = childAlias;\n\n if (label.position === INSIDE && !defined(size)) {\n if (icon.type === CIRCLE) {\n size = Math.max(this.label.box.width(), this.label.box.height());\n } else {\n width = this.label.box.width();\n height = this.label.box.height();\n }\n box.wrap(this.label.box);\n }\n }\n\n icon.width = width || size || DEFAULT_ICON_SIZE;\n icon.height = height || size || DEFAULT_ICON_SIZE;\n\n const marker = new ShapeElement(deepExtend({}, icon));\n marker.aliasFor = childAlias;\n\n this.marker = marker;\n this.append(marker);\n\n if (this.label) {\n this.append(this.label);\n }\n\n marker.reflow(new Box());\n this.wrapperBox = box.wrap(marker.box);\n }\n }\n\n reflow(targetBox) {\n const { options, label, marker, wrapperBox } = this;\n const center = targetBox.center();\n const length = options.line.length;\n const position = options.position;\n\n // TODO: Review\n if (options.visible) {\n let lineStart, box, contentBox;\n\n if (inArray(position, [ LEFT, RIGHT ])) {\n if (position === LEFT) {\n contentBox = wrapperBox.alignTo(targetBox, position).translate(-length, targetBox.center().y - wrapperBox.center().y);\n\n if (options.line.visible) {\n lineStart = [ targetBox.x1, center.y ];\n this.linePoints = [\n lineStart,\n [ contentBox.x2, center.y ]\n ];\n box = contentBox.clone().wrapPoint(lineStart);\n }\n } else {\n contentBox = wrapperBox.alignTo(targetBox, position).translate(length, targetBox.center().y - wrapperBox.center().y);\n\n if (options.line.visible) {\n lineStart = [ targetBox.x2, center.y ];\n this.linePoints = [\n lineStart,\n [ contentBox.x1, center.y ]\n ];\n box = contentBox.clone().wrapPoint(lineStart);\n }\n }\n } else {\n if (position === BOTTOM) {\n contentBox = wrapperBox.alignTo(targetBox, position).translate(targetBox.center().x - wrapperBox.center().x, length);\n\n if (options.line.visible) {\n lineStart = [ center.x, targetBox.y2 ];\n this.linePoints = [\n lineStart,\n [ center.x, contentBox.y1 ]\n ];\n box = contentBox.clone().wrapPoint(lineStart);\n }\n } else {\n contentBox = wrapperBox.alignTo(targetBox, position).translate(targetBox.center().x - wrapperBox.center().x, -length);\n\n if (options.line.visible) {\n lineStart = [ center.x, targetBox.y1 ];\n this.linePoints = [\n lineStart,\n [ center.x, contentBox.y2 ]\n ];\n box = contentBox.clone().wrapPoint(lineStart);\n }\n }\n }\n\n if (marker) {\n marker.reflow(contentBox);\n }\n\n if (label) {\n label.reflow(contentBox);\n if (marker) {\n if (options.label.position === OUTSIDE) {\n label.box.alignTo(marker.box, position);\n }\n label.reflow(label.box);\n }\n }\n\n this.contentBox = contentBox;\n this.targetBox = targetBox;\n this.box = box || contentBox;\n }\n }\n\n createVisual() {\n super.createVisual();\n this.visual.options.noclip = this.options.noclip;\n\n if (this.options.visible) {\n this.createLine();\n }\n }\n\n renderVisual() {\n const options = this.options;\n const customVisual = options.visual;\n if (options.visible && customVisual) {\n this.visual = customVisual(Object.assign(this.fields, {\n sender: this.getSender(),\n rect: this.targetBox.toRect(),\n options: {\n background: options.background,\n border: options.background,\n icon: options.icon,\n label: options.label,\n line: options.line,\n position: options.position,\n visible: options.visible\n },\n createVisual: () => {\n this.createVisual();\n this.renderChildren();\n const defaultVisual = this.visual;\n delete this.visual;\n return defaultVisual;\n }\n }));\n this.addVisual();\n } else {\n super.renderVisual();\n }\n }\n\n createLine() {\n const options = this.options.line;\n\n if (this.linePoints) {\n const path = draw.Path.fromPoints(this.linePoints, {\n stroke: {\n color: options.color,\n width: options.width,\n dashType: options.dashType\n }\n });\n\n alignPathToPixel(path);\n this.visual.append(path);\n }\n }\n\n click(widget, e) {\n const args = this.eventArgs(e);\n\n if (!widget.trigger(NOTE_CLICK, args)) {\n e.preventDefault();\n }\n }\n\n over(widget, e) {\n const args = this.eventArgs(e);\n\n if (!widget.trigger(NOTE_HOVER, args)) {\n e.preventDefault();\n }\n }\n\n out(widget, e) {\n const args = this.eventArgs(e);\n\n widget.trigger(NOTE_LEAVE, args);\n }\n\n eventArgs(e) {\n const options = this.options;\n\n return Object.assign(this.fields, {\n element: eventElement(e),\n text: defined(options.label) ? options.label.text : \"\",\n visual: this.visual\n });\n }\n}\n\nsetDefaultOptions(Note, {\n icon: {\n visible: true,\n type: CIRCLE\n },\n label: {\n position: INSIDE,\n visible: true,\n align: CENTER,\n vAlign: CENTER\n },\n line: {\n visible: true\n },\n visible: true,\n position: TOP,\n zIndex: 2\n});\n\nexport default Note;","\nimport Axis from './axis';\nimport AxisLabel from './axis-label';\nimport Box from './box';\n\nimport { BLACK, DEFAULT_PRECISION, COORD_PRECISION } from '../common/constants';\nimport { deepExtend, defined, limitValue, round, setDefaultOptions, valueOrDefault } from '../common';\n\nimport autoMajorUnit from './utils/auto-major-unit';\nimport autoAxisMin from './utils/auto-axis-min';\nimport autoAxisMax from './utils/auto-axis-max';\nimport floor from './utils/floor';\nimport ceil from './utils/ceil';\nimport limitCoordinate from './utils/limit-coordinate';\n\nconst MIN_VALUE_RANGE = Math.pow(10, -DEFAULT_PRECISION + 1);\n\nclass NumericAxis extends Axis {\n\n constructor(seriesMin, seriesMax, options, chartService) {\n super(Object.assign({}, options, {\n seriesMin: seriesMin,\n seriesMax: seriesMax\n }), chartService);\n }\n\n initUserOptions(options) {\n const autoOptions = autoAxisOptions(options.seriesMin, options.seriesMax, options);\n this.totalOptions = totalAxisOptions(autoOptions, options);\n\n return axisOptions(autoOptions, options);\n }\n\n initFields() {\n this.totalMin = this.totalOptions.min;\n this.totalMax = this.totalOptions.max;\n this.totalMajorUnit = this.totalOptions.majorUnit;\n this.seriesMin = this.options.seriesMin;\n this.seriesMax = this.options.seriesMax;\n }\n\n clone() {\n return new NumericAxis(\n this.seriesMin,\n this.seriesMax,\n Object.assign({}, this.options),\n this.chartService\n );\n }\n\n startValue() {\n return 0;\n }\n\n range() {\n const options = this.options;\n return { min: options.min, max: options.max };\n }\n\n getDivisions(stepValue) {\n if (stepValue === 0) {\n return 1;\n }\n\n const options = this.options;\n const range = options.max - options.min;\n\n return Math.floor(round(range / stepValue, COORD_PRECISION)) + 1;\n }\n\n getTickPositions(unit, skipUnit) {\n const options = this.options;\n const { axisDir, axisOrigin, lineBox, lineSize } = this.lineInfo();\n const range = options.max - options.min;\n const scale = lineSize / range;\n const step = unit * scale;\n const divisions = this.getDivisions(unit);\n const positions = [];\n let pos = lineBox[axisOrigin];\n let skipStep = 0;\n\n if (skipUnit) {\n skipStep = skipUnit / unit;\n }\n\n for (let idx = 0; idx < divisions; idx++) {\n if (idx % skipStep !== 0) {\n positions.push(round(pos, COORD_PRECISION));\n }\n\n pos = pos + step * axisDir;\n }\n\n return positions;\n }\n\n getMajorTickPositions() {\n return this.getTickPositions(this.options.majorUnit);\n }\n\n getMinorTickPositions() {\n return this.getTickPositions(this.options.minorUnit);\n }\n\n getSlot(a, b, limit = false) {\n const options = this.options;\n const { axis, axisDir, lineBox, lineSize, lineStart } = this.lineInfo();\n const step = axisDir * (lineSize / (options.max - options.min));\n\n let start = valueOrDefault(a, b || 0);\n let end = valueOrDefault(b, a || 0);\n\n if (limit) {\n start = limitValue(start, options.min, options.max);\n end = limitValue(end, options.min, options.max);\n }\n\n const p1 = Math.min(start, end) - options.min;\n const p2 = Math.max(start, end) - options.min;\n\n const slotBox = new Box(lineBox.x1, lineBox.y1, lineBox.x1, lineBox.y1);\n slotBox[axis + 1] = limitCoordinate(lineStart + step * (axisDir > 0 ? p1 : p2));\n slotBox[axis + 2] = limitCoordinate(lineStart + step * (axisDir > 0 ? p2 : p1));\n\n return slotBox;\n }\n\n getValue(point) {\n const options = this.options;\n const max = Number(options.max);\n const min = Number(options.min);\n const offset = this.pointOffset(point);\n const valueOffset = offset * (max - min);\n\n if (offset < 0 || offset > 1) {\n return null;\n }\n\n const value = min + valueOffset;\n return round(value, DEFAULT_PRECISION);\n }\n\n translateRange(delta) {\n const options = this.options;\n const { vertical, reverse, max, min } = options;\n const { lineSize } = this.lineInfo();\n const range = max - min;\n const scale = lineSize / range;\n let offset = round(delta / scale, DEFAULT_PRECISION);\n\n if ((vertical || reverse) && !(vertical && reverse )) {\n offset = -offset;\n }\n\n return {\n min: min + offset,\n max: max + offset,\n offset: offset\n };\n }\n\n labelsCount() {\n return this.getDivisions(this.options.majorUnit);\n }\n\n createAxisLabel(index, labelOptions, labelContext) {\n const options = this.options;\n const value = round(options.min + (index * options.majorUnit), DEFAULT_PRECISION);\n const text = this.axisLabelText(value, labelOptions, labelContext);\n\n return new AxisLabel(value, text, index, null, labelOptions);\n }\n\n shouldRenderNote(value) {\n const range = this.range();\n return range.min <= value && value <= range.max;\n }\n\n pan(delta) {\n const range = this.translateRange(delta);\n return this.limitRange(range.min, range.max, this.totalMin, this.totalMax, range.offset);\n }\n\n pointsRange(start, end) {\n const startValue = this.getValue(start);\n const endValue = this.getValue(end);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n\n if (this.isValidRange(min, max)) {\n return {\n min: min,\n max: max\n };\n }\n }\n\n scaleRange(scale, cursor) {\n const position = Math.abs(this.pointOffset(cursor));\n const range = this.options.max - this.options.min;\n const delta = this.scaleToDelta(scale, range);\n const minDelta = position * delta;\n const maxDelta = (1 - position) * delta;\n const min = round(this.options.min + minDelta, DEFAULT_PRECISION);\n let max = round(this.options.max - maxDelta, DEFAULT_PRECISION);\n\n if (max - min < MIN_VALUE_RANGE) {\n max = min + MIN_VALUE_RANGE;\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n zoomRange(scale, cursor) {\n const { totalMin, totalMax } = this;\n const range = this.scaleRange(scale, cursor);\n\n return {\n min: limitValue(range.min, totalMin, totalMax),\n max: limitValue(range.max, totalMin, totalMax),\n narrowRange: false\n };\n }\n\n isValidRange(min, max) {\n return max - min > MIN_VALUE_RANGE;\n }\n}\n\nfunction autoAxisOptions(seriesMin, seriesMax, options) {\n const narrowRange = options.narrowRange;\n\n let autoMin = autoAxisMin(seriesMin, seriesMax, narrowRange);\n let autoMax = autoAxisMax(seriesMin, seriesMax, narrowRange);\n\n const majorUnit = autoMajorUnit(autoMin, autoMax);\n const autoOptions = {\n majorUnit: majorUnit\n };\n\n if (options.roundToMajorUnit !== false) {\n if (autoMin < 0 && remainderClose(autoMin, majorUnit, 1 / 3)) {\n autoMin -= majorUnit;\n }\n\n if (autoMax > 0 && remainderClose(autoMax, majorUnit, 1 / 3)) {\n autoMax += majorUnit;\n }\n }\n\n autoOptions.min = floor(autoMin, majorUnit);\n autoOptions.max = ceil(autoMax, majorUnit);\n\n return autoOptions;\n}\n\nfunction totalAxisOptions(autoOptions, options) {\n return {\n min: defined(options.min) ? Math.min(autoOptions.min, options.min) : autoOptions.min,\n max: defined(options.max) ? Math.max(autoOptions.max, options.max) : autoOptions.max,\n majorUnit: autoOptions.majorUnit\n };\n}\n\nfunction clearNullValues(options, fields) {\n for (let idx = 0; idx < fields.length; idx++) {\n const field = fields[idx];\n if (options[field] === null) {\n options[field] = undefined;\n }\n }\n}\n\nfunction axisOptions(autoOptions, userOptions) {\n let options = userOptions;\n let userSetMin, userSetMax;\n\n if (userOptions) {\n clearNullValues(userOptions, [ 'min', 'max' ]);\n\n userSetMin = defined(userOptions.min);\n userSetMax = defined(userOptions.max);\n\n const userSetLimits = userSetMin || userSetMax;\n\n if (userSetLimits) {\n if (userOptions.min === userOptions.max) {\n if (userOptions.min > 0) {\n userOptions.min = 0;\n } else {\n userOptions.max = 1;\n }\n }\n }\n\n if (userOptions.majorUnit) {\n autoOptions.min = floor(autoOptions.min, userOptions.majorUnit);\n autoOptions.max = ceil(autoOptions.max, userOptions.majorUnit);\n } else if (userSetLimits) {\n options = deepExtend(autoOptions, userOptions);\n\n // Determine an auto major unit after min/max have been set\n autoOptions.majorUnit = autoMajorUnit(options.min, options.max);\n }\n }\n\n autoOptions.minorUnit = (options.majorUnit || autoOptions.majorUnit) / 5;\n\n const result = deepExtend(autoOptions, options);\n if (result.min >= result.max) {\n if (userSetMin && !userSetMax) {\n result.max = result.min + result.majorUnit;\n } else if (!userSetMin && userSetMax) {\n result.min = result.max - result.majorUnit;\n }\n }\n\n return result;\n}\n\nfunction remainderClose(value, divisor, ratio) {\n const remainder = round(Math.abs(value % divisor), DEFAULT_PRECISION);\n const threshold = divisor * (1 - ratio);\n\n return remainder === 0 || remainder > threshold;\n}\n\nsetDefaultOptions(NumericAxis, {\n type: \"numeric\",\n min: 0,\n max: 1,\n vertical: true,\n majorGridLines: {\n visible: true,\n width: 1,\n color: BLACK\n },\n labels: {\n format: \"#.####################\"\n },\n zIndex: 1\n});\n\nexport default NumericAxis;\n","import { COORD_PRECISION } from '../common/constants';\nimport { Class, rad, round } from '../common';\n\nclass Point extends Class {\n constructor(x, y) {\n super();\n\n this.x = x || 0;\n this.y = y || 0;\n }\n\n clone() {\n return new Point(this.x, this.y);\n }\n\n equals(point) {\n return point && this.x === point.x && this.y === point.y;\n }\n\n rotate(center, degrees) {\n const theta = rad(degrees);\n const cosT = Math.cos(theta);\n const sinT = Math.sin(theta);\n const { x: cx, y: cy } = center;\n const { x, y } = this;\n\n this.x = round(\n cx + (x - cx) * cosT + (y - cy) * sinT,\n COORD_PRECISION\n );\n\n this.y = round(\n cy + (y - cy) * cosT - (x - cx) * sinT,\n COORD_PRECISION\n );\n\n return this;\n }\n\n multiply(a) {\n\n this.x *= a;\n this.y *= a;\n\n return this;\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 static onCircle(center, angle, radius) {\n const radians = rad(angle);\n\n return new Point(\n center.x - radius * Math.cos(radians),\n center.y - radius * Math.sin(radians)\n );\n }\n}\n\n\nexport default Point;","import { geometry as geom } from '@progress/kendo-drawing';\n\nimport GridLinesMixin from './mixins/grid-lines-mixin';\nimport RadarCategoryAxis from './radar-category-axis';\nimport NumericAxis from './numeric-axis';\nimport Axis from './axis';\nimport Ring from './ring';\nimport Box from './box';\n\nimport { BLACK } from '../common/constants';\nimport { deepExtend, deg, getSpacing, inArray, limitValue, setDefaultOptions } from '../common';\n\nclass PolarAxis extends Axis {\n constructor(options, chartService) {\n super(options, chartService);\n\n const instanceOptions = this.options;\n\n instanceOptions.minorUnit = instanceOptions.minorUnit || instanceOptions.majorUnit / 2;\n }\n\n getDivisions(stepValue) {\n return NumericAxis.prototype.getDivisions.call(this, stepValue) - 1;\n }\n\n reflow(box) {\n this.box = box;\n this.reflowLabels();\n }\n\n reflowLabels() {\n const { options, labels, options: { labels: labelOptions } } = this;\n const skip = labelOptions.skip || 0;\n const step = labelOptions.step || 1;\n\n const measureBox = new Box();\n const divs = this.intervals(options.majorUnit, skip, step);\n\n for (let i = 0; i < labels.length; i++) {\n labels[i].reflow(measureBox);\n const labelBox = labels[i].box;\n\n labels[i].reflow(this.getSlot(divs[i]).adjacentBox(0, labelBox.width(), labelBox.height()));\n }\n }\n\n lineBox() {\n return this.box;\n }\n\n intervals(size, skipOption, stepOption, skipAngles = false) {\n const min = this.options.min;\n const divisions = this.getDivisions(size);\n const divs = [];\n const skip = skipOption || 0;\n const step = stepOption || 1;\n\n for (let i = skip; i < divisions; i += step) {\n const current = (360 + min + i * size) % 360;\n if (!(skipAngles && inArray(current, skipAngles))) {\n divs.push(current);\n }\n }\n\n return divs;\n }\n\n majorIntervals() {\n return this.intervals(this.options.majorUnit);\n }\n\n minorIntervals() {\n return this.intervals(this.options.minorUnit);\n }\n\n intervalAngle(i) {\n return (540 - i - this.options.startAngle) % 360;\n }\n\n createLine() {\n return [];\n }\n\n majorGridLineAngles(altAxis) {\n const majorGridLines = this.options.majorGridLines;\n return this.gridLineAngles(altAxis, this.options.majorUnit, majorGridLines.skip, majorGridLines.step);\n }\n\n minorGridLineAngles(altAxis, skipMajor) {\n const options = this.options;\n const { minorGridLines, majorGridLines } = options;\n const majorGridLineAngles = skipMajor ? this.intervals(options.majorUnit, majorGridLines.skip, majorGridLines.step) : null;\n\n return this.gridLineAngles(altAxis, options.minorUnit, minorGridLines.skip, minorGridLines.step, majorGridLineAngles);\n }\n\n plotBandSlot(band) {\n return this.getSlot(band.from, band.to);\n }\n\n getSlot(a, b) {\n const { options, box } = this;\n const startAngle = options.startAngle;\n let start = limitValue(a, options.min, options.max);\n let end = limitValue(b || start, start, options.max);\n\n if (options.reverse) {\n start *= -1;\n end *= -1;\n }\n\n start = (540 - start - startAngle) % 360;\n end = (540 - end - startAngle) % 360;\n\n if (end < start) {\n const tmp = start;\n start = end;\n end = tmp;\n }\n\n return new Ring(box.center(), 0, box.height() / 2, start, end - start);\n }\n\n slot(from, to = from) {\n const options = this.options;\n const start = 360 - options.startAngle;\n const slot = this.getSlot(from, to);\n const min = Math.min(from, to);\n const max = Math.max(from, to);\n let startAngle, endAngle;\n\n if (options.reverse) {\n startAngle = min;\n endAngle = max;\n } else {\n startAngle = 360 - max;\n endAngle = 360 - min;\n }\n\n startAngle = (startAngle + start) % 360;\n endAngle = (endAngle + start) % 360;\n\n return new geom.Arc([ slot.center.x, slot.center.y ], {\n startAngle: startAngle,\n endAngle: endAngle,\n radiusX: slot.radius,\n radiusY: slot.radius\n });\n }\n\n getValue(point) {\n const options = this.options;\n const center = this.box.center();\n const dx = point.x - center.x;\n const dy = point.y - center.y;\n let theta = Math.round(deg(Math.atan2(dy, dx)));\n let start = options.startAngle;\n\n if (!options.reverse) {\n theta *= -1;\n start *= -1;\n }\n\n return (theta + start + 360) % 360;\n }\n\n valueRange() {\n return {\n min: 0,\n max: Math.PI * 2\n };\n }\n}\n\nsetDefaultOptions(PolarAxis, {\n type: \"polar\",\n startAngle: 0,\n reverse: false,\n majorUnit: 60,\n min: 0,\n max: 360,\n labels: {\n margin: getSpacing(10)\n },\n majorGridLines: {\n color: BLACK,\n visible: true,\n width: 1\n },\n minorGridLines: {\n color: \"#aaa\"\n }\n});\n\ndeepExtend(PolarAxis.prototype, GridLinesMixin, {\n createPlotBands: RadarCategoryAxis.prototype.createPlotBands,\n majorAngles: RadarCategoryAxis.prototype.majorAngles,\n range: NumericAxis.prototype.range,\n labelsCount: NumericAxis.prototype.labelsCount,\n createAxisLabel: NumericAxis.prototype.createAxisLabel\n});\n\nexport default PolarAxis;","import { geometry as geom, drawing as draw } from '@progress/kendo-drawing';\n\nimport GridLinesMixin from './mixins/grid-lines-mixin';\nimport CategoryAxis from './category-axis';\nimport ShapeBuilder from './shape-builder';\nimport Ring from './ring';\nimport Box from './box';\n\nimport { COORD_PRECISION, ARC } from '../common/constants';\nimport { deepExtend, getSpacing, inArray, limitValue, map, rad, round, setDefaultOptions } from '../common';\n\nclass RadarCategoryAxis extends CategoryAxis {\n range() {\n return { min: 0, max: this.options.categories.length };\n }\n\n reflow(box) {\n this.box = box;\n this.reflowLabels();\n }\n\n lineBox() {\n return this.box;\n }\n\n reflowLabels() {\n const { labels, options: { labels: labelOptions } } = this;\n const skip = labelOptions.skip || 0;\n const step = labelOptions.step || 1;\n const measureBox = new Box();\n\n for (let i = 0; i < labels.length; i++) {\n labels[i].reflow(measureBox);\n const labelBox = labels[i].box;\n\n labels[i].reflow(this.getSlot(skip + i * step).adjacentBox(\n 0, labelBox.width(), labelBox.height()\n ));\n }\n }\n\n intervals(size, skipOption, stepOption, skipAngles = false) {\n const options = this.options;\n const categories = options.categories.length;\n const divCount = categories / size || 1;\n const divAngle = 360 / divCount;\n const skip = skipOption || 0;\n const step = stepOption || 1;\n const divs = [];\n let angle = 0;\n\n for (let i = skip; i < divCount; i += step) {\n if (options.reverse) {\n angle = 360 - i * divAngle;\n } else {\n angle = i * divAngle;\n }\n\n angle = round(angle, COORD_PRECISION) % 360;\n\n if (!(skipAngles && inArray(angle, skipAngles))) {\n divs.push(angle);\n }\n }\n\n return divs;\n }\n\n majorIntervals() {\n return this.intervals(1);\n }\n\n minorIntervals() {\n return this.intervals(0.5);\n }\n\n intervalAngle(interval) {\n return (360 + interval + this.options.startAngle) % 360;\n }\n\n majorAngles() {\n return map(this.majorIntervals(), (interval) => this.intervalAngle(interval));\n }\n\n createLine() {\n return [];\n }\n\n majorGridLineAngles(altAxis) {\n const majorGridLines = this.options.majorGridLines;\n return this.gridLineAngles(altAxis, 1, majorGridLines.skip, majorGridLines.step);\n }\n\n minorGridLineAngles(altAxis, skipMajor) {\n const { minorGridLines, majorGridLines } = this.options;\n const majorGridLineAngles = skipMajor ? this.intervals(1, majorGridLines.skip, majorGridLines.step) : null;\n\n return this.gridLineAngles(altAxis, 0.5, minorGridLines.skip, minorGridLines.step, majorGridLineAngles);\n }\n\n radiusCallback(radius, altAxis, skipMajor) {\n if (altAxis.options.type !== ARC) {\n const minorAngle = rad(360 / (this.options.categories.length * 2));\n const minorRadius = Math.cos(minorAngle) * radius;\n const majorAngles = this.majorAngles();\n\n const radiusCallback = function(angle) {\n if (!skipMajor && inArray(angle, majorAngles)) {\n return radius;\n }\n\n return minorRadius;\n };\n return radiusCallback;\n }\n }\n\n createPlotBands() {\n const plotBands = this.options.plotBands || [];\n\n const group = this._plotbandGroup = new draw.Group({\n zIndex: -1\n });\n\n for (let i = 0; i < plotBands.length; i++) {\n const band = plotBands[i];\n const slot = this.plotBandSlot(band);\n const singleSlot = this.getSlot(band.from);\n\n const head = band.from - Math.floor(band.from);\n slot.startAngle += head * singleSlot.angle;\n\n const tail = Math.ceil(band.to) - band.to;\n slot.angle -= (tail + head) * singleSlot.angle;\n\n const ring = ShapeBuilder.current.createRing(slot, {\n fill: {\n color: band.color,\n opacity: band.opacity\n },\n stroke: {\n opacity: band.opacity\n }\n });\n group.append(ring);\n }\n\n this.appendVisual(group);\n }\n\n plotBandSlot(band) {\n return this.getSlot(band.from, band.to - 1);\n }\n\n getSlot(from, to) {\n const options = this.options;\n const justified = options.justified;\n const box = this.box;\n const divs = this.majorAngles();\n const totalDivs = divs.length;\n const slotAngle = 360 / totalDivs;\n let fromValue = from;\n\n if (options.reverse && !justified) {\n fromValue = (fromValue + 1) % totalDivs;\n }\n\n fromValue = limitValue(Math.floor(fromValue), 0, totalDivs - 1);\n let slotStart = divs[fromValue];\n\n if (justified) {\n slotStart = slotStart - slotAngle / 2;\n\n if (slotStart < 0) {\n slotStart += 360;\n }\n }\n\n const toValue = limitValue(Math.ceil(to || fromValue), fromValue, totalDivs - 1);\n const slots = toValue - fromValue + 1;\n const angle = slotAngle * slots;\n\n return new Ring(box.center(), 0, box.height() / 2, slotStart, angle);\n }\n\n slot(from, to) {\n const slot = this.getSlot(from, to);\n const startAngle = slot.startAngle + 180;\n const endAngle = startAngle + slot.angle;\n\n return new geom.Arc([ slot.center.x, slot.center.y ], {\n startAngle: startAngle,\n endAngle: endAngle,\n radiusX: slot.radius,\n radiusY: slot.radius\n });\n }\n\n pointCategoryIndex(point) {\n const length = this.options.categories.length;\n let index = null;\n\n for (let i = 0; i < length; i++) {\n const slot = this.getSlot(i);\n if (slot.containsPoint(point)) {\n index = i;\n break;\n }\n }\n\n return index;\n }\n}\n\nsetDefaultOptions(RadarCategoryAxis, {\n startAngle: 90,\n labels: {\n margin: getSpacing(10)\n },\n majorGridLines: {\n visible: true\n },\n justified: true\n});\ndeepExtend(RadarCategoryAxis.prototype, GridLinesMixin);\n\nexport default RadarCategoryAxis;","import LogarithmicAxis from './logarithmic-axis';\nimport RadarNumericAxisMixin from './mixins/radar-numeric-axis-mixin';\n\nimport { deepExtend } from '../common';\n\nclass RadarLogarithmicAxis extends LogarithmicAxis {\n radarMajorGridLinePositions() {\n const positions = [];\n\n this.traverseMajorTicksPositions(function(position) {\n positions.push(position);\n }, this.options.majorGridLines);\n\n return positions;\n }\n\n radarMinorGridLinePositions() {\n const positions = [];\n\n this.traverseMinorTicksPositions(function(position) {\n positions.push(position);\n }, this.options.minorGridLines);\n\n return positions;\n }\n\n axisType() {\n return LogarithmicAxis;\n }\n}\n\ndeepExtend(RadarLogarithmicAxis.prototype, RadarNumericAxisMixin);\n\nexport default RadarLogarithmicAxis;","import NumericAxis from './numeric-axis';\nimport RadarNumericAxisMixin from './mixins/radar-numeric-axis-mixin';\n\nimport { deepExtend } from '../common';\n\nclass RadarNumericAxis extends NumericAxis {\n radarMajorGridLinePositions() {\n return this.getTickPositions(this.options.majorUnit);\n }\n\n radarMinorGridLinePositions() {\n const options = this.options;\n let minorSkipStep = 0;\n\n if (options.majorGridLines.visible) {\n minorSkipStep = options.majorUnit;\n }\n return this.getTickPositions(options.minorUnit, minorSkipStep);\n }\n\n axisType() {\n return NumericAxis;\n }\n}\n\ndeepExtend(RadarNumericAxis.prototype, RadarNumericAxisMixin);\n\nexport default RadarNumericAxis;","import Box from './box';\nimport Point from './point';\nimport { COORD_PRECISION, MAX_VALUE, MIN_VALUE } from '../common/constants';\nimport { Class, clockwise, rad, round } from '../common';\n\nclass Ring extends Class {\n\n constructor(center, innerRadius, radius, startAngle, angle) {\n super();\n\n this.center = center;\n this.innerRadius = innerRadius;\n this.radius = radius;\n this.startAngle = startAngle;\n this.angle = angle;\n }\n\n clone() {\n return new Ring(this.center, this.innerRadius, this.radius, this.startAngle, this.angle);\n }\n\n middle() {\n return this.startAngle + this.angle / 2;\n }\n\n setRadius(newRadius, innerRadius) {\n if (innerRadius) {\n this.innerRadius = newRadius;\n } else {\n this.radius = newRadius;\n }\n\n return this;\n }\n\n // TODO: Remove and replace with Point.onCircle\n point(angle, innerRadius) {\n const radianAngle = rad(angle);\n const ax = Math.cos(radianAngle);\n const ay = Math.sin(radianAngle);\n const radius = innerRadius ? this.innerRadius : this.radius;\n const x = round(this.center.x - (ax * radius), COORD_PRECISION);\n const y = round(this.center.y - (ay * radius), COORD_PRECISION);\n\n return new Point(x, y);\n }\n\n adjacentBox(distance, width, height) {\n const sector = this.clone().expand(distance);\n const midAndle = sector.middle();\n const midPoint = sector.point(midAndle);\n const hw = width / 2;\n const hh = height / 2;\n const sa = Math.sin(rad(midAndle));\n const ca = Math.cos(rad(midAndle));\n let x = midPoint.x - hw;\n let y = midPoint.y - hh;\n\n if (Math.abs(sa) < 0.9) {\n x += hw * -ca / Math.abs(ca);\n }\n\n if (Math.abs(ca) < 0.9) {\n y += hh * -sa / Math.abs(sa);\n }\n\n return new Box(x, y, x + width, y + height);\n }\n\n containsPoint(p) {\n const center = this.center;\n const innerRadius = this.innerRadius;\n const radius = this.radius;\n const startAngle = this.startAngle;\n const endAngle = this.startAngle + this.angle;\n const dx = p.x - center.x;\n const dy = p.y - center.y;\n const vector = new Point(dx, dy);\n const startPoint = this.point(startAngle);\n const startVector = new Point(startPoint.x - center.x, startPoint.y - center.y);\n const endPoint = this.point(endAngle);\n const endVector = new Point(endPoint.x - center.x, endPoint.y - center.y);\n const dist = round(dx * dx + dy * dy, COORD_PRECISION);\n\n return (startVector.equals(vector) || clockwise(startVector, vector)) &&\n !clockwise(endVector, vector) &&\n dist >= innerRadius * innerRadius && dist <= radius * radius;\n }\n\n getBBox() {\n const box = new Box(MAX_VALUE, MAX_VALUE, MIN_VALUE, MIN_VALUE);\n const startAngle = round(this.startAngle % 360);\n const endAngle = round((startAngle + this.angle) % 360);\n const innerRadius = this.innerRadius;\n const allAngles = [ 0, 90, 180, 270, startAngle, endAngle ].sort(numericComparer);\n const startAngleIndex = allAngles.indexOf(startAngle);\n const endAngleIndex = allAngles.indexOf(endAngle);\n let angles;\n\n if (startAngle === endAngle) {\n angles = allAngles;\n } else {\n if (startAngleIndex < endAngleIndex) {\n angles = allAngles.slice(startAngleIndex, endAngleIndex + 1);\n } else {\n angles = [].concat(\n allAngles.slice(0, endAngleIndex + 1),\n allAngles.slice(startAngleIndex, allAngles.length)\n );\n }\n }\n\n for (let i = 0; i < angles.length; i++) {\n let point = this.point(angles[i]);\n box.wrapPoint(point);\n box.wrapPoint(point, innerRadius);\n }\n\n if (!innerRadius) {\n box.wrapPoint(this.center);\n }\n\n return box;\n }\n\n expand(value) {\n this.radius += value;\n return this;\n }\n}\n\nfunction numericComparer(a, b) {\n return a - b;\n}\n\nexport default Ring;","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport ChartElement from './chart-element';\nimport GRADIENTS from './gradients';\nimport Box from './box';\n\nimport boxDiff from './utils/box-diff';\n\nimport { DEFAULT_WIDTH, DEFAULT_HEIGHT, WHITE, BLACK } from '../common/constants';\nimport { getSpacing, objectKey, setDefaultOptions } from '../common';\n\nclass RootElement extends ChartElement {\n constructor(options) {\n super(options);\n\n const rootOptions = this.options;\n rootOptions.width = parseInt(rootOptions.width, 10);\n rootOptions.height = parseInt(rootOptions.height, 10);\n\n this.gradients = {};\n }\n\n reflow() {\n const { options, children } = this;\n let currentBox = new Box(0, 0, options.width, options.height);\n\n this.box = currentBox.unpad(options.margin);\n\n for (let i = 0; i < children.length; i++) {\n children[i].reflow(currentBox);\n currentBox = boxDiff(currentBox, children[i].box) || new Box();\n }\n }\n\n createVisual() {\n this.visual = new draw.Group();\n this.createBackground();\n }\n\n createBackground() {\n const options = this.options;\n const border = options.border || {};\n const box = this.box.clone().pad(options.margin).unpad(border.width);\n\n const background = draw.Path.fromRect(box.toRect(), {\n stroke: {\n color: border.width ? border.color : \"\",\n width: border.width,\n dashType: border.dashType\n },\n fill: {\n color: options.background,\n opacity: options.opacity\n },\n zIndex: -10\n });\n\n this.visual.append(background);\n }\n\n getRoot() {\n return this;\n }\n\n createGradient(options) {\n const gradients = this.gradients;\n const hashCode = objectKey(options);\n const gradient = GRADIENTS[options.gradient];\n let drawingGradient;\n\n if (gradients[hashCode]) {\n drawingGradient = gradients[hashCode];\n } else {\n const gradientOptions = Object.assign({}, gradient, options);\n if (gradient.type === \"linear\") {\n drawingGradient = new draw.LinearGradient(gradientOptions);\n } else {\n if (options.innerRadius) {\n gradientOptions.stops = innerRadialStops(gradientOptions);\n }\n drawingGradient = new draw.RadialGradient(gradientOptions);\n drawingGradient.supportVML = gradient.supportVML !== false;\n }\n gradients[hashCode] = drawingGradient;\n }\n\n return drawingGradient;\n }\n\n cleanGradients() {\n const gradients = this.gradients;\n for (let hashCode in gradients) {\n gradients[hashCode]._observers = [];//add clear observers method in drawing ObserversMixin\n }\n }\n\n size() {\n const options = this.options;\n return new Box(0, 0, options.width, options.height);\n }\n}\n\nsetDefaultOptions(RootElement, {\n width: DEFAULT_WIDTH,\n height: DEFAULT_HEIGHT,\n background: WHITE,\n border: {\n color: BLACK,\n width: 0\n },\n margin: getSpacing(5),\n zIndex: -2\n});\n\nfunction innerRadialStops(options) {\n const stops = options.stops;\n const usedSpace = ((options.innerRadius / options.radius) * 100);\n const length = stops.length;\n const currentStops = [];\n\n for (let i = 0; i < length; i++) {\n let currentStop = Object.assign({}, stops[i]);\n currentStop.offset = (currentStop.offset * (100 - usedSpace) + usedSpace) / 100;\n currentStops.push(currentStop);\n }\n\n return currentStops;\n}\n\nexport default RootElement;","import Ring from './ring';\n\nclass Sector extends Ring {\n constructor(center, radius, startAngle, angle) {\n super(center, 0, radius, startAngle, angle);\n }\n\n expand(value) {\n return super.expand(value);\n }\n\n clone() {\n return new Sector(this.center, this.radius, this.startAngle, this.angle);\n }\n\n setRadius(newRadius) {\n this.radius = newRadius;\n\n return this;\n }\n}\n\nexport default Sector;","import { geometry as geom, drawing as draw } from '@progress/kendo-drawing';\nimport { Class } from '../common';\n\nconst DIRECTION_ANGLE = 0.001; //any value that will make the endAngle bigger than the start angle will work here.\n\nclass ShapeBuilder extends Class {\n createRing(sector, options) {\n const startAngle = sector.startAngle + 180;\n let endAngle = sector.angle + startAngle;\n\n //required in order to avoid reversing the arc direction in cases like 0.000000000000001 + 100 === 100\n if (sector.angle > 0 && startAngle === endAngle) {\n endAngle += DIRECTION_ANGLE;\n }\n\n const center = new geom.Point(sector.center.x, sector.center.y);\n const radius = Math.max(sector.radius, 0);\n const innerRadius = Math.max(sector.innerRadius, 0);\n const arc = new geom.Arc(center, {\n startAngle: startAngle,\n endAngle: endAngle,\n radiusX: radius,\n radiusY: radius\n });\n const path = draw.Path.fromArc(arc, options).close();\n\n if (innerRadius) {\n arc.radiusX = arc.radiusY = innerRadius;\n const innerEnd = arc.pointAt(endAngle);\n path.lineTo(innerEnd.x, innerEnd.y);\n path.arc(endAngle, startAngle, innerRadius, innerRadius, true);\n } else {\n path.lineTo(center.x, center.y);\n }\n\n return path;\n }\n}\n\nShapeBuilder.current = new ShapeBuilder();\n\nexport default ShapeBuilder;","import { drawing as draw, geometry as geom } from '@progress/kendo-drawing';\nimport { round, setDefaultOptions } from '../common';\nimport { CENTER, CIRCLE, COORD_PRECISION, CROSS, ROUNDED_RECT, TRIANGLE } from '../common/constants';\nimport { valueOrDefault } from '../drawing-utils';\nimport BoxElement from './box-element';\n\nclass ShapeElement extends BoxElement {\n\n constructor(options, pointData) {\n super(options);\n\n this.pointData = pointData;\n }\n\n getElement() {\n const { options, paddingBox: box } = this;\n const { type, rotation } = options;\n const center = box.center();\n const halfWidth = box.width() / 2;\n const halfHeight = box.height() / 2;\n\n if (!options.visible || !this.hasBox()) {\n return null;\n }\n\n const style = this.visualStyle();\n let element;\n\n if (type === CIRCLE) {\n element = new draw.Circle(\n new geom.Circle([\n round(box.x1 + halfWidth, COORD_PRECISION),\n round(box.y1 + halfHeight, COORD_PRECISION)\n ], Math.min(halfWidth, halfHeight)),\n style\n );\n } else if (type === TRIANGLE) {\n element = draw.Path.fromPoints([\n [ box.x1 + halfWidth, box.y1 ],\n [ box.x1, box.y2 ],\n [ box.x2, box.y2 ]\n ], style).close();\n } else if (type === CROSS) {\n element = new draw.MultiPath(style);\n\n element.moveTo(box.x1, box.y1).lineTo(box.x2, box.y2);\n element.moveTo(box.x1, box.y2).lineTo(box.x2, box.y1);\n } else {\n const rect = box.toRect();\n if (type === ROUNDED_RECT) {\n const borderRadius = valueOrDefault(options.borderRadius, rect.width() / 5);\n rect.setCornerRadius(borderRadius);\n }\n\n element = draw.Path.fromRect(rect, style);\n }\n\n if (rotation) {\n element.transform(geom.transform()\n .rotate(-rotation, [ center.x, center.y ])\n );\n }\n\n element.options.zIndex = options.zIndex;\n\n return element;\n }\n\n createElement() {\n const customVisual = this.options.visual;\n const pointData = this.pointData || {};\n let visual;\n\n if (customVisual) {\n visual = customVisual({\n value: pointData.value,\n dataItem: pointData.dataItem,\n sender: this.getSender(),\n series: pointData.series,\n category: pointData.category,\n rect: this.paddingBox.toRect(),\n options: this.visualOptions(),\n createVisual: () => this.getElement()\n });\n } else {\n visual = this.getElement();\n }\n\n return visual;\n }\n\n visualOptions() {\n const options = this.options;\n return {\n background: options.background,\n border: options.border,\n margin: options.margin,\n padding: options.padding,\n type: options.type,\n size: options.width,\n visible: options.visible\n };\n }\n\n createVisual() {\n this.visual = this.createElement();\n }\n}\n\nsetDefaultOptions(ShapeElement, {\n type: CIRCLE,\n align: CENTER,\n vAlign: CENTER\n});\n\nexport default ShapeElement;\n","import { drawing as draw, geometry as geom } from '@progress/kendo-drawing';\n\nimport BoxElement from './box-element';\nimport FloatElement from './float-element';\nimport Text from './text';\nimport Box from './box';\n\nimport rectToBox from './utils/rect-to-box';\n\nimport { getSpacing, deepExtend, defined } from '../common';\nimport { X, Y } from '../common/constants';\n\nconst ROWS_SPLIT_REGEX = /\\n/m;\n\nclass TextBox extends BoxElement {\n\n constructor(content, options, data) {\n super(options);\n this.content = content;\n this.data = data;\n\n this._initContainer();\n if (this.options._autoReflow !== false) {\n this.reflow(new Box());\n }\n }\n\n _initContainer() {\n const options = this.options;\n const rows = String(this.content).split(ROWS_SPLIT_REGEX);\n const floatElement = new FloatElement({ vertical: true, align: options.align, wrap: false });\n const textOptions = deepExtend({ }, options, { opacity: 1, animation: null });\n\n this.container = floatElement;\n this.append(floatElement);\n\n for (let rowIdx = 0; rowIdx < rows.length; rowIdx++) {\n let text = new Text(rows[rowIdx].trim(), textOptions);\n floatElement.append(text);\n }\n }\n\n reflow(targetBox) {\n const options = this.options;\n const visualFn = options.visual;\n this.container.options.align = options.align;\n\n if (visualFn && !this._boxReflow) {\n let visualBox = targetBox;\n if (!visualBox.hasSize()) {\n this._boxReflow = true;\n this.reflow(visualBox);\n this._boxReflow = false;\n visualBox = this.box;\n }\n const visual = this.visual = visualFn(this.visualContext(visualBox));\n\n if (visual) {\n visualBox = rectToBox(visual.clippedBBox() || new geom.Rect());\n\n visual.options.zIndex = options.zIndex;\n }\n\n this.box = this.contentBox = this.paddingBox = visualBox;\n } else {\n super.reflow(targetBox);\n\n if (options.rotation) {\n const margin = getSpacing(options.margin);\n let box = this.box.unpad(margin);\n\n this.targetBox = targetBox;\n this.normalBox = box.clone();\n\n box = this.rotate();\n box.translate(margin.left - margin.right, margin.top - margin.bottom);\n\n this.rotatedBox = box.clone();\n\n box.pad(margin);\n }\n }\n }\n\n createVisual() {\n const options = this.options;\n\n this.visual = new draw.Group({\n transform: this.rotationTransform(),\n zIndex: options.zIndex,\n noclip: options.noclip\n });\n\n if (this.hasBox()) {\n const box = draw.Path.fromRect(this.paddingBox.toRect(), this.visualStyle());\n this.visual.append(box);\n }\n }\n\n renderVisual() {\n if (!this.options.visible) {\n return;\n }\n\n if (this.options.visual) {\n const visual = this.visual;\n if (visual && !defined(visual.options.noclip)) {\n visual.options.noclip = this.options.noclip;\n }\n this.addVisual();\n this.createAnimation();\n } else {\n super.renderVisual();\n }\n }\n\n visualContext(targetBox) {\n const context = {\n text: this.content,\n rect: targetBox.toRect(),\n sender: this.getSender(),\n options: this.options,\n createVisual: () => {\n this._boxReflow = true;\n this.reflow(targetBox);\n this._boxReflow = false;\n return this.getDefaultVisual();\n }\n };\n if (this.data) {\n Object.assign(context, this.data);\n }\n\n return context;\n }\n\n getDefaultVisual() {\n this.createVisual();\n this.renderChildren();\n const visual = this.visual;\n delete this.visual;\n return visual;\n }\n\n rotate() {\n const options = this.options;\n this.box.rotate(options.rotation);\n this.align(this.targetBox, X, options.align);\n this.align(this.targetBox, Y, options.vAlign);\n return this.box;\n }\n\n rotationTransform() {\n const rotation = this.options.rotation;\n if (!rotation) {\n return null;\n }\n\n const { x: cx, y: cy } = this.normalBox.center();\n const boxCenter = this.rotatedBox.center();\n\n return geom.transform()\n .translate(boxCenter.x - cx, boxCenter.y - cy)\n .rotate(rotation, [ cx, cy ]);\n }\n}\n\nexport default TextBox;","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport ChartElement from './chart-element';\nimport Box from './box';\n\nimport { DEFAULT_FONT, BLACK } from '../common/constants';\nimport { setDefaultOptions } from '../common';\n\nconst DrawingText = draw.Text;\n\nclass Text extends ChartElement {\n\n constructor(content, options) {\n super(options);\n\n this.content = content;\n\n // Calculate size\n this.reflow(new Box());\n }\n\n reflow(targetBox) {\n const options = this.options;\n const size = options.size = draw.util.measureText(this.content, { font: options.font });\n\n this.baseline = size.baseline;\n\n this.box = new Box(targetBox.x1, targetBox.y1,\n targetBox.x1 + size.width, targetBox.y1 + size.height);\n }\n\n createVisual() {\n const { font, color, opacity, cursor } = this.options;\n\n this.visual = new DrawingText(this.content, this.box.toRect().topLeft(), {\n font: font,\n fill: { color: color, opacity: opacity },\n cursor: cursor\n });\n }\n}\n\nsetDefaultOptions(Text, {\n font: DEFAULT_FONT,\n color: BLACK\n});\n\nexport default Text;\n","import ChartElement from './chart-element';\nimport TextBox from './text-box';\n\nimport { X, BLACK, TOP, CENTER } from '../common/constants';\nimport { getSpacing, setDefaultOptions } from '../common';\n\nclass Title extends ChartElement {\n constructor(options) {\n super(options);\n\n this.append(\n new TextBox(this.options.text, Object.assign({}, this.options, {\n vAlign: this.options.position\n }))\n );\n }\n\n reflow(targetBox) {\n super.reflow(targetBox);\n this.box.snapTo(targetBox, X);\n }\n\n static buildTitle(options, parent, defaultOptions) {\n let titleOptions = options;\n\n if (typeof options === \"string\") {\n titleOptions = { text: options };\n }\n\n titleOptions = Object.assign({ visible: true }, defaultOptions, titleOptions);\n\n let title;\n if (titleOptions && titleOptions.visible && titleOptions.text) {\n title = new Title(titleOptions);\n parent.append(title);\n }\n\n return title;\n }\n}\n\nsetDefaultOptions(Title, {\n color: BLACK,\n position: TOP,\n align: CENTER,\n margin: getSpacing(5),\n padding: getSpacing(5)\n});\n\nexport default Title;","import { ZERO_THRESHOLD } from '../constants';\n\nexport default function autoAxisMax(min, max, narrow) {\n if (!min && !max) {\n return 1;\n }\n\n let axisMax;\n\n if (min <= 0 && max <= 0) {\n const maxValue = min === max ? 0 : max;\n\n let diff = Math.abs((maxValue - min) / maxValue);\n if (narrow === false || (!narrow && diff > ZERO_THRESHOLD)) {\n return 0;\n }\n\n axisMax = Math.min(0, maxValue - ((min - maxValue) / 2));\n } else {\n axisMax = max;\n }\n\n return axisMax;\n}","import { ZERO_THRESHOLD } from '../constants';\n\nexport default function autoAxisMin(min, max, narrow) {\n if (!min && !max) {\n return 0;\n }\n\n let axisMin;\n\n if (min >= 0 && max >= 0) {\n const minValue = min === max ? 0 : min;\n\n let diff = (max - minValue) / max;\n if (narrow === false || (!narrow && diff > ZERO_THRESHOLD)) {\n return 0;\n }\n\n axisMin = Math.max(0, minValue - ((max - minValue) / 2));\n } else {\n axisMin = min;\n }\n\n return axisMin;\n}\n","import { DEFAULT_PRECISION } from '../../common/constants';\nimport { round } from '../../common';\n\nexport default function autoMajorUnit(min, max) {\n let diff = round(max - min, DEFAULT_PRECISION - 1);\n\n if (diff === 0) {\n if (max === 0) {\n return 0.1;\n }\n\n diff = Math.abs(max);\n }\n\n const scale = Math.pow(10, Math.floor(Math.log(diff) / Math.log(10)));\n const relativeValue = round((diff / scale), DEFAULT_PRECISION);\n let scaleMultiplier = 1;\n\n if (relativeValue < 1.904762) {\n scaleMultiplier = 0.2;\n } else if (relativeValue < 4.761904) {\n scaleMultiplier = 0.5;\n } else if (relativeValue < 9.523809) {\n scaleMultiplier = 1;\n } else {\n scaleMultiplier = 2;\n }\n\n return round(scale * scaleMultiplier, DEFAULT_PRECISION);\n}","import Box from '../box';\nimport { grep } from '../../common';\n\nexport default function boxDiff(r, s) {\n if (r.x1 === s.x1 && r.y1 === s.y1 && r.x2 === s.x2 && r.y2 === s.y2) {\n return s;\n }\n\n const a = Math.min(r.x1, s.x1);\n const b = Math.max(r.x1, s.x1);\n const c = Math.min(r.x2, s.x2);\n const d = Math.max(r.x2, s.x2);\n const e = Math.min(r.y1, s.y1);\n const f = Math.max(r.y1, s.y1);\n const g = Math.min(r.y2, s.y2);\n const h = Math.max(r.y2, s.y2);\n const boxes = [];\n\n // X = intersection, 0-7 = possible difference areas\n // h +-+-+-+\n // . |5|6|7|\n // g +-+-+-+\n // . |3|X|4|\n // f +-+-+-+\n // . |0|1|2|\n // e +-+-+-+\n // . a b c d\n\n // we'll always have rectangles 1, 3, 4 and 6\n boxes[0] = new Box(b, e, c, f);\n boxes[1] = new Box(a, f, b, g);\n boxes[2] = new Box(c, f, d, g);\n boxes[3] = new Box(b, g, c, h);\n\n // decide which corners\n if (r.x1 === a && r.y1 === e || s.x1 === a && s.y1 === e) { // corners 0 and 7\n boxes[4] = new Box(a, e, b, f);\n boxes[5] = new Box(c, g, d, h);\n } else { // corners 2 and 5\n boxes[4] = new Box(c, e, d, f);\n boxes[5] = new Box(a, g, b, h);\n }\n\n return grep(boxes, function(box) {\n return box.height() > 0 && box.width() > 0;\n })[0];\n}","import { DEFAULT_PRECISION } from '../../common/constants';\nimport { round } from '../../common';\n\nexport default function ceil(value, step) {\n return round(Math.ceil(value / step) * step, DEFAULT_PRECISION);\n}","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport { alignPathToPixel } from '../../common';\n\nexport default function createAxisGridLine(options, gridLine) {\n const { lineStart, lineEnd, position } = options;\n\n const line = new draw.Path({\n stroke: {\n width: gridLine.width,\n color: gridLine.color,\n dashType: gridLine.dashType\n }\n });\n\n if (options.vertical) {\n line.moveTo(lineStart, position)\n .lineTo(lineEnd, position);\n } else {\n line.moveTo(position, lineStart)\n .lineTo(position, lineEnd);\n }\n\n alignPathToPixel(line);\n\n return line;\n}","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport { alignPathToPixel } from '../../common';\n\nexport default function createAxisTick(options, tickOptions) {\n const { tickX, tickY, position } = options;\n\n const tick = new draw.Path({\n stroke: {\n width: tickOptions.width,\n color: tickOptions.color\n }\n });\n\n if (options.vertical) {\n tick.moveTo(tickX, position)\n .lineTo(tickX + tickOptions.size, position);\n } else {\n tick.moveTo(position, tickY)\n .lineTo(position, tickY + tickOptions.size);\n }\n\n alignPathToPixel(tick);\n\n return tick;\n}\n","import { DEFAULT_PRECISION } from '../../common/constants';\nimport { round } from '../../common';\n\nexport default function floor(value, step) {\n return round(Math.floor(value / step) * step, DEFAULT_PRECISION);\n}\n","import { COORDINATE_LIMIT } from '../constants';\n\nexport default function limitCoordinate(value) {\n return Math.max(Math.min(value, COORDINATE_LIMIT), -COORDINATE_LIMIT);\n}","import Box from '../box';\n\nexport default function rectToBox(rect) {\n const origin = rect.origin;\n const bottomRight = rect.bottomRight();\n\n return new Box(origin.x, origin.y, bottomRight.x, bottomRight.y);\n}","export { default as absoluteDateDiff } from './date-utils/absolute-date-diff';\nexport { default as addDuration } from './date-utils/add-duration';\nexport { default as addTicks } from './date-utils/add-ticks';\nexport { default as ceilDate } from './date-utils/ceil-date';\nexport { default as dateComparer } from './date-utils/date-comparer';\nexport { default as dateDiff } from './date-utils/date-diff';\nexport { default as dateEquals } from './date-utils/date-equals';\nexport { default as dateIndex } from './date-utils/date-index';\nexport { default as duration } from './date-utils/duration';\nexport { default as floorDate } from './date-utils/floor-date';\nexport { default as lteDateIndex } from './date-utils/lte-date-index';\nexport { default as startOfWeek } from './date-utils/start-of-week';\nexport { default as toDate } from './date-utils/to-date';\nexport { default as parseDate } from './date-utils/parse-date';\nexport { default as parseDates } from './date-utils/parse-dates';\nexport { default as toTime } from './date-utils/to-time';\nexport { default as firstDay } from './date-utils/first-day';\n","import { TIME_PER_MINUTE } from './constants';\n\nexport default function absoluteDateDiff(a, b) {\n const diff = a.getTime() - b;\n const offsetDiff = a.getTimezoneOffset() - b.getTimezoneOffset();\n\n return diff - (offsetDiff * TIME_PER_MINUTE);\n}","import { MILLISECONDS, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS,\n TIME_PER_SECOND, TIME_PER_MINUTE, TIME_PER_HOUR } from './constants';\nimport addTicks from './add-ticks';\nimport toDate from './to-date';\nimport startOfWeek from './start-of-week';\n\nfunction adjustDST(date, hours) {\n if (hours === 0 && date.getHours() === 23) {\n date.setHours(date.getHours() + 2);\n return true;\n }\n\n return false;\n}\n\nfunction addHours(date, hours) {\n const roundedDate = new Date(date);\n\n roundedDate.setMinutes(0, 0, 0);\n\n const tzDiff = (date.getTimezoneOffset() - roundedDate.getTimezoneOffset()) * TIME_PER_MINUTE;\n\n return addTicks(roundedDate, tzDiff + hours * TIME_PER_HOUR);\n}\n\nexport default function addDuration(dateValue, value, unit, weekStartDay) {\n let result = dateValue;\n\n if (dateValue) {\n let date = toDate(dateValue);\n const hours = date.getHours();\n\n if (unit === YEARS) {\n result = new Date(date.getFullYear() + value, 0, 1);\n adjustDST(result, 0);\n } else if (unit === MONTHS) {\n result = new Date(date.getFullYear(), date.getMonth() + value, 1);\n adjustDST(result, hours);\n } else if (unit === WEEKS) {\n result = addDuration(startOfWeek(date, weekStartDay), value * 7, DAYS);\n adjustDST(result, hours);\n } else if (unit === DAYS) {\n result = new Date(date.getFullYear(), date.getMonth(), date.getDate() + value);\n adjustDST(result, hours);\n } else if (unit === HOURS) {\n result = addHours(date, value);\n } else if (unit === MINUTES) {\n result = addTicks(date, value * TIME_PER_MINUTE);\n\n if (result.getSeconds() > 0) {\n result.setSeconds(0);\n }\n } else if (unit === SECONDS) {\n result = addTicks(date, value * TIME_PER_SECOND);\n } else if (unit === MILLISECONDS) {\n result = addTicks(date, value);\n }\n\n if (unit !== MILLISECONDS && result.getMilliseconds() > 0) {\n result.setMilliseconds(0);\n }\n }\n\n return result;\n}","export default function addTicks(date, ticks) {\n return new Date(date.getTime() + ticks);\n}","import floorDate from './floor-date';\nimport addDuration from './add-duration';\nimport toDate from './to-date';\n\nexport default function ceilDate(dateValue, unit, weekStartDay) {\n const date = toDate(dateValue);\n\n if (date && floorDate(date, unit, weekStartDay).getTime() === date.getTime()) {\n return date;\n }\n\n return addDuration(date, 1, unit, weekStartDay);\n}","export const MILLISECONDS = \"milliseconds\";\nexport const SECONDS = \"seconds\";\nexport const MINUTES = \"minutes\";\nexport const HOURS = \"hours\";\nexport const DAYS = \"days\";\nexport const WEEKS = \"weeks\";\nexport const MONTHS = \"months\";\nexport const YEARS = \"years\";\n\nexport const TIME_PER_MILLISECOND = 1;\nexport const TIME_PER_SECOND = 1000;\nexport const TIME_PER_MINUTE = 60 * TIME_PER_SECOND;\nexport const TIME_PER_HOUR = 60 * TIME_PER_MINUTE;\nexport const TIME_PER_DAY = 24 * TIME_PER_HOUR;\nexport const TIME_PER_WEEK = 7 * TIME_PER_DAY;\nexport const TIME_PER_MONTH = 31 * TIME_PER_DAY;\nexport const TIME_PER_YEAR = 365 * TIME_PER_DAY;\nexport const TIME_PER_UNIT = {\n \"years\": TIME_PER_YEAR,\n \"months\": TIME_PER_MONTH,\n \"weeks\": TIME_PER_WEEK,\n \"days\": TIME_PER_DAY,\n \"hours\": TIME_PER_HOUR,\n \"minutes\": TIME_PER_MINUTE,\n \"seconds\": TIME_PER_SECOND,\n \"milliseconds\": TIME_PER_MILLISECOND\n};\n\n","export default function dateComparer(a, b) {\n if (a && b) {\n return a.getTime() - b.getTime();\n }\n\n return -1;\n}","export default function dateDiff(a, b) {\n return a.getTime() - b;\n}","import toTime from './to-time';\n\nexport default function dateEquals(a, b) {\n if (a && b) {\n return toTime(a) === toTime(b);\n }\n\n return a === b;\n}","import { DAYS, WEEKS, MONTHS, YEARS, TIME_PER_UNIT } from './constants';\nimport dateDiff from './date-diff';\nimport absoluteDateDiff from './absolute-date-diff';\nimport toDate from './to-date';\n\nfunction timeIndex(date, start, baseUnit) {\n return absoluteDateDiff(date, start) / TIME_PER_UNIT[baseUnit];\n}\n\nexport default function dateIndex(value, start, baseUnit, baseUnitStep) {\n const date = toDate(value);\n const startDate = toDate(start);\n let index;\n\n if (baseUnit === MONTHS) {\n index = (date.getMonth() - startDate.getMonth() + (date.getFullYear() - startDate.getFullYear()) * 12) +\n timeIndex(date, new Date(date.getFullYear(), date.getMonth()), DAYS) / new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate();\n } else if (baseUnit === YEARS) {\n index = date.getFullYear() - startDate.getFullYear() + dateIndex(date, new Date(date.getFullYear(), 0), MONTHS, 1) / 12;\n } else if (baseUnit === DAYS || baseUnit === WEEKS) {\n index = timeIndex(date, startDate, baseUnit);\n } else {\n index = dateDiff(date, start) / TIME_PER_UNIT[baseUnit];\n }\n\n return index / baseUnitStep;\n}\n\n","import { DAYS, MONTHS, YEARS, TIME_PER_DAY, TIME_PER_UNIT } from './constants';\nimport dateDiff from './date-diff';\n\nexport default function duration(a, b, unit) {\n let diff;\n\n if (unit === YEARS) {\n diff = b.getFullYear() - a.getFullYear();\n } else if (unit === MONTHS) {\n diff = duration(a, b, YEARS) * 12 + b.getMonth() - a.getMonth();\n } else if (unit === DAYS) {\n diff = Math.floor(dateDiff(b, a) / TIME_PER_DAY);\n } else {\n diff = Math.floor(dateDiff(b, a) / TIME_PER_UNIT[unit]);\n }\n\n return diff;\n}","import { isNumber } from '../common';\n\nexport default function firstDay(options, intlService) {\n if (isNumber(options.weekStartDay)) {\n return options.weekStartDay;\n }\n\n if (intlService && intlService.firstDay) {\n return intlService.firstDay();\n }\n\n return 0;\n}\n","import addDuration from './add-duration';\nimport toDate from './to-date';\n\nexport default function floorDate(date, unit, weekStartDay) {\n return addDuration(toDate(date), 0, unit, weekStartDay);\n}","import dateEquals from './date-equals';\n\nexport default function lteDateIndex(date, sortedDates) {\n let low = 0;\n let high = sortedDates.length - 1;\n let index;\n\n while (low <= high) {\n index = Math.floor((low + high) / 2);\n const currentDate = sortedDates[index];\n\n if (currentDate < date) {\n low = index + 1;\n continue;\n }\n\n if (currentDate > date) {\n high = index - 1;\n continue;\n }\n\n while (dateEquals(sortedDates[index - 1], date)) {\n index--;\n }\n\n return index;\n }\n\n if (sortedDates[index] <= date) {\n return index;\n }\n\n return index - 1;\n}","import { isString } from '../common';\nimport toDate from './to-date';\n\nexport default function parseDate(intlService, date) {\n let result;\n if (isString(date)) {\n result = intlService.parseDate(date) || toDate(date);\n } else {\n result = toDate(date);\n }\n return result;\n}\n","import parseDate from './parse-date';\n\nimport { isArray } from '../common';\n\nexport default function parseDates(intlService, dates) {\n if (isArray(dates)) {\n const result = [];\n for (let idx = 0; idx < dates.length; idx++) {\n result.push(parseDate(intlService, dates[idx]));\n }\n\n return result;\n }\n\n return parseDate(intlService, dates);\n}","import { TIME_PER_DAY } from './constants';\nimport addTicks from './add-ticks';\n\nexport default function startOfWeek(date, weekStartDay = 0) {\n let daysToSubtract = 0;\n let day = date.getDay();\n\n if (!isNaN(day)) {\n while (day !== weekStartDay) {\n if (day === 0) {\n day = 6;\n } else {\n day--;\n }\n\n daysToSubtract++;\n }\n }\n\n return addTicks(date, -daysToSubtract * TIME_PER_DAY);\n}","export default function toDate(value) {\n let result;\n\n if (value instanceof Date) {\n result = value;\n } else if (value) {\n result = new Date(value);\n }\n\n return result;\n}","import { isArray } from '../common';\nimport toDate from './to-date';\n\nexport default function toTime(value) {\n if (isArray(value)) {\n let result = [];\n for (let idx = 0; idx < value.length; idx++) {\n result.push(toTime(value[idx]));\n }\n\n return result;\n } else if (value) {\n return toDate(value).getTime();\n }\n}","import {\n drawing,\n Class,\n logToConsole\n} from '@progress/kendo-drawing';\n\nconst {\n append,\n bindEvents,\n defined,\n deg,\n elementOffset,\n elementSize,\n eventCoordinates,\n eventElement,\n hashKey,\n last,\n limitValue,\n objectKey,\n rad,\n round,\n unbindEvents,\n valueOrDefault\n} = drawing.util;\n\nexport {\n append,\n bindEvents,\n Class,\n defined,\n deg,\n elementOffset,\n elementSize,\n eventCoordinates,\n eventElement,\n hashKey,\n last,\n limitValue,\n logToConsole,\n objectKey,\n rad,\n round,\n unbindEvents,\n valueOrDefault\n};\n","export { default as Gauge } from './gauges/gauge';\n\nexport { default as LinearGauge } from './gauges/linear/linear-gauge';\nexport { default as LinearPointer } from './gauges/linear/linear-pointer';\nexport { default as ArrowLinearPointer } from './gauges/linear/arrow-linear-pointer';\nexport { default as BarLinearPointer } from './gauges/linear/bar-linear-pointer';\nexport { default as LinearScale } from './gauges/linear/linear-scale';\n\nexport { default as RadialGauge } from './gauges/radial/radial-gauge';\nexport { default as RadialPointer } from './gauges/radial/radial-pointer';\nexport { default as RadialScale } from './gauges/radial/radial-scale';\n\nexport { default as ArcGauge } from './gauges/arc/arc-gauge';\nexport { default as RangePointer } from './gauges/arc/range-pointer';\nexport { default as ArcScale } from './gauges/arc/arc-scale';\n\nexport { default as CircularGauge } from './gauges/circular/circular-gauge';\n","import RadialGauge from '../radial/radial-gauge';\nimport ArcScale from './arc-scale';\nimport RangePointer from './range-pointer';\n\nimport { deepExtend } from '../../common';\n\n\nclass ArcGauge extends RadialGauge {\n\n _initTheme(theme) {\n super._initTheme(theme);\n\n this.options.color = this.options.color || (this.theme.pointer || {}).color;\n }\n\n _createModel() {\n const options = this.options;\n const scale = this.scale = new ArcScale(options.scale, this.contextService);\n\n const pointer = new RangePointer(scale, deepExtend({}, {\n colors: options.colors,\n color: options.color,\n value: options.value,\n opacity: options.opacity,\n animation: {\n transitions: options.transitions\n }\n }));\n\n this.pointers = [ pointer ];\n }\n\n _buildPointers(pointers) {\n for (let i = 0; i < pointers.length; i++) {\n const current = pointers[i];\n current.render();\n\n current.value(current.options.value);\n }\n }\n\n _setValueOptions(value) {\n this.options.value = value;\n }\n\n currentColor() {\n const pointer = this.pointers[0];\n if (pointer) {\n return pointer.currentColor();\n }\n }\n\n centerLabelPosition(width, height) {\n const size = this.getSize();\n const center = this.scale.arc.center;\n\n let left = center.x - width / 2;\n let top = center.y - height / 2;\n\n if (width < size.width) {\n const right = left + width;\n\n left = Math.max(left, 0);\n\n if (right > size.width) {\n left -= right - size.width;\n }\n }\n\n if (height < size.height) {\n const bbox = this.scale.bbox;\n const yLimit = bbox.bottomRight().y;\n const bottom = top + height;\n\n top = Math.max(top, bbox.origin.y);\n\n if (bottom > yLimit) {\n top -= bottom - yLimit;\n }\n }\n\n return {\n left: left,\n top: top\n };\n }\n}\n\nexport default ArcGauge;","import RadialScale from '../radial/radial-scale';\nimport { setDefaultOptions } from '../../common';\n\nclass ArcScale extends RadialScale {\n\n rangeSegments() {\n const { min, max, rangePlaceholderColor, rangeLineCap } = this.options;\n\n return [ { from: min, to: max, color: rangePlaceholderColor, lineCap: rangeLineCap } ];\n }\n\n hasRanges() {\n return true;\n }\n\n placeholderRangeAngle(angle) {\n const geometry = this.ranges.children[0].geometry();\n\n if (this.options.reverse) {\n geometry.setEndAngle(angle);\n } else {\n geometry.setStartAngle(angle);\n }\n }\n\n addRange(from, to, options) {\n const reverse = this.options.reverse;\n\n const startAngle = this.slotAngle(reverse ? to : from);\n const endAngle = this.slotAngle(reverse ? from : to);\n\n const range = this.createRange(startAngle, endAngle, this.getRangeRadius(), options);\n\n this.ranges.append(range);\n\n return range;\n }\n}\n\nsetDefaultOptions(ArcScale, {\n min: 0,\n max: 100,\n\n majorTicks: {\n visible: false\n },\n\n minorTicks: {\n visible: false\n },\n\n labels: {\n visible: false\n },\n\n startAngle: 0,\n endAngle: 180,\n rangeLineCap: 'round'\n});\n\nexport default ArcScale;","import { drawing, Color } from '@progress/kendo-drawing';\nimport { interpolateValue, setDefaultOptions, round, limitValue } from '../../common';\nimport { ANGULAR_SPEED, LINEAR, RADIAL_RANGE_POINTER } from '../constants';\n\nconst MAX_DURATION = 800;\n\nclass RangePointerAnimation extends drawing.Animation {\n constructor(element, options) {\n super(element, options);\n\n const animationOptions = this.options;\n const duration = (Math.abs(animationOptions.newAngle - animationOptions.oldAngle) / animationOptions.duration) * 1000;\n animationOptions.duration = limitValue(duration, ANGULAR_SPEED, MAX_DURATION);\n\n const startColor = element.elements.options.get(\"stroke.color\");\n const color = element.currentColor();\n if (startColor !== color) {\n this.startColor = new Color(startColor);\n this.color = new Color(color);\n }\n }\n\n step(pos) {\n const { options, startColor, color } = this;\n const angle = interpolateValue(options.oldAngle, options.newAngle, pos);\n this.element.angle(angle);\n\n if (color) {\n const r = round(interpolateValue(startColor.r, color.r, pos));\n const g = round(interpolateValue(startColor.g, color.g, pos));\n const b = round(interpolateValue(startColor.b, color.b, pos));\n\n this.element.stroke(new Color(r, g, b).toHex());\n }\n }\n}\n\nsetDefaultOptions(RangePointerAnimation, {\n easing: LINEAR,\n duration: ANGULAR_SPEED\n});\n\ndrawing.AnimationFactory.current.register(RADIAL_RANGE_POINTER, RangePointerAnimation);\n\nexport default RangePointerAnimation;","import { setDefaultOptions, deepExtend, isNumber } from '../../common';\nimport { ANGULAR_SPEED, RADIAL_RANGE_POINTER } from '../constants';\nimport Pointer from '../pointer';\nimport RangePointerAnimation from './range-pointer-animation';\n\nclass RangePointer extends Pointer {\n\n repaint() {\n const { scale, options } = this;\n const oldAngle = scale.slotAngle(options._oldValue);\n const newAngle = scale.slotAngle(options.value);\n\n if (this.animation) {\n this.animation.abort();\n }\n\n if (options.animation.transitions === false) {\n this.angle(newAngle);\n this.stroke(this.currentColor());\n } else {\n this.animation = new RangePointerAnimation(this, deepExtend(options.animation, {\n oldAngle: oldAngle,\n newAngle: newAngle\n }));\n\n this.animation.play();\n }\n }\n\n angle(value) {\n const geometry = this.elements.geometry();\n if (this.scale.options.reverse) {\n geometry.setStartAngle(value);\n } else {\n geometry.setEndAngle(value);\n }\n this.scale.placeholderRangeAngle(value);\n }\n\n stroke(value) {\n this.elements.stroke(value);\n }\n\n render() {\n if (this.elements) {\n return;\n }\n\n const { scale, options } = this;\n\n if (options.animation !== false) {\n deepExtend(options.animation, {\n startAngle: 0,\n center: scale.arc.center,\n reverse: scale.options.reverse\n });\n }\n\n this.elements = scale.addRange(scale.options.min, this.options.value, {\n color: this.currentColor(),\n opacity: options.opacity,\n lineCap: scale.options.rangeLineCap\n });\n }\n\n currentColor() {\n const { min, max } = this.scale.options;\n const { colors, color, value } = this.options;\n const currentValue = isNumber(value) ? value : min;\n\n if (colors) {\n for (let idx = 0; idx < colors.length; idx++) {\n const { color: rangeColor, from = min, to = max } = colors[idx];\n\n if (from <= currentValue && currentValue <= to) {\n return rangeColor;\n }\n }\n }\n\n return color;\n }\n\n reflow() {\n this.render();\n\n this.bbox = this.elements.bbox();\n }\n}\n\nsetDefaultOptions(RangePointer, {\n animation: {\n type: RADIAL_RANGE_POINTER,\n duration: ANGULAR_SPEED\n }\n});\n\nexport default RangePointer;\n","import ArcGauge from '../arc/arc-gauge';\n\nconst defaultStartAngle = 90;\n\nclass CircularGauge extends ArcGauge {\n _createModel() {\n const scaleOptions = this.options.scale;\n if (typeof scaleOptions.startAngle !== 'number') {\n scaleOptions.startAngle = defaultStartAngle;\n }\n\n scaleOptions.endAngle = scaleOptions.startAngle + 360;\n\n super._createModel();\n }\n}\n\nexport default CircularGauge;\n","const ANGULAR_SPEED = 150;\nconst LINEAR_SPEED = 250;\nconst ARROW = \"arrow\";\nconst ARROW_POINTER = \"arrowPointer\";\nconst BAR_POINTER = \"barPointer\";\nconst DEFAULT_HEIGHT = 200;\nconst DEFAULT_LINE_WIDTH = 0.5;\nconst DEFAULT_WIDTH = 200;\nconst DEGREE = Math.PI / 180;\nconst INSIDE = \"inside\";\nconst LINEAR = \"linear\";\nconst OUTSIDE = \"outside\";\nconst RADIAL_POINTER = \"radialPointer\";\nconst RADIAL_RANGE_POINTER = \"radialRangePointer\";\n\nexport {\n ANGULAR_SPEED, LINEAR_SPEED, ARROW, ARROW_POINTER, BAR_POINTER,\n DEFAULT_HEIGHT, DEFAULT_LINE_WIDTH, DEFAULT_WIDTH,\n DEGREE, INSIDE, LINEAR, OUTSIDE, RADIAL_POINTER, RADIAL_RANGE_POINTER\n};","import { geometry as geo, drawing } from '@progress/kendo-drawing';\nimport { Class, elementSize, setDefaultOptions, deepExtend, isArray, isNumber } from '../common';\nimport { DEFAULT_WIDTH, DEFAULT_HEIGHT } from './constants';\nimport { ChartService } from '../services';\nimport { unpad } from './utils';\n\nconst DEFAULT_MARGIN = 5;\nconst { Path, Surface } = drawing;\n\nclass Gauge extends Class {\n\n constructor(element, userOptions, theme, context = {}) {\n super();\n\n this.element = element;\n this.theme = theme;\n this.contextService = new ChartService(this, context);\n this._originalOptions = deepExtend({}, this.options, userOptions);\n this.options = deepExtend({}, this._originalOptions);\n this._initTheme(theme);\n\n this.redraw();\n }\n\n destroy() {\n if (this.surface) {\n this.surface.destroy();\n this.surface = null;\n }\n\n delete this.element;\n delete this.surfaceElement;\n }\n\n value(pointerValue) {\n const pointer = this.pointers[0];\n\n if (arguments.length === 0) {\n return pointer.value();\n }\n\n pointer.value(pointerValue);\n this._setValueOptions(pointerValue);\n }\n\n _draw() {\n const surface = this.surface;\n\n surface.clear();\n surface.draw(this._visuals);\n }\n\n exportVisual() {\n return this._visuals;\n }\n\n allValues(values) {\n const pointers = this.pointers;\n const allValues = [];\n\n if (arguments.length === 0) {\n for (let i = 0; i < pointers.length; i++) {\n allValues.push(pointers[i].value());\n }\n\n return allValues;\n }\n\n if (isArray(values)) {\n for (let i = 0; i < values.length; i++) {\n if (isNumber(values[i])) {\n pointers[i].value(values[i]);\n }\n }\n }\n\n this._setValueOptions(values);\n }\n\n _setValueOptions(values) {\n const pointers = [].concat(this.options.pointer);\n const arrayValues = [].concat(values);\n\n for (let i = 0; i < arrayValues.length; i++) {\n pointers[i].value = arrayValues[i];\n }\n }\n\n resize() {\n this.noTransitionsRedraw();\n }\n\n noTransitionsRedraw() {\n const transitions = this.options.transitions;\n\n this._toggleTransitions(false);\n\n this.redraw();\n\n this._toggleTransitions(transitions);\n }\n\n redraw() {\n const size = this._surfaceSize();\n const wrapper = new geo.Rect([ 0, 0 ], [ size.width, size.height ]);\n\n this._initSurface();\n\n this.gaugeArea = this._createGaugeArea();\n\n this._createModel();\n\n const bbox = unpad(wrapper.bbox(), this._gaugeAreaMargin);\n this.reflow(bbox);\n }\n\n setOptions(options, theme) {\n this._originalOptions = deepExtend(this._originalOptions, options);\n this.options = deepExtend({}, this._originalOptions);\n\n this._initTheme(theme);\n\n this.redraw();\n }\n\n setDirection(rtl) {\n this.contextService.rtl = Boolean(rtl);\n if (this.surface && this.surface.type === 'svg') {\n this.surface.destroy();\n this.surface = null;\n }\n }\n\n setIntlService(intl) {\n this.contextService.intl = intl;\n }\n\n _initTheme(theme) {\n let currentTheme = theme || this.theme || {};\n this.theme = currentTheme;\n\n this.options = deepExtend({}, currentTheme, this.options);\n const options = this.options;\n const pointer = options.pointer;\n\n if (isArray(pointer)) {\n const pointers = [];\n for (let i = 0; i < pointer.length; i++) {\n pointers.push(deepExtend({}, currentTheme.pointer, pointer[i]));\n }\n options.pointer = pointers;\n }\n }\n\n _createGaugeArea() {\n const options = this.options.gaugeArea;\n const size = this.surface.size();\n const border = options.border || {};\n let areaGeometry = new geo.Rect([ 0, 0 ], [ size.width, size.height ]);\n\n this._gaugeAreaMargin = options.margin || DEFAULT_MARGIN;\n\n if (border.width > 0) {\n areaGeometry = unpad(areaGeometry, border.width);\n }\n\n const gaugeArea = Path.fromRect(areaGeometry, {\n stroke: {\n color: border.width ? border.color : \"\",\n width: border.width,\n dashType: border.dashType,\n lineJoin: \"round\",\n lineCap: \"round\"\n },\n fill: {\n color: options.background\n }\n });\n\n return gaugeArea;\n }\n\n _initSurface() {\n const { options, surface } = this;\n const element = this._surfaceElement();\n const size = this._surfaceSize();\n\n elementSize(element, size);\n\n if (!surface || surface.options.type !== options.renderAs) {\n if (surface) {\n surface.destroy();\n }\n\n this.surface = Surface.create(element, {\n type: options.renderAs\n });\n } else {\n this.surface.clear();\n this.surface.resize();\n }\n }\n\n _surfaceSize() {\n const options = this.options;\n const size = this._getSize();\n\n if (options.gaugeArea) {\n deepExtend(size, options.gaugeArea);\n }\n\n return size;\n }\n\n _surfaceElement() {\n if (!this.surfaceElement) {\n this.surfaceElement = document.createElement('div');\n this.element.appendChild(this.surfaceElement);\n }\n\n return this.surfaceElement;\n }\n\n getSize() {\n return this._getSize();\n }\n\n _getSize() {\n const element = this.element;\n const defaultSize = this._defaultSize();\n let width = element.offsetWidth;\n let height = element.offsetHeight;\n\n if (!width) {\n width = defaultSize.width;\n }\n\n if (!height) {\n height = defaultSize.height;\n }\n\n return { width: width, height: height };\n }\n\n _defaultSize() {\n return {\n width: DEFAULT_WIDTH,\n height: DEFAULT_HEIGHT\n };\n }\n\n _toggleTransitions(value) {\n this.options.transitions = value;\n for (let i = 0; i < this.pointers.length; i++) {\n this.pointers[i].options.animation.transitions = value;\n }\n }\n}\n\nsetDefaultOptions(Gauge, {\n plotArea: {},\n theme: \"default\",\n renderAs: \"\",\n pointer: {},\n scale: {},\n gaugeArea: {}\n});\n\nexport default Gauge;","import { geometry, drawing } from '@progress/kendo-drawing';\nimport { interpolateValue, setDefaultOptions } from '../../common';\nimport { ARROW_POINTER, LINEAR_SPEED, LINEAR } from '../constants';\n\nclass ArrowLinearPointerAnimation extends drawing.Animation {\n\n setup() {\n const options = this.options;\n const { margin, from, to, vertical } = options;\n const axis = vertical ? \"x1\" : \"y1\";\n\n if (options.mirror === vertical) {\n from[axis] -= margin; to[axis] -= margin;\n } else {\n from[axis] += margin; to[axis] += margin;\n }\n\n const fromScale = this.fromScale = new geometry.Point(from.x1, from.y1);\n const toScale = this.toScale = new geometry.Point(to.x1, to.y1);\n\n if (options.duration !== 0) {\n options.duration = Math.max((fromScale.distanceTo(toScale) / options.duration) * 1000, 1);\n }\n }\n\n step(pos) {\n const translateX = interpolateValue(this.fromScale.x, this.toScale.x, pos);\n const translateY = interpolateValue(this.fromScale.y, this.toScale.y, pos);\n\n this.element.transform(geometry.transform().translate(translateX, translateY));\n }\n}\n\nsetDefaultOptions(ArrowLinearPointerAnimation, {\n easing: LINEAR,\n duration: LINEAR_SPEED\n});\n\ndrawing.AnimationFactory.current.register(ARROW_POINTER, ArrowLinearPointerAnimation);\n\nexport default ArrowLinearPointerAnimation;","import { geometry as geo, drawing } from '@progress/kendo-drawing';\nimport { deepExtend, defined } from '../../common';\nimport { ARROW_POINTER } from '../constants';\nimport LinearPointer from './linear-pointer';\nimport ArrowLinearPointerAnimation from './arrow-linear-pointer-animation';\n\nconst Point = geo.Point;\nconst Path = drawing.Path;\n\nclass ArrowLinearPointer extends LinearPointer {\n constructor(scale, options) {\n super(scale, options);\n\n if (!defined(this.options.size)) {\n this.options.size = this.scale.options.majorTicks.size * 0.6;\n }\n }\n\n pointerShape() {\n const { scale, options: { size } } = this;\n const halfSize = size / 2;\n const sign = (scale.options.mirror ? -1 : 1);\n let shape;\n\n if (scale.options.vertical) {\n shape = [\n new Point(0, 0 - halfSize), new Point(0 - sign * size, 0), new Point(0, 0 + halfSize)\n ];\n } else {\n shape = [\n new Point(0 - halfSize, 0), new Point(0, 0 + sign * size), new Point(0 + halfSize, 0)\n ];\n }\n\n return shape;\n }\n\n repaint() {\n const { scale, options } = this;\n const animation = new ArrowLinearPointerAnimation(this.elements, deepExtend(options.animation, {\n vertical: scale.options.vertical,\n mirror: scale.options.mirror,\n margin: this._margin(options.margin),\n from: scale.getSlot(options._oldValue),\n to: scale.getSlot(options.value)\n }));\n\n if (options.animation.transitions === false) {\n animation.options.duration = 0;\n }\n\n animation.setup();\n animation.play();\n }\n\n render() {\n const { scale, options } = this;\n const elementOptions = this.getElementOptions();\n const shape = this.pointerShape(options.value);\n\n options.animation.type = ARROW_POINTER;\n\n const elements = new Path({\n stroke: elementOptions.stroke,\n fill: elementOptions.fill\n }).moveTo(shape[0]).lineTo(shape[1]).lineTo(shape[2]).close();\n\n const slot = scale.getSlot(options.value);\n elements.transform(geo.transform().translate(slot.x1, slot.y1));\n\n this.elements = elements;\n\n return elements;\n }\n}\n\nexport default ArrowLinearPointer;","import { drawing } from '@progress/kendo-drawing';\nimport { interpolateValue, setDefaultOptions } from '../../common';\nimport { X, Y } from '../../common/constants';\nimport { BAR_POINTER, LINEAR_SPEED, LINEAR } from '../constants';\n\nclass BarLinearPointerAnimation extends drawing.Animation {\n\n setup() {\n const options = this.options;\n const axis = this.axis = options.vertical ? Y : X;\n const to = this.to = options.newPoints[0][axis];\n const from = this.from = options.oldPoints[0][axis];\n\n if (options.duration !== 0) {\n options.duration = Math.max((Math.abs(to - from) / options.speed) * 1000, 1);\n }\n\n this._set(from);\n }\n\n step(pos) {\n const value = interpolateValue(this.from, this.to, pos);\n this._set(value);\n }\n\n _set(value) {\n const setter = \"set\" + this.axis.toUpperCase();\n const points = this.options.newPoints;\n\n points[0][setter](value);\n points[1][setter](value);\n }\n}\n\nsetDefaultOptions(BarLinearPointerAnimation, {\n easing: LINEAR,\n speed: LINEAR_SPEED\n});\n\ndrawing.AnimationFactory.current.register(BAR_POINTER, BarLinearPointerAnimation);\n\nexport default BarLinearPointerAnimation;","import { geometry as geo, drawing } from '@progress/kendo-drawing';\nimport { deepExtend, defined } from '../../common';\nimport { X, Y } from '../../common/constants';\nimport LinearPointer from './linear-pointer';\nimport BarLinearPointerAnimation from './bar-linear-pointer-animation';\n\nconst { Group, Path } = drawing;\n\nclass BarLinearPointer extends LinearPointer {\n constructor(scale, options) {\n super(scale, options);\n\n if (!defined(this.options.size)) {\n this.options.size = this.scale.options.majorTicks.size * 0.3;\n }\n }\n\n pointerShape(value) {\n const { scale, options } = this;\n const { mirror, vertical } = scale.options;\n const dir = mirror === vertical ? -1 : 1;\n const size = options.size * dir;\n const minSlot = scale.getSlot(scale.options.min);\n const slot = scale.getSlot(value);\n const axis = vertical ? Y : X;\n const sizeAxis = vertical ? X : Y;\n const margin = this._margin() * dir;\n\n const p1 = new geo.Point();\n p1[axis] = minSlot[axis + \"1\"];\n p1[sizeAxis] = minSlot[sizeAxis + \"1\"];\n\n const p2 = new geo.Point();\n p2[axis] = slot[axis + \"1\"];\n p2[sizeAxis] = slot[sizeAxis + \"1\"];\n\n if (vertical) {\n p1.translate(margin, 0);\n p2.translate(margin, 0);\n } else {\n p1.translate(0, margin);\n p2.translate(0, margin);\n }\n\n const p3 = p2.clone();\n const p4 = p1.clone();\n\n if (vertical) {\n p3.translate(size, 0);\n p4.translate(size, 0);\n } else {\n p3.translate(0, size);\n p4.translate(0, size);\n }\n\n return [ p1, p2, p3, p4 ];\n }\n\n repaint() {\n const { scale, options } = this;\n const shape = this.pointerShape(options.value);\n const pointerPath = this.pointerPath;\n const oldShape = this.pointerShape(options._oldValue);\n\n pointerPath.moveTo(shape[0]).lineTo(shape[1]).lineTo(shape[2]).lineTo(shape[3]).close();\n\n const animation = new BarLinearPointerAnimation(pointerPath, deepExtend(options.animation, {\n reverse: scale.options.reverse,\n vertical: scale.options.vertical,\n oldPoints: [ oldShape[1], oldShape[2] ],\n newPoints: [ shape[1], shape[2] ]\n }));\n\n if (options.animation.transitions === false) {\n animation.options.duration = 0;\n }\n\n animation.setup();\n animation.play();\n }\n\n render() {\n const group = new Group();\n const elementOptions = this.getElementOptions();\n\n if (this.options.track.visible) {\n group.append(this.renderTrack());\n }\n\n const pointer = this.pointerPath = new Path({\n stroke: elementOptions.stroke,\n fill: elementOptions.fill\n });\n\n group.append(pointer);\n\n this.elements = group;\n\n return group;\n }\n\n renderTrack() {\n const trackOptions = this.options.track;\n const border = trackOptions.border || {};\n const trackBox = this.trackBox.clone().pad(border.width || 0);\n\n return new Path.fromRect(trackBox.toRect(), {\n fill: {\n color: trackOptions.color,\n opacity: trackOptions.opacity\n },\n stroke: {\n color: border.width ? border.color || trackOptions.color : \"\",\n width: border.width,\n dashType: border.dashType\n }\n });\n }\n}\n\nexport default BarLinearPointer;","import { drawing } from '@progress/kendo-drawing';\nimport { Box } from '../../core';\nimport { setDefaultOptions, deepExtend, isArray } from '../../common';\nimport { ARROW, DEFAULT_WIDTH, DEFAULT_HEIGHT } from '../constants';\nimport Gauge from '../gauge';\nimport LinearScale from './linear-scale';\nimport ArrowLinearPointer from './arrow-linear-pointer';\nimport BarLinearPointer from './bar-linear-pointer';\n\nconst DEFAULT_MIN_WIDTH = 60;\nconst DEFAULT_MIN_HEIGHT = 60;\n\nconst Group = drawing.Group;\n\nclass LinearGauge extends Gauge {\n\n reflow(bbox) {\n const pointers = this.pointers;\n const bboxX = bbox.origin.x;\n const bboxY = bbox.origin.y;\n\n const box = new Box(bboxX, bboxY, bboxX + bbox.width(), bboxY + bbox.height());\n\n this.scale.reflow(box);\n this._shrinkScaleWidth(box);\n\n for (let i = 0; i < pointers.length; i++) {\n pointers[i].reflow();\n }\n\n this.bbox = this._getBox(box);\n this._alignElements();\n this._shrinkElements();\n this._buildVisual();\n this._draw();\n }\n\n _buildVisual() {\n const visuals = new Group();\n const scaleElements = this.scale.render();\n const pointers = this.pointers;\n\n visuals.append(this.gaugeArea);\n visuals.append(scaleElements);\n\n for (let i = 0; i < pointers.length; i++) {\n const current = pointers[i];\n visuals.append(current.render());\n current.value(current.options.value);\n }\n\n this._visuals = visuals;\n }\n\n _createModel() {\n const options = this.options;\n const scale = this.scale = new LinearScale(options.scale, this.contextService);\n\n this.pointers = [];\n\n let pointers = options.pointer;\n pointers = isArray(pointers) ? pointers : [ pointers ];\n\n for (let i = 0; i < pointers.length; i++) {\n const currentOptions = deepExtend({}, pointers[i], {\n animation: {\n transitions: options.transitions\n }\n });\n const pointerType = currentOptions.shape === ARROW ? ArrowLinearPointer : BarLinearPointer;\n\n this.pointers.push(new pointerType(scale, currentOptions));\n }\n }\n\n _defaultSize() {\n const vertical = this.options.scale.vertical;\n\n return {\n width: vertical ? DEFAULT_MIN_WIDTH : DEFAULT_WIDTH,\n height: vertical ? DEFAULT_HEIGHT : DEFAULT_MIN_HEIGHT\n };\n }\n\n _getBox(box) {\n const { scale, pointers } = this;\n const boxCenter = box.center();\n let plotAreaBox = pointers[0].box.clone().wrap(scale.box);\n\n for (let i = 0; i < pointers.length; i++) {\n plotAreaBox.wrap(pointers[i].box.clone());\n }\n\n let size;\n if (scale.options.vertical) {\n size = plotAreaBox.width() / 2;\n plotAreaBox = new Box(\n boxCenter.x - size, box.y1,\n boxCenter.x + size, box.y2\n );\n } else {\n size = plotAreaBox.height() / 2;\n plotAreaBox = new Box(\n box.x1, boxCenter.y - size,\n box.x2, boxCenter.y + size\n );\n }\n\n return plotAreaBox;\n }\n\n _alignElements() {\n const { scale, pointers } = this;\n const scaleBox = scale.box;\n const box = pointers[0].box.clone().wrap(scale.box);\n const plotAreaBox = this.bbox;\n\n for (let i = 0; i < pointers.length; i++) {\n box.wrap(pointers[i].box.clone());\n }\n\n let diff;\n if (scale.options.vertical) {\n diff = plotAreaBox.center().x - box.center().x;\n scale.reflow(new Box(\n scaleBox.x1 + diff, plotAreaBox.y1,\n scaleBox.x2 + diff, plotAreaBox.y2\n ));\n } else {\n diff = plotAreaBox.center().y - box.center().y;\n scale.reflow(new Box(\n scaleBox.x1, scaleBox.y1 + diff,\n scaleBox.x2, scaleBox.y2 + diff\n ));\n }\n\n for (let i = 0; i < pointers.length; i++) {\n pointers[i].reflow(this.bbox);\n }\n }\n\n _shrinkScaleWidth(bbox) {\n const { scale } = this;\n if (!scale.options.vertical) {\n const overflow = scale.contentBox().width() - bbox.width();\n if (overflow > 0) {\n scale.box.shrink(overflow, 0);\n scale.box.alignTo(bbox, 'center');\n scale.reflow(scale.box);\n }\n }\n }\n\n _shrinkElements() {\n const { scale, pointers } = this;\n const scaleBox = scale.box.clone();\n const pos = scale.options.vertical ? \"y\" : \"x\";\n const pointerBox = pointers[0].box;\n\n for (let i = 0; i < pointers.length; i++) {\n pointerBox.wrap(pointers[i].box.clone());\n }\n\n scaleBox[pos + 1] += Math.max(scaleBox[pos + 1] - pointerBox[pos + 1], 0);\n scaleBox[pos + 2] -= Math.max(pointerBox[pos + 2] - scaleBox[pos + 2], 0);\n\n scale.reflow(scaleBox);\n\n for (let i = 0; i < pointers.length; i++) {\n pointers[i].reflow(this.bbox);\n }\n }\n}\n\nsetDefaultOptions(LinearGauge, {\n transitions: true,\n gaugeArea: {\n background: \"\"\n },\n scale: {\n vertical: true\n }\n});\n\nexport default LinearGauge;","import { setDefaultOptions, deepExtend, defined, getSpacing } from '../../common';\nimport { Box } from '../../core';\nimport { BLACK } from '../../common/constants';\nimport { BAR_POINTER } from '../constants';\nimport Pointer from '../pointer';\n\nclass LinearPointer extends Pointer {\n constructor(scale, options) {\n super(scale, options);\n\n this.options = deepExtend({\n track: {\n visible: defined(options.track)\n }\n }, this.options);\n }\n\n reflow() {\n const { options, scale } = this;\n const { mirror, vertical } = scale.options;\n const scaleLine = scale.lineBox();\n const trackSize = options.track.size || options.size;\n const pointerHalfSize = options.size / 2;\n const margin = getSpacing(options.margin);\n let space = vertical ?\n margin[mirror ? \"left\" : \"right\"] :\n margin[mirror ? \"bottom\" : \"top\"];\n let pointerBox, pointerRangeBox, trackBox;\n\n space = mirror ? -space : space;\n\n if (vertical) {\n trackBox = new Box(\n scaleLine.x1 + space, scaleLine.y1,\n scaleLine.x1 + space, scaleLine.y2);\n\n if (mirror) {\n trackBox.x1 -= trackSize;\n } else {\n trackBox.x2 += trackSize;\n }\n\n if (options.shape !== BAR_POINTER) {\n pointerRangeBox = new Box(\n scaleLine.x2 + space, scaleLine.y1 - pointerHalfSize,\n scaleLine.x2 + space, scaleLine.y2 + pointerHalfSize\n );\n pointerBox = pointerRangeBox;\n }\n } else {\n trackBox = new Box(\n scaleLine.x1, scaleLine.y1 - space,\n scaleLine.x2, scaleLine.y1 - space);\n\n if (mirror) {\n trackBox.y2 += trackSize;\n } else {\n trackBox.y1 -= trackSize;\n }\n\n if (options.shape !== BAR_POINTER) {\n pointerRangeBox = new Box(\n scaleLine.x1 - pointerHalfSize, scaleLine.y1 - space,\n scaleLine.x2 + pointerHalfSize, scaleLine.y1 - space\n );\n pointerBox = pointerRangeBox;\n }\n }\n\n this.trackBox = trackBox;\n this.pointerRangeBox = pointerRangeBox;\n this.box = pointerBox || trackBox.clone().pad(options.border.width);\n }\n\n getElementOptions() {\n const options = this.options;\n\n return {\n fill: {\n color: options.color,\n opacity: options.opacity\n },\n stroke: defined(options.border) ? {\n color: options.border.width ? options.border.color || options.color : \"\",\n width: options.border.width,\n dashType: options.border.dashType,\n opacity: options.opacity\n } : null\n };\n }\n\n _margin() {\n const { scale, options } = this;\n const { mirror, vertical } = scale.options;\n const margin = getSpacing(options.margin);\n\n const space = vertical ?\n margin[mirror ? \"left\" : \"right\"] :\n margin[mirror ? \"bottom\" : \"top\"];\n\n return space;\n }\n}\n\nsetDefaultOptions(LinearPointer, {\n shape: BAR_POINTER,\n\n track: {\n border: {\n width: 1\n }\n },\n\n color: BLACK,\n border: {\n width: 1\n },\n opacity: 1,\n\n margin: getSpacing(3),\n animation: {\n type: BAR_POINTER\n },\n visible: true\n});\n\nexport default LinearPointer;","import { geometry as geo, drawing } from '@progress/kendo-drawing';\nimport { setDefaultOptions, deepExtend, defined } from '../../common';\nimport { BLACK } from '../../common/constants';\nimport { NumericAxis } from '../../core';\nimport { DEFAULT_LINE_WIDTH, INSIDE } from '../constants';\nimport { autoMajorUnit } from '../../core';\nimport { buildLabelElement, getRange } from '../utils';\n\nconst { Path, Group } = drawing;\nconst Point = geo.Point;\n\nfunction renderAxisTick(tickRenderOptions, tickOptions) {\n const { position, tickX, tickY } = tickRenderOptions;\n let start, end;\n\n if (tickRenderOptions.vertical) {\n start = new Point(tickX, position);\n end = new Point(tickX + tickOptions.size, position);\n } else {\n start = new Point(position, tickY);\n end = new Point(position, tickY + tickOptions.size);\n }\n\n const tickPath = new Path({\n stroke: {\n color: tickOptions.color,\n width: tickOptions.width\n }\n }).moveTo(start).lineTo(end);\n\n return tickPath;\n}\n\nfunction renderTicks(tickGroup, tickPositions, tickRenderOptions, tickOptions) {\n const count = tickPositions.length;\n\n if (tickOptions.visible) {\n const { mirror, lineBox } = tickRenderOptions;\n for (let i = tickOptions.skip; i < count; i += tickOptions.step) {\n if (i % tickOptions.skipUnit === 0) {\n continue;\n }\n\n tickRenderOptions.tickX = mirror ? lineBox.x2 : lineBox.x2 - tickOptions.size;\n tickRenderOptions.tickY = mirror ? lineBox.y1 - tickOptions.size : lineBox.y1;\n tickRenderOptions.position = tickPositions[i];\n\n tickGroup.append(renderAxisTick(tickRenderOptions, tickOptions));\n }\n }\n}\n\nclass LinearScale extends NumericAxis {\n constructor(options, service) {\n let scaleOptions = options || {};\n if (!defined(scaleOptions.reverse) && scaleOptions.vertical === false && (service || {}).rtl) {\n scaleOptions = Object.assign({}, scaleOptions, {\n reverse: true\n });\n }\n\n super(0, 1, scaleOptions, service);\n\n this.options.minorUnit = this.options.minorUnit || this.options.majorUnit / 10;\n }\n\n initUserOptions(options) {\n let scaleOptions = deepExtend({}, this.options, options);\n scaleOptions = deepExtend({}, scaleOptions , { labels: { mirror: scaleOptions.mirror } });\n scaleOptions.majorUnit = scaleOptions.majorUnit || autoMajorUnit(scaleOptions.min, scaleOptions.max);\n\n return scaleOptions;\n }\n\n initFields() {\n }\n\n render() {\n const elements = this.elements = new Group();\n const labels = this.renderLabels();\n const scaleLine = this.renderLine();\n const scaleTicks = this.renderTicks();\n const ranges = this.renderRanges();\n\n elements.append(scaleLine, labels, scaleTicks, ranges);\n\n return elements;\n }\n\n renderRanges() {\n const options = this.options;\n const { min, max, vertical, labels: { mirror } } = options;\n const ranges = options.ranges || [];\n const elements = new Group();\n const count = ranges.length;\n const rangeSize = options.rangeSize || options.minorTicks.size / 2;\n\n for (let i = 0; i < count; i++) {\n const range = getRange(ranges[i], min, max);\n const slot = this.getSlot(range.from, range.to);\n const slotX = vertical ? this.lineBox() : slot;\n const slotY = vertical ? slot : this.lineBox();\n if (vertical) {\n slotX.x1 -= rangeSize * (mirror ? -1 : 1);\n } else {\n slotY.y2 += rangeSize * (mirror ? -1 : 1);\n }\n\n elements.append(Path.fromRect(new geo.Rect([ slotX.x1, slotY.y1 ], [ slotX.x2 - slotX.x1, slotY.y2 - slotY.y1 ]), {\n fill: { color: range.color, opacity: range.opacity },\n stroke: { }\n }));\n }\n\n return elements;\n }\n\n renderLabels() {\n const { labels, options } = this;\n const elements = new Group();\n\n for (let i = 0; i < labels.length; i++) {\n elements.append(buildLabelElement(labels[i], options.labels));\n }\n\n return elements;\n }\n\n renderLine() {\n const line = this.options.line;\n const lineBox = this.lineBox();\n const elements = new Group();\n\n if (line.width > 0 && line.visible) {\n const linePath = new Path({\n stroke: {\n color: line.color,\n dashType: line.dashType,\n width: line.width\n }\n });\n\n linePath.moveTo(lineBox.x1, lineBox.y1).lineTo(lineBox.x2, lineBox.y2);\n elements.append(linePath);\n }\n\n return elements;\n }\n\n renderTicks() {\n const ticks = new Group();\n const options = this.options;\n const majorUnit = options.majorTicks.visible ? options.majorUnit : 0;\n const tickRenderOptions = {\n vertical: options.vertical,\n mirror: options.labels.mirror,\n lineBox: this.lineBox()\n };\n\n renderTicks(ticks, this.getMajorTickPositions(), tickRenderOptions, options.majorTicks);\n renderTicks(ticks, this.getMinorTickPositions(), tickRenderOptions, deepExtend({}, {\n skipUnit: majorUnit / options.minorUnit\n }, options.minorTicks));\n\n return ticks;\n }\n}\n\nsetDefaultOptions(LinearScale, {\n min: 0,\n max: 50,\n\n majorTicks: {\n size: 15,\n align: INSIDE,\n color: BLACK,\n width: DEFAULT_LINE_WIDTH,\n visible: true\n },\n\n minorTicks: {\n size: 10,\n align: INSIDE,\n color: BLACK,\n width: DEFAULT_LINE_WIDTH,\n visible: true\n },\n\n line: {\n width: DEFAULT_LINE_WIDTH\n },\n\n labels: {\n position: INSIDE,\n padding: 2\n },\n mirror: false,\n _alignLines: false\n});\n\nexport default LinearScale;","import { Class, setDefaultOptions, defined, deepExtend, limitValue } from '../common';\nimport { BLACK } from '../common/constants';\n\nclass Pointer extends Class {\n constructor(scale, userOptions) {\n super();\n\n const { min, max } = scale.options;\n const options = this.options = deepExtend({}, this.options, userOptions);\n\n options.fill = options.color;\n\n this.scale = scale;\n\n if (defined(options.value)) {\n options.value = limitValue(options.value, min, max);\n } else {\n options.value = min;\n }\n }\n\n value(newValue) {\n const options = this.options;\n const value = options.value;\n\n if (arguments.length === 0) {\n return value;\n }\n\n const { min, max } = this.scale.options;\n\n options._oldValue = defined(options._oldValue) ? options.value : min;\n options.value = limitValue(newValue, min, max);\n\n if (this.elements) {\n this.repaint();\n }\n }\n}\n\nsetDefaultOptions(Pointer, {\n color: BLACK\n});\n\nexport default Pointer;","import { geometry as geo, drawing } from '@progress/kendo-drawing';\nimport { setDefaultOptions, deepExtend, round, isArray } from '../../common';\nimport { COORD_PRECISION } from '../../common/constants';\nimport Gauge from '../gauge';\nimport RadialScale from './radial-scale';\nimport RadialPointer from './radial-pointer';\n\nconst Group = drawing.Group;\n\nclass RadialGauge extends Gauge {\n\n reflow(bbox) {\n const pointers = this.pointers;\n this.scale.reflow(bbox);\n this._initialPlotArea = this.scale.bbox;\n\n for (let i = 0; i < pointers.length; i++) {\n pointers[i].reflow(this.scale.arc);\n this._initialPlotArea = geo.Rect.union(this._initialPlotArea, pointers[i].bbox);\n }\n\n this.fitScale(bbox);\n this.alignScale(bbox);\n this._buildVisual(this.gaugeArea, pointers, this.scale);\n this._draw();\n }\n\n _buildVisual(gaugeArea, pointers, scale) {\n const visuals = this._visuals = new Group();\n\n visuals.append(gaugeArea);\n visuals.append(scale.ticks);\n visuals.append(scale.ranges);\n this._buildPointers(pointers);\n visuals.append(scale.labelElements);\n }\n\n _buildPointers(pointers) {\n for (let i = 0; i < pointers.length; i++) {\n const current = pointers[i];\n current.render();\n this._visuals.append(current.elements);\n\n current.value(current.options.value);\n }\n }\n\n fitScale(bbox) {\n const arc = this.scale.arc;\n const plotAreaBox = this._initialPlotArea;\n const step = Math.abs(this.getDiff(plotAreaBox, bbox));\n let min = round(step, COORD_PRECISION);\n let max = round(-step, COORD_PRECISION);\n let minDiff, midDiff, maxDiff, mid, oldDiff;\n let staleFlag = 0;\n let i = 0;\n\n while (i++ < 100) {\n staleFlag = (oldDiff === maxDiff) ? (staleFlag + 1) : 0;\n\n if (staleFlag > 5) {\n break;\n }\n\n if (min !== mid) {\n minDiff = this.getPlotBox(min, bbox, arc);\n if (0 <= minDiff && minDiff <= 2) {\n break;\n }\n }\n\n if (max !== mid) {\n maxDiff = this.getPlotBox(max, bbox, arc);\n if (0 <= maxDiff && maxDiff <= 2) {\n break;\n }\n }\n\n if (minDiff > 0 && maxDiff > 0) {\n mid = min * 2;\n } else if (minDiff < 0 && maxDiff < 0) {\n mid = max * 2;\n } else {\n mid = round(((min + max) / 2) || 1, COORD_PRECISION);\n }\n\n midDiff = this.getPlotBox(mid, bbox, arc);\n if (0 <= midDiff && midDiff <= 2) {\n break;\n }\n\n oldDiff = maxDiff;\n\n if (midDiff > 0) {\n max = mid;\n maxDiff = midDiff;\n } else {\n min = mid;\n minDiff = midDiff;\n }\n }\n }\n\n getPlotBox(step, bbox, arc) {\n const scale = this.scale;\n const pointers = this.pointers;\n const radius = arc.getRadiusX();\n const scaleArc = arc.clone();\n\n scaleArc.setRadiusX(radius + step).setRadiusY(radius + step);\n\n scale.arc = scaleArc;\n scale.reflow(bbox);\n this.plotBbox = scale.bbox;\n\n for (let i = 0; i < pointers.length; i++) {\n pointers[i].reflow(scaleArc);\n this.plotBbox = geo.Rect.union(this.plotBbox, pointers[i].bbox);\n }\n\n return this.getDiff(this.plotBbox, bbox);\n }\n\n getDiff(plotBox, box) {\n return Math.min(box.width() - plotBox.width(), box.height() - plotBox.height());\n }\n\n alignScale(bbox) {\n const plotBoxCenter = this.plotBbox.center();\n const boxCenter = bbox.center();\n const paddingX = plotBoxCenter.x - boxCenter.x;\n const paddingY = plotBoxCenter.y - boxCenter.y;\n const { scale, pointers } = this;\n\n scale.arc.center.x -= paddingX;\n scale.arc.center.y -= paddingY;\n\n scale.reflow(bbox);\n\n for (let i = 0; i < pointers.length; i++) {\n pointers[i].reflow(scale.arc);\n this.plotBbox = geo.Rect.union(scale.bbox, pointers[i].bbox);\n }\n }\n\n _createModel() {\n const options = this.options;\n const pointers = options.pointer;\n const scale = this.scale = new RadialScale(options.scale, this.contextService);\n\n this.pointers = [];\n\n const pointersArr = isArray(pointers) ? pointers : [ pointers ];\n for (let i = 0; i < pointersArr.length; i++) {\n const current = new RadialPointer(scale, deepExtend({}, pointersArr[i], {\n animation: {\n transitions: options.transitions\n }\n }));\n\n this.pointers.push(current);\n }\n }\n}\n\nsetDefaultOptions(RadialGauge, {\n transitions: true,\n gaugeArea: {\n background: \"\"\n }\n});\n\nexport default RadialGauge;","import { geometry, drawing } from '@progress/kendo-drawing';\nimport { interpolateValue, setDefaultOptions } from '../../common';\nimport { ANGULAR_SPEED, LINEAR, RADIAL_POINTER } from '../constants';\n\nclass RadialPointerAnimation extends drawing.Animation {\n constructor(element, options) {\n super(element, options);\n\n const animationOptions = this.options;\n\n animationOptions.duration = Math.max((Math.abs(animationOptions.newAngle - animationOptions.oldAngle) / animationOptions.duration) * 1000, 1);\n }\n\n step(pos) {\n const options = this.options;\n const angle = interpolateValue(options.oldAngle, options.newAngle, pos);\n\n this.element.transform(geometry.transform().rotate(angle, options.center));\n }\n}\n\nsetDefaultOptions(RadialPointerAnimation, {\n easing: LINEAR,\n duration: ANGULAR_SPEED\n});\n\ndrawing.AnimationFactory.current.register(RADIAL_POINTER, RadialPointerAnimation);\n\nexport default RadialPointerAnimation;","import { geometry as geo, drawing } from '@progress/kendo-drawing';\n\nimport { setDefaultOptions, deepExtend, limitValue } from '../../common';\nimport { ANGULAR_SPEED, DEGREE, DEFAULT_LINE_WIDTH, RADIAL_POINTER } from '../constants';\nimport Pointer from '../pointer';\nimport RadialPointerAnimation from './radial-pointer-animation';\n\nconst CAP_SIZE = 0.05;\nconst { Circle, Group, Path } = drawing;\n\nclass RadialPointer extends Pointer {\n\n setAngle(angle) {\n this.elements.transform(geo.transform().rotate(angle, this.center));\n }\n\n repaint() {\n const { scale, options } = this;\n const oldAngle = scale.slotAngle(options._oldValue);\n const newAngle = scale.slotAngle(options.value);\n\n if (options.animation.transitions === false) {\n this.setAngle(newAngle);\n } else {\n new RadialPointerAnimation(this.elements, deepExtend(options.animation, {\n oldAngle: oldAngle,\n newAngle: newAngle\n })).play();\n }\n }\n\n render() {\n const { scale, options } = this;\n const elements = new Group();\n\n if (options.animation !== false) {\n deepExtend(options.animation, {\n startAngle: 0,\n center: scale.arc.center,\n reverse: scale.options.reverse\n });\n }\n\n elements.append(this._renderNeedle(), this._renderCap());\n\n this.elements = elements;\n this.setAngle(DEGREE);\n\n return elements;\n }\n\n reflow(arc) {\n const center = this.center = arc.center;\n const length = limitValue(this.options.length || 1, 0.1, 1.5);\n const radius = this.radius = arc.getRadiusX() * length;\n const capSize = this.capSize = Math.round(radius * this.options.cap.size);\n\n this.bbox = geo.Rect.fromPoints(new geo.Point(center.x - capSize, center.y - capSize),\n new geo.Point(center.x + capSize, center.y + capSize));\n }\n\n _renderNeedle() {\n const minorTickSize = this.scale.options.minorTicks.size;\n const center = this.center;\n const needleColor = this.options.color;\n\n const needlePath = new Path({\n fill: { color: needleColor },\n stroke: { color: needleColor, width: DEFAULT_LINE_WIDTH }\n });\n\n needlePath.moveTo(center.x + this.radius - minorTickSize, center.y)\n .lineTo(center.x, center.y - (this.capSize / 2))\n .lineTo(center.x, center.y + (this.capSize / 2))\n .close();\n\n return needlePath;\n }\n\n _renderCap() {\n const options = this.options;\n const capColor = options.cap.color || options.color;\n const circle = new geo.Circle(this.center, this.capSize);\n\n const cap = new Circle(circle, {\n fill: { color: capColor },\n stroke: { color: capColor }\n });\n\n return cap;\n }\n}\n\nsetDefaultOptions(RadialPointer, {\n cap: {\n size: CAP_SIZE\n },\n arrow: {\n width: 16,\n height: 14\n },\n animation: {\n type: RADIAL_POINTER,\n duration: ANGULAR_SPEED\n }\n});\n\nexport default RadialPointer;\n","import { geometry as geo, drawing } from '@progress/kendo-drawing';\nimport { setDefaultOptions, deepExtend, defined, round, getSpacing } from '../../common';\nimport { BLACK, COORD_PRECISION } from '../../common/constants';\nimport { autoMajorUnit, Box, NumericAxis } from '../../core';\nimport { buildLabelElement, getRange } from '../utils';\n\nimport { DEGREE, DEFAULT_LINE_WIDTH, INSIDE, OUTSIDE } from '../constants';\n\nconst GEO_ARC_ADJUST_ANGLE = 180;\n\nconst { Arc, Path, Group } = drawing;\n\nfunction drawTicks(arc, tickAngles, unit, tickOptions) {\n const ticks = new Group();\n const center = arc.center;\n const radius = arc.getRadiusX();\n\n if (tickOptions.visible) {\n for (let i = 0; i < tickAngles.length; i++) {\n const tickStart = arc.pointAt(tickAngles[i]);\n const tickEnd = new geo.Point(center.x + radius - tickOptions.size, center.y).rotate(tickAngles[i], center);\n\n ticks.append(new Path({\n stroke: {\n color: tickOptions.color,\n width: tickOptions.width\n }\n }).moveTo(tickStart).lineTo(tickEnd));\n }\n }\n\n return ticks;\n}\n\nfunction rangeSegment(from, to, color, opacity) {\n return { from: from, to: to, color: color, opacity: opacity };\n}\n\nclass RadialScale extends NumericAxis {\n constructor(options, service) {\n super(0, 1, options, service);\n }\n\n initUserOptions(options) {\n const scaleOptions = deepExtend({}, this.options, options);\n scaleOptions.majorUnit = scaleOptions.majorUnit || autoMajorUnit(scaleOptions.min, scaleOptions.max);\n scaleOptions.minorUnit = scaleOptions.minorUnit || scaleOptions.majorUnit / 10;\n\n return scaleOptions;\n }\n\n initFields() {\n }\n\n render(center, radius) {\n const arc = this.renderArc(center, radius);\n\n this.bbox = arc.bbox();\n this.labelElements = this.renderLabels();\n this.ticks = this.renderTicks();\n this.ranges = this.renderRanges();\n }\n\n reflow(bbox) {\n const center = bbox.center();\n const radius = Math.min(bbox.height(), bbox.width()) / 2;\n\n if (defined(this.bbox)) {\n this.bbox = this.arc.bbox();\n this.radius(this.arc.getRadiusX());\n this.repositionRanges();\n this.renderLabels();\n } else {\n return this.render(center, radius);\n }\n }\n\n slotAngle(value) {\n const { min, max, reverse, startAngle, endAngle } = this.options;\n const angle = endAngle - startAngle;\n let result;\n\n if (reverse) {\n result = endAngle - (value - min) / (max - min) * angle;\n } else {\n result = ((value - min) / (max - min) * angle) + startAngle;\n }\n\n return result + GEO_ARC_ADJUST_ANGLE;\n }\n\n hasRanges() {\n const ranges = this.options.ranges;\n\n return ranges && ranges.length;\n }\n\n ticksSize() {\n const { majorTicks, minorTicks } = this.options;\n let size = 0;\n if (majorTicks.visible) {\n size = majorTicks.size;\n }\n\n if (minorTicks.visible) {\n size = Math.max(minorTicks.size, size);\n }\n\n return size;\n }\n\n labelsCount() {\n let count = super.labelsCount();\n const options = this.options;\n const angle = options.endAngle - options.startAngle;\n\n if (angle >= 360 && (options.max % options.majorUnit === 0)) {\n count -= 1;\n }\n\n return count;\n }\n\n renderLabels() {\n const options = this.options;\n const arc = this.arc.clone();\n let radius = arc.getRadiusX();\n const tickAngles = this.tickAngles(arc, options.majorUnit);\n const rangeSize = options.rangeSize = options.rangeSize || radius * 0.1;\n const labelsGroup = new Group();\n\n let rangeDistance = radius * 0.05;\n if (defined(options.rangeDistance)) {\n rangeDistance = options.rangeDistance;\n } else {\n options.rangeDistance = rangeDistance;\n }\n\n const labelsOptions = options.labels;\n const isInside = labelsOptions.position === INSIDE;\n const hasLabelElements = defined(this.labelElements);\n\n if (isInside) {\n radius -= this.ticksSize();\n\n if (this.hasRanges() && !hasLabelElements) {\n radius -= rangeSize + rangeDistance;\n }\n arc.setRadiusX(radius).setRadiusY(radius);\n }\n\n const labels = this.labels;\n const count = labels.length;\n const padding = getSpacing(labelsOptions.padding);\n const paddingWidth = (padding.left + padding.right) / 2;\n const paddingHeight = (padding.top + padding.bottom) / 2;\n\n for (let i = 0; i < count; i++) {\n const label = labels[i];\n const halfWidth = label.box.width() / 2;\n const halfHeight = label.box.height() / 2;\n const angle = tickAngles[i];\n const labelAngle = (angle - GEO_ARC_ADJUST_ANGLE) * DEGREE;\n\n const lp = arc.pointAt(angle);\n const cx = lp.x + (Math.cos(labelAngle) * (halfWidth + paddingWidth) * (isInside ? 1 : -1));\n const cy = lp.y + (Math.sin(labelAngle) * (halfHeight + paddingHeight) * (isInside ? 1 : -1));\n\n label.reflow(new Box(cx - halfWidth, cy - halfHeight, cx + halfWidth, cy + halfHeight));\n const labelPos = new geo.Point(label.box.x1, label.box.y1);\n\n let labelElement;\n if (!hasLabelElements) {\n labelElement = buildLabelElement(label, options.labels);\n labelsGroup.append(labelElement);\n } else {\n labelElement = this.labelElements.children[i];\n const prevLabelPos = labelElement.bbox().origin;\n\n const labelTransform = labelElement.transform() || geo.transform();\n labelTransform.translate(labelPos.x - prevLabelPos.x, labelPos.y - prevLabelPos.y);\n labelElement.transform(labelTransform);\n }\n\n this.bbox = geo.Rect.union(this.bbox, labelElement.bbox());\n }\n\n return labelsGroup;\n }\n\n repositionRanges() {\n const ranges = this.ranges.children;\n\n if (ranges.length > 0) {\n const { rangeDistance, rangeSize } = this.options;\n let rangeRadius = this.getRangeRadius();\n\n if (this.options.labels.position === INSIDE) {\n rangeRadius += rangeSize + rangeDistance;\n }\n\n const newRadius = rangeRadius + (rangeSize / 2);\n\n for (let i = 0; i < ranges.length; i++) {\n ranges[i]._geometry.setRadiusX(newRadius).setRadiusY(newRadius);\n }\n\n this.bbox = geo.Rect.union(this.bbox, this.ranges.bbox());\n }\n }\n\n renderRanges() {\n const segments = this.rangeSegments();\n const segmentsCount = segments.length;\n const result = new Group();\n\n if (segmentsCount) {\n const { rangeSize, reverse, rangeDistance } = this.options;\n const rangeRadius = this.getRangeRadius();\n\n // move the ticks with a range distance and a range size\n this.radius(this.radius() - rangeSize - rangeDistance);\n\n for (let i = 0; i < segmentsCount; i++) {\n const segment = segments[i];\n const from = this.slotAngle(segment[reverse ? \"to\" : \"from\"]);\n const to = this.slotAngle(segment[!reverse ? \"to\" : \"from\"]);\n\n if (to - from !== 0) {\n result.append(this.createRange(from, to, rangeRadius, segment));\n }\n }\n }\n\n return result;\n }\n\n createRange(startAngle, endAngle, rangeRadius, options) {\n const rangeSize = this.options.rangeSize;\n const rangeGeom = new geo.Arc(this.arc.center, {\n radiusX: rangeRadius + (rangeSize / 2),\n radiusY: rangeRadius + (rangeSize / 2),\n startAngle: startAngle,\n endAngle: endAngle\n });\n\n return new Arc(rangeGeom, {\n stroke: {\n width: rangeSize,\n color: options.color,\n opacity: options.opacity,\n lineCap: options.lineCap\n }\n });\n }\n\n rangeSegments() {\n const options = this.options;\n const ranges = options.ranges || [];\n const count = ranges.length;\n const segments = [];\n\n if (count) {\n const { min, max, rangePlaceholderColor: defaultColor } = options;\n segments.push(rangeSegment(min, max, defaultColor));\n\n for (let i = 0; i < count; i++) {\n const range = getRange(ranges[i], min, max);\n const segmentsCount = segments.length;\n\n for (let j = 0; j < segmentsCount; j++) {\n const segment = segments[j];\n\n if (segment.from <= range.from && range.from <= segment.to) {\n segments.push(rangeSegment(range.from, range.to, range.color, range.opacity));\n\n if (segment.from <= range.to && range.to <= segment.to) {\n segments.push(rangeSegment(range.to, segment.to, defaultColor, range.opacity));\n }\n\n segment.to = range.from;\n\n break;\n }\n }\n }\n }\n\n return segments;\n }\n\n getRangeRadius() {\n const { arc, options } = this;\n const { rangeSize, rangeDistance, majorTicks: { size: majorTickSize } } = options;\n let radius;\n\n if (options.labels.position === OUTSIDE) {\n radius = arc.getRadiusX() - majorTickSize - rangeDistance - rangeSize;\n } else {\n radius = arc.getRadiusX() - rangeSize;\n }\n\n return radius;\n }\n\n renderArc(center, radius) {\n const options = this.options;\n\n const arc = this.arc = new geo.Arc(center, {\n radiusX: radius,\n radiusY: radius,\n startAngle: options.startAngle + GEO_ARC_ADJUST_ANGLE,\n endAngle: options.endAngle + GEO_ARC_ADJUST_ANGLE\n });\n\n return arc;\n }\n\n renderTicks() {\n const { arc, options } = this;\n const tickArc = arc.clone();\n\n this.majorTickAngles = this.tickAngles(arc, options.majorUnit);\n this.majorTicks = drawTicks(tickArc, this.majorTickAngles, options.majorUnit, options.majorTicks);\n\n const allTicks = new Group();\n allTicks.append(this.majorTicks);\n\n const majorTickSize = options.majorTicks.size;\n const minorTickSize = options.minorTicks.size;\n\n this._tickDifference = majorTickSize - minorTickSize;\n\n if (options.labels.position === OUTSIDE) {\n const radius = tickArc.getRadiusX();\n tickArc.setRadiusX(radius - majorTickSize + minorTickSize)\n .setRadiusY(radius - majorTickSize + minorTickSize);\n }\n\n this.minorTickAngles = this.normalizeTickAngles(this.tickAngles(arc, options.minorUnit));\n this.minorTicks = drawTicks(tickArc, this.minorTickAngles, options.minorUnit, options.minorTicks);\n allTicks.append(this.minorTicks);\n\n return allTicks;\n }\n\n normalizeTickAngles(angles) {\n const options = this.options;\n const skip = options.majorUnit / options.minorUnit;\n\n for (let i = angles.length - 1; i >= 0; i--) {\n if (i % skip === 0) {\n angles.splice(i, 1);\n }\n }\n\n return angles;\n }\n\n tickAngles(ring, stepValue) {\n const options = this.options;\n const reverse = options.reverse;\n const range = options.max - options.min;\n const angle = ring.endAngle - ring.startAngle;\n let tickCount = range / stepValue;\n let pos = ring.startAngle;\n let step = angle / tickCount;\n\n if (reverse) {\n pos += angle;\n step = -step;\n }\n\n if (angle >= 360 && (options.max % stepValue === 0)) {\n tickCount -= 1;\n }\n\n const positions = [];\n for (let i = 0; i < tickCount; i++) {\n positions.push(round(pos, COORD_PRECISION));\n pos += step;\n }\n\n if (round(pos) <= ring.endAngle) {\n positions.push(pos);\n }\n\n return positions;\n }\n\n radius(value) {\n if (value) {\n this.arc.setRadiusX(value).setRadiusY(value);\n this.repositionTicks(this.majorTicks.children, this.majorTickAngles);\n this.repositionTicks(this.minorTicks.children, this.minorTickAngles, true);\n } else {\n return this.arc.getRadiusX();\n }\n }\n\n repositionTicks(ticks, tickAngles, minor) {\n const diff = minor ? (this._tickDifference || 0) : 0;\n let tickArc = this.arc;\n const radius = tickArc.getRadiusX();\n\n if (minor && this.options.labels.position === OUTSIDE && diff !== 0) {\n tickArc = this.arc.clone();\n tickArc.setRadiusX(radius - diff).setRadiusY(radius - diff);\n }\n\n for (let i = 0; i < ticks.length; i++) {\n const newPoint = tickArc.pointAt(tickAngles[i]);\n const segments = ticks[i].segments;\n const xDiff = newPoint.x - segments[0].anchor().x;\n const yDiff = newPoint.y - segments[0].anchor().y;\n\n ticks[i].transform(new geo.transform().translate(xDiff, yDiff));\n }\n }\n}\n\nsetDefaultOptions(RadialScale, {\n min: 0,\n max: 100,\n\n majorTicks: {\n size: 15,\n align: INSIDE,\n color: BLACK,\n width: DEFAULT_LINE_WIDTH,\n visible: true\n },\n\n minorTicks: {\n size: 10,\n align: INSIDE,\n color: BLACK,\n width: DEFAULT_LINE_WIDTH,\n visible: true\n },\n\n startAngle: -30,\n endAngle: 210,\n\n labels: {\n position: INSIDE,\n padding: 2\n }\n});\n\nexport default RadialScale;\n","export { default as buildLabelElement } from './utils/build-label-element';\nexport { default as getRange } from './utils/get-range';\nexport { default as pad } from './utils/pad';\nexport { default as unpad } from './utils/unpad';","import { geometry as geo, drawing } from '@progress/kendo-drawing';\nimport pad from './pad';\n\nconst { Group, Path, Text } = drawing;\n\nexport default function buildLabelElement(label, options) {\n const labelBox = label.box;\n const textBox = label.children[0].box;\n const border = options.border || {};\n const background = options.background || \"\";\n\n const wrapper = Path.fromRect(new geo.Rect([ labelBox.x1, labelBox.y1 ], [ labelBox.width(), labelBox.height() ]), {\n stroke: {}\n });\n\n const text = new Text(label.text, new geo.Point(textBox.x1, textBox.y1), {\n font: options.font,\n fill: { color: options.color }\n });\n\n const styleGeometry = pad(text.bbox().clone(), options.padding);\n\n const styleBox = Path.fromRect(styleGeometry, {\n stroke: {\n color: border.width ? border.color : \"\",\n width: border.width,\n opacity: border.opacity,\n dashType: border.dashType,\n lineJoin: \"round\",\n lineCap: \"round\"\n },\n fill: {\n color: background\n }\n });\n\n const elements = new Group();\n elements.append(wrapper);\n elements.append(styleBox);\n elements.append(text);\n\n return elements;\n}","import { defined } from '../../common';\nimport { MIN_VALUE, MAX_VALUE } from '../../common/constants';\n\nexport default function getRange(range, min, max) {\n const from = defined(range.from) ? range.from : MIN_VALUE;\n const to = defined(range.to) ? range.to : MAX_VALUE;\n\n range.from = Math.max(Math.min(to, from), min);\n range.to = Math.min(Math.max(to, from), max);\n\n return range;\n}","import { getSpacing } from '../../common';\n\nexport default function pad(bbox, value) {\n const origin = bbox.getOrigin();\n const size = bbox.getSize();\n const spacing = getSpacing(value);\n\n bbox.setOrigin([ origin.x - spacing.left, origin.y - spacing.top ]);\n bbox.setSize([ size.width + (spacing.left + spacing.right), size.height + (spacing.top + spacing.bottom) ]);\n\n return bbox;\n}","import { getSpacing } from '../../common';\nimport pad from './pad';\n\nexport default function unpad(bbox, value) {\n const spacing = getSpacing(value);\n\n spacing.left = -spacing.left; spacing.top = -spacing.top;\n spacing.right = -spacing.right; spacing.bottom = -spacing.bottom;\n\n return pad(bbox, spacing);\n}","export * from './core';\nexport * from './chart';\nexport * from './services';\nexport * from './sparkline';\nexport * from './stock';\nexport * from './gauges';\nexport * from './barcode';\nexport * from './qrcode';\nexport * from './map';\nexport * from './common';\n\nexport { baseTheme as chartBaseTheme } from './chart/base-theme';\n\n","export { default as Map } from './map/map';\n","import {\n addClass,\n defined,\n valueOrDefault,\n deepExtend,\n setDefaultOptions\n} from '../common';\n\nimport TemplateService from '../services/template-service';\n\nimport {\n appendHtml,\n removeChildren\n} from './utils';\n\nimport { Observable } from './scroller/observable';\n\nlet template = TemplateService.compile;\n\nexport class Attribution extends Observable {\n constructor(element, options) {\n super();\n this.element = element;\n\n this._initOptions(options);\n this.items = [];\n\n addClass(this.element, 'k-widget k-attribution');\n }\n\n _initOptions(options) {\n this.options = deepExtend({}, this.options, options);\n }\n\n filter(extent, zoom) {\n this._extent = extent;\n this._zoom = zoom;\n this._render();\n }\n\n add(item) {\n let newItem = item;\n\n if (defined(item)) {\n if (typeof item === 'string') {\n newItem = {\n text: item\n };\n }\n\n this.items.push(newItem);\n this._render();\n }\n }\n\n remove(text) {\n let result = [];\n\n for (let i = 0; i < this.items.length; i++) {\n let item = this.items[i];\n\n if (item.text !== text) {\n result.push(item);\n }\n }\n\n this.items = result;\n this._render();\n }\n\n clear() {\n this.items = [];\n removeChildren(this.element);\n }\n\n _render() {\n let result = [];\n let itemTemplate = template(this.options.itemTemplate);\n\n for (let i = 0; i < this.items.length; i++) {\n let item = this.items[i];\n let text = this._itemText(item);\n\n if (text !== '') {\n result.push(itemTemplate({\n text: text\n }));\n }\n }\n\n if (result.length > 0) {\n removeChildren(this.element);\n\n const html = result.join(this.options.separator);\n appendHtml(html, this.element);\n\n this.showElement();\n } else {\n this.hideElement();\n }\n }\n\n hideElement() {\n this.element.style.display = \"none\";\n }\n\n showElement() {\n this.element.style.display = \"\";\n }\n\n _itemText(item) {\n let text = '';\n let inZoomLevel = this._inZoomLevel(item.minZoom, item.maxZoom);\n let inArea = this._inArea(item.extent);\n\n if (inZoomLevel && inArea) {\n text += item.text;\n }\n\n return text;\n }\n\n _inZoomLevel(min, max) {\n let result = true;\n let newMin = valueOrDefault(min, -Number.MAX_VALUE);\n let newMax = valueOrDefault(max, Number.MAX_VALUE);\n\n result = this._zoom > newMin && this._zoom < newMax;\n return result;\n }\n\n _inArea(area) {\n let result = true;\n\n if (area) {\n result = area.contains(this._extent);\n }\n\n return result;\n }\n}\n\nsetDefaultOptions(Attribution, {\n name: 'Attribution',\n separator: ' | ',\n itemTemplate: '#= text #'\n});\n\n","import {\n geometry as g\n} from '@progress/kendo-drawing';\n\nimport {\n Class,\n setDefaultOptions,\n limitValue,\n rad,\n deg,\n deepExtend\n} from '../common';\n\nimport {\n Location\n} from './location';\n\nimport {\n datums\n} from './datums';\n\n\nlet math = Math,\n atan = math.atan,\n exp = math.exp,\n pow = math.pow,\n sin = math.sin,\n log = math.log,\n tan = math.tan,\n Point = g.Point;\n\nlet PI = math.PI,\n PI_DIV_2 = PI / 2,\n PI_DIV_4 = PI / 4,\n DEG_TO_RAD = PI / 180;\n\nlet WGS84 = datums.WGS84;\n\n// WGS 84 / World Mercator\nexport class Mercator extends Class {\n constructor(options) {\n super();\n this.initProperties();\n this._initOptions(options);\n }\n\n _initOptions(options) {\n this.options = deepExtend({}, this.options, options);\n }\n\n initProperties() {\n // super.initProperties();\n\n deepExtend(this, {\n MAX_LNG: 180,\n MAX_LAT: 85.0840590501,\n INVERSE_ITERATIONS: 15,\n INVERSE_CONVERGENCE: 1e-12\n });\n }\n\n forward(loc, clamp) {\n let proj = this,\n options = proj.options,\n datum = options.datum,\n r = datum.a,\n lng0 = options.centralMeridian,\n lat = limitValue(loc.lat, -proj.MAX_LAT, proj.MAX_LAT),\n lng = clamp ? limitValue(loc.lng, -proj.MAX_LNG, proj.MAX_LNG) : loc.lng,\n x = rad(lng - lng0) * r,\n y = proj._projectLat(lat);\n return new Point(x, y);\n }\n _projectLat(lat) {\n let datum = this.options.datum,\n ecc = datum.e,\n r = datum.a,\n y = rad(lat),\n ts = tan(PI_DIV_4 + y / 2),\n con = ecc * sin(y),\n p = pow((1 - con) / (1 + con), ecc / 2);\n\n // See: http://en.wikipedia.org/wiki/Mercator_projection#Generalization_to_the_ellipsoid\n return r * log(ts * p);\n }\n inverse(point, clamp) {\n let proj = this,\n options = proj.options,\n datum = options.datum,\n r = datum.a,\n lng0 = options.centralMeridian,\n lng = point.x / (DEG_TO_RAD * r) + lng0,\n lat = limitValue(proj._inverseY(point.y), -proj.MAX_LAT, proj.MAX_LAT);\n if (clamp) {\n lng = limitValue(lng, -proj.MAX_LNG, proj.MAX_LNG);\n }\n return new Location(lat, lng);\n }\n _inverseY(y) {\n let proj = this,\n datum = proj.options.datum,\n r = datum.a,\n ecc = datum.e,\n ecch = ecc / 2,\n ts = exp(-y / r),\n phi = PI_DIV_2 - 2 * atan(ts),\n i;\n for (i = 0; i <= proj.INVERSE_ITERATIONS; i++) {\n let con = ecc * sin(phi),\n p = pow((1 - con) / (1 + con), ecch),\n dphi = PI_DIV_2 - 2 * atan(ts * p) - phi;\n phi += dphi;\n if (math.abs(dphi) <= proj.INVERSE_CONVERGENCE) {\n break;\n }\n }\n return deg(phi);\n }\n}\n\nsetDefaultOptions(Mercator, {\n centralMeridian: 0,\n datum: WGS84\n});\n\n\n// WGS 84 / Pseudo-Mercator\n// Used by Google Maps, Bing, OSM, etc.\n// Spherical projection of ellipsoidal coordinates.\nexport class SphericalMercator extends Mercator {\n initProperties() {\n super.initProperties();\n\n deepExtend(this, {\n MAX_LAT: 85.0511287798\n });\n }\n\n _projectLat(lat) {\n let r = this.options.datum.a,\n y = rad(lat),\n ts = tan(PI_DIV_4 + y / 2);\n return r * log(ts);\n }\n\n _inverseY(y) {\n let r = this.options.datum.a,\n ts = exp(-y / r);\n return deg(PI_DIV_2 - 2 * atan(ts));\n }\n}\n\nexport class Equirectangular extends Class {\n forward(loc) {\n return new Point(loc.lng, loc.lat);\n }\n inverse(point) {\n return new Location(point.y, point.x);\n }\n}\n\n// This is the projected coordinate system used for rendering maps in Google Maps, OpenStreetMap, etc\n// Unit: metre\n// Geodetic CRS: WGS 84\n// Scope: Certain Web mapping and visualisation applications. It is not a recognised geodetic system: for that see ellipsoidal Mercator CRS code 3395 (WGS 84 / World Mercator).\n// Remarks: Uses spherical development of ellipsoidal coordinates. Relative to WGS 84 / World Mercator (CRS code 3395) errors of 0.7 percent in scale and differences in northing of up to 43km in the map (equivalent to 21km on the ground) may arise.\n// Area of use: World between 85.06°S and 85.06°N.\n// Coordinate system: Cartesian 2D CS. Axes: easting, northing (X,Y). Orientations: east, north. UoM: m.\n// https://epsg.io/3857\nexport class EPSG3857 extends Class {\n constructor() {\n super();\n let crs = this,\n proj = crs._proj = new SphericalMercator();\n let c = this.c = 2 * PI * proj.options.datum.a;\n\n // transfrom matrix\n // Scale circumference to 1, mirror Y and shift origin to top left\n this._tm = g.transform().translate(0.5, 0.5).scale(1 / c, -1 / c);\n\n // Inverse transform matrix\n this._itm = g.transform().scale(c, -c).translate(-0.5, -0.5);\n }\n\n // Location <-> Point (screen coordinates for a given scale)\n toPoint(loc, scale, clamp) {\n let point = this._proj.forward(loc, clamp);\n return point.transform(this._tm).scale(scale || 1);\n }\n toLocation(point, scale, clamp) {\n let newPoint = point.clone().scale(1 / (scale || 1)).transform(this._itm);\n return this._proj.inverse(newPoint, clamp);\n }\n}\n\n// Unit: metre\n// Geodetic CRS: WGS 84\n// Scope: Very small scale mapping.\n// Remarks: Euro-centric view of world excluding polar areas.\n// Area of use: World between 80°S and 84°N.\n// Coordinate system: Cartesian 2D CS. Axes: easting, northing (E,N). Orientations: east, north. UoM: m.\n// https://epsg.io/3395\nexport class EPSG3395 extends Class {\n constructor() {\n super();\n this._proj = new Mercator();\n }\n toPoint(loc) {\n return this._proj.forward(loc);\n }\n toLocation(point) {\n return this._proj.inverse(point);\n }\n}\n\n// Unit: degree\n// Geodetic CRS: WGS 84\n// Scope: Horizontal component of 3D system. Used by the GPS satellite navigation system and for NATO military geodetic surveying.\n// Area of use: World.\n// Coordinate system: Ellipsoidal 2D CS. Axes: latitude, longitude. Orientations: north, east. UoM: degree\n// https://epsg.io/4326\nexport class EPSG4326 extends Class {\n constructor() {\n super();\n this._proj = new Equirectangular();\n }\n toPoint(loc) {\n return this._proj.forward(loc);\n }\n toLocation(point) {\n return this._proj.inverse(point);\n }\n}\n","// Coordinate reference system\n// World Geodetic System of 1984\nconst WGS84 = {\n a: 6378137, // Semi-major radius\n b: 6356752.314245179, // Semi-minor radius\n f: 0.0033528106647474805, // Flattening\n e: 0.08181919084262149 // Eccentricity\n};\n\n// Geographic coordinate systems use a spheroid to calculate positions on the earth.\n// A datum defines the position of the spheroid relative to the center of the earth\n// it provides a frame of reference for measuring locations on the surface of the earth\n// and defines the origin and orientation of latitude and longitude lines.\nexport const datums = {\n WGS84\n};\n","import {\n Class,\n valueOrDefault\n} from '../common';\n\nimport { Location } from './location';\n\nlet math = Math,\n max = math.max,\n min = math.min;\n\nexport class Extent extends Class {\n constructor(initialNw, initialSe) {\n super();\n let nw = Location.create(initialNw);\n let se = Location.create(initialSe);\n\n if (nw.lng + 180 > se.lng + 180 && nw.lat + 90 < se.lat + 90) {\n this.se = nw;\n this.nw = se;\n } else {\n this.se = se;\n this.nw = nw;\n }\n }\n\n contains(loc) {\n let nw = this.nw, se = this.se, lng = valueOrDefault(loc.lng, loc[1]), lat = valueOrDefault(loc.lat, loc[0]);\n\n return loc &&\n lng + 180 >= nw.lng + 180 && lng + 180 <= se.lng + 180 &&\n lat + 90 >= se.lat + 90 && lat + 90 <= nw.lat + 90;\n }\n\n center() {\n let nw = this.nw;\n let se = this.se;\n let lng = nw.lng + (se.lng - nw.lng) / 2;\n let lat = nw.lat + (se.lat - nw.lat) / 2;\n\n return new Location(lat, lng);\n }\n\n containsAny(locs) {\n let result = false;\n\n for (let i = 0; i < locs.length; i++) {\n result = result || this.contains(locs[i]);\n }\n\n return result;\n }\n\n include(loc) {\n let nw = this.nw, se = this.se, lng = valueOrDefault(loc.lng, loc[1]), lat = valueOrDefault(loc.lat, loc[0]);\n\n nw.lng = min(nw.lng, lng);\n nw.lat = max(nw.lat, lat);\n se.lng = max(se.lng, lng);\n se.lat = min(se.lat, lat);\n }\n\n includeAll(locs) {\n for (let i = 0; i < locs.length; i++) {\n this.include(locs[i]);\n }\n }\n\n edges() {\n let nw = this.nw, se = this.se;\n\n return {\n nw: this.nw,\n ne: new Location(nw.lat, se.lng),\n se: this.se,\n sw: new Location(se.lat, nw.lng)\n };\n }\n\n toArray() {\n let nw = this.nw, se = this.se;\n\n return [\n nw,\n new Location(nw.lat, se.lng),\n se,\n new Location(se.lat, nw.lng)\n ];\n }\n\n overlaps(extent) {\n return this.containsAny(extent.toArray()) ||\n extent.containsAny(this.toArray());\n }\n\n static create(a, b) {\n if (a instanceof Extent) {\n return a;\n } else if (a && b) {\n return new Extent(a, b);\n } else if (a && a.length === 4 && !b) {\n return new Extent([\n a[0],\n a[1]\n ], [\n a[2],\n a[3]\n ]);\n }\n }\n\n static get World() {\n return new Extent([ 90, -180 ], [ -90, 180 ]);\n }\n}\n","import {\n geometry as g,\n drawing as d\n} from '@progress/kendo-drawing';\n\nimport {\n Class,\n defined,\n isFunction,\n getter,\n setDefaultOptions\n} from '../../common';\n\nimport {\n ShapeLayer\n} from './shape';\n\nimport {\n Location\n} from '../location';\n\nexport class BubbleLayer extends ShapeLayer {\n _readData() {\n const data = this.options.data || [];\n return data;\n }\n\n _load(data) {\n this._data = data;\n this.surface.clear();\n\n if (data.length === 0) {\n return;\n }\n\n let options = this.options;\n let getValue = getter(options.valueField);\n\n let newData = data.slice(0);\n newData.sort(function(a, b) {\n return getValue(b) - getValue(a);\n });\n\n let scaleType = this._scaleType();\n let scale;\n let getLocation = getter(this.options.locationField);\n\n for (let i = 0; i < newData.length; i++) {\n let dataItem = newData[i];\n let location = getLocation(dataItem);\n let value = getValue(dataItem);\n\n if (defined(location) && defined(value)) {\n if (!scale) {\n scale = new scaleType([\n 0,\n value\n ], [\n options.minSize,\n options.maxSize\n ]);\n }\n\n location = Location.create(location);\n\n let center = this.map.locationToView(location);\n let size = scale.map(value);\n let symbol = this._createSymbol({\n center: center,\n size: size,\n style: options.style,\n dataItem: dataItem,\n location: location\n });\n\n symbol.dataItem = dataItem;\n symbol.location = location;\n symbol.value = value;\n\n this._drawSymbol(symbol);\n }\n }\n }\n\n _scaleType() {\n let scale = this.options.scale;\n\n if (isFunction(scale)) {\n return scale;\n }\n\n return Scales[scale];\n }\n\n _createSymbol(args) {\n let symbol = this.options.symbol;\n\n if (!isFunction(symbol)) {\n symbol = Symbols[symbol];\n }\n\n return symbol(args);\n }\n\n _drawSymbol(shape) {\n let args = {\n layer: this,\n shape: shape\n };\n\n let cancelled = this.map.trigger('shapeCreated', args);\n\n if (!cancelled) {\n this.surface.draw(shape);\n }\n }\n}\n\nsetDefaultOptions(BubbleLayer, {\n // autoBind: true,\n locationField: 'location',\n valueField: 'value',\n minSize: 0,\n maxSize: 100,\n scale: 'sqrt',\n symbol: 'circle',\n // ensure bubble layers are displayed over tile and shape layers\n zIndex: 200\n});\n\nclass SqrtScale extends Class {\n constructor(domain, range) {\n super();\n\n this._domain = domain;\n this._range = range;\n\n let domainRange = Math.sqrt(domain[1]) - Math.sqrt(domain[0]);\n let outputRange = range[1] - range[0];\n\n this._ratio = outputRange / domainRange;\n }\n\n map(value) {\n let rel = (Math.sqrt(value) - Math.sqrt(this._domain[0])) * this._ratio;\n return this._range[0] + rel;\n }\n}\n\nlet Scales = {\n sqrt: SqrtScale\n};\n\nlet Symbols = {\n circle: function(args) {\n let geo = new g.Circle(args.center, args.size / 2);\n return new d.Circle(geo, args.style);\n },\n\n square: function(args) {\n let path = new d.Path(args.style);\n let halfSize = args.size / 2;\n let center = args.center;\n path.moveTo(center.x - halfSize, center.y - halfSize).lineTo(center.x + halfSize, center.y - halfSize).lineTo(center.x + halfSize, center.y + halfSize).lineTo(center.x - halfSize, center.y + halfSize).close();\n return path;\n }\n};\n","import {\n Class,\n addClass,\n deepExtend,\n defined\n} from '../../common';\n\nimport {\n Extent\n} from './../extent';\n\nimport {\n getSupportedFeatures\n} from '../utils';\n\nexport class Layer extends Class {\n constructor(map, options) {\n super();\n\n this.support = getSupportedFeatures();\n\n this._initOptions(options);\n this.map = map;\n\n let element = document.createElement(\"div\");\n addClass(element, \"k-layer\");\n element.style.zIndex = this.options.zIndex;\n element.style.opacity = this.options.opacity;\n\n this.element = element;\n\n map.scrollElement.appendChild(this.element);\n\n this._beforeReset = this._beforeReset.bind(this);\n this._reset = this._reset.bind(this);\n this._resize = this._resize.bind(this);\n this._panEnd = this._panEnd.bind(this);\n\n this._activate();\n this._updateAttribution();\n }\n\n destroy() {\n this._deactivate();\n }\n\n _initOptions(options) {\n this.options = deepExtend({}, this.options, options);\n }\n\n show() {\n this.reset();\n this._activate();\n this._applyExtent(true);\n }\n\n hide() {\n this._deactivate();\n this._setVisibility(false);\n }\n\n reset() {\n this._beforeReset();\n this._reset();\n }\n\n _reset() {\n this._applyExtent();\n }\n\n _beforeReset() {\n\n }\n\n _resize() {\n\n }\n\n _panEnd() {\n this._applyExtent();\n }\n\n _applyExtent() {\n let options = this.options;\n let zoom = this.map.zoom();\n let matchMinZoom = !defined(options.minZoom) || zoom >= options.minZoom;\n let matchMaxZoom = !defined(options.maxZoom) || zoom <= options.maxZoom;\n let extent = Extent.create(options.extent);\n let inside = !extent || extent.overlaps(this.map.extent());\n\n this._setVisibility(matchMinZoom && matchMaxZoom && inside);\n }\n\n _setVisibility(visible) {\n this.element.style.display = visible ? '' : 'none';\n }\n\n _activate() {\n let map = this.map;\n\n this._deactivate();\n\n map.bind('beforeReset', this._beforeReset);\n map.bind('reset', this._reset);\n map.bind('resize', this._resize);\n map.bind('panEnd', this._panEnd);\n }\n\n _deactivate() {\n let map = this.map;\n\n map.unbind('beforeReset', this._beforeReset);\n map.unbind('reset', this._reset);\n map.unbind('resize', this._resize);\n map.unbind('panEnd', this._panEnd);\n }\n\n _updateAttribution() {\n const attribution = this.map.attribution;\n\n if (attribution) {\n attribution.add(this.options.attribution);\n }\n }\n\n _readData() {\n const data = this.options.data || [];\n return data;\n }\n\n _hasData() {\n return this._data && this._data.length > 0;\n }\n}\n","import {\n Class,\n addClass,\n isArray,\n getter,\n deepExtend,\n setDefaultOptions\n} from '../../common';\n\nimport { Layer } from './layer';\nimport { Location } from '../location';\n\nimport {\n proxy,\n on,\n off,\n toHyphens,\n toPixels\n} from '../utils';\n\nconst CLICK = \"click\";\nconst MOUSE_ENTER = \"mouseenter\";\nconst MOUSE_LEAVE = \"mouseleave\";\n\nconst extend = Object.assign;\nconst MARKER_CLASS = \".k-marker\";\n\nexport class MarkerLayer extends Layer {\n constructor(map, options) {\n super(map, options);\n\n this._markerClickHandler = proxy(this._markerClick, this);\n on(this.element, CLICK, MARKER_CLASS, this._markerClickHandler);\n\n this.items = [];\n\n this._load(this._readData());\n }\n\n destroy() {\n super.destroy();\n off(this.element, CLICK, this._markerClickHandler);\n this.clear();\n }\n\n add(args) {\n if (isArray(args)) {\n for (let i = 0; i < args.length; i++) {\n this._addOne(args[i]);\n }\n } else {\n return this._addOne(args);\n }\n }\n\n remove(marker) {\n marker.destroy();\n let index = (this.items || []).indexOf(marker);\n\n if (index > -1) {\n this.items.splice(index, 1);\n }\n }\n\n clear() {\n for (let i = 0; i < this.items.length; i++) {\n this.items[i].destroy();\n }\n\n this.items = [];\n }\n\n update(marker) {\n let location = marker.location();\n\n if (location) {\n marker.showAt(this.map.locationToView(location));\n\n let args = {\n marker: marker,\n layer: this\n };\n\n this.map.trigger('markerActivate', args);\n }\n }\n\n _reset() {\n super._reset();\n\n let items = this.items;\n\n for (let i = 0; i < items.length; i++) {\n this.update(items[i]);\n }\n }\n\n bind(options, dataItem) {\n let marker = Marker.create(options, this.options);\n marker.dataItem = dataItem;\n\n let args = {\n marker: marker,\n layer: this\n };\n\n let cancelled = this.map.trigger('markerCreated', args);\n\n if (!cancelled) {\n this.add(marker);\n return marker;\n }\n }\n\n _addOne(arg) {\n let marker = Marker.create(arg, this.options);\n marker.addTo(this);\n return marker;\n }\n\n _readData() {\n const data = this.options.data || [];\n return data;\n }\n\n _load(data) {\n this._data = data;\n this.clear();\n\n let getLocation = getter(this.options.locationField);\n let getTitle = getter(this.options.titleField);\n\n for (let i = 0; i < data.length; i++) {\n let dataItem = data[i];\n\n this.bind({\n location: getLocation(dataItem),\n title: getTitle(dataItem)\n }, dataItem);\n }\n }\n\n _markerClick(e) {\n const layers = this.map.layers || [];\n const marker = e.target._kendoNode;\n\n let args = {\n // marker: $(e.target).data('kendoMarker'),\n // marker: e.target.getAttribute(\"data-kendoMarker\"),\n layer: this,\n layerIndex: layers.indexOf(this),\n marker: marker,\n markerIndex: (this.items || []).indexOf(marker),\n originalEvent: e\n };\n\n this.map.trigger('markerClick', args);\n }\n\n _markerMouseEnter(e) {\n const args = this._createMarkerEventArgs(e);\n this.map.trigger(\"markerMouseEnter\", args);\n }\n\n _markerMouseLeave(e) {\n const args = this._createMarkerEventArgs(e);\n this.map.trigger(\"markerMouseLeave\", args);\n }\n\n _createMarkerEventArgs(e) {\n const marker = e.marker;\n\n let args = extend({}, {\n layer: this,\n layerIndex: this.map.layers.indexOf(this),\n marker: marker,\n markerIndex: (this.items || []).indexOf(marker)\n }, e);\n\n return args;\n }\n}\n\nsetDefaultOptions(MarkerLayer, {\n zIndex: 1000,\n autoBind: true,\n locationField: 'location',\n titleField: 'title'\n});\n\nexport class Marker extends Class {\n constructor(options) {\n super();\n this.options = options || {};\n }\n\n destroy() {\n this.layer = null;\n this.unbindEvents();\n this.hide();\n }\n\n addTo(parent) {\n this.layer = parent.markers || parent;\n this.layer.items.push(this);\n this.layer.update(this);\n }\n\n location(value) {\n if (value) {\n this.options.location = Location.create(value).toArray();\n\n if (this.layer) {\n this.layer.update(this);\n }\n\n return this;\n }\n\n return Location.create(this.options.location);\n }\n\n showAt(point) {\n this.render();\n\n this.element.style.left = toPixels(Math.round(point.x));\n this.element.style.top = toPixels(Math.round(point.y));\n\n if (this.tooltip && this.tooltip.popup) {\n this.tooltip.popup._position();\n }\n }\n\n hide() {\n if (this.element) {\n this.element.remove();\n this.element = null;\n }\n if (this.tooltip) {\n this.tooltip.destroy();\n this.tooltip = null;\n }\n }\n\n bindEvents() {\n if (!this.element) {\n return;\n }\n\n this._mouseEnterHandler = proxy(this._mouseEnter, this);\n on(this.element, MOUSE_ENTER, MARKER_CLASS, this._mouseEnterHandler);\n this._mouseLeaveHandler = proxy(this._mouseLeave, this);\n on(this.element, MOUSE_LEAVE, MARKER_CLASS, this._mouseLeaveHandler);\n }\n\n unbindEvents() {\n if (!this.element) {\n return;\n }\n\n off(this.element, MOUSE_ENTER, this._mouseEnterHandler);\n off(this.element, MOUSE_LEAVE, this._mouseLeaveHandler);\n }\n\n render() {\n if (!this.element) {\n let options = this.options;\n let layer = this.layer;\n\n const element = document.createElement('span');\n addClass(element, 'k-marker k-icon k-i-marker-' + toHyphens(options.shape || 'pin'));\n\n element.setAttribute(\"title\", options.title);\n\n const attributes = options.attributes || {};\n Object.keys(attributes).forEach(function(key) {\n element.setAttributett(key, attributes[key]);\n });\n\n element._kendoNode = this;\n element.style.zIndex = options.zIndex;\n\n this.element = element;\n\n if (layer) {\n layer.element.appendChild(this.element);\n }\n\n this.bindEvents();\n\n this.renderTooltip();\n }\n }\n\n _mouseEnter(e) {\n const args = this._createEventArgs(e);\n this.layer._markerMouseEnter(args);\n }\n\n _mouseLeave(e) {\n const args = this._createEventArgs(e);\n this.layer._markerMouseLeave(args);\n }\n\n _createEventArgs(e) {\n let args = {\n marker: this,\n originalEvent: e\n };\n\n return args;\n }\n\n renderTooltip() {\n }\n\n static create(arg, defaults) {\n if (arg instanceof Marker) {\n return arg;\n }\n\n return new Marker(deepExtend({}, defaults, arg));\n }\n}\n","import {\n geometry as g,\n drawing as d\n} from '@progress/kendo-drawing';\n\nimport {\n Class,\n defined,\n last,\n setDefaultOptions\n} from '../../common';\n\nimport {\n proxy\n} from '../utils';\n\nimport {\n Layer\n} from './layer';\n\nimport {\n Movable\n} from '../scroller/draggable';\n\nimport {\n Location\n} from '../location';\n\nconst Group = d.Group;\n\nexport class ShapeLayer extends Layer {\n constructor(map, options) {\n super(map, options);\n\n this._pan = proxy(this._pan, this);\n\n this.surface = d.Surface.create(this.element, {\n width: map.scrollElement.clientWidth,\n height: map.scrollElement.clientHeight\n });\n\n this._initRoot();\n this.movable = new Movable(this.surface.element);\n this._markers = [];\n\n this._click = this._handler('shapeClick');\n this.surface.bind('click', this._click);\n this._mouseenter = this._handler('shapeMouseEnter');\n this.surface.bind('mouseenter', this._mouseenter);\n this._mouseleave = this._handler('shapeMouseLeave');\n this.surface.bind('mouseleave', this._mouseleave);\n }\n\n destroy() {\n super.destroy();\n\n this.surface.destroy();\n }\n\n _reset() {\n super._reset();\n\n this._translateSurface();\n\n this._data = this._readData();\n\n if (this._hasData()) {\n this._load(this._data);\n }\n }\n\n _initRoot() {\n this._root = new Group();\n this.surface.draw(this._root);\n }\n\n _beforeReset() {\n this.surface.clear();\n this._initRoot();\n }\n\n _resize() {\n this.surface.size(this.map.size());\n }\n\n _readData() {\n const data = super._readData();\n\n if (data.type === \"FeatureCollection\") {\n return data.features;\n }\n\n if (data.type === \"GeometryCollection\") {\n return data.geometries;\n }\n\n return data;\n }\n\n _load(data) {\n this._data = data;\n this._clearMarkers();\n\n if (!this._loader) {\n this._loader = new GeoJsonLoader(this.map, this.options.style, this);\n }\n\n let container = new Group();\n\n for (let i = 0; i < data.length; i++) {\n let shape = this._loader.parse(data[i]);\n\n if (shape) {\n container.append(shape);\n }\n }\n\n this._root.clear();\n this._root.append(container);\n }\n\n shapeCreated(shape) {\n let cancelled = false;\n\n // the GeoJSON loader builds \"Point\" type as a circle\n // use the circle shape type as and indicator for rendering a marker\n // keep the behavior under a setting as this is supported by kendo jQuery Map\n // but we opted out of this in blazor\n if (shape instanceof d.Circle && this.map.options.renderPointsAsMarkers) {\n cancelled = defined(this._createMarker(shape));\n }\n\n if (!cancelled) {\n let args = {\n layer: this,\n shape: shape\n };\n\n cancelled = this.map.trigger('shapeCreated', args);\n }\n\n return cancelled;\n }\n\n featureCreated(e) {\n e.layer = this;\n this.map.trigger('shapeFeatureCreated', e);\n }\n\n _createMarker(shape) {\n let marker = this.map.markers.bind({\n location: shape.location\n }, shape.dataItem);\n\n if (marker) {\n this._markers.push(marker);\n }\n\n return marker;\n }\n\n _clearMarkers() {\n for (let i = 0; i < this._markers.length; i++) {\n this.map.markers.remove(this._markers[i]);\n }\n\n this._markers = [];\n }\n\n _pan() {\n if (!this._panning) {\n this._panning = true;\n this.surface.suspendTracking();\n }\n }\n\n _panEnd(e) {\n super._panEnd(e);\n this._translateSurface();\n this.surface.resumeTracking();\n this._panning = false;\n }\n\n _translateSurface() {\n let map = this.map;\n let nw = map.locationToView(map.extent().nw);\n\n if (this.surface.translate) {\n this.surface.translate(nw);\n this.movable.moveTo({\n x: nw.x,\n y: nw.y\n });\n }\n }\n\n _handler(event) {\n let layer = this;\n\n return function(e) {\n if (e.element) {\n let args = {\n layer: layer,\n layerIndex: (layer.map.layers || []).indexOf(layer),\n shape: e.element,\n shapeIndex: (layer._data || []).indexOf(e.element.dataItem),\n originalEvent: e.originalEvent\n };\n\n layer.map.trigger(event, args);\n }\n };\n }\n\n _activate() {\n super._activate();\n this._panHandler = proxy(this._pan, this);\n this.map.bind('pan', this.panHandler);\n }\n\n _deactivate() {\n super._deactivate();\n this.map.unbind('pan', this._panHandler);\n }\n}\n\nsetDefaultOptions(ShapeLayer, {\n autoBind: true,\n zIndex: 100\n});\n\nclass GeoJsonLoader extends Class {\n constructor(locator, defaultStyle, observer) {\n super();\n this.observer = observer;\n this.locator = locator;\n this.style = defaultStyle;\n }\n\n parse(item) {\n let root = new Group();\n let unwrap = true;\n\n if (item.type === 'Feature') {\n unwrap = false;\n this._loadGeometryTo(root, item.geometry, item);\n this._featureCreated(root, item);\n } else {\n this._loadGeometryTo(root, item, item);\n }\n\n if (unwrap && root.children.length < 2) {\n root = root.children[0];\n }\n\n return root;\n }\n\n _shapeCreated(shape) {\n let cancelled = false;\n\n if (this.observer && this.observer.shapeCreated) {\n cancelled = this.observer.shapeCreated(shape);\n }\n\n return cancelled;\n }\n\n _featureCreated(group, dataItem) {\n if (this.observer && this.observer.featureCreated) {\n this.observer.featureCreated({\n group: group,\n dataItem: dataItem,\n properties: dataItem.properties\n });\n }\n }\n\n /* eslint-disable indent */\n _loadGeometryTo(container, geometry, dataItem) {\n let coords = geometry.coordinates;\n let i;\n let path;\n\n switch (geometry.type) {\n case 'LineString':\n path = this._loadPolygon(container, [coords], dataItem);\n this._setLineFill(path);\n break;\n case 'MultiLineString':\n for (i = 0; i < coords.length; i++) {\n path = this._loadPolygon(container, [coords[i]], dataItem);\n this._setLineFill(path);\n }\n break;\n case 'Polygon':\n this._loadPolygon(container, coords, dataItem);\n break;\n case 'MultiPolygon':\n for (i = 0; i < coords.length; i++) {\n this._loadPolygon(container, coords[i], dataItem);\n }\n break;\n case 'Point':\n this._loadPoint(container, coords, dataItem);\n break;\n case 'MultiPoint':\n for (i = 0; i < coords.length; i++) {\n this._loadPoint(container, coords[i], dataItem);\n }\n break;\n default:\n break;\n }\n }\n /* eslint-disable indent */\n\n _setLineFill(path) {\n let segments = path.segments;\n\n if (segments.length < 4 || !segments[0].anchor().equals(last(segments).anchor())) {\n path.options.fill = null;\n }\n }\n\n _loadShape(container, shape) {\n if (!this._shapeCreated(shape)) {\n container.append(shape);\n }\n\n return shape;\n }\n\n _loadPolygon(container, rings, dataItem) {\n let shape = this._buildPolygon(rings);\n shape.dataItem = dataItem;\n return this._loadShape(container, shape);\n }\n\n _buildPolygon(rings) {\n let type = rings.length > 1 ? d.MultiPath : d.Path;\n let path = new type(this.style);\n\n for (let i = 0; i < rings.length; i++) {\n for (let j = 0; j < rings[i].length; j++) {\n let point = this.locator.locationToView(Location.fromLngLat(rings[i][j]));\n if (j === 0) {\n path.moveTo(point.x, point.y);\n } else {\n path.lineTo(point.x, point.y);\n }\n }\n }\n\n return path;\n }\n\n _loadPoint(container, coords, dataItem) {\n let location = Location.fromLngLat(coords);\n let point = this.locator.locationToView(location);\n let circle = new g.Circle(point, 10);\n let shape = new d.Circle(circle, this.style);\n\n shape.dataItem = dataItem;\n shape.location = location;\n\n return this._loadShape(container, shape);\n }\n}\n","import {\n geometry as g,\n throttle\n} from '@progress/kendo-drawing';\n\nimport {\n Class,\n addClass,\n deepExtend,\n round,\n limitValue,\n hashKey,\n setDefaultOptions\n} from '../../common';\n\nimport { removeChildren } from '../utils';\n\nimport { Layer } from './layer';\n\nimport TemplateService from '../../services/template-service';\n\nlet math = Math,\n template = TemplateService.compile,\n Point = g.Point;\n\nfunction roundPoint(point) {\n return new Point(round(point.x), round(point.y));\n}\n\nfunction renderSize(size) {\n let newSize = size;\n\n if (typeof(size) !== \"string\") {\n newSize += \"px\";\n }\n\n return newSize;\n}\n\nexport class TileLayer extends Layer {\n constructor(map, options) {\n super(map, options);\n\n if (typeof this.options.subdomains === 'string') {\n this.options.subdomains = this.options.subdomains.split('');\n }\n\n let viewType = this._viewType();\n this._view = new viewType(this.element, this.options);\n }\n\n destroy() {\n super.destroy();\n this._view.destroy();\n this._view = null;\n }\n\n _beforeReset() {\n let map = this.map;\n let origin = map.locationToLayer(map.extent().nw).round();\n this._view.viewOrigin(origin);\n }\n\n _reset() {\n super._reset();\n this._updateView();\n this._view.reset();\n }\n\n _viewType() {\n return TileView;\n }\n\n _activate() {\n super._activate();\n\n if (!this.support.mobileOS) {\n if (!this._pan) {\n this._pan = throttle(this._render.bind(this), 100);\n }\n\n this.map.bind('pan', this._pan);\n }\n }\n\n _deactivate() {\n super._deactivate();\n\n if (this._pan) {\n this.map.unbind('pan', this._pan);\n }\n }\n\n _updateView() {\n let view = this._view,\n map = this.map,\n extent = map.extent(),\n extentToPoint = {\n nw: map.locationToLayer(extent.nw).round(),\n se: map.locationToLayer(extent.se).round()\n };\n\n view.center(map.locationToLayer(map.center()));\n view.extent(extentToPoint);\n view.zoom(map.zoom());\n }\n\n _resize() {\n this._render();\n }\n\n _panEnd(e) {\n super._panEnd(e);\n this._render();\n }\n\n _render() {\n this._updateView();\n this._view.render();\n }\n}\n\nsetDefaultOptions(TileLayer, {\n tileSize: 256,\n subdomains: ['a', 'b', 'c'],\n urlTemplate: '',\n zIndex: 1\n});\n\nexport class TileView extends Class {\n constructor(element, options) {\n super();\n this.element = element;\n this._initOptions(options);\n this.pool = new TilePool();\n }\n\n _initOptions(options) {\n this.options = deepExtend({}, this.options, options);\n }\n\n center(center) {\n this._center = center;\n }\n\n extent(extent) {\n this._extent = extent;\n }\n\n viewOrigin(origin) {\n this._viewOrigin = origin;\n }\n\n zoom(zoom) {\n this._zoom = zoom;\n }\n\n pointToTileIndex(point) {\n return new Point(math.floor(point.x / this.options.tileSize), math.floor(point.y / this.options.tileSize));\n }\n\n tileCount() {\n let size = this.size(),\n firstTileIndex = this.pointToTileIndex(this._extent.nw),\n nw = this._extent.nw,\n point = this.indexToPoint(firstTileIndex).translate(-nw.x, -nw.y);\n\n return {\n x: math.ceil((math.abs(point.x) + size.width) / this.options.tileSize),\n y: math.ceil((math.abs(point.y) + size.height) / this.options.tileSize)\n };\n }\n\n size() {\n let nw = this._extent.nw,\n se = this._extent.se,\n diff = se.clone().translate(-nw.x, -nw.y);\n\n return {\n width: diff.x,\n height: diff.y\n };\n }\n\n indexToPoint(index) {\n let x = index.x,\n y = index.y;\n\n return new Point(x * this.options.tileSize, y * this.options.tileSize);\n }\n\n subdomainText() {\n let subdomains = this.options.subdomains;\n return subdomains[this.subdomainIndex++ % subdomains.length];\n }\n\n destroy() {\n removeChildren(this.element);\n this.pool.empty();\n }\n\n reset() {\n this.pool.reset();\n this.subdomainIndex = 0;\n this.render();\n }\n\n render() {\n let size = this.tileCount(),\n firstTileIndex = this.pointToTileIndex(this._extent.nw),\n tile, x, y;\n\n for (x = 0; x < size.x; x++) {\n for (y = 0; y < size.y; y++) {\n tile = this.createTile({\n x: firstTileIndex.x + x,\n y: firstTileIndex.y + y\n });\n\n if (!tile.visible) {\n tile.show();\n }\n }\n }\n }\n\n createTile(currentIndex) {\n let options = this.tileOptions(currentIndex);\n let tile = this.pool.get(this._center, options);\n\n if (!tile.element.parentNode) {\n this.element.append(tile.element);\n }\n\n return tile;\n }\n\n tileOptions(currentIndex) {\n let index = this.wrapIndex(currentIndex),\n point = this.indexToPoint(currentIndex),\n origin = this._viewOrigin,\n offset = point.clone().translate(-origin.x, -origin.y);\n\n return {\n index: index,\n currentIndex: currentIndex,\n point: point,\n offset: roundPoint(offset),\n zoom: this._zoom,\n size: this.options.tileSize,\n subdomain: this.subdomainText(),\n urlTemplate: this.options.urlTemplate,\n errorUrlTemplate: this.options.errorUrlTemplate\n };\n }\n\n wrapIndex(index) {\n let boundary = math.pow(2, this._zoom);\n\n return {\n x: this.wrapValue(index.x, boundary),\n y: limitValue(index.y, 0, boundary - 1)\n };\n }\n\n wrapValue(value, boundary) {\n let remainder = math.abs(value) % boundary;\n let wrappedValue = value;\n\n if (value >= 0) {\n wrappedValue = remainder;\n } else {\n wrappedValue = boundary - (remainder === 0 ? boundary : remainder);\n }\n\n return wrappedValue;\n }\n}\n\nexport class ImageTile extends Class {\n constructor(id, options) {\n super();\n this.id = id;\n this.visible = true;\n this._initOptions(options);\n this.createElement();\n this.show();\n }\n\n destroy() {\n const element = this.element;\n const parentNode = element ? element.parentNode : null;\n\n if (element) {\n if (parentNode) {\n parentNode.removeChild(element);\n }\n\n this.element = null;\n }\n }\n\n _initOptions(options) {\n this.options = deepExtend({}, this.options, options);\n }\n\n createElement() {\n let el = document.createElement(\"img\");\n addClass(el, \"k-layer\");\n el.style.position = \"absolute\";\n el.style.display = \"block\";\n el.style.width = this.options.size;\n el.style.height = this.options.size;\n\n this.element = el;\n\n // todo\n // add on error handler\n\n // this.element =\n // $('\\'\\'')\n // .css({\n // width: this.options.size,\n // height: this.options.size\n // })\n // .on('error', proxy(function(e) {\n // if (this.errorUrl()) {\n // e.target.setAttribute('src', this.errorUrl());\n // } else {\n // e.target.removeAttribute('src');\n // }\n // }, this));\n }\n\n show() {\n let element = this.element;\n element.style.top = renderSize(this.options.offset.y);\n element.style.left = renderSize(this.options.offset.x);\n\n let url = this.url();\n\n if (url) {\n element.setAttribute('src', url);\n }\n\n element.style.visibility = 'visible';\n this.visible = true;\n }\n\n hide() {\n this.element.style.visibility = 'hidden';\n this.visible = false;\n }\n\n url() {\n let urlResult = template(this.options.urlTemplate);\n return urlResult(this.urlOptions());\n }\n\n errorUrl() {\n let urlResult = template(this.options.errorUrlTemplate);\n return urlResult(this.urlOptions());\n }\n\n urlOptions() {\n let options = this.options;\n\n return {\n zoom: options.zoom,\n subdomain: options.subdomain,\n z: options.zoom,\n x: options.index.x,\n y: options.index.y,\n s: options.subdomain,\n quadkey: options.quadkey,\n q: options.quadkey,\n culture: options.culture,\n c: options.culture\n };\n }\n}\n\nsetDefaultOptions(ImageTile, {\n urlTemplate: '',\n errorUrlTemplate: ''\n});\n\nexport class TilePool extends Class {\n constructor() {\n super();\n this._items = [];\n }\n\n get(center, options) {\n if (this._items.length >= this.options.maxSize) {\n this._remove(center);\n }\n\n return this._create(options);\n }\n\n empty() {\n let items = this._items;\n\n for (let i = 0; i < items.length; i++) {\n items[i].destroy();\n }\n\n this._items = [];\n }\n\n reset() {\n let items = this._items;\n\n for (let i = 0; i < items.length; i++) {\n items[i].hide();\n }\n }\n\n _create(options) {\n let items = this._items;\n let tile;\n let id = hashKey(options.point.toString() + options.offset.toString() + options.zoom + options.urlTemplate);\n\n for (let i = 0; i < items.length; i++) {\n if (items[i].id === id) {\n tile = items[i];\n break;\n }\n }\n\n if (tile) {\n tile.show();\n } else {\n tile = new ImageTile(id, options);\n this._items.push(tile);\n }\n\n return tile;\n }\n\n _remove(center) {\n let items = this._items;\n let maxDist = -1;\n let index = -1;\n\n for (let i = 0; i < items.length; i++) {\n let dist = items[i].options.point.distanceTo(center);\n\n if (dist > maxDist && !items[i].visible) {\n index = i;\n maxDist = dist;\n }\n }\n\n if (index !== -1) {\n items[index].destroy();\n items.splice(index, 1);\n }\n }\n}\n\nsetDefaultOptions(TilePool, {\n maxSize: 100\n});\n","import {\n Class,\n deepExtend,\n deg,\n rad,\n round,\n defined\n} from '../common';\n\nimport {\n datums\n} from './datums';\n\nfunction toSquare(value) {\n return value * value;\n}\n\n\nlet math = Math,\n abs = math.abs,\n atan = math.atan,\n atan2 = math.atan2,\n cos = math.cos,\n sin = math.sin,\n tan = math.tan;\n\nexport class Location extends Class {\n constructor(lat, lng) {\n super();\n\n this.initProperties();\n\n if (arguments.length === 1) {\n this.lat = lat[0];\n this.lng = lat[1];\n } else {\n this.lat = lat;\n this.lng = lng;\n }\n }\n\n initProperties() {\n deepExtend(this, {\n DISTANCE_ITERATIONS: 100,\n DISTANCE_CONVERGENCE: 1e-12,\n DISTANCE_PRECISION: 2,\n FORMAT: '{0:N6}{1:N6}'\n });\n }\n\n toArray() {\n return [\n this.lat,\n this.lng\n ];\n }\n\n equals(loc) {\n return loc && loc.lat === this.lat && loc.lng === this.lng;\n }\n\n clone() {\n return new Location(this.lat, this.lng);\n }\n\n round(precision) {\n this.lng = round(this.lng, precision);\n this.lat = round(this.lat, precision);\n return this;\n }\n\n wrap() {\n this.lng = this.lng % 180;\n this.lat = this.lat % 90;\n return this;\n }\n\n distanceTo(dest, datum) {\n return this.greatCircleTo(dest, datum).distance;\n }\n\n destination(distance, initialBearing, initialDatum) {\n let bearing = rad(initialBearing);\n let datum = initialDatum || datums.WGS84;\n let fromLat = rad(this.lat);\n let fromLng = rad(this.lng);\n let dToR = distance / datum.a;\n let lat = math.asin(sin(fromLat) * cos(dToR) + cos(fromLat) * sin(dToR) * cos(bearing));\n let lng = fromLng + atan2(sin(bearing) * sin(dToR) * cos(fromLat), cos(dToR) - sin(fromLat) * sin(lat));\n\n return new Location(deg(lat), deg(lng));\n }\n\n greatCircleTo(initialDest, initialDatum) {\n let dest = Location.create(dest);\n let datum = initialDatum || datums.WGS84;\n\n if (!dest || this.clone().round(8).equals(dest.clone().round(8))) {\n return {\n distance: 0,\n azimuthFrom: 0,\n azimuthTo: 0\n };\n }\n\n // See http://en.wikipedia.org/wiki/Vincenty's_formulae#Notation\n // o == sigma\n // A == alpha\n\n let a = datum.a;\n let b = datum.b;\n let f = datum.f;\n let L = rad(dest.lng - this.lng);\n let U1 = atan((1 - f) * tan(rad(this.lat)));\n let sinU1 = sin(U1);\n let cosU1 = cos(U1);\n let U2 = atan((1 - f) * tan(rad(dest.lat)));\n let sinU2 = sin(U2);\n let cosU2 = cos(U2);\n let lambda = L;\n let prevLambda;\n let i = this.DISTANCE_ITERATIONS;\n let converged = false;\n let sinLambda;\n let cosLambda;\n let sino;\n let cosA2;\n let coso;\n let cos2om;\n let sigma;\n\n while (!converged && i-- > 0) {\n sinLambda = sin(lambda);\n cosLambda = cos(lambda);\n sino = math.sqrt(toSquare(cosU2 * sinLambda) + toSquare(cosU1 * sinU2 - sinU1 * cosU2 * cosLambda));\n coso = sinU1 * sinU2 + cosU1 * cosU2 * cosLambda;\n sigma = atan2(sino, coso);\n\n let sinA = cosU1 * cosU2 * sinLambda / sino;\n cosA2 = 1 - toSquare(sinA);\n cos2om = 0;\n\n if (cosA2 !== 0) {\n cos2om = coso - 2 * sinU1 * sinU2 / cosA2;\n }\n\n prevLambda = lambda;\n let C = f / 16 * cosA2 * (4 + f * (4 - 3 * cosA2));\n lambda = L + (1 - C) * f * sinA * (sigma + C * sino * (cos2om + C * coso * (-1 + 2 * toSquare(cos2om))));\n converged = abs(lambda - prevLambda) <= this.DISTANCE_CONVERGENCE;\n }\n\n let u2 = cosA2 * (toSquare(a) - toSquare(b)) / toSquare(b);\n let A = 1 + u2 / 16384 * (4096 + u2 * (-768 + u2 * (320 - 175 * u2)));\n let B = u2 / 1024 * (256 + u2 * (-128 + u2 * (74 - 47 * u2)));\n let deltao = B * sino * (cos2om + B / 4 * (coso * (-1 + 2 * toSquare(cos2om)) - B / 6 * cos2om * (-3 + 4 * toSquare(sino)) * (-3 + 4 * toSquare(cos2om))));\n\n let azimuthFrom = atan2(cosU2 * sinLambda, cosU1 * sinU2 - sinU1 * cosU2 * cosLambda);\n let azimuthTo = atan2(cosU1 * sinLambda, -sinU1 * cosU2 + cosU1 * sinU2 * cosLambda);\n\n return {\n distance: round(b * A * (sigma - deltao), this.DISTANCE_PRECISION),\n azimuthFrom: deg(azimuthFrom),\n azimuthTo: deg(azimuthTo)\n };\n }\n\n // IE < 9 doesn't allow to override toString on definition\n toString() {\n // return kendo.format(this.FORMAT, this.lat, this.lng);\n return String(this.lat) + \",\" + String(this.lng);\n }\n\n static fromLngLat(lngAndLat) {\n return new Location(lngAndLat[1], lngAndLat[0]);\n }\n\n static fromLatLng(lngAndLat) {\n return new Location(lngAndLat[0], lngAndLat[1]);\n }\n\n static create(a, b) {\n if (defined(a)) {\n if (a instanceof Location) {\n return a.clone();\n } else if (arguments.length === 1 && a.length === 2) {\n return Location.fromLatLng(a);\n }\n\n return new Location(a, b);\n }\n }\n}\n","import {\n geometry as g\n} from '@progress/kendo-drawing';\n\nimport {\n addClass,\n setDefaultOptions,\n valueOrDefault,\n defined,\n mousewheelDelta,\n limitValue,\n deepExtend,\n elementOffset,\n isArray\n} from '../common';\n\nimport {\n EPSG3857\n} from './crs';\n\nimport {\n Attribution\n} from './attribution';\n\nimport {\n Navigator\n} from './navigator';\n\nimport {\n ZoomControl\n} from './zoom';\n\nimport {\n Location\n} from './location';\n\nimport {\n Extent\n} from './extent';\n\nimport {\n TileLayer\n} from './layers/tile';\n\nimport {\n BubbleLayer\n} from './layers/bubble';\n\nimport {\n ShapeLayer\n} from './layers/shape';\n\nimport {\n MarkerLayer\n} from './layers/marker';\n\nimport {\n removeChildren,\n setDefaultEvents,\n toHyphens,\n proxy,\n now,\n on,\n off,\n getSupportedFeatures,\n convertToHtml\n} from './utils';\n\nimport {\n Scroller\n} from './scroller/scroller';\n\nimport {\n Observable\n} from './scroller/observable';\n\nimport MapService from './../services/map-service';\n\nlet math = Math,\n min = math.min,\n pow = math.pow,\n Point = g.Point,\n MARKER = \"marker\",\n LOCATION = \"location\",\n FRICTION = 0.9,\n FRICTION_MOBILE = 0.93,\n MOUSEWHEEL = 'DOMMouseScroll mousewheel',\n VELOCITY_MULTIPLIER = 5,\n DEFAULT_ZOOM_RATE = 1;\n\nconst layersMap = {\n bubble: BubbleLayer,\n shape: ShapeLayer,\n tile: TileLayer,\n [MARKER]: MarkerLayer\n};\n\nfunction renderPos(pos) {\n let result = [];\n\n if (pos) {\n let parts = toHyphens(pos).split(\"-\");\n\n for (let i = 0; i < parts.length; i++) {\n result.push(\"k-pos-\" + parts[i]);\n }\n }\n\n return result.join(\" \");\n}\n\nclass Map extends Observable {\n constructor(element, options = {}, themeOptions = {}, context = {}) {\n super();\n\n\n this._init(element, options, themeOptions, context);\n }\n\n destroy() {\n this.scroller.destroy();\n\n if (this.navigator) {\n this.navigator.destroy();\n }\n if (this.attribution) {\n this.attribution.destroy();\n }\n if (this.zoomControl) {\n this.zoomControl.destroy();\n }\n\n if (isArray(this.markers)) {\n this.markers.forEach(markerLayer => {\n markerLayer.destroy();\n });\n } else {\n this.markers.destroy();\n }\n\n for (let i = 0; i < this.layers.length; i++) {\n this.layers[i].destroy();\n }\n\n off(this.element, MOUSEWHEEL, this._mousewheelHandler);\n\n super.destroy();\n }\n\n _init(element, options = {}, themeOptions = {}, context = {}) {\n this.support = getSupportedFeatures();\n this.context = context;\n\n this.initObserver(context);\n this.initServices(context);\n\n this._initOptions(options);\n this._setEvents(options);\n this.crs = new EPSG3857();\n\n this._initElement(element);\n\n this._viewOrigin = this._getOrigin();\n\n this._initScroller();\n this._initMarkers();\n this._initControls();\n this._initLayers();\n this._reset();\n\n this._mousewheelHandler = this._mousewheel.bind(this);\n on(this.element, MOUSEWHEEL, this._mousewheelHandler);\n }\n\n _initOptions(options) {\n this.options = deepExtend({}, this.options, options);\n }\n\n _initElement(element) {\n this.element = element;\n\n addClass(element, \"k-map\");\n element.style.position = \"relative\";\n element.setAttribute(\"data-role\", \"map\");\n removeChildren(element);\n\n const div = convertToHtml(\"
    \");\n this.element.appendChild(div);\n }\n\n initServices(context = {}) {\n this.widgetService = new MapService(this, context);\n }\n\n initObserver(context = {}) {\n this.observers = [];\n this.addObserver(context.observer);\n }\n\n addObserver(observer) {\n if (observer) {\n this.observers.push(observer);\n }\n }\n\n removeObserver(observer) {\n const index = this.observers.indexOf(observer);\n\n if (index >= 0) {\n this.observers.splice(index, 1);\n }\n }\n\n requiresHandlers(eventNames) {\n const observers = this.observers;\n\n for (let idx = 0; idx < observers.length; idx++) {\n if (observers[idx].requiresHandlers(eventNames)) {\n return true;\n }\n }\n }\n\n trigger(name, args = {}) {\n args.sender = this;\n\n const observers = this.observers;\n let isDefaultPrevented = false;\n\n for (let idx = 0; idx < observers.length; idx++) {\n if (observers[idx].trigger(name, args)) {\n isDefaultPrevented = true;\n }\n }\n\n if (!isDefaultPrevented) {\n super.trigger(name, args);\n }\n\n return isDefaultPrevented;\n }\n\n _notifyObserver(name, args = {}) {\n args.sender = this;\n\n const observers = this.observers;\n let isDefaultPrevented = false;\n\n for (let idx = 0; idx < observers.length; idx++) {\n if (observers[idx].trigger(name, args)) {\n isDefaultPrevented = true;\n }\n }\n\n return isDefaultPrevented;\n }\n\n zoom(level) {\n let options = this.options;\n let result;\n\n if (defined(level)) {\n const zoomLevel = math.round(limitValue(level, options.minZoom, options.maxZoom));\n\n if (options.zoom !== zoomLevel) {\n options.zoom = zoomLevel;\n this._reset();\n }\n result = this;\n } else {\n result = options.zoom;\n }\n\n return result;\n }\n\n center(center) {\n let result;\n\n if (center) {\n this.options.center = Location.create(center).toArray();\n this._reset();\n result = this;\n } else {\n result = Location.create(this.options.center);\n }\n\n return result;\n }\n\n extent(extent) {\n let result;\n\n if (extent) {\n this._setExtent(extent);\n result = this;\n } else {\n result = this._getExtent();\n }\n\n return result;\n }\n\n setOptions(options = {}) {\n const element = this.element;\n\n this.destroy();\n removeChildren(element);\n this._init(element, options, {}, this.context);\n\n this._reset();\n }\n\n locationToLayer(location, zoom) {\n let clamp = !this.options.wraparound;\n const locationObject = Location.create(location);\n\n return this.crs.toPoint(locationObject, this._layerSize(zoom), clamp);\n }\n\n layerToLocation(point, zoom) {\n let clamp = !this.options.wraparound;\n const pointObject = Point.create(point);\n\n return this.crs.toLocation(pointObject, this._layerSize(zoom), clamp);\n }\n\n locationToView(location) {\n const locationObject = Location.create(location);\n let origin = this.locationToLayer(this._viewOrigin);\n let point = this.locationToLayer(locationObject);\n\n return point.translateWith(origin.scale(-1));\n }\n\n viewToLocation(point, zoom) {\n const origin = this.locationToLayer(this._getOrigin(), zoom);\n const pointObject = Point.create(point);\n const pointResult = pointObject.clone().translateWith(origin);\n\n return this.layerToLocation(pointResult, zoom);\n }\n\n eventOffset(e) {\n let x;\n let y;\n let offset = elementOffset(this.element);\n\n if ((e.x && e.x[LOCATION]) || (e.y && e.y[LOCATION])) {\n x = e.x[LOCATION] - offset.left;\n y = e.y[LOCATION] - offset.top;\n } else {\n let event = e.originalEvent || e;\n x = valueOrDefault(event.pageX, event.clientX) - offset.left;\n y = valueOrDefault(event.pageY, event.clientY) - offset.top;\n }\n\n const point = new g.Point(x, y);\n\n return point;\n }\n\n eventToView(e) {\n let cursor = this.eventOffset(e);\n return this.locationToView(this.viewToLocation(cursor));\n }\n\n eventToLayer(e) {\n return this.locationToLayer(this.eventToLocation(e));\n }\n\n eventToLocation(e) {\n let cursor = this.eventOffset(e);\n return this.viewToLocation(cursor);\n }\n\n viewSize() {\n let element = this.element;\n let scale = this._layerSize();\n let width = element.clientWidth;\n\n if (!this.options.wraparound) {\n width = min(scale, width);\n }\n\n return {\n width: width,\n height: min(scale, element.clientHeight)\n };\n }\n\n exportVisual() {\n this._reset();\n return false;\n }\n\n _setOrigin(origin, zoom) {\n let size = this.viewSize(),\n topLeft;\n\n const originLocation = this._origin = Location.create(origin);\n topLeft = this.locationToLayer(originLocation, zoom);\n topLeft.x += size.width / 2;\n topLeft.y += size.height / 2;\n this.options.center = this.layerToLocation(topLeft, zoom).toArray();\n\n return this;\n }\n\n _getOrigin(invalidate) {\n let size = this.viewSize(),\n topLeft;\n\n if (invalidate || !this._origin) {\n topLeft = this.locationToLayer(this.center());\n topLeft.x -= size.width / 2;\n topLeft.y -= size.height / 2;\n this._origin = this.layerToLocation(topLeft);\n }\n\n return this._origin;\n }\n\n _setExtent(newExtent) {\n let raw = Extent.create(newExtent);\n let se = raw.se.clone();\n\n if (this.options.wraparound && se.lng < 0 && newExtent.nw.lng > 0) {\n se.lng = 180 + (180 + se.lng);\n }\n\n const extent = new Extent(raw.nw, se);\n this.center(extent.center());\n let width = this.element.clientWidth;\n let height = this.element.clientHeight;\n let zoom;\n\n for (zoom = this.options.maxZoom; zoom >= this.options.minZoom; zoom--) {\n let topLeft = this.locationToLayer(extent.nw, zoom);\n let bottomRight = this.locationToLayer(extent.se, zoom);\n let layerWidth = math.abs(bottomRight.x - topLeft.x);\n let layerHeight = math.abs(bottomRight.y - topLeft.y);\n\n if (layerWidth <= width && layerHeight <= height) {\n break;\n }\n }\n\n this.zoom(zoom);\n }\n\n _getExtent() {\n let nw = this._getOrigin();\n let bottomRight = this.locationToLayer(nw);\n let size = this.viewSize();\n\n bottomRight.x += size.width;\n bottomRight.y += size.height;\n\n let se = this.layerToLocation(bottomRight);\n\n return new Extent(nw, se);\n }\n\n _zoomAround(pivot, level) {\n this._setOrigin(this.layerToLocation(pivot, level), level);\n this.zoom(level);\n }\n\n _initControls() {\n let controls = this.options.controls;\n if (controls.attribution) {\n this._createAttribution(controls.attribution);\n }\n\n if (!this.support.mobileOS) {\n if (controls.navigator) {\n this._createNavigator(controls.navigator);\n }\n\n if (controls.zoom) {\n this._createZoomControl(controls.zoom);\n }\n }\n }\n\n _createControlElement(options, defaultPosition) {\n let pos = options.position || defaultPosition;\n let posSelector = '.' + renderPos(pos).replace(' ', '.');\n let wrap = this.element.querySelector('.k-map-controls' + posSelector) || [];\n\n if (wrap.length === 0) {\n let div = document.createElement(\"div\");\n addClass(div, 'k-map-controls ' + renderPos(pos));\n wrap = div;\n this.element.appendChild(wrap);\n }\n\n let div = document.createElement(\"div\");\n\n wrap.appendChild(div);\n\n return div;\n }\n\n _createAttribution(options) {\n let element = this._createControlElement(options, 'bottomRight');\n this.attribution = new Attribution(element, options);\n }\n\n _createNavigator(options) {\n let element = this._createControlElement(options, 'topLeft');\n let navigator = this.navigator = new Navigator(element, options);\n\n this._navigatorPan = this._navigatorPan.bind(this);\n navigator.bind('pan', this._navigatorPan);\n\n this._navigatorCenter = this._navigatorCenter.bind(this);\n navigator.bind('center', this._navigatorCenter);\n }\n\n _navigatorPan(e) {\n let scroller = this.scroller;\n let x = scroller.scrollLeft + e.x;\n let y = scroller.scrollTop - e.y;\n let bounds = this._virtualSize;\n let width = this.element.clientWidth;\n let height = this.element.clientHeight;\n\n // TODO: Move limits to scroller\n x = limitValue(x, bounds.x.min, bounds.x.max - width);\n y = limitValue(y, bounds.y.min, bounds.y.max - height);\n\n this.scroller.one('scroll', proxy(this._scrollEnd, this));\n\n this.scroller.scrollTo(-x, -y);\n }\n\n _navigatorCenter() {\n this.center(this.options.center);\n }\n\n _createZoomControl(options) {\n let element = this._createControlElement(options, 'topLeft');\n let zoomControl = this.zoomControl = new ZoomControl(element, options);\n\n this._zoomControlChange = this._zoomControlChange.bind(this);\n zoomControl.bind('change', this._zoomControlChange);\n }\n\n _zoomControlChange(e) {\n if (!this.trigger('zoomStart', { originalEvent: e })) {\n this.zoom(this.zoom() + e.delta);\n\n this.trigger('zoomEnd', {\n originalEvent: e\n });\n }\n }\n\n _initScroller() {\n let friction = this.support.mobileOS ? FRICTION_MOBILE : FRICTION;\n let zoomable = this.options.zoomable !== false;\n let scroller = this.scroller = new Scroller(this.element.children[0], {\n friction: friction,\n velocityMultiplier: VELOCITY_MULTIPLIER,\n zoom: zoomable,\n mousewheelScrolling: false,\n supportDoubleTap: true\n });\n\n scroller.bind('scroll', proxy(this._scroll, this));\n scroller.bind('scrollEnd', proxy(this._scrollEnd, this));\n\n scroller.userEvents.bind('gesturestart', proxy(this._scaleStart, this));\n scroller.userEvents.bind('gestureend', proxy(this._scale, this));\n scroller.userEvents.bind('doubleTap', proxy(this._doubleTap, this));\n scroller.userEvents.bind('tap', proxy(this._tap, this));\n\n this.scrollElement = scroller.scrollElement;\n }\n\n _initLayers() {\n let defs = this.options.layers,\n layers = this.layers = [];\n\n for (let i = 0; i < defs.length; i++) {\n let options = defs[i];\n\n const layer = this._createLayer(options);\n layers.push(layer);\n }\n }\n\n _createLayer(options) {\n let type = options.type || 'shape';\n let layerDefaults = this.options.layerDefaults[type];\n let layerOptions = type === MARKER ?\n deepExtend({}, this.options.markerDefaults, options) :\n deepExtend({}, layerDefaults, options);\n\n let layerConstructor = layersMap[type];\n let layer = new layerConstructor(this, layerOptions);\n\n if (type === MARKER) {\n this.markers = layer;\n }\n\n return layer;\n }\n\n /* eslint-disable arrow-body-style */\n _initMarkers() {\n const markerLayers = (this.options.layers || []).filter(x => {\n return x && x.type === MARKER;\n });\n\n if (markerLayers.length > 0) {\n // render the markers from options.layers\n // instead of options.markers\n return;\n }\n\n this.markers = new MarkerLayer(this, this.options.markerDefaults);\n this.markers.add(this.options.markers);\n }\n /* eslint-enable arrow-body-style */\n\n _scroll(e) {\n let origin = this.locationToLayer(this._viewOrigin).round();\n let movable = e.sender.movable;\n let offset = new g.Point(movable.x, movable.y).scale(-1).scale(1 / movable.scale);\n\n origin.x += offset.x;\n origin.y += offset.y;\n this._scrollOffset = offset;\n\n this._setOrigin(this.layerToLocation(origin));\n\n this.trigger('pan', {\n originalEvent: e,\n origin: this._getOrigin(),\n center: this.center()\n });\n }\n\n _scrollEnd(e) {\n if (!this._scrollOffset || !this._panComplete()) {\n return;\n }\n\n this._scrollOffset = null;\n this._panEndTimestamp = now();\n\n this.trigger('panEnd', {\n originalEvent: e,\n origin: this._getOrigin(),\n center: this.center()\n });\n }\n\n _panComplete() {\n return now() - (this._panEndTimestamp || 0) > 50;\n }\n\n _scaleStart(e) {\n if (this.trigger('zoomStart', { originalEvent: e })) {\n let touch = e.touches[1];\n\n if (touch) {\n touch.cancel();\n }\n }\n }\n\n _scale(e) {\n let scale = this.scroller.movable.scale;\n let zoom = this._scaleToZoom(scale);\n let gestureCenter = new g.Point(e.center.x, e.center.y);\n let centerLocation = this.viewToLocation(gestureCenter, zoom);\n let centerPoint = this.locationToLayer(centerLocation, zoom);\n let originPoint = centerPoint.translate(-gestureCenter.x, -gestureCenter.y);\n\n this._zoomAround(originPoint, zoom);\n\n this.trigger('zoomEnd', {\n originalEvent: e\n });\n }\n\n _scaleToZoom(scaleDelta) {\n let scale = this._layerSize() * scaleDelta;\n let tiles = scale / this.options.minSize;\n let zoom = math.log(tiles) / math.log(2);\n\n return math.round(zoom);\n }\n\n _reset() {\n if (this.attribution) {\n this.attribution.filter(this.center(), this.zoom());\n }\n\n this._viewOrigin = this._getOrigin(true);\n\n this._resetScroller();\n\n this.trigger('beforeReset');\n this.trigger('reset');\n }\n\n _resetScroller() {\n let scroller = this.scroller;\n let x = scroller.dimensions.x;\n let y = scroller.dimensions.y;\n let scale = this._layerSize();\n let nw = this.extent().nw;\n let topLeft = this.locationToLayer(nw).round();\n\n scroller.movable.round = true;\n scroller.reset();\n scroller.userEvents.cancel();\n\n let zoom = this.zoom();\n\n scroller.dimensions.forcedMinScale = pow(2, this.options.minZoom - zoom);\n scroller.dimensions.maxScale = pow(2, this.options.maxZoom - zoom);\n\n let xBounds = {\n min: -topLeft.x,\n max: scale - topLeft.x\n };\n\n let yBounds = {\n min: -topLeft.y,\n max: scale - topLeft.y\n };\n\n if (this.options.wraparound) {\n xBounds.max = 20 * scale;\n xBounds.min = -xBounds.max;\n }\n\n if (this.options.pannable === false) {\n let viewSize = this.viewSize();\n xBounds.min = yBounds.min = 0;\n xBounds.max = viewSize.width;\n yBounds.max = viewSize.height;\n }\n\n x.makeVirtual();\n y.makeVirtual();\n\n x.virtualSize(xBounds.min, xBounds.max);\n y.virtualSize(yBounds.min, yBounds.max);\n\n this._virtualSize = {\n x: xBounds,\n y: yBounds\n };\n }\n\n // kept for API compatibility, not used\n _renderLayers() {\n }\n\n _layerSize(zoom) {\n const newZoom = valueOrDefault(zoom, this.options.zoom);\n return this.options.minSize * pow(2, newZoom);\n }\n\n _tap(e) {\n if (!this._panComplete()) {\n return;\n }\n\n let cursor = this.eventOffset(e);\n\n this.trigger('click', {\n originalEvent: e,\n location: this.viewToLocation(cursor)\n });\n }\n\n _doubleTap(e) {\n let options = this.options;\n\n if (options.zoomable !== false) {\n if (!this.trigger('zoomStart', { originalEvent: e })) {\n let toZoom = this.zoom() + DEFAULT_ZOOM_RATE;\n let cursor = this.eventOffset(e);\n let location = this.viewToLocation(cursor);\n let postZoom = this.locationToLayer(location, toZoom);\n let origin = postZoom.translate(-cursor.x, -cursor.y);\n\n this._zoomAround(origin, toZoom);\n\n this.trigger('zoomEnd', {\n originalEvent: e\n });\n }\n }\n }\n\n _mousewheel(e) {\n e.preventDefault();\n let delta = mousewheelDelta(e) > 0 ? -1 : 1;\n let options = this.options;\n let fromZoom = this.zoom();\n let toZoom = limitValue(fromZoom + delta, options.minZoom, options.maxZoom);\n\n if (options.zoomable !== false && toZoom !== fromZoom) {\n if (!this.trigger('zoomStart', { originalEvent: e })) {\n let cursor = this.eventOffset(e);\n let location = this.viewToLocation(cursor);\n let postZoom = this.locationToLayer(location, toZoom);\n let origin = postZoom.translate(-cursor.x, -cursor.y);\n\n this._zoomAround(origin, toZoom);\n\n this.trigger('zoomEnd', {\n originalEvent: e\n });\n }\n }\n }\n}\n\nsetDefaultOptions(Map, {\n name: 'Map',\n controls: {\n attribution: true,\n navigator: {\n panStep: 100\n },\n zoom: true\n },\n layers: [],\n layerDefaults: {\n shape: {\n style: {\n fill: {\n color: '#fff'\n },\n stroke: {\n color: '#aaa',\n width: 0.5\n }\n }\n },\n bubble: {\n style: {\n fill: {\n color: '#fff',\n opacity: 0.5\n },\n stroke: {\n color: '#aaa',\n width: 0.5\n }\n }\n },\n marker: {\n shape: 'pinTarget',\n tooltip: {\n position: 'top'\n }\n }\n },\n center: [\n 0,\n 0\n ],\n zoom: 3,\n minSize: 256,\n minZoom: 1,\n maxZoom: 19,\n markers: [],\n markerDefaults: {\n shape: 'pinTarget',\n tooltip: {\n position: 'top'\n }\n },\n wraparound: true,\n // If set to true, GeoJSON layer \"Point\" features will be rendered as markers.\n // Otherwise, the points will be rendered as circles.\n // Defaults to `true` for KUI/jQuery, `false` everywhere else.\n renderPointsAsMarkers: false\n});\n\nsetDefaultEvents(Map, [\n 'beforeReset',\n 'click',\n 'markerActivate',\n 'markerClick',\n 'markerCreated',\n\n // Events for implementing custom tooltips.\n 'markerMouseEnter',\n 'markerMouseLeave',\n\n 'pan',\n 'panEnd',\n 'reset',\n 'shapeClick',\n 'shapeCreated',\n 'shapeFeatureCreated',\n 'shapeMouseEnter',\n 'shapeMouseLeave',\n 'zoomEnd',\n 'zoomStart'\n]);\n\nexport default Map;\n","import {\n deepExtend,\n addClass,\n keys,\n setDefaultOptions\n} from '../common';\n\nimport {\n Observable\n} from './scroller/observable';\n\nimport {\n proxy,\n on,\n off,\n setDefaultEvents,\n convertToHtml\n} from './utils';\n\nconst PAN = \"pan\";\n\nconst directionsMap = {\n up: {\n className: \"k-navigator-n\",\n iconClass: \"k-i-arrow-n\"\n },\n down: {\n className: \"k-navigator-s\",\n iconClass: \"k-i-arrow-s\"\n },\n right: {\n className: \"k-navigator-e\",\n iconClass: \"k-i-arrow-e\"\n },\n left: {\n className: \"k-navigator-w\",\n iconClass: \"k-i-arrow-w\"\n }\n};\n\nfunction createButton(direction) {\n const html =\n '';\n\n return convertToHtml(html);\n}\n\nexport class Navigator extends Observable {\n constructor(element, options) {\n super();\n\n this.element = element;\n this._initOptions(options);\n\n const navigateUpButton = createButton(\"up\");\n const navigateRightlButton = createButton(\"right\");\n const navigateDownButton = createButton(\"down\");\n const navigateLeftButton = createButton(\"left\");\n\n this.element.appendChild(navigateUpButton);\n this.element.appendChild(navigateRightlButton);\n this.element.appendChild(navigateDownButton);\n this.element.appendChild(navigateLeftButton);\n\n addClass(this.element, 'k-widget k-navigator');\n\n on(this.element, \"click\", \".k-button\", proxy(this._click, this));\n\n let parentElement = this.element.parentNode.closest(\"[data-role]\");\n\n this._keyroot = parentElement ? parentElement : this.element;\n this._tabindex(this._keyroot);\n\n this._keydownHandler = proxy(this._keydown, this);\n on(this._keyroot, \"keydown\", this._keydownHandler);\n }\n\n destroy() {\n this.dispose();\n }\n\n // originates from the kendo.jquery version\n dispose() {\n off(this._keyroot, \"keydown\", this._keydownHandler);\n }\n\n _tabindex(target) {\n const targetElement = target || this.wrapper || this.element;\n\n let element = this.element,\n TABINDEX = \"tabindex\",\n tabindex = targetElement.getAttribute(TABINDEX) || element.getAttribute(TABINDEX);\n\n element.removeAttribute(TABINDEX);\n\n targetElement.setAttribute(TABINDEX, !isNaN(tabindex) ? tabindex : 0);\n }\n\n _initOptions(options) {\n this.options = deepExtend({}, this.options, options);\n }\n\n _pan(x, y) {\n let panStep = this.options.panStep;\n\n this.trigger(PAN, {\n x: x * panStep,\n y: y * panStep\n });\n }\n\n _click(e) {\n let x = 0;\n let y = 0;\n let button = e.currentTarget;\n\n if (button.matches('.k-navigator-n')) {\n y = 1;\n } else if (button.matches('.k-navigator-s')) {\n y = -1;\n } else if (button.matches('.k-navigator-e')) {\n x = 1;\n } else if (button.matches('.k-navigator-w')) {\n x = -1;\n }\n\n this._pan(x, y);\n\n e.preventDefault();\n }\n\n /* eslint-disable indent */\n _keydown(e) {\n switch (e.which) {\n case keys.UP:\n this._pan(0, 1);\n e.preventDefault();\n break;\n case keys.DOWN:\n this._pan(0, -1);\n e.preventDefault();\n break;\n case keys.RIGHT:\n this._pan(1, 0);\n e.preventDefault();\n break;\n case keys.LEFT:\n this._pan(-1, 0);\n e.preventDefault();\n break;\n default:\n break;\n }\n }\n /* eslint-enable indent */\n}\n\nsetDefaultOptions(Navigator, {\n name: 'Navigator',\n panStep: 1\n});\n\n\nsetDefaultEvents(Navigator, [\n PAN\n]);\n","import {\n Class,\n elementOffset\n} from '../../common';\n\nimport {\n Observable\n} from './observable';\n\nimport {\n getEventMap,\n proxy,\n getSupportedFeatures\n} from '../utils';\n\nconst extend = Object.assign;\n\nconst CHANGE = 'change';\n\nexport class TapCapture extends Observable {\n constructor(element, options) {\n super();\n let that = this,\n domElement = element[0] || element;\n\n that.capture = false;\n\n const eventMap = getEventMap(navigator.userAgent);\n\n if (domElement.addEventListener) {\n eventMap.down.split(' ').forEach(function(event) {\n domElement.addEventListener(event, proxy(that._press, that), true);\n });\n eventMap.up.split(' ').forEach(function(event) {\n domElement.addEventListener(event, proxy(that._release, that), true);\n });\n } else {\n eventMap.down.split(' ').forEach(function(event) {\n domElement.attachEvent(event, proxy(that._press, that));\n });\n eventMap.up.split(' ').forEach(function(event) {\n domElement.attachEvent(event, proxy(that._release, that));\n });\n }\n\n that.bind([\n 'press',\n 'release'\n ], options || {});\n }\n\n captureNext() {\n this.capture = true;\n }\n\n cancelCapture() {\n this.capture = false;\n }\n\n _press(e) {\n let that = this;\n\n that.trigger('press');\n\n if (that.capture) {\n e.preventDefault();\n }\n }\n\n _release(e) {\n let that = this;\n\n that.trigger('release');\n\n if (that.capture) {\n e.preventDefault();\n that.cancelCapture();\n }\n }\n}\n\nexport class PaneDimension extends Observable {\n constructor(options) {\n super();\n let that = this;\n that.forcedEnabled = false;\n extend(that, options);\n that.scale = 1;\n\n if (that.horizontal) {\n that.measure = 'offsetWidth';\n that.scrollSize = 'scrollWidth';\n that.axis = 'x';\n } else {\n that.measure = 'offsetHeight';\n that.scrollSize = 'scrollHeight';\n that.axis = 'y';\n }\n }\n\n makeVirtual() {\n extend(this, {\n virtual: true,\n forcedEnabled: true,\n _virtualMin: 0,\n _virtualMax: 0\n });\n }\n\n virtualSize(min, max) {\n if (this._virtualMin !== min || this._virtualMax !== max) {\n this._virtualMin = min;\n this._virtualMax = max;\n this.update();\n }\n }\n\n outOfBounds(offset) {\n return offset > this.max || offset < this.min;\n }\n\n forceEnabled() {\n this.forcedEnabled = true;\n }\n\n getSize() {\n return this.container[this.measure];\n }\n\n getTotal() {\n return this.element[this.scrollSize];\n }\n\n rescale(scale) {\n this.scale = scale;\n }\n\n update(silent) {\n let that = this,\n total = that.virtual ? that._virtualMax : that.getTotal(),\n scaledTotal = total * that.scale,\n size = that.getSize();\n\n if (total === 0 && !that.forcedEnabled) {\n return;\n }\n\n that.max = that.virtual ? -that._virtualMin : 0;\n that.size = size;\n that.total = scaledTotal;\n that.min = Math.min(that.max, size - scaledTotal);\n that.minScale = size / total;\n that.centerOffset = (scaledTotal - size) / 2;\n that.enabled = that.forcedEnabled || scaledTotal > size;\n\n if (!silent) {\n that.trigger(CHANGE, that);\n }\n }\n}\n\nexport class PaneDimensions extends Observable {\n constructor(options) {\n super();\n let that = this;\n\n that.x = new PaneDimension(extend({\n horizontal: true\n }, options));\n\n that.y = new PaneDimension(extend({\n horizontal: false\n }, options));\n\n that.container = options.container;\n that.forcedMinScale = options.minScale;\n that.maxScale = options.maxScale || 100;\n that.bind(CHANGE, options);\n }\n\n rescale(newScale) {\n this.x.rescale(newScale);\n this.y.rescale(newScale);\n this.refresh();\n }\n\n centerCoordinates() {\n return {\n x: Math.min(0, -this.x.centerOffset),\n y: Math.min(0, -this.y.centerOffset)\n };\n }\n\n refresh() {\n let that = this;\n that.x.update();\n that.y.update();\n that.enabled = that.x.enabled || that.y.enabled;\n that.minScale = that.forcedMinScale || Math.min(that.x.minScale, that.y.minScale);\n that.fitScale = Math.max(that.x.minScale, that.y.minScale);\n that.trigger(CHANGE);\n }\n}\n\nexport class PaneAxis extends Observable {\n constructor(options) {\n super();\n extend(this, options);\n }\n\n outOfBounds() {\n return this.dimension.outOfBounds(this.movable[this.axis]);\n }\n\n dragMove(delta) {\n let that = this,\n dimension = that.dimension,\n axis = that.axis,\n movable = that.movable,\n position = movable[axis] + delta;\n\n if (!dimension.enabled) {\n return;\n }\n\n let dragDelta = delta;\n\n if (position < dimension.min && delta < 0 || position > dimension.max && delta > 0) {\n dragDelta *= that.resistance;\n }\n\n movable.translateAxis(axis, dragDelta);\n that.trigger(CHANGE, that);\n }\n}\n\nexport class Pane extends Class {\n constructor(options) {\n super();\n\n let that = this,\n x, y,\n resistance,\n movable;\n\n extend(that, {\n elastic: true\n }, options);\n\n resistance = that.elastic ? 0.5 : 0;\n movable = that.movable;\n\n that.x = x = new PaneAxis({\n axis: 'x',\n dimension: that.dimensions.x,\n resistance: resistance,\n movable: movable\n });\n\n that.y = y = new PaneAxis({\n axis: 'y',\n dimension: that.dimensions.y,\n resistance: resistance,\n movable: movable\n });\n\n that.userEvents.bind([\n 'press',\n 'move',\n 'end',\n 'gesturestart',\n 'gesturechange'\n ], {\n gesturestart(e) {\n that.gesture = e;\n\n that.offset = elementOffset(that.dimensions.container);\n },\n press(e) {\n const closestAnchor = e.event.target.closest('a');\n\n if (closestAnchor && closestAnchor.matches('[data-navigate-on-press=true]')) {\n e.sender.cancel();\n }\n },\n gesturechange(e) {\n let previousGesture = that.gesture,\n previousCenter = previousGesture.center,\n center = e.center,\n scaleDelta = e.distance / previousGesture.distance,\n minScale = that.dimensions.minScale,\n maxScale = that.dimensions.maxScale,\n coordinates;\n if (movable.scale <= minScale && scaleDelta < 1) {\n scaleDelta += (1 - scaleDelta) * 0.8;\n }\n\n if (movable.scale * scaleDelta >= maxScale) {\n scaleDelta = maxScale / movable.scale;\n }\n\n let offsetX = movable.x + that.offset.left,\n offsetY = movable.y + that.offset.top;\n coordinates = {\n x: (offsetX - previousCenter.x) * scaleDelta + center.x - offsetX,\n y: (offsetY - previousCenter.y) * scaleDelta + center.y - offsetY\n };\n\n movable.scaleWith(scaleDelta);\n\n x.dragMove(coordinates.x);\n y.dragMove(coordinates.y);\n\n that.dimensions.rescale(movable.scale);\n that.gesture = e;\n\n e.preventDefault();\n },\n move(e) {\n if (e.event.target.tagName.match(/textarea|input/i)) {\n return;\n }\n\n if (x.dimension.enabled || y.dimension.enabled) {\n x.dragMove(e.x.delta);\n y.dragMove(e.y.delta);\n e.preventDefault();\n } else {\n e.touch.skip();\n }\n },\n end(e) {\n e.preventDefault();\n }\n });\n }\n}\n\nlet translate = function(x, y, scale) {\n return 'translate3d(' + x + 'px,' + y + 'px,0) scale(' + scale + ')';\n};\n\nexport class Movable extends Observable {\n constructor(element) {\n super();\n\n let that = this;\n\n that.support = getSupportedFeatures();\n this.transformStyle = this.support.transitions.prefix + 'Transform';\n that.element = element;\n that.element.style.webkitTransformOrigin = 'left top';\n that.x = 0;\n that.y = 0;\n that.scale = 1;\n\n const coordinates = translate(that.x, that.y, that.scale);\n that.element.style[this.transformStyle] = coordinates;\n\n that._saveCoordinates(coordinates);\n }\n\n translateAxis(axis, by) {\n this[axis] += by;\n this.refresh();\n }\n\n scaleTo(scale) {\n this.scale = scale;\n this.refresh();\n }\n\n scaleWith(scaleDelta) {\n this.scale *= scaleDelta;\n this.refresh();\n }\n\n translate(coordinates) {\n this.x += coordinates.x;\n this.y += coordinates.y;\n this.refresh();\n }\n\n moveAxis(axis, value) {\n this[axis] = value;\n this.refresh();\n }\n\n moveTo(coordinates) {\n extend(this, coordinates);\n this.refresh();\n }\n\n refresh() {\n let that = this,\n x = that.x,\n y = that.y,\n newCoordinates;\n\n if (that.round) {\n x = Math.round(x);\n y = Math.round(y);\n }\n\n newCoordinates = translate(x, y, that.scale);\n\n if (newCoordinates !== that.coordinates) {\n that.element.style[this.transformStyle] = newCoordinates;\n\n that._saveCoordinates(newCoordinates);\n that.trigger(CHANGE);\n }\n }\n\n _saveCoordinates(coordinates) {\n this.coordinates = coordinates;\n }\n}\n","import {\n Class\n} from '../../common';\n\nimport {\n proxy,\n now\n} from '../utils';\n\nconst extend = Object.assign;\n\nfunction animationFrame(callback) {\n window.requestAnimationFrame(callback);\n}\n\nexport class Animation extends Class {\n constructor() {\n super();\n let that = this;\n\n that._tickProxy = proxy(that._tick, that);\n that._started = false;\n }\n\n tick() { }\n done() { }\n onEnd() { }\n onCancel() { }\n\n start() {\n if (!this.enabled()) {\n return;\n }\n\n if (!this.done()) {\n this._started = true;\n animationFrame(this._tickProxy);\n } else {\n this.onEnd();\n }\n }\n\n enabled() {\n return true;\n }\n\n cancel() {\n this._started = false;\n this.onCancel();\n }\n\n _tick() {\n let that = this;\n\n if (!that._started) {\n return;\n }\n\n that.tick();\n\n if (!that.done()) {\n animationFrame(that._tickProxy);\n } else {\n that._started = false;\n that.onEnd();\n }\n }\n}\n\nexport class Transition extends Animation {\n constructor(options) {\n super();\n extend(this, options);\n }\n\n done() {\n return this.timePassed() >= this.duration;\n }\n\n timePassed() {\n return Math.min(this.duration, now() - this.startDate);\n }\n\n moveTo(options) {\n let that = this,\n movable = that.movable;\n\n that.initial = movable[that.axis];\n that.delta = options.location - that.initial;\n that.duration = typeof options.duration === 'number' ? options.duration : 300;\n that.tick = that._easeProxy(options.ease);\n that.startDate = now();\n that.start();\n }\n\n _easeProxy(ease) {\n let that = this;\n\n return function() {\n that.movable.moveAxis(that.axis, ease(that.timePassed(), that.initial, that.delta, that.duration));\n };\n }\n\n static easeOutExpo(t, b, c, d) {\n return t === d ? b + c : c * (-Math.pow(2, -10 * t / d) + 1) + b;\n }\n\n // static easeOutBack(t, b, c, d) {\n // let s = 1.70158;\n // return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;\n // }\n}\n","import {\n Class\n} from '../../common';\n\nconst STRING = \"string\";\nconst FUNCTION = \"function\";\n\nlet preventDefault = function() {\n this._defaultPrevented = true;\n};\n\nlet isDefaultPrevented = function() {\n return this._defaultPrevented === true;\n};\n\nexport class Observable extends Class {\n constructor() {\n super();\n this._events = {};\n }\n\n destroy() {\n this.unbind();\n }\n\n bind(event, handlers, one) {\n let that = this,\n idx,\n eventNames = typeof event === STRING ? [event] : event || [],\n length,\n original,\n handler,\n handlersIsFunction = typeof handlers === FUNCTION,\n events;\n\n if (handlers === undefined) {\n for (idx in event) {\n that.bind(idx, event[idx]);\n }\n\n return that;\n }\n\n /* eslint-disable no-loop-func */\n for (idx = 0, length = eventNames.length; idx < length; idx++) {\n let eventName = eventNames[idx];\n\n handler = handlersIsFunction ? handlers : handlers[eventName];\n\n if (handler) {\n if (one) {\n original = handler;\n handler = function() {\n that.unbind(eventName, handler);\n original.apply(that, arguments);\n };\n\n handler.original = original;\n }\n\n events = that._events[eventName] = that._events[eventName] || [];\n events.push(handler);\n }\n }\n /* eslint-enable no-loop-func */\n\n return that;\n }\n\n one(eventNames, handlers) {\n return this.bind(eventNames, handlers, true);\n }\n\n first(eventName, handlers) {\n let that = this,\n idx,\n eventNames = typeof eventName === STRING ? [eventName] : eventName,\n length,\n handler,\n handlersIsFunction = typeof handlers === FUNCTION,\n events;\n\n for (idx = 0, length = eventNames.length; idx < length; idx++) {\n let eventName = eventNames[idx];\n\n handler = handlersIsFunction ? handlers : handlers[eventName];\n\n if (handler) {\n events = that._events[eventName] = that._events[eventName] || [];\n events.unshift(handler);\n }\n }\n\n return that;\n }\n\n trigger(eventName, eventArgs) {\n let that = this,\n events = that._events[eventName],\n idx,\n length;\n\n if (events) {\n let e = eventArgs || {};\n\n e.sender = that;\n\n e._defaultPrevented = false;\n\n e.preventDefault = preventDefault;\n\n e.isDefaultPrevented = isDefaultPrevented;\n\n events = events.slice();\n\n for (idx = 0, length = events.length; idx < length; idx++) {\n events[idx].call(that, e);\n }\n\n return e._defaultPrevented === true;\n }\n\n return false;\n }\n\n unbind(eventName, handler) {\n let that = this,\n events = that._events[eventName],\n idx;\n\n if (eventName === undefined) {\n that._events = {};\n } else if (events) {\n if (handler) {\n for (idx = events.length - 1; idx >= 0; idx--) {\n if (events[idx] === handler || events[idx].original === handler) {\n events.splice(idx, 1);\n }\n }\n } else {\n that._events[eventName] = [];\n }\n }\n\n return that;\n }\n\n _setEvents(options) {\n const length = (this.events || []).length;\n\n for (let idx = 0; idx < length; idx ++) {\n let e = this.events[idx];\n\n if (this.options[e] && options[e]) {\n this.unbind(e, this.options[e]);\n\n if (this._events && this._events[e]) {\n delete this._events[e];\n }\n }\n }\n\n this.bind(this.events, options);\n }\n}\n","// todo: extract to a separate place\n\nimport {\n Class,\n deepExtend,\n addClass,\n isFunction,\n setDefaultOptions\n} from '../../common';\n\nimport {\n convertToHtml,\n prepend,\n wrapInner,\n contains,\n hasNativeScrolling,\n on,\n off,\n proxy,\n wheelDeltaY,\n setDefaultEvents\n} from '../utils';\n\nimport {\n Transition,\n Animation\n} from './fx';\n\nimport {\n Pane,\n PaneDimensions,\n Movable,\n TapCapture\n} from './draggable';\n\nimport {\n UserEvents\n} from './user-events';\n\nimport {\n Observable\n} from './observable';\n\nlet\n extend = Object.assign,\n abs = Math.abs,\n SNAPBACK_DURATION = 500,\n SCROLLBAR_OPACITY = 0.7,\n FRICTION = 0.96,\n VELOCITY_MULTIPLIER = 10,\n MAX_VELOCITY = 55,\n OUT_OF_BOUNDS_FRICTION = 0.5,\n ANIMATED_SCROLLER_PRECISION = 5,\n // SCROLLER_RELEASE_CLASS = 'km-scroller-release',\n // SCROLLER_REFRESH_CLASS = 'km-scroller-refresh',\n PULL = 'pull',\n CHANGE = 'change',\n RESIZE = 'resize',\n SCROLL = 'scroll',\n MOUSE_WHEEL_ID = 2;\n\nclass ZoomSnapBack extends Animation {\n constructor(options) {\n super(options);\n let that = this;\n extend(that, options);\n that.userEvents.bind('gestureend', that.start.bind(this));\n that.tapCapture.bind('press', that.cancel.bind(this));\n }\n\n enabled() {\n return this.movable.scale < this.dimensions.minScale;\n }\n\n done() {\n return this.dimensions.minScale - this.movable.scale < 0.01;\n }\n\n tick() {\n let movable = this.movable;\n movable.scaleWith(1.1);\n this.dimensions.rescale(movable.scale);\n }\n\n onEnd() {\n let movable = this.movable;\n movable.scaleTo(this.dimensions.minScale);\n this.dimensions.rescale(movable.scale);\n }\n}\n\nclass DragInertia extends Animation {\n constructor(options) {\n super();\n let that = this;\n\n extend(that, options, {\n transition: new Transition({\n axis: options.axis,\n movable: options.movable,\n onEnd() {\n that._end();\n }\n })\n });\n\n that.tapCapture.bind('press', function() {\n that.cancel();\n });\n\n that.userEvents.bind('end', proxy(that.start, that));\n that.userEvents.bind('gestureend', proxy(that.start, that));\n that.userEvents.bind('tap', proxy(that.onEnd, that));\n }\n\n onCancel() {\n this.transition.cancel();\n }\n\n freeze(location) {\n let that = this;\n that.cancel();\n that._moveTo(location);\n }\n\n onEnd() {\n let that = this;\n if (that.paneAxis.outOfBounds()) {\n that._snapBack();\n } else {\n that._end();\n }\n }\n\n done() {\n return abs(this.velocity) < 1;\n }\n\n start(e) {\n let that = this,\n velocity;\n if (!that.dimension.enabled) {\n return;\n }\n if (that.paneAxis.outOfBounds()) {\n if (that.transition._started) {\n that.transition.cancel();\n that.velocity = Math.min(e.touch[that.axis].velocity * that.velocityMultiplier, MAX_VELOCITY);\n super.start();\n } else {\n that._snapBack();\n }\n } else {\n velocity = e.touch.id === MOUSE_WHEEL_ID ? 0 : e.touch[that.axis].velocity;\n that.velocity = Math.max(Math.min(velocity * that.velocityMultiplier, MAX_VELOCITY), -MAX_VELOCITY);\n that.tapCapture.captureNext();\n super.start();\n }\n }\n\n tick() {\n let that = this,\n dimension = that.dimension,\n friction = that.paneAxis.outOfBounds() ? OUT_OF_BOUNDS_FRICTION : that.friction,\n delta = that.velocity *= friction,\n location = that.movable[that.axis] + delta;\n\n if (!that.elastic && dimension.outOfBounds(location)) {\n location = Math.max(Math.min(location, dimension.max), dimension.min);\n that.velocity = 0;\n }\n\n that.movable.moveAxis(that.axis, location);\n }\n\n _end() {\n this.tapCapture.cancelCapture();\n this.end();\n }\n\n _snapBack() {\n let that = this,\n dimension = that.dimension,\n snapBack = that.movable[that.axis] > dimension.max ? dimension.max : dimension.min;\n\n that._moveTo(snapBack);\n }\n\n _moveTo(location) {\n this.transition.moveTo({\n location: location,\n duration: SNAPBACK_DURATION,\n ease: Transition.easeOutExpo\n });\n }\n}\n\nclass AnimatedScroller extends Animation {\n constructor(options) {\n super(options);\n let that = this;\n\n extend(that, options, {\n origin: {},\n destination: {},\n offset: {}\n });\n }\n\n tick() {\n this._updateCoordinates();\n this.moveTo(this.origin);\n }\n\n done() {\n return abs(this.offset.y) < ANIMATED_SCROLLER_PRECISION && abs(this.offset.x) < ANIMATED_SCROLLER_PRECISION;\n }\n\n onEnd() {\n this.moveTo(this.destination);\n if (this.callback) {\n this.callback.call();\n }\n }\n\n setCoordinates(from, to) {\n this.offset = {};\n this.origin = from;\n this.destination = to;\n }\n\n /* eslint-disable no-param-reassign */\n setCallback(callback) {\n if (callback && isFunction(callback)) {\n this.callback = callback;\n } else {\n callback = undefined;\n }\n }\n /* eslint-enable no-param-reassign */\n\n _updateCoordinates() {\n this.offset = {\n x: (this.destination.x - this.origin.x) / 4,\n y: (this.destination.y - this.origin.y) / 4\n };\n this.origin = {\n y: this.origin.y + this.offset.y,\n x: this.origin.x + this.offset.x\n };\n }\n}\n\nclass ScrollBar extends Class {\n constructor(options) {\n super();\n let that = this,\n horizontal = options.axis === 'x';\n\n const orientation = (horizontal ? 'horizontal' : 'vertical');\n const element = convertToHtml('
    ');\n\n extend(that, options, {\n element: element,\n elementSize: 0,\n movable: new Movable(element),\n scrollMovable: options.movable,\n alwaysVisible: options.alwaysVisible,\n size: horizontal ? 'width' : 'height'\n });\n\n that.scrollMovable.bind(CHANGE, that.refresh.bind(that));\n\n that.container.appendChild(element);\n\n if (options.alwaysVisible) {\n that.show();\n }\n }\n\n refresh() {\n let that = this,\n axis = that.axis,\n dimension = that.dimension,\n paneSize = dimension.size,\n scrollMovable = that.scrollMovable,\n sizeRatio = paneSize / dimension.total,\n position = Math.round(-scrollMovable[axis] * sizeRatio),\n size = Math.round(paneSize * sizeRatio);\n if (sizeRatio >= 1) {\n this.element.style.display = \"none\";\n } else {\n this.element.style.display = \"\";\n }\n if (position + size > paneSize) {\n size = paneSize - position;\n } else if (position < 0) {\n size += position;\n position = 0;\n }\n if (that.elementSize !== size) {\n that.element.style[that.size] = size + 'px';\n that.elementSize = size;\n }\n that.movable.moveAxis(axis, position);\n }\n\n show() {\n this.element.style.opacity = SCROLLBAR_OPACITY;\n this.element.style.visibility = \"visible\";\n }\n\n hide() {\n if (!this.alwaysVisible) {\n this.element.style.opacity = 0;\n }\n }\n}\n\n// export class Scroller extends Class {\nexport class Scroller extends Observable {\n constructor(element, options) {\n super();\n let that = this;\n this.element = element;\n\n this._initOptions(options);\n\n const hasScrolling = hasNativeScrolling(navigator.userAgent);\n that._native = that.options.useNative && hasScrolling;\n const scrollHeader = convertToHtml('
    ');\n\n if (that._native) {\n addClass(element, 'km-native-scroller');\n prepend(scrollHeader, element);\n\n extend(that, {\n scrollElement: element,\n fixedContainer: element.children[0]\n });\n\n return;\n }\n\n element.style.overflow = \"hidden\";\n addClass(element, 'km-scroll-wrapper');\n\n const scrollContainer = convertToHtml('
    ');\n wrapInner(element, scrollContainer);\n prepend(scrollHeader, element);\n\n let inner = element.children[1],\n tapCapture = new TapCapture(element),\n movable = new Movable(inner),\n\n dimensions = new PaneDimensions({\n element: inner,\n container: element,\n forcedEnabled: that.options.zoom\n }),\n avoidScrolling = this.options.avoidScrolling,\n\n userEvents = new UserEvents(element, {\n touchAction: 'pan-y',\n fastTap: true,\n allowSelection: true,\n preventDragEvent: true,\n captureUpIfMoved: true,\n multiTouch: that.options.zoom,\n supportDoubleTap: that.options.supportDoubleTap,\n start(e) {\n dimensions.refresh();\n let velocityX = abs(e.x.velocity),\n velocityY = abs(e.y.velocity),\n horizontalSwipe = velocityX * 2 >= velocityY,\n originatedFromFixedContainer = contains(that.fixedContainer, e.event.target),\n verticalSwipe = velocityY * 2 >= velocityX;\n if (!originatedFromFixedContainer && !avoidScrolling(e) && that.enabled && (dimensions.x.enabled && horizontalSwipe || dimensions.y.enabled && verticalSwipe)) {\n userEvents.capture();\n } else {\n userEvents.cancel();\n }\n }\n }),\n\n pane = new Pane({\n movable: movable,\n dimensions: dimensions,\n userEvents: userEvents,\n elastic: that.options.elastic\n }),\n\n zoomSnapBack = new ZoomSnapBack({\n movable: movable,\n dimensions: dimensions,\n userEvents: userEvents,\n tapCapture: tapCapture\n }),\n\n animatedScroller = new AnimatedScroller({\n moveTo(coordinates) {\n that.scrollTo(coordinates.x, coordinates.y);\n }\n });\n\n movable.bind(CHANGE, function() {\n that.scrollTop = -movable.y;\n that.scrollLeft = -movable.x;\n that.trigger(SCROLL, {\n scrollTop: that.scrollTop,\n scrollLeft: that.scrollLeft\n });\n });\n\n if (that.options.mousewheelScrolling) {\n this._wheelScrollHandler = this._wheelScroll.bind(this);\n on(element, 'DOMMouseScroll mousewheel', this._wheelScrollHandler);\n }\n\n extend(that, {\n movable: movable,\n dimensions: dimensions,\n zoomSnapBack: zoomSnapBack,\n animatedScroller: animatedScroller,\n userEvents: userEvents,\n pane: pane,\n tapCapture: tapCapture,\n pulled: false,\n enabled: true,\n scrollElement: inner,\n scrollTop: 0,\n scrollLeft: 0,\n fixedContainer: element.children[0]\n });\n\n that._initAxis('x');\n that._initAxis('y');\n\n that._wheelEnd = function() {\n that._wheel = false;\n that.userEvents.end(0, that._wheelY);\n };\n\n dimensions.refresh();\n\n if (that.options.pullToRefresh) {\n that._initPullToRefresh();\n }\n }\n\n _initOptions(options) {\n this.options = deepExtend({}, this.options, options);\n }\n\n _wheelScroll(e) {\n if (e.ctrlKey) {\n return;\n }\n if (!this._wheel) {\n this._wheel = true;\n this._wheelY = 0;\n this.userEvents.press(0, this._wheelY);\n }\n\n clearTimeout(this._wheelTimeout);\n this._wheelTimeout = setTimeout(this._wheelEnd, 50);\n let delta = wheelDeltaY(e);\n\n if (delta) {\n this._wheelY += delta;\n this.userEvents.move(0, this._wheelY);\n }\n\n e.preventDefault();\n }\n\n makeVirtual() {\n this.dimensions.y.makeVirtual();\n }\n\n virtualSize(min, max) {\n this.dimensions.y.virtualSize(min, max);\n }\n\n height() {\n return this.dimensions.y.size;\n }\n\n scrollHeight() {\n return this.scrollElement.scrollHeight;\n }\n\n scrollWidth() {\n return this.scrollElement.scrollWidth;\n }\n\n _resize() {\n if (!this._native) {\n this.contentResized();\n }\n }\n\n setOptions(options) {\n let that = this;\n\n this._initOptions(options);\n\n if (options.pullToRefresh) {\n that._initPullToRefresh();\n }\n }\n\n reset() {\n if (this._native) {\n this.scrollElement.scrollTop(0);\n } else {\n this.movable.moveTo({\n x: 0,\n y: 0\n });\n this._scale(1);\n }\n }\n\n contentResized() {\n this.dimensions.refresh();\n if (this.pane.x.outOfBounds()) {\n this.movable.moveAxis('x', this.dimensions.x.min);\n }\n if (this.pane.y.outOfBounds()) {\n this.movable.moveAxis('y', this.dimensions.y.min);\n }\n }\n\n zoomOut() {\n let dimensions = this.dimensions;\n dimensions.refresh();\n this._scale(dimensions.fitScale);\n this.movable.moveTo(dimensions.centerCoordinates());\n }\n\n enable() {\n this.enabled = true;\n }\n\n disable() {\n this.enabled = false;\n }\n\n scrollTo(x, y) {\n if (this._native) {\n this.scrollElement.scrollLeft(abs(x));\n this.scrollElement.scrollTop(abs(y));\n } else {\n this.dimensions.refresh();\n this.movable.moveTo({\n x: x,\n y: y\n });\n }\n }\n\n animatedScrollTo(x, y, callback) {\n let from, to;\n if (this._native) {\n this.scrollTo(x, y);\n } else {\n from = {\n x: this.movable.x,\n y: this.movable.y\n };\n to = {\n x: x,\n y: y\n };\n this.animatedScroller.setCoordinates(from, to);\n this.animatedScroller.setCallback(callback);\n this.animatedScroller.start();\n }\n }\n\n // kept for API compatibility, not used\n pullHandled() {\n // let that = this;\n\n // removeClass(that.refreshHint, SCROLLER_REFRESH_CLASS);\n // that.hintContainer.innerHTML = that.pullTemplate({}));\n\n // that.yinertia.onEnd();\n // that.xinertia.onEnd();\n // that.userEvents.cancel();\n }\n\n destroy() {\n const element = this.element;\n\n off(element, 'DOMMouseScroll mousewheel', this._wheelScrollHandler);\n\n if (this.userEvents) {\n this.userEvents.destroy();\n }\n }\n\n _scale(scale) {\n this.dimensions.rescale(scale);\n this.movable.scaleTo(scale);\n }\n\n _initPullToRefresh() {\n }\n\n // kept for API compatibility, not used\n _dragEnd() {\n // let that = this;\n\n // if (!that.pulled) {\n // return;\n // }\n\n // that.pulled = false;\n\n // removeClass(that.refreshHint, SCROLLER_RELEASE_CLASS);\n // addClass(that.refreshHint, SCROLLER_REFRESH_CLASS);\n\n // that.hintContainer.innerHTML = that.refreshTemplate({});\n\n // that.yinertia.freeze(that.options.pullOffset / 2);\n // that.trigger('pull');\n }\n\n // kept for API compatibility, not used\n _paneChange() {\n // let that = this;\n // if (that.movable.y / OUT_OF_BOUNDS_FRICTION > that.options.pullOffset) {\n // if (!that.pulled) {\n // that.pulled = true;\n // that.refreshHint.removeClass(SCROLLER_REFRESH_CLASS).addClass(SCROLLER_RELEASE_CLASS);\n // that.hintContainer.html(that.releaseTemplate({}));\n // that.hintContainer.html(that.releaseTemplate({}));\n // }\n // } else if (that.pulled) {\n // that.pulled = false;\n // that.refreshHint.removeClass(SCROLLER_RELEASE_CLASS);\n // that.hintContainer.html(that.pullTemplate({}));\n // }\n }\n\n _initAxis(axis) {\n let that = this,\n movable = that.movable,\n dimension = that.dimensions[axis],\n tapCapture = that.tapCapture,\n paneAxis = that.pane[axis],\n scrollBar = new ScrollBar({\n axis: axis,\n movable: movable,\n dimension: dimension,\n container: that.element,\n alwaysVisible: that.options.visibleScrollHints\n });\n\n dimension.bind(CHANGE, function() {\n scrollBar.refresh();\n });\n\n paneAxis.bind(CHANGE, function() {\n scrollBar.show();\n });\n\n that[axis + 'inertia'] = new DragInertia({\n axis: axis,\n paneAxis: paneAxis,\n movable: movable,\n tapCapture: tapCapture,\n userEvents: that.userEvents,\n dimension: dimension,\n elastic: that.options.elastic,\n friction: that.options.friction || FRICTION,\n velocityMultiplier: that.options.velocityMultiplier || VELOCITY_MULTIPLIER,\n end() {\n scrollBar.hide();\n that.trigger('scrollEnd', {\n axis: axis,\n scrollTop: that.scrollTop,\n scrollLeft: that.scrollLeft\n });\n }\n });\n }\n}\n\nsetDefaultOptions(Scroller, {\n name: 'Scroller',\n zoom: false,\n pullOffset: 140,\n visibleScrollHints: false,\n elastic: true,\n useNative: false,\n mousewheelScrolling: true,\n avoidScrolling() {\n return false;\n },\n pullToRefresh: false,\n messages: {\n pullTemplate: 'Pull to refresh',\n releaseTemplate: 'Release to refresh',\n refreshTemplate: 'Refreshing'\n }\n});\n\nsetDefaultEvents(Scroller, [\n PULL,\n SCROLL,\n RESIZE\n]);\n\n","import {\n Class,\n grep\n} from '../../common';\n\nimport {\n proxy,\n noop,\n applyEventMap,\n getEventMap,\n on,\n off,\n now,\n getSupportedFeatures\n} from '../utils';\n\nimport {\n Observable\n} from './observable';\n\nconst extend = Object.assign;\n\nconst preventDefault = (e) => {\n e.preventDefault();\n};\n\nlet\n DEFAULT_MIN_HOLD = 800,\n CLICK_DELAY = 300,\n // DEFAULT_THRESHOLD = support.browser.msie ? 5 : 0,\n DEFAULT_THRESHOLD = 0,\n PRESS = 'press',\n HOLD = 'hold',\n SELECT = 'select',\n START = 'start',\n MOVE = 'move',\n END = 'end',\n CANCEL = 'cancel',\n TAP = 'tap',\n DOUBLETAP = 'doubleTap',\n RELEASE = 'release',\n GESTURESTART = 'gesturestart',\n GESTURECHANGE = 'gesturechange',\n GESTUREEND = 'gestureend',\n GESTURETAP = 'gesturetap';\n\nlet THRESHOLD = {\n 'api': 0,\n 'touch': 0,\n 'mouse': 9,\n 'pointer': 9\n};\n\nfunction touchDelta(touch1, touch2) {\n let x1 = touch1.x.location,\n y1 = touch1.y.location,\n x2 = touch2.x.location,\n y2 = touch2.y.location,\n dx = x1 - x2,\n dy = y1 - y2;\n\n return {\n center: {\n x: (x1 + x2) / 2,\n y: (y1 + y2) / 2\n },\n distance: Math.sqrt(dx * dx + dy * dy)\n };\n}\n\nfunction getTouches(e) {\n const support = getSupportedFeatures();\n let touches = [],\n originalEvent = e.originalEvent || e,\n currentTarget = e.currentTarget,\n idx = 0,\n length, changedTouches, touch;\n\n if (e.api) {\n touches.push({\n id: 2,\n event: e,\n target: e.target,\n currentTarget: e.target,\n location: e,\n type: 'api'\n });\n } else if (e.type.match(/touch/)) {\n changedTouches = originalEvent ? originalEvent.changedTouches : [];\n\n for (length = changedTouches.length; idx < length; idx++) {\n touch = changedTouches[idx];\n touches.push({\n location: touch,\n event: e,\n target: touch.target,\n currentTarget: currentTarget,\n id: touch.identifier,\n type: 'touch'\n });\n }\n } else if (support.pointers || support.msPointers) {\n touches.push({\n location: originalEvent,\n event: e,\n target: e.target,\n currentTarget: currentTarget,\n id: originalEvent.pointerId,\n type: 'pointer'\n });\n } else {\n touches.push({\n id: 1,\n event: e,\n target: e.target,\n currentTarget: currentTarget,\n location: e,\n type: 'mouse'\n });\n }\n\n return touches;\n}\nexport class TouchAxis extends Class {\n constructor(axis, location) {\n super();\n let that = this;\n\n that.support = getSupportedFeatures();\n that.invalidZeroEvents = this.support.mobileOS && this.support.mobileOS.android;\n that.axis = axis;\n that._updateLocationData(location);\n that.startLocation = that.location;\n that.velocity = that.delta = 0;\n that.timeStamp = now();\n }\n\n move(location) {\n let that = this,\n offset = location['page' + that.axis],\n timeStamp = now(),\n timeDelta = timeStamp - that.timeStamp || 1;\n\n if (!offset && this.invalidZeroEvents) {\n return;\n }\n\n that.delta = offset - that.location;\n that._updateLocationData(location);\n that.initialDelta = offset - that.startLocation;\n that.velocity = that.delta / timeDelta;\n that.timeStamp = timeStamp;\n }\n\n _updateLocationData(location) {\n let that = this,\n axis = that.axis;\n\n that.location = location['page' + axis];\n that.client = location['client' + axis];\n that.screen = location['screen' + axis];\n }\n}\n\nexport class Touch extends Class {\n constructor(userEvents, target, touchInfo) {\n super();\n\n extend(this, {\n x: new TouchAxis('X', touchInfo.location),\n y: new TouchAxis('Y', touchInfo.location),\n type: touchInfo.type,\n useClickAsTap: userEvents.useClickAsTap,\n threshold: userEvents.threshold || THRESHOLD[touchInfo.type],\n userEvents: userEvents,\n target: target,\n currentTarget: touchInfo.currentTarget,\n initialTouch: touchInfo.target,\n id: touchInfo.id,\n pressEvent: touchInfo,\n _clicks: userEvents._clicks,\n supportDoubleTap: userEvents.supportDoubleTap,\n _moved: false,\n _finished: false\n });\n }\n\n press() {\n // this._holdTimeout = setTimeout($.proxy(this, '_hold'), this.userEvents.minHold);\n this._holdTimeout = setTimeout(proxy(this._hold, this), this.userEvents.minHold);\n this._trigger(PRESS, this.pressEvent);\n }\n\n _tap(touchInfo) {\n let that = this;\n\n that.userEvents._clicks++;\n\n if (that.userEvents._clicks === 1) {\n that._clickTimeout = setTimeout(function() {\n if (that.userEvents._clicks === 1) {\n that._trigger(TAP, touchInfo);\n } else {\n that._trigger(DOUBLETAP, touchInfo);\n }\n\n that.userEvents._clicks = 0;\n }, CLICK_DELAY);\n }\n }\n\n _hold() {\n this._trigger(HOLD, this.pressEvent);\n }\n\n /* eslint-disable consistent-return */\n move(touchInfo) {\n let that = this;\n let preventMove = touchInfo.type !== 'api' && that.userEvents._shouldNotMove;\n\n if (that._finished || preventMove) {\n return;\n }\n\n that.x.move(touchInfo.location);\n that.y.move(touchInfo.location);\n\n if (!that._moved) {\n if (that._withinIgnoreThreshold()) {\n return;\n }\n\n if (!UserEvents.current || UserEvents.current === that.userEvents) {\n that._start(touchInfo);\n } else {\n return that.dispose();\n }\n }\n\n if (!that._finished) {\n that._trigger(MOVE, touchInfo);\n }\n }\n /* eslint-enable consistent-return */\n\n end(touchInfo) {\n this.endTime = now();\n\n if (this._finished) {\n return;\n }\n\n this._finished = true;\n this._trigger(RELEASE, touchInfo);\n\n if (this._moved) {\n this._trigger(END, touchInfo);\n } else {\n if (!this.useClickAsTap) {\n if (this.supportDoubleTap) {\n this._tap(touchInfo);\n } else {\n this._trigger(TAP, touchInfo);\n }\n }\n }\n\n clearTimeout(this._holdTimeout);\n this.dispose();\n }\n\n dispose() {\n let userEvents = this.userEvents,\n activeTouches = userEvents.touches || [];\n\n this._finished = true;\n this.pressEvent = null;\n\n clearTimeout(this._holdTimeout);\n // activeTouches.splice($.inArray(this, activeTouches), 1);\n const activeTouchIndex = activeTouches.indexOf(this);\n activeTouches.splice(activeTouchIndex, 1);\n }\n\n skip() {\n this.dispose();\n }\n\n cancel() {\n this.dispose();\n }\n\n isMoved() {\n return this._moved;\n }\n\n _start(touchInfo) {\n clearTimeout(this._holdTimeout);\n this.startTime = now();\n this._moved = true;\n this._trigger(START, touchInfo);\n }\n\n _trigger(name, touchInfo) {\n let that = this,\n jQueryEvent = touchInfo.event,\n data = {\n touch: that,\n x: that.x,\n y: that.y,\n target: that.target,\n event: jQueryEvent\n };\n if (that.userEvents.notify(name, data)) {\n jQueryEvent.preventDefault();\n }\n }\n\n _withinIgnoreThreshold() {\n let xDelta = this.x.initialDelta,\n yDelta = this.y.initialDelta;\n return Math.sqrt(xDelta * xDelta + yDelta * yDelta) <= this.threshold;\n }\n}\n\nfunction withEachUpEvent(callback) {\n const eventMap = getEventMap(navigator.userAgent);\n let downEvents = eventMap.up.split(' '),\n idx = 0,\n length = downEvents.length;\n\n for (; idx < length; idx++) {\n callback(downEvents[idx]);\n }\n}\n\nexport class UserEvents extends Observable {\n constructor(element, options) {\n super();\n let that = this;\n let filter;\n\n const support = getSupportedFeatures();\n this.support = support;\n\n /* eslint-disable no-param-reassign */\n options = options || {};\n /* eslint-enable no-param-reassign */\n this.options = options;\n\n filter = that.filter = options.filter;\n that.threshold = options.threshold || DEFAULT_THRESHOLD;\n that.minHold = options.minHold || DEFAULT_MIN_HOLD;\n that.touches = [];\n that._maxTouches = options.multiTouch ? 2 : 1;\n that.allowSelection = options.allowSelection;\n that.captureUpIfMoved = options.captureUpIfMoved;\n that.useClickAsTap = !options.fastTap && !support.delayedClick();\n that._clicks = 0;\n that.supportDoubleTap = options.supportDoubleTap;\n\n const enableGlobalSurface = !support.touch || support.mouseAndTouchPresent;\n\n extend(that, {\n element: element,\n surface: options.global && enableGlobalSurface ?\n element.ownerDocument.documentElement :\n options.surface || element,\n stopPropagation: options.stopPropagation,\n pressed: false\n });\n\n this._surfaceMoveHandler = proxy(this._move, this);\n on(that.surface, applyEventMap('move'), this._surfaceMoveHandler);\n\n this._surfaceEndHandler = proxy(this._end, this);\n on(that.surface, applyEventMap('up cancel'), this._surfaceEndHandler);\n\n this._elementStartHandler = proxy(this._start, this);\n on(element, applyEventMap('down'), filter, this._elementStartHandler);\n\n if (that.useClickAsTap) {\n this._elementClickHandler = proxy(this._click, this);\n on(element, applyEventMap('click'), filter, this._elementClickHandler);\n }\n\n if (support.pointers || support.msPointers) {\n if (support.browser.version < 11) {\n let defaultAction = 'pinch-zoom double-tap-zoom';\n\n element.style['-ms-touch-action'] =\n options.touchAction && options.touchAction !== 'none' ?\n defaultAction + ' ' + options.touchAction :\n defaultAction;\n\n } else {\n element.style['touch-action'] = options.touchAction || 'none';\n }\n }\n if (options.preventDragEvent) {\n this._elementDragStartHandler = preventDefault;\n on(element, applyEventMap('dragstart'), this._elementDragStartHandler);\n }\n\n // element.on(kendo.applyEventMap('mousedown'), filter, {\n // root: element\n // } '_select');\n\n // todo: use root\n this._elementSelectHandler = proxy(this._select, this);\n on(element, applyEventMap('mousedown'), filter, this._elementSelectHandler);\n\n if (that.captureUpIfMoved && support.eventCapture) {\n let surfaceElement = that.surface,\n preventIfMovingProxy = proxy(that.preventIfMoving, that);\n\n withEachUpEvent(function(eventName) {\n surfaceElement.addEventListener(eventName, preventIfMovingProxy, true);\n });\n }\n\n that.bind([\n PRESS,\n HOLD,\n TAP,\n DOUBLETAP,\n START,\n MOVE,\n END,\n RELEASE,\n CANCEL,\n GESTURESTART,\n GESTURECHANGE,\n GESTUREEND,\n GESTURETAP,\n SELECT\n ], options);\n }\n\n preventIfMoving(e) {\n if (this._isMoved()) {\n e.preventDefault();\n }\n }\n\n destroy() {\n let that = this;\n const options = this.options;\n const element = this.element;\n\n if (that._destroyed) {\n return;\n }\n\n that._destroyed = true;\n\n if (that.captureUpIfMoved && this.support.eventCapture) {\n let surfaceElement = that.surface;\n withEachUpEvent(function(eventName) {\n surfaceElement.removeEventListener(eventName, that.preventIfMoving);\n });\n }\n\n off(that.surface, applyEventMap('move'), this._surfaceMoveHandler);\n off(that.surface, applyEventMap('up cancel'), this._surfaceEndHandler);\n\n off(element, applyEventMap('down'), this._elementStartHandler);\n\n if (that.useClickAsTap) {\n off(element, applyEventMap('click'), this._elementClickHandler);\n }\n\n if (options.preventDragEvent) {\n off(element, applyEventMap('dragstart'), this._elementDragStartHandler);\n }\n\n off(element, applyEventMap('mousedown'), this._elementSelectHandler);\n\n that._disposeAll();\n that.unbind();\n\n delete that.surface;\n delete that.element;\n delete that.currentTarget;\n }\n\n capture() {\n UserEvents.current = this;\n }\n\n cancel() {\n this._disposeAll();\n this.trigger(CANCEL);\n }\n\n /* eslint-disable indent */\n notify(event, data) {\n let that = this,\n touches = that.touches;\n let eventName = event;\n\n if (this._isMultiTouch()) {\n switch (eventName) {\n case MOVE:\n eventName = GESTURECHANGE;\n break;\n case END:\n eventName = GESTUREEND;\n break;\n case TAP:\n eventName = GESTURETAP;\n break;\n default:\n break;\n }\n\n extend(data, {\n touches: touches\n }, touchDelta(touches[0], touches[1]));\n }\n\n return this.trigger(eventName, extend(data, {\n type: eventName\n }));\n }\n /* eslint-enable indent */\n\n press(x, y, target) {\n this._apiCall('_start', x, y, target);\n }\n\n move(x, y) {\n this._apiCall('_move', x, y);\n }\n\n end(x, y) {\n this._apiCall('_end', x, y);\n }\n\n _isMultiTouch() {\n return this.touches.length > 1;\n }\n\n _maxTouchesReached() {\n return this.touches.length >= this._maxTouches;\n }\n\n _disposeAll() {\n let touches = this.touches;\n while (touches.length > 0) {\n touches.pop().dispose();\n }\n }\n\n _isMoved() {\n return grep(this.touches, function(touch) {\n return touch.isMoved();\n }).length;\n }\n\n _select(e) {\n if (!this.allowSelection || this.trigger(SELECT, { event: e })) {\n e.preventDefault();\n }\n }\n\n _start(e) {\n let that = this,\n idx = 0,\n filter = that.filter,\n target,\n touches = getTouches(e),\n length = touches.length,\n touch,\n which = e.which;\n\n if (which && which > 1 || that._maxTouchesReached()) {\n return;\n }\n\n UserEvents.current = null;\n that.currentTarget = e.currentTarget;\n\n if (that.stopPropagation) {\n e.stopPropagation();\n }\n\n for (; idx < length; idx++) {\n if (that._maxTouchesReached()) {\n break;\n }\n\n touch = touches[idx];\n\n if (filter) {\n target = touch.currentTarget;\n } else {\n target = that.element;\n }\n\n if (target && target.length === 0) {\n continue;\n }\n\n touch = new Touch(that, target, touch);\n that.touches.push(touch);\n touch.press();\n\n if (that._isMultiTouch()) {\n that.notify('gesturestart', {});\n }\n }\n }\n\n _move(e) {\n this._eachTouch('move', e);\n }\n\n _end(e) {\n this._eachTouch('end', e);\n }\n\n _click(e) {\n let data = {\n touch: {\n initialTouch: e.target,\n target: e.currentTarget,\n endTime: now(),\n x: {\n location: e.pageX,\n client: e.clientX\n },\n y: {\n location: e.pageY,\n client: e.clientY\n }\n },\n x: e.pageX,\n y: e.pageY,\n target: e.currentTarget,\n event: e,\n type: 'tap'\n };\n\n if (this.trigger('tap', data)) {\n e.preventDefault();\n }\n }\n\n _eachTouch(methodName, e) {\n let that = this,\n dict = {},\n touches = getTouches(e),\n activeTouches = that.touches,\n idx,\n touch,\n touchInfo,\n matchingTouch;\n\n for (idx = 0; idx < activeTouches.length; idx++) {\n touch = activeTouches[idx];\n dict[touch.id] = touch;\n }\n\n for (idx = 0; idx < touches.length; idx++) {\n touchInfo = touches[idx];\n matchingTouch = dict[touchInfo.id];\n\n if (matchingTouch) {\n matchingTouch[methodName](touchInfo);\n }\n }\n }\n\n _apiCall(type, x, y, target) {\n this[type]({\n api: true,\n pageX: x,\n pageY: y,\n clientX: x,\n clientY: y,\n target: target || this.element,\n stopPropagation: noop,\n preventDefault: noop\n });\n }\n\n static defaultThreshold(value) {\n DEFAULT_THRESHOLD = value;\n }\n\n static minHold(value) {\n DEFAULT_MIN_HOLD = value;\n }\n}\n","import {\n isFunction,\n isArray\n} from '../common';\n\n/* eslint-disable arrow-body-style */\n\nconst defineProperty = Object.defineProperty;\n\nexport const extend = Object.assign;\n\nexport let convertToHtml = (html) => {\n const div = document.createElement(\"div\");\n div.innerHTML = html;\n return div.firstChild;\n};\n\nexport let appendHtml = (html, element) => {\n const div = document.createElement('div');\n div.innerHTML = html;\n\n // use childNodes instead of children\n // to cover text nodes as well\n while (div.childNodes.length > 0) {\n element.appendChild(div.childNodes[0]);\n }\n};\n\nexport let removeChildren = (element) => {\n while (element.firstChild) {\n element.removeChild(element.firstChild);\n }\n};\n\nexport let prepend = (element, originElement) => {\n originElement.insertBefore(element, originElement.firstChild);\n};\n\nexport let wrapInner = (parent, wrapper) => {\n parent.appendChild(wrapper);\n\n while (parent.firstChild !== wrapper) {\n wrapper.appendChild(parent.firstChild);\n }\n};\n\nexport let toHyphens = (str) => {\n const result = str.replace(/([a-z][A-Z])/g, function(g) {\n return g.charAt(0) + '-' + g.charAt(1).toLowerCase();\n });\n\n return result;\n};\n\nexport let toPixels = (value) => {\n let result;\n\n if (value && String(value).endsWith(\"px\")) {\n result = value;\n } else {\n result = String(value) + \"px\";\n }\n\n return result;\n};\n\nconst detectOS = (ua) => {\n let os = false, minorVersion, match = [],\n // notAndroidPhone = !/mobile safari/i.test(ua),\n 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 },\n 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 },\n formFactorRxs = {\n tablet: /playbook|ipad|fire/i\n },\n browserRxs = {\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 };\n\n for (let agent in agentRxs) {\n if (agentRxs.hasOwnProperty(agent)) {\n match = ua.match(agentRxs[agent]);\n if (match) {\n if (agent === \"windows\" && \"plugins\" in navigator) { return false; } // Break if not Metro/Mobile Windows\n\n os = {};\n os.device = agent;\n os.tablet = testRegex(agent, formFactorRxs, false);\n os.browser = testRegex(ua, browserRxs, \"default\");\n os.name = testRegex(agent, osRxs);\n os[os.name] = true;\n os.majorVersion = match[2];\n os.minorVersion = (match[3] || \"0\").replace(\"_\", \".\");\n minorVersion = os.minorVersion.replace(\".\", \"\").substr(0, 2);\n os.flatVersion = os.majorVersion + minorVersion + (new Array(3 - (minorVersion.length < 3 ? minorVersion.length : 2)).join(\"0\"));\n\n\n break;\n }\n }\n }\n\n return os;\n};\n\nfunction testRegex(agent, regexes, dflt) {\n for (let regex in regexes) {\n if (regexes.hasOwnProperty(regex) && regexes[regex].test(agent)) {\n return regex;\n }\n }\n return dflt !== undefined ? dflt : agent;\n}\n\nexport let hasNativeScrolling = (userAgent) => {\n const os = detectOS(userAgent);\n return os.ios || os.android;\n};\n\nconst detectBrowser = (userAgent) => {\n let browser = false,\n match = [],\n browserRxs = {\n edge: /(edge)[ \\/]([\\w.]+)/i,\n webkit: /(chrome|crios)[ \\/]([\\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 for (let agent in browserRxs) {\n if (browserRxs.hasOwnProperty(agent)) {\n match = userAgent.match(browserRxs[agent]);\n\n if (match) {\n browser = {};\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\nexport let getEventMap = () => {\n let eventMap = {\n down: \"touchstart mousedown\",\n move: \"mousemove touchmove\",\n up: \"mouseup touchend touchcancel\",\n cancel: \"mouseleave touchcancel\"\n };\n\n const support = getSupportedFeatures();\n\n if (support.touch && (support.mobileOS.ios || support.mobileOS.android)) {\n eventMap = {\n down: \"touchstart\",\n move: \"touchmove\",\n up: \"touchend touchcancel\",\n cancel: \"touchcancel\"\n };\n } else if (support.pointers) {\n eventMap = {\n down: \"pointerdown\",\n move: \"pointermove\",\n up: \"pointerup\",\n cancel: \"pointercancel pointerleave\"\n };\n } else if (support.msPointers) {\n eventMap = {\n down: \"MSPointerDown\",\n move: \"MSPointerMove\",\n up: \"MSPointerUp\",\n cancel: \"MSPointerCancel MSPointerLeave\"\n };\n }\n\n return eventMap;\n};\n\nexport const getSupportedFeatures = () => {\n const os = detectOS(navigator.userAgent);\n const browser = detectBrowser(navigator.userAgent);\n\n let chrome = browser.chrome,\n mobileChrome = browser.crios,\n mozilla = browser.mozilla,\n safari = browser.safari;\n\n const support = {};\n\n support.mobileOS = os;\n support.touch = \"ontouchstart\" in window;\n support.pointers = !chrome && !mobileChrome && !mozilla && !safari && window.PointerEvent;\n support.msPointers = !chrome && window.MSPointerEvent;\n support.mouseAndTouchPresent = support.touch && !(support.mobileOS.ios || support.mobileOS.android);\n support.eventCapture = document.documentElement.addEventListener;\n\n let table = document.createElement(\"table\");\n\n let transitions = support.transitions = false,\n transforms = support.transforms = false;\n\n const STRING = \"string\";\n\n [\"Moz\", \"webkit\", \"O\", \"ms\"].forEach(function(prefix) {\n let hasTransitions = typeof table.style[prefix + \"Transition\"] === STRING;\n\n if (hasTransitions || typeof table.style[prefix + \"Transform\"] === STRING) {\n let lowPrefix = prefix.toLowerCase();\n\n transforms = {\n css: (lowPrefix !== \"ms\") ? \"-\" + lowPrefix + \"-\" : \"\",\n prefix: prefix,\n event: (lowPrefix === \"o\" || lowPrefix === \"webkit\") ? lowPrefix : \"\"\n };\n\n if (hasTransitions) {\n transitions = transforms;\n transitions.event = transitions.event ? transitions.event + \"TransitionEnd\" : \"transitionend\";\n }\n\n return false;\n }\n });\n\n table = null;\n\n support.transforms = transforms;\n support.transitions = transitions;\n\n support.delayedClick = function() {\n // only the mobile devices with touch events do this.\n if (support.touch) {\n // All iOS devices so far (by the time I am writing this, iOS 9.0.2 is the latest),\n // delay their click events.\n if (support.mobileOS.ios) {\n return true;\n }\n\n if (support.mobileOS.android) {\n\n if (!support.browser.chrome) { // older webkits and webviews delay the click\n return true;\n }\n\n // from here on, we deal with Chrome on Android.\n if (support.browser.version < 32) {\n return false;\n }\n\n // Chrome 32+ does conditional fast clicks if the view port is not user scalable.\n const meta = document.querySelector(\"meta[name=viewport]\");\n const contentAttr = meta ? meta.getAttribute(\"content\") : \"\";\n return !contentAttr.match(/user-scalable=no/i);\n }\n }\n\n return false;\n };\n\n return support;\n};\n\nexport const ownsElement = (parent, element) => {\n if (!element) {\n return false;\n }\n\n let node = element.parentNode;\n\n while (node !== null) {\n if (node === parent) {\n return true;\n }\n\n node = node.parentNode;\n }\n\n return false;\n};\n\nexport const contains = (parent, element) => {\n return parent === element || ownsElement(parent, element);\n};\n\nexport const proxy = (method, context) => {\n return method.bind(context);\n};\n\nfunction isString(value) {\n return typeof(value) === \"string\";\n}\n\nexport const on = (element, events, filter, handler, useCapture) => {\n addEventListeners(element, events, filter, handler, useCapture);\n};\n\nexport const addEventListeners = (element, events, filter, handler, useCapture) => {\n const eventNames = isArray(events) ? events : (events || \"\").split(\" \");\n\n eventNames.forEach(function(eventName) {\n addEventListener(element, eventName, filter, handler, useCapture);\n });\n};\n\nexport const addEventListener = (element, event, filter, handler, useCapture) => {\n let eventHandler = handler;\n let eventFilter;\n\n if (filter && isFunction(filter) && !handler) {\n eventHandler = filter;\n } else if (filter && isString(filter) && isFunction(eventHandler)) {\n eventFilter = filter;\n }\n\n element.addEventListener(event, function(e) {\n const closestMatchingTarget = e.target ? e.target.closest(eventFilter) : null;\n\n if (!eventFilter ||\n (eventFilter && e.target && closestMatchingTarget)) {\n const currentTarget = eventFilter ? closestMatchingTarget : e.currentTarget;\n\n // reassign the property as it is a getters only\n defineProperty(e, \"currentTarget\", { value: currentTarget });\n // keep a reference to the top-level target\n defineProperty(e, \"delegateTarget\", { value: element });\n\n eventHandler(e);\n }\n }, Boolean(useCapture));\n};\n\nexport const off = (element, events, filter, handler, useCapture) => {\n removeEventListeners(element, events, filter, handler, useCapture);\n};\n\nexport const removeEventListeners = (element, events, handler, useCapture) => {\n const eventNames = isArray(events) ? events : (events || \"\").split(\" \");\n\n eventNames.forEach(function(eventName) {\n removeEventListener(element, eventName, handler, useCapture);\n });\n};\n\nexport const removeEventListener = (element, event, handler, useCapture) => {\n element.removeEventListener(event, handler, Boolean(useCapture));\n};\n\nexport const applyEventMap = (events) => {\n const eventMap = getEventMap(navigator.userAgent);\n function queryEventMap(e) {\n return eventMap[e] || e;\n }\n\n const eventRegEx = /([^ ]+)/g;\n const appliedEvents = events.replace(eventRegEx, queryEventMap);\n\n return appliedEvents;\n};\n\nexport const setDefaultEvents = (type, events) => {\n const proto = type.prototype;\n\n if (proto.events) {\n events.forEach(event => {\n if (proto.events.indexOf(event) < 0) {\n proto.events.push(event);\n }\n });\n } else {\n proto.events = events;\n }\n};\n\nexport const wheelDeltaY = (jQueryEvent) => {\n const e = jQueryEvent.originalEvent || jQueryEvent;\n const deltaY = e.wheelDeltaY;\n let delta;\n\n if (e.wheelDelta) { // Webkit and IE\n if (deltaY === undefined || deltaY) { // IE does not have deltaY, thus always scroll (horizontal scrolling is treated as vertical)\n delta = e.wheelDelta;\n }\n } else if (e.detail && e.axis === e.VERTICAL_AXIS) { // Firefox and Opera\n delta = (-e.detail) * 10;\n }\n\n return delta;\n};\n\nexport const guid = () => {\n let id = \"\";\n let i;\n let random;\n\n for (i = 0; i < 32; i++) {\n random = Math.random() * 16 | 0;\n\n if (i === 8 || i === 12 || i === 16 || i === 20) {\n id += \"-\";\n }\n\n id += (i === 12 ? 4 : (i === 16 ? (random & 3 | 8) : random)).toString(16); // eslint-disable-line no-nested-ternary\n }\n\n return id;\n};\n\nexport const now = () => {\n return Number(new Date());\n};\n\nexport const noop = () => {};\n\n/* eslint-enable arrow-body-style */\n","import {\n deepExtend,\n addClass,\n keys,\n hasClasses,\n setDefaultOptions\n} from '../common';\n\nimport {\n Observable\n} from './scroller/observable';\n\nimport {\n on,\n off,\n setDefaultEvents,\n convertToHtml\n} from './utils';\n\nfunction createButton(direction, iconClass) {\n const html =\n '';\n\n return convertToHtml(html);\n}\n\nlet PLUS = 187;\nlet MINUS = 189;\nlet FF_PLUS = 61;\nlet FF_MINUS = 173;\nconst CHANGE = \"change\";\n\nexport class ZoomControl extends Observable {\n constructor(element, options) {\n super();\n this.element = element;\n this._initOptions(options);\n\n const zoomInButton = createButton('in', 'k-i-plus');\n const zoomOutButton = createButton('out', 'k-i-minus');\n\n this.element.appendChild(zoomInButton);\n this.element.appendChild(zoomOutButton);\n\n addClass(this.element, 'k-widget k-zoom-control k-button-group k-group-horizontal');\n\n this._clickHandler = this._click.bind(this);\n on(this.element, \"click\", \".k-button\", this._clickHandler);\n\n let parentElement = this.element.parentNode.closest(\"[data-role]\");\n\n this._keyroot = parentElement ? parentElement : this.element;\n\n this._tabindex(this._keyroot);\n\n this._keydownHandler = this._keydown.bind(this);\n on(this._keyroot, \"keydown\", this._keydownHandler);\n }\n\n destroy() {\n if (this.element) {\n off(this.element, \"click\", this._clickHandler);\n }\n\n if (this._keyroot) {\n off(this._keyroot, 'keydown', this._keydownHandler);\n }\n }\n\n _tabindex(target) {\n const targetElement = target || this.wrapper || this.element;\n\n let element = this.element,\n TABINDEX = \"tabindex\",\n tabindex = targetElement.getAttribute(TABINDEX) || element.getAttribute(TABINDEX);\n\n element.removeAttribute(TABINDEX);\n\n targetElement.setAttribute(TABINDEX, !isNaN(tabindex) ? tabindex : 0);\n }\n\n _initOptions(options) {\n this.options = deepExtend({}, this.options, options);\n }\n\n _change(direction) {\n let zoomStep = this.options.zoomStep;\n this.trigger(CHANGE, { delta: direction * zoomStep });\n }\n\n _click(e) {\n let button = e.currentTarget;\n let direction = 1;\n\n if (hasClasses(button, 'k-zoom-out')) {\n direction = -1;\n }\n\n this._change(direction);\n e.preventDefault();\n }\n\n /* eslint-disable indent */\n _keydown(e) {\n switch (e.which) {\n case keys.NUMPAD_PLUS:\n case PLUS:\n case FF_PLUS:\n this._change(1);\n break;\n case keys.NUMPAD_MINUS:\n case MINUS:\n case FF_MINUS:\n this._change(-1);\n break;\n default:\n break;\n }\n }\n /* eslint-enable indent */\n}\n\nsetDefaultOptions(ZoomControl, {\n name: 'ZoomControl',\n zoomStep: 1\n});\n\nsetDefaultEvents(ZoomControl, [\n CHANGE\n]);\n","export { default as QRCode } from './qrcode/qrcode';\nexport { default as qrcodeValidator } from './qrcode/qrcode-validator';\n","import { QRDataMode } from './qr-data-mode';\nimport { extend } from '../../utils';\nimport {\n toBitsString,\n splitInto\n} from '../../utils';\n\nexport class AlphaNumericQRDataMode extends QRDataMode {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n characters: {\n \"0\": 0,\n \"1\": 1,\n \"2\": 2,\n \"3\": 3,\n \"4\": 4,\n \"5\": 5,\n \"6\": 6,\n \"7\": 7,\n \"8\": 8,\n \"9\": 9,\n \"A\": 10,\n \"B\": 11,\n \"C\": 12,\n \"D\": 13,\n \"E\": 14,\n \"F\": 15,\n \"G\": 16,\n \"H\": 17,\n \"I\": 18,\n \"J\": 19,\n \"K\": 20,\n \"L\": 21,\n \"M\": 22,\n \"N\": 23,\n \"O\": 24,\n \"P\": 25,\n \"Q\": 26,\n \"R\": 27,\n \"S\": 28,\n \"T\": 29,\n \"U\": 30,\n \"V\": 31,\n \"W\": 32,\n \"X\": 33,\n \"Y\": 34,\n \"Z\": 35,\n \" \": 36,\n \"$\": 37,\n \"%\": 38,\n \"*\": 39,\n \"+\": 40,\n \"-\": 41,\n \".\": 42,\n \"/\": 43,\n \":\": 44\n },\n bitsInCharacterCount: [9, 11, 13],\n modeIndicator: \"0010\"\n });\n }\n\n getValue(character) {\n return this.characters[character];\n }\n\n encode(str, version) {\n let\n parts = splitInto(str, 2),\n result = this.getModeCountString(str.length, version),\n value;\n let i;\n\n for (i = 0; i < parts.length - 1; i++) {\n value = 45 * this.getValue(parts[i].charAt(0)) + this.getValue(parts[i].charAt(1));\n result += toBitsString(value, 11);\n }\n\n value = parts[i].length === 2 ?\n 45 * this.getValue(parts[i].charAt(0)) + this.getValue(parts[i].charAt(1)) :\n this.getValue(parts[i].charAt(0));\n\n return result + toBitsString(value, 1 + 5 * parts[i].length);\n }\n\n getStringBitsLength(inputLength, version) {\n return 4 + this.getBitsCharacterCount(version) + 11 * Math.floor(inputLength / 2) + 6 * (inputLength % 2);\n }\n}\n","import { QRDataMode } from './qr-data-mode';\nimport { extend } from '../../utils';\nimport {\n toBitsString\n} from '../../utils';\n\nexport class ByteQRDataMode extends QRDataMode {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n bitsInCharacterCount: [8, 16, 16],\n modeIndicator: \"0100\"\n });\n }\n\n getValue(character) {\n let code = character.charCodeAt(0);\n\n if (code <= 127 || (160 <= code && code <= 255)) {\n return code;\n }\n\n throw new Error(`Unsupported character in QR Code: \"${character}\".`);\n }\n\n encode(str, version) {\n let mode = this,\n result = mode.getModeCountString(str.length, version);\n\n for (let i = 0; i < str.length; i++) {\n result += toBitsString(mode.getValue(str.charAt(i)), 8);\n }\n\n return result;\n }\n\n getStringBitsLength(inputLength, version) {\n return 4 + this.getBitsCharacterCount(version) + 8 * inputLength;\n }\n}\n","import { NumericQRDataMode } from './numeric-data-mode';\nimport { AlphaNumericQRDataMode } from './alpha-numeric-data-mode';\nimport { ByteQRDataMode } from './byte-data-mode';\n\nconst NUMERIC = \"numeric\";\nconst ALPHA_NUMERIC = \"alphanumeric\";\nconst BYTE = \"byte\";\n\nexport let DataModeInstances = {\n [NUMERIC]: new NumericQRDataMode(),\n [ALPHA_NUMERIC]: new AlphaNumericQRDataMode(),\n [BYTE]: new ByteQRDataMode()\n};\n","import { QRDataMode } from './qr-data-mode';\nimport { extend } from '../../utils';\nimport {\n toBitsString,\n splitInto\n} from '../../utils';\n\nexport class NumericQRDataMode extends QRDataMode {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n bitsInCharacterCount: [10, 12, 14],\n modeIndicator: \"0001\"\n });\n }\n\n getValue(character) {\n return parseInt(character, 10);\n }\n\n encode(str, version) {\n let mode = this,\n parts = splitInto(str, 3),\n result = mode.getModeCountString(str.length, version);\n let i;\n\n for (i = 0; i < parts.length - 1; i++) {\n result += toBitsString(parts[i], 10);\n }\n\n return result + toBitsString(parts[i], 1 + 3 * parts[i].length);\n }\n\n getStringBitsLength(inputLength, version) {\n let mod3 = inputLength % 3;\n return 4 + this.getBitsCharacterCount(version) + 10 * Math.floor(inputLength / 3) + 3 * mod3 + (mod3 === 0 ? 0 : 1);\n }\n}\n","import { Class } from '../../../common';\nimport { extend } from '../../utils';\nimport {\n toBitsString\n} from '../../utils';\n\nexport class QRDataMode extends Class {\n constructor() {\n super();\n\n this.initProperties();\n }\n\n initProperties() {\n extend(this, {\n modeIndicator: \"\",\n bitsInCharacterCount: []\n });\n }\n\n getVersionIndex(version) {\n if (version < 10) {\n return 0;\n } else if (version > 26) {\n return 2;\n }\n\n return 1;\n }\n\n getBitsCharacterCount(version) {\n return this.bitsInCharacterCount[this.getVersionIndex(version || 40)];\n }\n\n getModeCountString(length, version) {\n return this.modeIndicator + toBitsString(length, this.getBitsCharacterCount(version));\n }\n\n encode() { }\n\n getStringBitsLength() { }\n\n getValue() { }\n}\n","import { Class } from '../../../common';\nimport { EncodingResult } from '../encoding-result';\nimport {\n getModes,\n getVersion,\n getDataCodewordsCount,\n getDataString\n} from '../encoding';\n\nexport class IsoEncoder extends Class {\n getEncodingResult(inputString, errorCorrectionLevel) {\n let modes = getModes(inputString),\n dataCodewordsCount = getDataCodewordsCount(modes),\n version = getVersion(dataCodewordsCount, errorCorrectionLevel),\n dataString = getDataString(modes, version);\n\n return new EncodingResult(dataString, version);\n }\n}\n","import { Class } from '../../../common';\nimport { EncodingResult } from '../encoding-result';\nimport { DataModeInstances } from '../data-modes/data-mode-instances';\nimport { extend } from '../../utils';\nimport { toBitsString } from '../../utils';\nimport { getVersion } from '../encoding';\n\nconst BYTE = \"byte\";\n\nexport class Utf8Encoder extends Class {\n constructor() {\n super();\n\n this.initProperties();\n\n this.mode = DataModeInstances[this.encodingMode];\n }\n\n initProperties() {\n extend(this, {\n encodingMode: BYTE,\n utfBOM: \"111011111011101110111111\",\n initialModeCountStringLength: 20,\n ranges: [128, 2048, 65536, 2097152, 67108864]\n });\n }\n\n getEncodingResult(inputString, errorCorrectionLevel) {\n let data = this.encode(inputString),\n dataCodewordsCount = this.getDataCodewordsCount(data),\n version = getVersion(dataCodewordsCount, errorCorrectionLevel),\n dataString = this.mode.getModeCountString(data.length / 8, version) + data;\n\n return new EncodingResult(dataString, version);\n }\n\n getDataCodewordsCount(data) {\n let dataLength = data.length,\n dataCodewordsCount = Math.ceil((this.initialModeCountStringLength + dataLength) / 8);\n\n return dataCodewordsCount;\n }\n\n encode(str) {\n let result = this.utfBOM;\n\n for (let i = 0; i < str.length; i++) {\n result += this.encodeCharacter(str.charCodeAt(i));\n }\n\n return result;\n }\n\n encodeCharacter(code) {\n let bytesCount = this.getBytesCount(code),\n bc = bytesCount - 1,\n result = \"\";\n\n if (bytesCount === 1) {\n result = toBitsString(code, 8);\n } else {\n let significantOnes = 8 - bytesCount;\n\n for (let i = 0; i < bc; i++) {\n result = toBitsString(code >> (i * 6) & 63 | 128, 8) + result;\n }\n\n result = ((code >> bc * 6) | ((255 >> significantOnes) << significantOnes)).toString(2) + result;\n }\n\n return result;\n }\n\n getBytesCount(code) {\n let ranges = this.ranges;\n\n for (let i = 0; i < ranges.length; i++) {\n if (code < ranges[i]) {\n return i + 1;\n }\n }\n }\n}\n","import { Class } from '../../common';\n\nexport class EncodingResult extends Class {\n constructor(dataString, version) {\n super();\n\n this.dataString = dataString;\n this.version = version;\n }\n}\n","import {\n toBitsString,\n toDecimal\n} from '../utils';\nimport { FreeCellVisitor } from './free-cell-visitor';\nimport { IsoEncoder } from './encoders/iso-encoder';\nimport { Utf8Encoder } from './encoders/utf8-encoder';\nimport { VersionsCodewordsInformation } from './version-codewords';\nimport { DataModeInstances } from './data-modes/data-mode-instances';\n\nlet terminator = \"0000\",\n NUMERIC = \"numeric\",\n ALPHA_NUMERIC = \"alphanumeric\",\n BYTE = \"byte\",\n powersOfTwo = { \"1\": 0 },\n powersOfTwoResult = { \"0\": 1 },\n irregularAlignmentPatternsStartDistance = {\n 15: 20, 16: 20, 18: 24, 19: 24, 22: 20,\n 24: 22, 26: 24, 28: 20, 30: 20, 31: 24,\n 32: 28, 33: 24, 36: 18, 37: 22, 39: 20, 40: 24\n },\n finderPattern = [1, 0, 1, 1, 1],\n alignmentPattern = [1, 0, 1],\n errorCorrectionPatterns = { L: \"01\", M: \"00\", Q: \"11\", H: \"10\" },\n formatMaskPattern = \"101010000010010\",\n formatGeneratorPolynomial = \"10100110111\",\n versionGeneratorPolynomial = \"1111100100101\",\n paddingCodewords = [\"11101100\", \"00010001\"],\n finderPatternValue = 93,\n /* eslint-disable arrow-body-style */\n /* eslint-disable no-unused-vars */\n maskPatternConditions = [\n (row, column) => { return (row + column) % 2 === 0; },\n (row, column) => { return row % 2 === 0; },\n (row, column) => { return column % 3 === 0; },\n (row, column) => { return (row + column) % 3 === 0; },\n (row, column) => { return (Math.floor(row / 2) + Math.floor(column / 3)) % 2 === 0; },\n (row, column) => { return ((row * column) % 2) + ((row * column) % 3) === 0; },\n (row, column) => { return (((row * column) % 2) + ((row * column) % 3)) % 2 === 0; },\n (row, column) => { return (((row + column) % 2) + ((row * column) % 3)) % 2 === 0; }\n ],\n /* eslint-enable no-unused-vars */\n /* eslint-enable arrow-body-style */\n numberRegex = /^\\d+/,\n alphaPattern = \"A-Z0-9 $%*+./:-\",\n alphaExclusiveSet = \"A-Z $%*+./:-\",\n alphaRegex = new RegExp(\"^[\" + alphaExclusiveSet + \"]+\"),\n alphaNumericRegex = new RegExp(\"^[\" + alphaPattern + \"]+\"),\n byteRegex = new RegExp(\"^[^\" + alphaPattern + \"]+\"),\n initMinNumericBeforeAlpha = 8,\n initMinNumericBeforeByte = 5,\n initMinAlphaBeforeByte = 8,\n minNumericBeforeAlpha = 17,\n minNumericBeforeByte = 9,\n minAlphaBeforeByte = 16;\n\nexport const generatorPolynomials = [[1, 0], [1, 25, 0]];\n\nexport function fillFunctionCell(matrices, bit, x, y) {\n for (let i = 0; i < matrices.length; i++) {\n matrices[i][x][y] = bit;\n }\n}\n\nexport function fillDataCell(matrices, bit, x, y) {\n for (let i = 0; i < maskPatternConditions.length; i++) {\n matrices[i][x][y] = maskPatternConditions[i](x, y) ? bit ^ 1 : parseInt(bit, 10);\n }\n}\n\nexport function fillData(matrices, blocks) {\n let cellVisitor = new FreeCellVisitor(matrices[0]),\n block,\n codewordIdx,\n cell;\n\n for (let blockIdx = 0; blockIdx < blocks.length; blockIdx++) {\n block = blocks[blockIdx];\n codewordIdx = 0;\n\n while (block.length > 0) {\n for (let i = 0; i < block.length; i++) {\n for (let j = 0; j < 8; j++) {\n cell = cellVisitor.getNextCell();\n fillDataCell(matrices, block[i][codewordIdx].charAt(j), cell.row, cell.column);\n }\n }\n\n codewordIdx++;\n\n while (block[0] && codewordIdx === block[0].length) {\n block.splice(0, 1);\n }\n }\n }\n\n while ((cell = cellVisitor.getNextRemainderCell())) {\n fillDataCell(matrices, 0, cell.row, cell.column);\n }\n}\n\nexport function padDataString(initialDataString, totalDataCodewords) {\n let dataBitsCount = totalDataCodewords * 8,\n terminatorIndex = 0,\n paddingCodewordIndex = 0;\n let dataString = initialDataString;\n\n while (dataString.length < dataBitsCount && terminatorIndex < terminator.length) {\n dataString += terminator.charAt(terminatorIndex++);\n }\n\n if (dataString.length % 8 !== 0) {\n dataString += new Array(9 - dataString.length % 8).join(\"0\");\n }\n\n while (dataString.length < dataBitsCount) {\n dataString += paddingCodewords[paddingCodewordIndex];\n paddingCodewordIndex ^= 1;\n }\n\n return dataString;\n}\n\nexport function generatePowersOfTwo() {\n let result;\n let power;\n\n for (power = 1; power < 255; power++) {\n result = powersOfTwoResult[power - 1] * 2;\n if (result > 255) {\n result = result ^ 285;\n }\n\n powersOfTwoResult[power] = result;\n powersOfTwo[result] = power;\n }\n\n result = (powersOfTwoResult[power - 1] * 2) ^ 285;\n powersOfTwoResult[power] = result;\n powersOfTwoResult[-1] = 0;\n}\n\nexport function xorPolynomials(x, y) {\n let result = [],\n idx = x.length - 2;\n\n for (let i = idx; i >= 0; i--) {\n result[i] = x[i] ^ y[i];\n }\n\n return result;\n}\n\nexport function multiplyPolynomials(x, y) {\n let result = [];\n\n for (let i = 0; i < x.length; i++) {\n for (let j = 0; j < y.length; j++) {\n if (result[i + j] === undefined) {\n result[i + j] = (x[i] + (y[j] >= 0 ? y[j] : 0)) % 255;\n } else {\n result[i + j] = powersOfTwo[powersOfTwoResult[result[i + j]] ^ powersOfTwoResult[(x[i] + y[j]) % 255]];\n }\n }\n }\n\n return result;\n}\n\nexport function generateGeneratorPolynomials() {\n let maxErrorCorrectionCodeWordsCount = 68;\n\n for (let idx = 2; idx <= maxErrorCorrectionCodeWordsCount; idx++) {\n let firstPolynomial = generatorPolynomials[idx - 1],\n secondPolynomial = [idx, 0];\n\n generatorPolynomials[idx] = multiplyPolynomials(firstPolynomial, secondPolynomial);\n }\n}\n\n//possibly generate on demand\ngeneratePowersOfTwo();\ngenerateGeneratorPolynomials();\n\nexport function multiplyByConstant(polynomial, power) {\n let result = [],\n idx = polynomial.length - 1;\n\n do {\n result[idx] = powersOfTwoResult[(polynomial[idx] + power) % 255];\n idx--;\n }\n while (polynomial[idx] !== undefined);\n\n return result;\n}\n\nexport function generateErrorCodewords(data, errorCodewordsCount) {\n let generator = generatorPolynomials[errorCodewordsCount - 1],\n result = new Array(errorCodewordsCount).concat(data),\n generatorPolynomial = new Array(result.length - generator.length).concat(generator),\n steps = data.length,\n errorCodewords = [],\n divisor,\n idx;\n\n for (idx = 0; idx < steps; idx++) {\n divisor = multiplyByConstant(generatorPolynomial, powersOfTwo[result[result.length - 1]]);\n generatorPolynomial.splice(0, 1);\n\n result = xorPolynomials(divisor, result);\n }\n\n for (idx = result.length - 1; idx >= 0; idx--) {\n errorCodewords[errorCodewordsCount - 1 - idx] = toBitsString(result[idx], 8);\n }\n\n return errorCodewords;\n}\n\nexport function getBlocks(dataStream, versionCodewordsInformation) {\n let codewordStart = 0,\n dataBlocks = [],\n errorBlocks = [],\n dataBlock,\n versionGroups = versionCodewordsInformation.groups,\n blockCodewordsCount,\n groupBlocksCount,\n messagePolynomial,\n codeword;\n\n for (let groupIdx = 0; groupIdx < versionGroups.length; groupIdx++) {\n groupBlocksCount = versionGroups[groupIdx][0];\n\n for (let blockIdx = 0; blockIdx < groupBlocksCount; blockIdx++) {\n blockCodewordsCount = versionGroups[groupIdx][1];\n dataBlock = [];\n messagePolynomial = [];\n\n for (let codewordIdx = 1; codewordIdx <= blockCodewordsCount; codewordIdx++) {\n codeword = dataStream.substring(codewordStart, codewordStart + 8);\n dataBlock.push(codeword);\n messagePolynomial[blockCodewordsCount - codewordIdx] = toDecimal(codeword);\n codewordStart += 8;\n }\n\n dataBlocks.push(dataBlock);\n errorBlocks.push(generateErrorCodewords(messagePolynomial,\n versionCodewordsInformation.errorCodewordsPerBlock));\n }\n }\n return [dataBlocks, errorBlocks];\n}\n\nexport function chooseMode(str, minNumericBeforeAlpha, minNumericBeforeByte, minAlphaBeforeByte, previousMode) {\n let numeric = numberRegex.exec(str),\n numericMatch = numeric ? numeric[0] : \"\",\n alpha = alphaRegex.exec(str),\n alphaMatch = alpha ? alpha[0] : \"\",\n alphaNumeric = alphaNumericRegex.exec(str),\n alphaNumericMatch = alphaNumeric ? alphaNumeric[0] : \"\",\n mode,\n modeString;\n\n if (numericMatch &&\n (numericMatch.length >= minNumericBeforeAlpha || str.length === numericMatch.length ||\n (numericMatch.length >= minNumericBeforeByte && !alphaNumericRegex.test(str.charAt(numericMatch.length))))) {\n mode = NUMERIC;\n modeString = numericMatch;\n } else if (alphaNumericMatch && (str.length === alphaNumericMatch.length ||\n alphaNumericMatch.length >= minAlphaBeforeByte || previousMode === ALPHA_NUMERIC)) {\n mode = ALPHA_NUMERIC;\n modeString = numericMatch || alphaMatch;\n } else {\n mode = BYTE;\n\n if (alphaNumericMatch) {\n modeString = alphaNumericMatch + byteRegex.exec(str.substring(alphaNumericMatch.length))[0];\n } else {\n modeString = byteRegex.exec(str)[0];\n }\n }\n\n return {\n mode: mode,\n modeString: modeString\n };\n}\n\nexport function getModes(inputString) {\n let modes = [],\n previousMode,\n idx = 0;\n let str = inputString;\n\n modes.push(chooseMode(str, initMinNumericBeforeAlpha, initMinNumericBeforeByte, initMinAlphaBeforeByte, previousMode));\n previousMode = modes[0].mode;\n str = str.substr(modes[0].modeString.length);\n\n while (str.length > 0) {\n let nextMode = chooseMode(str, minNumericBeforeAlpha, minNumericBeforeByte, minAlphaBeforeByte, previousMode);\n\n if (nextMode.mode !== previousMode) {\n previousMode = nextMode.mode;\n modes.push(nextMode);\n idx++;\n } else {\n modes[idx].modeString += nextMode.modeString;\n }\n\n str = str.substr(nextMode.modeString.length);\n }\n\n return modes;\n}\n\nexport function getDataCodewordsCount(modes) {\n let length = 0,\n mode;\n\n for (let i = 0; i < modes.length; i++) {\n mode = DataModeInstances[modes[i].mode];\n length += mode.getStringBitsLength(modes[i].modeString.length);\n }\n\n return Math.ceil(length / 8);\n}\n\nexport function getVersion(dataCodewordsCount, errorCorrectionLevel) {\n let x = 0,\n y = VersionsCodewordsInformation.length - 1,\n version = Math.floor(VersionsCodewordsInformation.length / 2);\n\n do {\n if (dataCodewordsCount < VersionsCodewordsInformation[version][errorCorrectionLevel].totalDataCodewords) {\n y = version;\n } else {\n x = version;\n }\n\n version = x + Math.floor((y - x) / 2);\n } while (y - x > 1);\n\n if (dataCodewordsCount <= VersionsCodewordsInformation[x][errorCorrectionLevel].totalDataCodewords) {\n return version + 1;\n }\n\n return y + 1;\n}\n\nexport function getDataString(modes, version) {\n let dataString = \"\",\n mode;\n\n for (let i = 0; i < modes.length; i++) {\n mode = DataModeInstances[modes[i].mode];\n dataString += mode.encode(modes[i].modeString, version);\n }\n\n return dataString;\n}\n\n//fix case all zeros\nexport function encodeFormatInformation(format) {\n let formatNumber = toDecimal(format),\n encodedString,\n result = \"\";\n\n if (formatNumber === 0) {\n return \"101010000010010\";\n }\n\n encodedString = encodeBCH(toDecimal(format), formatGeneratorPolynomial, 15);\n\n for (let i = 0; i < encodedString.length; i++) {\n result += encodedString.charAt(i) ^ formatMaskPattern.charAt(i);\n }\n\n return result;\n}\n\nexport function encodeBCH(value, generatorPolynomial, codeLength) {\n let generatorNumber = toDecimal(generatorPolynomial),\n polynomialLength = generatorPolynomial.length - 1,\n valueNumber = value << polynomialLength,\n length = codeLength - polynomialLength,\n valueString = toBitsString(value, length),\n result = dividePolynomials(valueNumber, generatorNumber);\n\n result = valueString + toBitsString(result, polynomialLength);\n\n return result;\n}\n\nexport function dividePolynomials(numberX, numberY) {\n let yLength = numberY.toString(2).length,\n xLength = numberX.toString(2).length;\n let x = numberX;\n\n do {\n x ^= numberY << xLength - yLength;\n xLength = x.toString(2).length;\n }\n while (xLength >= yLength);\n\n return x;\n}\n\nexport function getNumberAt(str, idx) {\n return parseInt(str.charAt(idx), 10);\n}\n\nexport function initMatrices(version) {\n let matrices = [],\n modules = 17 + 4 * version;\n\n for (let i = 0; i < maskPatternConditions.length; i++) {\n matrices[i] = new Array(modules);\n\n for (let j = 0; j < modules; j++) {\n matrices[i][j] = new Array(modules);\n }\n }\n\n return matrices;\n}\n\nexport function addFormatInformation(matrices, formatString) {\n let matrix = matrices[0],\n x,\n y,\n idx = 0,\n length = formatString.length;\n\n for (x = 0, y = 8; x <= 8; x++) {\n if (x !== 6) {\n fillFunctionCell(matrices, getNumberAt(formatString, length - 1 - idx++), x, y);\n }\n }\n\n for (x = 8, y = 7; y >= 0; y--) {\n if (y !== 6) {\n fillFunctionCell(matrices, getNumberAt(formatString, length - 1 - idx++), x, y);\n }\n }\n\n idx = 0;\n\n for (y = matrix.length - 1, x = 8; y >= matrix.length - 8; y--) {\n fillFunctionCell(matrices, getNumberAt(formatString, length - 1 - idx++), x, y);\n }\n\n fillFunctionCell(matrices, 1, matrix.length - 8, 8);\n\n for (x = matrix.length - 7, y = 8; x < matrix.length; x++) {\n fillFunctionCell(matrices, getNumberAt(formatString, length - 1 - idx++), x, y);\n }\n}\n\nexport function encodeVersionInformation(version) {\n return encodeBCH(version, versionGeneratorPolynomial, 18);\n}\n\nexport function addVersionInformation(matrices, dataString) {\n let matrix = matrices[0],\n modules = matrix.length,\n x1 = 0,\n y1 = modules - 11,\n x2 = modules - 11,\n y2 = 0,\n quotient,\n mod,\n value;\n\n for (let idx = 0; idx < dataString.length; idx++) {\n quotient = Math.floor(idx / 3);\n mod = idx % 3;\n value = getNumberAt(dataString, dataString.length - idx - 1);\n\n fillFunctionCell(matrices, value, x1 + quotient, y1 + mod);\n fillFunctionCell(matrices, value, x2 + mod, y2 + quotient);\n }\n}\n\nexport function addCentricPattern(matrices, pattern, x, y) {\n let size = pattern.length + 2,\n length = pattern.length + 1,\n value;\n\n for (let i = 0; i < pattern.length; i++) {\n for (let j = i; j < size - i; j++) {\n value = pattern[i];\n\n fillFunctionCell(matrices, value, x + j, y + i);\n fillFunctionCell(matrices, value, x + i, y + j);\n fillFunctionCell(matrices, value, x + length - j, y + length - i);\n fillFunctionCell(matrices, value, x + length - i, y + length - j);\n }\n }\n}\n\nexport function addFinderSeparator(matrices, direction, x, y) {\n let nextX = x,\n nextY = y,\n matrix = matrices[0];\n\n do {\n fillFunctionCell(matrices, 0, nextX, y);\n fillFunctionCell(matrices, 0, x, nextY);\n nextX += direction[0];\n nextY += direction[1];\n }\n while (nextX >= 0 && nextX < matrix.length);\n}\n\nexport function addFinderPatterns(matrices) {\n let modules = matrices[0].length;\n\n addCentricPattern(matrices, finderPattern, 0, 0);\n addFinderSeparator(matrices, [-1, -1], 7, 7);\n addCentricPattern(matrices, finderPattern, modules - 7, 0);\n addFinderSeparator(matrices, [1, -1], modules - 8, 7);\n addCentricPattern(matrices, finderPattern, 0, modules - 7);\n addFinderSeparator(matrices, [-1, 1], 7, modules - 8);\n}\n\nexport function addAlignmentPatterns(matrices, version) {\n if (version < 2) {\n return;\n }\n\n let matrix = matrices[0],\n modules = matrix.length,\n pointsCount = Math.floor(version / 7),\n points = [6],\n startDistance,\n distance,\n idx = 0;\n\n if ((startDistance = irregularAlignmentPatternsStartDistance[version])) {\n distance = (modules - 13 - startDistance) / pointsCount;\n } else {\n startDistance = distance = (modules - 13) / (pointsCount + 1);\n }\n\n points.push(points[idx++] + startDistance);\n\n while ((points[idx] + distance) < modules) {\n points.push(points[idx++] + distance);\n }\n\n for (let i = 0; i < points.length; i++) {\n for (let j = 0; j < points.length; j++) {\n if (matrix[points[i]][points[j]] === undefined) {\n addCentricPattern(matrices, alignmentPattern, points[i] - 2, points[j] - 2);\n }\n }\n }\n}\n\nexport function addTimingFunctions(matrices) {\n let row = 6,\n column = 6,\n value = 1,\n modules = matrices[0].length;\n\n for (let i = 8; i < modules - 8; i++) {\n fillFunctionCell(matrices, value, row, i);\n fillFunctionCell(matrices, value, i, column);\n value ^= 1;\n }\n}\n\nexport function scoreMaskMatrixes(matrices) {\n let scores = [],\n previousBits = [],\n darkModules = [],\n patterns = [],\n adjacentSameBits = [],\n matrix,\n i,\n row = 0,\n column = 1,\n modulesLength = matrices[0].length;\n\n for (i = 0; i < matrices.length; i++) {\n scores[i] = 0;\n darkModules[i] = 0;\n adjacentSameBits[i] = [0, 0];\n patterns[i] = [0, 0];\n previousBits[i] = [];\n }\n\n for (let rowIndex = 0; rowIndex < modulesLength; rowIndex++) {\n for (let columnIndex = 0; columnIndex < modulesLength; columnIndex++) {\n for (let matrixIndex = 0; matrixIndex < matrices.length; matrixIndex++) {\n matrix = matrices[matrixIndex];\n darkModules[matrixIndex] += parseInt(matrix[rowIndex][columnIndex], 10);\n\n if (previousBits[matrixIndex][row] === matrix[rowIndex][columnIndex] &&\n rowIndex + 1 < modulesLength &&\n columnIndex - 1 >= 0 &&\n matrix[rowIndex + 1][columnIndex] === previousBits[matrixIndex][row] &&\n matrix[rowIndex + 1][columnIndex - 1] === previousBits[matrixIndex][row]) {\n scores[matrixIndex] += 3;\n }\n\n scoreFinderPatternOccurance(matrixIndex, patterns, scores, row, matrix[rowIndex][columnIndex]);\n scoreFinderPatternOccurance(matrixIndex, patterns, scores, column, matrix[columnIndex][rowIndex]);\n scoreAdjacentSameBits(matrixIndex, scores, previousBits, matrix[rowIndex][columnIndex], adjacentSameBits, row);\n scoreAdjacentSameBits(matrixIndex, scores, previousBits, matrix[columnIndex][rowIndex], adjacentSameBits, column);\n }\n }\n }\n\n let total = modulesLength * modulesLength,\n minIdx,\n min = Number.MAX_VALUE;\n\n for (i = 0; i < scores.length; i++) {\n scores[i] += calculateDarkModulesRatioScore(darkModules[i], total);\n\n if (scores[i] < min) {\n min = scores[i];\n minIdx = i;\n }\n }\n\n return minIdx;\n}\n\nexport function scoreFinderPatternOccurance(idx, patterns, scores, rowColumn, bit) {\n patterns[idx][rowColumn] = ((patterns[idx][rowColumn] << 1) ^ bit) % 128;\n\n if (patterns[idx][rowColumn] === finderPatternValue) {\n scores[idx] += 40;\n }\n}\n\nexport function scoreAdjacentSameBits(idx, scores, previousBits, bit, adjacentBits, rowColumn) {\n if (previousBits[idx][rowColumn] === bit) {\n adjacentBits[idx][rowColumn]++;\n } else {\n previousBits[idx][rowColumn] = bit;\n\n if (adjacentBits[idx][rowColumn] >= 5) {\n scores[idx] += 3 + adjacentBits[idx][rowColumn] - 5;\n }\n\n adjacentBits[idx][rowColumn] = 1;\n }\n}\n\nexport function calculateDarkModulesRatioScore(darkModules, total) {\n let percent = Math.floor((darkModules / total) * 100),\n mod5 = percent % 5,\n previous = Math.abs(percent - mod5 - 50),\n next = Math.abs(percent + 5 - mod5 - 50),\n score = 10 * Math.min(previous / 5, next / 5);\n\n return score;\n}\n\nexport function createQRCodeDataEncoder(encoding) {\n if (encoding && encoding.toLowerCase().indexOf(\"utf_8\") >= 0) {\n return new Utf8Encoder();\n }\n\n return new IsoEncoder();\n}\n\nexport function encodeData(inputString, errorCorrectionLevel, encoding) {\n let encoder = createQRCodeDataEncoder(encoding),\n encodingResult = encoder.getEncodingResult(inputString, errorCorrectionLevel),\n version = encodingResult.version,\n versionInformation = VersionsCodewordsInformation[version - 1][errorCorrectionLevel],\n dataString = padDataString(encodingResult.dataString, versionInformation.totalDataCodewords),\n blocks = getBlocks(dataString, versionInformation),\n matrices = initMatrices(version);\n\n addFinderPatterns(matrices);\n addAlignmentPatterns(matrices, version);\n addTimingFunctions(matrices);\n\n if (version >= 7) {\n addVersionInformation(matrices, toBitsString(0, 18));\n }\n\n addFormatInformation(matrices, toBitsString(0, 15));\n fillData(matrices, blocks);\n\n let minIdx = scoreMaskMatrixes(matrices),\n optimalMatrix = matrices[minIdx];\n\n if (version >= 7) {\n addVersionInformation([optimalMatrix], encodeVersionInformation(version));\n }\n\n let formatString = errorCorrectionPatterns[errorCorrectionLevel] + toBitsString(minIdx, 3);\n addFormatInformation([optimalMatrix], encodeFormatInformation(formatString));\n\n return optimalMatrix;\n}\n","import { Class } from '../../common';\n\nexport class FreeCellVisitor extends Class {\n constructor(matrix) {\n super();\n\n this.matrix = matrix;\n this.row = matrix.length - 1;\n this.column = matrix.length - 1;\n this.startColumn = this.column;\n this.dir = -1;\n this.c = 0;\n }\n\n move() {\n this.row += this.dir * this.c;\n this.c ^= 1;\n this.column = this.startColumn - this.c;\n }\n\n getNextCell() {\n while (this.matrix[this.row][this.column] !== undefined) {\n this.move();\n\n if (this.row < 0 || this.row >= this.matrix.length) {\n this.dir = -this.dir;\n this.startColumn -= this.startColumn !== 8 ? 2 : 3;\n this.column = this.startColumn;\n this.row = this.dir < 0 ? this.matrix.length - 1 : 0;\n }\n }\n\n return {\n row: this.row,\n column: this.column\n };\n }\n\n getNextRemainderCell() {\n this.move();\n\n if (this.matrix[this.row][this.column] === undefined) {\n return {\n row: this.row,\n column: this.column\n };\n }\n }\n}\n","export const VersionsCodewordsInformation = [{\n L: {\n groups: [\n [1, 19]\n ],\n totalDataCodewords: 19,\n errorCodewordsPerBlock: 7\n },\n M: {\n groups: [\n [1, 16]\n ],\n totalDataCodewords: 16,\n errorCodewordsPerBlock: 10\n },\n Q: {\n groups: [\n [1, 13]\n ],\n totalDataCodewords: 13,\n errorCodewordsPerBlock: 13\n },\n H: {\n groups: [\n [1, 9]\n ],\n totalDataCodewords: 9,\n errorCodewordsPerBlock: 17\n }\n}, {\n L: {\n groups: [\n [1, 34]\n ],\n totalDataCodewords: 34,\n errorCodewordsPerBlock: 10\n },\n M: {\n groups: [\n [1, 28]\n ],\n totalDataCodewords: 28,\n errorCodewordsPerBlock: 16\n },\n Q: {\n groups: [\n [1, 22]\n ],\n totalDataCodewords: 22,\n errorCodewordsPerBlock: 22\n },\n H: {\n groups: [\n [1, 16]\n ],\n totalDataCodewords: 16,\n errorCodewordsPerBlock: 28\n }\n}, {\n L: {\n groups: [\n [1, 55]\n ],\n totalDataCodewords: 55,\n errorCodewordsPerBlock: 15\n },\n M: {\n groups: [\n [1, 44]\n ],\n totalDataCodewords: 44,\n errorCodewordsPerBlock: 26\n },\n Q: {\n groups: [\n [2, 17]\n ],\n totalDataCodewords: 34,\n errorCodewordsPerBlock: 18\n },\n H: {\n groups: [\n [2, 13]\n ],\n totalDataCodewords: 26,\n errorCodewordsPerBlock: 22\n }\n}, {\n L: {\n groups: [\n [1, 80]\n ],\n totalDataCodewords: 80,\n errorCodewordsPerBlock: 20\n },\n M: {\n groups: [\n [2, 32]\n ],\n totalDataCodewords: 64,\n errorCodewordsPerBlock: 18\n },\n Q: {\n groups: [\n [2, 24]\n ],\n totalDataCodewords: 48,\n errorCodewordsPerBlock: 26\n },\n H: {\n groups: [\n [4, 9]\n ],\n totalDataCodewords: 36,\n errorCodewordsPerBlock: 16\n }\n}, {\n L: {\n groups: [\n [1, 108]\n ],\n totalDataCodewords: 108,\n errorCodewordsPerBlock: 26\n },\n M: {\n groups: [\n [2, 43]\n ],\n totalDataCodewords: 86,\n errorCodewordsPerBlock: 24\n },\n Q: {\n groups: [\n [2, 15],\n [2, 16]\n ],\n totalDataCodewords: 62,\n errorCodewordsPerBlock: 18\n },\n H: {\n groups: [\n [2, 11],\n [2, 12]\n ],\n totalDataCodewords: 46,\n errorCodewordsPerBlock: 22\n }\n}, {\n L: {\n groups: [\n [2, 68]\n ],\n totalDataCodewords: 136,\n errorCodewordsPerBlock: 18\n },\n M: {\n groups: [\n [4, 27]\n ],\n totalDataCodewords: 108,\n errorCodewordsPerBlock: 16\n },\n Q: {\n groups: [\n [4, 19]\n ],\n totalDataCodewords: 76,\n errorCodewordsPerBlock: 24\n },\n H: {\n groups: [\n [4, 15]\n ],\n totalDataCodewords: 60,\n errorCodewordsPerBlock: 28\n }\n}, {\n L: {\n groups: [\n [2, 78]\n ],\n totalDataCodewords: 156,\n errorCodewordsPerBlock: 20\n },\n M: {\n groups: [\n [4, 31]\n ],\n totalDataCodewords: 124,\n errorCodewordsPerBlock: 18\n },\n Q: {\n groups: [\n [2, 14],\n [4, 15]\n ],\n totalDataCodewords: 88,\n errorCodewordsPerBlock: 18\n },\n H: {\n groups: [\n [4, 13],\n [1, 14]\n ],\n totalDataCodewords: 66,\n errorCodewordsPerBlock: 26\n }\n}, {\n L: {\n groups: [\n [2, 97]\n ],\n totalDataCodewords: 194,\n errorCodewordsPerBlock: 24\n },\n M: {\n groups: [\n [2, 38],\n [2, 39]\n ],\n totalDataCodewords: 154,\n errorCodewordsPerBlock: 22\n },\n Q: {\n groups: [\n [4, 18],\n [2, 19]\n ],\n totalDataCodewords: 110,\n errorCodewordsPerBlock: 22\n },\n H: {\n groups: [\n [4, 14],\n [2, 15]\n ],\n totalDataCodewords: 86,\n errorCodewordsPerBlock: 26\n }\n}, {\n L: {\n groups: [\n [2, 116]\n ],\n totalDataCodewords: 232,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [3, 36],\n [2, 37]\n ],\n totalDataCodewords: 182,\n errorCodewordsPerBlock: 22\n },\n Q: {\n groups: [\n [4, 16],\n [4, 17]\n ],\n totalDataCodewords: 132,\n errorCodewordsPerBlock: 20\n },\n H: {\n groups: [\n [4, 12],\n [4, 13]\n ],\n totalDataCodewords: 100,\n errorCodewordsPerBlock: 24\n }\n}, {\n L: {\n groups: [\n [2, 68],\n [2, 69]\n ],\n totalDataCodewords: 274,\n errorCodewordsPerBlock: 18\n },\n M: {\n groups: [\n [4, 43],\n [1, 44]\n ],\n totalDataCodewords: 216,\n errorCodewordsPerBlock: 26\n },\n Q: {\n groups: [\n [6, 19],\n [2, 20]\n ],\n totalDataCodewords: 154,\n errorCodewordsPerBlock: 24\n },\n H: {\n groups: [\n [6, 15],\n [2, 16]\n ],\n totalDataCodewords: 122,\n errorCodewordsPerBlock: 28\n }\n}, {\n L: {\n groups: [\n [4, 81]\n ],\n totalDataCodewords: 324,\n errorCodewordsPerBlock: 20\n },\n M: {\n groups: [\n [1, 50],\n [4, 51]\n ],\n totalDataCodewords: 254,\n errorCodewordsPerBlock: 30\n },\n Q: {\n groups: [\n [4, 22],\n [4, 23]\n ],\n totalDataCodewords: 180,\n errorCodewordsPerBlock: 28\n },\n H: {\n groups: [\n [3, 12],\n [8, 13]\n ],\n totalDataCodewords: 140,\n errorCodewordsPerBlock: 24\n }\n}, {\n L: {\n groups: [\n [2, 92],\n [2, 93]\n ],\n totalDataCodewords: 370,\n errorCodewordsPerBlock: 24\n },\n M: {\n groups: [\n [6, 36],\n [2, 37]\n ],\n totalDataCodewords: 290,\n errorCodewordsPerBlock: 22\n },\n Q: {\n groups: [\n [4, 20],\n [6, 21]\n ],\n totalDataCodewords: 206,\n errorCodewordsPerBlock: 26\n },\n H: {\n groups: [\n [7, 14],\n [4, 15]\n ],\n totalDataCodewords: 158,\n errorCodewordsPerBlock: 28\n }\n}, {\n L: {\n groups: [\n [4, 107]\n ],\n totalDataCodewords: 428,\n errorCodewordsPerBlock: 26\n },\n M: {\n groups: [\n [8, 37],\n [1, 38]\n ],\n totalDataCodewords: 334,\n errorCodewordsPerBlock: 22\n },\n Q: {\n groups: [\n [8, 20],\n [4, 21]\n ],\n totalDataCodewords: 244,\n errorCodewordsPerBlock: 24\n },\n H: {\n groups: [\n [12, 11],\n [4, 12]\n ],\n totalDataCodewords: 180,\n errorCodewordsPerBlock: 22\n }\n}, {\n L: {\n groups: [\n [3, 115],\n [1, 116]\n ],\n totalDataCodewords: 461,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [4, 40],\n [5, 41]\n ],\n totalDataCodewords: 365,\n errorCodewordsPerBlock: 24\n },\n Q: {\n groups: [\n [11, 16],\n [5, 17]\n ],\n totalDataCodewords: 261,\n errorCodewordsPerBlock: 20\n },\n H: {\n groups: [\n [11, 12],\n [5, 13]\n ],\n totalDataCodewords: 197,\n errorCodewordsPerBlock: 24\n }\n}, {\n L: {\n groups: [\n [5, 87],\n [1, 88]\n ],\n totalDataCodewords: 523,\n errorCodewordsPerBlock: 22\n },\n M: {\n groups: [\n [5, 41],\n [5, 42]\n ],\n totalDataCodewords: 415,\n errorCodewordsPerBlock: 24\n },\n Q: {\n groups: [\n [5, 24],\n [7, 25]\n ],\n totalDataCodewords: 295,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [11, 12],\n [7, 13]\n ],\n totalDataCodewords: 223,\n errorCodewordsPerBlock: 24\n }\n}, {\n L: {\n groups: [\n [5, 98],\n [1, 99]\n ],\n totalDataCodewords: 589,\n errorCodewordsPerBlock: 24\n },\n M: {\n groups: [\n [7, 45],\n [3, 46]\n ],\n totalDataCodewords: 453,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [15, 19],\n [2, 20]\n ],\n totalDataCodewords: 325,\n errorCodewordsPerBlock: 24\n },\n H: {\n groups: [\n [3, 15],\n [13, 16]\n ],\n totalDataCodewords: 253,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [1, 107],\n [5, 108]\n ],\n totalDataCodewords: 647,\n errorCodewordsPerBlock: 28\n },\n M: {\n groups: [\n [10, 46],\n [1, 47]\n ],\n totalDataCodewords: 507,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [1, 22],\n [15, 23]\n ],\n totalDataCodewords: 367,\n errorCodewordsPerBlock: 28\n },\n H: {\n groups: [\n [2, 14],\n [17, 15]\n ],\n totalDataCodewords: 283,\n errorCodewordsPerBlock: 28\n }\n}, {\n L: {\n groups: [\n [5, 120],\n [1, 121]\n ],\n totalDataCodewords: 721,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [9, 43],\n [4, 44]\n ],\n totalDataCodewords: 563,\n errorCodewordsPerBlock: 26\n },\n Q: {\n groups: [\n [17, 22],\n [1, 23]\n ],\n totalDataCodewords: 397,\n errorCodewordsPerBlock: 28\n },\n H: {\n groups: [\n [2, 14],\n [19, 15]\n ],\n totalDataCodewords: 313,\n errorCodewordsPerBlock: 28\n }\n}, {\n L: {\n groups: [\n [3, 113],\n [4, 114]\n ],\n totalDataCodewords: 795,\n errorCodewordsPerBlock: 28\n },\n M: {\n groups: [\n [3, 44],\n [11, 45]\n ],\n totalDataCodewords: 627,\n errorCodewordsPerBlock: 26\n },\n Q: {\n groups: [\n [17, 21],\n [4, 22]\n ],\n totalDataCodewords: 445,\n errorCodewordsPerBlock: 26\n },\n H: {\n groups: [\n [9, 13],\n [16, 14]\n ],\n totalDataCodewords: 341,\n errorCodewordsPerBlock: 26\n }\n}, {\n L: {\n groups: [\n [3, 107],\n [5, 108]\n ],\n totalDataCodewords: 861,\n errorCodewordsPerBlock: 28\n },\n M: {\n groups: [\n [3, 41],\n [13, 42]\n ],\n totalDataCodewords: 669,\n errorCodewordsPerBlock: 26\n },\n Q: {\n groups: [\n [15, 24],\n [5, 25]\n ],\n totalDataCodewords: 485,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [15, 15],\n [10, 16]\n ],\n totalDataCodewords: 385,\n errorCodewordsPerBlock: 28\n }\n}, {\n L: {\n groups: [\n [4, 116],\n [4, 117]\n ],\n totalDataCodewords: 932,\n errorCodewordsPerBlock: 28\n },\n M: {\n groups: [\n [17, 42]\n ],\n totalDataCodewords: 714,\n errorCodewordsPerBlock: 26\n },\n Q: {\n groups: [\n [17, 22],\n [6, 23]\n ],\n totalDataCodewords: 512,\n errorCodewordsPerBlock: 28\n },\n H: {\n groups: [\n [19, 16],\n [6, 17]\n ],\n totalDataCodewords: 406,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [2, 111],\n [7, 112]\n ],\n totalDataCodewords: 1006,\n errorCodewordsPerBlock: 28\n },\n M: {\n groups: [\n [17, 46]\n ],\n totalDataCodewords: 782,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [7, 24],\n [16, 25]\n ],\n totalDataCodewords: 568,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [34, 13]\n ],\n totalDataCodewords: 442,\n errorCodewordsPerBlock: 24\n }\n}, {\n L: {\n groups: [\n [4, 121],\n [5, 122]\n ],\n totalDataCodewords: 1094,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [4, 47],\n [14, 48]\n ],\n totalDataCodewords: 860,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [11, 24],\n [14, 25]\n ],\n totalDataCodewords: 614,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [16, 15],\n [14, 16]\n ],\n totalDataCodewords: 464,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [6, 117],\n [4, 118]\n ],\n totalDataCodewords: 1174,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [6, 45],\n [14, 46]\n ],\n totalDataCodewords: 914,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [11, 24],\n [16, 25]\n ],\n totalDataCodewords: 664,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [30, 16],\n [2, 17]\n ],\n totalDataCodewords: 514,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [8, 106],\n [4, 107]\n ],\n totalDataCodewords: 1276,\n errorCodewordsPerBlock: 26\n },\n M: {\n groups: [\n [8, 47],\n [13, 48]\n ],\n totalDataCodewords: 1000,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [7, 24],\n [22, 25]\n ],\n totalDataCodewords: 718,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [22, 15],\n [13, 16]\n ],\n totalDataCodewords: 538,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [10, 114],\n [2, 115]\n ],\n totalDataCodewords: 1370,\n errorCodewordsPerBlock: 28\n },\n M: {\n groups: [\n [19, 46],\n [4, 47]\n ],\n totalDataCodewords: 1062,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [28, 22],\n [6, 23]\n ],\n totalDataCodewords: 754,\n errorCodewordsPerBlock: 28\n },\n H: {\n groups: [\n [33, 16],\n [4, 17]\n ],\n totalDataCodewords: 596,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [8, 122],\n [4, 123]\n ],\n totalDataCodewords: 1468,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [22, 45],\n [3, 46]\n ],\n totalDataCodewords: 1128,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [8, 23],\n [26, 24]\n ],\n totalDataCodewords: 808,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [12, 15],\n [28, 16]\n ],\n totalDataCodewords: 628,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [3, 117],\n [10, 118]\n ],\n totalDataCodewords: 1531,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [3, 45],\n [23, 46]\n ],\n totalDataCodewords: 1193,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [4, 24],\n [31, 25]\n ],\n totalDataCodewords: 871,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [11, 15],\n [31, 16]\n ],\n totalDataCodewords: 661,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [7, 116],\n [7, 117]\n ],\n totalDataCodewords: 1631,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [21, 45],\n [7, 46]\n ],\n totalDataCodewords: 1267,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [1, 23],\n [37, 24]\n ],\n totalDataCodewords: 911,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [19, 15],\n [26, 16]\n ],\n totalDataCodewords: 701,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [5, 115],\n [10, 116]\n ],\n totalDataCodewords: 1735,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [19, 47],\n [10, 48]\n ],\n totalDataCodewords: 1373,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [15, 24],\n [25, 25]\n ],\n totalDataCodewords: 985,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [23, 15],\n [25, 16]\n ],\n totalDataCodewords: 745,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [13, 115],\n [3, 116]\n ],\n totalDataCodewords: 1843,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [2, 46],\n [29, 47]\n ],\n totalDataCodewords: 1455,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [42, 24],\n [1, 25]\n ],\n totalDataCodewords: 1033,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [23, 15],\n [28, 16]\n ],\n totalDataCodewords: 793,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [17, 115]\n ],\n totalDataCodewords: 1955,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [10, 46],\n [23, 47]\n ],\n totalDataCodewords: 1541,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [10, 24],\n [35, 25]\n ],\n totalDataCodewords: 1115,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [19, 15],\n [35, 16]\n ],\n totalDataCodewords: 845,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [17, 115],\n [1, 116]\n ],\n totalDataCodewords: 2071,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [14, 46],\n [21, 47]\n ],\n totalDataCodewords: 1631,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [29, 24],\n [19, 25]\n ],\n totalDataCodewords: 1171,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [11, 15],\n [46, 16]\n ],\n totalDataCodewords: 901,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [13, 115],\n [6, 116]\n ],\n totalDataCodewords: 2191,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [14, 46],\n [23, 47]\n ],\n totalDataCodewords: 1725,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [44, 24],\n [7, 25]\n ],\n totalDataCodewords: 1231,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [59, 16],\n [1, 17]\n ],\n totalDataCodewords: 961,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [12, 121],\n [7, 122]\n ],\n totalDataCodewords: 2306,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [12, 47],\n [26, 48]\n ],\n totalDataCodewords: 1812,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [39, 24],\n [14, 25]\n ],\n totalDataCodewords: 1286,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [22, 15],\n [41, 16]\n ],\n totalDataCodewords: 986,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [6, 121],\n [14, 122]\n ],\n totalDataCodewords: 2434,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [6, 47],\n [34, 48]\n ],\n totalDataCodewords: 1914,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [46, 24],\n [10, 25]\n ],\n totalDataCodewords: 1354,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [2, 15],\n [64, 16]\n ],\n totalDataCodewords: 1054,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [17, 122],\n [4, 123]\n ],\n totalDataCodewords: 2566,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [29, 46],\n [14, 47]\n ],\n totalDataCodewords: 1992,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [49, 24],\n [10, 25]\n ],\n totalDataCodewords: 1426,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [24, 15],\n [46, 16]\n ],\n totalDataCodewords: 1096,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [4, 122],\n [18, 123]\n ],\n totalDataCodewords: 2702,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [13, 46],\n [32, 47]\n ],\n totalDataCodewords: 2102,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [48, 24],\n [14, 25]\n ],\n totalDataCodewords: 1502,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [42, 15],\n [32, 16]\n ],\n totalDataCodewords: 1142,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [20, 117],\n [4, 118]\n ],\n totalDataCodewords: 2812,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [40, 47],\n [7, 48]\n ],\n totalDataCodewords: 2216,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [43, 24],\n [22, 25]\n ],\n totalDataCodewords: 1582,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [10, 15],\n [67, 16]\n ],\n totalDataCodewords: 1222,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [19, 118],\n [6, 119]\n ],\n totalDataCodewords: 2956,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [18, 47],\n [31, 48]\n ],\n totalDataCodewords: 2334,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [34, 24],\n [34, 25]\n ],\n totalDataCodewords: 1666,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [20, 15],\n [61, 16]\n ],\n totalDataCodewords: 1276,\n errorCodewordsPerBlock: 30\n }\n}];\n","import { encodeData } from './encodings/encoding';\n\nconst ISO = 'ISO_8859_1';\n\nfunction qrcodeValidator(encoding = ISO) {\n return function(value) {\n try {\n encodeData(value, 'L', encoding);\n } catch (error) {\n return {\n valid: false,\n error\n };\n }\n\n return {\n valid: true\n };\n };\n}\n\nexport default qrcodeValidator;\n","import {\n geometry as geom,\n drawing as draw\n} from '@progress/kendo-drawing';\n\nimport {\n Class,\n addClass,\n setDefaultOptions,\n deepExtend,\n defaultErrorHandler\n} from '../common';\n\nimport { Box } from '../core';\nimport { encodeData } from './encodings/encoding';\nimport { extend } from './utils';\n\nimport { surfaceSize } from '../barcode/surface-size';\n\nconst round = Math.round;\nconst crossPattern = [[0, 1], [1, 1], [1, 2], [2, 2], [2, 1], [3, 1], [3, 0], [2, 0], [2, -1], [1, -1], [1, 0]];\nconst squarePattern = [[0, 1], [1, 1], [1, 0]];\n\nconst QRCodeDefaults = {\n DEFAULT_SIZE: 200,\n QUIET_ZONE_LENGTH: 4,\n DEFAULT_ERROR_CORRECTION_LEVEL: \"L\",\n DEFAULT_BACKGROUND: \"#fff\",\n DEFAULT_DARK_MODULE_COLOR: \"#000\",\n MIN_BASE_UNIT_SIZE: 1,\n DEFAULT_LOGO_SIZE: 7\n};\n\nclass QRCode extends Class {\n constructor(element, options, errorHandler = defaultErrorHandler) {\n super();\n\n this.options = deepExtend({}, this.options, options);\n this.element = element;\n this.wrapper = this.element;\n this.onError = errorHandler;\n\n this._initElement();\n this._initSurface();\n\n this.setOptions(options);\n }\n\n destroy() {\n this._destroySurface();\n }\n\n _initElement() {\n addClass(this.element, \"k-qrcode\");\n }\n\n _initSurface() {\n const { options, surface } = this;\n\n if (!surface || surface.options.type !== options.renderAs) {\n this._destroySurface();\n this._initSurfaceElement();\n this.surface = this._createSurface();\n }\n }\n\n _createSurface() {\n return draw.Surface.create(this.surfaceElement, {\n type: this.options.renderAs\n });\n }\n\n _destroySurface() {\n if (this.surface) {\n this.surface.destroy();\n this.surface = null;\n this._destroySurfaceElement();\n }\n }\n\n _initSurfaceElement() {\n if (!this.surfaceElement) {\n this.surfaceElement = document.createElement('div');\n this.surfaceElement.style.position = \"relative\";\n this.element.appendChild(this.surfaceElement);\n }\n }\n\n _destroySurfaceElement() {\n if (this.surfaceElement && this.surfaceElement.parentNode) {\n this.surfaceElement.parentNode.removeChild(this.surfaceElement);\n this.surfaceElement = null;\n }\n }\n\n redraw() {\n let size = this._getSize();\n\n this.surface.clear();\n\n this.surface.setSize({\n width: size,\n height: size\n });\n\n this.createVisual();\n\n this.surface.draw(this.visual);\n }\n\n getSize() {\n const element = this.element;\n const elementWidth = element.clientWidth;\n const elementHeight = element.clientHeight;\n const size = { width: 0, height: 0 };\n\n if (elementWidth > 0) {\n size.width = elementWidth;\n }\n\n if (elementHeight) {\n size.height = elementHeight;\n }\n\n return size;\n }\n\n _resize() {\n this.redraw();\n }\n\n createVisual() {\n this.visual = this._render();\n }\n\n exportVisual() {\n return this._render();\n }\n\n _render() {\n let value = this._value,\n baseUnit,\n border = this.options.border || {},\n padding = this.options.padding || 0,\n borderWidth = border.width || 0,\n quietZoneSize,\n matrix,\n size,\n dataSize,\n contentSize;\n\n border.width = borderWidth;\n\n let visual = new draw.Group();\n\n try {\n if (value) {\n matrix = encodeData(value, this.options.errorCorrection, this.options.encoding);\n size = this._getSize();\n contentSize = size - 2 * (borderWidth + padding);\n baseUnit = this._calculateBaseUnit(contentSize, matrix.length);\n dataSize = matrix.length * baseUnit;\n quietZoneSize = borderWidth + padding + (contentSize - dataSize) / 2;\n\n visual.append(this._renderBackground(size, border));\n visual.append(this._renderMatrix(matrix, baseUnit, quietZoneSize));\n\n if (this._hasCustomLogo()) {\n visual.append(this._renderLogo(size, baseUnit));\n } else if (this._isSwiss()) {\n visual.append(this._renderSwissCode(size, baseUnit));\n }\n }\n } catch (error) {\n this.onError(error);\n }\n\n return visual;\n }\n\n _renderLogo(qrSize, baseUnit) {\n let image;\n let imageRect;\n let center = round(qrSize / 2);\n let logoSize = this._getLogoSize(baseUnit * QRCodeDefaults.DEFAULT_LOGO_SIZE);\n let logoUrl = this.options.overlay.imageUrl;\n let position = {\n x: center - logoSize.width / 2,\n y: center - logoSize.height / 2\n };\n\n imageRect = new geom.Rect(\n new geom.Point(position.x, position.y),\n new geom.Size(logoSize.width, logoSize.height)\n );\n\n image = new draw.Image(logoUrl, imageRect);\n\n return image;\n }\n\n _renderSwissCode(qrSize, baseUnit) {\n let logoSize = this._getLogoSize(baseUnit * QRCodeDefaults.DEFAULT_LOGO_SIZE);\n logoSize = Math.max(logoSize.width, logoSize.height);\n let crossSize = logoSize / 4;\n let crossOffset = crossSize / 2;\n let center = qrSize / 2;\n let start = {};\n let visual = new draw.Group();\n\n start.x = start.y = Math.ceil(center - baseUnit - logoSize / 2);\n visual.append(this._renderShape(start, Math.ceil(logoSize + baseUnit * 2), squarePattern, \"#fff\"));\n\n start.x = start.y = center - logoSize / 2;\n visual.append(this._renderShape(start, logoSize, squarePattern, this.options.color));\n\n start.x = center + crossOffset - logoSize / 2;\n start.y = center + crossOffset + crossSize - logoSize / 2;\n visual.append(this._renderShape(start, crossSize, crossPattern, \"#fff\"));\n\n return visual;\n }\n\n _renderShape(start, step, pattern, color) {\n let path = new draw.MultiPath({\n fill: {\n color: color\n },\n stroke: null\n });\n\n path.moveTo(start.x, start.y);\n\n for (let i = 0; i < pattern.length; i++) {\n path.lineTo(start.x + step * pattern[i][0], start.y + step * pattern[i][1]);\n }\n\n path.close();\n\n return path;\n }\n\n _getSize() {\n let size;\n\n if (this.options.size) {\n size = parseInt(this.options.size, 10);\n } else {\n const element = this.element;\n const elementSize = surfaceSize(element, this.options.renderAs);\n const min = Math.min(elementSize.width, elementSize.height);\n\n if (min > 0) {\n size = min;\n } else {\n size = QRCodeDefaults.DEFAULT_SIZE;\n }\n }\n\n return size;\n }\n\n _calculateBaseUnit(size, matrixSize) {\n let baseUnit = Math.floor(size / matrixSize);\n\n if (baseUnit < QRCodeDefaults.MIN_BASE_UNIT_SIZE) {\n const minSize = Math.ceil(matrixSize * QRCodeDefaults.MIN_BASE_UNIT_SIZE);\n this.onError(new Error(\n `Insufficient size for QR Code: the current size is ${size}px and the minimum size is ${minSize}px.`\n ));\n } else if (baseUnit * matrixSize >= size &&\n baseUnit - 1 >= QRCodeDefaults.MIN_BASE_UNIT_SIZE) {\n baseUnit--;\n }\n\n return baseUnit;\n }\n\n _renderMatrix(matrix, baseUnit, quietZoneSize) {\n let path = new draw.MultiPath({\n fill: {\n color: this.options.color\n },\n stroke: null\n });\n\n for (let row = 0; row < matrix.length; row++) {\n let y = quietZoneSize + row * baseUnit;\n let column = 0;\n\n while (column < matrix.length) {\n while (matrix[row][column] === 0 && column < matrix.length) {\n column++;\n }\n\n if (column < matrix.length) {\n let x = column;\n while (matrix[row][column] === 1) {\n column++;\n }\n\n let x1 = round(quietZoneSize + x * baseUnit);\n let y1 = round(y);\n let x2 = round(quietZoneSize + column * baseUnit);\n let y2 = round(y + baseUnit);\n\n path.moveTo(x1, y1)\n .lineTo(x1, y2)\n .lineTo(x2, y2)\n .lineTo(x2, y1)\n .close();\n }\n }\n }\n\n return path;\n }\n\n _renderBackground(size, border) {\n const box = new Box(0, 0, size, size).unpad(border.width / 2);\n const background = draw.Path.fromRect(box.toRect(), {\n fill: {\n color: this.options.background\n },\n stroke: {\n color: border.color,\n width: border.width\n }\n });\n\n return background;\n }\n\n setOptions(options) {\n let newOptions = options || {};\n this.options = extend(this.options, newOptions);\n\n if (options.value !== undefined) {\n this._value = String(this.options.value);\n }\n\n this._initSurface();\n this.redraw();\n }\n\n value(value) {\n if (value === undefined) {\n return this._value;\n }\n\n this._value = String(value);\n\n this.redraw();\n }\n\n _hasCustomLogo() {\n return Boolean(this.options.overlay.imageUrl);\n }\n\n _isSwiss() {\n return this.options.overlay.type === \"swiss\";\n }\n\n _getLogoSize(defautLogoSize) {\n let width = this.options.overlay.width;\n let height = this.options.overlay.height;\n\n if (!width && !height) {\n width = height = defautLogoSize;\n } else if (width && !height) {\n height = width;\n } else if (!width && height) {\n width = height;\n }\n\n return {\n width: width,\n height: height\n };\n }\n}\n\nsetDefaultOptions(QRCode, {\n name: \"QRCode\",\n renderAs: \"svg\",\n encoding: \"ISO_8859_1\",\n value: \"\",\n errorCorrection: QRCodeDefaults.DEFAULT_ERROR_CORRECTION_LEVEL,\n background: QRCodeDefaults.DEFAULT_BACKGROUND,\n color: QRCodeDefaults.DEFAULT_DARK_MODULE_COLOR,\n size: \"\",\n padding: 0,\n border: {\n color: \"\",\n width: 0\n },\n overlay: {\n type: \"image\",\n imageUrl: \"\",\n width: 0,\n height: 0\n }\n});\n\nexport default QRCode;\n","export const extend = Object.assign;\n\nexport function splitInto(str, chunkLength) {\n let result = [];\n let idx = 0;\n\n while (idx < str.length) {\n result.push(str.substring(idx, idx + chunkLength));\n idx += chunkLength;\n }\n\n return result;\n}\n\nexport function toBitsString(value, length) {\n let bitString = Number(value).toString(2);\n\n if (bitString.length < length) {\n bitString = new Array(length - bitString.length + 1).join(0) + bitString;\n }\n\n return bitString;\n}\n\nexport function toDecimal(value) {\n return parseInt(value, 2);\n}\n\n","export { default as ChartService } from './services/chart-service';\nexport { default as DomEventsBuilder } from './services/dom-events-builder';\nexport { default as FormatService } from './services/format-service';\nexport { default as IntlService } from './services/intl-service';\nexport { default as TemplateService } from './services/template-service';","import IntlService from './intl-service';\nimport FormatService from './format-service';\n\nclass ChartService {\n constructor(chart, context = {}) {\n this._intlService = context.intlService;\n this.sender = context.sender || chart;\n this.format = new FormatService(context.intlService);\n this.chart = chart;\n this.rtl = Boolean(context.rtl);\n }\n\n get intl() {\n return this._intlService || IntlService.implementation;\n }\n\n set intl(value) {\n this._intlService = value;\n this.format.intl = value;\n }\n\n notify(name, args) {\n if (this.chart) {\n this.chart.trigger(name, args);\n }\n }\n\n isPannable(axis) {\n const pannable = ((this.chart || {}).options || {}).pannable;\n return pannable && pannable.lock !== axis;\n }\n}\n\nexport default ChartService;","let current;\n\nclass DomEventsBuilder {\n static register(userImplementation) {\n current = userImplementation;\n }\n\n static create(element, events) {\n if (current) {\n return current.create(element, events);\n }\n }\n}\n\nexport default DomEventsBuilder;\n","import IntlService from './intl-service';\nimport { FORMAT_REGEX } from '../common/constants';\nimport { isString } from '../common';\n\nconst FORMAT_REPLACE_REGEX = /\\{(\\d+)(:[^\\}]+)?\\}/g;\n\nclass FormatService {\n constructor(intlService) {\n this._intlService = intlService;\n }\n\n get intl() {\n return this._intlService || IntlService.implementation;\n }\n\n set intl(value) {\n this._intlService = value;\n }\n\n auto(formatString, ...values) {\n const intl = this.intl;\n\n if (isString(formatString) && formatString.match(FORMAT_REGEX)) {\n return intl.format(formatString, ...values);\n }\n\n return intl.toString(values[0], formatString);\n }\n\n localeAuto(formatString, values, locale) {\n const intl = this.intl;\n let result;\n\n if (isString(formatString) && formatString.match(FORMAT_REGEX)) {\n result = formatString.replace(FORMAT_REPLACE_REGEX, function(match, index, placeholderFormat) {\n let value = values[parseInt(index, 10)];\n\n return intl.toString(value, placeholderFormat ? placeholderFormat.substring(1) : \"\", locale);\n });\n } else {\n result = intl.toString(values[0], formatString, locale);\n }\n\n return result;\n }\n}\n\nexport default FormatService;","const defaultImplementation = {\n format: (format, value) => value,\n\n toString: (value) => value,\n\n parseDate: (value) => new Date(value),\n\n firstDay: () => 0\n};\n\nlet current = defaultImplementation;\n\nclass IntlService {\n static register(userImplementation) {\n current = userImplementation;\n }\n\n static get implementation() {\n return current;\n }\n}\n\nexport default IntlService;\n","class MapService {\n constructor(widget, context = {}) {\n this.sender = context.sender || widget;\n this.widget = widget;\n this.rtl = Boolean(context.rtl);\n }\n\n notify(name, args) {\n if (this.widget) {\n this.widget.trigger(name, args);\n }\n }\n}\n\nexport default MapService;\n","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;\n","import { SharedTooltip as ChartSharedTooltip } from '../chart';\nimport { Point } from '../core';\nconst TOP_OFFSET = -2;\n\nclass SharedTooltip extends ChartSharedTooltip {\n _slotAnchor(coords, slot) {\n const axis = this.plotArea.categoryAxis;\n const vertical = axis.options.vertical;\n const align = vertical ? {\n horizontal: \"left\",\n vertical: \"center\"\n } : {\n horizontal: \"center\",\n vertical: \"bottom\"\n };\n\n let point;\n\n if (vertical) {\n point = new Point(this.plotArea.box.x2, slot.center().y);\n } else {\n point = new Point(slot.center().x, TOP_OFFSET);\n }\n\n return {\n point: point,\n align: align\n };\n }\n\n _defaultAnchor(point, slot) {\n return this._slotAnchor({}, slot);\n }\n}\n\nexport default SharedTooltip;","import { Chart } from '../chart';\nimport { BAR, BULLET, PIE, COLUMN, VERTICAL_BULLET } from '../chart/constants';\nimport{ addClass, deepExtend, elementSize, getSpacing, inArray, isArray, isNumber, setDefaultOptions } from '../common';\nimport SharedTooltip from './shared-tooltip';\n\nconst DEAULT_BAR_WIDTH = 150;\nconst DEAULT_BULLET_WIDTH = 150;\nconst NO_CROSSHAIR = [ BAR, BULLET ];\n\nfunction hide(children) {\n const state = [];\n for (let idx = 0; idx < children.length; idx++) {\n const child = children[idx];\n state[idx] = child.style.display;\n child.style.display = \"none\";\n }\n\n return state;\n}\n\nfunction show(children, state) {\n for (let idx = 0; idx < children.length; idx++) {\n children[idx].style.display = state[idx];\n }\n}\n\nfunction wrapNumber(value) {\n return isNumber(value) ? [ value ] : value;\n}\n\nclass Sparkline extends Chart {\n _setElementClass(element) {\n addClass(element, 'k-sparkline');\n }\n\n _initElement(element) {\n super._initElement(element);\n\n this._initialWidth = Math.floor(elementSize(element).width);\n }\n\n _resize() {\n const element = this.element;\n const state = hide(element.childNodes);\n\n this._initialWidth = Math.floor(elementSize(element).width);\n\n show(element.childNodes, state);\n\n super._resize();\n }\n\n _modelOptions() {\n const chartOptions = this.options;\n const stage = this._surfaceWrap();\n const displayState = hide(stage.childNodes);\n\n const space = document.createElement('span');\n space.innerHTML = ' ';\n\n stage.appendChild(space);\n\n const options = deepExtend({\n width: this._autoWidth,\n height: elementSize(stage).height,\n transitions: chartOptions.transitions\n }, chartOptions.chartArea, {\n inline: true,\n align: false\n });\n\n elementSize(stage, {\n width: options.width,\n height: options.height\n });\n\n stage.removeChild(space);\n\n show(stage.childNodes, displayState);\n\n if (this.surface) {\n this.surface.resize();\n }\n\n return options;\n }\n\n _surfaceWrap() {\n if (!this.stage) {\n const stage = this.stage = document.createElement('span');\n this.element.appendChild(stage);\n }\n return this.stage;\n }\n\n _createPlotArea(skipSeries) {\n const plotArea = super._createPlotArea(skipSeries);\n this._autoWidth = this._initialWidth || this._calculateWidth(plotArea);\n\n return plotArea;\n }\n\n _calculateWidth(plotArea) {\n const options = this.options;\n const margin = getSpacing(options.chartArea.margin);\n const charts = plotArea.charts;\n const stage = this._surfaceWrap();\n let total = 0;\n\n\n for (let i = 0; i < charts.length; i++) {\n const currentChart = charts[i];\n const firstSeries = (currentChart.options.series || [])[0];\n if (!firstSeries) {\n continue;\n }\n\n if (firstSeries.type === BAR) {\n return DEAULT_BAR_WIDTH;\n }\n\n if (firstSeries.type === BULLET) {\n return DEAULT_BULLET_WIDTH;\n }\n\n if (firstSeries.type === PIE) {\n return elementSize(stage).height;\n }\n\n const categoryAxis = currentChart.categoryAxis;\n if (categoryAxis) {\n const pointsCount = categoryAxis.categoriesCount() *\n (!currentChart.options.isStacked && inArray(firstSeries.type, [ COLUMN, VERTICAL_BULLET ]) ? currentChart.seriesOptions.length : 1);\n\n total = Math.max(total, pointsCount);\n }\n }\n\n let size = total * options.pointWidth;\n if (size > 0) {\n size += margin.left + margin.right;\n }\n\n return size;\n }\n\n _createSharedTooltip(options) {\n return new SharedTooltip(this._plotArea, options);\n }\n\n static normalizeOptions(userOptions) {\n let options = wrapNumber(userOptions);\n\n if (isArray(options)) {\n options = { seriesDefaults: { data: options } };\n } else {\n options = deepExtend({}, options);\n }\n\n if (!options.series) {\n options.series = [ { data: wrapNumber(options.data) } ];\n }\n\n deepExtend(options, {\n seriesDefaults: {\n type: options.type\n }\n });\n\n if (inArray(options.series[0].type, NO_CROSSHAIR) ||\n inArray(options.seriesDefaults.type, NO_CROSSHAIR)) {\n options = deepExtend({}, {\n categoryAxis: {\n crosshair: {\n visible: false\n }\n }\n }, options);\n }\n\n return options;\n }\n}\n\nsetDefaultOptions(Sparkline, {\n chartArea: {\n margin: 2\n },\n axisDefaults: {\n visible: false,\n majorGridLines: {\n visible: false\n },\n valueAxis: {\n narrowRange: true\n }\n },\n seriesDefaults: {\n type: \"line\",\n area: {\n line: {\n width: 0.5\n }\n },\n bar: {\n stack: true\n },\n padding: 2,\n width: 0.5,\n overlay: {\n gradient: null\n },\n highlight: {\n visible: false\n },\n border: {\n width: 0\n },\n markers: {\n size: 2,\n visible: false\n }\n },\n tooltip: {\n visible: true,\n shared: true\n },\n categoryAxis: {\n crosshair: {\n visible: true,\n tooltip: {\n visible: false\n }\n }\n },\n legend: {\n visible: false\n },\n transitions: false,\n\n pointWidth: 5,\n\n panes: [ { clip: false } ]\n});\n\nexport default Sparkline;","export { default as Navigator } from './stock/navigator';\nexport { default as NavigatorHint } from './stock/navigator-hint';\nexport { default as StockChart } from './stock/stock-chart';\n\nimport * as constants from './stock/constants';\n\nexport { constants };","const NAVIGATOR_PANE = \"_navigator\";\nconst NAVIGATOR_AXIS = NAVIGATOR_PANE;\n\nexport { NAVIGATOR_AXIS, NAVIGATOR_PANE };","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport { interpolateValue, elementStyles } from '../common';\n\nclass FadeOutAnimation extends draw.Animation {\n\n setup() {\n this._initialOpacity = parseFloat(elementStyles(this.element, 'opacity').opacity);\n }\n\n step(pos) {\n elementStyles(this.element, {\n opacity: String(interpolateValue(this._initialOpacity, 0, pos))\n });\n }\n\n abort() {\n super.abort();\n elementStyles(this.element, {\n display: 'none',\n opacity: String(this._initialOpacity)\n });\n }\n\n cancel() {\n super.abort();\n elementStyles(this.element, {\n opacity: String(this._initialOpacity)\n });\n }\n}\n\nexport default FadeOutAnimation;","import { Class, deepExtend, elementStyles, getTemplate, setDefaultOptions } from '../common';\nimport { toDate, toTime } from '../date-utils';\nimport FadeOutAnimation from './fade-out-animation';\n\nfunction createDiv(className, style) {\n const div = document.createElement(\"div\");\n div.className = className;\n if (style) {\n div.style.cssText = style;\n }\n\n return div;\n}\n\nclass NavigatorHint extends Class {\n constructor(container, chartService, options) {\n super();\n\n this.options = deepExtend({}, this.options, options);\n this.container = container;\n this.chartService = chartService;\n\n const padding = elementStyles(container, [ \"paddingLeft\", \"paddingTop\" ]);\n this.chartPadding = {\n top: padding.paddingTop,\n left: padding.paddingLeft\n };\n\n this.createElements();\n container.appendChild(this.element);\n }\n\n createElements() {\n const element = this.element = createDiv('k-navigator-hint', 'display: none; position: absolute; top: 1px; left: 1px;');\n const tooltip = this.tooltip = createDiv('k-tooltip k-chart-tooltip');\n const scroll = this.scroll = createDiv('k-scroll');\n\n tooltip.innerHTML = ' ';\n\n element.appendChild(tooltip);\n element.appendChild(scroll);\n }\n\n show(from, to, bbox) {\n const { element, options, scroll, tooltip } = this;\n const middle = toDate(toTime(from) + toTime(to - from) / 2);\n const scrollWidth = bbox.width() * 0.4;\n const minPos = bbox.center().x - scrollWidth;\n const maxPos = bbox.center().x;\n const posRange = maxPos - minPos;\n const range = options.max - options.min;\n const scale = posRange / range;\n const offset = middle - options.min;\n let text = this.chartService.intl.format(options.format, from, to);\n const template = getTemplate(options);\n\n this.clearHideTimeout();\n\n if (!this._visible) {\n elementStyles(element, {\n visibility: 'hidden',\n display: 'block'\n });\n this._visible = true;\n }\n\n if (template) {\n text = template({\n from: from,\n to: to\n });\n }\n\n tooltip.innerHTML = text;\n elementStyles(tooltip, {\n left: bbox.center().x - tooltip.offsetWidth / 2,\n top: bbox.y1\n });\n\n const tooltipStyle = elementStyles(tooltip, [ 'marginTop', 'borderTopWidth', 'height' ]);\n\n elementStyles(scroll, {\n width: scrollWidth,\n left: minPos + offset * scale,\n top: bbox.y1 + tooltipStyle.marginTop + tooltipStyle.borderTopWidth + tooltipStyle.height / 2\n });\n\n elementStyles(element, {\n visibility: 'visible'\n });\n }\n\n clearHideTimeout() {\n if (this._hideTimeout) {\n clearTimeout(this._hideTimeout);\n }\n\n if (this._hideAnimation) {\n this._hideAnimation.cancel();\n }\n }\n\n hide() {\n this.clearHideTimeout();\n\n this._hideTimeout = setTimeout(() => {\n this._visible = false;\n this._hideAnimation = new FadeOutAnimation(this.element);\n this._hideAnimation.setup();\n this._hideAnimation.play();\n }, this.options.hideDelay);\n }\n\n destroy() {\n this.clearHideTimeout();\n if (this.container) {\n this.container.removeChild(this.element);\n }\n delete this.container;\n delete this.chartService;\n delete this.element;\n delete this.tooltip;\n delete this.scroll;\n }\n}\n\nsetDefaultOptions(NavigatorHint, {\n format: \"{0:d} - {1:d}\",\n hideDelay: 500\n});\n\nexport default NavigatorHint;","import NavigatorHint from './navigator-hint';\nimport { Selection, filterSeriesByType } from '../chart';\nimport { DRAG, DRAG_END, EQUALLY_SPACED_SERIES, ZOOM, ZOOM_END } from '../chart/constants';\nimport { DateCategoryAxis } from '../core';\nimport { addDuration, parseDate, toDate, toTime } from '../date-utils';\nimport { Class, deepExtend, defined, getTemplate, InstanceObserver, last, limitValue, valueOrDefault } from '../common';\nimport { NAVIGATOR_AXIS, NAVIGATOR_PANE } from './constants';\n\nconst ZOOM_ACCELERATION = 3;\n\nclass Navigator extends Class {\n constructor(chart) {\n super();\n\n this.chart = chart;\n const options = this.options = deepExtend({}, this.options, chart.options.navigator);\n const select = options.select;\n if (select) {\n select.from = this.parseDate(select.from);\n select.to = this.parseDate(select.to);\n }\n\n if (!defined(options.hint.visible)) {\n options.hint.visible = options.visible;\n }\n\n this.chartObserver = new InstanceObserver(this, {\n [DRAG]: '_drag',\n [DRAG_END]: '_dragEnd',\n [ZOOM]: '_zoom',\n [ZOOM_END]: '_zoomEnd'\n });\n chart.addObserver(this.chartObserver);\n }\n\n parseDate(value) {\n return parseDate(this.chart.chartService.intl, value);\n }\n\n clean() {\n if (this.selection) {\n this.selection.destroy();\n this.selection = null;\n }\n\n if (this.hint) {\n this.hint.destroy();\n this.hint = null;\n }\n }\n\n destroy() {\n if (this.chart) {\n this.chart.removeObserver(this.chartObserver);\n delete this.chart;\n }\n\n this.clean();\n }\n\n redraw() {\n this._redrawSelf();\n this.initSelection();\n }\n\n initSelection() {\n const { chart, options } = this;\n const axis = this.mainAxis();\n const { min, max } = axis.roundedRange();\n const { from, to, mousewheel } = options.select;\n const axisClone = clone(axis);\n\n if (axis.categoriesCount() === 0) {\n return;\n }\n\n this.clean();\n\n // \"Freeze\" the selection axis position until the next redraw\n axisClone.box = axis.box;\n\n this.selection = new Selection(chart, axisClone, {\n min: min,\n max: max,\n from: from || min,\n to: to || max,\n mousewheel: valueOrDefault(mousewheel, { zoom: \"left\" }),\n visible: options.visible\n }, new InstanceObserver(this, {\n selectStart: '_selectStart',\n select: '_select',\n selectEnd: '_selectEnd'\n }));\n\n if (options.hint.visible) {\n this.hint = new NavigatorHint(chart.element, chart.chartService, {\n min: min,\n max: max,\n template: getTemplate(options.hint),\n format: options.hint.format\n });\n }\n }\n\n setRange() {\n const plotArea = this.chart._createPlotArea(true);\n const axis = plotArea.namedCategoryAxes[NAVIGATOR_AXIS];\n\n const { min, max } = axis.roundedRange();\n\n const select = this.options.select || {};\n let from = select.from || min;\n if (from < min) {\n from = min;\n }\n\n let to = select.to || max;\n if (to > max) {\n to = max;\n }\n\n this.options.select = deepExtend({}, select, {\n from: from,\n to: to\n });\n\n this.filterAxes();\n }\n\n _redrawSelf(silent) {\n const plotArea = this.chart._plotArea;\n\n if (plotArea) {\n plotArea.redraw(last(plotArea.panes), silent);\n }\n }\n\n redrawSlaves() {\n const chart = this.chart;\n const plotArea = chart._plotArea;\n const slavePanes = plotArea.panes.slice(0, -1);\n\n // Update the original series and categoryAxis before partial refresh.\n plotArea.srcSeries = chart.options.series;\n plotArea.options.categoryAxis = chart.options.categoryAxis;\n plotArea.clearSeriesPointsCache();\n\n plotArea.redraw(slavePanes);\n }\n\n _drag(e) {\n const { chart, selection } = this;\n const coords = chart._eventCoordinates(e.originalEvent);\n const navigatorAxis = this.mainAxis();\n const naviRange = navigatorAxis.roundedRange();\n const inNavigator = navigatorAxis.pane.box.containsPoint(coords);\n const axis = chart._plotArea.categoryAxis;\n const range = e.axisRanges[axis.options.name];\n const select = this.options.select;\n let duration;\n\n if (!range || inNavigator || !selection) {\n return;\n }\n\n if (select.from && select.to) {\n duration = toTime(select.to) - toTime(select.from);\n } else {\n duration = toTime(selection.options.to) - toTime(selection.options.from);\n }\n\n const from = toDate(limitValue(\n toTime(range.min),\n naviRange.min, toTime(naviRange.max) - duration\n ));\n\n const to = toDate(limitValue(\n toTime(from) + duration,\n toTime(naviRange.min) + duration, naviRange.max\n ));\n\n this.options.select = { from: from, to: to };\n\n if (this.options.liveDrag) {\n this.filterAxes();\n this.redrawSlaves();\n }\n\n selection.set(from, to);\n\n this.showHint(from, to);\n }\n\n _dragEnd() {\n this.filterAxes();\n this.filter();\n this.redrawSlaves();\n\n if (this.hint) {\n this.hint.hide();\n }\n }\n\n readSelection() {\n const { selection: { options: { from, to } }, options: { select } } = this;\n\n select.from = from;\n select.to = to;\n }\n\n filterAxes() {\n const { options: { select = { } }, chart } = this;\n const allAxes = chart.options.categoryAxis;\n const { from, to } = select;\n\n for (let idx = 0; idx < allAxes.length; idx++) {\n const axis = allAxes[idx];\n if (axis.pane !== NAVIGATOR_PANE) {\n axis.min = from;\n axis.max = to;\n }\n }\n }\n\n filter() {\n const { chart, options: { select } } = this;\n\n if (!chart.requiresHandlers([ \"navigatorFilter\" ])) {\n return;\n }\n\n const mainAxis = this.mainAxis();\n const args = {\n from: select.from,\n to: select.to\n };\n\n if (mainAxis.options.type !== 'category') {\n const axisOptions = new DateCategoryAxis(deepExtend({\n baseUnit: \"fit\"\n }, chart.options.categoryAxis[0], {\n categories: [ select.from, select.to ]\n }), chart.chartService).options;\n\n args.from = addDuration(axisOptions.min, -axisOptions.baseUnitStep, axisOptions.baseUnit);\n args.to = addDuration(axisOptions.max, axisOptions.baseUnitStep, axisOptions.baseUnit);\n }\n\n this.chart.trigger(\"navigatorFilter\", args);\n }\n\n _zoom(e) {\n const { chart: { _plotArea: { categoryAxis: axis } }, selection, options: { select, liveDrag } } = this;\n const mainAxis = this.mainAxis();\n let delta = e.delta;\n\n if (!selection) {\n return;\n }\n\n const fromIx = mainAxis.categoryIndex(selection.options.from);\n const toIx = mainAxis.categoryIndex(selection.options.to);\n const coords = this.chart._eventCoordinates(e.originalEvent);\n\n e.originalEvent.preventDefault();\n\n if (Math.abs(delta) > 1) {\n delta *= ZOOM_ACCELERATION;\n }\n\n if (toIx - fromIx > 1) {\n selection.zoom(delta, coords);\n this.readSelection();\n } else {\n axis.options.min = select.from;\n select.from = axis.scaleRange(-e.delta * this.chart._mousewheelZoomRate(), coords).min;\n }\n\n if (liveDrag) {\n this.filterAxes();\n this.redrawSlaves();\n }\n\n selection.set(select.from, select.to);\n\n this.showHint(this.options.select.from, this.options.select.to);\n }\n\n _zoomEnd(e) {\n this._dragEnd(e);\n }\n\n showHint(from, to) {\n const plotArea = this.chart._plotArea;\n\n if (this.hint) {\n this.hint.show(from, to, plotArea.backgroundBox());\n }\n }\n\n _selectStart(e) {\n return this.chart._selectStart(e);\n }\n\n _select(e) {\n this.showHint(e.from, e.to);\n\n return this.chart._select(e);\n }\n\n _selectEnd(e) {\n if (this.hint) {\n this.hint.hide();\n }\n\n this.readSelection();\n this.filterAxes();\n this.filter();\n this.redrawSlaves();\n\n return this.chart._selectEnd(e);\n }\n\n mainAxis() {\n const plotArea = this.chart._plotArea;\n\n if (plotArea) {\n return plotArea.namedCategoryAxes[NAVIGATOR_AXIS];\n }\n }\n\n select(from, to) {\n const select = this.options.select;\n\n if (from && to) {\n select.from = this.parseDate(from);\n select.to = this.parseDate(to);\n\n this.filterAxes();\n this.filter();\n this.redrawSlaves();\n\n this.selection.set(from, to);\n }\n\n return {\n from: select.from,\n to: select.to\n };\n }\n\n static setup(options = {}, themeOptions = {}) {\n if (options.__navi) {\n return;\n }\n options.__navi = true;\n\n const naviOptions = deepExtend({}, themeOptions.navigator, options.navigator);\n const panes = options.panes = [].concat(options.panes);\n const paneOptions = deepExtend({}, naviOptions.pane, { name: NAVIGATOR_PANE });\n\n if (!naviOptions.visible) {\n paneOptions.visible = false;\n paneOptions.height = 0.1;\n }\n\n panes.push(paneOptions);\n\n Navigator.attachAxes(options, naviOptions);\n Navigator.attachSeries(options, naviOptions, themeOptions);\n }\n\n static attachAxes(options, naviOptions) {\n const series = naviOptions.series || [];\n const categoryAxes = options.categoryAxis = [].concat(options.categoryAxis);\n const valueAxes = options.valueAxis = [].concat(options.valueAxis);\n\n const equallySpacedSeries = filterSeriesByType(series, EQUALLY_SPACED_SERIES);\n const justifyAxis = equallySpacedSeries.length === 0;\n\n const base = deepExtend({\n type: \"date\",\n pane: NAVIGATOR_PANE,\n roundToBaseUnit: !justifyAxis,\n justified: justifyAxis,\n _collapse: false,\n majorTicks: { visible: true },\n tooltip: { visible: false },\n labels: { step: 1 },\n autoBind: naviOptions.autoBindElements,\n autoBaseUnitSteps: {\n minutes: [ 1 ],\n hours: [ 1, 2 ],\n days: [ 1, 2 ],\n weeks: [],\n months: [ 1 ],\n years: [ 1 ]\n }\n });\n const user = naviOptions.categoryAxis;\n\n categoryAxes.push(\n deepExtend({}, base, {\n maxDateGroups: 200\n }, user, {\n name: NAVIGATOR_AXIS,\n title: null,\n baseUnit: \"fit\",\n baseUnitStep: \"auto\",\n labels: { visible: false },\n majorTicks: { visible: false }\n }), deepExtend({}, base, user, {\n name: NAVIGATOR_AXIS + \"_labels\",\n maxDateGroups: 20,\n baseUnitStep: \"auto\",\n labels: { position: \"\" },\n plotBands: [],\n autoBaseUnitSteps: {\n minutes: []\n },\n _overlap: true\n }), deepExtend({}, base, user, {\n name: NAVIGATOR_AXIS + \"_ticks\",\n maxDateGroups: 200,\n majorTicks: {\n width: 0.5\n },\n plotBands: [],\n title: null,\n labels: { visible: false, mirror: true },\n _overlap: true\n })\n );\n\n valueAxes.push(deepExtend({\n name: NAVIGATOR_AXIS,\n pane: NAVIGATOR_PANE,\n majorGridLines: {\n visible: false\n },\n visible: false\n }, naviOptions.valueAxis));\n }\n\n static attachSeries(options, naviOptions, themeOptions) {\n const series = options.series = options.series || [];\n const navigatorSeries = [].concat(naviOptions.series || []);\n const seriesColors = themeOptions.seriesColors;\n const defaults = naviOptions.seriesDefaults;\n\n for (let idx = 0; idx < navigatorSeries.length; idx++) {\n series.push(\n deepExtend({\n color: seriesColors[idx % seriesColors.length],\n categoryField: naviOptions.dateField,\n visibleInLegend: false,\n tooltip: {\n visible: false\n }\n }, defaults, navigatorSeries[idx], {\n axis: NAVIGATOR_AXIS,\n categoryAxis: NAVIGATOR_AXIS,\n autoBind: naviOptions.autoBindElements\n })\n );\n }\n }\n}\n\nfunction ClonedObject() { }\nfunction clone(obj) {\n ClonedObject.prototype = obj;\n return new ClonedObject();\n}\n\nexport default Navigator;\n","import { Chart } from '../chart';\n\nimport Navigator from './navigator';\nimport { DEFAULT_WIDTH } from '../common/constants';\nimport { addClass, deepExtend, elementSize, grep, setDefaultOptions } from '../common';\nimport { NAVIGATOR_AXIS, NAVIGATOR_PANE } from './constants';\n\nconst AUTO_CATEGORY_WIDTH = 28;\n\nclass StockChart extends Chart {\n\n applyDefaults(options, themeOptions) {\n const width = elementSize(this.element).width || DEFAULT_WIDTH;\n let theme = themeOptions;\n\n const stockDefaults = {\n seriesDefaults: {\n categoryField: options.dateField\n },\n axisDefaults: {\n categoryAxis: {\n name: \"default\",\n majorGridLines: {\n visible: false\n },\n labels: {\n step: 2\n },\n majorTicks: {\n visible: false\n },\n maxDateGroups: Math.floor(width / AUTO_CATEGORY_WIDTH)\n }\n }\n };\n\n if (theme) {\n theme = deepExtend({}, theme, stockDefaults);\n }\n\n Navigator.setup(options, theme);\n\n super.applyDefaults(options, theme);\n }\n\n _setElementClass(element) {\n addClass(element, 'k-chart k-stockchart');\n }\n\n setOptions(options) {\n this.destroyNavigator();\n super.setOptions(options);\n }\n\n noTransitionsRedraw() {\n const transitions = this.options.transitions;\n\n this.options.transitions = false;\n this._fullRedraw();\n this.options.transitions = transitions;\n }\n\n _resize() {\n this.noTransitionsRedraw();\n }\n\n _redraw() {\n const navigator = this.navigator;\n\n if (!this._dirty() && navigator && navigator.options.partialRedraw) {\n navigator.redrawSlaves();\n } else {\n this._fullRedraw();\n }\n }\n\n _dirty() {\n const options = this.options;\n const series = [].concat(options.series, options.navigator.series);\n const seriesCount = grep(series, function(s) { return s && s.visible; }).length;\n const dirty = this._seriesCount !== seriesCount;\n this._seriesCount = seriesCount;\n\n return dirty;\n }\n\n _fullRedraw() {\n let navigator = this.navigator;\n\n if (!navigator) {\n navigator = this.navigator = new Navigator(this);\n this.trigger(\"navigatorCreated\", { navigator: navigator });\n }\n\n navigator.clean();\n navigator.setRange();\n\n super._redraw();\n\n navigator.initSelection();\n }\n\n _trackSharedTooltip(coords) {\n const plotArea = this._plotArea;\n const pane = plotArea.paneByPoint(coords);\n\n if (pane && pane.options.name === NAVIGATOR_PANE) {\n this._unsetActivePoint();\n } else {\n super._trackSharedTooltip(coords);\n }\n }\n\n bindCategories() {\n super.bindCategories();\n this.copyNavigatorCategories();\n }\n\n copyNavigatorCategories() {\n const definitions = [].concat(this.options.categoryAxis);\n let categories;\n\n for (let axisIx = 0; axisIx < definitions.length; axisIx++) {\n const axis = definitions[axisIx];\n if (axis.name === NAVIGATOR_AXIS) {\n categories = axis.categories;\n } else if (categories && axis.pane === NAVIGATOR_PANE) {\n axis.categories = categories;\n }\n }\n }\n\n destroyNavigator() {\n if (this.navigator) {\n this.navigator.destroy();\n this.navigator = null;\n }\n }\n\n destroy() {\n this.destroyNavigator();\n super.destroy();\n }\n\n _stopChartHandlers(e) {\n const coords = this._eventCoordinates(e);\n const pane = this._plotArea.paneByPoint(coords);\n\n return super._stopChartHandlers(e) || (pane && pane.options.name === NAVIGATOR_PANE);\n }\n\n _toggleDragZoomEvents() {\n if (!this._dragZoomEnabled) {\n this.element.style.touchAction = \"none\";\n\n this._dragZoomEnabled = true;\n }\n }\n}\n\nsetDefaultOptions(StockChart, {\n dateField: \"date\",\n axisDefaults: {\n categoryAxis: {\n type: \"date\",\n baseUnit: \"fit\",\n justified: true\n },\n valueAxis: {\n narrowRange: true,\n labels: {\n format: \"C\"\n }\n }\n },\n navigator: {\n select: {},\n seriesDefaults: {\n markers: {\n visible: false\n },\n tooltip: {\n visible: true\n },\n line: {\n width: 2\n }\n },\n hint: {},\n visible: true\n },\n tooltip: {\n visible: true\n },\n legend: {\n visible: false\n }\n});\n\nexport default StockChart;","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\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\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\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\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\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\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\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\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\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';\nimport { normalizeFilters } from './filtering/filter.operators';\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)(normalizeFilters(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\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) => {\n value = isPresent(value) ? value : 0;\n state += value;\n },\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';\nimport { getDate } from './get-date';\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 date = getDate(date);\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 as align } from './alignment/align';\nexport { default as vAlign } from './alignment/v-align';\nexport { default as stack } from './alignment/stack';\nexport { default as vStack } from './alignment/v-stack';\nexport { default as wrap } from './alignment/wrap';\nexport { default as vWrap } from './alignment/v-wrap';\nexport { default as fit } from './alignment/fit';","import translateToPoint from './translate-to-point';\nimport alignStart from './align-start';\n\nexport default function alignElements(elements, rect, alignment, axis, sizeField) {\n for (let idx = 0; idx < elements.length; idx++) {\n const bbox = elements[idx].clippedBBox();\n if (bbox) {\n const point = bbox.origin.clone();\n point[axis] = alignStart(bbox.size[sizeField], rect, alignment || \"start\", axis, sizeField);\n translateToPoint(point, bbox, elements[idx]);\n }\n }\n}","\nexport default function alignStartReverse(size, rect, align, axis, sizeField) {\n let start;\n if (align === \"start\") {\n start = rect.origin[axis] + rect.size[sizeField] - size;\n } else if (align === \"end\") {\n start = rect.origin[axis];\n } else {\n start = rect.origin[axis] + (rect.size[sizeField] - size) / 2;\n }\n\n return start;\n}","\nexport default function alignStart(size, rect, align, axis, sizeField) {\n let start;\n if (align === \"start\") {\n start = rect.origin[axis];\n } else if (align === \"end\") {\n start = rect.origin[axis] + rect.size[sizeField] - size;\n } else {\n start = rect.origin[axis] + (rect.size[sizeField] - size) / 2;\n }\n\n return start;\n}","\nimport alignElements from './align-elements';\n\nexport default function align(elements, rect, alignment) {\n alignElements(elements, rect, alignment, \"x\", \"width\");\n}","export default function createStackElements(elements) {\n const stackElements = [];\n\n for (let idx = 0; idx < elements.length; idx++) {\n let element = elements[idx];\n let bbox = element.clippedBBox();\n if (bbox) {\n stackElements.push({\n element: element,\n bbox: bbox\n });\n }\n }\n\n return stackElements;\n}","import createTransform from '../geometry/transform';\n\nexport default function fit(element, rect) {\n const bbox = element.clippedBBox();\n if (bbox) {\n const elementSize = bbox.size;\n const rectSize = rect.size;\n if (rectSize.width < elementSize.width || rectSize.height < elementSize.height) {\n const scale = Math.min(rectSize.width / elementSize.width, rectSize.height / elementSize.height);\n const transform = element.transform() || createTransform();\n transform.scale(scale, scale);\n element.transform(transform);\n }\n }\n}","import Point from '../geometry/point';\nimport translateToPoint from './translate-to-point';\n\nexport default function stackElements(elements, stackAxis, otherAxis, sizeField) {\n if (elements.length > 1) {\n const origin = new Point();\n let previousBBox = elements[0].bbox;\n\n for (let idx = 1; idx < elements.length; idx++) {\n let element = elements[idx].element;\n let bbox = elements[idx].bbox;\n origin[stackAxis] = previousBBox.origin[stackAxis] + previousBBox.size[sizeField];\n origin[otherAxis] = bbox.origin[otherAxis];\n translateToPoint(origin, bbox, element);\n bbox.origin[stackAxis] = origin[stackAxis];\n previousBBox = bbox;\n }\n }\n}","import stackElements from './stack-elements';\nimport createStackElements from './create-stack-elements';\n\nexport default function stack(elements) {\n stackElements(createStackElements(elements), \"x\", \"y\", \"width\");\n}","import createTransform from '../geometry/transform';\n\nexport default function translateToPoint(point, bbox, element) {\n const transofrm = element.transform() || createTransform();\n const matrix = transofrm.matrix();\n matrix.e += point.x - bbox.origin.x;\n matrix.f += point.y - bbox.origin.y;\n\n transofrm.matrix(matrix);\n element.transform(transofrm);\n}","import alignElements from './align-elements';\n\nexport default function vAlign(elements, rect, alignment) {\n alignElements(elements, rect, alignment, \"y\", \"height\");\n}","import stackElements from './stack-elements';\nimport createStackElements from './create-stack-elements';\n\nexport default function vStack(elements) {\n stackElements(createStackElements(elements), \"y\", \"x\", \"height\");\n}","import wrapElements from './wrap-elements';\n\nexport default function vWrap(elements, rect) {\n return wrapElements(elements, rect, \"y\", \"x\", \"height\");\n}","import translateToPoint from './translate-to-point';\nimport stackElements from './stack-elements';\n\nfunction getStacks(elements, rect, sizeField) {\n const maxSize = rect.size[sizeField];\n const stacks = [];\n let stack = [];\n let stackSize = 0;\n let element, bbox;\n\n const addElementToStack = function() {\n stack.push({\n element: element,\n bbox: bbox\n });\n };\n\n for (let idx = 0; idx < elements.length; idx++) {\n element = elements[idx];\n\n bbox = element.clippedBBox();\n if (bbox) {\n let size = bbox.size[sizeField];\n if (stackSize + size > maxSize) {\n if (stack.length) {\n stacks.push(stack);\n stack = [];\n addElementToStack();\n stackSize = size;\n } else {\n addElementToStack();\n stacks.push(stack);\n stack = [];\n stackSize = 0;\n }\n } else {\n addElementToStack();\n stackSize += size;\n }\n }\n }\n\n if (stack.length) {\n stacks.push(stack);\n }\n\n return stacks;\n}\n\nexport default function wrapElements(elements, rect, axis, otherAxis, sizeField) {\n const stacks = getStacks(elements, rect, sizeField);\n const origin = rect.origin.clone();\n const result = [];\n\n for (let idx = 0; idx < stacks.length; idx++) {\n let stack = stacks[idx];\n let startElement = stack[0];\n origin[otherAxis] = startElement.bbox.origin[otherAxis];\n translateToPoint(origin, startElement.bbox, startElement.element);\n startElement.bbox.origin[axis] = origin[axis];\n stackElements(stack, axis, otherAxis, sizeField);\n result.push([]);\n for (let elementIdx = 0; elementIdx < stack.length; elementIdx++) {\n result[idx].push(stack[elementIdx].element);\n }\n }\n return result;\n}","import wrapElements from './wrap-elements';\n\nexport default function wrap(elements, rect) {\n return wrapElements(elements, rect, \"x\", \"y\", \"width\");\n}","export { default as Animation } from './animations/animation';\nexport { default as AnimationFactory } from './animations/animation-factory';","import { Class } from '../common';\n\nlet instance;\n\nclass AnimationFactory extends Class {\n static get current() {\n if (!instance) {\n instance = new AnimationFactory();\n }\n\n return instance;\n }\n\n constructor() {\n super();\n\n this._items = [];\n }\n\n register(name, type) {\n this._items.push({\n name: name,\n type: type\n });\n }\n\n create(element, options) {\n const items = this._items;\n let match;\n\n if (options && options.type) {\n const type = options.type.toLowerCase();\n for (let i = 0; i < items.length; i++) {\n if (items[i].name.toLowerCase() === type) {\n match = items[i];\n break;\n }\n }\n }\n\n if (match) {\n return new match.type(element, options);\n }\n }\n}\n\nexport default AnimationFactory;\n","import * as easingFunctions from './easing-functions';\nimport { limitValue, now } from '../util';\nimport { animationFrame, Class } from '../common';\nimport AnimationFactory from './animation-factory';\n\nclass Animation extends Class {\n static create(type, element, options) {\n return AnimationFactory.current.create(type, element, options);\n }\n\n get options() {\n return this._options || {\n duration: 500,\n easing: \"swing\"\n };\n }\n\n set options(value) {\n this._options = value;\n }\n\n constructor(element, options) {\n super();\n\n this.options = Object.assign({}, this.options, options);\n this.element = element;\n }\n\n setup() {}\n step() {}\n\n play() {\n const options = this.options;\n const { duration, delay = 0 } = options;\n const easing = easingFunctions[options.easing];\n const start = now() + delay;\n const finish = start + duration;\n\n if (duration === 0) {\n this.step(1);\n this.abort();\n } else {\n setTimeout(() => {\n const loop = () => {\n if (this._stopped) {\n return;\n }\n\n const wallTime = now();\n\n const time = limitValue(wallTime - start, 0, duration);\n const position = time / duration;\n const easingPosition = easing(position, time, 0, 1, duration);\n\n this.step(easingPosition);\n\n if (wallTime < finish) {\n animationFrame(loop);\n } else {\n this.abort();\n }\n };\n\n loop();\n }, delay);\n }\n }\n\n abort() {\n this._stopped = true;\n }\n\n destroy() {\n this.abort();\n }\n}\n\nexport default Animation;\n","export function swing(position) {\n return 0.5 - Math.cos(position * Math.PI) / 2;\n}\n\nexport function linear(position) {\n return position;\n}\n\nexport function easeOutElastic(position, time, start, diff) {\n let s = 1.70158,\n p = 0,\n a = diff;\n\n if (position === 0) {\n return start;\n }\n\n if (position === 1) {\n return start + diff;\n }\n\n if (!p) {\n p = 0.5;\n }\n\n if (a < Math.abs(diff)) {\n a = diff;\n s = p / 4;\n } else {\n s = p / (2 * Math.PI) * Math.asin(diff / a);\n }\n\n return a * Math.pow(2, -10 * position) *\n Math.sin((Number(position) - s) * (1.1 * Math.PI) / p) + diff + start;\n}\n","export { default as Surface } from './canvas/surface';\n\nexport { default as RootNode } from './canvas/root-node';\nexport { default as Node } from './canvas/node';\nexport { default as GroupNode } from './canvas/group-node';\nexport { default as ArcNode } from './canvas/arc-node';\nexport { default as CircleNode } from './canvas/circle-node';\nexport { default as RectNode } from './canvas/rect-node';\nexport { default as ImageNode } from './canvas/image-node';\nexport { default as TextNode } from './canvas/text-node';\nexport { default as PathNode } from './canvas/path-node';\nexport { default as MultiPathNode } from './canvas/multi-path-node';","import PathNode from './path-node';\nimport renderPath from './utils/render-path';\n\nclass ArcNode extends PathNode {\n renderPoints(ctx) {\n const path = this.srcElement.toPath();\n renderPath(ctx, path);\n }\n}\n\nexport default ArcNode;\n","import PathNode from './path-node';\n\nclass CircleNode extends PathNode {\n renderPoints(ctx) {\n const { center, radius } = this.srcElement.geometry();\n\n ctx.arc(center.x, center.y, radius, 0, Math.PI * 2);\n }\n}\n\nexport default CircleNode;\n","import Surface from './surface';\nimport { transform } from '../geometry';\nimport Group from '../shapes/group';\n\nexport default function exportImage(group, options) {\n const defaults = {\n width: \"800px\", height: \"600px\",\n cors: \"Anonymous\"\n };\n\n let exportRoot = group;\n const bbox = group.clippedBBox();\n\n\n if (bbox) {\n const origin = bbox.getOrigin();\n exportRoot = new Group();\n exportRoot.transform(transform().translate(-origin.x, -origin.y));\n exportRoot.children.push(group);\n\n const size = bbox.getSize();\n defaults.width = size.width + \"px\";\n defaults.height = size.height + \"px\";\n }\n\n const surfaceOptions = Object.assign(defaults, options);\n\n const container = document.createElement(\"div\");\n const style = container.style;\n\n style.display = \"none\";\n style.width = surfaceOptions.width;\n style.height = surfaceOptions.height;\n document.body.appendChild(container);\n\n const surface = new Surface(container, surfaceOptions);\n surface.suspendTracking();\n surface.draw(exportRoot);\n\n const promise = surface.image();\n const destroy = () => {\n surface.destroy();\n document.body.removeChild(container);\n };\n promise.then(destroy, destroy);\n\n return promise;\n}","import Node from './node';\nimport traversable from '../mixins/traversable';\n\n\nclass GroupNode extends traversable(Node, \"childNodes\") {\n renderTo(ctx) {\n if (!this.visible()) {\n return;\n }\n\n ctx.save();\n\n this.setTransform(ctx);\n this.setClip(ctx);\n this.setOpacity(ctx);\n\n const childNodes = this.childNodes;\n for (let i = 0; i < childNodes.length; i++) {\n let child = childNodes[i];\n if (child.visible()) {\n child.renderTo(ctx);\n }\n }\n\n ctx.restore();\n }\n}\n\nexport default GroupNode;\n","import PathNode from './path-node';\nimport { createPromise } from '../util';\n\nclass ImageNode extends PathNode {\n constructor(srcElement, cors) {\n super(srcElement);\n\n this.onLoad = this.onLoad.bind(this);\n this.onError = this.onError.bind(this);\n\n this.loading = createPromise();\n\n const img = this.img = new Image();\n\n if (cors && !(/^data:/i.test(srcElement.src()))) {\n img.crossOrigin = cors;\n }\n\n img.src = srcElement.src();\n\n if (img.complete) {\n this.onLoad();\n } else {\n img.onload = this.onLoad;\n img.onerror = this.onError;\n }\n }\n\n renderTo(ctx) {\n if (this.loading.state() === \"resolved\") {\n ctx.save();\n\n this.setTransform(ctx);\n this.setClip(ctx);\n\n this.drawImage(ctx);\n\n ctx.restore();\n }\n }\n\n optionsChange(e) {\n if (e.field === \"src\") {\n this.loading = createPromise();\n this.img.src = this.srcElement.src();\n } else {\n super.optionsChange(e);\n }\n }\n\n onLoad() {\n this.loading.resolve();\n this.invalidate();\n }\n\n onError() {\n this.loading.reject(new Error(\n \"Unable to load image '\" + this.img.src +\n \"'. Check for connectivity and verify CORS headers.\"\n ));\n }\n\n drawImage(ctx) {\n const rect = this.srcElement.rect();\n const topLeft = rect.topLeft();\n\n ctx.drawImage(\n this.img, topLeft.x, topLeft.y, rect.width(), rect.height()\n );\n }\n}\n\nexport default ImageNode;\n","import PathNode from './path-node';\nimport renderPath from './utils/render-path';\n\nclass MultiPathNode extends PathNode {\n renderPoints(ctx) {\n const paths = this.srcElement.paths;\n for (let i = 0; i < paths.length; i++) {\n renderPath(ctx, paths[i]);\n }\n }\n}\n\nexport default MultiPathNode;\n","const NODE_MAP = {};\n\nexport default NODE_MAP;","import BaseNode from '../core/base-node';\nimport NODE_MAP from './node-map';\nimport renderPath from './utils/render-path';\nimport { defined } from '../util';\n\nclass Node extends BaseNode {\n constructor(srcElement) {\n super(srcElement);\n if (srcElement) {\n this.initClip();\n }\n }\n\n initClip() {\n const clip = this.srcElement.clip();\n if (clip) {\n this.clip = clip;\n clip.addObserver(this);\n }\n }\n\n clear() {\n if (this.srcElement) {\n this.srcElement.removeObserver(this);\n }\n\n this.clearClip();\n\n super.clear();\n }\n\n clearClip() {\n if (this.clip) {\n this.clip.removeObserver(this);\n delete this.clip;\n }\n }\n\n setClip(ctx) {\n if (this.clip) {\n ctx.beginPath();\n renderPath(ctx, this.clip);\n ctx.clip();\n }\n }\n\n optionsChange(e) {\n if (e.field === \"clip\") {\n this.clearClip();\n this.initClip();\n }\n\n super.optionsChange(e);\n }\n\n setTransform(ctx) {\n if (this.srcElement) {\n const transform = this.srcElement.transform();\n if (transform) {\n ctx.transform.apply(ctx, transform.matrix().toArray(6));\n }\n }\n }\n\n loadElements(elements, pos, cors) {\n for (let i = 0; i < elements.length; i++) {\n let srcElement = elements[i];\n let children = srcElement.children;\n\n let childNode = new NODE_MAP[srcElement.nodeType](srcElement, cors);\n\n if (children && children.length > 0) {\n childNode.load(children, pos, cors);\n }\n\n if (defined(pos)) {\n this.insertAt(childNode, pos);\n } else {\n this.append(childNode);\n }\n }\n }\n\n load(elements, pos, cors) {\n this.loadElements(elements, pos, cors);\n\n this.invalidate();\n }\n\n setOpacity(ctx) {\n if (this.srcElement) {\n const opacity = this.srcElement.opacity();\n if (defined(opacity)) {\n this.globalAlpha(ctx, opacity);\n }\n }\n }\n\n globalAlpha(ctx, value) {\n let opactity = value;\n if (opactity && ctx.globalAlpha) {\n opactity *= ctx.globalAlpha;\n }\n ctx.globalAlpha = opactity;\n }\n\n visible() {\n const src = this.srcElement;\n return !src || (src && src.options.visible !== false);\n }\n}\n\nexport default Node;","import Node from './node';\nimport { parseColor } from '../common';\nimport { isTransparent, valueOrDefault } from '../util';\nimport LinearGradient from '../gradients/linear-gradient';\nimport RadialGradient from '../gradients/radial-gradient';\nimport { DASH_ARRAYS, SOLID, BUTT } from '../core/constants';\nimport renderPath from './utils/render-path';\n\nfunction addGradientStops(gradient, stops) {\n for (let idx = 0; idx < stops.length; idx++) {\n let stop = stops[idx];\n let color = parseColor(stop.color());\n\n color.a *= stop.opacity();\n\n gradient.addColorStop(stop.offset(), color.toCssRgba());\n }\n}\n\nclass PathNode extends Node {\n\n renderTo(ctx) {\n ctx.save();\n\n this.setTransform(ctx);\n this.setClip(ctx);\n this.setOpacity(ctx);\n\n ctx.beginPath();\n\n this.renderPoints(ctx, this.srcElement);\n\n this.setLineDash(ctx);\n this.setLineCap(ctx);\n this.setLineJoin(ctx);\n\n this.setFill(ctx);\n this.setStroke(ctx);\n\n ctx.restore();\n }\n\n setFill(ctx) {\n const fill = this.srcElement.options.fill;\n let hasFill = false;\n\n if (fill) {\n if (fill.nodeType === \"Gradient\") {\n this.setGradientFill(ctx, fill);\n hasFill = true;\n } else if (!isTransparent(fill.color)) {\n ctx.fillStyle = fill.color;\n\n ctx.save();\n this.globalAlpha(ctx, fill.opacity);\n ctx.fill();\n ctx.restore();\n\n hasFill = true;\n }\n }\n\n return hasFill;\n }\n\n setGradientFill(ctx, fill) {\n const bbox = this.srcElement.rawBBox();\n let gradient;\n\n if (fill instanceof LinearGradient) {\n let start = fill.start();\n let end = fill.end();\n gradient = ctx.createLinearGradient(start.x, start.y, end.x, end.y);\n } else if (fill instanceof RadialGradient) {\n let center = fill.center();\n gradient = ctx.createRadialGradient(center.x, center.y, 0, center.x, center.y, fill.radius());\n }\n\n addGradientStops(gradient, fill.stops);\n\n ctx.save();\n\n if (!fill.userSpace()) {\n ctx.transform(bbox.width(), 0, 0, bbox.height(), bbox.origin.x, bbox.origin.y);\n }\n ctx.fillStyle = gradient;\n ctx.fill();\n\n ctx.restore();\n }\n\n setStroke(ctx) {\n const stroke = this.srcElement.options.stroke;\n if (stroke && !isTransparent(stroke.color) && stroke.width > 0) {\n ctx.strokeStyle = stroke.color;\n ctx.lineWidth = valueOrDefault(stroke.width, 1);\n\n ctx.save();\n this.globalAlpha(ctx, stroke.opacity);\n ctx.stroke();\n ctx.restore();\n\n return true;\n }\n }\n\n dashType() {\n const stroke = this.srcElement.options.stroke;\n if (stroke && stroke.dashType) {\n return stroke.dashType.toLowerCase();\n }\n }\n\n setLineDash(ctx) {\n const dashType = this.dashType();\n if (dashType && dashType !== SOLID) {\n const dashArray = DASH_ARRAYS[dashType];\n if (ctx.setLineDash) {\n ctx.setLineDash(dashArray);\n } else {\n ctx.mozDash = dashArray;\n ctx.webkitLineDash = dashArray;\n }\n }\n }\n\n setLineCap(ctx) {\n const dashType = this.dashType();\n const stroke = this.srcElement.options.stroke;\n if (dashType && dashType !== SOLID) {\n ctx.lineCap = BUTT;\n } else if (stroke && stroke.lineCap) {\n ctx.lineCap = stroke.lineCap;\n }\n }\n\n setLineJoin(ctx) {\n const stroke = this.srcElement.options.stroke;\n if (stroke && stroke.lineJoin) {\n ctx.lineJoin = stroke.lineJoin;\n }\n }\n\n renderPoints(ctx, path) {\n renderPath(ctx, path);\n }\n}\n\nexport default PathNode;\n","import { Path } from '../shapes/path';\nimport PathNode from './path-node';\n\nclass RectNode extends PathNode {\n renderPoints(ctx) {\n const geometry = this.srcElement.geometry();\n const [ rx, ry ] = geometry.cornerRadius;\n\n if (rx === 0 && ry === 0) {\n const { origin, size } = geometry;\n ctx.rect(origin.x, origin.y, size.width, size.height);\n } else {\n super.renderPoints(ctx, Path.fromRect(geometry));\n }\n }\n}\n\nexport default RectNode;\n","import GroupNode from './group-node';\nimport traversable from '../mixins/traversable';\nimport { animationFrame, throttle } from '../common';\n\n\nconst FRAME_DELAY = 1000 / 60;\n\nclass RootNode extends traversable(GroupNode, \"childNodes\") {\n constructor(canvas, size) {\n super();\n\n this.canvas = canvas;\n this.size = size;\n this.ctx = canvas.getContext(\"2d\");\n\n const invalidateHandler = this._invalidate.bind(this);\n this.invalidate = throttle(() => {\n animationFrame(invalidateHandler);\n }, FRAME_DELAY);\n }\n\n destroy() {\n super.destroy();\n this.canvas = null;\n this.ctx = null;\n }\n\n load(elements, pos, cors) {\n this.loadElements(elements, pos, cors);\n this._invalidate();\n }\n\n _rescale(scale) {\n const { canvas, size } = this;\n canvas.width = size.width * scale;\n canvas.height = size.height * scale;\n this.ctx.scale(scale, scale);\n }\n\n _devicePixelRatio() {\n if (typeof window.devicePixelRatio === 'number') {\n return window.devicePixelRatio;\n }\n\n return 1;\n }\n\n _invalidate(options) {\n if (!this.ctx) {\n return;\n }\n\n const fixedScale = options && options.fixedScale;\n const scale = fixedScale ? 1 : this._devicePixelRatio();\n this._rescale(scale);\n\n this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n this.renderTo(this.ctx);\n }\n}\n\nexport default RootNode;\n","import { defined } from '../util';\n\nclass SurfaceCursor {\n\n constructor(surface) {\n surface.bind(\"mouseenter\", this._mouseenter.bind(this));\n surface.bind(\"mouseleave\", this._mouseleave.bind(this));\n\n this.element = surface.element;\n }\n\n clear() {\n this._resetCursor();\n }\n\n destroy() {\n this._resetCursor();\n delete this.element;\n }\n\n _mouseenter(e) {\n const cursor = this._shapeCursor(e);\n\n if (!cursor) {\n this._resetCursor();\n } else {\n if (!this._current) {\n this._defaultCursor = this._getCursor();\n }\n\n this._setCursor(cursor);\n }\n }\n\n _mouseleave() {\n this._resetCursor();\n }\n\n _shapeCursor(e) {\n let shape = e.element;\n\n while (shape && !defined(shape.options.cursor)) {\n shape = shape.parent;\n }\n\n if (shape) {\n return shape.options.cursor;\n }\n }\n\n _getCursor() {\n if (this.element) {\n return this.element.style.cursor;\n }\n }\n\n _setCursor(cursor) {\n if (this.element) {\n this.element.style.cursor = cursor;\n this._current = cursor;\n }\n }\n\n _resetCursor() {\n if (this._current) {\n this._setCursor(this._defaultCursor || \"\");\n delete this._current;\n }\n }\n}\n\nexport default SurfaceCursor;\n\n","import BaseSurface from '../core/surface';\nimport { createPromise, promiseAll, bindEvents, elementSize, unbindEvents } from '../util';\nimport RootNode from './root-node';\nimport ShapesQuadTree from '../search/shapes-quad-tree';\nimport SurfaceCursor from './surface-cursor';\n\nimport ArcNode from './arc-node';\nimport CircleNode from './circle-node';\nimport GroupNode from './group-node';\nimport ImageNode from './image-node';\nimport MultiPathNode from './multi-path-node';\nimport PathNode from './path-node';\nimport RectNode from './rect-node';\nimport TextNode from './text-node';\nimport NODE_MAP from './node-map';\n\nNODE_MAP.Arc = ArcNode;\nNODE_MAP.Circle = CircleNode;\nNODE_MAP.Group = GroupNode;\nNODE_MAP.Image = ImageNode;\nNODE_MAP.MultiPath = MultiPathNode;\nNODE_MAP.Path = PathNode;\nNODE_MAP.Rect = RectNode;\nNODE_MAP.Text = TextNode;\n\n\nclass Surface extends BaseSurface {\n get type() {\n return \"canvas\";\n }\n\n constructor(element, options) {\n super(element, options);\n\n this.element.innerHTML = this._template(this);\n\n const canvas = this.element.firstElementChild;\n const size = elementSize(element);\n\n canvas.width = size.width;\n canvas.height = size.height;\n\n this._rootElement = canvas;\n\n this._root = new RootNode(canvas, size);\n\n this._mouseTrackHandler = this._trackMouse.bind(this);\n\n bindEvents(this.element, {\n click: this._mouseTrackHandler,\n mousemove: this._mouseTrackHandler\n });\n }\n\n destroy() {\n super.destroy();\n\n if (this._root) {\n this._root.destroy();\n this._root = null;\n }\n\n if (this._searchTree) {\n this._searchTree.clear();\n delete this._searchTree;\n }\n\n if (this._cursor) {\n this._cursor.destroy();\n delete this._cursor;\n }\n\n unbindEvents(this.element, {\n click: this._mouseTrackHandler,\n mousemove: this._mouseTrackHandler\n });\n }\n\n draw(element) {\n super.draw(element);\n this._root.load([ element ], undefined, this.options.cors);\n\n if (this._searchTree) {\n this._searchTree.add([ element ]);\n }\n }\n\n clear() {\n super.clear();\n this._root.clear();\n\n if (this._searchTree) {\n this._searchTree.clear();\n }\n\n if (this._cursor) {\n this._cursor.clear();\n }\n }\n\n eventTarget(e) {\n if (this._searchTree) {\n const point = this._surfacePoint(e);\n const shape = this._searchTree.pointShape(point);\n return shape;\n }\n }\n\n image() {\n const { _root: root, _rootElement: rootElement } = this;\n const loadingStates = [];\n\n root.traverse((childNode) => {\n if (childNode.loading) {\n loadingStates.push(childNode.loading);\n }\n });\n\n const promise = createPromise();\n const resolveDataURL = () => {\n root._invalidate({ fixedScale: true });\n\n try {\n const data = rootElement.toDataURL();\n promise.resolve(data);\n } catch (e) {\n promise.reject(e);\n }\n };\n\n promiseAll(loadingStates).then(resolveDataURL, resolveDataURL);\n\n return promise;\n }\n\n suspendTracking() {\n super.suspendTracking();\n if (this._searchTree) {\n this._searchTree.clear();\n delete this._searchTree;\n }\n }\n\n resumeTracking() {\n super.resumeTracking();\n if (!this._searchTree) {\n this._searchTree = new ShapesQuadTree();\n\n const childNodes = this._root.childNodes;\n const rootElements = [];\n for (let idx = 0; idx < childNodes.length; idx++) {\n rootElements.push(childNodes[idx].srcElement);\n }\n this._searchTree.add(rootElements);\n }\n }\n\n _resize() {\n this._rootElement.width = this._size.width;\n this._rootElement.height = this._size.height;\n\n this._root.size = this._size;\n this._root.invalidate();\n }\n\n _template() {\n return \"\";\n }\n\n _enableTracking() {\n this._searchTree = new ShapesQuadTree();\n this._cursor = new SurfaceCursor(this);\n\n super._enableTracking();\n }\n\n _trackMouse(e) {\n if (this._suspendedTracking) {\n return;\n }\n\n const shape = this.eventTarget(e);\n\n if (e.type !== \"click\") {\n const currentShape = this._currentShape;\n if (currentShape && currentShape !== shape) {\n this.trigger(\"mouseleave\", {\n element: currentShape,\n originalEvent: e,\n type: \"mouseleave\"\n });\n }\n\n if (shape && currentShape !== shape) {\n this.trigger(\"mouseenter\", {\n element: shape,\n originalEvent: e,\n type: \"mouseenter\"\n });\n }\n\n this.trigger(\"mousemove\", {\n element: shape,\n originalEvent: e,\n type: \"mousemove\"\n });\n\n this._currentShape = shape;\n } else if (shape) {\n this.trigger(\"click\", {\n element: shape,\n originalEvent: e,\n type: \"click\"\n });\n }\n }\n}\n\nexport default Surface;\n","import PathNode from './path-node';\n\nclass TextNode extends PathNode {\n renderTo(ctx) {\n const text = this.srcElement;\n const pos = text.position();\n const size = text.measure();\n\n ctx.save();\n\n this.setTransform(ctx);\n this.setClip(ctx);\n this.setOpacity(ctx);\n\n ctx.beginPath();\n\n ctx.font = text.options.font;\n ctx.textAlign = 'left';\n\n if (this.setFill(ctx)) {\n ctx.fillText(text.content(), pos.x, pos.y + size.baseline);\n }\n\n if (this.setStroke(ctx)) {\n this.setLineDash(ctx);\n ctx.strokeText(text.content(), pos.x, pos.y + size.baseline);\n }\n\n ctx.restore();\n }\n}\n\n\nexport default TextNode;\n","\nexport default function renderPath(ctx, path) {\n const segments = path.segments;\n\n if (segments.length === 0) {\n return;\n }\n\n let segment = segments[0];\n let anchor = segment.anchor();\n ctx.moveTo(anchor.x, anchor.y);\n\n for (let i = 1; i < segments.length; i++) {\n segment = segments[i];\n anchor = segment.anchor();\n\n let prevSeg = segments[i - 1];\n let prevOut = prevSeg.controlOut();\n let controlIn = segment.controlIn();\n\n if (prevOut && controlIn) {\n ctx.bezierCurveTo(prevOut.x, prevOut.y,\n controlIn.x, controlIn.y,\n anchor.x, anchor.y);\n } else {\n ctx.lineTo(anchor.x, anchor.y);\n }\n }\n\n if (path.options.closed) {\n ctx.closePath();\n }\n}","let animationFrameProxy = (callback) => {\n const wnd = typeof window !== \"undefined\" ? window : {};\n const animationFrame = wnd.requestAnimationFrame ||\n wnd.webkitRequestAnimationFrame ||\n wnd.mozRequestAnimationFrame ||\n wnd.oRequestAnimationFrame ||\n wnd.msRequestAnimationFrame ||\n function(callback) { setTimeout(callback, 1000 / 60); };\n\n animationFrameProxy = callback => animationFrame.call(wnd, callback);\n animationFrameProxy(callback);\n};\n\nexport default animationFrameProxy;\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","const ampRegExp = /&/g;\nconst ltRegExp = //g;\n\nexport default function htmlEncode(value) {\n return String(value).replace(ampRegExp, \"&\").replace(ltRegExp, \"<\").replace(gtRegExp, \">\").replace(quoteRegExp, \""\").replace(aposRegExp, \"'\");\n}","/* eslint-disable no-console */\n\nexport default function logToConsole(message) {\n const console = window.console;\n\n if (typeof(console) != \"undefined\" && console.log) {\n console.log(message);\n }\n}","import Class from './class';\n\nclass Observable extends Class {\n constructor() {\n super();\n\n this._events = {};\n }\n\n bind(eventName, handlers, one) {\n const eventNames = getArray(eventName);\n const handlersIsFunction = isFunction(handlers);\n const length = eventNames.length;\n\n if (handlers === undefined) {\n for (let field in eventName) {\n this.bind(field, eventName[field]);\n }\n return this;\n }\n\n for (let idx = 0; idx < length; idx++) {\n const eventName = eventNames[idx];\n\n let handler = handlersIsFunction ? handlers : handlers[eventName];\n\n if (handler) {\n if (one) {\n const original = handler;\n handler = () => { // eslint-disable-line no-loop-func\n this.unbind(eventName, handler);\n original.apply(this, arguments);\n };\n handler.original = original;\n }\n let events = this._events[eventName] = this._events[eventName] || [];\n events.push(handler);\n }\n }\n\n return this;\n }\n\n one(eventNames, handlers) {\n return this.bind(eventNames, handlers, true);\n }\n\n first(eventName, handlers) {\n const eventNames = getArray(eventName);\n const handlersIsFunction = isFunction(handlers);\n\n for (let idx = 0, length = eventNames.length; idx < length; idx++) {\n const eventName = eventNames[idx];\n\n const handler = handlersIsFunction ? handlers : handlers[eventName];\n\n if (handler) {\n const events = this._events[eventName] = this._events[eventName] || [];\n events.unshift(handler);\n }\n }\n\n return this;\n }\n\n trigger(eventName, e = {}) {\n let events = this._events[eventName];\n\n if (events) {\n const length = events.length;\n\n e.sender = this;\n e._defaultPrevented = false;\n e.preventDefault = preventDefault;\n e.isDefaultPrevented = isDefaultPrevented;\n\n events = events.slice();\n\n for (let idx = 0; idx < length; idx++) {\n events[idx].call(this, e);\n }\n\n return e._defaultPrevented === true;\n }\n\n return false;\n }\n\n unbind(eventName, handler) {\n const events = this._events[eventName];\n\n if (eventName === undefined) {\n this._events = {};\n } else if (events) {\n if (handler) {\n for (let idx = events.length - 1; idx >= 0; idx--) {\n if (events[idx] === handler || events[idx].original === handler) {\n events.splice(idx, 1);\n }\n }\n } else {\n this._events[eventName] = [];\n }\n }\n\n return this;\n }\n}\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\nfunction getArray(value) {\n return typeof value === \"string\" ? [ value ] : value;\n}\n\nfunction preventDefault() {\n this._defaultPrevented = true;\n}\n\nfunction isDefaultPrevented() {\n return this._defaultPrevented === true;\n}\n\nexport default Observable;","// 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 now from '../util/now';\n\nexport default function throttle(fn, delay) {\n let lastExecTime = 0;\n let timeout;\n\n if (!delay || delay <= 0) {\n return fn;\n }\n\n const throttled = function() {\n const elapsed = now() - lastExecTime;\n const args = arguments;\n\n const exec = function() {\n fn.apply(null, args);\n lastExecTime = now();\n };\n\n // first execution\n if (!lastExecTime) {\n return exec();\n }\n\n if (timeout) {\n clearTimeout(timeout);\n }\n\n if (elapsed > delay) {\n exec();\n } else {\n timeout = setTimeout(exec, delay - elapsed);\n }\n };\n\n throttled.cancel = function() {\n clearTimeout(timeout);\n };\n\n return throttled;\n}\n","import { Class } from '../common';\n\nclass BaseNode extends Class {\n constructor(srcElement) {\n super();\n\n this.childNodes = [];\n this.parent = null;\n\n if (srcElement) {\n this.srcElement = srcElement;\n this.observe();\n }\n }\n\n destroy() {\n if (this.srcElement) {\n this.srcElement.removeObserver(this);\n }\n\n const children = this.childNodes;\n for (let i = 0; i < children.length; i++) {\n this.childNodes[i].destroy();\n }\n\n this.parent = null;\n }\n\n load() {}\n\n observe() {\n if (this.srcElement) {\n this.srcElement.addObserver(this);\n }\n }\n\n append(node) {\n this.childNodes.push(node);\n node.parent = this;\n }\n\n insertAt(node, pos) {\n this.childNodes.splice(pos, 0, node);\n node.parent = this;\n }\n\n remove(index, count) {\n const end = index + count;\n for (let i = index; i < end; i++) {\n this.childNodes[i].removeSelf();\n }\n this.childNodes.splice(index, count);\n }\n\n removeSelf() {\n this.clear();\n this.destroy();\n }\n\n clear() {\n this.remove(0, this.childNodes.length);\n }\n\n invalidate() {\n if (this.parent) {\n this.parent.invalidate();\n }\n }\n\n geometryChange() {\n this.invalidate();\n }\n\n optionsChange() {\n this.invalidate();\n }\n\n childrenChange(e) {\n if (e.action === \"add\") {\n this.load(e.items, e.index);\n } else if (e.action === \"remove\") {\n this.remove(e.index, e.items.length);\n }\n\n this.invalidate();\n }\n}\n\nexport default BaseNode;","const DASH_ARRAYS = {\n dot: [ 1.5, 3.5 ],\n dash: [ 4, 3.5 ],\n longdash: [ 8, 3.5 ],\n dashdot: [ 3.5, 3.5, 1.5, 3.5 ],\n longdashdot: [ 8, 3.5, 1.5, 3.5 ],\n longdashdotdot: [ 8, 3.5, 1.5, 3.5, 1.5, 3.5 ]\n};\n\nconst SOLID = \"solid\";\nconst BUTT = \"butt\";\n\nexport { DASH_ARRAYS, SOLID, BUTT };","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 Group from '../shapes/group';\nimport Point from '../geometry/point';\nimport { Observable } from '../common';\nimport { eventElement, eventCoordinates, elementPadding, elementScale, elementSize, elementOffset } from '../util';\n\nconst events = [\n \"click\",\n \"mouseenter\",\n \"mouseleave\",\n \"mousemove\",\n \"resize\"\n];\n\nclass Surface extends Observable {\n constructor(element, options) {\n super();\n\n this.options = Object.assign({}, options);\n this.element = element;\n this.element._kendoExportVisual = this.exportVisual.bind(this);\n\n this._click = this._handler(\"click\");\n this._mouseenter = this._handler(\"mouseenter\");\n this._mouseleave = this._handler(\"mouseleave\");\n this._mousemove = this._handler(\"mousemove\");\n\n this._visual = new Group();\n\n elementSize(element, this.options);\n\n this.bind(events, this.options);\n\n this._enableTracking();\n }\n\n draw(element) {\n this._visual.children.push(element);\n }\n\n clear() {\n this._visual.children = [];\n }\n\n destroy() {\n this._visual = null;\n this.element._kendoExportVisual = null;\n this.unbind();\n }\n\n eventTarget(e) {\n let domNode = eventElement(e);\n let node;\n\n while (!node && domNode) {\n node = domNode._kendoNode;\n if (domNode === this.element) {\n break;\n }\n\n domNode = domNode.parentElement;\n }\n\n if (node) {\n return node.srcElement;\n }\n }\n\n exportVisual() {\n return this._visual;\n }\n\n getSize() {\n return elementSize(this.element);\n }\n\n currentSize(size) {\n if (size) {\n this._size = size;\n } else {\n return this._size;\n }\n }\n\n setSize(size) {\n elementSize(this.element, size);\n\n this.currentSize(size);\n this._resize();\n }\n\n resize(force) {\n const size = this.getSize();\n const currentSize = this.currentSize();\n\n if (force || (size.width > 0 || size.height > 0) && (!currentSize || size.width !== currentSize.width || size.height !== currentSize.height)) {\n this.currentSize(size);\n this._resize(size, force);\n this.trigger(\"resize\", size);\n }\n }\n\n size(value) {\n if (!value) {\n return this.getSize();\n }\n\n this.setSize(value);\n }\n\n suspendTracking() {\n this._suspendedTracking = true;\n }\n\n resumeTracking() {\n this._suspendedTracking = false;\n }\n\n _enableTracking() {}\n\n _resize() {}\n\n _handler(eventName) {\n return (e) => {\n const node = this.eventTarget(e);\n if (node && !this._suspendedTracking) {\n this.trigger(eventName, {\n element: node,\n originalEvent: e,\n type: eventName\n });\n }\n };\n }\n\n _elementOffset() {\n const element = this.element;\n const padding = elementPadding(element);\n const { left, top } = elementOffset(element);\n\n return {\n left: left + padding.left,\n top: top + padding.top\n };\n }\n\n _surfacePoint(e) {\n const offset = this._elementOffset();\n const coord = eventCoordinates(e);\n const x = coord.x - offset.left;\n const y = coord.y - offset.top;\n\n const inverseTransform = elementScale(this.element).invert();\n const point = new Point(\n x,\n y\n ).transform(inverseTransform);\n\n return point;\n }\n}\n\nexport default Surface;\n","export { default as HasObservers } from './core/has-observers';\n\nexport * from './shapes';\nexport * from './alignment';\nexport * from './gradients';\nexport * from './animations';\n\nexport { default as PathParser } from './parsing/path-parser';\nexport { default as parsePath } from './parsing/parse-path';\nexport { default as BaseNode } from './core/base-node';\nexport { default as OptionsStore } from './core/options-store';\nexport { default as Surface } from './surface';\nexport { default as SurfaceFactory } from './surface-factory';\n\nimport * as svg from './svg';\nimport * as canvas from './canvas';\nimport * as util from './util';\n\nexport { default as exportImage } from './canvas/export-image';\nexport { default as exportSVG } from './svg/export-svg';\nexport { default as QuadNode } from './search/quad-node';\nexport { default as ShapesQuadTree } from './search/shapes-quad-tree';\n\nexport { svg, canvas, util };\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","export { default as LinearGradient } from './gradients/linear-gradient';\nexport { default as RadialGradient } from './gradients/radial-gradient';\nexport { default as GradientStop } from './gradients/gradient-stop';\nexport { default as Gradient } from './gradients/gradient';","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 serializeSVG(element) {\n const serializer = new window.XMLSerializer();\n let xml = serializer.serializeToString(element);\n\n if (browser.mozilla && !(element.getAttribute(\"width\") && element.getAttribute(\"height\"))) {\n const doc = new window.DOMParser().parseFromString(xml, \"image/svg+xml\");\n const svg = doc.documentElement;\n const box = getContentBox(element);\n svg.setAttribute(\"width\", box.width);\n svg.setAttribute(\"height\", box.height);\n xml = serializer.serializeToString(svg);\n }\n\n return xml;\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 = serializeSVG(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 || browser.safari) {\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 { Class } from '../common';\nimport { MultiPath } from '../shapes/path';\nimport parsePath from './parse-path';\n\nlet instance;\n\nclass PathParser extends Class {\n static get current() {\n if (!instance) {\n instance = new PathParser();\n }\n\n return instance;\n }\n\n parse(str, options) {\n const multiPath = new MultiPath(options);\n return parsePath(multiPath, str);\n }\n}\n\nexport default PathParser;\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 QuadRoot from './quad-root';\nimport { Rect } from '../geometry';\nimport { append } from '../util';\n\nclass QuadNode extends QuadRoot {\n constructor(rect) {\n super();\n this.children = [];\n this.rect = rect;\n }\n\n inBounds(rect) {\n const nodeRect = this.rect;\n const nodeBottomRight = nodeRect.bottomRight();\n const bottomRight = rect.bottomRight();\n const inBounds = nodeRect.origin.x <= rect.origin.x && nodeRect.origin.y <= rect.origin.y && bottomRight.x <= nodeBottomRight.x &&\n bottomRight.y <= nodeBottomRight.y;\n return inBounds;\n }\n\n pointShapes(point) {\n const children = this.children;\n const length = children.length;\n const result = super.pointShapes(point);\n for (let idx = 0; idx < length; idx++) {\n append(result, children[idx].pointShapes(point));\n }\n return result;\n }\n\n insert(shape, bbox) {\n const children = this.children;\n let inserted = false;\n\n if (this.inBounds(bbox)) {\n if (this.shapes.length < 4) {\n this._add(shape, bbox);\n } else {\n if (!children.length) {\n this._initChildren();\n }\n\n for (let idx = 0; idx < children.length; idx++) {\n if (children[idx].insert(shape, bbox)) {\n inserted = true;\n break;\n }\n }\n\n if (!inserted) {\n this._add(shape, bbox);\n }\n }\n inserted = true;\n }\n\n return inserted;\n }\n\n _initChildren() {\n const { rect, children } = this;\n const center = rect.center();\n const halfWidth = rect.width() / 2;\n const halfHeight = rect.height() / 2;\n\n children.push(\n new QuadNode(new Rect([ rect.origin.x, rect.origin.y ], [ halfWidth, halfHeight ])),\n new QuadNode(new Rect([ center.x, rect.origin.y ], [ halfWidth, halfHeight ])),\n new QuadNode(new Rect([ rect.origin.x, center.y ], [ halfWidth, halfHeight ])),\n new QuadNode(new Rect([ center.x, center.y ], [ halfWidth, halfHeight ]))\n );\n }\n}\n\nexport default QuadNode;","import { Class } from '../common';\n\nclass QuadRoot extends Class {\n constructor() {\n super();\n\n this.shapes = [];\n }\n\n _add(shape, bbox) {\n this.shapes.push({\n bbox: bbox,\n shape: shape\n });\n shape._quadNode = this;\n }\n\n pointShapes(point) {\n const shapes = this.shapes;\n const length = shapes.length;\n const result = [];\n for (let idx = 0; idx < length; idx++) {\n if (shapes[idx].bbox.containsPoint(point)) {\n result.push(shapes[idx].shape);\n }\n }\n return result;\n }\n\n insert(shape, bbox) {\n this._add(shape, bbox);\n }\n\n remove(shape) {\n const shapes = this.shapes;\n const length = shapes.length;\n\n for (let idx = 0; idx < length; idx++) {\n if (shapes[idx].shape === shape) {\n shapes.splice(idx, 1);\n break;\n }\n }\n }\n}\n\nexport default QuadRoot;","import QuadRoot from './quad-root';\nimport QuadNode from './quad-node';\nimport { Rect } from '../geometry';\nimport { Class } from '../common';\nimport { append } from '../util';\n\nconst ROOT_SIZE = 3000;\nconst LEVEL_STEP = 10000;\nconst MAX_LEVEL = 75;\n\nclass ShapesQuadTree extends Class {\n\n constructor() {\n super();\n\n this.initRoots();\n }\n\n initRoots() {\n this.rootMap = {};\n this.root = new QuadRoot();\n this.rootElements = [];\n }\n\n clear() {\n const rootElements = this.rootElements;\n for (let idx = 0; idx < rootElements.length; idx++) {\n this.remove(rootElements[idx]);\n }\n this.initRoots();\n }\n\n pointShape(point) {\n const sectorRoot = ( this.rootMap[ Math.floor( point.x / ROOT_SIZE ) ] || {} )[ Math.floor( point.y / ROOT_SIZE ) ];\n let result = this.root.pointShapes(point);\n\n if (sectorRoot) {\n result = result.concat(sectorRoot.pointShapes(point));\n }\n\n this.assignZindex(result);\n\n result.sort(zIndexComparer);\n for (let idx = 0; idx < result.length; idx++) {\n if (result[idx].containsPoint(point)) {\n return result[idx];\n }\n }\n }\n\n assignZindex(elements) {\n for (let idx = 0; idx < elements.length; idx++) {\n let element = elements[idx];\n let zIndex = 0;\n let levelWeight = Math.pow(LEVEL_STEP, MAX_LEVEL);\n let parents = [];\n\n while (element) {\n parents.push(element);\n element = element.parent;\n }\n\n while (parents.length) {\n element = parents.pop();\n zIndex += ((element.parent ? element.parent.children : this.rootElements).indexOf(element) + 1) * levelWeight;\n levelWeight /= LEVEL_STEP;\n }\n\n elements[idx]._zIndex = zIndex;\n }\n }\n\n optionsChange(e) {\n if (e.field === \"transform\" || e.field === \"stroke.width\") {\n this.bboxChange(e.element);\n }\n }\n\n geometryChange(e) {\n this.bboxChange(e.element);\n }\n\n bboxChange(element) {\n if (element.nodeType === \"Group\") {\n for (let idx = 0; idx < element.children.length; idx++) {\n this.bboxChange(element.children[idx]);\n }\n } else {\n if (element._quadNode) {\n element._quadNode.remove(element);\n }\n this._insertShape(element);\n }\n }\n\n add(elements) {\n const elementsArray = Array.isArray(elements) ? elements.slice(0) : [ elements ];\n\n append(this.rootElements, elementsArray);\n this._insert(elementsArray);\n }\n\n childrenChange(e) {\n if (e.action === \"remove\") {\n for (let idx = 0; idx < e.items.length; idx++) {\n this.remove(e.items[idx]);\n }\n } else {\n this._insert(Array.prototype.slice.call(e.items, 0));\n }\n }\n\n _insert(elements) {\n let element;\n\n while (elements.length > 0) {\n element = elements.pop();\n element.addObserver(this);\n if (element.nodeType === \"Group\") {\n append(elements, element.children);\n } else {\n this._insertShape(element);\n }\n }\n }\n\n _insertShape(shape) {\n const bbox = shape.bbox();\n if (bbox) {\n const sectors = this.getSectors(bbox);\n const x = sectors[0][0];\n const y = sectors[1][0];\n\n if (this.inRoot(sectors)) {\n this.root.insert(shape, bbox);\n } else {\n const rootMap = this.rootMap;\n if (!rootMap[x]) {\n rootMap[x] = {};\n }\n\n if (!rootMap[x][y]) {\n rootMap[x][y] = new QuadNode(\n new Rect([ x * ROOT_SIZE, y * ROOT_SIZE ], [ ROOT_SIZE, ROOT_SIZE ])\n );\n }\n\n rootMap[x][y].insert(shape, bbox);\n }\n }\n }\n\n remove(element) {\n element.removeObserver(this);\n\n if (element.nodeType === \"Group\") {\n const children = element.children;\n for (let idx = 0; idx < children.length; idx++) {\n this.remove(children[idx]);\n }\n } else if (element._quadNode) {\n element._quadNode.remove(element);\n delete element._quadNode;\n }\n }\n\n inRoot(sectors) {\n return sectors[0].length > 1 || sectors[1].length > 1;\n }\n\n getSectors(rect) {\n const bottomRight = rect.bottomRight();\n const bottomX = Math.floor(bottomRight.x / ROOT_SIZE);\n const bottomY = Math.floor(bottomRight.y / ROOT_SIZE);\n const sectors = [ [], [] ];\n for (let x = Math.floor(rect.origin.x / ROOT_SIZE); x <= bottomX; x++) {\n sectors[0].push(x);\n }\n for (let y = Math.floor(rect.origin.y / ROOT_SIZE); y <= bottomY; y++) {\n sectors[1].push(y);\n }\n return sectors;\n }\n}\n\nfunction zIndexComparer(x1, x2) {\n if (x1._zIndex < x2._zIndex) {\n return 1;\n }\n if (x1._zIndex > x2._zIndex) {\n return -1;\n }\n\n return 0;\n}\n\nexport default ShapesQuadTree;","export { default as Element } from './shapes/element';\nexport { default as Circle } from './shapes/circle';\nexport { default as Arc } from './shapes/arc';\nexport { Path, MultiPath } from './shapes/path';\nexport { default as Text } from './shapes/text';\nexport { default as Image } from './shapes/image';\nexport { default as Group } from './shapes/group';\nexport { default as Layout } from './shapes/layout';\nexport { default as Rect } from './shapes/rect';\n","import GeometryArc from '../geometry/arc';\nimport Element from './element';\nimport { Path } from './path';\nimport paintable from '../mixins/paintable';\nimport measurable from '../mixins/measurable';\nimport withGeometry from '../mixins/with-geometry';\nimport { defined } from '../util';\n\n\nconst DEFAULT_STROKE = \"#000\";\n\nclass Arc extends paintable(measurable(withGeometry(Element))) {\n get nodeType() {\n return \"Arc\";\n }\n\n constructor(geometry = new GeometryArc(), 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 _bbox(matrix) {\n return this._geometry.bbox(matrix);\n }\n\n rawBBox() {\n return this.geometry().bbox();\n }\n\n toPath() {\n const path = new Path();\n const curvePoints = this.geometry().curvePoints();\n\n if (curvePoints.length > 0) {\n path.moveTo(curvePoints[0].x, curvePoints[0].y);\n\n for (let i = 1; i < curvePoints.length; i += 3) {\n path.curveTo(curvePoints[i], curvePoints[i + 1], curvePoints[i + 2]);\n }\n }\n\n return path;\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 Arc;\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 Group from './group';\nimport Size from '../geometry/size';\nimport Rect from '../geometry/rect';\nimport Point from '../geometry/point';\nimport createTransform from '../geometry/transform';\nimport translateToPoint from '../alignment/translate-to-point';\nimport alignStart from '../alignment/align-start';\nimport alignStartReverse from '../alignment/align-start-reverse';\n\nconst DEFAULT_OPTIONS = {\n alignContent: \"start\",\n justifyContent: \"start\",\n alignItems: \"start\",\n spacing: 0,\n orientation: \"horizontal\",\n lineSpacing: 0,\n wrap: true,\n revers: false\n};\n\nconst forEach = (elements, callback) => {\n elements.forEach(callback);\n};\n\nconst forEachReverse = (elements, callback) => {\n const length = elements.length;\n\n for (let idx = length - 1; idx >= 0; idx--) {\n callback(elements[idx], idx);\n }\n};\n\nclass Layout extends Group {\n\n constructor(rect, options) {\n super(Object.assign({}, DEFAULT_OPTIONS, options));\n this._rect = rect;\n this._fieldMap = {};\n }\n\n rect(value) {\n if (value) {\n this._rect = value;\n return this;\n }\n\n return this._rect;\n }\n\n _initMap() {\n const options = this.options;\n const fieldMap = this._fieldMap;\n if (options.orientation === \"horizontal\") {\n fieldMap.sizeField = \"width\";\n fieldMap.groupsSizeField = \"height\";\n fieldMap.groupAxis = \"x\";\n fieldMap.groupsAxis = \"y\";\n } else {\n fieldMap.sizeField = \"height\";\n fieldMap.groupsSizeField = \"width\";\n fieldMap.groupAxis = \"y\";\n fieldMap.groupsAxis = \"x\";\n }\n\n if (options.reverse) {\n this.forEach = forEachReverse;\n this.justifyAlign = alignStartReverse;\n } else {\n this.forEach = forEach;\n this.justifyAlign = alignStart;\n }\n }\n\n reflow() {\n if (!this._rect || this.children.length === 0) {\n return;\n }\n this._initMap();\n\n if (this.options.transform) {\n this.transform(null);\n }\n\n const options = this.options;\n const rect = this._rect;\n const { groups, groupsSize } = this._initGroups();\n const { sizeField, groupsSizeField, groupAxis, groupsAxis } = this._fieldMap;\n const groupOrigin = new Point();\n const elementOrigin = new Point();\n const size = new Size();\n let groupStart = alignStart(groupsSize, rect, options.alignContent, groupsAxis, groupsSizeField);\n let elementStart, group, groupBox;\n\n const arrangeElements = (bbox, idx) => {\n const element = group.elements[idx];\n\n elementOrigin[groupAxis] = elementStart;\n elementOrigin[groupsAxis] = alignStart(bbox.size[groupsSizeField], groupBox, options.alignItems, groupsAxis, groupsSizeField);\n translateToPoint(elementOrigin, bbox, element);\n elementStart += bbox.size[sizeField] + options.spacing;\n };\n\n for (let groupIdx = 0; groupIdx < groups.length; groupIdx++) {\n group = groups[groupIdx];\n groupOrigin[groupAxis] = elementStart = this.justifyAlign(group.size, rect, options.justifyContent, groupAxis, sizeField);\n groupOrigin[groupsAxis] = groupStart;\n size[sizeField] = group.size;\n size[groupsSizeField] = group.lineSize;\n groupBox = new Rect(groupOrigin, size);\n this.forEach(group.bboxes, arrangeElements);\n\n groupStart += group.lineSize + options.lineSpacing;\n }\n\n if (!options.wrap && group.size > rect.size[sizeField]) {\n const scale = rect.size[sizeField] / groupBox.size[sizeField];\n const scaledStart = groupBox.topLeft().scale(scale, scale);\n const scaledSize = groupBox.size[groupsSizeField] * scale;\n const newStart = alignStart(scaledSize, rect, options.alignContent, groupsAxis, groupsSizeField);\n const transform = createTransform();\n if (groupAxis === \"x\") {\n transform.translate(rect.origin.x - scaledStart.x, newStart - scaledStart.y);\n } else {\n transform.translate(newStart - scaledStart.x, rect.origin.y - scaledStart.y);\n }\n transform.scale(scale, scale);\n\n this.transform(transform);\n }\n }\n\n _initGroups() {\n const { options, children } = this;\n const { lineSpacing, wrap, spacing } = options;\n const sizeField = this._fieldMap.sizeField;\n let group = this._newGroup();\n const groups = [];\n const addGroup = function() {\n groups.push(group);\n groupsSize += group.lineSize + lineSpacing;\n };\n let groupsSize = -lineSpacing;\n\n for (let idx = 0; idx < children.length; idx++) {\n let element = children[idx];\n let bbox = children[idx].clippedBBox();\n if (element.visible() && bbox) {\n if (wrap && group.size + bbox.size[sizeField] + spacing > this._rect.size[sizeField]) {\n if (group.bboxes.length === 0) {\n this._addToGroup(group, bbox, element);\n addGroup();\n group = this._newGroup();\n } else {\n addGroup();\n group = this._newGroup();\n this._addToGroup(group, bbox, element);\n }\n } else {\n this._addToGroup(group, bbox, element);\n }\n }\n }\n\n if (group.bboxes.length) {\n addGroup();\n }\n\n return {\n groups: groups,\n groupsSize: groupsSize\n };\n }\n\n _addToGroup(group, bbox, element) {\n group.size += bbox.size[this._fieldMap.sizeField] + this.options.spacing;\n group.lineSize = Math.max(bbox.size[this._fieldMap.groupsSizeField], group.lineSize);\n group.bboxes.push(bbox);\n group.elements.push(element);\n }\n\n _newGroup() {\n return {\n lineSize: 0,\n size: -this.options.spacing,\n bboxes: [],\n elements: []\n };\n }\n}\n\nexport default Layout;","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 withGeometry from '../mixins/with-geometry';\nimport Element from './element';\nimport paintable from '../mixins/paintable';\nimport measurable from '../mixins/measurable';\nimport GeometryRect from '../geometry/rect';\nimport { defined } from '../util';\n\n\nclass Rect extends paintable(measurable(withGeometry(Element))) {\n get nodeType() {\n return \"Rect\";\n }\n\n constructor(geometry = new GeometryRect(), options = {}) {\n super(options);\n\n this.geometry(geometry);\n\n if (!defined(this.options.stroke)) {\n this.stroke(\"#000\");\n }\n }\n\n _bbox(matrix) {\n return this._geometry.bbox(matrix);\n }\n\n rawBBox() {\n return this._geometry.bbox();\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 Rect;\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, logToConsole } from './common';\nimport SVGSurface from './svg/surface';\nimport CanvasSurface from './canvas/surface';\n\nlet instance;\nlet support;\n\nconst hasDocument = () => typeof document !== \"undefined\";\n\nconst supportsCanvas = () => hasDocument() &&\n document.createElement(\"canvas\").getContext;\n\nconst supportsSVG = () => hasDocument() &&\n document.implementation.hasFeature(\"http://www.w3.org/TR/SVG11/feature#BasicStructure\", \"1.1\");\n\nclass SurfaceFactory extends Class {\n static get support() {\n if (!support) {\n support = {\n canvas: supportsCanvas(),\n svg: supportsSVG()\n };\n }\n\n return support;\n }\n\n static get current() {\n if (!instance) {\n instance = new SurfaceFactory();\n }\n\n return instance;\n }\n\n constructor() {\n super();\n\n this._items = [ {\n name: \"svg\",\n type: SVGSurface\n }, {\n name: \"canvas\",\n type: CanvasSurface\n } ];\n }\n\n create(element, options) {\n const items = this._items;\n let match = items[0];\n\n if (options && options.type) {\n const preferred = options.type.toLowerCase();\n for (let i = 0; i < items.length; i++) {\n if (items[i].name === preferred) {\n match = items[i];\n break;\n }\n }\n }\n\n if (match) {\n return new match.type(element, options);\n }\n\n logToConsole(\n \"Warning: Unable to create Kendo UI Drawing Surface. Possible causes:\\n\" +\n `- The browser does not support SVG and Canvas. User agent: ${ navigator.userAgent }`);\n }\n}\n\nexport default SurfaceFactory;\n\n","import BaseSurface from './core/surface';\nimport SurfaceFactory from './surface-factory';\n\nclass Surface extends BaseSurface {\n static get support() {\n return SurfaceFactory.support;\n }\n\n static create(element, options) {\n return SurfaceFactory.current.create(element, options);\n }\n}\n\nexport default Surface;\n\n","export { default as Surface } from './svg/surface';\n\nexport { default as RootNode } from './svg/root-node';\nexport { default as Node } from './svg/node';\nexport { default as GroupNode } from './svg/group-node';\nexport { default as ArcNode } from './svg/arc-node';\nexport { default as CircleNode } from './svg/circle-node';\nexport { default as RectNode } from './svg/rect-node';\nexport { default as ImageNode } from './svg/image-node';\nexport { default as TextNode } from './svg/text-node';\nexport { default as PathNode } from './svg/path-node';\nexport { default as MultiPathNode } from './svg/multi-path-node';\n\nexport { default as DefinitionNode } from './svg/definition-node';\nexport { default as ClipNode } from './svg/clip-node';\nexport { default as GradientStopNode } from './svg/gradient-stop-node';\nexport { default as LinearGradientNode } from './svg/linear-gradient-node';\nexport { default as RadialGradientNode } from './svg/radial-gradient-node';\n\nexport { default as exportGroup } from './svg/export-group';","import PathNode from './path-node';\n\nclass ArcNode extends PathNode {\n renderData() {\n return this.printPath(this.srcElement.toPath());\n }\n}\n\nexport default ArcNode;\n","import PathNode from './path-node';\n\nclass CircleNode extends PathNode {\n\n geometryChange() {\n const center = this.center();\n this.attr(\"cx\", center.x);\n this.attr(\"cy\", center.y);\n this.attr(\"r\", this.radius());\n this.invalidate();\n }\n\n center() {\n return this.srcElement.geometry().center;\n }\n\n radius() {\n return this.srcElement.geometry().radius;\n }\n\n template() {\n return ``;\n }\n}\n\nexport default CircleNode;\n","import Node from './node';\n\nclass ClipNode extends Node {\n constructor(srcElement) {\n super();\n\n this.srcElement = srcElement;\n this.id = srcElement.id;\n\n this.load([ srcElement ]);\n }\n\n template() {\n return `${ this.renderChildren() }`;\n }\n}\n\nexport default ClipNode;","const SVG_NS = \"http://www.w3.org/2000/svg\";\nconst NONE = \"none\";\n\nexport { SVG_NS, NONE };","import LinearGradient from '../gradients/linear-gradient';\nimport RadialGradient from '../gradients/radial-gradient';\nimport LinearGradientNode from './linear-gradient-node';\nimport RadialGradientNode from './radial-gradient-node';\nimport Node from './node';\nimport ClipNode from './clip-node';\n\nclass DefinitionNode extends Node {\n constructor() {\n super();\n this.definitionMap = {};\n }\n\n attachTo(domElement) {\n this.element = domElement;\n }\n\n template() {\n return `${ this.renderChildren() }`;\n }\n\n definitionChange(e) {\n const { definitions, action } = e;\n\n if (action === \"add\") {\n this.addDefinitions(definitions);\n } else if (action === \"remove\") {\n this.removeDefinitions(definitions);\n }\n }\n\n createDefinition(type, item) {\n let nodeType;\n if (type === \"clip\") {\n nodeType = ClipNode;\n } else if (type === \"fill\") {\n if (item instanceof LinearGradient) {\n nodeType = LinearGradientNode;\n } else if (item instanceof RadialGradient) {\n nodeType = RadialGradientNode;\n }\n }\n return new nodeType(item);\n }\n\n addDefinitions(definitions) {\n for (let field in definitions) {\n this.addDefinition(field, definitions[field]);\n }\n }\n\n addDefinition(type, srcElement) {\n const { element, definitionMap } = this;\n const id = srcElement.id;\n const mapItem = definitionMap[id];\n if (!mapItem) {\n const node = this.createDefinition(type, srcElement);\n definitionMap[id] = {\n element: node,\n count: 1\n };\n this.append(node);\n if (element) {\n node.attachTo(this.element);\n }\n } else {\n mapItem.count++;\n }\n }\n\n removeDefinitions(definitions) {\n for (let field in definitions) {\n this.removeDefinition(definitions[field]);\n }\n }\n\n removeDefinition(srcElement) {\n const definitionMap = this.definitionMap;\n const id = srcElement.id;\n const mapItem = definitionMap[id];\n\n if (mapItem) {\n mapItem.count--;\n if (mapItem.count === 0) {\n this.remove(this.childNodes.indexOf(mapItem.element), 1);\n delete definitionMap[id];\n }\n }\n }\n}\n\nexport default DefinitionNode;","import RootNode from './root-node';\nimport { Group } from '../shapes';\nimport { transform } from '../geometry';\nimport { SVG_NS } from './constants';\n\nexport default function exportGroup(group) {\n const root = new RootNode({\n skipBaseHref: true\n });\n const bbox = group.clippedBBox();\n let rootGroup = group;\n\n if (bbox) {\n const origin = bbox.getOrigin();\n const exportRoot = new Group();\n exportRoot.transform(transform().translate(-origin.x, -origin.y));\n exportRoot.children.push(group);\n rootGroup = exportRoot;\n }\n\n root.load([ rootGroup ]);\n\n const svg = `${ root.render() }`;\n\n root.destroy();\n\n return svg;\n}","import { createPromise, encodeBase64 } from '../util';\nimport exportGroup from './export-group';\n\nexport default function exportSVG(group, options) {\n let svg = exportGroup(group);\n\n if (!options || !options.raw) {\n svg = \"data:image/svg+xml;base64,\" + encodeBase64(svg);\n }\n\n return createPromise().resolve(svg);\n}\n","import GradientStopNode from './gradient-stop-node';\nimport BaseNode from '../core/base-node';\nimport Node from './node';\nimport renderAllAttr from './utils/render-all-attributes';\n\nclass GradientNode extends Node {\n constructor(srcElement) {\n super(srcElement);\n\n this.id = srcElement.id;\n\n this.loadStops();\n }\n\n loadStops() {\n const stops = this.srcElement.stops;\n const element = this.element;\n\n for (let idx = 0; idx < stops.length; idx++) {\n let stopNode = new GradientStopNode(stops[idx]);\n this.append(stopNode);\n if (element) {\n stopNode.attachTo(element);\n }\n }\n }\n\n optionsChange(e) {\n if (e.field === \"gradient.stops\") {\n BaseNode.prototype.clear.call(this);\n this.loadStops();\n } else if (e.field === \"gradient\") {\n this.allAttr(this.mapCoordinates());\n }\n }\n\n renderCoordinates() {\n return renderAllAttr(this.mapCoordinates());\n }\n\n mapSpace() {\n return [ \"gradientUnits\", this.srcElement.userSpace() ? \"userSpaceOnUse\" : \"objectBoundingBox\" ];\n }\n}\n\nexport default GradientNode;","import Node from './node';\nimport renderAttr from './utils/render-attribute';\n\nclass GradientStopNode extends Node {\n template() {\n return ``;\n }\n\n renderOffset() {\n return renderAttr(\"offset\", this.srcElement.offset());\n }\n\n mapStyle() {\n const srcElement = this.srcElement;\n return [\n [ \"stop-color\", srcElement.color() ],\n [ \"stop-opacity\", srcElement.opacity() ]\n ];\n }\n\n optionsChange(e) {\n if (e.field === \"offset\") {\n this.attr(e.field, e.value);\n } else if (e.field === \"color\" || e.field === \"opacity\") {\n this.css(\"stop-\" + e.field, e.value);\n }\n }\n}\n\nexport default GradientStopNode;","import Node from './node';\n\nclass GroupNode extends Node {\n template() {\n return `${ this.renderChildren() }`;\n }\n\n optionsChange(e) {\n if (e.field === \"transform\") {\n this.transformChange(e.value);\n }\n\n super.optionsChange(e);\n }\n}\n\nexport default GroupNode;\n","import PathNode from './path-node';\nimport renderAllAttr from './utils/render-all-attributes';\nimport { htmlEncode } from '../common';\n\nclass ImageNode extends PathNode {\n\n geometryChange() {\n this.allAttr(this.mapPosition());\n this.invalidate();\n }\n\n optionsChange(e) {\n if (e.field === \"src\") {\n this.allAttr(this.mapSource());\n }\n\n super.optionsChange(e);\n }\n\n mapPosition() {\n const rect = this.srcElement.rect();\n const tl = rect.topLeft();\n\n return [\n [ \"x\", tl.x ],\n [ \"y\", tl.y ],\n [ \"width\", rect.width() + \"px\" ],\n [ \"height\", rect.height() + \"px\" ]\n ];\n }\n\n renderPosition() {\n return renderAllAttr(this.mapPosition());\n }\n\n mapSource(encode) {\n let src = this.srcElement.src();\n\n if (encode) {\n src = htmlEncode(src);\n }\n\n return [ [ \"xlink:href\", src ] ];\n }\n\n renderSource() {\n return renderAllAttr(this.mapSource(true));\n }\n\n template() {\n return `` +\n ``;\n }\n}\n\nexport default ImageNode;\n","import GradientNode from './gradient-node';\n\nclass LinearGradientNode extends GradientNode {\n template() {\n return `${ this.renderChildren() }`;\n }\n\n mapCoordinates() {\n const srcElement = this.srcElement;\n const start = srcElement.start();\n const end = srcElement.end();\n const attrs = [\n [ \"x1\", start.x ],\n [ \"y1\", start.y ],\n [ \"x2\", end.x ],\n [ \"y2\", end.y ],\n this.mapSpace()\n ];\n\n return attrs;\n }\n}\n\nexport default LinearGradientNode;","import PathNode from './path-node';\n\nclass MultiPathNode extends PathNode {\n renderData() {\n const paths = this.srcElement.paths;\n\n if (paths.length > 0) {\n const result = [];\n\n for (let i = 0; i < paths.length; i++) {\n result.push(this.printPath(paths[i]));\n }\n\n return result.join(\" \");\n }\n }\n}\n\nexport default MultiPathNode;\n","const NODE_MAP = {};\n\nexport default NODE_MAP;","import BaseNode from '../core/base-node';\nimport renderAllAttr from './utils/render-all-attributes';\nimport renderAttr from './utils/render-attribute';\nimport renderStyle from './utils/render-style';\nimport NODE_MAP from './node-map';\nimport renderSVG from './utils/render-svg';\nimport { SVG_NS, NONE } from './constants';\nimport { support } from '../common';\nimport { defined } from '../util';\n\nconst TRANSFORM = \"transform\";\nconst DefinitionMap = {\n clip: \"clip-path\",\n fill: \"fill\"\n};\n\nfunction isDefinition(type, value) {\n return type === \"clip\" || (type === \"fill\" && (!value || value.nodeType === \"Gradient\"));\n}\n\nfunction baseUrl() {\n const base = document.getElementsByTagName(\"base\")[0];\n let href = document.location.href;\n let url = \"\";\n\n if (base && !(support.browser || {}).msie) {\n const hashIndex = href.indexOf(\"#\");\n if (hashIndex !== -1) {\n href = href.substring(0, hashIndex);\n }\n\n url = href;\n }\n\n return url;\n}\n\nclass Node extends BaseNode {\n\n constructor(srcElement, options) {\n super(srcElement);\n this.definitions = {};\n\n this.options = options;\n }\n\n destroy() {\n if (this.element) {\n this.element._kendoNode = null;\n this.element = null;\n }\n\n this.clearDefinitions();\n super.destroy();\n }\n\n load(elements, pos) {\n for (let i = 0; i < elements.length; i++) {\n const srcElement = elements[i];\n const children = srcElement.children;\n\n const childNode = new NODE_MAP[srcElement.nodeType](srcElement, this.options);\n\n if (defined(pos)) {\n this.insertAt(childNode, pos);\n } else {\n this.append(childNode);\n }\n\n childNode.createDefinitions();\n\n if (children && children.length > 0) {\n childNode.load(children);\n }\n\n const element = this.element;\n if (element) {\n childNode.attachTo(element, pos);\n }\n }\n }\n\n root() {\n let root = this;\n\n while (root.parent) {\n root = root.parent;\n }\n\n return root;\n }\n\n attachTo(domElement, pos) {\n const container = document.createElement(\"div\");\n renderSVG(container,\n \"\" +\n this.render() +\n \"\"\n );\n\n const element = container.firstChild.firstChild;\n if (element) {\n if (defined(pos)) {\n domElement.insertBefore(element, domElement.childNodes[pos] || null);\n } else {\n domElement.appendChild(element);\n }\n this.setElement(element);\n }\n }\n\n setElement(element) {\n if (this.element) {\n this.element._kendoNode = null;\n }\n\n this.element = element;\n this.element._kendoNode = this;\n\n const nodes = this.childNodes;\n for (let i = 0; i < nodes.length; i++) {\n let childElement = element.childNodes[i];\n nodes[i].setElement(childElement);\n }\n }\n\n clear() {\n this.clearDefinitions();\n\n if (this.element) {\n this.element.innerHTML = \"\";\n }\n\n const children = this.childNodes;\n for (let i = 0; i < children.length; i++) {\n children[i].destroy();\n }\n\n this.childNodes = [];\n }\n\n removeSelf() {\n if (this.element) {\n const parentNode = this.element.parentNode;\n if (parentNode) {\n parentNode.removeChild(this.element);\n }\n this.element = null;\n }\n\n super.removeSelf();\n }\n\n template() {\n return this.renderChildren();\n }\n\n render() {\n return this.template();\n }\n\n renderChildren() {\n const nodes = this.childNodes;\n let output = \"\";\n\n for (let i = 0; i < nodes.length; i++) {\n output += nodes[i].render();\n }\n\n return output;\n }\n\n optionsChange(e) {\n const { field, value } = e;\n\n if (field === \"visible\") {\n this.css(\"display\", value ? \"\" : NONE);\n } else if (DefinitionMap[field] && isDefinition(field, value)) {\n this.updateDefinition(field, value);\n } else if (field === \"opacity\") {\n this.attr(\"opacity\", value);\n } else if (field === \"cursor\") {\n this.css(\"cursor\", value);\n } else if (field === \"id\") {\n if (value) {\n this.attr(\"id\", value);\n } else {\n this.removeAttr(\"id\");\n }\n }\n\n super.optionsChange(e);\n }\n\n attr(name, value) {\n if (this.element) {\n this.element.setAttribute(name, value);\n }\n }\n\n allAttr(attrs) {\n for (let i = 0; i < attrs.length; i++) {\n this.attr(attrs[i][0], attrs[i][1]);\n }\n }\n\n css(name, value) {\n if (this.element) {\n this.element.style[name] = value;\n }\n }\n\n allCss(styles) {\n for (let i = 0; i < styles.length; i++) {\n this.css(styles[i][0], styles[i][1]);\n }\n }\n\n removeAttr(name) {\n if (this.element) {\n this.element.removeAttribute(name);\n }\n }\n\n mapTransform(transform) {\n const attrs = [];\n if (transform) {\n attrs.push([\n TRANSFORM,\n \"matrix(\" + transform.matrix().toString(6) + \")\"\n ]);\n }\n\n return attrs;\n }\n\n renderTransform() {\n return renderAllAttr(\n this.mapTransform(this.srcElement.transform())\n );\n }\n\n transformChange(value) {\n if (value) {\n this.allAttr(this.mapTransform(value));\n } else {\n this.removeAttr(TRANSFORM);\n }\n }\n\n mapStyle() {\n const options = this.srcElement.options;\n const style = [ [ \"cursor\", options.cursor ] ];\n\n if (options.visible === false) {\n style.push([ \"display\", NONE ]);\n }\n\n return style;\n }\n\n renderStyle() {\n return renderAttr(\"style\", renderStyle(this.mapStyle(true)));\n }\n\n renderOpacity() {\n return renderAttr(\"opacity\", this.srcElement.options.opacity);\n }\n\n renderId() {\n return renderAttr(\"id\", this.srcElement.options.id);\n }\n\n createDefinitions() {\n const srcElement = this.srcElement;\n const definitions = this.definitions;\n if (srcElement) {\n const options = srcElement.options;\n let hasDefinitions;\n\n for (let field in DefinitionMap) {\n let definition = options.get(field);\n if (definition && isDefinition(field, definition)) {\n definitions[field] = definition;\n hasDefinitions = true;\n }\n }\n if (hasDefinitions) {\n this.definitionChange({\n action: \"add\",\n definitions: definitions\n });\n }\n }\n }\n\n definitionChange(e) {\n if (this.parent) {\n this.parent.definitionChange(e);\n }\n }\n\n updateDefinition(type, value) {\n const definitions = this.definitions;\n const current = definitions[type];\n const attr = DefinitionMap[type];\n const definition = {};\n if (current) {\n definition[type] = current;\n this.definitionChange({\n action: \"remove\",\n definitions: definition\n });\n delete definitions[type];\n }\n\n if (!value) {\n if (current) {\n this.removeAttr(attr);\n }\n } else {\n definition[type] = value;\n this.definitionChange({\n action: \"add\",\n definitions: definition\n });\n definitions[type] = value;\n this.attr(attr, this.refUrl(value.id));\n }\n }\n\n clearDefinitions() {\n const definitions = this.definitions;\n\n this.definitionChange({\n action: \"remove\",\n definitions: definitions\n });\n this.definitions = {};\n }\n\n renderDefinitions() {\n return renderAllAttr(this.mapDefinitions());\n }\n\n mapDefinitions() {\n const definitions = this.definitions;\n const attrs = [];\n\n for (let field in definitions) {\n attrs.push([ DefinitionMap[field], this.refUrl(definitions[field].id) ]);\n }\n\n return attrs;\n }\n\n refUrl(id) {\n const skipBaseHref = (this.options || {}).skipBaseHref;\n const baseHref = this.baseUrl().replace(/'/g, \"\\\\'\");\n const base = skipBaseHref ? '' : baseHref;\n return `url(${ base }#${ id })`;\n }\n\n baseUrl() {\n return baseUrl();\n }\n}\n\nexport default Node;\n","import Node from './node';\nimport { defined, isTransparent } from '../util';\nimport { DASH_ARRAYS, SOLID, BUTT } from '../core/constants';\nimport { NONE } from './constants';\nimport renderAllAttr from './utils/render-all-attributes';\nimport renderAttr from './utils/render-attribute';\n\nconst ATTRIBUTE_MAP = {\n \"fill.opacity\": \"fill-opacity\",\n \"stroke.color\": \"stroke\",\n \"stroke.width\": \"stroke-width\",\n \"stroke.opacity\": \"stroke-opacity\"\n};\nconst SPACE = \" \";\n\nclass PathNode extends Node {\n\n geometryChange() {\n this.attr(\"d\", this.renderData());\n this.invalidate();\n }\n\n optionsChange(e) {\n switch (e.field) {\n case \"fill\":\n if (e.value) {\n this.allAttr(this.mapFill(e.value));\n } else {\n this.removeAttr(\"fill\");\n }\n break;\n\n case \"fill.color\":\n this.allAttr(this.mapFill({ color: e.value }));\n break;\n\n case \"stroke\":\n if (e.value) {\n this.allAttr(this.mapStroke(e.value));\n } else {\n this.removeAttr(\"stroke\");\n }\n break;\n\n case \"transform\":\n this.transformChange(e.value);\n break;\n\n default:\n const name = ATTRIBUTE_MAP[e.field];\n if (name) {\n this.attr(name, e.value);\n }\n break;\n }\n\n super.optionsChange(e);\n }\n\n content() {\n if (this.element) {\n this.element.textContent = this.srcElement.content();\n }\n }\n\n renderData() {\n return this.printPath(this.srcElement);\n }\n\n printPath(path) {\n const segments = path.segments;\n const length = segments.length;\n if (length > 0) {\n const parts = [];\n let output, currentType;\n\n for (let i = 1; i < length; i++) {\n let segmentType = this.segmentType(segments[i - 1], segments[i]);\n if (segmentType !== currentType) {\n currentType = segmentType;\n parts.push(segmentType);\n }\n\n if (segmentType === \"L\") {\n parts.push(this.printPoints(segments[i].anchor()));\n } else {\n parts.push(this.printPoints(segments[i - 1].controlOut(), segments[i].controlIn(), segments[i].anchor()));\n }\n }\n\n output = \"M\" + this.printPoints(segments[0].anchor()) + SPACE + parts.join(SPACE);\n if (path.options.closed) {\n output += \"Z\";\n }\n\n return output;\n }\n }\n\n printPoints() {\n const points = arguments;\n const length = points.length;\n const result = [];\n\n for (let i = 0; i < length; i++) {\n result.push(points[i].toString(3));\n }\n\n return result.join(\" \");\n }\n\n segmentType(segmentStart, segmentEnd) {\n return segmentStart.controlOut() && segmentEnd.controlIn() ? \"C\" : \"L\";\n }\n\n mapStroke(stroke) {\n const attrs = [];\n\n if (stroke && !isTransparent(stroke.color)) {\n attrs.push([ \"stroke\", stroke.color ]);\n attrs.push([ \"stroke-width\", stroke.width ]);\n attrs.push([ \"stroke-linecap\", this.renderLinecap(stroke) ]);\n attrs.push([ \"stroke-linejoin\", stroke.lineJoin ]);\n\n if (defined(stroke.opacity)) {\n attrs.push([ \"stroke-opacity\", stroke.opacity ]);\n }\n\n if (defined(stroke.dashType)) {\n attrs.push([ \"stroke-dasharray\", this.renderDashType(stroke) ]);\n }\n } else {\n attrs.push([ \"stroke\", NONE ]);\n }\n\n return attrs;\n }\n\n renderStroke() {\n return renderAllAttr(\n this.mapStroke(this.srcElement.options.stroke)\n );\n }\n\n renderDashType(stroke) {\n const { dashType, width = 1 } = stroke;\n\n if (dashType && dashType !== SOLID) {\n const dashArray = DASH_ARRAYS[dashType.toLowerCase()];\n const result = [];\n\n for (let i = 0; i < dashArray.length; i++) {\n result.push(dashArray[i] * width);\n }\n\n return result.join(\" \");\n }\n }\n\n renderLinecap(stroke) {\n const { dashType, lineCap } = stroke;\n\n return (dashType && dashType !== \"solid\") ? BUTT : lineCap;\n }\n\n mapFill(fill) {\n const attrs = [];\n if (!(fill && fill.nodeType === \"Gradient\")) {\n if (fill && !isTransparent(fill.color)) {\n attrs.push([ \"fill\", fill.color ]);\n\n if (defined(fill.opacity)) {\n attrs.push([ \"fill-opacity\", fill.opacity ]);\n }\n } else {\n attrs.push([ \"fill\", NONE ]);\n }\n }\n\n return attrs;\n }\n\n renderFill() {\n return renderAllAttr(\n this.mapFill(this.srcElement.options.fill)\n );\n }\n\n template() {\n return ``;\n }\n}\n\nexport default PathNode;\n","import GradientNode from './gradient-node';\n\nclass RadialGradientNode extends GradientNode {\n template() {\n return `${ this.renderChildren() }`;\n }\n\n mapCoordinates() {\n const srcElement = this.srcElement;\n const center = srcElement.center();\n const radius = srcElement.radius();\n const attrs = [\n [ \"cx\", center.x ],\n [ \"cy\", center.y ],\n [ \"r\", radius ],\n this.mapSpace()\n ];\n return attrs;\n }\n}\n\nexport default RadialGradientNode;","import PathNode from './path-node';\n\nclass RectNode extends PathNode {\n\n geometryChange() {\n const geometry = this.srcElement.geometry();\n this.attr(\"x\", geometry.origin.x);\n this.attr(\"y\", geometry.origin.y);\n this.attr(\"width\", geometry.size.width);\n this.attr(\"height\", geometry.size.height);\n this.attr(\"rx\", geometry.cornerRadius[0]);\n this.attr(\"ry\", geometry.cornerRadius[1]);\n this.invalidate();\n }\n\n size() {\n return this.srcElement.geometry().size;\n }\n\n origin() {\n return this.srcElement.geometry().origin;\n }\n\n rx() {\n return this.srcElement.geometry().cornerRadius[0];\n }\n\n ry() {\n return this.srcElement.geometry().cornerRadius[1];\n }\n\n template() {\n return ``;\n }\n}\n\nexport default RectNode;\n","import BaseNode from '../core/base-node';\nimport Node from './node';\nimport DefinitionNode from './definition-node';\n\nclass RootNode extends Node {\n constructor(options) {\n super();\n this.options = options;\n this.defs = new DefinitionNode();\n }\n\n attachTo(domElement) {\n this.element = domElement;\n this.defs.attachTo(domElement.firstElementChild);\n }\n\n clear() {\n BaseNode.prototype.clear.call(this);\n }\n\n template() {\n return this.defs.render() + this.renderChildren();\n }\n\n definitionChange(e) {\n this.defs.definitionChange(e);\n }\n}\n\nexport default RootNode;","import BaseSurface from '../core/surface';\nimport RootNode from './root-node';\nimport Group from '../shapes/group';\nimport transform from '../geometry/transform';\nimport renderSVG from './utils/render-svg';\nimport { SVG_NS } from './constants';\nimport { bindEvents, unbindEvents, elementStyles } from '../util';\n\nimport ArcNode from './arc-node';\nimport CircleNode from './circle-node';\nimport GroupNode from './group-node';\nimport ImageNode from './image-node';\nimport MultiPathNode from './multi-path-node';\nimport PathNode from './path-node';\nimport RectNode from './rect-node';\nimport TextNode from './text-node';\nimport NODE_MAP from './node-map';\n\nNODE_MAP.Arc = ArcNode;\nNODE_MAP.Circle = CircleNode;\nNODE_MAP.Group = GroupNode;\nNODE_MAP.Image = ImageNode;\nNODE_MAP.MultiPath = MultiPathNode;\nNODE_MAP.Path = PathNode;\nNODE_MAP.Rect = RectNode;\nNODE_MAP.Text = TextNode;\n\nconst RTL = 'rtl';\n\nfunction alignToScreen(element) {\n let ctm;\n\n try {\n ctm = element.getScreenCTM ? element.getScreenCTM() : null;\n } catch (e) { } // eslint-disable-line no-empty\n\n if (ctm) {\n const left = - ctm.e % 1;\n const top = - ctm.f % 1;\n const style = element.style;\n\n if (left !== 0 || top !== 0) {\n style.left = left + \"px\";\n style.top = top + \"px\";\n }\n }\n}\n\nclass Surface extends BaseSurface {\n get type() {\n return \"svg\";\n }\n\n constructor(element, options) {\n super(element, options);\n\n this._root = new RootNode(Object.assign({\n rtl: elementStyles(element, 'direction').direction === RTL\n }, this.options));\n\n renderSVG(this.element, this._template());\n\n this._rootElement = this.element.firstElementChild;\n\n alignToScreen(this._rootElement);\n\n this._root.attachTo(this._rootElement);\n\n bindEvents(this.element, {\n click: this._click,\n mouseover: this._mouseenter,\n mouseout: this._mouseleave,\n mousemove: this._mousemove\n });\n\n this.resize();\n }\n\n destroy() {\n if (this._root) {\n this._root.destroy();\n this._root = null;\n this._rootElement = null;\n unbindEvents(this.element, {\n click: this._click,\n mouseover: this._mouseenter,\n mouseout: this._mouseleave,\n mousemove: this._mousemove\n });\n }\n\n super.destroy();\n }\n\n translate(offset) {\n const viewBox = `${ Math.round(offset.x) } ${ Math.round(offset.y) } ${ this._size.width } ${ this._size.height }`;\n\n this._offset = offset;\n this._rootElement.setAttribute(\"viewBox\", viewBox);\n }\n\n draw(element) {\n super.draw(element);\n this._root.load([ element ]);\n }\n\n clear() {\n super.clear();\n this._root.clear();\n }\n\n svg() {\n return \"\" + this._template();\n }\n\n exportVisual() {\n let { _visual: visual, _offset: offset } = this;\n\n if (offset) {\n const wrap = new Group();\n wrap.children.push(visual);\n\n wrap.transform(\n transform().translate(-offset.x, -offset.y)\n );\n\n visual = wrap;\n }\n\n return visual;\n }\n\n _resize() {\n if (this._offset) {\n this.translate(this._offset);\n }\n }\n\n _template() {\n return `${ this._root.render() }`;\n }\n}\n\nexport default Surface;\n","import PathNode from './path-node';\nimport renderStyle from './utils/render-style';\nimport renderAttr from './utils/render-attribute';\nimport { htmlEncode, support } from '../common';\nimport { normalizeText } from '../text-metrics';\n\nconst ENTITY_REGEX = /&(?:[a-zA-Z]+|#\\d+);/g;\n\nfunction decodeEntities(text) {\n if (!text || typeof text !== \"string\" || !ENTITY_REGEX.test(text)) {\n return text;\n }\n\n const element = decodeEntities._element;\n ENTITY_REGEX.lastIndex = 0;\n\n return text.replace(ENTITY_REGEX, (match) => {\n element.innerHTML = match;\n\n return element.textContent || element.innerText;\n });\n}\n\nif (typeof document !== \"undefined\") {\n decodeEntities._element = document.createElement(\"span\");\n}\n\nclass TextNode extends PathNode {\n\n geometryChange() {\n const pos = this.pos();\n this.attr(\"x\", pos.x);\n this.attr(\"y\", pos.y);\n this.invalidate();\n }\n\n optionsChange(e) {\n if (e.field === \"font\") {\n this.attr(\"style\", renderStyle(this.mapStyle()));\n this.geometryChange();\n } else if (e.field === \"content\") {\n super.content(this.srcElement.content());\n }\n\n super.optionsChange(e);\n }\n\n mapStyle(encode) {\n const style = super.mapStyle(encode);\n let font = this.srcElement.options.font;\n\n if (encode) {\n font = htmlEncode(font);\n }\n\n style.push([ \"font\", font ], [ \"white-space\", \"pre\" ]);\n\n return style;\n }\n\n pos() {\n const pos = this.srcElement.position();\n const size = this.srcElement.measure();\n return pos.clone().setY(pos.y + size.baseline);\n }\n\n renderContent() {\n let content = this.srcElement.content();\n content = decodeEntities(content);\n content = htmlEncode(content);\n\n return normalizeText(content);\n }\n\n renderTextAnchor() {\n let anchor;\n\n if ((this.options || {}).rtl && !(support.browser.msie || support.browser.edge)) {\n anchor = 'end';\n }\n\n return renderAttr(\"text-anchor\", anchor);\n }\n\n template() {\n return `${ this.renderContent() }`;\n }\n}\n\nexport default TextNode;\n","import renderAttr from './render-attribute';\n\nexport default function renderAllAttr(attrs) {\n let output = \"\";\n for (let i = 0; i < attrs.length; i++) {\n output += renderAttr(attrs[i][0], attrs[i][1]);\n }\n\n return output;\n}","import { defined } from '../../util';\n\nexport default function renderAttr(name, value) {\n return (defined(value) && value !== null) ? ` ${ name }=\"${ value }\" ` : \"\";\n}","import { defined } from '../../util';\n\nexport default function renderStyle(attrs) {\n let output = \"\";\n for (let i = 0; i < attrs.length; i++) {\n let value = attrs[i][1];\n if (defined(value)) {\n output += attrs[i][0] + \":\" + value + \";\";\n }\n }\n\n if (output !== \"\") {\n return output;\n }\n}","import { SVG_NS } from '../constants';\n\nlet renderSVG = function(container, svg) {\n container.innerHTML = svg;\n};\n\nif (typeof document !== \"undefined\") {\n const testFragment = \"\";\n const testContainer = document.createElement(\"div\");\n const hasParser = typeof DOMParser !== \"undefined\";\n\n testContainer.innerHTML = testFragment;\n\n if (hasParser && testContainer.firstChild.namespaceURI !== SVG_NS) {\n renderSVG = function(container, svg) {\n const parser = new DOMParser();\n const chartDoc = parser.parseFromString(svg, \"text/xml\");\n const importedDoc = document.adoptNode(chartDoc.documentElement);\n\n container.innerHTML = \"\";\n container.appendChild(importedDoc);\n };\n }\n}\n\nexport default renderSVG;","export { default as LRUCache } from './text-metrics/lru-cache';\nexport { default as TextMetrics } from './text-metrics/text-metrics';\nexport { default as measureText } from './text-metrics/measure-text';\n\nexport * from './text-metrics/util';","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 as append } from './util/append';\nexport { default as arabicToRoman } from './util/arabic-to-roman';\nexport { default as createPromise } from './util/create-promise';\nexport { default as defined } from './util/defined';\nexport { default as definitionId } from './util/definition-id';\nexport { default as deg } from './util/deg';\nexport { default as encodeBase64 } from './util/encode-base64';\nexport { default as eventCoordinates } from './util/event-coordinates';\nexport { default as eventElement } from './util/event-element';\nexport { default as isTransparent } from './util/is-transparent';\nexport { default as last } from './util/last';\nexport { default as limitValue } from './util/limit-value';\nexport { default as mergeSort } from './util/merge-sort';\nexport { default as now } from './util/now';\nexport { default as promiseAll } from './util/promise-all';\nexport { default as rad } from './util/rad';\nexport { default as round } from './util/round';\nexport { default as valueOrDefault } from './util/value-or-default';\nexport { default as bindEvents } from './util/bind-events';\nexport { default as elementOffset } from './util/element-offset';\nexport { default as elementSize } from './util/element-size';\nexport { default as elementStyles } from './util/element-styles';\nexport { default as unbindEvents } from './util/unbind-events';\nexport { default as elementPadding } from './util/element-padding';\nexport { default as elementScale } from './util/element-scale';\n\nexport * from './util/constants';\nexport * from './text-metrics';\n","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}","export default function bindEvents(element, events) {\n for (let eventName in events) {\n const eventNames = eventName.trim().split(\" \");\n for (let idx = 0; idx < eventNames.length; idx++) {\n element.addEventListener(eventNames[idx], events[eventName], false);\n }\n }\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}","export default function elementOffset(element) {\n const box = element.getBoundingClientRect();\n\n const documentElement = document.documentElement;\n\n return {\n top: box.top + (window.pageYOffset || documentElement.scrollTop) - (documentElement.clientTop || 0),\n left: box.left + (window.pageXOffset || documentElement.scrollLeft) - (documentElement.clientLeft || 0)\n };\n}","import { default as elementStyles } from './element-styles';\n\nexport default function elementPadding(element) {\n const { paddingLeft, paddingTop } = elementStyles(element, [ \"paddingLeft\", \"paddingTop\" ]);\n return {\n top: parseFloat(paddingTop),\n left: parseFloat(paddingLeft)\n };\n}\n","import Matrix from '../geometry/matrix';\n\nconst matrixRegexp = /matrix\\((.*)\\)/;\n\nfunction parseMatrix(matrixString) {\n const match = matrixString.match(matrixRegexp);\n if (match === null || match.length !== 2) {\n return Matrix.unit();\n }\n\n const members = match[1].split(',').map(x => parseFloat(x));\n return new Matrix(...members);\n}\n\nfunction transformMatrix(element) {\n const transform = getComputedStyle(element).transform;\n\n if (transform === 'none') {\n return Matrix.unit();\n }\n\n return parseMatrix(transform);\n}\n\nexport default function elementScale(element) {\n if (!element) {\n return Matrix.unit();\n }\n\n let matrix = transformMatrix(element);\n let parent = element.parentElement;\n while (parent) {\n const parentMatrix = transformMatrix(parent);\n matrix = matrix.multiplyCopy(parentMatrix);\n parent = parent.parentElement;\n }\n\n matrix.b = matrix.c = matrix.e = matrix.f = 0;\n return matrix;\n}\n","import elementStyles from './element-styles';\nimport defined from './defined';\n\nfunction getPixels(value) {\n if (isNaN(value)) {\n return value;\n }\n return value + \"px\";\n}\n\nexport default function elementSize(element, size) {\n if (size) {\n const { width, height } = size;\n\n if (defined(width)) {\n element.style.width = getPixels(width);\n }\n\n if (defined(height)) {\n element.style.height = getPixels(height);\n }\n\n } else {\n const size = elementStyles(element, [ 'width', 'height' ]);\n\n return {\n width: parseInt(size.width, 10),\n height: parseInt(size.height, 10)\n };\n }\n}","export default function elementStyles(element, styles) {\n const result = {};\n const style = window.getComputedStyle(element) || {};\n const stylesArray = Array.isArray(styles) ? styles : [ styles ];\n\n for (let idx = 0; idx < stylesArray.length; idx++) {\n let field = stylesArray[idx];\n result[field] = style[field];\n }\n\n return result;\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 eventCoordinates(e) {\n if (defined((e.x || {}).location)) {\n return {\n x: e.x.location,\n y: e.y.location\n };\n }\n\n return {\n x: e.pageX || e.clientX || 0,\n y: e.pageY || e.clientY || 0\n };\n}","export default function eventElement(e = {}) {\n return e.touch ? e.touch.initialTouch : e.target;\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}","const now = Date.now || function() {\n return new Date().getTime();\n};\n\nexport default now;\n","export default function promiseAll(promises) {\n return Promise.all(promises);\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}","export default function unbindEvents(element, events = {}) {\n for (let name in events) {\n const eventNames = name.trim().split(\" \");\n for (let idx = 0; idx < eventNames.length; idx++) {\n element.removeEventListener(eventNames[idx], events[name], false);\n }\n }\n}","import defined from './defined';\n\nexport default function valueOrDefault(value, defaultValue) {\n return defined(value) ? value : defaultValue;\n}","import { blockNodes, addStyles, changeTextBlock } from './blockNode';\n/**\n * Aligning block elements in the selection.\n *\n * @returns {boolean} - Returns true if any alignment is applied.\n */\nexport const alignBlocks = (actions, commandName) => (state, dispatch) => {\n const blocks = blockNodes(state);\n const tr = state.tr;\n tr.setMeta('commandName', commandName);\n blocks.forEach(node => {\n if (node.type.isTextblock) {\n let newAttrs = {};\n const action = actions.find(n => n.node === node.type.name);\n if (action) {\n newAttrs = addStyles(node, action.style);\n }\n changeTextBlock(tr, node, node.type, newAttrs);\n }\n });\n const result = tr.docChanged;\n if (result) {\n dispatch(tr.scrollIntoView());\n }\n return result;\n};\nexport const isAligned = (state, actions) => {\n const blocks = blockNodes(state);\n let result = false;\n blocks.forEach(node => {\n if (!result && node.type.isTextblock && node.attrs.style) {\n const action = actions.find(a => a.node === node.type.name);\n if (action) {\n result = action.style.every(style => {\n return !!style.value && new RegExp(`${style.name}:\\\\s?${style.value}`, 'i').test(node.attrs.style);\n });\n }\n }\n });\n return result;\n};\n","import * as tslib_1 from \"tslib\";\nimport { changeStylesString } from './utils';\nimport { ReplaceAroundStep } from 'prosemirror-transform';\nimport { Fragment, Slice } from 'prosemirror-model';\nimport { NodeSelection } from 'prosemirror-state';\n/**\n * @hidden\n */\nconst canChangeType = (stateDoc, pos, type) => {\n let $pos = stateDoc.resolve(pos), index = $pos.index();\n return $pos.parent.canReplaceWith(index, index + 1, type);\n};\n/**\n * Changes the type or the attributes of the passed node.\n *\n * @example\n * See `cleanTextBlockFormatting` or `formatBlockElements` function.\n */\nexport const changeTextBlock = (tr, node, nodeType, attrs) => {\n if (!nodeType.isTextblock) {\n return false;\n }\n const { ranges } = tr.selection;\n ranges.forEach(range => {\n const mapFrom = tr.steps.length;\n const from = range.$from.pos;\n const to = range.$to.pos;\n tr.doc.nodesBetween(from, to, (currNode, pos) => {\n if (currNode.eq(node) &&\n currNode.isTextblock &&\n !currNode.hasMarkup(nodeType, attrs) &&\n canChangeType(tr.doc, tr.mapping.slice(mapFrom).map(pos), nodeType)) {\n // Ensure all markup that isn't allowed in the new node type is cleared\n tr.clearIncompatible(tr.mapping.slice(mapFrom).map(pos, 1), nodeType);\n let mapping = tr.mapping.slice(mapFrom);\n let startM = mapping.map(pos, 1), endM = mapping.map(pos + currNode.nodeSize, 1);\n let slice = new Slice(Fragment.from(nodeType.create(attrs, null, currNode.marks)), 0, 0);\n tr.step(new ReplaceAroundStep(startM, endM, startM + 1, endM - 1, slice, 1, true));\n return false; // this will skip the node children\n }\n });\n });\n};\n/**\n * Traverses the selection and returns the block nodes in it.\n *\n * @example\n * See `cleanTextBlockFormatting` function.\n */\nexport const blockNodes = (state, options = { blocksInSelection: false }) => {\n const { doc, selection } = state;\n let { $from, ranges } = selection;\n const { blocksInSelection } = options;\n const result = [];\n const selNode = selection instanceof NodeSelection ? selection.node : undefined;\n if (selNode) {\n if (selNode.isBlock) {\n result.push(selNode);\n selNode.nodesBetween(0, selNode.content.size, node => {\n if (node.isBlock) {\n result.push(node);\n }\n });\n }\n else if (!blocksInSelection && $from.parent && $from.parent.isBlock) {\n result.push($from.parent);\n }\n }\n else {\n ranges.forEach(range => {\n const from = range.$from.pos;\n const to = range.$to.pos;\n doc.nodesBetween(from, to, (node, pos, _parent, _index) => {\n if (node.isBlock && (!blocksInSelection || (pos >= from && pos + node.content.size + 2 <= to))) {\n result.push(node);\n }\n });\n });\n }\n return result;\n};\nexport const formatBlockElements = (value, commandName) => (state, dispatch) => {\n const blocks = blockNodes(state);\n const nodes = state.schema.nodes;\n const tr = state.tr;\n tr.setMeta('commandName', commandName);\n tr.setMeta('args', { value });\n blocks.forEach(node => {\n if (node.type.isTextblock) {\n if (value === 'p') {\n const _a = node.attrs, { level } = _a, attrs = tslib_1.__rest(_a, [\"level\"]);\n changeTextBlock(tr, node, nodes.paragraph, attrs);\n }\n else if (/^h[1-6]$/i.test(value)) {\n const level = parseInt(value.substr(1), 10);\n changeTextBlock(tr, node, nodes.heading, Object.assign({}, node.attrs, { level }));\n }\n else if (value === 'blockquote') {\n const _b = node.attrs, { level } = _b, attrs = tslib_1.__rest(_b, [\"level\"]);\n changeTextBlock(tr, node, nodes.blockquote, attrs);\n }\n }\n });\n const result = tr.docChanged;\n if (result) {\n dispatch(tr.scrollIntoView());\n }\n return result;\n};\n/**\n * Removes the style and class attributes of text block elements.\n * Requires to dispatch the transaction.\n *\n * @example\n * See `cleanFormatting` function.\n */\nexport const cleanTextBlockFormatting = (tr, options = { blocksInSelection: true }) => {\n const { doc, selection } = tr;\n const { blocksInSelection, blockNodeType } = options;\n const nodes = blockNodes({ doc, selection }, { blocksInSelection });\n const textBlocks = nodes.filter(node => node.isTextblock);\n textBlocks.forEach(node => {\n const _a = node.attrs || {}, { style = '', class: className = '' } = _a, attrs = tslib_1.__rest(_a, [\"style\", \"class\"]);\n const nodeType = blockNodeType || node.type;\n if (style || className || nodeType !== node.type) {\n changeTextBlock(tr, node, nodeType, attrs);\n }\n });\n};\nexport const getBlockFormats = (state) => {\n const blocks = blockNodes(state);\n const nodes = state.schema.nodes;\n const result = [];\n blocks.forEach((node) => {\n if (node.type === nodes.paragraph) {\n result.push('p');\n }\n else if (node.type === nodes.heading) {\n result.push(`h${node.attrs.level}`);\n }\n else if (node.type === nodes.blockquote && nodes.blockquote.isTextblock) {\n // In case the blockquote can have inline content.\n result.push('blockquote');\n }\n });\n return result;\n};\nexport const addStyles = (node, stylesToApply) => {\n let currentStyles = node.attrs.style, changedStyleResult, toChange;\n if (currentStyles) {\n stylesToApply.forEach(style => {\n toChange = { style: style.name, value: /^.+$/, newValue: style.value };\n changedStyleResult = changeStylesString(currentStyles, toChange);\n currentStyles = changedStyleResult.changed ? changedStyleResult.style : currentStyles;\n });\n }\n const reducer = (acc, curr) => ((acc && curr.value ? acc + ' ' : '') + curr.value ? `${curr.name}: ${curr.value};` : '');\n currentStyles = currentStyles || stylesToApply.reduce(reducer, '');\n return Object.assign({}, node.attrs, { style: currentStyles || null });\n};\nexport const hasNode = (state, nodeType) => {\n let { from, to } = state.selection;\n let result = false;\n state.doc.nodesBetween(from, to, node => {\n result = result || node.type === nodeType;\n return !result;\n });\n return result;\n};\nexport const parentBlockFormat = (state) => {\n const formats = getBlockFormats(state);\n return new Set(formats).size === 1 ? formats[0] : null;\n};\n/**\n * **Deprecated.** Use `parentBlockFormat` function instead.\n */\nexport const activeNode = (state) => {\n return { tag: parentBlockFormat(state) || '' };\n};\n","import { wrapIn } from 'prosemirror-commands';\nexport const blockquote = (state, dispatch) => {\n return wrapIn(state.schema.nodes.blockquote)(state, dispatch);\n};\nexport const liftBlockquote = (state, dispatch) => {\n const { $from, $to } = state.selection;\n const nodeType = state.schema.nodes.blockquote;\n const doc = state.doc;\n let target = -1;\n const range = $from.blockRange($to);\n if (range) {\n doc.nodesBetween(range.start, range.end, (node, pos, _parent, _index) => {\n if (node.type === nodeType) {\n target = pos;\n }\n });\n }\n const result = target !== -1;\n if (dispatch && result) {\n dispatch(state.tr.lift(range, doc.resolve(target).depth));\n }\n return result;\n};\n","import { cleanTextBlockFormatting } from './blockNode';\nimport { cleanMarks } from './mark';\n/**\n * A command which removes the inline formatting, class and style attributes of paragraph and heading elements in the selection.\n */\nexport const cleanFormatting = (options = { blocksInSelection: true }) => (state, dispatch) => {\n const tr = state.tr;\n const { blocksInSelection, blockNodeType, exceptMarks } = options;\n const except = (exceptMarks || [state.schema.marks.link]).filter(Boolean);\n cleanMarks(tr, { except });\n cleanTextBlockFormatting(tr, { blocksInSelection, blockNodeType });\n const result = tr.docChanged;\n if (result && dispatch) {\n dispatch(tr);\n }\n return result;\n};\n","const style = (name, value) => {\n return { name: name, value: value };\n};\nexport const alignLeftRules = [\n { node: 'paragraph', style: [style('text-align', 'left')] },\n { node: 'heading', style: [style('text-align', 'left')] }\n];\nexport const alignRightRules = [\n { node: 'paragraph', style: [style('text-align', 'right')] },\n { node: 'heading', style: [style('text-align', 'right')] }\n];\nexport const alignCenterRules = [\n { node: 'paragraph', style: [style('text-align', 'center')] },\n { node: 'heading', style: [style('text-align', 'center')] }\n];\nexport const alignJustifyRules = [\n { node: 'paragraph', style: [style('text-align', 'justify')] },\n { node: 'heading', style: [style('text-align', 'justify')] }\n];\nexport const alignRemoveRules = [\n { node: 'paragraph', style: [style('text-align', '')] },\n { node: 'heading', style: [style('text-align', '')] }\n];\n","/**\n * The object of the Bold command.\n */\nexport const bold = {\n mark: 'strong',\n altMarks: ['b'],\n altStyle: { name: 'font-weight', value: /^(bold(er)?|[5-9]\\d{2,})$/ }\n};\n/**\n * The object of the Italic command.\n */\nexport const italic = {\n mark: 'em',\n altMarks: ['i'],\n altStyle: { name: 'font-style', value: /^italic$/i }\n};\n/**\n * The object of the Underline command.\n */\nexport const underline = {\n mark: 'u',\n altStyle: { name: 'text-decoration', value: /^underline$/i }\n};\n/**\n * The object of the Strikethrough command.\n */\nexport const strikethrough = {\n mark: 'del',\n altStyle: { name: 'text-decoration', value: /^line-through$/i }\n};\n/**\n * The object of the Subscript command.\n */\nexport const subscript = {\n mark: 'sub'\n};\n/**\n * The object of the Superscript command.\n */\nexport const superscript = {\n mark: 'sup'\n};\n/**\n * The object of the Link tool settings.\n */\nexport const link = {\n mark: 'link'\n};\n/**\n * The object of the Unlink tool settings.\n */\nexport const unlink = {\n mark: 'link'\n};\n","export const rowTypeAttr = 'k-parent-node';\nexport const colgroupAttr = 'k-colgroup-data';\n","import { listsTypes } from './list-settings';\n/**\n * The object of the Indent tool settings.\n */\nexport const indentRules = {\n nodes: [{\n node: 'paragraph',\n style: 'margin-left',\n rtlStyle: 'margin-right',\n step: 30,\n unit: 'px'\n }, {\n node: 'heading',\n style: 'margin-left',\n rtlStyle: 'margin-right',\n step: 30,\n unit: 'px'\n }],\n listsTypes: Object.assign({}, listsTypes)\n};\n/**\n * The object of the Outdent tool settings.\n */\nexport const outdentRules = {\n nodes: [{\n node: 'paragraph',\n style: 'margin-left',\n rtlStyle: 'margin-right',\n step: -30,\n unit: 'px'\n }, {\n node: 'heading',\n style: 'margin-left',\n rtlStyle: 'margin-right',\n step: -30,\n unit: 'px'\n }],\n listsTypes: Object.assign({}, listsTypes)\n};\n","import { chainCommands, exitCode, newlineInCode, createParagraphNear, liftEmptyBlock, splitBlockKeepMarks, deleteSelection, joinBackward, selectNodeBackward } from 'prosemirror-commands';\nimport { undo, redo } from 'prosemirror-history';\nimport { undoInputRule } from 'prosemirror-inputrules';\nimport { splitListItemKeepMarks } from '../lists';\nimport { bold, italic, underline } from './commands';\nimport { toggleInlineFormat } from './../inline-style';\nimport { expandToWordWrap } from '../utils';\nconst mac = typeof navigator !== 'undefined' ? /Mac/.test(navigator.platform) : false;\n// https://github.com/ProseMirror/prosemirror-example-setup/blob/master/src/keymap.js\nexport const buildKeymap = (schema, options) => {\n const keys = {};\n const applyToWord = (options && options.applyToWord) || false;\n keys['Mod-z'] = undo;\n keys['Shift-Mod-z'] = redo;\n // tslint:disable-next-line:no-string-literal\n keys['Backspace'] = chainCommands(undoInputRule, deleteSelection, joinBackward, selectNodeBackward);\n // tslint:disable-next-line:no-string-literal\n keys['Enter'] = chainCommands(newlineInCode, createParagraphNear, liftEmptyBlock, splitBlockKeepMarks);\n if (!mac) {\n keys['Mod-y'] = redo;\n }\n if (schema.marks.strong) {\n keys['Mod-b'] = expandToWordWrap(toggleInlineFormat, Object.assign({}, bold, { applyToWord }));\n }\n if (schema.marks.em) {\n keys['Mod-i'] = expandToWordWrap(toggleInlineFormat, Object.assign({}, italic, { applyToWord }));\n }\n if (schema.marks.u) {\n keys['Mod-u'] = expandToWordWrap(toggleInlineFormat, Object.assign({}, underline, { applyToWord }));\n }\n if (schema.nodes.hard_break) {\n const br = schema.nodes.hard_break;\n const cmd = chainCommands(exitCode, (state, dispatch) => {\n dispatch(state.tr.replaceSelectionWith(br.create()).scrollIntoView());\n return true;\n });\n keys['Shift-Enter'] = cmd;\n }\n return keys;\n};\nexport const buildListKeymap = (schema) => {\n const keys = {};\n if (schema.nodes.list_item) {\n // tslint:disable-next-line:no-string-literal\n keys['Enter'] = splitListItemKeepMarks(schema.nodes.list_item);\n }\n return keys;\n};\n","export const listsTypes = {\n orderedList: 'ordered_list',\n bulletList: 'bullet_list',\n listItem: 'list_item'\n};\n/**\n * The object of the OrderedList tool settings.\n */\nexport const orderedList = {\n listType: listsTypes.orderedList,\n types: Object.assign({}, listsTypes)\n};\n/**\n * The object of the UnorderedList tool settings.\n */\nexport const bulletList = {\n listType: listsTypes.bulletList,\n types: Object.assign({}, listsTypes)\n};\n","import { Schema } from 'prosemirror-model';\nimport { tableNodes } from 'prosemirror-tables';\nimport { domToPmDoc, htmlToFragment, pmDocToFragment } from '../source';\nimport { rowTypeAttr, colgroupAttr } from './constants';\nconst hole = 0;\nconst blockquoteDOM = ['blockquote', hole], hrDOM = ['hr'], preDOM = ['pre', ['code', hole]];\nconst olDOM = ['ol', 0], ulDOM = ['ul', 0], liDOM = ['li', 0];\nconst domAttributes = (dom) => {\n const result = {};\n let attributes = dom.attributes, attr;\n for (let i = 0; i < attributes.length; i++) {\n attr = attributes[i];\n result[attr.name] = attr.value;\n }\n return result;\n};\nconst defaultAttrs = (attrs) => {\n const nodeAttrs = {};\n attrs.forEach(attr => {\n nodeAttrs[attr] = { default: null };\n });\n return nodeAttrs;\n};\nconst commonAttributes = () => defaultAttrs(['style', 'class', 'id']);\nconst hasAttrs = (attrs, exclude) => {\n for (let attr in attrs) {\n if (attr && attrs[attr] !== null && attr !== exclude) {\n return true;\n }\n }\n return false;\n};\nconst pmAttributes = (attrs, exclude) => {\n const result = {};\n for (let attr in attrs) {\n if (attr && attrs[attr] !== null && attr !== exclude) {\n result[attr] = attrs[attr];\n }\n }\n return result;\n};\nconst tagMark = tag => {\n return {\n [tag]: {\n name: tag,\n inclusive: true,\n parseDOM: [{ tag: tag }],\n toDOM: () => [tag, hole]\n }\n };\n};\nconst marks = Object.assign({ \n // :: MarkSpec A link. Has `href` and `title` attributes. `title`\n // defaults to the empty string. Rendered and parsed as an ``\n // element.\n link: {\n attrs: Object.assign({}, commonAttributes(), { href: { default: null }, target: { default: null }, title: { default: null } }),\n inclusive: false,\n parseDOM: [{ tag: 'a', getAttrs: domAttributes }],\n toDOM: (node) => ['a', pmAttributes(node.attrs), hole]\n } }, tagMark('strong'), tagMark('b'), tagMark('em'), tagMark('i'), tagMark('u'), tagMark('del'), tagMark('sub'), tagMark('sup'), tagMark('code'), { style: {\n attrs: Object.assign({}, commonAttributes()),\n parseDOM: [{\n tag: 'span',\n getAttrs: domAttributes\n }],\n toDOM: node => hasAttrs(node.attrs) ?\n ['span', pmAttributes(node.attrs), hole] : ['span', hole]\n } });\nconst cellAttribute = (name) => {\n return {\n [name]: {\n default: null,\n getFromDOM: (cell) => cell.getAttribute(name),\n setDOMAttr: (value, attrs) => { attrs[name] = value; }\n }\n };\n};\nconst cellAttributes = Object.assign({}, cellAttribute('style'), cellAttribute('class'), cellAttribute('id'), cellAttribute('headers'));\nconst colgroupNodes = {\n doc: { content: 'colgroup*' },\n col: {\n attrs: defaultAttrs(['id', 'class', 'style', 'span']),\n parseDOM: [{ getAttrs: domAttributes, tag: 'col' }],\n toDOM: node => ['col', node.attrs]\n },\n colgroup: {\n attrs: defaultAttrs(['id', 'class', 'style', 'span']),\n content: 'col*',\n parseDOM: [{ getAttrs: domAttributes, tag: 'colgroup' }],\n toDOM: node => ['colgroup', node.attrs, 0]\n },\n text: { inline: true, group: 'inline' }\n};\nconst colgroupSchema = new Schema({ nodes: colgroupNodes, marks: {} });\n// will be removed when we implement our own columnResizing\nconst shouldSkipColgroup = (node) => {\n let shouldSkip = false;\n const row = node.child(0);\n for (let r = 0; r < row.childCount; r++) {\n const cell = row.child(r);\n if (cell.attrs.colwidth) {\n shouldSkip = true;\n break;\n }\n }\n return shouldSkip;\n};\nconst tNodes = tableNodes({ tableGroup: 'block', cellContent: 'block+', cellAttributes });\ntNodes.table_row.attrs = Object.assign({}, tNodes.table_row.attrs, defaultAttrs([rowTypeAttr, 'style', 'class', 'id']));\ntNodes.table_row.toDOM = node => ['tr', pmAttributes(node.attrs), 0];\ntNodes.table_row.parseDOM = [{ tag: 'tr', getAttrs: domAttributes }];\ntNodes.table.attrs = Object.assign({}, tNodes.table.attrs, defaultAttrs(['style', 'class', 'id', colgroupAttr]));\ntNodes.table.toDOM = (node) => {\n const tableAttrs = hasAttrs(node.attrs) ? pmAttributes(node.attrs, colgroupAttr) : {};\n let colgroup = null;\n if (node.attrs[colgroupAttr] && !shouldSkipColgroup(node)) {\n const doc = domToPmDoc(htmlToFragment(node.attrs[colgroupAttr]), colgroupSchema, { preserveWhitespace: false });\n const fragment = pmDocToFragment(doc);\n const colgroupEl = fragment.firstChild;\n if (colgroupEl) {\n const cols = Array.from(colgroupEl.children).map((c) => ['col', domAttributes(c)]);\n colgroup = [\n 'colgroup',\n domAttributes(colgroupEl),\n ...cols\n ];\n }\n }\n return colgroup ? ['table', tableAttrs, colgroup, ['tbody', 0]] :\n ['table', tableAttrs, ['tbody', 0]];\n};\ntNodes.table.parseDOM = [{\n tag: 'table',\n getAttrs: (node) => {\n const attrs = domAttributes(node);\n const colgroup = Array.from(node.childNodes).find(c => c.nodeName === 'COLGROUP');\n if (colgroup) {\n attrs[colgroupAttr] = colgroup.outerHTML;\n }\n return attrs;\n }\n }];\nconst nodes = Object.assign({ \n // :: NodeSpec The top level document node.\n doc: {\n content: 'block+'\n }, \n // :: NodeSpec A plain paragraph textblock. Represented in the DOM\n // as a `

    ` element.\n paragraph: {\n content: 'inline*',\n group: 'block',\n attrs: Object.assign({}, commonAttributes()),\n parseDOM: [{\n tag: 'p',\n getAttrs: domAttributes\n }],\n toDOM: node => hasAttrs(node.attrs) ? ['p', pmAttributes(node.attrs), hole] : ['p', hole]\n }, div: {\n // Uncaught SyntaxError: Mixing inline and block content (in content expression '(block | inline)*')\n // content: '(block | inline)*',\n content: 'block*',\n group: 'block',\n attrs: Object.assign({}, commonAttributes()),\n parseDOM: [{\n tag: 'div',\n getAttrs: domAttributes\n }],\n toDOM: node => hasAttrs(node.attrs) ? ['div', pmAttributes(node.attrs), hole] : ['div', hole]\n }, \n // :: NodeSpec A blockquote (`

    `) wrapping one or more blocks.\n blockquote: {\n attrs: Object.assign({}, commonAttributes()),\n content: 'block+',\n group: 'block',\n defining: true,\n parseDOM: [{\n tag: 'blockquote',\n getAttrs: domAttributes\n }],\n toDOM: node => hasAttrs(node.attrs) ? ['blockquote', pmAttributes(node.attrs), hole] : blockquoteDOM\n }, \n // :: NodeSpec A horizontal rule (`
    `).\n horizontal_rule: {\n group: 'block',\n parseDOM: [{ tag: 'hr' }],\n toDOM: () => hrDOM\n }, \n // :: NodeSpec A heading textblock, with a `level` attribute that\n // has to hold the numbers from 1 to 6. Parsed and serialized as `

    ` to\n // `

    ` elements.\n heading: {\n attrs: Object.assign({}, commonAttributes(), { level: { default: 1 } }),\n content: 'inline*',\n group: 'block',\n defining: true,\n parseDOM: [\n { tag: 'h1', getAttrs: node => (Object.assign({}, domAttributes(node), { level: 1 })) },\n { tag: 'h2', getAttrs: node => (Object.assign({}, domAttributes(node), { level: 2 })) },\n { tag: 'h3', getAttrs: node => (Object.assign({}, domAttributes(node), { level: 3 })) },\n { tag: 'h4', getAttrs: node => (Object.assign({}, domAttributes(node), { level: 4 })) },\n { tag: 'h5', getAttrs: node => (Object.assign({}, domAttributes(node), { level: 5 })) },\n { tag: 'h6', getAttrs: node => (Object.assign({}, domAttributes(node), { level: 6 })) }\n ],\n toDOM: node => hasAttrs(node.attrs, 'level') ?\n ['h' + node.attrs.level, pmAttributes(node.attrs, 'level'), hole] :\n ['h' + node.attrs.level, hole]\n }, \n // :: NodeSpec A code listing. Disallows marks or non-text inline\n // nodes by default. Represented as a `
    ` element with a\n    // `` element inside it.\n    code_block: {\n        content: 'text*',\n        marks: '',\n        group: 'block',\n        code: true,\n        defining: true,\n        parseDOM: [{ tag: 'pre', preserveWhitespace: 'full' }],\n        toDOM: () => preDOM\n    }, \n    // :: NodeSpec The text node.\n    text: {\n        inline: true,\n        group: 'inline'\n    }, \n    // :: NodeSpec An inline image (``) node. Supports `src`,\n    // `alt`, and `href` attributes. The latter two default to an empty\n    // string.\n    image: {\n        inline: true,\n        attrs: Object.assign({ src: { default: null }, alt: { default: null }, title: { default: null }, width: { default: null }, height: { default: null } }, commonAttributes()),\n        group: 'inline',\n        draggable: true,\n        parseDOM: [{ tag: 'img', getAttrs: domAttributes }],\n        toDOM: node => hasAttrs(node.attrs) ? ['img', pmAttributes(node.attrs)] : ['img']\n    }, \n    // :: NodeSpec A hard line break represented in the DOM as a `
    ` element.\n hard_break: {\n inline: true,\n attrs: Object.assign({}, commonAttributes()),\n group: 'inline',\n selectable: false,\n parseDOM: [{\n tag: 'br',\n getAttrs: domAttributes\n }],\n toDOM: node => hasAttrs(node.attrs) ? ['br', pmAttributes(node.attrs)] : ['br']\n }, \n // :: NodeSpec\n // An ordered list [node spec](#model.NodeSpec). Has a single\n // attribute, `order`, which determines the number at which the list\n // starts counting, and defaults to 1. Represented as an `
      `\n // element.\n ordered_list: {\n content: 'list_item+',\n group: 'block',\n attrs: Object.assign({}, commonAttributes(), { type: { default: null }, order: { default: 1 } }),\n parseDOM: [{ tag: 'ol', getAttrs: (dom) => {\n return Object.assign({}, domAttributes(dom), { order: dom.hasAttribute('start') ? parseInt(dom.getAttribute('start') || '1', 10) : 1 });\n } }],\n toDOM: node => {\n return node.attrs.order === 1 ?\n (hasAttrs(node.attrs, 'order') ? ['ol', pmAttributes(node.attrs, 'order'), hole] : olDOM) :\n ['ol', Object.assign({}, pmAttributes(node.attrs, 'order'), { start: node.attrs.order }), hole];\n }\n }, \n // :: NodeSpec\n // A bullet list node specification represented in the DOM as a `
  • ` : ''}\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 \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 '@progress/jszip-esm';\n\nexport default function createZip() {\n return new JSZip();\n}\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","/* eslint-disable arrow-body-style */\n\nimport utils from './utils';\nimport domUtils from \"./dom-utils\";\n\nconst absoluteRect = (anchor, element, offset, scale) => {\n const scrollPos = elementScrollPosition(anchor, element);\n const rect = utils.eitherRect(domUtils.offset(anchor), offset);\n const stackScale = 2 * scale;\n\n const stackScroll = domUtils.stackingElementScroll(element);\n if (scale !== 1 && stackScroll) {\n stackScroll.x /= stackScale;\n stackScroll.y /= stackScale;\n }\n\n const stackOffset = domUtils.stackingElementOffset(element);\n if (scale !== 1 && stackOffset) {\n stackOffset.left /= stackScale;\n stackOffset.top /= stackScale;\n }\n\n return domUtils.removeScroll(\n domUtils.addScroll(\n utils.removeStackingOffset(\n utils.scaleRect(rect, scale),\n stackOffset\n ),\n stackScroll\n ),\n scrollPos\n );\n};\n\nconst relativeRect = (anchor, element, offset, scale) => {\n const rect = utils.eitherRect(domUtils.position(anchor, element, scale), offset);\n return utils.scaleRect(rect, scale);\n};\n\nconst elementScrollPosition = (anchor, element) => {\n return anchor ? { x: 0, y: 0 } : domUtils.scrollPosition(element);\n};\n\nconst alignElement = (settings) => {\n const { anchor, element, anchorAlign, elementAlign, margin, offset, positionMode, scale } = settings;\n\n const currentScale = scale || 1;\n const fixedMode = positionMode === 'fixed' || !domUtils.hasOffsetParent(element);\n const anchorRect = fixedMode ? absoluteRect(anchor, element, offset, currentScale) : relativeRect(anchor, element, offset, currentScale);\n const elementRect = utils.scaleRect(domUtils.offset(element), currentScale);\n\n const result = domUtils.align({\n anchorAlign: anchorAlign,\n anchorRect: anchorRect,\n elementAlign: elementAlign,\n elementRect: elementRect,\n margin\n });\n\n return result;\n};\n\nexport default alignElement;\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 \"none\": \"none\"\n};\n","import ownerDocument from './owner-document';\n\nconst getDocument = (element) => ownerDocument(element).documentElement;\n\nexport default getDocument;\n","/* eslint-disable arrow-body-style */\nimport addScroll from \"./add-scroll\";\nimport align from './align';\nimport boundingOffset from './bounding-offset';\nimport utils from './utils';\nimport removeScroll from './remove-scroll';\nimport restrictToView from './restrict-to-view';\nimport scrollPosition from './scroll-position';\nimport offsetBase from './offset';\nimport positionWithScroll from './position-with-scroll';\nimport windowViewPort from './window-viewport';\nimport siblingContainer from './sibling-container';\nimport parents from './parents';\n\nconst STYLES = [\n 'font-size',\n 'font-family',\n 'font-stretch',\n 'font-style',\n 'font-weight',\n 'line-height'\n];\n\nconst addOffset = (current, addition) => {\n return {\n left: current.left + addition.left,\n top: current.top + addition.top\n };\n};\n\nconst getWindow = () => {\n return utils.canUseDOM() ? window : null;\n};\n\nconst getFontStyles = (el) => {\n const window = getWindow();\n\n if (!window || !el) { return []; }\n\n const computedStyles = window.getComputedStyle(el);\n\n return STYLES.map(font => ({ key: font, value: computedStyles[font] }));\n};\n\nconst hasOffsetParent = (el) => {\n if (!el) { return false; }\n\n return Boolean(el.offsetParent);\n};\n\nconst offset = (el) => {\n if (!el) { return null; }\n\n return offsetBase(el);\n};\n\nconst offsetAtPoint = (element, currentLocation) => {\n if (!element) { return null; }\n\n const { left, top, transition } = element.style;\n\n element.style.transition = 'none';\n element.style.left = `${currentLocation.left}px`;\n element.style.top = `${currentLocation.top}px`;\n\n const currentOffset = offsetBase(element);\n\n element.style.left = left;\n element.style.top = top;\n\n // prevents elements with transition to be animated because of the change\n // tslint:disable-next-line:no-unused-expression\n element.offsetHeight;\n\n element.style.transition = transition;\n\n return currentOffset;\n};\n\nconst position = (element, popupElement, scale) => {\n if (!element || !popupElement) { return null; }\n\n const currentScale = scale || 1;\n\n return positionWithScroll(element, popupElement, currentScale);\n};\n\nconst OVERFLOW_REGEXP = /auto|scroll/;\n\nconst overflowElementStyle = (element) => {\n return `${element.style.overflow}${element.style.overflowX}${element.style.overflowY}`;\n};\n\nconst overflowComputedStyle = (element) => {\n const styles = window.getComputedStyle(element);\n return `${styles.overflow}${styles.overflowX}${styles.overflowY}`;\n};\n\nconst overflowStyle = (element) => {\n return overflowElementStyle(element) || overflowComputedStyle(element);\n};\n\nconst scrollableParents = (element) => {\n const parentElements = [];\n\n if (!utils.canUseDOM()) { return parentElements; }\n\n let parent = element.parentElement;\n\n while (parent) {\n if (OVERFLOW_REGEXP.test(overflowStyle(parent)) || parent.hasAttribute('data-scrollable')) {\n parentElements.push(parent);\n }\n\n parent = parent.parentElement;\n }\n\n parentElements.push(window);\n\n return parentElements;\n};\n\nconst getRelativeContextElement = (el) => {\n if (!el || !utils.hasRelativeStackingContext()) { return null; }\n\n let parent = el.parentElement;\n\n while (parent) {\n if (window.getComputedStyle(parent).transform !== 'none') {\n return parent;\n }\n parent = parent.parentElement;\n }\n\n return null;\n};\n\nconst stackingElementOffset = (el) => {\n const relativeContextElement = getRelativeContextElement(el);\n\n if (!relativeContextElement) { return null; }\n\n return offsetBase(relativeContextElement);\n};\n\nconst stackingElementScroll = (el) => {\n const relativeContextElement = getRelativeContextElement(el);\n\n if (!relativeContextElement) { return { x: 0, y: 0 }; }\n\n return {\n x: relativeContextElement.scrollLeft,\n y: relativeContextElement.scrollTop\n };\n};\n\nconst stackingElementViewPort = (el) => {\n const relativeContextElement = getRelativeContextElement(el);\n\n if (!relativeContextElement) { return null; }\n\n return {\n height: relativeContextElement.scrollHeight,\n width: relativeContextElement.scrollWidth\n };\n};\n\nconst useRelativePosition = (el) => {\n return Boolean(getRelativeContextElement(el));\n};\n\nconst zoomLevel = () => {\n if (!utils.canUseDOM()) { return 1; }\n\n return parseFloat((document.documentElement.clientWidth / window.innerWidth).toFixed(2)) || 1;\n};\n\nconst isZoomed = () => {\n return zoomLevel() > 1;\n};\n\nconst zIndex = (anchor, container) => {\n if (!anchor || !utils.canUseDOM()) { return null; }\n\n const sibling = siblingContainer(anchor, container);\n\n if (!sibling) { return null; }\n\n const result = [ anchor ].concat(parents(anchor, sibling)).reduce(\n (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 },\n 0\n );\n\n return result ? (result + 1) : null;\n};\n\nconst domUtils = {\n addOffset,\n addScroll,\n align,\n boundingOffset,\n getFontStyles,\n getWindow,\n hasOffsetParent,\n offset,\n offsetAtPoint,\n position,\n removeScroll,\n restrictToView,\n scrollPosition,\n scrollableParents,\n getRelativeContextElement,\n stackingElementOffset,\n stackingElementScroll,\n stackingElementViewPort,\n useRelativePosition,\n windowViewPort,\n zoomLevel,\n isZoomed,\n zIndex\n};\n\nexport default domUtils;\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';\nexport { default as zIndex } from './z-index';\n\nexport { default as alignElement } from './align-element';\nexport { default as domUtils } from './dom-utils';\nexport { default as utils } from './utils';\nexport { default as positionElement } from './position-element';\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 utils from \"./utils\";\nimport domUtils from \"./dom-utils\";\n\nconst positionElement = (settings) => {\n const {\n anchor,\n currentLocation,\n element,\n anchorAlign,\n elementAlign,\n collisions,\n margin,\n scale\n } = settings;\n\n const currentScale = scale || 1;\n const elementOffset = domUtils.offsetAtPoint(element, currentLocation);\n const elementRect = utils.scaleRect(elementOffset, currentScale);\n const anchorOffset = utils.scaleRect(domUtils.offset(anchor), currentScale);\n const anchorRect = utils.eitherRect(anchorOffset, currentLocation);\n\n const viewPort = settings.viewPort || domUtils.windowViewPort(element);\n viewPort.width = viewPort.width / currentScale;\n viewPort.height = viewPort.height / currentScale;\n\n const result = domUtils.restrictToView({\n anchorAlign,\n anchorRect,\n collisions,\n elementAlign,\n elementRect,\n margin,\n viewPort\n });\n\n const offset = domUtils.addOffset(currentLocation, result.offset);\n\n return {\n flip: result.flip,\n flipped: result.flipped,\n offset: offset\n };\n};\n\nexport default positionElement;","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 isVerticalFit = collisions.vertical === collision.fit;\n const isHorizontalFit = collisions.horizontal === collision.fit;\n const isVerticalFlip = collisions.vertical === collision.flip;\n const isHorizontalFlip = collisions.horizontal === collision.flip;\n\n if (isVerticalFit) {\n top += fit(elementTop, elementHeight, viewPortHeight);\n }\n\n if (isHorizontalFit) {\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\n const flippedVertical = isVerticalFlip && top !== 0;\n const flippedHorizontal = isHorizontalFlip && left !== 0;\n const fittedVertical = isVerticalFit && top !== 0;\n const fittedHorizontal = isHorizontalFit && left !== 0;\n\n return {\n flipped: flippedHorizontal || flippedVertical,\n fitted: fittedVertical || fittedHorizontal,\n flip: {\n horizontal: flippedHorizontal,\n vertical: flippedVertical\n },\n fit: {\n horizontal: fittedHorizontal,\n vertical: fittedVertical\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","\nconst eitherRect = (rect, offset) => {\n if (!rect) {\n return { height: 0, left: offset.left, top: offset.top, width: 0 };\n }\n\n return rect;\n};\n\nconst scaleRect = (rect, scale) => {\n if (!rect || scale === 1) {\n return rect;\n }\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 removeStackingOffset = (rect, stackingOffset) => {\n if (!stackingOffset) { 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\n return result;\n};\n\nfunction memoize(fun) {\n let result;\n let called = false;\n\n return (...args) => {\n if (called) {\n return result;\n }\n\n result = fun(...args);\n called = true;\n return result;\n };\n}\n\nconst hasRelativeStackingContext = memoize((elementSource) => {\n if (!canUseDOM()) { return false; }\n\n // Component need to pass element to make sure document owner is correct.\n // This however might be performance hit if checked for example on each drag event.\n const currentDocument = elementSource ? elementSource.ownerDocument : document;\n\n if (!currentDocument || !currentDocument.body) { return false; }\n\n const top = 10;\n const parent = currentDocument.createElement(\"div\");\n parent.style.transform = \"matrix(10, 0, 0, 10, 0, 0)\";\n parent.innerHTML = `
    child
    `;\n\n currentDocument.body.appendChild(parent);\n\n const isDifferent = parent.children[0].getBoundingClientRect().top !== top;\n\n currentDocument.body.removeChild(parent);\n\n return isDifferent;\n});\n\nconst canUseDOM = () => Boolean(\n // from fbjs\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n\nconst utils = {\n eitherRect,\n scaleRect,\n removeStackingOffset,\n hasRelativeStackingContext,\n canUseDOM\n};\n\nexport default utils;","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","import parents from './parents';\nimport siblingContainer from './sibling-container';\n\nexport default function zIndex(anchor, container) {\n if (!anchor || !container) { return null; }\n\n const sibling = siblingContainer(anchor, container);\n\n if (!sibling) { return null; }\n\n const result = [ anchor ].concat(parents(anchor, sibling)).reduce(\n (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 },\n 0\n );\n\n return result ? (result + 1) : null;\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 get document() {\n return this._element\n ? this._element.ownerDocument\n : document;\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(this.document, \"mousemove\", this._mousemove);\n bind(this.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(this.document, \"mousemove\", this._mousemove);\n unbind(this.document, \"mouseup\", this._mouseup);\n this._releaseHandler(e);\n };\n\n this._pointerdown = (e) => {\n if (e.isPrimary && e.button === 0) {\n bind(this.document, \"pointermove\", this._pointermove);\n bind(this.document, \"pointerup\", this._pointerup);\n bind(this.document, \"pointercancel\", this._pointerup);\n bind(this.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(this.document, \"pointermove\", this._pointermove);\n unbind(this.document, \"pointerup\", this._pointerup);\n unbind(this.document, \"pointercancel\", this._pointerup);\n unbind(this.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(this.document, \"pointermove\", this._pointermove);\n unbind(this.document, \"pointerup\", this._pointerup);\n unbind(this.document, \"contextmenu\", preventDefault);\n unbind(this.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","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}","(function(a,b){if(\"function\"==typeof define&&define.amd)define([],b);else if(\"undefined\"!=typeof exports)b();else{b(),a.FileSaver={exports:{}}.exports}})(this,function(){\"use strict\";function b(a,b){return\"undefined\"==typeof b?b={autoBom:!1}:\"object\"!=typeof b&&(console.warn(\"Deprecated: Expected third argument to be a object\"),b={autoBom:!b}),b.autoBom&&/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(a.type)?new Blob([\"\\uFEFF\",a],{type:a.type}):a}function c(a,b,c){var d=new XMLHttpRequest;d.open(\"GET\",a),d.responseType=\"blob\",d.onload=function(){g(d.response,b,c)},d.onerror=function(){console.error(\"could not download file\")},d.send()}function d(a){var b=new XMLHttpRequest;b.open(\"HEAD\",a,!1);try{b.send()}catch(a){}return 200<=b.status&&299>=b.status}function e(a){try{a.dispatchEvent(new MouseEvent(\"click\"))}catch(c){var b=document.createEvent(\"MouseEvents\");b.initMouseEvent(\"click\",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),a.dispatchEvent(b)}}var f=\"object\"==typeof window&&window.window===window?window:\"object\"==typeof self&&self.self===self?self:\"object\"==typeof global&&global.global===global?global:void 0,a=f.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),g=f.saveAs||(\"object\"!=typeof window||window!==f?function(){}:\"download\"in HTMLAnchorElement.prototype&&!a?function(b,g,h){var i=f.URL||f.webkitURL,j=document.createElement(\"a\");g=g||b.name||\"download\",j.download=g,j.rel=\"noopener\",\"string\"==typeof b?(j.href=b,j.origin===location.origin?e(j):d(j.href)?c(b,g,h):e(j,j.target=\"_blank\")):(j.href=i.createObjectURL(b),setTimeout(function(){i.revokeObjectURL(j.href)},4E4),setTimeout(function(){e(j)},0))}:\"msSaveOrOpenBlob\"in navigator?function(f,g,h){if(g=g||f.name||\"download\",\"string\"!=typeof f)navigator.msSaveOrOpenBlob(b(f,h),g);else if(d(f))c(f,g,h);else{var i=document.createElement(\"a\");i.href=f,i.target=\"_blank\",setTimeout(function(){e(i)})}}:function(b,d,e,g){if(g=g||open(\"\",\"_blank\"),g&&(g.document.title=g.document.body.innerText=\"downloading...\"),\"string\"==typeof b)return c(b,d,e);var h=\"application/octet-stream\"===b.type,i=/constructor/i.test(f.HTMLElement)||f.safari,j=/CriOS\\/[\\d]+/.test(navigator.userAgent);if((j||h&&i||a)&&\"undefined\"!=typeof FileReader){var k=new FileReader;k.onloadend=function(){var a=k.result;a=j?a:a.replace(/^data:[^;]*;/,\"data:attachment/file;\"),g?g.location.href=a:location=a,g=null},k.readAsDataURL(b)}else{var l=f.URL||f.webkitURL,m=l.createObjectURL(b);g?g.location=m:location.href=m,g=null,setTimeout(function(){l.revokeObjectURL(m)},4E4)}});f.saveAs=g.saveAs=g,\"undefined\"!=typeof module&&(module.exports=g)});\n\n","/*! Hammer.JS - v2.0.7 - 2016-04-22\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license */\n(function(window, document, exportName, undefined) {\n 'use strict';\n\nvar VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];\nvar TEST_ELEMENT = document.createElement('div');\n\nvar TYPE_FUNCTION = 'function';\n\nvar round = Math.round;\nvar abs = Math.abs;\nvar now = Date.now;\n\n/**\n * set a timeout with a given scope\n * @param {Function} fn\n * @param {Number} timeout\n * @param {Object} context\n * @returns {number}\n */\nfunction setTimeoutContext(fn, timeout, context) {\n return setTimeout(bindFn(fn, context), timeout);\n}\n\n/**\n * if the argument is an array, we want to execute the fn on each entry\n * if it aint an array we don't want to do a thing.\n * this is used by all the methods that accept a single and array argument.\n * @param {*|Array} arg\n * @param {String} fn\n * @param {Object} [context]\n * @returns {Boolean}\n */\nfunction invokeArrayArg(arg, fn, context) {\n if (Array.isArray(arg)) {\n each(arg, context[fn], context);\n return true;\n }\n return false;\n}\n\n/**\n * walk objects and arrays\n * @param {Object} obj\n * @param {Function} iterator\n * @param {Object} context\n */\nfunction each(obj, iterator, context) {\n var i;\n\n if (!obj) {\n return;\n }\n\n if (obj.forEach) {\n obj.forEach(iterator, context);\n } else if (obj.length !== undefined) {\n i = 0;\n while (i < obj.length) {\n iterator.call(context, obj[i], i, obj);\n i++;\n }\n } else {\n for (i in obj) {\n obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\n }\n }\n}\n\n/**\n * wrap a method with a deprecation warning and stack trace\n * @param {Function} method\n * @param {String} name\n * @param {String} message\n * @returns {Function} A new function wrapping the supplied method.\n */\nfunction deprecate(method, name, message) {\n var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\\n' + message + ' AT \\n';\n return function() {\n var e = new Error('get-stack-trace');\n var stack = e && e.stack ? e.stack.replace(/^[^\\(]+?[\\n$]/gm, '')\n .replace(/^\\s+at\\s+/gm, '')\n .replace(/^Object.\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n\n var log = window.console && (window.console.warn || window.console.log);\n if (log) {\n log.call(window.console, deprecationMessage, stack);\n }\n return method.apply(this, arguments);\n };\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\nvar assign;\nif (typeof Object.assign !== 'function') {\n assign = function assign(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n return output;\n };\n} else {\n assign = Object.assign;\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\nvar extend = deprecate(function extend(dest, src, merge) {\n var keys = Object.keys(src);\n var i = 0;\n while (i < keys.length) {\n if (!merge || (merge && dest[keys[i]] === undefined)) {\n dest[keys[i]] = src[keys[i]];\n }\n i++;\n }\n return dest;\n}, 'extend', 'Use `assign`.');\n\n/**\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\nvar merge = deprecate(function merge(dest, src) {\n return extend(dest, src, true);\n}, 'merge', 'Use `assign`.');\n\n/**\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\nfunction inherit(child, base, properties) {\n var baseP = base.prototype,\n childP;\n\n childP = child.prototype = Object.create(baseP);\n childP.constructor = child;\n childP._super = baseP;\n\n if (properties) {\n assign(childP, properties);\n }\n}\n\n/**\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\nfunction bindFn(fn, context) {\n return function boundFn() {\n return fn.apply(context, arguments);\n };\n}\n\n/**\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\nfunction boolOrFn(val, args) {\n if (typeof val == TYPE_FUNCTION) {\n return val.apply(args ? args[0] || undefined : undefined, args);\n }\n return val;\n}\n\n/**\n * use the val2 when val1 is undefined\n * @param {*} val1\n * @param {*} val2\n * @returns {*}\n */\nfunction ifUndefined(val1, val2) {\n return (val1 === undefined) ? val2 : val1;\n}\n\n/**\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction addEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.addEventListener(type, handler, false);\n });\n}\n\n/**\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction removeEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.removeEventListener(type, handler, false);\n });\n}\n\n/**\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\nfunction hasParent(node, parent) {\n while (node) {\n if (node == parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}\n\n/**\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\nfunction inStr(str, find) {\n return str.indexOf(find) > -1;\n}\n\n/**\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\nfunction splitStr(str) {\n return str.trim().split(/\\s+/g);\n}\n\n/**\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\nfunction inArray(src, find, findByKey) {\n if (src.indexOf && !findByKey) {\n return src.indexOf(find);\n } else {\n var i = 0;\n while (i < src.length) {\n if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) {\n return i;\n }\n i++;\n }\n return -1;\n }\n}\n\n/**\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\nfunction toArray(obj) {\n return Array.prototype.slice.call(obj, 0);\n}\n\n/**\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\nfunction uniqueArray(src, key, sort) {\n var results = [];\n var values = [];\n var i = 0;\n\n while (i < src.length) {\n var val = key ? src[i][key] : src[i];\n if (inArray(values, val) < 0) {\n results.push(src[i]);\n }\n values[i] = val;\n i++;\n }\n\n if (sort) {\n if (!key) {\n results = results.sort();\n } else {\n results = results.sort(function sortUniqueArray(a, b) {\n return a[key] > b[key];\n });\n }\n }\n\n return results;\n}\n\n/**\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\nfunction prefixed(obj, property) {\n var prefix, prop;\n var camelProp = property[0].toUpperCase() + property.slice(1);\n\n var i = 0;\n while (i < VENDOR_PREFIXES.length) {\n prefix = VENDOR_PREFIXES[i];\n prop = (prefix) ? prefix + camelProp : property;\n\n if (prop in obj) {\n return prop;\n }\n i++;\n }\n return undefined;\n}\n\n/**\n * get a unique id\n * @returns {number} uniqueId\n */\nvar _uniqueId = 1;\nfunction uniqueId() {\n return _uniqueId++;\n}\n\n/**\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\nfunction getWindowForElement(element) {\n var doc = element.ownerDocument || element;\n return (doc.defaultView || doc.parentWindow || window);\n}\n\nvar MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\n\nvar SUPPORT_TOUCH = ('ontouchstart' in window);\nvar SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;\nvar SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\n\nvar INPUT_TYPE_TOUCH = 'touch';\nvar INPUT_TYPE_PEN = 'pen';\nvar INPUT_TYPE_MOUSE = 'mouse';\nvar INPUT_TYPE_KINECT = 'kinect';\n\nvar COMPUTE_INTERVAL = 25;\n\nvar INPUT_START = 1;\nvar INPUT_MOVE = 2;\nvar INPUT_END = 4;\nvar INPUT_CANCEL = 8;\n\nvar DIRECTION_NONE = 1;\nvar DIRECTION_LEFT = 2;\nvar DIRECTION_RIGHT = 4;\nvar DIRECTION_UP = 8;\nvar DIRECTION_DOWN = 16;\n\nvar DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\nvar DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\nvar DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\n\nvar PROPS_XY = ['x', 'y'];\nvar PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\n/**\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\nfunction Input(manager, callback) {\n var self = this;\n this.manager = manager;\n this.callback = callback;\n this.element = manager.element;\n this.target = manager.options.inputTarget;\n\n // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n // so when disabled the input events are completely bypassed.\n this.domHandler = function(ev) {\n if (boolOrFn(manager.options.enable, [manager])) {\n self.handler(ev);\n }\n };\n\n this.init();\n\n}\n\nInput.prototype = {\n /**\n * should handle the inputEvent data and trigger the callback\n * @virtual\n */\n handler: function() { },\n\n /**\n * bind the events\n */\n init: function() {\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n },\n\n /**\n * unbind the events\n */\n destroy: function() {\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n }\n};\n\n/**\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\nfunction createInputInstance(manager) {\n var Type;\n var inputClass = manager.options.inputClass;\n\n if (inputClass) {\n Type = inputClass;\n } else if (SUPPORT_POINTER_EVENTS) {\n Type = PointerEventInput;\n } else if (SUPPORT_ONLY_TOUCH) {\n Type = TouchInput;\n } else if (!SUPPORT_TOUCH) {\n Type = MouseInput;\n } else {\n Type = TouchMouseInput;\n }\n return new (Type)(manager, inputHandler);\n}\n\n/**\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\nfunction inputHandler(manager, eventType, input) {\n var pointersLen = input.pointers.length;\n var changedPointersLen = input.changedPointers.length;\n var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0));\n var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0));\n\n input.isFirst = !!isFirst;\n input.isFinal = !!isFinal;\n\n if (isFirst) {\n manager.session = {};\n }\n\n // source event is the normalized value of the domEvents\n // like 'touchstart, mouseup, pointerdown'\n input.eventType = eventType;\n\n // compute scale, rotation etc\n computeInputData(manager, input);\n\n // emit secret event\n manager.emit('hammer.input', input);\n\n manager.recognize(input);\n manager.session.prevInput = input;\n}\n\n/**\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\nfunction computeInputData(manager, input) {\n var session = manager.session;\n var pointers = input.pointers;\n var pointersLength = pointers.length;\n\n // store the first input to calculate the distance and direction\n if (!session.firstInput) {\n session.firstInput = simpleCloneInputData(input);\n }\n\n // to compute scale and rotation we need to store the multiple touches\n if (pointersLength > 1 && !session.firstMultiple) {\n session.firstMultiple = simpleCloneInputData(input);\n } else if (pointersLength === 1) {\n session.firstMultiple = false;\n }\n\n var firstInput = session.firstInput;\n var firstMultiple = session.firstMultiple;\n var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n\n var center = input.center = getCenter(pointers);\n input.timeStamp = now();\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\n\n input.angle = getAngle(offsetCenter, center);\n input.distance = getDistance(offsetCenter, center);\n\n computeDeltaXY(session, input);\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n\n var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n input.overallVelocityX = overallVelocity.x;\n input.overallVelocityY = overallVelocity.y;\n input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y;\n\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n\n input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length >\n session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers);\n\n computeIntervalInputData(session, input);\n\n // find the correct target\n var target = manager.element;\n if (hasParent(input.srcEvent.target, target)) {\n target = input.srcEvent.target;\n }\n input.target = target;\n}\n\nfunction computeDeltaXY(session, input) {\n var center = input.center;\n var offset = session.offsetDelta || {};\n var prevDelta = session.prevDelta || {};\n var prevInput = session.prevInput || {};\n\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n prevDelta = session.prevDelta = {\n x: prevInput.deltaX || 0,\n y: prevInput.deltaY || 0\n };\n\n offset = session.offsetDelta = {\n x: center.x,\n y: center.y\n };\n }\n\n input.deltaX = prevDelta.x + (center.x - offset.x);\n input.deltaY = prevDelta.y + (center.y - offset.y);\n}\n\n/**\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\nfunction computeIntervalInputData(session, input) {\n var last = session.lastInterval || input,\n deltaTime = input.timeStamp - last.timeStamp,\n velocity, velocityX, velocityY, direction;\n\n if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n var deltaX = input.deltaX - last.deltaX;\n var deltaY = input.deltaY - last.deltaY;\n\n var v = getVelocity(deltaTime, deltaX, deltaY);\n velocityX = v.x;\n velocityY = v.y;\n velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y;\n direction = getDirection(deltaX, deltaY);\n\n session.lastInterval = input;\n } else {\n // use latest velocity info if it doesn't overtake a minimum period\n velocity = last.velocity;\n velocityX = last.velocityX;\n velocityY = last.velocityY;\n direction = last.direction;\n }\n\n input.velocity = velocity;\n input.velocityX = velocityX;\n input.velocityY = velocityY;\n input.direction = direction;\n}\n\n/**\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\nfunction simpleCloneInputData(input) {\n // make a simple copy of the pointers because we will get a reference if we don't\n // we only need clientXY for the calculations\n var pointers = [];\n var i = 0;\n while (i < input.pointers.length) {\n pointers[i] = {\n clientX: round(input.pointers[i].clientX),\n clientY: round(input.pointers[i].clientY)\n };\n i++;\n }\n\n return {\n timeStamp: now(),\n pointers: pointers,\n center: getCenter(pointers),\n deltaX: input.deltaX,\n deltaY: input.deltaY\n };\n}\n\n/**\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\nfunction getCenter(pointers) {\n var pointersLength = pointers.length;\n\n // no need to loop when only one touch\n if (pointersLength === 1) {\n return {\n x: round(pointers[0].clientX),\n y: round(pointers[0].clientY)\n };\n }\n\n var x = 0, y = 0, i = 0;\n while (i < pointersLength) {\n x += pointers[i].clientX;\n y += pointers[i].clientY;\n i++;\n }\n\n return {\n x: round(x / pointersLength),\n y: round(y / pointersLength)\n };\n}\n\n/**\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\nfunction getVelocity(deltaTime, x, y) {\n return {\n x: x / deltaTime || 0,\n y: y / deltaTime || 0\n };\n}\n\n/**\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\nfunction getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n\n if (abs(x) >= abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n\n/**\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\nfunction getDistance(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n\n return Math.sqrt((x * x) + (y * y));\n}\n\n/**\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\nfunction getAngle(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n return Math.atan2(y, x) * 180 / Math.PI;\n}\n\n/**\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\nfunction getRotation(start, end) {\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n}\n\n/**\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\nfunction getScale(start, end) {\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n}\n\nvar MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n};\n\nvar MOUSE_ELEMENT_EVENTS = 'mousedown';\nvar MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n\n/**\n * Mouse events input\n * @constructor\n * @extends Input\n */\nfunction MouseInput() {\n this.evEl = MOUSE_ELEMENT_EVENTS;\n this.evWin = MOUSE_WINDOW_EVENTS;\n\n this.pressed = false; // mousedown state\n\n Input.apply(this, arguments);\n}\n\ninherit(MouseInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function MEhandler(ev) {\n var eventType = MOUSE_INPUT_MAP[ev.type];\n\n // on start we want to have the left mouse button down\n if (eventType & INPUT_START && ev.button === 0) {\n this.pressed = true;\n }\n\n if (eventType & INPUT_MOVE && ev.which !== 1) {\n eventType = INPUT_END;\n }\n\n // mouse must be down\n if (!this.pressed) {\n return;\n }\n\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: INPUT_TYPE_MOUSE,\n srcEvent: ev\n });\n }\n});\n\nvar POINTER_INPUT_MAP = {\n pointerdown: INPUT_START,\n pointermove: INPUT_MOVE,\n pointerup: INPUT_END,\n pointercancel: INPUT_CANCEL,\n pointerout: INPUT_CANCEL\n};\n\n// in IE10 the pointer types is defined as an enum\nvar IE10_POINTER_TYPE_ENUM = {\n 2: INPUT_TYPE_TOUCH,\n 3: INPUT_TYPE_PEN,\n 4: INPUT_TYPE_MOUSE,\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n};\n\nvar POINTER_ELEMENT_EVENTS = 'pointerdown';\nvar POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';\n\n// IE10 has prefixed support, and case-sensitive\nif (window.MSPointerEvent && !window.PointerEvent) {\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n}\n\n/**\n * Pointer events input\n * @constructor\n * @extends Input\n */\nfunction PointerEventInput() {\n this.evEl = POINTER_ELEMENT_EVENTS;\n this.evWin = POINTER_WINDOW_EVENTS;\n\n Input.apply(this, arguments);\n\n this.store = (this.manager.session.pointerEvents = []);\n}\n\ninherit(PointerEventInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function PEhandler(ev) {\n var store = this.store;\n var removePointer = false;\n\n var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n\n var isTouch = (pointerType == INPUT_TYPE_TOUCH);\n\n // get index of the event in the store\n var storeIndex = inArray(store, ev.pointerId, 'pointerId');\n\n // start and mouse must be down\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n if (storeIndex < 0) {\n store.push(ev);\n storeIndex = store.length - 1;\n }\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n removePointer = true;\n }\n\n // it not found, so the pointer hasn't been down (so it's probably a hover)\n if (storeIndex < 0) {\n return;\n }\n\n // update the event in the store\n store[storeIndex] = ev;\n\n this.callback(this.manager, eventType, {\n pointers: store,\n changedPointers: [ev],\n pointerType: pointerType,\n srcEvent: ev\n });\n\n if (removePointer) {\n // remove from the store\n store.splice(storeIndex, 1);\n }\n }\n});\n\nvar SINGLE_TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\nvar SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Touch events input\n * @constructor\n * @extends Input\n */\nfunction SingleTouchInput() {\n this.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n this.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n this.started = false;\n\n Input.apply(this, arguments);\n}\n\ninherit(SingleTouchInput, Input, {\n handler: function TEhandler(ev) {\n var type = SINGLE_TOUCH_INPUT_MAP[ev.type];\n\n // should we handle the touch events?\n if (type === INPUT_START) {\n this.started = true;\n }\n\n if (!this.started) {\n return;\n }\n\n var touches = normalizeSingleTouches.call(this, ev, type);\n\n // when done, reset the started state\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n this.started = false;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction normalizeSingleTouches(ev, type) {\n var all = toArray(ev.touches);\n var changed = toArray(ev.changedTouches);\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n all = uniqueArray(all.concat(changed), 'identifier', true);\n }\n\n return [all, changed];\n}\n\nvar TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\nfunction TouchInput() {\n this.evTarget = TOUCH_TARGET_EVENTS;\n this.targetIds = {};\n\n Input.apply(this, arguments);\n}\n\ninherit(TouchInput, Input, {\n handler: function MTEhandler(ev) {\n var type = TOUCH_INPUT_MAP[ev.type];\n var touches = getTouches.call(this, ev, type);\n if (!touches) {\n return;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction getTouches(ev, type) {\n var allTouches = toArray(ev.touches);\n var targetIds = this.targetIds;\n\n // when there is only one touch, the process can be simplified\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n targetIds[allTouches[0].identifier] = true;\n return [allTouches, allTouches];\n }\n\n var i,\n targetTouches,\n changedTouches = toArray(ev.changedTouches),\n changedTargetTouches = [],\n target = this.target;\n\n // get target touches from touches\n targetTouches = allTouches.filter(function(touch) {\n return hasParent(touch.target, target);\n });\n\n // collect touches\n if (type === INPUT_START) {\n i = 0;\n while (i < targetTouches.length) {\n targetIds[targetTouches[i].identifier] = true;\n i++;\n }\n }\n\n // filter changed touches to only contain touches that exist in the collected target ids\n i = 0;\n while (i < changedTouches.length) {\n if (targetIds[changedTouches[i].identifier]) {\n changedTargetTouches.push(changedTouches[i]);\n }\n\n // cleanup removed touches\n if (type & (INPUT_END | INPUT_CANCEL)) {\n delete targetIds[changedTouches[i].identifier];\n }\n i++;\n }\n\n if (!changedTargetTouches.length) {\n return;\n }\n\n return [\n // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true),\n changedTargetTouches\n ];\n}\n\n/**\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\nvar DEDUP_TIMEOUT = 2500;\nvar DEDUP_DISTANCE = 25;\n\nfunction TouchMouseInput() {\n Input.apply(this, arguments);\n\n var handler = bindFn(this.handler, this);\n this.touch = new TouchInput(this.manager, handler);\n this.mouse = new MouseInput(this.manager, handler);\n\n this.primaryTouch = null;\n this.lastTouches = [];\n}\n\ninherit(TouchMouseInput, Input, {\n /**\n * handle mouse and touch events\n * @param {Hammer} manager\n * @param {String} inputEvent\n * @param {Object} inputData\n */\n handler: function TMEhandler(manager, inputEvent, inputData) {\n var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH),\n isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE);\n\n if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n return;\n }\n\n // when we're in a touch event, record touches to de-dupe synthetic mouse event\n if (isTouch) {\n recordTouches.call(this, inputEvent, inputData);\n } else if (isMouse && isSyntheticEvent.call(this, inputData)) {\n return;\n }\n\n this.callback(manager, inputEvent, inputData);\n },\n\n /**\n * remove the event listeners\n */\n destroy: function destroy() {\n this.touch.destroy();\n this.mouse.destroy();\n }\n});\n\nfunction recordTouches(eventType, eventData) {\n if (eventType & INPUT_START) {\n this.primaryTouch = eventData.changedPointers[0].identifier;\n setLastTouch.call(this, eventData);\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n setLastTouch.call(this, eventData);\n }\n}\n\nfunction setLastTouch(eventData) {\n var touch = eventData.changedPointers[0];\n\n if (touch.identifier === this.primaryTouch) {\n var lastTouch = {x: touch.clientX, y: touch.clientY};\n this.lastTouches.push(lastTouch);\n var lts = this.lastTouches;\n var removeLastTouch = function() {\n var i = lts.indexOf(lastTouch);\n if (i > -1) {\n lts.splice(i, 1);\n }\n };\n setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n }\n}\n\nfunction isSyntheticEvent(eventData) {\n var x = eventData.srcEvent.clientX, y = eventData.srcEvent.clientY;\n for (var i = 0; i < this.lastTouches.length; i++) {\n var t = this.lastTouches[i];\n var dx = Math.abs(x - t.x), dy = Math.abs(y - t.y);\n if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n return true;\n }\n }\n return false;\n}\n\nvar PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\nvar NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\n\n// magical touchAction value\nvar TOUCH_ACTION_COMPUTE = 'compute';\nvar TOUCH_ACTION_AUTO = 'auto';\nvar TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\nvar TOUCH_ACTION_NONE = 'none';\nvar TOUCH_ACTION_PAN_X = 'pan-x';\nvar TOUCH_ACTION_PAN_Y = 'pan-y';\nvar TOUCH_ACTION_MAP = getTouchActionProps();\n\n/**\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\nfunction TouchAction(manager, value) {\n this.manager = manager;\n this.set(value);\n}\n\nTouchAction.prototype = {\n /**\n * set the touchAction value on the element or enable the polyfill\n * @param {String} value\n */\n set: function(value) {\n // find out the touch-action by the event handlers\n if (value == TOUCH_ACTION_COMPUTE) {\n value = this.compute();\n }\n\n if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n }\n this.actions = value.toLowerCase().trim();\n },\n\n /**\n * just re-set the touchAction value\n */\n update: function() {\n this.set(this.manager.options.touchAction);\n },\n\n /**\n * compute the value for the touchAction property based on the recognizer's settings\n * @returns {String} value\n */\n compute: function() {\n var actions = [];\n each(this.manager.recognizers, function(recognizer) {\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\n actions = actions.concat(recognizer.getTouchAction());\n }\n });\n return cleanTouchActions(actions.join(' '));\n },\n\n /**\n * this method is called on each input cycle and provides the preventing of the browser behavior\n * @param {Object} input\n */\n preventDefaults: function(input) {\n var srcEvent = input.srcEvent;\n var direction = input.offsetDirection;\n\n // if the touch action did prevented once this session\n if (this.manager.session.prevented) {\n srcEvent.preventDefault();\n return;\n }\n\n var actions = this.actions;\n var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n\n if (hasNone) {\n //do not prevent defaults if this is a tap gesture\n\n var isTapPointer = input.pointers.length === 1;\n var isTapMovement = input.distance < 2;\n var isTapTouchTime = input.deltaTime < 250;\n\n if (isTapPointer && isTapMovement && isTapTouchTime) {\n return;\n }\n }\n\n if (hasPanX && hasPanY) {\n // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n return;\n }\n\n if (hasNone ||\n (hasPanY && direction & DIRECTION_HORIZONTAL) ||\n (hasPanX && direction & DIRECTION_VERTICAL)) {\n return this.preventSrc(srcEvent);\n }\n },\n\n /**\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n * @param {Object} srcEvent\n */\n preventSrc: function(srcEvent) {\n this.manager.session.prevented = true;\n srcEvent.preventDefault();\n }\n};\n\n/**\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\nfunction cleanTouchActions(actions) {\n // none\n if (inStr(actions, TOUCH_ACTION_NONE)) {\n return TOUCH_ACTION_NONE;\n }\n\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);\n\n // if both pan-x and pan-y are set (different recognizers\n // for different directions, e.g. horizontal pan but vertical swipe?)\n // we need none (as otherwise with pan-x pan-y combined none of these\n // recognizers will work, since the browser would handle all panning\n if (hasPanX && hasPanY) {\n return TOUCH_ACTION_NONE;\n }\n\n // pan-x OR pan-y\n if (hasPanX || hasPanY) {\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n }\n\n // manipulation\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n return TOUCH_ACTION_MANIPULATION;\n }\n\n return TOUCH_ACTION_AUTO;\n}\n\nfunction getTouchActionProps() {\n if (!NATIVE_TOUCH_ACTION) {\n return false;\n }\n var touchMap = {};\n var cssSupports = window.CSS && window.CSS.supports;\n ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function(val) {\n\n // If css.supports is not supported but there is native touch-action assume it supports\n // all values. This is the case for IE 10 and 11.\n touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true;\n });\n return touchMap;\n}\n\n/**\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n * Possible\n * |\n * +-----+---------------+\n * | |\n * +-----+-----+ |\n * | | |\n * Failed Cancelled |\n * +-------+------+\n * | |\n * Recognized Began\n * |\n * Changed\n * |\n * Ended/Recognized\n */\nvar STATE_POSSIBLE = 1;\nvar STATE_BEGAN = 2;\nvar STATE_CHANGED = 4;\nvar STATE_ENDED = 8;\nvar STATE_RECOGNIZED = STATE_ENDED;\nvar STATE_CANCELLED = 16;\nvar STATE_FAILED = 32;\n\n/**\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\nfunction Recognizer(options) {\n this.options = assign({}, this.defaults, options || {});\n\n this.id = uniqueId();\n\n this.manager = null;\n\n // default is enable true\n this.options.enable = ifUndefined(this.options.enable, true);\n\n this.state = STATE_POSSIBLE;\n\n this.simultaneous = {};\n this.requireFail = [];\n}\n\nRecognizer.prototype = {\n /**\n * @virtual\n * @type {Object}\n */\n defaults: {},\n\n /**\n * set options\n * @param {Object} options\n * @return {Recognizer}\n */\n set: function(options) {\n assign(this.options, options);\n\n // also update the touchAction, in case something changed about the directions/enabled state\n this.manager && this.manager.touchAction.update();\n return this;\n },\n\n /**\n * recognize simultaneous with an other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n recognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n return this;\n }\n\n var simultaneous = this.simultaneous;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (!simultaneous[otherRecognizer.id]) {\n simultaneous[otherRecognizer.id] = otherRecognizer;\n otherRecognizer.recognizeWith(this);\n }\n return this;\n },\n\n /**\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRecognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n delete this.simultaneous[otherRecognizer.id];\n return this;\n },\n\n /**\n * recognizer can only run when an other is failing\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n requireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n return this;\n }\n\n var requireFail = this.requireFail;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (inArray(requireFail, otherRecognizer) === -1) {\n requireFail.push(otherRecognizer);\n otherRecognizer.requireFailure(this);\n }\n return this;\n },\n\n /**\n * drop the requireFailure link. it does not remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRequireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n var index = inArray(this.requireFail, otherRecognizer);\n if (index > -1) {\n this.requireFail.splice(index, 1);\n }\n return this;\n },\n\n /**\n * has require failures boolean\n * @returns {boolean}\n */\n hasRequireFailures: function() {\n return this.requireFail.length > 0;\n },\n\n /**\n * if the recognizer can recognize simultaneous with an other recognizer\n * @param {Recognizer} otherRecognizer\n * @returns {Boolean}\n */\n canRecognizeWith: function(otherRecognizer) {\n return !!this.simultaneous[otherRecognizer.id];\n },\n\n /**\n * You should use `tryEmit` instead of `emit` directly to check\n * that all the needed recognizers has failed before emitting.\n * @param {Object} input\n */\n emit: function(input) {\n var self = this;\n var state = this.state;\n\n function emit(event) {\n self.manager.emit(event, input);\n }\n\n // 'panstart' and 'panmove'\n if (state < STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n\n emit(self.options.event); // simple 'eventName' events\n\n if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...)\n emit(input.additionalEvent);\n }\n\n // panend and pancancel\n if (state >= STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n },\n\n /**\n * Check that all the require failure recognizers has failed,\n * if true, it emits a gesture event,\n * otherwise, setup the state to FAILED.\n * @param {Object} input\n */\n tryEmit: function(input) {\n if (this.canEmit()) {\n return this.emit(input);\n }\n // it's failing anyway\n this.state = STATE_FAILED;\n },\n\n /**\n * can we emit?\n * @returns {boolean}\n */\n canEmit: function() {\n var i = 0;\n while (i < this.requireFail.length) {\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n return false;\n }\n i++;\n }\n return true;\n },\n\n /**\n * update the recognizer\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n // make a new copy of the inputData\n // so we can change the inputData without messing up the other recognizers\n var inputDataClone = assign({}, inputData);\n\n // is is enabled and allow recognizing?\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n this.reset();\n this.state = STATE_FAILED;\n return;\n }\n\n // reset when we've reached the end\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n this.state = STATE_POSSIBLE;\n }\n\n this.state = this.process(inputDataClone);\n\n // the recognizer has recognized a gesture\n // so trigger an event\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n this.tryEmit(inputDataClone);\n }\n },\n\n /**\n * return the state of the recognizer\n * the actual recognizing happens in this method\n * @virtual\n * @param {Object} inputData\n * @returns {Const} STATE\n */\n process: function(inputData) { }, // jshint ignore:line\n\n /**\n * return the preferred touch-action\n * @virtual\n * @returns {Array}\n */\n getTouchAction: function() { },\n\n /**\n * called when the gesture isn't allowed to recognize\n * like when another is being recognized or it is disabled\n * @virtual\n */\n reset: function() { }\n};\n\n/**\n * get a usable string, used as event postfix\n * @param {Const} state\n * @returns {String} state\n */\nfunction stateStr(state) {\n if (state & STATE_CANCELLED) {\n return 'cancel';\n } else if (state & STATE_ENDED) {\n return 'end';\n } else if (state & STATE_CHANGED) {\n return 'move';\n } else if (state & STATE_BEGAN) {\n return 'start';\n }\n return '';\n}\n\n/**\n * direction cons to string\n * @param {Const} direction\n * @returns {String}\n */\nfunction directionStr(direction) {\n if (direction == DIRECTION_DOWN) {\n return 'down';\n } else if (direction == DIRECTION_UP) {\n return 'up';\n } else if (direction == DIRECTION_LEFT) {\n return 'left';\n } else if (direction == DIRECTION_RIGHT) {\n return 'right';\n }\n return '';\n}\n\n/**\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\nfunction getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n var manager = recognizer.manager;\n if (manager) {\n return manager.get(otherRecognizer);\n }\n return otherRecognizer;\n}\n\n/**\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\nfunction AttrRecognizer() {\n Recognizer.apply(this, arguments);\n}\n\ninherit(AttrRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof AttrRecognizer\n */\n defaults: {\n /**\n * @type {Number}\n * @default 1\n */\n pointers: 1\n },\n\n /**\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {Boolean} recognized\n */\n attrTest: function(input) {\n var optionPointers = this.options.pointers;\n return optionPointers === 0 || input.pointers.length === optionPointers;\n },\n\n /**\n * Process the input and return the state for the recognizer\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {*} State\n */\n process: function(input) {\n var state = this.state;\n var eventType = input.eventType;\n\n var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n var isValid = this.attrTest(input);\n\n // on cancel input and we've recognized before, return STATE_CANCELLED\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n return state | STATE_CANCELLED;\n } else if (isRecognized || isValid) {\n if (eventType & INPUT_END) {\n return state | STATE_ENDED;\n } else if (!(state & STATE_BEGAN)) {\n return STATE_BEGAN;\n }\n return state | STATE_CHANGED;\n }\n return STATE_FAILED;\n }\n});\n\n/**\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PanRecognizer() {\n AttrRecognizer.apply(this, arguments);\n\n this.pX = null;\n this.pY = null;\n}\n\ninherit(PanRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PanRecognizer\n */\n defaults: {\n event: 'pan',\n threshold: 10,\n pointers: 1,\n direction: DIRECTION_ALL\n },\n\n getTouchAction: function() {\n var direction = this.options.direction;\n var actions = [];\n if (direction & DIRECTION_HORIZONTAL) {\n actions.push(TOUCH_ACTION_PAN_Y);\n }\n if (direction & DIRECTION_VERTICAL) {\n actions.push(TOUCH_ACTION_PAN_X);\n }\n return actions;\n },\n\n directionTest: function(input) {\n var options = this.options;\n var hasMoved = true;\n var distance = input.distance;\n var direction = input.direction;\n var x = input.deltaX;\n var y = input.deltaY;\n\n // lock to axis?\n if (!(direction & options.direction)) {\n if (options.direction & DIRECTION_HORIZONTAL) {\n direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT;\n hasMoved = x != this.pX;\n distance = Math.abs(input.deltaX);\n } else {\n direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN;\n hasMoved = y != this.pY;\n distance = Math.abs(input.deltaY);\n }\n }\n input.direction = direction;\n return hasMoved && distance > options.threshold && direction & options.direction;\n },\n\n attrTest: function(input) {\n return AttrRecognizer.prototype.attrTest.call(this, input) &&\n (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input)));\n },\n\n emit: function(input) {\n\n this.pX = input.deltaX;\n this.pY = input.deltaY;\n\n var direction = directionStr(input.direction);\n\n if (direction) {\n input.additionalEvent = this.options.event + direction;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PinchRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(PinchRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'pinch',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n },\n\n emit: function(input) {\n if (input.scale !== 1) {\n var inOut = input.scale < 1 ? 'in' : 'out';\n input.additionalEvent = this.options.event + inOut;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\nfunction PressRecognizer() {\n Recognizer.apply(this, arguments);\n\n this._timer = null;\n this._input = null;\n}\n\ninherit(PressRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PressRecognizer\n */\n defaults: {\n event: 'press',\n pointers: 1,\n time: 251, // minimal time of the pointer to be pressed\n threshold: 9 // a minimal movement is ok, but keep it low\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_AUTO];\n },\n\n process: function(input) {\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTime = input.deltaTime > options.time;\n\n this._input = input;\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) {\n this.reset();\n } else if (input.eventType & INPUT_START) {\n this.reset();\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.time, this);\n } else if (input.eventType & INPUT_END) {\n return STATE_RECOGNIZED;\n }\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function(input) {\n if (this.state !== STATE_RECOGNIZED) {\n return;\n }\n\n if (input && (input.eventType & INPUT_END)) {\n this.manager.emit(this.options.event + 'up', input);\n } else {\n this._input.timeStamp = now();\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction RotateRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(RotateRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof RotateRecognizer\n */\n defaults: {\n event: 'rotate',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n }\n});\n\n/**\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction SwipeRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(SwipeRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof SwipeRecognizer\n */\n defaults: {\n event: 'swipe',\n threshold: 10,\n velocity: 0.3,\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n pointers: 1\n },\n\n getTouchAction: function() {\n return PanRecognizer.prototype.getTouchAction.call(this);\n },\n\n attrTest: function(input) {\n var direction = this.options.direction;\n var velocity;\n\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n velocity = input.overallVelocity;\n } else if (direction & DIRECTION_HORIZONTAL) {\n velocity = input.overallVelocityX;\n } else if (direction & DIRECTION_VERTICAL) {\n velocity = input.overallVelocityY;\n }\n\n return this._super.attrTest.call(this, input) &&\n direction & input.offsetDirection &&\n input.distance > this.options.threshold &&\n input.maxPointers == this.options.pointers &&\n abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n },\n\n emit: function(input) {\n var direction = directionStr(input.offsetDirection);\n if (direction) {\n this.manager.emit(this.options.event + direction, input);\n }\n\n this.manager.emit(this.options.event, input);\n }\n});\n\n/**\n * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\nfunction TapRecognizer() {\n Recognizer.apply(this, arguments);\n\n // previous time and center,\n // used for tap counting\n this.pTime = false;\n this.pCenter = false;\n\n this._timer = null;\n this._input = null;\n this.count = 0;\n}\n\ninherit(TapRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'tap',\n pointers: 1,\n taps: 1,\n interval: 300, // max time between the multi-tap taps\n time: 250, // max time of the pointer to be down (like finger on the screen)\n threshold: 9, // a minimal movement is ok, but keep it low\n posThreshold: 10 // a multi-tap can be a bit off the initial position\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_MANIPULATION];\n },\n\n process: function(input) {\n var options = this.options;\n\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTouchTime = input.deltaTime < options.time;\n\n this.reset();\n\n if ((input.eventType & INPUT_START) && (this.count === 0)) {\n return this.failTimeout();\n }\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (validMovement && validTouchTime && validPointers) {\n if (input.eventType != INPUT_END) {\n return this.failTimeout();\n }\n\n var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true;\n var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n\n this.pTime = input.timeStamp;\n this.pCenter = input.center;\n\n if (!validMultiTap || !validInterval) {\n this.count = 1;\n } else {\n this.count += 1;\n }\n\n this._input = input;\n\n // if tap count matches we have recognized it,\n // else it has began recognizing...\n var tapCount = this.count % options.taps;\n if (tapCount === 0) {\n // no failing requirements, immediately trigger the tap event\n // or wait as long as the multitap interval to trigger\n if (!this.hasRequireFailures()) {\n return STATE_RECOGNIZED;\n } else {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.interval, this);\n return STATE_BEGAN;\n }\n }\n }\n return STATE_FAILED;\n },\n\n failTimeout: function() {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_FAILED;\n }, this.options.interval, this);\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function() {\n if (this.state == STATE_RECOGNIZED) {\n this._input.tapCount = this.count;\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Hammer(element, options) {\n options = options || {};\n options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset);\n return new Manager(element, options);\n}\n\n/**\n * @const {string}\n */\nHammer.VERSION = '2.0.7';\n\n/**\n * default settings\n * @namespace\n */\nHammer.defaults = {\n /**\n * set if DOM events are being triggered.\n * But this is slower and unused by simple implementations, so disabled by default.\n * @type {Boolean}\n * @default false\n */\n domEvents: false,\n\n /**\n * The value for the touchAction property/fallback.\n * When set to `compute` it will magically set the correct value based on the added recognizers.\n * @type {String}\n * @default compute\n */\n touchAction: TOUCH_ACTION_COMPUTE,\n\n /**\n * @type {Boolean}\n * @default true\n */\n enable: true,\n\n /**\n * EXPERIMENTAL FEATURE -- can be removed/changed\n * Change the parent input target element.\n * If Null, then it is being set the to main element.\n * @type {Null|EventTarget}\n * @default null\n */\n inputTarget: null,\n\n /**\n * force an input class\n * @type {Null|Function}\n * @default null\n */\n inputClass: null,\n\n /**\n * Default recognizer setup when calling `Hammer()`\n * When creating a new Manager these will be skipped.\n * @type {Array}\n */\n preset: [\n // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]\n [RotateRecognizer, {enable: false}],\n [PinchRecognizer, {enable: false}, ['rotate']],\n [SwipeRecognizer, {direction: DIRECTION_HORIZONTAL}],\n [PanRecognizer, {direction: DIRECTION_HORIZONTAL}, ['swipe']],\n [TapRecognizer],\n [TapRecognizer, {event: 'doubletap', taps: 2}, ['tap']],\n [PressRecognizer]\n ],\n\n /**\n * Some CSS properties can be used to improve the working of Hammer.\n * Add them to this method and they will be set when creating a new Manager.\n * @namespace\n */\n cssProps: {\n /**\n * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userSelect: 'none',\n\n /**\n * Disable the Windows Phone grippers when pressing an element.\n * @type {String}\n * @default 'none'\n */\n touchSelect: 'none',\n\n /**\n * Disables the default callout shown when you touch and hold a touch target.\n * On iOS, when you touch and hold a touch target such as a link, Safari displays\n * a callout containing information about the link. This property allows you to disable that callout.\n * @type {String}\n * @default 'none'\n */\n touchCallout: 'none',\n\n /**\n * Specifies whether zooming is enabled. Used by IE10>\n * @type {String}\n * @default 'none'\n */\n contentZooming: 'none',\n\n /**\n * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userDrag: 'none',\n\n /**\n * Overrides the highlight color shown when the user taps a link or a JavaScript\n * clickable element in iOS. This property obeys the alpha value, if specified.\n * @type {String}\n * @default 'rgba(0,0,0,0)'\n */\n tapHighlightColor: 'rgba(0,0,0,0)'\n }\n};\n\nvar STOP = 1;\nvar FORCED_STOP = 2;\n\n/**\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Manager(element, options) {\n this.options = assign({}, Hammer.defaults, options || {});\n\n this.options.inputTarget = this.options.inputTarget || element;\n\n this.handlers = {};\n this.session = {};\n this.recognizers = [];\n this.oldCssProps = {};\n\n this.element = element;\n this.input = createInputInstance(this);\n this.touchAction = new TouchAction(this, this.options.touchAction);\n\n toggleCssProps(this, true);\n\n each(this.options.recognizers, function(item) {\n var recognizer = this.add(new (item[0])(item[1]));\n item[2] && recognizer.recognizeWith(item[2]);\n item[3] && recognizer.requireFailure(item[3]);\n }, this);\n}\n\nManager.prototype = {\n /**\n * set options\n * @param {Object} options\n * @returns {Manager}\n */\n set: function(options) {\n assign(this.options, options);\n\n // Options that need a little more setup\n if (options.touchAction) {\n this.touchAction.update();\n }\n if (options.inputTarget) {\n // Clean up existing event listeners and reinitialize\n this.input.destroy();\n this.input.target = options.inputTarget;\n this.input.init();\n }\n return this;\n },\n\n /**\n * stop recognizing for this session.\n * This session will be discarded, when a new [input]start event is fired.\n * When forced, the recognizer cycle is stopped immediately.\n * @param {Boolean} [force]\n */\n stop: function(force) {\n this.session.stopped = force ? FORCED_STOP : STOP;\n },\n\n /**\n * run the recognizers!\n * called by the inputHandler function on every movement of the pointers (touches)\n * it walks through all the recognizers and tries to detect the gesture that is being made\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n var session = this.session;\n if (session.stopped) {\n return;\n }\n\n // run the touch-action polyfill\n this.touchAction.preventDefaults(inputData);\n\n var recognizer;\n var recognizers = this.recognizers;\n\n // this holds the recognizer that is being recognized.\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n // if no recognizer is detecting a thing, it is set to `null`\n var curRecognizer = session.curRecognizer;\n\n // reset when the last recognizer is recognized\n // or when we're in a new session\n if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) {\n curRecognizer = session.curRecognizer = null;\n }\n\n var i = 0;\n while (i < recognizers.length) {\n recognizer = recognizers[i];\n\n // find out if we are allowed try to recognize the input for this one.\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n // that is being recognized.\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n // this can be setup with the `recognizeWith()` method on the recognizer.\n if (session.stopped !== FORCED_STOP && ( // 1\n !curRecognizer || recognizer == curRecognizer || // 2\n recognizer.canRecognizeWith(curRecognizer))) { // 3\n recognizer.recognize(inputData);\n } else {\n recognizer.reset();\n }\n\n // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n // current active recognizer. but only if we don't already have an active recognizer\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n curRecognizer = session.curRecognizer = recognizer;\n }\n i++;\n }\n },\n\n /**\n * get a recognizer by its event name.\n * @param {Recognizer|String} recognizer\n * @returns {Recognizer|Null}\n */\n get: function(recognizer) {\n if (recognizer instanceof Recognizer) {\n return recognizer;\n }\n\n var recognizers = this.recognizers;\n for (var i = 0; i < recognizers.length; i++) {\n if (recognizers[i].options.event == recognizer) {\n return recognizers[i];\n }\n }\n return null;\n },\n\n /**\n * add a recognizer to the manager\n * existing recognizers with the same event name will be removed\n * @param {Recognizer} recognizer\n * @returns {Recognizer|Manager}\n */\n add: function(recognizer) {\n if (invokeArrayArg(recognizer, 'add', this)) {\n return this;\n }\n\n // remove existing\n var existing = this.get(recognizer.options.event);\n if (existing) {\n this.remove(existing);\n }\n\n this.recognizers.push(recognizer);\n recognizer.manager = this;\n\n this.touchAction.update();\n return recognizer;\n },\n\n /**\n * remove a recognizer by name or instance\n * @param {Recognizer|String} recognizer\n * @returns {Manager}\n */\n remove: function(recognizer) {\n if (invokeArrayArg(recognizer, 'remove', this)) {\n return this;\n }\n\n recognizer = this.get(recognizer);\n\n // let's make sure this recognizer exists\n if (recognizer) {\n var recognizers = this.recognizers;\n var index = inArray(recognizers, recognizer);\n\n if (index !== -1) {\n recognizers.splice(index, 1);\n this.touchAction.update();\n }\n }\n\n return this;\n },\n\n /**\n * bind event\n * @param {String} events\n * @param {Function} handler\n * @returns {EventEmitter} this\n */\n on: function(events, handler) {\n if (events === undefined) {\n return;\n }\n if (handler === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n handlers[event] = handlers[event] || [];\n handlers[event].push(handler);\n });\n return this;\n },\n\n /**\n * unbind event, leave emit blank to remove all handlers\n * @param {String} events\n * @param {Function} [handler]\n * @returns {EventEmitter} this\n */\n off: function(events, handler) {\n if (events === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n if (!handler) {\n delete handlers[event];\n } else {\n handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n }\n });\n return this;\n },\n\n /**\n * emit event to the listeners\n * @param {String} event\n * @param {Object} data\n */\n emit: function(event, data) {\n // we also want to trigger dom events\n if (this.options.domEvents) {\n triggerDomEvent(event, data);\n }\n\n // no handlers, so skip it all\n var handlers = this.handlers[event] && this.handlers[event].slice();\n if (!handlers || !handlers.length) {\n return;\n }\n\n data.type = event;\n data.preventDefault = function() {\n data.srcEvent.preventDefault();\n };\n\n var i = 0;\n while (i < handlers.length) {\n handlers[i](data);\n i++;\n }\n },\n\n /**\n * destroy the manager and unbinds all events\n * it doesn't unbind dom events, that is the user own responsibility\n */\n destroy: function() {\n this.element && toggleCssProps(this, false);\n\n this.handlers = {};\n this.session = {};\n this.input.destroy();\n this.element = null;\n }\n};\n\n/**\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\nfunction toggleCssProps(manager, add) {\n var element = manager.element;\n if (!element.style) {\n return;\n }\n var prop;\n each(manager.options.cssProps, function(value, name) {\n prop = prefixed(element.style, name);\n if (add) {\n manager.oldCssProps[prop] = element.style[prop];\n element.style[prop] = value;\n } else {\n element.style[prop] = manager.oldCssProps[prop] || '';\n }\n });\n if (!add) {\n manager.oldCssProps = {};\n }\n}\n\n/**\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\nfunction triggerDomEvent(event, data) {\n var gestureEvent = document.createEvent('Event');\n gestureEvent.initEvent(event, true, true);\n gestureEvent.gesture = data;\n data.target.dispatchEvent(gestureEvent);\n}\n\nassign(Hammer, {\n INPUT_START: INPUT_START,\n INPUT_MOVE: INPUT_MOVE,\n INPUT_END: INPUT_END,\n INPUT_CANCEL: INPUT_CANCEL,\n\n STATE_POSSIBLE: STATE_POSSIBLE,\n STATE_BEGAN: STATE_BEGAN,\n STATE_CHANGED: STATE_CHANGED,\n STATE_ENDED: STATE_ENDED,\n STATE_RECOGNIZED: STATE_RECOGNIZED,\n STATE_CANCELLED: STATE_CANCELLED,\n STATE_FAILED: STATE_FAILED,\n\n DIRECTION_NONE: DIRECTION_NONE,\n DIRECTION_LEFT: DIRECTION_LEFT,\n DIRECTION_RIGHT: DIRECTION_RIGHT,\n DIRECTION_UP: DIRECTION_UP,\n DIRECTION_DOWN: DIRECTION_DOWN,\n DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL,\n DIRECTION_VERTICAL: DIRECTION_VERTICAL,\n DIRECTION_ALL: DIRECTION_ALL,\n\n Manager: Manager,\n Input: Input,\n TouchAction: TouchAction,\n\n TouchInput: TouchInput,\n MouseInput: MouseInput,\n PointerEventInput: PointerEventInput,\n TouchMouseInput: TouchMouseInput,\n SingleTouchInput: SingleTouchInput,\n\n Recognizer: Recognizer,\n AttrRecognizer: AttrRecognizer,\n Tap: TapRecognizer,\n Pan: PanRecognizer,\n Swipe: SwipeRecognizer,\n Pinch: PinchRecognizer,\n Rotate: RotateRecognizer,\n Press: PressRecognizer,\n\n on: addEventListeners,\n off: removeEventListeners,\n each: each,\n merge: merge,\n extend: extend,\n assign: assign,\n inherit: inherit,\n bindFn: bindFn,\n prefixed: prefixed\n});\n\n// this prevents errors when Hammer is loaded in the presence of an AMD\n// style loader but by script tag, not by the loader.\nvar freeGlobal = (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : {})); // jshint ignore:line\nfreeGlobal.Hammer = Hammer;\n\nif (typeof define === 'function' && define.amd) {\n define(function() {\n return Hammer;\n });\n} else if (typeof module != 'undefined' && module.exports) {\n module.exports = Hammer;\n} else {\n window[exportName] = Hammer;\n}\n\n})(window, document, 'Hammer');\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport { CryptoUtils } from \"./utils/CryptoUtils\";\r\nimport { StringUtils } from \"./utils/StringUtils\";\r\n/**\r\n * accountIdentifier combination of idToken.uid and idToken.utid\r\n * homeAccountIdentifier combination of clientInfo.uid and clientInfo.utid\r\n * userName idToken.preferred_username\r\n * name idToken.name\r\n * idToken idToken\r\n * sid idToken.sid - session identifier\r\n * environment idtoken.issuer (the authority that issues the token)\r\n */\r\nvar Account = /** @class */ (function () {\r\n /**\r\n * Creates an Account Object\r\n * @praram accountIdentifier\r\n * @param homeAccountIdentifier\r\n * @param userName\r\n * @param name\r\n * @param idToken\r\n * @param sid\r\n * @param environment\r\n */\r\n function Account(accountIdentifier, homeAccountIdentifier, userName, name, idTokenClaims, sid, environment) {\r\n this.accountIdentifier = accountIdentifier;\r\n this.homeAccountIdentifier = homeAccountIdentifier;\r\n this.userName = userName;\r\n this.name = name;\r\n // will be deprecated soon\r\n this.idToken = idTokenClaims;\r\n this.idTokenClaims = idTokenClaims;\r\n this.sid = sid;\r\n this.environment = environment;\r\n }\r\n /**\r\n * @hidden\r\n * @param idToken\r\n * @param clientInfo\r\n */\r\n Account.createAccount = function (idToken, clientInfo) {\r\n // create accountIdentifier\r\n var accountIdentifier = idToken.objectId || idToken.subject;\r\n // create homeAccountIdentifier\r\n var uid = clientInfo ? clientInfo.uid : \"\";\r\n var utid = clientInfo ? clientInfo.utid : \"\";\r\n var homeAccountIdentifier;\r\n if (!StringUtils.isEmpty(uid) && !StringUtils.isEmpty(utid)) {\r\n homeAccountIdentifier = CryptoUtils.base64Encode(uid) + \".\" + CryptoUtils.base64Encode(utid);\r\n }\r\n return new Account(accountIdentifier, homeAccountIdentifier, idToken.preferredName, idToken.name, idToken.claims, idToken.sid, idToken.issuer);\r\n };\r\n /**\r\n * Utils function to compare two Account objects - used to check if the same user account is logged in\r\n *\r\n * @param a1: Account object\r\n * @param a2: Account object\r\n */\r\n Account.compareAccounts = function (a1, a2) {\r\n if (!a1 || !a2) {\r\n return false;\r\n }\r\n if (a1.homeAccountIdentifier && a2.homeAccountIdentifier) {\r\n if (a1.homeAccountIdentifier === a2.homeAccountIdentifier) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n return Account;\r\n}());\r\nexport { Account };\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nexport function buildResponseStateOnly(state) {\r\n return {\r\n uniqueId: \"\",\r\n tenantId: \"\",\r\n tokenType: \"\",\r\n idToken: null,\r\n idTokenClaims: null,\r\n accessToken: \"\",\r\n scopes: null,\r\n expiresOn: null,\r\n account: null,\r\n accountState: state,\r\n fromCache: false\r\n };\r\n}\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport { CryptoUtils } from \"./utils/CryptoUtils\";\r\nimport { ClientAuthError } from \"./error/ClientAuthError\";\r\nimport { StringUtils } from \"./utils/StringUtils\";\r\n/**\r\n * @hidden\r\n */\r\nvar ClientInfo = /** @class */ (function () {\r\n function ClientInfo(rawClientInfo) {\r\n if (!rawClientInfo || StringUtils.isEmpty(rawClientInfo)) {\r\n this.uid = \"\";\r\n this.utid = \"\";\r\n return;\r\n }\r\n try {\r\n var decodedClientInfo = CryptoUtils.base64Decode(rawClientInfo);\r\n var clientInfo = JSON.parse(decodedClientInfo);\r\n if (clientInfo) {\r\n if (clientInfo.hasOwnProperty(\"uid\")) {\r\n this.uid = clientInfo.uid;\r\n }\r\n if (clientInfo.hasOwnProperty(\"utid\")) {\r\n this.utid = clientInfo.utid;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n throw ClientAuthError.createClientInfoDecodingError(e);\r\n }\r\n }\r\n Object.defineProperty(ClientInfo.prototype, \"uid\", {\r\n get: function () {\r\n return this._uid ? this._uid : \"\";\r\n },\r\n set: function (uid) {\r\n this._uid = uid;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ClientInfo.prototype, \"utid\", {\r\n get: function () {\r\n return this._utid ? this._utid : \"\";\r\n },\r\n set: function (utid) {\r\n this._utid = utid;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return ClientInfo;\r\n}());\r\nexport { ClientInfo };\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport { Logger } from \"./Logger\";\r\nimport { UrlUtils } from \"./utils/UrlUtils\";\r\n/**\r\n * Defaults for the Configuration Options\r\n */\r\nvar FRAME_TIMEOUT = 6000;\r\nvar OFFSET = 300;\r\nvar NAVIGATE_FRAME_WAIT = 500;\r\nvar DEFAULT_AUTH_OPTIONS = {\r\n clientId: \"\",\r\n authority: null,\r\n validateAuthority: true,\r\n authorityMetadata: \"\",\r\n knownAuthorities: [],\r\n redirectUri: function () { return UrlUtils.getCurrentUrl(); },\r\n postLogoutRedirectUri: function () { return UrlUtils.getCurrentUrl(); },\r\n navigateToLoginRequestUrl: true\r\n};\r\nvar DEFAULT_CACHE_OPTIONS = {\r\n cacheLocation: \"sessionStorage\",\r\n storeAuthStateInCookie: false\r\n};\r\nvar DEFAULT_SYSTEM_OPTIONS = {\r\n logger: new Logger(null),\r\n loadFrameTimeout: FRAME_TIMEOUT,\r\n tokenRenewalOffsetSeconds: OFFSET,\r\n navigateFrameWait: NAVIGATE_FRAME_WAIT\r\n};\r\nvar DEFAULT_FRAMEWORK_OPTIONS = {\r\n isAngular: false,\r\n unprotectedResources: new Array(),\r\n protectedResourceMap: new Map()\r\n};\r\n/**\r\n * MSAL function that sets the default options when not explicitly configured from app developer\r\n *\r\n * @param TAuthOptions\r\n * @param TCacheOptions\r\n * @param TSystemOptions\r\n * @param TFrameworkOptions\r\n * @param TAuthorityDataOptions\r\n *\r\n * @returns TConfiguration object\r\n */\r\nexport function buildConfiguration(_a) {\r\n var auth = _a.auth, _b = _a.cache, cache = _b === void 0 ? {} : _b, _c = _a.system, system = _c === void 0 ? {} : _c, _d = _a.framework, framework = _d === void 0 ? {} : _d;\r\n var overlayedConfig = {\r\n auth: tslib_1.__assign({}, DEFAULT_AUTH_OPTIONS, auth),\r\n cache: tslib_1.__assign({}, DEFAULT_CACHE_OPTIONS, cache),\r\n system: tslib_1.__assign({}, DEFAULT_SYSTEM_OPTIONS, system),\r\n framework: tslib_1.__assign({}, DEFAULT_FRAMEWORK_OPTIONS, framework)\r\n };\r\n return overlayedConfig;\r\n}\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport { ClientAuthError } from \"./error/ClientAuthError\";\r\nimport { TokenUtils } from \"./utils/TokenUtils\";\r\nimport { StringUtils } from \"./utils/StringUtils\";\r\n/**\r\n * @hidden\r\n */\r\nvar IdToken = /** @class */ (function () {\r\n /* tslint:disable:no-string-literal */\r\n function IdToken(rawIdToken) {\r\n if (StringUtils.isEmpty(rawIdToken)) {\r\n throw ClientAuthError.createIdTokenNullOrEmptyError(rawIdToken);\r\n }\r\n try {\r\n this.rawIdToken = rawIdToken;\r\n this.claims = TokenUtils.extractIdToken(rawIdToken);\r\n if (this.claims) {\r\n if (this.claims.hasOwnProperty(\"iss\")) {\r\n this.issuer = this.claims[\"iss\"];\r\n }\r\n if (this.claims.hasOwnProperty(\"oid\")) {\r\n this.objectId = this.claims[\"oid\"];\r\n }\r\n if (this.claims.hasOwnProperty(\"sub\")) {\r\n this.subject = this.claims[\"sub\"];\r\n }\r\n if (this.claims.hasOwnProperty(\"tid\")) {\r\n this.tenantId = this.claims[\"tid\"];\r\n }\r\n if (this.claims.hasOwnProperty(\"ver\")) {\r\n this.version = this.claims[\"ver\"];\r\n }\r\n if (this.claims.hasOwnProperty(\"preferred_username\")) {\r\n this.preferredName = this.claims[\"preferred_username\"];\r\n }\r\n if (this.claims.hasOwnProperty(\"name\")) {\r\n this.name = this.claims[\"name\"];\r\n }\r\n if (this.claims.hasOwnProperty(\"nonce\")) {\r\n this.nonce = this.claims[\"nonce\"];\r\n }\r\n if (this.claims.hasOwnProperty(\"exp\")) {\r\n this.expiration = this.claims[\"exp\"];\r\n }\r\n if (this.claims.hasOwnProperty(\"home_oid\")) {\r\n this.homeObjectId = this.claims[\"home_oid\"];\r\n }\r\n if (this.claims.hasOwnProperty(\"sid\")) {\r\n this.sid = this.claims[\"sid\"];\r\n }\r\n if (this.claims.hasOwnProperty(\"cloud_instance_host_name\")) {\r\n this.cloudInstance = this.claims[\"cloud_instance_host_name\"];\r\n }\r\n /* tslint:enable:no-string-literal */\r\n }\r\n }\r\n catch (e) {\r\n /*\r\n * TODO: This error here won't really every be thrown, since extractIdToken() returns null if the decodeJwt() fails.\r\n * Need to add better error handling here to account for being unable to decode jwts.\r\n */\r\n throw ClientAuthError.createIdTokenParsingError(e);\r\n }\r\n }\r\n return IdToken;\r\n}());\r\nexport { IdToken };\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport { StringUtils } from \"./utils/StringUtils\";\r\nimport { libraryVersion } from \"./utils/Constants\";\r\nexport var LogLevel;\r\n(function (LogLevel) {\r\n LogLevel[LogLevel[\"Error\"] = 0] = \"Error\";\r\n LogLevel[LogLevel[\"Warning\"] = 1] = \"Warning\";\r\n LogLevel[LogLevel[\"Info\"] = 2] = \"Info\";\r\n LogLevel[LogLevel[\"Verbose\"] = 3] = \"Verbose\";\r\n})(LogLevel || (LogLevel = {}));\r\nvar Logger = /** @class */ (function () {\r\n function Logger(localCallback, options) {\r\n if (options === void 0) { options = {}; }\r\n /**\r\n * @hidden\r\n */\r\n this.level = LogLevel.Info;\r\n var _a = options.correlationId, correlationId = _a === void 0 ? \"\" : _a, _b = options.level, level = _b === void 0 ? LogLevel.Info : _b, _c = options.piiLoggingEnabled, piiLoggingEnabled = _c === void 0 ? false : _c;\r\n this.localCallback = localCallback;\r\n this.correlationId = correlationId;\r\n this.level = level;\r\n this.piiLoggingEnabled = piiLoggingEnabled;\r\n }\r\n /**\r\n * @hidden\r\n */\r\n Logger.prototype.logMessage = function (logLevel, logMessage, containsPii) {\r\n if ((logLevel > this.level) || (!this.piiLoggingEnabled && containsPii)) {\r\n return;\r\n }\r\n var timestamp = new Date().toUTCString();\r\n var log;\r\n if (!StringUtils.isEmpty(this.correlationId)) {\r\n log = timestamp + \":\" + this.correlationId + \"-\" + libraryVersion() + \"-\" + LogLevel[logLevel] + (containsPii ? \"-pii\" : \"\") + \" \" + logMessage;\r\n }\r\n else {\r\n log = timestamp + \":\" + libraryVersion() + \"-\" + LogLevel[logLevel] + (containsPii ? \"-pii\" : \"\") + \" \" + logMessage;\r\n }\r\n this.executeCallback(logLevel, log, containsPii);\r\n };\r\n /**\r\n * @hidden\r\n */\r\n Logger.prototype.executeCallback = function (level, message, containsPii) {\r\n if (this.localCallback) {\r\n this.localCallback(level, message, containsPii);\r\n }\r\n };\r\n /**\r\n * @hidden\r\n */\r\n Logger.prototype.error = function (message) {\r\n this.logMessage(LogLevel.Error, message, false);\r\n };\r\n /**\r\n * @hidden\r\n */\r\n Logger.prototype.errorPii = function (message) {\r\n this.logMessage(LogLevel.Error, message, true);\r\n };\r\n /**\r\n * @hidden\r\n */\r\n Logger.prototype.warning = function (message) {\r\n this.logMessage(LogLevel.Warning, message, false);\r\n };\r\n /**\r\n * @hidden\r\n */\r\n Logger.prototype.warningPii = function (message) {\r\n this.logMessage(LogLevel.Warning, message, true);\r\n };\r\n /**\r\n * @hidden\r\n */\r\n Logger.prototype.info = function (message) {\r\n this.logMessage(LogLevel.Info, message, false);\r\n };\r\n /**\r\n * @hidden\r\n */\r\n Logger.prototype.infoPii = function (message) {\r\n this.logMessage(LogLevel.Info, message, true);\r\n };\r\n /**\r\n * @hidden\r\n */\r\n Logger.prototype.verbose = function (message) {\r\n this.logMessage(LogLevel.Verbose, message, false);\r\n };\r\n /**\r\n * @hidden\r\n */\r\n Logger.prototype.verbosePii = function (message) {\r\n this.logMessage(LogLevel.Verbose, message, true);\r\n };\r\n Logger.prototype.isPiiLoggingEnabled = function () {\r\n return this.piiLoggingEnabled;\r\n };\r\n return Logger;\r\n}());\r\nexport { Logger };\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport { ClientConfigurationError } from \"./error/ClientConfigurationError\";\r\nimport { Constants } from \"./utils/Constants\";\r\nvar ScopeSet = /** @class */ (function () {\r\n function ScopeSet() {\r\n }\r\n /**\r\n * Check if there are dup scopes in a given request\r\n *\r\n * @param cachedScopes\r\n * @param scopes\r\n */\r\n // TODO: Rename this, intersecting scopes isn't a great name for duplicate checker\r\n ScopeSet.isIntersectingScopes = function (cachedScopes, scopes) {\r\n var convertedCachedScopes = this.trimAndConvertArrayToLowerCase(cachedScopes.slice());\r\n var requestScopes = this.trimAndConvertArrayToLowerCase(scopes.slice());\r\n for (var i = 0; i < requestScopes.length; i++) {\r\n if (convertedCachedScopes.indexOf(requestScopes[i].toLowerCase()) > -1) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n /**\r\n * Check if a given scope is present in the request\r\n *\r\n * @param cachedScopes\r\n * @param scopes\r\n */\r\n ScopeSet.containsScope = function (cachedScopes, scopes) {\r\n var convertedCachedScopes = this.trimAndConvertArrayToLowerCase(cachedScopes.slice());\r\n var requestScopes = this.trimAndConvertArrayToLowerCase(scopes.slice());\r\n return requestScopes.every(function (value) { return convertedCachedScopes.indexOf(value.toString().toLowerCase()) >= 0; });\r\n };\r\n /**\r\n * Trims and converts string to lower case\r\n *\r\n * @param scopes\r\n */\r\n // TODO: Rename this, too generic name for a function that only deals with scopes\r\n ScopeSet.trimAndConvertToLowerCase = function (scope) {\r\n return scope.trim().toLowerCase();\r\n };\r\n /**\r\n * Performs trimAndConvertToLowerCase on string array\r\n * @param scopes\r\n */\r\n ScopeSet.trimAndConvertArrayToLowerCase = function (scopes) {\r\n var _this = this;\r\n return scopes.map(function (scope) { return _this.trimAndConvertToLowerCase(scope); });\r\n };\r\n /**\r\n * Trims each scope in scopes array\r\n * @param scopes\r\n */\r\n ScopeSet.trimScopes = function (scopes) {\r\n return scopes.map(function (scope) { return scope.trim(); });\r\n };\r\n /**\r\n * Remove one element from a scope array\r\n *\r\n * @param scopes\r\n * @param scope\r\n */\r\n // TODO: Rename this, too generic name for a function that only deals with scopes\r\n ScopeSet.removeElement = function (scopes, scope) {\r\n var scopeVal = this.trimAndConvertToLowerCase(scope);\r\n return scopes.filter(function (value) { return value !== scopeVal; });\r\n };\r\n /**\r\n * Parse the scopes into a formatted scopeList\r\n * @param scopes\r\n */\r\n ScopeSet.parseScope = function (scopes) {\r\n var scopeList = \"\";\r\n if (scopes) {\r\n for (var i = 0; i < scopes.length; ++i) {\r\n scopeList += (i !== scopes.length - 1) ? scopes[i] + \" \" : scopes[i];\r\n }\r\n }\r\n return scopeList;\r\n };\r\n /**\r\n * @hidden\r\n *\r\n * Used to validate the scopes input parameter requested by the developer.\r\n * @param {Array} scopes - Developer requested permissions. Not all scopes are guaranteed to be included in the access token returned.\r\n * @param {boolean} scopesRequired - Boolean indicating whether the scopes array is required or not\r\n * @ignore\r\n */\r\n ScopeSet.validateInputScope = function (scopes, scopesRequired, clientId) {\r\n if (!scopes) {\r\n if (scopesRequired) {\r\n throw ClientConfigurationError.createScopesRequiredError(scopes);\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n // Check that scopes is an array object (also throws error if scopes == null)\r\n if (!Array.isArray(scopes)) {\r\n throw ClientConfigurationError.createScopesNonArrayError(scopes);\r\n }\r\n // Check that scopes is not an empty array\r\n if (scopes.length < 1) {\r\n throw ClientConfigurationError.createEmptyScopesArrayError(scopes.toString());\r\n }\r\n // Check that clientId is passed as single scope\r\n if (scopes.indexOf(clientId) > -1) {\r\n if (scopes.length > 1) {\r\n throw ClientConfigurationError.createClientIdSingleScopeError(scopes.toString());\r\n }\r\n }\r\n };\r\n /**\r\n * @hidden\r\n *\r\n * Extracts scope value from the state sent with the authentication request.\r\n * @param {string} state\r\n * @returns {string} scope.\r\n * @ignore\r\n */\r\n ScopeSet.getScopeFromState = function (state) {\r\n if (state) {\r\n var splitIndex = state.indexOf(Constants.resourceDelimiter);\r\n if (splitIndex > -1 && splitIndex + 1 < state.length) {\r\n return state.substring(splitIndex + 1);\r\n }\r\n }\r\n return \"\";\r\n };\r\n /**\r\n * @ignore\r\n * Appends extraScopesToConsent if passed\r\n * @param {@link AuthenticationParameters}\r\n */\r\n ScopeSet.appendScopes = function (reqScopes, reqExtraScopesToConsent) {\r\n if (reqScopes) {\r\n var convertedExtraScopes = reqExtraScopesToConsent ? this.trimAndConvertArrayToLowerCase(reqExtraScopesToConsent.slice()) : null;\r\n var convertedReqScopes = this.trimAndConvertArrayToLowerCase(reqScopes.slice());\r\n return convertedExtraScopes ? convertedReqScopes.concat(convertedExtraScopes) : convertedReqScopes;\r\n }\r\n return null;\r\n };\r\n return ScopeSet;\r\n}());\r\nexport { ScopeSet };\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport { CryptoUtils } from \"./utils/CryptoUtils\";\r\nimport { SSOTypes, Constants, PromptState, libraryVersion } from \"./utils/Constants\";\r\nimport { StringUtils } from \"./utils/StringUtils\";\r\nimport { ScopeSet } from \"./ScopeSet\";\r\n/**\r\n * Nonce: OIDC Nonce definition: https://openid.net/specs/openid-connect-core-1_0.html#IDToken\r\n * State: OAuth Spec: https://tools.ietf.org/html/rfc6749#section-10.12\r\n * @hidden\r\n */\r\nvar ServerRequestParameters = /** @class */ (function () {\r\n /**\r\n * Constructor\r\n * @param authority\r\n * @param clientId\r\n * @param scope\r\n * @param responseType\r\n * @param redirectUri\r\n * @param state\r\n */\r\n function ServerRequestParameters(authority, clientId, responseType, redirectUri, scopes, state, correlationId) {\r\n this.authorityInstance = authority;\r\n this.clientId = clientId;\r\n this.nonce = CryptoUtils.createNewGuid();\r\n // set scope to clientId if null\r\n this.scopes = scopes ? scopes.slice() : [clientId];\r\n this.scopes = ScopeSet.trimScopes(this.scopes);\r\n // set state (already set at top level)\r\n this.state = state;\r\n // set correlationId\r\n this.correlationId = correlationId;\r\n // telemetry information\r\n this.xClientSku = \"MSAL.JS\";\r\n this.xClientVer = libraryVersion();\r\n this.responseType = responseType;\r\n this.redirectUri = redirectUri;\r\n }\r\n Object.defineProperty(ServerRequestParameters.prototype, \"authority\", {\r\n get: function () {\r\n return this.authorityInstance ? this.authorityInstance.CanonicalAuthority : null;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @hidden\r\n * @ignore\r\n *\r\n * Utility to populate QueryParameters and ExtraQueryParameters to ServerRequestParamerers\r\n * @param request\r\n * @param serverAuthenticationRequest\r\n */\r\n ServerRequestParameters.prototype.populateQueryParams = function (account, request, adalIdTokenObject, silentCall) {\r\n var queryParameters = {};\r\n if (request) {\r\n // add the prompt parameter to serverRequestParameters if passed\r\n if (request.prompt) {\r\n this.promptValue = request.prompt;\r\n }\r\n // Add claims challenge to serverRequestParameters if passed\r\n if (request.claimsRequest) {\r\n this.claimsValue = request.claimsRequest;\r\n }\r\n // if the developer provides one of these, give preference to developer choice\r\n if (ServerRequestParameters.isSSOParam(request)) {\r\n queryParameters = this.constructUnifiedCacheQueryParameter(request, null);\r\n }\r\n }\r\n if (adalIdTokenObject) {\r\n queryParameters = this.constructUnifiedCacheQueryParameter(null, adalIdTokenObject);\r\n }\r\n /*\r\n * adds sid/login_hint if not populated\r\n * this.logger.verbose(\"Calling addHint parameters\");\r\n */\r\n queryParameters = this.addHintParameters(account, queryParameters);\r\n // sanity check for developer passed extraQueryParameters\r\n var eQParams = request ? request.extraQueryParameters : null;\r\n // Populate the extraQueryParameters to be sent to the server\r\n this.queryParameters = ServerRequestParameters.generateQueryParametersString(queryParameters);\r\n this.extraQueryParameters = ServerRequestParameters.generateQueryParametersString(eQParams, silentCall);\r\n };\r\n // #region QueryParam helpers\r\n /**\r\n * Constructs extraQueryParameters to be sent to the server for the AuthenticationParameters set by the developer\r\n * in any login() or acquireToken() calls\r\n * @param idTokenObject\r\n * @param extraQueryParameters\r\n * @param sid\r\n * @param loginHint\r\n */\r\n // TODO: check how this behaves when domain_hint only is sent in extraparameters and idToken has no upn.\r\n ServerRequestParameters.prototype.constructUnifiedCacheQueryParameter = function (request, idTokenObject) {\r\n // preference order: account > sid > login_hint\r\n var ssoType;\r\n var ssoData;\r\n var serverReqParam = {};\r\n // if account info is passed, account.sid > account.login_hint\r\n if (request) {\r\n if (request.account) {\r\n var account = request.account;\r\n if (account.sid) {\r\n ssoType = SSOTypes.SID;\r\n ssoData = account.sid;\r\n }\r\n else if (account.userName) {\r\n ssoType = SSOTypes.LOGIN_HINT;\r\n ssoData = account.userName;\r\n }\r\n }\r\n // sid from request\r\n else if (request.sid) {\r\n ssoType = SSOTypes.SID;\r\n ssoData = request.sid;\r\n }\r\n // loginHint from request\r\n else if (request.loginHint) {\r\n ssoType = SSOTypes.LOGIN_HINT;\r\n ssoData = request.loginHint;\r\n }\r\n }\r\n // adalIdToken retrieved from cache\r\n else if (idTokenObject) {\r\n if (idTokenObject.hasOwnProperty(Constants.upn)) {\r\n ssoType = SSOTypes.ID_TOKEN;\r\n ssoData = idTokenObject.upn;\r\n }\r\n }\r\n serverReqParam = this.addSSOParameter(ssoType, ssoData);\r\n return serverReqParam;\r\n };\r\n /**\r\n * @hidden\r\n *\r\n * Adds login_hint to authorization URL which is used to pre-fill the username field of sign in page for the user if known ahead of time\r\n * domain_hint if added skips the email based discovery process of the user - only supported for interactive calls in implicit_flow\r\n * domain_req utid received as part of the clientInfo\r\n * login_req uid received as part of clientInfo\r\n * Also does a sanity check for extraQueryParameters passed by the user to ensure no repeat queryParameters\r\n *\r\n * @param {@link Account} account - Account for which the token is requested\r\n * @param queryparams\r\n * @param {@link ServerRequestParameters}\r\n * @ignore\r\n */\r\n ServerRequestParameters.prototype.addHintParameters = function (account, qParams) {\r\n /*\r\n * This is a final check for all queryParams added so far; preference order: sid > login_hint\r\n * sid cannot be passed along with login_hint or domain_hint, hence we check both are not populated yet in queryParameters\r\n */\r\n if (account && !qParams[SSOTypes.SID]) {\r\n // sid - populate only if login_hint is not already populated and the account has sid\r\n var populateSID = !qParams[SSOTypes.LOGIN_HINT] && account.sid && this.promptValue === PromptState.NONE;\r\n if (populateSID) {\r\n qParams = this.addSSOParameter(SSOTypes.SID, account.sid, qParams);\r\n }\r\n // login_hint - account.userName\r\n else {\r\n var populateLoginHint = !qParams[SSOTypes.LOGIN_HINT] && account.userName && !StringUtils.isEmpty(account.userName);\r\n if (populateLoginHint) {\r\n qParams = this.addSSOParameter(SSOTypes.LOGIN_HINT, account.userName, qParams);\r\n }\r\n }\r\n }\r\n return qParams;\r\n };\r\n /**\r\n * Add SID to extraQueryParameters\r\n * @param sid\r\n */\r\n ServerRequestParameters.prototype.addSSOParameter = function (ssoType, ssoData, ssoParam) {\r\n if (!ssoParam) {\r\n ssoParam = {};\r\n }\r\n if (!ssoData) {\r\n return ssoParam;\r\n }\r\n switch (ssoType) {\r\n case SSOTypes.SID: {\r\n ssoParam[SSOTypes.SID] = ssoData;\r\n break;\r\n }\r\n case SSOTypes.ID_TOKEN: {\r\n ssoParam[SSOTypes.LOGIN_HINT] = ssoData;\r\n break;\r\n }\r\n case SSOTypes.LOGIN_HINT: {\r\n ssoParam[SSOTypes.LOGIN_HINT] = ssoData;\r\n break;\r\n }\r\n }\r\n return ssoParam;\r\n };\r\n /**\r\n * Utility to generate a QueryParameterString from a Key-Value mapping of extraQueryParameters passed\r\n * @param extraQueryParameters\r\n */\r\n ServerRequestParameters.generateQueryParametersString = function (queryParameters, silentCall) {\r\n var paramsString = null;\r\n if (queryParameters) {\r\n Object.keys(queryParameters).forEach(function (key) {\r\n // sid cannot be passed along with login_hint or domain_hint\r\n if (key === Constants.domain_hint && (silentCall || queryParameters[SSOTypes.SID])) {\r\n return;\r\n }\r\n if (paramsString == null) {\r\n paramsString = key + \"=\" + encodeURIComponent(queryParameters[key]);\r\n }\r\n else {\r\n paramsString += \"&\" + key + \"=\" + encodeURIComponent(queryParameters[key]);\r\n }\r\n });\r\n }\r\n return paramsString;\r\n };\r\n // #endregion\r\n /**\r\n * Check to see if there are SSO params set in the Request\r\n * @param request\r\n */\r\n ServerRequestParameters.isSSOParam = function (request) {\r\n return request && (request.account || request.sid || request.loginHint);\r\n };\r\n return ServerRequestParameters;\r\n}());\r\nexport { ServerRequestParameters };\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport { AccessTokenKey } from \"./cache/AccessTokenKey\";\r\nimport { AccessTokenValue } from \"./cache/AccessTokenValue\";\r\nimport { ServerRequestParameters } from \"./ServerRequestParameters\";\r\nimport { ClientInfo } from \"./ClientInfo\";\r\nimport { IdToken } from \"./IdToken\";\r\nimport { AuthCache } from \"./cache/AuthCache\";\r\nimport { Account } from \"./Account\";\r\nimport { ScopeSet } from \"./ScopeSet\";\r\nimport { StringUtils } from \"./utils/StringUtils\";\r\nimport { WindowUtils } from \"./utils/WindowUtils\";\r\nimport { TokenUtils } from \"./utils/TokenUtils\";\r\nimport { TimeUtils } from \"./utils/TimeUtils\";\r\nimport { UrlUtils } from \"./utils/UrlUtils\";\r\nimport { RequestUtils } from \"./utils/RequestUtils\";\r\nimport { ResponseUtils } from \"./utils/ResponseUtils\";\r\nimport { AuthorityFactory } from \"./authority/AuthorityFactory\";\r\nimport { buildConfiguration } from \"./Configuration\";\r\nimport { ClientConfigurationError } from \"./error/ClientConfigurationError\";\r\nimport { AuthError } from \"./error/AuthError\";\r\nimport { ClientAuthError, ClientAuthErrorMessage } from \"./error/ClientAuthError\";\r\nimport { ServerError } from \"./error/ServerError\";\r\nimport { InteractionRequiredAuthError } from \"./error/InteractionRequiredAuthError\";\r\nimport { buildResponseStateOnly } from \"./AuthResponse\";\r\nimport TelemetryManager from \"./telemetry/TelemetryManager\";\r\nimport { API_EVENT_IDENTIFIER } from \"./telemetry/ApiEvent\";\r\nimport { Constants, ServerHashParamKeys, TemporaryCacheKeys, PersistentCacheKeys, ErrorCacheKeys, FramePrefix } from \"./utils/Constants\";\r\nimport { CryptoUtils } from \"./utils/CryptoUtils\";\r\nimport { TrustedAuthority } from \"./authority/TrustedAuthority\";\r\n// default authority\r\nvar DEFAULT_AUTHORITY = \"https://login.microsoftonline.com/common\";\r\n/**\r\n * @hidden\r\n * @ignore\r\n * response_type from OpenIDConnect\r\n * References: https://openid.net/specs/oauth-v2-multiple-response-types-1_0.html & https://tools.ietf.org/html/rfc6749#section-4.2.1\r\n * Since we support only implicit flow in this library, we restrict the response_type support to only 'token' and 'id_token'\r\n *\r\n */\r\nvar ResponseTypes = {\r\n id_token: \"id_token\",\r\n token: \"token\",\r\n id_token_token: \"id_token token\"\r\n};\r\n/**\r\n * UserAgentApplication class\r\n *\r\n * Object Instance that the developer can use to make loginXX OR acquireTokenXX functions\r\n */\r\nvar UserAgentApplication = /** @class */ (function () {\r\n /**\r\n * @constructor\r\n * Constructor for the UserAgentApplication used to instantiate the UserAgentApplication object\r\n *\r\n * Important attributes in the Configuration object for auth are:\r\n * - clientID: the application ID of your application.\r\n * You can obtain one by registering your application with our Application registration portal : https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredAppsPreview\r\n * - authority: the authority URL for your application.\r\n *\r\n * In Azure AD, authority is a URL indicating the Azure active directory that MSAL uses to obtain tokens.\r\n * It is of the form https://login.microsoftonline.com/<Enter_the_Tenant_Info_Here>.\r\n * If your application supports Accounts in one organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with the Tenant Id or Tenant name (for example, contoso.microsoft.com).\r\n * If your application supports Accounts in any organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with organizations.\r\n * If your application supports Accounts in any organizational directory and personal Microsoft accounts, replace \"Enter_the_Tenant_Info_Here\" value with common.\r\n * To restrict support to Personal Microsoft accounts only, replace \"Enter_the_Tenant_Info_Here\" value with consumers.\r\n *\r\n *\r\n * In Azure B2C, authority is of the form https://<instance>/tfp/<tenant>/<policyName>/\r\n *\r\n * @param {@link (Configuration:type)} configuration object for the MSAL UserAgentApplication instance\r\n */\r\n function UserAgentApplication(configuration) {\r\n // callbacks for token/error\r\n this.authResponseCallback = null;\r\n this.tokenReceivedCallback = null;\r\n this.errorReceivedCallback = null;\r\n // Set the Configuration\r\n this.config = buildConfiguration(configuration);\r\n this.logger = this.config.system.logger;\r\n this.clientId = this.config.auth.clientId;\r\n this.inCookie = this.config.cache.storeAuthStateInCookie;\r\n this.telemetryManager = this.getTelemetryManagerFromConfig(this.config.system.telemetry, this.clientId);\r\n TrustedAuthority.setTrustedAuthoritiesFromConfig(this.config.auth.validateAuthority, this.config.auth.knownAuthorities);\r\n AuthorityFactory.saveMetadataFromConfig(this.config.auth.authority, this.config.auth.authorityMetadata);\r\n // if no authority is passed, set the default: \"https://login.microsoftonline.com/common\"\r\n this.authority = this.config.auth.authority || DEFAULT_AUTHORITY;\r\n // cache keys msal - typescript throws an error if any value other than \"localStorage\" or \"sessionStorage\" is passed\r\n this.cacheStorage = new AuthCache(this.clientId, this.config.cache.cacheLocation, this.inCookie);\r\n // Initialize window handling code\r\n window.activeRenewals = {};\r\n window.renewStates = [];\r\n window.callbackMappedToRenewStates = {};\r\n window.promiseMappedToRenewStates = {};\r\n window.msal = this;\r\n var urlHash = window.location.hash;\r\n var urlContainsHash = UrlUtils.urlContainsHash(urlHash);\r\n // check if back button is pressed\r\n WindowUtils.checkIfBackButtonIsPressed(this.cacheStorage);\r\n // On the server 302 - Redirect, handle this\r\n if (urlContainsHash) {\r\n var stateInfo = this.getResponseState(urlHash);\r\n if (stateInfo.method === Constants.interactionTypeRedirect) {\r\n this.handleRedirectAuthenticationResponse(urlHash);\r\n }\r\n }\r\n }\r\n Object.defineProperty(UserAgentApplication.prototype, \"authority\", {\r\n /**\r\n * Method to manage the authority URL.\r\n *\r\n * @returns {string} authority\r\n */\r\n get: function () {\r\n return this.authorityInstance.CanonicalAuthority;\r\n },\r\n /**\r\n * setter for the authority URL\r\n * @param {string} authority\r\n */\r\n // If the developer passes an authority, create an instance\r\n set: function (val) {\r\n this.authorityInstance = AuthorityFactory.CreateInstance(val, this.config.auth.validateAuthority);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Get the current authority instance from the MSAL configuration object\r\n *\r\n * @returns {@link Authority} authority instance\r\n */\r\n UserAgentApplication.prototype.getAuthorityInstance = function () {\r\n return this.authorityInstance;\r\n };\r\n UserAgentApplication.prototype.handleRedirectCallback = function (authOrTokenCallback, errorReceivedCallback) {\r\n if (!authOrTokenCallback) {\r\n throw ClientConfigurationError.createInvalidCallbackObjectError(authOrTokenCallback);\r\n }\r\n // Set callbacks\r\n if (errorReceivedCallback) {\r\n this.tokenReceivedCallback = authOrTokenCallback;\r\n this.errorReceivedCallback = errorReceivedCallback;\r\n this.logger.warning(\"This overload for callback is deprecated - please change the format of the callbacks to a single callback as shown: (err: AuthError, response: AuthResponse).\");\r\n }\r\n else {\r\n this.authResponseCallback = authOrTokenCallback;\r\n }\r\n if (this.redirectError) {\r\n this.authErrorHandler(Constants.interactionTypeRedirect, this.redirectError, this.redirectResponse);\r\n }\r\n else if (this.redirectResponse) {\r\n this.authResponseHandler(Constants.interactionTypeRedirect, this.redirectResponse);\r\n }\r\n };\r\n /**\r\n * Public API to verify if the URL contains the hash with known properties\r\n * @param hash\r\n */\r\n UserAgentApplication.prototype.urlContainsHash = function (hash) {\r\n this.logger.verbose(\"UrlContainsHash has been called\");\r\n return UrlUtils.urlContainsHash(hash);\r\n };\r\n UserAgentApplication.prototype.authResponseHandler = function (interactionType, response, resolve) {\r\n this.logger.verbose(\"AuthResponseHandler has been called\");\r\n if (interactionType === Constants.interactionTypeRedirect) {\r\n this.logger.verbose(\"Interaction type is redirect\");\r\n if (this.errorReceivedCallback) {\r\n this.logger.verbose(\"Two callbacks were provided to handleRedirectCallback, calling success callback with response\");\r\n this.tokenReceivedCallback(response);\r\n }\r\n else if (this.authResponseCallback) {\r\n this.logger.verbose(\"One callback was provided to handleRedirectCallback, calling authResponseCallback with response\");\r\n this.authResponseCallback(null, response);\r\n }\r\n }\r\n else if (interactionType === Constants.interactionTypePopup) {\r\n this.logger.verbose(\"Interaction type is popup, resolving\");\r\n resolve(response);\r\n }\r\n else {\r\n throw ClientAuthError.createInvalidInteractionTypeError();\r\n }\r\n };\r\n UserAgentApplication.prototype.authErrorHandler = function (interactionType, authErr, response, reject) {\r\n this.logger.verbose(\"AuthErrorHandler has been called\");\r\n // set interaction_status to complete\r\n this.cacheStorage.removeItem(TemporaryCacheKeys.INTERACTION_STATUS);\r\n if (interactionType === Constants.interactionTypeRedirect) {\r\n this.logger.verbose(\"Interaction type is redirect\");\r\n if (this.errorReceivedCallback) {\r\n this.logger.verbose(\"Two callbacks were provided to handleRedirectCallback, calling error callback\");\r\n this.errorReceivedCallback(authErr, response.accountState);\r\n }\r\n else if (this.authResponseCallback) {\r\n this.logger.verbose(\"One callback was provided to handleRedirectCallback, calling authResponseCallback with error\");\r\n this.authResponseCallback(authErr, response);\r\n }\r\n else {\r\n this.logger.verbose(\"handleRedirectCallback has not been called and no callbacks are registered, throwing error\");\r\n throw authErr;\r\n }\r\n }\r\n else if (interactionType === Constants.interactionTypePopup) {\r\n this.logger.verbose(\"Interaction type is popup, rejecting\");\r\n reject(authErr);\r\n }\r\n else {\r\n throw ClientAuthError.createInvalidInteractionTypeError();\r\n }\r\n };\r\n // #endregion\r\n /**\r\n * Use when initiating the login process by redirecting the user's browser to the authorization endpoint.\r\n * @param {@link (AuthenticationParameters:type)}\r\n */\r\n UserAgentApplication.prototype.loginRedirect = function (userRequest) {\r\n this.logger.verbose(\"LoginRedirect has been called\");\r\n // validate request\r\n var request = RequestUtils.validateRequest(userRequest, true, this.clientId, Constants.interactionTypeRedirect);\r\n this.acquireTokenInteractive(Constants.interactionTypeRedirect, true, request, null, null);\r\n };\r\n /**\r\n * Use when you want to obtain an access_token for your API by redirecting the user's browser window to the authorization endpoint.\r\n * @param {@link (AuthenticationParameters:type)}\r\n *\r\n * To renew idToken, please pass clientId as the only scope in the Authentication Parameters\r\n */\r\n UserAgentApplication.prototype.acquireTokenRedirect = function (userRequest) {\r\n this.logger.verbose(\"AcquireTokenRedirect has been called\");\r\n // validate request\r\n var request = RequestUtils.validateRequest(userRequest, false, this.clientId, Constants.interactionTypeRedirect);\r\n this.acquireTokenInteractive(Constants.interactionTypeRedirect, false, request, null, null);\r\n };\r\n /**\r\n * Use when initiating the login process via opening a popup window in the user's browser\r\n *\r\n * @param {@link (AuthenticationParameters:type)}\r\n *\r\n * @returns {Promise.} - a promise that is fulfilled when this function has completed, or rejected if an error was raised. Returns the {@link AuthResponse} object\r\n */\r\n UserAgentApplication.prototype.loginPopup = function (userRequest) {\r\n var _this = this;\r\n this.logger.verbose(\"LoginPopup has been called\");\r\n // validate request\r\n var request = RequestUtils.validateRequest(userRequest, true, this.clientId, Constants.interactionTypePopup);\r\n var apiEvent = this.telemetryManager.createAndStartApiEvent(request.correlationId, API_EVENT_IDENTIFIER.LoginPopup);\r\n return new Promise(function (resolve, reject) {\r\n _this.acquireTokenInteractive(Constants.interactionTypePopup, true, request, resolve, reject);\r\n })\r\n .then(function (resp) {\r\n _this.logger.verbose(\"Successfully logged in\");\r\n _this.telemetryManager.stopAndFlushApiEvent(request.correlationId, apiEvent, true);\r\n return resp;\r\n })\r\n .catch(function (error) {\r\n _this.cacheStorage.resetTempCacheItems(request.state);\r\n _this.telemetryManager.stopAndFlushApiEvent(request.correlationId, apiEvent, false, error.errorCode);\r\n throw error;\r\n });\r\n };\r\n /**\r\n * Use when you want to obtain an access_token for your API via opening a popup window in the user's browser\r\n * @param {@link AuthenticationParameters}\r\n *\r\n * To renew idToken, please pass clientId as the only scope in the Authentication Parameters\r\n * @returns {Promise.} - a promise that is fulfilled when this function has completed, or rejected if an error was raised. Returns the {@link AuthResponse} object\r\n */\r\n UserAgentApplication.prototype.acquireTokenPopup = function (userRequest) {\r\n var _this = this;\r\n this.logger.verbose(\"AcquireTokenPopup has been called\");\r\n // validate request\r\n var request = RequestUtils.validateRequest(userRequest, false, this.clientId, Constants.interactionTypePopup);\r\n var apiEvent = this.telemetryManager.createAndStartApiEvent(request.correlationId, API_EVENT_IDENTIFIER.AcquireTokenPopup);\r\n return new Promise(function (resolve, reject) {\r\n _this.acquireTokenInteractive(Constants.interactionTypePopup, false, request, resolve, reject);\r\n })\r\n .then(function (resp) {\r\n _this.logger.verbose(\"Successfully acquired token\");\r\n _this.telemetryManager.stopAndFlushApiEvent(request.correlationId, apiEvent, true);\r\n return resp;\r\n })\r\n .catch(function (error) {\r\n _this.cacheStorage.resetTempCacheItems(request.state);\r\n _this.telemetryManager.stopAndFlushApiEvent(request.correlationId, apiEvent, false, error.errorCode);\r\n throw error;\r\n });\r\n };\r\n // #region Acquire Token\r\n /**\r\n * Use when initiating the login process or when you want to obtain an access_token for your API,\r\n * either by redirecting the user's browser window to the authorization endpoint or via opening a popup window in the user's browser.\r\n * @param {@link (AuthenticationParameters:type)}\r\n *\r\n * To renew idToken, please pass clientId as the only scope in the Authentication Parameters\r\n */\r\n UserAgentApplication.prototype.acquireTokenInteractive = function (interactionType, isLoginCall, request, resolve, reject) {\r\n var _this = this;\r\n this.logger.verbose(\"AcquireTokenInteractive has been called\");\r\n // block the request if made from the hidden iframe\r\n WindowUtils.blockReloadInHiddenIframes();\r\n var interactionProgress = this.cacheStorage.getItem(TemporaryCacheKeys.INTERACTION_STATUS);\r\n if (interactionType === Constants.interactionTypeRedirect) {\r\n this.cacheStorage.setItem(TemporaryCacheKeys.REDIRECT_REQUEST, \"\" + Constants.inProgress + Constants.resourceDelimiter + request.state);\r\n }\r\n // If already in progress, do not proceed\r\n if (interactionProgress === Constants.inProgress) {\r\n var thrownError = isLoginCall ? ClientAuthError.createLoginInProgressError() : ClientAuthError.createAcquireTokenInProgressError();\r\n var stateOnlyResponse = buildResponseStateOnly(this.getAccountState(request.state));\r\n this.cacheStorage.resetTempCacheItems(request.state);\r\n this.authErrorHandler(interactionType, thrownError, stateOnlyResponse, reject);\r\n return;\r\n }\r\n // Get the account object if a session exists\r\n var account;\r\n if (request && request.account && !isLoginCall) {\r\n account = request.account;\r\n this.logger.verbose(\"Account set from request\");\r\n }\r\n else {\r\n account = this.getAccount();\r\n this.logger.verbose(\"Account set from MSAL Cache\");\r\n }\r\n // If no session exists, prompt the user to login.\r\n if (!account && !ServerRequestParameters.isSSOParam(request)) {\r\n if (isLoginCall) {\r\n // extract ADAL id_token if exists\r\n var adalIdToken = this.extractADALIdToken();\r\n // silent login if ADAL id_token is retrieved successfully - SSO\r\n if (adalIdToken && !request.scopes) {\r\n this.logger.info(\"ADAL's idToken exists. Extracting login information from ADAL's idToken\");\r\n var tokenRequest = this.buildIDTokenRequest(request);\r\n this.silentLogin = true;\r\n this.acquireTokenSilent(tokenRequest).then(function (response) {\r\n _this.silentLogin = false;\r\n _this.logger.info(\"Unified cache call is successful\");\r\n _this.authResponseHandler(interactionType, response, resolve);\r\n return;\r\n }, function (error) {\r\n _this.silentLogin = false;\r\n _this.logger.error(\"Error occurred during unified cache ATS: \" + error);\r\n // proceed to login since ATS failed\r\n _this.acquireTokenHelper(null, interactionType, isLoginCall, request, resolve, reject);\r\n });\r\n }\r\n // No ADAL token found, proceed to login\r\n else {\r\n this.logger.verbose(\"Login call but no token found, proceed to login\");\r\n this.acquireTokenHelper(null, interactionType, isLoginCall, request, resolve, reject);\r\n }\r\n }\r\n // AcquireToken call, but no account or context given, so throw error\r\n else {\r\n this.logger.verbose(\"AcquireToken call, no context or account given\");\r\n this.logger.info(\"User login is required\");\r\n var stateOnlyResponse = buildResponseStateOnly(this.getAccountState(request.state));\r\n this.cacheStorage.resetTempCacheItems(request.state);\r\n this.authErrorHandler(interactionType, ClientAuthError.createUserLoginRequiredError(), stateOnlyResponse, reject);\r\n return;\r\n }\r\n }\r\n // User session exists\r\n else {\r\n this.logger.verbose(\"User session exists, login not required\");\r\n this.acquireTokenHelper(account, interactionType, isLoginCall, request, resolve, reject);\r\n }\r\n };\r\n /**\r\n * @hidden\r\n * @ignore\r\n * Helper function to acquireToken\r\n *\r\n */\r\n UserAgentApplication.prototype.acquireTokenHelper = function (account, interactionType, isLoginCall, request, resolve, reject) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var scope, serverAuthenticationRequest, acquireTokenAuthority, popUpWindow, responseType, loginStartPage, urlNavigate, hash, error_1, navigate, err_1;\r\n return tslib_1.__generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"AcquireTokenHelper has been called\");\r\n this.logger.verbose(\"Interaction type: \" + interactionType + \". isLoginCall: \" + isLoginCall);\r\n // Track the acquireToken progress\r\n this.cacheStorage.setItem(TemporaryCacheKeys.INTERACTION_STATUS, Constants.inProgress);\r\n scope = request.scopes ? request.scopes.join(\" \").toLowerCase() : this.clientId.toLowerCase();\r\n this.logger.verbosePii(\"Serialized scopes: \" + scope);\r\n acquireTokenAuthority = (request && request.authority) ? AuthorityFactory.CreateInstance(request.authority, this.config.auth.validateAuthority, request.authorityMetadata) : this.authorityInstance;\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 11, , 12]);\r\n if (!!acquireTokenAuthority.hasCachedMetadata()) return [3 /*break*/, 3];\r\n this.logger.verbose(\"No cached metadata for authority\");\r\n return [4 /*yield*/, AuthorityFactory.saveMetadataFromNetwork(acquireTokenAuthority, this.telemetryManager, request.correlationId)];\r\n case 2:\r\n _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n this.logger.verbose(\"Cached metadata found for authority\");\r\n _a.label = 4;\r\n case 4:\r\n responseType = isLoginCall ? ResponseTypes.id_token : this.getTokenType(account, request.scopes, false);\r\n loginStartPage = request.redirectStartPage || window.location.href;\r\n serverAuthenticationRequest = new ServerRequestParameters(acquireTokenAuthority, this.clientId, responseType, this.getRedirectUri(request && request.redirectUri), request.scopes, request.state, request.correlationId);\r\n this.logger.verbose(\"Finished building server authentication request\");\r\n this.updateCacheEntries(serverAuthenticationRequest, account, isLoginCall, loginStartPage);\r\n this.logger.verbose(\"Updating cache entries\");\r\n // populate QueryParameters (sid/login_hint) and any other extraQueryParameters set by the developer\r\n serverAuthenticationRequest.populateQueryParams(account, request);\r\n this.logger.verbose(\"Query parameters populated from account\");\r\n urlNavigate = UrlUtils.createNavigateUrl(serverAuthenticationRequest) + Constants.response_mode_fragment;\r\n // set state in cache\r\n if (interactionType === Constants.interactionTypeRedirect) {\r\n if (!isLoginCall) {\r\n this.cacheStorage.setItem(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.STATE_ACQ_TOKEN, request.state), serverAuthenticationRequest.state, this.inCookie);\r\n this.logger.verbose(\"State cached for redirect\");\r\n this.logger.verbosePii(\"State cached: \" + serverAuthenticationRequest.state);\r\n }\r\n else {\r\n this.logger.verbose(\"Interaction type redirect but login call is true. State not cached\");\r\n }\r\n }\r\n else if (interactionType === Constants.interactionTypePopup) {\r\n window.renewStates.push(serverAuthenticationRequest.state);\r\n window.requestType = isLoginCall ? Constants.login : Constants.renewToken;\r\n this.logger.verbose(\"State saved to window\");\r\n this.logger.verbosePii(\"State saved: \" + serverAuthenticationRequest.state);\r\n // Register callback to capture results from server\r\n this.registerCallback(serverAuthenticationRequest.state, scope, resolve, reject);\r\n }\r\n else {\r\n this.logger.verbose(\"Invalid interaction error. State not cached\");\r\n throw ClientAuthError.createInvalidInteractionTypeError();\r\n }\r\n if (!(interactionType === Constants.interactionTypePopup)) return [3 /*break*/, 9];\r\n this.logger.verbose(\"Interaction type is popup. Generating popup window\");\r\n // Generate a popup window\r\n try {\r\n popUpWindow = this.openPopup(urlNavigate, \"msal\", Constants.popUpWidth, Constants.popUpHeight);\r\n // Push popup window handle onto stack for tracking\r\n WindowUtils.trackPopup(popUpWindow);\r\n }\r\n catch (e) {\r\n this.logger.info(ClientAuthErrorMessage.popUpWindowError.code + \":\" + ClientAuthErrorMessage.popUpWindowError.desc);\r\n this.cacheStorage.setItem(ErrorCacheKeys.ERROR, ClientAuthErrorMessage.popUpWindowError.code);\r\n this.cacheStorage.setItem(ErrorCacheKeys.ERROR_DESC, ClientAuthErrorMessage.popUpWindowError.desc);\r\n if (reject) {\r\n reject(ClientAuthError.createPopupWindowError());\r\n return [2 /*return*/];\r\n }\r\n }\r\n if (!popUpWindow) return [3 /*break*/, 8];\r\n _a.label = 5;\r\n case 5:\r\n _a.trys.push([5, 7, , 8]);\r\n return [4 /*yield*/, WindowUtils.monitorPopupForHash(popUpWindow, this.config.system.loadFrameTimeout, urlNavigate, this.logger)];\r\n case 6:\r\n hash = _a.sent();\r\n this.handleAuthenticationResponse(hash);\r\n // Request completed successfully, set to completed\r\n this.cacheStorage.removeItem(TemporaryCacheKeys.INTERACTION_STATUS);\r\n this.logger.info(\"Closing popup window\");\r\n // TODO: Check how this can be extracted for any framework specific code?\r\n if (this.config.framework.isAngular) {\r\n this.broadcast(\"msal:popUpHashChanged\", hash);\r\n WindowUtils.closePopups();\r\n }\r\n return [3 /*break*/, 8];\r\n case 7:\r\n error_1 = _a.sent();\r\n if (reject) {\r\n reject(error_1);\r\n }\r\n if (this.config.framework.isAngular) {\r\n this.broadcast(\"msal:popUpClosed\", error_1.errorCode + Constants.resourceDelimiter + error_1.errorMessage);\r\n }\r\n else {\r\n // Request failed, set to canceled\r\n this.cacheStorage.removeItem(TemporaryCacheKeys.INTERACTION_STATUS);\r\n popUpWindow.close();\r\n }\r\n return [3 /*break*/, 8];\r\n case 8: return [3 /*break*/, 10];\r\n case 9:\r\n // If onRedirectNavigate is implemented, invoke it and provide urlNavigate\r\n if (request.onRedirectNavigate) {\r\n this.logger.verbose(\"Invoking onRedirectNavigate callback\");\r\n navigate = request.onRedirectNavigate(urlNavigate);\r\n // Returning false from onRedirectNavigate will stop navigation\r\n if (navigate !== false) {\r\n this.logger.verbose(\"onRedirectNavigate did not return false, navigating\");\r\n this.navigateWindow(urlNavigate);\r\n }\r\n else {\r\n this.logger.verbose(\"onRedirectNavigate returned false, stopping navigation\");\r\n }\r\n }\r\n else {\r\n // Otherwise, perform navigation\r\n this.logger.verbose(\"Navigating window to urlNavigate\");\r\n this.navigateWindow(urlNavigate);\r\n }\r\n _a.label = 10;\r\n case 10: return [3 /*break*/, 12];\r\n case 11:\r\n err_1 = _a.sent();\r\n this.logger.error(err_1);\r\n this.cacheStorage.resetTempCacheItems(request.state);\r\n this.authErrorHandler(interactionType, ClientAuthError.createEndpointResolutionError(err_1.toString), buildResponseStateOnly(request.state), reject);\r\n if (popUpWindow) {\r\n popUpWindow.close();\r\n }\r\n return [3 /*break*/, 12];\r\n case 12: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * API interfacing idToken request when applications already have a session/hint acquired by authorization client applications\r\n * @param request\r\n */\r\n UserAgentApplication.prototype.ssoSilent = function (request) {\r\n this.logger.verbose(\"ssoSilent has been called\");\r\n // throw an error on an empty request\r\n if (!request) {\r\n throw ClientConfigurationError.createEmptyRequestError();\r\n }\r\n // throw an error on no hints passed\r\n if (!request.sid && !request.loginHint) {\r\n throw ClientConfigurationError.createSsoSilentError();\r\n }\r\n return this.acquireTokenSilent(tslib_1.__assign({}, request, { scopes: [this.clientId] }));\r\n };\r\n /**\r\n * Use this function to obtain a token before every call to the API / resource provider\r\n *\r\n * MSAL return's a cached token when available\r\n * Or it send's a request to the STS to obtain a new token using a hidden iframe.\r\n *\r\n * @param {@link AuthenticationParameters}\r\n *\r\n * To renew idToken, please pass clientId as the only scope in the Authentication Parameters\r\n * @returns {Promise.} - a promise that is fulfilled when this function has completed, or rejected if an error was raised. Returns the {@link AuthResponse} object\r\n *\r\n */\r\n UserAgentApplication.prototype.acquireTokenSilent = function (userRequest) {\r\n var _this = this;\r\n this.logger.verbose(\"AcquireTokenSilent has been called\");\r\n // validate the request\r\n var request = RequestUtils.validateRequest(userRequest, false, this.clientId, Constants.interactionTypeSilent);\r\n var apiEvent = this.telemetryManager.createAndStartApiEvent(request.correlationId, API_EVENT_IDENTIFIER.AcquireTokenSilent);\r\n var requestSignature = RequestUtils.createRequestSignature(request);\r\n return new Promise(function (resolve, reject) { return tslib_1.__awaiter(_this, void 0, void 0, function () {\r\n var scope, account, adalIdToken, responseType, serverAuthenticationRequest, adalIdTokenObject, userContainedClaims, authErr, cacheResultResponse, logMessage, err_2;\r\n return tslib_1.__generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n // block the request if made from the hidden iframe\r\n WindowUtils.blockReloadInHiddenIframes();\r\n scope = request.scopes.join(\" \").toLowerCase();\r\n this.logger.verbosePii(\"Serialized scopes: \" + scope);\r\n if (request.account) {\r\n account = request.account;\r\n this.logger.verbose(\"Account set from request\");\r\n }\r\n else {\r\n account = this.getAccount();\r\n this.logger.verbose(\"Account set from MSAL Cache\");\r\n }\r\n adalIdToken = this.cacheStorage.getItem(Constants.adalIdToken);\r\n // In the event of no account being passed in the config, no session id, and no pre-existing adalIdToken, user will need to log in\r\n if (!account && !(request.sid || request.loginHint) && StringUtils.isEmpty(adalIdToken)) {\r\n this.logger.info(\"User login is required\");\r\n // The promise rejects with a UserLoginRequiredError, which should be caught and user should be prompted to log in interactively\r\n return [2 /*return*/, reject(ClientAuthError.createUserLoginRequiredError())];\r\n }\r\n responseType = this.getTokenType(account, request.scopes, true);\r\n this.logger.verbose(\"Response type: \" + responseType);\r\n serverAuthenticationRequest = new ServerRequestParameters(AuthorityFactory.CreateInstance(request.authority, this.config.auth.validateAuthority, request.authorityMetadata), this.clientId, responseType, this.getRedirectUri(request.redirectUri), request.scopes, request.state, request.correlationId);\r\n this.logger.verbose(\"Finished building server authentication request\");\r\n // populate QueryParameters (sid/login_hint) and any other extraQueryParameters set by the developer\r\n if (ServerRequestParameters.isSSOParam(request) || account) {\r\n serverAuthenticationRequest.populateQueryParams(account, request, null, true);\r\n this.logger.verbose(\"Query parameters populated from existing SSO or account\");\r\n }\r\n // if user didn't pass login_hint/sid and adal's idtoken is present, extract the login_hint from the adalIdToken\r\n else if (!account && !StringUtils.isEmpty(adalIdToken)) {\r\n adalIdTokenObject = TokenUtils.extractIdToken(adalIdToken);\r\n this.logger.verbose(\"ADAL's idToken exists. Extracting login information from ADAL's idToken to populate query parameters\");\r\n serverAuthenticationRequest.populateQueryParams(account, null, adalIdTokenObject, true);\r\n }\r\n else {\r\n this.logger.verbose(\"No additional query parameters added\");\r\n }\r\n userContainedClaims = request.claimsRequest || serverAuthenticationRequest.claimsValue;\r\n // If request.forceRefresh is set to true, force a request for a new token instead of getting it from the cache\r\n if (!userContainedClaims && !request.forceRefresh) {\r\n try {\r\n cacheResultResponse = this.getCachedToken(serverAuthenticationRequest, account);\r\n }\r\n catch (e) {\r\n authErr = e;\r\n }\r\n }\r\n if (!cacheResultResponse) return [3 /*break*/, 1];\r\n this.logger.verbose(\"Token found in cache lookup\");\r\n this.logger.verbosePii(\"Scopes found: \" + JSON.stringify(cacheResultResponse.scopes));\r\n resolve(cacheResultResponse);\r\n return [2 /*return*/, null];\r\n case 1:\r\n if (!authErr) return [3 /*break*/, 2];\r\n this.logger.infoPii(authErr.errorCode + \":\" + authErr.errorMessage);\r\n reject(authErr);\r\n return [2 /*return*/, null];\r\n case 2:\r\n logMessage = void 0;\r\n if (userContainedClaims) {\r\n logMessage = \"Skipped cache lookup since claims were given\";\r\n }\r\n else if (request.forceRefresh) {\r\n logMessage = \"Skipped cache lookup since request.forceRefresh option was set to true\";\r\n }\r\n else {\r\n logMessage = \"No token found in cache lookup\";\r\n }\r\n this.logger.verbose(logMessage);\r\n // Cache result can return null if cache is empty. In that case, set authority to default value if no authority is passed to the API.\r\n if (!serverAuthenticationRequest.authorityInstance) {\r\n serverAuthenticationRequest.authorityInstance = request.authority ? AuthorityFactory.CreateInstance(request.authority, this.config.auth.validateAuthority, request.authorityMetadata) : this.authorityInstance;\r\n }\r\n this.logger.verbosePii(\"Authority instance: \" + serverAuthenticationRequest.authority);\r\n _a.label = 3;\r\n case 3:\r\n _a.trys.push([3, 7, , 8]);\r\n if (!!serverAuthenticationRequest.authorityInstance.hasCachedMetadata()) return [3 /*break*/, 5];\r\n this.logger.verbose(\"No cached metadata for authority\");\r\n return [4 /*yield*/, AuthorityFactory.saveMetadataFromNetwork(serverAuthenticationRequest.authorityInstance, this.telemetryManager, request.correlationId)];\r\n case 4:\r\n _a.sent();\r\n this.logger.verbose(\"Authority has been updated with endpoint discovery response\");\r\n return [3 /*break*/, 6];\r\n case 5:\r\n this.logger.verbose(\"Cached metadata found for authority\");\r\n _a.label = 6;\r\n case 6:\r\n /*\r\n * refresh attempt with iframe\r\n * Already renewing for this scope, callback when we get the token.\r\n */\r\n if (window.activeRenewals[requestSignature]) {\r\n this.logger.verbose(\"Renewing token in progress. Registering callback\");\r\n // Active renewals contains the state for each renewal.\r\n this.registerCallback(window.activeRenewals[requestSignature], requestSignature, resolve, reject);\r\n }\r\n else {\r\n if (request.scopes && request.scopes.indexOf(this.clientId) > -1 && request.scopes.length === 1) {\r\n /*\r\n * App uses idToken to send to api endpoints\r\n * Default scope is tracked as clientId to store this token\r\n */\r\n this.logger.verbose(\"ClientId is the only scope, renewing idToken\");\r\n this.silentLogin = true;\r\n this.renewIdToken(requestSignature, resolve, reject, account, serverAuthenticationRequest);\r\n }\r\n else {\r\n // renew access token\r\n this.logger.verbose(\"Renewing access token\");\r\n this.renewToken(requestSignature, resolve, reject, account, serverAuthenticationRequest);\r\n }\r\n }\r\n return [3 /*break*/, 8];\r\n case 7:\r\n err_2 = _a.sent();\r\n this.logger.error(err_2);\r\n reject(ClientAuthError.createEndpointResolutionError(err_2.toString()));\r\n return [2 /*return*/, null];\r\n case 8: return [2 /*return*/];\r\n }\r\n });\r\n }); })\r\n .then(function (res) {\r\n _this.logger.verbose(\"Successfully acquired token\");\r\n _this.telemetryManager.stopAndFlushApiEvent(request.correlationId, apiEvent, true);\r\n return res;\r\n })\r\n .catch(function (error) {\r\n _this.cacheStorage.resetTempCacheItems(request.state);\r\n _this.telemetryManager.stopAndFlushApiEvent(request.correlationId, apiEvent, false, error.errorCode);\r\n throw error;\r\n });\r\n };\r\n // #endregion\r\n // #region Popup Window Creation\r\n /**\r\n * @hidden\r\n *\r\n * Configures popup window for login.\r\n *\r\n * @param urlNavigate\r\n * @param title\r\n * @param popUpWidth\r\n * @param popUpHeight\r\n * @ignore\r\n * @hidden\r\n */\r\n UserAgentApplication.prototype.openPopup = function (urlNavigate, title, popUpWidth, popUpHeight) {\r\n this.logger.verbose(\"OpenPopup has been called\");\r\n try {\r\n /**\r\n * adding winLeft and winTop to account for dual monitor\r\n * using screenLeft and screenTop for IE8 and earlier\r\n */\r\n var winLeft = window.screenLeft ? window.screenLeft : window.screenX;\r\n var winTop = window.screenTop ? window.screenTop : window.screenY;\r\n /**\r\n * window.innerWidth displays browser window\"s height and width excluding toolbars\r\n * using document.documentElement.clientWidth for IE8 and earlier\r\n */\r\n var width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;\r\n var height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;\r\n var left = ((width / 2) - (popUpWidth / 2)) + winLeft;\r\n var top_1 = ((height / 2) - (popUpHeight / 2)) + winTop;\r\n // open the window\r\n var popupWindow = window.open(urlNavigate, title, \"width=\" + popUpWidth + \", height=\" + popUpHeight + \", top=\" + top_1 + \", left=\" + left + \", scrollbars=yes\");\r\n if (!popupWindow) {\r\n throw ClientAuthError.createPopupWindowError();\r\n }\r\n if (popupWindow.focus) {\r\n popupWindow.focus();\r\n }\r\n return popupWindow;\r\n }\r\n catch (e) {\r\n this.cacheStorage.removeItem(TemporaryCacheKeys.INTERACTION_STATUS);\r\n throw ClientAuthError.createPopupWindowError(e.toString());\r\n }\r\n };\r\n // #endregion\r\n // #region Iframe Management\r\n /**\r\n * @hidden\r\n * Calling _loadFrame but with a timeout to signal failure in loadframeStatus. Callbacks are left.\r\n * registered when network errors occur and subsequent token requests for same resource are registered to the pending request.\r\n * @ignore\r\n */\r\n UserAgentApplication.prototype.loadIframeTimeout = function (urlNavigate, frameName, requestSignature) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var expectedState, iframe, _a, hash, error_2;\r\n return tslib_1.__generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n expectedState = window.activeRenewals[requestSignature];\r\n this.logger.verbosePii(\"Set loading state to pending for: \" + requestSignature + \":\" + expectedState);\r\n this.cacheStorage.setItem(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.RENEW_STATUS, expectedState), Constants.inProgress);\r\n if (!this.config.system.navigateFrameWait) return [3 /*break*/, 2];\r\n return [4 /*yield*/, WindowUtils.loadFrame(urlNavigate, frameName, this.config.system.navigateFrameWait, this.logger)];\r\n case 1:\r\n _a = _b.sent();\r\n return [3 /*break*/, 3];\r\n case 2:\r\n _a = WindowUtils.loadFrameSync(urlNavigate, frameName, this.logger);\r\n _b.label = 3;\r\n case 3:\r\n iframe = _a;\r\n _b.label = 4;\r\n case 4:\r\n _b.trys.push([4, 6, , 7]);\r\n return [4 /*yield*/, WindowUtils.monitorIframeForHash(iframe.contentWindow, this.config.system.loadFrameTimeout, urlNavigate, this.logger)];\r\n case 5:\r\n hash = _b.sent();\r\n if (hash) {\r\n this.handleAuthenticationResponse(hash);\r\n }\r\n return [3 /*break*/, 7];\r\n case 6:\r\n error_2 = _b.sent();\r\n if (this.cacheStorage.getItem(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.RENEW_STATUS, expectedState)) === Constants.inProgress) {\r\n // fail the iframe session if it's in pending state\r\n this.logger.verbose(\"Loading frame has timed out after: \" + (this.config.system.loadFrameTimeout / 1000) + \" seconds for scope/authority \" + requestSignature + \":\" + expectedState);\r\n // Error after timeout\r\n if (expectedState && window.callbackMappedToRenewStates[expectedState]) {\r\n window.callbackMappedToRenewStates[expectedState](null, error_2);\r\n }\r\n this.cacheStorage.removeItem(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.RENEW_STATUS, expectedState));\r\n }\r\n WindowUtils.removeHiddenIframe(iframe);\r\n throw error_2;\r\n case 7:\r\n WindowUtils.removeHiddenIframe(iframe);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n // #endregion\r\n // #region General Helpers\r\n /**\r\n * @hidden\r\n * Used to redirect the browser to the STS authorization endpoint\r\n * @param {string} urlNavigate - URL of the authorization endpoint\r\n */\r\n UserAgentApplication.prototype.navigateWindow = function (urlNavigate, popupWindow) {\r\n // Navigate if valid URL\r\n if (urlNavigate && !StringUtils.isEmpty(urlNavigate)) {\r\n var navigateWindow = popupWindow ? popupWindow : window;\r\n var logMessage = popupWindow ? \"Navigated Popup window to:\" + urlNavigate : \"Navigate to:\" + urlNavigate;\r\n this.logger.infoPii(logMessage);\r\n navigateWindow.location.assign(urlNavigate);\r\n }\r\n else {\r\n this.logger.info(\"Navigate url is empty\");\r\n throw AuthError.createUnexpectedError(\"Navigate url is empty\");\r\n }\r\n };\r\n /**\r\n * @hidden\r\n * Used to add the developer requested callback to the array of callbacks for the specified scopes. The updated array is stored on the window object\r\n * @param {string} expectedState - Unique state identifier (guid).\r\n * @param {string} scope - Developer requested permissions. Not all scopes are guaranteed to be included in the access token returned.\r\n * @param {Function} resolve - The resolve function of the promise object.\r\n * @param {Function} reject - The reject function of the promise object.\r\n * @ignore\r\n */\r\n UserAgentApplication.prototype.registerCallback = function (expectedState, requestSignature, resolve, reject) {\r\n var _this = this;\r\n // track active renewals\r\n window.activeRenewals[requestSignature] = expectedState;\r\n // initialize callbacks mapped array\r\n if (!window.promiseMappedToRenewStates[expectedState]) {\r\n window.promiseMappedToRenewStates[expectedState] = [];\r\n }\r\n // indexing on the current state, push the callback params to callbacks mapped\r\n window.promiseMappedToRenewStates[expectedState].push({ resolve: resolve, reject: reject });\r\n // Store the server response in the current window??\r\n if (!window.callbackMappedToRenewStates[expectedState]) {\r\n window.callbackMappedToRenewStates[expectedState] = function (response, error) {\r\n // reset active renewals\r\n window.activeRenewals[requestSignature] = null;\r\n // for all promiseMappedtoRenewStates for a given 'state' - call the reject/resolve with error/token respectively\r\n for (var i = 0; i < window.promiseMappedToRenewStates[expectedState].length; ++i) {\r\n try {\r\n if (error) {\r\n window.promiseMappedToRenewStates[expectedState][i].reject(error);\r\n }\r\n else if (response) {\r\n window.promiseMappedToRenewStates[expectedState][i].resolve(response);\r\n }\r\n else {\r\n _this.cacheStorage.resetTempCacheItems(expectedState);\r\n throw AuthError.createUnexpectedError(\"Error and response are both null\");\r\n }\r\n }\r\n catch (e) {\r\n _this.logger.warning(e);\r\n }\r\n }\r\n // reset\r\n window.promiseMappedToRenewStates[expectedState] = null;\r\n window.callbackMappedToRenewStates[expectedState] = null;\r\n };\r\n }\r\n };\r\n // #endregion\r\n // #region Logout\r\n /**\r\n * Use to log out the current user, and redirect the user to the postLogoutRedirectUri.\r\n * Default behaviour is to redirect the user to `window.location.href`.\r\n */\r\n UserAgentApplication.prototype.logout = function (correlationId) {\r\n this.logger.verbose(\"Logout has been called\");\r\n this.logoutAsync(correlationId);\r\n };\r\n /**\r\n * Async version of logout(). Use to log out the current user.\r\n * @param correlationId Request correlationId\r\n */\r\n UserAgentApplication.prototype.logoutAsync = function (correlationId) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var requestCorrelationId, apiEvent, correlationIdParam, postLogoutQueryParam, urlNavigate, error_3;\r\n return tslib_1.__generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n requestCorrelationId = correlationId || CryptoUtils.createNewGuid();\r\n apiEvent = this.telemetryManager.createAndStartApiEvent(requestCorrelationId, API_EVENT_IDENTIFIER.Logout);\r\n this.clearCache();\r\n this.account = null;\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 5, , 6]);\r\n if (!!this.authorityInstance.hasCachedMetadata()) return [3 /*break*/, 3];\r\n this.logger.verbose(\"No cached metadata for authority\");\r\n return [4 /*yield*/, AuthorityFactory.saveMetadataFromNetwork(this.authorityInstance, this.telemetryManager, correlationId)];\r\n case 2:\r\n _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n this.logger.verbose(\"Cached metadata found for authority\");\r\n _a.label = 4;\r\n case 4:\r\n correlationIdParam = \"client-request-id=\" + requestCorrelationId;\r\n postLogoutQueryParam = void 0;\r\n if (this.getPostLogoutRedirectUri()) {\r\n postLogoutQueryParam = \"&post_logout_redirect_uri=\" + encodeURIComponent(this.getPostLogoutRedirectUri());\r\n this.logger.verbose(\"redirectUri found and set\");\r\n }\r\n else {\r\n postLogoutQueryParam = \"\";\r\n this.logger.verbose(\"No redirectUri set for app. postLogoutQueryParam is empty\");\r\n }\r\n urlNavigate = void 0;\r\n if (this.authorityInstance.EndSessionEndpoint) {\r\n urlNavigate = this.authorityInstance.EndSessionEndpoint + \"?\" + correlationIdParam + postLogoutQueryParam;\r\n this.logger.verbose(\"EndSessionEndpoint found and urlNavigate set\");\r\n this.logger.verbosePii(\"urlNavigate set to: \" + this.authorityInstance.EndSessionEndpoint);\r\n }\r\n else {\r\n urlNavigate = this.authority + \"oauth2/v2.0/logout?\" + correlationIdParam + postLogoutQueryParam;\r\n this.logger.verbose(\"No endpoint, urlNavigate set to default\");\r\n }\r\n this.telemetryManager.stopAndFlushApiEvent(requestCorrelationId, apiEvent, true);\r\n this.logger.verbose(\"Navigating window to urlNavigate\");\r\n this.navigateWindow(urlNavigate);\r\n return [3 /*break*/, 6];\r\n case 5:\r\n error_3 = _a.sent();\r\n this.telemetryManager.stopAndFlushApiEvent(requestCorrelationId, apiEvent, false, error_3.errorCode);\r\n return [3 /*break*/, 6];\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * @hidden\r\n * Clear all access tokens in the cache.\r\n * @ignore\r\n */\r\n UserAgentApplication.prototype.clearCache = function () {\r\n this.logger.verbose(\"Clearing cache\");\r\n window.renewStates = [];\r\n var accessTokenItems = this.cacheStorage.getAllAccessTokens(Constants.clientId, Constants.homeAccountIdentifier);\r\n for (var i = 0; i < accessTokenItems.length; i++) {\r\n this.cacheStorage.removeItem(JSON.stringify(accessTokenItems[i].key));\r\n }\r\n this.cacheStorage.resetCacheItems();\r\n this.cacheStorage.clearMsalCookie();\r\n this.logger.verbose(\"Cache cleared\");\r\n };\r\n /**\r\n * @hidden\r\n * Clear a given access token from the cache.\r\n *\r\n * @param accessToken\r\n */\r\n UserAgentApplication.prototype.clearCacheForScope = function (accessToken) {\r\n this.logger.verbose(\"Clearing access token from cache\");\r\n var accessTokenItems = this.cacheStorage.getAllAccessTokens(Constants.clientId, Constants.homeAccountIdentifier);\r\n for (var i = 0; i < accessTokenItems.length; i++) {\r\n var token = accessTokenItems[i];\r\n if (token.value.accessToken === accessToken) {\r\n this.cacheStorage.removeItem(JSON.stringify(token.key));\r\n this.logger.verbosePii(\"Access token removed: \" + token.key);\r\n }\r\n }\r\n };\r\n // #endregion\r\n // #region Response\r\n /**\r\n * @hidden\r\n * @ignore\r\n * Checks if the redirect response is received from the STS. In case of redirect, the url fragment has either id_token, access_token or error.\r\n * @param {string} hash - Hash passed from redirect page.\r\n * @returns {Boolean} - true if response contains id_token, access_token or error, false otherwise.\r\n */\r\n UserAgentApplication.prototype.isCallback = function (hash) {\r\n this.logger.info(\"isCallback will be deprecated in favor of urlContainsHash in MSAL.js v2.0.\");\r\n this.logger.verbose(\"isCallback has been called\");\r\n return UrlUtils.urlContainsHash(hash);\r\n };\r\n /**\r\n * @hidden\r\n * Used to call the constructor callback with the token/error\r\n * @param {string} [hash=window.location.hash] - Hash fragment of Url.\r\n */\r\n UserAgentApplication.prototype.processCallBack = function (hash, stateInfo, parentCallback) {\r\n this.logger.info(\"ProcessCallBack has been called. Processing callback from redirect response\");\r\n // get the state info from the hash\r\n if (!stateInfo) {\r\n this.logger.verbose(\"StateInfo is null, getting stateInfo from hash\");\r\n stateInfo = this.getResponseState(hash);\r\n }\r\n var response;\r\n var authErr;\r\n // Save the token info from the hash\r\n try {\r\n response = this.saveTokenFromHash(hash, stateInfo);\r\n }\r\n catch (err) {\r\n authErr = err;\r\n }\r\n try {\r\n // Clear the cookie in the hash\r\n this.cacheStorage.clearMsalCookie(stateInfo.state);\r\n var accountState = this.getAccountState(stateInfo.state);\r\n if (response) {\r\n if ((stateInfo.requestType === Constants.renewToken) || response.accessToken) {\r\n if (window.parent !== window) {\r\n this.logger.verbose(\"Window is in iframe, acquiring token silently\");\r\n }\r\n else {\r\n this.logger.verbose(\"Acquiring token interactive in progress\");\r\n }\r\n this.logger.verbose(\"Response tokenType set to \" + ServerHashParamKeys.ACCESS_TOKEN);\r\n response.tokenType = ServerHashParamKeys.ACCESS_TOKEN;\r\n }\r\n else if (stateInfo.requestType === Constants.login) {\r\n this.logger.verbose(\"Response tokenType set to \" + ServerHashParamKeys.ID_TOKEN);\r\n response.tokenType = ServerHashParamKeys.ID_TOKEN;\r\n }\r\n if (!parentCallback) {\r\n this.logger.verbose(\"Setting redirectResponse\");\r\n this.redirectResponse = response;\r\n return;\r\n }\r\n }\r\n else if (!parentCallback) {\r\n this.logger.verbose(\"Response is null, setting redirectResponse with state\");\r\n this.redirectResponse = buildResponseStateOnly(accountState);\r\n this.redirectError = authErr;\r\n this.cacheStorage.resetTempCacheItems(stateInfo.state);\r\n return;\r\n }\r\n this.logger.verbose(\"Calling callback provided to processCallback\");\r\n parentCallback(response, authErr);\r\n }\r\n catch (err) {\r\n this.logger.error(\"Error occurred in token received callback function: \" + err);\r\n throw ClientAuthError.createErrorInCallbackFunction(err.toString());\r\n }\r\n };\r\n /**\r\n * @hidden\r\n * This method must be called for processing the response received from the STS if using popups or iframes. It extracts the hash, processes the token or error\r\n * information and saves it in the cache. It then resolves the promises with the result.\r\n * @param {string} [hash=window.location.hash] - Hash fragment of Url.\r\n */\r\n UserAgentApplication.prototype.handleAuthenticationResponse = function (hash) {\r\n this.logger.verbose(\"HandleAuthenticationResponse has been called\");\r\n // retrieve the hash\r\n var locationHash = hash || window.location.hash;\r\n // if (window.parent !== window), by using self, window.parent becomes equal to window in getResponseState method specifically\r\n var stateInfo = this.getResponseState(locationHash);\r\n this.logger.verbose(\"Obtained state from response\");\r\n var tokenResponseCallback = window.callbackMappedToRenewStates[stateInfo.state];\r\n this.processCallBack(locationHash, stateInfo, tokenResponseCallback);\r\n // If current window is opener, close all windows\r\n WindowUtils.closePopups();\r\n };\r\n /**\r\n * @hidden\r\n * This method must be called for processing the response received from the STS when using redirect flows. It extracts the hash, processes the token or error\r\n * information and saves it in the cache. The result can then be accessed by user registered callbacks.\r\n * @param {string} [hash=window.location.hash] - Hash fragment of Url.\r\n */\r\n UserAgentApplication.prototype.handleRedirectAuthenticationResponse = function (hash) {\r\n this.logger.info(\"Returned from redirect url\");\r\n this.logger.verbose(\"HandleRedirectAuthenticationResponse has been called\");\r\n // clear hash from window\r\n window.location.hash = \"\";\r\n this.logger.verbose(\"Window.location.hash cleared\");\r\n // if (window.parent !== window), by using self, window.parent becomes equal to window in getResponseState method specifically\r\n var stateInfo = this.getResponseState(hash);\r\n // if set to navigate to loginRequest page post login\r\n if (this.config.auth.navigateToLoginRequestUrl && window.parent === window) {\r\n this.logger.verbose(\"Window.parent is equal to window, not in popup or iframe. Navigation to login request url after login turned on\");\r\n var loginRequestUrl = this.cacheStorage.getItem(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.LOGIN_REQUEST, stateInfo.state), this.inCookie);\r\n // Redirect to home page if login request url is null (real null or the string null)\r\n if (!loginRequestUrl || loginRequestUrl === \"null\") {\r\n this.logger.error(\"Unable to get valid login request url from cache, redirecting to home page\");\r\n window.location.assign(\"/\");\r\n return;\r\n }\r\n else {\r\n this.logger.verbose(\"Valid login request url obtained from cache\");\r\n var currentUrl = UrlUtils.removeHashFromUrl(window.location.href);\r\n var finalRedirectUrl = UrlUtils.removeHashFromUrl(loginRequestUrl);\r\n if (currentUrl !== finalRedirectUrl) {\r\n this.logger.verbose(\"Current url is not login request url, navigating\");\r\n this.logger.verbosePii(\"CurrentUrl: \" + currentUrl + \", finalRedirectUrl: \" + finalRedirectUrl);\r\n window.location.assign(\"\" + finalRedirectUrl + hash);\r\n return;\r\n }\r\n else {\r\n this.logger.verbose(\"Current url matches login request url\");\r\n var loginRequestUrlComponents = UrlUtils.GetUrlComponents(loginRequestUrl);\r\n if (loginRequestUrlComponents.Hash) {\r\n this.logger.verbose(\"Login request url contains hash, resetting non-msal hash\");\r\n window.location.hash = loginRequestUrlComponents.Hash;\r\n }\r\n }\r\n }\r\n }\r\n else if (!this.config.auth.navigateToLoginRequestUrl) {\r\n this.logger.verbose(\"Default navigation to start page after login turned off\");\r\n }\r\n this.processCallBack(hash, stateInfo, null);\r\n };\r\n /**\r\n * @hidden\r\n * Creates a stateInfo object from the URL fragment and returns it.\r\n * @param {string} hash - Hash passed from redirect page\r\n * @returns {TokenResponse} an object created from the redirect response from AAD comprising of the keys - parameters, requestType, stateMatch, stateResponse and valid.\r\n * @ignore\r\n */\r\n UserAgentApplication.prototype.getResponseState = function (hash) {\r\n this.logger.verbose(\"GetResponseState has been called\");\r\n var parameters = UrlUtils.deserializeHash(hash);\r\n var stateResponse;\r\n if (!parameters) {\r\n throw AuthError.createUnexpectedError(\"Hash was not parsed correctly.\");\r\n }\r\n if (parameters.hasOwnProperty(ServerHashParamKeys.STATE)) {\r\n this.logger.verbose(\"Hash contains state. Creating stateInfo object\");\r\n var parsedState = RequestUtils.parseLibraryState(parameters.state);\r\n stateResponse = {\r\n requestType: Constants.unknown,\r\n state: parameters.state,\r\n timestamp: parsedState.ts,\r\n method: parsedState.method,\r\n stateMatch: false\r\n };\r\n }\r\n else {\r\n throw AuthError.createUnexpectedError(\"Hash does not contain state.\");\r\n }\r\n /*\r\n * async calls can fire iframe and login request at the same time if developer does not use the API as expected\r\n * incoming callback needs to be looked up to find the request type\r\n */\r\n // loginRedirect\r\n if (stateResponse.state === this.cacheStorage.getItem(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.STATE_LOGIN, stateResponse.state), this.inCookie) || stateResponse.state === this.silentAuthenticationState) {\r\n this.logger.verbose(\"State matches cached state, setting requestType to login\");\r\n stateResponse.requestType = Constants.login;\r\n stateResponse.stateMatch = true;\r\n return stateResponse;\r\n }\r\n // acquireTokenRedirect\r\n else if (stateResponse.state === this.cacheStorage.getItem(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.STATE_ACQ_TOKEN, stateResponse.state), this.inCookie)) {\r\n this.logger.verbose(\"State matches cached state, setting requestType to renewToken\");\r\n stateResponse.requestType = Constants.renewToken;\r\n stateResponse.stateMatch = true;\r\n return stateResponse;\r\n }\r\n // external api requests may have many renewtoken requests for different resource\r\n if (!stateResponse.stateMatch) {\r\n this.logger.verbose(\"State does not match cached state, setting requestType to type from window\");\r\n stateResponse.requestType = window.requestType;\r\n var statesInParentContext = window.renewStates;\r\n for (var i = 0; i < statesInParentContext.length; i++) {\r\n if (statesInParentContext[i] === stateResponse.state) {\r\n this.logger.verbose(\"Matching state found for request\");\r\n stateResponse.stateMatch = true;\r\n break;\r\n }\r\n }\r\n if (!stateResponse.stateMatch) {\r\n this.logger.verbose(\"Matching state not found for request\");\r\n }\r\n }\r\n return stateResponse;\r\n };\r\n // #endregion\r\n // #region Token Processing (Extract to TokenProcessing.ts)\r\n /**\r\n * @hidden\r\n * Used to get token for the specified set of scopes from the cache\r\n * @param {@link ServerRequestParameters} - Request sent to the STS to obtain an id_token/access_token\r\n * @param {Account} account - Account for which the scopes were requested\r\n */\r\n UserAgentApplication.prototype.getCachedToken = function (serverAuthenticationRequest, account) {\r\n this.logger.verbose(\"GetCachedToken has been called\");\r\n var accessTokenCacheItem = null;\r\n var scopes = serverAuthenticationRequest.scopes;\r\n // filter by clientId and account\r\n var tokenCacheItems = this.cacheStorage.getAllAccessTokens(this.clientId, account ? account.homeAccountIdentifier : null);\r\n this.logger.verbose(\"Getting all cached access tokens\");\r\n // No match found after initial filtering\r\n if (tokenCacheItems.length === 0) {\r\n this.logger.verbose(\"No matching tokens found when filtered by clientId and account\");\r\n return null;\r\n }\r\n var filteredItems = [];\r\n // if no authority passed or authority is common/organizations\r\n if (!serverAuthenticationRequest.authority || UrlUtils.isCommonAuthority(serverAuthenticationRequest.authority) || UrlUtils.isOrganizationsAuthority(serverAuthenticationRequest.authority)) {\r\n this.logger.verbose(\"No authority passed, filtering tokens by scope\");\r\n // filter by scope\r\n for (var i = 0; i < tokenCacheItems.length; i++) {\r\n var cacheItem = tokenCacheItems[i];\r\n var cachedScopes = cacheItem.key.scopes.split(\" \");\r\n if (ScopeSet.containsScope(cachedScopes, scopes)) {\r\n filteredItems.push(cacheItem);\r\n }\r\n }\r\n // if only one cached token found\r\n if (filteredItems.length === 1) {\r\n this.logger.verbose(\"One matching token found, setting authorityInstance\");\r\n accessTokenCacheItem = filteredItems[0];\r\n serverAuthenticationRequest.authorityInstance = AuthorityFactory.CreateInstance(accessTokenCacheItem.key.authority, this.config.auth.validateAuthority);\r\n }\r\n // if more than one cached token is found\r\n else if (filteredItems.length > 1) {\r\n // serverAuthenticationRequest.authority can only be common or organizations if not null\r\n if (serverAuthenticationRequest.authority) {\r\n // find an exact match for domain\r\n var requestDomain_1 = UrlUtils.GetUrlComponents(serverAuthenticationRequest.authority).HostNameAndPort;\r\n var filteredAuthorityItems = filteredItems.filter(function (filteredItem) {\r\n var domain = UrlUtils.GetUrlComponents(filteredItem.key.authority).HostNameAndPort;\r\n return domain === requestDomain_1;\r\n });\r\n if (filteredAuthorityItems.length === 1) {\r\n accessTokenCacheItem = filteredAuthorityItems[0];\r\n serverAuthenticationRequest.authorityInstance = AuthorityFactory.CreateInstance(accessTokenCacheItem.key.authority, this.config.auth.validateAuthority);\r\n }\r\n else if (filteredAuthorityItems.length > 1) {\r\n throw ClientAuthError.createMultipleMatchingTokensInCacheError(scopes.toString());\r\n }\r\n else {\r\n this.logger.verbose(\"No matching tokens found\");\r\n return null;\r\n }\r\n }\r\n else { // if not common or organizations authority, throw error\r\n throw ClientAuthError.createMultipleMatchingTokensInCacheError(scopes.toString());\r\n }\r\n }\r\n // if no match found, check if there was a single authority used\r\n else {\r\n this.logger.verbose(\"No matching token found when filtering by scope\");\r\n var authorityList = this.getUniqueAuthority(tokenCacheItems, \"authority\");\r\n if (authorityList.length > 1) {\r\n throw ClientAuthError.createMultipleAuthoritiesInCacheError(scopes.toString());\r\n }\r\n this.logger.verbose(\"Single authority used, setting authorityInstance\");\r\n serverAuthenticationRequest.authorityInstance = AuthorityFactory.CreateInstance(authorityList[0], this.config.auth.validateAuthority);\r\n }\r\n }\r\n // if an authority is passed in the API\r\n else {\r\n this.logger.verbose(\"Authority passed, filtering by authority and scope\");\r\n // filter by authority and scope\r\n for (var i = 0; i < tokenCacheItems.length; i++) {\r\n var cacheItem = tokenCacheItems[i];\r\n var cachedScopes = cacheItem.key.scopes.split(\" \");\r\n if (ScopeSet.containsScope(cachedScopes, scopes) && UrlUtils.CanonicalizeUri(cacheItem.key.authority) === serverAuthenticationRequest.authority) {\r\n filteredItems.push(cacheItem);\r\n }\r\n }\r\n // no match\r\n if (filteredItems.length === 0) {\r\n this.logger.verbose(\"No matching tokens found\");\r\n return null;\r\n }\r\n // if only one cachedToken Found\r\n else if (filteredItems.length === 1) {\r\n this.logger.verbose(\"Single token found\");\r\n accessTokenCacheItem = filteredItems[0];\r\n }\r\n else {\r\n // if more than one cached token is found\r\n throw ClientAuthError.createMultipleMatchingTokensInCacheError(scopes.toString());\r\n }\r\n }\r\n if (accessTokenCacheItem != null) {\r\n this.logger.verbose(\"Evaluating access token found\");\r\n var expired = Number(accessTokenCacheItem.value.expiresIn);\r\n // If expiration is within offset, it will force renew\r\n var offset = this.config.system.tokenRenewalOffsetSeconds || 300;\r\n if (expired && (expired > TimeUtils.now() + offset)) {\r\n this.logger.verbose(\"Token expiration is within offset, renewing token\");\r\n var idTokenObj = new IdToken(accessTokenCacheItem.value.idToken);\r\n if (!account) {\r\n account = this.getAccount();\r\n if (!account) {\r\n throw AuthError.createUnexpectedError(\"Account should not be null here.\");\r\n }\r\n }\r\n var aState = this.getAccountState(serverAuthenticationRequest.state);\r\n var response = {\r\n uniqueId: \"\",\r\n tenantId: \"\",\r\n tokenType: (accessTokenCacheItem.value.idToken === accessTokenCacheItem.value.accessToken) ? ServerHashParamKeys.ID_TOKEN : ServerHashParamKeys.ACCESS_TOKEN,\r\n idToken: idTokenObj,\r\n idTokenClaims: idTokenObj.claims,\r\n accessToken: accessTokenCacheItem.value.accessToken,\r\n scopes: accessTokenCacheItem.key.scopes.split(\" \"),\r\n expiresOn: new Date(expired * 1000),\r\n account: account,\r\n accountState: aState,\r\n fromCache: true\r\n };\r\n ResponseUtils.setResponseIdToken(response, idTokenObj);\r\n this.logger.verbose(\"Response generated and token set\");\r\n return response;\r\n }\r\n else {\r\n this.logger.verbose(\"Token expired, removing from cache\");\r\n this.cacheStorage.removeItem(JSON.stringify(filteredItems[0].key));\r\n return null;\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"No tokens found\");\r\n return null;\r\n }\r\n };\r\n /**\r\n * @hidden\r\n * Used to get a unique list of authorities from the cache\r\n * @param {Array} accessTokenCacheItems - accessTokenCacheItems saved in the cache\r\n * @ignore\r\n */\r\n UserAgentApplication.prototype.getUniqueAuthority = function (accessTokenCacheItems, property) {\r\n this.logger.verbose(\"GetUniqueAuthority has been called\");\r\n var authorityList = [];\r\n var flags = [];\r\n accessTokenCacheItems.forEach(function (element) {\r\n if (element.key.hasOwnProperty(property) && (flags.indexOf(element.key[property]) === -1)) {\r\n flags.push(element.key[property]);\r\n authorityList.push(element.key[property]);\r\n }\r\n });\r\n return authorityList;\r\n };\r\n /**\r\n * @hidden\r\n * Check if ADAL id_token exists and return if exists.\r\n *\r\n */\r\n UserAgentApplication.prototype.extractADALIdToken = function () {\r\n this.logger.verbose(\"ExtractADALIdToken has been called\");\r\n var adalIdToken = this.cacheStorage.getItem(Constants.adalIdToken);\r\n return (!StringUtils.isEmpty(adalIdToken)) ? TokenUtils.extractIdToken(adalIdToken) : null;\r\n };\r\n /**\r\n * @hidden\r\n * Acquires access token using a hidden iframe.\r\n * @ignore\r\n */\r\n UserAgentApplication.prototype.renewToken = function (requestSignature, resolve, reject, account, serverAuthenticationRequest) {\r\n this.logger.verbose(\"RenewToken has been called\");\r\n this.logger.verbosePii(\"RenewToken scope and authority: \" + requestSignature);\r\n var frameName = WindowUtils.generateFrameName(FramePrefix.TOKEN_FRAME, requestSignature);\r\n WindowUtils.addHiddenIFrame(frameName, this.logger);\r\n this.updateCacheEntries(serverAuthenticationRequest, account, false);\r\n this.logger.verbosePii(\"RenewToken expected state: \" + serverAuthenticationRequest.state);\r\n // Build urlNavigate with \"prompt=none\" and navigate to URL in hidden iFrame\r\n var urlNavigate = UrlUtils.urlRemoveQueryStringParameter(UrlUtils.createNavigateUrl(serverAuthenticationRequest), Constants.prompt) + Constants.prompt_none + Constants.response_mode_fragment;\r\n window.renewStates.push(serverAuthenticationRequest.state);\r\n window.requestType = Constants.renewToken;\r\n this.logger.verbose(\"Set window.renewState and requestType\");\r\n this.registerCallback(serverAuthenticationRequest.state, requestSignature, resolve, reject);\r\n this.logger.infoPii(\"Navigate to: \" + urlNavigate);\r\n this.loadIframeTimeout(urlNavigate, frameName, requestSignature).catch(function (error) { return reject(error); });\r\n };\r\n /**\r\n * @hidden\r\n * Renews idtoken for app's own backend when clientId is passed as a single scope in the scopes array.\r\n * @ignore\r\n */\r\n UserAgentApplication.prototype.renewIdToken = function (requestSignature, resolve, reject, account, serverAuthenticationRequest) {\r\n this.logger.info(\"RenewIdToken has been called\");\r\n var frameName = WindowUtils.generateFrameName(FramePrefix.ID_TOKEN_FRAME, requestSignature);\r\n WindowUtils.addHiddenIFrame(frameName, this.logger);\r\n this.updateCacheEntries(serverAuthenticationRequest, account, false);\r\n this.logger.verbose(\"RenewIdToken expected state: \" + serverAuthenticationRequest.state);\r\n // Build urlNavigate with \"prompt=none\" and navigate to URL in hidden iFrame\r\n var urlNavigate = UrlUtils.urlRemoveQueryStringParameter(UrlUtils.createNavigateUrl(serverAuthenticationRequest), Constants.prompt) + Constants.prompt_none + Constants.response_mode_fragment;\r\n if (this.silentLogin) {\r\n this.logger.verbose(\"Silent login is true, set silentAuthenticationState\");\r\n window.requestType = Constants.login;\r\n this.silentAuthenticationState = serverAuthenticationRequest.state;\r\n }\r\n else {\r\n this.logger.verbose(\"Not silent login, set window.renewState and requestType\");\r\n window.requestType = Constants.renewToken;\r\n window.renewStates.push(serverAuthenticationRequest.state);\r\n }\r\n // note: scope here is clientId\r\n this.registerCallback(serverAuthenticationRequest.state, requestSignature, resolve, reject);\r\n this.logger.infoPii(\"Navigate to:\\\" \" + urlNavigate);\r\n this.loadIframeTimeout(urlNavigate, frameName, requestSignature).catch(function (error) { return reject(error); });\r\n };\r\n /**\r\n * @hidden\r\n *\r\n * This method must be called for processing the response received from AAD. It extracts the hash, processes the token or error, saves it in the cache and calls the registered callbacks with the result.\r\n * @param {string} authority authority received in the redirect response from AAD.\r\n * @param {TokenResponse} requestInfo an object created from the redirect response from AAD comprising of the keys - parameters, requestType, stateMatch, stateResponse and valid.\r\n * @param {Account} account account object for which scopes are consented for. The default account is the logged in account.\r\n * @param {ClientInfo} clientInfo clientInfo received as part of the response comprising of fields uid and utid.\r\n * @param {IdToken} idToken idToken received as part of the response.\r\n * @ignore\r\n * @private\r\n */\r\n /* tslint:disable:no-string-literal */\r\n UserAgentApplication.prototype.saveAccessToken = function (response, authority, parameters, clientInfo, idTokenObj) {\r\n this.logger.verbose(\"SaveAccessToken has been called\");\r\n var scope;\r\n var accessTokenResponse = tslib_1.__assign({}, response);\r\n var clientObj = new ClientInfo(clientInfo);\r\n var expiration;\r\n // if the response contains \"scope\"\r\n if (parameters.hasOwnProperty(ServerHashParamKeys.SCOPE)) {\r\n this.logger.verbose(\"Response parameters contains scope\");\r\n // read the scopes\r\n scope = parameters[ServerHashParamKeys.SCOPE];\r\n var consentedScopes = scope.split(\" \");\r\n // retrieve all access tokens from the cache, remove the dup scores\r\n var accessTokenCacheItems = this.cacheStorage.getAllAccessTokens(this.clientId, authority);\r\n this.logger.verbose(\"Retrieving all access tokens from cache and removing duplicates\");\r\n for (var i = 0; i < accessTokenCacheItems.length; i++) {\r\n var accessTokenCacheItem = accessTokenCacheItems[i];\r\n if (accessTokenCacheItem.key.homeAccountIdentifier === response.account.homeAccountIdentifier) {\r\n var cachedScopes = accessTokenCacheItem.key.scopes.split(\" \");\r\n if (ScopeSet.isIntersectingScopes(cachedScopes, consentedScopes)) {\r\n this.cacheStorage.removeItem(JSON.stringify(accessTokenCacheItem.key));\r\n }\r\n }\r\n }\r\n // Generate and cache accessTokenKey and accessTokenValue\r\n var expiresIn = TimeUtils.parseExpiresIn(parameters[ServerHashParamKeys.EXPIRES_IN]);\r\n var parsedState = RequestUtils.parseLibraryState(parameters[ServerHashParamKeys.STATE]);\r\n expiration = parsedState.ts + expiresIn;\r\n var accessTokenKey = new AccessTokenKey(authority, this.clientId, scope, clientObj.uid, clientObj.utid);\r\n var accessTokenValue = new AccessTokenValue(parameters[ServerHashParamKeys.ACCESS_TOKEN], idTokenObj.rawIdToken, expiration.toString(), clientInfo);\r\n this.cacheStorage.setItem(JSON.stringify(accessTokenKey), JSON.stringify(accessTokenValue));\r\n this.logger.verbose(\"Saving token to cache\");\r\n accessTokenResponse.accessToken = parameters[ServerHashParamKeys.ACCESS_TOKEN];\r\n accessTokenResponse.scopes = consentedScopes;\r\n }\r\n // if the response does not contain \"scope\" - scope is usually client_id and the token will be id_token\r\n else {\r\n this.logger.verbose(\"Response parameters does not contain scope, clientId set as scope\");\r\n scope = this.clientId;\r\n // Generate and cache accessTokenKey and accessTokenValue\r\n var accessTokenKey = new AccessTokenKey(authority, this.clientId, scope, clientObj.uid, clientObj.utid);\r\n expiration = Number(idTokenObj.expiration);\r\n var accessTokenValue = new AccessTokenValue(parameters[ServerHashParamKeys.ID_TOKEN], parameters[ServerHashParamKeys.ID_TOKEN], expiration.toString(), clientInfo);\r\n this.cacheStorage.setItem(JSON.stringify(accessTokenKey), JSON.stringify(accessTokenValue));\r\n this.logger.verbose(\"Saving token to cache\");\r\n accessTokenResponse.scopes = [scope];\r\n accessTokenResponse.accessToken = parameters[ServerHashParamKeys.ID_TOKEN];\r\n }\r\n if (expiration) {\r\n this.logger.verbose(\"New expiration set\");\r\n accessTokenResponse.expiresOn = new Date(expiration * 1000);\r\n }\r\n else {\r\n this.logger.error(\"Could not parse expiresIn parameter\");\r\n }\r\n return accessTokenResponse;\r\n };\r\n /**\r\n * @hidden\r\n * Saves token or error received in the response from AAD in the cache. In case of id_token, it also creates the account object.\r\n * @ignore\r\n */\r\n UserAgentApplication.prototype.saveTokenFromHash = function (hash, stateInfo) {\r\n this.logger.verbose(\"SaveTokenFromHash has been called\");\r\n this.logger.info(\"State status: \" + stateInfo.stateMatch + \"; Request type: \" + stateInfo.requestType);\r\n var response = {\r\n uniqueId: \"\",\r\n tenantId: \"\",\r\n tokenType: \"\",\r\n idToken: null,\r\n idTokenClaims: null,\r\n accessToken: null,\r\n scopes: [],\r\n expiresOn: null,\r\n account: null,\r\n accountState: \"\",\r\n fromCache: false\r\n };\r\n var error;\r\n var hashParams = UrlUtils.deserializeHash(hash);\r\n var authorityKey = \"\";\r\n var acquireTokenAccountKey = \"\";\r\n var idTokenObj = null;\r\n // If server returns an error\r\n if (hashParams.hasOwnProperty(ServerHashParamKeys.ERROR_DESCRIPTION) || hashParams.hasOwnProperty(ServerHashParamKeys.ERROR)) {\r\n this.logger.verbose(\"Server returned an error\");\r\n this.logger.infoPii(\"Error : \" + hashParams[ServerHashParamKeys.ERROR] + \"; Error description: \" + hashParams[ServerHashParamKeys.ERROR_DESCRIPTION]);\r\n this.cacheStorage.setItem(ErrorCacheKeys.ERROR, hashParams[ServerHashParamKeys.ERROR]);\r\n this.cacheStorage.setItem(ErrorCacheKeys.ERROR_DESC, hashParams[ServerHashParamKeys.ERROR_DESCRIPTION]);\r\n // login\r\n if (stateInfo.requestType === Constants.login) {\r\n this.logger.verbose(\"RequestType is login, caching login error, generating authorityKey\");\r\n this.cacheStorage.setItem(ErrorCacheKeys.LOGIN_ERROR, hashParams[ServerHashParamKeys.ERROR_DESCRIPTION] + \":\" + hashParams[ServerHashParamKeys.ERROR]);\r\n authorityKey = AuthCache.generateAuthorityKey(stateInfo.state);\r\n }\r\n // acquireToken\r\n if (stateInfo.requestType === Constants.renewToken) {\r\n this.logger.verbose(\"RequestType is renewToken, generating acquireTokenAccountKey\");\r\n authorityKey = AuthCache.generateAuthorityKey(stateInfo.state);\r\n var account = this.getAccount();\r\n var accountId = void 0;\r\n if (account && !StringUtils.isEmpty(account.homeAccountIdentifier)) {\r\n accountId = account.homeAccountIdentifier;\r\n this.logger.verbose(\"AccountId is set\");\r\n }\r\n else {\r\n accountId = Constants.no_account;\r\n this.logger.verbose(\"AccountId is set as no_account\");\r\n }\r\n acquireTokenAccountKey = AuthCache.generateAcquireTokenAccountKey(accountId, stateInfo.state);\r\n }\r\n var _a = ServerHashParamKeys.ERROR, hashErr = hashParams[_a], _b = ServerHashParamKeys.ERROR_DESCRIPTION, hashErrDesc = hashParams[_b];\r\n if (InteractionRequiredAuthError.isInteractionRequiredError(hashErr) ||\r\n InteractionRequiredAuthError.isInteractionRequiredError(hashErrDesc)) {\r\n error = new InteractionRequiredAuthError(hashParams[ServerHashParamKeys.ERROR], hashParams[ServerHashParamKeys.ERROR_DESCRIPTION]);\r\n }\r\n else {\r\n error = new ServerError(hashParams[ServerHashParamKeys.ERROR], hashParams[ServerHashParamKeys.ERROR_DESCRIPTION]);\r\n }\r\n }\r\n // If the server returns \"Success\"\r\n else {\r\n this.logger.verbose(\"Server returns success\");\r\n // Verify the state from redirect and record tokens to storage if exists\r\n if (stateInfo.stateMatch) {\r\n this.logger.info(\"State is right\");\r\n if (hashParams.hasOwnProperty(ServerHashParamKeys.SESSION_STATE)) {\r\n this.logger.verbose(\"Fragment has session state, caching\");\r\n this.cacheStorage.setItem(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.SESSION_STATE, stateInfo.state), hashParams[ServerHashParamKeys.SESSION_STATE]);\r\n }\r\n response.accountState = this.getAccountState(stateInfo.state);\r\n var clientInfo = \"\";\r\n // Process access_token\r\n if (hashParams.hasOwnProperty(ServerHashParamKeys.ACCESS_TOKEN)) {\r\n this.logger.info(\"Fragment has access token\");\r\n response.accessToken = hashParams[ServerHashParamKeys.ACCESS_TOKEN];\r\n if (hashParams.hasOwnProperty(ServerHashParamKeys.SCOPE)) {\r\n response.scopes = hashParams[ServerHashParamKeys.SCOPE].split(\" \");\r\n }\r\n // retrieve the id_token from response if present\r\n if (hashParams.hasOwnProperty(ServerHashParamKeys.ID_TOKEN)) {\r\n this.logger.verbose(\"Fragment has id_token\");\r\n idTokenObj = new IdToken(hashParams[ServerHashParamKeys.ID_TOKEN]);\r\n response.idToken = idTokenObj;\r\n response.idTokenClaims = idTokenObj.claims;\r\n }\r\n else {\r\n this.logger.verbose(\"No idToken on fragment, getting idToken from cache\");\r\n idTokenObj = new IdToken(this.cacheStorage.getItem(PersistentCacheKeys.IDTOKEN));\r\n response = ResponseUtils.setResponseIdToken(response, idTokenObj);\r\n }\r\n // set authority\r\n var authority = this.populateAuthority(stateInfo.state, this.inCookie, this.cacheStorage, idTokenObj);\r\n this.logger.verbose(\"Got authority from cache\");\r\n // retrieve client_info - if it is not found, generate the uid and utid from idToken\r\n if (hashParams.hasOwnProperty(ServerHashParamKeys.CLIENT_INFO)) {\r\n this.logger.verbose(\"Fragment has clientInfo\");\r\n clientInfo = hashParams[ServerHashParamKeys.CLIENT_INFO];\r\n }\r\n else {\r\n this.logger.warning(\"ClientInfo not received in the response from AAD\");\r\n throw ClientAuthError.createClientInfoNotPopulatedError(\"ClientInfo not received in the response from the server\");\r\n }\r\n response.account = Account.createAccount(idTokenObj, new ClientInfo(clientInfo));\r\n this.logger.verbose(\"Account object created from response\");\r\n var accountKey = void 0;\r\n if (response.account && !StringUtils.isEmpty(response.account.homeAccountIdentifier)) {\r\n this.logger.verbose(\"AccountKey set\");\r\n accountKey = response.account.homeAccountIdentifier;\r\n }\r\n else {\r\n this.logger.verbose(\"AccountKey set as no_account\");\r\n accountKey = Constants.no_account;\r\n }\r\n acquireTokenAccountKey = AuthCache.generateAcquireTokenAccountKey(accountKey, stateInfo.state);\r\n var acquireTokenAccountKey_noaccount = AuthCache.generateAcquireTokenAccountKey(Constants.no_account, stateInfo.state);\r\n this.logger.verbose(\"AcquireTokenAccountKey generated\");\r\n var cachedAccount = this.cacheStorage.getItem(acquireTokenAccountKey);\r\n var acquireTokenAccount = void 0;\r\n // Check with the account in the Cache\r\n if (!StringUtils.isEmpty(cachedAccount)) {\r\n acquireTokenAccount = JSON.parse(cachedAccount);\r\n this.logger.verbose(\"AcquireToken request account retrieved from cache\");\r\n if (response.account && acquireTokenAccount && Account.compareAccounts(response.account, acquireTokenAccount)) {\r\n response = this.saveAccessToken(response, authority, hashParams, clientInfo, idTokenObj);\r\n this.logger.info(\"The user object received in the response is the same as the one passed in the acquireToken request\");\r\n }\r\n else {\r\n this.logger.warning(\"The account object created from the response is not the same as the one passed in the acquireToken request\");\r\n }\r\n }\r\n else if (!StringUtils.isEmpty(this.cacheStorage.getItem(acquireTokenAccountKey_noaccount))) {\r\n this.logger.verbose(\"No acquireToken account retrieved from cache\");\r\n response = this.saveAccessToken(response, authority, hashParams, clientInfo, idTokenObj);\r\n }\r\n }\r\n // Process id_token\r\n if (hashParams.hasOwnProperty(ServerHashParamKeys.ID_TOKEN)) {\r\n this.logger.info(\"Fragment has idToken\");\r\n // set the idToken\r\n idTokenObj = new IdToken(hashParams[ServerHashParamKeys.ID_TOKEN]);\r\n response = ResponseUtils.setResponseIdToken(response, idTokenObj);\r\n if (hashParams.hasOwnProperty(ServerHashParamKeys.CLIENT_INFO)) {\r\n this.logger.verbose(\"Fragment has clientInfo\");\r\n clientInfo = hashParams[ServerHashParamKeys.CLIENT_INFO];\r\n }\r\n else {\r\n this.logger.warning(\"ClientInfo not received in the response from AAD\");\r\n }\r\n // set authority\r\n var authority = this.populateAuthority(stateInfo.state, this.inCookie, this.cacheStorage, idTokenObj);\r\n this.account = Account.createAccount(idTokenObj, new ClientInfo(clientInfo));\r\n response.account = this.account;\r\n this.logger.verbose(\"Account object created from response\");\r\n if (idTokenObj && idTokenObj.nonce) {\r\n this.logger.verbose(\"IdToken has nonce\");\r\n // check nonce integrity if idToken has nonce - throw an error if not matched\r\n var cachedNonce = this.cacheStorage.getItem(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.NONCE_IDTOKEN, stateInfo.state), this.inCookie);\r\n if (idTokenObj.nonce !== cachedNonce) {\r\n this.account = null;\r\n this.cacheStorage.setItem(ErrorCacheKeys.LOGIN_ERROR, \"Nonce Mismatch. Expected Nonce: \" + cachedNonce + \",\" + \"Actual Nonce: \" + idTokenObj.nonce);\r\n this.logger.error(\"Nonce Mismatch. Expected Nonce: \" + cachedNonce + \", Actual Nonce: \" + idTokenObj.nonce);\r\n error = ClientAuthError.createNonceMismatchError(cachedNonce, idTokenObj.nonce);\r\n }\r\n // Save the token\r\n else {\r\n this.logger.verbose(\"Nonce matches, saving idToken to cache\");\r\n this.cacheStorage.setItem(PersistentCacheKeys.IDTOKEN, hashParams[ServerHashParamKeys.ID_TOKEN], this.inCookie);\r\n this.cacheStorage.setItem(PersistentCacheKeys.CLIENT_INFO, clientInfo, this.inCookie);\r\n // Save idToken as access token for app itself\r\n this.saveAccessToken(response, authority, hashParams, clientInfo, idTokenObj);\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"No idToken or no nonce. Cache key for Authority set as state\");\r\n authorityKey = stateInfo.state;\r\n acquireTokenAccountKey = stateInfo.state;\r\n this.logger.error(\"Invalid id_token received in the response\");\r\n error = ClientAuthError.createInvalidIdTokenError(idTokenObj);\r\n this.cacheStorage.setItem(ErrorCacheKeys.ERROR, error.errorCode);\r\n this.cacheStorage.setItem(ErrorCacheKeys.ERROR_DESC, error.errorMessage);\r\n }\r\n }\r\n }\r\n // State mismatch - unexpected/invalid state\r\n else {\r\n this.logger.verbose(\"State mismatch\");\r\n authorityKey = stateInfo.state;\r\n acquireTokenAccountKey = stateInfo.state;\r\n var expectedState = this.cacheStorage.getItem(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.STATE_LOGIN, stateInfo.state), this.inCookie);\r\n this.logger.error(\"State Mismatch. Expected State: \" + expectedState + \", Actual State: \" + stateInfo.state);\r\n error = ClientAuthError.createInvalidStateError(stateInfo.state, expectedState);\r\n this.cacheStorage.setItem(ErrorCacheKeys.ERROR, error.errorCode);\r\n this.cacheStorage.setItem(ErrorCacheKeys.ERROR_DESC, error.errorMessage);\r\n }\r\n }\r\n // Set status to completed\r\n this.cacheStorage.removeItem(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.RENEW_STATUS, stateInfo.state));\r\n this.cacheStorage.resetTempCacheItems(stateInfo.state);\r\n this.logger.verbose(\"Status set to complete, temporary cache cleared\");\r\n // this is required if navigateToLoginRequestUrl=false\r\n if (this.inCookie) {\r\n this.logger.verbose(\"InCookie is true, setting authorityKey in cookie\");\r\n this.cacheStorage.setItemCookie(authorityKey, \"\", -1);\r\n this.cacheStorage.clearMsalCookie(stateInfo.state);\r\n }\r\n if (error) {\r\n // Error case, set status to cancelled\r\n throw error;\r\n }\r\n if (!response) {\r\n throw AuthError.createUnexpectedError(\"Response is null\");\r\n }\r\n return response;\r\n };\r\n /**\r\n * Set Authority when saving Token from the hash\r\n * @param state\r\n * @param inCookie\r\n * @param cacheStorage\r\n * @param idTokenObj\r\n * @param response\r\n */\r\n UserAgentApplication.prototype.populateAuthority = function (state, inCookie, cacheStorage, idTokenObj) {\r\n this.logger.verbose(\"PopulateAuthority has been called\");\r\n var authorityKey = AuthCache.generateAuthorityKey(state);\r\n var cachedAuthority = cacheStorage.getItem(authorityKey, inCookie);\r\n // retrieve the authority from cache and replace with tenantID\r\n return StringUtils.isEmpty(cachedAuthority) ? cachedAuthority : UrlUtils.replaceTenantPath(cachedAuthority, idTokenObj.tenantId);\r\n };\r\n /* tslint:enable:no-string-literal */\r\n // #endregion\r\n // #region Account\r\n /**\r\n * Returns the signed in account\r\n * (the account object is created at the time of successful login)\r\n * or null when no state is found\r\n * @returns {@link Account} - the account object stored in MSAL\r\n */\r\n UserAgentApplication.prototype.getAccount = function () {\r\n // if a session already exists, get the account from the session\r\n if (this.account) {\r\n return this.account;\r\n }\r\n // frame is used to get idToken and populate the account for the given session\r\n var rawIdToken = this.cacheStorage.getItem(PersistentCacheKeys.IDTOKEN, this.inCookie);\r\n var rawClientInfo = this.cacheStorage.getItem(PersistentCacheKeys.CLIENT_INFO, this.inCookie);\r\n if (!StringUtils.isEmpty(rawIdToken) && !StringUtils.isEmpty(rawClientInfo)) {\r\n var idToken = new IdToken(rawIdToken);\r\n var clientInfo = new ClientInfo(rawClientInfo);\r\n this.account = Account.createAccount(idToken, clientInfo);\r\n return this.account;\r\n }\r\n // if login not yet done, return null\r\n return null;\r\n };\r\n /**\r\n * @hidden\r\n *\r\n * Extracts state value from the accountState sent with the authentication request.\r\n * @returns {string} scope.\r\n * @ignore\r\n */\r\n UserAgentApplication.prototype.getAccountState = function (state) {\r\n if (state) {\r\n var splitIndex = state.indexOf(Constants.resourceDelimiter);\r\n if (splitIndex > -1 && splitIndex + 1 < state.length) {\r\n return state.substring(splitIndex + 1);\r\n }\r\n }\r\n return state;\r\n };\r\n /**\r\n * Use to get a list of unique accounts in MSAL cache based on homeAccountIdentifier.\r\n *\r\n * @param {@link Array} Account - all unique accounts in MSAL cache.\r\n */\r\n UserAgentApplication.prototype.getAllAccounts = function () {\r\n var accounts = [];\r\n var accessTokenCacheItems = this.cacheStorage.getAllAccessTokens(Constants.clientId, Constants.homeAccountIdentifier);\r\n for (var i = 0; i < accessTokenCacheItems.length; i++) {\r\n var idToken = new IdToken(accessTokenCacheItems[i].value.idToken);\r\n var clientInfo = new ClientInfo(accessTokenCacheItems[i].value.homeAccountIdentifier);\r\n var account = Account.createAccount(idToken, clientInfo);\r\n accounts.push(account);\r\n }\r\n return this.getUniqueAccounts(accounts);\r\n };\r\n /**\r\n * @hidden\r\n *\r\n * Used to filter accounts based on homeAccountIdentifier\r\n * @param {Array} Accounts - accounts saved in the cache\r\n * @ignore\r\n */\r\n UserAgentApplication.prototype.getUniqueAccounts = function (accounts) {\r\n if (!accounts || accounts.length <= 1) {\r\n return accounts;\r\n }\r\n var flags = [];\r\n var uniqueAccounts = [];\r\n for (var index = 0; index < accounts.length; ++index) {\r\n if (accounts[index].homeAccountIdentifier && flags.indexOf(accounts[index].homeAccountIdentifier) === -1) {\r\n flags.push(accounts[index].homeAccountIdentifier);\r\n uniqueAccounts.push(accounts[index]);\r\n }\r\n }\r\n return uniqueAccounts;\r\n };\r\n // #endregion\r\n // #region Angular\r\n /**\r\n * @hidden\r\n *\r\n * Broadcast messages - Used only for Angular? *\r\n * @param eventName\r\n * @param data\r\n */\r\n UserAgentApplication.prototype.broadcast = function (eventName, data) {\r\n var evt = new CustomEvent(eventName, { detail: data });\r\n window.dispatchEvent(evt);\r\n };\r\n /**\r\n * @hidden\r\n *\r\n * Helper function to retrieve the cached token\r\n *\r\n * @param scopes\r\n * @param {@link Account} account\r\n * @param state\r\n * @return {@link AuthResponse} AuthResponse\r\n */\r\n UserAgentApplication.prototype.getCachedTokenInternal = function (scopes, account, state, correlationId) {\r\n // Get the current session's account object\r\n var accountObject = account || this.getAccount();\r\n if (!accountObject) {\r\n return null;\r\n }\r\n // Construct AuthenticationRequest based on response type; set \"redirectUri\" from the \"request\" which makes this call from Angular - for this.getRedirectUri()\r\n var newAuthority = this.authorityInstance ? this.authorityInstance : AuthorityFactory.CreateInstance(this.authority, this.config.auth.validateAuthority);\r\n var responseType = this.getTokenType(accountObject, scopes, true);\r\n var serverAuthenticationRequest = new ServerRequestParameters(newAuthority, this.clientId, responseType, this.getRedirectUri(), scopes, state, correlationId);\r\n // get cached token\r\n return this.getCachedToken(serverAuthenticationRequest, account);\r\n };\r\n /**\r\n * @hidden\r\n *\r\n * Get scopes for the Endpoint - Used in Angular to track protected and unprotected resources without interaction from the developer app\r\n * Note: Please check if we need to set the \"redirectUri\" from the \"request\" which makes this call from Angular - for this.getRedirectUri()\r\n *\r\n * @param endpoint\r\n */\r\n UserAgentApplication.prototype.getScopesForEndpoint = function (endpoint) {\r\n // if user specified list of unprotectedResources, no need to send token to these endpoints, return null.\r\n if (this.config.framework.unprotectedResources.length > 0) {\r\n for (var i = 0; i < this.config.framework.unprotectedResources.length; i++) {\r\n if (endpoint.indexOf(this.config.framework.unprotectedResources[i]) > -1) {\r\n return null;\r\n }\r\n }\r\n }\r\n // process all protected resources and send the matched one\r\n if (this.config.framework.protectedResourceMap.size > 0) {\r\n for (var _i = 0, _a = Array.from(this.config.framework.protectedResourceMap.keys()); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n // configEndpoint is like /api/Todo requested endpoint can be /api/Todo/1\r\n if (endpoint.indexOf(key) > -1) {\r\n return this.config.framework.protectedResourceMap.get(key);\r\n }\r\n }\r\n }\r\n /*\r\n * default resource will be clientid if nothing specified\r\n * App will use idtoken for calls to itself\r\n * check if it's staring from http or https, needs to match with app host\r\n */\r\n if (endpoint.indexOf(\"http://\") > -1 || endpoint.indexOf(\"https://\") > -1) {\r\n if (UrlUtils.getHostFromUri(endpoint) === UrlUtils.getHostFromUri(this.getRedirectUri())) {\r\n return new Array(this.clientId);\r\n }\r\n }\r\n else {\r\n /*\r\n * in angular level, the url for $http interceptor call could be relative url,\r\n * if it's relative call, we'll treat it as app backend call.\r\n */\r\n return new Array(this.clientId);\r\n }\r\n // if not the app's own backend or not a domain listed in the endpoints structure\r\n return null;\r\n };\r\n /**\r\n * Return boolean flag to developer to help inform if login is in progress\r\n * @returns {boolean} true/false\r\n */\r\n UserAgentApplication.prototype.getLoginInProgress = function () {\r\n return this.cacheStorage.getItem(TemporaryCacheKeys.INTERACTION_STATUS) === Constants.inProgress;\r\n };\r\n /**\r\n * @hidden\r\n * @ignore\r\n *\r\n * @param loginInProgress\r\n */\r\n UserAgentApplication.prototype.setInteractionInProgress = function (inProgress) {\r\n if (inProgress) {\r\n this.cacheStorage.setItem(TemporaryCacheKeys.INTERACTION_STATUS, Constants.inProgress);\r\n }\r\n else {\r\n this.cacheStorage.removeItem(TemporaryCacheKeys.INTERACTION_STATUS);\r\n }\r\n };\r\n /**\r\n * @hidden\r\n * @ignore\r\n *\r\n * @param loginInProgress\r\n */\r\n UserAgentApplication.prototype.setloginInProgress = function (loginInProgress) {\r\n this.setInteractionInProgress(loginInProgress);\r\n };\r\n /**\r\n * @hidden\r\n * @ignore\r\n *\r\n * returns the status of acquireTokenInProgress\r\n */\r\n UserAgentApplication.prototype.getAcquireTokenInProgress = function () {\r\n return this.cacheStorage.getItem(TemporaryCacheKeys.INTERACTION_STATUS) === Constants.inProgress;\r\n };\r\n /**\r\n * @hidden\r\n * @ignore\r\n *\r\n * @param acquireTokenInProgress\r\n */\r\n UserAgentApplication.prototype.setAcquireTokenInProgress = function (acquireTokenInProgress) {\r\n this.setInteractionInProgress(acquireTokenInProgress);\r\n };\r\n /**\r\n * @hidden\r\n * @ignore\r\n *\r\n * returns the logger handle\r\n */\r\n UserAgentApplication.prototype.getLogger = function () {\r\n return this.logger;\r\n };\r\n /**\r\n * Sets the logger callback.\r\n * @param logger Logger callback\r\n */\r\n UserAgentApplication.prototype.setLogger = function (logger) {\r\n this.logger = logger;\r\n };\r\n // #endregion\r\n // #region Getters and Setters\r\n /**\r\n * Use to get the redirect uri configured in MSAL or null.\r\n * Evaluates redirectUri if its a function, otherwise simply returns its value.\r\n *\r\n * @returns {string} redirect URL\r\n */\r\n UserAgentApplication.prototype.getRedirectUri = function (reqRedirectUri) {\r\n if (reqRedirectUri) {\r\n return reqRedirectUri;\r\n }\r\n else if (typeof this.config.auth.redirectUri === \"function\") {\r\n return this.config.auth.redirectUri();\r\n }\r\n return this.config.auth.redirectUri;\r\n };\r\n /**\r\n * Use to get the post logout redirect uri configured in MSAL or null.\r\n * Evaluates postLogoutredirectUri if its a function, otherwise simply returns its value.\r\n *\r\n * @returns {string} post logout redirect URL\r\n */\r\n UserAgentApplication.prototype.getPostLogoutRedirectUri = function () {\r\n if (typeof this.config.auth.postLogoutRedirectUri === \"function\") {\r\n return this.config.auth.postLogoutRedirectUri();\r\n }\r\n return this.config.auth.postLogoutRedirectUri;\r\n };\r\n /**\r\n * Use to get the current {@link Configuration} object in MSAL\r\n *\r\n * @returns {@link Configuration}\r\n */\r\n UserAgentApplication.prototype.getCurrentConfiguration = function () {\r\n if (!this.config) {\r\n throw ClientConfigurationError.createNoSetConfigurationError();\r\n }\r\n return this.config;\r\n };\r\n /**\r\n * @ignore\r\n *\r\n * Utils function to create the Authentication\r\n * @param {@link account} account object\r\n * @param scopes\r\n * @param silentCall\r\n *\r\n * @returns {string} token type: id_token or access_token\r\n *\r\n */\r\n UserAgentApplication.prototype.getTokenType = function (accountObject, scopes, silentCall) {\r\n /*\r\n * if account is passed and matches the account object/or set to getAccount() from cache\r\n * if client-id is passed as scope, get id_token else token/id_token_token (in case no session exists)\r\n */\r\n var tokenType;\r\n // acquireTokenSilent\r\n if (silentCall) {\r\n if (Account.compareAccounts(accountObject, this.getAccount())) {\r\n tokenType = (scopes.indexOf(this.config.auth.clientId) > -1) ? ResponseTypes.id_token : ResponseTypes.token;\r\n }\r\n else {\r\n tokenType = (scopes.indexOf(this.config.auth.clientId) > -1) ? ResponseTypes.id_token : ResponseTypes.id_token_token;\r\n }\r\n return tokenType;\r\n }\r\n // all other cases\r\n else {\r\n if (!Account.compareAccounts(accountObject, this.getAccount())) {\r\n tokenType = ResponseTypes.id_token_token;\r\n }\r\n else {\r\n tokenType = (scopes.indexOf(this.clientId) > -1) ? ResponseTypes.id_token : ResponseTypes.token;\r\n }\r\n return tokenType;\r\n }\r\n };\r\n /**\r\n * @hidden\r\n * @ignore\r\n *\r\n * Sets the cachekeys for and stores the account information in cache\r\n * @param account\r\n * @param state\r\n * @hidden\r\n */\r\n UserAgentApplication.prototype.setAccountCache = function (account, state) {\r\n // Cache acquireTokenAccountKey\r\n var accountId = account ? this.getAccountId(account) : Constants.no_account;\r\n var acquireTokenAccountKey = AuthCache.generateAcquireTokenAccountKey(accountId, state);\r\n this.cacheStorage.setItem(acquireTokenAccountKey, JSON.stringify(account));\r\n };\r\n /**\r\n * @hidden\r\n * @ignore\r\n *\r\n * Sets the cacheKey for and stores the authority information in cache\r\n * @param state\r\n * @param authority\r\n * @hidden\r\n */\r\n UserAgentApplication.prototype.setAuthorityCache = function (state, authority) {\r\n // Cache authorityKey\r\n var authorityKey = AuthCache.generateAuthorityKey(state);\r\n this.cacheStorage.setItem(authorityKey, UrlUtils.CanonicalizeUri(authority), this.inCookie);\r\n };\r\n /**\r\n * Updates account, authority, and nonce in cache\r\n * @param serverAuthenticationRequest\r\n * @param account\r\n * @hidden\r\n * @ignore\r\n */\r\n UserAgentApplication.prototype.updateCacheEntries = function (serverAuthenticationRequest, account, isLoginCall, loginStartPage) {\r\n // Cache Request Originator Page\r\n if (loginStartPage) {\r\n this.cacheStorage.setItem(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.LOGIN_REQUEST, serverAuthenticationRequest.state), loginStartPage, this.inCookie);\r\n }\r\n // Cache account and authority\r\n if (isLoginCall) {\r\n // Cache the state\r\n this.cacheStorage.setItem(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.STATE_LOGIN, serverAuthenticationRequest.state), serverAuthenticationRequest.state, this.inCookie);\r\n }\r\n else {\r\n this.setAccountCache(account, serverAuthenticationRequest.state);\r\n }\r\n // Cache authorityKey\r\n this.setAuthorityCache(serverAuthenticationRequest.state, serverAuthenticationRequest.authority);\r\n // Cache nonce\r\n this.cacheStorage.setItem(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.NONCE_IDTOKEN, serverAuthenticationRequest.state), serverAuthenticationRequest.nonce, this.inCookie);\r\n };\r\n /**\r\n * Returns the unique identifier for the logged in account\r\n * @param account\r\n * @hidden\r\n * @ignore\r\n */\r\n UserAgentApplication.prototype.getAccountId = function (account) {\r\n // return `${account.accountIdentifier}` + Constants.resourceDelimiter + `${account.homeAccountIdentifier}`;\r\n var accountId;\r\n if (!StringUtils.isEmpty(account.homeAccountIdentifier)) {\r\n accountId = account.homeAccountIdentifier;\r\n }\r\n else {\r\n accountId = Constants.no_account;\r\n }\r\n return accountId;\r\n };\r\n /**\r\n * @ignore\r\n * @param extraQueryParameters\r\n *\r\n * Construct 'tokenRequest' from the available data in adalIdToken\r\n */\r\n UserAgentApplication.prototype.buildIDTokenRequest = function (request) {\r\n var tokenRequest = {\r\n scopes: [this.clientId],\r\n authority: this.authority,\r\n account: this.getAccount(),\r\n extraQueryParameters: request.extraQueryParameters,\r\n correlationId: request.correlationId\r\n };\r\n return tokenRequest;\r\n };\r\n /**\r\n * @ignore\r\n * @param config\r\n * @param clientId\r\n *\r\n * Construct TelemetryManager from Configuration\r\n */\r\n UserAgentApplication.prototype.getTelemetryManagerFromConfig = function (config, clientId) {\r\n if (!config) { // if unset\r\n return TelemetryManager.getTelemetrymanagerStub(clientId, this.logger);\r\n }\r\n // if set then validate\r\n var applicationName = config.applicationName, applicationVersion = config.applicationVersion, telemetryEmitter = config.telemetryEmitter;\r\n if (!applicationName || !applicationVersion || !telemetryEmitter) {\r\n throw ClientConfigurationError.createTelemetryConfigError(config);\r\n }\r\n // if valid then construct\r\n var telemetryPlatform = {\r\n applicationName: applicationName,\r\n applicationVersion: applicationVersion\r\n };\r\n var telemetryManagerConfig = {\r\n platform: telemetryPlatform,\r\n clientId: clientId\r\n };\r\n return new TelemetryManager(telemetryManagerConfig, telemetryEmitter, this.logger);\r\n };\r\n return UserAgentApplication;\r\n}());\r\nexport { UserAgentApplication };\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport { NetworkRequestType } from \"./utils/Constants\";\r\n/**\r\n * XHR client for JSON endpoints\r\n * https://www.npmjs.com/package/async-promise\r\n * @hidden\r\n */\r\nvar XhrClient = /** @class */ (function () {\r\n function XhrClient() {\r\n }\r\n XhrClient.prototype.sendRequestAsync = function (url, method, enableCaching) {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open(method, url, /* async: */ true);\r\n if (enableCaching) {\r\n /*\r\n * TODO: (shivb) ensure that this can be cached\r\n * xhr.setRequestHeader(\"Cache-Control\", \"Public\");\r\n */\r\n }\r\n xhr.onload = function (ev) {\r\n if (xhr.status < 200 || xhr.status >= 300) {\r\n reject(_this.handleError(xhr.responseText));\r\n }\r\n var jsonResponse;\r\n try {\r\n jsonResponse = JSON.parse(xhr.responseText);\r\n }\r\n catch (e) {\r\n reject(_this.handleError(xhr.responseText));\r\n }\r\n var response = {\r\n statusCode: xhr.status,\r\n body: jsonResponse\r\n };\r\n resolve(response);\r\n };\r\n xhr.onerror = function (ev) {\r\n reject(xhr.status);\r\n };\r\n if (method === NetworkRequestType.GET) {\r\n xhr.send();\r\n }\r\n else {\r\n throw \"not implemented\";\r\n }\r\n });\r\n };\r\n XhrClient.prototype.handleError = function (responseText) {\r\n var jsonResponse;\r\n try {\r\n jsonResponse = JSON.parse(responseText);\r\n if (jsonResponse.error) {\r\n return jsonResponse.error;\r\n }\r\n else {\r\n throw responseText;\r\n }\r\n }\r\n catch (e) {\r\n return responseText;\r\n }\r\n };\r\n return XhrClient;\r\n}());\r\nexport { XhrClient };\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport { ClientConfigurationErrorMessage, ClientConfigurationError } from \"../error/ClientConfigurationError\";\r\nimport { XhrClient } from \"../XHRClient\";\r\nimport { UrlUtils } from \"../utils/UrlUtils\";\r\nimport { TrustedAuthority } from \"./TrustedAuthority\";\r\nimport { NetworkRequestType } from \"../utils/Constants\";\r\n/**\r\n * @hidden\r\n */\r\nexport var AuthorityType;\r\n(function (AuthorityType) {\r\n AuthorityType[AuthorityType[\"Default\"] = 0] = \"Default\";\r\n AuthorityType[AuthorityType[\"Adfs\"] = 1] = \"Adfs\";\r\n})(AuthorityType || (AuthorityType = {}));\r\n/**\r\n * @hidden\r\n */\r\nvar Authority = /** @class */ (function () {\r\n function Authority(authority, validateAuthority, authorityMetadata) {\r\n this.IsValidationEnabled = validateAuthority;\r\n this.CanonicalAuthority = authority;\r\n this.validateAsUri();\r\n this.tenantDiscoveryResponse = authorityMetadata;\r\n }\r\n Object.defineProperty(Authority.prototype, \"Tenant\", {\r\n get: function () {\r\n return this.CanonicalAuthorityUrlComponents.PathSegments[0];\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"AuthorizationEndpoint\", {\r\n get: function () {\r\n this.validateResolved();\r\n return this.tenantDiscoveryResponse.AuthorizationEndpoint.replace(/{tenant}|{tenantid}/g, this.Tenant);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"EndSessionEndpoint\", {\r\n get: function () {\r\n this.validateResolved();\r\n return this.tenantDiscoveryResponse.EndSessionEndpoint.replace(/{tenant}|{tenantid}/g, this.Tenant);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"SelfSignedJwtAudience\", {\r\n get: function () {\r\n this.validateResolved();\r\n return this.tenantDiscoveryResponse.Issuer.replace(/{tenant}|{tenantid}/g, this.Tenant);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Authority.prototype.validateResolved = function () {\r\n if (!this.hasCachedMetadata()) {\r\n throw \"Please call ResolveEndpointsAsync first\";\r\n }\r\n };\r\n Object.defineProperty(Authority.prototype, \"CanonicalAuthority\", {\r\n /**\r\n * A URL that is the authority set by the developer\r\n */\r\n get: function () {\r\n return this.canonicalAuthority;\r\n },\r\n set: function (url) {\r\n this.canonicalAuthority = UrlUtils.CanonicalizeUri(url);\r\n this.canonicalAuthorityUrlComponents = null;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"CanonicalAuthorityUrlComponents\", {\r\n get: function () {\r\n if (!this.canonicalAuthorityUrlComponents) {\r\n this.canonicalAuthorityUrlComponents = UrlUtils.GetUrlComponents(this.CanonicalAuthority);\r\n }\r\n return this.canonicalAuthorityUrlComponents;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"DefaultOpenIdConfigurationEndpoint\", {\r\n // http://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata\r\n get: function () {\r\n return this.CanonicalAuthority + \"v2.0/.well-known/openid-configuration\";\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Given a string, validate that it is of the form https://domain/path\r\n */\r\n Authority.prototype.validateAsUri = function () {\r\n var components;\r\n try {\r\n components = this.CanonicalAuthorityUrlComponents;\r\n }\r\n catch (e) {\r\n throw ClientConfigurationErrorMessage.invalidAuthorityType;\r\n }\r\n if (!components.Protocol || components.Protocol.toLowerCase() !== \"https:\") {\r\n throw ClientConfigurationErrorMessage.authorityUriInsecure;\r\n }\r\n if (!components.PathSegments || components.PathSegments.length < 1) {\r\n throw ClientConfigurationErrorMessage.authorityUriInvalidPath;\r\n }\r\n };\r\n /**\r\n * Calls the OIDC endpoint and returns the response\r\n */\r\n Authority.prototype.DiscoverEndpoints = function (openIdConfigurationEndpoint, telemetryManager, correlationId) {\r\n var client = new XhrClient();\r\n var httpMethod = NetworkRequestType.GET;\r\n var httpEvent = telemetryManager.createAndStartHttpEvent(correlationId, httpMethod, openIdConfigurationEndpoint, \"openIdConfigurationEndpoint\");\r\n return client.sendRequestAsync(openIdConfigurationEndpoint, httpMethod, /* enableCaching: */ true)\r\n .then(function (response) {\r\n httpEvent.httpResponseStatus = response.statusCode;\r\n telemetryManager.stopEvent(httpEvent);\r\n return {\r\n AuthorizationEndpoint: response.body.authorization_endpoint,\r\n EndSessionEndpoint: response.body.end_session_endpoint,\r\n Issuer: response.body.issuer\r\n };\r\n })\r\n .catch(function (err) {\r\n httpEvent.serverErrorCode = err;\r\n telemetryManager.stopEvent(httpEvent);\r\n throw err;\r\n });\r\n };\r\n /**\r\n * Returns a promise.\r\n * Checks to see if the authority is in the cache\r\n * Discover endpoints via openid-configuration\r\n * If successful, caches the endpoint for later use in OIDC\r\n */\r\n Authority.prototype.resolveEndpointsAsync = function (telemetryManager, correlationId) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var host, openIdConfigurationEndpointResponse, _a;\r\n return tslib_1.__generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n if (!this.IsValidationEnabled) return [3 /*break*/, 3];\r\n host = this.canonicalAuthorityUrlComponents.HostNameAndPort;\r\n if (!(TrustedAuthority.getTrustedHostList().length === 0)) return [3 /*break*/, 2];\r\n return [4 /*yield*/, TrustedAuthority.setTrustedAuthoritiesFromNetwork(this.canonicalAuthority, telemetryManager, correlationId)];\r\n case 1:\r\n _b.sent();\r\n _b.label = 2;\r\n case 2:\r\n if (!TrustedAuthority.IsInTrustedHostList(host)) {\r\n throw ClientConfigurationError.createUntrustedAuthorityError(host);\r\n }\r\n _b.label = 3;\r\n case 3:\r\n openIdConfigurationEndpointResponse = this.GetOpenIdConfigurationEndpoint();\r\n _a = this;\r\n return [4 /*yield*/, this.DiscoverEndpoints(openIdConfigurationEndpointResponse, telemetryManager, correlationId)];\r\n case 4:\r\n _a.tenantDiscoveryResponse = _b.sent();\r\n return [2 /*return*/, this.tenantDiscoveryResponse];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Checks if there is a cached tenant discovery response with required fields.\r\n */\r\n Authority.prototype.hasCachedMetadata = function () {\r\n return !!(this.tenantDiscoveryResponse &&\r\n this.tenantDiscoveryResponse.AuthorizationEndpoint &&\r\n this.tenantDiscoveryResponse.EndSessionEndpoint &&\r\n this.tenantDiscoveryResponse.Issuer);\r\n };\r\n /**\r\n * Returns a promise which resolves to the OIDC endpoint\r\n * Only responds with the endpoint\r\n */\r\n Authority.prototype.GetOpenIdConfigurationEndpoint = function () {\r\n return this.DefaultOpenIdConfigurationEndpoint;\r\n };\r\n return Authority;\r\n}());\r\nexport { Authority };\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * @hidden\r\n */\r\nimport { Authority } from \"./Authority\";\r\nimport { StringUtils } from \"../utils/StringUtils\";\r\nimport { ClientConfigurationError } from \"../error/ClientConfigurationError\";\r\nimport { Constants } from \"../utils/Constants\";\r\nimport { UrlUtils } from \"../utils/UrlUtils\";\r\nvar AuthorityFactory = /** @class */ (function () {\r\n function AuthorityFactory() {\r\n }\r\n AuthorityFactory.saveMetadataFromNetwork = function (authorityInstance, telemetryManager, correlationId) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var metadata;\r\n return tslib_1.__generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, authorityInstance.resolveEndpointsAsync(telemetryManager, correlationId)];\r\n case 1:\r\n metadata = _a.sent();\r\n this.metadataMap.set(authorityInstance.CanonicalAuthority, metadata);\r\n return [2 /*return*/, metadata];\r\n }\r\n });\r\n });\r\n };\r\n AuthorityFactory.getMetadata = function (authorityUrl) {\r\n return this.metadataMap.get(authorityUrl);\r\n };\r\n AuthorityFactory.saveMetadataFromConfig = function (authorityUrl, authorityMetadataJson) {\r\n try {\r\n if (authorityMetadataJson) {\r\n var parsedMetadata = JSON.parse(authorityMetadataJson);\r\n if (!parsedMetadata.authorization_endpoint || !parsedMetadata.end_session_endpoint || !parsedMetadata.issuer) {\r\n throw ClientConfigurationError.createInvalidAuthorityMetadataError();\r\n }\r\n this.metadataMap.set(authorityUrl, {\r\n AuthorizationEndpoint: parsedMetadata.authorization_endpoint,\r\n EndSessionEndpoint: parsedMetadata.end_session_endpoint,\r\n Issuer: parsedMetadata.issuer\r\n });\r\n }\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createInvalidAuthorityMetadataError();\r\n }\r\n };\r\n /**\r\n * Create an authority object of the correct type based on the url\r\n * Performs basic authority validation - checks to see if the authority is of a valid type (eg aad, b2c)\r\n */\r\n AuthorityFactory.CreateInstance = function (authorityUrl, validateAuthority, authorityMetadata) {\r\n if (StringUtils.isEmpty(authorityUrl)) {\r\n return null;\r\n }\r\n if (authorityMetadata) {\r\n // todo: log statements\r\n this.saveMetadataFromConfig(authorityUrl, authorityMetadata);\r\n }\r\n return new Authority(authorityUrl, validateAuthority, this.metadataMap.get(authorityUrl));\r\n };\r\n AuthorityFactory.isAdfs = function (authorityUrl) {\r\n var components = UrlUtils.GetUrlComponents(authorityUrl);\r\n var pathSegments = components.PathSegments;\r\n if (pathSegments.length && pathSegments[0].toLowerCase() === Constants.ADFS) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n AuthorityFactory.metadataMap = new Map();\r\n return AuthorityFactory;\r\n}());\r\nexport { AuthorityFactory };\r\n","import * as tslib_1 from \"tslib\";\r\nimport { XhrClient } from \"../XHRClient\";\r\nimport { AAD_INSTANCE_DISCOVERY_ENDPOINT, NetworkRequestType } from \"../utils/Constants\";\r\nimport { UrlUtils } from \"../utils/UrlUtils\";\r\nvar TrustedAuthority = /** @class */ (function () {\r\n function TrustedAuthority() {\r\n }\r\n /**\r\n *\r\n * @param validateAuthority\r\n * @param knownAuthorities\r\n */\r\n TrustedAuthority.setTrustedAuthoritiesFromConfig = function (validateAuthority, knownAuthorities) {\r\n if (validateAuthority && !this.getTrustedHostList().length) {\r\n knownAuthorities.forEach(function (authority) {\r\n TrustedAuthority.TrustedHostList.push(authority.toLowerCase());\r\n });\r\n }\r\n };\r\n /**\r\n *\r\n * @param telemetryManager\r\n * @param correlationId\r\n */\r\n TrustedAuthority.getAliases = function (authorityToVerify, telemetryManager, correlationId) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var client, httpMethod, instanceDiscoveryEndpoint, httpEvent;\r\n return tslib_1.__generator(this, function (_a) {\r\n client = new XhrClient();\r\n httpMethod = NetworkRequestType.GET;\r\n instanceDiscoveryEndpoint = \"\" + AAD_INSTANCE_DISCOVERY_ENDPOINT + authorityToVerify + \"oauth2/v2.0/authorize\";\r\n httpEvent = telemetryManager.createAndStartHttpEvent(correlationId, httpMethod, instanceDiscoveryEndpoint, \"getAliases\");\r\n return [2 /*return*/, client.sendRequestAsync(instanceDiscoveryEndpoint, httpMethod, true)\r\n .then(function (response) {\r\n httpEvent.httpResponseStatus = response.statusCode;\r\n telemetryManager.stopEvent(httpEvent);\r\n return response.body.metadata;\r\n })\r\n .catch(function (err) {\r\n httpEvent.serverErrorCode = err;\r\n telemetryManager.stopEvent(httpEvent);\r\n throw err;\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n *\r\n * @param telemetryManager\r\n * @param correlationId\r\n */\r\n TrustedAuthority.setTrustedAuthoritiesFromNetwork = function (authorityToVerify, telemetryManager, correlationId) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var metadata, host;\r\n return tslib_1.__generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.getAliases(authorityToVerify, telemetryManager, correlationId)];\r\n case 1:\r\n metadata = _a.sent();\r\n metadata.forEach(function (entry) {\r\n var authorities = entry.aliases;\r\n authorities.forEach(function (authority) {\r\n TrustedAuthority.TrustedHostList.push(authority.toLowerCase());\r\n });\r\n });\r\n host = UrlUtils.GetUrlComponents(authorityToVerify).HostNameAndPort;\r\n if (TrustedAuthority.getTrustedHostList().length && !TrustedAuthority.IsInTrustedHostList(host)) {\r\n // Custom Domain scenario, host is trusted because Instance Discovery call succeeded\r\n TrustedAuthority.TrustedHostList.push(host.toLowerCase());\r\n }\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n TrustedAuthority.getTrustedHostList = function () {\r\n return this.TrustedHostList;\r\n };\r\n /**\r\n * Checks to see if the host is in a list of trusted hosts\r\n * @param host\r\n */\r\n TrustedAuthority.IsInTrustedHostList = function (host) {\r\n return this.TrustedHostList.indexOf(host.toLowerCase()) > -1;\r\n };\r\n TrustedAuthority.TrustedHostList = [];\r\n return TrustedAuthority;\r\n}());\r\nexport { TrustedAuthority };\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * @hidden\r\n */\r\nvar AccessTokenCacheItem = /** @class */ (function () {\r\n function AccessTokenCacheItem(key, value) {\r\n this.key = key;\r\n this.value = value;\r\n }\r\n return AccessTokenCacheItem;\r\n}());\r\nexport { AccessTokenCacheItem };\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport { CryptoUtils } from \"../utils/CryptoUtils\";\r\nimport { UrlUtils } from \"../utils/UrlUtils\";\r\n/**\r\n * @hidden\r\n */\r\nvar AccessTokenKey = /** @class */ (function () {\r\n function AccessTokenKey(authority, clientId, scopes, uid, utid) {\r\n this.authority = UrlUtils.CanonicalizeUri(authority);\r\n this.clientId = clientId;\r\n this.scopes = scopes;\r\n this.homeAccountIdentifier = CryptoUtils.base64Encode(uid) + \".\" + CryptoUtils.base64Encode(utid);\r\n }\r\n return AccessTokenKey;\r\n}());\r\nexport { AccessTokenKey };\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * @hidden\r\n */\r\nvar AccessTokenValue = /** @class */ (function () {\r\n function AccessTokenValue(accessToken, idToken, expiresIn, homeAccountIdentifier) {\r\n this.accessToken = accessToken;\r\n this.idToken = idToken;\r\n this.expiresIn = expiresIn;\r\n this.homeAccountIdentifier = homeAccountIdentifier;\r\n }\r\n return AccessTokenValue;\r\n}());\r\nexport { AccessTokenValue };\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport { Constants, PersistentCacheKeys, TemporaryCacheKeys, ErrorCacheKeys } from \"../utils/Constants\";\r\nimport { AccessTokenCacheItem } from \"./AccessTokenCacheItem\";\r\nimport { BrowserStorage } from \"./BrowserStorage\";\r\nimport { ClientAuthError } from \"../error/ClientAuthError\";\r\nimport { RequestUtils } from \"../utils/RequestUtils\";\r\n/**\r\n * @hidden\r\n */\r\nvar AuthCache = /** @class */ (function (_super) {\r\n tslib_1.__extends(AuthCache, _super);\r\n function AuthCache(clientId, cacheLocation, storeAuthStateInCookie) {\r\n var _this = _super.call(this, cacheLocation) || this;\r\n _this.clientId = clientId;\r\n // This is hardcoded to true for now. We may make this configurable in the future\r\n _this.rollbackEnabled = true;\r\n _this.migrateCacheEntries(storeAuthStateInCookie);\r\n return _this;\r\n }\r\n /**\r\n * Support roll back to old cache schema until the next major release: true by default now\r\n * @param storeAuthStateInCookie\r\n */\r\n AuthCache.prototype.migrateCacheEntries = function (storeAuthStateInCookie) {\r\n var _this = this;\r\n var idTokenKey = Constants.cachePrefix + \".\" + PersistentCacheKeys.IDTOKEN;\r\n var clientInfoKey = Constants.cachePrefix + \".\" + PersistentCacheKeys.CLIENT_INFO;\r\n var errorKey = Constants.cachePrefix + \".\" + ErrorCacheKeys.ERROR;\r\n var errorDescKey = Constants.cachePrefix + \".\" + ErrorCacheKeys.ERROR_DESC;\r\n var idTokenValue = _super.prototype.getItem.call(this, idTokenKey);\r\n var clientInfoValue = _super.prototype.getItem.call(this, clientInfoKey);\r\n var errorValue = _super.prototype.getItem.call(this, errorKey);\r\n var errorDescValue = _super.prototype.getItem.call(this, errorDescKey);\r\n var values = [idTokenValue, clientInfoValue, errorValue, errorDescValue];\r\n var keysToMigrate = [PersistentCacheKeys.IDTOKEN, PersistentCacheKeys.CLIENT_INFO, ErrorCacheKeys.ERROR, ErrorCacheKeys.ERROR_DESC];\r\n keysToMigrate.forEach(function (cacheKey, index) { return _this.duplicateCacheEntry(cacheKey, values[index], storeAuthStateInCookie); });\r\n };\r\n /**\r\n * Utility function to help with roll back keys\r\n * @param newKey\r\n * @param value\r\n * @param storeAuthStateInCookie\r\n */\r\n AuthCache.prototype.duplicateCacheEntry = function (newKey, value, storeAuthStateInCookie) {\r\n if (value) {\r\n this.setItem(newKey, value, storeAuthStateInCookie);\r\n }\r\n };\r\n /**\r\n * Prepend msal. to each key; Skip for any JSON object as Key (defined schemas do not need the key appended: AccessToken Keys or the upcoming schema)\r\n * @param key\r\n * @param addInstanceId\r\n */\r\n AuthCache.prototype.generateCacheKey = function (key, addInstanceId) {\r\n try {\r\n // Defined schemas do not need the key appended\r\n JSON.parse(key);\r\n return key;\r\n }\r\n catch (e) {\r\n if (key.indexOf(\"\" + Constants.cachePrefix) === 0 || key.indexOf(Constants.adalIdToken) === 0) {\r\n return key;\r\n }\r\n return addInstanceId ? Constants.cachePrefix + \".\" + this.clientId + \".\" + key : Constants.cachePrefix + \".\" + key;\r\n }\r\n };\r\n /**\r\n * add value to storage\r\n * @param key\r\n * @param value\r\n * @param enableCookieStorage\r\n */\r\n AuthCache.prototype.setItem = function (key, value, enableCookieStorage) {\r\n _super.prototype.setItem.call(this, this.generateCacheKey(key, true), value, enableCookieStorage);\r\n // Values stored in cookies will have rollback disabled to minimize cookie length\r\n if (this.rollbackEnabled && !enableCookieStorage) {\r\n _super.prototype.setItem.call(this, this.generateCacheKey(key, false), value, enableCookieStorage);\r\n }\r\n };\r\n /**\r\n * get one item by key from storage\r\n * @param key\r\n * @param enableCookieStorage\r\n */\r\n AuthCache.prototype.getItem = function (key, enableCookieStorage) {\r\n return _super.prototype.getItem.call(this, this.generateCacheKey(key, true), enableCookieStorage);\r\n };\r\n /**\r\n * remove value from storage\r\n * @param key\r\n */\r\n AuthCache.prototype.removeItem = function (key) {\r\n _super.prototype.removeItem.call(this, this.generateCacheKey(key, true));\r\n if (this.rollbackEnabled) {\r\n _super.prototype.removeItem.call(this, this.generateCacheKey(key, false));\r\n }\r\n };\r\n /**\r\n * Reset the cache items\r\n */\r\n AuthCache.prototype.resetCacheItems = function () {\r\n var storage = window[this.cacheLocation];\r\n var key;\r\n for (key in storage) {\r\n // Check if key contains msal prefix; For now, we are clearing all cache items created by MSAL.js\r\n if (storage.hasOwnProperty(key) && (key.indexOf(Constants.cachePrefix) !== -1)) {\r\n _super.prototype.removeItem.call(this, key);\r\n // TODO: Clear cache based on client id (clarify use cases where this is needed)\r\n }\r\n }\r\n };\r\n /**\r\n * Reset all temporary cache items\r\n */\r\n AuthCache.prototype.resetTempCacheItems = function (state) {\r\n var _this = this;\r\n var stateId = state && RequestUtils.parseLibraryState(state).id;\r\n var isTokenRenewalInProgress = this.tokenRenewalInProgress(state);\r\n var storage = window[this.cacheLocation];\r\n var key;\r\n // check state and remove associated cache\r\n if (stateId && !isTokenRenewalInProgress) {\r\n Object.keys(storage).forEach(function (key) {\r\n if (key.indexOf(stateId) !== -1) {\r\n _this.removeItem(key);\r\n _super.prototype.clearItemCookie.call(_this, key);\r\n }\r\n });\r\n }\r\n // delete the interaction status cache\r\n this.removeItem(TemporaryCacheKeys.INTERACTION_STATUS);\r\n this.removeItem(TemporaryCacheKeys.REDIRECT_REQUEST);\r\n };\r\n /**\r\n * Set cookies for IE\r\n * @param cName\r\n * @param cValue\r\n * @param expires\r\n */\r\n AuthCache.prototype.setItemCookie = function (cName, cValue, expires) {\r\n _super.prototype.setItemCookie.call(this, this.generateCacheKey(cName, true), cValue, expires);\r\n if (this.rollbackEnabled) {\r\n _super.prototype.setItemCookie.call(this, this.generateCacheKey(cName, false), cValue, expires);\r\n }\r\n };\r\n AuthCache.prototype.clearItemCookie = function (cName) {\r\n _super.prototype.clearItemCookie.call(this, this.generateCacheKey(cName, true));\r\n if (this.rollbackEnabled) {\r\n _super.prototype.clearItemCookie.call(this, this.generateCacheKey(cName, false));\r\n }\r\n };\r\n /**\r\n * get one item by key from cookies\r\n * @param cName\r\n */\r\n AuthCache.prototype.getItemCookie = function (cName) {\r\n return _super.prototype.getItemCookie.call(this, this.generateCacheKey(cName, true));\r\n };\r\n /**\r\n * Get all access tokens in the cache\r\n * @param clientId\r\n * @param homeAccountIdentifier\r\n */\r\n AuthCache.prototype.getAllAccessTokens = function (clientId, homeAccountIdentifier) {\r\n var _this = this;\r\n var results = Object.keys(window[this.cacheLocation]).reduce(function (tokens, key) {\r\n var keyMatches = key.match(clientId) && key.match(homeAccountIdentifier) && key.match(Constants.scopes);\r\n if (keyMatches) {\r\n var value = _this.getItem(key);\r\n if (value) {\r\n try {\r\n var parseAtKey = JSON.parse(key);\r\n var newAccessTokenCacheItem = new AccessTokenCacheItem(parseAtKey, JSON.parse(value));\r\n return tokens.concat([newAccessTokenCacheItem]);\r\n }\r\n catch (e) {\r\n throw ClientAuthError.createCacheParseError(key);\r\n }\r\n }\r\n }\r\n return tokens;\r\n }, []);\r\n return results;\r\n };\r\n /**\r\n * Return if the token renewal is still in progress\r\n * @param stateValue\r\n */\r\n AuthCache.prototype.tokenRenewalInProgress = function (stateValue) {\r\n var renewStatus = this.getItem(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.RENEW_STATUS, stateValue));\r\n return !!(renewStatus && renewStatus === Constants.inProgress);\r\n };\r\n /**\r\n * Clear all cookies\r\n */\r\n AuthCache.prototype.clearMsalCookie = function (state) {\r\n var _this = this;\r\n /*\r\n * If state is truthy, remove values associated with that request.\r\n * Otherwise, remove all MSAL cookies.\r\n */\r\n if (state) {\r\n this.clearItemCookie(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.NONCE_IDTOKEN, state));\r\n this.clearItemCookie(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.STATE_LOGIN, state));\r\n this.clearItemCookie(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.LOGIN_REQUEST, state));\r\n this.clearItemCookie(AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.STATE_ACQ_TOKEN, state));\r\n }\r\n else {\r\n var cookies = document.cookie.split(\";\");\r\n cookies.forEach(function (cookieString) {\r\n var cookieName = cookieString.trim().split(\"=\")[0];\r\n if (cookieName.indexOf(Constants.cachePrefix) > -1) {\r\n _super.prototype.clearItemCookie.call(_this, cookieName);\r\n }\r\n });\r\n }\r\n };\r\n /**\r\n * Create acquireTokenAccountKey to cache account object\r\n * @param accountId\r\n * @param state\r\n */\r\n AuthCache.generateAcquireTokenAccountKey = function (accountId, state) {\r\n var stateId = RequestUtils.parseLibraryState(state).id;\r\n return \"\" + TemporaryCacheKeys.ACQUIRE_TOKEN_ACCOUNT + Constants.resourceDelimiter + accountId + Constants.resourceDelimiter + stateId;\r\n };\r\n /**\r\n * Create authorityKey to cache authority\r\n * @param state\r\n */\r\n AuthCache.generateAuthorityKey = function (state) {\r\n return AuthCache.generateTemporaryCacheKey(TemporaryCacheKeys.AUTHORITY, state);\r\n };\r\n /**\r\n * Generates the cache key for temporary cache items, using request state\r\n * @param tempCacheKey Cache key prefix\r\n * @param state Request state value\r\n */\r\n AuthCache.generateTemporaryCacheKey = function (tempCacheKey, state) {\r\n // Use the state id (a guid), in the interest of shorter key names, which is important for cookies.\r\n var stateId = RequestUtils.parseLibraryState(state).id;\r\n return \"\" + tempCacheKey + Constants.resourceDelimiter + stateId;\r\n };\r\n return AuthCache;\r\n}(BrowserStorage));\r\nexport { AuthCache };\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport { ClientConfigurationError } from \"../error/ClientConfigurationError\";\r\nimport { AuthError } from \"../error/AuthError\";\r\n/**\r\n * @hidden\r\n */\r\nvar BrowserStorage = /** @class */ (function () {\r\n function BrowserStorage(cacheLocation) {\r\n if (!window) {\r\n throw AuthError.createNoWindowObjectError(\"Browser storage class could not find window object\");\r\n }\r\n var storageSupported = typeof window[cacheLocation] !== \"undefined\" && window[cacheLocation] != null;\r\n if (!storageSupported) {\r\n throw ClientConfigurationError.createStorageNotSupportedError(cacheLocation);\r\n }\r\n this.cacheLocation = cacheLocation;\r\n }\r\n /**\r\n * add value to storage\r\n * @param key\r\n * @param value\r\n * @param enableCookieStorage\r\n */\r\n BrowserStorage.prototype.setItem = function (key, value, enableCookieStorage) {\r\n window[this.cacheLocation].setItem(key, value);\r\n if (enableCookieStorage) {\r\n this.setItemCookie(key, value);\r\n }\r\n };\r\n /**\r\n * get one item by key from storage\r\n * @param key\r\n * @param enableCookieStorage\r\n */\r\n BrowserStorage.prototype.getItem = function (key, enableCookieStorage) {\r\n if (enableCookieStorage && this.getItemCookie(key)) {\r\n return this.getItemCookie(key);\r\n }\r\n return window[this.cacheLocation].getItem(key);\r\n };\r\n /**\r\n * remove value from storage\r\n * @param key\r\n */\r\n BrowserStorage.prototype.removeItem = function (key) {\r\n return window[this.cacheLocation].removeItem(key);\r\n };\r\n /**\r\n * clear storage (remove all items from it)\r\n */\r\n BrowserStorage.prototype.clear = function () {\r\n return window[this.cacheLocation].clear();\r\n };\r\n /**\r\n * add value to cookies\r\n * @param cName\r\n * @param cValue\r\n * @param expires\r\n */\r\n BrowserStorage.prototype.setItemCookie = function (cName, cValue, expires) {\r\n var cookieStr = cName + \"=\" + cValue + \";path=/;\";\r\n if (expires) {\r\n var expireTime = this.getCookieExpirationTime(expires);\r\n cookieStr += \"expires=\" + expireTime + \";\";\r\n }\r\n document.cookie = cookieStr;\r\n };\r\n /**\r\n * get one item by key from cookies\r\n * @param cName\r\n */\r\n BrowserStorage.prototype.getItemCookie = function (cName) {\r\n var name = cName + \"=\";\r\n var ca = document.cookie.split(\";\");\r\n for (var i = 0; i < ca.length; i++) {\r\n var c = ca[i];\r\n while (c.charAt(0) === \" \") {\r\n c = c.substring(1);\r\n }\r\n if (c.indexOf(name) === 0) {\r\n return c.substring(name.length, c.length);\r\n }\r\n }\r\n return \"\";\r\n };\r\n /**\r\n * Clear an item in the cookies by key\r\n * @param cName\r\n */\r\n BrowserStorage.prototype.clearItemCookie = function (cName) {\r\n this.setItemCookie(cName, \"\", -1);\r\n };\r\n /**\r\n * Get cookie expiration time\r\n * @param cookieLifeDays\r\n */\r\n BrowserStorage.prototype.getCookieExpirationTime = function (cookieLifeDays) {\r\n var today = new Date();\r\n var expr = new Date(today.getTime() + cookieLifeDays * 24 * 60 * 60 * 1000);\r\n return expr.toUTCString();\r\n };\r\n return BrowserStorage;\r\n}());\r\nexport { BrowserStorage };\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nexport var AuthErrorMessage = {\r\n unexpectedError: {\r\n code: \"unexpected_error\",\r\n desc: \"Unexpected error in authentication.\"\r\n },\r\n noWindowObjectError: {\r\n code: \"no_window_object\",\r\n desc: \"No window object available. Details:\"\r\n }\r\n};\r\n/**\r\n * General error class thrown by the MSAL.js library.\r\n */\r\nvar AuthError = /** @class */ (function (_super) {\r\n tslib_1.__extends(AuthError, _super);\r\n function AuthError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorMessage) || this;\r\n Object.setPrototypeOf(_this, AuthError.prototype);\r\n _this.errorCode = errorCode;\r\n _this.errorMessage = errorMessage;\r\n _this.name = \"AuthError\";\r\n return _this;\r\n }\r\n AuthError.createUnexpectedError = function (errDesc) {\r\n return new AuthError(AuthErrorMessage.unexpectedError.code, AuthErrorMessage.unexpectedError.desc + \": \" + errDesc);\r\n };\r\n AuthError.createNoWindowObjectError = function (errDesc) {\r\n return new AuthError(AuthErrorMessage.noWindowObjectError.code, AuthErrorMessage.noWindowObjectError.desc + \" \" + errDesc);\r\n };\r\n return AuthError;\r\n}(Error));\r\nexport { AuthError };\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport { AuthError } from \"./AuthError\";\r\nimport { StringUtils } from \"../utils/StringUtils\";\r\nexport var ClientAuthErrorMessage = {\r\n multipleMatchingTokens: {\r\n code: \"multiple_matching_tokens\",\r\n desc: \"The cache contains multiple tokens satisfying the requirements. \" +\r\n \"Call AcquireToken again providing more requirements like authority.\"\r\n },\r\n multipleCacheAuthorities: {\r\n code: \"multiple_authorities\",\r\n desc: \"Multiple authorities found in the cache. Pass authority in the API overload.\"\r\n },\r\n endpointResolutionError: {\r\n code: \"endpoints_resolution_error\",\r\n desc: \"Error: could not resolve endpoints. Please check network and try again.\"\r\n },\r\n popUpWindowError: {\r\n code: \"popup_window_error\",\r\n desc: \"Error opening popup window. This can happen if you are using IE or if popups are blocked in the browser.\"\r\n },\r\n tokenRenewalError: {\r\n code: \"token_renewal_error\",\r\n desc: \"Token renewal operation failed due to timeout.\"\r\n },\r\n invalidIdToken: {\r\n code: \"invalid_id_token\",\r\n desc: \"Invalid ID token format.\"\r\n },\r\n invalidStateError: {\r\n code: \"invalid_state_error\",\r\n desc: \"Invalid state.\"\r\n },\r\n nonceMismatchError: {\r\n code: \"nonce_mismatch_error\",\r\n desc: \"Nonce is not matching, Nonce received: \"\r\n },\r\n loginProgressError: {\r\n code: \"login_progress_error\",\r\n desc: \"Login_In_Progress: Error during login call - login is already in progress.\"\r\n },\r\n acquireTokenProgressError: {\r\n code: \"acquiretoken_progress_error\",\r\n desc: \"AcquireToken_In_Progress: Error during login call - login is already in progress.\"\r\n },\r\n userCancelledError: {\r\n code: \"user_cancelled\",\r\n desc: \"User cancelled the flow.\"\r\n },\r\n callbackError: {\r\n code: \"callback_error\",\r\n desc: \"Error occurred in token received callback function.\"\r\n },\r\n userLoginRequiredError: {\r\n code: \"user_login_error\",\r\n desc: \"User login is required. For silent calls, request must contain either sid or login_hint\"\r\n },\r\n userDoesNotExistError: {\r\n code: \"user_non_existent\",\r\n desc: \"User object does not exist. Please call a login API.\"\r\n },\r\n clientInfoDecodingError: {\r\n code: \"client_info_decoding_error\",\r\n desc: \"The client info could not be parsed/decoded correctly. Please review the trace to determine the root cause.\"\r\n },\r\n clientInfoNotPopulatedError: {\r\n code: \"client_info_not_populated_error\",\r\n desc: \"The service did not populate client_info in the response, Please verify with the service team\"\r\n },\r\n nullOrEmptyIdToken: {\r\n code: \"null_or_empty_id_token\",\r\n desc: \"The idToken is null or empty. Please review the trace to determine the root cause.\"\r\n },\r\n idTokenNotParsed: {\r\n code: \"id_token_parsing_error\",\r\n desc: \"ID token cannot be parsed. Please review stack trace to determine root cause.\"\r\n },\r\n tokenEncodingError: {\r\n code: \"token_encoding_error\",\r\n desc: \"The token to be decoded is not encoded correctly.\"\r\n },\r\n invalidInteractionType: {\r\n code: \"invalid_interaction_type\",\r\n desc: \"The interaction type passed to the handler was incorrect or unknown\"\r\n },\r\n cacheParseError: {\r\n code: \"cannot_parse_cache\",\r\n desc: \"The cached token key is not a valid JSON and cannot be parsed\"\r\n },\r\n blockTokenRequestsInHiddenIframe: {\r\n code: \"block_token_requests\",\r\n desc: \"Token calls are blocked in hidden iframes\"\r\n }\r\n};\r\n/**\r\n * Error thrown when there is an error in the client code running on the browser.\r\n */\r\nvar ClientAuthError = /** @class */ (function (_super) {\r\n tslib_1.__extends(ClientAuthError, _super);\r\n function ClientAuthError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n _this.name = \"ClientAuthError\";\r\n Object.setPrototypeOf(_this, ClientAuthError.prototype);\r\n return _this;\r\n }\r\n ClientAuthError.createEndpointResolutionError = function (errDetail) {\r\n var errorMessage = ClientAuthErrorMessage.endpointResolutionError.desc;\r\n if (errDetail && !StringUtils.isEmpty(errDetail)) {\r\n errorMessage += \" Details: \" + errDetail;\r\n }\r\n return new ClientAuthError(ClientAuthErrorMessage.endpointResolutionError.code, errorMessage);\r\n };\r\n ClientAuthError.createMultipleMatchingTokensInCacheError = function (scope) {\r\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingTokens.code, \"Cache error for scope \" + scope + \": \" + ClientAuthErrorMessage.multipleMatchingTokens.desc + \".\");\r\n };\r\n ClientAuthError.createMultipleAuthoritiesInCacheError = function (scope) {\r\n return new ClientAuthError(ClientAuthErrorMessage.multipleCacheAuthorities.code, \"Cache error for scope \" + scope + \": \" + ClientAuthErrorMessage.multipleCacheAuthorities.desc + \".\");\r\n };\r\n ClientAuthError.createPopupWindowError = function (errDetail) {\r\n var errorMessage = ClientAuthErrorMessage.popUpWindowError.desc;\r\n if (errDetail && !StringUtils.isEmpty(errDetail)) {\r\n errorMessage += \" Details: \" + errDetail;\r\n }\r\n return new ClientAuthError(ClientAuthErrorMessage.popUpWindowError.code, errorMessage);\r\n };\r\n ClientAuthError.createTokenRenewalTimeoutError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.tokenRenewalError.code, ClientAuthErrorMessage.tokenRenewalError.desc);\r\n };\r\n ClientAuthError.createInvalidIdTokenError = function (idToken) {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidIdToken.code, ClientAuthErrorMessage.invalidIdToken.desc + \" Given token: \" + idToken);\r\n };\r\n // TODO: Is this not a security flaw to send the user the state expected??\r\n ClientAuthError.createInvalidStateError = function (invalidState, actualState) {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidStateError.code, ClientAuthErrorMessage.invalidStateError.desc + \" \" + invalidState + \", state expected : \" + actualState + \".\");\r\n };\r\n // TODO: Is this not a security flaw to send the user the Nonce expected??\r\n ClientAuthError.createNonceMismatchError = function (invalidNonce, actualNonce) {\r\n return new ClientAuthError(ClientAuthErrorMessage.nonceMismatchError.code, ClientAuthErrorMessage.nonceMismatchError.desc + \" \" + invalidNonce + \", nonce expected : \" + actualNonce + \".\");\r\n };\r\n ClientAuthError.createLoginInProgressError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.loginProgressError.code, ClientAuthErrorMessage.loginProgressError.desc);\r\n };\r\n ClientAuthError.createAcquireTokenInProgressError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.acquireTokenProgressError.code, ClientAuthErrorMessage.acquireTokenProgressError.desc);\r\n };\r\n ClientAuthError.createUserCancelledError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.userCancelledError.code, ClientAuthErrorMessage.userCancelledError.desc);\r\n };\r\n ClientAuthError.createErrorInCallbackFunction = function (errorDesc) {\r\n return new ClientAuthError(ClientAuthErrorMessage.callbackError.code, ClientAuthErrorMessage.callbackError.desc + \" \" + errorDesc + \".\");\r\n };\r\n ClientAuthError.createUserLoginRequiredError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.userLoginRequiredError.code, ClientAuthErrorMessage.userLoginRequiredError.desc);\r\n };\r\n ClientAuthError.createUserDoesNotExistError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.userDoesNotExistError.code, ClientAuthErrorMessage.userDoesNotExistError.desc);\r\n };\r\n ClientAuthError.createClientInfoDecodingError = function (caughtError) {\r\n return new ClientAuthError(ClientAuthErrorMessage.clientInfoDecodingError.code, ClientAuthErrorMessage.clientInfoDecodingError.desc + \" Failed with error: \" + caughtError);\r\n };\r\n ClientAuthError.createClientInfoNotPopulatedError = function (caughtError) {\r\n return new ClientAuthError(ClientAuthErrorMessage.clientInfoNotPopulatedError.code, ClientAuthErrorMessage.clientInfoNotPopulatedError.desc + \" Failed with error: \" + caughtError);\r\n };\r\n ClientAuthError.createIdTokenNullOrEmptyError = function (invalidRawTokenString) {\r\n return new ClientAuthError(ClientAuthErrorMessage.nullOrEmptyIdToken.code, ClientAuthErrorMessage.nullOrEmptyIdToken.desc + \" Raw ID Token Value: \" + invalidRawTokenString);\r\n };\r\n ClientAuthError.createIdTokenParsingError = function (caughtParsingError) {\r\n return new ClientAuthError(ClientAuthErrorMessage.idTokenNotParsed.code, ClientAuthErrorMessage.idTokenNotParsed.desc + \" Failed with error: \" + caughtParsingError);\r\n };\r\n ClientAuthError.createTokenEncodingError = function (incorrectlyEncodedToken) {\r\n return new ClientAuthError(ClientAuthErrorMessage.tokenEncodingError.code, ClientAuthErrorMessage.tokenEncodingError.desc + \" Attempted to decode: \" + incorrectlyEncodedToken);\r\n };\r\n ClientAuthError.createInvalidInteractionTypeError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidInteractionType.code, ClientAuthErrorMessage.invalidInteractionType.desc);\r\n };\r\n ClientAuthError.createCacheParseError = function (key) {\r\n var errorMessage = \"invalid key: \" + key + \", \" + ClientAuthErrorMessage.cacheParseError.desc;\r\n return new ClientAuthError(ClientAuthErrorMessage.cacheParseError.code, errorMessage);\r\n };\r\n ClientAuthError.createBlockTokenRequestsInHiddenIframeError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.blockTokenRequestsInHiddenIframe.code, ClientAuthErrorMessage.blockTokenRequestsInHiddenIframe.desc);\r\n };\r\n return ClientAuthError;\r\n}(AuthError));\r\nexport { ClientAuthError };\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport { ClientAuthError } from \"./ClientAuthError\";\r\n;\r\nexport var ClientConfigurationErrorMessage = {\r\n configurationNotSet: {\r\n code: \"no_config_set\",\r\n desc: \"Configuration has not been set. Please call the UserAgentApplication constructor with a valid Configuration object.\"\r\n },\r\n storageNotSupported: {\r\n code: \"storage_not_supported\",\r\n desc: \"The value for the cacheLocation is not supported.\"\r\n },\r\n noRedirectCallbacksSet: {\r\n code: \"no_redirect_callbacks\",\r\n desc: \"No redirect callbacks have been set. Please call handleRedirectCallback() with the appropriate function arguments before continuing. \" +\r\n \"More information is available here: https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-basics.\"\r\n },\r\n invalidCallbackObject: {\r\n code: \"invalid_callback_object\",\r\n desc: \"The object passed for the callback was invalid. \" +\r\n \"More information is available here: https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-basics.\"\r\n },\r\n scopesRequired: {\r\n code: \"scopes_required\",\r\n desc: \"Scopes are required to obtain an access token.\"\r\n },\r\n emptyScopes: {\r\n code: \"empty_input_scopes_error\",\r\n desc: \"Scopes cannot be passed as empty array.\"\r\n },\r\n nonArrayScopes: {\r\n code: \"nonarray_input_scopes_error\",\r\n desc: \"Scopes cannot be passed as non-array.\"\r\n },\r\n clientScope: {\r\n code: \"clientid_input_scopes_error\",\r\n desc: \"Client ID can only be provided as a single scope.\"\r\n },\r\n invalidPrompt: {\r\n code: \"invalid_prompt_value\",\r\n desc: \"Supported prompt values are 'login', 'select_account', 'consent' and 'none'\",\r\n },\r\n invalidAuthorityType: {\r\n code: \"invalid_authority_type\",\r\n desc: \"The given authority is not a valid type of authority supported by MSAL. Please see here for valid authorities: .\"\r\n },\r\n authorityUriInsecure: {\r\n code: \"authority_uri_insecure\",\r\n desc: \"Authority URIs must use https.\"\r\n },\r\n authorityUriInvalidPath: {\r\n code: \"authority_uri_invalid_path\",\r\n desc: \"Given authority URI is invalid.\"\r\n },\r\n unsupportedAuthorityValidation: {\r\n code: \"unsupported_authority_validation\",\r\n desc: \"The authority validation is not supported for this authority type.\"\r\n },\r\n untrustedAuthority: {\r\n code: \"untrusted_authority\",\r\n desc: \"The provided authority is not a trusted authority. Please include this authority in the knownAuthorities config parameter or set validateAuthority=false.\"\r\n },\r\n b2cAuthorityUriInvalidPath: {\r\n code: \"b2c_authority_uri_invalid_path\",\r\n desc: \"The given URI for the B2C authority is invalid.\"\r\n },\r\n b2cKnownAuthoritiesNotSet: {\r\n code: \"b2c_known_authorities_not_set\",\r\n desc: \"Must set known authorities when validateAuthority is set to True and using B2C\"\r\n },\r\n claimsRequestParsingError: {\r\n code: \"claims_request_parsing_error\",\r\n desc: \"Could not parse the given claims request object.\"\r\n },\r\n emptyRequestError: {\r\n code: \"empty_request_error\",\r\n desc: \"Request object is required.\"\r\n },\r\n invalidCorrelationIdError: {\r\n code: \"invalid_guid_sent_as_correlationId\",\r\n desc: \"Please set the correlationId as a valid guid\"\r\n },\r\n telemetryConfigError: {\r\n code: \"telemetry_config_error\",\r\n desc: \"Telemetry config is not configured with required values\"\r\n },\r\n ssoSilentError: {\r\n code: \"sso_silent_error\",\r\n desc: \"request must contain either sid or login_hint\"\r\n },\r\n invalidAuthorityMetadataError: {\r\n code: \"authority_metadata_error\",\r\n desc: \"Invalid authorityMetadata. Must be a JSON object containing authorization_endpoint, end_session_endpoint, and issuer fields.\"\r\n }\r\n};\r\n/**\r\n * Error thrown when there is an error in configuration of the .js library.\r\n */\r\nvar ClientConfigurationError = /** @class */ (function (_super) {\r\n tslib_1.__extends(ClientConfigurationError, _super);\r\n function ClientConfigurationError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n _this.name = \"ClientConfigurationError\";\r\n Object.setPrototypeOf(_this, ClientConfigurationError.prototype);\r\n return _this;\r\n }\r\n ClientConfigurationError.createNoSetConfigurationError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.configurationNotSet.code, \"\" + ClientConfigurationErrorMessage.configurationNotSet.desc);\r\n };\r\n ClientConfigurationError.createStorageNotSupportedError = function (givenCacheLocation) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.storageNotSupported.code, ClientConfigurationErrorMessage.storageNotSupported.desc + \" Given location: \" + givenCacheLocation);\r\n };\r\n ClientConfigurationError.createRedirectCallbacksNotSetError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.noRedirectCallbacksSet.code, ClientConfigurationErrorMessage.noRedirectCallbacksSet.desc);\r\n };\r\n ClientConfigurationError.createInvalidCallbackObjectError = function (callbackObject) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidCallbackObject.code, ClientConfigurationErrorMessage.invalidCallbackObject.desc + \" Given value for callback function: \" + callbackObject);\r\n };\r\n ClientConfigurationError.createEmptyScopesArrayError = function (scopesValue) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.emptyScopes.code, ClientConfigurationErrorMessage.emptyScopes.desc + \" Given value: \" + scopesValue + \".\");\r\n };\r\n ClientConfigurationError.createScopesNonArrayError = function (scopesValue) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.nonArrayScopes.code, ClientConfigurationErrorMessage.nonArrayScopes.desc + \" Given value: \" + scopesValue + \".\");\r\n };\r\n ClientConfigurationError.createClientIdSingleScopeError = function (scopesValue) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.clientScope.code, ClientConfigurationErrorMessage.clientScope.desc + \" Given value: \" + scopesValue + \".\");\r\n };\r\n ClientConfigurationError.createScopesRequiredError = function (scopesValue) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.scopesRequired.code, ClientConfigurationErrorMessage.scopesRequired.desc + \" Given value: \" + scopesValue);\r\n };\r\n ClientConfigurationError.createInvalidPromptError = function (promptValue) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidPrompt.code, ClientConfigurationErrorMessage.invalidPrompt.desc + \" Given value: \" + promptValue);\r\n };\r\n ClientConfigurationError.createClaimsRequestParsingError = function (claimsRequestParseError) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.claimsRequestParsingError.code, ClientConfigurationErrorMessage.claimsRequestParsingError.desc + \" Given value: \" + claimsRequestParseError);\r\n };\r\n ClientConfigurationError.createEmptyRequestError = function () {\r\n var _a = ClientConfigurationErrorMessage.emptyRequestError, code = _a.code, desc = _a.desc;\r\n return new ClientConfigurationError(code, desc);\r\n };\r\n ClientConfigurationError.createInvalidCorrelationIdError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidCorrelationIdError.code, ClientConfigurationErrorMessage.invalidCorrelationIdError.desc);\r\n };\r\n ClientConfigurationError.createKnownAuthoritiesNotSetError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.b2cKnownAuthoritiesNotSet.code, ClientConfigurationErrorMessage.b2cKnownAuthoritiesNotSet.desc);\r\n };\r\n ClientConfigurationError.createInvalidAuthorityTypeError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidAuthorityType.code, ClientConfigurationErrorMessage.invalidAuthorityType.desc);\r\n };\r\n ClientConfigurationError.createUntrustedAuthorityError = function (host) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.untrustedAuthority.code, ClientConfigurationErrorMessage.untrustedAuthority.desc + \" Provided Authority: \" + host);\r\n };\r\n ClientConfigurationError.createTelemetryConfigError = function (config) {\r\n var _a = ClientConfigurationErrorMessage.telemetryConfigError, code = _a.code, desc = _a.desc;\r\n var requiredKeys = {\r\n applicationName: \"string\",\r\n applicationVersion: \"string\",\r\n telemetryEmitter: \"function\"\r\n };\r\n var missingKeys = Object.keys(requiredKeys)\r\n .reduce(function (keys, key) {\r\n return config[key] ? keys : keys.concat([key + \" (\" + requiredKeys[key] + \")\"]);\r\n }, []);\r\n return new ClientConfigurationError(code, desc + \" mising values: \" + missingKeys.join(\",\"));\r\n };\r\n ClientConfigurationError.createSsoSilentError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.ssoSilentError.code, ClientConfigurationErrorMessage.ssoSilentError.desc);\r\n };\r\n ClientConfigurationError.createInvalidAuthorityMetadataError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidAuthorityMetadataError.code, ClientConfigurationErrorMessage.invalidAuthorityMetadataError.desc);\r\n };\r\n return ClientConfigurationError;\r\n}(ClientAuthError));\r\nexport { ClientConfigurationError };\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport { ServerError } from \"./ServerError\";\r\nexport var InteractionRequiredAuthErrorMessage = {\r\n interactionRequired: {\r\n code: \"interaction_required\"\r\n },\r\n consentRequired: {\r\n code: \"consent_required\"\r\n },\r\n loginRequired: {\r\n code: \"login_required\"\r\n },\r\n};\r\n/**\r\n * Error thrown when the user is required to perform an interactive token request.\r\n */\r\nvar InteractionRequiredAuthError = /** @class */ (function (_super) {\r\n tslib_1.__extends(InteractionRequiredAuthError, _super);\r\n function InteractionRequiredAuthError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n _this.name = \"InteractionRequiredAuthError\";\r\n Object.setPrototypeOf(_this, InteractionRequiredAuthError.prototype);\r\n return _this;\r\n }\r\n InteractionRequiredAuthError.isInteractionRequiredError = function (errorString) {\r\n var interactionRequiredCodes = [\r\n InteractionRequiredAuthErrorMessage.interactionRequired.code,\r\n InteractionRequiredAuthErrorMessage.consentRequired.code,\r\n InteractionRequiredAuthErrorMessage.loginRequired.code\r\n ];\r\n return errorString && interactionRequiredCodes.indexOf(errorString) > -1;\r\n };\r\n InteractionRequiredAuthError.createLoginRequiredAuthError = function (errorDesc) {\r\n return new InteractionRequiredAuthError(InteractionRequiredAuthErrorMessage.loginRequired.code, errorDesc);\r\n };\r\n InteractionRequiredAuthError.createInteractionRequiredAuthError = function (errorDesc) {\r\n return new InteractionRequiredAuthError(InteractionRequiredAuthErrorMessage.interactionRequired.code, errorDesc);\r\n };\r\n InteractionRequiredAuthError.createConsentRequiredAuthError = function (errorDesc) {\r\n return new InteractionRequiredAuthError(InteractionRequiredAuthErrorMessage.consentRequired.code, errorDesc);\r\n };\r\n return InteractionRequiredAuthError;\r\n}(ServerError));\r\nexport { InteractionRequiredAuthError };\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport { AuthError } from \"./AuthError\";\r\nexport var ServerErrorMessage = {\r\n serverUnavailable: {\r\n code: \"server_unavailable\",\r\n desc: \"Server is temporarily unavailable.\"\r\n },\r\n unknownServerError: {\r\n code: \"unknown_server_error\"\r\n },\r\n};\r\n/**\r\n * Error thrown when there is an error with the server code, for example, unavailability.\r\n */\r\nvar ServerError = /** @class */ (function (_super) {\r\n tslib_1.__extends(ServerError, _super);\r\n function ServerError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n _this.name = \"ServerError\";\r\n Object.setPrototypeOf(_this, ServerError.prototype);\r\n return _this;\r\n }\r\n ServerError.createServerUnavailableError = function () {\r\n return new ServerError(ServerErrorMessage.serverUnavailable.code, ServerErrorMessage.serverUnavailable.desc);\r\n };\r\n ServerError.createUnknownServerError = function (errorDesc) {\r\n return new ServerError(ServerErrorMessage.unknownServerError.code, errorDesc);\r\n };\r\n return ServerError;\r\n}(AuthError));\r\nexport { ServerError };\r\n","var _a;\r\nimport * as tslib_1 from \"tslib\";\r\nimport TelemetryEvent from \"./TelemetryEvent\";\r\nimport { TELEMETRY_BLOB_EVENT_NAMES } from \"./TelemetryConstants\";\r\nimport { scrubTenantFromUri, hashPersonalIdentifier, prependEventNamePrefix } from \"./TelemetryUtils\";\r\nexport var EVENT_KEYS = {\r\n AUTHORITY: prependEventNamePrefix(\"authority\"),\r\n AUTHORITY_TYPE: prependEventNamePrefix(\"authority_type\"),\r\n PROMPT: prependEventNamePrefix(\"ui_behavior\"),\r\n TENANT_ID: prependEventNamePrefix(\"tenant_id\"),\r\n USER_ID: prependEventNamePrefix(\"user_id\"),\r\n WAS_SUCESSFUL: prependEventNamePrefix(\"was_successful\"),\r\n API_ERROR_CODE: prependEventNamePrefix(\"api_error_code\"),\r\n LOGIN_HINT: prependEventNamePrefix(\"login_hint\")\r\n};\r\nexport var API_CODE;\r\n(function (API_CODE) {\r\n API_CODE[API_CODE[\"AcquireTokenRedirect\"] = 2001] = \"AcquireTokenRedirect\";\r\n API_CODE[API_CODE[\"AcquireTokenSilent\"] = 2002] = \"AcquireTokenSilent\";\r\n API_CODE[API_CODE[\"AcquireTokenPopup\"] = 2003] = \"AcquireTokenPopup\";\r\n API_CODE[API_CODE[\"LoginRedirect\"] = 2004] = \"LoginRedirect\";\r\n API_CODE[API_CODE[\"LoginPopup\"] = 2005] = \"LoginPopup\";\r\n API_CODE[API_CODE[\"Logout\"] = 2006] = \"Logout\";\r\n})(API_CODE || (API_CODE = {}));\r\nexport var API_EVENT_IDENTIFIER;\r\n(function (API_EVENT_IDENTIFIER) {\r\n API_EVENT_IDENTIFIER[\"AcquireTokenRedirect\"] = \"AcquireTokenRedirect\";\r\n API_EVENT_IDENTIFIER[\"AcquireTokenSilent\"] = \"AcquireTokenSilent\";\r\n API_EVENT_IDENTIFIER[\"AcquireTokenPopup\"] = \"AcquireTokenPopup\";\r\n API_EVENT_IDENTIFIER[\"LoginRedirect\"] = \"LoginRedirect\";\r\n API_EVENT_IDENTIFIER[\"LoginPopup\"] = \"LoginPopup\";\r\n API_EVENT_IDENTIFIER[\"Logout\"] = \"Logout\";\r\n})(API_EVENT_IDENTIFIER || (API_EVENT_IDENTIFIER = {}));\r\nvar mapEventIdentiferToCode = (_a = {},\r\n _a[API_EVENT_IDENTIFIER.AcquireTokenSilent] = API_CODE.AcquireTokenSilent,\r\n _a[API_EVENT_IDENTIFIER.AcquireTokenPopup] = API_CODE.AcquireTokenPopup,\r\n _a[API_EVENT_IDENTIFIER.AcquireTokenRedirect] = API_CODE.AcquireTokenRedirect,\r\n _a[API_EVENT_IDENTIFIER.LoginPopup] = API_CODE.LoginPopup,\r\n _a[API_EVENT_IDENTIFIER.LoginRedirect] = API_CODE.LoginRedirect,\r\n _a[API_EVENT_IDENTIFIER.Logout] = API_CODE.Logout,\r\n _a);\r\nvar ApiEvent = /** @class */ (function (_super) {\r\n tslib_1.__extends(ApiEvent, _super);\r\n function ApiEvent(correlationId, piiEnabled, apiEventIdentifier) {\r\n var _this = _super.call(this, prependEventNamePrefix(\"api_event\"), correlationId, apiEventIdentifier) || this;\r\n if (apiEventIdentifier) {\r\n _this.apiCode = mapEventIdentiferToCode[apiEventIdentifier];\r\n _this.apiEventIdentifier = apiEventIdentifier;\r\n }\r\n _this.piiEnabled = piiEnabled;\r\n return _this;\r\n }\r\n Object.defineProperty(ApiEvent.prototype, \"apiEventIdentifier\", {\r\n set: function (apiEventIdentifier) {\r\n this.event[TELEMETRY_BLOB_EVENT_NAMES.ApiTelemIdConstStrKey] = apiEventIdentifier;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ApiEvent.prototype, \"apiCode\", {\r\n set: function (apiCode) {\r\n this.event[TELEMETRY_BLOB_EVENT_NAMES.ApiIdConstStrKey] = apiCode;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ApiEvent.prototype, \"authority\", {\r\n set: function (uri) {\r\n this.event[EVENT_KEYS.AUTHORITY] = scrubTenantFromUri(uri).toLowerCase();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ApiEvent.prototype, \"apiErrorCode\", {\r\n set: function (errorCode) {\r\n this.event[EVENT_KEYS.API_ERROR_CODE] = errorCode;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ApiEvent.prototype, \"tenantId\", {\r\n set: function (tenantId) {\r\n this.event[EVENT_KEYS.TENANT_ID] = this.piiEnabled && tenantId ?\r\n hashPersonalIdentifier(tenantId)\r\n : null;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ApiEvent.prototype, \"accountId\", {\r\n set: function (accountId) {\r\n this.event[EVENT_KEYS.USER_ID] = this.piiEnabled && accountId ?\r\n hashPersonalIdentifier(accountId)\r\n : null;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ApiEvent.prototype, \"wasSuccessful\", {\r\n get: function () {\r\n return this.event[EVENT_KEYS.WAS_SUCESSFUL] === true;\r\n },\r\n set: function (wasSuccessful) {\r\n this.event[EVENT_KEYS.WAS_SUCESSFUL] = wasSuccessful;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ApiEvent.prototype, \"loginHint\", {\r\n set: function (loginHint) {\r\n this.event[EVENT_KEYS.LOGIN_HINT] = this.piiEnabled && loginHint ?\r\n hashPersonalIdentifier(loginHint)\r\n : null;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ApiEvent.prototype, \"authorityType\", {\r\n set: function (authorityType) {\r\n this.event[EVENT_KEYS.AUTHORITY_TYPE] = authorityType.toLowerCase();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ApiEvent.prototype, \"promptType\", {\r\n set: function (promptType) {\r\n this.event[EVENT_KEYS.PROMPT] = promptType.toLowerCase();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return ApiEvent;\r\n}(TelemetryEvent));\r\nexport default ApiEvent;\r\n","import * as tslib_1 from \"tslib\";\r\nimport { TELEMETRY_BLOB_EVENT_NAMES } from \"./TelemetryConstants\";\r\nimport TelemetryEvent from \"./TelemetryEvent\";\r\nimport { prependEventNamePrefix } from \"./TelemetryUtils\";\r\nvar DefaultEvent = /** @class */ (function (_super) {\r\n tslib_1.__extends(DefaultEvent, _super);\r\n // TODO Platform Type\r\n function DefaultEvent(platform, correlationId, clientId, eventCount) {\r\n var _this = _super.call(this, prependEventNamePrefix(\"default_event\"), correlationId, \"DefaultEvent\") || this;\r\n _this.event[prependEventNamePrefix(\"client_id\")] = clientId;\r\n _this.event[prependEventNamePrefix(\"sdk_plaform\")] = platform.sdk;\r\n _this.event[prependEventNamePrefix(\"sdk_version\")] = platform.sdkVersion;\r\n _this.event[prependEventNamePrefix(\"application_name\")] = platform.applicationName;\r\n _this.event[prependEventNamePrefix(\"application_version\")] = platform.applicationVersion;\r\n _this.event[prependEventNamePrefix(\"effective_connection_speed\")] = platform.networkInformation && platform.networkInformation.connectionSpeed;\r\n _this.event[\"\" + TELEMETRY_BLOB_EVENT_NAMES.UiEventCountTelemetryBatchKey] = _this.getEventCount(prependEventNamePrefix(\"ui_event\"), eventCount);\r\n _this.event[\"\" + TELEMETRY_BLOB_EVENT_NAMES.HttpEventCountTelemetryBatchKey] = _this.getEventCount(prependEventNamePrefix(\"http_event\"), eventCount);\r\n _this.event[\"\" + TELEMETRY_BLOB_EVENT_NAMES.CacheEventCountConstStrKey] = _this.getEventCount(prependEventNamePrefix(\"cache_event\"), eventCount);\r\n return _this;\r\n // / Device id?\r\n }\r\n DefaultEvent.prototype.getEventCount = function (eventName, eventCount) {\r\n if (!eventCount[eventName]) {\r\n return 0;\r\n }\r\n return eventCount[eventName];\r\n };\r\n return DefaultEvent;\r\n}(TelemetryEvent));\r\nexport default DefaultEvent;\r\n","import * as tslib_1 from \"tslib\";\r\nimport TelemetryEvent from \"./TelemetryEvent\";\r\nimport { scrubTenantFromUri, prependEventNamePrefix } from \"./TelemetryUtils\";\r\nimport { ServerRequestParameters } from \"../ServerRequestParameters\";\r\nexport var EVENT_KEYS = {\r\n HTTP_PATH: prependEventNamePrefix(\"http_path\"),\r\n USER_AGENT: prependEventNamePrefix(\"user_agent\"),\r\n QUERY_PARAMETERS: prependEventNamePrefix(\"query_parameters\"),\r\n API_VERSION: prependEventNamePrefix(\"api_version\"),\r\n RESPONSE_CODE: prependEventNamePrefix(\"response_code\"),\r\n O_AUTH_ERROR_CODE: prependEventNamePrefix(\"oauth_error_code\"),\r\n HTTP_METHOD: prependEventNamePrefix(\"http_method\"),\r\n REQUEST_ID_HEADER: prependEventNamePrefix(\"request_id_header\"),\r\n SPE_INFO: prependEventNamePrefix(\"spe_info\"),\r\n SERVER_ERROR_CODE: prependEventNamePrefix(\"server_error_code\"),\r\n SERVER_SUB_ERROR_CODE: prependEventNamePrefix(\"server_sub_error_code\"),\r\n URL: prependEventNamePrefix(\"url\")\r\n};\r\nvar HttpEvent = /** @class */ (function (_super) {\r\n tslib_1.__extends(HttpEvent, _super);\r\n function HttpEvent(correlationId, eventLabel) {\r\n return _super.call(this, prependEventNamePrefix(\"http_event\"), correlationId, eventLabel) || this;\r\n }\r\n Object.defineProperty(HttpEvent.prototype, \"url\", {\r\n set: function (url) {\r\n var scrubbedUri = scrubTenantFromUri(url);\r\n this.event[EVENT_KEYS.URL] = scrubbedUri && scrubbedUri.toLowerCase();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HttpEvent.prototype, \"httpPath\", {\r\n set: function (httpPath) {\r\n this.event[EVENT_KEYS.HTTP_PATH] = scrubTenantFromUri(httpPath).toLowerCase();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HttpEvent.prototype, \"userAgent\", {\r\n set: function (userAgent) {\r\n this.event[EVENT_KEYS.USER_AGENT] = userAgent;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HttpEvent.prototype, \"queryParams\", {\r\n set: function (queryParams) {\r\n this.event[EVENT_KEYS.QUERY_PARAMETERS] = ServerRequestParameters.generateQueryParametersString(queryParams);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HttpEvent.prototype, \"apiVersion\", {\r\n set: function (apiVersion) {\r\n this.event[EVENT_KEYS.API_VERSION] = apiVersion.toLowerCase();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HttpEvent.prototype, \"httpResponseStatus\", {\r\n set: function (statusCode) {\r\n this.event[EVENT_KEYS.RESPONSE_CODE] = statusCode;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HttpEvent.prototype, \"oAuthErrorCode\", {\r\n set: function (errorCode) {\r\n this.event[EVENT_KEYS.O_AUTH_ERROR_CODE] = errorCode;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HttpEvent.prototype, \"httpMethod\", {\r\n set: function (httpMethod) {\r\n this.event[EVENT_KEYS.HTTP_METHOD] = httpMethod;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HttpEvent.prototype, \"requestIdHeader\", {\r\n set: function (requestIdHeader) {\r\n this.event[EVENT_KEYS.REQUEST_ID_HEADER] = requestIdHeader;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HttpEvent.prototype, \"speInfo\", {\r\n /**\r\n * Indicates whether the request was executed on a ring serving SPE traffic.\r\n * An empty string indicates this occurred on an outer ring, and the string \"I\"\r\n * indicates the request occurred on the inner ring\r\n */\r\n set: function (speInfo) {\r\n this.event[EVENT_KEYS.SPE_INFO] = speInfo;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HttpEvent.prototype, \"serverErrorCode\", {\r\n set: function (errorCode) {\r\n this.event[EVENT_KEYS.SERVER_ERROR_CODE] = errorCode;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(HttpEvent.prototype, \"serverSubErrorCode\", {\r\n set: function (subErrorCode) {\r\n this.event[EVENT_KEYS.SERVER_SUB_ERROR_CODE] = subErrorCode;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return HttpEvent;\r\n}(TelemetryEvent));\r\nexport default HttpEvent;\r\n","export var EVENT_NAME_PREFIX = \"msal.\";\r\nexport var EVENT_NAME_KEY = \"event_name\";\r\nexport var START_TIME_KEY = \"start_time\";\r\nexport var ELAPSED_TIME_KEY = \"elapsed_time\";\r\nexport var TELEMETRY_BLOB_EVENT_NAMES = {\r\n MsalCorrelationIdConstStrKey: \"Microsoft.MSAL.correlation_id\",\r\n ApiTelemIdConstStrKey: \"msal.api_telem_id\",\r\n ApiIdConstStrKey: \"msal.api_id\",\r\n BrokerAppConstStrKey: \"Microsoft_MSAL_broker_app\",\r\n CacheEventCountConstStrKey: \"Microsoft_MSAL_cache_event_count\",\r\n HttpEventCountTelemetryBatchKey: \"Microsoft_MSAL_http_event_count\",\r\n IdpConstStrKey: \"Microsoft_MSAL_idp\",\r\n IsSilentTelemetryBatchKey: \"\",\r\n IsSuccessfulConstStrKey: \"Microsoft_MSAL_is_successful\",\r\n ResponseTimeConstStrKey: \"Microsoft_MSAL_response_time\",\r\n TenantIdConstStrKey: \"Microsoft_MSAL_tenant_id\",\r\n UiEventCountTelemetryBatchKey: \"Microsoft_MSAL_ui_event_count\"\r\n};\r\n// This is used to replace the real tenant in telemetry info\r\nexport var TENANT_PLACEHOLDER = \"\";\r\n","import * as tslib_1 from \"tslib\";\r\nimport { TELEMETRY_BLOB_EVENT_NAMES } from \"./TelemetryConstants\";\r\nimport { EVENT_NAME_KEY, START_TIME_KEY, ELAPSED_TIME_KEY } from \"./TelemetryConstants\";\r\nimport { prependEventNamePrefix, startBrowserPerformanceMeasurement, endBrowserPerformanceMeasurement } from \"./TelemetryUtils\";\r\nimport { CryptoUtils } from \"../utils/CryptoUtils\";\r\nvar TelemetryEvent = /** @class */ (function () {\r\n function TelemetryEvent(eventName, correlationId, eventLabel) {\r\n var _a;\r\n this.eventId = CryptoUtils.createNewGuid();\r\n this.label = eventLabel;\r\n this.event = (_a = {},\r\n _a[prependEventNamePrefix(EVENT_NAME_KEY)] = eventName,\r\n _a[prependEventNamePrefix(ELAPSED_TIME_KEY)] = -1,\r\n _a[\"\" + TELEMETRY_BLOB_EVENT_NAMES.MsalCorrelationIdConstStrKey] = correlationId,\r\n _a);\r\n }\r\n TelemetryEvent.prototype.setElapsedTime = function (time) {\r\n this.event[prependEventNamePrefix(ELAPSED_TIME_KEY)] = time;\r\n };\r\n TelemetryEvent.prototype.stop = function () {\r\n // Set duration of event\r\n this.setElapsedTime(+Date.now() - +this.startTimestamp);\r\n endBrowserPerformanceMeasurement(this.displayName, this.perfStartMark, this.perfEndMark);\r\n };\r\n TelemetryEvent.prototype.start = function () {\r\n this.startTimestamp = Date.now();\r\n this.event[prependEventNamePrefix(START_TIME_KEY)] = this.startTimestamp;\r\n startBrowserPerformanceMeasurement(this.perfStartMark);\r\n };\r\n Object.defineProperty(TelemetryEvent.prototype, \"telemetryCorrelationId\", {\r\n get: function () {\r\n return this.event[\"\" + TELEMETRY_BLOB_EVENT_NAMES.MsalCorrelationIdConstStrKey];\r\n },\r\n set: function (value) {\r\n this.event[\"\" + TELEMETRY_BLOB_EVENT_NAMES.MsalCorrelationIdConstStrKey] = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TelemetryEvent.prototype, \"eventName\", {\r\n get: function () {\r\n return this.event[prependEventNamePrefix(EVENT_NAME_KEY)];\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n TelemetryEvent.prototype.get = function () {\r\n return tslib_1.__assign({}, this.event, { eventId: this.eventId });\r\n };\r\n Object.defineProperty(TelemetryEvent.prototype, \"key\", {\r\n get: function () {\r\n return this.telemetryCorrelationId + \"_\" + this.eventId + \"-\" + this.eventName;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ;\r\n Object.defineProperty(TelemetryEvent.prototype, \"displayName\", {\r\n get: function () {\r\n return \"Msal-\" + this.label + \"-\" + this.telemetryCorrelationId;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TelemetryEvent.prototype, \"perfStartMark\", {\r\n get: function () {\r\n return \"start-\" + this.key;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TelemetryEvent.prototype, \"perfEndMark\", {\r\n get: function () {\r\n return \"end-\" + this.key;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return TelemetryEvent;\r\n}());\r\nexport default TelemetryEvent;\r\n","import * as tslib_1 from \"tslib\";\r\nimport DefaultEvent from \"./DefaultEvent\";\r\nimport { libraryVersion, Constants } from \"../utils/Constants\";\r\nimport ApiEvent from \"./ApiEvent\";\r\nimport HttpEvent from \"./HttpEvent\";\r\n// for use in cache events\r\nvar MSAL_CACHE_EVENT_VALUE_PREFIX = \"msal.token\";\r\nvar MSAL_CACHE_EVENT_NAME = \"msal.cache_event\";\r\nvar TelemetryManager = /** @class */ (function () {\r\n function TelemetryManager(config, telemetryEmitter, logger) {\r\n // correlation Id to list of events\r\n this.completedEvents = {};\r\n // event key to event\r\n this.inProgressEvents = {};\r\n // correlation id to map of eventname to count\r\n this.eventCountByCorrelationId = {};\r\n // Implement after API EVENT\r\n this.onlySendFailureTelemetry = false;\r\n // TODO THROW if bad options\r\n this.telemetryPlatform = tslib_1.__assign({ sdk: Constants.libraryName, sdkVersion: libraryVersion(), networkInformation: {\r\n // @ts-ignore\r\n connectionSpeed: typeof navigator !== \"undefined\" && navigator.connection && navigator.connection.effectiveType\r\n } }, config.platform);\r\n this.clientId = config.clientId;\r\n this.onlySendFailureTelemetry = config.onlySendFailureTelemetry;\r\n /*\r\n * TODO, when i get to wiring this through, think about what it means if\r\n * a developer does not implement telem at all, we still instrument, but telemetryEmitter can be\r\n * optional?\r\n */\r\n this.telemetryEmitter = telemetryEmitter;\r\n this.logger = logger;\r\n }\r\n TelemetryManager.getTelemetrymanagerStub = function (clientId, logger) {\r\n var applicationName = \"UnSetStub\";\r\n var applicationVersion = \"0.0\";\r\n var telemetryEmitter = function () { };\r\n var telemetryPlatform = {\r\n applicationName: applicationName,\r\n applicationVersion: applicationVersion\r\n };\r\n var telemetryManagerConfig = {\r\n platform: telemetryPlatform,\r\n clientId: clientId\r\n };\r\n return new this(telemetryManagerConfig, telemetryEmitter, logger);\r\n };\r\n TelemetryManager.prototype.startEvent = function (event) {\r\n this.logger.verbose(\"Telemetry Event started: \" + event.key);\r\n if (!this.telemetryEmitter) {\r\n return;\r\n }\r\n event.start();\r\n this.inProgressEvents[event.key] = event;\r\n };\r\n TelemetryManager.prototype.stopEvent = function (event) {\r\n this.logger.verbose(\"Telemetry Event stopped: \" + event.key);\r\n if (!this.telemetryEmitter || !this.inProgressEvents[event.key]) {\r\n return;\r\n }\r\n event.stop();\r\n this.incrementEventCount(event);\r\n var completedEvents = this.completedEvents[event.telemetryCorrelationId];\r\n this.completedEvents[event.telemetryCorrelationId] = (completedEvents || []).concat([event]);\r\n delete this.inProgressEvents[event.key];\r\n };\r\n TelemetryManager.prototype.flush = function (correlationId) {\r\n var _this = this;\r\n this.logger.verbose(\"Flushing telemetry events: \" + correlationId);\r\n // If there is only unfinished events should this still return them?\r\n if (!this.telemetryEmitter || !this.completedEvents[correlationId]) {\r\n return;\r\n }\r\n var orphanedEvents = this.getOrphanedEvents(correlationId);\r\n orphanedEvents.forEach(function (event) { return _this.incrementEventCount(event); });\r\n var eventsToFlush = this.completedEvents[correlationId].concat(orphanedEvents);\r\n delete this.completedEvents[correlationId];\r\n var eventCountsToFlush = this.eventCountByCorrelationId[correlationId];\r\n delete this.eventCountByCorrelationId[correlationId];\r\n // TODO add funcitonality for onlyFlushFailures after implementing api event? ??\r\n if (!eventsToFlush || !eventsToFlush.length) {\r\n return;\r\n }\r\n var defaultEvent = new DefaultEvent(this.telemetryPlatform, correlationId, this.clientId, eventCountsToFlush);\r\n var eventsWithDefaultEvent = eventsToFlush.concat([defaultEvent]);\r\n this.telemetryEmitter(eventsWithDefaultEvent.map(function (e) { return e.get(); }));\r\n };\r\n TelemetryManager.prototype.createAndStartApiEvent = function (correlationId, apiEventIdentifier) {\r\n var apiEvent = new ApiEvent(correlationId, this.logger.isPiiLoggingEnabled(), apiEventIdentifier);\r\n this.startEvent(apiEvent);\r\n return apiEvent;\r\n };\r\n TelemetryManager.prototype.stopAndFlushApiEvent = function (correlationId, apiEvent, wasSuccessful, errorCode) {\r\n apiEvent.wasSuccessful = wasSuccessful;\r\n if (errorCode) {\r\n apiEvent.apiErrorCode = errorCode;\r\n }\r\n this.stopEvent(apiEvent);\r\n this.flush(correlationId);\r\n };\r\n TelemetryManager.prototype.createAndStartHttpEvent = function (correlation, httpMethod, url, eventLabel) {\r\n var httpEvent = new HttpEvent(correlation, eventLabel);\r\n httpEvent.url = url;\r\n httpEvent.httpMethod = httpMethod;\r\n this.startEvent(httpEvent);\r\n return httpEvent;\r\n };\r\n TelemetryManager.prototype.incrementEventCount = function (event) {\r\n var _a;\r\n /*\r\n * TODO, name cache event different?\r\n * if type is cache event, change name\r\n */\r\n var eventName = event.eventName;\r\n var eventCount = this.eventCountByCorrelationId[event.telemetryCorrelationId];\r\n if (!eventCount) {\r\n this.eventCountByCorrelationId[event.telemetryCorrelationId] = (_a = {},\r\n _a[eventName] = 1,\r\n _a);\r\n }\r\n else {\r\n eventCount[eventName] = eventCount[eventName] ? eventCount[eventName] + 1 : 1;\r\n }\r\n };\r\n TelemetryManager.prototype.getOrphanedEvents = function (correlationId) {\r\n var _this = this;\r\n return Object.keys(this.inProgressEvents)\r\n .reduce(function (memo, eventKey) {\r\n if (eventKey.indexOf(correlationId) !== -1) {\r\n var event_1 = _this.inProgressEvents[eventKey];\r\n delete _this.inProgressEvents[eventKey];\r\n return memo.concat([event_1]);\r\n }\r\n return memo;\r\n }, []);\r\n };\r\n return TelemetryManager;\r\n}());\r\nexport default TelemetryManager;\r\n","import { TENANT_PLACEHOLDER, EVENT_NAME_PREFIX } from \"./TelemetryConstants\";\r\nimport { CryptoUtils } from \"../utils/CryptoUtils\";\r\nimport { UrlUtils } from \"../utils/UrlUtils\";\r\nimport { AuthorityFactory } from \"../authority/AuthorityFactory\";\r\nexport var scrubTenantFromUri = function (uri) {\r\n var url = UrlUtils.GetUrlComponents(uri);\r\n // validate trusted host\r\n if (AuthorityFactory.isAdfs(uri)) {\r\n /**\r\n * returning what was passed because the library needs to work with uris that are non\r\n * AAD trusted but passed by users such as B2C or others.\r\n * HTTP Events for instance can take a url to the open id config endpoint\r\n */\r\n return uri;\r\n }\r\n var pathParams = url.PathSegments;\r\n if (pathParams && pathParams.length >= 2) {\r\n var tenantPosition = pathParams[1] === \"tfp\" ? 2 : 1;\r\n if (tenantPosition < pathParams.length) {\r\n pathParams[tenantPosition] = TENANT_PLACEHOLDER;\r\n }\r\n }\r\n return url.Protocol + \"//\" + url.HostNameAndPort + \"/\" + pathParams.join(\"/\");\r\n};\r\nexport var hashPersonalIdentifier = function (valueToHash) {\r\n /*\r\n * TODO sha256 this\r\n * Current test runner is being funny with node libs that are webpacked anyway\r\n * need a different solution\r\n */\r\n return CryptoUtils.base64Encode(valueToHash);\r\n};\r\nexport var prependEventNamePrefix = function (suffix) { return \"\" + EVENT_NAME_PREFIX + (suffix || \"\"); };\r\nexport var supportsBrowserPerformance = function () { return !!(typeof window !== \"undefined\" &&\r\n \"performance\" in window &&\r\n window.performance.mark &&\r\n window.performance.measure); };\r\nexport var endBrowserPerformanceMeasurement = function (measureName, startMark, endMark) {\r\n if (supportsBrowserPerformance()) {\r\n window.performance.mark(endMark);\r\n window.performance.measure(measureName, startMark, endMark);\r\n window.performance.clearMeasures(measureName);\r\n window.performance.clearMarks(startMark);\r\n window.performance.clearMarks(endMark);\r\n }\r\n};\r\nexport var startBrowserPerformanceMeasurement = function (startMark) {\r\n if (supportsBrowserPerformance()) {\r\n window.performance.mark(startMark);\r\n }\r\n};\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * @hidden\r\n * Constants\r\n */\r\nvar Constants = /** @class */ (function () {\r\n function Constants() {\r\n }\r\n Object.defineProperty(Constants, \"libraryName\", {\r\n get: function () { return \"Msal.js\"; } // used in telemetry sdkName\r\n ,\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"claims\", {\r\n get: function () { return \"claims\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"clientId\", {\r\n get: function () { return \"clientId\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"adalIdToken\", {\r\n get: function () { return \"adal.idtoken\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"cachePrefix\", {\r\n get: function () { return \"msal\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"scopes\", {\r\n get: function () { return \"scopes\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"no_account\", {\r\n get: function () { return \"NO_ACCOUNT\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"upn\", {\r\n get: function () { return \"upn\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"domain_hint\", {\r\n get: function () { return \"domain_hint\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"prompt_select_account\", {\r\n get: function () { return \"&prompt=select_account\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"prompt_none\", {\r\n get: function () { return \"&prompt=none\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"prompt\", {\r\n get: function () { return \"prompt\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"response_mode_fragment\", {\r\n get: function () { return \"&response_mode=fragment\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"resourceDelimiter\", {\r\n get: function () { return \"|\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"cacheDelimiter\", {\r\n get: function () { return \".\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"popUpWidth\", {\r\n get: function () { return this._popUpWidth; },\r\n set: function (width) {\r\n this._popUpWidth = width;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"popUpHeight\", {\r\n get: function () { return this._popUpHeight; },\r\n set: function (height) {\r\n this._popUpHeight = height;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"login\", {\r\n get: function () { return \"LOGIN\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"renewToken\", {\r\n get: function () { return \"RENEW_TOKEN\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"unknown\", {\r\n get: function () { return \"UNKNOWN\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"ADFS\", {\r\n get: function () { return \"adfs\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ;\r\n Object.defineProperty(Constants, \"homeAccountIdentifier\", {\r\n get: function () { return \"homeAccountIdentifier\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"common\", {\r\n get: function () { return \"common\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"openidScope\", {\r\n get: function () { return \"openid\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"profileScope\", {\r\n get: function () { return \"profile\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"interactionTypeRedirect\", {\r\n get: function () { return \"redirectInteraction\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"interactionTypePopup\", {\r\n get: function () { return \"popupInteraction\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"interactionTypeSilent\", {\r\n get: function () { return \"silentInteraction\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Constants, \"inProgress\", {\r\n get: function () { return \"inProgress\"; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Constants._popUpWidth = 483;\r\n Constants._popUpHeight = 600;\r\n return Constants;\r\n}());\r\nexport { Constants };\r\n/**\r\n * Keys in the hashParams\r\n */\r\nexport var ServerHashParamKeys;\r\n(function (ServerHashParamKeys) {\r\n ServerHashParamKeys[\"SCOPE\"] = \"scope\";\r\n ServerHashParamKeys[\"STATE\"] = \"state\";\r\n ServerHashParamKeys[\"ERROR\"] = \"error\";\r\n ServerHashParamKeys[\"ERROR_DESCRIPTION\"] = \"error_description\";\r\n ServerHashParamKeys[\"ACCESS_TOKEN\"] = \"access_token\";\r\n ServerHashParamKeys[\"ID_TOKEN\"] = \"id_token\";\r\n ServerHashParamKeys[\"EXPIRES_IN\"] = \"expires_in\";\r\n ServerHashParamKeys[\"SESSION_STATE\"] = \"session_state\";\r\n ServerHashParamKeys[\"CLIENT_INFO\"] = \"client_info\";\r\n})(ServerHashParamKeys || (ServerHashParamKeys = {}));\r\n;\r\n/**\r\n * @hidden\r\n * CacheKeys for MSAL\r\n */\r\nexport var TemporaryCacheKeys;\r\n(function (TemporaryCacheKeys) {\r\n TemporaryCacheKeys[\"AUTHORITY\"] = \"authority\";\r\n TemporaryCacheKeys[\"ACQUIRE_TOKEN_ACCOUNT\"] = \"acquireTokenAccount\";\r\n TemporaryCacheKeys[\"SESSION_STATE\"] = \"session.state\";\r\n TemporaryCacheKeys[\"STATE_LOGIN\"] = \"state.login\";\r\n TemporaryCacheKeys[\"STATE_ACQ_TOKEN\"] = \"state.acquireToken\";\r\n TemporaryCacheKeys[\"STATE_RENEW\"] = \"state.renew\";\r\n TemporaryCacheKeys[\"NONCE_IDTOKEN\"] = \"nonce.idtoken\";\r\n TemporaryCacheKeys[\"LOGIN_REQUEST\"] = \"login.request\";\r\n TemporaryCacheKeys[\"RENEW_STATUS\"] = \"token.renew.status\";\r\n TemporaryCacheKeys[\"URL_HASH\"] = \"urlHash\";\r\n TemporaryCacheKeys[\"INTERACTION_STATUS\"] = \"interaction_status\";\r\n TemporaryCacheKeys[\"REDIRECT_REQUEST\"] = \"redirect_request\";\r\n})(TemporaryCacheKeys || (TemporaryCacheKeys = {}));\r\nexport var PersistentCacheKeys;\r\n(function (PersistentCacheKeys) {\r\n PersistentCacheKeys[\"IDTOKEN\"] = \"idtoken\";\r\n PersistentCacheKeys[\"CLIENT_INFO\"] = \"client.info\";\r\n})(PersistentCacheKeys || (PersistentCacheKeys = {}));\r\nexport var ErrorCacheKeys;\r\n(function (ErrorCacheKeys) {\r\n ErrorCacheKeys[\"LOGIN_ERROR\"] = \"login.error\";\r\n ErrorCacheKeys[\"ERROR\"] = \"error\";\r\n ErrorCacheKeys[\"ERROR_DESC\"] = \"error.description\";\r\n})(ErrorCacheKeys || (ErrorCacheKeys = {}));\r\nexport var DEFAULT_AUTHORITY = \"https://login.microsoftonline.com/common/\";\r\nexport var AAD_INSTANCE_DISCOVERY_ENDPOINT = DEFAULT_AUTHORITY + \"/discovery/instance?api-version=1.1&authorization_endpoint=\";\r\n/**\r\n * @hidden\r\n * SSO Types - generated to populate hints\r\n */\r\nexport var SSOTypes;\r\n(function (SSOTypes) {\r\n SSOTypes[\"ACCOUNT\"] = \"account\";\r\n SSOTypes[\"SID\"] = \"sid\";\r\n SSOTypes[\"LOGIN_HINT\"] = \"login_hint\";\r\n SSOTypes[\"ORGANIZATIONS\"] = \"organizations\";\r\n SSOTypes[\"ID_TOKEN\"] = \"id_token\";\r\n SSOTypes[\"ACCOUNT_ID\"] = \"accountIdentifier\";\r\n SSOTypes[\"HOMEACCOUNT_ID\"] = \"homeAccountIdentifier\";\r\n})(SSOTypes || (SSOTypes = {}));\r\n;\r\n/**\r\n * @hidden\r\n */\r\nexport var BlacklistedEQParams = [\r\n SSOTypes.SID,\r\n SSOTypes.LOGIN_HINT\r\n];\r\nexport var NetworkRequestType = {\r\n GET: \"GET\",\r\n POST: \"POST\"\r\n};\r\n/**\r\n * we considered making this \"enum\" in the request instead of string, however it looks like the allowed list of\r\n * prompt values kept changing over past couple of years. There are some undocumented prompt values for some\r\n * internal partners too, hence the choice of generic \"string\" type instead of the \"enum\"\r\n * @hidden\r\n */\r\nexport var PromptState = {\r\n LOGIN: \"login\",\r\n SELECT_ACCOUNT: \"select_account\",\r\n CONSENT: \"consent\",\r\n NONE: \"none\"\r\n};\r\n/**\r\n * Frame name prefixes for the hidden iframe created in silent frames\r\n */\r\nexport var FramePrefix = {\r\n ID_TOKEN_FRAME: \"msalIdTokenFrame\",\r\n TOKEN_FRAME: \"msalRenewFrame\"\r\n};\r\n/**\r\n * MSAL JS Library Version\r\n */\r\nexport function libraryVersion() {\r\n return \"1.3.4\";\r\n}\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * @hidden\r\n */\r\nvar CryptoUtils = /** @class */ (function () {\r\n function CryptoUtils() {\r\n }\r\n /**\r\n * Creates a new random GUID\r\n * @returns string (GUID)\r\n */\r\n CryptoUtils.createNewGuid = function () {\r\n /*\r\n * RFC4122: The version 4 UUID is meant for generating UUIDs from truly-random or\r\n * pseudo-random numbers.\r\n * The algorithm is as follows:\r\n * Set the two most significant bits (bits 6 and 7) of the\r\n * clock_seq_hi_and_reserved to zero and one, respectively.\r\n * Set the four most significant bits (bits 12 through 15) of the\r\n * time_hi_and_version field to the 4-bit version number from\r\n * Section 4.1.3. Version4\r\n * Set all the other bits to randomly (or pseudo-randomly) chosen\r\n * values.\r\n * UUID = time-low \"-\" time-mid \"-\"time-high-and-version \"-\"clock-seq-reserved and low(2hexOctet)\"-\" node\r\n * time-low = 4hexOctet\r\n * time-mid = 2hexOctet\r\n * time-high-and-version = 2hexOctet\r\n * clock-seq-and-reserved = hexOctet:\r\n * clock-seq-low = hexOctet\r\n * node = 6hexOctet\r\n * Format: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\r\n * y could be 1000, 1001, 1010, 1011 since most significant two bits needs to be 10\r\n * y values are 8, 9, A, B\r\n */\r\n var cryptoObj = window.crypto; // for IE 11\r\n if (cryptoObj && cryptoObj.getRandomValues) {\r\n var buffer = new Uint8Array(16);\r\n cryptoObj.getRandomValues(buffer);\r\n // buffer[6] and buffer[7] represents the time_hi_and_version field. We will set the four most significant bits (4 through 7) of buffer[6] to represent decimal number 4 (UUID version number).\r\n buffer[6] |= 0x40; // buffer[6] | 01000000 will set the 6 bit to 1.\r\n buffer[6] &= 0x4f; // buffer[6] & 01001111 will set the 4, 5, and 7 bit to 0 such that bits 4-7 == 0100 = \"4\".\r\n // buffer[8] represents the clock_seq_hi_and_reserved field. We will set the two most significant bits (6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively.\r\n buffer[8] |= 0x80; // buffer[8] | 10000000 will set the 7 bit to 1.\r\n buffer[8] &= 0xbf; // buffer[8] & 10111111 will set the 6 bit to 0.\r\n return CryptoUtils.decimalToHex(buffer[0]) + CryptoUtils.decimalToHex(buffer[1])\r\n + CryptoUtils.decimalToHex(buffer[2]) + CryptoUtils.decimalToHex(buffer[3])\r\n + \"-\" + CryptoUtils.decimalToHex(buffer[4]) + CryptoUtils.decimalToHex(buffer[5])\r\n + \"-\" + CryptoUtils.decimalToHex(buffer[6]) + CryptoUtils.decimalToHex(buffer[7])\r\n + \"-\" + CryptoUtils.decimalToHex(buffer[8]) + CryptoUtils.decimalToHex(buffer[9])\r\n + \"-\" + CryptoUtils.decimalToHex(buffer[10]) + CryptoUtils.decimalToHex(buffer[11])\r\n + CryptoUtils.decimalToHex(buffer[12]) + CryptoUtils.decimalToHex(buffer[13])\r\n + CryptoUtils.decimalToHex(buffer[14]) + CryptoUtils.decimalToHex(buffer[15]);\r\n }\r\n else {\r\n var guidHolder = \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\";\r\n var hex = \"0123456789abcdef\";\r\n var r = 0;\r\n var guidResponse = \"\";\r\n for (var i = 0; i < 36; i++) {\r\n if (guidHolder[i] !== \"-\" && guidHolder[i] !== \"4\") {\r\n // each x and y needs to be random\r\n r = Math.random() * 16 | 0;\r\n }\r\n if (guidHolder[i] === \"x\") {\r\n guidResponse += hex[r];\r\n }\r\n else if (guidHolder[i] === \"y\") {\r\n // clock-seq-and-reserved first hex is filtered and remaining hex values are random\r\n r &= 0x3; // bit and with 0011 to set pos 2 to zero ?0??\r\n r |= 0x8; // set pos 3 to 1 as 1???\r\n guidResponse += hex[r];\r\n }\r\n else {\r\n guidResponse += guidHolder[i];\r\n }\r\n }\r\n return guidResponse;\r\n }\r\n };\r\n /**\r\n * verifies if a string is GUID\r\n * @param guid\r\n */\r\n CryptoUtils.isGuid = function (guid) {\r\n var regexGuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\r\n return regexGuid.test(guid);\r\n };\r\n /**\r\n * Decimal to Hex\r\n *\r\n * @param num\r\n */\r\n CryptoUtils.decimalToHex = function (num) {\r\n var hex = num.toString(16);\r\n while (hex.length < 2) {\r\n hex = \"0\" + hex;\r\n }\r\n return hex;\r\n };\r\n // See: https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#Solution_4_%E2%80%93_escaping_the_string_before_encoding_it\r\n /**\r\n * encoding string to base64 - platform specific check\r\n *\r\n * @param input\r\n */\r\n CryptoUtils.base64Encode = function (input) {\r\n return btoa(encodeURIComponent(input).replace(/%([0-9A-F]{2})/g, function toSolidBytes(match, p1) {\r\n return String.fromCharCode(Number(\"0x\" + p1));\r\n }));\r\n };\r\n /**\r\n * Decodes a base64 encoded string.\r\n *\r\n * @param input\r\n */\r\n CryptoUtils.base64Decode = function (input) {\r\n var encodedString = input.replace(/-/g, \"+\").replace(/_/g, \"/\");\r\n switch (encodedString.length % 4) {\r\n case 0:\r\n break;\r\n case 2:\r\n encodedString += \"==\";\r\n break;\r\n case 3:\r\n encodedString += \"=\";\r\n break;\r\n default:\r\n throw new Error(\"Invalid base64 string\");\r\n }\r\n return decodeURIComponent(atob(encodedString).split(\"\").map(function (c) {\r\n return \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2);\r\n }).join(\"\"));\r\n };\r\n /**\r\n * deserialize a string\r\n *\r\n * @param query\r\n */\r\n CryptoUtils.deserialize = function (query) {\r\n var match; // Regex for replacing addition symbol with a space\r\n var pl = /\\+/g;\r\n var search = /([^&=]+)=([^&]*)/g;\r\n var decode = function (s) { return decodeURIComponent(decodeURIComponent(s.replace(pl, \" \"))); }; // Some values (e.g. state) may need to be decoded twice\r\n var obj = {};\r\n match = search.exec(query);\r\n while (match) {\r\n obj[decode(match[1])] = decode(match[2]);\r\n match = search.exec(query);\r\n }\r\n return obj;\r\n };\r\n return CryptoUtils;\r\n}());\r\nexport { CryptoUtils };\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\nimport { Constants, PromptState, BlacklistedEQParams } from \"../utils/Constants\";\r\nimport { ClientConfigurationError } from \"../error/ClientConfigurationError\";\r\nimport { ScopeSet } from \"../ScopeSet\";\r\nimport { StringUtils } from \"../utils/StringUtils\";\r\nimport { CryptoUtils } from \"../utils/CryptoUtils\";\r\nimport { TimeUtils } from \"./TimeUtils\";\r\nimport { ClientAuthError } from \"../error/ClientAuthError\";\r\n/**\r\n * @hidden\r\n */\r\nvar RequestUtils = /** @class */ (function () {\r\n function RequestUtils() {\r\n }\r\n /**\r\n * @ignore\r\n *\r\n * @param request\r\n * @param isLoginCall\r\n * @param cacheStorage\r\n * @param clientId\r\n *\r\n * validates all request parameters and generates a consumable request object\r\n */\r\n RequestUtils.validateRequest = function (request, isLoginCall, clientId, interactionType) {\r\n // Throw error if request is empty for acquire * calls\r\n if (!isLoginCall && !request) {\r\n throw ClientConfigurationError.createEmptyRequestError();\r\n }\r\n var scopes;\r\n var extraQueryParameters;\r\n if (request) {\r\n // if extraScopesToConsent is passed in loginCall, append them to the login request; Validate and filter scopes (the validate function will throw if validation fails)\r\n scopes = isLoginCall ? ScopeSet.appendScopes(request.scopes, request.extraScopesToConsent) : request.scopes;\r\n ScopeSet.validateInputScope(scopes, !isLoginCall, clientId);\r\n // validate prompt parameter\r\n this.validatePromptParameter(request.prompt);\r\n // validate extraQueryParameters\r\n extraQueryParameters = this.validateEQParameters(request.extraQueryParameters, request.claimsRequest);\r\n // validate claimsRequest\r\n this.validateClaimsRequest(request.claimsRequest);\r\n }\r\n // validate and generate state and correlationId\r\n var state = this.validateAndGenerateState(request && request.state, interactionType);\r\n var correlationId = this.validateAndGenerateCorrelationId(request && request.correlationId);\r\n var validatedRequest = tslib_1.__assign({}, request, { extraQueryParameters: extraQueryParameters,\r\n scopes: scopes,\r\n state: state,\r\n correlationId: correlationId });\r\n return validatedRequest;\r\n };\r\n /**\r\n * @ignore\r\n *\r\n * Utility to test if valid prompt value is passed in the request\r\n * @param request\r\n */\r\n RequestUtils.validatePromptParameter = function (prompt) {\r\n if (prompt) {\r\n if ([PromptState.LOGIN, PromptState.SELECT_ACCOUNT, PromptState.CONSENT, PromptState.NONE].indexOf(prompt) < 0) {\r\n throw ClientConfigurationError.createInvalidPromptError(prompt);\r\n }\r\n }\r\n };\r\n /**\r\n * @ignore\r\n *\r\n * Removes unnecessary or duplicate query parameters from extraQueryParameters\r\n * @param request\r\n */\r\n RequestUtils.validateEQParameters = function (extraQueryParameters, claimsRequest) {\r\n var eQParams = tslib_1.__assign({}, extraQueryParameters);\r\n if (!eQParams) {\r\n return null;\r\n }\r\n if (claimsRequest) {\r\n // this.logger.warning(\"Removed duplicate claims from extraQueryParameters. Please use either the claimsRequest field OR pass as extraQueryParameter - not both.\");\r\n delete eQParams[Constants.claims];\r\n }\r\n BlacklistedEQParams.forEach(function (param) {\r\n if (eQParams[param]) {\r\n // this.logger.warning(\"Removed duplicate \" + param + \" from extraQueryParameters. Please use the \" + param + \" field in request object.\");\r\n delete eQParams[param];\r\n }\r\n });\r\n return eQParams;\r\n };\r\n /**\r\n * @ignore\r\n *\r\n * Validates the claims passed in request is a JSON\r\n * TODO: More validation will be added when the server team tells us how they have actually implemented claims\r\n * @param claimsRequest\r\n */\r\n RequestUtils.validateClaimsRequest = function (claimsRequest) {\r\n if (!claimsRequest) {\r\n return;\r\n }\r\n var claims;\r\n try {\r\n claims = JSON.parse(claimsRequest);\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createClaimsRequestParsingError(e);\r\n }\r\n };\r\n /**\r\n * @ignore\r\n *\r\n * generate unique state per request\r\n * @param userState User-provided state value\r\n * @returns State string include library state and user state\r\n */\r\n RequestUtils.validateAndGenerateState = function (userState, interactionType) {\r\n return !StringUtils.isEmpty(userState) ? \"\" + RequestUtils.generateLibraryState(interactionType) + Constants.resourceDelimiter + userState : RequestUtils.generateLibraryState(interactionType);\r\n };\r\n /**\r\n * Generates the state value used by the library.\r\n *\r\n * @returns Base64 encoded string representing the state\r\n */\r\n RequestUtils.generateLibraryState = function (interactionType) {\r\n var stateObject = {\r\n id: CryptoUtils.createNewGuid(),\r\n ts: TimeUtils.now(),\r\n method: interactionType\r\n };\r\n var stateString = JSON.stringify(stateObject);\r\n return CryptoUtils.base64Encode(stateString);\r\n };\r\n /**\r\n * Decodes the state value into a StateObject\r\n *\r\n * @param state State value returned in the request\r\n * @returns Parsed values from the encoded state value\r\n */\r\n RequestUtils.parseLibraryState = function (state) {\r\n var libraryState = decodeURIComponent(state).split(Constants.resourceDelimiter)[0];\r\n if (CryptoUtils.isGuid(libraryState)) {\r\n // If state is guid, assume timestamp is now and is redirect, as redirect should be only method where this can happen.\r\n return {\r\n id: libraryState,\r\n ts: TimeUtils.now(),\r\n method: Constants.interactionTypeRedirect\r\n };\r\n }\r\n try {\r\n var stateString = CryptoUtils.base64Decode(libraryState);\r\n var stateObject = JSON.parse(stateString);\r\n return stateObject;\r\n }\r\n catch (e) {\r\n throw ClientAuthError.createInvalidStateError(state, null);\r\n }\r\n };\r\n /**\r\n * @ignore\r\n *\r\n * validate correlationId and generate if not valid or not set by the user\r\n * @param correlationId\r\n */\r\n RequestUtils.validateAndGenerateCorrelationId = function (correlationId) {\r\n // validate user set correlationId or set one for the user if null\r\n if (correlationId && !CryptoUtils.isGuid(correlationId)) {\r\n throw ClientConfigurationError.createInvalidCorrelationIdError();\r\n }\r\n return CryptoUtils.isGuid(correlationId) ? correlationId : CryptoUtils.createNewGuid();\r\n };\r\n /**\r\n * Create a request signature\r\n * @param request\r\n */\r\n RequestUtils.createRequestSignature = function (request) {\r\n return \"\" + request.scopes.join(\" \").toLowerCase() + Constants.resourceDelimiter + request.authority;\r\n };\r\n return RequestUtils;\r\n}());\r\nexport { RequestUtils };\r\n","import * as tslib_1 from \"tslib\";\r\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * @hidden\r\n */\r\nvar ResponseUtils = /** @class */ (function () {\r\n function ResponseUtils() {\r\n }\r\n ResponseUtils.setResponseIdToken = function (originalResponse, idTokenObj) {\r\n if (!originalResponse) {\r\n return null;\r\n }\r\n else if (!idTokenObj) {\r\n return originalResponse;\r\n }\r\n var exp = Number(idTokenObj.expiration);\r\n if (exp && !originalResponse.expiresOn) {\r\n originalResponse.expiresOn = new Date(exp * 1000);\r\n }\r\n return tslib_1.__assign({}, originalResponse, { idToken: idTokenObj, idTokenClaims: idTokenObj.claims, uniqueId: idTokenObj.objectId || idTokenObj.subject, tenantId: idTokenObj.tenantId });\r\n };\r\n return ResponseUtils;\r\n}());\r\nexport { ResponseUtils };\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * @hidden\r\n */\r\nvar StringUtils = /** @class */ (function () {\r\n function StringUtils() {\r\n }\r\n /**\r\n * Check if a string is empty\r\n *\r\n * @param str\r\n */\r\n StringUtils.isEmpty = function (str) {\r\n return (typeof str === \"undefined\" || !str || 0 === str.length);\r\n };\r\n return StringUtils;\r\n}());\r\nexport { StringUtils };\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * @hidden\r\n */\r\nvar TimeUtils = /** @class */ (function () {\r\n function TimeUtils() {\r\n }\r\n /**\r\n * Returns time in seconds for expiration based on string value passed in.\r\n *\r\n * @param expiresIn\r\n */\r\n TimeUtils.parseExpiresIn = function (expiresIn) {\r\n // if AAD did not send \"expires_in\" property, use default expiration of 3599 seconds, for some reason AAD sends 3599 as \"expires_in\" value instead of 3600\r\n if (!expiresIn) {\r\n expiresIn = \"3599\";\r\n }\r\n return parseInt(expiresIn, 10);\r\n };\r\n /**\r\n * Return the current time in Unix time (seconds). Date.getTime() returns in milliseconds.\r\n */\r\n TimeUtils.now = function () {\r\n return Math.round(new Date().getTime() / 1000.0);\r\n };\r\n /**\r\n * Returns the amount of time in milliseconds since the page loaded.\r\n */\r\n TimeUtils.relativeNowMs = function () {\r\n return window.performance.now();\r\n };\r\n return TimeUtils;\r\n}());\r\nexport { TimeUtils };\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport { CryptoUtils } from \"./CryptoUtils\";\r\nimport { StringUtils } from \"./StringUtils\";\r\n/**\r\n * @hidden\r\n */\r\nvar TokenUtils = /** @class */ (function () {\r\n function TokenUtils() {\r\n }\r\n /**\r\n * decode a JWT\r\n *\r\n * @param jwtToken\r\n */\r\n TokenUtils.decodeJwt = function (jwtToken) {\r\n if (StringUtils.isEmpty(jwtToken)) {\r\n return null;\r\n }\r\n var idTokenPartsRegex = /^([^\\.\\s]*)\\.([^\\.\\s]+)\\.([^\\.\\s]*)$/;\r\n var matches = idTokenPartsRegex.exec(jwtToken);\r\n if (!matches || matches.length < 4) {\r\n // this._requestContext.logger.warn(\"The returned id_token is not parseable.\");\r\n return null;\r\n }\r\n var crackedToken = {\r\n header: matches[1],\r\n JWSPayload: matches[2],\r\n JWSSig: matches[3]\r\n };\r\n return crackedToken;\r\n };\r\n /**\r\n * Extract IdToken by decoding the RAWIdToken\r\n *\r\n * @param encodedIdToken\r\n */\r\n TokenUtils.extractIdToken = function (encodedIdToken) {\r\n // id token will be decoded to get the username\r\n var decodedToken = this.decodeJwt(encodedIdToken);\r\n if (!decodedToken) {\r\n return null;\r\n }\r\n try {\r\n var base64IdToken = decodedToken.JWSPayload;\r\n var base64Decoded = CryptoUtils.base64Decode(base64IdToken);\r\n if (!base64Decoded) {\r\n // this._requestContext.logger.info(\"The returned id_token could not be base64 url safe decoded.\");\r\n return null;\r\n }\r\n // ECMA script has JSON built-in support\r\n return JSON.parse(base64Decoded);\r\n }\r\n catch (err) {\r\n // this._requestContext.logger.error(\"The returned id_token could not be decoded\" + err);\r\n }\r\n return null;\r\n };\r\n return TokenUtils;\r\n}());\r\nexport { TokenUtils };\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport { Constants, SSOTypes, ServerHashParamKeys } from \"./Constants\";\r\nimport { ScopeSet } from \"../ScopeSet\";\r\nimport { StringUtils } from \"./StringUtils\";\r\nimport { CryptoUtils } from \"./CryptoUtils\";\r\n/**\r\n * @hidden\r\n */\r\nvar UrlUtils = /** @class */ (function () {\r\n function UrlUtils() {\r\n }\r\n /**\r\n * generates the URL with QueryString Parameters\r\n * @param scopes\r\n */\r\n UrlUtils.createNavigateUrl = function (serverRequestParams) {\r\n var str = this.createNavigationUrlString(serverRequestParams);\r\n var authEndpoint = serverRequestParams.authorityInstance.AuthorizationEndpoint;\r\n // if the endpoint already has queryparams, lets add to it, otherwise add the first one\r\n if (authEndpoint.indexOf(\"?\") < 0) {\r\n authEndpoint += \"?\";\r\n }\r\n else {\r\n authEndpoint += \"&\";\r\n }\r\n var requestUrl = \"\" + authEndpoint + str.join(\"&\");\r\n return requestUrl;\r\n };\r\n /**\r\n * Generate the array of all QueryStringParams to be sent to the server\r\n * @param scopes\r\n */\r\n UrlUtils.createNavigationUrlString = function (serverRequestParams) {\r\n var scopes = serverRequestParams.scopes;\r\n if (scopes.indexOf(serverRequestParams.clientId) === -1) {\r\n scopes.push(serverRequestParams.clientId);\r\n }\r\n var str = [];\r\n str.push(\"response_type=\" + serverRequestParams.responseType);\r\n this.translateclientIdUsedInScope(scopes, serverRequestParams.clientId);\r\n str.push(\"scope=\" + encodeURIComponent(ScopeSet.parseScope(scopes)));\r\n str.push(\"client_id=\" + encodeURIComponent(serverRequestParams.clientId));\r\n str.push(\"redirect_uri=\" + encodeURIComponent(serverRequestParams.redirectUri));\r\n str.push(\"state=\" + encodeURIComponent(serverRequestParams.state));\r\n str.push(\"nonce=\" + encodeURIComponent(serverRequestParams.nonce));\r\n str.push(\"client_info=1\");\r\n str.push(\"x-client-SKU=\" + serverRequestParams.xClientSku);\r\n str.push(\"x-client-Ver=\" + serverRequestParams.xClientVer);\r\n if (serverRequestParams.promptValue) {\r\n str.push(\"prompt=\" + encodeURIComponent(serverRequestParams.promptValue));\r\n }\r\n if (serverRequestParams.claimsValue) {\r\n str.push(\"claims=\" + encodeURIComponent(serverRequestParams.claimsValue));\r\n }\r\n if (serverRequestParams.queryParameters) {\r\n str.push(serverRequestParams.queryParameters);\r\n }\r\n if (serverRequestParams.extraQueryParameters) {\r\n str.push(serverRequestParams.extraQueryParameters);\r\n }\r\n str.push(\"client-request-id=\" + encodeURIComponent(serverRequestParams.correlationId));\r\n return str;\r\n };\r\n /**\r\n * append the required scopes: https://openid.net/specs/openid-connect-basic-1_0.html#Scopes\r\n * @param scopes\r\n */\r\n UrlUtils.translateclientIdUsedInScope = function (scopes, clientId) {\r\n var clientIdIndex = scopes.indexOf(clientId);\r\n if (clientIdIndex >= 0) {\r\n scopes.splice(clientIdIndex, 1);\r\n if (scopes.indexOf(\"openid\") === -1) {\r\n scopes.push(\"openid\");\r\n }\r\n if (scopes.indexOf(\"profile\") === -1) {\r\n scopes.push(\"profile\");\r\n }\r\n }\r\n };\r\n /**\r\n * Returns current window URL as redirect uri\r\n */\r\n UrlUtils.getCurrentUrl = function () {\r\n return window.location.href.split(\"?\")[0].split(\"#\")[0];\r\n };\r\n /**\r\n * Returns given URL with query string removed\r\n */\r\n UrlUtils.removeHashFromUrl = function (url) {\r\n return url.split(\"#\")[0];\r\n };\r\n /**\r\n * Given a url like https://a:b/common/d?e=f#g, and a tenantId, returns https://a:b/tenantId/d\r\n * @param href The url\r\n * @param tenantId The tenant id to replace\r\n */\r\n UrlUtils.replaceTenantPath = function (url, tenantId) {\r\n var lowerCaseUrl = url.toLowerCase();\r\n var urlObject = this.GetUrlComponents(lowerCaseUrl);\r\n var pathArray = urlObject.PathSegments;\r\n if (tenantId && (pathArray.length !== 0 && (pathArray[0] === Constants.common || pathArray[0] === SSOTypes.ORGANIZATIONS))) {\r\n pathArray[0] = tenantId;\r\n }\r\n return this.constructAuthorityUriFromObject(urlObject, pathArray);\r\n };\r\n UrlUtils.constructAuthorityUriFromObject = function (urlObject, pathArray) {\r\n return this.CanonicalizeUri(urlObject.Protocol + \"//\" + urlObject.HostNameAndPort + \"/\" + pathArray.join(\"/\"));\r\n };\r\n /**\r\n * Checks if an authority is common (ex. https://a:b/common/)\r\n * @param url The url\r\n * @returns true if authority is common and false otherwise\r\n */\r\n UrlUtils.isCommonAuthority = function (url) {\r\n var authority = this.CanonicalizeUri(url);\r\n var pathArray = this.GetUrlComponents(authority).PathSegments;\r\n return (pathArray.length !== 0 && pathArray[0] === Constants.common);\r\n };\r\n /**\r\n * Checks if an authority is for organizations (ex. https://a:b/organizations/)\r\n * @param url The url\r\n * @returns true if authority is for and false otherwise\r\n */\r\n UrlUtils.isOrganizationsAuthority = function (url) {\r\n var authority = this.CanonicalizeUri(url);\r\n var pathArray = this.GetUrlComponents(authority).PathSegments;\r\n return (pathArray.length !== 0 && pathArray[0] === SSOTypes.ORGANIZATIONS);\r\n };\r\n /**\r\n * Parses out the components from a url string.\r\n * @returns An object with the various components. Please cache this value insted of calling this multiple times on the same url.\r\n */\r\n UrlUtils.GetUrlComponents = function (url) {\r\n if (!url) {\r\n throw \"Url required\";\r\n }\r\n // https://gist.github.com/curtisz/11139b2cfcaef4a261e0\r\n var regEx = RegExp(\"^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\\\?([^#]*))?(#(.*))?\");\r\n var match = url.match(regEx);\r\n if (!match || match.length < 6) {\r\n throw \"Valid url required\";\r\n }\r\n var urlComponents = {\r\n Protocol: match[1],\r\n HostNameAndPort: match[4],\r\n AbsolutePath: match[5]\r\n };\r\n var pathSegments = urlComponents.AbsolutePath.split(\"/\");\r\n pathSegments = pathSegments.filter(function (val) { return val && val.length > 0; }); // remove empty elements\r\n urlComponents.PathSegments = pathSegments;\r\n if (match[6]) {\r\n urlComponents.Search = match[6];\r\n }\r\n if (match[8]) {\r\n urlComponents.Hash = match[8];\r\n }\r\n return urlComponents;\r\n };\r\n /**\r\n * Given a url or path, append a trailing slash if one doesnt exist\r\n *\r\n * @param url\r\n */\r\n UrlUtils.CanonicalizeUri = function (url) {\r\n if (url) {\r\n url = url.toLowerCase();\r\n }\r\n if (url && !UrlUtils.endsWith(url, \"/\")) {\r\n url += \"/\";\r\n }\r\n return url;\r\n };\r\n /**\r\n * Checks to see if the url ends with the suffix\r\n * Required because we are compiling for es5 instead of es6\r\n * @param url\r\n * @param str\r\n */\r\n // TODO: Rename this, not clear what it is supposed to do\r\n UrlUtils.endsWith = function (url, suffix) {\r\n if (!url || !suffix) {\r\n return false;\r\n }\r\n return url.indexOf(suffix, url.length - suffix.length) !== -1;\r\n };\r\n /**\r\n * Utils function to remove the login_hint and domain_hint from the i/p extraQueryParameters\r\n * @param url\r\n * @param name\r\n */\r\n UrlUtils.urlRemoveQueryStringParameter = function (url, name) {\r\n if (StringUtils.isEmpty(url)) {\r\n return url;\r\n }\r\n var regex = new RegExp(\"(\\\\&\" + name + \"=)[^\\&]+\");\r\n url = url.replace(regex, \"\");\r\n // name=value&\r\n regex = new RegExp(\"(\" + name + \"=)[^\\&]+&\");\r\n url = url.replace(regex, \"\");\r\n // name=value\r\n regex = new RegExp(\"(\" + name + \"=)[^\\&]+\");\r\n url = url.replace(regex, \"\");\r\n return url;\r\n };\r\n /**\r\n * @hidden\r\n * @ignore\r\n *\r\n * Returns the anchor part(#) of the URL\r\n */\r\n UrlUtils.getHashFromUrl = function (urlStringOrFragment) {\r\n var hashIndex1 = urlStringOrFragment.indexOf(\"#\");\r\n var hashIndex2 = urlStringOrFragment.indexOf(\"#/\");\r\n if (hashIndex2 > -1) {\r\n return urlStringOrFragment.substring(hashIndex2 + 2);\r\n }\r\n else if (hashIndex1 > -1) {\r\n return urlStringOrFragment.substring(hashIndex1 + 1);\r\n }\r\n return urlStringOrFragment;\r\n };\r\n /**\r\n * @hidden\r\n * Check if the url contains a hash with known properties\r\n * @ignore\r\n */\r\n UrlUtils.urlContainsHash = function (urlString) {\r\n var parameters = UrlUtils.deserializeHash(urlString);\r\n return (parameters.hasOwnProperty(ServerHashParamKeys.ERROR_DESCRIPTION) ||\r\n parameters.hasOwnProperty(ServerHashParamKeys.ERROR) ||\r\n parameters.hasOwnProperty(ServerHashParamKeys.ACCESS_TOKEN) ||\r\n parameters.hasOwnProperty(ServerHashParamKeys.ID_TOKEN));\r\n };\r\n /**\r\n * @hidden\r\n * Returns deserialized portion of URL hash\r\n * @ignore\r\n */\r\n UrlUtils.deserializeHash = function (urlFragment) {\r\n var hash = UrlUtils.getHashFromUrl(urlFragment);\r\n return CryptoUtils.deserialize(hash);\r\n };\r\n /**\r\n * @ignore\r\n * @param {string} URI\r\n * @returns {string} host from the URI\r\n *\r\n * extract URI from the host\r\n */\r\n UrlUtils.getHostFromUri = function (uri) {\r\n // remove http:// or https:// from uri\r\n var extractedUri = String(uri).replace(/^(https?:)\\/\\//, \"\");\r\n extractedUri = extractedUri.split(\"/\")[0];\r\n return extractedUri;\r\n };\r\n return UrlUtils;\r\n}());\r\nexport { UrlUtils };\r\n","import { ClientAuthError } from \"../error/ClientAuthError\";\r\nimport { UrlUtils } from \"./UrlUtils\";\r\nimport { TemporaryCacheKeys, Constants } from \"../utils/Constants\";\r\nimport { TimeUtils } from \"./TimeUtils\";\r\nvar WindowUtils = /** @class */ (function () {\r\n function WindowUtils() {\r\n }\r\n /**\r\n * @hidden\r\n * Checks if the current page is running in an iframe.\r\n * @ignore\r\n */\r\n WindowUtils.isInIframe = function () {\r\n return window.parent !== window;\r\n };\r\n /**\r\n * @hidden\r\n * Check if the current page is running in a popup.\r\n * @ignore\r\n */\r\n WindowUtils.isInPopup = function () {\r\n return !!(window.opener && window.opener !== window);\r\n };\r\n /**\r\n * @hidden\r\n * @param prefix\r\n * @param scopes\r\n * @param authority\r\n */\r\n WindowUtils.generateFrameName = function (prefix, requestSignature) {\r\n return \"\" + prefix + Constants.resourceDelimiter + requestSignature;\r\n };\r\n /**\r\n * @hidden\r\n * Polls an iframe until it loads a url with a hash\r\n * @ignore\r\n */\r\n WindowUtils.monitorIframeForHash = function (contentWindow, timeout, urlNavigate, logger) {\r\n return new Promise(function (resolve, reject) {\r\n /*\r\n * Polling for iframes can be purely timing based,\r\n * since we don't need to account for interaction.\r\n */\r\n var nowMark = TimeUtils.relativeNowMs();\r\n var timeoutMark = nowMark + timeout;\r\n logger.verbose(\"monitorWindowForIframe polling started\");\r\n var intervalId = setInterval(function () {\r\n if (TimeUtils.relativeNowMs() > timeoutMark) {\r\n logger.error(\"monitorIframeForHash unable to find hash in url, timing out\");\r\n logger.errorPii(\"monitorIframeForHash polling timed out for url: \" + urlNavigate);\r\n clearInterval(intervalId);\r\n reject(ClientAuthError.createTokenRenewalTimeoutError());\r\n return;\r\n }\r\n var href;\r\n try {\r\n /*\r\n * Will throw if cross origin,\r\n * which should be caught and ignored\r\n * since we need the interval to keep running while on STS UI.\r\n */\r\n href = contentWindow.location.href;\r\n }\r\n catch (e) { }\r\n if (href && UrlUtils.urlContainsHash(href)) {\r\n logger.verbose(\"monitorIframeForHash found url in hash\");\r\n clearInterval(intervalId);\r\n resolve(contentWindow.location.hash);\r\n }\r\n }, WindowUtils.POLLING_INTERVAL_MS);\r\n });\r\n };\r\n /**\r\n * @hidden\r\n * Polls a popup until it loads a url with a hash\r\n * @ignore\r\n */\r\n WindowUtils.monitorPopupForHash = function (contentWindow, timeout, urlNavigate, logger) {\r\n return new Promise(function (resolve, reject) {\r\n /*\r\n * Polling for popups needs to be tick-based,\r\n * since a non-trivial amount of time can be spent on interaction (which should not count against the timeout).\r\n */\r\n var maxTicks = timeout / WindowUtils.POLLING_INTERVAL_MS;\r\n var ticks = 0;\r\n logger.verbose(\"monitorWindowForHash polling started\");\r\n var intervalId = setInterval(function () {\r\n if (contentWindow.closed) {\r\n logger.error(\"monitorWindowForHash window closed\");\r\n clearInterval(intervalId);\r\n reject(ClientAuthError.createUserCancelledError());\r\n return;\r\n }\r\n var href;\r\n try {\r\n /*\r\n * Will throw if cross origin,\r\n * which should be caught and ignored\r\n * since we need the interval to keep running while on STS UI.\r\n */\r\n href = contentWindow.location.href;\r\n }\r\n catch (e) { }\r\n // Don't process blank pages or cross domain\r\n if (!href || href === \"about:blank\") {\r\n return;\r\n }\r\n /*\r\n * Only run clock when we are on same domain for popups\r\n * as popup operations can take a long time.\r\n */\r\n ticks++;\r\n if (href && UrlUtils.urlContainsHash(href)) {\r\n logger.verbose(\"monitorPopupForHash found url in hash\");\r\n clearInterval(intervalId);\r\n resolve(contentWindow.location.hash);\r\n }\r\n else if (ticks > maxTicks) {\r\n logger.error(\"monitorPopupForHash unable to find hash in url, timing out\");\r\n logger.errorPii(\"monitorPopupForHash polling timed out for url: \" + urlNavigate);\r\n clearInterval(intervalId);\r\n reject(ClientAuthError.createTokenRenewalTimeoutError());\r\n }\r\n }, WindowUtils.POLLING_INTERVAL_MS);\r\n });\r\n };\r\n /**\r\n * @hidden\r\n * Loads iframe with authorization endpoint URL\r\n * @ignore\r\n */\r\n WindowUtils.loadFrame = function (urlNavigate, frameName, timeoutMs, logger) {\r\n var _this = this;\r\n /*\r\n * This trick overcomes iframe navigation in IE\r\n * IE does not load the page consistently in iframe\r\n */\r\n logger.infoPii(\"LoadFrame: \" + frameName);\r\n return new Promise(function (resolve, reject) {\r\n setTimeout(function () {\r\n var frameHandle = _this.loadFrameSync(urlNavigate, frameName, logger);\r\n if (!frameHandle) {\r\n reject(\"Unable to load iframe with name: \" + frameName);\r\n return;\r\n }\r\n resolve(frameHandle);\r\n }, timeoutMs);\r\n });\r\n };\r\n /**\r\n * @hidden\r\n * Loads the iframe synchronously when the navigateTimeFrame is set to `0`\r\n * @param urlNavigate\r\n * @param frameName\r\n * @param logger\r\n */\r\n WindowUtils.loadFrameSync = function (urlNavigate, frameName, logger) {\r\n var frameHandle = WindowUtils.addHiddenIFrame(frameName, logger);\r\n // returning to handle null in loadFrame, also to avoid null object access errors\r\n if (!frameHandle) {\r\n return null;\r\n }\r\n else if (frameHandle.src === \"\" || frameHandle.src === \"about:blank\") {\r\n frameHandle.src = urlNavigate;\r\n logger.infoPii(\"Frame Name : \" + frameName + \" Navigated to: \" + urlNavigate);\r\n }\r\n return frameHandle;\r\n };\r\n /**\r\n * @hidden\r\n * Adds the hidden iframe for silent token renewal.\r\n * @ignore\r\n */\r\n WindowUtils.addHiddenIFrame = function (iframeId, logger) {\r\n if (typeof iframeId === \"undefined\") {\r\n return null;\r\n }\r\n logger.infoPii(\"Add msal frame to document:\" + iframeId);\r\n var adalFrame = document.getElementById(iframeId);\r\n if (!adalFrame) {\r\n if (document.createElement &&\r\n document.documentElement &&\r\n (window.navigator.userAgent.indexOf(\"MSIE 5.0\") === -1)) {\r\n var ifr = document.createElement(\"iframe\");\r\n ifr.setAttribute(\"id\", iframeId);\r\n ifr.setAttribute(\"aria-hidden\", \"true\");\r\n ifr.style.visibility = \"hidden\";\r\n ifr.style.position = \"absolute\";\r\n ifr.style.width = ifr.style.height = \"0\";\r\n ifr.style.border = \"0\";\r\n ifr.setAttribute(\"sandbox\", \"allow-scripts allow-same-origin allow-forms\");\r\n adalFrame = document.getElementsByTagName(\"body\")[0].appendChild(ifr);\r\n }\r\n else if (document.body && document.body.insertAdjacentHTML) {\r\n document.body.insertAdjacentHTML(\"beforeend\", \"\");\r\n }\r\n if (window.frames && window.frames[iframeId]) {\r\n adalFrame = window.frames[iframeId];\r\n }\r\n }\r\n return adalFrame;\r\n };\r\n /**\r\n * @hidden\r\n * Removes a hidden iframe from the page.\r\n * @ignore\r\n */\r\n WindowUtils.removeHiddenIframe = function (iframe) {\r\n if (document.body === iframe.parentNode) {\r\n document.body.removeChild(iframe);\r\n }\r\n };\r\n /**\r\n * @hidden\r\n * Find and return the iframe element with the given hash\r\n * @ignore\r\n */\r\n WindowUtils.getIframeWithHash = function (hash) {\r\n var iframes = document.getElementsByTagName(\"iframe\");\r\n var iframeArray = Array.apply(null, Array(iframes.length)).map(function (iframe, index) { return iframes.item(index); }); // eslint-disable-line prefer-spread\r\n return iframeArray.filter(function (iframe) {\r\n try {\r\n return iframe.contentWindow.location.hash === hash;\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n })[0];\r\n };\r\n /**\r\n * @hidden\r\n * Returns an array of all the popups opened by MSAL\r\n * @ignore\r\n */\r\n WindowUtils.getPopups = function () {\r\n if (!window.openedWindows) {\r\n window.openedWindows = [];\r\n }\r\n return window.openedWindows;\r\n };\r\n /**\r\n * @hidden\r\n * Find and return the popup with the given hash\r\n * @ignore\r\n */\r\n WindowUtils.getPopUpWithHash = function (hash) {\r\n return WindowUtils.getPopups().filter(function (popup) {\r\n try {\r\n return popup.location.hash === hash;\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n })[0];\r\n };\r\n /**\r\n * @hidden\r\n * Add the popup to the known list of popups\r\n * @ignore\r\n */\r\n WindowUtils.trackPopup = function (popup) {\r\n WindowUtils.getPopups().push(popup);\r\n };\r\n /**\r\n * @hidden\r\n * Close all popups\r\n * @ignore\r\n */\r\n WindowUtils.closePopups = function () {\r\n WindowUtils.getPopups().forEach(function (popup) { return popup.close(); });\r\n };\r\n /**\r\n * @ignore\r\n *\r\n * blocks any login/acquireToken calls to reload from within a hidden iframe (generated for silent calls)\r\n */\r\n WindowUtils.blockReloadInHiddenIframes = function () {\r\n // return an error if called from the hidden iframe created by the msal js silent calls\r\n if (UrlUtils.urlContainsHash(window.location.hash) && WindowUtils.isInIframe()) {\r\n throw ClientAuthError.createBlockTokenRequestsInHiddenIframeError();\r\n }\r\n };\r\n /**\r\n *\r\n * @param cacheStorage\r\n */\r\n WindowUtils.checkIfBackButtonIsPressed = function (cacheStorage) {\r\n var redirectCache = cacheStorage.getItem(TemporaryCacheKeys.REDIRECT_REQUEST);\r\n // if redirect request is set and there is no hash\r\n if (redirectCache && !UrlUtils.urlContainsHash(window.location.hash)) {\r\n var splitCache = redirectCache.split(Constants.resourceDelimiter);\r\n splitCache.shift();\r\n var state = splitCache.length > 0 ? splitCache.join(Constants.resourceDelimiter) : null;\r\n cacheStorage.resetTempCacheItems(state);\r\n }\r\n };\r\n /**\r\n * @hidden\r\n * Interval in milliseconds that we poll a window\r\n * @ignore\r\n */\r\n WindowUtils.POLLING_INTERVAL_MS = 50;\r\n return WindowUtils;\r\n}());\r\nexport { WindowUtils };\r\n","import { __decorate } from 'tslib';\nimport { Pipe, forwardRef, EventEmitter, Input, Output, HostListener, Component, ChangeDetectionStrategy, ElementRef, Directive, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/common';\nimport * as ɵngcc2 from '@angular/forms';\n\nfunction MultiSelectComponent_span_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\");\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r0._placeholder);\n} }\nfunction MultiSelectComponent_span_4_Template(rf, ctx) { if (rf & 1) {\n const _r10 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"span\", 14)(1, \"span\");\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(3, \"a\", 15);\n ɵngcc0.ɵɵlistener(\"click\", function MultiSelectComponent_span_4_Template_a_click_3_listener($event) { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r10); const item_r7 = restoredCtx.$implicit; const ctx_r9 = ɵngcc0.ɵɵnextContext(); return ctx_r9.onItemClick($event, item_r7); });\n ɵngcc0.ɵɵtext(4, \"x\");\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const item_r7 = ctx.$implicit;\n const k_r8 = ctx.index;\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"hidden\", k_r8 > ctx_r1._settings.itemsShowLimit - 1);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate(item_r7.text);\n} }\nfunction MultiSelectComponent_span_6_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 16);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\"+\", ctx_r2.itemShowRemaining(), \"\");\n} }\nfunction MultiSelectComponent_li_10_Template(rf, ctx) { if (rf & 1) {\n const _r12 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\", 17);\n ɵngcc0.ɵɵlistener(\"click\", function MultiSelectComponent_li_10_Template_li_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r12); const ctx_r11 = ɵngcc0.ɵɵnextContext(); return ctx_r11.toggleSelectAll(); });\n ɵngcc0.ɵɵelement(1, \"input\", 18);\n ɵngcc0.ɵɵelementStart(2, \"div\");\n ɵngcc0.ɵɵtext(3);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"checked\", ctx_r3.isAllItemsSelected())(\"disabled\", ctx_r3.disabled || ctx_r3.isLimitSelectionReached());\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate(!ctx_r3.isAllItemsSelected() ? ctx_r3._settings.selectAllText : ctx_r3._settings.unSelectAllText);\n} }\nfunction MultiSelectComponent_li_11_Template(rf, ctx) { if (rf & 1) {\n const _r14 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\", 19)(1, \"input\", 20);\n ɵngcc0.ɵɵlistener(\"ngModelChange\", function MultiSelectComponent_li_11_Template_input_ngModelChange_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r14); const ctx_r13 = ɵngcc0.ɵɵnextContext(); return ctx_r13.filter.text = $event; })(\"ngModelChange\", function MultiSelectComponent_li_11_Template_input_ngModelChange_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r14); const ctx_r15 = ɵngcc0.ɵɵnextContext(); return ctx_r15.onFilterTextChange($event); });\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"readOnly\", ctx_r4.disabled)(\"placeholder\", ctx_r4._settings.searchPlaceholderText)(\"ngModel\", ctx_r4.filter.text);\n} }\nfunction MultiSelectComponent_li_13_Template(rf, ctx) { if (rf & 1) {\n const _r19 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\", 21);\n ɵngcc0.ɵɵlistener(\"click\", function MultiSelectComponent_li_13_Template_li_click_0_listener($event) { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r19); const item_r16 = restoredCtx.$implicit; const ctx_r18 = ɵngcc0.ɵɵnextContext(); return ctx_r18.onItemClick($event, item_r16); });\n ɵngcc0.ɵɵelement(1, \"input\", 22);\n ɵngcc0.ɵɵelementStart(2, \"div\");\n ɵngcc0.ɵɵtext(3);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const item_r16 = ctx.$implicit;\n const ctx_r5 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"checked\", ctx_r5.isSelected(item_r16))(\"disabled\", ctx_r5.disabled || ctx_r5.isLimitSelectionReached() && !ctx_r5.isSelected(item_r16) || item_r16.isDisabled);\n ɵngcc0.ɵɵattribute(\"aria-label\", item_r16.text);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate(item_r16.text);\n} }\nfunction MultiSelectComponent_li_15_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"li\", 23)(1, \"h5\");\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r6 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate(ctx_r6._settings.noDataAvailablePlaceholderText);\n} }\nconst _c0 = function (a0) { return { \"dropdown-multiselect--active\": a0 }; };\nclass ListItem {\n constructor(source) {\n if (typeof source === 'string' || typeof source === 'number') {\n this.id = this.text = source;\n this.isDisabled = false;\n }\n if (typeof source === 'object') {\n this.id = source.id;\n this.text = source.text;\n this.isDisabled = source.isDisabled;\n }\n }\n}\n\nlet ListFilterPipe = class ListFilterPipe {\n transform(items, filter) {\n if (!items || !filter) {\n return items;\n }\n return items.filter((item) => this.applyFilter(item, filter));\n }\n applyFilter(item, filter) {\n if (typeof item.text === 'string' && typeof filter.text === 'string') {\n return !(filter.text && item.text && item.text.toLowerCase().indexOf(filter.text.toLowerCase()) === -1);\n }\n else {\n return !(filter.text && item.text && item.text.toString().toLowerCase().indexOf(filter.text.toString().toLowerCase()) === -1);\n }\n }\n};\nListFilterPipe.ɵfac = function ListFilterPipe_Factory(t) { return new (t || ListFilterPipe)(); };\nListFilterPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"multiSelectFilter\", type: ListFilterPipe, pure: false });\n\nconst DROPDOWN_CONTROL_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MultiSelectComponent),\n multi: true\n};\nconst noop = () => { };\nconst ɵ0 = noop;\nlet MultiSelectComponent = class MultiSelectComponent {\n constructor(listFilterPipe) {\n this.listFilterPipe = listFilterPipe;\n this._data = [];\n this.selectedItems = [];\n this.isDropdownOpen = true;\n this._placeholder = \"Select\";\n this._sourceDataType = null; // to keep note of the source data type. could be array of string/number/object\n this._sourceDataFields = []; // store source data fields names\n this.filter = new ListItem(this.data);\n this.defaultSettings = {\n singleSelection: false,\n idField: \"id\",\n textField: \"text\",\n disabledField: \"isDisabled\",\n enableCheckAll: true,\n selectAllText: \"Select All\",\n unSelectAllText: \"UnSelect All\",\n allowSearchFilter: false,\n limitSelection: -1,\n clearSearchFilter: true,\n maxHeight: 197,\n itemsShowLimit: 999999999999,\n searchPlaceholderText: \"Search\",\n noDataAvailablePlaceholderText: \"No data available\",\n closeDropDownOnSelection: false,\n showSelectedItemsAtTop: false,\n defaultOpen: false,\n allowRemoteDataSearch: false\n };\n this.disabled = false;\n this.onFilterChange = new EventEmitter();\n this.onDropDownClose = new EventEmitter();\n this.onSelect = new EventEmitter();\n this.onDeSelect = new EventEmitter();\n this.onSelectAll = new EventEmitter();\n this.onDeSelectAll = new EventEmitter();\n this.onTouchedCallback = noop;\n this.onChangeCallback = noop;\n }\n set placeholder(value) {\n if (value) {\n this._placeholder = value;\n }\n else {\n this._placeholder = \"Select\";\n }\n }\n set settings(value) {\n if (value) {\n this._settings = Object.assign(this.defaultSettings, value);\n }\n else {\n this._settings = Object.assign(this.defaultSettings);\n }\n }\n set data(value) {\n if (!value) {\n this._data = [];\n }\n else {\n const firstItem = value[0];\n this._sourceDataType = typeof firstItem;\n this._sourceDataFields = this.getFields(firstItem);\n this._data = value.map((item) => typeof item === \"string\" || typeof item === \"number\"\n ? new ListItem(item)\n : new ListItem({\n id: item[this._settings.idField],\n text: item[this._settings.textField],\n isDisabled: item[this._settings.disabledField]\n }));\n }\n }\n onFilterTextChange($event) {\n this.onFilterChange.emit($event);\n }\n onItemClick($event, item) {\n if (this.disabled || item.isDisabled) {\n return false;\n }\n const found = this.isSelected(item);\n const allowAdd = this._settings.limitSelection === -1 || (this._settings.limitSelection > 0 && this.selectedItems.length < this._settings.limitSelection);\n if (!found) {\n if (allowAdd) {\n this.addSelected(item);\n }\n }\n else {\n this.removeSelected(item);\n }\n if (this._settings.singleSelection && this._settings.closeDropDownOnSelection) {\n this.closeDropdown();\n }\n }\n writeValue(value) {\n if (value !== undefined && value !== null && value.length > 0) {\n if (this._settings.singleSelection) {\n try {\n if (value.length >= 1) {\n const firstItem = value[0];\n this.selectedItems = [\n typeof firstItem === \"string\" || typeof firstItem === \"number\"\n ? new ListItem(firstItem)\n : new ListItem({\n id: firstItem[this._settings.idField],\n text: firstItem[this._settings.textField],\n isDisabled: firstItem[this._settings.disabledField]\n })\n ];\n }\n }\n catch (e) {\n // console.error(e.body.msg);\n }\n }\n else {\n const _data = value.map((item) => typeof item === \"string\" || typeof item === \"number\"\n ? new ListItem(item)\n : new ListItem({\n id: item[this._settings.idField],\n text: item[this._settings.textField],\n isDisabled: item[this._settings.disabledField]\n }));\n if (this._settings.limitSelection > 0) {\n this.selectedItems = _data.splice(0, this._settings.limitSelection);\n }\n else {\n this.selectedItems = _data;\n }\n }\n }\n else {\n this.selectedItems = [];\n }\n this.onChangeCallback(value);\n }\n // From ControlValueAccessor interface\n registerOnChange(fn) {\n this.onChangeCallback = fn;\n }\n // From ControlValueAccessor interface\n registerOnTouched(fn) {\n this.onTouchedCallback = fn;\n }\n // Set touched on blur\n onTouched() {\n this.closeDropdown();\n this.onTouchedCallback();\n }\n trackByFn(index, item) {\n return item.id;\n }\n isSelected(clickedItem) {\n let found = false;\n this.selectedItems.forEach(item => {\n if (clickedItem.id === item.id) {\n found = true;\n }\n });\n return found;\n }\n isLimitSelectionReached() {\n return this._settings.limitSelection === this.selectedItems.length;\n }\n isAllItemsSelected() {\n // get disabld item count\n let filteredItems = this.listFilterPipe.transform(this._data, this.filter);\n const itemDisabledCount = filteredItems.filter(item => item.isDisabled).length;\n // take disabled items into consideration when checking\n if ((!this.data || this.data.length === 0) && this._settings.allowRemoteDataSearch) {\n return false;\n }\n return filteredItems.length === this.selectedItems.length + itemDisabledCount;\n }\n showButton() {\n if (!this._settings.singleSelection) {\n if (this._settings.limitSelection > 0) {\n return false;\n }\n // this._settings.enableCheckAll = this._settings.limitSelection === -1 ? true : false;\n return true; // !this._settings.singleSelection && this._settings.enableCheckAll && this._data.length > 0;\n }\n else {\n // should be disabled in single selection mode\n return false;\n }\n }\n itemShowRemaining() {\n return this.selectedItems.length - this._settings.itemsShowLimit;\n }\n addSelected(item) {\n if (this._settings.singleSelection) {\n this.selectedItems = [];\n this.selectedItems.push(item);\n }\n else {\n this.selectedItems.push(item);\n }\n this.onChangeCallback(this.emittedValue(this.selectedItems));\n this.onSelect.emit(this.emittedValue(item));\n }\n removeSelected(itemSel) {\n this.selectedItems.forEach(item => {\n if (itemSel.id === item.id) {\n this.selectedItems.splice(this.selectedItems.indexOf(item), 1);\n }\n });\n this.onChangeCallback(this.emittedValue(this.selectedItems));\n this.onDeSelect.emit(this.emittedValue(itemSel));\n }\n emittedValue(val) {\n const selected = [];\n if (Array.isArray(val)) {\n val.map(item => {\n selected.push(this.objectify(item));\n });\n }\n else {\n if (val) {\n return this.objectify(val);\n }\n }\n return selected;\n }\n objectify(val) {\n if (this._sourceDataType === 'object') {\n const obj = {};\n obj[this._settings.idField] = val.id;\n obj[this._settings.textField] = val.text;\n if (this._sourceDataFields.includes(this._settings.disabledField)) {\n obj[this._settings.disabledField] = val.isDisabled;\n }\n return obj;\n }\n if (this._sourceDataType === 'number') {\n return Number(val.id);\n }\n else {\n return val.text;\n }\n }\n toggleDropdown(evt) {\n evt.preventDefault();\n if (this.disabled && this._settings.singleSelection) {\n return;\n }\n this._settings.defaultOpen = !this._settings.defaultOpen;\n if (!this._settings.defaultOpen) {\n this.onDropDownClose.emit();\n }\n }\n closeDropdown() {\n this._settings.defaultOpen = false;\n // clear search text\n if (this._settings.clearSearchFilter) {\n this.filter.text = \"\";\n }\n this.onDropDownClose.emit();\n }\n toggleSelectAll() {\n if (this.disabled) {\n return false;\n }\n if (!this.isAllItemsSelected()) {\n // filter out disabled item first before slicing\n this.selectedItems = this.listFilterPipe.transform(this._data, this.filter).filter(item => !item.isDisabled).slice();\n this.onSelectAll.emit(this.emittedValue(this.selectedItems));\n }\n else {\n this.selectedItems = [];\n this.onDeSelectAll.emit(this.emittedValue(this.selectedItems));\n }\n this.onChangeCallback(this.emittedValue(this.selectedItems));\n }\n getFields(inputData) {\n const fields = [];\n if (typeof inputData !== \"object\") {\n return fields;\n }\n // tslint:disable-next-line:forin\n for (const prop in inputData) {\n fields.push(prop);\n }\n return fields;\n }\n};\nMultiSelectComponent.ɵfac = function MultiSelectComponent_Factory(t) { return new (t || MultiSelectComponent)(ɵngcc0.ɵɵdirectiveInject(ListFilterPipe)); };\nMultiSelectComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: MultiSelectComponent, selectors: [[\"ng-multiselect-dropdown\"]], hostBindings: function MultiSelectComponent_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"blur\", function MultiSelectComponent_blur_HostBindingHandler() { return ctx.onTouched(); });\n } }, inputs: { disabled: \"disabled\", placeholder: \"placeholder\", settings: \"settings\", data: \"data\" }, outputs: { onFilterChange: \"onFilterChange\", onDropDownClose: \"onDropDownClose\", onSelect: \"onSelect\", onDeSelect: \"onDeSelect\", onSelectAll: \"onSelectAll\", onDeSelectAll: \"onDeSelectAll\" }, features: [ɵngcc0.ɵɵProvidersFeature([DROPDOWN_CONTROL_VALUE_ACCESSOR])], decls: 16, vars: 19, consts: [[\"tabindex\", \"0\", 1, \"multiselect-dropdown\", 3, \"blur\", \"clickOutside\"], [\"tabindex\", \"-1\", 1, \"dropdown-btn\", 3, \"click\"], [4, \"ngIf\"], [\"class\", \"selected-item\", 3, \"hidden\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [2, \"float\", \"right !important\", \"padding-right\", \"4px\", 3, \"ngClass\"], [\"style\", \"padding-right: 15px;\", 4, \"ngIf\"], [1, \"dropdown-multiselect__caret\"], [1, \"dropdown-list\", 3, \"hidden\"], [1, \"item1\"], [\"class\", \"multiselect-item-checkbox\", \"style\", \"border-bottom: 1px solid #ccc;padding:10px\", 3, \"click\", 4, \"ngIf\"], [\"class\", \"filter-textbox\", 4, \"ngIf\"], [1, \"item2\"], [\"class\", \"multiselect-item-checkbox\", 3, \"click\", 4, \"ngFor\", \"ngForOf\"], [\"class\", \"no-data\", 4, \"ngIf\"], [1, \"selected-item\", 3, \"hidden\"], [2, \"padding-left\", \"2px\", \"color\", \"white\", 3, \"click\"], [2, \"padding-right\", \"15px\"], [1, \"multiselect-item-checkbox\", 2, \"border-bottom\", \"1px solid #ccc\", \"padding\", \"10px\", 3, \"click\"], [\"type\", \"checkbox\", \"aria-label\", \"multiselect-select-all\", 3, \"checked\", \"disabled\"], [1, \"filter-textbox\"], [\"type\", \"text\", \"aria-label\", \"multiselect-search\", 3, \"readOnly\", \"placeholder\", \"ngModel\", \"ngModelChange\"], [1, \"multiselect-item-checkbox\", 3, \"click\"], [\"type\", \"checkbox\", 3, \"checked\", \"disabled\"], [1, \"no-data\"]], template: function MultiSelectComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 0);\n ɵngcc0.ɵɵlistener(\"blur\", function MultiSelectComponent_Template_div_blur_0_listener() { return ctx.onTouched(); })(\"clickOutside\", function MultiSelectComponent_Template_div_clickOutside_0_listener() { return ctx.closeDropdown(); });\n ɵngcc0.ɵɵelementStart(1, \"div\")(2, \"span\", 1);\n ɵngcc0.ɵɵlistener(\"click\", function MultiSelectComponent_Template_span_click_2_listener($event) { return ctx.toggleDropdown($event); });\n ɵngcc0.ɵɵtemplate(3, MultiSelectComponent_span_3_Template, 2, 1, \"span\", 2);\n ɵngcc0.ɵɵtemplate(4, MultiSelectComponent_span_4_Template, 5, 2, \"span\", 3);\n ɵngcc0.ɵɵelementStart(5, \"span\", 4);\n ɵngcc0.ɵɵtemplate(6, MultiSelectComponent_span_6_Template, 2, 1, \"span\", 5);\n ɵngcc0.ɵɵelement(7, \"span\", 6);\n ɵngcc0.ɵɵelementEnd()()();\n ɵngcc0.ɵɵelementStart(8, \"div\", 7)(9, \"ul\", 8);\n ɵngcc0.ɵɵtemplate(10, MultiSelectComponent_li_10_Template, 4, 3, \"li\", 9);\n ɵngcc0.ɵɵtemplate(11, MultiSelectComponent_li_11_Template, 2, 3, \"li\", 10);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(12, \"ul\", 11);\n ɵngcc0.ɵɵtemplate(13, MultiSelectComponent_li_13_Template, 4, 4, \"li\", 12);\n ɵngcc0.ɵɵpipe(14, \"multiSelectFilter\");\n ɵngcc0.ɵɵtemplate(15, MultiSelectComponent_li_15_Template, 3, 1, \"li\", 13);\n ɵngcc0.ɵɵelementEnd()()();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"disabled\", ctx.disabled);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.selectedItems.length == 0);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.selectedItems)(\"ngForTrackBy\", ctx.trackByFn);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction1(17, _c0, ctx._settings.defaultOpen));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.itemShowRemaining() > 0);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"hidden\", !ctx._settings.defaultOpen);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", (ctx._data.length > 0 || ctx._settings.allowRemoteDataSearch) && !ctx._settings.singleSelection && ctx._settings.enableCheckAll && ctx._settings.limitSelection === -1);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", (ctx._data.length > 0 || ctx._settings.allowRemoteDataSearch) && ctx._settings.allowSearchFilter);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵstyleProp(\"max-height\", ctx._settings.maxHeight + \"px\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ɵngcc0.ɵɵpipeBind2(14, 14, ctx._data, ctx.filter));\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx._data.length == 0 && !ctx._settings.allowRemoteDataSearch);\n } }, directives: function () { return [ClickOutsideDirective, ɵngcc1.NgIf, ɵngcc1.NgForOf, ɵngcc1.NgClass, ɵngcc2.DefaultValueAccessor, ɵngcc2.NgControlStatus, ɵngcc2.NgModel]; }, pipes: function () { return [ListFilterPipe]; }, styles: [\".multiselect-dropdown[_ngcontent-%COMP%]{position:relative;width:100%;font-size:inherit;font-family:inherit}.multiselect-dropdown[_ngcontent-%COMP%] .dropdown-btn[_ngcontent-%COMP%]{display:inline-block;border:1px solid #adadad;width:100%;padding:6px 12px;margin-bottom:0;font-weight:400;line-height:1.52857143;text-align:left;vertical-align:middle;cursor:pointer;background-image:none;border-radius:4px}.multiselect-dropdown[_ngcontent-%COMP%] .dropdown-btn[_ngcontent-%COMP%] .selected-item[_ngcontent-%COMP%]{border:1px solid #337ab7;margin-right:4px;background:#337ab7;padding:0 5px;color:#fff;border-radius:2px;float:left;display:flex;max-width:100px}.multiselect-dropdown[_ngcontent-%COMP%] .dropdown-btn[_ngcontent-%COMP%] .selected-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis}.multiselect-dropdown[_ngcontent-%COMP%] .dropdown-btn[_ngcontent-%COMP%] .selected-item[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{text-decoration:none}.multiselect-dropdown[_ngcontent-%COMP%] .dropdown-btn[_ngcontent-%COMP%] .selected-item[_ngcontent-%COMP%]:hover{box-shadow:1px 1px #959595}.multiselect-dropdown[_ngcontent-%COMP%] .dropdown-btn[_ngcontent-%COMP%] .dropdown-multiselect__caret[_ngcontent-%COMP%]{line-height:16px;display:block;position:absolute;box-sizing:border-box;width:40px;height:38px;right:1px;top:0;padding:4px 8px;margin:0;text-decoration:none;text-align:center;cursor:pointer;transition:transform .2s}.multiselect-dropdown[_ngcontent-%COMP%] .dropdown-btn[_ngcontent-%COMP%] .dropdown-multiselect__caret[_ngcontent-%COMP%]:before{position:relative;right:0;top:65%;color:#999;margin-top:4px;border-style:solid;border-width:8px 8px 0;border-color:#999 transparent;content:\\\"\\\"}.multiselect-dropdown[_ngcontent-%COMP%] .dropdown-btn[_ngcontent-%COMP%] .dropdown-multiselect--active[_ngcontent-%COMP%] .dropdown-multiselect__caret[_ngcontent-%COMP%]{transform:rotateZ(180deg)}.multiselect-dropdown[_ngcontent-%COMP%] .disabled[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{background-color:#eceeef}.dropdown-list[_ngcontent-%COMP%]{position:absolute;padding-top:6px;width:100%;z-index:9999;border:1px solid #ccc;border-radius:3px;background:#fff;margin-top:10px;box-shadow:0 1px 5px #959595}.dropdown-list[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{padding:0;list-style:none;overflow:auto;margin:0}.dropdown-list[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{padding:6px 10px;cursor:pointer;text-align:left}.dropdown-list[_ngcontent-%COMP%] .filter-textbox[_ngcontent-%COMP%]{border-bottom:1px solid #ccc;position:relative;padding:10px}.dropdown-list[_ngcontent-%COMP%] .filter-textbox[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{border:0;width:100%;padding:0 0 0 26px}.dropdown-list[_ngcontent-%COMP%] .filter-textbox[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus{outline:0}.multiselect-item-checkbox[_ngcontent-%COMP%]:hover{background-color:#e4e3e3}.multiselect-item-checkbox[_ngcontent-%COMP%] input[type=checkbox][_ngcontent-%COMP%]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.multiselect-item-checkbox[_ngcontent-%COMP%] input[type=checkbox][_ngcontent-%COMP%]:focus + div[_ngcontent-%COMP%]:before, .multiselect-item-checkbox[_ngcontent-%COMP%] input[type=checkbox][_ngcontent-%COMP%]:hover + div[_ngcontent-%COMP%]:before{border-color:#337ab7;background-color:#f2f2f2}.multiselect-item-checkbox[_ngcontent-%COMP%] input[type=checkbox][_ngcontent-%COMP%]:active + div[_ngcontent-%COMP%]:before{transition-duration:0s}.multiselect-item-checkbox[_ngcontent-%COMP%] input[type=checkbox][_ngcontent-%COMP%] + div[_ngcontent-%COMP%]{position:relative;padding-left:2em;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;margin:0;color:#000}.multiselect-item-checkbox[_ngcontent-%COMP%] input[type=checkbox][_ngcontent-%COMP%] + div[_ngcontent-%COMP%]:before{box-sizing:content-box;content:\\\"\\\";color:#337ab7;position:absolute;top:50%;left:0;width:14px;height:14px;margin-top:-9px;border:2px solid #337ab7;text-align:center;transition:.4s}.multiselect-item-checkbox[_ngcontent-%COMP%] input[type=checkbox][_ngcontent-%COMP%] + div[_ngcontent-%COMP%]:after{box-sizing:content-box;content:\\\"\\\";position:absolute;transform:scale(0);transform-origin:50%;transition:transform .2s ease-out;background-color:transparent;top:50%;left:4px;width:8px;height:3px;margin-top:-4px;border-style:solid;border-color:#fff;border-width:0 0 3px 3px;-o-border-image:none;border-image:none;transform:rotate(-45deg) scale(0)}.multiselect-item-checkbox[_ngcontent-%COMP%] input[type=checkbox][_ngcontent-%COMP%]:disabled + div[_ngcontent-%COMP%]:before{border-color:#ccc}.multiselect-item-checkbox[_ngcontent-%COMP%] input[type=checkbox][_ngcontent-%COMP%]:disabled:focus + div[_ngcontent-%COMP%]:before .multiselect-item-checkbox[_ngcontent-%COMP%] input[type=checkbox][_ngcontent-%COMP%]:disabled:hover + div[_ngcontent-%COMP%]:before{background-color:inherit}.multiselect-item-checkbox[_ngcontent-%COMP%] input[type=checkbox][_ngcontent-%COMP%]:disabled:checked + div[_ngcontent-%COMP%]:before{background-color:#ccc}.multiselect-item-checkbox[_ngcontent-%COMP%] input[type=checkbox][_ngcontent-%COMP%]:checked + div[_ngcontent-%COMP%]:after{content:\\\"\\\";transition:transform .2s ease-out;transform:rotate(-45deg) scale(1)}.multiselect-item-checkbox[_ngcontent-%COMP%] input[type=checkbox][_ngcontent-%COMP%]:checked + div[_ngcontent-%COMP%]:before{-webkit-animation:.2s ease-in borderscale;animation:.2s ease-in borderscale;background:#337ab7}@-webkit-keyframes borderscale{50%{box-shadow:0 0 0 2px #337ab7}}@keyframes borderscale{50%{box-shadow:0 0 0 2px #337ab7}}\"], changeDetection: 0 });\nMultiSelectComponent.ctorParameters = () => [\n { type: ListFilterPipe }\n];\n__decorate([\n Input()\n], MultiSelectComponent.prototype, \"placeholder\", null);\n__decorate([\n Input()\n], MultiSelectComponent.prototype, \"disabled\", void 0);\n__decorate([\n Input()\n], MultiSelectComponent.prototype, \"settings\", null);\n__decorate([\n Input()\n], MultiSelectComponent.prototype, \"data\", null);\n__decorate([\n Output(\"onFilterChange\")\n], MultiSelectComponent.prototype, \"onFilterChange\", void 0);\n__decorate([\n Output(\"onDropDownClose\")\n], MultiSelectComponent.prototype, \"onDropDownClose\", void 0);\n__decorate([\n Output(\"onSelect\")\n], MultiSelectComponent.prototype, \"onSelect\", void 0);\n__decorate([\n Output(\"onDeSelect\")\n], MultiSelectComponent.prototype, \"onDeSelect\", void 0);\n__decorate([\n Output(\"onSelectAll\")\n], MultiSelectComponent.prototype, \"onSelectAll\", void 0);\n__decorate([\n Output(\"onDeSelectAll\")\n], MultiSelectComponent.prototype, \"onDeSelectAll\", void 0);\n__decorate([\n HostListener(\"blur\")\n], MultiSelectComponent.prototype, \"onTouched\", null);\n\nlet ClickOutsideDirective = class ClickOutsideDirective {\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n this.clickOutside = new EventEmitter();\n }\n onClick(event, targetElement) {\n if (!targetElement) {\n return;\n }\n const clickedInside = this._elementRef.nativeElement.contains(targetElement);\n if (!clickedInside) {\n this.clickOutside.emit(event);\n }\n }\n};\nClickOutsideDirective.ɵfac = function ClickOutsideDirective_Factory(t) { return new (t || ClickOutsideDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nClickOutsideDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ClickOutsideDirective, selectors: [[\"\", \"clickOutside\", \"\"]], hostBindings: function ClickOutsideDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function ClickOutsideDirective_click_HostBindingHandler($event) { return ctx.onClick($event, $event.target); }, false, ɵngcc0.ɵɵresolveDocument);\n } }, outputs: { clickOutside: \"clickOutside\" } });\nClickOutsideDirective.ctorParameters = () => [\n { type: ElementRef }\n];\n__decorate([\n Output()\n], ClickOutsideDirective.prototype, \"clickOutside\", void 0);\n__decorate([\n HostListener('document:click', ['$event', '$event.target'])\n], ClickOutsideDirective.prototype, \"onClick\", null);\n\nvar NgMultiSelectDropDownModule_1;\nlet NgMultiSelectDropDownModule = NgMultiSelectDropDownModule_1 = class NgMultiSelectDropDownModule {\n static forRoot() {\n return {\n ngModule: NgMultiSelectDropDownModule_1\n };\n }\n};\nNgMultiSelectDropDownModule.ɵfac = function NgMultiSelectDropDownModule_Factory(t) { return new (t || NgMultiSelectDropDownModule)(); };\nNgMultiSelectDropDownModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgMultiSelectDropDownModule });\nNgMultiSelectDropDownModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ providers: [ListFilterPipe], imports: [[CommonModule, FormsModule]] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ListFilterPipe, [{\n type: Pipe,\n args: [{\n name: 'multiSelectFilter',\n pure: false\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MultiSelectComponent, [{\n type: Component,\n args: [{\n selector: \"ng-multiselect-dropdown\",\n template: \"
    \\n\",\n providers: [DROPDOWN_CONTROL_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush,\n styles: [\".multiselect-dropdown{position:relative;width:100%;font-size:inherit;font-family:inherit}.multiselect-dropdown .dropdown-btn{display:inline-block;border:1px solid #adadad;width:100%;padding:6px 12px;margin-bottom:0;font-weight:400;line-height:1.52857143;text-align:left;vertical-align:middle;cursor:pointer;background-image:none;border-radius:4px}.multiselect-dropdown .dropdown-btn .selected-item{border:1px solid #337ab7;margin-right:4px;background:#337ab7;padding:0 5px;color:#fff;border-radius:2px;float:left;display:flex;max-width:100px}.multiselect-dropdown .dropdown-btn .selected-item span{overflow:hidden;text-overflow:ellipsis}.multiselect-dropdown .dropdown-btn .selected-item a{text-decoration:none}.multiselect-dropdown .dropdown-btn .selected-item:hover{box-shadow:1px 1px #959595}.multiselect-dropdown .dropdown-btn .dropdown-multiselect__caret{line-height:16px;display:block;position:absolute;box-sizing:border-box;width:40px;height:38px;right:1px;top:0;padding:4px 8px;margin:0;text-decoration:none;text-align:center;cursor:pointer;transition:transform .2s}.multiselect-dropdown .dropdown-btn .dropdown-multiselect__caret:before{position:relative;right:0;top:65%;color:#999;margin-top:4px;border-style:solid;border-width:8px 8px 0;border-color:#999 transparent;content:\\\"\\\"}.multiselect-dropdown .dropdown-btn .dropdown-multiselect--active .dropdown-multiselect__caret{transform:rotateZ(180deg)}.multiselect-dropdown .disabled>span{background-color:#eceeef}.dropdown-list{position:absolute;padding-top:6px;width:100%;z-index:9999;border:1px solid #ccc;border-radius:3px;background:#fff;margin-top:10px;box-shadow:0 1px 5px #959595}.dropdown-list ul{padding:0;list-style:none;overflow:auto;margin:0}.dropdown-list li{padding:6px 10px;cursor:pointer;text-align:left}.dropdown-list .filter-textbox{border-bottom:1px solid #ccc;position:relative;padding:10px}.dropdown-list .filter-textbox input{border:0;width:100%;padding:0 0 0 26px}.dropdown-list .filter-textbox input:focus{outline:0}.multiselect-item-checkbox:hover{background-color:#e4e3e3}.multiselect-item-checkbox input[type=checkbox]{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.multiselect-item-checkbox input[type=checkbox]:focus+div:before,.multiselect-item-checkbox input[type=checkbox]:hover+div:before{border-color:#337ab7;background-color:#f2f2f2}.multiselect-item-checkbox input[type=checkbox]:active+div:before{transition-duration:0s}.multiselect-item-checkbox input[type=checkbox]+div{position:relative;padding-left:2em;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;margin:0;color:#000}.multiselect-item-checkbox input[type=checkbox]+div:before{box-sizing:content-box;content:\\\"\\\";color:#337ab7;position:absolute;top:50%;left:0;width:14px;height:14px;margin-top:-9px;border:2px solid #337ab7;text-align:center;transition:.4s}.multiselect-item-checkbox input[type=checkbox]+div:after{box-sizing:content-box;content:\\\"\\\";position:absolute;transform:scale(0);transform-origin:50%;transition:transform .2s ease-out;background-color:transparent;top:50%;left:4px;width:8px;height:3px;margin-top:-4px;border-style:solid;border-color:#fff;border-width:0 0 3px 3px;-o-border-image:none;border-image:none;transform:rotate(-45deg) scale(0)}.multiselect-item-checkbox input[type=checkbox]:disabled+div:before{border-color:#ccc}.multiselect-item-checkbox input[type=checkbox]:disabled:focus+div:before .multiselect-item-checkbox input[type=checkbox]:disabled:hover+div:before{background-color:inherit}.multiselect-item-checkbox input[type=checkbox]:disabled:checked+div:before{background-color:#ccc}.multiselect-item-checkbox input[type=checkbox]:checked+div:after{content:\\\"\\\";transition:transform .2s ease-out;transform:rotate(-45deg) scale(1)}.multiselect-item-checkbox input[type=checkbox]:checked+div:before{-webkit-animation:.2s ease-in borderscale;animation:.2s ease-in borderscale;background:#337ab7}@-webkit-keyframes borderscale{50%{box-shadow:0 0 0 2px #337ab7}}@keyframes borderscale{50%{box-shadow:0 0 0 2px #337ab7}}\"]\n }]\n }], function () { return [{ type: ListFilterPipe }]; }, { disabled: [{\n type: Input\n }], onFilterChange: [{\n type: Output,\n args: [\"onFilterChange\"]\n }], onDropDownClose: [{\n type: Output,\n args: [\"onDropDownClose\"]\n }], onSelect: [{\n type: Output,\n args: [\"onSelect\"]\n }], onDeSelect: [{\n type: Output,\n args: [\"onDeSelect\"]\n }], onSelectAll: [{\n type: Output,\n args: [\"onSelectAll\"]\n }], onDeSelectAll: [{\n type: Output,\n args: [\"onDeSelectAll\"]\n }], placeholder: [{\n type: Input\n }], settings: [{\n type: Input\n }], data: [{\n type: Input\n }], \n // Set touched on blur\n onTouched: [{\n type: HostListener,\n args: [\"blur\"]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ClickOutsideDirective, [{\n type: Directive,\n args: [{\n selector: '[clickOutside]'\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }]; }, { clickOutside: [{\n type: Output\n }], onClick: [{\n type: HostListener,\n args: ['document:click', ['$event', '$event.target']]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgMultiSelectDropDownModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, FormsModule],\n declarations: [MultiSelectComponent, ClickOutsideDirective, ListFilterPipe],\n providers: [ListFilterPipe],\n exports: [MultiSelectComponent]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgMultiSelectDropDownModule, { declarations: function () { return [MultiSelectComponent, ClickOutsideDirective, ListFilterPipe]; }, imports: function () { return [CommonModule, FormsModule]; }, exports: function () { return [MultiSelectComponent]; } }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MultiSelectComponent, NgMultiSelectDropDownModule, DROPDOWN_CONTROL_VALUE_ACCESSOR as ɵa, ListFilterPipe as ɵb, ClickOutsideDirective as ɵc };\n\n","// ::- Persistent data structure representing an ordered mapping from\n// strings to values, with some convenient update methods.\nfunction OrderedMap(content) {\n this.content = content;\n}\n\nOrderedMap.prototype = {\n constructor: OrderedMap,\n\n find: function(key) {\n for (var i = 0; i < this.content.length; i += 2)\n if (this.content[i] === key) return i\n return -1\n },\n\n // :: (string) → ?any\n // Retrieve the value stored under `key`, or return undefined when\n // no such key exists.\n get: function(key) {\n var found = this.find(key);\n return found == -1 ? undefined : this.content[found + 1]\n },\n\n // :: (string, any, ?string) → OrderedMap\n // Create a new map by replacing the value of `key` with a new\n // value, or adding a binding to the end of the map. If `newKey` is\n // given, the key of the binding will be replaced with that key.\n update: function(key, value, newKey) {\n var self = newKey && newKey != key ? this.remove(newKey) : this;\n var found = self.find(key), content = self.content.slice();\n if (found == -1) {\n content.push(newKey || key, value);\n } else {\n content[found + 1] = value;\n if (newKey) content[found] = newKey;\n }\n return new OrderedMap(content)\n },\n\n // :: (string) → OrderedMap\n // Return a map with the given key removed, if it existed.\n remove: function(key) {\n var found = this.find(key);\n if (found == -1) return this\n var content = this.content.slice();\n content.splice(found, 2);\n return new OrderedMap(content)\n },\n\n // :: (string, any) → OrderedMap\n // Add a new key to the start of the map.\n addToStart: function(key, value) {\n return new OrderedMap([key, value].concat(this.remove(key).content))\n },\n\n // :: (string, any) → OrderedMap\n // Add a new key to the end of the map.\n addToEnd: function(key, value) {\n var content = this.remove(key).content.slice();\n content.push(key, value);\n return new OrderedMap(content)\n },\n\n // :: (string, string, any) → OrderedMap\n // Add a key after the given key. If `place` is not found, the new\n // key is added to the end.\n addBefore: function(place, key, value) {\n var without = this.remove(key), content = without.content.slice();\n var found = without.find(place);\n content.splice(found == -1 ? content.length : found, 0, key, value);\n return new OrderedMap(content)\n },\n\n // :: ((key: string, value: any))\n // Call the given function for each key/value pair in the map, in\n // order.\n forEach: function(f) {\n for (var i = 0; i < this.content.length; i += 2)\n f(this.content[i], this.content[i + 1]);\n },\n\n // :: (union) → OrderedMap\n // Create a new map by prepending the keys in this map that don't\n // appear in `map` before the keys in `map`.\n prepend: function(map) {\n map = OrderedMap.from(map);\n if (!map.size) return this\n return new OrderedMap(map.content.concat(this.subtract(map).content))\n },\n\n // :: (union) → OrderedMap\n // Create a new map by appending the keys in this map that don't\n // appear in `map` after the keys in `map`.\n append: function(map) {\n map = OrderedMap.from(map);\n if (!map.size) return this\n return new OrderedMap(this.subtract(map).content.concat(map.content))\n },\n\n // :: (union) → OrderedMap\n // Create a map containing all the keys in this map that don't\n // appear in `map`.\n subtract: function(map) {\n var result = this;\n map = OrderedMap.from(map);\n for (var i = 0; i < map.content.length; i += 2)\n result = result.remove(map.content[i]);\n return result\n },\n\n // :: number\n // The amount of keys in this map.\n get size() {\n return this.content.length >> 1\n }\n};\n\n// :: (?union) → OrderedMap\n// Return a map with the given content. If null, create an empty\n// map. If given an ordered map, return that map itself. If given an\n// object, create a map from the object's properties.\nOrderedMap.from = function(value) {\n if (value instanceof OrderedMap) return value\n var content = [];\n if (value) for (var prop in value) content.push(prop, value[prop]);\n return new OrderedMap(content)\n};\n\nvar orderedmap = OrderedMap;\n\nexport default orderedmap;\n","import { liftTarget, replaceStep, canJoin, joinPoint, canSplit, ReplaceAroundStep, findWrapping } from 'prosemirror-transform';\nimport { Slice, Fragment } from 'prosemirror-model';\nimport { NodeSelection, Selection, AllSelection, TextSelection } from 'prosemirror-state';\n\n// :: (EditorState, ?(tr: Transaction)) → bool\n// Delete the selection, if there is one.\nfunction deleteSelection(state, dispatch) {\n if (state.selection.empty) { return false }\n if (dispatch) { dispatch(state.tr.deleteSelection().scrollIntoView()); }\n return true\n}\n\n// :: (EditorState, ?(tr: Transaction), ?EditorView) → bool\n// If the selection is empty and at the start of a textblock, try to\n// reduce the distance between that block and the one before it—if\n// there's a block directly before it that can be joined, join them.\n// If not, try to move the selected block closer to the next one in\n// the document structure by lifting it out of its parent or moving it\n// into a parent of the previous block. Will use the view for accurate\n// (bidi-aware) start-of-textblock detection if given.\nfunction joinBackward(state, dispatch, view) {\n var ref = state.selection;\n var $cursor = ref.$cursor;\n if (!$cursor || (view ? !view.endOfTextblock(\"backward\", state)\n : $cursor.parentOffset > 0))\n { return false }\n\n var $cut = findCutBefore($cursor);\n\n // If there is no node before this, try to lift\n if (!$cut) {\n var range = $cursor.blockRange(), target = range && liftTarget(range);\n if (target == null) { return false }\n if (dispatch) { dispatch(state.tr.lift(range, target).scrollIntoView()); }\n return true\n }\n\n var before = $cut.nodeBefore;\n // Apply the joining algorithm\n if (!before.type.spec.isolating && deleteBarrier(state, $cut, dispatch))\n { return true }\n\n // If the node below has no content and the node above is\n // selectable, delete the node below and select the one above.\n if ($cursor.parent.content.size == 0 &&\n (textblockAt(before, \"end\") || NodeSelection.isSelectable(before))) {\n var delStep = replaceStep(state.doc, $cursor.before(), $cursor.after(), Slice.empty);\n if (delStep.slice.size < delStep.to - delStep.from) {\n if (dispatch) {\n var tr = state.tr.step(delStep);\n tr.setSelection(textblockAt(before, \"end\") ? Selection.findFrom(tr.doc.resolve(tr.mapping.map($cut.pos, -1)), -1)\n : NodeSelection.create(tr.doc, $cut.pos - before.nodeSize));\n dispatch(tr.scrollIntoView());\n }\n return true\n }\n }\n\n // If the node before is an atom, delete it\n if (before.isAtom && $cut.depth == $cursor.depth - 1) {\n if (dispatch) { dispatch(state.tr.delete($cut.pos - before.nodeSize, $cut.pos).scrollIntoView()); }\n return true\n }\n\n return false\n}\n\nfunction textblockAt(node, side, only) {\n for (; node; node = (side == \"start\" ? node.firstChild : node.lastChild)) {\n if (node.isTextblock) { return true }\n if (only && node.childCount != 1) { return false }\n }\n return false\n}\n\n// :: (EditorState, ?(tr: Transaction), ?EditorView) → bool\n// When the selection is empty and at the start of a textblock, select\n// the node before that textblock, if possible. This is intended to be\n// bound to keys like backspace, after\n// [`joinBackward`](#commands.joinBackward) or other deleting\n// commands, as a fall-back behavior when the schema doesn't allow\n// deletion at the selected point.\nfunction selectNodeBackward(state, dispatch, view) {\n var ref = state.selection;\n var $head = ref.$head;\n var empty = ref.empty;\n var $cut = $head;\n if (!empty) { return false }\n\n if ($head.parent.isTextblock) {\n if (view ? !view.endOfTextblock(\"backward\", state) : $head.parentOffset > 0) { return false }\n $cut = findCutBefore($head);\n }\n var node = $cut && $cut.nodeBefore;\n if (!node || !NodeSelection.isSelectable(node)) { return false }\n if (dispatch)\n { dispatch(state.tr.setSelection(NodeSelection.create(state.doc, $cut.pos - node.nodeSize)).scrollIntoView()); }\n return true\n}\n\nfunction findCutBefore($pos) {\n if (!$pos.parent.type.spec.isolating) { for (var i = $pos.depth - 1; i >= 0; i--) {\n if ($pos.index(i) > 0) { return $pos.doc.resolve($pos.before(i + 1)) }\n if ($pos.node(i).type.spec.isolating) { break }\n } }\n return null\n}\n\n// :: (EditorState, ?(tr: Transaction), ?EditorView) → bool\n// If the selection is empty and the cursor is at the end of a\n// textblock, try to reduce or remove the boundary between that block\n// and the one after it, either by joining them or by moving the other\n// block closer to this one in the tree structure. Will use the view\n// for accurate start-of-textblock detection if given.\nfunction joinForward(state, dispatch, view) {\n var ref = state.selection;\n var $cursor = ref.$cursor;\n if (!$cursor || (view ? !view.endOfTextblock(\"forward\", state)\n : $cursor.parentOffset < $cursor.parent.content.size))\n { return false }\n\n var $cut = findCutAfter($cursor);\n\n // If there is no node after this, there's nothing to do\n if (!$cut) { return false }\n\n var after = $cut.nodeAfter;\n // Try the joining algorithm\n if (deleteBarrier(state, $cut, dispatch)) { return true }\n\n // If the node above has no content and the node below is\n // selectable, delete the node above and select the one below.\n if ($cursor.parent.content.size == 0 &&\n (textblockAt(after, \"start\") || NodeSelection.isSelectable(after))) {\n var delStep = replaceStep(state.doc, $cursor.before(), $cursor.after(), Slice.empty);\n if (delStep.slice.size < delStep.to - delStep.from) {\n if (dispatch) {\n var tr = state.tr.step(delStep);\n tr.setSelection(textblockAt(after, \"start\") ? Selection.findFrom(tr.doc.resolve(tr.mapping.map($cut.pos)), 1)\n : NodeSelection.create(tr.doc, tr.mapping.map($cut.pos)));\n dispatch(tr.scrollIntoView());\n }\n return true\n }\n }\n\n // If the next node is an atom, delete it\n if (after.isAtom && $cut.depth == $cursor.depth - 1) {\n if (dispatch) { dispatch(state.tr.delete($cut.pos, $cut.pos + after.nodeSize).scrollIntoView()); }\n return true\n }\n\n return false\n}\n\n// :: (EditorState, ?(tr: Transaction), ?EditorView) → bool\n// When the selection is empty and at the end of a textblock, select\n// the node coming after that textblock, if possible. This is intended\n// to be bound to keys like delete, after\n// [`joinForward`](#commands.joinForward) and similar deleting\n// commands, to provide a fall-back behavior when the schema doesn't\n// allow deletion at the selected point.\nfunction selectNodeForward(state, dispatch, view) {\n var ref = state.selection;\n var $head = ref.$head;\n var empty = ref.empty;\n var $cut = $head;\n if (!empty) { return false }\n if ($head.parent.isTextblock) {\n if (view ? !view.endOfTextblock(\"forward\", state) : $head.parentOffset < $head.parent.content.size)\n { return false }\n $cut = findCutAfter($head);\n }\n var node = $cut && $cut.nodeAfter;\n if (!node || !NodeSelection.isSelectable(node)) { return false }\n if (dispatch)\n { dispatch(state.tr.setSelection(NodeSelection.create(state.doc, $cut.pos)).scrollIntoView()); }\n return true\n}\n\nfunction findCutAfter($pos) {\n if (!$pos.parent.type.spec.isolating) { for (var i = $pos.depth - 1; i >= 0; i--) {\n var parent = $pos.node(i);\n if ($pos.index(i) + 1 < parent.childCount) { return $pos.doc.resolve($pos.after(i + 1)) }\n if (parent.type.spec.isolating) { break }\n } }\n return null\n}\n\n// :: (EditorState, ?(tr: Transaction)) → bool\n// Join the selected block or, if there is a text selection, the\n// closest ancestor block of the selection that can be joined, with\n// the sibling above it.\nfunction joinUp(state, dispatch) {\n var sel = state.selection, nodeSel = sel instanceof NodeSelection, point;\n if (nodeSel) {\n if (sel.node.isTextblock || !canJoin(state.doc, sel.from)) { return false }\n point = sel.from;\n } else {\n point = joinPoint(state.doc, sel.from, -1);\n if (point == null) { return false }\n }\n if (dispatch) {\n var tr = state.tr.join(point);\n if (nodeSel) { tr.setSelection(NodeSelection.create(tr.doc, point - state.doc.resolve(point).nodeBefore.nodeSize)); }\n dispatch(tr.scrollIntoView());\n }\n return true\n}\n\n// :: (EditorState, ?(tr: Transaction)) → bool\n// Join the selected block, or the closest ancestor of the selection\n// that can be joined, with the sibling after it.\nfunction joinDown(state, dispatch) {\n var sel = state.selection, point;\n if (sel instanceof NodeSelection) {\n if (sel.node.isTextblock || !canJoin(state.doc, sel.to)) { return false }\n point = sel.to;\n } else {\n point = joinPoint(state.doc, sel.to, 1);\n if (point == null) { return false }\n }\n if (dispatch)\n { dispatch(state.tr.join(point).scrollIntoView()); }\n return true\n}\n\n// :: (EditorState, ?(tr: Transaction)) → bool\n// Lift the selected block, or the closest ancestor block of the\n// selection that can be lifted, out of its parent node.\nfunction lift(state, dispatch) {\n var ref = state.selection;\n var $from = ref.$from;\n var $to = ref.$to;\n var range = $from.blockRange($to), target = range && liftTarget(range);\n if (target == null) { return false }\n if (dispatch) { dispatch(state.tr.lift(range, target).scrollIntoView()); }\n return true\n}\n\n// :: (EditorState, ?(tr: Transaction)) → bool\n// If the selection is in a node whose type has a truthy\n// [`code`](#model.NodeSpec.code) property in its spec, replace the\n// selection with a newline character.\nfunction newlineInCode(state, dispatch) {\n var ref = state.selection;\n var $head = ref.$head;\n var $anchor = ref.$anchor;\n if (!$head.parent.type.spec.code || !$head.sameParent($anchor)) { return false }\n if (dispatch) { dispatch(state.tr.insertText(\"\\n\").scrollIntoView()); }\n return true\n}\n\nfunction defaultBlockAt(match) {\n for (var i = 0; i < match.edgeCount; i++) {\n var ref = match.edge(i);\n var type = ref.type;\n if (type.isTextblock && !type.hasRequiredAttrs()) { return type }\n }\n return null\n}\n\n// :: (EditorState, ?(tr: Transaction)) → bool\n// When the selection is in a node with a truthy\n// [`code`](#model.NodeSpec.code) property in its spec, create a\n// default block after the code block, and move the cursor there.\nfunction exitCode(state, dispatch) {\n var ref = state.selection;\n var $head = ref.$head;\n var $anchor = ref.$anchor;\n if (!$head.parent.type.spec.code || !$head.sameParent($anchor)) { return false }\n var above = $head.node(-1), after = $head.indexAfter(-1), type = defaultBlockAt(above.contentMatchAt(after));\n if (!above.canReplaceWith(after, after, type)) { return false }\n if (dispatch) {\n var pos = $head.after(), tr = state.tr.replaceWith(pos, pos, type.createAndFill());\n tr.setSelection(Selection.near(tr.doc.resolve(pos), 1));\n dispatch(tr.scrollIntoView());\n }\n return true\n}\n\n// :: (EditorState, ?(tr: Transaction)) → bool\n// If a block node is selected, create an empty paragraph before (if\n// it is its parent's first child) or after it.\nfunction createParagraphNear(state, dispatch) {\n var sel = state.selection;\n var $from = sel.$from;\n var $to = sel.$to;\n if (sel instanceof AllSelection || $from.parent.inlineContent || $to.parent.inlineContent) { return false }\n var type = defaultBlockAt($to.parent.contentMatchAt($to.indexAfter()));\n if (!type || !type.isTextblock) { return false }\n if (dispatch) {\n var side = (!$from.parentOffset && $to.index() < $to.parent.childCount ? $from : $to).pos;\n var tr = state.tr.insert(side, type.createAndFill());\n tr.setSelection(TextSelection.create(tr.doc, side + 1));\n dispatch(tr.scrollIntoView());\n }\n return true\n}\n\n// :: (EditorState, ?(tr: Transaction)) → bool\n// If the cursor is in an empty textblock that can be lifted, lift the\n// block.\nfunction liftEmptyBlock(state, dispatch) {\n var ref = state.selection;\n var $cursor = ref.$cursor;\n if (!$cursor || $cursor.parent.content.size) { return false }\n if ($cursor.depth > 1 && $cursor.after() != $cursor.end(-1)) {\n var before = $cursor.before();\n if (canSplit(state.doc, before)) {\n if (dispatch) { dispatch(state.tr.split(before).scrollIntoView()); }\n return true\n }\n }\n var range = $cursor.blockRange(), target = range && liftTarget(range);\n if (target == null) { return false }\n if (dispatch) { dispatch(state.tr.lift(range, target).scrollIntoView()); }\n return true\n}\n\n// :: (EditorState, ?(tr: Transaction)) → bool\n// Split the parent block of the selection. If the selection is a text\n// selection, also delete its content.\nfunction splitBlock(state, dispatch) {\n var ref = state.selection;\n var $from = ref.$from;\n var $to = ref.$to;\n if (state.selection instanceof NodeSelection && state.selection.node.isBlock) {\n if (!$from.parentOffset || !canSplit(state.doc, $from.pos)) { return false }\n if (dispatch) { dispatch(state.tr.split($from.pos).scrollIntoView()); }\n return true\n }\n\n if (!$from.parent.isBlock) { return false }\n\n if (dispatch) {\n var atEnd = $to.parentOffset == $to.parent.content.size;\n var tr = state.tr;\n if (state.selection instanceof TextSelection || state.selection instanceof AllSelection) { tr.deleteSelection(); }\n var deflt = $from.depth == 0 ? null : defaultBlockAt($from.node(-1).contentMatchAt($from.indexAfter(-1)));\n var types = atEnd && deflt ? [{type: deflt}] : null;\n var can = canSplit(tr.doc, tr.mapping.map($from.pos), 1, types);\n if (!types && !can && canSplit(tr.doc, tr.mapping.map($from.pos), 1, deflt && [{type: deflt}])) {\n types = [{type: deflt}];\n can = true;\n }\n if (can) {\n tr.split(tr.mapping.map($from.pos), 1, types);\n if (!atEnd && !$from.parentOffset && $from.parent.type != deflt) {\n var first = tr.mapping.map($from.before()), $first = tr.doc.resolve(first);\n if ($from.node(-1).canReplaceWith($first.index(), $first.index() + 1, deflt))\n { tr.setNodeMarkup(tr.mapping.map($from.before()), deflt); }\n }\n }\n dispatch(tr.scrollIntoView());\n }\n return true\n}\n\n// :: (EditorState, ?(tr: Transaction)) → bool\n// Acts like [`splitBlock`](#commands.splitBlock), but without\n// resetting the set of active marks at the cursor.\nfunction splitBlockKeepMarks(state, dispatch) {\n return splitBlock(state, dispatch && (function (tr) {\n var marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks());\n if (marks) { tr.ensureMarks(marks); }\n dispatch(tr);\n }))\n}\n\n// :: (EditorState, ?(tr: Transaction)) → bool\n// Move the selection to the node wrapping the current selection, if\n// any. (Will not select the document node.)\nfunction selectParentNode(state, dispatch) {\n var ref = state.selection;\n var $from = ref.$from;\n var to = ref.to;\n var pos;\n var same = $from.sharedDepth(to);\n if (same == 0) { return false }\n pos = $from.before(same);\n if (dispatch) { dispatch(state.tr.setSelection(NodeSelection.create(state.doc, pos))); }\n return true\n}\n\n// :: (EditorState, ?(tr: Transaction)) → bool\n// Select the whole document.\nfunction selectAll(state, dispatch) {\n if (dispatch) { dispatch(state.tr.setSelection(new AllSelection(state.doc))); }\n return true\n}\n\nfunction joinMaybeClear(state, $pos, dispatch) {\n var before = $pos.nodeBefore, after = $pos.nodeAfter, index = $pos.index();\n if (!before || !after || !before.type.compatibleContent(after.type)) { return false }\n if (!before.content.size && $pos.parent.canReplace(index - 1, index)) {\n if (dispatch) { dispatch(state.tr.delete($pos.pos - before.nodeSize, $pos.pos).scrollIntoView()); }\n return true\n }\n if (!$pos.parent.canReplace(index, index + 1) || !(after.isTextblock || canJoin(state.doc, $pos.pos)))\n { return false }\n if (dispatch)\n { dispatch(state.tr\n .clearIncompatible($pos.pos, before.type, before.contentMatchAt(before.childCount))\n .join($pos.pos)\n .scrollIntoView()); }\n return true\n}\n\nfunction deleteBarrier(state, $cut, dispatch) {\n var before = $cut.nodeBefore, after = $cut.nodeAfter, conn, match;\n if (before.type.spec.isolating || after.type.spec.isolating) { return false }\n if (joinMaybeClear(state, $cut, dispatch)) { return true }\n\n var canDelAfter = $cut.parent.canReplace($cut.index(), $cut.index() + 1);\n if (canDelAfter &&\n (conn = (match = before.contentMatchAt(before.childCount)).findWrapping(after.type)) &&\n match.matchType(conn[0] || after.type).validEnd) {\n if (dispatch) {\n var end = $cut.pos + after.nodeSize, wrap = Fragment.empty;\n for (var i = conn.length - 1; i >= 0; i--)\n { wrap = Fragment.from(conn[i].create(null, wrap)); }\n wrap = Fragment.from(before.copy(wrap));\n var tr = state.tr.step(new ReplaceAroundStep($cut.pos - 1, end, $cut.pos, end, new Slice(wrap, 1, 0), conn.length, true));\n var joinAt = end + 2 * conn.length;\n if (canJoin(tr.doc, joinAt)) { tr.join(joinAt); }\n dispatch(tr.scrollIntoView());\n }\n return true\n }\n\n var selAfter = Selection.findFrom($cut, 1);\n var range = selAfter && selAfter.$from.blockRange(selAfter.$to), target = range && liftTarget(range);\n if (target != null && target >= $cut.depth) {\n if (dispatch) { dispatch(state.tr.lift(range, target).scrollIntoView()); }\n return true\n }\n\n if (canDelAfter && textblockAt(after, \"start\", true) && textblockAt(before, \"end\")) {\n var at = before, wrap$1 = [];\n for (;;) {\n wrap$1.push(at);\n if (at.isTextblock) { break }\n at = at.lastChild;\n }\n var afterText = after, afterDepth = 1;\n for (; !afterText.isTextblock; afterText = afterText.firstChild) { afterDepth++; }\n if (at.canReplace(at.childCount, at.childCount, afterText.content)) {\n if (dispatch) {\n var end$1 = Fragment.empty;\n for (var i$1 = wrap$1.length - 1; i$1 >= 0; i$1--) { end$1 = Fragment.from(wrap$1[i$1].copy(end$1)); }\n var tr$1 = state.tr.step(new ReplaceAroundStep($cut.pos - wrap$1.length, $cut.pos + after.nodeSize,\n $cut.pos + afterDepth, $cut.pos + after.nodeSize - afterDepth,\n new Slice(end$1, wrap$1.length, 0), 0, true));\n dispatch(tr$1.scrollIntoView());\n }\n return true\n }\n }\n\n return false\n}\n\nfunction selectTextblockSide(side) {\n return function(state, dispatch) {\n var sel = state.selection, $pos = side < 0 ? sel.$from : sel.$to;\n var depth = $pos.depth;\n while ($pos.node(depth).isInline) {\n if (!depth) { return false }\n depth--;\n }\n if (!$pos.node(depth).isTextblock) { return false }\n if (dispatch)\n { dispatch(state.tr.setSelection(TextSelection.create(\n state.doc, side < 0 ? $pos.start(depth) : $pos.end(depth)))); }\n return true\n }\n}\n\n// :: (EditorState, ?(tr: Transaction)) → bool\n// Moves the cursor to the start of current text block.\nvar selectTextblockStart = selectTextblockSide(-1);\n\n// :: (EditorState, ?(tr: Transaction)) → bool\n// Moves the cursor to the end of current text block.\nvar selectTextblockEnd = selectTextblockSide(1);\n\n// Parameterized commands\n\n// :: (NodeType, ?Object) → (state: EditorState, dispatch: ?(tr: Transaction)) → bool\n// Wrap the selection in a node of the given type with the given\n// attributes.\nfunction wrapIn(nodeType, attrs) {\n return function(state, dispatch) {\n var ref = state.selection;\n var $from = ref.$from;\n var $to = ref.$to;\n var range = $from.blockRange($to), wrapping = range && findWrapping(range, nodeType, attrs);\n if (!wrapping) { return false }\n if (dispatch) { dispatch(state.tr.wrap(range, wrapping).scrollIntoView()); }\n return true\n }\n}\n\n// :: (NodeType, ?Object) → (state: EditorState, dispatch: ?(tr: Transaction)) → bool\n// Returns a command that tries to set the selected textblocks to the\n// given node type with the given attributes.\nfunction setBlockType(nodeType, attrs) {\n return function(state, dispatch) {\n var ref = state.selection;\n var from = ref.from;\n var to = ref.to;\n var applicable = false;\n state.doc.nodesBetween(from, to, function (node, pos) {\n if (applicable) { return false }\n if (!node.isTextblock || node.hasMarkup(nodeType, attrs)) { return }\n if (node.type == nodeType) {\n applicable = true;\n } else {\n var $pos = state.doc.resolve(pos), index = $pos.index();\n applicable = $pos.parent.canReplaceWith(index, index + 1, nodeType);\n }\n });\n if (!applicable) { return false }\n if (dispatch) { dispatch(state.tr.setBlockType(from, to, nodeType, attrs).scrollIntoView()); }\n return true\n }\n}\n\nfunction markApplies(doc, ranges, type) {\n var loop = function ( i ) {\n var ref = ranges[i];\n var $from = ref.$from;\n var $to = ref.$to;\n var can = $from.depth == 0 ? doc.type.allowsMarkType(type) : false;\n doc.nodesBetween($from.pos, $to.pos, function (node) {\n if (can) { return false }\n can = node.inlineContent && node.type.allowsMarkType(type);\n });\n if (can) { return { v: true } }\n };\n\n for (var i = 0; i < ranges.length; i++) {\n var returned = loop( i );\n\n if ( returned ) return returned.v;\n }\n return false\n}\n\n// :: (MarkType, ?Object) → (state: EditorState, dispatch: ?(tr: Transaction)) → bool\n// Create a command function that toggles the given mark with the\n// given attributes. Will return `false` when the current selection\n// doesn't support that mark. This will remove the mark if any marks\n// of that type exist in the selection, or add it otherwise. If the\n// selection is empty, this applies to the [stored\n// marks](#state.EditorState.storedMarks) instead of a range of the\n// document.\nfunction toggleMark(markType, attrs) {\n return function(state, dispatch) {\n var ref = state.selection;\n var empty = ref.empty;\n var $cursor = ref.$cursor;\n var ranges = ref.ranges;\n if ((empty && !$cursor) || !markApplies(state.doc, ranges, markType)) { return false }\n if (dispatch) {\n if ($cursor) {\n if (markType.isInSet(state.storedMarks || $cursor.marks()))\n { dispatch(state.tr.removeStoredMark(markType)); }\n else\n { dispatch(state.tr.addStoredMark(markType.create(attrs))); }\n } else {\n var has = false, tr = state.tr;\n for (var i = 0; !has && i < ranges.length; i++) {\n var ref$1 = ranges[i];\n var $from = ref$1.$from;\n var $to = ref$1.$to;\n has = state.doc.rangeHasMark($from.pos, $to.pos, markType);\n }\n for (var i$1 = 0; i$1 < ranges.length; i$1++) {\n var ref$2 = ranges[i$1];\n var $from$1 = ref$2.$from;\n var $to$1 = ref$2.$to;\n if (has) {\n tr.removeMark($from$1.pos, $to$1.pos, markType);\n } else {\n var from = $from$1.pos, to = $to$1.pos, start = $from$1.nodeAfter, end = $to$1.nodeBefore;\n var spaceStart = start && start.isText ? /^\\s*/.exec(start.text)[0].length : 0;\n var spaceEnd = end && end.isText ? /\\s*$/.exec(end.text)[0].length : 0;\n if (from + spaceStart < to) { from += spaceStart; to -= spaceEnd; }\n tr.addMark(from, to, markType.create(attrs));\n }\n }\n dispatch(tr.scrollIntoView());\n }\n }\n return true\n }\n}\n\nfunction wrapDispatchForJoin(dispatch, isJoinable) {\n return function (tr) {\n if (!tr.isGeneric) { return dispatch(tr) }\n\n var ranges = [];\n for (var i = 0; i < tr.mapping.maps.length; i++) {\n var map = tr.mapping.maps[i];\n for (var j = 0; j < ranges.length; j++)\n { ranges[j] = map.map(ranges[j]); }\n map.forEach(function (_s, _e, from, to) { return ranges.push(from, to); });\n }\n\n // Figure out which joinable points exist inside those ranges,\n // by checking all node boundaries in their parent nodes.\n var joinable = [];\n for (var i$1 = 0; i$1 < ranges.length; i$1 += 2) {\n var from = ranges[i$1], to = ranges[i$1 + 1];\n var $from = tr.doc.resolve(from), depth = $from.sharedDepth(to), parent = $from.node(depth);\n for (var index = $from.indexAfter(depth), pos = $from.after(depth + 1); pos <= to; ++index) {\n var after = parent.maybeChild(index);\n if (!after) { break }\n if (index && joinable.indexOf(pos) == -1) {\n var before = parent.child(index - 1);\n if (before.type == after.type && isJoinable(before, after))\n { joinable.push(pos); }\n }\n pos += after.nodeSize;\n }\n }\n // Join the joinable points\n joinable.sort(function (a, b) { return a - b; });\n for (var i$2 = joinable.length - 1; i$2 >= 0; i$2--) {\n if (canJoin(tr.doc, joinable[i$2])) { tr.join(joinable[i$2]); }\n }\n dispatch(tr);\n }\n}\n\n// :: ((state: EditorState, ?(tr: Transaction)) → bool, union<(before: Node, after: Node) → bool, [string]>) → (state: EditorState, ?(tr: Transaction)) → bool\n// Wrap a command so that, when it produces a transform that causes\n// two joinable nodes to end up next to each other, those are joined.\n// Nodes are considered joinable when they are of the same type and\n// when the `isJoinable` predicate returns true for them or, if an\n// array of strings was passed, if their node type name is in that\n// array.\nfunction autoJoin(command, isJoinable) {\n if (Array.isArray(isJoinable)) {\n var types = isJoinable;\n isJoinable = function (node) { return types.indexOf(node.type.name) > -1; };\n }\n return function (state, dispatch, view) { return command(state, dispatch && wrapDispatchForJoin(dispatch, isJoinable), view); }\n}\n\n// :: (...[(EditorState, ?(tr: Transaction), ?EditorView) → bool]) → (EditorState, ?(tr: Transaction), ?EditorView) → bool\n// Combine a number of command functions into a single function (which\n// calls them one by one until one returns true).\nfunction chainCommands() {\n var commands = [], len = arguments.length;\n while ( len-- ) commands[ len ] = arguments[ len ];\n\n return function(state, dispatch, view) {\n for (var i = 0; i < commands.length; i++)\n { if (commands[i](state, dispatch, view)) { return true } }\n return false\n }\n}\n\nvar backspace = chainCommands(deleteSelection, joinBackward, selectNodeBackward);\nvar del = chainCommands(deleteSelection, joinForward, selectNodeForward);\n\n// :: Object\n// A basic keymap containing bindings not specific to any schema.\n// Binds the following keys (when multiple commands are listed, they\n// are chained with [`chainCommands`](#commands.chainCommands)):\n//\n// * **Enter** to `newlineInCode`, `createParagraphNear`, `liftEmptyBlock`, `splitBlock`\n// * **Mod-Enter** to `exitCode`\n// * **Backspace** and **Mod-Backspace** to `deleteSelection`, `joinBackward`, `selectNodeBackward`\n// * **Delete** and **Mod-Delete** to `deleteSelection`, `joinForward`, `selectNodeForward`\n// * **Mod-Delete** to `deleteSelection`, `joinForward`, `selectNodeForward`\n// * **Mod-a** to `selectAll`\nvar pcBaseKeymap = {\n \"Enter\": chainCommands(newlineInCode, createParagraphNear, liftEmptyBlock, splitBlock),\n \"Mod-Enter\": exitCode,\n \"Backspace\": backspace,\n \"Mod-Backspace\": backspace,\n \"Shift-Backspace\": backspace,\n \"Delete\": del,\n \"Mod-Delete\": del,\n \"Mod-a\": selectAll\n};\n\n// :: Object\n// A copy of `pcBaseKeymap` that also binds **Ctrl-h** like Backspace,\n// **Ctrl-d** like Delete, **Alt-Backspace** like Ctrl-Backspace, and\n// **Ctrl-Alt-Backspace**, **Alt-Delete**, and **Alt-d** like\n// Ctrl-Delete.\nvar macBaseKeymap = {\n \"Ctrl-h\": pcBaseKeymap[\"Backspace\"],\n \"Alt-Backspace\": pcBaseKeymap[\"Mod-Backspace\"],\n \"Ctrl-d\": pcBaseKeymap[\"Delete\"],\n \"Ctrl-Alt-Backspace\": pcBaseKeymap[\"Mod-Delete\"],\n \"Alt-Delete\": pcBaseKeymap[\"Mod-Delete\"],\n \"Alt-d\": pcBaseKeymap[\"Mod-Delete\"],\n \"Ctrl-a\": selectTextblockStart,\n \"Ctrl-e\": selectTextblockEnd\n};\nfor (var key in pcBaseKeymap) { macBaseKeymap[key] = pcBaseKeymap[key]; }\n\npcBaseKeymap.Home = selectTextblockStart;\npcBaseKeymap.End = selectTextblockEnd;\n\n// declare global: os, navigator\nvar mac = typeof navigator != \"undefined\" ? /Mac|iP(hone|[oa]d)/.test(navigator.platform)\n : typeof os != \"undefined\" ? os.platform() == \"darwin\" : false;\n\n// :: Object\n// Depending on the detected platform, this will hold\n// [`pcBasekeymap`](#commands.pcBaseKeymap) or\n// [`macBaseKeymap`](#commands.macBaseKeymap).\nvar baseKeymap = mac ? macBaseKeymap : pcBaseKeymap;\n\nexport { autoJoin, baseKeymap, chainCommands, createParagraphNear, deleteSelection, exitCode, joinBackward, joinDown, joinForward, joinUp, lift, liftEmptyBlock, macBaseKeymap, newlineInCode, pcBaseKeymap, selectAll, selectNodeBackward, selectNodeForward, selectParentNode, selectTextblockEnd, selectTextblockStart, setBlockType, splitBlock, splitBlockKeepMarks, toggleMark, wrapIn };\n","import { Plugin } from 'prosemirror-state';\nimport { dropPoint } from 'prosemirror-transform';\n\n// :: (options: ?Object) → Plugin\n// Create a plugin that, when added to a ProseMirror instance,\n// causes a decoration to show up at the drop position when something\n// is dragged over the editor.\n//\n// Nodes may add a `disableDropCursor` property to their spec to\n// control the showing of a drop cursor inside them. This may be a\n// boolean or a function, which will be called with a view and a\n// position, and should return a boolean.\n//\n// options::- These options are supported:\n//\n// color:: ?string\n// The color of the cursor. Defaults to `black`.\n//\n// width:: ?number\n// The precise width of the cursor in pixels. Defaults to 1.\n//\n// class:: ?string\n// A CSS class name to add to the cursor element.\nfunction dropCursor(options) {\n if ( options === void 0 ) options = {};\n\n return new Plugin({\n view: function view(editorView) { return new DropCursorView(editorView, options) }\n })\n}\n\nvar DropCursorView = function DropCursorView(editorView, options) {\n var this$1 = this;\n\n this.editorView = editorView;\n this.width = options.width || 1;\n this.color = options.color || \"black\";\n this.class = options.class;\n this.cursorPos = null;\n this.element = null;\n this.timeout = null;\n\n this.handlers = [\"dragover\", \"dragend\", \"drop\", \"dragleave\"].map(function (name) {\n var handler = function (e) { return this$1[name](e); };\n editorView.dom.addEventListener(name, handler);\n return {name: name, handler: handler}\n });\n};\n\nDropCursorView.prototype.destroy = function destroy () {\n var this$1 = this;\n\n this.handlers.forEach(function (ref) {\n var name = ref.name;\n var handler = ref.handler;\n\n return this$1.editorView.dom.removeEventListener(name, handler);\n });\n};\n\nDropCursorView.prototype.update = function update (editorView, prevState) {\n if (this.cursorPos != null && prevState.doc != editorView.state.doc) {\n if (this.cursorPos > editorView.state.doc.content.size) { this.setCursor(null); }\n else { this.updateOverlay(); }\n }\n};\n\nDropCursorView.prototype.setCursor = function setCursor (pos) {\n if (pos == this.cursorPos) { return }\n this.cursorPos = pos;\n if (pos == null) {\n this.element.parentNode.removeChild(this.element);\n this.element = null;\n } else {\n this.updateOverlay();\n }\n};\n\nDropCursorView.prototype.updateOverlay = function updateOverlay () {\n var $pos = this.editorView.state.doc.resolve(this.cursorPos), rect;\n if (!$pos.parent.inlineContent) {\n var before = $pos.nodeBefore, after = $pos.nodeAfter;\n if (before || after) {\n var nodeRect = this.editorView.nodeDOM(this.cursorPos - (before ?before.nodeSize : 0)).getBoundingClientRect();\n var top = before ? nodeRect.bottom : nodeRect.top;\n if (before && after)\n { top = (top + this.editorView.nodeDOM(this.cursorPos).getBoundingClientRect().top) / 2; }\n rect = {left: nodeRect.left, right: nodeRect.right, top: top - this.width / 2, bottom: top + this.width / 2};\n }\n }\n if (!rect) {\n var coords = this.editorView.coordsAtPos(this.cursorPos);\n rect = {left: coords.left - this.width / 2, right: coords.left + this.width / 2, top: coords.top, bottom: coords.bottom};\n }\n\n var parent = this.editorView.dom.offsetParent;\n if (!this.element) {\n this.element = parent.appendChild(document.createElement(\"div\"));\n if (this.class) { this.element.className = this.class; }\n this.element.style.cssText = \"position: absolute; z-index: 50; pointer-events: none; background-color: \" + this.color;\n }\n var parentLeft, parentTop;\n if (!parent || parent == document.body && getComputedStyle(parent).position == \"static\") {\n parentLeft = -pageXOffset;\n parentTop = -pageYOffset;\n } else {\n var rect$1 = parent.getBoundingClientRect();\n parentLeft = rect$1.left - parent.scrollLeft;\n parentTop = rect$1.top - parent.scrollTop;\n }\n this.element.style.left = (rect.left - parentLeft) + \"px\";\n this.element.style.top = (rect.top - parentTop) + \"px\";\n this.element.style.width = (rect.right - rect.left) + \"px\";\n this.element.style.height = (rect.bottom - rect.top) + \"px\";\n};\n\nDropCursorView.prototype.scheduleRemoval = function scheduleRemoval (timeout) {\n var this$1 = this;\n\n clearTimeout(this.timeout);\n this.timeout = setTimeout(function () { return this$1.setCursor(null); }, timeout);\n};\n\nDropCursorView.prototype.dragover = function dragover (event) {\n if (!this.editorView.editable) { return }\n var pos = this.editorView.posAtCoords({left: event.clientX, top: event.clientY});\n\n var node = pos && pos.inside >= 0 && this.editorView.state.doc.nodeAt(pos.inside);\n var disableDropCursor = node && node.type.spec.disableDropCursor;\n var disabled = typeof disableDropCursor == \"function\" ? disableDropCursor(this.editorView, pos) : disableDropCursor;\n\n if (pos && !disabled) {\n var target = pos.pos;\n if (this.editorView.dragging && this.editorView.dragging.slice) {\n target = dropPoint(this.editorView.state.doc, target, this.editorView.dragging.slice);\n if (target == null) { return this.setCursor(null) }\n }\n this.setCursor(target);\n this.scheduleRemoval(5000);\n }\n};\n\nDropCursorView.prototype.dragend = function dragend () {\n this.scheduleRemoval(20);\n};\n\nDropCursorView.prototype.drop = function drop () {\n this.scheduleRemoval(20);\n};\n\nDropCursorView.prototype.dragleave = function dragleave (event) {\n if (event.target == this.editorView.dom || !this.editorView.dom.contains(event.relatedTarget))\n { this.setCursor(null); }\n};\n\nexport { dropCursor };\n","import { keydownHandler } from 'prosemirror-keymap';\nimport { NodeSelection, Selection, Plugin, TextSelection } from 'prosemirror-state';\nimport { DecorationSet, Decoration } from 'prosemirror-view';\nimport { Slice } from 'prosemirror-model';\n\n// ::- Gap cursor selections are represented using this class. Its\n// `$anchor` and `$head` properties both point at the cursor position.\nvar GapCursor = /*@__PURE__*/(function (Selection) {\n function GapCursor($pos) {\n Selection.call(this, $pos, $pos);\n }\n\n if ( Selection ) GapCursor.__proto__ = Selection;\n GapCursor.prototype = Object.create( Selection && Selection.prototype );\n GapCursor.prototype.constructor = GapCursor;\n\n GapCursor.prototype.map = function map (doc, mapping) {\n var $pos = doc.resolve(mapping.map(this.head));\n return GapCursor.valid($pos) ? new GapCursor($pos) : Selection.near($pos)\n };\n\n GapCursor.prototype.content = function content () { return Slice.empty };\n\n GapCursor.prototype.eq = function eq (other) {\n return other instanceof GapCursor && other.head == this.head\n };\n\n GapCursor.prototype.toJSON = function toJSON () {\n return {type: \"gapcursor\", pos: this.head}\n };\n\n GapCursor.fromJSON = function fromJSON (doc, json) {\n if (typeof json.pos != \"number\") { throw new RangeError(\"Invalid input for GapCursor.fromJSON\") }\n return new GapCursor(doc.resolve(json.pos))\n };\n\n GapCursor.prototype.getBookmark = function getBookmark () { return new GapBookmark(this.anchor) };\n\n GapCursor.valid = function valid ($pos) {\n var parent = $pos.parent;\n if (parent.isTextblock || !closedBefore($pos) || !closedAfter($pos)) { return false }\n var override = parent.type.spec.allowGapCursor;\n if (override != null) { return override }\n var deflt = parent.contentMatchAt($pos.index()).defaultType;\n return deflt && deflt.isTextblock\n };\n\n GapCursor.findFrom = function findFrom ($pos, dir, mustMove) {\n search: for (;;) {\n if (!mustMove && GapCursor.valid($pos)) { return $pos }\n var pos = $pos.pos, next = null;\n // Scan up from this position\n for (var d = $pos.depth;; d--) {\n var parent = $pos.node(d);\n if (dir > 0 ? $pos.indexAfter(d) < parent.childCount : $pos.index(d) > 0) {\n next = parent.child(dir > 0 ? $pos.indexAfter(d) : $pos.index(d) - 1);\n break\n } else if (d == 0) {\n return null\n }\n pos += dir;\n var $cur = $pos.doc.resolve(pos);\n if (GapCursor.valid($cur)) { return $cur }\n }\n\n // And then down into the next node\n for (;;) {\n var inside = dir > 0 ? next.firstChild : next.lastChild;\n if (!inside) {\n if (next.isAtom && !next.isText && !NodeSelection.isSelectable(next)) {\n $pos = $pos.doc.resolve(pos + next.nodeSize * dir);\n mustMove = false;\n continue search\n }\n break\n }\n next = inside;\n pos += dir;\n var $cur$1 = $pos.doc.resolve(pos);\n if (GapCursor.valid($cur$1)) { return $cur$1 }\n }\n\n return null\n }\n };\n\n return GapCursor;\n}(Selection));\n\nGapCursor.prototype.visible = false;\n\nSelection.jsonID(\"gapcursor\", GapCursor);\n\nvar GapBookmark = function GapBookmark(pos) {\n this.pos = pos;\n};\nGapBookmark.prototype.map = function map (mapping) {\n return new GapBookmark(mapping.map(this.pos))\n};\nGapBookmark.prototype.resolve = function resolve (doc) {\n var $pos = doc.resolve(this.pos);\n return GapCursor.valid($pos) ? new GapCursor($pos) : Selection.near($pos)\n};\n\nfunction closedBefore($pos) {\n for (var d = $pos.depth; d >= 0; d--) {\n var index = $pos.index(d), parent = $pos.node(d);\n // At the start of this parent, look at next one\n if (index == 0) {\n if (parent.type.spec.isolating) { return true }\n continue\n }\n // See if the node before (or its first ancestor) is closed\n for (var before = parent.child(index - 1);; before = before.lastChild) {\n if ((before.childCount == 0 && !before.inlineContent) || before.isAtom || before.type.spec.isolating) { return true }\n if (before.inlineContent) { return false }\n }\n }\n // Hit start of document\n return true\n}\n\nfunction closedAfter($pos) {\n for (var d = $pos.depth; d >= 0; d--) {\n var index = $pos.indexAfter(d), parent = $pos.node(d);\n if (index == parent.childCount) {\n if (parent.type.spec.isolating) { return true }\n continue\n }\n for (var after = parent.child(index);; after = after.firstChild) {\n if ((after.childCount == 0 && !after.inlineContent) || after.isAtom || after.type.spec.isolating) { return true }\n if (after.inlineContent) { return false }\n }\n }\n return true\n}\n\n// :: () → Plugin\n// Create a gap cursor plugin. When enabled, this will capture clicks\n// near and arrow-key-motion past places that don't have a normally\n// selectable position nearby, and create a gap cursor selection for\n// them. The cursor is drawn as an element with class\n// `ProseMirror-gapcursor`. You can either include\n// `style/gapcursor.css` from the package's directory or add your own\n// styles to make it visible.\nvar gapCursor = function() {\n return new Plugin({\n props: {\n decorations: drawGapCursor,\n\n createSelectionBetween: function createSelectionBetween(_view, $anchor, $head) {\n if ($anchor.pos == $head.pos && GapCursor.valid($head)) { return new GapCursor($head) }\n },\n\n handleClick: handleClick,\n handleKeyDown: handleKeyDown\n }\n })\n};\n\nvar handleKeyDown = keydownHandler({\n \"ArrowLeft\": arrow(\"horiz\", -1),\n \"ArrowRight\": arrow(\"horiz\", 1),\n \"ArrowUp\": arrow(\"vert\", -1),\n \"ArrowDown\": arrow(\"vert\", 1)\n});\n\nfunction arrow(axis, dir) {\n var dirStr = axis == \"vert\" ? (dir > 0 ? \"down\" : \"up\") : (dir > 0 ? \"right\" : \"left\");\n return function(state, dispatch, view) {\n var sel = state.selection;\n var $start = dir > 0 ? sel.$to : sel.$from, mustMove = sel.empty;\n if (sel instanceof TextSelection) {\n if (!view.endOfTextblock(dirStr) || $start.depth == 0) { return false }\n mustMove = false;\n $start = state.doc.resolve(dir > 0 ? $start.after() : $start.before());\n }\n var $found = GapCursor.findFrom($start, dir, mustMove);\n if (!$found) { return false }\n if (dispatch) { dispatch(state.tr.setSelection(new GapCursor($found))); }\n return true\n }\n}\n\nfunction handleClick(view, pos, event) {\n if (!view.editable) { return false }\n var $pos = view.state.doc.resolve(pos);\n if (!GapCursor.valid($pos)) { return false }\n var ref = view.posAtCoords({left: event.clientX, top: event.clientY});\n var inside = ref.inside;\n if (inside > -1 && NodeSelection.isSelectable(view.state.doc.nodeAt(inside))) { return false }\n view.dispatch(view.state.tr.setSelection(new GapCursor($pos)));\n return true\n}\n\nfunction drawGapCursor(state) {\n if (!(state.selection instanceof GapCursor)) { return null }\n var node = document.createElement(\"div\");\n node.className = \"ProseMirror-gapcursor\";\n return DecorationSet.create(state.doc, [Decoration.widget(state.selection.head, node, {key: \"gapcursor\"})])\n}\n\nexport { GapCursor, gapCursor };\n","import RopeSequence from 'rope-sequence';\nimport { Mapping } from 'prosemirror-transform';\nimport { PluginKey, Plugin } from 'prosemirror-state';\n\n// ProseMirror's history isn't simply a way to roll back to a previous\n// state, because ProseMirror supports applying changes without adding\n// them to the history (for example during collaboration).\n//\n// To this end, each 'Branch' (one for the undo history and one for\n// the redo history) keeps an array of 'Items', which can optionally\n// hold a step (an actual undoable change), and always hold a position\n// map (which is needed to move changes below them to apply to the\n// current document).\n//\n// An item that has both a step and a selection bookmark is the start\n// of an 'event' — a group of changes that will be undone or redone at\n// once. (It stores only the bookmark, since that way we don't have to\n// provide a document until the selection is actually applied, which\n// is useful when compressing.)\n\n// Used to schedule history compression\nvar max_empty_items = 500;\n\nvar Branch = function Branch(items, eventCount) {\n this.items = items;\n this.eventCount = eventCount;\n};\n\n// : (EditorState, bool) → ?{transform: Transform, selection: ?SelectionBookmark, remaining: Branch}\n// Pop the latest event off the branch's history and apply it\n// to a document transform.\nBranch.prototype.popEvent = function popEvent (state, preserveItems) {\n var this$1 = this;\n\n if (this.eventCount == 0) { return null }\n\n var end = this.items.length;\n for (;; end--) {\n var next = this.items.get(end - 1);\n if (next.selection) { --end; break }\n }\n\n var remap, mapFrom;\n if (preserveItems) {\n remap = this.remapping(end, this.items.length);\n mapFrom = remap.maps.length;\n }\n var transform = state.tr;\n var selection, remaining;\n var addAfter = [], addBefore = [];\n\n this.items.forEach(function (item, i) {\n if (!item.step) {\n if (!remap) {\n remap = this$1.remapping(end, i + 1);\n mapFrom = remap.maps.length;\n }\n mapFrom--;\n addBefore.push(item);\n return\n }\n\n if (remap) {\n addBefore.push(new Item(item.map));\n var step = item.step.map(remap.slice(mapFrom)), map;\n\n if (step && transform.maybeStep(step).doc) {\n map = transform.mapping.maps[transform.mapping.maps.length - 1];\n addAfter.push(new Item(map, null, null, addAfter.length + addBefore.length));\n }\n mapFrom--;\n if (map) { remap.appendMap(map, mapFrom); }\n } else {\n transform.maybeStep(item.step);\n }\n\n if (item.selection) {\n selection = remap ? item.selection.map(remap.slice(mapFrom)) : item.selection;\n remaining = new Branch(this$1.items.slice(0, end).append(addBefore.reverse().concat(addAfter)), this$1.eventCount - 1);\n return false\n }\n }, this.items.length, 0);\n\n return {remaining: remaining, transform: transform, selection: selection}\n};\n\n// : (Transform, ?SelectionBookmark, Object) → Branch\n// Create a new branch with the given transform added.\nBranch.prototype.addTransform = function addTransform (transform, selection, histOptions, preserveItems) {\n var newItems = [], eventCount = this.eventCount;\n var oldItems = this.items, lastItem = !preserveItems && oldItems.length ? oldItems.get(oldItems.length - 1) : null;\n\n for (var i = 0; i < transform.steps.length; i++) {\n var step = transform.steps[i].invert(transform.docs[i]);\n var item = new Item(transform.mapping.maps[i], step, selection), merged = (void 0);\n if (merged = lastItem && lastItem.merge(item)) {\n item = merged;\n if (i) { newItems.pop(); }\n else { oldItems = oldItems.slice(0, oldItems.length - 1); }\n }\n newItems.push(item);\n if (selection) {\n eventCount++;\n selection = null;\n }\n if (!preserveItems) { lastItem = item; }\n }\n var overflow = eventCount - histOptions.depth;\n if (overflow > DEPTH_OVERFLOW) {\n oldItems = cutOffEvents(oldItems, overflow);\n eventCount -= overflow;\n }\n return new Branch(oldItems.append(newItems), eventCount)\n};\n\nBranch.prototype.remapping = function remapping (from, to) {\n var maps = new Mapping;\n this.items.forEach(function (item, i) {\n var mirrorPos = item.mirrorOffset != null && i - item.mirrorOffset >= from\n ? maps.maps.length - item.mirrorOffset : null;\n maps.appendMap(item.map, mirrorPos);\n }, from, to);\n return maps\n};\n\nBranch.prototype.addMaps = function addMaps (array) {\n if (this.eventCount == 0) { return this }\n return new Branch(this.items.append(array.map(function (map) { return new Item(map); })), this.eventCount)\n};\n\n// : (Transform, number)\n// When the collab module receives remote changes, the history has\n// to know about those, so that it can adjust the steps that were\n// rebased on top of the remote changes, and include the position\n// maps for the remote changes in its array of items.\nBranch.prototype.rebased = function rebased (rebasedTransform, rebasedCount) {\n if (!this.eventCount) { return this }\n\n var rebasedItems = [], start = Math.max(0, this.items.length - rebasedCount);\n\n var mapping = rebasedTransform.mapping;\n var newUntil = rebasedTransform.steps.length;\n var eventCount = this.eventCount;\n this.items.forEach(function (item) { if (item.selection) { eventCount--; } }, start);\n\n var iRebased = rebasedCount;\n this.items.forEach(function (item) {\n var pos = mapping.getMirror(--iRebased);\n if (pos == null) { return }\n newUntil = Math.min(newUntil, pos);\n var map = mapping.maps[pos];\n if (item.step) {\n var step = rebasedTransform.steps[pos].invert(rebasedTransform.docs[pos]);\n var selection = item.selection && item.selection.map(mapping.slice(iRebased + 1, pos));\n if (selection) { eventCount++; }\n rebasedItems.push(new Item(map, step, selection));\n } else {\n rebasedItems.push(new Item(map));\n }\n }, start);\n\n var newMaps = [];\n for (var i = rebasedCount; i < newUntil; i++)\n { newMaps.push(new Item(mapping.maps[i])); }\n var items = this.items.slice(0, start).append(newMaps).append(rebasedItems);\n var branch = new Branch(items, eventCount);\n\n if (branch.emptyItemCount() > max_empty_items)\n { branch = branch.compress(this.items.length - rebasedItems.length); }\n return branch\n};\n\nBranch.prototype.emptyItemCount = function emptyItemCount () {\n var count = 0;\n this.items.forEach(function (item) { if (!item.step) { count++; } });\n return count\n};\n\n// Compressing a branch means rewriting it to push the air (map-only\n// items) out. During collaboration, these naturally accumulate\n// because each remote change adds one. The `upto` argument is used\n// to ensure that only the items below a given level are compressed,\n// because `rebased` relies on a clean, untouched set of items in\n// order to associate old items with rebased steps.\nBranch.prototype.compress = function compress (upto) {\n if ( upto === void 0 ) upto = this.items.length;\n\n var remap = this.remapping(0, upto), mapFrom = remap.maps.length;\n var items = [], events = 0;\n this.items.forEach(function (item, i) {\n if (i >= upto) {\n items.push(item);\n if (item.selection) { events++; }\n } else if (item.step) {\n var step = item.step.map(remap.slice(mapFrom)), map = step && step.getMap();\n mapFrom--;\n if (map) { remap.appendMap(map, mapFrom); }\n if (step) {\n var selection = item.selection && item.selection.map(remap.slice(mapFrom));\n if (selection) { events++; }\n var newItem = new Item(map.invert(), step, selection), merged, last = items.length - 1;\n if (merged = items.length && items[last].merge(newItem))\n { items[last] = merged; }\n else\n { items.push(newItem); }\n }\n } else if (item.map) {\n mapFrom--;\n }\n }, this.items.length, 0);\n return new Branch(RopeSequence.from(items.reverse()), events)\n};\n\nBranch.empty = new Branch(RopeSequence.empty, 0);\n\nfunction cutOffEvents(items, n) {\n var cutPoint;\n items.forEach(function (item, i) {\n if (item.selection && (n-- == 0)) {\n cutPoint = i;\n return false\n }\n });\n return items.slice(cutPoint)\n}\n\nvar Item = function Item(map, step, selection, mirrorOffset) {\n // The (forward) step map for this item.\n this.map = map;\n // The inverted step\n this.step = step;\n // If this is non-null, this item is the start of a group, and\n // this selection is the starting selection for the group (the one\n // that was active before the first step was applied)\n this.selection = selection;\n // If this item is the inverse of a previous mapping on the stack,\n // this points at the inverse's offset\n this.mirrorOffset = mirrorOffset;\n};\n\nItem.prototype.merge = function merge (other) {\n if (this.step && other.step && !other.selection) {\n var step = other.step.merge(this.step);\n if (step) { return new Item(step.getMap().invert(), step, this.selection) }\n }\n};\n\n// The value of the state field that tracks undo/redo history for that\n// state. Will be stored in the plugin state when the history plugin\n// is active.\nvar HistoryState = function HistoryState(done, undone, prevRanges, prevTime) {\n this.done = done;\n this.undone = undone;\n this.prevRanges = prevRanges;\n this.prevTime = prevTime;\n};\n\nvar DEPTH_OVERFLOW = 20;\n\n// : (HistoryState, EditorState, Transaction, Object)\n// Record a transformation in undo history.\nfunction applyTransaction(history, state, tr, options) {\n var historyTr = tr.getMeta(historyKey), rebased;\n if (historyTr) { return historyTr.historyState }\n\n if (tr.getMeta(closeHistoryKey)) { history = new HistoryState(history.done, history.undone, null, 0); }\n\n var appended = tr.getMeta(\"appendedTransaction\");\n\n if (tr.steps.length == 0) {\n return history\n } else if (appended && appended.getMeta(historyKey)) {\n if (appended.getMeta(historyKey).redo)\n { return new HistoryState(history.done.addTransform(tr, null, options, mustPreserveItems(state)),\n history.undone, rangesFor(tr.mapping.maps[tr.steps.length - 1]), history.prevTime) }\n else\n { return new HistoryState(history.done, history.undone.addTransform(tr, null, options, mustPreserveItems(state)),\n null, history.prevTime) }\n } else if (tr.getMeta(\"addToHistory\") !== false && !(appended && appended.getMeta(\"addToHistory\") === false)) {\n // Group transforms that occur in quick succession into one event.\n var newGroup = history.prevTime == 0 || !appended && (history.prevTime < (tr.time || 0) - options.newGroupDelay ||\n !isAdjacentTo(tr, history.prevRanges));\n var prevRanges = appended ? mapRanges(history.prevRanges, tr.mapping) : rangesFor(tr.mapping.maps[tr.steps.length - 1]);\n return new HistoryState(history.done.addTransform(tr, newGroup ? state.selection.getBookmark() : null,\n options, mustPreserveItems(state)),\n Branch.empty, prevRanges, tr.time)\n } else if (rebased = tr.getMeta(\"rebased\")) {\n // Used by the collab module to tell the history that some of its\n // content has been rebased.\n return new HistoryState(history.done.rebased(tr, rebased),\n history.undone.rebased(tr, rebased),\n mapRanges(history.prevRanges, tr.mapping), history.prevTime)\n } else {\n return new HistoryState(history.done.addMaps(tr.mapping.maps),\n history.undone.addMaps(tr.mapping.maps),\n mapRanges(history.prevRanges, tr.mapping), history.prevTime)\n }\n}\n\nfunction isAdjacentTo(transform, prevRanges) {\n if (!prevRanges) { return false }\n if (!transform.docChanged) { return true }\n var adjacent = false;\n transform.mapping.maps[0].forEach(function (start, end) {\n for (var i = 0; i < prevRanges.length; i += 2)\n { if (start <= prevRanges[i + 1] && end >= prevRanges[i])\n { adjacent = true; } }\n });\n return adjacent\n}\n\nfunction rangesFor(map) {\n var result = [];\n map.forEach(function (_from, _to, from, to) { return result.push(from, to); });\n return result\n}\n\nfunction mapRanges(ranges, mapping) {\n if (!ranges) { return null }\n var result = [];\n for (var i = 0; i < ranges.length; i += 2) {\n var from = mapping.map(ranges[i], 1), to = mapping.map(ranges[i + 1], -1);\n if (from <= to) { result.push(from, to); }\n }\n return result\n}\n\n// : (HistoryState, EditorState, (tr: Transaction), bool)\n// Apply the latest event from one branch to the document and shift the event\n// onto the other branch.\nfunction histTransaction(history, state, dispatch, redo) {\n var preserveItems = mustPreserveItems(state), histOptions = historyKey.get(state).spec.config;\n var pop = (redo ? history.undone : history.done).popEvent(state, preserveItems);\n if (!pop) { return }\n\n var selection = pop.selection.resolve(pop.transform.doc);\n var added = (redo ? history.done : history.undone).addTransform(pop.transform, state.selection.getBookmark(),\n histOptions, preserveItems);\n\n var newHist = new HistoryState(redo ? added : pop.remaining, redo ? pop.remaining : added, null, 0);\n dispatch(pop.transform.setSelection(selection).setMeta(historyKey, {redo: redo, historyState: newHist}).scrollIntoView());\n}\n\nvar cachedPreserveItems = false, cachedPreserveItemsPlugins = null;\n// Check whether any plugin in the given state has a\n// `historyPreserveItems` property in its spec, in which case we must\n// preserve steps exactly as they came in, so that they can be\n// rebased.\nfunction mustPreserveItems(state) {\n var plugins = state.plugins;\n if (cachedPreserveItemsPlugins != plugins) {\n cachedPreserveItems = false;\n cachedPreserveItemsPlugins = plugins;\n for (var i = 0; i < plugins.length; i++) { if (plugins[i].spec.historyPreserveItems) {\n cachedPreserveItems = true;\n break\n } }\n }\n return cachedPreserveItems\n}\n\n// :: (Transaction) → Transaction\n// Set a flag on the given transaction that will prevent further steps\n// from being appended to an existing history event (so that they\n// require a separate undo command to undo).\nfunction closeHistory(tr) {\n return tr.setMeta(closeHistoryKey, true)\n}\n\nvar historyKey = new PluginKey(\"history\");\nvar closeHistoryKey = new PluginKey(\"closeHistory\");\n\n// :: (?Object) → Plugin\n// Returns a plugin that enables the undo history for an editor. The\n// plugin will track undo and redo stacks, which can be used with the\n// [`undo`](#history.undo) and [`redo`](#history.redo) commands.\n//\n// You can set an `\"addToHistory\"` [metadata\n// property](#state.Transaction.setMeta) of `false` on a transaction\n// to prevent it from being rolled back by undo.\n//\n// config::-\n// Supports the following configuration options:\n//\n// depth:: ?number\n// The amount of history events that are collected before the\n// oldest events are discarded. Defaults to 100.\n//\n// newGroupDelay:: ?number\n// The delay between changes after which a new group should be\n// started. Defaults to 500 (milliseconds). Note that when changes\n// aren't adjacent, a new group is always started.\nfunction history(config) {\n config = {depth: config && config.depth || 100,\n newGroupDelay: config && config.newGroupDelay || 500};\n return new Plugin({\n key: historyKey,\n\n state: {\n init: function init() {\n return new HistoryState(Branch.empty, Branch.empty, null, 0)\n },\n apply: function apply(tr, hist, state) {\n return applyTransaction(hist, state, tr, config)\n }\n },\n\n config: config,\n\n props: {\n handleDOMEvents: {\n beforeinput: function beforeinput(view, e) {\n var handled = e.inputType == \"historyUndo\" ? undo(view.state, view.dispatch) :\n e.inputType == \"historyRedo\" ? redo(view.state, view.dispatch) : false;\n if (handled) { e.preventDefault(); }\n return handled\n }\n }\n }\n })\n}\n\n// :: (EditorState, ?(tr: Transaction)) → bool\n// A command function that undoes the last change, if any.\nfunction undo(state, dispatch) {\n var hist = historyKey.getState(state);\n if (!hist || hist.done.eventCount == 0) { return false }\n if (dispatch) { histTransaction(hist, state, dispatch, false); }\n return true\n}\n\n// :: (EditorState, ?(tr: Transaction)) → bool\n// A command function that redoes the last undone change, if any.\nfunction redo(state, dispatch) {\n var hist = historyKey.getState(state);\n if (!hist || hist.undone.eventCount == 0) { return false }\n if (dispatch) { histTransaction(hist, state, dispatch, true); }\n return true\n}\n\n// :: (EditorState) → number\n// The amount of undoable events available in a given state.\nfunction undoDepth(state) {\n var hist = historyKey.getState(state);\n return hist ? hist.done.eventCount : 0\n}\n\n// :: (EditorState) → number\n// The amount of redoable events available in a given editor state.\nfunction redoDepth(state) {\n var hist = historyKey.getState(state);\n return hist ? hist.undone.eventCount : 0\n}\n\nexport { HistoryState, closeHistory, history, redo, redoDepth, undo, undoDepth };\n","import { Plugin } from 'prosemirror-state';\nimport { findWrapping, canJoin } from 'prosemirror-transform';\n\n// ::- Input rules are regular expressions describing a piece of text\n// that, when typed, causes something to happen. This might be\n// changing two dashes into an emdash, wrapping a paragraph starting\n// with `\"> \"` into a blockquote, or something entirely different.\nvar InputRule = function InputRule(match, handler) {\n this.match = match;\n this.handler = typeof handler == \"string\" ? stringHandler(handler) : handler;\n};\n\nfunction stringHandler(string) {\n return function(state, match, start, end) {\n var insert = string;\n if (match[1]) {\n var offset = match[0].lastIndexOf(match[1]);\n insert += match[0].slice(offset + match[1].length);\n start += offset;\n var cutOff = start - end;\n if (cutOff > 0) {\n insert = match[0].slice(offset - cutOff, offset) + insert;\n start = end;\n }\n }\n return state.tr.insertText(insert, start, end)\n }\n}\n\nvar MAX_MATCH = 500;\n\n// :: (config: {rules: [InputRule]}) → Plugin\n// Create an input rules plugin. When enabled, it will cause text\n// input that matches any of the given rules to trigger the rule's\n// action.\nfunction inputRules(ref) {\n var rules = ref.rules;\n\n var plugin = new Plugin({\n state: {\n init: function init() { return null },\n apply: function apply(tr, prev) {\n var stored = tr.getMeta(this);\n if (stored) { return stored }\n return tr.selectionSet || tr.docChanged ? null : prev\n }\n },\n\n props: {\n handleTextInput: function handleTextInput(view, from, to, text) {\n return run(view, from, to, text, rules, plugin)\n },\n handleDOMEvents: {\n compositionend: function (view) {\n setTimeout(function () {\n var ref = view.state.selection;\n var $cursor = ref.$cursor;\n if ($cursor) { run(view, $cursor.pos, $cursor.pos, \"\", rules, plugin); }\n });\n }\n }\n },\n\n isInputRules: true\n });\n return plugin\n}\n\nfunction run(view, from, to, text, rules, plugin) {\n if (view.composing) { return false }\n var state = view.state, $from = state.doc.resolve(from);\n if ($from.parent.type.spec.code) { return false }\n var textBefore = $from.parent.textBetween(Math.max(0, $from.parentOffset - MAX_MATCH), $from.parentOffset,\n null, \"\\ufffc\") + text;\n for (var i = 0; i < rules.length; i++) {\n var match = rules[i].match.exec(textBefore);\n var tr = match && rules[i].handler(state, match, from - (match[0].length - text.length), to);\n if (!tr) { continue }\n view.dispatch(tr.setMeta(plugin, {transform: tr, from: from, to: to, text: text}));\n return true\n }\n return false\n}\n\n// :: (EditorState, ?(Transaction)) → bool\n// This is a command that will undo an input rule, if applying such a\n// rule was the last thing that the user did.\nfunction undoInputRule(state, dispatch) {\n var plugins = state.plugins;\n for (var i = 0; i < plugins.length; i++) {\n var plugin = plugins[i], undoable = (void 0);\n if (plugin.spec.isInputRules && (undoable = plugin.getState(state))) {\n if (dispatch) {\n var tr = state.tr, toUndo = undoable.transform;\n for (var j = toUndo.steps.length - 1; j >= 0; j--)\n { tr.step(toUndo.steps[j].invert(toUndo.docs[j])); }\n if (undoable.text) {\n var marks = tr.doc.resolve(undoable.from).marks();\n tr.replaceWith(undoable.from, undoable.to, state.schema.text(undoable.text, marks));\n } else {\n tr.delete(undoable.from, undoable.to);\n }\n dispatch(tr);\n }\n return true\n }\n }\n return false\n}\n\n// :: InputRule Converts double dashes to an emdash.\nvar emDash = new InputRule(/--$/, \"—\");\n// :: InputRule Converts three dots to an ellipsis character.\nvar ellipsis = new InputRule(/\\.\\.\\.$/, \"…\");\n// :: InputRule “Smart” opening double quotes.\nvar openDoubleQuote = new InputRule(/(?:^|[\\s\\{\\[\\(\\<'\"\\u2018\\u201C])(\")$/, \"“\");\n// :: InputRule “Smart” closing double quotes.\nvar closeDoubleQuote = new InputRule(/\"$/, \"”\");\n// :: InputRule “Smart” opening single quotes.\nvar openSingleQuote = new InputRule(/(?:^|[\\s\\{\\[\\(\\<'\"\\u2018\\u201C])(')$/, \"‘\");\n// :: InputRule “Smart” closing single quotes.\nvar closeSingleQuote = new InputRule(/'$/, \"’\");\n\n// :: [InputRule] Smart-quote related input rules.\nvar smartQuotes = [openDoubleQuote, closeDoubleQuote, openSingleQuote, closeSingleQuote];\n\n// :: (RegExp, NodeType, ?union, ?([string], Node) → bool) → InputRule\n// Build an input rule for automatically wrapping a textblock when a\n// given string is typed. The `regexp` argument is\n// directly passed through to the `InputRule` constructor. You'll\n// probably want the regexp to start with `^`, so that the pattern can\n// only occur at the start of a textblock.\n//\n// `nodeType` is the type of node to wrap in. If it needs attributes,\n// you can either pass them directly, or pass a function that will\n// compute them from the regular expression match.\n//\n// By default, if there's a node with the same type above the newly\n// wrapped node, the rule will try to [join](#transform.Transform.join) those\n// two nodes. You can pass a join predicate, which takes a regular\n// expression match and the node before the wrapped node, and can\n// return a boolean to indicate whether a join should happen.\nfunction wrappingInputRule(regexp, nodeType, getAttrs, joinPredicate) {\n return new InputRule(regexp, function (state, match, start, end) {\n var attrs = getAttrs instanceof Function ? getAttrs(match) : getAttrs;\n var tr = state.tr.delete(start, end);\n var $start = tr.doc.resolve(start), range = $start.blockRange(), wrapping = range && findWrapping(range, nodeType, attrs);\n if (!wrapping) { return null }\n tr.wrap(range, wrapping);\n var before = tr.doc.resolve(start - 1).nodeBefore;\n if (before && before.type == nodeType && canJoin(tr.doc, start - 1) &&\n (!joinPredicate || joinPredicate(match, before)))\n { tr.join(start - 1); }\n return tr\n })\n}\n\n// :: (RegExp, NodeType, ?union) → InputRule\n// Build an input rule that changes the type of a textblock when the\n// matched text is typed into it. You'll usually want to start your\n// regexp with `^` to that it is only matched at the start of a\n// textblock. The optional `getAttrs` parameter can be used to compute\n// the new node's attributes, and works the same as in the\n// `wrappingInputRule` function.\nfunction textblockTypeInputRule(regexp, nodeType, getAttrs) {\n return new InputRule(regexp, function (state, match, start, end) {\n var $start = state.doc.resolve(start);\n var attrs = getAttrs instanceof Function ? getAttrs(match) : getAttrs;\n if (!$start.node(-1).canReplaceWith($start.index(-1), $start.indexAfter(-1), nodeType)) { return null }\n return state.tr\n .delete(start, end)\n .setBlockType(start, start, nodeType, attrs)\n })\n}\n\nexport { InputRule, closeDoubleQuote, closeSingleQuote, ellipsis, emDash, inputRules, openDoubleQuote, openSingleQuote, smartQuotes, textblockTypeInputRule, undoInputRule, wrappingInputRule };\n","import { keyName, base } from 'w3c-keyname';\nimport { Plugin } from 'prosemirror-state';\n\n// declare global: navigator\n\nvar mac = typeof navigator != \"undefined\" ? /Mac|iP(hone|[oa]d)/.test(navigator.platform) : false;\n\nfunction normalizeKeyName(name) {\n var parts = name.split(/-(?!$)/), result = parts[parts.length - 1];\n if (result == \"Space\") { result = \" \"; }\n var alt, ctrl, shift, meta;\n for (var i = 0; i < parts.length - 1; i++) {\n var mod = parts[i];\n if (/^(cmd|meta|m)$/i.test(mod)) { meta = true; }\n else if (/^a(lt)?$/i.test(mod)) { alt = true; }\n else if (/^(c|ctrl|control)$/i.test(mod)) { ctrl = true; }\n else if (/^s(hift)?$/i.test(mod)) { shift = true; }\n else if (/^mod$/i.test(mod)) { if (mac) { meta = true; } else { ctrl = true; } }\n else { throw new Error(\"Unrecognized modifier name: \" + mod) }\n }\n if (alt) { result = \"Alt-\" + result; }\n if (ctrl) { result = \"Ctrl-\" + result; }\n if (meta) { result = \"Meta-\" + result; }\n if (shift) { result = \"Shift-\" + result; }\n return result\n}\n\nfunction normalize(map) {\n var copy = Object.create(null);\n for (var prop in map) { copy[normalizeKeyName(prop)] = map[prop]; }\n return copy\n}\n\nfunction modifiers(name, event, shift) {\n if (event.altKey) { name = \"Alt-\" + name; }\n if (event.ctrlKey) { name = \"Ctrl-\" + name; }\n if (event.metaKey) { name = \"Meta-\" + name; }\n if (shift !== false && event.shiftKey) { name = \"Shift-\" + name; }\n return name\n}\n\n// :: (Object) → Plugin\n// Create a keymap plugin for the given set of bindings.\n//\n// Bindings should map key names to [command](#commands)-style\n// functions, which will be called with `(EditorState, dispatch,\n// EditorView)` arguments, and should return true when they've handled\n// the key. Note that the view argument isn't part of the command\n// protocol, but can be used as an escape hatch if a binding needs to\n// directly interact with the UI.\n//\n// Key names may be strings like `\"Shift-Ctrl-Enter\"`—a key\n// identifier prefixed with zero or more modifiers. Key identifiers\n// are based on the strings that can appear in\n// [`KeyEvent.key`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key).\n// Use lowercase letters to refer to letter keys (or uppercase letters\n// if you want shift to be held). You may use `\"Space\"` as an alias\n// for the `\" \"` name.\n//\n// Modifiers can be given in any order. `Shift-` (or `s-`), `Alt-` (or\n// `a-`), `Ctrl-` (or `c-` or `Control-`) and `Cmd-` (or `m-` or\n// `Meta-`) are recognized. For characters that are created by holding\n// shift, the `Shift-` prefix is implied, and should not be added\n// explicitly.\n//\n// You can use `Mod-` as a shorthand for `Cmd-` on Mac and `Ctrl-` on\n// other platforms.\n//\n// You can add multiple keymap plugins to an editor. The order in\n// which they appear determines their precedence (the ones early in\n// the array get to dispatch first).\nfunction keymap(bindings) {\n return new Plugin({props: {handleKeyDown: keydownHandler(bindings)}})\n}\n\n// :: (Object) → (view: EditorView, event: dom.Event) → bool\n// Given a set of bindings (using the same format as\n// [`keymap`](#keymap.keymap)), return a [keydown\n// handler](#view.EditorProps.handleKeyDown) that handles them.\nfunction keydownHandler(bindings) {\n var map = normalize(bindings);\n return function(view, event) {\n var name = keyName(event), isChar = name.length == 1 && name != \" \", baseName;\n var direct = map[modifiers(name, event, !isChar)];\n if (direct && direct(view.state, view.dispatch, view)) { return true }\n if (isChar && (event.shiftKey || event.altKey || event.metaKey || name.charCodeAt(0) > 127) &&\n (baseName = base[event.keyCode]) && baseName != name) {\n // Try falling back to the keyCode when there's a modifier\n // active or the character produced isn't ASCII, and our table\n // produces a different name from the the keyCode. See #668,\n // #1060\n var fromCode = map[modifiers(baseName, event, true)];\n if (fromCode && fromCode(view.state, view.dispatch, view)) { return true }\n } else if (isChar && event.shiftKey) {\n // Otherwise, if shift is active, also try the binding with the\n // Shift- prefix enabled. See #997\n var withShift = map[modifiers(name, event, true)];\n if (withShift && withShift(view.state, view.dispatch, view)) { return true }\n }\n return false\n }\n}\n\nexport { keydownHandler, keymap };\n","import OrderedMap from 'orderedmap';\n\nfunction findDiffStart(a, b, pos) {\n for (var i = 0;; i++) {\n if (i == a.childCount || i == b.childCount)\n { return a.childCount == b.childCount ? null : pos }\n\n var childA = a.child(i), childB = b.child(i);\n if (childA == childB) { pos += childA.nodeSize; continue }\n\n if (!childA.sameMarkup(childB)) { return pos }\n\n if (childA.isText && childA.text != childB.text) {\n for (var j = 0; childA.text[j] == childB.text[j]; j++)\n { pos++; }\n return pos\n }\n if (childA.content.size || childB.content.size) {\n var inner = findDiffStart(childA.content, childB.content, pos + 1);\n if (inner != null) { return inner }\n }\n pos += childA.nodeSize;\n }\n}\n\nfunction findDiffEnd(a, b, posA, posB) {\n for (var iA = a.childCount, iB = b.childCount;;) {\n if (iA == 0 || iB == 0)\n { return iA == iB ? null : {a: posA, b: posB} }\n\n var childA = a.child(--iA), childB = b.child(--iB), size = childA.nodeSize;\n if (childA == childB) {\n posA -= size; posB -= size;\n continue\n }\n\n if (!childA.sameMarkup(childB)) { return {a: posA, b: posB} }\n\n if (childA.isText && childA.text != childB.text) {\n var same = 0, minSize = Math.min(childA.text.length, childB.text.length);\n while (same < minSize && childA.text[childA.text.length - same - 1] == childB.text[childB.text.length - same - 1]) {\n same++; posA--; posB--;\n }\n return {a: posA, b: posB}\n }\n if (childA.content.size || childB.content.size) {\n var inner = findDiffEnd(childA.content, childB.content, posA - 1, posB - 1);\n if (inner) { return inner }\n }\n posA -= size; posB -= size;\n }\n}\n\n// ::- A fragment represents a node's collection of child nodes.\n//\n// Like nodes, fragments are persistent data structures, and you\n// should not mutate them or their content. Rather, you create new\n// instances whenever needed. The API tries to make this easy.\nvar Fragment = function Fragment(content, size) {\n this.content = content;\n // :: number\n // The size of the fragment, which is the total of the size of its\n // content nodes.\n this.size = size || 0;\n if (size == null) { for (var i = 0; i < content.length; i++)\n { this.size += content[i].nodeSize; } }\n};\n\nvar prototypeAccessors = { firstChild: { configurable: true },lastChild: { configurable: true },childCount: { configurable: true } };\n\n// :: (number, number, (node: Node, start: number, parent: Node, index: number) → ?bool, ?number)\n// Invoke a callback for all descendant nodes between the given two\n// positions (relative to start of this fragment). Doesn't descend\n// into a node when the callback returns `false`.\nFragment.prototype.nodesBetween = function nodesBetween (from, to, f, nodeStart, parent) {\n if ( nodeStart === void 0 ) nodeStart = 0;\n\n for (var i = 0, pos = 0; pos < to; i++) {\n var child = this.content[i], end = pos + child.nodeSize;\n if (end > from && f(child, nodeStart + pos, parent, i) !== false && child.content.size) {\n var start = pos + 1;\n child.nodesBetween(Math.max(0, from - start),\n Math.min(child.content.size, to - start),\n f, nodeStart + start);\n }\n pos = end;\n }\n};\n\n// :: ((node: Node, pos: number, parent: Node) → ?bool)\n// Call the given callback for every descendant node. The callback\n// may return `false` to prevent traversal of a given node's children.\nFragment.prototype.descendants = function descendants (f) {\n this.nodesBetween(0, this.size, f);\n};\n\n// :: (number, number, ?string, ?union) → string\n// Extract the text between `from` and `to`. See the same method on\n// [`Node`](#model.Node.textBetween).\nFragment.prototype.textBetween = function textBetween (from, to, blockSeparator, leafText) {\n var text = \"\", separated = true;\n this.nodesBetween(from, to, function (node, pos) {\n if (node.isText) {\n text += node.text.slice(Math.max(from, pos) - pos, to - pos);\n separated = !blockSeparator;\n } else if (node.isLeaf && leafText) {\n text += typeof leafText === 'function' ? leafText(node): leafText;\n separated = !blockSeparator;\n } else if (!separated && node.isBlock) {\n text += blockSeparator;\n separated = true;\n }\n }, 0);\n return text\n};\n\n// :: (Fragment) → Fragment\n// Create a new fragment containing the combined content of this\n// fragment and the other.\nFragment.prototype.append = function append (other) {\n if (!other.size) { return this }\n if (!this.size) { return other }\n var last = this.lastChild, first = other.firstChild, content = this.content.slice(), i = 0;\n if (last.isText && last.sameMarkup(first)) {\n content[content.length - 1] = last.withText(last.text + first.text);\n i = 1;\n }\n for (; i < other.content.length; i++) { content.push(other.content[i]); }\n return new Fragment(content, this.size + other.size)\n};\n\n// :: (number, ?number) → Fragment\n// Cut out the sub-fragment between the two given positions.\nFragment.prototype.cut = function cut (from, to) {\n if (to == null) { to = this.size; }\n if (from == 0 && to == this.size) { return this }\n var result = [], size = 0;\n if (to > from) { for (var i = 0, pos = 0; pos < to; i++) {\n var child = this.content[i], end = pos + child.nodeSize;\n if (end > from) {\n if (pos < from || end > to) {\n if (child.isText)\n { child = child.cut(Math.max(0, from - pos), Math.min(child.text.length, to - pos)); }\n else\n { child = child.cut(Math.max(0, from - pos - 1), Math.min(child.content.size, to - pos - 1)); }\n }\n result.push(child);\n size += child.nodeSize;\n }\n pos = end;\n } }\n return new Fragment(result, size)\n};\n\nFragment.prototype.cutByIndex = function cutByIndex (from, to) {\n if (from == to) { return Fragment.empty }\n if (from == 0 && to == this.content.length) { return this }\n return new Fragment(this.content.slice(from, to))\n};\n\n// :: (number, Node) → Fragment\n// Create a new fragment in which the node at the given index is\n// replaced by the given node.\nFragment.prototype.replaceChild = function replaceChild (index, node) {\n var current = this.content[index];\n if (current == node) { return this }\n var copy = this.content.slice();\n var size = this.size + node.nodeSize - current.nodeSize;\n copy[index] = node;\n return new Fragment(copy, size)\n};\n\n// : (Node) → Fragment\n// Create a new fragment by prepending the given node to this\n// fragment.\nFragment.prototype.addToStart = function addToStart (node) {\n return new Fragment([node].concat(this.content), this.size + node.nodeSize)\n};\n\n// : (Node) → Fragment\n// Create a new fragment by appending the given node to this\n// fragment.\nFragment.prototype.addToEnd = function addToEnd (node) {\n return new Fragment(this.content.concat(node), this.size + node.nodeSize)\n};\n\n// :: (Fragment) → bool\n// Compare this fragment to another one.\nFragment.prototype.eq = function eq (other) {\n if (this.content.length != other.content.length) { return false }\n for (var i = 0; i < this.content.length; i++)\n { if (!this.content[i].eq(other.content[i])) { return false } }\n return true\n};\n\n// :: ?Node\n// The first child of the fragment, or `null` if it is empty.\nprototypeAccessors.firstChild.get = function () { return this.content.length ? this.content[0] : null };\n\n// :: ?Node\n// The last child of the fragment, or `null` if it is empty.\nprototypeAccessors.lastChild.get = function () { return this.content.length ? this.content[this.content.length - 1] : null };\n\n// :: number\n// The number of child nodes in this fragment.\nprototypeAccessors.childCount.get = function () { return this.content.length };\n\n// :: (number) → Node\n// Get the child node at the given index. Raise an error when the\n// index is out of range.\nFragment.prototype.child = function child (index) {\n var found = this.content[index];\n if (!found) { throw new RangeError(\"Index \" + index + \" out of range for \" + this) }\n return found\n};\n\n// :: (number) → ?Node\n// Get the child node at the given index, if it exists.\nFragment.prototype.maybeChild = function maybeChild (index) {\n return this.content[index]\n};\n\n// :: ((node: Node, offset: number, index: number))\n// Call `f` for every child node, passing the node, its offset\n// into this parent node, and its index.\nFragment.prototype.forEach = function forEach (f) {\n for (var i = 0, p = 0; i < this.content.length; i++) {\n var child = this.content[i];\n f(child, p, i);\n p += child.nodeSize;\n }\n};\n\n// :: (Fragment) → ?number\n// Find the first position at which this fragment and another\n// fragment differ, or `null` if they are the same.\nFragment.prototype.findDiffStart = function findDiffStart$1 (other, pos) {\n if ( pos === void 0 ) pos = 0;\n\n return findDiffStart(this, other, pos)\n};\n\n// :: (Fragment) → ?{a: number, b: number}\n// Find the first position, searching from the end, at which this\n// fragment and the given fragment differ, or `null` if they are the\n// same. Since this position will not be the same in both nodes, an\n// object with two separate positions is returned.\nFragment.prototype.findDiffEnd = function findDiffEnd$1 (other, pos, otherPos) {\n if ( pos === void 0 ) pos = this.size;\n if ( otherPos === void 0 ) otherPos = other.size;\n\n return findDiffEnd(this, other, pos, otherPos)\n};\n\n// : (number, ?number) → {index: number, offset: number}\n// Find the index and inner offset corresponding to a given relative\n// position in this fragment. The result object will be reused\n// (overwritten) the next time the function is called. (Not public.)\nFragment.prototype.findIndex = function findIndex (pos, round) {\n if ( round === void 0 ) round = -1;\n\n if (pos == 0) { return retIndex(0, pos) }\n if (pos == this.size) { return retIndex(this.content.length, pos) }\n if (pos > this.size || pos < 0) { throw new RangeError((\"Position \" + pos + \" outside of fragment (\" + (this) + \")\")) }\n for (var i = 0, curPos = 0;; i++) {\n var cur = this.child(i), end = curPos + cur.nodeSize;\n if (end >= pos) {\n if (end == pos || round > 0) { return retIndex(i + 1, end) }\n return retIndex(i, curPos)\n }\n curPos = end;\n }\n};\n\n// :: () → string\n// Return a debugging string that describes this fragment.\nFragment.prototype.toString = function toString () { return \"<\" + this.toStringInner() + \">\" };\n\nFragment.prototype.toStringInner = function toStringInner () { return this.content.join(\", \") };\n\n// :: () → ?Object\n// Create a JSON-serializeable representation of this fragment.\nFragment.prototype.toJSON = function toJSON () {\n return this.content.length ? this.content.map(function (n) { return n.toJSON(); }) : null\n};\n\n// :: (Schema, ?Object) → Fragment\n// Deserialize a fragment from its JSON representation.\nFragment.fromJSON = function fromJSON (schema, value) {\n if (!value) { return Fragment.empty }\n if (!Array.isArray(value)) { throw new RangeError(\"Invalid input for Fragment.fromJSON\") }\n return new Fragment(value.map(schema.nodeFromJSON))\n};\n\n// :: ([Node]) → Fragment\n// Build a fragment from an array of nodes. Ensures that adjacent\n// text nodes with the same marks are joined together.\nFragment.fromArray = function fromArray (array) {\n if (!array.length) { return Fragment.empty }\n var joined, size = 0;\n for (var i = 0; i < array.length; i++) {\n var node = array[i];\n size += node.nodeSize;\n if (i && node.isText && array[i - 1].sameMarkup(node)) {\n if (!joined) { joined = array.slice(0, i); }\n joined[joined.length - 1] = node.withText(joined[joined.length - 1].text + node.text);\n } else if (joined) {\n joined.push(node);\n }\n }\n return new Fragment(joined || array, size)\n};\n\n// :: (?union) → Fragment\n// Create a fragment from something that can be interpreted as a set\n// of nodes. For `null`, it returns the empty fragment. For a\n// fragment, the fragment itself. For a node or array of nodes, a\n// fragment containing those nodes.\nFragment.from = function from (nodes) {\n if (!nodes) { return Fragment.empty }\n if (nodes instanceof Fragment) { return nodes }\n if (Array.isArray(nodes)) { return this.fromArray(nodes) }\n if (nodes.attrs) { return new Fragment([nodes], nodes.nodeSize) }\n throw new RangeError(\"Can not convert \" + nodes + \" to a Fragment\" +\n (nodes.nodesBetween ? \" (looks like multiple versions of prosemirror-model were loaded)\" : \"\"))\n};\n\nObject.defineProperties( Fragment.prototype, prototypeAccessors );\n\nvar found = {index: 0, offset: 0};\nfunction retIndex(index, offset) {\n found.index = index;\n found.offset = offset;\n return found\n}\n\n// :: Fragment\n// An empty fragment. Intended to be reused whenever a node doesn't\n// contain anything (rather than allocating a new empty fragment for\n// each leaf node).\nFragment.empty = new Fragment([], 0);\n\nfunction compareDeep(a, b) {\n if (a === b) { return true }\n if (!(a && typeof a == \"object\") ||\n !(b && typeof b == \"object\")) { return false }\n var array = Array.isArray(a);\n if (Array.isArray(b) != array) { return false }\n if (array) {\n if (a.length != b.length) { return false }\n for (var i = 0; i < a.length; i++) { if (!compareDeep(a[i], b[i])) { return false } }\n } else {\n for (var p in a) { if (!(p in b) || !compareDeep(a[p], b[p])) { return false } }\n for (var p$1 in b) { if (!(p$1 in a)) { return false } }\n }\n return true\n}\n\n// ::- A mark is a piece of information that can be attached to a node,\n// such as it being emphasized, in code font, or a link. It has a type\n// and optionally a set of attributes that provide further information\n// (such as the target of the link). Marks are created through a\n// `Schema`, which controls which types exist and which\n// attributes they have.\nvar Mark = function Mark(type, attrs) {\n // :: MarkType\n // The type of this mark.\n this.type = type;\n // :: Object\n // The attributes associated with this mark.\n this.attrs = attrs;\n};\n\n// :: ([Mark]) → [Mark]\n// Given a set of marks, create a new set which contains this one as\n// well, in the right position. If this mark is already in the set,\n// the set itself is returned. If any marks that are set to be\n// [exclusive](#model.MarkSpec.excludes) with this mark are present,\n// those are replaced by this one.\nMark.prototype.addToSet = function addToSet (set) {\n var copy, placed = false;\n for (var i = 0; i < set.length; i++) {\n var other = set[i];\n if (this.eq(other)) { return set }\n if (this.type.excludes(other.type)) {\n if (!copy) { copy = set.slice(0, i); }\n } else if (other.type.excludes(this.type)) {\n return set\n } else {\n if (!placed && other.type.rank > this.type.rank) {\n if (!copy) { copy = set.slice(0, i); }\n copy.push(this);\n placed = true;\n }\n if (copy) { copy.push(other); }\n }\n }\n if (!copy) { copy = set.slice(); }\n if (!placed) { copy.push(this); }\n return copy\n};\n\n// :: ([Mark]) → [Mark]\n// Remove this mark from the given set, returning a new set. If this\n// mark is not in the set, the set itself is returned.\nMark.prototype.removeFromSet = function removeFromSet (set) {\n for (var i = 0; i < set.length; i++)\n { if (this.eq(set[i]))\n { return set.slice(0, i).concat(set.slice(i + 1)) } }\n return set\n};\n\n// :: ([Mark]) → bool\n// Test whether this mark is in the given set of marks.\nMark.prototype.isInSet = function isInSet (set) {\n for (var i = 0; i < set.length; i++)\n { if (this.eq(set[i])) { return true } }\n return false\n};\n\n// :: (Mark) → bool\n// Test whether this mark has the same type and attributes as\n// another mark.\nMark.prototype.eq = function eq (other) {\n return this == other ||\n (this.type == other.type && compareDeep(this.attrs, other.attrs))\n};\n\n// :: () → Object\n// Convert this mark to a JSON-serializeable representation.\nMark.prototype.toJSON = function toJSON () {\n var obj = {type: this.type.name};\n for (var _ in this.attrs) {\n obj.attrs = this.attrs;\n break\n }\n return obj\n};\n\n// :: (Schema, Object) → Mark\nMark.fromJSON = function fromJSON (schema, json) {\n if (!json) { throw new RangeError(\"Invalid input for Mark.fromJSON\") }\n var type = schema.marks[json.type];\n if (!type) { throw new RangeError((\"There is no mark type \" + (json.type) + \" in this schema\")) }\n return type.create(json.attrs)\n};\n\n// :: ([Mark], [Mark]) → bool\n// Test whether two sets of marks are identical.\nMark.sameSet = function sameSet (a, b) {\n if (a == b) { return true }\n if (a.length != b.length) { return false }\n for (var i = 0; i < a.length; i++)\n { if (!a[i].eq(b[i])) { return false } }\n return true\n};\n\n// :: (?union) → [Mark]\n// Create a properly sorted mark set from null, a single mark, or an\n// unsorted array of marks.\nMark.setFrom = function setFrom (marks) {\n if (!marks || marks.length == 0) { return Mark.none }\n if (marks instanceof Mark) { return [marks] }\n var copy = marks.slice();\n copy.sort(function (a, b) { return a.type.rank - b.type.rank; });\n return copy\n};\n\n// :: [Mark] The empty set of marks.\nMark.none = [];\n\n// ReplaceError:: class extends Error\n// Error type raised by [`Node.replace`](#model.Node.replace) when\n// given an invalid replacement.\n\nfunction ReplaceError(message) {\n var err = Error.call(this, message);\n err.__proto__ = ReplaceError.prototype;\n return err\n}\n\nReplaceError.prototype = Object.create(Error.prototype);\nReplaceError.prototype.constructor = ReplaceError;\nReplaceError.prototype.name = \"ReplaceError\";\n\n// ::- A slice represents a piece cut out of a larger document. It\n// stores not only a fragment, but also the depth up to which nodes on\n// both side are ‘open’ (cut through).\nvar Slice = function Slice(content, openStart, openEnd) {\n // :: Fragment The slice's content.\n this.content = content;\n // :: number The open depth at the start.\n this.openStart = openStart;\n // :: number The open depth at the end.\n this.openEnd = openEnd;\n};\n\nvar prototypeAccessors$1 = { size: { configurable: true } };\n\n// :: number\n// The size this slice would add when inserted into a document.\nprototypeAccessors$1.size.get = function () {\n return this.content.size - this.openStart - this.openEnd\n};\n\nSlice.prototype.insertAt = function insertAt (pos, fragment) {\n var content = insertInto(this.content, pos + this.openStart, fragment, null);\n return content && new Slice(content, this.openStart, this.openEnd)\n};\n\nSlice.prototype.removeBetween = function removeBetween (from, to) {\n return new Slice(removeRange(this.content, from + this.openStart, to + this.openStart), this.openStart, this.openEnd)\n};\n\n// :: (Slice) → bool\n// Tests whether this slice is equal to another slice.\nSlice.prototype.eq = function eq (other) {\n return this.content.eq(other.content) && this.openStart == other.openStart && this.openEnd == other.openEnd\n};\n\nSlice.prototype.toString = function toString () {\n return this.content + \"(\" + this.openStart + \",\" + this.openEnd + \")\"\n};\n\n// :: () → ?Object\n// Convert a slice to a JSON-serializable representation.\nSlice.prototype.toJSON = function toJSON () {\n if (!this.content.size) { return null }\n var json = {content: this.content.toJSON()};\n if (this.openStart > 0) { json.openStart = this.openStart; }\n if (this.openEnd > 0) { json.openEnd = this.openEnd; }\n return json\n};\n\n// :: (Schema, ?Object) → Slice\n// Deserialize a slice from its JSON representation.\nSlice.fromJSON = function fromJSON (schema, json) {\n if (!json) { return Slice.empty }\n var openStart = json.openStart || 0, openEnd = json.openEnd || 0;\n if (typeof openStart != \"number\" || typeof openEnd != \"number\")\n { throw new RangeError(\"Invalid input for Slice.fromJSON\") }\n return new Slice(Fragment.fromJSON(schema, json.content), openStart, openEnd)\n};\n\n// :: (Fragment, ?bool) → Slice\n// Create a slice from a fragment by taking the maximum possible\n// open value on both side of the fragment.\nSlice.maxOpen = function maxOpen (fragment, openIsolating) {\n if ( openIsolating === void 0 ) openIsolating=true;\n\n var openStart = 0, openEnd = 0;\n for (var n = fragment.firstChild; n && !n.isLeaf && (openIsolating || !n.type.spec.isolating); n = n.firstChild) { openStart++; }\n for (var n$1 = fragment.lastChild; n$1 && !n$1.isLeaf && (openIsolating || !n$1.type.spec.isolating); n$1 = n$1.lastChild) { openEnd++; }\n return new Slice(fragment, openStart, openEnd)\n};\n\nObject.defineProperties( Slice.prototype, prototypeAccessors$1 );\n\nfunction removeRange(content, from, to) {\n var ref = content.findIndex(from);\n var index = ref.index;\n var offset = ref.offset;\n var child = content.maybeChild(index);\n var ref$1 = content.findIndex(to);\n var indexTo = ref$1.index;\n var offsetTo = ref$1.offset;\n if (offset == from || child.isText) {\n if (offsetTo != to && !content.child(indexTo).isText) { throw new RangeError(\"Removing non-flat range\") }\n return content.cut(0, from).append(content.cut(to))\n }\n if (index != indexTo) { throw new RangeError(\"Removing non-flat range\") }\n return content.replaceChild(index, child.copy(removeRange(child.content, from - offset - 1, to - offset - 1)))\n}\n\nfunction insertInto(content, dist, insert, parent) {\n var ref = content.findIndex(dist);\n var index = ref.index;\n var offset = ref.offset;\n var child = content.maybeChild(index);\n if (offset == dist || child.isText) {\n if (parent && !parent.canReplace(index, index, insert)) { return null }\n return content.cut(0, dist).append(insert).append(content.cut(dist))\n }\n var inner = insertInto(child.content, dist - offset - 1, insert);\n return inner && content.replaceChild(index, child.copy(inner))\n}\n\n// :: Slice\n// The empty slice.\nSlice.empty = new Slice(Fragment.empty, 0, 0);\n\nfunction replace($from, $to, slice) {\n if (slice.openStart > $from.depth)\n { throw new ReplaceError(\"Inserted content deeper than insertion position\") }\n if ($from.depth - slice.openStart != $to.depth - slice.openEnd)\n { throw new ReplaceError(\"Inconsistent open depths\") }\n return replaceOuter($from, $to, slice, 0)\n}\n\nfunction replaceOuter($from, $to, slice, depth) {\n var index = $from.index(depth), node = $from.node(depth);\n if (index == $to.index(depth) && depth < $from.depth - slice.openStart) {\n var inner = replaceOuter($from, $to, slice, depth + 1);\n return node.copy(node.content.replaceChild(index, inner))\n } else if (!slice.content.size) {\n return close(node, replaceTwoWay($from, $to, depth))\n } else if (!slice.openStart && !slice.openEnd && $from.depth == depth && $to.depth == depth) { // Simple, flat case\n var parent = $from.parent, content = parent.content;\n return close(parent, content.cut(0, $from.parentOffset).append(slice.content).append(content.cut($to.parentOffset)))\n } else {\n var ref = prepareSliceForReplace(slice, $from);\n var start = ref.start;\n var end = ref.end;\n return close(node, replaceThreeWay($from, start, end, $to, depth))\n }\n}\n\nfunction checkJoin(main, sub) {\n if (!sub.type.compatibleContent(main.type))\n { throw new ReplaceError(\"Cannot join \" + sub.type.name + \" onto \" + main.type.name) }\n}\n\nfunction joinable($before, $after, depth) {\n var node = $before.node(depth);\n checkJoin(node, $after.node(depth));\n return node\n}\n\nfunction addNode(child, target) {\n var last = target.length - 1;\n if (last >= 0 && child.isText && child.sameMarkup(target[last]))\n { target[last] = child.withText(target[last].text + child.text); }\n else\n { target.push(child); }\n}\n\nfunction addRange($start, $end, depth, target) {\n var node = ($end || $start).node(depth);\n var startIndex = 0, endIndex = $end ? $end.index(depth) : node.childCount;\n if ($start) {\n startIndex = $start.index(depth);\n if ($start.depth > depth) {\n startIndex++;\n } else if ($start.textOffset) {\n addNode($start.nodeAfter, target);\n startIndex++;\n }\n }\n for (var i = startIndex; i < endIndex; i++) { addNode(node.child(i), target); }\n if ($end && $end.depth == depth && $end.textOffset)\n { addNode($end.nodeBefore, target); }\n}\n\nfunction close(node, content) {\n if (!node.type.validContent(content))\n { throw new ReplaceError(\"Invalid content for node \" + node.type.name) }\n return node.copy(content)\n}\n\nfunction replaceThreeWay($from, $start, $end, $to, depth) {\n var openStart = $from.depth > depth && joinable($from, $start, depth + 1);\n var openEnd = $to.depth > depth && joinable($end, $to, depth + 1);\n\n var content = [];\n addRange(null, $from, depth, content);\n if (openStart && openEnd && $start.index(depth) == $end.index(depth)) {\n checkJoin(openStart, openEnd);\n addNode(close(openStart, replaceThreeWay($from, $start, $end, $to, depth + 1)), content);\n } else {\n if (openStart)\n { addNode(close(openStart, replaceTwoWay($from, $start, depth + 1)), content); }\n addRange($start, $end, depth, content);\n if (openEnd)\n { addNode(close(openEnd, replaceTwoWay($end, $to, depth + 1)), content); }\n }\n addRange($to, null, depth, content);\n return new Fragment(content)\n}\n\nfunction replaceTwoWay($from, $to, depth) {\n var content = [];\n addRange(null, $from, depth, content);\n if ($from.depth > depth) {\n var type = joinable($from, $to, depth + 1);\n addNode(close(type, replaceTwoWay($from, $to, depth + 1)), content);\n }\n addRange($to, null, depth, content);\n return new Fragment(content)\n}\n\nfunction prepareSliceForReplace(slice, $along) {\n var extra = $along.depth - slice.openStart, parent = $along.node(extra);\n var node = parent.copy(slice.content);\n for (var i = extra - 1; i >= 0; i--)\n { node = $along.node(i).copy(Fragment.from(node)); }\n return {start: node.resolveNoCache(slice.openStart + extra),\n end: node.resolveNoCache(node.content.size - slice.openEnd - extra)}\n}\n\n// ::- You can [_resolve_](#model.Node.resolve) a position to get more\n// information about it. Objects of this class represent such a\n// resolved position, providing various pieces of context information,\n// and some helper methods.\n//\n// Throughout this interface, methods that take an optional `depth`\n// parameter will interpret undefined as `this.depth` and negative\n// numbers as `this.depth + value`.\nvar ResolvedPos = function ResolvedPos(pos, path, parentOffset) {\n // :: number The position that was resolved.\n this.pos = pos;\n this.path = path;\n // :: number\n // The number of levels the parent node is from the root. If this\n // position points directly into the root node, it is 0. If it\n // points into a top-level paragraph, 1, and so on.\n this.depth = path.length / 3 - 1;\n // :: number The offset this position has into its parent node.\n this.parentOffset = parentOffset;\n};\n\nvar prototypeAccessors$2 = { parent: { configurable: true },doc: { configurable: true },textOffset: { configurable: true },nodeAfter: { configurable: true },nodeBefore: { configurable: true } };\n\nResolvedPos.prototype.resolveDepth = function resolveDepth (val) {\n if (val == null) { return this.depth }\n if (val < 0) { return this.depth + val }\n return val\n};\n\n// :: Node\n// The parent node that the position points into. Note that even if\n// a position points into a text node, that node is not considered\n// the parent—text nodes are ‘flat’ in this model, and have no content.\nprototypeAccessors$2.parent.get = function () { return this.node(this.depth) };\n\n// :: Node\n// The root node in which the position was resolved.\nprototypeAccessors$2.doc.get = function () { return this.node(0) };\n\n// :: (?number) → Node\n// The ancestor node at the given level. `p.node(p.depth)` is the\n// same as `p.parent`.\nResolvedPos.prototype.node = function node (depth) { return this.path[this.resolveDepth(depth) * 3] };\n\n// :: (?number) → number\n// The index into the ancestor at the given level. If this points at\n// the 3rd node in the 2nd paragraph on the top level, for example,\n// `p.index(0)` is 1 and `p.index(1)` is 2.\nResolvedPos.prototype.index = function index (depth) { return this.path[this.resolveDepth(depth) * 3 + 1] };\n\n// :: (?number) → number\n// The index pointing after this position into the ancestor at the\n// given level.\nResolvedPos.prototype.indexAfter = function indexAfter (depth) {\n depth = this.resolveDepth(depth);\n return this.index(depth) + (depth == this.depth && !this.textOffset ? 0 : 1)\n};\n\n// :: (?number) → number\n// The (absolute) position at the start of the node at the given\n// level.\nResolvedPos.prototype.start = function start (depth) {\n depth = this.resolveDepth(depth);\n return depth == 0 ? 0 : this.path[depth * 3 - 1] + 1\n};\n\n// :: (?number) → number\n// The (absolute) position at the end of the node at the given\n// level.\nResolvedPos.prototype.end = function end (depth) {\n depth = this.resolveDepth(depth);\n return this.start(depth) + this.node(depth).content.size\n};\n\n// :: (?number) → number\n// The (absolute) position directly before the wrapping node at the\n// given level, or, when `depth` is `this.depth + 1`, the original\n// position.\nResolvedPos.prototype.before = function before (depth) {\n depth = this.resolveDepth(depth);\n if (!depth) { throw new RangeError(\"There is no position before the top-level node\") }\n return depth == this.depth + 1 ? this.pos : this.path[depth * 3 - 1]\n};\n\n// :: (?number) → number\n// The (absolute) position directly after the wrapping node at the\n// given level, or the original position when `depth` is `this.depth + 1`.\nResolvedPos.prototype.after = function after (depth) {\n depth = this.resolveDepth(depth);\n if (!depth) { throw new RangeError(\"There is no position after the top-level node\") }\n return depth == this.depth + 1 ? this.pos : this.path[depth * 3 - 1] + this.path[depth * 3].nodeSize\n};\n\n// :: number\n// When this position points into a text node, this returns the\n// distance between the position and the start of the text node.\n// Will be zero for positions that point between nodes.\nprototypeAccessors$2.textOffset.get = function () { return this.pos - this.path[this.path.length - 1] };\n\n// :: ?Node\n// Get the node directly after the position, if any. If the position\n// points into a text node, only the part of that node after the\n// position is returned.\nprototypeAccessors$2.nodeAfter.get = function () {\n var parent = this.parent, index = this.index(this.depth);\n if (index == parent.childCount) { return null }\n var dOff = this.pos - this.path[this.path.length - 1], child = parent.child(index);\n return dOff ? parent.child(index).cut(dOff) : child\n};\n\n// :: ?Node\n// Get the node directly before the position, if any. If the\n// position points into a text node, only the part of that node\n// before the position is returned.\nprototypeAccessors$2.nodeBefore.get = function () {\n var index = this.index(this.depth);\n var dOff = this.pos - this.path[this.path.length - 1];\n if (dOff) { return this.parent.child(index).cut(0, dOff) }\n return index == 0 ? null : this.parent.child(index - 1)\n};\n\n// :: (number, ?number) → number\n// Get the position at the given index in the parent node at the\n// given depth (which defaults to `this.depth`).\nResolvedPos.prototype.posAtIndex = function posAtIndex (index, depth) {\n depth = this.resolveDepth(depth);\n var node = this.path[depth * 3], pos = depth == 0 ? 0 : this.path[depth * 3 - 1] + 1;\n for (var i = 0; i < index; i++) { pos += node.child(i).nodeSize; }\n return pos\n};\n\n// :: () → [Mark]\n// Get the marks at this position, factoring in the surrounding\n// marks' [`inclusive`](#model.MarkSpec.inclusive) property. If the\n// position is at the start of a non-empty node, the marks of the\n// node after it (if any) are returned.\nResolvedPos.prototype.marks = function marks () {\n var parent = this.parent, index = this.index();\n\n // In an empty parent, return the empty array\n if (parent.content.size == 0) { return Mark.none }\n\n // When inside a text node, just return the text node's marks\n if (this.textOffset) { return parent.child(index).marks }\n\n var main = parent.maybeChild(index - 1), other = parent.maybeChild(index);\n // If the `after` flag is true of there is no node before, make\n // the node after this position the main reference.\n if (!main) { var tmp = main; main = other; other = tmp; }\n\n // Use all marks in the main node, except those that have\n // `inclusive` set to false and are not present in the other node.\n var marks = main.marks;\n for (var i = 0; i < marks.length; i++)\n { if (marks[i].type.spec.inclusive === false && (!other || !marks[i].isInSet(other.marks)))\n { marks = marks[i--].removeFromSet(marks); } }\n\n return marks\n};\n\n// :: (ResolvedPos) → ?[Mark]\n// Get the marks after the current position, if any, except those\n// that are non-inclusive and not present at position `$end`. This\n// is mostly useful for getting the set of marks to preserve after a\n// deletion. Will return `null` if this position is at the end of\n// its parent node or its parent node isn't a textblock (in which\n// case no marks should be preserved).\nResolvedPos.prototype.marksAcross = function marksAcross ($end) {\n var after = this.parent.maybeChild(this.index());\n if (!after || !after.isInline) { return null }\n\n var marks = after.marks, next = $end.parent.maybeChild($end.index());\n for (var i = 0; i < marks.length; i++)\n { if (marks[i].type.spec.inclusive === false && (!next || !marks[i].isInSet(next.marks)))\n { marks = marks[i--].removeFromSet(marks); } }\n return marks\n};\n\n// :: (number) → number\n// The depth up to which this position and the given (non-resolved)\n// position share the same parent nodes.\nResolvedPos.prototype.sharedDepth = function sharedDepth (pos) {\n for (var depth = this.depth; depth > 0; depth--)\n { if (this.start(depth) <= pos && this.end(depth) >= pos) { return depth } }\n return 0\n};\n\n// :: (?ResolvedPos, ?(Node) → bool) → ?NodeRange\n// Returns a range based on the place where this position and the\n// given position diverge around block content. If both point into\n// the same textblock, for example, a range around that textblock\n// will be returned. If they point into different blocks, the range\n// around those blocks in their shared ancestor is returned. You can\n// pass in an optional predicate that will be called with a parent\n// node to see if a range into that parent is acceptable.\nResolvedPos.prototype.blockRange = function blockRange (other, pred) {\n if ( other === void 0 ) other = this;\n\n if (other.pos < this.pos) { return other.blockRange(this) }\n for (var d = this.depth - (this.parent.inlineContent || this.pos == other.pos ? 1 : 0); d >= 0; d--)\n { if (other.pos <= this.end(d) && (!pred || pred(this.node(d))))\n { return new NodeRange(this, other, d) } }\n};\n\n// :: (ResolvedPos) → bool\n// Query whether the given position shares the same parent node.\nResolvedPos.prototype.sameParent = function sameParent (other) {\n return this.pos - this.parentOffset == other.pos - other.parentOffset\n};\n\n// :: (ResolvedPos) → ResolvedPos\n// Return the greater of this and the given position.\nResolvedPos.prototype.max = function max (other) {\n return other.pos > this.pos ? other : this\n};\n\n// :: (ResolvedPos) → ResolvedPos\n// Return the smaller of this and the given position.\nResolvedPos.prototype.min = function min (other) {\n return other.pos < this.pos ? other : this\n};\n\nResolvedPos.prototype.toString = function toString () {\n var str = \"\";\n for (var i = 1; i <= this.depth; i++)\n { str += (str ? \"/\" : \"\") + this.node(i).type.name + \"_\" + this.index(i - 1); }\n return str + \":\" + this.parentOffset\n};\n\nResolvedPos.resolve = function resolve (doc, pos) {\n if (!(pos >= 0 && pos <= doc.content.size)) { throw new RangeError(\"Position \" + pos + \" out of range\") }\n var path = [];\n var start = 0, parentOffset = pos;\n for (var node = doc;;) {\n var ref = node.content.findIndex(parentOffset);\n var index = ref.index;\n var offset = ref.offset;\n var rem = parentOffset - offset;\n path.push(node, index, start + offset);\n if (!rem) { break }\n node = node.child(index);\n if (node.isText) { break }\n parentOffset = rem - 1;\n start += offset + 1;\n }\n return new ResolvedPos(pos, path, parentOffset)\n};\n\nResolvedPos.resolveCached = function resolveCached (doc, pos) {\n for (var i = 0; i < resolveCache.length; i++) {\n var cached = resolveCache[i];\n if (cached.pos == pos && cached.doc == doc) { return cached }\n }\n var result = resolveCache[resolveCachePos] = ResolvedPos.resolve(doc, pos);\n resolveCachePos = (resolveCachePos + 1) % resolveCacheSize;\n return result\n};\n\nObject.defineProperties( ResolvedPos.prototype, prototypeAccessors$2 );\n\nvar resolveCache = [], resolveCachePos = 0, resolveCacheSize = 12;\n\n// ::- Represents a flat range of content, i.e. one that starts and\n// ends in the same node.\nvar NodeRange = function NodeRange($from, $to, depth) {\n // :: ResolvedPos A resolved position along the start of the\n // content. May have a `depth` greater than this object's `depth`\n // property, since these are the positions that were used to\n // compute the range, not re-resolved positions directly at its\n // boundaries.\n this.$from = $from;\n // :: ResolvedPos A position along the end of the content. See\n // caveat for [`$from`](#model.NodeRange.$from).\n this.$to = $to;\n // :: number The depth of the node that this range points into.\n this.depth = depth;\n};\n\nvar prototypeAccessors$1$1 = { start: { configurable: true },end: { configurable: true },parent: { configurable: true },startIndex: { configurable: true },endIndex: { configurable: true } };\n\n// :: number The position at the start of the range.\nprototypeAccessors$1$1.start.get = function () { return this.$from.before(this.depth + 1) };\n// :: number The position at the end of the range.\nprototypeAccessors$1$1.end.get = function () { return this.$to.after(this.depth + 1) };\n\n// :: Node The parent node that the range points into.\nprototypeAccessors$1$1.parent.get = function () { return this.$from.node(this.depth) };\n// :: number The start index of the range in the parent node.\nprototypeAccessors$1$1.startIndex.get = function () { return this.$from.index(this.depth) };\n// :: number The end index of the range in the parent node.\nprototypeAccessors$1$1.endIndex.get = function () { return this.$to.indexAfter(this.depth) };\n\nObject.defineProperties( NodeRange.prototype, prototypeAccessors$1$1 );\n\nvar emptyAttrs = Object.create(null);\n\n// ::- This class represents a node in the tree that makes up a\n// ProseMirror document. So a document is an instance of `Node`, with\n// children that are also instances of `Node`.\n//\n// Nodes are persistent data structures. Instead of changing them, you\n// create new ones with the content you want. Old ones keep pointing\n// at the old document shape. This is made cheaper by sharing\n// structure between the old and new data as much as possible, which a\n// tree shape like this (without back pointers) makes easy.\n//\n// **Do not** directly mutate the properties of a `Node` object. See\n// [the guide](/docs/guide/#doc) for more information.\nvar Node = function Node(type, attrs, content, marks) {\n // :: NodeType\n // The type of node that this is.\n this.type = type;\n\n // :: Object\n // An object mapping attribute names to values. The kind of\n // attributes allowed and required are\n // [determined](#model.NodeSpec.attrs) by the node type.\n this.attrs = attrs;\n\n // :: Fragment\n // A container holding the node's children.\n this.content = content || Fragment.empty;\n\n // :: [Mark]\n // The marks (things like whether it is emphasized or part of a\n // link) applied to this node.\n this.marks = marks || Mark.none;\n};\n\nvar prototypeAccessors$3 = { nodeSize: { configurable: true },childCount: { configurable: true },textContent: { configurable: true },firstChild: { configurable: true },lastChild: { configurable: true },isBlock: { configurable: true },isTextblock: { configurable: true },inlineContent: { configurable: true },isInline: { configurable: true },isText: { configurable: true },isLeaf: { configurable: true },isAtom: { configurable: true } };\n\n// text:: ?string\n// For text nodes, this contains the node's text content.\n\n// :: number\n// The size of this node, as defined by the integer-based [indexing\n// scheme](/docs/guide/#doc.indexing). For text nodes, this is the\n// amount of characters. For other leaf nodes, it is one. For\n// non-leaf nodes, it is the size of the content plus two (the start\n// and end token).\nprototypeAccessors$3.nodeSize.get = function () { return this.isLeaf ? 1 : 2 + this.content.size };\n\n// :: number\n// The number of children that the node has.\nprototypeAccessors$3.childCount.get = function () { return this.content.childCount };\n\n// :: (number) → Node\n// Get the child node at the given index. Raises an error when the\n// index is out of range.\nNode.prototype.child = function child (index) { return this.content.child(index) };\n\n// :: (number) → ?Node\n// Get the child node at the given index, if it exists.\nNode.prototype.maybeChild = function maybeChild (index) { return this.content.maybeChild(index) };\n\n// :: ((node: Node, offset: number, index: number))\n// Call `f` for every child node, passing the node, its offset\n// into this parent node, and its index.\nNode.prototype.forEach = function forEach (f) { this.content.forEach(f); };\n\n// :: (number, number, (node: Node, pos: number, parent: Node, index: number) → ?bool, ?number)\n// Invoke a callback for all descendant nodes recursively between\n// the given two positions that are relative to start of this node's\n// content. The callback is invoked with the node, its\n// parent-relative position, its parent node, and its child index.\n// When the callback returns false for a given node, that node's\n// children will not be recursed over. The last parameter can be\n// used to specify a starting position to count from.\nNode.prototype.nodesBetween = function nodesBetween (from, to, f, startPos) {\n if ( startPos === void 0 ) startPos = 0;\n\n this.content.nodesBetween(from, to, f, startPos, this);\n};\n\n// :: ((node: Node, pos: number, parent: Node, index: number) → ?bool)\n// Call the given callback for every descendant node. Doesn't\n// descend into a node when the callback returns `false`.\nNode.prototype.descendants = function descendants (f) {\n this.nodesBetween(0, this.content.size, f);\n};\n\n// :: string\n// Concatenates all the text nodes found in this fragment and its\n// children.\nprototypeAccessors$3.textContent.get = function () { return this.textBetween(0, this.content.size, \"\") };\n\n// :: (number, number, ?string, ?union string>) → string\n// Get all text between positions `from` and `to`. When\n// `blockSeparator` is given, it will be inserted to separate text\n// from different block nodes. When `leafText` is given, it'll be\n// inserted for every non-text leaf node encountered.\nNode.prototype.textBetween = function textBetween (from, to, blockSeparator, leafText) {\n return this.content.textBetween(from, to, blockSeparator, leafText)\n};\n\n// :: ?Node\n// Returns this node's first child, or `null` if there are no\n// children.\nprototypeAccessors$3.firstChild.get = function () { return this.content.firstChild };\n\n// :: ?Node\n// Returns this node's last child, or `null` if there are no\n// children.\nprototypeAccessors$3.lastChild.get = function () { return this.content.lastChild };\n\n// :: (Node) → bool\n// Test whether two nodes represent the same piece of document.\nNode.prototype.eq = function eq (other) {\n return this == other || (this.sameMarkup(other) && this.content.eq(other.content))\n};\n\n// :: (Node) → bool\n// Compare the markup (type, attributes, and marks) of this node to\n// those of another. Returns `true` if both have the same markup.\nNode.prototype.sameMarkup = function sameMarkup (other) {\n return this.hasMarkup(other.type, other.attrs, other.marks)\n};\n\n// :: (NodeType, ?Object, ?[Mark]) → bool\n// Check whether this node's markup correspond to the given type,\n// attributes, and marks.\nNode.prototype.hasMarkup = function hasMarkup (type, attrs, marks) {\n return this.type == type &&\n compareDeep(this.attrs, attrs || type.defaultAttrs || emptyAttrs) &&\n Mark.sameSet(this.marks, marks || Mark.none)\n};\n\n// :: (?Fragment) → Node\n// Create a new node with the same markup as this node, containing\n// the given content (or empty, if no content is given).\nNode.prototype.copy = function copy (content) {\n if ( content === void 0 ) content = null;\n\n if (content == this.content) { return this }\n return new this.constructor(this.type, this.attrs, content, this.marks)\n};\n\n// :: ([Mark]) → Node\n// Create a copy of this node, with the given set of marks instead\n// of the node's own marks.\nNode.prototype.mark = function mark (marks) {\n return marks == this.marks ? this : new this.constructor(this.type, this.attrs, this.content, marks)\n};\n\n// :: (number, ?number) → Node\n// Create a copy of this node with only the content between the\n// given positions. If `to` is not given, it defaults to the end of\n// the node.\nNode.prototype.cut = function cut (from, to) {\n if (from == 0 && to == this.content.size) { return this }\n return this.copy(this.content.cut(from, to))\n};\n\n// :: (number, ?number) → Slice\n// Cut out the part of the document between the given positions, and\n// return it as a `Slice` object.\nNode.prototype.slice = function slice (from, to, includeParents) {\n if ( to === void 0 ) to = this.content.size;\n if ( includeParents === void 0 ) includeParents = false;\n\n if (from == to) { return Slice.empty }\n\n var $from = this.resolve(from), $to = this.resolve(to);\n var depth = includeParents ? 0 : $from.sharedDepth(to);\n var start = $from.start(depth), node = $from.node(depth);\n var content = node.content.cut($from.pos - start, $to.pos - start);\n return new Slice(content, $from.depth - depth, $to.depth - depth)\n};\n\n// :: (number, number, Slice) → Node\n// Replace the part of the document between the given positions with\n// the given slice. The slice must 'fit', meaning its open sides\n// must be able to connect to the surrounding content, and its\n// content nodes must be valid children for the node they are placed\n// into. If any of this is violated, an error of type\n// [`ReplaceError`](#model.ReplaceError) is thrown.\nNode.prototype.replace = function replace$1 (from, to, slice) {\n return replace(this.resolve(from), this.resolve(to), slice)\n};\n\n// :: (number) → ?Node\n// Find the node directly after the given position.\nNode.prototype.nodeAt = function nodeAt (pos) {\n for (var node = this;;) {\n var ref = node.content.findIndex(pos);\n var index = ref.index;\n var offset = ref.offset;\n node = node.maybeChild(index);\n if (!node) { return null }\n if (offset == pos || node.isText) { return node }\n pos -= offset + 1;\n }\n};\n\n// :: (number) → {node: ?Node, index: number, offset: number}\n// Find the (direct) child node after the given offset, if any,\n// and return it along with its index and offset relative to this\n// node.\nNode.prototype.childAfter = function childAfter (pos) {\n var ref = this.content.findIndex(pos);\n var index = ref.index;\n var offset = ref.offset;\n return {node: this.content.maybeChild(index), index: index, offset: offset}\n};\n\n// :: (number) → {node: ?Node, index: number, offset: number}\n// Find the (direct) child node before the given offset, if any,\n// and return it along with its index and offset relative to this\n// node.\nNode.prototype.childBefore = function childBefore (pos) {\n if (pos == 0) { return {node: null, index: 0, offset: 0} }\n var ref = this.content.findIndex(pos);\n var index = ref.index;\n var offset = ref.offset;\n if (offset < pos) { return {node: this.content.child(index), index: index, offset: offset} }\n var node = this.content.child(index - 1);\n return {node: node, index: index - 1, offset: offset - node.nodeSize}\n};\n\n// :: (number) → ResolvedPos\n// Resolve the given position in the document, returning an\n// [object](#model.ResolvedPos) with information about its context.\nNode.prototype.resolve = function resolve (pos) { return ResolvedPos.resolveCached(this, pos) };\n\nNode.prototype.resolveNoCache = function resolveNoCache (pos) { return ResolvedPos.resolve(this, pos) };\n\n// :: (number, number, union) → bool\n// Test whether a given mark or mark type occurs in this document\n// between the two given positions.\nNode.prototype.rangeHasMark = function rangeHasMark (from, to, type) {\n var found = false;\n if (to > from) { this.nodesBetween(from, to, function (node) {\n if (type.isInSet(node.marks)) { found = true; }\n return !found\n }); }\n return found\n};\n\n// :: bool\n// True when this is a block (non-inline node)\nprototypeAccessors$3.isBlock.get = function () { return this.type.isBlock };\n\n// :: bool\n// True when this is a textblock node, a block node with inline\n// content.\nprototypeAccessors$3.isTextblock.get = function () { return this.type.isTextblock };\n\n// :: bool\n// True when this node allows inline content.\nprototypeAccessors$3.inlineContent.get = function () { return this.type.inlineContent };\n\n// :: bool\n// True when this is an inline node (a text node or a node that can\n// appear among text).\nprototypeAccessors$3.isInline.get = function () { return this.type.isInline };\n\n// :: bool\n// True when this is a text node.\nprototypeAccessors$3.isText.get = function () { return this.type.isText };\n\n// :: bool\n// True when this is a leaf node.\nprototypeAccessors$3.isLeaf.get = function () { return this.type.isLeaf };\n\n// :: bool\n// True when this is an atom, i.e. when it does not have directly\n// editable content. This is usually the same as `isLeaf`, but can\n// be configured with the [`atom` property](#model.NodeSpec.atom) on\n// a node's spec (typically used when the node is displayed as an\n// uneditable [node view](#view.NodeView)).\nprototypeAccessors$3.isAtom.get = function () { return this.type.isAtom };\n\n// :: () → string\n// Return a string representation of this node for debugging\n// purposes.\nNode.prototype.toString = function toString () {\n if (this.type.spec.toDebugString) { return this.type.spec.toDebugString(this) }\n var name = this.type.name;\n if (this.content.size)\n { name += \"(\" + this.content.toStringInner() + \")\"; }\n return wrapMarks(this.marks, name)\n};\n\n// :: (number) → ContentMatch\n// Get the content match in this node at the given index.\nNode.prototype.contentMatchAt = function contentMatchAt (index) {\n var match = this.type.contentMatch.matchFragment(this.content, 0, index);\n if (!match) { throw new Error(\"Called contentMatchAt on a node with invalid content\") }\n return match\n};\n\n// :: (number, number, ?Fragment, ?number, ?number) → bool\n// Test whether replacing the range between `from` and `to` (by\n// child index) with the given replacement fragment (which defaults\n// to the empty fragment) would leave the node's content valid. You\n// can optionally pass `start` and `end` indices into the\n// replacement fragment.\nNode.prototype.canReplace = function canReplace (from, to, replacement, start, end) {\n if ( replacement === void 0 ) replacement = Fragment.empty;\n if ( start === void 0 ) start = 0;\n if ( end === void 0 ) end = replacement.childCount;\n\n var one = this.contentMatchAt(from).matchFragment(replacement, start, end);\n var two = one && one.matchFragment(this.content, to);\n if (!two || !two.validEnd) { return false }\n for (var i = start; i < end; i++) { if (!this.type.allowsMarks(replacement.child(i).marks)) { return false } }\n return true\n};\n\n// :: (number, number, NodeType, ?[Mark]) → bool\n// Test whether replacing the range `from` to `to` (by index) with a\n// node of the given type would leave the node's content valid.\nNode.prototype.canReplaceWith = function canReplaceWith (from, to, type, marks) {\n if (marks && !this.type.allowsMarks(marks)) { return false }\n var start = this.contentMatchAt(from).matchType(type);\n var end = start && start.matchFragment(this.content, to);\n return end ? end.validEnd : false\n};\n\n// :: (Node) → bool\n// Test whether the given node's content could be appended to this\n// node. If that node is empty, this will only return true if there\n// is at least one node type that can appear in both nodes (to avoid\n// merging completely incompatible nodes).\nNode.prototype.canAppend = function canAppend (other) {\n if (other.content.size) { return this.canReplace(this.childCount, this.childCount, other.content) }\n else { return this.type.compatibleContent(other.type) }\n};\n\n// :: ()\n// Check whether this node and its descendants conform to the\n// schema, and raise error when they do not.\nNode.prototype.check = function check () {\n if (!this.type.validContent(this.content))\n { throw new RangeError((\"Invalid content for node \" + (this.type.name) + \": \" + (this.content.toString().slice(0, 50)))) }\n var copy = Mark.none;\n for (var i = 0; i < this.marks.length; i++) { copy = this.marks[i].addToSet(copy); }\n if (!Mark.sameSet(copy, this.marks))\n { throw new RangeError((\"Invalid collection of marks for node \" + (this.type.name) + \": \" + (this.marks.map(function (m) { return m.type.name; })))) }\n this.content.forEach(function (node) { return node.check(); });\n};\n\n// :: () → Object\n// Return a JSON-serializeable representation of this node.\nNode.prototype.toJSON = function toJSON () {\n var obj = {type: this.type.name};\n for (var _ in this.attrs) {\n obj.attrs = this.attrs;\n break\n }\n if (this.content.size)\n { obj.content = this.content.toJSON(); }\n if (this.marks.length)\n { obj.marks = this.marks.map(function (n) { return n.toJSON(); }); }\n return obj\n};\n\n// :: (Schema, Object) → Node\n// Deserialize a node from its JSON representation.\nNode.fromJSON = function fromJSON (schema, json) {\n if (!json) { throw new RangeError(\"Invalid input for Node.fromJSON\") }\n var marks = null;\n if (json.marks) {\n if (!Array.isArray(json.marks)) { throw new RangeError(\"Invalid mark data for Node.fromJSON\") }\n marks = json.marks.map(schema.markFromJSON);\n }\n if (json.type == \"text\") {\n if (typeof json.text != \"string\") { throw new RangeError(\"Invalid text node in JSON\") }\n return schema.text(json.text, marks)\n }\n var content = Fragment.fromJSON(schema, json.content);\n return schema.nodeType(json.type).create(json.attrs, content, marks)\n};\n\nObject.defineProperties( Node.prototype, prototypeAccessors$3 );\n\nvar TextNode = /*@__PURE__*/(function (Node) {\n function TextNode(type, attrs, content, marks) {\n Node.call(this, type, attrs, null, marks);\n\n if (!content) { throw new RangeError(\"Empty text nodes are not allowed\") }\n\n this.text = content;\n }\n\n if ( Node ) TextNode.__proto__ = Node;\n TextNode.prototype = Object.create( Node && Node.prototype );\n TextNode.prototype.constructor = TextNode;\n\n var prototypeAccessors$1 = { textContent: { configurable: true },nodeSize: { configurable: true } };\n\n TextNode.prototype.toString = function toString () {\n if (this.type.spec.toDebugString) { return this.type.spec.toDebugString(this) }\n return wrapMarks(this.marks, JSON.stringify(this.text))\n };\n\n prototypeAccessors$1.textContent.get = function () { return this.text };\n\n TextNode.prototype.textBetween = function textBetween (from, to) { return this.text.slice(from, to) };\n\n prototypeAccessors$1.nodeSize.get = function () { return this.text.length };\n\n TextNode.prototype.mark = function mark (marks) {\n return marks == this.marks ? this : new TextNode(this.type, this.attrs, this.text, marks)\n };\n\n TextNode.prototype.withText = function withText (text) {\n if (text == this.text) { return this }\n return new TextNode(this.type, this.attrs, text, this.marks)\n };\n\n TextNode.prototype.cut = function cut (from, to) {\n if ( from === void 0 ) from = 0;\n if ( to === void 0 ) to = this.text.length;\n\n if (from == 0 && to == this.text.length) { return this }\n return this.withText(this.text.slice(from, to))\n };\n\n TextNode.prototype.eq = function eq (other) {\n return this.sameMarkup(other) && this.text == other.text\n };\n\n TextNode.prototype.toJSON = function toJSON () {\n var base = Node.prototype.toJSON.call(this);\n base.text = this.text;\n return base\n };\n\n Object.defineProperties( TextNode.prototype, prototypeAccessors$1 );\n\n return TextNode;\n}(Node));\n\nfunction wrapMarks(marks, str) {\n for (var i = marks.length - 1; i >= 0; i--)\n { str = marks[i].type.name + \"(\" + str + \")\"; }\n return str\n}\n\n// ::- Instances of this class represent a match state of a node\n// type's [content expression](#model.NodeSpec.content), and can be\n// used to find out whether further content matches here, and whether\n// a given position is a valid end of the node.\nvar ContentMatch = function ContentMatch(validEnd) {\n // :: bool\n // True when this match state represents a valid end of the node.\n this.validEnd = validEnd;\n this.next = [];\n this.wrapCache = [];\n};\n\nvar prototypeAccessors$4 = { inlineContent: { configurable: true },defaultType: { configurable: true },edgeCount: { configurable: true } };\n\nContentMatch.parse = function parse (string, nodeTypes) {\n var stream = new TokenStream(string, nodeTypes);\n if (stream.next == null) { return ContentMatch.empty }\n var expr = parseExpr(stream);\n if (stream.next) { stream.err(\"Unexpected trailing text\"); }\n var match = dfa(nfa(expr));\n checkForDeadEnds(match, stream);\n return match\n};\n\n// :: (NodeType) → ?ContentMatch\n// Match a node type, returning a match after that node if\n// successful.\nContentMatch.prototype.matchType = function matchType (type) {\n for (var i = 0; i < this.next.length; i += 2)\n { if (this.next[i] == type) { return this.next[i + 1] } }\n return null\n};\n\n// :: (Fragment, ?number, ?number) → ?ContentMatch\n// Try to match a fragment. Returns the resulting match when\n// successful.\nContentMatch.prototype.matchFragment = function matchFragment (frag, start, end) {\n if ( start === void 0 ) start = 0;\n if ( end === void 0 ) end = frag.childCount;\n\n var cur = this;\n for (var i = start; cur && i < end; i++)\n { cur = cur.matchType(frag.child(i).type); }\n return cur\n};\n\nprototypeAccessors$4.inlineContent.get = function () {\n var first = this.next[0];\n return first ? first.isInline : false\n};\n\n// :: ?NodeType\n// Get the first matching node type at this match position that can\n// be generated.\nprototypeAccessors$4.defaultType.get = function () {\n for (var i = 0; i < this.next.length; i += 2) {\n var type = this.next[i];\n if (!(type.isText || type.hasRequiredAttrs())) { return type }\n }\n};\n\nContentMatch.prototype.compatible = function compatible (other) {\n for (var i = 0; i < this.next.length; i += 2)\n { for (var j = 0; j < other.next.length; j += 2)\n { if (this.next[i] == other.next[j]) { return true } } }\n return false\n};\n\n// :: (Fragment, bool, ?number) → ?Fragment\n// Try to match the given fragment, and if that fails, see if it can\n// be made to match by inserting nodes in front of it. When\n// successful, return a fragment of inserted nodes (which may be\n// empty if nothing had to be inserted). When `toEnd` is true, only\n// return a fragment if the resulting match goes to the end of the\n// content expression.\nContentMatch.prototype.fillBefore = function fillBefore (after, toEnd, startIndex) {\n if ( toEnd === void 0 ) toEnd = false;\n if ( startIndex === void 0 ) startIndex = 0;\n\n var seen = [this];\n function search(match, types) {\n var finished = match.matchFragment(after, startIndex);\n if (finished && (!toEnd || finished.validEnd))\n { return Fragment.from(types.map(function (tp) { return tp.createAndFill(); })) }\n\n for (var i = 0; i < match.next.length; i += 2) {\n var type = match.next[i], next = match.next[i + 1];\n if (!(type.isText || type.hasRequiredAttrs()) && seen.indexOf(next) == -1) {\n seen.push(next);\n var found = search(next, types.concat(type));\n if (found) { return found }\n }\n }\n }\n\n return search(this, [])\n};\n\n// :: (NodeType) → ?[NodeType]\n// Find a set of wrapping node types that would allow a node of the\n// given type to appear at this position. The result may be empty\n// (when it fits directly) and will be null when no such wrapping\n// exists.\nContentMatch.prototype.findWrapping = function findWrapping (target) {\n for (var i = 0; i < this.wrapCache.length; i += 2)\n { if (this.wrapCache[i] == target) { return this.wrapCache[i + 1] } }\n var computed = this.computeWrapping(target);\n this.wrapCache.push(target, computed);\n return computed\n};\n\nContentMatch.prototype.computeWrapping = function computeWrapping (target) {\n var seen = Object.create(null), active = [{match: this, type: null, via: null}];\n while (active.length) {\n var current = active.shift(), match = current.match;\n if (match.matchType(target)) {\n var result = [];\n for (var obj = current; obj.type; obj = obj.via)\n { result.push(obj.type); }\n return result.reverse()\n }\n for (var i = 0; i < match.next.length; i += 2) {\n var type = match.next[i];\n if (!type.isLeaf && !type.hasRequiredAttrs() && !(type.name in seen) && (!current.type || match.next[i + 1].validEnd)) {\n active.push({match: type.contentMatch, type: type, via: current});\n seen[type.name] = true;\n }\n }\n }\n};\n\n// :: number\n// The number of outgoing edges this node has in the finite\n// automaton that describes the content expression.\nprototypeAccessors$4.edgeCount.get = function () {\n return this.next.length >> 1\n};\n\n// :: (number) → {type: NodeType, next: ContentMatch}\n// Get the _n_​th outgoing edge from this node in the finite\n// automaton that describes the content expression.\nContentMatch.prototype.edge = function edge (n) {\n var i = n << 1;\n if (i >= this.next.length) { throw new RangeError((\"There's no \" + n + \"th edge in this content match\")) }\n return {type: this.next[i], next: this.next[i + 1]}\n};\n\nContentMatch.prototype.toString = function toString () {\n var seen = [];\n function scan(m) {\n seen.push(m);\n for (var i = 1; i < m.next.length; i += 2)\n { if (seen.indexOf(m.next[i]) == -1) { scan(m.next[i]); } }\n }\n scan(this);\n return seen.map(function (m, i) {\n var out = i + (m.validEnd ? \"*\" : \" \") + \" \";\n for (var i$1 = 0; i$1 < m.next.length; i$1 += 2)\n { out += (i$1 ? \", \" : \"\") + m.next[i$1].name + \"->\" + seen.indexOf(m.next[i$1 + 1]); }\n return out\n }).join(\"\\n\")\n};\n\nObject.defineProperties( ContentMatch.prototype, prototypeAccessors$4 );\n\nContentMatch.empty = new ContentMatch(true);\n\nvar TokenStream = function TokenStream(string, nodeTypes) {\n this.string = string;\n this.nodeTypes = nodeTypes;\n this.inline = null;\n this.pos = 0;\n this.tokens = string.split(/\\s*(?=\\b|\\W|$)/);\n if (this.tokens[this.tokens.length - 1] == \"\") { this.tokens.pop(); }\n if (this.tokens[0] == \"\") { this.tokens.shift(); }\n};\n\nvar prototypeAccessors$1$2 = { next: { configurable: true } };\n\nprototypeAccessors$1$2.next.get = function () { return this.tokens[this.pos] };\n\nTokenStream.prototype.eat = function eat (tok) { return this.next == tok && (this.pos++ || true) };\n\nTokenStream.prototype.err = function err (str) { throw new SyntaxError(str + \" (in content expression '\" + this.string + \"')\") };\n\nObject.defineProperties( TokenStream.prototype, prototypeAccessors$1$2 );\n\nfunction parseExpr(stream) {\n var exprs = [];\n do { exprs.push(parseExprSeq(stream)); }\n while (stream.eat(\"|\"))\n return exprs.length == 1 ? exprs[0] : {type: \"choice\", exprs: exprs}\n}\n\nfunction parseExprSeq(stream) {\n var exprs = [];\n do { exprs.push(parseExprSubscript(stream)); }\n while (stream.next && stream.next != \")\" && stream.next != \"|\")\n return exprs.length == 1 ? exprs[0] : {type: \"seq\", exprs: exprs}\n}\n\nfunction parseExprSubscript(stream) {\n var expr = parseExprAtom(stream);\n for (;;) {\n if (stream.eat(\"+\"))\n { expr = {type: \"plus\", expr: expr}; }\n else if (stream.eat(\"*\"))\n { expr = {type: \"star\", expr: expr}; }\n else if (stream.eat(\"?\"))\n { expr = {type: \"opt\", expr: expr}; }\n else if (stream.eat(\"{\"))\n { expr = parseExprRange(stream, expr); }\n else { break }\n }\n return expr\n}\n\nfunction parseNum(stream) {\n if (/\\D/.test(stream.next)) { stream.err(\"Expected number, got '\" + stream.next + \"'\"); }\n var result = Number(stream.next);\n stream.pos++;\n return result\n}\n\nfunction parseExprRange(stream, expr) {\n var min = parseNum(stream), max = min;\n if (stream.eat(\",\")) {\n if (stream.next != \"}\") { max = parseNum(stream); }\n else { max = -1; }\n }\n if (!stream.eat(\"}\")) { stream.err(\"Unclosed braced range\"); }\n return {type: \"range\", min: min, max: max, expr: expr}\n}\n\nfunction resolveName(stream, name) {\n var types = stream.nodeTypes, type = types[name];\n if (type) { return [type] }\n var result = [];\n for (var typeName in types) {\n var type$1 = types[typeName];\n if (type$1.groups.indexOf(name) > -1) { result.push(type$1); }\n }\n if (result.length == 0) { stream.err(\"No node type or group '\" + name + \"' found\"); }\n return result\n}\n\nfunction parseExprAtom(stream) {\n if (stream.eat(\"(\")) {\n var expr = parseExpr(stream);\n if (!stream.eat(\")\")) { stream.err(\"Missing closing paren\"); }\n return expr\n } else if (!/\\W/.test(stream.next)) {\n var exprs = resolveName(stream, stream.next).map(function (type) {\n if (stream.inline == null) { stream.inline = type.isInline; }\n else if (stream.inline != type.isInline) { stream.err(\"Mixing inline and block content\"); }\n return {type: \"name\", value: type}\n });\n stream.pos++;\n return exprs.length == 1 ? exprs[0] : {type: \"choice\", exprs: exprs}\n } else {\n stream.err(\"Unexpected token '\" + stream.next + \"'\");\n }\n}\n\n// The code below helps compile a regular-expression-like language\n// into a deterministic finite automaton. For a good introduction to\n// these concepts, see https://swtch.com/~rsc/regexp/regexp1.html\n\n// : (Object) → [[{term: ?any, to: number}]]\n// Construct an NFA from an expression as returned by the parser. The\n// NFA is represented as an array of states, which are themselves\n// arrays of edges, which are `{term, to}` objects. The first state is\n// the entry state and the last node is the success state.\n//\n// Note that unlike typical NFAs, the edge ordering in this one is\n// significant, in that it is used to contruct filler content when\n// necessary.\nfunction nfa(expr) {\n var nfa = [[]];\n connect(compile(expr, 0), node());\n return nfa\n\n function node() { return nfa.push([]) - 1 }\n function edge(from, to, term) {\n var edge = {term: term, to: to};\n nfa[from].push(edge);\n return edge\n }\n function connect(edges, to) { edges.forEach(function (edge) { return edge.to = to; }); }\n\n function compile(expr, from) {\n if (expr.type == \"choice\") {\n return expr.exprs.reduce(function (out, expr) { return out.concat(compile(expr, from)); }, [])\n } else if (expr.type == \"seq\") {\n for (var i = 0;; i++) {\n var next = compile(expr.exprs[i], from);\n if (i == expr.exprs.length - 1) { return next }\n connect(next, from = node());\n }\n } else if (expr.type == \"star\") {\n var loop = node();\n edge(from, loop);\n connect(compile(expr.expr, loop), loop);\n return [edge(loop)]\n } else if (expr.type == \"plus\") {\n var loop$1 = node();\n connect(compile(expr.expr, from), loop$1);\n connect(compile(expr.expr, loop$1), loop$1);\n return [edge(loop$1)]\n } else if (expr.type == \"opt\") {\n return [edge(from)].concat(compile(expr.expr, from))\n } else if (expr.type == \"range\") {\n var cur = from;\n for (var i$1 = 0; i$1 < expr.min; i$1++) {\n var next$1 = node();\n connect(compile(expr.expr, cur), next$1);\n cur = next$1;\n }\n if (expr.max == -1) {\n connect(compile(expr.expr, cur), cur);\n } else {\n for (var i$2 = expr.min; i$2 < expr.max; i$2++) {\n var next$2 = node();\n edge(cur, next$2);\n connect(compile(expr.expr, cur), next$2);\n cur = next$2;\n }\n }\n return [edge(cur)]\n } else if (expr.type == \"name\") {\n return [edge(from, null, expr.value)]\n }\n }\n}\n\nfunction cmp(a, b) { return b - a }\n\n// Get the set of nodes reachable by null edges from `node`. Omit\n// nodes with only a single null-out-edge, since they may lead to\n// needless duplicated nodes.\nfunction nullFrom(nfa, node) {\n var result = [];\n scan(node);\n return result.sort(cmp)\n\n function scan(node) {\n var edges = nfa[node];\n if (edges.length == 1 && !edges[0].term) { return scan(edges[0].to) }\n result.push(node);\n for (var i = 0; i < edges.length; i++) {\n var ref = edges[i];\n var term = ref.term;\n var to = ref.to;\n if (!term && result.indexOf(to) == -1) { scan(to); }\n }\n }\n}\n\n// : ([[{term: ?any, to: number}]]) → ContentMatch\n// Compiles an NFA as produced by `nfa` into a DFA, modeled as a set\n// of state objects (`ContentMatch` instances) with transitions\n// between them.\nfunction dfa(nfa) {\n var labeled = Object.create(null);\n return explore(nullFrom(nfa, 0))\n\n function explore(states) {\n var out = [];\n states.forEach(function (node) {\n nfa[node].forEach(function (ref) {\n var term = ref.term;\n var to = ref.to;\n\n if (!term) { return }\n var known = out.indexOf(term), set = known > -1 && out[known + 1];\n nullFrom(nfa, to).forEach(function (node) {\n if (!set) { out.push(term, set = []); }\n if (set.indexOf(node) == -1) { set.push(node); }\n });\n });\n });\n var state = labeled[states.join(\",\")] = new ContentMatch(states.indexOf(nfa.length - 1) > -1);\n for (var i = 0; i < out.length; i += 2) {\n var states$1 = out[i + 1].sort(cmp);\n state.next.push(out[i], labeled[states$1.join(\",\")] || explore(states$1));\n }\n return state\n }\n}\n\nfunction checkForDeadEnds(match, stream) {\n for (var i = 0, work = [match]; i < work.length; i++) {\n var state = work[i], dead = !state.validEnd, nodes = [];\n for (var j = 0; j < state.next.length; j += 2) {\n var node = state.next[j], next = state.next[j + 1];\n nodes.push(node.name);\n if (dead && !(node.isText || node.hasRequiredAttrs())) { dead = false; }\n if (work.indexOf(next) == -1) { work.push(next); }\n }\n if (dead) { stream.err(\"Only non-generatable nodes (\" + nodes.join(\", \") + \") in a required position (see https://prosemirror.net/docs/guide/#generatable)\"); }\n }\n}\n\n// For node types where all attrs have a default value (or which don't\n// have any attributes), build up a single reusable default attribute\n// object, and use it for all nodes that don't specify specific\n// attributes.\nfunction defaultAttrs(attrs) {\n var defaults = Object.create(null);\n for (var attrName in attrs) {\n var attr = attrs[attrName];\n if (!attr.hasDefault) { return null }\n defaults[attrName] = attr.default;\n }\n return defaults\n}\n\nfunction computeAttrs(attrs, value) {\n var built = Object.create(null);\n for (var name in attrs) {\n var given = value && value[name];\n if (given === undefined) {\n var attr = attrs[name];\n if (attr.hasDefault) { given = attr.default; }\n else { throw new RangeError(\"No value supplied for attribute \" + name) }\n }\n built[name] = given;\n }\n return built\n}\n\nfunction initAttrs(attrs) {\n var result = Object.create(null);\n if (attrs) { for (var name in attrs) { result[name] = new Attribute(attrs[name]); } }\n return result\n}\n\n// ::- Node types are objects allocated once per `Schema` and used to\n// [tag](#model.Node.type) `Node` instances. They contain information\n// about the node type, such as its name and what kind of node it\n// represents.\nvar NodeType = function NodeType(name, schema, spec) {\n // :: string\n // The name the node type has in this schema.\n this.name = name;\n\n // :: Schema\n // A link back to the `Schema` the node type belongs to.\n this.schema = schema;\n\n // :: NodeSpec\n // The spec that this type is based on\n this.spec = spec;\n\n this.groups = spec.group ? spec.group.split(\" \") : [];\n this.attrs = initAttrs(spec.attrs);\n\n this.defaultAttrs = defaultAttrs(this.attrs);\n\n // :: ContentMatch\n // The starting match of the node type's content expression.\n this.contentMatch = null;\n\n // : ?[MarkType]\n // The set of marks allowed in this node. `null` means all marks\n // are allowed.\n this.markSet = null;\n\n // :: bool\n // True if this node type has inline content.\n this.inlineContent = null;\n\n // :: bool\n // True if this is a block type\n this.isBlock = !(spec.inline || name == \"text\");\n\n // :: bool\n // True if this is the text node type.\n this.isText = name == \"text\";\n};\n\nvar prototypeAccessors$5 = { isInline: { configurable: true },isTextblock: { configurable: true },isLeaf: { configurable: true },isAtom: { configurable: true },whitespace: { configurable: true } };\n\n// :: bool\n// True if this is an inline type.\nprototypeAccessors$5.isInline.get = function () { return !this.isBlock };\n\n// :: bool\n// True if this is a textblock type, a block that contains inline\n// content.\nprototypeAccessors$5.isTextblock.get = function () { return this.isBlock && this.inlineContent };\n\n// :: bool\n// True for node types that allow no content.\nprototypeAccessors$5.isLeaf.get = function () { return this.contentMatch == ContentMatch.empty };\n\n// :: bool\n// True when this node is an atom, i.e. when it does not have\n// directly editable content.\nprototypeAccessors$5.isAtom.get = function () { return this.isLeaf || this.spec.atom };\n\n// :: union<\"pre\", \"normal\">\n// The node type's [whitespace](#view.NodeSpec.whitespace) option.\nprototypeAccessors$5.whitespace.get = function () { return this.spec.whitespace || (this.spec.code ? \"pre\" : \"normal\") };\n\n// :: () → bool\n// Tells you whether this node type has any required attributes.\nNodeType.prototype.hasRequiredAttrs = function hasRequiredAttrs () {\n for (var n in this.attrs) { if (this.attrs[n].isRequired) { return true } }\n return false\n};\n\nNodeType.prototype.compatibleContent = function compatibleContent (other) {\n return this == other || this.contentMatch.compatible(other.contentMatch)\n};\n\nNodeType.prototype.computeAttrs = function computeAttrs$1 (attrs) {\n if (!attrs && this.defaultAttrs) { return this.defaultAttrs }\n else { return computeAttrs(this.attrs, attrs) }\n};\n\n// :: (?Object, ?union, ?[Mark]) → Node\n// Create a `Node` of this type. The given attributes are\n// checked and defaulted (you can pass `null` to use the type's\n// defaults entirely, if no required attributes exist). `content`\n// may be a `Fragment`, a node, an array of nodes, or\n// `null`. Similarly `marks` may be `null` to default to the empty\n// set of marks.\nNodeType.prototype.create = function create (attrs, content, marks) {\n if (this.isText) { throw new Error(\"NodeType.create can't construct text nodes\") }\n return new Node(this, this.computeAttrs(attrs), Fragment.from(content), Mark.setFrom(marks))\n};\n\n// :: (?Object, ?union, ?[Mark]) → Node\n// Like [`create`](#model.NodeType.create), but check the given content\n// against the node type's content restrictions, and throw an error\n// if it doesn't match.\nNodeType.prototype.createChecked = function createChecked (attrs, content, marks) {\n content = Fragment.from(content);\n if (!this.validContent(content))\n { throw new RangeError(\"Invalid content for node \" + this.name) }\n return new Node(this, this.computeAttrs(attrs), content, Mark.setFrom(marks))\n};\n\n// :: (?Object, ?union, ?[Mark]) → ?Node\n// Like [`create`](#model.NodeType.create), but see if it is necessary to\n// add nodes to the start or end of the given fragment to make it\n// fit the node. If no fitting wrapping can be found, return null.\n// Note that, due to the fact that required nodes can always be\n// created, this will always succeed if you pass null or\n// `Fragment.empty` as content.\nNodeType.prototype.createAndFill = function createAndFill (attrs, content, marks) {\n attrs = this.computeAttrs(attrs);\n content = Fragment.from(content);\n if (content.size) {\n var before = this.contentMatch.fillBefore(content);\n if (!before) { return null }\n content = before.append(content);\n }\n var after = this.contentMatch.matchFragment(content).fillBefore(Fragment.empty, true);\n if (!after) { return null }\n return new Node(this, attrs, content.append(after), Mark.setFrom(marks))\n};\n\n// :: (Fragment) → bool\n// Returns true if the given fragment is valid content for this node\n// type with the given attributes.\nNodeType.prototype.validContent = function validContent (content) {\n var result = this.contentMatch.matchFragment(content);\n if (!result || !result.validEnd) { return false }\n for (var i = 0; i < content.childCount; i++)\n { if (!this.allowsMarks(content.child(i).marks)) { return false } }\n return true\n};\n\n// :: (MarkType) → bool\n// Check whether the given mark type is allowed in this node.\nNodeType.prototype.allowsMarkType = function allowsMarkType (markType) {\n return this.markSet == null || this.markSet.indexOf(markType) > -1\n};\n\n// :: ([Mark]) → bool\n// Test whether the given set of marks are allowed in this node.\nNodeType.prototype.allowsMarks = function allowsMarks (marks) {\n if (this.markSet == null) { return true }\n for (var i = 0; i < marks.length; i++) { if (!this.allowsMarkType(marks[i].type)) { return false } }\n return true\n};\n\n// :: ([Mark]) → [Mark]\n// Removes the marks that are not allowed in this node from the given set.\nNodeType.prototype.allowedMarks = function allowedMarks (marks) {\n if (this.markSet == null) { return marks }\n var copy;\n for (var i = 0; i < marks.length; i++) {\n if (!this.allowsMarkType(marks[i].type)) {\n if (!copy) { copy = marks.slice(0, i); }\n } else if (copy) {\n copy.push(marks[i]);\n }\n }\n return !copy ? marks : copy.length ? copy : Mark.empty\n};\n\nNodeType.compile = function compile (nodes, schema) {\n var result = Object.create(null);\n nodes.forEach(function (name, spec) { return result[name] = new NodeType(name, schema, spec); });\n\n var topType = schema.spec.topNode || \"doc\";\n if (!result[topType]) { throw new RangeError(\"Schema is missing its top node type ('\" + topType + \"')\") }\n if (!result.text) { throw new RangeError(\"Every schema needs a 'text' type\") }\n for (var _ in result.text.attrs) { throw new RangeError(\"The text node type should not have attributes\") }\n\n return result\n};\n\nObject.defineProperties( NodeType.prototype, prototypeAccessors$5 );\n\n// Attribute descriptors\n\nvar Attribute = function Attribute(options) {\n this.hasDefault = Object.prototype.hasOwnProperty.call(options, \"default\");\n this.default = options.default;\n};\n\nvar prototypeAccessors$1$3 = { isRequired: { configurable: true } };\n\nprototypeAccessors$1$3.isRequired.get = function () {\n return !this.hasDefault\n};\n\nObject.defineProperties( Attribute.prototype, prototypeAccessors$1$3 );\n\n// Marks\n\n// ::- Like nodes, marks (which are associated with nodes to signify\n// things like emphasis or being part of a link) are\n// [tagged](#model.Mark.type) with type objects, which are\n// instantiated once per `Schema`.\nvar MarkType = function MarkType(name, rank, schema, spec) {\n // :: string\n // The name of the mark type.\n this.name = name;\n\n // :: Schema\n // The schema that this mark type instance is part of.\n this.schema = schema;\n\n // :: MarkSpec\n // The spec on which the type is based.\n this.spec = spec;\n\n this.attrs = initAttrs(spec.attrs);\n\n this.rank = rank;\n this.excluded = null;\n var defaults = defaultAttrs(this.attrs);\n this.instance = defaults && new Mark(this, defaults);\n};\n\n// :: (?Object) → Mark\n// Create a mark of this type. `attrs` may be `null` or an object\n// containing only some of the mark's attributes. The others, if\n// they have defaults, will be added.\nMarkType.prototype.create = function create (attrs) {\n if (!attrs && this.instance) { return this.instance }\n return new Mark(this, computeAttrs(this.attrs, attrs))\n};\n\nMarkType.compile = function compile (marks, schema) {\n var result = Object.create(null), rank = 0;\n marks.forEach(function (name, spec) { return result[name] = new MarkType(name, rank++, schema, spec); });\n return result\n};\n\n// :: ([Mark]) → [Mark]\n// When there is a mark of this type in the given set, a new set\n// without it is returned. Otherwise, the input set is returned.\nMarkType.prototype.removeFromSet = function removeFromSet (set) {\n for (var i = 0; i < set.length; i++) { if (set[i].type == this) {\n set = set.slice(0, i).concat(set.slice(i + 1));\n i--;\n } }\n return set\n};\n\n// :: ([Mark]) → ?Mark\n// Tests whether there is a mark of this type in the given set.\nMarkType.prototype.isInSet = function isInSet (set) {\n for (var i = 0; i < set.length; i++)\n { if (set[i].type == this) { return set[i] } }\n};\n\n// :: (MarkType) → bool\n// Queries whether a given mark type is\n// [excluded](#model.MarkSpec.excludes) by this one.\nMarkType.prototype.excludes = function excludes (other) {\n return this.excluded.indexOf(other) > -1\n};\n\n// SchemaSpec:: interface\n// An object describing a schema, as passed to the [`Schema`](#model.Schema)\n// constructor.\n//\n// nodes:: union, OrderedMap>\n// The node types in this schema. Maps names to\n// [`NodeSpec`](#model.NodeSpec) objects that describe the node type\n// associated with that name. Their order is significant—it\n// determines which [parse rules](#model.NodeSpec.parseDOM) take\n// precedence by default, and which nodes come first in a given\n// [group](#model.NodeSpec.group).\n//\n// marks:: ?union, OrderedMap>\n// The mark types that exist in this schema. The order in which they\n// are provided determines the order in which [mark\n// sets](#model.Mark.addToSet) are sorted and in which [parse\n// rules](#model.MarkSpec.parseDOM) are tried.\n//\n// topNode:: ?string\n// The name of the default top-level node for the schema. Defaults\n// to `\"doc\"`.\n\n// NodeSpec:: interface\n//\n// content:: ?string\n// The content expression for this node, as described in the [schema\n// guide](/docs/guide/#schema.content_expressions). When not given,\n// the node does not allow any content.\n//\n// marks:: ?string\n// The marks that are allowed inside of this node. May be a\n// space-separated string referring to mark names or groups, `\"_\"`\n// to explicitly allow all marks, or `\"\"` to disallow marks. When\n// not given, nodes with inline content default to allowing all\n// marks, other nodes default to not allowing marks.\n//\n// group:: ?string\n// The group or space-separated groups to which this node belongs,\n// which can be referred to in the content expressions for the\n// schema.\n//\n// inline:: ?bool\n// Should be set to true for inline nodes. (Implied for text nodes.)\n//\n// atom:: ?bool\n// Can be set to true to indicate that, though this isn't a [leaf\n// node](#model.NodeType.isLeaf), it doesn't have directly editable\n// content and should be treated as a single unit in the view.\n//\n// attrs:: ?Object\n// The attributes that nodes of this type get.\n//\n// selectable:: ?bool\n// Controls whether nodes of this type can be selected as a [node\n// selection](#state.NodeSelection). Defaults to true for non-text\n// nodes.\n//\n// draggable:: ?bool\n// Determines whether nodes of this type can be dragged without\n// being selected. Defaults to false.\n//\n// code:: ?bool\n// Can be used to indicate that this node contains code, which\n// causes some commands to behave differently.\n//\n// whitespace:: ?union<\"pre\", \"normal\">\n// Controls way whitespace in this a node is parsed. The default is\n// `\"normal\"`, which causes the [DOM parser](#model.DOMParser) to\n// collapse whitespace in normal mode, and normalize it (replacing\n// newlines and such with spaces) otherwise. `\"pre\"` causes the\n// parser to preserve spaces inside the node. When this option isn't\n// given, but [`code`](#model.NodeSpec.code) is true, `whitespace`\n// will default to `\"pre\"`. Note that this option doesn't influence\n// the way the node is rendered—that should be handled by `toDOM`\n// and/or styling.\n//\n// defining:: ?bool\n// Determines whether this node is considered an important parent\n// node during replace operations (such as paste). Non-defining (the\n// default) nodes get dropped when their entire content is replaced,\n// whereas defining nodes persist and wrap the inserted content.\n// Likewise, in _inserted_ content the defining parents of the\n// content are preserved when possible. Typically,\n// non-default-paragraph textblock types, and possibly list items,\n// are marked as defining.\n//\n// isolating:: ?bool\n// When enabled (default is false), the sides of nodes of this type\n// count as boundaries that regular editing operations, like\n// backspacing or lifting, won't cross. An example of a node that\n// should probably have this enabled is a table cell.\n//\n// toDOM:: ?(node: Node) → DOMOutputSpec\n// Defines the default way a node of this type should be serialized\n// to DOM/HTML (as used by\n// [`DOMSerializer.fromSchema`](#model.DOMSerializer^fromSchema)).\n// Should return a DOM node or an [array\n// structure](#model.DOMOutputSpec) that describes one, with an\n// optional number zero (“hole”) in it to indicate where the node's\n// content should be inserted.\n//\n// For text nodes, the default is to create a text DOM node. Though\n// it is possible to create a serializer where text is rendered\n// differently, this is not supported inside the editor, so you\n// shouldn't override that in your text node spec.\n//\n// parseDOM:: ?[ParseRule]\n// Associates DOM parser information with this node, which can be\n// used by [`DOMParser.fromSchema`](#model.DOMParser^fromSchema) to\n// automatically derive a parser. The `node` field in the rules is\n// implied (the name of this node will be filled in automatically).\n// If you supply your own parser, you do not need to also specify\n// parsing rules in your schema.\n//\n// toDebugString:: ?(node: Node) -> string\n// Defines the default way a node of this type should be serialized\n// to a string representation for debugging (e.g. in error messages).\n\n// MarkSpec:: interface\n//\n// attrs:: ?Object\n// The attributes that marks of this type get.\n//\n// inclusive:: ?bool\n// Whether this mark should be active when the cursor is positioned\n// at its end (or at its start when that is also the start of the\n// parent node). Defaults to true.\n//\n// excludes:: ?string\n// Determines which other marks this mark can coexist with. Should\n// be a space-separated strings naming other marks or groups of marks.\n// When a mark is [added](#model.Mark.addToSet) to a set, all marks\n// that it excludes are removed in the process. If the set contains\n// any mark that excludes the new mark but is not, itself, excluded\n// by the new mark, the mark can not be added an the set. You can\n// use the value `\"_\"` to indicate that the mark excludes all\n// marks in the schema.\n//\n// Defaults to only being exclusive with marks of the same type. You\n// can set it to an empty string (or any string not containing the\n// mark's own name) to allow multiple marks of a given type to\n// coexist (as long as they have different attributes).\n//\n// group:: ?string\n// The group or space-separated groups to which this mark belongs.\n//\n// spanning:: ?bool\n// Determines whether marks of this type can span multiple adjacent\n// nodes when serialized to DOM/HTML. Defaults to true.\n//\n// toDOM:: ?(mark: Mark, inline: bool) → DOMOutputSpec\n// Defines the default way marks of this type should be serialized\n// to DOM/HTML. When the resulting spec contains a hole, that is\n// where the marked content is placed. Otherwise, it is appended to\n// the top node.\n//\n// parseDOM:: ?[ParseRule]\n// Associates DOM parser information with this mark (see the\n// corresponding [node spec field](#model.NodeSpec.parseDOM)). The\n// `mark` field in the rules is implied.\n\n// AttributeSpec:: interface\n//\n// Used to [define](#model.NodeSpec.attrs) attributes on nodes or\n// marks.\n//\n// default:: ?any\n// The default value for this attribute, to use when no explicit\n// value is provided. Attributes that have no default must be\n// provided whenever a node or mark of a type that has them is\n// created.\n\n// ::- A document schema. Holds [node](#model.NodeType) and [mark\n// type](#model.MarkType) objects for the nodes and marks that may\n// occur in conforming documents, and provides functionality for\n// creating and deserializing such documents.\nvar Schema = function Schema(spec) {\n // :: SchemaSpec\n // The [spec](#model.SchemaSpec) on which the schema is based,\n // with the added guarantee that its `nodes` and `marks`\n // properties are\n // [`OrderedMap`](https://github.com/marijnh/orderedmap) instances\n // (not raw objects).\n this.spec = {};\n for (var prop in spec) { this.spec[prop] = spec[prop]; }\n this.spec.nodes = OrderedMap.from(spec.nodes);\n this.spec.marks = OrderedMap.from(spec.marks);\n\n // :: Object\n // An object mapping the schema's node names to node type objects.\n this.nodes = NodeType.compile(this.spec.nodes, this);\n\n // :: Object\n // A map from mark names to mark type objects.\n this.marks = MarkType.compile(this.spec.marks, this);\n\n var contentExprCache = Object.create(null);\n for (var prop$1 in this.nodes) {\n if (prop$1 in this.marks)\n { throw new RangeError(prop$1 + \" can not be both a node and a mark\") }\n var type = this.nodes[prop$1], contentExpr = type.spec.content || \"\", markExpr = type.spec.marks;\n type.contentMatch = contentExprCache[contentExpr] ||\n (contentExprCache[contentExpr] = ContentMatch.parse(contentExpr, this.nodes));\n type.inlineContent = type.contentMatch.inlineContent;\n type.markSet = markExpr == \"_\" ? null :\n markExpr ? gatherMarks(this, markExpr.split(\" \")) :\n markExpr == \"\" || !type.inlineContent ? [] : null;\n }\n for (var prop$2 in this.marks) {\n var type$1 = this.marks[prop$2], excl = type$1.spec.excludes;\n type$1.excluded = excl == null ? [type$1] : excl == \"\" ? [] : gatherMarks(this, excl.split(\" \"));\n }\n\n this.nodeFromJSON = this.nodeFromJSON.bind(this);\n this.markFromJSON = this.markFromJSON.bind(this);\n\n // :: NodeType\n // The type of the [default top node](#model.SchemaSpec.topNode)\n // for this schema.\n this.topNodeType = this.nodes[this.spec.topNode || \"doc\"];\n\n // :: Object\n // An object for storing whatever values modules may want to\n // compute and cache per schema. (If you want to store something\n // in it, try to use property names unlikely to clash.)\n this.cached = Object.create(null);\n this.cached.wrappings = Object.create(null);\n};\n\n// :: (union, ?Object, ?union, ?[Mark]) → Node\n// Create a node in this schema. The `type` may be a string or a\n// `NodeType` instance. Attributes will be extended\n// with defaults, `content` may be a `Fragment`,\n// `null`, a `Node`, or an array of nodes.\nSchema.prototype.node = function node (type, attrs, content, marks) {\n if (typeof type == \"string\")\n { type = this.nodeType(type); }\n else if (!(type instanceof NodeType))\n { throw new RangeError(\"Invalid node type: \" + type) }\n else if (type.schema != this)\n { throw new RangeError(\"Node type from different schema used (\" + type.name + \")\") }\n\n return type.createChecked(attrs, content, marks)\n};\n\n// :: (string, ?[Mark]) → Node\n// Create a text node in the schema. Empty text nodes are not\n// allowed.\nSchema.prototype.text = function text (text$1, marks) {\n var type = this.nodes.text;\n return new TextNode(type, type.defaultAttrs, text$1, Mark.setFrom(marks))\n};\n\n// :: (union, ?Object) → Mark\n// Create a mark with the given type and attributes.\nSchema.prototype.mark = function mark (type, attrs) {\n if (typeof type == \"string\") { type = this.marks[type]; }\n return type.create(attrs)\n};\n\n// :: (Object) → Node\n// Deserialize a node from its JSON representation. This method is\n// bound.\nSchema.prototype.nodeFromJSON = function nodeFromJSON (json) {\n return Node.fromJSON(this, json)\n};\n\n// :: (Object) → Mark\n// Deserialize a mark from its JSON representation. This method is\n// bound.\nSchema.prototype.markFromJSON = function markFromJSON (json) {\n return Mark.fromJSON(this, json)\n};\n\nSchema.prototype.nodeType = function nodeType (name) {\n var found = this.nodes[name];\n if (!found) { throw new RangeError(\"Unknown node type: \" + name) }\n return found\n};\n\nfunction gatherMarks(schema, marks) {\n var found = [];\n for (var i = 0; i < marks.length; i++) {\n var name = marks[i], mark = schema.marks[name], ok = mark;\n if (mark) {\n found.push(mark);\n } else {\n for (var prop in schema.marks) {\n var mark$1 = schema.marks[prop];\n if (name == \"_\" || (mark$1.spec.group && mark$1.spec.group.split(\" \").indexOf(name) > -1))\n { found.push(ok = mark$1); }\n }\n }\n if (!ok) { throw new SyntaxError(\"Unknown mark type: '\" + marks[i] + \"'\") }\n }\n return found\n}\n\n// ParseOptions:: interface\n// These are the options recognized by the\n// [`parse`](#model.DOMParser.parse) and\n// [`parseSlice`](#model.DOMParser.parseSlice) methods.\n//\n// preserveWhitespace:: ?union\n// By default, whitespace is collapsed as per HTML's rules. Pass\n// `true` to preserve whitespace, but normalize newlines to\n// spaces, and `\"full\"` to preserve whitespace entirely.\n//\n// findPositions:: ?[{node: dom.Node, offset: number}]\n// When given, the parser will, beside parsing the content,\n// record the document positions of the given DOM positions. It\n// will do so by writing to the objects, adding a `pos` property\n// that holds the document position. DOM positions that are not\n// in the parsed content will not be written to.\n//\n// from:: ?number\n// The child node index to start parsing from.\n//\n// to:: ?number\n// The child node index to stop parsing at.\n//\n// topNode:: ?Node\n// By default, the content is parsed into the schema's default\n// [top node type](#model.Schema.topNodeType). You can pass this\n// option to use the type and attributes from a different node\n// as the top container.\n//\n// topMatch:: ?ContentMatch\n// Provide the starting content match that content parsed into the\n// top node is matched against.\n//\n// context:: ?ResolvedPos\n// A set of additional nodes to count as\n// [context](#model.ParseRule.context) when parsing, above the\n// given [top node](#model.ParseOptions.topNode).\n\n// ParseRule:: interface\n// A value that describes how to parse a given DOM node or inline\n// style as a ProseMirror node or mark.\n//\n// tag:: ?string\n// A CSS selector describing the kind of DOM elements to match. A\n// single rule should have _either_ a `tag` or a `style` property.\n//\n// namespace:: ?string\n// The namespace to match. This should be used with `tag`.\n// Nodes are only matched when the namespace matches or this property\n// is null.\n//\n// style:: ?string\n// A CSS property name to match. When given, this rule matches\n// inline styles that list that property. May also have the form\n// `\"property=value\"`, in which case the rule only matches if the\n// property's value exactly matches the given value. (For more\n// complicated filters, use [`getAttrs`](#model.ParseRule.getAttrs)\n// and return false to indicate that the match failed.) Rules\n// matching styles may only produce [marks](#model.ParseRule.mark),\n// not nodes.\n//\n// priority:: ?number\n// Can be used to change the order in which the parse rules in a\n// schema are tried. Those with higher priority come first. Rules\n// without a priority are counted as having priority 50. This\n// property is only meaningful in a schema—when directly\n// constructing a parser, the order of the rule array is used.\n//\n// consuming:: ?boolean\n// By default, when a rule matches an element or style, no further\n// rules get a chance to match it. By setting this to `false`, you\n// indicate that even when this rule matches, other rules that come\n// after it should also run.\n//\n// context:: ?string\n// When given, restricts this rule to only match when the current\n// context—the parent nodes into which the content is being\n// parsed—matches this expression. Should contain one or more node\n// names or node group names followed by single or double slashes.\n// For example `\"paragraph/\"` means the rule only matches when the\n// parent node is a paragraph, `\"blockquote/paragraph/\"` restricts\n// it to be in a paragraph that is inside a blockquote, and\n// `\"section//\"` matches any position inside a section—a double\n// slash matches any sequence of ancestor nodes. To allow multiple\n// different contexts, they can be separated by a pipe (`|`)\n// character, as in `\"blockquote/|list_item/\"`.\n//\n// node:: ?string\n// The name of the node type to create when this rule matches. Only\n// valid for rules with a `tag` property, not for style rules. Each\n// rule should have one of a `node`, `mark`, or `ignore` property\n// (except when it appears in a [node](#model.NodeSpec.parseDOM) or\n// [mark spec](#model.MarkSpec.parseDOM), in which case the `node`\n// or `mark` property will be derived from its position).\n//\n// mark:: ?string\n// The name of the mark type to wrap the matched content in.\n//\n// ignore:: ?bool\n// When true, ignore content that matches this rule.\n//\n// closeParent:: ?bool\n// When true, finding an element that matches this rule will close\n// the current node.\n//\n// skip:: ?bool\n// When true, ignore the node that matches this rule, but do parse\n// its content.\n//\n// attrs:: ?Object\n// Attributes for the node or mark created by this rule. When\n// `getAttrs` is provided, it takes precedence.\n//\n// getAttrs:: ?(union) → ?union\n// A function used to compute the attributes for the node or mark\n// created by this rule. Can also be used to describe further\n// conditions the DOM element or style must match. When it returns\n// `false`, the rule won't match. When it returns null or undefined,\n// that is interpreted as an empty/default set of attributes.\n//\n// Called with a DOM Element for `tag` rules, and with a string (the\n// style's value) for `style` rules.\n//\n// contentElement:: ?union\n// For `tag` rules that produce non-leaf nodes or marks, by default\n// the content of the DOM element is parsed as content of the mark\n// or node. If the child nodes are in a descendent node, this may be\n// a CSS selector string that the parser must use to find the actual\n// content element, or a function that returns the actual content\n// element to the parser.\n//\n// getContent:: ?(dom.Node, schema: Schema) → Fragment\n// Can be used to override the content of a matched node. When\n// present, instead of parsing the node's child nodes, the result of\n// this function is used.\n//\n// preserveWhitespace:: ?union\n// Controls whether whitespace should be preserved when parsing the\n// content inside the matched element. `false` means whitespace may\n// be collapsed, `true` means that whitespace should be preserved\n// but newlines normalized to spaces, and `\"full\"` means that\n// newlines should also be preserved.\n\n// ::- A DOM parser represents a strategy for parsing DOM content into\n// a ProseMirror document conforming to a given schema. Its behavior\n// is defined by an array of [rules](#model.ParseRule).\nvar DOMParser = function DOMParser(schema, rules) {\n var this$1 = this;\n\n // :: Schema\n // The schema into which the parser parses.\n this.schema = schema;\n // :: [ParseRule]\n // The set of [parse rules](#model.ParseRule) that the parser\n // uses, in order of precedence.\n this.rules = rules;\n this.tags = [];\n this.styles = [];\n\n rules.forEach(function (rule) {\n if (rule.tag) { this$1.tags.push(rule); }\n else if (rule.style) { this$1.styles.push(rule); }\n });\n\n // Only normalize list elements when lists in the schema can't directly contain themselves\n this.normalizeLists = !this.tags.some(function (r) {\n if (!/^(ul|ol)\\b/.test(r.tag) || !r.node) { return false }\n var node = schema.nodes[r.node];\n return node.contentMatch.matchType(node)\n });\n};\n\n// :: (dom.Node, ?ParseOptions) → Node\n// Parse a document from the content of a DOM node.\nDOMParser.prototype.parse = function parse (dom, options) {\n if ( options === void 0 ) options = {};\n\n var context = new ParseContext(this, options, false);\n context.addAll(dom, null, options.from, options.to);\n return context.finish()\n};\n\n// :: (dom.Node, ?ParseOptions) → Slice\n// Parses the content of the given DOM node, like\n// [`parse`](#model.DOMParser.parse), and takes the same set of\n// options. But unlike that method, which produces a whole node,\n// this one returns a slice that is open at the sides, meaning that\n// the schema constraints aren't applied to the start of nodes to\n// the left of the input and the end of nodes at the end.\nDOMParser.prototype.parseSlice = function parseSlice (dom, options) {\n if ( options === void 0 ) options = {};\n\n var context = new ParseContext(this, options, true);\n context.addAll(dom, null, options.from, options.to);\n return Slice.maxOpen(context.finish())\n};\n\nDOMParser.prototype.matchTag = function matchTag (dom, context, after) {\n for (var i = after ? this.tags.indexOf(after) + 1 : 0; i < this.tags.length; i++) {\n var rule = this.tags[i];\n if (matches(dom, rule.tag) &&\n (rule.namespace === undefined || dom.namespaceURI == rule.namespace) &&\n (!rule.context || context.matchesContext(rule.context))) {\n if (rule.getAttrs) {\n var result = rule.getAttrs(dom);\n if (result === false) { continue }\n rule.attrs = result;\n }\n return rule\n }\n }\n};\n\nDOMParser.prototype.matchStyle = function matchStyle (prop, value, context, after) {\n for (var i = after ? this.styles.indexOf(after) + 1 : 0; i < this.styles.length; i++) {\n var rule = this.styles[i];\n if (rule.style.indexOf(prop) != 0 ||\n rule.context && !context.matchesContext(rule.context) ||\n // Test that the style string either precisely matches the prop,\n // or has an '=' sign after the prop, followed by the given\n // value.\n rule.style.length > prop.length &&\n (rule.style.charCodeAt(prop.length) != 61 || rule.style.slice(prop.length + 1) != value))\n { continue }\n if (rule.getAttrs) {\n var result = rule.getAttrs(value);\n if (result === false) { continue }\n rule.attrs = result;\n }\n return rule\n }\n};\n\n// : (Schema) → [ParseRule]\nDOMParser.schemaRules = function schemaRules (schema) {\n var result = [];\n function insert(rule) {\n var priority = rule.priority == null ? 50 : rule.priority, i = 0;\n for (; i < result.length; i++) {\n var next = result[i], nextPriority = next.priority == null ? 50 : next.priority;\n if (nextPriority < priority) { break }\n }\n result.splice(i, 0, rule);\n }\n\n var loop = function ( name ) {\n var rules = schema.marks[name].spec.parseDOM;\n if (rules) { rules.forEach(function (rule) {\n insert(rule = copy(rule));\n rule.mark = name;\n }); }\n };\n\n for (var name in schema.marks) loop( name );\n var loop$1 = function ( name ) {\n var rules$1 = schema.nodes[name$1].spec.parseDOM;\n if (rules$1) { rules$1.forEach(function (rule) {\n insert(rule = copy(rule));\n rule.node = name$1;\n }); }\n };\n\n for (var name$1 in schema.nodes) loop$1();\n return result\n};\n\n// :: (Schema) → DOMParser\n// Construct a DOM parser using the parsing rules listed in a\n// schema's [node specs](#model.NodeSpec.parseDOM), reordered by\n// [priority](#model.ParseRule.priority).\nDOMParser.fromSchema = function fromSchema (schema) {\n return schema.cached.domParser ||\n (schema.cached.domParser = new DOMParser(schema, DOMParser.schemaRules(schema)))\n};\n\n// : Object The block-level tags in HTML5\nvar blockTags = {\n address: true, article: true, aside: true, blockquote: true, canvas: true,\n dd: true, div: true, dl: true, fieldset: true, figcaption: true, figure: true,\n footer: true, form: true, h1: true, h2: true, h3: true, h4: true, h5: true,\n h6: true, header: true, hgroup: true, hr: true, li: true, noscript: true, ol: true,\n output: true, p: true, pre: true, section: true, table: true, tfoot: true, ul: true\n};\n\n// : Object The tags that we normally ignore.\nvar ignoreTags = {\n head: true, noscript: true, object: true, script: true, style: true, title: true\n};\n\n// : Object List tags.\nvar listTags = {ol: true, ul: true};\n\n// Using a bitfield for node context options\nvar OPT_PRESERVE_WS = 1, OPT_PRESERVE_WS_FULL = 2, OPT_OPEN_LEFT = 4;\n\nfunction wsOptionsFor(type, preserveWhitespace, base) {\n if (preserveWhitespace != null) { return (preserveWhitespace ? OPT_PRESERVE_WS : 0) |\n (preserveWhitespace === \"full\" ? OPT_PRESERVE_WS_FULL : 0) }\n return type && type.whitespace == \"pre\" ? OPT_PRESERVE_WS | OPT_PRESERVE_WS_FULL : base & ~OPT_OPEN_LEFT\n}\n\nvar NodeContext = function NodeContext(type, attrs, marks, pendingMarks, solid, match, options) {\n this.type = type;\n this.attrs = attrs;\n this.solid = solid;\n this.match = match || (options & OPT_OPEN_LEFT ? null : type.contentMatch);\n this.options = options;\n this.content = [];\n // Marks applied to this node itself\n this.marks = marks;\n // Marks applied to its children\n this.activeMarks = Mark.none;\n // Marks that can't apply here, but will be used in children if possible\n this.pendingMarks = pendingMarks;\n // Nested Marks with same type\n this.stashMarks = [];\n};\n\nNodeContext.prototype.findWrapping = function findWrapping (node) {\n if (!this.match) {\n if (!this.type) { return [] }\n var fill = this.type.contentMatch.fillBefore(Fragment.from(node));\n if (fill) {\n this.match = this.type.contentMatch.matchFragment(fill);\n } else {\n var start = this.type.contentMatch, wrap;\n if (wrap = start.findWrapping(node.type)) {\n this.match = start;\n return wrap\n } else {\n return null\n }\n }\n }\n return this.match.findWrapping(node.type)\n};\n\nNodeContext.prototype.finish = function finish (openEnd) {\n if (!(this.options & OPT_PRESERVE_WS)) { // Strip trailing whitespace\n var last = this.content[this.content.length - 1], m;\n if (last && last.isText && (m = /[ \\t\\r\\n\\u000c]+$/.exec(last.text))) {\n if (last.text.length == m[0].length) { this.content.pop(); }\n else { this.content[this.content.length - 1] = last.withText(last.text.slice(0, last.text.length - m[0].length)); }\n }\n }\n var content = Fragment.from(this.content);\n if (!openEnd && this.match)\n { content = content.append(this.match.fillBefore(Fragment.empty, true)); }\n return this.type ? this.type.create(this.attrs, content, this.marks) : content\n};\n\nNodeContext.prototype.popFromStashMark = function popFromStashMark (mark) {\n for (var i = this.stashMarks.length - 1; i >= 0; i--)\n { if (mark.eq(this.stashMarks[i])) { return this.stashMarks.splice(i, 1)[0] } }\n};\n\nNodeContext.prototype.applyPending = function applyPending (nextType) {\n for (var i = 0, pending = this.pendingMarks; i < pending.length; i++) {\n var mark = pending[i];\n if ((this.type ? this.type.allowsMarkType(mark.type) : markMayApply(mark.type, nextType)) &&\n !mark.isInSet(this.activeMarks)) {\n this.activeMarks = mark.addToSet(this.activeMarks);\n this.pendingMarks = mark.removeFromSet(this.pendingMarks);\n }\n }\n};\n\nNodeContext.prototype.inlineContext = function inlineContext (node) {\n if (this.type) { return this.type.inlineContent }\n if (this.content.length) { return this.content[0].isInline }\n return node.parentNode && !blockTags.hasOwnProperty(node.parentNode.nodeName.toLowerCase())\n};\n\nvar ParseContext = function ParseContext(parser, options, open) {\n // : DOMParser The parser we are using.\n this.parser = parser;\n // : Object The options passed to this parse.\n this.options = options;\n this.isOpen = open;\n var topNode = options.topNode, topContext;\n var topOptions = wsOptionsFor(null, options.preserveWhitespace, 0) | (open ? OPT_OPEN_LEFT : 0);\n if (topNode)\n { topContext = new NodeContext(topNode.type, topNode.attrs, Mark.none, Mark.none, true,\n options.topMatch || topNode.type.contentMatch, topOptions); }\n else if (open)\n { topContext = new NodeContext(null, null, Mark.none, Mark.none, true, null, topOptions); }\n else\n { topContext = new NodeContext(parser.schema.topNodeType, null, Mark.none, Mark.none, true, null, topOptions); }\n this.nodes = [topContext];\n // : [Mark] The current set of marks\n this.open = 0;\n this.find = options.findPositions;\n this.needsBlock = false;\n};\n\nvar prototypeAccessors$6 = { top: { configurable: true },currentPos: { configurable: true } };\n\nprototypeAccessors$6.top.get = function () {\n return this.nodes[this.open]\n};\n\n// : (dom.Node)\n// Add a DOM node to the content. Text is inserted as text node,\n// otherwise, the node is passed to `addElement` or, if it has a\n// `style` attribute, `addElementWithStyles`.\nParseContext.prototype.addDOM = function addDOM (dom) {\n if (dom.nodeType == 3) {\n this.addTextNode(dom);\n } else if (dom.nodeType == 1) {\n var style = dom.getAttribute(\"style\");\n var marks = style ? this.readStyles(parseStyles(style)) : null, top = this.top;\n if (marks != null) { for (var i = 0; i < marks.length; i++) { this.addPendingMark(marks[i]); } }\n this.addElement(dom);\n if (marks != null) { for (var i$1 = 0; i$1 < marks.length; i$1++) { this.removePendingMark(marks[i$1], top); } }\n }\n};\n\nParseContext.prototype.addTextNode = function addTextNode (dom) {\n var value = dom.nodeValue;\n var top = this.top;\n if (top.options & OPT_PRESERVE_WS_FULL ||\n top.inlineContext(dom) ||\n /[^ \\t\\r\\n\\u000c]/.test(value)) {\n if (!(top.options & OPT_PRESERVE_WS)) {\n value = value.replace(/[ \\t\\r\\n\\u000c]+/g, \" \");\n // If this starts with whitespace, and there is no node before it, or\n // a hard break, or a text node that ends with whitespace, strip the\n // leading space.\n if (/^[ \\t\\r\\n\\u000c]/.test(value) && this.open == this.nodes.length - 1) {\n var nodeBefore = top.content[top.content.length - 1];\n var domNodeBefore = dom.previousSibling;\n if (!nodeBefore ||\n (domNodeBefore && domNodeBefore.nodeName == 'BR') ||\n (nodeBefore.isText && /[ \\t\\r\\n\\u000c]$/.test(nodeBefore.text)))\n { value = value.slice(1); }\n }\n } else if (!(top.options & OPT_PRESERVE_WS_FULL)) {\n value = value.replace(/\\r?\\n|\\r/g, \" \");\n } else {\n value = value.replace(/\\r\\n?/g, \"\\n\");\n }\n if (value) { this.insertNode(this.parser.schema.text(value)); }\n this.findInText(dom);\n } else {\n this.findInside(dom);\n }\n};\n\n// : (dom.Element, ?ParseRule)\n// Try to find a handler for the given tag and use that to parse. If\n// none is found, the element's content nodes are added directly.\nParseContext.prototype.addElement = function addElement (dom, matchAfter) {\n var name = dom.nodeName.toLowerCase(), ruleID;\n if (listTags.hasOwnProperty(name) && this.parser.normalizeLists) { normalizeList(dom); }\n var rule = (this.options.ruleFromNode && this.options.ruleFromNode(dom)) ||\n (ruleID = this.parser.matchTag(dom, this, matchAfter));\n if (rule ? rule.ignore : ignoreTags.hasOwnProperty(name)) {\n this.findInside(dom);\n this.ignoreFallback(dom);\n } else if (!rule || rule.skip || rule.closeParent) {\n if (rule && rule.closeParent) { this.open = Math.max(0, this.open - 1); }\n else if (rule && rule.skip.nodeType) { dom = rule.skip; }\n var sync, top = this.top, oldNeedsBlock = this.needsBlock;\n if (blockTags.hasOwnProperty(name)) {\n sync = true;\n if (!top.type) { this.needsBlock = true; }\n } else if (!dom.firstChild) {\n this.leafFallback(dom);\n return\n }\n this.addAll(dom);\n if (sync) { this.sync(top); }\n this.needsBlock = oldNeedsBlock;\n } else {\n this.addElementByRule(dom, rule, rule.consuming === false ? ruleID : null);\n }\n};\n\n// Called for leaf DOM nodes that would otherwise be ignored\nParseContext.prototype.leafFallback = function leafFallback (dom) {\n if (dom.nodeName == \"BR\" && this.top.type && this.top.type.inlineContent)\n { this.addTextNode(dom.ownerDocument.createTextNode(\"\\n\")); }\n};\n\n// Called for ignored nodes\nParseContext.prototype.ignoreFallback = function ignoreFallback (dom) {\n // Ignored BR nodes should at least create an inline context\n if (dom.nodeName == \"BR\" && (!this.top.type || !this.top.type.inlineContent))\n { this.findPlace(this.parser.schema.text(\"-\")); }\n};\n\n// Run any style parser associated with the node's styles. Either\n// return an array of marks, or null to indicate some of the styles\n// had a rule with `ignore` set.\nParseContext.prototype.readStyles = function readStyles (styles) {\n var marks = Mark.none;\n style: for (var i = 0; i < styles.length; i += 2) {\n for (var after = null;;) {\n var rule = this.parser.matchStyle(styles[i], styles[i + 1], this, after);\n if (!rule) { continue style }\n if (rule.ignore) { return null }\n marks = this.parser.schema.marks[rule.mark].create(rule.attrs).addToSet(marks);\n if (rule.consuming === false) { after = rule; }\n else { break }\n }\n }\n return marks\n};\n\n// : (dom.Element, ParseRule) → bool\n// Look up a handler for the given node. If none are found, return\n// false. Otherwise, apply it, use its return value to drive the way\n// the node's content is wrapped, and return true.\nParseContext.prototype.addElementByRule = function addElementByRule (dom, rule, continueAfter) {\n var this$1 = this;\n\n var sync, nodeType, markType, mark;\n if (rule.node) {\n nodeType = this.parser.schema.nodes[rule.node];\n if (!nodeType.isLeaf) {\n sync = this.enter(nodeType, rule.attrs, rule.preserveWhitespace);\n } else if (!this.insertNode(nodeType.create(rule.attrs))) {\n this.leafFallback(dom);\n }\n } else {\n markType = this.parser.schema.marks[rule.mark];\n mark = markType.create(rule.attrs);\n this.addPendingMark(mark);\n }\n var startIn = this.top;\n\n if (nodeType && nodeType.isLeaf) {\n this.findInside(dom);\n } else if (continueAfter) {\n this.addElement(dom, continueAfter);\n } else if (rule.getContent) {\n this.findInside(dom);\n rule.getContent(dom, this.parser.schema).forEach(function (node) { return this$1.insertNode(node); });\n } else {\n var contentDOM = rule.contentElement;\n if (typeof contentDOM == \"string\") { contentDOM = dom.querySelector(contentDOM); }\n else if (typeof contentDOM == \"function\") { contentDOM = contentDOM(dom); }\n if (!contentDOM) { contentDOM = dom; }\n this.findAround(dom, contentDOM, true);\n this.addAll(contentDOM, sync);\n }\n if (sync) { this.sync(startIn); this.open--; }\n if (mark) { this.removePendingMark(mark, startIn); }\n};\n\n// : (dom.Node, ?NodeBuilder, ?number, ?number)\n// Add all child nodes between `startIndex` and `endIndex` (or the\n// whole node, if not given). If `sync` is passed, use it to\n// synchronize after every block element.\nParseContext.prototype.addAll = function addAll (parent, sync, startIndex, endIndex) {\n var index = startIndex || 0;\n for (var dom = startIndex ? parent.childNodes[startIndex] : parent.firstChild,\n end = endIndex == null ? null : parent.childNodes[endIndex];\n dom != end; dom = dom.nextSibling, ++index) {\n this.findAtPoint(parent, index);\n this.addDOM(dom);\n if (sync && blockTags.hasOwnProperty(dom.nodeName.toLowerCase()))\n { this.sync(sync); }\n }\n this.findAtPoint(parent, index);\n};\n\n// Try to find a way to fit the given node type into the current\n// context. May add intermediate wrappers and/or leave non-solid\n// nodes that we're in.\nParseContext.prototype.findPlace = function findPlace (node) {\n var route, sync;\n for (var depth = this.open; depth >= 0; depth--) {\n var cx = this.nodes[depth];\n var found = cx.findWrapping(node);\n if (found && (!route || route.length > found.length)) {\n route = found;\n sync = cx;\n if (!found.length) { break }\n }\n if (cx.solid) { break }\n }\n if (!route) { return false }\n this.sync(sync);\n for (var i = 0; i < route.length; i++)\n { this.enterInner(route[i], null, false); }\n return true\n};\n\n// : (Node) → ?Node\n// Try to insert the given node, adjusting the context when needed.\nParseContext.prototype.insertNode = function insertNode (node) {\n if (node.isInline && this.needsBlock && !this.top.type) {\n var block = this.textblockFromContext();\n if (block) { this.enterInner(block); }\n }\n if (this.findPlace(node)) {\n this.closeExtra();\n var top = this.top;\n top.applyPending(node.type);\n if (top.match) { top.match = top.match.matchType(node.type); }\n var marks = top.activeMarks;\n for (var i = 0; i < node.marks.length; i++)\n { if (!top.type || top.type.allowsMarkType(node.marks[i].type))\n { marks = node.marks[i].addToSet(marks); } }\n top.content.push(node.mark(marks));\n return true\n }\n return false\n};\n\n// : (NodeType, ?Object) → bool\n// Try to start a node of the given type, adjusting the context when\n// necessary.\nParseContext.prototype.enter = function enter (type, attrs, preserveWS) {\n var ok = this.findPlace(type.create(attrs));\n if (ok) { this.enterInner(type, attrs, true, preserveWS); }\n return ok\n};\n\n// Open a node of the given type\nParseContext.prototype.enterInner = function enterInner (type, attrs, solid, preserveWS) {\n this.closeExtra();\n var top = this.top;\n top.applyPending(type);\n top.match = top.match && top.match.matchType(type, attrs);\n var options = wsOptionsFor(type, preserveWS, top.options);\n if ((top.options & OPT_OPEN_LEFT) && top.content.length == 0) { options |= OPT_OPEN_LEFT; }\n this.nodes.push(new NodeContext(type, attrs, top.activeMarks, top.pendingMarks, solid, null, options));\n this.open++;\n};\n\n// Make sure all nodes above this.open are finished and added to\n// their parents\nParseContext.prototype.closeExtra = function closeExtra (openEnd) {\n var i = this.nodes.length - 1;\n if (i > this.open) {\n for (; i > this.open; i--) { this.nodes[i - 1].content.push(this.nodes[i].finish(openEnd)); }\n this.nodes.length = this.open + 1;\n }\n};\n\nParseContext.prototype.finish = function finish () {\n this.open = 0;\n this.closeExtra(this.isOpen);\n return this.nodes[0].finish(this.isOpen || this.options.topOpen)\n};\n\nParseContext.prototype.sync = function sync (to) {\n for (var i = this.open; i >= 0; i--) { if (this.nodes[i] == to) {\n this.open = i;\n return\n } }\n};\n\nprototypeAccessors$6.currentPos.get = function () {\n this.closeExtra();\n var pos = 0;\n for (var i = this.open; i >= 0; i--) {\n var content = this.nodes[i].content;\n for (var j = content.length - 1; j >= 0; j--)\n { pos += content[j].nodeSize; }\n if (i) { pos++; }\n }\n return pos\n};\n\nParseContext.prototype.findAtPoint = function findAtPoint (parent, offset) {\n if (this.find) { for (var i = 0; i < this.find.length; i++) {\n if (this.find[i].node == parent && this.find[i].offset == offset)\n { this.find[i].pos = this.currentPos; }\n } }\n};\n\nParseContext.prototype.findInside = function findInside (parent) {\n if (this.find) { for (var i = 0; i < this.find.length; i++) {\n if (this.find[i].pos == null && parent.nodeType == 1 && parent.contains(this.find[i].node))\n { this.find[i].pos = this.currentPos; }\n } }\n};\n\nParseContext.prototype.findAround = function findAround (parent, content, before) {\n if (parent != content && this.find) { for (var i = 0; i < this.find.length; i++) {\n if (this.find[i].pos == null && parent.nodeType == 1 && parent.contains(this.find[i].node)) {\n var pos = content.compareDocumentPosition(this.find[i].node);\n if (pos & (before ? 2 : 4))\n { this.find[i].pos = this.currentPos; }\n }\n } }\n};\n\nParseContext.prototype.findInText = function findInText (textNode) {\n if (this.find) { for (var i = 0; i < this.find.length; i++) {\n if (this.find[i].node == textNode)\n { this.find[i].pos = this.currentPos - (textNode.nodeValue.length - this.find[i].offset); }\n } }\n};\n\n// : (string) → bool\n// Determines whether the given [context\n// string](#ParseRule.context) matches this context.\nParseContext.prototype.matchesContext = function matchesContext (context) {\n var this$1 = this;\n\n if (context.indexOf(\"|\") > -1)\n { return context.split(/\\s*\\|\\s*/).some(this.matchesContext, this) }\n\n var parts = context.split(\"/\");\n var option = this.options.context;\n var useRoot = !this.isOpen && (!option || option.parent.type == this.nodes[0].type);\n var minDepth = -(option ? option.depth + 1 : 0) + (useRoot ? 0 : 1);\n var match = function (i, depth) {\n for (; i >= 0; i--) {\n var part = parts[i];\n if (part == \"\") {\n if (i == parts.length - 1 || i == 0) { continue }\n for (; depth >= minDepth; depth--)\n { if (match(i - 1, depth)) { return true } }\n return false\n } else {\n var next = depth > 0 || (depth == 0 && useRoot) ? this$1.nodes[depth].type\n : option && depth >= minDepth ? option.node(depth - minDepth).type\n : null;\n if (!next || (next.name != part && next.groups.indexOf(part) == -1))\n { return false }\n depth--;\n }\n }\n return true\n };\n return match(parts.length - 1, this.open)\n};\n\nParseContext.prototype.textblockFromContext = function textblockFromContext () {\n var $context = this.options.context;\n if ($context) { for (var d = $context.depth; d >= 0; d--) {\n var deflt = $context.node(d).contentMatchAt($context.indexAfter(d)).defaultType;\n if (deflt && deflt.isTextblock && deflt.defaultAttrs) { return deflt }\n } }\n for (var name in this.parser.schema.nodes) {\n var type = this.parser.schema.nodes[name];\n if (type.isTextblock && type.defaultAttrs) { return type }\n }\n};\n\nParseContext.prototype.addPendingMark = function addPendingMark (mark) {\n var found = findSameMarkInSet(mark, this.top.pendingMarks);\n if (found) { this.top.stashMarks.push(found); }\n this.top.pendingMarks = mark.addToSet(this.top.pendingMarks);\n};\n\nParseContext.prototype.removePendingMark = function removePendingMark (mark, upto) {\n for (var depth = this.open; depth >= 0; depth--) {\n var level = this.nodes[depth];\n var found = level.pendingMarks.lastIndexOf(mark);\n if (found > -1) {\n level.pendingMarks = mark.removeFromSet(level.pendingMarks);\n } else {\n level.activeMarks = mark.removeFromSet(level.activeMarks);\n var stashMark = level.popFromStashMark(mark);\n if (stashMark && level.type && level.type.allowsMarkType(stashMark.type))\n { level.activeMarks = stashMark.addToSet(level.activeMarks); }\n }\n if (level == upto) { break }\n }\n};\n\nObject.defineProperties( ParseContext.prototype, prototypeAccessors$6 );\n\n// Kludge to work around directly nested list nodes produced by some\n// tools and allowed by browsers to mean that the nested list is\n// actually part of the list item above it.\nfunction normalizeList(dom) {\n for (var child = dom.firstChild, prevItem = null; child; child = child.nextSibling) {\n var name = child.nodeType == 1 ? child.nodeName.toLowerCase() : null;\n if (name && listTags.hasOwnProperty(name) && prevItem) {\n prevItem.appendChild(child);\n child = prevItem;\n } else if (name == \"li\") {\n prevItem = child;\n } else if (name) {\n prevItem = null;\n }\n }\n}\n\n// Apply a CSS selector.\nfunction matches(dom, selector) {\n return (dom.matches || dom.msMatchesSelector || dom.webkitMatchesSelector || dom.mozMatchesSelector).call(dom, selector)\n}\n\n// : (string) → [string]\n// Tokenize a style attribute into property/value pairs.\nfunction parseStyles(style) {\n var re = /\\s*([\\w-]+)\\s*:\\s*([^;]+)/g, m, result = [];\n while (m = re.exec(style)) { result.push(m[1], m[2].trim()); }\n return result\n}\n\nfunction copy(obj) {\n var copy = {};\n for (var prop in obj) { copy[prop] = obj[prop]; }\n return copy\n}\n\n// Used when finding a mark at the top level of a fragment parse.\n// Checks whether it would be reasonable to apply a given mark type to\n// a given node, by looking at the way the mark occurs in the schema.\nfunction markMayApply(markType, nodeType) {\n var nodes = nodeType.schema.nodes;\n var loop = function ( name ) {\n var parent = nodes[name];\n if (!parent.allowsMarkType(markType)) { return }\n var seen = [], scan = function (match) {\n seen.push(match);\n for (var i = 0; i < match.edgeCount; i++) {\n var ref = match.edge(i);\n var type = ref.type;\n var next = ref.next;\n if (type == nodeType) { return true }\n if (seen.indexOf(next) < 0 && scan(next)) { return true }\n }\n };\n if (scan(parent.contentMatch)) { return { v: true } }\n };\n\n for (var name in nodes) {\n var returned = loop( name );\n\n if ( returned ) return returned.v;\n }\n}\n\nfunction findSameMarkInSet(mark, set) {\n for (var i = 0; i < set.length; i++) {\n if (mark.eq(set[i])) { return set[i] }\n }\n}\n\n// DOMOutputSpec:: interface\n// A description of a DOM structure. Can be either a string, which is\n// interpreted as a text node, a DOM node, which is interpreted as\n// itself, a `{dom: Node, contentDOM: ?Node}` object, or an array.\n//\n// An array describes a DOM element. The first value in the array\n// should be a string—the name of the DOM element, optionally prefixed\n// by a namespace URL and a space. If the second element is plain\n// object, it is interpreted as a set of attributes for the element.\n// Any elements after that (including the 2nd if it's not an attribute\n// object) are interpreted as children of the DOM elements, and must\n// either be valid `DOMOutputSpec` values, or the number zero.\n//\n// The number zero (pronounced “hole”) is used to indicate the place\n// where a node's child nodes should be inserted. If it occurs in an\n// output spec, it should be the only child element in its parent\n// node.\n\n// ::- A DOM serializer knows how to convert ProseMirror nodes and\n// marks of various types to DOM nodes.\nvar DOMSerializer = function DOMSerializer(nodes, marks) {\n // :: Object<(node: Node) → DOMOutputSpec>\n // The node serialization functions.\n this.nodes = nodes || {};\n // :: Object\n // The mark serialization functions.\n this.marks = marks || {};\n};\n\n// :: (Fragment, ?Object) → dom.DocumentFragment\n// Serialize the content of this fragment to a DOM fragment. When\n// not in the browser, the `document` option, containing a DOM\n// document, should be passed so that the serializer can create\n// nodes.\nDOMSerializer.prototype.serializeFragment = function serializeFragment (fragment, options, target) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n if (!target) { target = doc(options).createDocumentFragment(); }\n\n var top = target, active = null;\n fragment.forEach(function (node) {\n if (active || node.marks.length) {\n if (!active) { active = []; }\n var keep = 0, rendered = 0;\n while (keep < active.length && rendered < node.marks.length) {\n var next = node.marks[rendered];\n if (!this$1.marks[next.type.name]) { rendered++; continue }\n if (!next.eq(active[keep]) || next.type.spec.spanning === false) { break }\n keep += 2; rendered++;\n }\n while (keep < active.length) {\n top = active.pop();\n active.pop();\n }\n while (rendered < node.marks.length) {\n var add = node.marks[rendered++];\n var markDOM = this$1.serializeMark(add, node.isInline, options);\n if (markDOM) {\n active.push(add, top);\n top.appendChild(markDOM.dom);\n top = markDOM.contentDOM || markDOM.dom;\n }\n }\n }\n top.appendChild(this$1.serializeNodeInner(node, options));\n });\n\n return target\n};\n\nDOMSerializer.prototype.serializeNodeInner = function serializeNodeInner (node, options) {\n if ( options === void 0 ) options = {};\n\n var ref =\n DOMSerializer.renderSpec(doc(options), this.nodes[node.type.name](node));\n var dom = ref.dom;\n var contentDOM = ref.contentDOM;\n if (contentDOM) {\n if (node.isLeaf)\n { throw new RangeError(\"Content hole not allowed in a leaf node spec\") }\n if (options.onContent)\n { options.onContent(node, contentDOM, options); }\n else\n { this.serializeFragment(node.content, options, contentDOM); }\n }\n return dom\n};\n\n// :: (Node, ?Object) → dom.Node\n// Serialize this node to a DOM node. This can be useful when you\n// need to serialize a part of a document, as opposed to the whole\n// document. To serialize a whole document, use\n// [`serializeFragment`](#model.DOMSerializer.serializeFragment) on\n// its [content](#model.Node.content).\nDOMSerializer.prototype.serializeNode = function serializeNode (node, options) {\n if ( options === void 0 ) options = {};\n\n var dom = this.serializeNodeInner(node, options);\n for (var i = node.marks.length - 1; i >= 0; i--) {\n var wrap = this.serializeMark(node.marks[i], node.isInline, options);\n if (wrap) {\n(wrap.contentDOM || wrap.dom).appendChild(dom);\n dom = wrap.dom;\n }\n }\n return dom\n};\n\nDOMSerializer.prototype.serializeMark = function serializeMark (mark, inline, options) {\n if ( options === void 0 ) options = {};\n\n var toDOM = this.marks[mark.type.name];\n return toDOM && DOMSerializer.renderSpec(doc(options), toDOM(mark, inline))\n};\n\n// :: (dom.Document, DOMOutputSpec) → {dom: dom.Node, contentDOM: ?dom.Node}\n// Render an [output spec](#model.DOMOutputSpec) to a DOM node. If\n// the spec has a hole (zero) in it, `contentDOM` will point at the\n// node with the hole.\nDOMSerializer.renderSpec = function renderSpec (doc, structure, xmlNS) {\n if ( xmlNS === void 0 ) xmlNS = null;\n\n if (typeof structure == \"string\")\n { return {dom: doc.createTextNode(structure)} }\n if (structure.nodeType != null)\n { return {dom: structure} }\n if (structure.dom && structure.dom.nodeType != null)\n { return structure }\n var tagName = structure[0], space = tagName.indexOf(\" \");\n if (space > 0) {\n xmlNS = tagName.slice(0, space);\n tagName = tagName.slice(space + 1);\n }\n var contentDOM = null, dom = xmlNS ? doc.createElementNS(xmlNS, tagName) : doc.createElement(tagName);\n var attrs = structure[1], start = 1;\n if (attrs && typeof attrs == \"object\" && attrs.nodeType == null && !Array.isArray(attrs)) {\n start = 2;\n for (var name in attrs) { if (attrs[name] != null) {\n var space$1 = name.indexOf(\" \");\n if (space$1 > 0) { dom.setAttributeNS(name.slice(0, space$1), name.slice(space$1 + 1), attrs[name]); }\n else { dom.setAttribute(name, attrs[name]); }\n } }\n }\n for (var i = start; i < structure.length; i++) {\n var child = structure[i];\n if (child === 0) {\n if (i < structure.length - 1 || i > start)\n { throw new RangeError(\"Content hole must be the only child of its parent node\") }\n return {dom: dom, contentDOM: dom}\n } else {\n var ref = DOMSerializer.renderSpec(doc, child, xmlNS);\n var inner = ref.dom;\n var innerContent = ref.contentDOM;\n dom.appendChild(inner);\n if (innerContent) {\n if (contentDOM) { throw new RangeError(\"Multiple content holes\") }\n contentDOM = innerContent;\n }\n }\n }\n return {dom: dom, contentDOM: contentDOM}\n};\n\n// :: (Schema) → DOMSerializer\n// Build a serializer using the [`toDOM`](#model.NodeSpec.toDOM)\n// properties in a schema's node and mark specs.\nDOMSerializer.fromSchema = function fromSchema (schema) {\n return schema.cached.domSerializer ||\n (schema.cached.domSerializer = new DOMSerializer(this.nodesFromSchema(schema), this.marksFromSchema(schema)))\n};\n\n// : (Schema) → Object<(node: Node) → DOMOutputSpec>\n// Gather the serializers in a schema's node specs into an object.\n// This can be useful as a base to build a custom serializer from.\nDOMSerializer.nodesFromSchema = function nodesFromSchema (schema) {\n var result = gatherToDOM(schema.nodes);\n if (!result.text) { result.text = function (node) { return node.text; }; }\n return result\n};\n\n// : (Schema) → Object<(mark: Mark) → DOMOutputSpec>\n// Gather the serializers in a schema's mark specs into an object.\nDOMSerializer.marksFromSchema = function marksFromSchema (schema) {\n return gatherToDOM(schema.marks)\n};\n\nfunction gatherToDOM(obj) {\n var result = {};\n for (var name in obj) {\n var toDOM = obj[name].spec.toDOM;\n if (toDOM) { result[name] = toDOM; }\n }\n return result\n}\n\nfunction doc(options) {\n // declare global: window\n return options.document || window.document\n}\n\nexport { ContentMatch, DOMParser, DOMSerializer, Fragment, Mark, MarkType, Node, NodeRange, NodeType, ReplaceError, ResolvedPos, Schema, Slice };\n","import { findWrapping, ReplaceAroundStep, canSplit, liftTarget } from 'prosemirror-transform';\nimport { NodeRange, Fragment, Slice } from 'prosemirror-model';\n\nvar olDOM = [\"ol\", 0], ulDOM = [\"ul\", 0], liDOM = [\"li\", 0];\n\n// :: NodeSpec\n// An ordered list [node spec](#model.NodeSpec). Has a single\n// attribute, `order`, which determines the number at which the list\n// starts counting, and defaults to 1. Represented as an `
      `\n// element.\nvar orderedList = {\n attrs: {order: {default: 1}},\n parseDOM: [{tag: \"ol\", getAttrs: function getAttrs(dom) {\n return {order: dom.hasAttribute(\"start\") ? +dom.getAttribute(\"start\") : 1}\n }}],\n toDOM: function toDOM(node) {\n return node.attrs.order == 1 ? olDOM : [\"ol\", {start: node.attrs.order}, 0]\n }\n};\n\n// :: NodeSpec\n// A bullet list node spec, represented in the DOM as `
        `.\nvar bulletList = {\n parseDOM: [{tag: \"ul\"}],\n toDOM: function toDOM() { return ulDOM }\n};\n\n// :: NodeSpec\n// A list item (`
      • `) spec.\nvar listItem = {\n parseDOM: [{tag: \"li\"}],\n toDOM: function toDOM() { return liDOM },\n defining: true\n};\n\nfunction add(obj, props) {\n var copy = {};\n for (var prop in obj) { copy[prop] = obj[prop]; }\n for (var prop$1 in props) { copy[prop$1] = props[prop$1]; }\n return copy\n}\n\n// :: (OrderedMap, string, ?string) → OrderedMap\n// Convenience function for adding list-related node types to a map\n// specifying the nodes for a schema. Adds\n// [`orderedList`](#schema-list.orderedList) as `\"ordered_list\"`,\n// [`bulletList`](#schema-list.bulletList) as `\"bullet_list\"`, and\n// [`listItem`](#schema-list.listItem) as `\"list_item\"`.\n//\n// `itemContent` determines the content expression for the list items.\n// If you want the commands defined in this module to apply to your\n// list structure, it should have a shape like `\"paragraph block*\"` or\n// `\"paragraph (ordered_list | bullet_list)*\"`. `listGroup` can be\n// given to assign a group name to the list node types, for example\n// `\"block\"`.\nfunction addListNodes(nodes, itemContent, listGroup) {\n return nodes.append({\n ordered_list: add(orderedList, {content: \"list_item+\", group: listGroup}),\n bullet_list: add(bulletList, {content: \"list_item+\", group: listGroup}),\n list_item: add(listItem, {content: itemContent})\n })\n}\n\n// :: (NodeType, ?Object) → (state: EditorState, dispatch: ?(tr: Transaction)) → bool\n// Returns a command function that wraps the selection in a list with\n// the given type an attributes. If `dispatch` is null, only return a\n// value to indicate whether this is possible, but don't actually\n// perform the change.\nfunction wrapInList(listType, attrs) {\n return function(state, dispatch) {\n var ref = state.selection;\n var $from = ref.$from;\n var $to = ref.$to;\n var range = $from.blockRange($to), doJoin = false, outerRange = range;\n if (!range) { return false }\n // This is at the top of an existing list item\n if (range.depth >= 2 && $from.node(range.depth - 1).type.compatibleContent(listType) && range.startIndex == 0) {\n // Don't do anything if this is the top of the list\n if ($from.index(range.depth - 1) == 0) { return false }\n var $insert = state.doc.resolve(range.start - 2);\n outerRange = new NodeRange($insert, $insert, range.depth);\n if (range.endIndex < range.parent.childCount)\n { range = new NodeRange($from, state.doc.resolve($to.end(range.depth)), range.depth); }\n doJoin = true;\n }\n var wrap = findWrapping(outerRange, listType, attrs, range);\n if (!wrap) { return false }\n if (dispatch) { dispatch(doWrapInList(state.tr, range, wrap, doJoin, listType).scrollIntoView()); }\n return true\n }\n}\n\nfunction doWrapInList(tr, range, wrappers, joinBefore, listType) {\n var content = Fragment.empty;\n for (var i = wrappers.length - 1; i >= 0; i--)\n { content = Fragment.from(wrappers[i].type.create(wrappers[i].attrs, content)); }\n\n tr.step(new ReplaceAroundStep(range.start - (joinBefore ? 2 : 0), range.end, range.start, range.end,\n new Slice(content, 0, 0), wrappers.length, true));\n\n var found = 0;\n for (var i$1 = 0; i$1 < wrappers.length; i$1++) { if (wrappers[i$1].type == listType) { found = i$1 + 1; } }\n var splitDepth = wrappers.length - found;\n\n var splitPos = range.start + wrappers.length - (joinBefore ? 2 : 0), parent = range.parent;\n for (var i$2 = range.startIndex, e = range.endIndex, first = true; i$2 < e; i$2++, first = false) {\n if (!first && canSplit(tr.doc, splitPos, splitDepth)) {\n tr.split(splitPos, splitDepth);\n splitPos += 2 * splitDepth;\n }\n splitPos += parent.child(i$2).nodeSize;\n }\n return tr\n}\n\n// :: (NodeType) → (state: EditorState, dispatch: ?(tr: Transaction)) → bool\n// Build a command that splits a non-empty textblock at the top level\n// of a list item by also splitting that list item.\nfunction splitListItem(itemType) {\n return function(state, dispatch) {\n var ref = state.selection;\n var $from = ref.$from;\n var $to = ref.$to;\n var node = ref.node;\n if ((node && node.isBlock) || $from.depth < 2 || !$from.sameParent($to)) { return false }\n var grandParent = $from.node(-1);\n if (grandParent.type != itemType) { return false }\n if ($from.parent.content.size == 0 && $from.node(-1).childCount == $from.indexAfter(-1)) {\n // In an empty block. If this is a nested list, the wrapping\n // list item should be split. Otherwise, bail out and let next\n // command handle lifting.\n if ($from.depth == 2 || $from.node(-3).type != itemType ||\n $from.index(-2) != $from.node(-2).childCount - 1) { return false }\n if (dispatch) {\n var wrap = Fragment.empty;\n var depthBefore = $from.index(-1) ? 1 : $from.index(-2) ? 2 : 3;\n // Build a fragment containing empty versions of the structure\n // from the outer list item to the parent node of the cursor\n for (var d = $from.depth - depthBefore; d >= $from.depth - 3; d--)\n { wrap = Fragment.from($from.node(d).copy(wrap)); }\n var depthAfter = $from.indexAfter(-1) < $from.node(-2).childCount ? 1\n : $from.indexAfter(-2) < $from.node(-3).childCount ? 2 : 3;\n // Add a second list item with an empty default start node\n wrap = wrap.append(Fragment.from(itemType.createAndFill()));\n var start = $from.before($from.depth - (depthBefore - 1));\n var tr$1 = state.tr.replace(start, $from.after(-depthAfter), new Slice(wrap, 4 - depthBefore, 0));\n var sel = -1;\n tr$1.doc.nodesBetween(start, tr$1.doc.content.size, function (node, pos) {\n if (sel > -1) { return false }\n if (node.isTextblock && node.content.size == 0) { sel = pos + 1; }\n });\n if (sel > -1) { tr$1.setSelection(state.selection.constructor.near(tr$1.doc.resolve(sel))); }\n dispatch(tr$1.scrollIntoView());\n }\n return true\n }\n var nextType = $to.pos == $from.end() ? grandParent.contentMatchAt(0).defaultType : null;\n var tr = state.tr.delete($from.pos, $to.pos);\n var types = nextType && [null, {type: nextType}];\n if (!canSplit(tr.doc, $from.pos, 2, types)) { return false }\n if (dispatch) { dispatch(tr.split($from.pos, 2, types).scrollIntoView()); }\n return true\n }\n}\n\n// :: (NodeType) → (state: EditorState, dispatch: ?(tr: Transaction)) → bool\n// Create a command to lift the list item around the selection up into\n// a wrapping list.\nfunction liftListItem(itemType) {\n return function(state, dispatch) {\n var ref = state.selection;\n var $from = ref.$from;\n var $to = ref.$to;\n var range = $from.blockRange($to, function (node) { return node.childCount && node.firstChild.type == itemType; });\n if (!range) { return false }\n if (!dispatch) { return true }\n if ($from.node(range.depth - 1).type == itemType) // Inside a parent list\n { return liftToOuterList(state, dispatch, itemType, range) }\n else // Outer list node\n { return liftOutOfList(state, dispatch, range) }\n }\n}\n\nfunction liftToOuterList(state, dispatch, itemType, range) {\n var tr = state.tr, end = range.end, endOfList = range.$to.end(range.depth);\n if (end < endOfList) {\n // There are siblings after the lifted items, which must become\n // children of the last item\n tr.step(new ReplaceAroundStep(end - 1, endOfList, end, endOfList,\n new Slice(Fragment.from(itemType.create(null, range.parent.copy())), 1, 0), 1, true));\n range = new NodeRange(tr.doc.resolve(range.$from.pos), tr.doc.resolve(endOfList), range.depth);\n }\n dispatch(tr.lift(range, liftTarget(range)).scrollIntoView());\n return true\n}\n\nfunction liftOutOfList(state, dispatch, range) {\n var tr = state.tr, list = range.parent;\n // Merge the list items into a single big item\n for (var pos = range.end, i = range.endIndex - 1, e = range.startIndex; i > e; i--) {\n pos -= list.child(i).nodeSize;\n tr.delete(pos - 1, pos + 1);\n }\n var $start = tr.doc.resolve(range.start), item = $start.nodeAfter;\n if (tr.mapping.map(range.end) != range.start + $start.nodeAfter.nodeSize) { return false }\n var atStart = range.startIndex == 0, atEnd = range.endIndex == list.childCount;\n var parent = $start.node(-1), indexBefore = $start.index(-1);\n if (!parent.canReplace(indexBefore + (atStart ? 0 : 1), indexBefore + 1,\n item.content.append(atEnd ? Fragment.empty : Fragment.from(list))))\n { return false }\n var start = $start.pos, end = start + item.nodeSize;\n // Strip off the surrounding list. At the sides where we're not at\n // the end of the list, the existing list is closed. At sides where\n // this is the end, it is overwritten to its end.\n tr.step(new ReplaceAroundStep(start - (atStart ? 1 : 0), end + (atEnd ? 1 : 0), start + 1, end - 1,\n new Slice((atStart ? Fragment.empty : Fragment.from(list.copy(Fragment.empty)))\n .append(atEnd ? Fragment.empty : Fragment.from(list.copy(Fragment.empty))),\n atStart ? 0 : 1, atEnd ? 0 : 1), atStart ? 0 : 1));\n dispatch(tr.scrollIntoView());\n return true\n}\n\n// :: (NodeType) → (state: EditorState, dispatch: ?(tr: Transaction)) → bool\n// Create a command to sink the list item around the selection down\n// into an inner list.\nfunction sinkListItem(itemType) {\n return function(state, dispatch) {\n var ref = state.selection;\n var $from = ref.$from;\n var $to = ref.$to;\n var range = $from.blockRange($to, function (node) { return node.childCount && node.firstChild.type == itemType; });\n if (!range) { return false }\n var startIndex = range.startIndex;\n if (startIndex == 0) { return false }\n var parent = range.parent, nodeBefore = parent.child(startIndex - 1);\n if (nodeBefore.type != itemType) { return false }\n\n if (dispatch) {\n var nestedBefore = nodeBefore.lastChild && nodeBefore.lastChild.type == parent.type;\n var inner = Fragment.from(nestedBefore ? itemType.create() : null);\n var slice = new Slice(Fragment.from(itemType.create(null, Fragment.from(parent.type.create(null, inner)))),\n nestedBefore ? 3 : 1, 0);\n var before = range.start, after = range.end;\n dispatch(state.tr.step(new ReplaceAroundStep(before - (nestedBefore ? 3 : 1), after,\n before, after, slice, 1, true))\n .scrollIntoView());\n }\n return true\n }\n}\n\nexport { addListNodes, bulletList, liftListItem, listItem, orderedList, sinkListItem, splitListItem, wrapInList };\n","import { Slice, Fragment, Mark, Node } from 'prosemirror-model';\nimport { ReplaceStep, ReplaceAroundStep, Transform } from 'prosemirror-transform';\n\nvar classesById = Object.create(null);\n\n// ::- Superclass for editor selections. Every selection type should\n// extend this. Should not be instantiated directly.\nvar Selection = function Selection($anchor, $head, ranges) {\n // :: [SelectionRange]\n // The ranges covered by the selection.\n this.ranges = ranges || [new SelectionRange($anchor.min($head), $anchor.max($head))];\n // :: ResolvedPos\n // The resolved anchor of the selection (the side that stays in\n // place when the selection is modified).\n this.$anchor = $anchor;\n // :: ResolvedPos\n // The resolved head of the selection (the side that moves when\n // the selection is modified).\n this.$head = $head;\n};\n\nvar prototypeAccessors = { anchor: { configurable: true },head: { configurable: true },from: { configurable: true },to: { configurable: true },$from: { configurable: true },$to: { configurable: true },empty: { configurable: true } };\n\n// :: number\n// The selection's anchor, as an unresolved position.\nprototypeAccessors.anchor.get = function () { return this.$anchor.pos };\n\n// :: number\n// The selection's head.\nprototypeAccessors.head.get = function () { return this.$head.pos };\n\n// :: number\n// The lower bound of the selection's main range.\nprototypeAccessors.from.get = function () { return this.$from.pos };\n\n// :: number\n// The upper bound of the selection's main range.\nprototypeAccessors.to.get = function () { return this.$to.pos };\n\n// :: ResolvedPos\n// The resolved lowerbound of the selection's main range.\nprototypeAccessors.$from.get = function () {\n return this.ranges[0].$from\n};\n\n// :: ResolvedPos\n// The resolved upper bound of the selection's main range.\nprototypeAccessors.$to.get = function () {\n return this.ranges[0].$to\n};\n\n// :: bool\n// Indicates whether the selection contains any content.\nprototypeAccessors.empty.get = function () {\n var ranges = this.ranges;\n for (var i = 0; i < ranges.length; i++)\n { if (ranges[i].$from.pos != ranges[i].$to.pos) { return false } }\n return true\n};\n\n// eq:: (Selection) → bool\n// Test whether the selection is the same as another selection.\n\n// map:: (doc: Node, mapping: Mappable) → Selection\n// Map this selection through a [mappable](#transform.Mappable) thing. `doc`\n// should be the new document to which we are mapping.\n\n// :: () → Slice\n// Get the content of this selection as a slice.\nSelection.prototype.content = function content () {\n return this.$from.node(0).slice(this.from, this.to, true)\n};\n\n// :: (Transaction, ?Slice)\n// Replace the selection with a slice or, if no slice is given,\n// delete the selection. Will append to the given transaction.\nSelection.prototype.replace = function replace (tr, content) {\n if ( content === void 0 ) content = Slice.empty;\n\n // Put the new selection at the position after the inserted\n // content. When that ended in an inline node, search backwards,\n // to get the position after that node. If not, search forward.\n var lastNode = content.content.lastChild, lastParent = null;\n for (var i = 0; i < content.openEnd; i++) {\n lastParent = lastNode;\n lastNode = lastNode.lastChild;\n }\n\n var mapFrom = tr.steps.length, ranges = this.ranges;\n for (var i$1 = 0; i$1 < ranges.length; i$1++) {\n var ref = ranges[i$1];\n var $from = ref.$from;\n var $to = ref.$to;\n var mapping = tr.mapping.slice(mapFrom);\n tr.replaceRange(mapping.map($from.pos), mapping.map($to.pos), i$1 ? Slice.empty : content);\n if (i$1 == 0)\n { selectionToInsertionEnd(tr, mapFrom, (lastNode ? lastNode.isInline : lastParent && lastParent.isTextblock) ? -1 : 1); }\n }\n};\n\n// :: (Transaction, Node)\n// Replace the selection with the given node, appending the changes\n// to the given transaction.\nSelection.prototype.replaceWith = function replaceWith (tr, node) {\n var mapFrom = tr.steps.length, ranges = this.ranges;\n for (var i = 0; i < ranges.length; i++) {\n var ref = ranges[i];\n var $from = ref.$from;\n var $to = ref.$to;\n var mapping = tr.mapping.slice(mapFrom);\n var from = mapping.map($from.pos), to = mapping.map($to.pos);\n if (i) {\n tr.deleteRange(from, to);\n } else {\n tr.replaceRangeWith(from, to, node);\n selectionToInsertionEnd(tr, mapFrom, node.isInline ? -1 : 1);\n }\n }\n};\n\n// toJSON:: () → Object\n// Convert the selection to a JSON representation. When implementing\n// this for a custom selection class, make sure to give the object a\n// `type` property whose value matches the ID under which you\n// [registered](#state.Selection^jsonID) your class.\n\n// :: (ResolvedPos, number, ?bool) → ?Selection\n// Find a valid cursor or leaf node selection starting at the given\n// position and searching back if `dir` is negative, and forward if\n// positive. When `textOnly` is true, only consider cursor\n// selections. Will return null when no valid selection position is\n// found.\nSelection.findFrom = function findFrom ($pos, dir, textOnly) {\n var inner = $pos.parent.inlineContent ? new TextSelection($pos)\n : findSelectionIn($pos.node(0), $pos.parent, $pos.pos, $pos.index(), dir, textOnly);\n if (inner) { return inner }\n\n for (var depth = $pos.depth - 1; depth >= 0; depth--) {\n var found = dir < 0\n ? findSelectionIn($pos.node(0), $pos.node(depth), $pos.before(depth + 1), $pos.index(depth), dir, textOnly)\n : findSelectionIn($pos.node(0), $pos.node(depth), $pos.after(depth + 1), $pos.index(depth) + 1, dir, textOnly);\n if (found) { return found }\n }\n};\n\n// :: (ResolvedPos, ?number) → Selection\n// Find a valid cursor or leaf node selection near the given\n// position. Searches forward first by default, but if `bias` is\n// negative, it will search backwards first.\nSelection.near = function near ($pos, bias) {\n if ( bias === void 0 ) bias = 1;\n\n return this.findFrom($pos, bias) || this.findFrom($pos, -bias) || new AllSelection($pos.node(0))\n};\n\n// :: (Node) → Selection\n// Find the cursor or leaf node selection closest to the start of\n// the given document. Will return an\n// [`AllSelection`](#state.AllSelection) if no valid position\n// exists.\nSelection.atStart = function atStart (doc) {\n return findSelectionIn(doc, doc, 0, 0, 1) || new AllSelection(doc)\n};\n\n// :: (Node) → Selection\n// Find the cursor or leaf node selection closest to the end of the\n// given document.\nSelection.atEnd = function atEnd (doc) {\n return findSelectionIn(doc, doc, doc.content.size, doc.childCount, -1) || new AllSelection(doc)\n};\n\n// :: (Node, Object) → Selection\n// Deserialize the JSON representation of a selection. Must be\n// implemented for custom classes (as a static class method).\nSelection.fromJSON = function fromJSON (doc, json) {\n if (!json || !json.type) { throw new RangeError(\"Invalid input for Selection.fromJSON\") }\n var cls = classesById[json.type];\n if (!cls) { throw new RangeError((\"No selection type \" + (json.type) + \" defined\")) }\n return cls.fromJSON(doc, json)\n};\n\n// :: (string, constructor)\n// To be able to deserialize selections from JSON, custom selection\n// classes must register themselves with an ID string, so that they\n// can be disambiguated. Try to pick something that's unlikely to\n// clash with classes from other modules.\nSelection.jsonID = function jsonID (id, selectionClass) {\n if (id in classesById) { throw new RangeError(\"Duplicate use of selection JSON ID \" + id) }\n classesById[id] = selectionClass;\n selectionClass.prototype.jsonID = id;\n return selectionClass\n};\n\n// :: () → SelectionBookmark\n// Get a [bookmark](#state.SelectionBookmark) for this selection,\n// which is a value that can be mapped without having access to a\n// current document, and later resolved to a real selection for a\n// given document again. (This is used mostly by the history to\n// track and restore old selections.) The default implementation of\n// this method just converts the selection to a text selection and\n// returns the bookmark for that.\nSelection.prototype.getBookmark = function getBookmark () {\n return TextSelection.between(this.$anchor, this.$head).getBookmark()\n};\n\nObject.defineProperties( Selection.prototype, prototypeAccessors );\n\n// :: bool\n// Controls whether, when a selection of this type is active in the\n// browser, the selected range should be visible to the user. Defaults\n// to `true`.\nSelection.prototype.visible = true;\n\n// SelectionBookmark:: interface\n// A lightweight, document-independent representation of a selection.\n// You can define a custom bookmark type for a custom selection class\n// to make the history handle it well.\n//\n// map:: (mapping: Mapping) → SelectionBookmark\n// Map the bookmark through a set of changes.\n//\n// resolve:: (doc: Node) → Selection\n// Resolve the bookmark to a real selection again. This may need to\n// do some error checking and may fall back to a default (usually\n// [`TextSelection.between`](#state.TextSelection^between)) if\n// mapping made the bookmark invalid.\n\n// ::- Represents a selected range in a document.\nvar SelectionRange = function SelectionRange($from, $to) {\n // :: ResolvedPos\n // The lower bound of the range.\n this.$from = $from;\n // :: ResolvedPos\n // The upper bound of the range.\n this.$to = $to;\n};\n\n// ::- A text selection represents a classical editor selection, with\n// a head (the moving side) and anchor (immobile side), both of which\n// point into textblock nodes. It can be empty (a regular cursor\n// position).\nvar TextSelection = /*@__PURE__*/(function (Selection) {\n function TextSelection($anchor, $head) {\n if ( $head === void 0 ) $head = $anchor;\n\n Selection.call(this, $anchor, $head);\n }\n\n if ( Selection ) TextSelection.__proto__ = Selection;\n TextSelection.prototype = Object.create( Selection && Selection.prototype );\n TextSelection.prototype.constructor = TextSelection;\n\n var prototypeAccessors$1 = { $cursor: { configurable: true } };\n\n // :: ?ResolvedPos\n // Returns a resolved position if this is a cursor selection (an\n // empty text selection), and null otherwise.\n prototypeAccessors$1.$cursor.get = function () { return this.$anchor.pos == this.$head.pos ? this.$head : null };\n\n TextSelection.prototype.map = function map (doc, mapping) {\n var $head = doc.resolve(mapping.map(this.head));\n if (!$head.parent.inlineContent) { return Selection.near($head) }\n var $anchor = doc.resolve(mapping.map(this.anchor));\n return new TextSelection($anchor.parent.inlineContent ? $anchor : $head, $head)\n };\n\n TextSelection.prototype.replace = function replace (tr, content) {\n if ( content === void 0 ) content = Slice.empty;\n\n Selection.prototype.replace.call(this, tr, content);\n if (content == Slice.empty) {\n var marks = this.$from.marksAcross(this.$to);\n if (marks) { tr.ensureMarks(marks); }\n }\n };\n\n TextSelection.prototype.eq = function eq (other) {\n return other instanceof TextSelection && other.anchor == this.anchor && other.head == this.head\n };\n\n TextSelection.prototype.getBookmark = function getBookmark () {\n return new TextBookmark(this.anchor, this.head)\n };\n\n TextSelection.prototype.toJSON = function toJSON () {\n return {type: \"text\", anchor: this.anchor, head: this.head}\n };\n\n TextSelection.fromJSON = function fromJSON (doc, json) {\n if (typeof json.anchor != \"number\" || typeof json.head != \"number\")\n { throw new RangeError(\"Invalid input for TextSelection.fromJSON\") }\n return new TextSelection(doc.resolve(json.anchor), doc.resolve(json.head))\n };\n\n // :: (Node, number, ?number) → TextSelection\n // Create a text selection from non-resolved positions.\n TextSelection.create = function create (doc, anchor, head) {\n if ( head === void 0 ) head = anchor;\n\n var $anchor = doc.resolve(anchor);\n return new this($anchor, head == anchor ? $anchor : doc.resolve(head))\n };\n\n // :: (ResolvedPos, ResolvedPos, ?number) → Selection\n // Return a text selection that spans the given positions or, if\n // they aren't text positions, find a text selection near them.\n // `bias` determines whether the method searches forward (default)\n // or backwards (negative number) first. Will fall back to calling\n // [`Selection.near`](#state.Selection^near) when the document\n // doesn't contain a valid text position.\n TextSelection.between = function between ($anchor, $head, bias) {\n var dPos = $anchor.pos - $head.pos;\n if (!bias || dPos) { bias = dPos >= 0 ? 1 : -1; }\n if (!$head.parent.inlineContent) {\n var found = Selection.findFrom($head, bias, true) || Selection.findFrom($head, -bias, true);\n if (found) { $head = found.$head; }\n else { return Selection.near($head, bias) }\n }\n if (!$anchor.parent.inlineContent) {\n if (dPos == 0) {\n $anchor = $head;\n } else {\n $anchor = (Selection.findFrom($anchor, -bias, true) || Selection.findFrom($anchor, bias, true)).$anchor;\n if (($anchor.pos < $head.pos) != (dPos < 0)) { $anchor = $head; }\n }\n }\n return new TextSelection($anchor, $head)\n };\n\n Object.defineProperties( TextSelection.prototype, prototypeAccessors$1 );\n\n return TextSelection;\n}(Selection));\n\nSelection.jsonID(\"text\", TextSelection);\n\nvar TextBookmark = function TextBookmark(anchor, head) {\n this.anchor = anchor;\n this.head = head;\n};\nTextBookmark.prototype.map = function map (mapping) {\n return new TextBookmark(mapping.map(this.anchor), mapping.map(this.head))\n};\nTextBookmark.prototype.resolve = function resolve (doc) {\n return TextSelection.between(doc.resolve(this.anchor), doc.resolve(this.head))\n};\n\n// ::- A node selection is a selection that points at a single node.\n// All nodes marked [selectable](#model.NodeSpec.selectable) can be\n// the target of a node selection. In such a selection, `from` and\n// `to` point directly before and after the selected node, `anchor`\n// equals `from`, and `head` equals `to`..\nvar NodeSelection = /*@__PURE__*/(function (Selection) {\n function NodeSelection($pos) {\n var node = $pos.nodeAfter;\n var $end = $pos.node(0).resolve($pos.pos + node.nodeSize);\n Selection.call(this, $pos, $end);\n // :: Node The selected node.\n this.node = node;\n }\n\n if ( Selection ) NodeSelection.__proto__ = Selection;\n NodeSelection.prototype = Object.create( Selection && Selection.prototype );\n NodeSelection.prototype.constructor = NodeSelection;\n\n NodeSelection.prototype.map = function map (doc, mapping) {\n var ref = mapping.mapResult(this.anchor);\n var deleted = ref.deleted;\n var pos = ref.pos;\n var $pos = doc.resolve(pos);\n if (deleted) { return Selection.near($pos) }\n return new NodeSelection($pos)\n };\n\n NodeSelection.prototype.content = function content () {\n return new Slice(Fragment.from(this.node), 0, 0)\n };\n\n NodeSelection.prototype.eq = function eq (other) {\n return other instanceof NodeSelection && other.anchor == this.anchor\n };\n\n NodeSelection.prototype.toJSON = function toJSON () {\n return {type: \"node\", anchor: this.anchor}\n };\n\n NodeSelection.prototype.getBookmark = function getBookmark () { return new NodeBookmark(this.anchor) };\n\n NodeSelection.fromJSON = function fromJSON (doc, json) {\n if (typeof json.anchor != \"number\")\n { throw new RangeError(\"Invalid input for NodeSelection.fromJSON\") }\n return new NodeSelection(doc.resolve(json.anchor))\n };\n\n // :: (Node, number) → NodeSelection\n // Create a node selection from non-resolved positions.\n NodeSelection.create = function create (doc, from) {\n return new this(doc.resolve(from))\n };\n\n // :: (Node) → bool\n // Determines whether the given node may be selected as a node\n // selection.\n NodeSelection.isSelectable = function isSelectable (node) {\n return !node.isText && node.type.spec.selectable !== false\n };\n\n return NodeSelection;\n}(Selection));\n\nNodeSelection.prototype.visible = false;\n\nSelection.jsonID(\"node\", NodeSelection);\n\nvar NodeBookmark = function NodeBookmark(anchor) {\n this.anchor = anchor;\n};\nNodeBookmark.prototype.map = function map (mapping) {\n var ref = mapping.mapResult(this.anchor);\n var deleted = ref.deleted;\n var pos = ref.pos;\n return deleted ? new TextBookmark(pos, pos) : new NodeBookmark(pos)\n};\nNodeBookmark.prototype.resolve = function resolve (doc) {\n var $pos = doc.resolve(this.anchor), node = $pos.nodeAfter;\n if (node && NodeSelection.isSelectable(node)) { return new NodeSelection($pos) }\n return Selection.near($pos)\n};\n\n// ::- A selection type that represents selecting the whole document\n// (which can not necessarily be expressed with a text selection, when\n// there are for example leaf block nodes at the start or end of the\n// document).\nvar AllSelection = /*@__PURE__*/(function (Selection) {\n function AllSelection(doc) {\n Selection.call(this, doc.resolve(0), doc.resolve(doc.content.size));\n }\n\n if ( Selection ) AllSelection.__proto__ = Selection;\n AllSelection.prototype = Object.create( Selection && Selection.prototype );\n AllSelection.prototype.constructor = AllSelection;\n\n AllSelection.prototype.replace = function replace (tr, content) {\n if ( content === void 0 ) content = Slice.empty;\n\n if (content == Slice.empty) {\n tr.delete(0, tr.doc.content.size);\n var sel = Selection.atStart(tr.doc);\n if (!sel.eq(tr.selection)) { tr.setSelection(sel); }\n } else {\n Selection.prototype.replace.call(this, tr, content);\n }\n };\n\n AllSelection.prototype.toJSON = function toJSON () { return {type: \"all\"} };\n\n AllSelection.fromJSON = function fromJSON (doc) { return new AllSelection(doc) };\n\n AllSelection.prototype.map = function map (doc) { return new AllSelection(doc) };\n\n AllSelection.prototype.eq = function eq (other) { return other instanceof AllSelection };\n\n AllSelection.prototype.getBookmark = function getBookmark () { return AllBookmark };\n\n return AllSelection;\n}(Selection));\n\nSelection.jsonID(\"all\", AllSelection);\n\nvar AllBookmark = {\n map: function map() { return this },\n resolve: function resolve(doc) { return new AllSelection(doc) }\n};\n\n// FIXME we'll need some awareness of text direction when scanning for selections\n\n// Try to find a selection inside the given node. `pos` points at the\n// position where the search starts. When `text` is true, only return\n// text selections.\nfunction findSelectionIn(doc, node, pos, index, dir, text) {\n if (node.inlineContent) { return TextSelection.create(doc, pos) }\n for (var i = index - (dir > 0 ? 0 : 1); dir > 0 ? i < node.childCount : i >= 0; i += dir) {\n var child = node.child(i);\n if (!child.isAtom) {\n var inner = findSelectionIn(doc, child, pos + dir, dir < 0 ? child.childCount : 0, dir, text);\n if (inner) { return inner }\n } else if (!text && NodeSelection.isSelectable(child)) {\n return NodeSelection.create(doc, pos - (dir < 0 ? child.nodeSize : 0))\n }\n pos += child.nodeSize * dir;\n }\n}\n\nfunction selectionToInsertionEnd(tr, startLen, bias) {\n var last = tr.steps.length - 1;\n if (last < startLen) { return }\n var step = tr.steps[last];\n if (!(step instanceof ReplaceStep || step instanceof ReplaceAroundStep)) { return }\n var map = tr.mapping.maps[last], end;\n map.forEach(function (_from, _to, _newFrom, newTo) { if (end == null) { end = newTo; } });\n tr.setSelection(Selection.near(tr.doc.resolve(end), bias));\n}\n\nvar UPDATED_SEL = 1, UPDATED_MARKS = 2, UPDATED_SCROLL = 4;\n\n// ::- An editor state transaction, which can be applied to a state to\n// create an updated state. Use\n// [`EditorState.tr`](#state.EditorState.tr) to create an instance.\n//\n// Transactions track changes to the document (they are a subclass of\n// [`Transform`](#transform.Transform)), but also other state changes,\n// like selection updates and adjustments of the set of [stored\n// marks](#state.EditorState.storedMarks). In addition, you can store\n// metadata properties in a transaction, which are extra pieces of\n// information that client code or plugins can use to describe what a\n// transacion represents, so that they can update their [own\n// state](#state.StateField) accordingly.\n//\n// The [editor view](#view.EditorView) uses a few metadata properties:\n// it will attach a property `\"pointer\"` with the value `true` to\n// selection transactions directly caused by mouse or touch input, and\n// a `\"uiEvent\"` property of that may be `\"paste\"`, `\"cut\"`, or `\"drop\"`.\nvar Transaction = /*@__PURE__*/(function (Transform) {\n function Transaction(state) {\n Transform.call(this, state.doc);\n // :: number\n // The timestamp associated with this transaction, in the same\n // format as `Date.now()`.\n this.time = Date.now();\n this.curSelection = state.selection;\n // The step count for which the current selection is valid.\n this.curSelectionFor = 0;\n // :: ?[Mark]\n // The stored marks set by this transaction, if any.\n this.storedMarks = state.storedMarks;\n // Bitfield to track which aspects of the state were updated by\n // this transaction.\n this.updated = 0;\n // Object used to store metadata properties for the transaction.\n this.meta = Object.create(null);\n }\n\n if ( Transform ) Transaction.__proto__ = Transform;\n Transaction.prototype = Object.create( Transform && Transform.prototype );\n Transaction.prototype.constructor = Transaction;\n\n var prototypeAccessors = { selection: { configurable: true },selectionSet: { configurable: true },storedMarksSet: { configurable: true },isGeneric: { configurable: true },scrolledIntoView: { configurable: true } };\n\n // :: Selection\n // The transaction's current selection. This defaults to the editor\n // selection [mapped](#state.Selection.map) through the steps in the\n // transaction, but can be overwritten with\n // [`setSelection`](#state.Transaction.setSelection).\n prototypeAccessors.selection.get = function () {\n if (this.curSelectionFor < this.steps.length) {\n this.curSelection = this.curSelection.map(this.doc, this.mapping.slice(this.curSelectionFor));\n this.curSelectionFor = this.steps.length;\n }\n return this.curSelection\n };\n\n // :: (Selection) → Transaction\n // Update the transaction's current selection. Will determine the\n // selection that the editor gets when the transaction is applied.\n Transaction.prototype.setSelection = function setSelection (selection) {\n if (selection.$from.doc != this.doc)\n { throw new RangeError(\"Selection passed to setSelection must point at the current document\") }\n this.curSelection = selection;\n this.curSelectionFor = this.steps.length;\n this.updated = (this.updated | UPDATED_SEL) & ~UPDATED_MARKS;\n this.storedMarks = null;\n return this\n };\n\n // :: bool\n // Whether the selection was explicitly updated by this transaction.\n prototypeAccessors.selectionSet.get = function () {\n return (this.updated & UPDATED_SEL) > 0\n };\n\n // :: (?[Mark]) → Transaction\n // Set the current stored marks.\n Transaction.prototype.setStoredMarks = function setStoredMarks (marks) {\n this.storedMarks = marks;\n this.updated |= UPDATED_MARKS;\n return this\n };\n\n // :: ([Mark]) → Transaction\n // Make sure the current stored marks or, if that is null, the marks\n // at the selection, match the given set of marks. Does nothing if\n // this is already the case.\n Transaction.prototype.ensureMarks = function ensureMarks (marks) {\n if (!Mark.sameSet(this.storedMarks || this.selection.$from.marks(), marks))\n { this.setStoredMarks(marks); }\n return this\n };\n\n // :: (Mark) → Transaction\n // Add a mark to the set of stored marks.\n Transaction.prototype.addStoredMark = function addStoredMark (mark) {\n return this.ensureMarks(mark.addToSet(this.storedMarks || this.selection.$head.marks()))\n };\n\n // :: (union) → Transaction\n // Remove a mark or mark type from the set of stored marks.\n Transaction.prototype.removeStoredMark = function removeStoredMark (mark) {\n return this.ensureMarks(mark.removeFromSet(this.storedMarks || this.selection.$head.marks()))\n };\n\n // :: bool\n // Whether the stored marks were explicitly set for this transaction.\n prototypeAccessors.storedMarksSet.get = function () {\n return (this.updated & UPDATED_MARKS) > 0\n };\n\n Transaction.prototype.addStep = function addStep (step, doc) {\n Transform.prototype.addStep.call(this, step, doc);\n this.updated = this.updated & ~UPDATED_MARKS;\n this.storedMarks = null;\n };\n\n // :: (number) → Transaction\n // Update the timestamp for the transaction.\n Transaction.prototype.setTime = function setTime (time) {\n this.time = time;\n return this\n };\n\n // :: (Slice) → Transaction\n // Replace the current selection with the given slice.\n Transaction.prototype.replaceSelection = function replaceSelection (slice) {\n this.selection.replace(this, slice);\n return this\n };\n\n // :: (Node, ?bool) → Transaction\n // Replace the selection with the given node. When `inheritMarks` is\n // true and the content is inline, it inherits the marks from the\n // place where it is inserted.\n Transaction.prototype.replaceSelectionWith = function replaceSelectionWith (node, inheritMarks) {\n var selection = this.selection;\n if (inheritMarks !== false)\n { node = node.mark(this.storedMarks || (selection.empty ? selection.$from.marks() : (selection.$from.marksAcross(selection.$to) || Mark.none))); }\n selection.replaceWith(this, node);\n return this\n };\n\n // :: () → Transaction\n // Delete the selection.\n Transaction.prototype.deleteSelection = function deleteSelection () {\n this.selection.replace(this);\n return this\n };\n\n // :: (string, from: ?number, to: ?number) → Transaction\n // Replace the given range, or the selection if no range is given,\n // with a text node containing the given string.\n Transaction.prototype.insertText = function insertText (text, from, to) {\n if ( to === void 0 ) to = from;\n\n var schema = this.doc.type.schema;\n if (from == null) {\n if (!text) { return this.deleteSelection() }\n return this.replaceSelectionWith(schema.text(text), true)\n } else {\n if (!text) { return this.deleteRange(from, to) }\n var marks = this.storedMarks;\n if (!marks) {\n var $from = this.doc.resolve(from);\n marks = to == from ? $from.marks() : $from.marksAcross(this.doc.resolve(to));\n }\n this.replaceRangeWith(from, to, schema.text(text, marks));\n if (!this.selection.empty) { this.setSelection(Selection.near(this.selection.$to)); }\n return this\n }\n };\n\n // :: (union, any) → Transaction\n // Store a metadata property in this transaction, keyed either by\n // name or by plugin.\n Transaction.prototype.setMeta = function setMeta (key, value) {\n this.meta[typeof key == \"string\" ? key : key.key] = value;\n return this\n };\n\n // :: (union) → any\n // Retrieve a metadata property for a given name or plugin.\n Transaction.prototype.getMeta = function getMeta (key) {\n return this.meta[typeof key == \"string\" ? key : key.key]\n };\n\n // :: bool\n // Returns true if this transaction doesn't contain any metadata,\n // and can thus safely be extended.\n prototypeAccessors.isGeneric.get = function () {\n for (var _ in this.meta) { return false }\n return true\n };\n\n // :: () → Transaction\n // Indicate that the editor should scroll the selection into view\n // when updated to the state produced by this transaction.\n Transaction.prototype.scrollIntoView = function scrollIntoView () {\n this.updated |= UPDATED_SCROLL;\n return this\n };\n\n prototypeAccessors.scrolledIntoView.get = function () {\n return (this.updated & UPDATED_SCROLL) > 0\n };\n\n Object.defineProperties( Transaction.prototype, prototypeAccessors );\n\n return Transaction;\n}(Transform));\n\nfunction bind(f, self) {\n return !self || !f ? f : f.bind(self)\n}\n\nvar FieldDesc = function FieldDesc(name, desc, self) {\n this.name = name;\n this.init = bind(desc.init, self);\n this.apply = bind(desc.apply, self);\n};\n\nvar baseFields = [\n new FieldDesc(\"doc\", {\n init: function init(config) { return config.doc || config.schema.topNodeType.createAndFill() },\n apply: function apply(tr) { return tr.doc }\n }),\n\n new FieldDesc(\"selection\", {\n init: function init(config, instance) { return config.selection || Selection.atStart(instance.doc) },\n apply: function apply(tr) { return tr.selection }\n }),\n\n new FieldDesc(\"storedMarks\", {\n init: function init(config) { return config.storedMarks || null },\n apply: function apply(tr, _marks, _old, state) { return state.selection.$cursor ? tr.storedMarks : null }\n }),\n\n new FieldDesc(\"scrollToSelection\", {\n init: function init() { return 0 },\n apply: function apply(tr, prev) { return tr.scrolledIntoView ? prev + 1 : prev }\n })\n];\n\n// Object wrapping the part of a state object that stays the same\n// across transactions. Stored in the state's `config` property.\nvar Configuration = function Configuration(schema, plugins) {\n var this$1 = this;\n\n this.schema = schema;\n this.fields = baseFields.concat();\n this.plugins = [];\n this.pluginsByKey = Object.create(null);\n if (plugins) { plugins.forEach(function (plugin) {\n if (this$1.pluginsByKey[plugin.key])\n { throw new RangeError(\"Adding different instances of a keyed plugin (\" + plugin.key + \")\") }\n this$1.plugins.push(plugin);\n this$1.pluginsByKey[plugin.key] = plugin;\n if (plugin.spec.state)\n { this$1.fields.push(new FieldDesc(plugin.key, plugin.spec.state, plugin)); }\n }); }\n};\n\n// ::- The state of a ProseMirror editor is represented by an object\n// of this type. A state is a persistent data structure—it isn't\n// updated, but rather a new state value is computed from an old one\n// using the [`apply`](#state.EditorState.apply) method.\n//\n// A state holds a number of built-in fields, and plugins can\n// [define](#state.PluginSpec.state) additional fields.\nvar EditorState = function EditorState(config) {\n this.config = config;\n};\n\nvar prototypeAccessors$1 = { schema: { configurable: true },plugins: { configurable: true },tr: { configurable: true } };\n\n// doc:: Node\n// The current document.\n\n// selection:: Selection\n// The selection.\n\n// storedMarks:: ?[Mark]\n// A set of marks to apply to the next input. Will be null when\n// no explicit marks have been set.\n\n// :: Schema\n// The schema of the state's document.\nprototypeAccessors$1.schema.get = function () {\n return this.config.schema\n};\n\n// :: [Plugin]\n// The plugins that are active in this state.\nprototypeAccessors$1.plugins.get = function () {\n return this.config.plugins\n};\n\n// :: (Transaction) → EditorState\n// Apply the given transaction to produce a new state.\nEditorState.prototype.apply = function apply (tr) {\n return this.applyTransaction(tr).state\n};\n\n// : (Transaction) → bool\nEditorState.prototype.filterTransaction = function filterTransaction (tr, ignore) {\n if ( ignore === void 0 ) ignore = -1;\n\n for (var i = 0; i < this.config.plugins.length; i++) { if (i != ignore) {\n var plugin = this.config.plugins[i];\n if (plugin.spec.filterTransaction && !plugin.spec.filterTransaction.call(plugin, tr, this))\n { return false }\n } }\n return true\n};\n\n// :: (Transaction) → {state: EditorState, transactions: [Transaction]}\n// Verbose variant of [`apply`](#state.EditorState.apply) that\n// returns the precise transactions that were applied (which might\n// be influenced by the [transaction\n// hooks](#state.PluginSpec.filterTransaction) of\n// plugins) along with the new state.\nEditorState.prototype.applyTransaction = function applyTransaction (rootTr) {\n if (!this.filterTransaction(rootTr)) { return {state: this, transactions: []} }\n\n var trs = [rootTr], newState = this.applyInner(rootTr), seen = null;\n // This loop repeatedly gives plugins a chance to respond to\n // transactions as new transactions are added, making sure to only\n // pass the transactions the plugin did not see before.\n for (;;) {\n var haveNew = false;\n for (var i = 0; i < this.config.plugins.length; i++) {\n var plugin = this.config.plugins[i];\n if (plugin.spec.appendTransaction) {\n var n = seen ? seen[i].n : 0, oldState = seen ? seen[i].state : this;\n var tr = n < trs.length &&\n plugin.spec.appendTransaction.call(plugin, n ? trs.slice(n) : trs, oldState, newState);\n if (tr && newState.filterTransaction(tr, i)) {\n tr.setMeta(\"appendedTransaction\", rootTr);\n if (!seen) {\n seen = [];\n for (var j = 0; j < this.config.plugins.length; j++)\n { seen.push(j < i ? {state: newState, n: trs.length} : {state: this, n: 0}); }\n }\n trs.push(tr);\n newState = newState.applyInner(tr);\n haveNew = true;\n }\n if (seen) { seen[i] = {state: newState, n: trs.length}; }\n }\n }\n if (!haveNew) { return {state: newState, transactions: trs} }\n }\n};\n\n// : (Transaction) → EditorState\nEditorState.prototype.applyInner = function applyInner (tr) {\n if (!tr.before.eq(this.doc)) { throw new RangeError(\"Applying a mismatched transaction\") }\n var newInstance = new EditorState(this.config), fields = this.config.fields;\n for (var i = 0; i < fields.length; i++) {\n var field = fields[i];\n newInstance[field.name] = field.apply(tr, this[field.name], this, newInstance);\n }\n for (var i$1 = 0; i$1 < applyListeners.length; i$1++) { applyListeners[i$1](this, tr, newInstance); }\n return newInstance\n};\n\n// :: Transaction\n// Start a [transaction](#state.Transaction) from this state.\nprototypeAccessors$1.tr.get = function () { return new Transaction(this) };\n\n// :: (Object) → EditorState\n// Create a new state.\n//\n// config::- Configuration options. Must contain `schema` or `doc` (or both).\n//\n// schema:: ?Schema\n// The schema to use (only relevant if no `doc` is specified).\n//\n// doc:: ?Node\n// The starting document.\n//\n// selection:: ?Selection\n// A valid selection in the document.\n//\n// storedMarks:: ?[Mark]\n// The initial set of [stored marks](#state.EditorState.storedMarks).\n//\n// plugins:: ?[Plugin]\n// The plugins that should be active in this state.\nEditorState.create = function create (config) {\n var $config = new Configuration(config.doc ? config.doc.type.schema : config.schema, config.plugins);\n var instance = new EditorState($config);\n for (var i = 0; i < $config.fields.length; i++)\n { instance[$config.fields[i].name] = $config.fields[i].init(config, instance); }\n return instance\n};\n\n// :: (Object) → EditorState\n// Create a new state based on this one, but with an adjusted set of\n// active plugins. State fields that exist in both sets of plugins\n// are kept unchanged. Those that no longer exist are dropped, and\n// those that are new are initialized using their\n// [`init`](#state.StateField.init) method, passing in the new\n// configuration object..\n//\n// config::- configuration options\n//\n// plugins:: [Plugin]\n// New set of active plugins.\nEditorState.prototype.reconfigure = function reconfigure (config) {\n var $config = new Configuration(this.schema, config.plugins);\n var fields = $config.fields, instance = new EditorState($config);\n for (var i = 0; i < fields.length; i++) {\n var name = fields[i].name;\n instance[name] = this.hasOwnProperty(name) ? this[name] : fields[i].init(config, instance);\n }\n return instance\n};\n\n// :: (?union, string, number>) → Object\n// Serialize this state to JSON. If you want to serialize the state\n// of plugins, pass an object mapping property names to use in the\n// resulting JSON object to plugin objects. The argument may also be\n// a string or number, in which case it is ignored, to support the\n// way `JSON.stringify` calls `toString` methods.\nEditorState.prototype.toJSON = function toJSON (pluginFields) {\n var result = {doc: this.doc.toJSON(), selection: this.selection.toJSON()};\n if (this.storedMarks) { result.storedMarks = this.storedMarks.map(function (m) { return m.toJSON(); }); }\n if (pluginFields && typeof pluginFields == 'object') { for (var prop in pluginFields) {\n if (prop == \"doc\" || prop == \"selection\")\n { throw new RangeError(\"The JSON fields `doc` and `selection` are reserved\") }\n var plugin = pluginFields[prop], state = plugin.spec.state;\n if (state && state.toJSON) { result[prop] = state.toJSON.call(plugin, this[plugin.key]); }\n } }\n return result\n};\n\n// :: (Object, Object, ?Object) → EditorState\n// Deserialize a JSON representation of a state. `config` should\n// have at least a `schema` field, and should contain array of\n// plugins to initialize the state with. `pluginFields` can be used\n// to deserialize the state of plugins, by associating plugin\n// instances with the property names they use in the JSON object.\n//\n// config::- configuration options\n//\n// schema:: Schema\n// The schema to use.\n//\n// plugins:: ?[Plugin]\n// The set of active plugins.\nEditorState.fromJSON = function fromJSON (config, json, pluginFields) {\n if (!json) { throw new RangeError(\"Invalid input for EditorState.fromJSON\") }\n if (!config.schema) { throw new RangeError(\"Required config field 'schema' missing\") }\n var $config = new Configuration(config.schema, config.plugins);\n var instance = new EditorState($config);\n $config.fields.forEach(function (field) {\n if (field.name == \"doc\") {\n instance.doc = Node.fromJSON(config.schema, json.doc);\n } else if (field.name == \"selection\") {\n instance.selection = Selection.fromJSON(instance.doc, json.selection);\n } else if (field.name == \"storedMarks\") {\n if (json.storedMarks) { instance.storedMarks = json.storedMarks.map(config.schema.markFromJSON); }\n } else {\n if (pluginFields) { for (var prop in pluginFields) {\n var plugin = pluginFields[prop], state = plugin.spec.state;\n if (plugin.key == field.name && state && state.fromJSON &&\n Object.prototype.hasOwnProperty.call(json, prop)) {\n // This field belongs to a plugin mapped to a JSON field, read it from there.\n instance[field.name] = state.fromJSON.call(plugin, config, json[prop], instance);\n return\n }\n } }\n instance[field.name] = field.init(config, instance);\n }\n });\n return instance\n};\n\n// Kludge to allow the view to track mappings between different\n// instances of a state.\n//\n// FIXME this is no longer needed as of prosemirror-view 1.9.0,\n// though due to backwards-compat we should probably keep it around\n// for a while (if only as a no-op)\nEditorState.addApplyListener = function addApplyListener (f) {\n applyListeners.push(f);\n};\nEditorState.removeApplyListener = function removeApplyListener (f) {\n var found = applyListeners.indexOf(f);\n if (found > -1) { applyListeners.splice(found, 1); }\n};\n\nObject.defineProperties( EditorState.prototype, prototypeAccessors$1 );\n\nvar applyListeners = [];\n\n// PluginSpec:: interface\n//\n// This is the type passed to the [`Plugin`](#state.Plugin)\n// constructor. It provides a definition for a plugin.\n//\n// props:: ?EditorProps\n// The [view props](#view.EditorProps) added by this plugin. Props\n// that are functions will be bound to have the plugin instance as\n// their `this` binding.\n//\n// state:: ?StateField\n// Allows a plugin to define a [state field](#state.StateField), an\n// extra slot in the state object in which it can keep its own data.\n//\n// key:: ?PluginKey\n// Can be used to make this a keyed plugin. You can have only one\n// plugin with a given key in a given state, but it is possible to\n// access the plugin's configuration and state through the key,\n// without having access to the plugin instance object.\n//\n// view:: ?(EditorView) → Object\n// When the plugin needs to interact with the editor view, or\n// set something up in the DOM, use this field. The function\n// will be called when the plugin's state is associated with an\n// editor view.\n//\n// return::-\n// Should return an object with the following optional\n// properties:\n//\n// update:: ?(view: EditorView, prevState: EditorState)\n// Called whenever the view's state is updated.\n//\n// destroy:: ?()\n// Called when the view is destroyed or receives a state\n// with different plugins.\n//\n// filterTransaction:: ?(Transaction, EditorState) → bool\n// When present, this will be called before a transaction is\n// applied by the state, allowing the plugin to cancel it (by\n// returning false).\n//\n// appendTransaction:: ?(transactions: [Transaction], oldState: EditorState, newState: EditorState) → ?Transaction\n// Allows the plugin to append another transaction to be applied\n// after the given array of transactions. When another plugin\n// appends a transaction after this was called, it is called again\n// with the new state and new transactions—but only the new\n// transactions, i.e. it won't be passed transactions that it\n// already saw.\n\nfunction bindProps(obj, self, target) {\n for (var prop in obj) {\n var val = obj[prop];\n if (val instanceof Function) { val = val.bind(self); }\n else if (prop == \"handleDOMEvents\") { val = bindProps(val, self, {}); }\n target[prop] = val;\n }\n return target\n}\n\n// ::- Plugins bundle functionality that can be added to an editor.\n// They are part of the [editor state](#state.EditorState) and\n// may influence that state and the view that contains it.\nvar Plugin = function Plugin(spec) {\n // :: EditorProps\n // The [props](#view.EditorProps) exported by this plugin.\n this.props = {};\n if (spec.props) { bindProps(spec.props, this, this.props); }\n // :: Object\n // The plugin's [spec object](#state.PluginSpec).\n this.spec = spec;\n this.key = spec.key ? spec.key.key : createKey(\"plugin\");\n};\n\n// :: (EditorState) → any\n// Extract the plugin's state field from an editor state.\nPlugin.prototype.getState = function getState (state) { return state[this.key] };\n\n// StateField:: interface\n// A plugin spec may provide a state field (under its\n// [`state`](#state.PluginSpec.state) property) of this type, which\n// describes the state it wants to keep. Functions provided here are\n// always called with the plugin instance as their `this` binding.\n//\n// init:: (config: Object, instance: EditorState) → T\n// Initialize the value of the field. `config` will be the object\n// passed to [`EditorState.create`](#state.EditorState^create). Note\n// that `instance` is a half-initialized state instance, and will\n// not have values for plugin fields initialized after this one.\n//\n// apply:: (tr: Transaction, value: T, oldState: EditorState, newState: EditorState) → T\n// Apply the given transaction to this state field, producing a new\n// field value. Note that the `newState` argument is again a partially\n// constructed state does not yet contain the state from plugins\n// coming after this one.\n//\n// toJSON:: ?(value: T) → *\n// Convert this field to JSON. Optional, can be left off to disable\n// JSON serialization for the field.\n//\n// fromJSON:: ?(config: Object, value: *, state: EditorState) → T\n// Deserialize the JSON representation of this field. Note that the\n// `state` argument is again a half-initialized state.\n\nvar keys = Object.create(null);\n\nfunction createKey(name) {\n if (name in keys) { return name + \"$\" + ++keys[name] }\n keys[name] = 0;\n return name + \"$\"\n}\n\n// ::- A key is used to [tag](#state.PluginSpec.key)\n// plugins in a way that makes it possible to find them, given an\n// editor state. Assigning a key does mean only one plugin of that\n// type can be active in a state.\nvar PluginKey = function PluginKey(name) {\nif ( name === void 0 ) name = \"key\";\n this.key = createKey(name); };\n\n// :: (EditorState) → ?Plugin\n// Get the active plugin with this key, if any, from an editor\n// state.\nPluginKey.prototype.get = function get (state) { return state.config.pluginsByKey[this.key] };\n\n// :: (EditorState) → ?any\n// Get the plugin's state from an editor state.\nPluginKey.prototype.getState = function getState (state) { return state[this.key] };\n\nexport { AllSelection, EditorState, NodeSelection, Plugin, PluginKey, Selection, SelectionRange, TextSelection, Transaction };\n","import { PluginKey, TextSelection, Selection, SelectionRange, NodeSelection, Plugin } from 'prosemirror-state';\nimport { Fragment, Slice } from 'prosemirror-model';\nimport { keydownHandler } from 'prosemirror-keymap';\nimport { Decoration, DecorationSet } from 'prosemirror-view';\nimport { Transform } from 'prosemirror-transform';\n\n// Because working with row and column-spanning cells is not quite\n// trivial, this code builds up a descriptive structure for a given\n// table node. The structures are cached with the (persistent) table\n// nodes as key, so that they only have to be recomputed when the\n// content of the table changes.\n//\n// This does mean that they have to store table-relative, not\n// document-relative positions. So code that uses them will typically\n// compute the start position of the table and offset positions passed\n// to or gotten from this structure by that amount.\n\nvar readFromCache, addToCache;\n// Prefer using a weak map to cache table maps. Fall back on a\n// fixed-size cache if that's not supported.\nif (typeof WeakMap != \"undefined\") {\n var cache = new WeakMap;\n readFromCache = function (key) { return cache.get(key); };\n addToCache = function (key, value) {\n cache.set(key, value);\n return value\n };\n} else {\n var cache$1 = [], cacheSize = 10, cachePos = 0;\n readFromCache = function (key) {\n for (var i = 0; i < cache$1.length; i += 2)\n { if (cache$1[i] == key) { return cache$1[i + 1] } }\n };\n addToCache = function (key, value) {\n if (cachePos == cacheSize) { cachePos = 0; }\n cache$1[cachePos++] = key;\n return cache$1[cachePos++] = value\n };\n}\n\nvar Rect = function Rect(left, top, right, bottom) {\n this.left = left; this.top = top; this.right = right; this.bottom = bottom;\n};\n\n// ::- A table map describes the structore of a given table. To avoid\n// recomputing them all the time, they are cached per table node. To\n// be able to do that, positions saved in the map are relative to the\n// start of the table, rather than the start of the document.\nvar TableMap = function TableMap(width, height, map, problems) {\n // :: number The width of the table\n this.width = width;\n // :: number The table's height\n this.height = height;\n // :: [number] A width * height array with the start position of\n // the cell covering that part of the table in each slot\n this.map = map;\n // An optional array of problems (cell overlap or non-rectangular\n // shape) for the table, used by the table normalizer.\n this.problems = problems;\n};\n\n// :: (number) → Rect\n// Find the dimensions of the cell at the given position.\nTableMap.prototype.findCell = function findCell (pos) {\n for (var i = 0; i < this.map.length; i++) {\n var curPos = this.map[i];\n if (curPos != pos) { continue }\n var left = i % this.width, top = (i / this.width) | 0;\n var right = left + 1, bottom = top + 1;\n for (var j = 1; right < this.width && this.map[i + j] == curPos; j++) { right++; }\n for (var j$1 = 1; bottom < this.height && this.map[i + (this.width * j$1)] == curPos; j$1++) { bottom++; }\n return new Rect(left, top, right, bottom)\n }\n throw new RangeError(\"No cell with offset \" + pos + \" found\")\n};\n\n// :: (number) → number\n// Find the left side of the cell at the given position.\nTableMap.prototype.colCount = function colCount (pos) {\n for (var i = 0; i < this.map.length; i++)\n { if (this.map[i] == pos) { return i % this.width } }\n throw new RangeError(\"No cell with offset \" + pos + \" found\")\n};\n\n// :: (number, string, number) → ?number\n// Find the next cell in the given direction, starting from the cell\n// at `pos`, if any.\nTableMap.prototype.nextCell = function nextCell (pos, axis, dir) {\n var ref = this.findCell(pos);\n var left = ref.left;\n var right = ref.right;\n var top = ref.top;\n var bottom = ref.bottom;\n if (axis == \"horiz\") {\n if (dir < 0 ? left == 0 : right == this.width) { return null }\n return this.map[top * this.width + (dir < 0 ? left - 1 : right)]\n } else {\n if (dir < 0 ? top == 0 : bottom == this.height) { return null }\n return this.map[left + this.width * (dir < 0 ? top - 1 : bottom)]\n }\n};\n\n// :: (number, number) → Rect\n// Get the rectangle spanning the two given cells.\nTableMap.prototype.rectBetween = function rectBetween (a, b) {\n var ref = this.findCell(a);\n var leftA = ref.left;\n var rightA = ref.right;\n var topA = ref.top;\n var bottomA = ref.bottom;\n var ref$1 = this.findCell(b);\n var leftB = ref$1.left;\n var rightB = ref$1.right;\n var topB = ref$1.top;\n var bottomB = ref$1.bottom;\n return new Rect(Math.min(leftA, leftB), Math.min(topA, topB),\n Math.max(rightA, rightB), Math.max(bottomA, bottomB))\n};\n\n// :: (Rect) → [number]\n// Return the position of all cells that have the top left corner in\n// the given rectangle.\nTableMap.prototype.cellsInRect = function cellsInRect (rect) {\n var result = [], seen = {};\n for (var row = rect.top; row < rect.bottom; row++) {\n for (var col = rect.left; col < rect.right; col++) {\n var index = row * this.width + col, pos = this.map[index];\n if (seen[pos]) { continue }\n seen[pos] = true;\n if ((col != rect.left || !col || this.map[index - 1] != pos) &&\n (row != rect.top || !row || this.map[index - this.width] != pos))\n { result.push(pos); }\n }\n }\n return result\n};\n\n// :: (number, number, Node) → number\n// Return the position at which the cell at the given row and column\n// starts, or would start, if a cell started there.\nTableMap.prototype.positionAt = function positionAt (row, col, table) {\n for (var i = 0, rowStart = 0;; i++) {\n var rowEnd = rowStart + table.child(i).nodeSize;\n if (i == row) {\n var index = col + row * this.width, rowEndIndex = (row + 1) * this.width;\n // Skip past cells from previous rows (via rowspan)\n while (index < rowEndIndex && this.map[index] < rowStart) { index++; }\n return index == rowEndIndex ? rowEnd - 1 : this.map[index]\n }\n rowStart = rowEnd;\n }\n};\n\n// :: (Node) → TableMap\n// Find the table map for the given table node.\nTableMap.get = function get (table) {\n return readFromCache(table) || addToCache(table, computeMap(table))\n};\n\n// Compute a table map.\nfunction computeMap(table) {\n if (table.type.spec.tableRole != \"table\") { throw new RangeError(\"Not a table node: \" + table.type.name) }\n var width = findWidth(table), height = table.childCount;\n var map = [], mapPos = 0, problems = null, colWidths = [];\n for (var i = 0, e = width * height; i < e; i++) { map[i] = 0; }\n\n for (var row = 0, pos = 0; row < height; row++) {\n var rowNode = table.child(row);\n pos++;\n for (var i$1 = 0;; i$1++) {\n while (mapPos < map.length && map[mapPos] != 0) { mapPos++; }\n if (i$1 == rowNode.childCount) { break }\n var cellNode = rowNode.child(i$1);\n var ref = cellNode.attrs;\n var colspan = ref.colspan;\n var rowspan = ref.rowspan;\n var colwidth = ref.colwidth;\n for (var h = 0; h < rowspan; h++) {\n if (h + row >= height) {\n (problems || (problems = [])).push({type: \"overlong_rowspan\", pos: pos, n: rowspan - h});\n break\n }\n var start = mapPos + (h * width);\n for (var w = 0; w < colspan; w++) {\n if (map[start + w] == 0)\n { map[start + w] = pos; }\n else\n { (problems || (problems = [])).push({type: \"collision\", row: row, pos: pos, n: colspan - w}); }\n var colW = colwidth && colwidth[w];\n if (colW) {\n var widthIndex = ((start + w) % width) * 2, prev = colWidths[widthIndex];\n if (prev == null || (prev != colW && colWidths[widthIndex + 1] == 1)) {\n colWidths[widthIndex] = colW;\n colWidths[widthIndex + 1] = 1;\n } else if (prev == colW) {\n colWidths[widthIndex + 1]++;\n }\n }\n }\n }\n mapPos += colspan;\n pos += cellNode.nodeSize;\n }\n var expectedPos = (row + 1) * width, missing = 0;\n while (mapPos < expectedPos) { if (map[mapPos++] == 0) { missing++; } }\n if (missing) { (problems || (problems = [])).push({type: \"missing\", row: row, n: missing}); }\n pos++;\n }\n\n var tableMap = new TableMap(width, height, map, problems), badWidths = false;\n\n // For columns that have defined widths, but whose widths disagree\n // between rows, fix up the cells whose width doesn't match the\n // computed one.\n for (var i$2 = 0; !badWidths && i$2 < colWidths.length; i$2 += 2)\n { if (colWidths[i$2] != null && colWidths[i$2 + 1] < height) { badWidths = true; } }\n if (badWidths) { findBadColWidths(tableMap, colWidths, table); }\n\n return tableMap\n}\n\nfunction findWidth(table) {\n var width = -1, hasRowSpan = false;\n for (var row = 0; row < table.childCount; row++) {\n var rowNode = table.child(row), rowWidth = 0;\n if (hasRowSpan) { for (var j = 0; j < row; j++) {\n var prevRow = table.child(j);\n for (var i = 0; i < prevRow.childCount; i++) {\n var cell = prevRow.child(i);\n if (j + cell.attrs.rowspan > row) { rowWidth += cell.attrs.colspan; }\n }\n } }\n for (var i$1 = 0; i$1 < rowNode.childCount; i$1++) {\n var cell$1 = rowNode.child(i$1);\n rowWidth += cell$1.attrs.colspan;\n if (cell$1.attrs.rowspan > 1) { hasRowSpan = true; }\n }\n if (width == -1)\n { width = rowWidth; }\n else if (width != rowWidth)\n { width = Math.max(width, rowWidth); }\n }\n return width\n}\n\nfunction findBadColWidths(map, colWidths, table) {\n if (!map.problems) { map.problems = []; }\n for (var i = 0, seen = {}; i < map.map.length; i++) {\n var pos = map.map[i];\n if (seen[pos]) { continue }\n seen[pos] = true;\n var node = table.nodeAt(pos), updated = null;\n for (var j = 0; j < node.attrs.colspan; j++) {\n var col = (i + j) % map.width, colWidth = colWidths[col * 2];\n if (colWidth != null && (!node.attrs.colwidth || node.attrs.colwidth[j] != colWidth))\n { (updated || (updated = freshColWidth(node.attrs)))[j] = colWidth; }\n }\n if (updated) { map.problems.unshift({type: \"colwidth mismatch\", pos: pos, colwidth: updated}); }\n }\n}\n\nfunction freshColWidth(attrs) {\n if (attrs.colwidth) { return attrs.colwidth.slice() }\n var result = [];\n for (var i = 0; i < attrs.colspan; i++) { result.push(0); }\n return result\n}\n\n// Helper for creating a schema that supports tables.\n\nfunction getCellAttrs(dom, extraAttrs) {\n var widthAttr = dom.getAttribute(\"data-colwidth\");\n var widths = widthAttr && /^\\d+(,\\d+)*$/.test(widthAttr) ? widthAttr.split(\",\").map(function (s) { return Number(s); }) : null;\n var colspan = Number(dom.getAttribute(\"colspan\") || 1);\n var result = {\n colspan: colspan,\n rowspan: Number(dom.getAttribute(\"rowspan\") || 1),\n colwidth: widths && widths.length == colspan ? widths : null\n };\n for (var prop in extraAttrs) {\n var getter = extraAttrs[prop].getFromDOM;\n var value = getter && getter(dom);\n if (value != null) { result[prop] = value; }\n }\n return result\n}\n\nfunction setCellAttrs(node, extraAttrs) {\n var attrs = {};\n if (node.attrs.colspan != 1) { attrs.colspan = node.attrs.colspan; }\n if (node.attrs.rowspan != 1) { attrs.rowspan = node.attrs.rowspan; }\n if (node.attrs.colwidth)\n { attrs[\"data-colwidth\"] = node.attrs.colwidth.join(\",\"); }\n for (var prop in extraAttrs) {\n var setter = extraAttrs[prop].setDOMAttr;\n if (setter) { setter(node.attrs[prop], attrs); }\n }\n return attrs\n}\n\n// :: (Object) → Object\n//\n// This function creates a set of [node\n// specs](http://prosemirror.net/docs/ref/#model.SchemaSpec.nodes) for\n// `table`, `table_row`, and `table_cell` nodes types as used by this\n// module. The result can then be added to the set of nodes when\n// creating a a schema.\n//\n// options::- The following options are understood:\n//\n// tableGroup:: ?string\n// A group name (something like `\"block\"`) to add to the table\n// node type.\n//\n// cellContent:: string\n// The content expression for table cells.\n//\n// cellAttributes:: ?Object\n// Additional attributes to add to cells. Maps attribute names to\n// objects with the following properties:\n//\n// default:: any\n// The attribute's default value.\n//\n// getFromDOM:: ?(dom.Node) → any\n// A function to read the attribute's value from a DOM node.\n//\n// setDOMAttr:: ?(value: any, attrs: Object)\n// A function to add the attribute's value to an attribute\n// object that's used to render the cell's DOM.\nfunction tableNodes(options) {\n var extraAttrs = options.cellAttributes || {};\n var cellAttrs = {\n colspan: {default: 1},\n rowspan: {default: 1},\n colwidth: {default: null}\n };\n for (var prop in extraAttrs)\n { cellAttrs[prop] = {default: extraAttrs[prop].default}; }\n\n return {\n table: {\n content: \"table_row+\",\n tableRole: \"table\",\n isolating: true,\n group: options.tableGroup,\n parseDOM: [{tag: \"table\"}],\n toDOM: function toDOM() { return [\"table\", [\"tbody\", 0]] }\n },\n table_row: {\n content: \"(table_cell | table_header)*\",\n tableRole: \"row\",\n parseDOM: [{tag: \"tr\"}],\n toDOM: function toDOM() { return [\"tr\", 0] }\n },\n table_cell: {\n content: options.cellContent,\n attrs: cellAttrs,\n tableRole: \"cell\",\n isolating: true,\n parseDOM: [{tag: \"td\", getAttrs: function (dom) { return getCellAttrs(dom, extraAttrs); }}],\n toDOM: function toDOM(node) { return [\"td\", setCellAttrs(node, extraAttrs), 0] }\n },\n table_header: {\n content: options.cellContent,\n attrs: cellAttrs,\n tableRole: \"header_cell\",\n isolating: true,\n parseDOM: [{tag: \"th\", getAttrs: function (dom) { return getCellAttrs(dom, extraAttrs); }}],\n toDOM: function toDOM(node) { return [\"th\", setCellAttrs(node, extraAttrs), 0] }\n }\n }\n}\n\nfunction tableNodeTypes(schema) {\n var result = schema.cached.tableNodeTypes;\n if (!result) {\n result = schema.cached.tableNodeTypes = {};\n for (var name in schema.nodes) {\n var type = schema.nodes[name], role = type.spec.tableRole;\n if (role) { result[role] = type; }\n }\n }\n return result\n}\n\n// Various helper function for working with tables\n\nvar key = new PluginKey(\"selectingCells\");\n\nfunction cellAround($pos) {\n for (var d = $pos.depth - 1; d > 0; d--)\n { if ($pos.node(d).type.spec.tableRole == \"row\") { return $pos.node(0).resolve($pos.before(d + 1)) } }\n return null\n}\n\nfunction cellWrapping($pos) {\n for (var d = $pos.depth; d > 0; d--) { // Sometimes the cell can be in the same depth.\n var role = $pos.node(d).type.spec.tableRole;\n if (role === \"cell\" || role === 'header_cell') { return $pos.node(d) }\n }\n return null\n}\n\nfunction isInTable(state) {\n var $head = state.selection.$head;\n for (var d = $head.depth; d > 0; d--) { if ($head.node(d).type.spec.tableRole == \"row\") { return true } }\n return false\n}\n\nfunction selectionCell(state) {\n var sel = state.selection;\n if (sel.$anchorCell) {\n return sel.$anchorCell.pos > sel.$headCell.pos ? sel.$anchorCell : sel.$headCell;\n } else if (sel.node && sel.node.type.spec.tableRole == \"cell\") {\n return sel.$anchor\n }\n return cellAround(sel.$head) || cellNear(sel.$head)\n}\n\nfunction cellNear($pos) {\n for (var after = $pos.nodeAfter, pos = $pos.pos; after; after = after.firstChild, pos++) {\n var role = after.type.spec.tableRole;\n if (role == \"cell\" || role == \"header_cell\") { return $pos.doc.resolve(pos) }\n }\n for (var before = $pos.nodeBefore, pos$1 = $pos.pos; before; before = before.lastChild, pos$1--) {\n var role$1 = before.type.spec.tableRole;\n if (role$1 == \"cell\" || role$1 == \"header_cell\") { return $pos.doc.resolve(pos$1 - before.nodeSize) }\n }\n}\n\nfunction pointsAtCell($pos) {\n return $pos.parent.type.spec.tableRole == \"row\" && $pos.nodeAfter\n}\n\nfunction moveCellForward($pos) {\n return $pos.node(0).resolve($pos.pos + $pos.nodeAfter.nodeSize)\n}\n\nfunction inSameTable($a, $b) {\n return $a.depth == $b.depth && $a.pos >= $b.start(-1) && $a.pos <= $b.end(-1)\n}\n\nfunction findCell($pos) {\n return TableMap.get($pos.node(-1)).findCell($pos.pos - $pos.start(-1))\n}\n\nfunction colCount($pos) {\n return TableMap.get($pos.node(-1)).colCount($pos.pos - $pos.start(-1))\n}\n\nfunction nextCell($pos, axis, dir) {\n var start = $pos.start(-1), map = TableMap.get($pos.node(-1));\n var moved = map.nextCell($pos.pos - start, axis, dir);\n return moved == null ? null : $pos.node(0).resolve(start + moved)\n}\n\nfunction setAttr(attrs, name, value) {\n var result = {};\n for (var prop in attrs) { result[prop] = attrs[prop]; }\n result[name] = value;\n return result\n}\n\nfunction removeColSpan(attrs, pos, n) {\n if ( n === void 0 ) n=1;\n\n var result = setAttr(attrs, \"colspan\", attrs.colspan - n);\n if (result.colwidth) {\n result.colwidth = result.colwidth.slice();\n result.colwidth.splice(pos, n);\n if (!result.colwidth.some(function (w) { return w > 0; })) { result.colwidth = null; }\n }\n return result\n}\n\nfunction addColSpan(attrs, pos, n) {\n if ( n === void 0 ) n=1;\n\n var result = setAttr(attrs, \"colspan\", attrs.colspan + n);\n if (result.colwidth) {\n result.colwidth = result.colwidth.slice();\n for (var i = 0; i < n; i++) { result.colwidth.splice(pos, 0, 0); }\n }\n return result\n}\n\nfunction columnIsHeader(map, table, col) {\n var headerCell = tableNodeTypes(table.type.schema).header_cell;\n for (var row = 0; row < map.height; row++)\n { if (table.nodeAt(map.map[col + row * map.width]).type != headerCell)\n { return false } }\n return true\n}\n\n// This file defines a ProseMirror selection subclass that models\n\n// ::- A [`Selection`](http://prosemirror.net/docs/ref/#state.Selection)\n// subclass that represents a cell selection spanning part of a table.\n// With the plugin enabled, these will be created when the user\n// selects across cells, and will be drawn by giving selected cells a\n// `selectedCell` CSS class.\nvar CellSelection = /*@__PURE__*/(function (Selection) {\n function CellSelection($anchorCell, $headCell) {\n if ( $headCell === void 0 ) $headCell = $anchorCell;\n\n var table = $anchorCell.node(-1), map = TableMap.get(table), start = $anchorCell.start(-1);\n var rect = map.rectBetween($anchorCell.pos - start, $headCell.pos - start);\n var doc = $anchorCell.node(0);\n var cells = map.cellsInRect(rect).filter(function (p) { return p != $headCell.pos - start; });\n // Make the head cell the first range, so that it counts as the\n // primary part of the selection\n cells.unshift($headCell.pos - start);\n var ranges = cells.map(function (pos) {\n var cell = table.nodeAt(pos), from = pos + start + 1;\n return new SelectionRange(doc.resolve(from), doc.resolve(from + cell.content.size))\n });\n Selection.call(this, ranges[0].$from, ranges[0].$to, ranges);\n // :: ResolvedPos\n // A resolved position pointing _in front of_ the anchor cell (the one\n // that doesn't move when extending the selection).\n this.$anchorCell = $anchorCell;\n // :: ResolvedPos\n // A resolved position pointing in front of the head cell (the one\n // moves when extending the selection).\n this.$headCell = $headCell;\n }\n\n if ( Selection ) CellSelection.__proto__ = Selection;\n CellSelection.prototype = Object.create( Selection && Selection.prototype );\n CellSelection.prototype.constructor = CellSelection;\n\n CellSelection.prototype.map = function map (doc, mapping) {\n var $anchorCell = doc.resolve(mapping.map(this.$anchorCell.pos));\n var $headCell = doc.resolve(mapping.map(this.$headCell.pos));\n if (pointsAtCell($anchorCell) && pointsAtCell($headCell) && inSameTable($anchorCell, $headCell)) {\n var tableChanged = this.$anchorCell.node(-1) != $anchorCell.node(-1);\n if (tableChanged && this.isRowSelection())\n { return CellSelection.rowSelection($anchorCell, $headCell) }\n else if (tableChanged && this.isColSelection())\n { return CellSelection.colSelection($anchorCell, $headCell) }\n else\n { return new CellSelection($anchorCell, $headCell) }\n }\n return TextSelection.between($anchorCell, $headCell)\n };\n\n // :: () → Slice\n // Returns a rectangular slice of table rows containing the selected\n // cells.\n CellSelection.prototype.content = function content () {\n var table = this.$anchorCell.node(-1), map = TableMap.get(table), start = this.$anchorCell.start(-1);\n var rect = map.rectBetween(this.$anchorCell.pos - start, this.$headCell.pos - start);\n var seen = {}, rows = [];\n for (var row = rect.top; row < rect.bottom; row++) {\n var rowContent = [];\n for (var index = row * map.width + rect.left, col = rect.left; col < rect.right; col++, index++) {\n var pos = map.map[index];\n if (!seen[pos]) {\n seen[pos] = true;\n var cellRect = map.findCell(pos), cell = table.nodeAt(pos);\n var extraLeft = rect.left - cellRect.left, extraRight = cellRect.right - rect.right;\n if (extraLeft > 0 || extraRight > 0) {\n var attrs = cell.attrs;\n if (extraLeft > 0) { attrs = removeColSpan(attrs, 0, extraLeft); }\n if (extraRight > 0) { attrs = removeColSpan(attrs, attrs.colspan - extraRight, extraRight); }\n if (cellRect.left < rect.left) { cell = cell.type.createAndFill(attrs); }\n else { cell = cell.type.create(attrs, cell.content); }\n }\n if (cellRect.top < rect.top || cellRect.bottom > rect.bottom) {\n var attrs$1 = setAttr(cell.attrs, \"rowspan\", Math.min(cellRect.bottom, rect.bottom) - Math.max(cellRect.top, rect.top));\n if (cellRect.top < rect.top) { cell = cell.type.createAndFill(attrs$1); }\n else { cell = cell.type.create(attrs$1, cell.content); }\n }\n rowContent.push(cell);\n }\n }\n rows.push(table.child(row).copy(Fragment.from(rowContent)));\n }\n\n var fragment = this.isColSelection() && this.isRowSelection() ? table : rows;\n return new Slice(Fragment.from(fragment), 1, 1)\n };\n\n CellSelection.prototype.replace = function replace (tr, content) {\n if ( content === void 0 ) content = Slice.empty;\n\n var mapFrom = tr.steps.length, ranges = this.ranges;\n for (var i = 0; i < ranges.length; i++) {\n var ref = ranges[i];\n var $from = ref.$from;\n var $to = ref.$to;\n var mapping = tr.mapping.slice(mapFrom);\n tr.replace(mapping.map($from.pos), mapping.map($to.pos), i ? Slice.empty : content);\n }\n var sel = Selection.findFrom(tr.doc.resolve(tr.mapping.slice(mapFrom).map(this.to)), -1);\n if (sel) { tr.setSelection(sel); }\n };\n\n CellSelection.prototype.replaceWith = function replaceWith (tr, node) {\n this.replace(tr, new Slice(Fragment.from(node), 0, 0));\n };\n\n CellSelection.prototype.forEachCell = function forEachCell (f) {\n var table = this.$anchorCell.node(-1), map = TableMap.get(table), start = this.$anchorCell.start(-1);\n var cells = map.cellsInRect(map.rectBetween(this.$anchorCell.pos - start, this.$headCell.pos - start));\n for (var i = 0; i < cells.length; i++)\n { f(table.nodeAt(cells[i]), start + cells[i]); }\n };\n\n // :: () → bool\n // True if this selection goes all the way from the top to the\n // bottom of the table.\n CellSelection.prototype.isColSelection = function isColSelection () {\n var anchorTop = this.$anchorCell.index(-1), headTop = this.$headCell.index(-1);\n if (Math.min(anchorTop, headTop) > 0) { return false }\n var anchorBot = anchorTop + this.$anchorCell.nodeAfter.attrs.rowspan,\n headBot = headTop + this.$headCell.nodeAfter.attrs.rowspan;\n return Math.max(anchorBot, headBot) == this.$headCell.node(-1).childCount\n };\n\n // :: (ResolvedPos, ?ResolvedPos) → CellSelection\n // Returns the smallest column selection that covers the given anchor\n // and head cell.\n CellSelection.colSelection = function colSelection ($anchorCell, $headCell) {\n if ( $headCell === void 0 ) $headCell = $anchorCell;\n\n var map = TableMap.get($anchorCell.node(-1)), start = $anchorCell.start(-1);\n var anchorRect = map.findCell($anchorCell.pos - start), headRect = map.findCell($headCell.pos - start);\n var doc = $anchorCell.node(0);\n if (anchorRect.top <= headRect.top) {\n if (anchorRect.top > 0)\n { $anchorCell = doc.resolve(start + map.map[anchorRect.left]); }\n if (headRect.bottom < map.height)\n { $headCell = doc.resolve(start + map.map[map.width * (map.height - 1) + headRect.right - 1]); }\n } else {\n if (headRect.top > 0)\n { $headCell = doc.resolve(start + map.map[headRect.left]); }\n if (anchorRect.bottom < map.height)\n { $anchorCell = doc.resolve(start + map.map[map.width * (map.height - 1) + anchorRect.right - 1]); }\n }\n return new CellSelection($anchorCell, $headCell)\n };\n\n // :: () → bool\n // True if this selection goes all the way from the left to the\n // right of the table.\n CellSelection.prototype.isRowSelection = function isRowSelection () {\n var map = TableMap.get(this.$anchorCell.node(-1)), start = this.$anchorCell.start(-1);\n var anchorLeft = map.colCount(this.$anchorCell.pos - start),\n headLeft = map.colCount(this.$headCell.pos - start);\n if (Math.min(anchorLeft, headLeft) > 0) { return false }\n var anchorRight = anchorLeft + this.$anchorCell.nodeAfter.attrs.colspan,\n headRight = headLeft + this.$headCell.nodeAfter.attrs.colspan;\n return Math.max(anchorRight, headRight) == map.width\n };\n\n CellSelection.prototype.eq = function eq (other) {\n return other instanceof CellSelection && other.$anchorCell.pos == this.$anchorCell.pos &&\n other.$headCell.pos == this.$headCell.pos\n };\n\n // :: (ResolvedPos, ?ResolvedPos) → CellSelection\n // Returns the smallest row selection that covers the given anchor\n // and head cell.\n CellSelection.rowSelection = function rowSelection ($anchorCell, $headCell) {\n if ( $headCell === void 0 ) $headCell = $anchorCell;\n\n var map = TableMap.get($anchorCell.node(-1)), start = $anchorCell.start(-1);\n var anchorRect = map.findCell($anchorCell.pos - start), headRect = map.findCell($headCell.pos - start);\n var doc = $anchorCell.node(0);\n if (anchorRect.left <= headRect.left) {\n if (anchorRect.left > 0)\n { $anchorCell = doc.resolve(start + map.map[anchorRect.top * map.width]); }\n if (headRect.right < map.width)\n { $headCell = doc.resolve(start + map.map[map.width * (headRect.top + 1) - 1]); }\n } else {\n if (headRect.left > 0)\n { $headCell = doc.resolve(start + map.map[headRect.top * map.width]); }\n if (anchorRect.right < map.width)\n { $anchorCell = doc.resolve(start + map.map[map.width * (anchorRect.top + 1) - 1]); }\n }\n return new CellSelection($anchorCell, $headCell)\n };\n\n CellSelection.prototype.toJSON = function toJSON () {\n return {type: \"cell\", anchor: this.$anchorCell.pos, head: this.$headCell.pos}\n };\n\n CellSelection.fromJSON = function fromJSON (doc, json) {\n return new CellSelection(doc.resolve(json.anchor), doc.resolve(json.head))\n };\n\n // :: (Node, number, ?number) → CellSelection\n CellSelection.create = function create (doc, anchorCell, headCell) {\n if ( headCell === void 0 ) headCell = anchorCell;\n\n return new CellSelection(doc.resolve(anchorCell), doc.resolve(headCell))\n };\n\n CellSelection.prototype.getBookmark = function getBookmark () { return new CellBookmark(this.$anchorCell.pos, this.$headCell.pos) };\n\n return CellSelection;\n}(Selection));\n\nCellSelection.prototype.visible = false;\n\nSelection.jsonID(\"cell\", CellSelection);\n\nvar CellBookmark = function CellBookmark(anchor, head) {\n this.anchor = anchor;\n this.head = head;\n};\nCellBookmark.prototype.map = function map (mapping) {\n return new CellBookmark(mapping.map(this.anchor), mapping.map(this.head))\n};\nCellBookmark.prototype.resolve = function resolve (doc) {\n var $anchorCell = doc.resolve(this.anchor), $headCell = doc.resolve(this.head);\n if ($anchorCell.parent.type.spec.tableRole == \"row\" &&\n $headCell.parent.type.spec.tableRole == \"row\" &&\n $anchorCell.index() < $anchorCell.parent.childCount &&\n $headCell.index() < $headCell.parent.childCount &&\n inSameTable($anchorCell, $headCell))\n { return new CellSelection($anchorCell, $headCell) }\n else\n { return Selection.near($headCell, 1) }\n};\n\nfunction drawCellSelection(state) {\n if (!(state.selection instanceof CellSelection)) { return null }\n var cells = [];\n state.selection.forEachCell(function (node, pos) {\n cells.push(Decoration.node(pos, pos + node.nodeSize, {class: \"selectedCell\"}));\n });\n return DecorationSet.create(state.doc, cells)\n}\n\nfunction isCellBoundarySelection(ref) {\n var $from = ref.$from;\n var $to = ref.$to;\n\n if ($from.pos == $to.pos || $from.pos < $from.pos - 6) { return false } // Cheap elimination\n var afterFrom = $from.pos, beforeTo = $to.pos, depth = $from.depth;\n for (; depth >= 0; depth--, afterFrom++)\n { if ($from.after(depth + 1) < $from.end(depth)) { break } }\n for (var d = $to.depth; d >= 0; d--, beforeTo--)\n { if ($to.before(d + 1) > $to.start(d)) { break } }\n return afterFrom == beforeTo && /row|table/.test($from.node(depth).type.spec.tableRole)\n}\n\nfunction isTextSelectionAcrossCells(ref) {\n var $from = ref.$from;\n var $to = ref.$to;\n\n var fromCellBoundaryNode;\n var toCellBoundaryNode;\n\n for (var i = $from.depth; i > 0; i--) {\n var node = $from.node(i);\n if (node.type.spec.tableRole === 'cell' || node.type.spec.tableRole === 'header_cell') {\n fromCellBoundaryNode = node;\n break;\n }\n }\n\n for (var i$1 = $to.depth; i$1 > 0; i$1--) {\n var node$1 = $to.node(i$1);\n if (node$1.type.spec.tableRole === 'cell' || node$1.type.spec.tableRole === 'header_cell') {\n toCellBoundaryNode = node$1;\n break;\n }\n }\n\n return fromCellBoundaryNode !== toCellBoundaryNode && $to.parentOffset === 0\n}\n\nfunction normalizeSelection(state, tr, allowTableNodeSelection) {\n var sel = (tr || state).selection, doc = (tr || state).doc, normalize, role;\n if (sel instanceof NodeSelection && (role = sel.node.type.spec.tableRole)) {\n if (role == \"cell\" || role == \"header_cell\") {\n normalize = CellSelection.create(doc, sel.from);\n } else if (role == \"row\") {\n var $cell = doc.resolve(sel.from + 1);\n normalize = CellSelection.rowSelection($cell, $cell);\n } else if (!allowTableNodeSelection) {\n var map = TableMap.get(sel.node), start = sel.from + 1;\n var lastCell = start + map.map[map.width * map.height - 1];\n normalize = CellSelection.create(doc, start + 1, lastCell);\n }\n } else if (sel instanceof TextSelection && isCellBoundarySelection(sel)) {\n normalize = TextSelection.create(doc, sel.from);\n } else if (sel instanceof TextSelection && isTextSelectionAcrossCells(sel)) {\n normalize = TextSelection.create(doc, sel.$from.start(), sel.$from.end());\n }\n if (normalize)\n { (tr || (tr = state.tr)).setSelection(normalize); }\n return tr\n}\n\n// Utilities used for copy/paste handling.\n\n// Utilities to help with copying and pasting table cells\n\n// : (Slice) → ?{width: number, height: number, rows: [Fragment]}\n// Get a rectangular area of cells from a slice, or null if the outer\n// nodes of the slice aren't table cells or rows.\nfunction pastedCells(slice) {\n if (!slice.size) { return null }\n var content = slice.content;\n var openStart = slice.openStart;\n var openEnd = slice.openEnd;\n while (content.childCount == 1 && (openStart > 0 && openEnd > 0 || content.firstChild.type.spec.tableRole == \"table\")) {\n openStart--;\n openEnd--;\n content = content.firstChild.content;\n }\n var first = content.firstChild, role = first.type.spec.tableRole;\n var schema = first.type.schema, rows = [];\n if (role == \"row\") {\n for (var i = 0; i < content.childCount; i++) {\n var cells = content.child(i).content;\n var left = i ? 0 : Math.max(0, openStart - 1);\n var right = i < content.childCount - 1 ? 0 : Math.max(0, openEnd - 1);\n if (left || right) { cells = fitSlice(tableNodeTypes(schema).row, new Slice(cells, left, right)).content; }\n rows.push(cells);\n }\n } else if (role == \"cell\" || role == \"header_cell\") {\n rows.push(openStart || openEnd ? fitSlice(tableNodeTypes(schema).row, new Slice(content, openStart, openEnd)).content : content);\n } else {\n return null\n }\n return ensureRectangular(schema, rows)\n}\n\n// : (Schema, [Fragment]) → {width: number, height: number, rows: [Fragment]}\n// Compute the width and height of a set of cells, and make sure each\n// row has the same number of cells.\nfunction ensureRectangular(schema, rows) {\n var widths = [];\n for (var i = 0; i < rows.length; i++) {\n var row = rows[i];\n for (var j = row.childCount - 1; j >= 0; j--) {\n var ref = row.child(j).attrs;\n var rowspan = ref.rowspan;\n var colspan = ref.colspan;\n for (var r = i; r < i + rowspan; r++)\n { widths[r] = (widths[r] || 0) + colspan; }\n }\n }\n var width = 0;\n for (var r$1 = 0; r$1 < widths.length; r$1++) { width = Math.max(width, widths[r$1]); }\n for (var r$2 = 0; r$2 < widths.length; r$2++) {\n if (r$2 >= rows.length) { rows.push(Fragment.empty); }\n if (widths[r$2] < width) {\n var empty = tableNodeTypes(schema).cell.createAndFill(), cells = [];\n for (var i$1 = widths[r$2]; i$1 < width; i$1++) { cells.push(empty); }\n rows[r$2] = rows[r$2].append(Fragment.from(cells));\n }\n }\n return {height: rows.length, width: width, rows: rows}\n}\n\nfunction fitSlice(nodeType, slice) {\n var node = nodeType.createAndFill();\n var tr = new Transform(node).replace(0, node.content.size, slice);\n return tr.doc\n}\n\n// : ({width: number, height: number, rows: [Fragment]}, number, number) → {width: number, height: number, rows: [Fragment]}\n// Clip or extend (repeat) the given set of cells to cover the given\n// width and height. Will clip rowspan/colspan cells at the edges when\n// they stick out.\nfunction clipCells(ref, newWidth, newHeight) {\n var width = ref.width;\n var height = ref.height;\n var rows = ref.rows;\n\n if (width != newWidth) {\n var added = [], newRows = [];\n for (var row = 0; row < rows.length; row++) {\n var frag = rows[row], cells = [];\n for (var col = added[row] || 0, i = 0; col < newWidth; i++) {\n var cell = frag.child(i % frag.childCount);\n if (col + cell.attrs.colspan > newWidth)\n { cell = cell.type.create(removeColSpan(cell.attrs, cell.attrs.colspan, col + cell.attrs.colspan - newWidth), cell.content); }\n cells.push(cell);\n col += cell.attrs.colspan;\n for (var j = 1; j < cell.attrs.rowspan; j++)\n { added[row + j] = (added[row + j] || 0) + cell.attrs.colspan; }\n }\n newRows.push(Fragment.from(cells));\n }\n rows = newRows;\n width = newWidth;\n }\n\n if (height != newHeight) {\n var newRows$1 = [];\n for (var row$1 = 0, i$1 = 0; row$1 < newHeight; row$1++, i$1++) {\n var cells$1 = [], source = rows[i$1 % height];\n for (var j$1 = 0; j$1 < source.childCount; j$1++) {\n var cell$1 = source.child(j$1);\n if (row$1 + cell$1.attrs.rowspan > newHeight)\n { cell$1 = cell$1.type.create(setAttr(cell$1.attrs, \"rowspan\", Math.max(1, newHeight - cell$1.attrs.rowspan)), cell$1.content); }\n cells$1.push(cell$1);\n }\n newRows$1.push(Fragment.from(cells$1));\n }\n rows = newRows$1;\n height = newHeight;\n }\n\n return {width: width, height: height, rows: rows}\n}\n\n// Make sure a table has at least the given width and height. Return\n// true if something was changed.\nfunction growTable(tr, map, table, start, width, height, mapFrom) {\n var schema = tr.doc.type.schema, types = tableNodeTypes(schema), empty, emptyHead;\n if (width > map.width) {\n for (var row = 0, rowEnd = 0; row < map.height; row++) {\n var rowNode = table.child(row);\n rowEnd += rowNode.nodeSize;\n var cells = [], add = (void 0);\n if (rowNode.lastChild == null || rowNode.lastChild.type == types.cell)\n { add = empty || (empty = types.cell.createAndFill()); }\n else\n { add = emptyHead || (emptyHead = types.header_cell.createAndFill()); }\n for (var i = map.width; i < width; i++) { cells.push(add); }\n tr.insert(tr.mapping.slice(mapFrom).map(rowEnd - 1 + start), cells);\n }\n }\n if (height > map.height) {\n var cells$1 = [];\n for (var i$1 = 0, start$1 = (map.height - 1) * map.width; i$1 < Math.max(map.width, width); i$1++) {\n var header = i$1 >= map.width ? false :\n table.nodeAt(map.map[start$1 + i$1]).type == types.header_cell;\n cells$1.push(header\n ? (emptyHead || (emptyHead = types.header_cell.createAndFill()))\n : (empty || (empty = types.cell.createAndFill())));\n }\n\n var emptyRow = types.row.create(null, Fragment.from(cells$1)), rows = [];\n for (var i$2 = map.height; i$2 < height; i$2++) { rows.push(emptyRow); }\n tr.insert(tr.mapping.slice(mapFrom).map(start + table.nodeSize - 2), rows);\n }\n return !!(empty || emptyHead)\n}\n\n// Make sure the given line (left, top) to (right, top) doesn't cross\n// any rowspan cells by splitting cells that cross it. Return true if\n// something changed.\nfunction isolateHorizontal(tr, map, table, start, left, right, top, mapFrom) {\n if (top == 0 || top == map.height) { return false }\n var found = false;\n for (var col = left; col < right; col++) {\n var index = top * map.width + col, pos = map.map[index];\n if (map.map[index - map.width] == pos) {\n found = true;\n var cell = table.nodeAt(pos);\n var ref = map.findCell(pos);\n var cellTop = ref.top;\n var cellLeft = ref.left;\n tr.setNodeMarkup(tr.mapping.slice(mapFrom).map(pos + start), null, setAttr(cell.attrs, \"rowspan\", top - cellTop));\n tr.insert(tr.mapping.slice(mapFrom).map(map.positionAt(top, cellLeft, table)),\n cell.type.createAndFill(setAttr(cell.attrs, \"rowspan\", (cellTop + cell.attrs.rowspan) - top)));\n col += cell.attrs.colspan - 1;\n }\n }\n return found\n}\n\n// Make sure the given line (left, top) to (left, bottom) doesn't\n// cross any colspan cells by splitting cells that cross it. Return\n// true if something changed.\nfunction isolateVertical(tr, map, table, start, top, bottom, left, mapFrom) {\n if (left == 0 || left == map.width) { return false }\n var found = false;\n for (var row = top; row < bottom; row++) {\n var index = row * map.width + left, pos = map.map[index];\n if (map.map[index - 1] == pos) {\n found = true;\n var cell = table.nodeAt(pos), cellLeft = map.colCount(pos);\n var updatePos = tr.mapping.slice(mapFrom).map(pos + start);\n tr.setNodeMarkup(updatePos, null, removeColSpan(cell.attrs, left - cellLeft, cell.attrs.colspan - (left - cellLeft)));\n tr.insert(updatePos + cell.nodeSize, cell.type.createAndFill(removeColSpan(cell.attrs, 0, left - cellLeft)));\n row += cell.attrs.rowspan - 1;\n }\n }\n return found\n}\n\n// Insert the given set of cells (as returned by `pastedCells`) into a\n// table, at the position pointed at by rect.\nfunction insertCells(state, dispatch, tableStart, rect, cells) {\n var table = tableStart ? state.doc.nodeAt(tableStart - 1) : state.doc, map = TableMap.get(table);\n var top = rect.top;\n var left = rect.left;\n var right = left + cells.width, bottom = top + cells.height;\n var tr = state.tr, mapFrom = 0;\n function recomp() {\n table = tableStart ? tr.doc.nodeAt(tableStart - 1) : tr.doc;\n map = TableMap.get(table);\n mapFrom = tr.mapping.maps.length;\n }\n // Prepare the table to be large enough and not have any cells\n // crossing the boundaries of the rectangle that we want to\n // insert into. If anything about it changes, recompute the table\n // map so that subsequent operations can see the current shape.\n if (growTable(tr, map, table, tableStart, right, bottom, mapFrom)) { recomp(); }\n if (isolateHorizontal(tr, map, table, tableStart, left, right, top, mapFrom)) { recomp(); }\n if (isolateHorizontal(tr, map, table, tableStart, left, right, bottom, mapFrom)) { recomp(); }\n if (isolateVertical(tr, map, table, tableStart, top, bottom, left, mapFrom)) { recomp(); }\n if (isolateVertical(tr, map, table, tableStart, top, bottom, right, mapFrom)) { recomp(); }\n\n for (var row = top; row < bottom; row++) {\n var from = map.positionAt(row, left, table), to = map.positionAt(row, right, table);\n tr.replace(tr.mapping.slice(mapFrom).map(from + tableStart), tr.mapping.slice(mapFrom).map(to + tableStart),\n new Slice(cells.rows[row - top], 0, 0));\n }\n recomp();\n tr.setSelection(new CellSelection(tr.doc.resolve(tableStart + map.positionAt(top, left, table)),\n tr.doc.resolve(tableStart + map.positionAt(bottom - 1, right - 1, table))));\n dispatch(tr);\n}\n\n// This file defines a number of helpers for wiring up user input to\n\nvar handleKeyDown = keydownHandler({\n \"ArrowLeft\": arrow(\"horiz\", -1),\n \"ArrowRight\": arrow(\"horiz\", 1),\n \"ArrowUp\": arrow(\"vert\", -1),\n \"ArrowDown\": arrow(\"vert\", 1),\n\n \"Shift-ArrowLeft\": shiftArrow(\"horiz\", -1),\n \"Shift-ArrowRight\": shiftArrow(\"horiz\", 1),\n \"Shift-ArrowUp\": shiftArrow(\"vert\", -1),\n \"Shift-ArrowDown\": shiftArrow(\"vert\", 1),\n\n \"Backspace\": deleteCellSelection,\n \"Mod-Backspace\": deleteCellSelection,\n \"Delete\": deleteCellSelection,\n \"Mod-Delete\": deleteCellSelection\n});\n\nfunction maybeSetSelection(state, dispatch, selection) {\n if (selection.eq(state.selection)) { return false }\n if (dispatch) { dispatch(state.tr.setSelection(selection).scrollIntoView()); }\n return true\n}\n\nfunction arrow(axis, dir) {\n return function (state, dispatch, view) {\n var sel = state.selection;\n if (sel instanceof CellSelection) {\n return maybeSetSelection(state, dispatch, Selection.near(sel.$headCell, dir))\n }\n if (axis != \"horiz\" && !sel.empty) { return false }\n var end = atEndOfCell(view, axis, dir);\n if (end == null) { return false }\n if (axis == \"horiz\") {\n return maybeSetSelection(state, dispatch, Selection.near(state.doc.resolve(sel.head + dir), dir))\n } else {\n var $cell = state.doc.resolve(end), $next = nextCell($cell, axis, dir), newSel;\n if ($next) { newSel = Selection.near($next, 1); }\n else if (dir < 0) { newSel = Selection.near(state.doc.resolve($cell.before(-1)), -1); }\n else { newSel = Selection.near(state.doc.resolve($cell.after(-1)), 1); }\n return maybeSetSelection(state, dispatch, newSel)\n }\n }\n}\n\nfunction shiftArrow(axis, dir) {\n return function (state, dispatch, view) {\n var sel = state.selection;\n if (!(sel instanceof CellSelection)) {\n var end = atEndOfCell(view, axis, dir);\n if (end == null) { return false }\n sel = new CellSelection(state.doc.resolve(end));\n }\n var $head = nextCell(sel.$headCell, axis, dir);\n if (!$head) { return false }\n return maybeSetSelection(state, dispatch, new CellSelection(sel.$anchorCell, $head))\n }\n}\n\nfunction deleteCellSelection(state, dispatch) {\n var sel = state.selection;\n if (!(sel instanceof CellSelection)) { return false }\n if (dispatch) {\n var tr = state.tr, baseContent = tableNodeTypes(state.schema).cell.createAndFill().content;\n sel.forEachCell(function (cell, pos) {\n if (!cell.content.eq(baseContent))\n { tr.replace(tr.mapping.map(pos + 1), tr.mapping.map(pos + cell.nodeSize - 1),\n new Slice(baseContent, 0, 0)); }\n });\n if (tr.docChanged) { dispatch(tr); }\n }\n return true\n}\n\nfunction handleTripleClick(view, pos) {\n var doc = view.state.doc, $cell = cellAround(doc.resolve(pos));\n if (!$cell) { return false }\n view.dispatch(view.state.tr.setSelection(new CellSelection($cell)));\n return true\n}\n\nfunction handlePaste(view, _, slice) {\n if (!isInTable(view.state)) { return false }\n var cells = pastedCells(slice), sel = view.state.selection;\n if (sel instanceof CellSelection) {\n if (!cells) { cells = {width: 1, height: 1, rows: [Fragment.from(fitSlice(tableNodeTypes(view.state.schema).cell, slice))]}; }\n var table = sel.$anchorCell.node(-1), start = sel.$anchorCell.start(-1);\n var rect = TableMap.get(table).rectBetween(sel.$anchorCell.pos - start, sel.$headCell.pos - start);\n cells = clipCells(cells, rect.right - rect.left, rect.bottom - rect.top);\n insertCells(view.state, view.dispatch, start, rect, cells);\n return true\n } else if (cells) {\n var $cell = selectionCell(view.state), start$1 = $cell.start(-1);\n insertCells(view.state, view.dispatch, start$1, TableMap.get($cell.node(-1)).findCell($cell.pos - start$1), cells);\n return true\n } else {\n return false\n }\n}\n\nfunction handleMouseDown(view, startEvent) {\n if (startEvent.ctrlKey || startEvent.metaKey) { return }\n\n var startDOMCell = domInCell(view, startEvent.target), $anchor;\n if (startEvent.shiftKey && (view.state.selection instanceof CellSelection)) {\n // Adding to an existing cell selection\n setCellSelection(view.state.selection.$anchorCell, startEvent);\n startEvent.preventDefault();\n } else if (startEvent.shiftKey && startDOMCell &&\n ($anchor = cellAround(view.state.selection.$anchor)) != null &&\n cellUnderMouse(view, startEvent).pos != $anchor.pos) {\n // Adding to a selection that starts in another cell (causing a\n // cell selection to be created).\n setCellSelection($anchor, startEvent);\n startEvent.preventDefault();\n } else if (!startDOMCell) {\n // Not in a cell, let the default behavior happen.\n return\n }\n\n // Create and dispatch a cell selection between the given anchor and\n // the position under the mouse.\n function setCellSelection($anchor, event) {\n var $head = cellUnderMouse(view, event);\n var starting = key.getState(view.state) == null;\n if (!$head || !inSameTable($anchor, $head)) {\n if (starting) { $head = $anchor; }\n else { return }\n }\n var selection = new CellSelection($anchor, $head);\n if (starting || !view.state.selection.eq(selection)) {\n var tr = view.state.tr.setSelection(selection);\n if (starting) { tr.setMeta(key, $anchor.pos); }\n view.dispatch(tr);\n }\n }\n\n // Stop listening to mouse motion events.\n function stop() {\n view.root.removeEventListener(\"mouseup\", stop);\n view.root.removeEventListener(\"dragstart\", stop);\n view.root.removeEventListener(\"mousemove\", move);\n if (key.getState(view.state) != null) { view.dispatch(view.state.tr.setMeta(key, -1)); }\n }\n\n function move(event) {\n var anchor = key.getState(view.state), $anchor;\n if (anchor != null) {\n // Continuing an existing cross-cell selection\n $anchor = view.state.doc.resolve(anchor);\n } else if (domInCell(view, event.target) != startDOMCell) {\n // Moving out of the initial cell -- start a new cell selection\n $anchor = cellUnderMouse(view, startEvent);\n if (!$anchor) { return stop() }\n }\n if ($anchor) { setCellSelection($anchor, event); }\n }\n view.root.addEventListener(\"mouseup\", stop);\n view.root.addEventListener(\"dragstart\", stop);\n view.root.addEventListener(\"mousemove\", move);\n}\n\n// Check whether the cursor is at the end of a cell (so that further\n// motion would move out of the cell)\nfunction atEndOfCell(view, axis, dir) {\n if (!(view.state.selection instanceof TextSelection)) { return null }\n var ref = view.state.selection;\n var $head = ref.$head;\n for (var d = $head.depth - 1; d >= 0; d--) {\n var parent = $head.node(d), index = dir < 0 ? $head.index(d) : $head.indexAfter(d);\n if (index != (dir < 0 ? 0 : parent.childCount)) { return null }\n if (parent.type.spec.tableRole == \"cell\" || parent.type.spec.tableRole == \"header_cell\") {\n var cellPos = $head.before(d);\n var dirStr = axis == \"vert\" ? (dir > 0 ? \"down\" : \"up\") : (dir > 0 ? \"right\" : \"left\");\n return view.endOfTextblock(dirStr) ? cellPos : null\n }\n }\n return null\n}\n\nfunction domInCell(view, dom) {\n for (; dom && dom != view.dom; dom = dom.parentNode)\n { if (dom.nodeName == \"TD\" || dom.nodeName == \"TH\") { return dom } }\n}\n\nfunction cellUnderMouse(view, event) {\n var mousePos = view.posAtCoords({left: event.clientX, top: event.clientY});\n if (!mousePos) { return null }\n return mousePos ? cellAround(view.state.doc.resolve(mousePos.pos)) : null\n}\n\n// This file defines helpers for normalizing tables, making sure no\n\nvar fixTablesKey = new PluginKey(\"fix-tables\");\n\n// Helper for iterating through the nodes in a document that changed\n// compared to the given previous document. Useful for avoiding\n// duplicate work on each transaction.\nfunction changedDescendants(old, cur, offset, f) {\n var oldSize = old.childCount, curSize = cur.childCount;\n outer: for (var i = 0, j = 0; i < curSize; i++) {\n var child = cur.child(i);\n for (var scan = j, e = Math.min(oldSize, i + 3); scan < e; scan++) {\n if (old.child(scan) == child) {\n j = scan + 1;\n offset += child.nodeSize;\n continue outer\n }\n }\n f(child, offset);\n if (j < oldSize && old.child(j).sameMarkup(child))\n { changedDescendants(old.child(j), child, offset + 1, f); }\n else\n { child.nodesBetween(0, child.content.size, f, offset + 1); }\n offset += child.nodeSize;\n }\n}\n\n// :: (EditorState, ?EditorState) → ?Transaction\n// Inspect all tables in the given state's document and return a\n// transaction that fixes them, if necessary. If `oldState` was\n// provided, that is assumed to hold a previous, known-good state,\n// which will be used to avoid re-scanning unchanged parts of the\n// document.\nfunction fixTables(state, oldState) {\n var tr, check = function (node, pos) {\n if (node.type.spec.tableRole == \"table\") { tr = fixTable(state, node, pos, tr); }\n };\n if (!oldState) { state.doc.descendants(check); }\n else if (oldState.doc != state.doc) { changedDescendants(oldState.doc, state.doc, 0, check); }\n return tr\n}\n\n// : (EditorState, Node, number, ?Transaction) → ?Transaction\n// Fix the given table, if necessary. Will append to the transaction\n// it was given, if non-null, or create a new one if necessary.\nfunction fixTable(state, table, tablePos, tr) {\n var map = TableMap.get(table);\n if (!map.problems) { return tr }\n if (!tr) { tr = state.tr; }\n\n // Track which rows we must add cells to, so that we can adjust that\n // when fixing collisions.\n var mustAdd = [];\n for (var i = 0; i < map.height; i++) { mustAdd.push(0); }\n for (var i$1 = 0; i$1 < map.problems.length; i$1++) {\n var prob = map.problems[i$1];\n if (prob.type == \"collision\") {\n var cell = table.nodeAt(prob.pos);\n for (var j = 0; j < cell.attrs.rowspan; j++) { mustAdd[prob.row + j] += prob.n; }\n tr.setNodeMarkup(tr.mapping.map(tablePos + 1 + prob.pos), null, removeColSpan(cell.attrs, cell.attrs.colspan - prob.n, prob.n));\n } else if (prob.type == \"missing\") {\n mustAdd[prob.row] += prob.n;\n } else if (prob.type == \"overlong_rowspan\") {\n var cell$1 = table.nodeAt(prob.pos);\n tr.setNodeMarkup(tr.mapping.map(tablePos + 1 + prob.pos), null, setAttr(cell$1.attrs, \"rowspan\", cell$1.attrs.rowspan - prob.n));\n } else if (prob.type == \"colwidth mismatch\") {\n var cell$2 = table.nodeAt(prob.pos);\n tr.setNodeMarkup(tr.mapping.map(tablePos + 1 + prob.pos), null, setAttr(cell$2.attrs, \"colwidth\", prob.colwidth));\n }\n }\n var first, last;\n for (var i$2 = 0; i$2 < mustAdd.length; i$2++) { if (mustAdd[i$2]) {\n if (first == null) { first = i$2; }\n last = i$2;\n } }\n // Add the necessary cells, using a heuristic for whether to add the\n // cells at the start or end of the rows (if it looks like a 'bite'\n // was taken out of the table, add cells at the start of the row\n // after the bite. Otherwise add them at the end).\n for (var i$3 = 0, pos = tablePos + 1; i$3 < map.height; i$3++) {\n var row = table.child(i$3);\n var end = pos + row.nodeSize;\n var add = mustAdd[i$3];\n if (add > 0) {\n var tableNodeType = 'cell';\n if (row.firstChild) {\n tableNodeType = row.firstChild.type.spec.tableRole;\n }\n var nodes = [];\n for (var j$1 = 0; j$1 < add; j$1++)\n { nodes.push(tableNodeTypes(state.schema)[tableNodeType].createAndFill()); }\n var side = (i$3 == 0 || first == i$3 - 1) && last == i$3 ? pos + 1 : end - 1;\n tr.insert(tr.mapping.map(side), nodes);\n }\n pos = end;\n }\n return tr.setMeta(fixTablesKey, { fixTables: true })\n}\n\n// This file defines a number of table-related commands.\n\n// Helper to get the selected rectangle in a table, if any. Adds table\n// map, table node, and table start offset to the object for\n// convenience.\nfunction selectedRect(state) {\n var sel = state.selection, $pos = selectionCell(state);\n var table = $pos.node(-1), tableStart = $pos.start(-1), map = TableMap.get(table);\n var rect;\n if (sel instanceof CellSelection)\n { rect = map.rectBetween(sel.$anchorCell.pos - tableStart, sel.$headCell.pos - tableStart); }\n else\n { rect = map.findCell($pos.pos - tableStart); }\n rect.tableStart = tableStart;\n rect.map = map;\n rect.table = table;\n return rect\n}\n\n// Add a column at the given position in a table.\nfunction addColumn(tr, ref, col) {\n var map = ref.map;\n var tableStart = ref.tableStart;\n var table = ref.table;\n\n var refColumn = col > 0 ? -1 : 0;\n if (columnIsHeader(map, table, col + refColumn))\n { refColumn = col == 0 || col == map.width ? null : 0; }\n\n for (var row = 0; row < map.height; row++) {\n var index = row * map.width + col;\n // If this position falls inside a col-spanning cell\n if (col > 0 && col < map.width && map.map[index - 1] == map.map[index]) {\n var pos = map.map[index], cell = table.nodeAt(pos);\n tr.setNodeMarkup(tr.mapping.map(tableStart + pos), null,\n addColSpan(cell.attrs, col - map.colCount(pos)));\n // Skip ahead if rowspan > 1\n row += cell.attrs.rowspan - 1;\n } else {\n var type = refColumn == null ? tableNodeTypes(table.type.schema).cell\n : table.nodeAt(map.map[index + refColumn]).type;\n var pos$1 = map.positionAt(row, col, table);\n tr.insert(tr.mapping.map(tableStart + pos$1), type.createAndFill());\n }\n }\n return tr\n}\n\n// :: (EditorState, dispatch: ?(tr: Transaction)) → bool\n// Command to add a column before the column with the selection.\nfunction addColumnBefore(state, dispatch) {\n if (!isInTable(state)) { return false }\n if (dispatch) {\n var rect = selectedRect(state);\n dispatch(addColumn(state.tr, rect, rect.left));\n }\n return true\n}\n\n// :: (EditorState, dispatch: ?(tr: Transaction)) → bool\n// Command to add a column after the column with the selection.\nfunction addColumnAfter(state, dispatch) {\n if (!isInTable(state)) { return false }\n if (dispatch) {\n var rect = selectedRect(state);\n dispatch(addColumn(state.tr, rect, rect.right));\n }\n return true\n}\n\nfunction removeColumn(tr, ref, col) {\n var map = ref.map;\n var table = ref.table;\n var tableStart = ref.tableStart;\n\n var mapStart = tr.mapping.maps.length;\n for (var row = 0; row < map.height;) {\n var index = row * map.width + col, pos = map.map[index], cell = table.nodeAt(pos);\n // If this is part of a col-spanning cell\n if ((col > 0 && map.map[index - 1] == pos) || (col < map.width - 1 && map.map[index + 1] == pos)) {\n tr.setNodeMarkup(tr.mapping.slice(mapStart).map(tableStart + pos), null,\n removeColSpan(cell.attrs, col - map.colCount(pos)));\n } else {\n var start = tr.mapping.slice(mapStart).map(tableStart + pos);\n tr.delete(start, start + cell.nodeSize);\n }\n row += cell.attrs.rowspan;\n }\n}\n\n// :: (EditorState, dispatch: ?(tr: Transaction)) → bool\n// Command function that removes the selected columns from a table.\nfunction deleteColumn(state, dispatch) {\n if (!isInTable(state)) { return false }\n if (dispatch) {\n var rect = selectedRect(state), tr = state.tr;\n if (rect.left == 0 && rect.right == rect.map.width) { return false }\n for (var i = rect.right - 1;; i--) {\n removeColumn(tr, rect, i);\n if (i == rect.left) { break }\n rect.table = rect.tableStart ? tr.doc.nodeAt(rect.tableStart - 1) : tr.doc;\n rect.map = TableMap.get(rect.table);\n }\n dispatch(tr);\n }\n return true\n}\n\nfunction rowIsHeader(map, table, row) {\n var headerCell = tableNodeTypes(table.type.schema).header_cell;\n for (var col = 0; col < map.width; col++)\n { if (table.nodeAt(map.map[col + row * map.width]).type != headerCell)\n { return false } }\n return true\n}\n\nfunction addRow(tr, ref, row) {\n var map = ref.map;\n var tableStart = ref.tableStart;\n var table = ref.table;\n\n var rowPos = tableStart;\n for (var i = 0; i < row; i++) { rowPos += table.child(i).nodeSize; }\n var cells = [], refRow = row > 0 ? -1 : 0;\n if (rowIsHeader(map, table, row + refRow))\n { refRow = row == 0 || row == map.height ? null : 0; }\n for (var col = 0, index = map.width * row; col < map.width; col++, index++) {\n // Covered by a rowspan cell\n if (row > 0 && row < map.height && map.map[index] == map.map[index - map.width]) {\n var pos = map.map[index], attrs = table.nodeAt(pos).attrs;\n tr.setNodeMarkup(tableStart + pos, null, setAttr(attrs, \"rowspan\", attrs.rowspan + 1));\n col += attrs.colspan - 1;\n } else {\n var type = refRow == null ? tableNodeTypes(table.type.schema).cell\n : table.nodeAt(map.map[index + refRow * map.width]).type;\n cells.push(type.createAndFill());\n }\n }\n tr.insert(rowPos, tableNodeTypes(table.type.schema).row.create(null, cells));\n return tr\n}\n\n// :: (EditorState, dispatch: ?(tr: Transaction)) → bool\n// Add a table row before the selection.\nfunction addRowBefore(state, dispatch) {\n if (!isInTable(state)) { return false }\n if (dispatch) {\n var rect = selectedRect(state);\n dispatch(addRow(state.tr, rect, rect.top));\n }\n return true\n}\n\n// :: (EditorState, dispatch: ?(tr: Transaction)) → bool\n// Add a table row after the selection.\nfunction addRowAfter(state, dispatch) {\n if (!isInTable(state)) { return false }\n if (dispatch) {\n var rect = selectedRect(state);\n dispatch(addRow(state.tr, rect, rect.bottom));\n }\n return true\n}\n\nfunction removeRow(tr, ref, row) {\n var map = ref.map;\n var table = ref.table;\n var tableStart = ref.tableStart;\n\n var rowPos = 0;\n for (var i = 0; i < row; i++) { rowPos += table.child(i).nodeSize; }\n var nextRow = rowPos + table.child(row).nodeSize;\n\n var mapFrom = tr.mapping.maps.length;\n tr.delete(rowPos + tableStart, nextRow + tableStart);\n\n for (var col = 0, index = row * map.width; col < map.width; col++, index++) {\n var pos = map.map[index];\n if (row > 0 && pos == map.map[index - map.width]) {\n // If this cell starts in the row above, simply reduce its rowspan\n var attrs = table.nodeAt(pos).attrs;\n tr.setNodeMarkup(tr.mapping.slice(mapFrom).map(pos + tableStart), null, setAttr(attrs, \"rowspan\", attrs.rowspan - 1));\n col += attrs.colspan - 1;\n } else if (row < map.width && pos == map.map[index + map.width]) {\n // Else, if it continues in the row below, it has to be moved down\n var cell = table.nodeAt(pos);\n var copy = cell.type.create(setAttr(cell.attrs, \"rowspan\", cell.attrs.rowspan - 1), cell.content);\n var newPos = map.positionAt(row + 1, col, table);\n tr.insert(tr.mapping.slice(mapFrom).map(tableStart + newPos), copy);\n col += cell.attrs.colspan - 1;\n }\n }\n}\n\n// :: (EditorState, dispatch: ?(tr: Transaction)) → bool\n// Remove the selected rows from a table.\nfunction deleteRow(state, dispatch) {\n if (!isInTable(state)) { return false }\n if (dispatch) {\n var rect = selectedRect(state), tr = state.tr;\n if (rect.top == 0 && rect.bottom == rect.map.height) { return false }\n for (var i = rect.bottom - 1;; i--) {\n removeRow(tr, rect, i);\n if (i == rect.top) { break }\n rect.table = rect.tableStart ? tr.doc.nodeAt(rect.tableStart - 1) : tr.doc;\n rect.map = TableMap.get(rect.table);\n }\n dispatch(tr);\n }\n return true\n}\n\nfunction isEmpty(cell) {\n var c = cell.content;\n return c.childCount == 1 && c.firstChild.isTextblock && c.firstChild.childCount == 0\n}\n\nfunction cellsOverlapRectangle(ref, rect) {\n var width = ref.width;\n var height = ref.height;\n var map = ref.map;\n\n var indexTop = rect.top * width + rect.left, indexLeft = indexTop;\n var indexBottom = (rect.bottom - 1) * width + rect.left, indexRight = indexTop + (rect.right - rect.left - 1);\n for (var i = rect.top; i < rect.bottom; i++) {\n if (rect.left > 0 && map[indexLeft] == map[indexLeft - 1] ||\n rect.right < width && map[indexRight] == map[indexRight + 1]) { return true }\n indexLeft += width; indexRight += width;\n }\n for (var i$1 = rect.left; i$1 < rect.right; i$1++) {\n if (rect.top > 0 && map[indexTop] == map[indexTop - width] ||\n rect.bottom < height && map[indexBottom] == map[indexBottom + width]) { return true }\n indexTop++; indexBottom++;\n }\n return false\n}\n\n// :: (EditorState, dispatch: ?(tr: Transaction)) → bool\n// Merge the selected cells into a single cell. Only available when\n// the selected cells' outline forms a rectangle.\nfunction mergeCells(state, dispatch) {\n var sel = state.selection;\n if (!(sel instanceof CellSelection) || sel.$anchorCell.pos == sel.$headCell.pos) { return false }\n var rect = selectedRect(state);\n var map = rect.map;\n if (cellsOverlapRectangle(map, rect)) { return false }\n if (dispatch) {\n var tr = state.tr, seen = {}, content = Fragment.empty, mergedPos, mergedCell;\n for (var row = rect.top; row < rect.bottom; row++) {\n for (var col = rect.left; col < rect.right; col++) {\n var cellPos = map.map[row * map.width + col], cell = rect.table.nodeAt(cellPos);\n if (seen[cellPos]) { continue }\n seen[cellPos] = true;\n if (mergedPos == null) {\n mergedPos = cellPos;\n mergedCell = cell;\n } else {\n if (!isEmpty(cell)) { content = content.append(cell.content); }\n var mapped = tr.mapping.map(cellPos + rect.tableStart);\n tr.delete(mapped, mapped + cell.nodeSize);\n }\n }\n }\n tr.setNodeMarkup(mergedPos + rect.tableStart, null,\n setAttr(addColSpan(mergedCell.attrs, mergedCell.attrs.colspan, (rect.right - rect.left) - mergedCell.attrs.colspan),\n \"rowspan\", rect.bottom - rect.top));\n if (content.size) {\n var end = mergedPos + 1 + mergedCell.content.size;\n var start = isEmpty(mergedCell) ? mergedPos + 1 : end;\n tr.replaceWith(start + rect.tableStart, end + rect.tableStart, content);\n }\n tr.setSelection(new CellSelection(tr.doc.resolve(mergedPos + rect.tableStart)));\n dispatch(tr);\n }\n return true\n}\n// :: (EditorState, dispatch: ?(tr: Transaction)) → bool\n// Split a selected cell, whose rowpan or colspan is greater than one,\n// into smaller cells. Use the first cell type for the new cells.\nfunction splitCell(state, dispatch) {\n var nodeTypes = tableNodeTypes(state.schema);\n return splitCellWithType(function (ref) {\n var node = ref.node;\n\n return nodeTypes[node.type.spec.tableRole]\n })(state, dispatch)\n}\n\n// :: (getCellType: ({ row: number, col: number, node: Node}) → NodeType) → (EditorState, dispatch: ?(tr: Transaction)) → bool\n// Split a selected cell, whose rowpan or colspan is greater than one,\n// into smaller cells with the cell type (th, td) returned by getType function.\nfunction splitCellWithType(getCellType) {\n return function (state, dispatch) {\n var sel = state.selection;\n var cellNode, cellPos;\n if (!(sel instanceof CellSelection)) {\n cellNode = cellWrapping(sel.$from);\n if (!cellNode) { return false }\n cellPos = cellAround(sel.$from).pos;\n } else {\n if (sel.$anchorCell.pos != sel.$headCell.pos) { return false }\n cellNode = sel.$anchorCell.nodeAfter;\n cellPos = sel.$anchorCell.pos;\n }\n if (cellNode.attrs.colspan == 1 && cellNode.attrs.rowspan == 1) {return false}\n if (dispatch) {\n var baseAttrs = cellNode.attrs, attrs = [], colwidth = baseAttrs.colwidth;\n if (baseAttrs.rowspan > 1) { baseAttrs = setAttr(baseAttrs, \"rowspan\", 1); }\n if (baseAttrs.colspan > 1) { baseAttrs = setAttr(baseAttrs, \"colspan\", 1); }\n var rect = selectedRect(state), tr = state.tr;\n for (var i = 0; i < rect.right - rect.left; i++)\n { attrs.push(colwidth ? setAttr(baseAttrs, \"colwidth\", colwidth && colwidth[i] ? [colwidth[i]] : null) : baseAttrs); }\n var lastCell;\n for (var row = rect.top; row < rect.bottom; row++) {\n var pos = rect.map.positionAt(row, rect.left, rect.table);\n if (row == rect.top) { pos += cellNode.nodeSize; }\n for (var col = rect.left, i$1 = 0; col < rect.right; col++, i$1++) {\n if (col == rect.left && row == rect.top) { continue }\n tr.insert(lastCell = tr.mapping.map(pos + rect.tableStart, 1), getCellType({ node: cellNode, row: row, col: col}).createAndFill(attrs[i$1]));\n }\n }\n tr.setNodeMarkup(cellPos, getCellType({ node: cellNode, row: rect.top, col: rect.left}), attrs[0]);\n if (sel instanceof CellSelection)\n { tr.setSelection(new CellSelection(tr.doc.resolve(sel.$anchorCell.pos),\n lastCell && tr.doc.resolve(lastCell))); }\n dispatch(tr);\n }\n return true\n }\n}\n\n// :: (string, any) → (EditorState, dispatch: ?(tr: Transaction)) → bool\n// Returns a command that sets the given attribute to the given value,\n// and is only available when the currently selected cell doesn't\n// already have that attribute set to that value.\nfunction setCellAttr(name, value) {\n return function(state, dispatch) {\n if (!isInTable(state)) { return false }\n var $cell = selectionCell(state);\n if ($cell.nodeAfter.attrs[name] === value) { return false }\n if (dispatch) {\n var tr = state.tr;\n if (state.selection instanceof CellSelection)\n { state.selection.forEachCell(function (node, pos) {\n if (node.attrs[name] !== value)\n { tr.setNodeMarkup(pos, null, setAttr(node.attrs, name, value)); }\n }); }\n else\n { tr.setNodeMarkup($cell.pos, null, setAttr($cell.nodeAfter.attrs, name, value)); }\n dispatch(tr);\n }\n return true\n }\n}\n\nfunction deprecated_toggleHeader(type) {\n return function(state, dispatch) {\n if (!isInTable(state)) { return false }\n if (dispatch) {\n var types = tableNodeTypes(state.schema);\n var rect = selectedRect(state), tr = state.tr;\n var cells = rect.map.cellsInRect(type == \"column\" ? new Rect(rect.left, 0, rect.right, rect.map.height) :\n type == \"row\" ? new Rect(0, rect.top, rect.map.width, rect.bottom) : rect);\n var nodes = cells.map(function (pos) { return rect.table.nodeAt(pos); });\n for (var i = 0; i < cells.length; i++) // Remove headers, if any\n { if (nodes[i].type == types.header_cell)\n { tr.setNodeMarkup(rect.tableStart + cells[i], types.cell, nodes[i].attrs); } }\n if (tr.steps.length == 0) { for (var i$1 = 0; i$1 < cells.length; i$1++) // No headers removed, add instead\n { tr.setNodeMarkup(rect.tableStart + cells[i$1], types.header_cell, nodes[i$1].attrs); } }\n dispatch(tr);\n }\n return true\n }\n}\n\nfunction isHeaderEnabledByType(type, rect, types) {\n // Get cell positions for first row or first column\n var cellPositions = rect.map.cellsInRect({\n left: 0,\n top: 0,\n right: type == \"row\" ? rect.map.width : 1,\n bottom: type == \"column\" ? rect.map.height : 1,\n });\n\n for (var i = 0; i < cellPositions.length; i++) {\n var cell = rect.table.nodeAt(cellPositions[i]);\n if (cell && cell.type !== types.header_cell) {\n return false\n }\n }\n\n return true\n}\n\n// :: (string, ?{ useDeprecatedLogic: bool }) → (EditorState, dispatch: ?(tr: Transaction)) → bool\n// Toggles between row/column header and normal cells (Only applies to first row/column).\n// For deprecated behavior pass `useDeprecatedLogic` in options with true.\nfunction toggleHeader(type, options) {\n options = options || { useDeprecatedLogic: false };\n\n if (options.useDeprecatedLogic)\n { return deprecated_toggleHeader(type) }\n\n return function(state, dispatch) {\n if (!isInTable(state)) { return false }\n if (dispatch) {\n var types = tableNodeTypes(state.schema);\n var rect = selectedRect(state), tr = state.tr;\n\n var isHeaderRowEnabled = isHeaderEnabledByType(\"row\", rect, types);\n var isHeaderColumnEnabled = isHeaderEnabledByType(\"column\", rect, types);\n\n var isHeaderEnabled = type === \"column\" ? isHeaderRowEnabled :\n type === \"row\" ? isHeaderColumnEnabled : false;\n\n var selectionStartsAt = isHeaderEnabled ? 1 : 0;\n\n var cellsRect = type == \"column\" ? new Rect(0, selectionStartsAt, 1, rect.map.height) :\n type == \"row\" ? new Rect(selectionStartsAt, 0, rect.map.width, 1) : rect;\n\n var newType = type == \"column\" ? isHeaderColumnEnabled ? types.cell : types.header_cell :\n type == \"row\" ? isHeaderRowEnabled ? types.cell : types.header_cell : types.cell;\n\n rect.map.cellsInRect(cellsRect).forEach(function (relativeCellPos) {\n var cellPos = relativeCellPos + rect.tableStart;\n var cell = tr.doc.nodeAt(cellPos);\n\n if (cell) {\n tr.setNodeMarkup(cellPos, newType, cell.attrs);\n }\n });\n\n dispatch(tr);\n }\n return true\n }\n}\n\n// :: (EditorState, dispatch: ?(tr: Transaction)) → bool\n// Toggles whether the selected row contains header cells.\nvar toggleHeaderRow = toggleHeader(\"row\", { useDeprecatedLogic: true });\n\n// :: (EditorState, dispatch: ?(tr: Transaction)) → bool\n// Toggles whether the selected column contains header cells.\nvar toggleHeaderColumn = toggleHeader(\"column\", { useDeprecatedLogic: true });\n\n// :: (EditorState, dispatch: ?(tr: Transaction)) → bool\n// Toggles whether the selected cells are header cells.\nvar toggleHeaderCell = toggleHeader(\"cell\", { useDeprecatedLogic: true });\n\nfunction findNextCell($cell, dir) {\n if (dir < 0) {\n var before = $cell.nodeBefore;\n if (before) { return $cell.pos - before.nodeSize }\n for (var row = $cell.index(-1) - 1, rowEnd = $cell.before(); row >= 0; row--) {\n var rowNode = $cell.node(-1).child(row);\n if (rowNode.childCount) { return rowEnd - 1 - rowNode.lastChild.nodeSize }\n rowEnd -= rowNode.nodeSize;\n }\n } else {\n if ($cell.index() < $cell.parent.childCount - 1) { return $cell.pos + $cell.nodeAfter.nodeSize }\n var table = $cell.node(-1);\n for (var row$1 = $cell.indexAfter(-1), rowStart = $cell.after(); row$1 < table.childCount; row$1++) {\n var rowNode$1 = table.child(row$1);\n if (rowNode$1.childCount) { return rowStart + 1 }\n rowStart += rowNode$1.nodeSize;\n }\n }\n}\n\n// :: (number) → (EditorState, dispatch: ?(tr: Transaction)) → bool\n// Returns a command for selecting the next (direction=1) or previous\n// (direction=-1) cell in a table.\nfunction goToNextCell(direction) {\n return function(state, dispatch) {\n if (!isInTable(state)) { return false }\n var cell = findNextCell(selectionCell(state), direction);\n if (cell == null) { return }\n if (dispatch) {\n var $cell = state.doc.resolve(cell);\n dispatch(state.tr.setSelection(TextSelection.between($cell, moveCellForward($cell))).scrollIntoView());\n }\n return true\n }\n}\n\n// :: (EditorState, ?(tr: Transaction)) → bool\n// Deletes the table around the selection, if any.\nfunction deleteTable(state, dispatch) {\n var $pos = state.selection.$anchor;\n for (var d = $pos.depth; d > 0; d--) {\n var node = $pos.node(d);\n if (node.type.spec.tableRole == \"table\") {\n if (dispatch) { dispatch(state.tr.delete($pos.before(d), $pos.after(d)).scrollIntoView()); }\n return true\n }\n }\n return false\n}\n\nvar TableView = function TableView(node, cellMinWidth) {\n this.node = node;\n this.cellMinWidth = cellMinWidth;\n this.dom = document.createElement(\"div\");\n this.dom.className = \"tableWrapper\";\n this.table = this.dom.appendChild(document.createElement(\"table\"));\n this.colgroup = this.table.appendChild(document.createElement(\"colgroup\"));\n updateColumns(node, this.colgroup, this.table, cellMinWidth);\n this.contentDOM = this.table.appendChild(document.createElement(\"tbody\"));\n};\n\nTableView.prototype.update = function update (node) {\n if (node.type != this.node.type) { return false }\n this.node = node;\n updateColumns(node, this.colgroup, this.table, this.cellMinWidth);\n return true\n};\n\nTableView.prototype.ignoreMutation = function ignoreMutation (record) {\n return record.type == \"attributes\" && (record.target == this.table || this.colgroup.contains(record.target))\n};\n\nfunction updateColumns(node, colgroup, table, cellMinWidth, overrideCol, overrideValue) {\n var totalWidth = 0, fixedWidth = true;\n var nextDOM = colgroup.firstChild, row = node.firstChild;\n for (var i = 0, col = 0; i < row.childCount; i++) {\n var ref = row.child(i).attrs;\n var colspan = ref.colspan;\n var colwidth = ref.colwidth;\n for (var j = 0; j < colspan; j++, col++) {\n var hasWidth = overrideCol == col ? overrideValue : colwidth && colwidth[j];\n var cssWidth = hasWidth ? hasWidth + \"px\" : \"\";\n totalWidth += hasWidth || cellMinWidth;\n if (!hasWidth) { fixedWidth = false; }\n if (!nextDOM) {\n colgroup.appendChild(document.createElement(\"col\")).style.width = cssWidth;\n } else {\n if (nextDOM.style.width != cssWidth) { nextDOM.style.width = cssWidth; }\n nextDOM = nextDOM.nextSibling;\n }\n }\n }\n\n while (nextDOM) {\n var after = nextDOM.nextSibling;\n nextDOM.parentNode.removeChild(nextDOM);\n nextDOM = after;\n }\n\n if (fixedWidth) {\n table.style.width = totalWidth + \"px\";\n table.style.minWidth = \"\";\n } else {\n table.style.width = \"\";\n table.style.minWidth = totalWidth + \"px\";\n }\n}\n\nvar key$1 = new PluginKey(\"tableColumnResizing\");\n\nfunction columnResizing(ref) {\n if ( ref === void 0 ) ref = {};\n var handleWidth = ref.handleWidth; if ( handleWidth === void 0 ) handleWidth = 5;\n var cellMinWidth = ref.cellMinWidth; if ( cellMinWidth === void 0 ) cellMinWidth = 25;\n var View = ref.View; if ( View === void 0 ) View = TableView;\n var lastColumnResizable = ref.lastColumnResizable; if ( lastColumnResizable === void 0 ) lastColumnResizable = true;\n\n var plugin = new Plugin({\n key: key$1,\n state: {\n init: function init(_, state) {\n this.spec.props.nodeViews[tableNodeTypes(state.schema).table.name] =\n function (node, view) { return new View(node, cellMinWidth, view); };\n return new ResizeState(-1, false)\n },\n apply: function apply(tr, prev) {\n return prev.apply(tr)\n }\n },\n props: {\n attributes: function attributes(state) {\n var pluginState = key$1.getState(state);\n return pluginState.activeHandle > -1 ? {class: \"resize-cursor\"} : null\n },\n\n handleDOMEvents: {\n mousemove: function mousemove(view, event) { handleMouseMove(view, event, handleWidth, cellMinWidth, lastColumnResizable); },\n mouseleave: function mouseleave(view) { handleMouseLeave(view); },\n mousedown: function mousedown(view, event) { handleMouseDown$1(view, event, cellMinWidth); }\n },\n\n decorations: function decorations(state) {\n var pluginState = key$1.getState(state);\n if (pluginState.activeHandle > -1) { return handleDecorations(state, pluginState.activeHandle) }\n },\n\n nodeViews: {}\n }\n });\n return plugin\n}\n\nvar ResizeState = function ResizeState(activeHandle, dragging) {\n this.activeHandle = activeHandle;\n this.dragging = dragging;\n};\n\nResizeState.prototype.apply = function apply (tr) {\n var state = this, action = tr.getMeta(key$1);\n if (action && action.setHandle != null)\n { return new ResizeState(action.setHandle, null) }\n if (action && action.setDragging !== undefined)\n { return new ResizeState(state.activeHandle, action.setDragging) }\n if (state.activeHandle > -1 && tr.docChanged) {\n var handle = tr.mapping.map(state.activeHandle, -1);\n if (!pointsAtCell(tr.doc.resolve(handle))) { handle = null; }\n state = new ResizeState(handle, state.dragging);\n }\n return state\n};\n\nfunction handleMouseMove(view, event, handleWidth, cellMinWidth, lastColumnResizable) {\n var pluginState = key$1.getState(view.state);\n\n if (!pluginState.dragging) {\n var target = domCellAround(event.target), cell = -1;\n if (target) {\n var ref = target.getBoundingClientRect();\n var left = ref.left;\n var right = ref.right;\n if (event.clientX - left <= handleWidth)\n { cell = edgeCell(view, event, \"left\"); }\n else if (right - event.clientX <= handleWidth)\n { cell = edgeCell(view, event, \"right\"); }\n }\n\n if (cell != pluginState.activeHandle) {\n if (!lastColumnResizable && cell !== -1) {\n var $cell = view.state.doc.resolve(cell);\n var table = $cell.node(-1), map = TableMap.get(table), start = $cell.start(-1);\n var col = map.colCount($cell.pos - start) + $cell.nodeAfter.attrs.colspan - 1;\n\n if (col == map.width - 1) {\n return\n }\n }\n\n updateHandle(view, cell);\n }\n }\n}\n\nfunction handleMouseLeave(view) {\n var pluginState = key$1.getState(view.state);\n if (pluginState.activeHandle > -1 && !pluginState.dragging) { updateHandle(view, -1); }\n}\n\nfunction handleMouseDown$1(view, event, cellMinWidth) {\n var pluginState = key$1.getState(view.state);\n if (pluginState.activeHandle == -1 || pluginState.dragging) { return false }\n\n var cell = view.state.doc.nodeAt(pluginState.activeHandle);\n var width = currentColWidth(view, pluginState.activeHandle, cell.attrs);\n view.dispatch(view.state.tr.setMeta(key$1, {setDragging: {startX: event.clientX, startWidth: width}}));\n\n function finish(event) {\n window.removeEventListener(\"mouseup\", finish);\n window.removeEventListener(\"mousemove\", move);\n var pluginState = key$1.getState(view.state);\n if (pluginState.dragging) {\n updateColumnWidth(view, pluginState.activeHandle, draggedWidth(pluginState.dragging, event, cellMinWidth));\n view.dispatch(view.state.tr.setMeta(key$1, {setDragging: null}));\n }\n }\n function move(event) {\n if (!event.which) { return finish(event) }\n var pluginState = key$1.getState(view.state);\n var dragged = draggedWidth(pluginState.dragging, event, cellMinWidth);\n displayColumnWidth(view, pluginState.activeHandle, dragged, cellMinWidth);\n }\n\n window.addEventListener(\"mouseup\", finish);\n window.addEventListener(\"mousemove\", move);\n event.preventDefault();\n return true\n}\n\nfunction currentColWidth(view, cellPos, ref) {\n var colspan = ref.colspan;\n var colwidth = ref.colwidth;\n\n var width = colwidth && colwidth[colwidth.length - 1];\n if (width) { return width }\n var dom = view.domAtPos(cellPos);\n var node = dom.node.childNodes[dom.offset];\n var domWidth = node.offsetWidth, parts = colspan;\n if (colwidth) { for (var i = 0; i < colspan; i++) { if (colwidth[i]) {\n domWidth -= colwidth[i];\n parts--;\n } } }\n return domWidth / parts\n}\n\nfunction domCellAround(target) {\n while (target && target.nodeName != \"TD\" && target.nodeName != \"TH\")\n { target = target.classList.contains(\"ProseMirror\") ? null : target.parentNode; }\n return target\n}\n\nfunction edgeCell(view, event, side) {\n var found = view.posAtCoords({left: event.clientX, top: event.clientY});\n if (!found) { return -1 }\n var pos = found.pos;\n var $cell = cellAround(view.state.doc.resolve(pos));\n if (!$cell) { return -1 }\n if (side == \"right\") { return $cell.pos }\n var map = TableMap.get($cell.node(-1)), start = $cell.start(-1);\n var index = map.map.indexOf($cell.pos - start);\n return index % map.width == 0 ? -1 : start + map.map[index - 1]\n}\n\nfunction draggedWidth(dragging, event, cellMinWidth) {\n var offset = event.clientX - dragging.startX;\n return Math.max(cellMinWidth, dragging.startWidth + offset)\n}\n\nfunction updateHandle(view, value) {\n view.dispatch(view.state.tr.setMeta(key$1, {setHandle: value}));\n}\n\nfunction updateColumnWidth(view, cell, width) {\n var $cell = view.state.doc.resolve(cell);\n var table = $cell.node(-1), map = TableMap.get(table), start = $cell.start(-1);\n var col = map.colCount($cell.pos - start) + $cell.nodeAfter.attrs.colspan - 1;\n var tr = view.state.tr;\n for (var row = 0; row < map.height; row++) {\n var mapIndex = row * map.width + col;\n // Rowspanning cell that has already been handled\n if (row && map.map[mapIndex] == map.map[mapIndex - map.width]) { continue }\n var pos = map.map[mapIndex];\n var ref = table.nodeAt(pos);\n var attrs = ref.attrs;\n var index = attrs.colspan == 1 ? 0 : col - map.colCount(pos);\n if (attrs.colwidth && attrs.colwidth[index] == width) { continue }\n var colwidth = attrs.colwidth ? attrs.colwidth.slice() : zeroes(attrs.colspan);\n colwidth[index] = width;\n tr.setNodeMarkup(start + pos, null, setAttr(attrs, \"colwidth\", colwidth));\n }\n if (tr.docChanged) { view.dispatch(tr); }\n}\n\nfunction displayColumnWidth(view, cell, width, cellMinWidth) {\n var $cell = view.state.doc.resolve(cell);\n var table = $cell.node(-1), start = $cell.start(-1);\n var col = TableMap.get(table).colCount($cell.pos - start) + $cell.nodeAfter.attrs.colspan - 1;\n var dom = view.domAtPos($cell.start(-1)).node;\n while (dom.nodeName != \"TABLE\") { dom = dom.parentNode; }\n updateColumns(table, dom.firstChild, dom, cellMinWidth, col, width);\n}\n\nfunction zeroes(n) {\n var result = [];\n for (var i = 0; i < n; i++) { result.push(0); }\n return result\n}\n\nfunction handleDecorations(state, cell) {\n var decorations = [];\n var $cell = state.doc.resolve(cell);\n var table = $cell.node(-1), map = TableMap.get(table), start = $cell.start(-1);\n var col = map.colCount($cell.pos - start) + $cell.nodeAfter.attrs.colspan;\n for (var row = 0; row < map.height; row++) {\n var index = col + row * map.width - 1;\n // For positions that are have either a different cell or the end\n // of the table to their right, and either the top of the table or\n // a different cell above them, add a decoration\n if ((col == map.width || map.map[index] != map.map[index + 1]) &&\n (row == 0 || map.map[index - 1] != map.map[index - 1 - map.width])) {\n var cellPos = map.map[index];\n var pos = start + cellPos + table.nodeAt(cellPos).nodeSize - 1;\n var dom = document.createElement(\"div\");\n dom.className = \"column-resize-handle\";\n decorations.push(Decoration.widget(pos, dom));\n }\n }\n return DecorationSet.create(state.doc, decorations)\n}\n\n// This file defines a plugin that handles the drawing of cell\n\n// :: () → Plugin\n//\n// Creates a [plugin](http://prosemirror.net/docs/ref/#state.Plugin)\n// that, when added to an editor, enables cell-selection, handles\n// cell-based copy/paste, and makes sure tables stay well-formed (each\n// row has the same width, and cells don't overlap).\n//\n// You should probably put this plugin near the end of your array of\n// plugins, since it handles mouse and arrow key events in tables\n// rather broadly, and other plugins, like the gap cursor or the\n// column-width dragging plugin, might want to get a turn first to\n// perform more specific behavior.\nfunction tableEditing(ref) {\n if ( ref === void 0 ) ref = {};\n var allowTableNodeSelection = ref.allowTableNodeSelection; if ( allowTableNodeSelection === void 0 ) allowTableNodeSelection = false;\n\n return new Plugin({\n key: key,\n\n // This piece of state is used to remember when a mouse-drag\n // cell-selection is happening, so that it can continue even as\n // transactions (which might move its anchor cell) come in.\n state: {\n init: function init() { return null },\n apply: function apply(tr, cur) {\n var set = tr.getMeta(key);\n if (set != null) { return set == -1 ? null : set }\n if (cur == null || !tr.docChanged) { return cur }\n var ref = tr.mapping.mapResult(cur);\n var deleted = ref.deleted;\n var pos = ref.pos;\n return deleted ? null : pos\n }\n },\n\n props: {\n decorations: drawCellSelection,\n\n handleDOMEvents: {\n mousedown: handleMouseDown\n },\n\n createSelectionBetween: function createSelectionBetween(view) {\n if (key.getState(view.state) != null) { return view.state.selection }\n },\n\n handleTripleClick: handleTripleClick,\n\n handleKeyDown: handleKeyDown,\n\n handlePaste: handlePaste\n },\n\n appendTransaction: function appendTransaction(_, oldState, state) {\n return normalizeSelection(state, fixTables(state, oldState), allowTableNodeSelection)\n }\n })\n}\n\nexport { CellSelection, TableMap, TableView, clipCells as __clipCells, insertCells as __insertCells, pastedCells as __pastedCells, addColSpan, addColumn, addColumnAfter, addColumnBefore, addRow, addRowAfter, addRowBefore, cellAround, colCount, columnIsHeader, columnResizing, key$1 as columnResizingPluginKey, deleteColumn, deleteRow, deleteTable, findCell, fixTables, fixTablesKey, goToNextCell, handlePaste, inSameTable, isInTable, mergeCells, moveCellForward, nextCell, pointsAtCell, removeColSpan, removeColumn, removeRow, rowIsHeader, selectedRect, selectionCell, setAttr, setCellAttr, splitCell, splitCellWithType, tableEditing, key as tableEditingKey, tableNodeTypes, tableNodes, toggleHeader, toggleHeaderCell, toggleHeaderColumn, toggleHeaderRow, updateColumns as updateColumnsOnResize };\n","import { ReplaceError, Slice, Fragment, MarkType } from 'prosemirror-model';\n\n// Mappable:: interface\n// There are several things that positions can be mapped through.\n// Such objects conform to this interface.\n//\n// map:: (pos: number, assoc: ?number) → number\n// Map a position through this object. When given, `assoc` (should\n// be -1 or 1, defaults to 1) determines with which side the\n// position is associated, which determines in which direction to\n// move when a chunk of content is inserted at the mapped position.\n//\n// mapResult:: (pos: number, assoc: ?number) → MapResult\n// Map a position, and return an object containing additional\n// information about the mapping. The result's `deleted` field tells\n// you whether the position was deleted (completely enclosed in a\n// replaced range) during the mapping. When content on only one side\n// is deleted, the position itself is only considered deleted when\n// `assoc` points in the direction of the deleted content.\n\n// Recovery values encode a range index and an offset. They are\n// represented as numbers, because tons of them will be created when\n// mapping, for example, a large number of decorations. The number's\n// lower 16 bits provide the index, the remaining bits the offset.\n//\n// Note: We intentionally don't use bit shift operators to en- and\n// decode these, since those clip to 32 bits, which we might in rare\n// cases want to overflow. A 64-bit float can represent 48-bit\n// integers precisely.\n\nvar lower16 = 0xffff;\nvar factor16 = Math.pow(2, 16);\n\nfunction makeRecover(index, offset) { return index + offset * factor16 }\nfunction recoverIndex(value) { return value & lower16 }\nfunction recoverOffset(value) { return (value - (value & lower16)) / factor16 }\n\n// ::- An object representing a mapped position with extra\n// information.\nvar MapResult = function MapResult(pos, deleted, recover) {\n if ( deleted === void 0 ) deleted = false;\n if ( recover === void 0 ) recover = null;\n\n // :: number The mapped version of the position.\n this.pos = pos;\n // :: bool Tells you whether the position was deleted, that is,\n // whether the step removed its surroundings from the document.\n this.deleted = deleted;\n this.recover = recover;\n};\n\n// :: class extends Mappable\n// A map describing the deletions and insertions made by a step, which\n// can be used to find the correspondence between positions in the\n// pre-step version of a document and the same position in the\n// post-step version.\nvar StepMap = function StepMap(ranges, inverted) {\n if ( inverted === void 0 ) inverted = false;\n\n if (!ranges.length && StepMap.empty) { return StepMap.empty }\n this.ranges = ranges;\n this.inverted = inverted;\n};\n\nStepMap.prototype.recover = function recover (value) {\n var diff = 0, index = recoverIndex(value);\n if (!this.inverted) { for (var i = 0; i < index; i++)\n { diff += this.ranges[i * 3 + 2] - this.ranges[i * 3 + 1]; } }\n return this.ranges[index * 3] + diff + recoverOffset(value)\n};\n\n// : (number, ?number) → MapResult\nStepMap.prototype.mapResult = function mapResult (pos, assoc) {\n if ( assoc === void 0 ) assoc = 1;\n return this._map(pos, assoc, false) };\n\n// : (number, ?number) → number\nStepMap.prototype.map = function map (pos, assoc) {\n if ( assoc === void 0 ) assoc = 1;\n return this._map(pos, assoc, true) };\n\nStepMap.prototype._map = function _map (pos, assoc, simple) {\n var diff = 0, oldIndex = this.inverted ? 2 : 1, newIndex = this.inverted ? 1 : 2;\n for (var i = 0; i < this.ranges.length; i += 3) {\n var start = this.ranges[i] - (this.inverted ? diff : 0);\n if (start > pos) { break }\n var oldSize = this.ranges[i + oldIndex], newSize = this.ranges[i + newIndex], end = start + oldSize;\n if (pos <= end) {\n var side = !oldSize ? assoc : pos == start ? -1 : pos == end ? 1 : assoc;\n var result = start + diff + (side < 0 ? 0 : newSize);\n if (simple) { return result }\n var recover = pos == (assoc < 0 ? start : end) ? null : makeRecover(i / 3, pos - start);\n return new MapResult(result, assoc < 0 ? pos != start : pos != end, recover)\n }\n diff += newSize - oldSize;\n }\n return simple ? pos + diff : new MapResult(pos + diff)\n};\n\nStepMap.prototype.touches = function touches (pos, recover) {\n var diff = 0, index = recoverIndex(recover);\n var oldIndex = this.inverted ? 2 : 1, newIndex = this.inverted ? 1 : 2;\n for (var i = 0; i < this.ranges.length; i += 3) {\n var start = this.ranges[i] - (this.inverted ? diff : 0);\n if (start > pos) { break }\n var oldSize = this.ranges[i + oldIndex], end = start + oldSize;\n if (pos <= end && i == index * 3) { return true }\n diff += this.ranges[i + newIndex] - oldSize;\n }\n return false\n};\n\n// :: ((oldStart: number, oldEnd: number, newStart: number, newEnd: number))\n// Calls the given function on each of the changed ranges included in\n// this map.\nStepMap.prototype.forEach = function forEach (f) {\n var oldIndex = this.inverted ? 2 : 1, newIndex = this.inverted ? 1 : 2;\n for (var i = 0, diff = 0; i < this.ranges.length; i += 3) {\n var start = this.ranges[i], oldStart = start - (this.inverted ? diff : 0), newStart = start + (this.inverted ? 0 : diff);\n var oldSize = this.ranges[i + oldIndex], newSize = this.ranges[i + newIndex];\n f(oldStart, oldStart + oldSize, newStart, newStart + newSize);\n diff += newSize - oldSize;\n }\n};\n\n// :: () → StepMap\n// Create an inverted version of this map. The result can be used to\n// map positions in the post-step document to the pre-step document.\nStepMap.prototype.invert = function invert () {\n return new StepMap(this.ranges, !this.inverted)\n};\n\nStepMap.prototype.toString = function toString () {\n return (this.inverted ? \"-\" : \"\") + JSON.stringify(this.ranges)\n};\n\n// :: (n: number) → StepMap\n// Create a map that moves all positions by offset `n` (which may be\n// negative). This can be useful when applying steps meant for a\n// sub-document to a larger document, or vice-versa.\nStepMap.offset = function offset (n) {\n return n == 0 ? StepMap.empty : new StepMap(n < 0 ? [0, -n, 0] : [0, 0, n])\n};\n\nStepMap.empty = new StepMap([]);\n\n// :: class extends Mappable\n// A mapping represents a pipeline of zero or more [step\n// maps](#transform.StepMap). It has special provisions for losslessly\n// handling mapping positions through a series of steps in which some\n// steps are inverted versions of earlier steps. (This comes up when\n// ‘[rebasing](/docs/guide/#transform.rebasing)’ steps for\n// collaboration or history management.)\nvar Mapping = function Mapping(maps, mirror, from, to) {\n // :: [StepMap]\n // The step maps in this mapping.\n this.maps = maps || [];\n // :: number\n // The starting position in the `maps` array, used when `map` or\n // `mapResult` is called.\n this.from = from || 0;\n // :: number\n // The end position in the `maps` array.\n this.to = to == null ? this.maps.length : to;\n this.mirror = mirror;\n};\n\n// :: (?number, ?number) → Mapping\n// Create a mapping that maps only through a part of this one.\nMapping.prototype.slice = function slice (from, to) {\n if ( from === void 0 ) from = 0;\n if ( to === void 0 ) to = this.maps.length;\n\n return new Mapping(this.maps, this.mirror, from, to)\n};\n\nMapping.prototype.copy = function copy () {\n return new Mapping(this.maps.slice(), this.mirror && this.mirror.slice(), this.from, this.to)\n};\n\n// :: (StepMap, ?number)\n// Add a step map to the end of this mapping. If `mirrors` is\n// given, it should be the index of the step map that is the mirror\n// image of this one.\nMapping.prototype.appendMap = function appendMap (map, mirrors) {\n this.to = this.maps.push(map);\n if (mirrors != null) { this.setMirror(this.maps.length - 1, mirrors); }\n};\n\n// :: (Mapping)\n// Add all the step maps in a given mapping to this one (preserving\n// mirroring information).\nMapping.prototype.appendMapping = function appendMapping (mapping) {\n for (var i = 0, startSize = this.maps.length; i < mapping.maps.length; i++) {\n var mirr = mapping.getMirror(i);\n this.appendMap(mapping.maps[i], mirr != null && mirr < i ? startSize + mirr : null);\n }\n};\n\n// :: (number) → ?number\n// Finds the offset of the step map that mirrors the map at the\n// given offset, in this mapping (as per the second argument to\n// `appendMap`).\nMapping.prototype.getMirror = function getMirror (n) {\n if (this.mirror) { for (var i = 0; i < this.mirror.length; i++)\n { if (this.mirror[i] == n) { return this.mirror[i + (i % 2 ? -1 : 1)] } } }\n};\n\nMapping.prototype.setMirror = function setMirror (n, m) {\n if (!this.mirror) { this.mirror = []; }\n this.mirror.push(n, m);\n};\n\n// :: (Mapping)\n// Append the inverse of the given mapping to this one.\nMapping.prototype.appendMappingInverted = function appendMappingInverted (mapping) {\n for (var i = mapping.maps.length - 1, totalSize = this.maps.length + mapping.maps.length; i >= 0; i--) {\n var mirr = mapping.getMirror(i);\n this.appendMap(mapping.maps[i].invert(), mirr != null && mirr > i ? totalSize - mirr - 1 : null);\n }\n};\n\n// :: () → Mapping\n// Create an inverted version of this mapping.\nMapping.prototype.invert = function invert () {\n var inverse = new Mapping;\n inverse.appendMappingInverted(this);\n return inverse\n};\n\n// : (number, ?number) → number\n// Map a position through this mapping.\nMapping.prototype.map = function map (pos, assoc) {\n if ( assoc === void 0 ) assoc = 1;\n\n if (this.mirror) { return this._map(pos, assoc, true) }\n for (var i = this.from; i < this.to; i++)\n { pos = this.maps[i].map(pos, assoc); }\n return pos\n};\n\n// : (number, ?number) → MapResult\n// Map a position through this mapping, returning a mapping\n// result.\nMapping.prototype.mapResult = function mapResult (pos, assoc) {\n if ( assoc === void 0 ) assoc = 1;\n return this._map(pos, assoc, false) };\n\nMapping.prototype._map = function _map (pos, assoc, simple) {\n var deleted = false;\n\n for (var i = this.from; i < this.to; i++) {\n var map = this.maps[i], result = map.mapResult(pos, assoc);\n if (result.recover != null) {\n var corr = this.getMirror(i);\n if (corr != null && corr > i && corr < this.to) {\n i = corr;\n pos = this.maps[corr].recover(result.recover);\n continue\n }\n }\n\n if (result.deleted) { deleted = true; }\n pos = result.pos;\n }\n\n return simple ? pos : new MapResult(pos, deleted)\n};\n\nfunction TransformError(message) {\n var err = Error.call(this, message);\n err.__proto__ = TransformError.prototype;\n return err\n}\n\nTransformError.prototype = Object.create(Error.prototype);\nTransformError.prototype.constructor = TransformError;\nTransformError.prototype.name = \"TransformError\";\n\n// ::- Abstraction to build up and track an array of\n// [steps](#transform.Step) representing a document transformation.\n//\n// Most transforming methods return the `Transform` object itself, so\n// that they can be chained.\nvar Transform = function Transform(doc) {\n // :: Node\n // The current document (the result of applying the steps in the\n // transform).\n this.doc = doc;\n // :: [Step]\n // The steps in this transform.\n this.steps = [];\n // :: [Node]\n // The documents before each of the steps.\n this.docs = [];\n // :: Mapping\n // A mapping with the maps for each of the steps in this transform.\n this.mapping = new Mapping;\n};\n\nvar prototypeAccessors = { before: { configurable: true },docChanged: { configurable: true } };\n\n// :: Node The starting document.\nprototypeAccessors.before.get = function () { return this.docs.length ? this.docs[0] : this.doc };\n\n// :: (step: Step) → this\n// Apply a new step in this transform, saving the result. Throws an\n// error when the step fails.\nTransform.prototype.step = function step (object) {\n var result = this.maybeStep(object);\n if (result.failed) { throw new TransformError(result.failed) }\n return this\n};\n\n// :: (Step) → StepResult\n// Try to apply a step in this transformation, ignoring it if it\n// fails. Returns the step result.\nTransform.prototype.maybeStep = function maybeStep (step) {\n var result = step.apply(this.doc);\n if (!result.failed) { this.addStep(step, result.doc); }\n return result\n};\n\n// :: bool\n// True when the document has been changed (when there are any\n// steps).\nprototypeAccessors.docChanged.get = function () {\n return this.steps.length > 0\n};\n\nTransform.prototype.addStep = function addStep (step, doc) {\n this.docs.push(this.doc);\n this.steps.push(step);\n this.mapping.appendMap(step.getMap());\n this.doc = doc;\n};\n\nObject.defineProperties( Transform.prototype, prototypeAccessors );\n\nfunction mustOverride() { throw new Error(\"Override me\") }\n\nvar stepsByID = Object.create(null);\n\n// ::- A step object represents an atomic change. It generally applies\n// only to the document it was created for, since the positions\n// stored in it will only make sense for that document.\n//\n// New steps are defined by creating classes that extend `Step`,\n// overriding the `apply`, `invert`, `map`, `getMap` and `fromJSON`\n// methods, and registering your class with a unique\n// JSON-serialization identifier using\n// [`Step.jsonID`](#transform.Step^jsonID).\nvar Step = function Step () {};\n\nStep.prototype.apply = function apply (_doc) { return mustOverride() };\n\n// :: () → StepMap\n// Get the step map that represents the changes made by this step,\n// and which can be used to transform between positions in the old\n// and the new document.\nStep.prototype.getMap = function getMap () { return StepMap.empty };\n\n// :: (doc: Node) → Step\n// Create an inverted version of this step. Needs the document as it\n// was before the step as argument.\nStep.prototype.invert = function invert (_doc) { return mustOverride() };\n\n// :: (mapping: Mappable) → ?Step\n// Map this step through a mappable thing, returning either a\n// version of that step with its positions adjusted, or `null` if\n// the step was entirely deleted by the mapping.\nStep.prototype.map = function map (_mapping) { return mustOverride() };\n\n// :: (other: Step) → ?Step\n// Try to merge this step with another one, to be applied directly\n// after it. Returns the merged step when possible, null if the\n// steps can't be merged.\nStep.prototype.merge = function merge (_other) { return null };\n\n// :: () → Object\n// Create a JSON-serializeable representation of this step. When\n// defining this for a custom subclass, make sure the result object\n// includes the step type's [JSON id](#transform.Step^jsonID) under\n// the `stepType` property.\nStep.prototype.toJSON = function toJSON () { return mustOverride() };\n\n// :: (Schema, Object) → Step\n// Deserialize a step from its JSON representation. Will call\n// through to the step class' own implementation of this method.\nStep.fromJSON = function fromJSON (schema, json) {\n if (!json || !json.stepType) { throw new RangeError(\"Invalid input for Step.fromJSON\") }\n var type = stepsByID[json.stepType];\n if (!type) { throw new RangeError((\"No step type \" + (json.stepType) + \" defined\")) }\n return type.fromJSON(schema, json)\n};\n\n// :: (string, constructor)\n// To be able to serialize steps to JSON, each step needs a string\n// ID to attach to its JSON representation. Use this method to\n// register an ID for your step classes. Try to pick something\n// that's unlikely to clash with steps from other modules.\nStep.jsonID = function jsonID (id, stepClass) {\n if (id in stepsByID) { throw new RangeError(\"Duplicate use of step JSON ID \" + id) }\n stepsByID[id] = stepClass;\n stepClass.prototype.jsonID = id;\n return stepClass\n};\n\n// ::- The result of [applying](#transform.Step.apply) a step. Contains either a\n// new document or a failure value.\nvar StepResult = function StepResult(doc, failed) {\n // :: ?Node The transformed document.\n this.doc = doc;\n // :: ?string Text providing information about a failed step.\n this.failed = failed;\n};\n\n// :: (Node) → StepResult\n// Create a successful step result.\nStepResult.ok = function ok (doc) { return new StepResult(doc, null) };\n\n// :: (string) → StepResult\n// Create a failed step result.\nStepResult.fail = function fail (message) { return new StepResult(null, message) };\n\n// :: (Node, number, number, Slice) → StepResult\n// Call [`Node.replace`](#model.Node.replace) with the given\n// arguments. Create a successful result if it succeeds, and a\n// failed one if it throws a `ReplaceError`.\nStepResult.fromReplace = function fromReplace (doc, from, to, slice) {\n try {\n return StepResult.ok(doc.replace(from, to, slice))\n } catch (e) {\n if (e instanceof ReplaceError) { return StepResult.fail(e.message) }\n throw e\n }\n};\n\n// ::- Replace a part of the document with a slice of new content.\nvar ReplaceStep = /*@__PURE__*/(function (Step) {\n function ReplaceStep(from, to, slice, structure) {\n Step.call(this);\n // :: number\n // The start position of the replaced range.\n this.from = from;\n // :: number\n // The end position of the replaced range.\n this.to = to;\n // :: Slice\n // The slice to insert.\n this.slice = slice;\n this.structure = !!structure;\n }\n\n if ( Step ) ReplaceStep.__proto__ = Step;\n ReplaceStep.prototype = Object.create( Step && Step.prototype );\n ReplaceStep.prototype.constructor = ReplaceStep;\n\n ReplaceStep.prototype.apply = function apply (doc) {\n if (this.structure && contentBetween(doc, this.from, this.to))\n { return StepResult.fail(\"Structure replace would overwrite content\") }\n return StepResult.fromReplace(doc, this.from, this.to, this.slice)\n };\n\n ReplaceStep.prototype.getMap = function getMap () {\n return new StepMap([this.from, this.to - this.from, this.slice.size])\n };\n\n ReplaceStep.prototype.invert = function invert (doc) {\n return new ReplaceStep(this.from, this.from + this.slice.size, doc.slice(this.from, this.to))\n };\n\n ReplaceStep.prototype.map = function map (mapping) {\n var from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n if (from.deleted && to.deleted) { return null }\n return new ReplaceStep(from.pos, Math.max(from.pos, to.pos), this.slice)\n };\n\n ReplaceStep.prototype.merge = function merge (other) {\n if (!(other instanceof ReplaceStep) || other.structure || this.structure) { return null }\n\n if (this.from + this.slice.size == other.from && !this.slice.openEnd && !other.slice.openStart) {\n var slice = this.slice.size + other.slice.size == 0 ? Slice.empty\n : new Slice(this.slice.content.append(other.slice.content), this.slice.openStart, other.slice.openEnd);\n return new ReplaceStep(this.from, this.to + (other.to - other.from), slice, this.structure)\n } else if (other.to == this.from && !this.slice.openStart && !other.slice.openEnd) {\n var slice$1 = this.slice.size + other.slice.size == 0 ? Slice.empty\n : new Slice(other.slice.content.append(this.slice.content), other.slice.openStart, this.slice.openEnd);\n return new ReplaceStep(other.from, this.to, slice$1, this.structure)\n } else {\n return null\n }\n };\n\n ReplaceStep.prototype.toJSON = function toJSON () {\n var json = {stepType: \"replace\", from: this.from, to: this.to};\n if (this.slice.size) { json.slice = this.slice.toJSON(); }\n if (this.structure) { json.structure = true; }\n return json\n };\n\n ReplaceStep.fromJSON = function fromJSON (schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\")\n { throw new RangeError(\"Invalid input for ReplaceStep.fromJSON\") }\n return new ReplaceStep(json.from, json.to, Slice.fromJSON(schema, json.slice), !!json.structure)\n };\n\n return ReplaceStep;\n}(Step));\n\nStep.jsonID(\"replace\", ReplaceStep);\n\n// ::- Replace a part of the document with a slice of content, but\n// preserve a range of the replaced content by moving it into the\n// slice.\nvar ReplaceAroundStep = /*@__PURE__*/(function (Step) {\n function ReplaceAroundStep(from, to, gapFrom, gapTo, slice, insert, structure) {\n Step.call(this);\n // :: number\n // The start position of the replaced range.\n this.from = from;\n // :: number\n // The end position of the replaced range.\n this.to = to;\n // :: number\n // The start of preserved range.\n this.gapFrom = gapFrom;\n // :: number\n // The end of preserved range.\n this.gapTo = gapTo;\n // :: Slice\n // The slice to insert.\n this.slice = slice;\n // :: number\n // The position in the slice where the preserved range should be\n // inserted.\n this.insert = insert;\n this.structure = !!structure;\n }\n\n if ( Step ) ReplaceAroundStep.__proto__ = Step;\n ReplaceAroundStep.prototype = Object.create( Step && Step.prototype );\n ReplaceAroundStep.prototype.constructor = ReplaceAroundStep;\n\n ReplaceAroundStep.prototype.apply = function apply (doc) {\n if (this.structure && (contentBetween(doc, this.from, this.gapFrom) ||\n contentBetween(doc, this.gapTo, this.to)))\n { return StepResult.fail(\"Structure gap-replace would overwrite content\") }\n\n var gap = doc.slice(this.gapFrom, this.gapTo);\n if (gap.openStart || gap.openEnd)\n { return StepResult.fail(\"Gap is not a flat range\") }\n var inserted = this.slice.insertAt(this.insert, gap.content);\n if (!inserted) { return StepResult.fail(\"Content does not fit in gap\") }\n return StepResult.fromReplace(doc, this.from, this.to, inserted)\n };\n\n ReplaceAroundStep.prototype.getMap = function getMap () {\n return new StepMap([this.from, this.gapFrom - this.from, this.insert,\n this.gapTo, this.to - this.gapTo, this.slice.size - this.insert])\n };\n\n ReplaceAroundStep.prototype.invert = function invert (doc) {\n var gap = this.gapTo - this.gapFrom;\n return new ReplaceAroundStep(this.from, this.from + this.slice.size + gap,\n this.from + this.insert, this.from + this.insert + gap,\n doc.slice(this.from, this.to).removeBetween(this.gapFrom - this.from, this.gapTo - this.from),\n this.gapFrom - this.from, this.structure)\n };\n\n ReplaceAroundStep.prototype.map = function map (mapping) {\n var from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n var gapFrom = mapping.map(this.gapFrom, -1), gapTo = mapping.map(this.gapTo, 1);\n if ((from.deleted && to.deleted) || gapFrom < from.pos || gapTo > to.pos) { return null }\n return new ReplaceAroundStep(from.pos, to.pos, gapFrom, gapTo, this.slice, this.insert, this.structure)\n };\n\n ReplaceAroundStep.prototype.toJSON = function toJSON () {\n var json = {stepType: \"replaceAround\", from: this.from, to: this.to,\n gapFrom: this.gapFrom, gapTo: this.gapTo, insert: this.insert};\n if (this.slice.size) { json.slice = this.slice.toJSON(); }\n if (this.structure) { json.structure = true; }\n return json\n };\n\n ReplaceAroundStep.fromJSON = function fromJSON (schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\" ||\n typeof json.gapFrom != \"number\" || typeof json.gapTo != \"number\" || typeof json.insert != \"number\")\n { throw new RangeError(\"Invalid input for ReplaceAroundStep.fromJSON\") }\n return new ReplaceAroundStep(json.from, json.to, json.gapFrom, json.gapTo,\n Slice.fromJSON(schema, json.slice), json.insert, !!json.structure)\n };\n\n return ReplaceAroundStep;\n}(Step));\n\nStep.jsonID(\"replaceAround\", ReplaceAroundStep);\n\nfunction contentBetween(doc, from, to) {\n var $from = doc.resolve(from), dist = to - from, depth = $from.depth;\n while (dist > 0 && depth > 0 && $from.indexAfter(depth) == $from.node(depth).childCount) {\n depth--;\n dist--;\n }\n if (dist > 0) {\n var next = $from.node(depth).maybeChild($from.indexAfter(depth));\n while (dist > 0) {\n if (!next || next.isLeaf) { return true }\n next = next.firstChild;\n dist--;\n }\n }\n return false\n}\n\nfunction canCut(node, start, end) {\n return (start == 0 || node.canReplace(start, node.childCount)) &&\n (end == node.childCount || node.canReplace(0, end))\n}\n\n// :: (NodeRange) → ?number\n// Try to find a target depth to which the content in the given range\n// can be lifted. Will not go across\n// [isolating](#model.NodeSpec.isolating) parent nodes.\nfunction liftTarget(range) {\n var parent = range.parent;\n var content = parent.content.cutByIndex(range.startIndex, range.endIndex);\n for (var depth = range.depth;; --depth) {\n var node = range.$from.node(depth);\n var index = range.$from.index(depth), endIndex = range.$to.indexAfter(depth);\n if (depth < range.depth && node.canReplace(index, endIndex, content))\n { return depth }\n if (depth == 0 || node.type.spec.isolating || !canCut(node, index, endIndex)) { break }\n }\n}\n\n// :: (NodeRange, number) → this\n// Split the content in the given range off from its parent, if there\n// is sibling content before or after it, and move it up the tree to\n// the depth specified by `target`. You'll probably want to use\n// [`liftTarget`](#transform.liftTarget) to compute `target`, to make\n// sure the lift is valid.\nTransform.prototype.lift = function(range, target) {\n var $from = range.$from;\n var $to = range.$to;\n var depth = range.depth;\n\n var gapStart = $from.before(depth + 1), gapEnd = $to.after(depth + 1);\n var start = gapStart, end = gapEnd;\n\n var before = Fragment.empty, openStart = 0;\n for (var d = depth, splitting = false; d > target; d--)\n { if (splitting || $from.index(d) > 0) {\n splitting = true;\n before = Fragment.from($from.node(d).copy(before));\n openStart++;\n } else {\n start--;\n } }\n var after = Fragment.empty, openEnd = 0;\n for (var d$1 = depth, splitting$1 = false; d$1 > target; d$1--)\n { if (splitting$1 || $to.after(d$1 + 1) < $to.end(d$1)) {\n splitting$1 = true;\n after = Fragment.from($to.node(d$1).copy(after));\n openEnd++;\n } else {\n end++;\n } }\n\n return this.step(new ReplaceAroundStep(start, end, gapStart, gapEnd,\n new Slice(before.append(after), openStart, openEnd),\n before.size - openStart, true))\n};\n\n// :: (NodeRange, NodeType, ?Object, ?NodeRange) → ?[{type: NodeType, attrs: ?Object}]\n// Try to find a valid way to wrap the content in the given range in a\n// node of the given type. May introduce extra nodes around and inside\n// the wrapper node, if necessary. Returns null if no valid wrapping\n// could be found. When `innerRange` is given, that range's content is\n// used as the content to fit into the wrapping, instead of the\n// content of `range`.\nfunction findWrapping(range, nodeType, attrs, innerRange) {\n if ( innerRange === void 0 ) innerRange = range;\n\n var around = findWrappingOutside(range, nodeType);\n var inner = around && findWrappingInside(innerRange, nodeType);\n if (!inner) { return null }\n return around.map(withAttrs).concat({type: nodeType, attrs: attrs}).concat(inner.map(withAttrs))\n}\n\nfunction withAttrs(type) { return {type: type, attrs: null} }\n\nfunction findWrappingOutside(range, type) {\n var parent = range.parent;\n var startIndex = range.startIndex;\n var endIndex = range.endIndex;\n var around = parent.contentMatchAt(startIndex).findWrapping(type);\n if (!around) { return null }\n var outer = around.length ? around[0] : type;\n return parent.canReplaceWith(startIndex, endIndex, outer) ? around : null\n}\n\nfunction findWrappingInside(range, type) {\n var parent = range.parent;\n var startIndex = range.startIndex;\n var endIndex = range.endIndex;\n var inner = parent.child(startIndex);\n var inside = type.contentMatch.findWrapping(inner.type);\n if (!inside) { return null }\n var lastType = inside.length ? inside[inside.length - 1] : type;\n var innerMatch = lastType.contentMatch;\n for (var i = startIndex; innerMatch && i < endIndex; i++)\n { innerMatch = innerMatch.matchType(parent.child(i).type); }\n if (!innerMatch || !innerMatch.validEnd) { return null }\n return inside\n}\n\n// :: (NodeRange, [{type: NodeType, attrs: ?Object}]) → this\n// Wrap the given [range](#model.NodeRange) in the given set of wrappers.\n// The wrappers are assumed to be valid in this position, and should\n// probably be computed with [`findWrapping`](#transform.findWrapping).\nTransform.prototype.wrap = function(range, wrappers) {\n var content = Fragment.empty;\n for (var i = wrappers.length - 1; i >= 0; i--) {\n if (content.size) {\n var match = wrappers[i].type.contentMatch.matchFragment(content);\n if (!match || !match.validEnd)\n { throw new RangeError(\"Wrapper type given to Transform.wrap does not form valid content of its parent wrapper\") }\n }\n content = Fragment.from(wrappers[i].type.create(wrappers[i].attrs, content));\n }\n\n var start = range.start, end = range.end;\n return this.step(new ReplaceAroundStep(start, end, start, end, new Slice(content, 0, 0), wrappers.length, true))\n};\n\n// :: (number, ?number, NodeType, ?Object) → this\n// Set the type of all textblocks (partly) between `from` and `to` to\n// the given node type with the given attributes.\nTransform.prototype.setBlockType = function(from, to, type, attrs) {\n var this$1 = this;\n if ( to === void 0 ) to = from;\n\n if (!type.isTextblock) { throw new RangeError(\"Type given to setBlockType should be a textblock\") }\n var mapFrom = this.steps.length;\n this.doc.nodesBetween(from, to, function (node, pos) {\n if (node.isTextblock && !node.hasMarkup(type, attrs) && canChangeType(this$1.doc, this$1.mapping.slice(mapFrom).map(pos), type)) {\n // Ensure all markup that isn't allowed in the new node type is cleared\n this$1.clearIncompatible(this$1.mapping.slice(mapFrom).map(pos, 1), type);\n var mapping = this$1.mapping.slice(mapFrom);\n var startM = mapping.map(pos, 1), endM = mapping.map(pos + node.nodeSize, 1);\n this$1.step(new ReplaceAroundStep(startM, endM, startM + 1, endM - 1,\n new Slice(Fragment.from(type.create(attrs, null, node.marks)), 0, 0), 1, true));\n return false\n }\n });\n return this\n};\n\nfunction canChangeType(doc, pos, type) {\n var $pos = doc.resolve(pos), index = $pos.index();\n return $pos.parent.canReplaceWith(index, index + 1, type)\n}\n\n// :: (number, ?NodeType, ?Object, ?[Mark]) → this\n// Change the type, attributes, and/or marks of the node at `pos`.\n// When `type` isn't given, the existing node type is preserved,\nTransform.prototype.setNodeMarkup = function(pos, type, attrs, marks) {\n var node = this.doc.nodeAt(pos);\n if (!node) { throw new RangeError(\"No node at given position\") }\n if (!type) { type = node.type; }\n var newNode = type.create(attrs, null, marks || node.marks);\n if (node.isLeaf)\n { return this.replaceWith(pos, pos + node.nodeSize, newNode) }\n\n if (!type.validContent(node.content))\n { throw new RangeError(\"Invalid content for node type \" + type.name) }\n\n return this.step(new ReplaceAroundStep(pos, pos + node.nodeSize, pos + 1, pos + node.nodeSize - 1,\n new Slice(Fragment.from(newNode), 0, 0), 1, true))\n};\n\n// :: (Node, number, number, ?[?{type: NodeType, attrs: ?Object}]) → bool\n// Check whether splitting at the given position is allowed.\nfunction canSplit(doc, pos, depth, typesAfter) {\n if ( depth === void 0 ) depth = 1;\n\n var $pos = doc.resolve(pos), base = $pos.depth - depth;\n var innerType = (typesAfter && typesAfter[typesAfter.length - 1]) || $pos.parent;\n if (base < 0 || $pos.parent.type.spec.isolating ||\n !$pos.parent.canReplace($pos.index(), $pos.parent.childCount) ||\n !innerType.type.validContent($pos.parent.content.cutByIndex($pos.index(), $pos.parent.childCount)))\n { return false }\n for (var d = $pos.depth - 1, i = depth - 2; d > base; d--, i--) {\n var node = $pos.node(d), index$1 = $pos.index(d);\n if (node.type.spec.isolating) { return false }\n var rest = node.content.cutByIndex(index$1, node.childCount);\n var after = (typesAfter && typesAfter[i]) || node;\n if (after != node) { rest = rest.replaceChild(0, after.type.create(after.attrs)); }\n if (!node.canReplace(index$1 + 1, node.childCount) || !after.type.validContent(rest))\n { return false }\n }\n var index = $pos.indexAfter(base);\n var baseType = typesAfter && typesAfter[0];\n return $pos.node(base).canReplaceWith(index, index, baseType ? baseType.type : $pos.node(base + 1).type)\n}\n\n// :: (number, ?number, ?[?{type: NodeType, attrs: ?Object}]) → this\n// Split the node at the given position, and optionally, if `depth` is\n// greater than one, any number of nodes above that. By default, the\n// parts split off will inherit the node type of the original node.\n// This can be changed by passing an array of types and attributes to\n// use after the split.\nTransform.prototype.split = function(pos, depth, typesAfter) {\n if ( depth === void 0 ) depth = 1;\n\n var $pos = this.doc.resolve(pos), before = Fragment.empty, after = Fragment.empty;\n for (var d = $pos.depth, e = $pos.depth - depth, i = depth - 1; d > e; d--, i--) {\n before = Fragment.from($pos.node(d).copy(before));\n var typeAfter = typesAfter && typesAfter[i];\n after = Fragment.from(typeAfter ? typeAfter.type.create(typeAfter.attrs, after) : $pos.node(d).copy(after));\n }\n return this.step(new ReplaceStep(pos, pos, new Slice(before.append(after), depth, depth), true))\n};\n\n// :: (Node, number) → bool\n// Test whether the blocks before and after a given position can be\n// joined.\nfunction canJoin(doc, pos) {\n var $pos = doc.resolve(pos), index = $pos.index();\n return joinable($pos.nodeBefore, $pos.nodeAfter) &&\n $pos.parent.canReplace(index, index + 1)\n}\n\nfunction joinable(a, b) {\n return a && b && !a.isLeaf && a.canAppend(b)\n}\n\n// :: (Node, number, ?number) → ?number\n// Find an ancestor of the given position that can be joined to the\n// block before (or after if `dir` is positive). Returns the joinable\n// point, if any.\nfunction joinPoint(doc, pos, dir) {\n if ( dir === void 0 ) dir = -1;\n\n var $pos = doc.resolve(pos);\n for (var d = $pos.depth;; d--) {\n var before = (void 0), after = (void 0), index = $pos.index(d);\n if (d == $pos.depth) {\n before = $pos.nodeBefore;\n after = $pos.nodeAfter;\n } else if (dir > 0) {\n before = $pos.node(d + 1);\n index++;\n after = $pos.node(d).maybeChild(index);\n } else {\n before = $pos.node(d).maybeChild(index - 1);\n after = $pos.node(d + 1);\n }\n if (before && !before.isTextblock && joinable(before, after) &&\n $pos.node(d).canReplace(index, index + 1)) { return pos }\n if (d == 0) { break }\n pos = dir < 0 ? $pos.before(d) : $pos.after(d);\n }\n}\n\n// :: (number, ?number) → this\n// Join the blocks around the given position. If depth is 2, their\n// last and first siblings are also joined, and so on.\nTransform.prototype.join = function(pos, depth) {\n if ( depth === void 0 ) depth = 1;\n\n var step = new ReplaceStep(pos - depth, pos + depth, Slice.empty, true);\n return this.step(step)\n};\n\n// :: (Node, number, NodeType) → ?number\n// Try to find a point where a node of the given type can be inserted\n// near `pos`, by searching up the node hierarchy when `pos` itself\n// isn't a valid place but is at the start or end of a node. Return\n// null if no position was found.\nfunction insertPoint(doc, pos, nodeType) {\n var $pos = doc.resolve(pos);\n if ($pos.parent.canReplaceWith($pos.index(), $pos.index(), nodeType)) { return pos }\n\n if ($pos.parentOffset == 0)\n { for (var d = $pos.depth - 1; d >= 0; d--) {\n var index = $pos.index(d);\n if ($pos.node(d).canReplaceWith(index, index, nodeType)) { return $pos.before(d + 1) }\n if (index > 0) { return null }\n } }\n if ($pos.parentOffset == $pos.parent.content.size)\n { for (var d$1 = $pos.depth - 1; d$1 >= 0; d$1--) {\n var index$1 = $pos.indexAfter(d$1);\n if ($pos.node(d$1).canReplaceWith(index$1, index$1, nodeType)) { return $pos.after(d$1 + 1) }\n if (index$1 < $pos.node(d$1).childCount) { return null }\n } }\n}\n\n// :: (Node, number, Slice) → ?number\n// Finds a position at or around the given position where the given\n// slice can be inserted. Will look at parent nodes' nearest boundary\n// and try there, even if the original position wasn't directly at the\n// start or end of that node. Returns null when no position was found.\nfunction dropPoint(doc, pos, slice) {\n var $pos = doc.resolve(pos);\n if (!slice.content.size) { return pos }\n var content = slice.content;\n for (var i = 0; i < slice.openStart; i++) { content = content.firstChild.content; }\n for (var pass = 1; pass <= (slice.openStart == 0 && slice.size ? 2 : 1); pass++) {\n for (var d = $pos.depth; d >= 0; d--) {\n var bias = d == $pos.depth ? 0 : $pos.pos <= ($pos.start(d + 1) + $pos.end(d + 1)) / 2 ? -1 : 1;\n var insertPos = $pos.index(d) + (bias > 0 ? 1 : 0);\n var parent = $pos.node(d), fits = false;\n if (pass == 1) {\n fits = parent.canReplace(insertPos, insertPos, content);\n } else {\n var wrapping = parent.contentMatchAt(insertPos).findWrapping(content.firstChild.type);\n fits = wrapping && parent.canReplaceWith(insertPos, insertPos, wrapping[0]);\n }\n if (fits)\n { return bias == 0 ? $pos.pos : bias < 0 ? $pos.before(d + 1) : $pos.after(d + 1) }\n }\n }\n return null\n}\n\nfunction mapFragment(fragment, f, parent) {\n var mapped = [];\n for (var i = 0; i < fragment.childCount; i++) {\n var child = fragment.child(i);\n if (child.content.size) { child = child.copy(mapFragment(child.content, f, child)); }\n if (child.isInline) { child = f(child, parent, i); }\n mapped.push(child);\n }\n return Fragment.fromArray(mapped)\n}\n\n// ::- Add a mark to all inline content between two positions.\nvar AddMarkStep = /*@__PURE__*/(function (Step) {\n function AddMarkStep(from, to, mark) {\n Step.call(this);\n // :: number\n // The start of the marked range.\n this.from = from;\n // :: number\n // The end of the marked range.\n this.to = to;\n // :: Mark\n // The mark to add.\n this.mark = mark;\n }\n\n if ( Step ) AddMarkStep.__proto__ = Step;\n AddMarkStep.prototype = Object.create( Step && Step.prototype );\n AddMarkStep.prototype.constructor = AddMarkStep;\n\n AddMarkStep.prototype.apply = function apply (doc) {\n var this$1 = this;\n\n var oldSlice = doc.slice(this.from, this.to), $from = doc.resolve(this.from);\n var parent = $from.node($from.sharedDepth(this.to));\n var slice = new Slice(mapFragment(oldSlice.content, function (node, parent) {\n if (!node.isAtom || !parent.type.allowsMarkType(this$1.mark.type)) { return node }\n return node.mark(this$1.mark.addToSet(node.marks))\n }, parent), oldSlice.openStart, oldSlice.openEnd);\n return StepResult.fromReplace(doc, this.from, this.to, slice)\n };\n\n AddMarkStep.prototype.invert = function invert () {\n return new RemoveMarkStep(this.from, this.to, this.mark)\n };\n\n AddMarkStep.prototype.map = function map (mapping) {\n var from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n if (from.deleted && to.deleted || from.pos >= to.pos) { return null }\n return new AddMarkStep(from.pos, to.pos, this.mark)\n };\n\n AddMarkStep.prototype.merge = function merge (other) {\n if (other instanceof AddMarkStep &&\n other.mark.eq(this.mark) &&\n this.from <= other.to && this.to >= other.from)\n { return new AddMarkStep(Math.min(this.from, other.from),\n Math.max(this.to, other.to), this.mark) }\n };\n\n AddMarkStep.prototype.toJSON = function toJSON () {\n return {stepType: \"addMark\", mark: this.mark.toJSON(),\n from: this.from, to: this.to}\n };\n\n AddMarkStep.fromJSON = function fromJSON (schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\")\n { throw new RangeError(\"Invalid input for AddMarkStep.fromJSON\") }\n return new AddMarkStep(json.from, json.to, schema.markFromJSON(json.mark))\n };\n\n return AddMarkStep;\n}(Step));\n\nStep.jsonID(\"addMark\", AddMarkStep);\n\n// ::- Remove a mark from all inline content between two positions.\nvar RemoveMarkStep = /*@__PURE__*/(function (Step) {\n function RemoveMarkStep(from, to, mark) {\n Step.call(this);\n // :: number\n // The start of the unmarked range.\n this.from = from;\n // :: number\n // The end of the unmarked range.\n this.to = to;\n // :: Mark\n // The mark to remove.\n this.mark = mark;\n }\n\n if ( Step ) RemoveMarkStep.__proto__ = Step;\n RemoveMarkStep.prototype = Object.create( Step && Step.prototype );\n RemoveMarkStep.prototype.constructor = RemoveMarkStep;\n\n RemoveMarkStep.prototype.apply = function apply (doc) {\n var this$1 = this;\n\n var oldSlice = doc.slice(this.from, this.to);\n var slice = new Slice(mapFragment(oldSlice.content, function (node) {\n return node.mark(this$1.mark.removeFromSet(node.marks))\n }), oldSlice.openStart, oldSlice.openEnd);\n return StepResult.fromReplace(doc, this.from, this.to, slice)\n };\n\n RemoveMarkStep.prototype.invert = function invert () {\n return new AddMarkStep(this.from, this.to, this.mark)\n };\n\n RemoveMarkStep.prototype.map = function map (mapping) {\n var from = mapping.mapResult(this.from, 1), to = mapping.mapResult(this.to, -1);\n if (from.deleted && to.deleted || from.pos >= to.pos) { return null }\n return new RemoveMarkStep(from.pos, to.pos, this.mark)\n };\n\n RemoveMarkStep.prototype.merge = function merge (other) {\n if (other instanceof RemoveMarkStep &&\n other.mark.eq(this.mark) &&\n this.from <= other.to && this.to >= other.from)\n { return new RemoveMarkStep(Math.min(this.from, other.from),\n Math.max(this.to, other.to), this.mark) }\n };\n\n RemoveMarkStep.prototype.toJSON = function toJSON () {\n return {stepType: \"removeMark\", mark: this.mark.toJSON(),\n from: this.from, to: this.to}\n };\n\n RemoveMarkStep.fromJSON = function fromJSON (schema, json) {\n if (typeof json.from != \"number\" || typeof json.to != \"number\")\n { throw new RangeError(\"Invalid input for RemoveMarkStep.fromJSON\") }\n return new RemoveMarkStep(json.from, json.to, schema.markFromJSON(json.mark))\n };\n\n return RemoveMarkStep;\n}(Step));\n\nStep.jsonID(\"removeMark\", RemoveMarkStep);\n\n// :: (number, number, Mark) → this\n// Add the given mark to the inline content between `from` and `to`.\nTransform.prototype.addMark = function(from, to, mark) {\n var this$1 = this;\n\n var removed = [], added = [], removing = null, adding = null;\n this.doc.nodesBetween(from, to, function (node, pos, parent) {\n if (!node.isInline) { return }\n var marks = node.marks;\n if (!mark.isInSet(marks) && parent.type.allowsMarkType(mark.type)) {\n var start = Math.max(pos, from), end = Math.min(pos + node.nodeSize, to);\n var newSet = mark.addToSet(marks);\n\n for (var i = 0; i < marks.length; i++) {\n if (!marks[i].isInSet(newSet)) {\n if (removing && removing.to == start && removing.mark.eq(marks[i]))\n { removing.to = end; }\n else\n { removed.push(removing = new RemoveMarkStep(start, end, marks[i])); }\n }\n }\n\n if (adding && adding.to == start)\n { adding.to = end; }\n else\n { added.push(adding = new AddMarkStep(start, end, mark)); }\n }\n });\n\n removed.forEach(function (s) { return this$1.step(s); });\n added.forEach(function (s) { return this$1.step(s); });\n return this\n};\n\n// :: (number, number, ?union) → this\n// Remove marks from inline nodes between `from` and `to`. When `mark`\n// is a single mark, remove precisely that mark. When it is a mark type,\n// remove all marks of that type. When it is null, remove all marks of\n// any type.\nTransform.prototype.removeMark = function(from, to, mark) {\n var this$1 = this;\n if ( mark === void 0 ) mark = null;\n\n var matched = [], step = 0;\n this.doc.nodesBetween(from, to, function (node, pos) {\n if (!node.isInline) { return }\n step++;\n var toRemove = null;\n if (mark instanceof MarkType) {\n var set = node.marks, found;\n while (found = mark.isInSet(set)) {\n(toRemove || (toRemove = [])).push(found);\n set = found.removeFromSet(set);\n }\n } else if (mark) {\n if (mark.isInSet(node.marks)) { toRemove = [mark]; }\n } else {\n toRemove = node.marks;\n }\n if (toRemove && toRemove.length) {\n var end = Math.min(pos + node.nodeSize, to);\n for (var i = 0; i < toRemove.length; i++) {\n var style = toRemove[i], found$1 = (void 0);\n for (var j = 0; j < matched.length; j++) {\n var m = matched[j];\n if (m.step == step - 1 && style.eq(matched[j].style)) { found$1 = m; }\n }\n if (found$1) {\n found$1.to = end;\n found$1.step = step;\n } else {\n matched.push({style: style, from: Math.max(pos, from), to: end, step: step});\n }\n }\n }\n });\n matched.forEach(function (m) { return this$1.step(new RemoveMarkStep(m.from, m.to, m.style)); });\n return this\n};\n\n// :: (number, NodeType, ?ContentMatch) → this\n// Removes all marks and nodes from the content of the node at `pos`\n// that don't match the given new parent node type. Accepts an\n// optional starting [content match](#model.ContentMatch) as third\n// argument.\nTransform.prototype.clearIncompatible = function(pos, parentType, match) {\n if ( match === void 0 ) match = parentType.contentMatch;\n\n var node = this.doc.nodeAt(pos);\n var delSteps = [], cur = pos + 1;\n for (var i = 0; i < node.childCount; i++) {\n var child = node.child(i), end = cur + child.nodeSize;\n var allowed = match.matchType(child.type, child.attrs);\n if (!allowed) {\n delSteps.push(new ReplaceStep(cur, end, Slice.empty));\n } else {\n match = allowed;\n for (var j = 0; j < child.marks.length; j++) { if (!parentType.allowsMarkType(child.marks[j].type))\n { this.step(new RemoveMarkStep(cur, end, child.marks[j])); } }\n }\n cur = end;\n }\n if (!match.validEnd) {\n var fill = match.fillBefore(Fragment.empty, true);\n this.replace(cur, cur, new Slice(fill, 0, 0));\n }\n for (var i$1 = delSteps.length - 1; i$1 >= 0; i$1--) { this.step(delSteps[i$1]); }\n return this\n};\n\n// :: (Node, number, ?number, ?Slice) → ?Step\n// ‘Fit’ a slice into a given position in the document, producing a\n// [step](#transform.Step) that inserts it. Will return null if\n// there's no meaningful way to insert the slice here, or inserting it\n// would be a no-op (an empty slice over an empty range).\nfunction replaceStep(doc, from, to, slice) {\n if ( to === void 0 ) to = from;\n if ( slice === void 0 ) slice = Slice.empty;\n\n if (from == to && !slice.size) { return null }\n\n var $from = doc.resolve(from), $to = doc.resolve(to);\n // Optimization -- avoid work if it's obvious that it's not needed.\n if (fitsTrivially($from, $to, slice)) { return new ReplaceStep(from, to, slice) }\n return new Fitter($from, $to, slice).fit()\n}\n\n// :: (number, ?number, ?Slice) → this\n// Replace the part of the document between `from` and `to` with the\n// given `slice`.\nTransform.prototype.replace = function(from, to, slice) {\n if ( to === void 0 ) to = from;\n if ( slice === void 0 ) slice = Slice.empty;\n\n var step = replaceStep(this.doc, from, to, slice);\n if (step) { this.step(step); }\n return this\n};\n\n// :: (number, number, union) → this\n// Replace the given range with the given content, which may be a\n// fragment, node, or array of nodes.\nTransform.prototype.replaceWith = function(from, to, content) {\n return this.replace(from, to, new Slice(Fragment.from(content), 0, 0))\n};\n\n// :: (number, number) → this\n// Delete the content between the given positions.\nTransform.prototype.delete = function(from, to) {\n return this.replace(from, to, Slice.empty)\n};\n\n// :: (number, union) → this\n// Insert the given content at the given position.\nTransform.prototype.insert = function(pos, content) {\n return this.replaceWith(pos, pos, content)\n};\n\nfunction fitsTrivially($from, $to, slice) {\n return !slice.openStart && !slice.openEnd && $from.start() == $to.start() &&\n $from.parent.canReplace($from.index(), $to.index(), slice.content)\n}\n\n// Algorithm for 'placing' the elements of a slice into a gap:\n//\n// We consider the content of each node that is open to the left to be\n// independently placeable. I.e. in , when the\n// paragraph on the left is open, \"foo\" can be placed (somewhere on\n// the left side of the replacement gap) independently from p(\"bar\").\n//\n// This class tracks the state of the placement progress in the\n// following properties:\n//\n// - `frontier` holds a stack of `{type, match}` objects that\n// represent the open side of the replacement. It starts at\n// `$from`, then moves forward as content is placed, and is finally\n// reconciled with `$to`.\n//\n// - `unplaced` is a slice that represents the content that hasn't\n// been placed yet.\n//\n// - `placed` is a fragment of placed content. Its open-start value\n// is implicit in `$from`, and its open-end value in `frontier`.\nvar Fitter = function Fitter($from, $to, slice) {\n this.$to = $to;\n this.$from = $from;\n this.unplaced = slice;\n\n this.frontier = [];\n for (var i = 0; i <= $from.depth; i++) {\n var node = $from.node(i);\n this.frontier.push({\n type: node.type,\n match: node.contentMatchAt($from.indexAfter(i))\n });\n }\n\n this.placed = Fragment.empty;\n for (var i$1 = $from.depth; i$1 > 0; i$1--)\n { this.placed = Fragment.from($from.node(i$1).copy(this.placed)); }\n};\n\nvar prototypeAccessors$1 = { depth: { configurable: true } };\n\nprototypeAccessors$1.depth.get = function () { return this.frontier.length - 1 };\n\nFitter.prototype.fit = function fit () {\n // As long as there's unplaced content, try to place some of it.\n // If that fails, either increase the open score of the unplaced\n // slice, or drop nodes from it, and then try again.\n while (this.unplaced.size) {\n var fit = this.findFittable();\n if (fit) { this.placeNodes(fit); }\n else { this.openMore() || this.dropNode(); }\n }\n // When there's inline content directly after the frontier _and_\n // directly after `this.$to`, we must generate a `ReplaceAround`\n // step that pulls that content into the node after the frontier.\n // That means the fitting must be done to the end of the textblock\n // node after `this.$to`, not `this.$to` itself.\n var moveInline = this.mustMoveInline(), placedSize = this.placed.size - this.depth - this.$from.depth;\n var $from = this.$from, $to = this.close(moveInline < 0 ? this.$to : $from.doc.resolve(moveInline));\n if (!$to) { return null }\n\n // If closing to `$to` succeeded, create a step\n var content = this.placed, openStart = $from.depth, openEnd = $to.depth;\n while (openStart && openEnd && content.childCount == 1) { // Normalize by dropping open parent nodes\n content = content.firstChild.content;\n openStart--; openEnd--;\n }\n var slice = new Slice(content, openStart, openEnd);\n if (moveInline > -1)\n { return new ReplaceAroundStep($from.pos, moveInline, this.$to.pos, this.$to.end(), slice, placedSize) }\n if (slice.size || $from.pos != this.$to.pos) // Don't generate no-op steps\n { return new ReplaceStep($from.pos, $to.pos, slice) }\n};\n\n// Find a position on the start spine of `this.unplaced` that has\n// content that can be moved somewhere on the frontier. Returns two\n// depths, one for the slice and one for the frontier.\nFitter.prototype.findFittable = function findFittable () {\n // Only try wrapping nodes (pass 2) after finding a place without\n // wrapping failed.\n for (var pass = 1; pass <= 2; pass++) {\n for (var sliceDepth = this.unplaced.openStart; sliceDepth >= 0; sliceDepth--) {\n var fragment = (void 0), parent = (void 0);\n if (sliceDepth) {\n parent = contentAt(this.unplaced.content, sliceDepth - 1).firstChild;\n fragment = parent.content;\n } else {\n fragment = this.unplaced.content;\n }\n var first = fragment.firstChild;\n for (var frontierDepth = this.depth; frontierDepth >= 0; frontierDepth--) {\n var ref = this.frontier[frontierDepth];\n var type = ref.type;\n var match = ref.match;\n var wrap = (void 0), inject = (void 0);\n // In pass 1, if the next node matches, or there is no next\n // node but the parents look compatible, we've found a\n // place.\n if (pass == 1 && (first ? match.matchType(first.type) || (inject = match.fillBefore(Fragment.from(first), false))\n : type.compatibleContent(parent.type)))\n { return {sliceDepth: sliceDepth, frontierDepth: frontierDepth, parent: parent, inject: inject} }\n // In pass 2, look for a set of wrapping nodes that make\n // `first` fit here.\n else if (pass == 2 && first && (wrap = match.findWrapping(first.type)))\n { return {sliceDepth: sliceDepth, frontierDepth: frontierDepth, parent: parent, wrap: wrap} }\n // Don't continue looking further up if the parent node\n // would fit here.\n if (parent && match.matchType(parent.type)) { break }\n }\n }\n }\n};\n\nFitter.prototype.openMore = function openMore () {\n var ref = this.unplaced;\n var content = ref.content;\n var openStart = ref.openStart;\n var openEnd = ref.openEnd;\n var inner = contentAt(content, openStart);\n if (!inner.childCount || inner.firstChild.isLeaf) { return false }\n this.unplaced = new Slice(content, openStart + 1,\n Math.max(openEnd, inner.size + openStart >= content.size - openEnd ? openStart + 1 : 0));\n return true\n};\n\nFitter.prototype.dropNode = function dropNode () {\n var ref = this.unplaced;\n var content = ref.content;\n var openStart = ref.openStart;\n var openEnd = ref.openEnd;\n var inner = contentAt(content, openStart);\n if (inner.childCount <= 1 && openStart > 0) {\n var openAtEnd = content.size - openStart <= openStart + inner.size;\n this.unplaced = new Slice(dropFromFragment(content, openStart - 1, 1), openStart - 1,\n openAtEnd ? openStart - 1 : openEnd);\n } else {\n this.unplaced = new Slice(dropFromFragment(content, openStart, 1), openStart, openEnd);\n }\n};\n\n// : ({sliceDepth: number, frontierDepth: number, parent: ?Node, wrap: ?[NodeType], inject: ?Fragment})\n// Move content from the unplaced slice at `sliceDepth` to the\n// frontier node at `frontierDepth`. Close that frontier node when\n// applicable.\nFitter.prototype.placeNodes = function placeNodes (ref) {\n var sliceDepth = ref.sliceDepth;\n var frontierDepth = ref.frontierDepth;\n var parent = ref.parent;\n var inject = ref.inject;\n var wrap = ref.wrap;\n\n while (this.depth > frontierDepth) { this.closeFrontierNode(); }\n if (wrap) { for (var i = 0; i < wrap.length; i++) { this.openFrontierNode(wrap[i]); } }\n\n var slice = this.unplaced, fragment = parent ? parent.content : slice.content;\n var openStart = slice.openStart - sliceDepth;\n var taken = 0, add = [];\n var ref$1 = this.frontier[frontierDepth];\n var match = ref$1.match;\n var type = ref$1.type;\n if (inject) {\n for (var i$1 = 0; i$1 < inject.childCount; i$1++) { add.push(inject.child(i$1)); }\n match = match.matchFragment(inject);\n }\n // Computes the amount of (end) open nodes at the end of the\n // fragment. When 0, the parent is open, but no more. When\n // negative, nothing is open.\n var openEndCount = (fragment.size + sliceDepth) - (slice.content.size - slice.openEnd);\n // Scan over the fragment, fitting as many child nodes as\n // possible.\n while (taken < fragment.childCount) {\n var next = fragment.child(taken), matches = match.matchType(next.type);\n if (!matches) { break }\n taken++;\n if (taken > 1 || openStart == 0 || next.content.size) { // Drop empty open nodes\n match = matches;\n add.push(closeNodeStart(next.mark(type.allowedMarks(next.marks)), taken == 1 ? openStart : 0,\n taken == fragment.childCount ? openEndCount : -1));\n }\n }\n var toEnd = taken == fragment.childCount;\n if (!toEnd) { openEndCount = -1; }\n\n this.placed = addToFragment(this.placed, frontierDepth, Fragment.from(add));\n this.frontier[frontierDepth].match = match;\n\n // If the parent types match, and the entire node was moved, and\n // it's not open, close this frontier node right away.\n if (toEnd && openEndCount < 0 && parent && parent.type == this.frontier[this.depth].type && this.frontier.length > 1)\n { this.closeFrontierNode(); }\n\n // Add new frontier nodes for any open nodes at the end.\n for (var i$2 = 0, cur = fragment; i$2 < openEndCount; i$2++) {\n var node = cur.lastChild;\n this.frontier.push({type: node.type, match: node.contentMatchAt(node.childCount)});\n cur = node.content;\n }\n\n // Update `this.unplaced`. Drop the entire node from which we\n // placed it we got to its end, otherwise just drop the placed\n // nodes.\n this.unplaced = !toEnd ? new Slice(dropFromFragment(slice.content, sliceDepth, taken), slice.openStart, slice.openEnd)\n : sliceDepth == 0 ? Slice.empty\n : new Slice(dropFromFragment(slice.content, sliceDepth - 1, 1),\n sliceDepth - 1, openEndCount < 0 ? slice.openEnd : sliceDepth - 1);\n};\n\nFitter.prototype.mustMoveInline = function mustMoveInline () {\n if (!this.$to.parent.isTextblock || this.$to.end() == this.$to.pos) { return -1 }\n var top = this.frontier[this.depth], level;\n if (!top.type.isTextblock || !contentAfterFits(this.$to, this.$to.depth, top.type, top.match, false) ||\n (this.$to.depth == this.depth && (level = this.findCloseLevel(this.$to)) && level.depth == this.depth)) { return -1 }\n\n var ref = this.$to;\n var depth = ref.depth;\n var after = this.$to.after(depth);\n while (depth > 1 && after == this.$to.end(--depth)) { ++after; }\n return after\n};\n\nFitter.prototype.findCloseLevel = function findCloseLevel ($to) {\n scan: for (var i = Math.min(this.depth, $to.depth); i >= 0; i--) {\n var ref = this.frontier[i];\n var match = ref.match;\n var type = ref.type;\n var dropInner = i < $to.depth && $to.end(i + 1) == $to.pos + ($to.depth - (i + 1));\n var fit = contentAfterFits($to, i, type, match, dropInner);\n if (!fit) { continue }\n for (var d = i - 1; d >= 0; d--) {\n var ref$1 = this.frontier[d];\n var match$1 = ref$1.match;\n var type$1 = ref$1.type;\n var matches = contentAfterFits($to, d, type$1, match$1, true);\n if (!matches || matches.childCount) { continue scan }\n }\n return {depth: i, fit: fit, move: dropInner ? $to.doc.resolve($to.after(i + 1)) : $to}\n }\n};\n\nFitter.prototype.close = function close ($to) {\n var close = this.findCloseLevel($to);\n if (!close) { return null }\n\n while (this.depth > close.depth) { this.closeFrontierNode(); }\n if (close.fit.childCount) { this.placed = addToFragment(this.placed, close.depth, close.fit); }\n $to = close.move;\n for (var d = close.depth + 1; d <= $to.depth; d++) {\n var node = $to.node(d), add = node.type.contentMatch.fillBefore(node.content, true, $to.index(d));\n this.openFrontierNode(node.type, node.attrs, add);\n }\n return $to\n};\n\nFitter.prototype.openFrontierNode = function openFrontierNode (type, attrs, content) {\n var top = this.frontier[this.depth];\n top.match = top.match.matchType(type);\n this.placed = addToFragment(this.placed, this.depth, Fragment.from(type.create(attrs, content)));\n this.frontier.push({type: type, match: type.contentMatch});\n};\n\nFitter.prototype.closeFrontierNode = function closeFrontierNode () {\n var open = this.frontier.pop();\n var add = open.match.fillBefore(Fragment.empty, true);\n if (add.childCount) { this.placed = addToFragment(this.placed, this.frontier.length, add); }\n};\n\nObject.defineProperties( Fitter.prototype, prototypeAccessors$1 );\n\nfunction dropFromFragment(fragment, depth, count) {\n if (depth == 0) { return fragment.cutByIndex(count) }\n return fragment.replaceChild(0, fragment.firstChild.copy(dropFromFragment(fragment.firstChild.content, depth - 1, count)))\n}\n\nfunction addToFragment(fragment, depth, content) {\n if (depth == 0) { return fragment.append(content) }\n return fragment.replaceChild(fragment.childCount - 1,\n fragment.lastChild.copy(addToFragment(fragment.lastChild.content, depth - 1, content)))\n}\n\nfunction contentAt(fragment, depth) {\n for (var i = 0; i < depth; i++) { fragment = fragment.firstChild.content; }\n return fragment\n}\n\nfunction closeNodeStart(node, openStart, openEnd) {\n if (openStart <= 0) { return node }\n var frag = node.content;\n if (openStart > 1)\n { frag = frag.replaceChild(0, closeNodeStart(frag.firstChild, openStart - 1, frag.childCount == 1 ? openEnd - 1 : 0)); }\n if (openStart > 0) {\n frag = node.type.contentMatch.fillBefore(frag).append(frag);\n if (openEnd <= 0) { frag = frag.append(node.type.contentMatch.matchFragment(frag).fillBefore(Fragment.empty, true)); }\n }\n return node.copy(frag)\n}\n\nfunction contentAfterFits($to, depth, type, match, open) {\n var node = $to.node(depth), index = open ? $to.indexAfter(depth) : $to.index(depth);\n if (index == node.childCount && !type.compatibleContent(node.type)) { return null }\n var fit = match.fillBefore(node.content, true, index);\n return fit && !invalidMarks(type, node.content, index) ? fit : null\n}\n\nfunction invalidMarks(type, fragment, start) {\n for (var i = start; i < fragment.childCount; i++)\n { if (!type.allowsMarks(fragment.child(i).marks)) { return true } }\n return false\n}\n\n// :: (number, number, Slice) → this\n// Replace a range of the document with a given slice, using `from`,\n// `to`, and the slice's [`openStart`](#model.Slice.openStart) property\n// as hints, rather than fixed start and end points. This method may\n// grow the replaced area or close open nodes in the slice in order to\n// get a fit that is more in line with WYSIWYG expectations, by\n// dropping fully covered parent nodes of the replaced region when\n// they are marked [non-defining](#model.NodeSpec.defining), or\n// including an open parent node from the slice that _is_ marked as\n// [defining](#model.NodeSpec.defining).\n//\n// This is the method, for example, to handle paste. The similar\n// [`replace`](#transform.Transform.replace) method is a more\n// primitive tool which will _not_ move the start and end of its given\n// range, and is useful in situations where you need more precise\n// control over what happens.\nTransform.prototype.replaceRange = function(from, to, slice) {\n if (!slice.size) { return this.deleteRange(from, to) }\n\n var $from = this.doc.resolve(from), $to = this.doc.resolve(to);\n if (fitsTrivially($from, $to, slice))\n { return this.step(new ReplaceStep(from, to, slice)) }\n\n var targetDepths = coveredDepths($from, this.doc.resolve(to));\n // Can't replace the whole document, so remove 0 if it's present\n if (targetDepths[targetDepths.length - 1] == 0) { targetDepths.pop(); }\n // Negative numbers represent not expansion over the whole node at\n // that depth, but replacing from $from.before(-D) to $to.pos.\n var preferredTarget = -($from.depth + 1);\n targetDepths.unshift(preferredTarget);\n // This loop picks a preferred target depth, if one of the covering\n // depths is not outside of a defining node, and adds negative\n // depths for any depth that has $from at its start and does not\n // cross a defining node.\n for (var d = $from.depth, pos = $from.pos - 1; d > 0; d--, pos--) {\n var spec = $from.node(d).type.spec;\n if (spec.defining || spec.isolating) { break }\n if (targetDepths.indexOf(d) > -1) { preferredTarget = d; }\n else if ($from.before(d) == pos) { targetDepths.splice(1, 0, -d); }\n }\n // Try to fit each possible depth of the slice into each possible\n // target depth, starting with the preferred depths.\n var preferredTargetIndex = targetDepths.indexOf(preferredTarget);\n\n var leftNodes = [], preferredDepth = slice.openStart;\n for (var content = slice.content, i = 0;; i++) {\n var node = content.firstChild;\n leftNodes.push(node);\n if (i == slice.openStart) { break }\n content = node.content;\n }\n // Back up if the node directly above openStart, or the node above\n // that separated only by a non-defining textblock node, is defining.\n if (preferredDepth > 0 && leftNodes[preferredDepth - 1].type.spec.defining &&\n $from.node(preferredTargetIndex).type != leftNodes[preferredDepth - 1].type)\n { preferredDepth -= 1; }\n else if (preferredDepth >= 2 && leftNodes[preferredDepth - 1].isTextblock && leftNodes[preferredDepth - 2].type.spec.defining &&\n $from.node(preferredTargetIndex).type != leftNodes[preferredDepth - 2].type)\n { preferredDepth -= 2; }\n\n for (var j = slice.openStart; j >= 0; j--) {\n var openDepth = (j + preferredDepth + 1) % (slice.openStart + 1);\n var insert = leftNodes[openDepth];\n if (!insert) { continue }\n for (var i$1 = 0; i$1 < targetDepths.length; i$1++) {\n // Loop over possible expansion levels, starting with the\n // preferred one\n var targetDepth = targetDepths[(i$1 + preferredTargetIndex) % targetDepths.length], expand = true;\n if (targetDepth < 0) { expand = false; targetDepth = -targetDepth; }\n var parent = $from.node(targetDepth - 1), index = $from.index(targetDepth - 1);\n if (parent.canReplaceWith(index, index, insert.type, insert.marks))\n { return this.replace($from.before(targetDepth), expand ? $to.after(targetDepth) : to,\n new Slice(closeFragment(slice.content, 0, slice.openStart, openDepth),\n openDepth, slice.openEnd)) }\n }\n }\n\n var startSteps = this.steps.length;\n for (var i$2 = targetDepths.length - 1; i$2 >= 0; i$2--) {\n this.replace(from, to, slice);\n if (this.steps.length > startSteps) { break }\n var depth = targetDepths[i$2];\n if (depth < 0) { continue }\n from = $from.before(depth); to = $to.after(depth);\n }\n return this\n};\n\nfunction closeFragment(fragment, depth, oldOpen, newOpen, parent) {\n if (depth < oldOpen) {\n var first = fragment.firstChild;\n fragment = fragment.replaceChild(0, first.copy(closeFragment(first.content, depth + 1, oldOpen, newOpen, first)));\n }\n if (depth > newOpen) {\n var match = parent.contentMatchAt(0);\n var start = match.fillBefore(fragment).append(fragment);\n fragment = start.append(match.matchFragment(start).fillBefore(Fragment.empty, true));\n }\n return fragment\n}\n\n// :: (number, number, Node) → this\n// Replace the given range with a node, but use `from` and `to` as\n// hints, rather than precise positions. When from and to are the same\n// and are at the start or end of a parent node in which the given\n// node doesn't fit, this method may _move_ them out towards a parent\n// that does allow the given node to be placed. When the given range\n// completely covers a parent node, this method may completely replace\n// that parent node.\nTransform.prototype.replaceRangeWith = function(from, to, node) {\n if (!node.isInline && from == to && this.doc.resolve(from).parent.content.size) {\n var point = insertPoint(this.doc, from, node.type);\n if (point != null) { from = to = point; }\n }\n return this.replaceRange(from, to, new Slice(Fragment.from(node), 0, 0))\n};\n\n// :: (number, number) → this\n// Delete the given range, expanding it to cover fully covered\n// parent nodes until a valid replace is found.\nTransform.prototype.deleteRange = function(from, to) {\n var $from = this.doc.resolve(from), $to = this.doc.resolve(to);\n var covered = coveredDepths($from, $to);\n for (var i = 0; i < covered.length; i++) {\n var depth = covered[i], last = i == covered.length - 1;\n if ((last && depth == 0) || $from.node(depth).type.contentMatch.validEnd)\n { return this.delete($from.start(depth), $to.end(depth)) }\n if (depth > 0 && (last || $from.node(depth - 1).canReplace($from.index(depth - 1), $to.indexAfter(depth - 1))))\n { return this.delete($from.before(depth), $to.after(depth)) }\n }\n for (var d = 1; d <= $from.depth && d <= $to.depth; d++) {\n if (from - $from.start(d) == $from.depth - d && to > $from.end(d) && $to.end(d) - to != $to.depth - d)\n { return this.delete($from.before(d), to) }\n }\n return this.delete(from, to)\n};\n\n// : (ResolvedPos, ResolvedPos) → [number]\n// Returns an array of all depths for which $from - $to spans the\n// whole content of the nodes at that depth.\nfunction coveredDepths($from, $to) {\n var result = [], minDepth = Math.min($from.depth, $to.depth);\n for (var d = minDepth; d >= 0; d--) {\n var start = $from.start(d);\n if (start < $from.pos - ($from.depth - d) ||\n $to.end(d) > $to.pos + ($to.depth - d) ||\n $from.node(d).type.spec.isolating ||\n $to.node(d).type.spec.isolating) { break }\n if (start == $to.start(d) ||\n (d == $from.depth && d == $to.depth && $from.parent.inlineContent && $to.parent.inlineContent &&\n d && $to.start(d - 1) == start - 1))\n { result.push(d); }\n }\n return result\n}\n\nexport { AddMarkStep, MapResult, Mapping, RemoveMarkStep, ReplaceAroundStep, ReplaceStep, Step, StepMap, StepResult, Transform, TransformError, canJoin, canSplit, dropPoint, findWrapping, insertPoint, joinPoint, liftTarget, replaceStep };\n","import { TextSelection, NodeSelection, Selection, AllSelection } from 'prosemirror-state';\nimport { DOMSerializer, Fragment, Mark, DOMParser, Slice } from 'prosemirror-model';\nimport { dropPoint } from 'prosemirror-transform';\n\nvar result = {};\n\nif (typeof navigator != \"undefined\" && typeof document != \"undefined\") {\n var ie_edge = /Edge\\/(\\d+)/.exec(navigator.userAgent);\n var ie_upto10 = /MSIE \\d/.test(navigator.userAgent);\n var ie_11up = /Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(navigator.userAgent);\n\n var ie = result.ie = !!(ie_upto10 || ie_11up || ie_edge);\n result.ie_version = ie_upto10 ? document.documentMode || 6 : ie_11up ? +ie_11up[1] : ie_edge ? +ie_edge[1] : null;\n result.gecko = !ie && /gecko\\/(\\d+)/i.test(navigator.userAgent);\n result.gecko_version = result.gecko && +(/Firefox\\/(\\d+)/.exec(navigator.userAgent) || [0, 0])[1];\n var chrome = !ie && /Chrome\\/(\\d+)/.exec(navigator.userAgent);\n result.chrome = !!chrome;\n result.chrome_version = chrome && +chrome[1];\n // Is true for both iOS and iPadOS for convenience\n result.safari = !ie && /Apple Computer/.test(navigator.vendor);\n result.ios = result.safari && (/Mobile\\/\\w+/.test(navigator.userAgent) || navigator.maxTouchPoints > 2);\n result.mac = result.ios || /Mac/.test(navigator.platform);\n result.android = /Android \\d/.test(navigator.userAgent);\n result.webkit = \"webkitFontSmoothing\" in document.documentElement.style;\n result.webkit_version = result.webkit && +(/\\bAppleWebKit\\/(\\d+)/.exec(navigator.userAgent) || [0, 0])[1];\n}\n\nvar domIndex = function(node) {\n for (var index = 0;; index++) {\n node = node.previousSibling;\n if (!node) { return index }\n }\n};\n\nvar parentNode = function(node) {\n var parent = node.assignedSlot || node.parentNode;\n return parent && parent.nodeType == 11 ? parent.host : parent\n};\n\nvar reusedRange = null;\n\n// Note that this will always return the same range, because DOM range\n// objects are every expensive, and keep slowing down subsequent DOM\n// updates, for some reason.\nvar textRange = function(node, from, to) {\n var range = reusedRange || (reusedRange = document.createRange());\n range.setEnd(node, to == null ? node.nodeValue.length : to);\n range.setStart(node, from || 0);\n return range\n};\n\n// Scans forward and backward through DOM positions equivalent to the\n// given one to see if the two are in the same place (i.e. after a\n// text node vs at the end of that text node)\nvar isEquivalentPosition = function(node, off, targetNode, targetOff) {\n return targetNode && (scanFor(node, off, targetNode, targetOff, -1) ||\n scanFor(node, off, targetNode, targetOff, 1))\n};\n\nvar atomElements = /^(img|br|input|textarea|hr)$/i;\n\nfunction scanFor(node, off, targetNode, targetOff, dir) {\n for (;;) {\n if (node == targetNode && off == targetOff) { return true }\n if (off == (dir < 0 ? 0 : nodeSize(node))) {\n var parent = node.parentNode;\n if (parent.nodeType != 1 || hasBlockDesc(node) || atomElements.test(node.nodeName) || node.contentEditable == \"false\")\n { return false }\n off = domIndex(node) + (dir < 0 ? 0 : 1);\n node = parent;\n } else if (node.nodeType == 1) {\n node = node.childNodes[off + (dir < 0 ? -1 : 0)];\n if (node.contentEditable == \"false\") { return false }\n off = dir < 0 ? nodeSize(node) : 0;\n } else {\n return false\n }\n }\n}\n\nfunction nodeSize(node) {\n return node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length\n}\n\nfunction isOnEdge(node, offset, parent) {\n for (var atStart = offset == 0, atEnd = offset == nodeSize(node); atStart || atEnd;) {\n if (node == parent) { return true }\n var index = domIndex(node);\n node = node.parentNode;\n if (!node) { return false }\n atStart = atStart && index == 0;\n atEnd = atEnd && index == nodeSize(node);\n }\n}\n\nfunction hasBlockDesc(dom) {\n var desc;\n for (var cur = dom; cur; cur = cur.parentNode) { if (desc = cur.pmViewDesc) { break } }\n return desc && desc.node && desc.node.isBlock && (desc.dom == dom || desc.contentDOM == dom)\n}\n\n// Work around Chrome issue https://bugs.chromium.org/p/chromium/issues/detail?id=447523\n// (isCollapsed inappropriately returns true in shadow dom)\nvar selectionCollapsed = function(domSel) {\n var collapsed = domSel.isCollapsed;\n if (collapsed && result.chrome && domSel.rangeCount && !domSel.getRangeAt(0).collapsed)\n { collapsed = false; }\n return collapsed\n};\n\nfunction keyEvent(keyCode, key) {\n var event = document.createEvent(\"Event\");\n event.initEvent(\"keydown\", true, true);\n event.keyCode = keyCode;\n event.key = event.code = key;\n return event\n}\n\nfunction windowRect(doc) {\n return {left: 0, right: doc.documentElement.clientWidth,\n top: 0, bottom: doc.documentElement.clientHeight}\n}\n\nfunction getSide(value, side) {\n return typeof value == \"number\" ? value : value[side]\n}\n\nfunction clientRect(node) {\n var rect = node.getBoundingClientRect();\n // Adjust for elements with style \"transform: scale()\"\n var scaleX = (rect.width / node.offsetWidth) || 1;\n var scaleY = (rect.height / node.offsetHeight) || 1;\n // Make sure scrollbar width isn't included in the rectangle\n return {left: rect.left, right: rect.left + node.clientWidth * scaleX,\n top: rect.top, bottom: rect.top + node.clientHeight * scaleY}\n}\n\nfunction scrollRectIntoView(view, rect, startDOM) {\n var scrollThreshold = view.someProp(\"scrollThreshold\") || 0, scrollMargin = view.someProp(\"scrollMargin\") || 5;\n var doc = view.dom.ownerDocument;\n for (var parent = startDOM || view.dom;; parent = parentNode(parent)) {\n if (!parent) { break }\n if (parent.nodeType != 1) { continue }\n var atTop = parent == doc.body || parent.nodeType != 1;\n var bounding = atTop ? windowRect(doc) : clientRect(parent);\n var moveX = 0, moveY = 0;\n if (rect.top < bounding.top + getSide(scrollThreshold, \"top\"))\n { moveY = -(bounding.top - rect.top + getSide(scrollMargin, \"top\")); }\n else if (rect.bottom > bounding.bottom - getSide(scrollThreshold, \"bottom\"))\n { moveY = rect.bottom - bounding.bottom + getSide(scrollMargin, \"bottom\"); }\n if (rect.left < bounding.left + getSide(scrollThreshold, \"left\"))\n { moveX = -(bounding.left - rect.left + getSide(scrollMargin, \"left\")); }\n else if (rect.right > bounding.right - getSide(scrollThreshold, \"right\"))\n { moveX = rect.right - bounding.right + getSide(scrollMargin, \"right\"); }\n if (moveX || moveY) {\n if (atTop) {\n doc.defaultView.scrollBy(moveX, moveY);\n } else {\n var startX = parent.scrollLeft, startY = parent.scrollTop;\n if (moveY) { parent.scrollTop += moveY; }\n if (moveX) { parent.scrollLeft += moveX; }\n var dX = parent.scrollLeft - startX, dY = parent.scrollTop - startY;\n rect = {left: rect.left - dX, top: rect.top - dY, right: rect.right - dX, bottom: rect.bottom - dY};\n }\n }\n if (atTop) { break }\n }\n}\n\n// Store the scroll position of the editor's parent nodes, along with\n// the top position of an element near the top of the editor, which\n// will be used to make sure the visible viewport remains stable even\n// when the size of the content above changes.\nfunction storeScrollPos(view) {\n var rect = view.dom.getBoundingClientRect(), startY = Math.max(0, rect.top);\n var refDOM, refTop;\n for (var x = (rect.left + rect.right) / 2, y = startY + 1;\n y < Math.min(innerHeight, rect.bottom); y += 5) {\n var dom = view.root.elementFromPoint(x, y);\n if (dom == view.dom || !view.dom.contains(dom)) { continue }\n var localRect = dom.getBoundingClientRect();\n if (localRect.top >= startY - 20) {\n refDOM = dom;\n refTop = localRect.top;\n break\n }\n }\n return {refDOM: refDOM, refTop: refTop, stack: scrollStack(view.dom)}\n}\n\nfunction scrollStack(dom) {\n var stack = [], doc = dom.ownerDocument;\n for (; dom; dom = parentNode(dom)) {\n stack.push({dom: dom, top: dom.scrollTop, left: dom.scrollLeft});\n if (dom == doc) { break }\n }\n return stack\n}\n\n// Reset the scroll position of the editor's parent nodes to that what\n// it was before, when storeScrollPos was called.\nfunction resetScrollPos(ref) {\n var refDOM = ref.refDOM;\n var refTop = ref.refTop;\n var stack = ref.stack;\n\n var newRefTop = refDOM ? refDOM.getBoundingClientRect().top : 0;\n restoreScrollStack(stack, newRefTop == 0 ? 0 : newRefTop - refTop);\n}\n\nfunction restoreScrollStack(stack, dTop) {\n for (var i = 0; i < stack.length; i++) {\n var ref = stack[i];\n var dom = ref.dom;\n var top = ref.top;\n var left = ref.left;\n if (dom.scrollTop != top + dTop) { dom.scrollTop = top + dTop; }\n if (dom.scrollLeft != left) { dom.scrollLeft = left; }\n }\n}\n\nvar preventScrollSupported = null;\n// Feature-detects support for .focus({preventScroll: true}), and uses\n// a fallback kludge when not supported.\nfunction focusPreventScroll(dom) {\n if (dom.setActive) { return dom.setActive() } // in IE\n if (preventScrollSupported) { return dom.focus(preventScrollSupported) }\n\n var stored = scrollStack(dom);\n dom.focus(preventScrollSupported == null ? {\n get preventScroll() {\n preventScrollSupported = {preventScroll: true};\n return true\n }\n } : undefined);\n if (!preventScrollSupported) {\n preventScrollSupported = false;\n restoreScrollStack(stored, 0);\n }\n}\n\nfunction findOffsetInNode(node, coords) {\n var closest, dxClosest = 2e8, coordsClosest, offset = 0;\n var rowBot = coords.top, rowTop = coords.top;\n for (var child = node.firstChild, childIndex = 0; child; child = child.nextSibling, childIndex++) {\n var rects = (void 0);\n if (child.nodeType == 1) { rects = child.getClientRects(); }\n else if (child.nodeType == 3) { rects = textRange(child).getClientRects(); }\n else { continue }\n\n for (var i = 0; i < rects.length; i++) {\n var rect = rects[i];\n if (rect.top <= rowBot && rect.bottom >= rowTop) {\n rowBot = Math.max(rect.bottom, rowBot);\n rowTop = Math.min(rect.top, rowTop);\n var dx = rect.left > coords.left ? rect.left - coords.left\n : rect.right < coords.left ? coords.left - rect.right : 0;\n if (dx < dxClosest) {\n closest = child;\n dxClosest = dx;\n coordsClosest = dx && closest.nodeType == 3 ? {left: rect.right < coords.left ? rect.right : rect.left, top: coords.top} : coords;\n if (child.nodeType == 1 && dx)\n { offset = childIndex + (coords.left >= (rect.left + rect.right) / 2 ? 1 : 0); }\n continue\n }\n }\n if (!closest && (coords.left >= rect.right && coords.top >= rect.top ||\n coords.left >= rect.left && coords.top >= rect.bottom))\n { offset = childIndex + 1; }\n }\n }\n if (closest && closest.nodeType == 3) { return findOffsetInText(closest, coordsClosest) }\n if (!closest || (dxClosest && closest.nodeType == 1)) { return {node: node, offset: offset} }\n return findOffsetInNode(closest, coordsClosest)\n}\n\nfunction findOffsetInText(node, coords) {\n var len = node.nodeValue.length;\n var range = document.createRange();\n for (var i = 0; i < len; i++) {\n range.setEnd(node, i + 1);\n range.setStart(node, i);\n var rect = singleRect(range, 1);\n if (rect.top == rect.bottom) { continue }\n if (inRect(coords, rect))\n { return {node: node, offset: i + (coords.left >= (rect.left + rect.right) / 2 ? 1 : 0)} }\n }\n return {node: node, offset: 0}\n}\n\nfunction inRect(coords, rect) {\n return coords.left >= rect.left - 1 && coords.left <= rect.right + 1&&\n coords.top >= rect.top - 1 && coords.top <= rect.bottom + 1\n}\n\nfunction targetKludge(dom, coords) {\n var parent = dom.parentNode;\n if (parent && /^li$/i.test(parent.nodeName) && coords.left < dom.getBoundingClientRect().left)\n { return parent }\n return dom\n}\n\nfunction posFromElement(view, elt, coords) {\n var ref = findOffsetInNode(elt, coords);\n var node = ref.node;\n var offset = ref.offset;\n var bias = -1;\n if (node.nodeType == 1 && !node.firstChild) {\n var rect = node.getBoundingClientRect();\n bias = rect.left != rect.right && coords.left > (rect.left + rect.right) / 2 ? 1 : -1;\n }\n return view.docView.posFromDOM(node, offset, bias)\n}\n\nfunction posFromCaret(view, node, offset, coords) {\n // Browser (in caretPosition/RangeFromPoint) will agressively\n // normalize towards nearby inline nodes. Since we are interested in\n // positions between block nodes too, we first walk up the hierarchy\n // of nodes to see if there are block nodes that the coordinates\n // fall outside of. If so, we take the position before/after that\n // block. If not, we call `posFromDOM` on the raw node/offset.\n var outside = -1;\n for (var cur = node;;) {\n if (cur == view.dom) { break }\n var desc = view.docView.nearestDesc(cur, true);\n if (!desc) { return null }\n if (desc.node.isBlock && desc.parent) {\n var rect = desc.dom.getBoundingClientRect();\n if (rect.left > coords.left || rect.top > coords.top) { outside = desc.posBefore; }\n else if (rect.right < coords.left || rect.bottom < coords.top) { outside = desc.posAfter; }\n else { break }\n }\n cur = desc.dom.parentNode;\n }\n return outside > -1 ? outside : view.docView.posFromDOM(node, offset)\n}\n\nfunction elementFromPoint(element, coords, box) {\n var len = element.childNodes.length;\n if (len && box.top < box.bottom) {\n for (var startI = Math.max(0, Math.min(len - 1, Math.floor(len * (coords.top - box.top) / (box.bottom - box.top)) - 2)), i = startI;;) {\n var child = element.childNodes[i];\n if (child.nodeType == 1) {\n var rects = child.getClientRects();\n for (var j = 0; j < rects.length; j++) {\n var rect = rects[j];\n if (inRect(coords, rect)) { return elementFromPoint(child, coords, rect) }\n }\n }\n if ((i = (i + 1) % len) == startI) { break }\n }\n }\n return element\n}\n\n// Given an x,y position on the editor, get the position in the document.\nfunction posAtCoords(view, coords) {\n var assign, assign$1;\n\n var doc = view.dom.ownerDocument, node, offset;\n if (doc.caretPositionFromPoint) {\n try { // Firefox throws for this call in hard-to-predict circumstances (#994)\n var pos$1 = doc.caretPositionFromPoint(coords.left, coords.top);\n if (pos$1) { ((assign = pos$1, node = assign.offsetNode, offset = assign.offset)); }\n } catch (_) {}\n }\n if (!node && doc.caretRangeFromPoint) {\n var range = doc.caretRangeFromPoint(coords.left, coords.top);\n if (range) { ((assign$1 = range, node = assign$1.startContainer, offset = assign$1.startOffset)); }\n }\n\n var elt = (view.root.elementFromPoint ? view.root : doc).elementFromPoint(coords.left, coords.top + 1), pos;\n if (!elt || !view.dom.contains(elt.nodeType != 1 ? elt.parentNode : elt)) {\n var box = view.dom.getBoundingClientRect();\n if (!inRect(coords, box)) { return null }\n elt = elementFromPoint(view.dom, coords, box);\n if (!elt) { return null }\n }\n // Safari's caretRangeFromPoint returns nonsense when on a draggable element\n if (result.safari) {\n for (var p = elt; node && p; p = parentNode(p))\n { if (p.draggable) { node = offset = null; } }\n }\n elt = targetKludge(elt, coords);\n if (node) {\n if (result.gecko && node.nodeType == 1) {\n // Firefox will sometimes return offsets into nodes, which\n // have no actual children, from caretPositionFromPoint (#953)\n offset = Math.min(offset, node.childNodes.length);\n // It'll also move the returned position before image nodes,\n // even if those are behind it.\n if (offset < node.childNodes.length) {\n var next = node.childNodes[offset], box$1;\n if (next.nodeName == \"IMG\" && (box$1 = next.getBoundingClientRect()).right <= coords.left &&\n box$1.bottom > coords.top)\n { offset++; }\n }\n }\n // Suspiciously specific kludge to work around caret*FromPoint\n // never returning a position at the end of the document\n if (node == view.dom && offset == node.childNodes.length - 1 && node.lastChild.nodeType == 1 &&\n coords.top > node.lastChild.getBoundingClientRect().bottom)\n { pos = view.state.doc.content.size; }\n // Ignore positions directly after a BR, since caret*FromPoint\n // 'round up' positions that would be more accurately placed\n // before the BR node.\n else if (offset == 0 || node.nodeType != 1 || node.childNodes[offset - 1].nodeName != \"BR\")\n { pos = posFromCaret(view, node, offset, coords); }\n }\n if (pos == null) { pos = posFromElement(view, elt, coords); }\n\n var desc = view.docView.nearestDesc(elt, true);\n return {pos: pos, inside: desc ? desc.posAtStart - desc.border : -1}\n}\n\nfunction singleRect(object, bias) {\n var rects = object.getClientRects();\n return !rects.length ? object.getBoundingClientRect() : rects[bias < 0 ? 0 : rects.length - 1]\n}\n\nvar BIDI = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/;\n\n// : (EditorView, number, number) → {left: number, top: number, right: number, bottom: number}\n// Given a position in the document model, get a bounding box of the\n// character at that position, relative to the window.\nfunction coordsAtPos(view, pos, side) {\n var ref = view.docView.domFromPos(pos, side < 0 ? -1 : 1);\n var node = ref.node;\n var offset = ref.offset;\n\n var supportEmptyRange = result.webkit || result.gecko;\n if (node.nodeType == 3) {\n // These browsers support querying empty text ranges. Prefer that in\n // bidi context or when at the end of a node.\n if (supportEmptyRange && (BIDI.test(node.nodeValue) || (side < 0 ? !offset : offset == node.nodeValue.length))) {\n var rect = singleRect(textRange(node, offset, offset), side);\n // Firefox returns bad results (the position before the space)\n // when querying a position directly after line-broken\n // whitespace. Detect this situation and and kludge around it\n if (result.gecko && offset && /\\s/.test(node.nodeValue[offset - 1]) && offset < node.nodeValue.length) {\n var rectBefore = singleRect(textRange(node, offset - 1, offset - 1), -1);\n if (rectBefore.top == rect.top) {\n var rectAfter = singleRect(textRange(node, offset, offset + 1), -1);\n if (rectAfter.top != rect.top)\n { return flattenV(rectAfter, rectAfter.left < rectBefore.left) }\n }\n }\n return rect\n } else {\n var from = offset, to = offset, takeSide = side < 0 ? 1 : -1;\n if (side < 0 && !offset) { to++; takeSide = -1; }\n else if (side >= 0 && offset == node.nodeValue.length) { from--; takeSide = 1; }\n else if (side < 0) { from--; }\n else { to ++; }\n return flattenV(singleRect(textRange(node, from, to), takeSide), takeSide < 0)\n }\n }\n\n // Return a horizontal line in block context\n if (!view.state.doc.resolve(pos).parent.inlineContent) {\n if (offset && (side < 0 || offset == nodeSize(node))) {\n var before = node.childNodes[offset - 1];\n if (before.nodeType == 1) { return flattenH(before.getBoundingClientRect(), false) }\n }\n if (offset < nodeSize(node)) {\n var after = node.childNodes[offset];\n if (after.nodeType == 1) { return flattenH(after.getBoundingClientRect(), true) }\n }\n return flattenH(node.getBoundingClientRect(), side >= 0)\n }\n\n // Inline, not in text node (this is not Bidi-safe)\n if (offset && (side < 0 || offset == nodeSize(node))) {\n var before$1 = node.childNodes[offset - 1];\n var target = before$1.nodeType == 3 ? textRange(before$1, nodeSize(before$1) - (supportEmptyRange ? 0 : 1))\n // BR nodes tend to only return the rectangle before them.\n // Only use them if they are the last element in their parent\n : before$1.nodeType == 1 && (before$1.nodeName != \"BR\" || !before$1.nextSibling) ? before$1 : null;\n if (target) { return flattenV(singleRect(target, 1), false) }\n }\n if (offset < nodeSize(node)) {\n var after$1 = node.childNodes[offset];\n while (after$1.pmViewDesc && after$1.pmViewDesc.ignoreForCoords) { after$1 = after$1.nextSibling; }\n var target$1 = !after$1 ? null : after$1.nodeType == 3 ? textRange(after$1, 0, (supportEmptyRange ? 0 : 1))\n : after$1.nodeType == 1 ? after$1 : null;\n if (target$1) { return flattenV(singleRect(target$1, -1), true) }\n }\n // All else failed, just try to get a rectangle for the target node\n return flattenV(singleRect(node.nodeType == 3 ? textRange(node) : node, -side), side >= 0)\n}\n\nfunction flattenV(rect, left) {\n if (rect.width == 0) { return rect }\n var x = left ? rect.left : rect.right;\n return {top: rect.top, bottom: rect.bottom, left: x, right: x}\n}\n\nfunction flattenH(rect, top) {\n if (rect.height == 0) { return rect }\n var y = top ? rect.top : rect.bottom;\n return {top: y, bottom: y, left: rect.left, right: rect.right}\n}\n\nfunction withFlushedState(view, state, f) {\n var viewState = view.state, active = view.root.activeElement;\n if (viewState != state) { view.updateState(state); }\n if (active != view.dom) { view.focus(); }\n try {\n return f()\n } finally {\n if (viewState != state) { view.updateState(viewState); }\n if (active != view.dom && active) { active.focus(); }\n }\n}\n\n// : (EditorView, number, number)\n// Whether vertical position motion in a given direction\n// from a position would leave a text block.\nfunction endOfTextblockVertical(view, state, dir) {\n var sel = state.selection;\n var $pos = dir == \"up\" ? sel.$from : sel.$to;\n return withFlushedState(view, state, function () {\n var ref = view.docView.domFromPos($pos.pos, dir == \"up\" ? -1 : 1);\n var dom = ref.node;\n for (;;) {\n var nearest = view.docView.nearestDesc(dom, true);\n if (!nearest) { break }\n if (nearest.node.isBlock) { dom = nearest.dom; break }\n dom = nearest.dom.parentNode;\n }\n var coords = coordsAtPos(view, $pos.pos, 1);\n for (var child = dom.firstChild; child; child = child.nextSibling) {\n var boxes = (void 0);\n if (child.nodeType == 1) { boxes = child.getClientRects(); }\n else if (child.nodeType == 3) { boxes = textRange(child, 0, child.nodeValue.length).getClientRects(); }\n else { continue }\n for (var i = 0; i < boxes.length; i++) {\n var box = boxes[i];\n if (box.bottom > box.top + 1 &&\n (dir == \"up\" ? coords.top - box.top > (box.bottom - coords.top) * 2\n : box.bottom - coords.bottom > (coords.bottom - box.top) * 2))\n { return false }\n }\n }\n return true\n })\n}\n\nvar maybeRTL = /[\\u0590-\\u08ac]/;\n\nfunction endOfTextblockHorizontal(view, state, dir) {\n var ref = state.selection;\n var $head = ref.$head;\n if (!$head.parent.isTextblock) { return false }\n var offset = $head.parentOffset, atStart = !offset, atEnd = offset == $head.parent.content.size;\n var sel = view.root.getSelection();\n // If the textblock is all LTR, or the browser doesn't support\n // Selection.modify (Edge), fall back to a primitive approach\n if (!maybeRTL.test($head.parent.textContent) || !sel.modify)\n { return dir == \"left\" || dir == \"backward\" ? atStart : atEnd }\n\n return withFlushedState(view, state, function () {\n // This is a huge hack, but appears to be the best we can\n // currently do: use `Selection.modify` to move the selection by\n // one character, and see if that moves the cursor out of the\n // textblock (or doesn't move it at all, when at the start/end of\n // the document).\n var oldRange = sel.getRangeAt(0), oldNode = sel.focusNode, oldOff = sel.focusOffset;\n var oldBidiLevel = sel.caretBidiLevel; // Only for Firefox\n sel.modify(\"move\", dir, \"character\");\n var parentDOM = $head.depth ? view.docView.domAfterPos($head.before()) : view.dom;\n var result = !parentDOM.contains(sel.focusNode.nodeType == 1 ? sel.focusNode : sel.focusNode.parentNode) ||\n (oldNode == sel.focusNode && oldOff == sel.focusOffset);\n // Restore the previous selection\n sel.removeAllRanges();\n sel.addRange(oldRange);\n if (oldBidiLevel != null) { sel.caretBidiLevel = oldBidiLevel; }\n return result\n })\n}\n\nvar cachedState = null, cachedDir = null, cachedResult = false;\nfunction endOfTextblock(view, state, dir) {\n if (cachedState == state && cachedDir == dir) { return cachedResult }\n cachedState = state; cachedDir = dir;\n return cachedResult = dir == \"up\" || dir == \"down\"\n ? endOfTextblockVertical(view, state, dir)\n : endOfTextblockHorizontal(view, state, dir)\n}\n\n// NodeView:: interface\n//\n// By default, document nodes are rendered using the result of the\n// [`toDOM`](#model.NodeSpec.toDOM) method of their spec, and managed\n// entirely by the editor. For some use cases, such as embedded\n// node-specific editing interfaces, you want more control over\n// the behavior of a node's in-editor representation, and need to\n// [define](#view.EditorProps.nodeViews) a custom node view.\n//\n// Mark views only support `dom` and `contentDOM`, and don't support\n// any of the node view methods.\n//\n// Objects returned as node views must conform to this interface.\n//\n// dom:: ?dom.Node\n// The outer DOM node that represents the document node. When not\n// given, the default strategy is used to create a DOM node.\n//\n// contentDOM:: ?dom.Node\n// The DOM node that should hold the node's content. Only meaningful\n// if the node view also defines a `dom` property and if its node\n// type is not a leaf node type. When this is present, ProseMirror\n// will take care of rendering the node's children into it. When it\n// is not present, the node view itself is responsible for rendering\n// (or deciding not to render) its child nodes.\n//\n// update:: ?(node: Node, decorations: [Decoration], innerDecorations: DecorationSource) → bool\n// When given, this will be called when the view is updating itself.\n// It will be given a node (possibly of a different type), an array\n// of active decorations around the node (which are automatically\n// drawn, and the node view may ignore if it isn't interested in\n// them), and a [decoration source](#view.DecorationSource) that\n// represents any decorations that apply to the content of the node\n// (which again may be ignored). It should return true if it was\n// able to update to that node, and false otherwise. If the node\n// view has a `contentDOM` property (or no `dom` property), updating\n// its child nodes will be handled by ProseMirror.\n//\n// selectNode:: ?()\n// Can be used to override the way the node's selected status (as a\n// node selection) is displayed.\n//\n// deselectNode:: ?()\n// When defining a `selectNode` method, you should also provide a\n// `deselectNode` method to remove the effect again.\n//\n// setSelection:: ?(anchor: number, head: number, root: dom.Document)\n// This will be called to handle setting the selection inside the\n// node. The `anchor` and `head` positions are relative to the start\n// of the node. By default, a DOM selection will be created between\n// the DOM positions corresponding to those positions, but if you\n// override it you can do something else.\n//\n// stopEvent:: ?(event: dom.Event) → bool\n// Can be used to prevent the editor view from trying to handle some\n// or all DOM events that bubble up from the node view. Events for\n// which this returns true are not handled by the editor.\n//\n// ignoreMutation:: ?(dom.MutationRecord) → bool\n// Called when a DOM\n// [mutation](https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver)\n// or a selection change happens within the view. When the change is\n// a selection change, the record will have a `type` property of\n// `\"selection\"` (which doesn't occur for native mutation records).\n// Return false if the editor should re-read the selection or\n// re-parse the range around the mutation, true if it can safely be\n// ignored.\n//\n// destroy:: ?()\n// Called when the node view is removed from the editor or the whole\n// editor is destroyed. (Not available for marks.)\n\n// View descriptions are data structures that describe the DOM that is\n// used to represent the editor's content. They are used for:\n//\n// - Incremental redrawing when the document changes\n//\n// - Figuring out what part of the document a given DOM position\n// corresponds to\n//\n// - Wiring in custom implementations of the editing interface for a\n// given node\n//\n// They form a doubly-linked mutable tree, starting at `view.docView`.\n\nvar NOT_DIRTY = 0, CHILD_DIRTY = 1, CONTENT_DIRTY = 2, NODE_DIRTY = 3;\n\n// Superclass for the various kinds of descriptions. Defines their\n// basic structure and shared methods.\nvar ViewDesc = function ViewDesc(parent, children, dom, contentDOM) {\n this.parent = parent;\n this.children = children;\n this.dom = dom;\n // An expando property on the DOM node provides a link back to its\n // description.\n dom.pmViewDesc = this;\n // This is the node that holds the child views. It may be null for\n // descs that don't have children.\n this.contentDOM = contentDOM;\n this.dirty = NOT_DIRTY;\n};\n\nvar prototypeAccessors = { size: { configurable: true },border: { configurable: true },posBefore: { configurable: true },posAtStart: { configurable: true },posAfter: { configurable: true },posAtEnd: { configurable: true },contentLost: { configurable: true },domAtom: { configurable: true },ignoreForCoords: { configurable: true } };\n\n// Used to check whether a given description corresponds to a\n// widget/mark/node.\nViewDesc.prototype.matchesWidget = function matchesWidget () { return false };\nViewDesc.prototype.matchesMark = function matchesMark () { return false };\nViewDesc.prototype.matchesNode = function matchesNode () { return false };\nViewDesc.prototype.matchesHack = function matchesHack (_nodeName) { return false };\n\n// : () → ?ParseRule\n// When parsing in-editor content (in domchange.js), we allow\n// descriptions to determine the parse rules that should be used to\n// parse them.\nViewDesc.prototype.parseRule = function parseRule () { return null };\n\n// : (dom.Event) → bool\n// Used by the editor's event handler to ignore events that come\n// from certain descs.\nViewDesc.prototype.stopEvent = function stopEvent () { return false };\n\n// The size of the content represented by this desc.\nprototypeAccessors.size.get = function () {\n var size = 0;\n for (var i = 0; i < this.children.length; i++) { size += this.children[i].size; }\n return size\n};\n\n// For block nodes, this represents the space taken up by their\n// start/end tokens.\nprototypeAccessors.border.get = function () { return 0 };\n\nViewDesc.prototype.destroy = function destroy () {\n this.parent = null;\n if (this.dom.pmViewDesc == this) { this.dom.pmViewDesc = null; }\n for (var i = 0; i < this.children.length; i++)\n { this.children[i].destroy(); }\n};\n\nViewDesc.prototype.posBeforeChild = function posBeforeChild (child) {\n for (var i = 0, pos = this.posAtStart; i < this.children.length; i++) {\n var cur = this.children[i];\n if (cur == child) { return pos }\n pos += cur.size;\n }\n};\n\nprototypeAccessors.posBefore.get = function () {\n return this.parent.posBeforeChild(this)\n};\n\nprototypeAccessors.posAtStart.get = function () {\n return this.parent ? this.parent.posBeforeChild(this) + this.border : 0\n};\n\nprototypeAccessors.posAfter.get = function () {\n return this.posBefore + this.size\n};\n\nprototypeAccessors.posAtEnd.get = function () {\n return this.posAtStart + this.size - 2 * this.border\n};\n\n// : (dom.Node, number, ?number) → number\nViewDesc.prototype.localPosFromDOM = function localPosFromDOM (dom, offset, bias) {\n // If the DOM position is in the content, use the child desc after\n // it to figure out a position.\n if (this.contentDOM && this.contentDOM.contains(dom.nodeType == 1 ? dom : dom.parentNode)) {\n if (bias < 0) {\n var domBefore, desc;\n if (dom == this.contentDOM) {\n domBefore = dom.childNodes[offset - 1];\n } else {\n while (dom.parentNode != this.contentDOM) { dom = dom.parentNode; }\n domBefore = dom.previousSibling;\n }\n while (domBefore && !((desc = domBefore.pmViewDesc) && desc.parent == this)) { domBefore = domBefore.previousSibling; }\n return domBefore ? this.posBeforeChild(desc) + desc.size : this.posAtStart\n } else {\n var domAfter, desc$1;\n if (dom == this.contentDOM) {\n domAfter = dom.childNodes[offset];\n } else {\n while (dom.parentNode != this.contentDOM) { dom = dom.parentNode; }\n domAfter = dom.nextSibling;\n }\n while (domAfter && !((desc$1 = domAfter.pmViewDesc) && desc$1.parent == this)) { domAfter = domAfter.nextSibling; }\n return domAfter ? this.posBeforeChild(desc$1) : this.posAtEnd\n }\n }\n // Otherwise, use various heuristics, falling back on the bias\n // parameter, to determine whether to return the position at the\n // start or at the end of this view desc.\n var atEnd;\n if (dom == this.dom && this.contentDOM) {\n atEnd = offset > domIndex(this.contentDOM);\n } else if (this.contentDOM && this.contentDOM != this.dom && this.dom.contains(this.contentDOM)) {\n atEnd = dom.compareDocumentPosition(this.contentDOM) & 2;\n } else if (this.dom.firstChild) {\n if (offset == 0) { for (var search = dom;; search = search.parentNode) {\n if (search == this.dom) { atEnd = false; break }\n if (search.parentNode.firstChild != search) { break }\n } }\n if (atEnd == null && offset == dom.childNodes.length) { for (var search$1 = dom;; search$1 = search$1.parentNode) {\n if (search$1 == this.dom) { atEnd = true; break }\n if (search$1.parentNode.lastChild != search$1) { break }\n } }\n }\n return (atEnd == null ? bias > 0 : atEnd) ? this.posAtEnd : this.posAtStart\n};\n\n// Scan up the dom finding the first desc that is a descendant of\n// this one.\nViewDesc.prototype.nearestDesc = function nearestDesc (dom, onlyNodes) {\n for (var first = true, cur = dom; cur; cur = cur.parentNode) {\n var desc = this.getDesc(cur);\n if (desc && (!onlyNodes || desc.node)) {\n // If dom is outside of this desc's nodeDOM, don't count it.\n if (first && desc.nodeDOM &&\n !(desc.nodeDOM.nodeType == 1 ? desc.nodeDOM.contains(dom.nodeType == 1 ? dom : dom.parentNode) : desc.nodeDOM == dom))\n { first = false; }\n else\n { return desc }\n }\n }\n};\n\nViewDesc.prototype.getDesc = function getDesc (dom) {\n var desc = dom.pmViewDesc;\n for (var cur = desc; cur; cur = cur.parent) { if (cur == this) { return desc } }\n};\n\nViewDesc.prototype.posFromDOM = function posFromDOM (dom, offset, bias) {\n for (var scan = dom; scan; scan = scan.parentNode) {\n var desc = this.getDesc(scan);\n if (desc) { return desc.localPosFromDOM(dom, offset, bias) }\n }\n return -1\n};\n\n// : (number) → ?NodeViewDesc\n// Find the desc for the node after the given pos, if any. (When a\n// parent node overrode rendering, there might not be one.)\nViewDesc.prototype.descAt = function descAt (pos) {\n for (var i = 0, offset = 0; i < this.children.length; i++) {\n var child = this.children[i], end = offset + child.size;\n if (offset == pos && end != offset) {\n while (!child.border && child.children.length) { child = child.children[0]; }\n return child\n }\n if (pos < end) { return child.descAt(pos - offset - child.border) }\n offset = end;\n }\n};\n\n// : (number, number) → {node: dom.Node, offset: number}\nViewDesc.prototype.domFromPos = function domFromPos (pos, side) {\n if (!this.contentDOM) { return {node: this.dom, offset: 0} }\n // First find the position in the child array\n var i = 0, offset = 0;\n for (var curPos = 0; i < this.children.length; i++) {\n var child = this.children[i], end = curPos + child.size;\n if (end > pos || child instanceof TrailingHackViewDesc) { offset = pos - curPos; break }\n curPos = end;\n }\n // If this points into the middle of a child, call through\n if (offset) { return this.children[i].domFromPos(offset - this.children[i].border, side) }\n // Go back if there were any zero-length widgets with side >= 0 before this point\n for (var prev = (void 0); i && !(prev = this.children[i - 1]).size && prev instanceof WidgetViewDesc && prev.widget.type.side >= 0; i--) {}\n // Scan towards the first useable node\n if (side <= 0) {\n var prev$1, enter = true;\n for (;; i--, enter = false) {\n prev$1 = i ? this.children[i - 1] : null;\n if (!prev$1 || prev$1.dom.parentNode == this.contentDOM) { break }\n }\n if (prev$1 && side && enter && !prev$1.border && !prev$1.domAtom) { return prev$1.domFromPos(prev$1.size, side) }\n return {node: this.contentDOM, offset: prev$1 ? domIndex(prev$1.dom) + 1 : 0}\n } else {\n var next, enter$1 = true;\n for (;; i++, enter$1 = false) {\n next = i < this.children.length ? this.children[i] : null;\n if (!next || next.dom.parentNode == this.contentDOM) { break }\n }\n if (next && enter$1 && !next.border && !next.domAtom) { return next.domFromPos(0, side) }\n return {node: this.contentDOM, offset: next ? domIndex(next.dom) : this.contentDOM.childNodes.length}\n }\n};\n\n// Used to find a DOM range in a single parent for a given changed\n// range.\nViewDesc.prototype.parseRange = function parseRange (from, to, base) {\n if ( base === void 0 ) base = 0;\n\n if (this.children.length == 0)\n { return {node: this.contentDOM, from: from, to: to, fromOffset: 0, toOffset: this.contentDOM.childNodes.length} }\n\n var fromOffset = -1, toOffset = -1;\n for (var offset = base, i = 0;; i++) {\n var child = this.children[i], end = offset + child.size;\n if (fromOffset == -1 && from <= end) {\n var childBase = offset + child.border;\n // FIXME maybe descend mark views to parse a narrower range?\n if (from >= childBase && to <= end - child.border && child.node &&\n child.contentDOM && this.contentDOM.contains(child.contentDOM))\n { return child.parseRange(from, to, childBase) }\n\n from = offset;\n for (var j = i; j > 0; j--) {\n var prev = this.children[j - 1];\n if (prev.size && prev.dom.parentNode == this.contentDOM && !prev.emptyChildAt(1)) {\n fromOffset = domIndex(prev.dom) + 1;\n break\n }\n from -= prev.size;\n }\n if (fromOffset == -1) { fromOffset = 0; }\n }\n if (fromOffset > -1 && (end > to || i == this.children.length - 1)) {\n to = end;\n for (var j$1 = i + 1; j$1 < this.children.length; j$1++) {\n var next = this.children[j$1];\n if (next.size && next.dom.parentNode == this.contentDOM && !next.emptyChildAt(-1)) {\n toOffset = domIndex(next.dom);\n break\n }\n to += next.size;\n }\n if (toOffset == -1) { toOffset = this.contentDOM.childNodes.length; }\n break\n }\n offset = end;\n }\n return {node: this.contentDOM, from: from, to: to, fromOffset: fromOffset, toOffset: toOffset}\n};\n\nViewDesc.prototype.emptyChildAt = function emptyChildAt (side) {\n if (this.border || !this.contentDOM || !this.children.length) { return false }\n var child = this.children[side < 0 ? 0 : this.children.length - 1];\n return child.size == 0 || child.emptyChildAt(side)\n};\n\n// : (number) → dom.Node\nViewDesc.prototype.domAfterPos = function domAfterPos (pos) {\n var ref = this.domFromPos(pos, 0);\n var node = ref.node;\n var offset = ref.offset;\n if (node.nodeType != 1 || offset == node.childNodes.length)\n { throw new RangeError(\"No node after pos \" + pos) }\n return node.childNodes[offset]\n};\n\n// : (number, number, dom.Document)\n// View descs are responsible for setting any selection that falls\n// entirely inside of them, so that custom implementations can do\n// custom things with the selection. Note that this falls apart when\n// a selection starts in such a node and ends in another, in which\n// case we just use whatever domFromPos produces as a best effort.\nViewDesc.prototype.setSelection = function setSelection (anchor, head, root, force) {\n // If the selection falls entirely in a child, give it to that child\n var from = Math.min(anchor, head), to = Math.max(anchor, head);\n for (var i = 0, offset = 0; i < this.children.length; i++) {\n var child = this.children[i], end = offset + child.size;\n if (from > offset && to < end)\n { return child.setSelection(anchor - offset - child.border, head - offset - child.border, root, force) }\n offset = end;\n }\n\n var anchorDOM = this.domFromPos(anchor, anchor ? -1 : 1);\n var headDOM = head == anchor ? anchorDOM : this.domFromPos(head, head ? -1 : 1);\n var domSel = root.getSelection();\n\n var brKludge = false;\n // On Firefox, using Selection.collapse to put the cursor after a\n // BR node for some reason doesn't always work (#1073). On Safari,\n // the cursor sometimes inexplicable visually lags behind its\n // reported position in such situations (#1092).\n if ((result.gecko || result.safari) && anchor == head) {\n var node = anchorDOM.node;\n var offset$1 = anchorDOM.offset;\n if (node.nodeType == 3) {\n brKludge = offset$1 && node.nodeValue[offset$1 - 1] == \"\\n\";\n // Issue #1128\n if (brKludge && offset$1 == node.nodeValue.length) {\n for (var scan = node, after = (void 0); scan; scan = scan.parentNode) {\n if (after = scan.nextSibling) {\n if (after.nodeName == \"BR\")\n { anchorDOM = headDOM = {node: after.parentNode, offset: domIndex(after) + 1}; }\n break\n }\n var desc = scan.pmViewDesc;\n if (desc && desc.node && desc.node.isBlock) { break }\n }\n }\n } else {\n var prev = node.childNodes[offset$1 - 1];\n brKludge = prev && (prev.nodeName == \"BR\" || prev.contentEditable == \"false\");\n }\n }\n // Firefox can act strangely when the selection is in front of an\n // uneditable node. See #1163 and https://bugzilla.mozilla.org/show_bug.cgi?id=1709536\n if (result.gecko && domSel.focusNode && domSel.focusNode != headDOM.node && domSel.focusNode.nodeType == 1) {\n var after$1 = domSel.focusNode.childNodes[domSel.focusOffset];\n if (after$1 && after$1.contentEditable == \"false\") { force = true; }\n }\n\n if (!(force || brKludge && result.safari) &&\n isEquivalentPosition(anchorDOM.node, anchorDOM.offset, domSel.anchorNode, domSel.anchorOffset) &&\n isEquivalentPosition(headDOM.node, headDOM.offset, domSel.focusNode, domSel.focusOffset))\n { return }\n\n // Selection.extend can be used to create an 'inverted' selection\n // (one where the focus is before the anchor), but not all\n // browsers support it yet.\n var domSelExtended = false;\n if ((domSel.extend || anchor == head) && !brKludge) {\n domSel.collapse(anchorDOM.node, anchorDOM.offset);\n try {\n if (anchor != head) { domSel.extend(headDOM.node, headDOM.offset); }\n domSelExtended = true;\n } catch (err) {\n // In some cases with Chrome the selection is empty after calling\n // collapse, even when it should be valid. This appears to be a bug, but\n // it is difficult to isolate. If this happens fallback to the old path\n // without using extend.\n if (!(err instanceof DOMException)) { throw err }\n // declare global: DOMException\n }\n }\n if (!domSelExtended) {\n if (anchor > head) { var tmp = anchorDOM; anchorDOM = headDOM; headDOM = tmp; }\n var range = document.createRange();\n range.setEnd(headDOM.node, headDOM.offset);\n range.setStart(anchorDOM.node, anchorDOM.offset);\n domSel.removeAllRanges();\n domSel.addRange(range);\n }\n};\n\n// : (dom.MutationRecord) → bool\nViewDesc.prototype.ignoreMutation = function ignoreMutation (mutation) {\n return !this.contentDOM && mutation.type != \"selection\"\n};\n\nprototypeAccessors.contentLost.get = function () {\n return this.contentDOM && this.contentDOM != this.dom && !this.dom.contains(this.contentDOM)\n};\n\n// Remove a subtree of the element tree that has been touched\n// by a DOM change, so that the next update will redraw it.\nViewDesc.prototype.markDirty = function markDirty (from, to) {\n for (var offset = 0, i = 0; i < this.children.length; i++) {\n var child = this.children[i], end = offset + child.size;\n if (offset == end ? from <= end && to >= offset : from < end && to > offset) {\n var startInside = offset + child.border, endInside = end - child.border;\n if (from >= startInside && to <= endInside) {\n this.dirty = from == offset || to == end ? CONTENT_DIRTY : CHILD_DIRTY;\n if (from == startInside && to == endInside &&\n (child.contentLost || child.dom.parentNode != this.contentDOM)) { child.dirty = NODE_DIRTY; }\n else { child.markDirty(from - startInside, to - startInside); }\n return\n } else {\n child.dirty = child.dom == child.contentDOM && child.dom.parentNode == this.contentDOM && !child.children.length\n ? CONTENT_DIRTY : NODE_DIRTY;\n }\n }\n offset = end;\n }\n this.dirty = CONTENT_DIRTY;\n};\n\nViewDesc.prototype.markParentsDirty = function markParentsDirty () {\n var level = 1;\n for (var node = this.parent; node; node = node.parent, level++) {\n var dirty = level == 1 ? CONTENT_DIRTY : CHILD_DIRTY;\n if (node.dirty < dirty) { node.dirty = dirty; }\n }\n};\n\nprototypeAccessors.domAtom.get = function () { return false };\n\nprototypeAccessors.ignoreForCoords.get = function () { return false };\n\nObject.defineProperties( ViewDesc.prototype, prototypeAccessors );\n\n// Reused array to avoid allocating fresh arrays for things that will\n// stay empty anyway.\nvar nothing = [];\n\n// A widget desc represents a widget decoration, which is a DOM node\n// drawn between the document nodes.\nvar WidgetViewDesc = /*@__PURE__*/(function (ViewDesc) {\n function WidgetViewDesc(parent, widget, view, pos) {\n var self, dom = widget.type.toDOM;\n if (typeof dom == \"function\") { dom = dom(view, function () {\n if (!self) { return pos }\n if (self.parent) { return self.parent.posBeforeChild(self) }\n }); }\n if (!widget.type.spec.raw) {\n if (dom.nodeType != 1) {\n var wrap = document.createElement(\"span\");\n wrap.appendChild(dom);\n dom = wrap;\n }\n dom.contentEditable = false;\n dom.classList.add(\"ProseMirror-widget\");\n }\n ViewDesc.call(this, parent, nothing, dom, null);\n this.widget = widget;\n self = this;\n }\n\n if ( ViewDesc ) WidgetViewDesc.__proto__ = ViewDesc;\n WidgetViewDesc.prototype = Object.create( ViewDesc && ViewDesc.prototype );\n WidgetViewDesc.prototype.constructor = WidgetViewDesc;\n\n var prototypeAccessors$1 = { domAtom: { configurable: true } };\n\n WidgetViewDesc.prototype.matchesWidget = function matchesWidget (widget) {\n return this.dirty == NOT_DIRTY && widget.type.eq(this.widget.type)\n };\n\n WidgetViewDesc.prototype.parseRule = function parseRule () { return {ignore: true} };\n\n WidgetViewDesc.prototype.stopEvent = function stopEvent (event) {\n var stop = this.widget.spec.stopEvent;\n return stop ? stop(event) : false\n };\n\n WidgetViewDesc.prototype.ignoreMutation = function ignoreMutation (mutation) {\n return mutation.type != \"selection\" || this.widget.spec.ignoreSelection\n };\n\n WidgetViewDesc.prototype.destroy = function destroy () {\n this.widget.type.destroy(this.dom);\n ViewDesc.prototype.destroy.call(this);\n };\n\n prototypeAccessors$1.domAtom.get = function () { return true };\n\n Object.defineProperties( WidgetViewDesc.prototype, prototypeAccessors$1 );\n\n return WidgetViewDesc;\n}(ViewDesc));\n\nvar CompositionViewDesc = /*@__PURE__*/(function (ViewDesc) {\n function CompositionViewDesc(parent, dom, textDOM, text) {\n ViewDesc.call(this, parent, nothing, dom, null);\n this.textDOM = textDOM;\n this.text = text;\n }\n\n if ( ViewDesc ) CompositionViewDesc.__proto__ = ViewDesc;\n CompositionViewDesc.prototype = Object.create( ViewDesc && ViewDesc.prototype );\n CompositionViewDesc.prototype.constructor = CompositionViewDesc;\n\n var prototypeAccessors$2 = { size: { configurable: true } };\n\n prototypeAccessors$2.size.get = function () { return this.text.length };\n\n CompositionViewDesc.prototype.localPosFromDOM = function localPosFromDOM (dom, offset) {\n if (dom != this.textDOM) { return this.posAtStart + (offset ? this.size : 0) }\n return this.posAtStart + offset\n };\n\n CompositionViewDesc.prototype.domFromPos = function domFromPos (pos) {\n return {node: this.textDOM, offset: pos}\n };\n\n CompositionViewDesc.prototype.ignoreMutation = function ignoreMutation (mut) {\n return mut.type === 'characterData' && mut.target.nodeValue == mut.oldValue\n };\n\n Object.defineProperties( CompositionViewDesc.prototype, prototypeAccessors$2 );\n\n return CompositionViewDesc;\n}(ViewDesc));\n\n// A mark desc represents a mark. May have multiple children,\n// depending on how the mark is split. Note that marks are drawn using\n// a fixed nesting order, for simplicity and predictability, so in\n// some cases they will be split more often than would appear\n// necessary.\nvar MarkViewDesc = /*@__PURE__*/(function (ViewDesc) {\n function MarkViewDesc(parent, mark, dom, contentDOM) {\n ViewDesc.call(this, parent, [], dom, contentDOM);\n this.mark = mark;\n }\n\n if ( ViewDesc ) MarkViewDesc.__proto__ = ViewDesc;\n MarkViewDesc.prototype = Object.create( ViewDesc && ViewDesc.prototype );\n MarkViewDesc.prototype.constructor = MarkViewDesc;\n\n MarkViewDesc.create = function create (parent, mark, inline, view) {\n var custom = view.nodeViews[mark.type.name];\n var spec = custom && custom(mark, view, inline);\n if (!spec || !spec.dom)\n { spec = DOMSerializer.renderSpec(document, mark.type.spec.toDOM(mark, inline)); }\n return new MarkViewDesc(parent, mark, spec.dom, spec.contentDOM || spec.dom)\n };\n\n MarkViewDesc.prototype.parseRule = function parseRule () {\n if ((this.dirty & NODE_DIRTY) || this.mark.type.spec.reparseInView) { return null }\n return {mark: this.mark.type.name, attrs: this.mark.attrs, contentElement: this.contentDOM}\n };\n\n MarkViewDesc.prototype.matchesMark = function matchesMark (mark) { return this.dirty != NODE_DIRTY && this.mark.eq(mark) };\n\n MarkViewDesc.prototype.markDirty = function markDirty (from, to) {\n ViewDesc.prototype.markDirty.call(this, from, to);\n // Move dirty info to nearest node view\n if (this.dirty != NOT_DIRTY) {\n var parent = this.parent;\n while (!parent.node) { parent = parent.parent; }\n if (parent.dirty < this.dirty) { parent.dirty = this.dirty; }\n this.dirty = NOT_DIRTY;\n }\n };\n\n MarkViewDesc.prototype.slice = function slice (from, to, view) {\n var copy = MarkViewDesc.create(this.parent, this.mark, true, view);\n var nodes = this.children, size = this.size;\n if (to < size) { nodes = replaceNodes(nodes, to, size, view); }\n if (from > 0) { nodes = replaceNodes(nodes, 0, from, view); }\n for (var i = 0; i < nodes.length; i++) { nodes[i].parent = copy; }\n copy.children = nodes;\n return copy\n };\n\n return MarkViewDesc;\n}(ViewDesc));\n\n// Node view descs are the main, most common type of view desc, and\n// correspond to an actual node in the document. Unlike mark descs,\n// they populate their child array themselves.\nvar NodeViewDesc = /*@__PURE__*/(function (ViewDesc) {\n function NodeViewDesc(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, view, pos) {\n ViewDesc.call(this, parent, node.isLeaf ? nothing : [], dom, contentDOM);\n this.nodeDOM = nodeDOM;\n this.node = node;\n this.outerDeco = outerDeco;\n this.innerDeco = innerDeco;\n if (contentDOM) { this.updateChildren(view, pos); }\n }\n\n if ( ViewDesc ) NodeViewDesc.__proto__ = ViewDesc;\n NodeViewDesc.prototype = Object.create( ViewDesc && ViewDesc.prototype );\n NodeViewDesc.prototype.constructor = NodeViewDesc;\n\n var prototypeAccessors$3 = { size: { configurable: true },border: { configurable: true },domAtom: { configurable: true } };\n\n // By default, a node is rendered using the `toDOM` method from the\n // node type spec. But client code can use the `nodeViews` spec to\n // supply a custom node view, which can influence various aspects of\n // the way the node works.\n //\n // (Using subclassing for this was intentionally decided against,\n // since it'd require exposing a whole slew of finicky\n // implementation details to the user code that they probably will\n // never need.)\n NodeViewDesc.create = function create (parent, node, outerDeco, innerDeco, view, pos) {\n var assign;\n\n var custom = view.nodeViews[node.type.name], descObj;\n var spec = custom && custom(node, view, function () {\n // (This is a function that allows the custom view to find its\n // own position)\n if (!descObj) { return pos }\n if (descObj.parent) { return descObj.parent.posBeforeChild(descObj) }\n }, outerDeco, innerDeco);\n\n var dom = spec && spec.dom, contentDOM = spec && spec.contentDOM;\n if (node.isText) {\n if (!dom) { dom = document.createTextNode(node.text); }\n else if (dom.nodeType != 3) { throw new RangeError(\"Text must be rendered as a DOM text node\") }\n } else if (!dom) {\n((assign = DOMSerializer.renderSpec(document, node.type.spec.toDOM(node)), dom = assign.dom, contentDOM = assign.contentDOM));\n }\n if (!contentDOM && !node.isText && dom.nodeName != \"BR\") { // Chrome gets confused by
        \n if (!dom.hasAttribute(\"contenteditable\")) { dom.contentEditable = false; }\n if (node.type.spec.draggable) { dom.draggable = true; }\n }\n\n var nodeDOM = dom;\n dom = applyOuterDeco(dom, outerDeco, node);\n\n if (spec)\n { return descObj = new CustomNodeViewDesc(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM,\n spec, view, pos + 1) }\n else if (node.isText)\n { return new TextViewDesc(parent, node, outerDeco, innerDeco, dom, nodeDOM, view) }\n else\n { return new NodeViewDesc(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, view, pos + 1) }\n };\n\n NodeViewDesc.prototype.parseRule = function parseRule () {\n var this$1 = this;\n\n // Experimental kludge to allow opt-in re-parsing of nodes\n if (this.node.type.spec.reparseInView) { return null }\n // FIXME the assumption that this can always return the current\n // attrs means that if the user somehow manages to change the\n // attrs in the dom, that won't be picked up. Not entirely sure\n // whether this is a problem\n var rule = {node: this.node.type.name, attrs: this.node.attrs};\n if (this.node.type.whitespace == \"pre\") { rule.preserveWhitespace = \"full\"; }\n if (this.contentDOM && !this.contentLost) { rule.contentElement = this.contentDOM; }\n else { rule.getContent = function () { return this$1.contentDOM ? Fragment.empty : this$1.node.content; }; }\n return rule\n };\n\n NodeViewDesc.prototype.matchesNode = function matchesNode (node, outerDeco, innerDeco) {\n return this.dirty == NOT_DIRTY && node.eq(this.node) &&\n sameOuterDeco(outerDeco, this.outerDeco) && innerDeco.eq(this.innerDeco)\n };\n\n prototypeAccessors$3.size.get = function () { return this.node.nodeSize };\n\n prototypeAccessors$3.border.get = function () { return this.node.isLeaf ? 0 : 1 };\n\n // Syncs `this.children` to match `this.node.content` and the local\n // decorations, possibly introducing nesting for marks. Then, in a\n // separate step, syncs the DOM inside `this.contentDOM` to\n // `this.children`.\n NodeViewDesc.prototype.updateChildren = function updateChildren (view, pos) {\n var this$1 = this;\n\n var inline = this.node.inlineContent, off = pos;\n var composition = view.composing && this.localCompositionInfo(view, pos);\n var localComposition = composition && composition.pos > -1 ? composition : null;\n var compositionInChild = composition && composition.pos < 0;\n var updater = new ViewTreeUpdater(this, localComposition && localComposition.node);\n iterDeco(this.node, this.innerDeco, function (widget, i, insideNode) {\n if (widget.spec.marks)\n { updater.syncToMarks(widget.spec.marks, inline, view); }\n else if (widget.type.side >= 0 && !insideNode)\n { updater.syncToMarks(i == this$1.node.childCount ? Mark.none : this$1.node.child(i).marks, inline, view); }\n // If the next node is a desc matching this widget, reuse it,\n // otherwise insert the widget as a new view desc.\n updater.placeWidget(widget, view, off);\n }, function (child, outerDeco, innerDeco, i) {\n // Make sure the wrapping mark descs match the node's marks.\n updater.syncToMarks(child.marks, inline, view);\n // Try several strategies for drawing this node\n var compIndex;\n if (updater.findNodeMatch(child, outerDeco, innerDeco, i)) ; else if (compositionInChild && view.state.selection.from > off &&\n view.state.selection.to < off + child.nodeSize &&\n (compIndex = updater.findIndexWithChild(composition.node)) > -1 &&\n updater.updateNodeAt(child, outerDeco, innerDeco, compIndex, view)) ; else if (updater.updateNextNode(child, outerDeco, innerDeco, view, i)) ; else {\n // Add it as a new view\n updater.addNode(child, outerDeco, innerDeco, view, off);\n }\n off += child.nodeSize;\n });\n // Drop all remaining descs after the current position.\n updater.syncToMarks(nothing, inline, view);\n if (this.node.isTextblock) { updater.addTextblockHacks(); }\n updater.destroyRest();\n\n // Sync the DOM if anything changed\n if (updater.changed || this.dirty == CONTENT_DIRTY) {\n // May have to protect focused DOM from being changed if a composition is active\n if (localComposition) { this.protectLocalComposition(view, localComposition); }\n renderDescs(this.contentDOM, this.children, view);\n if (result.ios) { iosHacks(this.dom); }\n }\n };\n\n NodeViewDesc.prototype.localCompositionInfo = function localCompositionInfo (view, pos) {\n // Only do something if both the selection and a focused text node\n // are inside of this node\n var ref = view.state.selection;\n var from = ref.from;\n var to = ref.to;\n if (!(view.state.selection instanceof TextSelection) || from < pos || to > pos + this.node.content.size) { return }\n var sel = view.root.getSelection();\n var textNode = nearbyTextNode(sel.focusNode, sel.focusOffset);\n if (!textNode || !this.dom.contains(textNode.parentNode)) { return }\n\n if (this.node.inlineContent) {\n // Find the text in the focused node in the node, stop if it's not\n // there (may have been modified through other means, in which\n // case it should overwritten)\n var text = textNode.nodeValue;\n var textPos = findTextInFragment(this.node.content, text, from - pos, to - pos);\n return textPos < 0 ? null : {node: textNode, pos: textPos, text: text}\n } else {\n return {node: textNode, pos: -1}\n }\n };\n\n NodeViewDesc.prototype.protectLocalComposition = function protectLocalComposition (view, ref) {\n var node = ref.node;\n var pos = ref.pos;\n var text = ref.text;\n\n // The node is already part of a local view desc, leave it there\n if (this.getDesc(node)) { return }\n\n // Create a composition view for the orphaned nodes\n var topNode = node;\n for (;; topNode = topNode.parentNode) {\n if (topNode.parentNode == this.contentDOM) { break }\n while (topNode.previousSibling) { topNode.parentNode.removeChild(topNode.previousSibling); }\n while (topNode.nextSibling) { topNode.parentNode.removeChild(topNode.nextSibling); }\n if (topNode.pmViewDesc) { topNode.pmViewDesc = null; }\n }\n var desc = new CompositionViewDesc(this, topNode, node, text);\n view.compositionNodes.push(desc);\n\n // Patch up this.children to contain the composition view\n this.children = replaceNodes(this.children, pos, pos + text.length, view, desc);\n };\n\n // : (Node, [Decoration], DecorationSource, EditorView) → bool\n // If this desc be updated to match the given node decoration,\n // do so and return true.\n NodeViewDesc.prototype.update = function update (node, outerDeco, innerDeco, view) {\n if (this.dirty == NODE_DIRTY ||\n !node.sameMarkup(this.node)) { return false }\n this.updateInner(node, outerDeco, innerDeco, view);\n return true\n };\n\n NodeViewDesc.prototype.updateInner = function updateInner (node, outerDeco, innerDeco, view) {\n this.updateOuterDeco(outerDeco);\n this.node = node;\n this.innerDeco = innerDeco;\n if (this.contentDOM) { this.updateChildren(view, this.posAtStart); }\n this.dirty = NOT_DIRTY;\n };\n\n NodeViewDesc.prototype.updateOuterDeco = function updateOuterDeco (outerDeco) {\n if (sameOuterDeco(outerDeco, this.outerDeco)) { return }\n var needsWrap = this.nodeDOM.nodeType != 1;\n var oldDOM = this.dom;\n this.dom = patchOuterDeco(this.dom, this.nodeDOM,\n computeOuterDeco(this.outerDeco, this.node, needsWrap),\n computeOuterDeco(outerDeco, this.node, needsWrap));\n if (this.dom != oldDOM) {\n oldDOM.pmViewDesc = null;\n this.dom.pmViewDesc = this;\n }\n this.outerDeco = outerDeco;\n };\n\n // Mark this node as being the selected node.\n NodeViewDesc.prototype.selectNode = function selectNode () {\n this.nodeDOM.classList.add(\"ProseMirror-selectednode\");\n if (this.contentDOM || !this.node.type.spec.draggable) { this.dom.draggable = true; }\n };\n\n // Remove selected node marking from this node.\n NodeViewDesc.prototype.deselectNode = function deselectNode () {\n this.nodeDOM.classList.remove(\"ProseMirror-selectednode\");\n if (this.contentDOM || !this.node.type.spec.draggable) { this.dom.removeAttribute(\"draggable\"); }\n };\n\n prototypeAccessors$3.domAtom.get = function () { return this.node.isAtom };\n\n Object.defineProperties( NodeViewDesc.prototype, prototypeAccessors$3 );\n\n return NodeViewDesc;\n}(ViewDesc));\n\n// Create a view desc for the top-level document node, to be exported\n// and used by the view class.\nfunction docViewDesc(doc, outerDeco, innerDeco, dom, view) {\n applyOuterDeco(dom, outerDeco, doc);\n return new NodeViewDesc(null, doc, outerDeco, innerDeco, dom, dom, dom, view, 0)\n}\n\nvar TextViewDesc = /*@__PURE__*/(function (NodeViewDesc) {\n function TextViewDesc(parent, node, outerDeco, innerDeco, dom, nodeDOM, view) {\n NodeViewDesc.call(this, parent, node, outerDeco, innerDeco, dom, null, nodeDOM, view);\n }\n\n if ( NodeViewDesc ) TextViewDesc.__proto__ = NodeViewDesc;\n TextViewDesc.prototype = Object.create( NodeViewDesc && NodeViewDesc.prototype );\n TextViewDesc.prototype.constructor = TextViewDesc;\n\n var prototypeAccessors$4 = { domAtom: { configurable: true } };\n\n TextViewDesc.prototype.parseRule = function parseRule () {\n var skip = this.nodeDOM.parentNode;\n while (skip && skip != this.dom && !skip.pmIsDeco) { skip = skip.parentNode; }\n return {skip: skip || true}\n };\n\n TextViewDesc.prototype.update = function update (node, outerDeco, _, view) {\n if (this.dirty == NODE_DIRTY || (this.dirty != NOT_DIRTY && !this.inParent()) ||\n !node.sameMarkup(this.node)) { return false }\n this.updateOuterDeco(outerDeco);\n if ((this.dirty != NOT_DIRTY || node.text != this.node.text) && node.text != this.nodeDOM.nodeValue) {\n this.nodeDOM.nodeValue = node.text;\n if (view.trackWrites == this.nodeDOM) { view.trackWrites = null; }\n }\n this.node = node;\n this.dirty = NOT_DIRTY;\n return true\n };\n\n TextViewDesc.prototype.inParent = function inParent () {\n var parentDOM = this.parent.contentDOM;\n for (var n = this.nodeDOM; n; n = n.parentNode) { if (n == parentDOM) { return true } }\n return false\n };\n\n TextViewDesc.prototype.domFromPos = function domFromPos (pos) {\n return {node: this.nodeDOM, offset: pos}\n };\n\n TextViewDesc.prototype.localPosFromDOM = function localPosFromDOM (dom, offset, bias) {\n if (dom == this.nodeDOM) { return this.posAtStart + Math.min(offset, this.node.text.length) }\n return NodeViewDesc.prototype.localPosFromDOM.call(this, dom, offset, bias)\n };\n\n TextViewDesc.prototype.ignoreMutation = function ignoreMutation (mutation) {\n return mutation.type != \"characterData\" && mutation.type != \"selection\"\n };\n\n TextViewDesc.prototype.slice = function slice (from, to, view) {\n var node = this.node.cut(from, to), dom = document.createTextNode(node.text);\n return new TextViewDesc(this.parent, node, this.outerDeco, this.innerDeco, dom, dom, view)\n };\n\n TextViewDesc.prototype.markDirty = function markDirty (from, to) {\n NodeViewDesc.prototype.markDirty.call(this, from, to);\n if (this.dom != this.nodeDOM && (from == 0 || to == this.nodeDOM.nodeValue.length))\n { this.dirty = NODE_DIRTY; }\n };\n\n prototypeAccessors$4.domAtom.get = function () { return false };\n\n Object.defineProperties( TextViewDesc.prototype, prototypeAccessors$4 );\n\n return TextViewDesc;\n}(NodeViewDesc));\n\n// A dummy desc used to tag trailing BR or IMG nodes created to work\n// around contentEditable terribleness.\nvar TrailingHackViewDesc = /*@__PURE__*/(function (ViewDesc) {\n function TrailingHackViewDesc () {\n ViewDesc.apply(this, arguments);\n }\n\n if ( ViewDesc ) TrailingHackViewDesc.__proto__ = ViewDesc;\n TrailingHackViewDesc.prototype = Object.create( ViewDesc && ViewDesc.prototype );\n TrailingHackViewDesc.prototype.constructor = TrailingHackViewDesc;\n\n var prototypeAccessors$5 = { domAtom: { configurable: true },ignoreForCoords: { configurable: true } };\n\n TrailingHackViewDesc.prototype.parseRule = function parseRule () { return {ignore: true} };\n TrailingHackViewDesc.prototype.matchesHack = function matchesHack (nodeName) { return this.dirty == NOT_DIRTY && this.dom.nodeName == nodeName };\n prototypeAccessors$5.domAtom.get = function () { return true };\n prototypeAccessors$5.ignoreForCoords.get = function () { return this.dom.nodeName == \"IMG\" };\n\n Object.defineProperties( TrailingHackViewDesc.prototype, prototypeAccessors$5 );\n\n return TrailingHackViewDesc;\n}(ViewDesc));\n\n// A separate subclass is used for customized node views, so that the\n// extra checks only have to be made for nodes that are actually\n// customized.\nvar CustomNodeViewDesc = /*@__PURE__*/(function (NodeViewDesc) {\n function CustomNodeViewDesc(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, spec, view, pos) {\n NodeViewDesc.call(this, parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, view, pos);\n this.spec = spec;\n }\n\n if ( NodeViewDesc ) CustomNodeViewDesc.__proto__ = NodeViewDesc;\n CustomNodeViewDesc.prototype = Object.create( NodeViewDesc && NodeViewDesc.prototype );\n CustomNodeViewDesc.prototype.constructor = CustomNodeViewDesc;\n\n // A custom `update` method gets to decide whether the update goes\n // through. If it does, and there's a `contentDOM` node, our logic\n // updates the children.\n CustomNodeViewDesc.prototype.update = function update (node, outerDeco, innerDeco, view) {\n if (this.dirty == NODE_DIRTY) { return false }\n if (this.spec.update) {\n var result = this.spec.update(node, outerDeco, innerDeco);\n if (result) { this.updateInner(node, outerDeco, innerDeco, view); }\n return result\n } else if (!this.contentDOM && !node.isLeaf) {\n return false\n } else {\n return NodeViewDesc.prototype.update.call(this, node, outerDeco, innerDeco, view)\n }\n };\n\n CustomNodeViewDesc.prototype.selectNode = function selectNode () {\n this.spec.selectNode ? this.spec.selectNode() : NodeViewDesc.prototype.selectNode.call(this);\n };\n\n CustomNodeViewDesc.prototype.deselectNode = function deselectNode () {\n this.spec.deselectNode ? this.spec.deselectNode() : NodeViewDesc.prototype.deselectNode.call(this);\n };\n\n CustomNodeViewDesc.prototype.setSelection = function setSelection (anchor, head, root, force) {\n this.spec.setSelection ? this.spec.setSelection(anchor, head, root)\n : NodeViewDesc.prototype.setSelection.call(this, anchor, head, root, force);\n };\n\n CustomNodeViewDesc.prototype.destroy = function destroy () {\n if (this.spec.destroy) { this.spec.destroy(); }\n NodeViewDesc.prototype.destroy.call(this);\n };\n\n CustomNodeViewDesc.prototype.stopEvent = function stopEvent (event) {\n return this.spec.stopEvent ? this.spec.stopEvent(event) : false\n };\n\n CustomNodeViewDesc.prototype.ignoreMutation = function ignoreMutation (mutation) {\n return this.spec.ignoreMutation ? this.spec.ignoreMutation(mutation) : NodeViewDesc.prototype.ignoreMutation.call(this, mutation)\n };\n\n return CustomNodeViewDesc;\n}(NodeViewDesc));\n\n// : (dom.Node, [ViewDesc])\n// Sync the content of the given DOM node with the nodes associated\n// with the given array of view descs, recursing into mark descs\n// because this should sync the subtree for a whole node at a time.\nfunction renderDescs(parentDOM, descs, view) {\n var dom = parentDOM.firstChild, written = false;\n for (var i = 0; i < descs.length; i++) {\n var desc = descs[i], childDOM = desc.dom;\n if (childDOM.parentNode == parentDOM) {\n while (childDOM != dom) { dom = rm(dom); written = true; }\n dom = dom.nextSibling;\n } else {\n written = true;\n parentDOM.insertBefore(childDOM, dom);\n }\n if (desc instanceof MarkViewDesc) {\n var pos = dom ? dom.previousSibling : parentDOM.lastChild;\n renderDescs(desc.contentDOM, desc.children, view);\n dom = pos ? pos.nextSibling : parentDOM.firstChild;\n }\n }\n while (dom) { dom = rm(dom); written = true; }\n if (written && view.trackWrites == parentDOM) { view.trackWrites = null; }\n}\n\nfunction OuterDecoLevel(nodeName) {\n if (nodeName) { this.nodeName = nodeName; }\n}\nOuterDecoLevel.prototype = Object.create(null);\n\nvar noDeco = [new OuterDecoLevel];\n\nfunction computeOuterDeco(outerDeco, node, needsWrap) {\n if (outerDeco.length == 0) { return noDeco }\n\n var top = needsWrap ? noDeco[0] : new OuterDecoLevel, result = [top];\n\n for (var i = 0; i < outerDeco.length; i++) {\n var attrs = outerDeco[i].type.attrs;\n if (!attrs) { continue }\n if (attrs.nodeName)\n { result.push(top = new OuterDecoLevel(attrs.nodeName)); }\n\n for (var name in attrs) {\n var val = attrs[name];\n if (val == null) { continue }\n if (needsWrap && result.length == 1)\n { result.push(top = new OuterDecoLevel(node.isInline ? \"span\" : \"div\")); }\n if (name == \"class\") { top.class = (top.class ? top.class + \" \" : \"\") + val; }\n else if (name == \"style\") { top.style = (top.style ? top.style + \";\" : \"\") + val; }\n else if (name != \"nodeName\") { top[name] = val; }\n }\n }\n\n return result\n}\n\nfunction patchOuterDeco(outerDOM, nodeDOM, prevComputed, curComputed) {\n // Shortcut for trivial case\n if (prevComputed == noDeco && curComputed == noDeco) { return nodeDOM }\n\n var curDOM = nodeDOM;\n for (var i = 0; i < curComputed.length; i++) {\n var deco = curComputed[i], prev = prevComputed[i];\n if (i) {\n var parent = (void 0);\n if (prev && prev.nodeName == deco.nodeName && curDOM != outerDOM &&\n (parent = curDOM.parentNode) && parent.tagName.toLowerCase() == deco.nodeName) {\n curDOM = parent;\n } else {\n parent = document.createElement(deco.nodeName);\n parent.pmIsDeco = true;\n parent.appendChild(curDOM);\n prev = noDeco[0];\n curDOM = parent;\n }\n }\n patchAttributes(curDOM, prev || noDeco[0], deco);\n }\n return curDOM\n}\n\nfunction patchAttributes(dom, prev, cur) {\n for (var name in prev)\n { if (name != \"class\" && name != \"style\" && name != \"nodeName\" && !(name in cur))\n { dom.removeAttribute(name); } }\n for (var name$1 in cur)\n { if (name$1 != \"class\" && name$1 != \"style\" && name$1 != \"nodeName\" && cur[name$1] != prev[name$1])\n { dom.setAttribute(name$1, cur[name$1]); } }\n if (prev.class != cur.class) {\n var prevList = prev.class ? prev.class.split(\" \").filter(Boolean) : nothing;\n var curList = cur.class ? cur.class.split(\" \").filter(Boolean) : nothing;\n for (var i = 0; i < prevList.length; i++) { if (curList.indexOf(prevList[i]) == -1)\n { dom.classList.remove(prevList[i]); } }\n for (var i$1 = 0; i$1 < curList.length; i$1++) { if (prevList.indexOf(curList[i$1]) == -1)\n { dom.classList.add(curList[i$1]); } }\n if (dom.classList.length == 0)\n { dom.removeAttribute(\"class\"); }\n }\n if (prev.style != cur.style) {\n if (prev.style) {\n var prop = /\\s*([\\w\\-\\xa1-\\uffff]+)\\s*:(?:\"(?:\\\\.|[^\"])*\"|'(?:\\\\.|[^'])*'|\\(.*?\\)|[^;])*/g, m;\n while (m = prop.exec(prev.style))\n { dom.style.removeProperty(m[1]); }\n }\n if (cur.style)\n { dom.style.cssText += cur.style; }\n }\n}\n\nfunction applyOuterDeco(dom, deco, node) {\n return patchOuterDeco(dom, dom, noDeco, computeOuterDeco(deco, node, dom.nodeType != 1))\n}\n\n// : ([Decoration], [Decoration]) → bool\nfunction sameOuterDeco(a, b) {\n if (a.length != b.length) { return false }\n for (var i = 0; i < a.length; i++) { if (!a[i].type.eq(b[i].type)) { return false } }\n return true\n}\n\n// Remove a DOM node and return its next sibling.\nfunction rm(dom) {\n var next = dom.nextSibling;\n dom.parentNode.removeChild(dom);\n return next\n}\n\n// Helper class for incrementally updating a tree of mark descs and\n// the widget and node descs inside of them.\nvar ViewTreeUpdater = function ViewTreeUpdater(top, lockedNode) {\n this.top = top;\n this.lock = lockedNode;\n // Index into `this.top`'s child array, represents the current\n // update position.\n this.index = 0;\n // When entering a mark, the current top and index are pushed\n // onto this.\n this.stack = [];\n // Tracks whether anything was changed\n this.changed = false;\n\n this.preMatch = preMatch(top.node.content, top);\n};\n\n// Destroy and remove the children between the given indices in\n// `this.top`.\nViewTreeUpdater.prototype.destroyBetween = function destroyBetween (start, end) {\n if (start == end) { return }\n for (var i = start; i < end; i++) { this.top.children[i].destroy(); }\n this.top.children.splice(start, end - start);\n this.changed = true;\n};\n\n// Destroy all remaining children in `this.top`.\nViewTreeUpdater.prototype.destroyRest = function destroyRest () {\n this.destroyBetween(this.index, this.top.children.length);\n};\n\n// : ([Mark], EditorView)\n// Sync the current stack of mark descs with the given array of\n// marks, reusing existing mark descs when possible.\nViewTreeUpdater.prototype.syncToMarks = function syncToMarks (marks, inline, view) {\n var keep = 0, depth = this.stack.length >> 1;\n var maxKeep = Math.min(depth, marks.length);\n while (keep < maxKeep &&\n (keep == depth - 1 ? this.top : this.stack[(keep + 1) << 1]).matchesMark(marks[keep]) && marks[keep].type.spec.spanning !== false)\n { keep++; }\n\n while (keep < depth) {\n this.destroyRest();\n this.top.dirty = NOT_DIRTY;\n this.index = this.stack.pop();\n this.top = this.stack.pop();\n depth--;\n }\n while (depth < marks.length) {\n this.stack.push(this.top, this.index + 1);\n var found = -1;\n for (var i = this.index; i < Math.min(this.index + 3, this.top.children.length); i++) {\n if (this.top.children[i].matchesMark(marks[depth])) { found = i; break }\n }\n if (found > -1) {\n if (found > this.index) {\n this.changed = true;\n this.destroyBetween(this.index, found);\n }\n this.top = this.top.children[this.index];\n } else {\n var markDesc = MarkViewDesc.create(this.top, marks[depth], inline, view);\n this.top.children.splice(this.index, 0, markDesc);\n this.top = markDesc;\n this.changed = true;\n }\n this.index = 0;\n depth++;\n }\n};\n\n// : (Node, [Decoration], DecorationSource) → bool\n// Try to find a node desc matching the given data. Skip over it and\n// return true when successful.\nViewTreeUpdater.prototype.findNodeMatch = function findNodeMatch (node, outerDeco, innerDeco, index) {\n var found = -1, targetDesc;\n if (index >= this.preMatch.index &&\n (targetDesc = this.preMatch.matches[index - this.preMatch.index]).parent == this.top &&\n targetDesc.matchesNode(node, outerDeco, innerDeco)) {\n found = this.top.children.indexOf(targetDesc, this.index);\n } else {\n for (var i = this.index, e = Math.min(this.top.children.length, i + 5); i < e; i++) {\n var child = this.top.children[i];\n if (child.matchesNode(node, outerDeco, innerDeco) && !this.preMatch.matched.has(child)) {\n found = i;\n break\n }\n }\n }\n if (found < 0) { return false }\n this.destroyBetween(this.index, found);\n this.index++;\n return true\n};\n\nViewTreeUpdater.prototype.updateNodeAt = function updateNodeAt (node, outerDeco, innerDeco, index, view) {\n var child = this.top.children[index];\n if (!child.update(node, outerDeco, innerDeco, view)) { return false }\n this.destroyBetween(this.index, index);\n this.index = index + 1;\n return true\n};\n\nViewTreeUpdater.prototype.findIndexWithChild = function findIndexWithChild (domNode) {\n for (;;) {\n var parent = domNode.parentNode;\n if (!parent) { return -1 }\n if (parent == this.top.contentDOM) {\n var desc = domNode.pmViewDesc;\n if (desc) { for (var i = this.index; i < this.top.children.length; i++) {\n if (this.top.children[i] == desc) { return i }\n } }\n return -1\n }\n domNode = parent;\n }\n};\n\n// : (Node, [Decoration], DecorationSource, EditorView, Fragment, number) → bool\n// Try to update the next node, if any, to the given data. Checks\n// pre-matches to avoid overwriting nodes that could still be used.\nViewTreeUpdater.prototype.updateNextNode = function updateNextNode (node, outerDeco, innerDeco, view, index) {\n for (var i = this.index; i < this.top.children.length; i++) {\n var next = this.top.children[i];\n if (next instanceof NodeViewDesc) {\n var preMatch = this.preMatch.matched.get(next);\n if (preMatch != null && preMatch != index) { return false }\n var nextDOM = next.dom;\n\n // Can't update if nextDOM is or contains this.lock, except if\n // it's a text node whose content already matches the new text\n // and whose decorations match the new ones.\n var locked = this.lock && (nextDOM == this.lock || nextDOM.nodeType == 1 && nextDOM.contains(this.lock.parentNode)) &&\n !(node.isText && next.node && next.node.isText && next.nodeDOM.nodeValue == node.text &&\n next.dirty != NODE_DIRTY && sameOuterDeco(outerDeco, next.outerDeco));\n if (!locked && next.update(node, outerDeco, innerDeco, view)) {\n this.destroyBetween(this.index, i);\n if (next.dom != nextDOM) { this.changed = true; }\n this.index++;\n return true\n }\n break\n }\n }\n return false\n};\n\n// : (Node, [Decoration], DecorationSource, EditorView)\n// Insert the node as a newly created node desc.\nViewTreeUpdater.prototype.addNode = function addNode (node, outerDeco, innerDeco, view, pos) {\n this.top.children.splice(this.index++, 0, NodeViewDesc.create(this.top, node, outerDeco, innerDeco, view, pos));\n this.changed = true;\n};\n\nViewTreeUpdater.prototype.placeWidget = function placeWidget (widget, view, pos) {\n var next = this.index < this.top.children.length ? this.top.children[this.index] : null;\n if (next && next.matchesWidget(widget) && (widget == next.widget || !next.widget.type.toDOM.parentNode)) {\n this.index++;\n } else {\n var desc = new WidgetViewDesc(this.top, widget, view, pos);\n this.top.children.splice(this.index++, 0, desc);\n this.changed = true;\n }\n};\n\n// Make sure a textblock looks and behaves correctly in\n// contentEditable.\nViewTreeUpdater.prototype.addTextblockHacks = function addTextblockHacks () {\n var lastChild = this.top.children[this.index - 1];\n while (lastChild instanceof MarkViewDesc) { lastChild = lastChild.children[lastChild.children.length - 1]; }\n\n if (!lastChild || // Empty textblock\n !(lastChild instanceof TextViewDesc) ||\n /\\n$/.test(lastChild.node.text)) {\n // Avoid bugs in Safari's cursor drawing (#1165) and Chrome's mouse selection (#1152)\n if ((result.safari || result.chrome) && lastChild && lastChild.dom.contentEditable == \"false\")\n { this.addHackNode(\"IMG\"); }\n this.addHackNode(\"BR\");\n }\n};\n\nViewTreeUpdater.prototype.addHackNode = function addHackNode (nodeName) {\n if (this.index < this.top.children.length && this.top.children[this.index].matchesHack(nodeName)) {\n this.index++;\n } else {\n var dom = document.createElement(nodeName);\n if (nodeName == \"IMG\") { dom.className = \"ProseMirror-separator\"; }\n if (nodeName == \"BR\") { dom.className = \"ProseMirror-trailingBreak\"; }\n this.top.children.splice(this.index++, 0, new TrailingHackViewDesc(this.top, nothing, dom, null));\n this.changed = true;\n }\n};\n\n// : (Fragment, [ViewDesc]) → {index: number, matched: Map, matches: ViewDesc[]}\n// Iterate from the end of the fragment and array of descs to find\n// directly matching ones, in order to avoid overeagerly reusing those\n// for other nodes. Returns the fragment index of the first node that\n// is part of the sequence of matched nodes at the end of the\n// fragment.\nfunction preMatch(frag, parentDesc) {\n var curDesc = parentDesc, descI = curDesc.children.length;\n var fI = frag.childCount, matched = new Map, matches = [];\n outer: while (fI > 0) {\n var desc = (void 0);\n for (;;) {\n if (descI) {\n var next = curDesc.children[descI - 1];\n if (next instanceof MarkViewDesc) {\n curDesc = next;\n descI = next.children.length;\n } else {\n desc = next;\n descI--;\n break\n }\n } else if (curDesc == parentDesc) {\n break outer\n } else {\n // FIXME\n descI = curDesc.parent.children.indexOf(curDesc);\n curDesc = curDesc.parent;\n }\n }\n var node = desc.node;\n if (!node) { continue }\n if (node != frag.child(fI - 1)) { break }\n --fI;\n matched.set(desc, fI);\n matches.push(desc);\n }\n return {index: fI, matched: matched, matches: matches.reverse()}\n}\n\nfunction compareSide(a, b) { return a.type.side - b.type.side }\n\n// : (ViewDesc, DecorationSource, (Decoration, number), (Node, [Decoration], DecorationSource, number))\n// This function abstracts iterating over the nodes and decorations in\n// a fragment. Calls `onNode` for each node, with its local and child\n// decorations. Splits text nodes when there is a decoration starting\n// or ending inside of them. Calls `onWidget` for each widget.\nfunction iterDeco(parent, deco, onWidget, onNode) {\n var locals = deco.locals(parent), offset = 0;\n // Simple, cheap variant for when there are no local decorations\n if (locals.length == 0) {\n for (var i = 0; i < parent.childCount; i++) {\n var child = parent.child(i);\n onNode(child, locals, deco.forChild(offset, child), i);\n offset += child.nodeSize;\n }\n return\n }\n\n var decoIndex = 0, active = [], restNode = null;\n for (var parentIndex = 0;;) {\n if (decoIndex < locals.length && locals[decoIndex].to == offset) {\n var widget = locals[decoIndex++], widgets = (void 0);\n while (decoIndex < locals.length && locals[decoIndex].to == offset)\n { (widgets || (widgets = [widget])).push(locals[decoIndex++]); }\n if (widgets) {\n widgets.sort(compareSide);\n for (var i$1 = 0; i$1 < widgets.length; i$1++) { onWidget(widgets[i$1], parentIndex, !!restNode); }\n } else {\n onWidget(widget, parentIndex, !!restNode);\n }\n }\n\n var child$1 = (void 0), index = (void 0);\n if (restNode) {\n index = -1;\n child$1 = restNode;\n restNode = null;\n } else if (parentIndex < parent.childCount) {\n index = parentIndex;\n child$1 = parent.child(parentIndex++);\n } else {\n break\n }\n\n for (var i$2 = 0; i$2 < active.length; i$2++) { if (active[i$2].to <= offset) { active.splice(i$2--, 1); } }\n while (decoIndex < locals.length && locals[decoIndex].from <= offset && locals[decoIndex].to > offset)\n { active.push(locals[decoIndex++]); }\n\n var end = offset + child$1.nodeSize;\n if (child$1.isText) {\n var cutAt = end;\n if (decoIndex < locals.length && locals[decoIndex].from < cutAt) { cutAt = locals[decoIndex].from; }\n for (var i$3 = 0; i$3 < active.length; i$3++) { if (active[i$3].to < cutAt) { cutAt = active[i$3].to; } }\n if (cutAt < end) {\n restNode = child$1.cut(cutAt - offset);\n child$1 = child$1.cut(0, cutAt - offset);\n end = cutAt;\n index = -1;\n }\n }\n\n var outerDeco = !active.length ? nothing\n : child$1.isInline && !child$1.isLeaf ? active.filter(function (d) { return !d.inline; })\n : active.slice();\n onNode(child$1, outerDeco, deco.forChild(offset, child$1), index);\n offset = end;\n }\n}\n\n// List markers in Mobile Safari will mysteriously disappear\n// sometimes. This works around that.\nfunction iosHacks(dom) {\n if (dom.nodeName == \"UL\" || dom.nodeName == \"OL\") {\n var oldCSS = dom.style.cssText;\n dom.style.cssText = oldCSS + \"; list-style: square !important\";\n window.getComputedStyle(dom).listStyle;\n dom.style.cssText = oldCSS;\n }\n}\n\nfunction nearbyTextNode(node, offset) {\n for (;;) {\n if (node.nodeType == 3) { return node }\n if (node.nodeType == 1 && offset > 0) {\n if (node.childNodes.length > offset && node.childNodes[offset].nodeType == 3)\n { return node.childNodes[offset] }\n node = node.childNodes[offset - 1];\n offset = nodeSize(node);\n } else if (node.nodeType == 1 && offset < node.childNodes.length) {\n node = node.childNodes[offset];\n offset = 0;\n } else {\n return null\n }\n }\n}\n\n// Find a piece of text in an inline fragment, overlapping from-to\nfunction findTextInFragment(frag, text, from, to) {\n for (var i = 0, pos = 0; i < frag.childCount && pos <= to;) {\n var child = frag.child(i++), childStart = pos;\n pos += child.nodeSize;\n if (!child.isText) { continue }\n var str = child.text;\n while (i < frag.childCount) {\n var next = frag.child(i++);\n pos += next.nodeSize;\n if (!next.isText) { break }\n str += next.text;\n }\n if (pos >= from && childStart < to) {\n var found = str.lastIndexOf(text, to - childStart - 1);\n if (found >= 0 && found + text.length + childStart >= from)\n { return childStart + found }\n }\n }\n return -1\n}\n\n// Replace range from-to in an array of view descs with replacement\n// (may be null to just delete). This goes very much against the grain\n// of the rest of this code, which tends to create nodes with the\n// right shape in one go, rather than messing with them after\n// creation, but is necessary in the composition hack.\nfunction replaceNodes(nodes, from, to, view, replacement) {\n var result = [];\n for (var i = 0, off = 0; i < nodes.length; i++) {\n var child = nodes[i], start = off, end = off += child.size;\n if (start >= to || end <= from) {\n result.push(child);\n } else {\n if (start < from) { result.push(child.slice(0, from - start, view)); }\n if (replacement) {\n result.push(replacement);\n replacement = null;\n }\n if (end > to) { result.push(child.slice(to - start, child.size, view)); }\n }\n }\n return result\n}\n\nfunction selectionFromDOM(view, origin) {\n var domSel = view.root.getSelection(), doc = view.state.doc;\n if (!domSel.focusNode) { return null }\n var nearestDesc = view.docView.nearestDesc(domSel.focusNode), inWidget = nearestDesc && nearestDesc.size == 0;\n var head = view.docView.posFromDOM(domSel.focusNode, domSel.focusOffset);\n if (head < 0) { return null }\n var $head = doc.resolve(head), $anchor, selection;\n if (selectionCollapsed(domSel)) {\n $anchor = $head;\n while (nearestDesc && !nearestDesc.node) { nearestDesc = nearestDesc.parent; }\n if (nearestDesc && nearestDesc.node.isAtom && NodeSelection.isSelectable(nearestDesc.node) && nearestDesc.parent\n && !(nearestDesc.node.isInline && isOnEdge(domSel.focusNode, domSel.focusOffset, nearestDesc.dom))) {\n var pos = nearestDesc.posBefore;\n selection = new NodeSelection(head == pos ? $head : doc.resolve(pos));\n }\n } else {\n var anchor = view.docView.posFromDOM(domSel.anchorNode, domSel.anchorOffset);\n if (anchor < 0) { return null }\n $anchor = doc.resolve(anchor);\n }\n\n if (!selection) {\n var bias = origin == \"pointer\" || (view.state.selection.head < $head.pos && !inWidget) ? 1 : -1;\n selection = selectionBetween(view, $anchor, $head, bias);\n }\n return selection\n}\n\nfunction editorOwnsSelection(view) {\n return view.editable ? view.hasFocus() :\n hasSelection(view) && document.activeElement && document.activeElement.contains(view.dom)\n}\n\nfunction selectionToDOM(view, force) {\n var sel = view.state.selection;\n syncNodeSelection(view, sel);\n\n if (!editorOwnsSelection(view)) { return }\n\n // The delayed drag selection causes issues with Cell Selections\n // in Safari. And the drag selection delay is to workarond issues\n // which only present in Chrome.\n if (!force && view.mouseDown && view.mouseDown.allowDefault && result.chrome) {\n var domSel = view.root.getSelection(), curSel = view.domObserver.currentSelection;\n if (domSel.anchorNode && isEquivalentPosition(domSel.anchorNode, domSel.anchorOffset,\n curSel.anchorNode, curSel.anchorOffset)) {\n view.mouseDown.delayedSelectionSync = true;\n view.domObserver.setCurSelection();\n return\n }\n }\n\n view.domObserver.disconnectSelection();\n\n if (view.cursorWrapper) {\n selectCursorWrapper(view);\n } else {\n var anchor = sel.anchor;\n var head = sel.head;\n var resetEditableFrom, resetEditableTo;\n if (brokenSelectBetweenUneditable && !(sel instanceof TextSelection)) {\n if (!sel.$from.parent.inlineContent)\n { resetEditableFrom = temporarilyEditableNear(view, sel.from); }\n if (!sel.empty && !sel.$from.parent.inlineContent)\n { resetEditableTo = temporarilyEditableNear(view, sel.to); }\n }\n view.docView.setSelection(anchor, head, view.root, force);\n if (brokenSelectBetweenUneditable) {\n if (resetEditableFrom) { resetEditable(resetEditableFrom); }\n if (resetEditableTo) { resetEditable(resetEditableTo); }\n }\n if (sel.visible) {\n view.dom.classList.remove(\"ProseMirror-hideselection\");\n } else {\n view.dom.classList.add(\"ProseMirror-hideselection\");\n if (\"onselectionchange\" in document) { removeClassOnSelectionChange(view); }\n }\n }\n\n view.domObserver.setCurSelection();\n view.domObserver.connectSelection();\n}\n\n// Kludge to work around Webkit not allowing a selection to start/end\n// between non-editable block nodes. We briefly make something\n// editable, set the selection, then set it uneditable again.\n\nvar brokenSelectBetweenUneditable = result.safari || result.chrome && result.chrome_version < 63;\n\nfunction temporarilyEditableNear(view, pos) {\n var ref = view.docView.domFromPos(pos, 0);\n var node = ref.node;\n var offset = ref.offset;\n var after = offset < node.childNodes.length ? node.childNodes[offset] : null;\n var before = offset ? node.childNodes[offset - 1] : null;\n if (result.safari && after && after.contentEditable == \"false\") { return setEditable(after) }\n if ((!after || after.contentEditable == \"false\") && (!before || before.contentEditable == \"false\")) {\n if (after) { return setEditable(after) }\n else if (before) { return setEditable(before) }\n }\n}\n\nfunction setEditable(element) {\n element.contentEditable = \"true\";\n if (result.safari && element.draggable) { element.draggable = false; element.wasDraggable = true; }\n return element\n}\n\nfunction resetEditable(element) {\n element.contentEditable = \"false\";\n if (element.wasDraggable) { element.draggable = true; element.wasDraggable = null; }\n}\n\nfunction removeClassOnSelectionChange(view) {\n var doc = view.dom.ownerDocument;\n doc.removeEventListener(\"selectionchange\", view.hideSelectionGuard);\n var domSel = view.root.getSelection();\n var node = domSel.anchorNode, offset = domSel.anchorOffset;\n doc.addEventListener(\"selectionchange\", view.hideSelectionGuard = function () {\n if (domSel.anchorNode != node || domSel.anchorOffset != offset) {\n doc.removeEventListener(\"selectionchange\", view.hideSelectionGuard);\n setTimeout(function () {\n if (!editorOwnsSelection(view) || view.state.selection.visible)\n { view.dom.classList.remove(\"ProseMirror-hideselection\"); }\n }, 20);\n }\n });\n}\n\nfunction selectCursorWrapper(view) {\n var domSel = view.root.getSelection(), range = document.createRange();\n var node = view.cursorWrapper.dom, img = node.nodeName == \"IMG\";\n if (img) { range.setEnd(node.parentNode, domIndex(node) + 1); }\n else { range.setEnd(node, 0); }\n range.collapse(false);\n domSel.removeAllRanges();\n domSel.addRange(range);\n // Kludge to kill 'control selection' in IE11 when selecting an\n // invisible cursor wrapper, since that would result in those weird\n // resize handles and a selection that considers the absolutely\n // positioned wrapper, rather than the root editable node, the\n // focused element.\n if (!img && !view.state.selection.visible && result.ie && result.ie_version <= 11) {\n node.disabled = true;\n node.disabled = false;\n }\n}\n\nfunction syncNodeSelection(view, sel) {\n if (sel instanceof NodeSelection) {\n var desc = view.docView.descAt(sel.from);\n if (desc != view.lastSelectedViewDesc) {\n clearNodeSelection(view);\n if (desc) { desc.selectNode(); }\n view.lastSelectedViewDesc = desc;\n }\n } else {\n clearNodeSelection(view);\n }\n}\n\n// Clear all DOM statefulness of the last node selection.\nfunction clearNodeSelection(view) {\n if (view.lastSelectedViewDesc) {\n if (view.lastSelectedViewDesc.parent)\n { view.lastSelectedViewDesc.deselectNode(); }\n view.lastSelectedViewDesc = null;\n }\n}\n\nfunction selectionBetween(view, $anchor, $head, bias) {\n return view.someProp(\"createSelectionBetween\", function (f) { return f(view, $anchor, $head); })\n || TextSelection.between($anchor, $head, bias)\n}\n\nfunction hasFocusAndSelection(view) {\n if (view.editable && view.root.activeElement != view.dom) { return false }\n return hasSelection(view)\n}\n\nfunction hasSelection(view) {\n var sel = view.root.getSelection();\n if (!sel.anchorNode) { return false }\n try {\n // Firefox will raise 'permission denied' errors when accessing\n // properties of `sel.anchorNode` when it's in a generated CSS\n // element.\n return view.dom.contains(sel.anchorNode.nodeType == 3 ? sel.anchorNode.parentNode : sel.anchorNode) &&\n (view.editable || view.dom.contains(sel.focusNode.nodeType == 3 ? sel.focusNode.parentNode : sel.focusNode))\n } catch(_) {\n return false\n }\n}\n\nfunction anchorInRightPlace(view) {\n var anchorDOM = view.docView.domFromPos(view.state.selection.anchor, 0);\n var domSel = view.root.getSelection();\n return isEquivalentPosition(anchorDOM.node, anchorDOM.offset, domSel.anchorNode, domSel.anchorOffset)\n}\n\nfunction moveSelectionBlock(state, dir) {\n var ref = state.selection;\n var $anchor = ref.$anchor;\n var $head = ref.$head;\n var $side = dir > 0 ? $anchor.max($head) : $anchor.min($head);\n var $start = !$side.parent.inlineContent ? $side : $side.depth ? state.doc.resolve(dir > 0 ? $side.after() : $side.before()) : null;\n return $start && Selection.findFrom($start, dir)\n}\n\nfunction apply(view, sel) {\n view.dispatch(view.state.tr.setSelection(sel).scrollIntoView());\n return true\n}\n\nfunction selectHorizontally(view, dir, mods) {\n var sel = view.state.selection;\n if (sel instanceof TextSelection) {\n if (!sel.empty || mods.indexOf(\"s\") > -1) {\n return false\n } else if (view.endOfTextblock(dir > 0 ? \"right\" : \"left\")) {\n var next = moveSelectionBlock(view.state, dir);\n if (next && (next instanceof NodeSelection)) { return apply(view, next) }\n return false\n } else if (!(result.mac && mods.indexOf(\"m\") > -1)) {\n var $head = sel.$head, node = $head.textOffset ? null : dir < 0 ? $head.nodeBefore : $head.nodeAfter, desc;\n if (!node || node.isText) { return false }\n var nodePos = dir < 0 ? $head.pos - node.nodeSize : $head.pos;\n if (!(node.isAtom || (desc = view.docView.descAt(nodePos)) && !desc.contentDOM)) { return false }\n if (NodeSelection.isSelectable(node)) {\n return apply(view, new NodeSelection(dir < 0 ? view.state.doc.resolve($head.pos - node.nodeSize) : $head))\n } else if (result.webkit) {\n // Chrome and Safari will introduce extra pointless cursor\n // positions around inline uneditable nodes, so we have to\n // take over and move the cursor past them (#937)\n return apply(view, new TextSelection(view.state.doc.resolve(dir < 0 ? nodePos : nodePos + node.nodeSize)))\n } else {\n return false\n }\n }\n } else if (sel instanceof NodeSelection && sel.node.isInline) {\n return apply(view, new TextSelection(dir > 0 ? sel.$to : sel.$from))\n } else {\n var next$1 = moveSelectionBlock(view.state, dir);\n if (next$1) { return apply(view, next$1) }\n return false\n }\n}\n\nfunction nodeLen(node) {\n return node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length\n}\n\nfunction isIgnorable(dom) {\n var desc = dom.pmViewDesc;\n return desc && desc.size == 0 && (dom.nextSibling || dom.nodeName != \"BR\")\n}\n\n// Make sure the cursor isn't directly after one or more ignored\n// nodes, which will confuse the browser's cursor motion logic.\nfunction skipIgnoredNodesLeft(view) {\n var sel = view.root.getSelection();\n var node = sel.focusNode, offset = sel.focusOffset;\n if (!node) { return }\n var moveNode, moveOffset, force = false;\n // Gecko will do odd things when the selection is directly in front\n // of a non-editable node, so in that case, move it into the next\n // node if possible. Issue prosemirror/prosemirror#832.\n if (result.gecko && node.nodeType == 1 && offset < nodeLen(node) && isIgnorable(node.childNodes[offset])) { force = true; }\n for (;;) {\n if (offset > 0) {\n if (node.nodeType != 1) {\n break\n } else {\n var before = node.childNodes[offset - 1];\n if (isIgnorable(before)) {\n moveNode = node;\n moveOffset = --offset;\n } else if (before.nodeType == 3) {\n node = before;\n offset = node.nodeValue.length;\n } else { break }\n }\n } else if (isBlockNode(node)) {\n break\n } else {\n var prev = node.previousSibling;\n while (prev && isIgnorable(prev)) {\n moveNode = node.parentNode;\n moveOffset = domIndex(prev);\n prev = prev.previousSibling;\n }\n if (!prev) {\n node = node.parentNode;\n if (node == view.dom) { break }\n offset = 0;\n } else {\n node = prev;\n offset = nodeLen(node);\n }\n }\n }\n if (force) { setSelFocus(view, sel, node, offset); }\n else if (moveNode) { setSelFocus(view, sel, moveNode, moveOffset); }\n}\n\n// Make sure the cursor isn't directly before one or more ignored\n// nodes.\nfunction skipIgnoredNodesRight(view) {\n var sel = view.root.getSelection();\n var node = sel.focusNode, offset = sel.focusOffset;\n if (!node) { return }\n var len = nodeLen(node);\n var moveNode, moveOffset;\n for (;;) {\n if (offset < len) {\n if (node.nodeType != 1) { break }\n var after = node.childNodes[offset];\n if (isIgnorable(after)) {\n moveNode = node;\n moveOffset = ++offset;\n }\n else { break }\n } else if (isBlockNode(node)) {\n break\n } else {\n var next = node.nextSibling;\n while (next && isIgnorable(next)) {\n moveNode = next.parentNode;\n moveOffset = domIndex(next) + 1;\n next = next.nextSibling;\n }\n if (!next) {\n node = node.parentNode;\n if (node == view.dom) { break }\n offset = len = 0;\n } else {\n node = next;\n offset = 0;\n len = nodeLen(node);\n }\n }\n }\n if (moveNode) { setSelFocus(view, sel, moveNode, moveOffset); }\n}\n\nfunction isBlockNode(dom) {\n var desc = dom.pmViewDesc;\n return desc && desc.node && desc.node.isBlock\n}\n\nfunction setSelFocus(view, sel, node, offset) {\n if (selectionCollapsed(sel)) {\n var range = document.createRange();\n range.setEnd(node, offset);\n range.setStart(node, offset);\n sel.removeAllRanges();\n sel.addRange(range);\n } else if (sel.extend) {\n sel.extend(node, offset);\n }\n view.domObserver.setCurSelection();\n var state = view.state;\n // If no state update ends up happening, reset the selection.\n setTimeout(function () {\n if (view.state == state) { selectionToDOM(view); }\n }, 50);\n}\n\n// : (EditorState, number)\n// Check whether vertical selection motion would involve node\n// selections. If so, apply it (if not, the result is left to the\n// browser)\nfunction selectVertically(view, dir, mods) {\n var sel = view.state.selection;\n if (sel instanceof TextSelection && !sel.empty || mods.indexOf(\"s\") > -1) { return false }\n if (result.mac && mods.indexOf(\"m\") > -1) { return false }\n var $from = sel.$from;\n var $to = sel.$to;\n\n if (!$from.parent.inlineContent || view.endOfTextblock(dir < 0 ? \"up\" : \"down\")) {\n var next = moveSelectionBlock(view.state, dir);\n if (next && (next instanceof NodeSelection))\n { return apply(view, next) }\n }\n if (!$from.parent.inlineContent) {\n var side = dir < 0 ? $from : $to;\n var beyond = sel instanceof AllSelection ? Selection.near(side, dir) : Selection.findFrom(side, dir);\n return beyond ? apply(view, beyond) : false\n }\n return false\n}\n\nfunction stopNativeHorizontalDelete(view, dir) {\n if (!(view.state.selection instanceof TextSelection)) { return true }\n var ref = view.state.selection;\n var $head = ref.$head;\n var $anchor = ref.$anchor;\n var empty = ref.empty;\n if (!$head.sameParent($anchor)) { return true }\n if (!empty) { return false }\n if (view.endOfTextblock(dir > 0 ? \"forward\" : \"backward\")) { return true }\n var nextNode = !$head.textOffset && (dir < 0 ? $head.nodeBefore : $head.nodeAfter);\n if (nextNode && !nextNode.isText) {\n var tr = view.state.tr;\n if (dir < 0) { tr.delete($head.pos - nextNode.nodeSize, $head.pos); }\n else { tr.delete($head.pos, $head.pos + nextNode.nodeSize); }\n view.dispatch(tr);\n return true\n }\n return false\n}\n\nfunction switchEditable(view, node, state) {\n view.domObserver.stop();\n node.contentEditable = state;\n view.domObserver.start();\n}\n\n// Issue #867 / #1090 / https://bugs.chromium.org/p/chromium/issues/detail?id=903821\n// In which Safari (and at some point in the past, Chrome) does really\n// wrong things when the down arrow is pressed when the cursor is\n// directly at the start of a textblock and has an uneditable node\n// after it\nfunction safariDownArrowBug(view) {\n if (!result.safari || view.state.selection.$head.parentOffset > 0) { return }\n var ref = view.root.getSelection();\n var focusNode = ref.focusNode;\n var focusOffset = ref.focusOffset;\n if (focusNode && focusNode.nodeType == 1 && focusOffset == 0 &&\n focusNode.firstChild && focusNode.firstChild.contentEditable == \"false\") {\n var child = focusNode.firstChild;\n switchEditable(view, child, true);\n setTimeout(function () { return switchEditable(view, child, false); }, 20);\n }\n}\n\n// A backdrop key mapping used to make sure we always suppress keys\n// that have a dangerous default effect, even if the commands they are\n// bound to return false, and to make sure that cursor-motion keys\n// find a cursor (as opposed to a node selection) when pressed. For\n// cursor-motion keys, the code in the handlers also takes care of\n// block selections.\n\nfunction getMods(event) {\n var result = \"\";\n if (event.ctrlKey) { result += \"c\"; }\n if (event.metaKey) { result += \"m\"; }\n if (event.altKey) { result += \"a\"; }\n if (event.shiftKey) { result += \"s\"; }\n return result\n}\n\nfunction captureKeyDown(view, event) {\n var code = event.keyCode, mods = getMods(event);\n if (code == 8 || (result.mac && code == 72 && mods == \"c\")) { // Backspace, Ctrl-h on Mac\n return stopNativeHorizontalDelete(view, -1) || skipIgnoredNodesLeft(view)\n } else if (code == 46 || (result.mac && code == 68 && mods == \"c\")) { // Delete, Ctrl-d on Mac\n return stopNativeHorizontalDelete(view, 1) || skipIgnoredNodesRight(view)\n } else if (code == 13 || code == 27) { // Enter, Esc\n return true\n } else if (code == 37) { // Left arrow\n return selectHorizontally(view, -1, mods) || skipIgnoredNodesLeft(view)\n } else if (code == 39) { // Right arrow\n return selectHorizontally(view, 1, mods) || skipIgnoredNodesRight(view)\n } else if (code == 38) { // Up arrow\n return selectVertically(view, -1, mods) || skipIgnoredNodesLeft(view)\n } else if (code == 40) { // Down arrow\n return safariDownArrowBug(view) || selectVertically(view, 1, mods) || skipIgnoredNodesRight(view)\n } else if (mods == (result.mac ? \"m\" : \"c\") &&\n (code == 66 || code == 73 || code == 89 || code == 90)) { // Mod-[biyz]\n return true\n }\n return false\n}\n\n// Note that all referencing and parsing is done with the\n// start-of-operation selection and document, since that's the one\n// that the DOM represents. If any changes came in in the meantime,\n// the modification is mapped over those before it is applied, in\n// readDOMChange.\n\nfunction parseBetween(view, from_, to_) {\n var ref = view.docView.parseRange(from_, to_);\n var parent = ref.node;\n var fromOffset = ref.fromOffset;\n var toOffset = ref.toOffset;\n var from = ref.from;\n var to = ref.to;\n\n var domSel = view.root.getSelection(), find = null, anchor = domSel.anchorNode;\n if (anchor && view.dom.contains(anchor.nodeType == 1 ? anchor : anchor.parentNode)) {\n find = [{node: anchor, offset: domSel.anchorOffset}];\n if (!selectionCollapsed(domSel))\n { find.push({node: domSel.focusNode, offset: domSel.focusOffset}); }\n }\n // Work around issue in Chrome where backspacing sometimes replaces\n // the deleted content with a random BR node (issues #799, #831)\n if (result.chrome && view.lastKeyCode === 8) {\n for (var off = toOffset; off > fromOffset; off--) {\n var node = parent.childNodes[off - 1], desc = node.pmViewDesc;\n if (node.nodeName == \"BR\" && !desc) { toOffset = off; break }\n if (!desc || desc.size) { break }\n }\n }\n var startDoc = view.state.doc;\n var parser = view.someProp(\"domParser\") || DOMParser.fromSchema(view.state.schema);\n var $from = startDoc.resolve(from);\n\n var sel = null, doc = parser.parse(parent, {\n topNode: $from.parent,\n topMatch: $from.parent.contentMatchAt($from.index()),\n topOpen: true,\n from: fromOffset,\n to: toOffset,\n preserveWhitespace: $from.parent.type.whitespace == \"pre\" ? \"full\" : true,\n editableContent: true,\n findPositions: find,\n ruleFromNode: ruleFromNode,\n context: $from\n });\n if (find && find[0].pos != null) {\n var anchor$1 = find[0].pos, head = find[1] && find[1].pos;\n if (head == null) { head = anchor$1; }\n sel = {anchor: anchor$1 + from, head: head + from};\n }\n return {doc: doc, sel: sel, from: from, to: to}\n}\n\nfunction ruleFromNode(dom) {\n var desc = dom.pmViewDesc;\n if (desc) {\n return desc.parseRule()\n } else if (dom.nodeName == \"BR\" && dom.parentNode) {\n // Safari replaces the list item or table cell with a BR\n // directly in the list node (?!) if you delete the last\n // character in a list item or table cell (#708, #862)\n if (result.safari && /^(ul|ol)$/i.test(dom.parentNode.nodeName)) {\n var skip = document.createElement(\"div\");\n skip.appendChild(document.createElement(\"li\"));\n return {skip: skip}\n } else if (dom.parentNode.lastChild == dom || result.safari && /^(tr|table)$/i.test(dom.parentNode.nodeName)) {\n return {ignore: true}\n }\n } else if (dom.nodeName == \"IMG\" && dom.getAttribute(\"mark-placeholder\")) {\n return {ignore: true}\n }\n}\n\nfunction readDOMChange(view, from, to, typeOver, addedNodes) {\n if (from < 0) {\n var origin = view.lastSelectionTime > Date.now() - 50 ? view.lastSelectionOrigin : null;\n var newSel = selectionFromDOM(view, origin);\n if (newSel && !view.state.selection.eq(newSel)) {\n var tr$1 = view.state.tr.setSelection(newSel);\n if (origin == \"pointer\") { tr$1.setMeta(\"pointer\", true); }\n else if (origin == \"key\") { tr$1.scrollIntoView(); }\n view.dispatch(tr$1);\n }\n return\n }\n\n var $before = view.state.doc.resolve(from);\n var shared = $before.sharedDepth(to);\n from = $before.before(shared + 1);\n to = view.state.doc.resolve(to).after(shared + 1);\n\n var sel = view.state.selection;\n var parse = parseBetween(view, from, to);\n // Chrome sometimes leaves the cursor before the inserted text when\n // composing after a cursor wrapper. This moves it forward.\n if (result.chrome && view.cursorWrapper && parse.sel && parse.sel.anchor == view.cursorWrapper.deco.from) {\n var text = view.cursorWrapper.deco.type.toDOM.nextSibling;\n var size = text && text.nodeValue ? text.nodeValue.length : 1;\n parse.sel = {anchor: parse.sel.anchor + size, head: parse.sel.anchor + size};\n }\n\n var doc = view.state.doc, compare = doc.slice(parse.from, parse.to);\n var preferredPos, preferredSide;\n // Prefer anchoring to end when Backspace is pressed\n if (view.lastKeyCode === 8 && Date.now() - 100 < view.lastKeyCodeTime) {\n preferredPos = view.state.selection.to;\n preferredSide = \"end\";\n } else {\n preferredPos = view.state.selection.from;\n preferredSide = \"start\";\n }\n view.lastKeyCode = null;\n\n var change = findDiff(compare.content, parse.doc.content, parse.from, preferredPos, preferredSide);\n if (!change) {\n if (typeOver && sel instanceof TextSelection && !sel.empty && sel.$head.sameParent(sel.$anchor) &&\n !view.composing && !(parse.sel && parse.sel.anchor != parse.sel.head)) {\n change = {start: sel.from, endA: sel.to, endB: sel.to};\n } else if ((result.ios && view.lastIOSEnter > Date.now() - 225 || result.android) &&\n addedNodes.some(function (n) { return n.nodeName == \"DIV\" || n.nodeName == \"P\"; }) &&\n view.someProp(\"handleKeyDown\", function (f) { return f(view, keyEvent(13, \"Enter\")); })) {\n view.lastIOSEnter = 0;\n return\n } else {\n if (parse.sel) {\n var sel$1 = resolveSelection(view, view.state.doc, parse.sel);\n if (sel$1 && !sel$1.eq(view.state.selection)) { view.dispatch(view.state.tr.setSelection(sel$1)); }\n }\n return\n }\n }\n view.domChangeCount++;\n // Handle the case where overwriting a selection by typing matches\n // the start or end of the selected content, creating a change\n // that's smaller than what was actually overwritten.\n if (view.state.selection.from < view.state.selection.to &&\n change.start == change.endB &&\n view.state.selection instanceof TextSelection) {\n if (change.start > view.state.selection.from && change.start <= view.state.selection.from + 2) {\n change.start = view.state.selection.from;\n } else if (change.endA < view.state.selection.to && change.endA >= view.state.selection.to - 2) {\n change.endB += (view.state.selection.to - change.endA);\n change.endA = view.state.selection.to;\n }\n }\n\n // IE11 will insert a non-breaking space _ahead_ of the space after\n // the cursor space when adding a space before another space. When\n // that happened, adjust the change to cover the space instead.\n if (result.ie && result.ie_version <= 11 && change.endB == change.start + 1 &&\n change.endA == change.start && change.start > parse.from &&\n parse.doc.textBetween(change.start - parse.from - 1, change.start - parse.from + 1) == \" \\u00a0\") {\n change.start--;\n change.endA--;\n change.endB--;\n }\n\n var $from = parse.doc.resolveNoCache(change.start - parse.from);\n var $to = parse.doc.resolveNoCache(change.endB - parse.from);\n var inlineChange = $from.sameParent($to) && $from.parent.inlineContent;\n var nextSel;\n // If this looks like the effect of pressing Enter (or was recorded\n // as being an iOS enter press), just dispatch an Enter key instead.\n if (((result.ios && view.lastIOSEnter > Date.now() - 225 &&\n (!inlineChange || addedNodes.some(function (n) { return n.nodeName == \"DIV\" || n.nodeName == \"P\"; }))) ||\n (!inlineChange && $from.pos < parse.doc.content.size &&\n (nextSel = Selection.findFrom(parse.doc.resolve($from.pos + 1), 1, true)) &&\n nextSel.head == $to.pos)) &&\n view.someProp(\"handleKeyDown\", function (f) { return f(view, keyEvent(13, \"Enter\")); })) {\n view.lastIOSEnter = 0;\n return\n }\n // Same for backspace\n if (view.state.selection.anchor > change.start &&\n looksLikeJoin(doc, change.start, change.endA, $from, $to) &&\n view.someProp(\"handleKeyDown\", function (f) { return f(view, keyEvent(8, \"Backspace\")); })) {\n if (result.android && result.chrome) { view.domObserver.suppressSelectionUpdates(); } // #820\n return\n }\n\n // Chrome Android will occasionally, during composition, delete the\n // entire composition and then immediately insert it again. This is\n // used to detect that situation.\n if (result.chrome && result.android && change.toB == change.from)\n { view.lastAndroidDelete = Date.now(); }\n\n // This tries to detect Android virtual keyboard\n // enter-and-pick-suggestion action. That sometimes (see issue\n // #1059) first fires a DOM mutation, before moving the selection to\n // the newly created block. And then, because ProseMirror cleans up\n // the DOM selection, it gives up moving the selection entirely,\n // leaving the cursor in the wrong place. When that happens, we drop\n // the new paragraph from the initial change, and fire a simulated\n // enter key afterwards.\n if (result.android && !inlineChange && $from.start() != $to.start() && $to.parentOffset == 0 && $from.depth == $to.depth &&\n parse.sel && parse.sel.anchor == parse.sel.head && parse.sel.head == change.endA) {\n change.endB -= 2;\n $to = parse.doc.resolveNoCache(change.endB - parse.from);\n setTimeout(function () {\n view.someProp(\"handleKeyDown\", function (f) { return f(view, keyEvent(13, \"Enter\")); });\n }, 20);\n }\n\n var chFrom = change.start, chTo = change.endA;\n\n var tr, storedMarks, markChange, $from1;\n if (inlineChange) {\n if ($from.pos == $to.pos) { // Deletion\n // IE11 sometimes weirdly moves the DOM selection around after\n // backspacing out the first element in a textblock\n if (result.ie && result.ie_version <= 11 && $from.parentOffset == 0) {\n view.domObserver.suppressSelectionUpdates();\n setTimeout(function () { return selectionToDOM(view); }, 20);\n }\n tr = view.state.tr.delete(chFrom, chTo);\n storedMarks = doc.resolve(change.start).marksAcross(doc.resolve(change.endA));\n } else if ( // Adding or removing a mark\n change.endA == change.endB && ($from1 = doc.resolve(change.start)) &&\n (markChange = isMarkChange($from.parent.content.cut($from.parentOffset, $to.parentOffset),\n $from1.parent.content.cut($from1.parentOffset, change.endA - $from1.start())))\n ) {\n tr = view.state.tr;\n if (markChange.type == \"add\") { tr.addMark(chFrom, chTo, markChange.mark); }\n else { tr.removeMark(chFrom, chTo, markChange.mark); }\n } else if ($from.parent.child($from.index()).isText && $from.index() == $to.index() - ($to.textOffset ? 0 : 1)) {\n // Both positions in the same text node -- simply insert text\n var text$1 = $from.parent.textBetween($from.parentOffset, $to.parentOffset);\n if (view.someProp(\"handleTextInput\", function (f) { return f(view, chFrom, chTo, text$1); })) { return }\n tr = view.state.tr.insertText(text$1, chFrom, chTo);\n }\n }\n\n if (!tr)\n { tr = view.state.tr.replace(chFrom, chTo, parse.doc.slice(change.start - parse.from, change.endB - parse.from)); }\n if (parse.sel) {\n var sel$2 = resolveSelection(view, tr.doc, parse.sel);\n // Chrome Android will sometimes, during composition, report the\n // selection in the wrong place. If it looks like that is\n // happening, don't update the selection.\n // Edge just doesn't move the cursor forward when you start typing\n // in an empty block or between br nodes.\n if (sel$2 && !(result.chrome && result.android && view.composing && sel$2.empty &&\n (change.start != change.endB || view.lastAndroidDelete < Date.now() - 100) &&\n (sel$2.head == chFrom || sel$2.head == tr.mapping.map(chTo) - 1) ||\n result.ie && sel$2.empty && sel$2.head == chFrom))\n { tr.setSelection(sel$2); }\n }\n if (storedMarks) { tr.ensureMarks(storedMarks); }\n view.dispatch(tr.scrollIntoView());\n}\n\nfunction resolveSelection(view, doc, parsedSel) {\n if (Math.max(parsedSel.anchor, parsedSel.head) > doc.content.size) { return null }\n return selectionBetween(view, doc.resolve(parsedSel.anchor), doc.resolve(parsedSel.head))\n}\n\n// : (Fragment, Fragment) → ?{mark: Mark, type: string}\n// Given two same-length, non-empty fragments of inline content,\n// determine whether the first could be created from the second by\n// removing or adding a single mark type.\nfunction isMarkChange(cur, prev) {\n var curMarks = cur.firstChild.marks, prevMarks = prev.firstChild.marks;\n var added = curMarks, removed = prevMarks, type, mark, update;\n for (var i = 0; i < prevMarks.length; i++) { added = prevMarks[i].removeFromSet(added); }\n for (var i$1 = 0; i$1 < curMarks.length; i$1++) { removed = curMarks[i$1].removeFromSet(removed); }\n if (added.length == 1 && removed.length == 0) {\n mark = added[0];\n type = \"add\";\n update = function (node) { return node.mark(mark.addToSet(node.marks)); };\n } else if (added.length == 0 && removed.length == 1) {\n mark = removed[0];\n type = \"remove\";\n update = function (node) { return node.mark(mark.removeFromSet(node.marks)); };\n } else {\n return null\n }\n var updated = [];\n for (var i$2 = 0; i$2 < prev.childCount; i$2++) { updated.push(update(prev.child(i$2))); }\n if (Fragment.from(updated).eq(cur)) { return {mark: mark, type: type} }\n}\n\nfunction looksLikeJoin(old, start, end, $newStart, $newEnd) {\n if (!$newStart.parent.isTextblock ||\n // The content must have shrunk\n end - start <= $newEnd.pos - $newStart.pos ||\n // newEnd must point directly at or after the end of the block that newStart points into\n skipClosingAndOpening($newStart, true, false) < $newEnd.pos)\n { return false }\n\n var $start = old.resolve(start);\n // Start must be at the end of a block\n if ($start.parentOffset < $start.parent.content.size || !$start.parent.isTextblock)\n { return false }\n var $next = old.resolve(skipClosingAndOpening($start, true, true));\n // The next textblock must start before end and end near it\n if (!$next.parent.isTextblock || $next.pos > end ||\n skipClosingAndOpening($next, true, false) < end)\n { return false }\n\n // The fragments after the join point must match\n return $newStart.parent.content.cut($newStart.parentOffset).eq($next.parent.content)\n}\n\nfunction skipClosingAndOpening($pos, fromEnd, mayOpen) {\n var depth = $pos.depth, end = fromEnd ? $pos.end() : $pos.pos;\n while (depth > 0 && (fromEnd || $pos.indexAfter(depth) == $pos.node(depth).childCount)) {\n depth--;\n end++;\n fromEnd = false;\n }\n if (mayOpen) {\n var next = $pos.node(depth).maybeChild($pos.indexAfter(depth));\n while (next && !next.isLeaf) {\n next = next.firstChild;\n end++;\n }\n }\n return end\n}\n\nfunction findDiff(a, b, pos, preferredPos, preferredSide) {\n var start = a.findDiffStart(b, pos);\n if (start == null) { return null }\n var ref = a.findDiffEnd(b, pos + a.size, pos + b.size);\n var endA = ref.a;\n var endB = ref.b;\n if (preferredSide == \"end\") {\n var adjust = Math.max(0, start - Math.min(endA, endB));\n preferredPos -= endA + adjust - start;\n }\n if (endA < start && a.size < b.size) {\n var move = preferredPos <= start && preferredPos >= endA ? start - preferredPos : 0;\n start -= move;\n endB = start + (endB - endA);\n endA = start;\n } else if (endB < start) {\n var move$1 = preferredPos <= start && preferredPos >= endB ? start - preferredPos : 0;\n start -= move$1;\n endA = start + (endA - endB);\n endB = start;\n }\n return {start: start, endA: endA, endB: endB}\n}\n\nfunction serializeForClipboard(view, slice) {\n var context = [];\n var content = slice.content;\n var openStart = slice.openStart;\n var openEnd = slice.openEnd;\n while (openStart > 1 && openEnd > 1 && content.childCount == 1 && content.firstChild.childCount == 1) {\n openStart--;\n openEnd--;\n var node = content.firstChild;\n context.push(node.type.name, node.attrs != node.type.defaultAttrs ? node.attrs : null);\n content = node.content;\n }\n\n var serializer = view.someProp(\"clipboardSerializer\") || DOMSerializer.fromSchema(view.state.schema);\n var doc = detachedDoc(), wrap = doc.createElement(\"div\");\n wrap.appendChild(serializer.serializeFragment(content, {document: doc}));\n\n var firstChild = wrap.firstChild, needsWrap;\n while (firstChild && firstChild.nodeType == 1 && (needsWrap = wrapMap[firstChild.nodeName.toLowerCase()])) {\n for (var i = needsWrap.length - 1; i >= 0; i--) {\n var wrapper = doc.createElement(needsWrap[i]);\n while (wrap.firstChild) { wrapper.appendChild(wrap.firstChild); }\n wrap.appendChild(wrapper);\n if (needsWrap[i] != \"tbody\") {\n openStart++;\n openEnd++;\n }\n }\n firstChild = wrap.firstChild;\n }\n\n if (firstChild && firstChild.nodeType == 1)\n { firstChild.setAttribute(\"data-pm-slice\", (openStart + \" \" + openEnd + \" \" + (JSON.stringify(context)))); }\n\n var text = view.someProp(\"clipboardTextSerializer\", function (f) { return f(slice); }) ||\n slice.content.textBetween(0, slice.content.size, \"\\n\\n\");\n\n return {dom: wrap, text: text}\n}\n\n// : (EditorView, string, string, ?bool, ResolvedPos) → ?Slice\n// Read a slice of content from the clipboard (or drop data).\nfunction parseFromClipboard(view, text, html, plainText, $context) {\n var dom, inCode = $context.parent.type.spec.code, slice;\n if (!html && !text) { return null }\n var asText = text && (plainText || inCode || !html);\n if (asText) {\n view.someProp(\"transformPastedText\", function (f) { text = f(text, inCode || plainText); });\n if (inCode) { return text ? new Slice(Fragment.from(view.state.schema.text(text.replace(/\\r\\n?/g, \"\\n\"))), 0, 0) : Slice.empty }\n var parsed = view.someProp(\"clipboardTextParser\", function (f) { return f(text, $context, plainText); });\n if (parsed) {\n slice = parsed;\n } else {\n var marks = $context.marks();\n var ref = view.state;\n var schema = ref.schema;\n var serializer = DOMSerializer.fromSchema(schema);\n dom = document.createElement(\"div\");\n text.split(/(?:\\r\\n?|\\n)+/).forEach(function (block) {\n var p = dom.appendChild(document.createElement(\"p\"));\n if (block) { p.appendChild(serializer.serializeNode(schema.text(block, marks))); }\n });\n }\n } else {\n view.someProp(\"transformPastedHTML\", function (f) { html = f(html); });\n dom = readHTML(html);\n if (result.webkit) { restoreReplacedSpaces(dom); }\n }\n\n var contextNode = dom && dom.querySelector(\"[data-pm-slice]\");\n var sliceData = contextNode && /^(\\d+) (\\d+) (.*)/.exec(contextNode.getAttribute(\"data-pm-slice\"));\n if (!slice) {\n var parser = view.someProp(\"clipboardParser\") || view.someProp(\"domParser\") || DOMParser.fromSchema(view.state.schema);\n slice = parser.parseSlice(dom, {\n preserveWhitespace: !!(asText || sliceData),\n context: $context,\n ruleFromNode: function ruleFromNode(dom) {\n if (dom.nodeName == \"BR\" && !dom.nextSibling &&\n dom.parentNode && !inlineParents.test(dom.parentNode.nodeName)) { return {ignore: true} }\n }\n });\n }\n if (sliceData) {\n slice = addContext(closeSlice(slice, +sliceData[1], +sliceData[2]), sliceData[3]);\n } else { // HTML wasn't created by ProseMirror. Make sure top-level siblings are coherent\n slice = Slice.maxOpen(normalizeSiblings(slice.content, $context), true);\n if (slice.openStart || slice.openEnd) {\n var openStart = 0, openEnd = 0;\n for (var node = slice.content.firstChild; openStart < slice.openStart && !node.type.spec.isolating;\n openStart++, node = node.firstChild) {}\n for (var node$1 = slice.content.lastChild; openEnd < slice.openEnd && !node$1.type.spec.isolating;\n openEnd++, node$1 = node$1.lastChild) {}\n slice = closeSlice(slice, openStart, openEnd);\n }\n }\n\n view.someProp(\"transformPasted\", function (f) { slice = f(slice); });\n return slice\n}\n\nvar inlineParents = /^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var)$/i;\n\n// Takes a slice parsed with parseSlice, which means there hasn't been\n// any content-expression checking done on the top nodes, tries to\n// find a parent node in the current context that might fit the nodes,\n// and if successful, rebuilds the slice so that it fits into that parent.\n//\n// This addresses the problem that Transform.replace expects a\n// coherent slice, and will fail to place a set of siblings that don't\n// fit anywhere in the schema.\nfunction normalizeSiblings(fragment, $context) {\n if (fragment.childCount < 2) { return fragment }\n var loop = function ( d ) {\n var parent = $context.node(d);\n var match = parent.contentMatchAt($context.index(d));\n var lastWrap = (void 0), result = [];\n fragment.forEach(function (node) {\n if (!result) { return }\n var wrap = match.findWrapping(node.type), inLast;\n if (!wrap) { return result = null }\n if (inLast = result.length && lastWrap.length && addToSibling(wrap, lastWrap, node, result[result.length - 1], 0)) {\n result[result.length - 1] = inLast;\n } else {\n if (result.length) { result[result.length - 1] = closeRight(result[result.length - 1], lastWrap.length); }\n var wrapped = withWrappers(node, wrap);\n result.push(wrapped);\n match = match.matchType(wrapped.type, wrapped.attrs);\n lastWrap = wrap;\n }\n });\n if (result) { return { v: Fragment.from(result) } }\n };\n\n for (var d = $context.depth; d >= 0; d--) {\n var returned = loop( d );\n\n if ( returned ) return returned.v;\n }\n return fragment\n}\n\nfunction withWrappers(node, wrap, from) {\n if ( from === void 0 ) from = 0;\n\n for (var i = wrap.length - 1; i >= from; i--)\n { node = wrap[i].create(null, Fragment.from(node)); }\n return node\n}\n\n// Used to group adjacent nodes wrapped in similar parents by\n// normalizeSiblings into the same parent node\nfunction addToSibling(wrap, lastWrap, node, sibling, depth) {\n if (depth < wrap.length && depth < lastWrap.length && wrap[depth] == lastWrap[depth]) {\n var inner = addToSibling(wrap, lastWrap, node, sibling.lastChild, depth + 1);\n if (inner) { return sibling.copy(sibling.content.replaceChild(sibling.childCount - 1, inner)) }\n var match = sibling.contentMatchAt(sibling.childCount);\n if (match.matchType(depth == wrap.length - 1 ? node.type : wrap[depth + 1]))\n { return sibling.copy(sibling.content.append(Fragment.from(withWrappers(node, wrap, depth + 1)))) }\n }\n}\n\nfunction closeRight(node, depth) {\n if (depth == 0) { return node }\n var fragment = node.content.replaceChild(node.childCount - 1, closeRight(node.lastChild, depth - 1));\n var fill = node.contentMatchAt(node.childCount).fillBefore(Fragment.empty, true);\n return node.copy(fragment.append(fill))\n}\n\nfunction closeRange(fragment, side, from, to, depth, openEnd) {\n var node = side < 0 ? fragment.firstChild : fragment.lastChild, inner = node.content;\n if (depth < to - 1) { inner = closeRange(inner, side, from, to, depth + 1, openEnd); }\n if (depth >= from)\n { inner = side < 0 ? node.contentMatchAt(0).fillBefore(inner, fragment.childCount > 1 || openEnd <= depth).append(inner)\n : inner.append(node.contentMatchAt(node.childCount).fillBefore(Fragment.empty, true)); }\n return fragment.replaceChild(side < 0 ? 0 : fragment.childCount - 1, node.copy(inner))\n}\n\nfunction closeSlice(slice, openStart, openEnd) {\n if (openStart < slice.openStart)\n { slice = new Slice(closeRange(slice.content, -1, openStart, slice.openStart, 0, slice.openEnd), openStart, slice.openEnd); }\n if (openEnd < slice.openEnd)\n { slice = new Slice(closeRange(slice.content, 1, openEnd, slice.openEnd, 0, 0), slice.openStart, openEnd); }\n return slice\n}\n\n// Trick from jQuery -- some elements must be wrapped in other\n// elements for innerHTML to work. I.e. if you do `div.innerHTML =\n// \"
    \\n
    \\n \\n {{_placeholder}}\\n _settings.itemsShowLimit-1\\\">\\n {{item.text}}\\n x\\n \\n \\n 0\\\">+{{itemShowRemaining()}}\\n \\n \\n \\n
    \\n
    \\n
      \\n
    • 0 || _settings.allowRemoteDataSearch) && !_settings.singleSelection && _settings.enableCheckAll && _settings.limitSelection===-1\\\" class=\\\"multiselect-item-checkbox\\\" style=\\\"border-bottom: 1px solid #ccc;padding:10px\\\">\\n \\n
      {{!isAllItemsSelected() ? _settings.selectAllText : _settings.unSelectAllText}}
      \\n
    • \\n
    • 0 || _settings.allowRemoteDataSearch) && _settings.allowSearchFilter\\\">\\n \\n
    • \\n
    \\n
      \\n
    • \\n \\n
      {{item.text}}
      \\n
    • \\n
    • \\n
      {{_settings.noDataAvailablePlaceholderText}}
      \\n
    • \\n
    \\n
    \\n
    \"` the table cells are ignored.\nvar wrapMap = {\n thead: [\"table\"],\n tbody: [\"table\"],\n tfoot: [\"table\"],\n caption: [\"table\"],\n colgroup: [\"table\"],\n col: [\"table\", \"colgroup\"],\n tr: [\"table\", \"tbody\"],\n td: [\"table\", \"tbody\", \"tr\"],\n th: [\"table\", \"tbody\", \"tr\"]\n};\n\nvar _detachedDoc = null;\nfunction detachedDoc() {\n return _detachedDoc || (_detachedDoc = document.implementation.createHTMLDocument(\"title\"))\n}\n\nfunction readHTML(html) {\n var metas = /^(\\s*]*>)*/.exec(html);\n if (metas) { html = html.slice(metas[0].length); }\n var elt = detachedDoc().createElement(\"div\");\n var firstTag = /<([a-z][^>\\s]+)/i.exec(html), wrap;\n if (wrap = firstTag && wrapMap[firstTag[1].toLowerCase()])\n { html = wrap.map(function (n) { return \"<\" + n + \">\"; }).join(\"\") + html + wrap.map(function (n) { return \"\"; }).reverse().join(\"\"); }\n elt.innerHTML = html;\n if (wrap) { for (var i = 0; i < wrap.length; i++) { elt = elt.querySelector(wrap[i]) || elt; } }\n return elt\n}\n\n// Webkit browsers do some hard-to-predict replacement of regular\n// spaces with non-breaking spaces when putting content on the\n// clipboard. This tries to convert such non-breaking spaces (which\n// will be wrapped in a plain span on Chrome, a span with class\n// Apple-converted-space on Safari) back to regular spaces.\nfunction restoreReplacedSpaces(dom) {\n var nodes = dom.querySelectorAll(result.chrome ? \"span:not([class]):not([style])\" : \"span.Apple-converted-space\");\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n if (node.childNodes.length == 1 && node.textContent == \"\\u00a0\" && node.parentNode)\n { node.parentNode.replaceChild(dom.ownerDocument.createTextNode(\" \"), node); }\n }\n}\n\nfunction addContext(slice, context) {\n if (!slice.size) { return slice }\n var schema = slice.content.firstChild.type.schema, array;\n try { array = JSON.parse(context); }\n catch(e) { return slice }\n var content = slice.content;\n var openStart = slice.openStart;\n var openEnd = slice.openEnd;\n for (var i = array.length - 2; i >= 0; i -= 2) {\n var type = schema.nodes[array[i]];\n if (!type || type.hasRequiredAttrs()) { break }\n content = Fragment.from(type.create(array[i + 1], content));\n openStart++; openEnd++;\n }\n return new Slice(content, openStart, openEnd)\n}\n\nvar observeOptions = {\n childList: true,\n characterData: true,\n characterDataOldValue: true,\n attributes: true,\n attributeOldValue: true,\n subtree: true\n};\n// IE11 has very broken mutation observers, so we also listen to DOMCharacterDataModified\nvar useCharData = result.ie && result.ie_version <= 11;\n\nvar SelectionState = function SelectionState() {\n this.anchorNode = this.anchorOffset = this.focusNode = this.focusOffset = null;\n};\n\nSelectionState.prototype.set = function set (sel) {\n this.anchorNode = sel.anchorNode; this.anchorOffset = sel.anchorOffset;\n this.focusNode = sel.focusNode; this.focusOffset = sel.focusOffset;\n};\n\nSelectionState.prototype.eq = function eq (sel) {\n return sel.anchorNode == this.anchorNode && sel.anchorOffset == this.anchorOffset &&\n sel.focusNode == this.focusNode && sel.focusOffset == this.focusOffset\n};\n\nvar DOMObserver = function DOMObserver(view, handleDOMChange) {\n var this$1 = this;\n\n this.view = view;\n this.handleDOMChange = handleDOMChange;\n this.queue = [];\n this.flushingSoon = -1;\n this.observer = window.MutationObserver &&\n new window.MutationObserver(function (mutations) {\n for (var i = 0; i < mutations.length; i++) { this$1.queue.push(mutations[i]); }\n // IE11 will sometimes (on backspacing out a single character\n // text node after a BR node) call the observer callback\n // before actually updating the DOM, which will cause\n // ProseMirror to miss the change (see #930)\n if (result.ie && result.ie_version <= 11 && mutations.some(\n function (m) { return m.type == \"childList\" && m.removedNodes.length ||\n m.type == \"characterData\" && m.oldValue.length > m.target.nodeValue.length; }))\n { this$1.flushSoon(); }\n else\n { this$1.flush(); }\n });\n this.currentSelection = new SelectionState;\n if (useCharData) {\n this.onCharData = function (e) {\n this$1.queue.push({target: e.target, type: \"characterData\", oldValue: e.prevValue});\n this$1.flushSoon();\n };\n }\n this.onSelectionChange = this.onSelectionChange.bind(this);\n this.suppressingSelectionUpdates = false;\n};\n\nDOMObserver.prototype.flushSoon = function flushSoon () {\n var this$1 = this;\n\n if (this.flushingSoon < 0)\n { this.flushingSoon = window.setTimeout(function () { this$1.flushingSoon = -1; this$1.flush(); }, 20); }\n};\n\nDOMObserver.prototype.forceFlush = function forceFlush () {\n if (this.flushingSoon > -1) {\n window.clearTimeout(this.flushingSoon);\n this.flushingSoon = -1;\n this.flush();\n }\n};\n\nDOMObserver.prototype.start = function start () {\n if (this.observer)\n { this.observer.observe(this.view.dom, observeOptions); }\n if (useCharData)\n { this.view.dom.addEventListener(\"DOMCharacterDataModified\", this.onCharData); }\n this.connectSelection();\n};\n\nDOMObserver.prototype.stop = function stop () {\n var this$1 = this;\n\n if (this.observer) {\n var take = this.observer.takeRecords();\n if (take.length) {\n for (var i = 0; i < take.length; i++) { this.queue.push(take[i]); }\n window.setTimeout(function () { return this$1.flush(); }, 20);\n }\n this.observer.disconnect();\n }\n if (useCharData) { this.view.dom.removeEventListener(\"DOMCharacterDataModified\", this.onCharData); }\n this.disconnectSelection();\n};\n\nDOMObserver.prototype.connectSelection = function connectSelection () {\n this.view.dom.ownerDocument.addEventListener(\"selectionchange\", this.onSelectionChange);\n};\n\nDOMObserver.prototype.disconnectSelection = function disconnectSelection () {\n this.view.dom.ownerDocument.removeEventListener(\"selectionchange\", this.onSelectionChange);\n};\n\nDOMObserver.prototype.suppressSelectionUpdates = function suppressSelectionUpdates () {\n var this$1 = this;\n\n this.suppressingSelectionUpdates = true;\n setTimeout(function () { return this$1.suppressingSelectionUpdates = false; }, 50);\n};\n\nDOMObserver.prototype.onSelectionChange = function onSelectionChange () {\n if (!hasFocusAndSelection(this.view)) { return }\n if (this.suppressingSelectionUpdates) { return selectionToDOM(this.view) }\n // Deletions on IE11 fire their events in the wrong order, giving\n // us a selection change event before the DOM changes are\n // reported.\n if (result.ie && result.ie_version <= 11 && !this.view.state.selection.empty) {\n var sel = this.view.root.getSelection();\n // Selection.isCollapsed isn't reliable on IE\n if (sel.focusNode && isEquivalentPosition(sel.focusNode, sel.focusOffset, sel.anchorNode, sel.anchorOffset))\n { return this.flushSoon() }\n }\n this.flush();\n};\n\nDOMObserver.prototype.setCurSelection = function setCurSelection () {\n this.currentSelection.set(this.view.root.getSelection());\n};\n\nDOMObserver.prototype.ignoreSelectionChange = function ignoreSelectionChange (sel) {\n if (sel.rangeCount == 0) { return true }\n var container = sel.getRangeAt(0).commonAncestorContainer;\n var desc = this.view.docView.nearestDesc(container);\n if (desc && desc.ignoreMutation({type: \"selection\", target: container.nodeType == 3 ? container.parentNode : container})) {\n this.setCurSelection();\n return true\n }\n};\n\nDOMObserver.prototype.flush = function flush () {\n if (!this.view.docView || this.flushingSoon > -1) { return }\n var mutations = this.observer ? this.observer.takeRecords() : [];\n if (this.queue.length) {\n mutations = this.queue.concat(mutations);\n this.queue.length = 0;\n }\n\n var sel = this.view.root.getSelection();\n var newSel = !this.suppressingSelectionUpdates && !this.currentSelection.eq(sel) && hasSelection(this.view) && !this.ignoreSelectionChange(sel);\n\n var from = -1, to = -1, typeOver = false, added = [];\n if (this.view.editable) {\n for (var i = 0; i < mutations.length; i++) {\n var result$1 = this.registerMutation(mutations[i], added);\n if (result$1) {\n from = from < 0 ? result$1.from : Math.min(result$1.from, from);\n to = to < 0 ? result$1.to : Math.max(result$1.to, to);\n if (result$1.typeOver) { typeOver = true; }\n }\n }\n }\n\n if (result.gecko && added.length > 1) {\n var brs = added.filter(function (n) { return n.nodeName == \"BR\"; });\n if (brs.length == 2) {\n var a = brs[0];\n var b = brs[1];\n if (a.parentNode && a.parentNode.parentNode == b.parentNode) { b.remove(); }\n else { a.remove(); }\n }\n }\n\n if (from > -1 || newSel) {\n if (from > -1) {\n this.view.docView.markDirty(from, to);\n checkCSS(this.view);\n }\n this.handleDOMChange(from, to, typeOver, added);\n if (this.view.docView.dirty) { this.view.updateState(this.view.state); }\n else if (!this.currentSelection.eq(sel)) { selectionToDOM(this.view); }\n this.currentSelection.set(sel);\n }\n};\n\nDOMObserver.prototype.registerMutation = function registerMutation (mut, added) {\n // Ignore mutations inside nodes that were already noted as inserted\n if (added.indexOf(mut.target) > -1) { return null }\n var desc = this.view.docView.nearestDesc(mut.target);\n if (mut.type == \"attributes\" &&\n (desc == this.view.docView || mut.attributeName == \"contenteditable\" ||\n // Firefox sometimes fires spurious events for null/empty styles\n (mut.attributeName == \"style\" && !mut.oldValue && !mut.target.getAttribute(\"style\"))))\n { return null }\n if (!desc || desc.ignoreMutation(mut)) { return null }\n\n if (mut.type == \"childList\") {\n for (var i = 0; i < mut.addedNodes.length; i++) { added.push(mut.addedNodes[i]); }\n if (desc.contentDOM && desc.contentDOM != desc.dom && !desc.contentDOM.contains(mut.target))\n { return {from: desc.posBefore, to: desc.posAfter} }\n var prev = mut.previousSibling, next = mut.nextSibling;\n if (result.ie && result.ie_version <= 11 && mut.addedNodes.length) {\n // IE11 gives us incorrect next/prev siblings for some\n // insertions, so if there are added nodes, recompute those\n for (var i$1 = 0; i$1 < mut.addedNodes.length; i$1++) {\n var ref = mut.addedNodes[i$1];\n var previousSibling = ref.previousSibling;\n var nextSibling = ref.nextSibling;\n if (!previousSibling || Array.prototype.indexOf.call(mut.addedNodes, previousSibling) < 0) { prev = previousSibling; }\n if (!nextSibling || Array.prototype.indexOf.call(mut.addedNodes, nextSibling) < 0) { next = nextSibling; }\n }\n }\n var fromOffset = prev && prev.parentNode == mut.target\n ? domIndex(prev) + 1 : 0;\n var from = desc.localPosFromDOM(mut.target, fromOffset, -1);\n var toOffset = next && next.parentNode == mut.target\n ? domIndex(next) : mut.target.childNodes.length;\n var to = desc.localPosFromDOM(mut.target, toOffset, 1);\n return {from: from, to: to}\n } else if (mut.type == \"attributes\") {\n return {from: desc.posAtStart - desc.border, to: desc.posAtEnd + desc.border}\n } else { // \"characterData\"\n return {\n from: desc.posAtStart,\n to: desc.posAtEnd,\n // An event was generated for a text change that didn't change\n // any text. Mark the dom change to fall back to assuming the\n // selection was typed over with an identical value if it can't\n // find another change.\n typeOver: mut.target.nodeValue == mut.oldValue\n }\n }\n};\n\nvar cssChecked = false;\n\nfunction checkCSS(view) {\n if (cssChecked) { return }\n cssChecked = true;\n if (getComputedStyle(view.dom).whiteSpace == \"normal\")\n { console[\"warn\"](\"ProseMirror expects the CSS white-space property to be set, preferably to 'pre-wrap'. It is recommended to load style/prosemirror.css from the prosemirror-view package.\"); }\n}\n\n// A collection of DOM events that occur within the editor, and callback functions\n// to invoke when the event fires.\nvar handlers = {}, editHandlers = {};\n\nfunction initInput(view) {\n view.shiftKey = false;\n view.mouseDown = null;\n view.lastKeyCode = null;\n view.lastKeyCodeTime = 0;\n view.lastClick = {time: 0, x: 0, y: 0, type: \"\"};\n view.lastSelectionOrigin = null;\n view.lastSelectionTime = 0;\n\n view.lastIOSEnter = 0;\n view.lastIOSEnterFallbackTimeout = null;\n view.lastAndroidDelete = 0;\n\n view.composing = false;\n view.composingTimeout = null;\n view.compositionNodes = [];\n view.compositionEndedAt = -2e8;\n\n view.domObserver = new DOMObserver(view, function (from, to, typeOver, added) { return readDOMChange(view, from, to, typeOver, added); });\n view.domObserver.start();\n // Used by hacks like the beforeinput handler to check whether anything happened in the DOM\n view.domChangeCount = 0;\n\n view.eventHandlers = Object.create(null);\n var loop = function ( event ) {\n var handler = handlers[event];\n view.dom.addEventListener(event, view.eventHandlers[event] = function (event) {\n if (eventBelongsToView(view, event) && !runCustomHandler(view, event) &&\n (view.editable || !(event.type in editHandlers)))\n { handler(view, event); }\n });\n };\n\n for (var event in handlers) loop( event );\n // On Safari, for reasons beyond my understanding, adding an input\n // event handler makes an issue where the composition vanishes when\n // you press enter go away.\n if (result.safari) { view.dom.addEventListener(\"input\", function () { return null; }); }\n\n ensureListeners(view);\n}\n\nfunction setSelectionOrigin(view, origin) {\n view.lastSelectionOrigin = origin;\n view.lastSelectionTime = Date.now();\n}\n\nfunction destroyInput(view) {\n view.domObserver.stop();\n for (var type in view.eventHandlers)\n { view.dom.removeEventListener(type, view.eventHandlers[type]); }\n clearTimeout(view.composingTimeout);\n clearTimeout(view.lastIOSEnterFallbackTimeout);\n}\n\nfunction ensureListeners(view) {\n view.someProp(\"handleDOMEvents\", function (currentHandlers) {\n for (var type in currentHandlers) { if (!view.eventHandlers[type])\n { view.dom.addEventListener(type, view.eventHandlers[type] = function (event) { return runCustomHandler(view, event); }); } }\n });\n}\n\nfunction runCustomHandler(view, event) {\n return view.someProp(\"handleDOMEvents\", function (handlers) {\n var handler = handlers[event.type];\n return handler ? handler(view, event) || event.defaultPrevented : false\n })\n}\n\nfunction eventBelongsToView(view, event) {\n if (!event.bubbles) { return true }\n if (event.defaultPrevented) { return false }\n for (var node = event.target; node != view.dom; node = node.parentNode)\n { if (!node || node.nodeType == 11 ||\n (node.pmViewDesc && node.pmViewDesc.stopEvent(event)))\n { return false } }\n return true\n}\n\nfunction dispatchEvent(view, event) {\n if (!runCustomHandler(view, event) && handlers[event.type] &&\n (view.editable || !(event.type in editHandlers)))\n { handlers[event.type](view, event); }\n}\n\neditHandlers.keydown = function (view, event) {\n view.shiftKey = event.keyCode == 16 || event.shiftKey;\n if (inOrNearComposition(view, event)) { return }\n view.lastKeyCode = event.keyCode;\n view.lastKeyCodeTime = Date.now();\n // Suppress enter key events on Chrome Android, because those tend\n // to be part of a confused sequence of composition events fired,\n // and handling them eagerly tends to corrupt the input.\n if (result.android && result.chrome && event.keyCode == 13) { return }\n if (event.keyCode != 229) { view.domObserver.forceFlush(); }\n\n // On iOS, if we preventDefault enter key presses, the virtual\n // keyboard gets confused. So the hack here is to set a flag that\n // makes the DOM change code recognize that what just happens should\n // be replaced by whatever the Enter key handlers do.\n if (result.ios && event.keyCode == 13 && !event.ctrlKey && !event.altKey && !event.metaKey) {\n var now = Date.now();\n view.lastIOSEnter = now;\n view.lastIOSEnterFallbackTimeout = setTimeout(function () {\n if (view.lastIOSEnter == now) {\n view.someProp(\"handleKeyDown\", function (f) { return f(view, keyEvent(13, \"Enter\")); });\n view.lastIOSEnter = 0;\n }\n }, 200);\n } else if (view.someProp(\"handleKeyDown\", function (f) { return f(view, event); }) || captureKeyDown(view, event)) {\n event.preventDefault();\n } else {\n setSelectionOrigin(view, \"key\");\n }\n};\n\neditHandlers.keyup = function (view, e) {\n if (e.keyCode == 16) { view.shiftKey = false; }\n};\n\neditHandlers.keypress = function (view, event) {\n if (inOrNearComposition(view, event) || !event.charCode ||\n event.ctrlKey && !event.altKey || result.mac && event.metaKey) { return }\n\n if (view.someProp(\"handleKeyPress\", function (f) { return f(view, event); })) {\n event.preventDefault();\n return\n }\n\n var sel = view.state.selection;\n if (!(sel instanceof TextSelection) || !sel.$from.sameParent(sel.$to)) {\n var text = String.fromCharCode(event.charCode);\n if (!view.someProp(\"handleTextInput\", function (f) { return f(view, sel.$from.pos, sel.$to.pos, text); }))\n { view.dispatch(view.state.tr.insertText(text).scrollIntoView()); }\n event.preventDefault();\n }\n};\n\nfunction eventCoords(event) { return {left: event.clientX, top: event.clientY} }\n\nfunction isNear(event, click) {\n var dx = click.x - event.clientX, dy = click.y - event.clientY;\n return dx * dx + dy * dy < 100\n}\n\nfunction runHandlerOnContext(view, propName, pos, inside, event) {\n if (inside == -1) { return false }\n var $pos = view.state.doc.resolve(inside);\n var loop = function ( i ) {\n if (view.someProp(propName, function (f) { return i > $pos.depth ? f(view, pos, $pos.nodeAfter, $pos.before(i), event, true)\n : f(view, pos, $pos.node(i), $pos.before(i), event, false); }))\n { return { v: true } }\n };\n\n for (var i = $pos.depth + 1; i > 0; i--) {\n var returned = loop( i );\n\n if ( returned ) return returned.v;\n }\n return false\n}\n\nfunction updateSelection(view, selection, origin) {\n if (!view.focused) { view.focus(); }\n var tr = view.state.tr.setSelection(selection);\n if (origin == \"pointer\") { tr.setMeta(\"pointer\", true); }\n view.dispatch(tr);\n}\n\nfunction selectClickedLeaf(view, inside) {\n if (inside == -1) { return false }\n var $pos = view.state.doc.resolve(inside), node = $pos.nodeAfter;\n if (node && node.isAtom && NodeSelection.isSelectable(node)) {\n updateSelection(view, new NodeSelection($pos), \"pointer\");\n return true\n }\n return false\n}\n\nfunction selectClickedNode(view, inside) {\n if (inside == -1) { return false }\n var sel = view.state.selection, selectedNode, selectAt;\n if (sel instanceof NodeSelection) { selectedNode = sel.node; }\n\n var $pos = view.state.doc.resolve(inside);\n for (var i = $pos.depth + 1; i > 0; i--) {\n var node = i > $pos.depth ? $pos.nodeAfter : $pos.node(i);\n if (NodeSelection.isSelectable(node)) {\n if (selectedNode && sel.$from.depth > 0 &&\n i >= sel.$from.depth && $pos.before(sel.$from.depth + 1) == sel.$from.pos)\n { selectAt = $pos.before(sel.$from.depth); }\n else\n { selectAt = $pos.before(i); }\n break\n }\n }\n\n if (selectAt != null) {\n updateSelection(view, NodeSelection.create(view.state.doc, selectAt), \"pointer\");\n return true\n } else {\n return false\n }\n}\n\nfunction handleSingleClick(view, pos, inside, event, selectNode) {\n return runHandlerOnContext(view, \"handleClickOn\", pos, inside, event) ||\n view.someProp(\"handleClick\", function (f) { return f(view, pos, event); }) ||\n (selectNode ? selectClickedNode(view, inside) : selectClickedLeaf(view, inside))\n}\n\nfunction handleDoubleClick(view, pos, inside, event) {\n return runHandlerOnContext(view, \"handleDoubleClickOn\", pos, inside, event) ||\n view.someProp(\"handleDoubleClick\", function (f) { return f(view, pos, event); })\n}\n\nfunction handleTripleClick(view, pos, inside, event) {\n return runHandlerOnContext(view, \"handleTripleClickOn\", pos, inside, event) ||\n view.someProp(\"handleTripleClick\", function (f) { return f(view, pos, event); }) ||\n defaultTripleClick(view, inside, event)\n}\n\nfunction defaultTripleClick(view, inside, event) {\n if (event.button != 0) { return false }\n var doc = view.state.doc;\n if (inside == -1) {\n if (doc.inlineContent) {\n updateSelection(view, TextSelection.create(doc, 0, doc.content.size), \"pointer\");\n return true\n }\n return false\n }\n\n var $pos = doc.resolve(inside);\n for (var i = $pos.depth + 1; i > 0; i--) {\n var node = i > $pos.depth ? $pos.nodeAfter : $pos.node(i);\n var nodePos = $pos.before(i);\n if (node.inlineContent)\n { updateSelection(view, TextSelection.create(doc, nodePos + 1, nodePos + 1 + node.content.size), \"pointer\"); }\n else if (NodeSelection.isSelectable(node))\n { updateSelection(view, NodeSelection.create(doc, nodePos), \"pointer\"); }\n else\n { continue }\n return true\n }\n}\n\nfunction forceDOMFlush(view) {\n return endComposition(view)\n}\n\nvar selectNodeModifier = result.mac ? \"metaKey\" : \"ctrlKey\";\n\nhandlers.mousedown = function (view, event) {\n view.shiftKey = event.shiftKey;\n var flushed = forceDOMFlush(view);\n var now = Date.now(), type = \"singleClick\";\n if (now - view.lastClick.time < 500 && isNear(event, view.lastClick) && !event[selectNodeModifier]) {\n if (view.lastClick.type == \"singleClick\") { type = \"doubleClick\"; }\n else if (view.lastClick.type == \"doubleClick\") { type = \"tripleClick\"; }\n }\n view.lastClick = {time: now, x: event.clientX, y: event.clientY, type: type};\n\n var pos = view.posAtCoords(eventCoords(event));\n if (!pos) { return }\n\n if (type == \"singleClick\") {\n if (view.mouseDown) { view.mouseDown.done(); }\n view.mouseDown = new MouseDown(view, pos, event, flushed);\n } else if ((type == \"doubleClick\" ? handleDoubleClick : handleTripleClick)(view, pos.pos, pos.inside, event)) {\n event.preventDefault();\n } else {\n setSelectionOrigin(view, \"pointer\");\n }\n};\n\nvar MouseDown = function MouseDown(view, pos, event, flushed) {\n var this$1 = this;\n\n this.view = view;\n this.startDoc = view.state.doc;\n this.pos = pos;\n this.event = event;\n this.flushed = flushed;\n this.selectNode = event[selectNodeModifier];\n this.allowDefault = event.shiftKey;\n this.delayedSelectionSync = false;\n\n var targetNode, targetPos;\n if (pos.inside > -1) {\n targetNode = view.state.doc.nodeAt(pos.inside);\n targetPos = pos.inside;\n } else {\n var $pos = view.state.doc.resolve(pos.pos);\n targetNode = $pos.parent;\n targetPos = $pos.depth ? $pos.before() : 0;\n }\n\n this.mightDrag = null;\n\n var target = flushed ? null : event.target;\n var targetDesc = target ? view.docView.nearestDesc(target, true) : null;\n this.target = targetDesc ? targetDesc.dom : null;\n\n var ref = view.state;\n var selection = ref.selection;\n if (event.button == 0 &&\n targetNode.type.spec.draggable && targetNode.type.spec.selectable !== false ||\n selection instanceof NodeSelection && selection.from <= targetPos && selection.to > targetPos)\n { this.mightDrag = {node: targetNode,\n pos: targetPos,\n addAttr: this.target && !this.target.draggable,\n setUneditable: this.target && result.gecko && !this.target.hasAttribute(\"contentEditable\")}; }\n\n if (this.target && this.mightDrag && (this.mightDrag.addAttr || this.mightDrag.setUneditable)) {\n this.view.domObserver.stop();\n if (this.mightDrag.addAttr) { this.target.draggable = true; }\n if (this.mightDrag.setUneditable)\n { setTimeout(function () {\n if (this$1.view.mouseDown == this$1) { this$1.target.setAttribute(\"contentEditable\", \"false\"); }\n }, 20); }\n this.view.domObserver.start();\n }\n\n view.root.addEventListener(\"mouseup\", this.up = this.up.bind(this));\n view.root.addEventListener(\"mousemove\", this.move = this.move.bind(this));\n setSelectionOrigin(view, \"pointer\");\n};\n\nMouseDown.prototype.done = function done () {\n var this$1 = this;\n\n this.view.root.removeEventListener(\"mouseup\", this.up);\n this.view.root.removeEventListener(\"mousemove\", this.move);\n if (this.mightDrag && this.target) {\n this.view.domObserver.stop();\n if (this.mightDrag.addAttr) { this.target.removeAttribute(\"draggable\"); }\n if (this.mightDrag.setUneditable) { this.target.removeAttribute(\"contentEditable\"); }\n this.view.domObserver.start();\n }\n if (this.delayedSelectionSync) { setTimeout(function () { return selectionToDOM(this$1.view); }); }\n this.view.mouseDown = null;\n};\n\nMouseDown.prototype.up = function up (event) {\n this.done();\n\n if (!this.view.dom.contains(event.target.nodeType == 3 ? event.target.parentNode : event.target))\n { return }\n\n var pos = this.pos;\n if (this.view.state.doc != this.startDoc) { pos = this.view.posAtCoords(eventCoords(event)); }\n\n if (this.allowDefault || !pos) {\n setSelectionOrigin(this.view, \"pointer\");\n } else if (handleSingleClick(this.view, pos.pos, pos.inside, event, this.selectNode)) {\n event.preventDefault();\n } else if (event.button == 0 &&\n (this.flushed ||\n // Safari ignores clicks on draggable elements\n (result.safari && this.mightDrag && !this.mightDrag.node.isAtom) ||\n // Chrome will sometimes treat a node selection as a\n // cursor, but still report that the node is selected\n // when asked through getSelection. You'll then get a\n // situation where clicking at the point where that\n // (hidden) cursor is doesn't change the selection, and\n // thus doesn't get a reaction from ProseMirror. This\n // works around that.\n (result.chrome && !(this.view.state.selection instanceof TextSelection) &&\n Math.min(Math.abs(pos.pos - this.view.state.selection.from),\n Math.abs(pos.pos - this.view.state.selection.to)) <= 2))) {\n updateSelection(this.view, Selection.near(this.view.state.doc.resolve(pos.pos)), \"pointer\");\n event.preventDefault();\n } else {\n setSelectionOrigin(this.view, \"pointer\");\n }\n};\n\nMouseDown.prototype.move = function move (event) {\n if (!this.allowDefault && (Math.abs(this.event.x - event.clientX) > 4 ||\n Math.abs(this.event.y - event.clientY) > 4))\n { this.allowDefault = true; }\n setSelectionOrigin(this.view, \"pointer\");\n if (event.buttons == 0) { this.done(); }\n};\n\nhandlers.touchdown = function (view) {\n forceDOMFlush(view);\n setSelectionOrigin(view, \"pointer\");\n};\n\nhandlers.contextmenu = function (view) { return forceDOMFlush(view); };\n\nfunction inOrNearComposition(view, event) {\n if (view.composing) { return true }\n // See https://www.stum.de/2016/06/24/handling-ime-events-in-javascript/.\n // On Japanese input method editors (IMEs), the Enter key is used to confirm character\n // selection. On Safari, when Enter is pressed, compositionend and keydown events are\n // emitted. The keydown event triggers newline insertion, which we don't want.\n // This method returns true if the keydown event should be ignored.\n // We only ignore it once, as pressing Enter a second time *should* insert a newline.\n // Furthermore, the keydown event timestamp must be close to the compositionEndedAt timestamp.\n // This guards against the case where compositionend is triggered without the keyboard\n // (e.g. character confirmation may be done with the mouse), and keydown is triggered\n // afterwards- we wouldn't want to ignore the keydown event in this case.\n if (result.safari && Math.abs(event.timeStamp - view.compositionEndedAt) < 500) {\n view.compositionEndedAt = -2e8;\n return true\n }\n return false\n}\n\n// Drop active composition after 5 seconds of inactivity on Android\nvar timeoutComposition = result.android ? 5000 : -1;\n\neditHandlers.compositionstart = editHandlers.compositionupdate = function (view) {\n if (!view.composing) {\n view.domObserver.flush();\n var state = view.state;\n var $pos = state.selection.$from;\n if (state.selection.empty &&\n (state.storedMarks ||\n (!$pos.textOffset && $pos.parentOffset && $pos.nodeBefore.marks.some(function (m) { return m.type.spec.inclusive === false; })))) {\n // Need to wrap the cursor in mark nodes different from the ones in the DOM context\n view.markCursor = view.state.storedMarks || $pos.marks();\n endComposition(view, true);\n view.markCursor = null;\n } else {\n endComposition(view);\n // In firefox, if the cursor is after but outside a marked node,\n // the inserted text won't inherit the marks. So this moves it\n // inside if necessary.\n if (result.gecko && state.selection.empty && $pos.parentOffset && !$pos.textOffset && $pos.nodeBefore.marks.length) {\n var sel = view.root.getSelection();\n for (var node = sel.focusNode, offset = sel.focusOffset; node && node.nodeType == 1 && offset != 0;) {\n var before = offset < 0 ? node.lastChild : node.childNodes[offset - 1];\n if (!before) { break }\n if (before.nodeType == 3) {\n sel.collapse(before, before.nodeValue.length);\n break\n } else {\n node = before;\n offset = -1;\n }\n }\n }\n }\n view.composing = true;\n }\n scheduleComposeEnd(view, timeoutComposition);\n};\n\neditHandlers.compositionend = function (view, event) {\n if (view.composing) {\n view.composing = false;\n view.compositionEndedAt = event.timeStamp;\n scheduleComposeEnd(view, 20);\n }\n};\n\nfunction scheduleComposeEnd(view, delay) {\n clearTimeout(view.composingTimeout);\n if (delay > -1) { view.composingTimeout = setTimeout(function () { return endComposition(view); }, delay); }\n}\n\nfunction clearComposition(view) {\n if (view.composing) {\n view.composing = false;\n view.compositionEndedAt = timestampFromCustomEvent();\n }\n while (view.compositionNodes.length > 0) { view.compositionNodes.pop().markParentsDirty(); }\n}\n\nfunction timestampFromCustomEvent() {\n var event = document.createEvent(\"Event\");\n event.initEvent(\"event\", true, true);\n return event.timeStamp\n}\n\nfunction endComposition(view, forceUpdate) {\n if (result.android && view.domObserver.flushingSoon >= 0) { return }\n view.domObserver.forceFlush();\n clearComposition(view);\n if (forceUpdate || view.docView.dirty) {\n var sel = selectionFromDOM(view);\n if (sel && !sel.eq(view.state.selection)) { view.dispatch(view.state.tr.setSelection(sel)); }\n else { view.updateState(view.state); }\n return true\n }\n return false\n}\n\nfunction captureCopy(view, dom) {\n // The extra wrapper is somehow necessary on IE/Edge to prevent the\n // content from being mangled when it is put onto the clipboard\n if (!view.dom.parentNode) { return }\n var wrap = view.dom.parentNode.appendChild(document.createElement(\"div\"));\n wrap.appendChild(dom);\n wrap.style.cssText = \"position: fixed; left: -10000px; top: 10px\";\n var sel = getSelection(), range = document.createRange();\n range.selectNodeContents(dom);\n // Done because IE will fire a selectionchange moving the selection\n // to its start when removeAllRanges is called and the editor still\n // has focus (which will mess up the editor's selection state).\n view.dom.blur();\n sel.removeAllRanges();\n sel.addRange(range);\n setTimeout(function () {\n if (wrap.parentNode) { wrap.parentNode.removeChild(wrap); }\n view.focus();\n }, 50);\n}\n\n// This is very crude, but unfortunately both these browsers _pretend_\n// that they have a clipboard API—all the objects and methods are\n// there, they just don't work, and they are hard to test.\nvar brokenClipboardAPI = (result.ie && result.ie_version < 15) ||\n (result.ios && result.webkit_version < 604);\n\nhandlers.copy = editHandlers.cut = function (view, e) {\n var sel = view.state.selection, cut = e.type == \"cut\";\n if (sel.empty) { return }\n\n // IE and Edge's clipboard interface is completely broken\n var data = brokenClipboardAPI ? null : e.clipboardData;\n var slice = sel.content();\n var ref = serializeForClipboard(view, slice);\n var dom = ref.dom;\n var text = ref.text;\n if (data) {\n e.preventDefault();\n data.clearData();\n data.setData(\"text/html\", dom.innerHTML);\n data.setData(\"text/plain\", text);\n } else {\n captureCopy(view, dom);\n }\n if (cut) { view.dispatch(view.state.tr.deleteSelection().scrollIntoView().setMeta(\"uiEvent\", \"cut\")); }\n};\n\nfunction sliceSingleNode(slice) {\n return slice.openStart == 0 && slice.openEnd == 0 && slice.content.childCount == 1 ? slice.content.firstChild : null\n}\n\nfunction capturePaste(view, e) {\n if (!view.dom.parentNode) { return }\n var plainText = view.shiftKey || view.state.selection.$from.parent.type.spec.code;\n var target = view.dom.parentNode.appendChild(document.createElement(plainText ? \"textarea\" : \"div\"));\n if (!plainText) { target.contentEditable = \"true\"; }\n target.style.cssText = \"position: fixed; left: -10000px; top: 10px\";\n target.focus();\n setTimeout(function () {\n view.focus();\n if (target.parentNode) { target.parentNode.removeChild(target); }\n if (plainText) { doPaste(view, target.value, null, e); }\n else { doPaste(view, target.textContent, target.innerHTML, e); }\n }, 50);\n}\n\nfunction doPaste(view, text, html, e) {\n var slice = parseFromClipboard(view, text, html, view.shiftKey, view.state.selection.$from);\n if (view.someProp(\"handlePaste\", function (f) { return f(view, e, slice || Slice.empty); })) { return true }\n if (!slice) { return false }\n\n var singleNode = sliceSingleNode(slice);\n var tr = singleNode ? view.state.tr.replaceSelectionWith(singleNode, view.shiftKey) : view.state.tr.replaceSelection(slice);\n view.dispatch(tr.scrollIntoView().setMeta(\"paste\", true).setMeta(\"uiEvent\", \"paste\"));\n return true\n}\n\neditHandlers.paste = function (view, e) {\n // Handling paste from JavaScript during composition is very poorly\n // handled by browsers, so as a dodgy but preferable kludge, we just\n // let the browser do its native thing there, except on Android,\n // where the editor is almost always composing.\n if (view.composing && !result.android) { return }\n var data = brokenClipboardAPI ? null : e.clipboardData;\n if (data && doPaste(view, data.getData(\"text/plain\"), data.getData(\"text/html\"), e)) { e.preventDefault(); }\n else { capturePaste(view, e); }\n};\n\nvar Dragging = function Dragging(slice, move) {\n this.slice = slice;\n this.move = move;\n};\n\nvar dragCopyModifier = result.mac ? \"altKey\" : \"ctrlKey\";\n\nhandlers.dragstart = function (view, e) {\n var mouseDown = view.mouseDown;\n if (mouseDown) { mouseDown.done(); }\n if (!e.dataTransfer) { return }\n\n var sel = view.state.selection;\n var pos = sel.empty ? null : view.posAtCoords(eventCoords(e));\n if (pos && pos.pos >= sel.from && pos.pos <= (sel instanceof NodeSelection ? sel.to - 1: sel.to)) ; else if (mouseDown && mouseDown.mightDrag) {\n view.dispatch(view.state.tr.setSelection(NodeSelection.create(view.state.doc, mouseDown.mightDrag.pos)));\n } else if (e.target && e.target.nodeType == 1) {\n var desc = view.docView.nearestDesc(e.target, true);\n if (desc && desc.node.type.spec.draggable && desc != view.docView)\n { view.dispatch(view.state.tr.setSelection(NodeSelection.create(view.state.doc, desc.posBefore))); }\n }\n var slice = view.state.selection.content();\n var ref = serializeForClipboard(view, slice);\n var dom = ref.dom;\n var text = ref.text;\n e.dataTransfer.clearData();\n e.dataTransfer.setData(brokenClipboardAPI ? \"Text\" : \"text/html\", dom.innerHTML);\n // See https://github.com/ProseMirror/prosemirror/issues/1156\n e.dataTransfer.effectAllowed = \"copyMove\";\n if (!brokenClipboardAPI) { e.dataTransfer.setData(\"text/plain\", text); }\n view.dragging = new Dragging(slice, !e[dragCopyModifier]);\n};\n\nhandlers.dragend = function (view) {\n var dragging = view.dragging;\n window.setTimeout(function () {\n if (view.dragging == dragging) { view.dragging = null; }\n }, 50);\n};\n\neditHandlers.dragover = editHandlers.dragenter = function (_, e) { return e.preventDefault(); };\n\neditHandlers.drop = function (view, e) {\n var dragging = view.dragging;\n view.dragging = null;\n\n if (!e.dataTransfer) { return }\n\n var eventPos = view.posAtCoords(eventCoords(e));\n if (!eventPos) { return }\n var $mouse = view.state.doc.resolve(eventPos.pos);\n if (!$mouse) { return }\n var slice = dragging && dragging.slice;\n if (slice) {\n view.someProp(\"transformPasted\", function (f) { slice = f(slice); });\n } else {\n slice = parseFromClipboard(view, e.dataTransfer.getData(brokenClipboardAPI ? \"Text\" : \"text/plain\"),\n brokenClipboardAPI ? null : e.dataTransfer.getData(\"text/html\"), false, $mouse);\n }\n var move = dragging && !e[dragCopyModifier];\n if (view.someProp(\"handleDrop\", function (f) { return f(view, e, slice || Slice.empty, move); })) {\n e.preventDefault();\n return\n }\n if (!slice) { return }\n\n e.preventDefault();\n var insertPos = slice ? dropPoint(view.state.doc, $mouse.pos, slice) : $mouse.pos;\n if (insertPos == null) { insertPos = $mouse.pos; }\n\n var tr = view.state.tr;\n if (move) { tr.deleteSelection(); }\n\n var pos = tr.mapping.map(insertPos);\n var isNode = slice.openStart == 0 && slice.openEnd == 0 && slice.content.childCount == 1;\n var beforeInsert = tr.doc;\n if (isNode)\n { tr.replaceRangeWith(pos, pos, slice.content.firstChild); }\n else\n { tr.replaceRange(pos, pos, slice); }\n if (tr.doc.eq(beforeInsert)) { return }\n\n var $pos = tr.doc.resolve(pos);\n if (isNode && NodeSelection.isSelectable(slice.content.firstChild) &&\n $pos.nodeAfter && $pos.nodeAfter.sameMarkup(slice.content.firstChild)) {\n tr.setSelection(new NodeSelection($pos));\n } else {\n var end = tr.mapping.map(insertPos);\n tr.mapping.maps[tr.mapping.maps.length - 1].forEach(function (_from, _to, _newFrom, newTo) { return end = newTo; });\n tr.setSelection(selectionBetween(view, $pos, tr.doc.resolve(end)));\n }\n view.focus();\n view.dispatch(tr.setMeta(\"uiEvent\", \"drop\"));\n};\n\nhandlers.focus = function (view) {\n if (!view.focused) {\n view.domObserver.stop();\n view.dom.classList.add(\"ProseMirror-focused\");\n view.domObserver.start();\n view.focused = true;\n setTimeout(function () {\n if (view.docView && view.hasFocus() && !view.domObserver.currentSelection.eq(view.root.getSelection()))\n { selectionToDOM(view); }\n }, 20);\n }\n};\n\nhandlers.blur = function (view, e) {\n if (view.focused) {\n view.domObserver.stop();\n view.dom.classList.remove(\"ProseMirror-focused\");\n view.domObserver.start();\n if (e.relatedTarget && view.dom.contains(e.relatedTarget))\n { view.domObserver.currentSelection.set({}); }\n view.focused = false;\n }\n};\n\nhandlers.beforeinput = function (view, event) {\n // We should probably do more with beforeinput events, but support\n // is so spotty that I'm still waiting to see where they are going.\n\n // Very specific hack to deal with backspace sometimes failing on\n // Chrome Android when after an uneditable node.\n if (result.chrome && result.android && event.inputType == \"deleteContentBackward\") {\n view.domObserver.flushSoon();\n var domChangeCount = view.domChangeCount;\n setTimeout(function () {\n if (view.domChangeCount != domChangeCount) { return } // Event already had some effect\n // This bug tends to close the virtual keyboard, so we refocus\n view.dom.blur();\n view.focus();\n if (view.someProp(\"handleKeyDown\", function (f) { return f(view, keyEvent(8, \"Backspace\")); })) { return }\n var ref = view.state.selection;\n var $cursor = ref.$cursor;\n // Crude approximation of backspace behavior when no command handled it\n if ($cursor && $cursor.pos > 0) { view.dispatch(view.state.tr.delete($cursor.pos - 1, $cursor.pos).scrollIntoView()); }\n }, 50);\n }\n};\n\n// Make sure all handlers get registered\nfor (var prop in editHandlers) { handlers[prop] = editHandlers[prop]; }\n\nfunction compareObjs(a, b) {\n if (a == b) { return true }\n for (var p in a) { if (a[p] !== b[p]) { return false } }\n for (var p$1 in b) { if (!(p$1 in a)) { return false } }\n return true\n}\n\nvar WidgetType = function WidgetType(toDOM, spec) {\n this.spec = spec || noSpec;\n this.side = this.spec.side || 0;\n this.toDOM = toDOM;\n};\n\nWidgetType.prototype.map = function map (mapping, span, offset, oldOffset) {\n var ref = mapping.mapResult(span.from + oldOffset, this.side < 0 ? -1 : 1);\n var pos = ref.pos;\n var deleted = ref.deleted;\n return deleted ? null : new Decoration(pos - offset, pos - offset, this)\n};\n\nWidgetType.prototype.valid = function valid () { return true };\n\nWidgetType.prototype.eq = function eq (other) {\n return this == other ||\n (other instanceof WidgetType &&\n (this.spec.key && this.spec.key == other.spec.key ||\n this.toDOM == other.toDOM && compareObjs(this.spec, other.spec)))\n};\n\nWidgetType.prototype.destroy = function destroy (node) {\n if (this.spec.destroy) { this.spec.destroy(node); }\n};\n\nvar InlineType = function InlineType(attrs, spec) {\n this.spec = spec || noSpec;\n this.attrs = attrs;\n};\n\nInlineType.prototype.map = function map (mapping, span, offset, oldOffset) {\n var from = mapping.map(span.from + oldOffset, this.spec.inclusiveStart ? -1 : 1) - offset;\n var to = mapping.map(span.to + oldOffset, this.spec.inclusiveEnd ? 1 : -1) - offset;\n return from >= to ? null : new Decoration(from, to, this)\n};\n\nInlineType.prototype.valid = function valid (_, span) { return span.from < span.to };\n\nInlineType.prototype.eq = function eq (other) {\n return this == other ||\n (other instanceof InlineType && compareObjs(this.attrs, other.attrs) &&\n compareObjs(this.spec, other.spec))\n};\n\nInlineType.is = function is (span) { return span.type instanceof InlineType };\n\nvar NodeType = function NodeType(attrs, spec) {\n this.spec = spec || noSpec;\n this.attrs = attrs;\n};\n\nNodeType.prototype.map = function map (mapping, span, offset, oldOffset) {\n var from = mapping.mapResult(span.from + oldOffset, 1);\n if (from.deleted) { return null }\n var to = mapping.mapResult(span.to + oldOffset, -1);\n if (to.deleted || to.pos <= from.pos) { return null }\n return new Decoration(from.pos - offset, to.pos - offset, this)\n};\n\nNodeType.prototype.valid = function valid (node, span) {\n var ref = node.content.findIndex(span.from);\n var index = ref.index;\n var offset = ref.offset;\n var child;\n return offset == span.from && !(child = node.child(index)).isText && offset + child.nodeSize == span.to\n};\n\nNodeType.prototype.eq = function eq (other) {\n return this == other ||\n (other instanceof NodeType && compareObjs(this.attrs, other.attrs) &&\n compareObjs(this.spec, other.spec))\n};\n\n// ::- Decoration objects can be provided to the view through the\n// [`decorations` prop](#view.EditorProps.decorations). They come in\n// several variants—see the static members of this class for details.\nvar Decoration = function Decoration(from, to, type) {\n // :: number\n // The start position of the decoration.\n this.from = from;\n // :: number\n // The end position. Will be the same as `from` for [widget\n // decorations](#view.Decoration^widget).\n this.to = to;\n this.type = type;\n};\n\nvar prototypeAccessors$1 = { spec: { configurable: true },inline: { configurable: true } };\n\nDecoration.prototype.copy = function copy (from, to) {\n return new Decoration(from, to, this.type)\n};\n\nDecoration.prototype.eq = function eq (other, offset) {\n if ( offset === void 0 ) offset = 0;\n\n return this.type.eq(other.type) && this.from + offset == other.from && this.to + offset == other.to\n};\n\nDecoration.prototype.map = function map (mapping, offset, oldOffset) {\n return this.type.map(mapping, this, offset, oldOffset)\n};\n\n// :: (number, union<(view: EditorView, getPos: () → number) → dom.Node, dom.Node>, ?Object) → Decoration\n// Creates a widget decoration, which is a DOM node that's shown in\n// the document at the given position. It is recommended that you\n// delay rendering the widget by passing a function that will be\n// called when the widget is actually drawn in a view, but you can\n// also directly pass a DOM node. `getPos` can be used to find the\n// widget's current document position.\n//\n// spec::- These options are supported:\n//\n// side:: ?number\n// Controls which side of the document position this widget is\n// associated with. When negative, it is drawn before a cursor\n// at its position, and content inserted at that position ends\n// up after the widget. When zero (the default) or positive, the\n// widget is drawn after the cursor and content inserted there\n// ends up before the widget.\n//\n// When there are multiple widgets at a given position, their\n// `side` values determine the order in which they appear. Those\n// with lower values appear first. The ordering of widgets with\n// the same `side` value is unspecified.\n//\n// When `marks` is null, `side` also determines the marks that\n// the widget is wrapped in—those of the node before when\n// negative, those of the node after when positive.\n//\n// marks:: ?[Mark]\n// The precise set of marks to draw around the widget.\n//\n// stopEvent:: ?(event: dom.Event) → bool\n// Can be used to control which DOM events, when they bubble out\n// of this widget, the editor view should ignore.\n//\n// ignoreSelection:: ?bool\n// When set (defaults to false), selection changes inside the\n// widget are ignored, and don't cause ProseMirror to try and\n// re-sync the selection with its selection state.\n//\n// key:: ?string\n// When comparing decorations of this type (in order to decide\n// whether it needs to be redrawn), ProseMirror will by default\n// compare the widget DOM node by identity. If you pass a key,\n// that key will be compared instead, which can be useful when\n// you generate decorations on the fly and don't want to store\n// and reuse DOM nodes. Make sure that any widgets with the same\n// key are interchangeable—if widgets differ in, for example,\n// the behavior of some event handler, they should get\n// different keys.\n//\n// destroy:: ?(node: dom.Node)\n// Called when the widget decoration is removed as a result of\n// mapping\nDecoration.widget = function widget (pos, toDOM, spec) {\n return new Decoration(pos, pos, new WidgetType(toDOM, spec))\n};\n\n// :: (number, number, DecorationAttrs, ?Object) → Decoration\n// Creates an inline decoration, which adds the given attributes to\n// each inline node between `from` and `to`.\n//\n// spec::- These options are recognized:\n//\n// inclusiveStart:: ?bool\n// Determines how the left side of the decoration is\n// [mapped](#transform.Position_Mapping) when content is\n// inserted directly at that position. By default, the decoration\n// won't include the new content, but you can set this to `true`\n// to make it inclusive.\n//\n// inclusiveEnd:: ?bool\n// Determines how the right side of the decoration is mapped.\n// See\n// [`inclusiveStart`](#view.Decoration^inline^spec.inclusiveStart).\nDecoration.inline = function inline (from, to, attrs, spec) {\n return new Decoration(from, to, new InlineType(attrs, spec))\n};\n\n// :: (number, number, DecorationAttrs, ?Object) → Decoration\n// Creates a node decoration. `from` and `to` should point precisely\n// before and after a node in the document. That node, and only that\n// node, will receive the given attributes.\n//\n// spec::-\n//\n// Optional information to store with the decoration. It\n// is also used when comparing decorators for equality.\nDecoration.node = function node (from, to, attrs, spec) {\n return new Decoration(from, to, new NodeType(attrs, spec))\n};\n\n// :: Object\n// The spec provided when creating this decoration. Can be useful\n// if you've stored extra information in that object.\nprototypeAccessors$1.spec.get = function () { return this.type.spec };\n\nprototypeAccessors$1.inline.get = function () { return this.type instanceof InlineType };\n\nObject.defineProperties( Decoration.prototype, prototypeAccessors$1 );\n\n// DecorationAttrs:: interface\n// A set of attributes to add to a decorated node. Most properties\n// simply directly correspond to DOM attributes of the same name,\n// which will be set to the property's value. These are exceptions:\n//\n// class:: ?string\n// A CSS class name or a space-separated set of class names to be\n// _added_ to the classes that the node already had.\n//\n// style:: ?string\n// A string of CSS to be _added_ to the node's existing `style` property.\n//\n// nodeName:: ?string\n// When non-null, the target node is wrapped in a DOM element of\n// this type (and the other attributes are applied to this element).\n\nvar none = [], noSpec = {};\n\n// :: class extends DecorationSource\n// A collection of [decorations](#view.Decoration), organized in\n// such a way that the drawing algorithm can efficiently use and\n// compare them. This is a persistent data structure—it is not\n// modified, updates create a new value.\nvar DecorationSet = function DecorationSet(local, children) {\n this.local = local && local.length ? local : none;\n this.children = children && children.length ? children : none;\n};\n\n// :: (Node, [Decoration]) → DecorationSet\n// Create a set of decorations, using the structure of the given\n// document.\nDecorationSet.create = function create (doc, decorations) {\n return decorations.length ? buildTree(decorations, doc, 0, noSpec) : empty\n};\n\n// :: (?number, ?number, ?(spec: Object) → bool) → [Decoration]\n// Find all decorations in this set which touch the given range\n// (including decorations that start or end directly at the\n// boundaries) and match the given predicate on their spec. When\n// `start` and `end` are omitted, all decorations in the set are\n// considered. When `predicate` isn't given, all decorations are\n// assumed to match.\nDecorationSet.prototype.find = function find (start, end, predicate) {\n var result = [];\n this.findInner(start == null ? 0 : start, end == null ? 1e9 : end, result, 0, predicate);\n return result\n};\n\nDecorationSet.prototype.findInner = function findInner (start, end, result, offset, predicate) {\n for (var i = 0; i < this.local.length; i++) {\n var span = this.local[i];\n if (span.from <= end && span.to >= start && (!predicate || predicate(span.spec)))\n { result.push(span.copy(span.from + offset, span.to + offset)); }\n }\n for (var i$1 = 0; i$1 < this.children.length; i$1 += 3) {\n if (this.children[i$1] < end && this.children[i$1 + 1] > start) {\n var childOff = this.children[i$1] + 1;\n this.children[i$1 + 2].findInner(start - childOff, end - childOff, result, offset + childOff, predicate);\n }\n }\n};\n\n// :: (Mapping, Node, ?Object) → DecorationSet\n// Map the set of decorations in response to a change in the\n// document.\n//\n// options::- An optional set of options.\n//\n// onRemove:: ?(decorationSpec: Object)\n// When given, this function will be called for each decoration\n// that gets dropped as a result of the mapping, passing the\n// spec of that decoration.\nDecorationSet.prototype.map = function map (mapping, doc, options) {\n if (this == empty || mapping.maps.length == 0) { return this }\n return this.mapInner(mapping, doc, 0, 0, options || noSpec)\n};\n\nDecorationSet.prototype.mapInner = function mapInner (mapping, node, offset, oldOffset, options) {\n var newLocal;\n for (var i = 0; i < this.local.length; i++) {\n var mapped = this.local[i].map(mapping, offset, oldOffset);\n if (mapped && mapped.type.valid(node, mapped)) { (newLocal || (newLocal = [])).push(mapped); }\n else if (options.onRemove) { options.onRemove(this.local[i].spec); }\n }\n\n if (this.children.length)\n { return mapChildren(this.children, newLocal, mapping, node, offset, oldOffset, options) }\n else\n { return newLocal ? new DecorationSet(newLocal.sort(byPos)) : empty }\n};\n\n// :: (Node, [Decoration]) → DecorationSet\n// Add the given array of decorations to the ones in the set,\n// producing a new set. Needs access to the current document to\n// create the appropriate tree structure.\nDecorationSet.prototype.add = function add (doc, decorations) {\n if (!decorations.length) { return this }\n if (this == empty) { return DecorationSet.create(doc, decorations) }\n return this.addInner(doc, decorations, 0)\n};\n\nDecorationSet.prototype.addInner = function addInner (doc, decorations, offset) {\n var this$1 = this;\n\n var children, childIndex = 0;\n doc.forEach(function (childNode, childOffset) {\n var baseOffset = childOffset + offset, found;\n if (!(found = takeSpansForNode(decorations, childNode, baseOffset))) { return }\n\n if (!children) { children = this$1.children.slice(); }\n while (childIndex < children.length && children[childIndex] < childOffset) { childIndex += 3; }\n if (children[childIndex] == childOffset)\n { children[childIndex + 2] = children[childIndex + 2].addInner(childNode, found, baseOffset + 1); }\n else\n { children.splice(childIndex, 0, childOffset, childOffset + childNode.nodeSize, buildTree(found, childNode, baseOffset + 1, noSpec)); }\n childIndex += 3;\n });\n\n var local = moveSpans(childIndex ? withoutNulls(decorations) : decorations, -offset);\n for (var i = 0; i < local.length; i++) { if (!local[i].type.valid(doc, local[i])) { local.splice(i--, 1); } }\n\n return new DecorationSet(local.length ? this.local.concat(local).sort(byPos) : this.local,\n children || this.children)\n};\n\n// :: ([Decoration]) → DecorationSet\n// Create a new set that contains the decorations in this set, minus\n// the ones in the given array.\nDecorationSet.prototype.remove = function remove (decorations) {\n if (decorations.length == 0 || this == empty) { return this }\n return this.removeInner(decorations, 0)\n};\n\nDecorationSet.prototype.removeInner = function removeInner (decorations, offset) {\n var children = this.children, local = this.local;\n for (var i = 0; i < children.length; i += 3) {\n var found = (void 0), from = children[i] + offset, to = children[i + 1] + offset;\n for (var j = 0, span = (void 0); j < decorations.length; j++) { if (span = decorations[j]) {\n if (span.from > from && span.to < to) {\n decorations[j] = null\n ;(found || (found = [])).push(span);\n }\n } }\n if (!found) { continue }\n if (children == this.children) { children = this.children.slice(); }\n var removed = children[i + 2].removeInner(found, from + 1);\n if (removed != empty) {\n children[i + 2] = removed;\n } else {\n children.splice(i, 3);\n i -= 3;\n }\n }\n if (local.length) { for (var i$1 = 0, span$1 = (void 0); i$1 < decorations.length; i$1++) { if (span$1 = decorations[i$1]) {\n for (var j$1 = 0; j$1 < local.length; j$1++) { if (local[j$1].eq(span$1, offset)) {\n if (local == this.local) { local = this.local.slice(); }\n local.splice(j$1--, 1);\n } }\n } } }\n if (children == this.children && local == this.local) { return this }\n return local.length || children.length ? new DecorationSet(local, children) : empty\n};\n\nDecorationSet.prototype.forChild = function forChild (offset, node) {\n if (this == empty) { return this }\n if (node.isLeaf) { return DecorationSet.empty }\n\n var child, local;\n for (var i = 0; i < this.children.length; i += 3) { if (this.children[i] >= offset) {\n if (this.children[i] == offset) { child = this.children[i + 2]; }\n break\n } }\n var start = offset + 1, end = start + node.content.size;\n for (var i$1 = 0; i$1 < this.local.length; i$1++) {\n var dec = this.local[i$1];\n if (dec.from < end && dec.to > start && (dec.type instanceof InlineType)) {\n var from = Math.max(start, dec.from) - start, to = Math.min(end, dec.to) - start;\n if (from < to) { (local || (local = [])).push(dec.copy(from, to)); }\n }\n }\n if (local) {\n var localSet = new DecorationSet(local.sort(byPos));\n return child ? new DecorationGroup([localSet, child]) : localSet\n }\n return child || empty\n};\n\nDecorationSet.prototype.eq = function eq (other) {\n if (this == other) { return true }\n if (!(other instanceof DecorationSet) ||\n this.local.length != other.local.length ||\n this.children.length != other.children.length) { return false }\n for (var i = 0; i < this.local.length; i++)\n { if (!this.local[i].eq(other.local[i])) { return false } }\n for (var i$1 = 0; i$1 < this.children.length; i$1 += 3)\n { if (this.children[i$1] != other.children[i$1] ||\n this.children[i$1 + 1] != other.children[i$1 + 1] ||\n !this.children[i$1 + 2].eq(other.children[i$1 + 2])) { return false } }\n return true\n};\n\nDecorationSet.prototype.locals = function locals (node) {\n return removeOverlap(this.localsInner(node))\n};\n\nDecorationSet.prototype.localsInner = function localsInner (node) {\n if (this == empty) { return none }\n if (node.inlineContent || !this.local.some(InlineType.is)) { return this.local }\n var result = [];\n for (var i = 0; i < this.local.length; i++) {\n if (!(this.local[i].type instanceof InlineType))\n { result.push(this.local[i]); }\n }\n return result\n};\n\n// DecorationSource:: interface\n// An object that can [provide](#view.EditorProps.decorations)\n// decorations. Implemented by [`DecorationSet`](#view.DecorationSet),\n// and passed to [node views](#view.EditorProps.nodeViews).\n//\n// map:: (Mapping, Node) → DecorationSource\n// Map the set of decorations in response to a change in the\n// document.\n\nvar empty = new DecorationSet();\n\n// :: DecorationSet\n// The empty set of decorations.\nDecorationSet.empty = empty;\n\nDecorationSet.removeOverlap = removeOverlap;\n\n// :- An abstraction that allows the code dealing with decorations to\n// treat multiple DecorationSet objects as if it were a single object\n// with (a subset of) the same interface.\nvar DecorationGroup = function DecorationGroup(members) {\n this.members = members;\n};\n\nDecorationGroup.prototype.map = function map (mapping, doc) {\n var mappedDecos = this.members.map(\n function (member) { return member.map(mapping, doc, noSpec); }\n );\n return DecorationGroup.from(mappedDecos)\n};\n\nDecorationGroup.prototype.forChild = function forChild (offset, child) {\n if (child.isLeaf) { return DecorationSet.empty }\n var found = [];\n for (var i = 0; i < this.members.length; i++) {\n var result = this.members[i].forChild(offset, child);\n if (result == empty) { continue }\n if (result instanceof DecorationGroup) { found = found.concat(result.members); }\n else { found.push(result); }\n }\n return DecorationGroup.from(found)\n};\n\nDecorationGroup.prototype.eq = function eq (other) {\n if (!(other instanceof DecorationGroup) ||\n other.members.length != this.members.length) { return false }\n for (var i = 0; i < this.members.length; i++)\n { if (!this.members[i].eq(other.members[i])) { return false } }\n return true\n};\n\nDecorationGroup.prototype.locals = function locals (node) {\n var result, sorted = true;\n for (var i = 0; i < this.members.length; i++) {\n var locals = this.members[i].localsInner(node);\n if (!locals.length) { continue }\n if (!result) {\n result = locals;\n } else {\n if (sorted) {\n result = result.slice();\n sorted = false;\n }\n for (var j = 0; j < locals.length; j++) { result.push(locals[j]); }\n }\n }\n return result ? removeOverlap(sorted ? result : result.sort(byPos)) : none\n};\n\n// : ([DecorationSet]) → union\n// Create a group for the given array of decoration sets, or return\n// a single set when possible.\nDecorationGroup.from = function from (members) {\n switch (members.length) {\n case 0: return empty\n case 1: return members[0]\n default: return new DecorationGroup(members)\n }\n};\n\nfunction mapChildren(oldChildren, newLocal, mapping, node, offset, oldOffset, options) {\n var children = oldChildren.slice();\n\n // Mark the children that are directly touched by changes, and\n // move those that are after the changes.\n var shift = function (oldStart, oldEnd, newStart, newEnd) {\n for (var i = 0; i < children.length; i += 3) {\n var end = children[i + 1], dSize = (void 0);\n if (end == -1 || oldStart > end + oldOffset) { continue }\n if (oldEnd >= children[i] + oldOffset) {\n children[i + 1] = -1;\n } else if (newStart >= offset && (dSize = (newEnd - newStart) - (oldEnd - oldStart))) {\n children[i] += dSize;\n children[i + 1] += dSize;\n }\n }\n };\n for (var i = 0; i < mapping.maps.length; i++) { mapping.maps[i].forEach(shift); }\n\n // Find the child nodes that still correspond to a single node,\n // recursively call mapInner on them and update their positions.\n var mustRebuild = false;\n for (var i$1 = 0; i$1 < children.length; i$1 += 3) { if (children[i$1 + 1] == -1) { // Touched nodes\n var from = mapping.map(oldChildren[i$1] + oldOffset), fromLocal = from - offset;\n if (fromLocal < 0 || fromLocal >= node.content.size) {\n mustRebuild = true;\n continue\n }\n // Must read oldChildren because children was tagged with -1\n var to = mapping.map(oldChildren[i$1 + 1] + oldOffset, -1), toLocal = to - offset;\n var ref = node.content.findIndex(fromLocal);\n var index = ref.index;\n var childOffset = ref.offset;\n var childNode = node.maybeChild(index);\n if (childNode && childOffset == fromLocal && childOffset + childNode.nodeSize == toLocal) {\n var mapped = children[i$1 + 2].mapInner(mapping, childNode, from + 1, oldChildren[i$1] + oldOffset + 1, options);\n if (mapped != empty) {\n children[i$1] = fromLocal;\n children[i$1 + 1] = toLocal;\n children[i$1 + 2] = mapped;\n } else {\n children[i$1 + 1] = -2;\n mustRebuild = true;\n }\n } else {\n mustRebuild = true;\n }\n } }\n\n // Remaining children must be collected and rebuilt into the appropriate structure\n if (mustRebuild) {\n var decorations = mapAndGatherRemainingDecorations(children, oldChildren, newLocal || [], mapping,\n offset, oldOffset, options);\n var built = buildTree(decorations, node, 0, options);\n newLocal = built.local;\n for (var i$2 = 0; i$2 < children.length; i$2 += 3) { if (children[i$2 + 1] < 0) {\n children.splice(i$2, 3);\n i$2 -= 3;\n } }\n for (var i$3 = 0, j = 0; i$3 < built.children.length; i$3 += 3) {\n var from$1 = built.children[i$3];\n while (j < children.length && children[j] < from$1) { j += 3; }\n children.splice(j, 0, built.children[i$3], built.children[i$3 + 1], built.children[i$3 + 2]);\n }\n }\n\n return new DecorationSet(newLocal && newLocal.sort(byPos), children)\n}\n\nfunction moveSpans(spans, offset) {\n if (!offset || !spans.length) { return spans }\n var result = [];\n for (var i = 0; i < spans.length; i++) {\n var span = spans[i];\n result.push(new Decoration(span.from + offset, span.to + offset, span.type));\n }\n return result\n}\n\nfunction mapAndGatherRemainingDecorations(children, oldChildren, decorations, mapping, offset, oldOffset, options) {\n // Gather all decorations from the remaining marked children\n function gather(set, oldOffset) {\n for (var i = 0; i < set.local.length; i++) {\n var mapped = set.local[i].map(mapping, offset, oldOffset);\n if (mapped) { decorations.push(mapped); }\n else if (options.onRemove) { options.onRemove(set.local[i].spec); }\n }\n for (var i$1 = 0; i$1 < set.children.length; i$1 += 3)\n { gather(set.children[i$1 + 2], set.children[i$1] + oldOffset + 1); }\n }\n for (var i = 0; i < children.length; i += 3) { if (children[i + 1] == -1)\n { gather(children[i + 2], oldChildren[i] + oldOffset + 1); } }\n\n return decorations\n}\n\nfunction takeSpansForNode(spans, node, offset) {\n if (node.isLeaf) { return null }\n var end = offset + node.nodeSize, found = null;\n for (var i = 0, span = (void 0); i < spans.length; i++) {\n if ((span = spans[i]) && span.from > offset && span.to < end) {\n(found || (found = [])).push(span);\n spans[i] = null;\n }\n }\n return found\n}\n\nfunction withoutNulls(array) {\n var result = [];\n for (var i = 0; i < array.length; i++)\n { if (array[i] != null) { result.push(array[i]); } }\n return result\n}\n\n// : ([Decoration], Node, number) → DecorationSet\n// Build up a tree that corresponds to a set of decorations. `offset`\n// is a base offset that should be subtracted from the `from` and `to`\n// positions in the spans (so that we don't have to allocate new spans\n// for recursive calls).\nfunction buildTree(spans, node, offset, options) {\n var children = [], hasNulls = false;\n node.forEach(function (childNode, localStart) {\n var found = takeSpansForNode(spans, childNode, localStart + offset);\n if (found) {\n hasNulls = true;\n var subtree = buildTree(found, childNode, offset + localStart + 1, options);\n if (subtree != empty)\n { children.push(localStart, localStart + childNode.nodeSize, subtree); }\n }\n });\n var locals = moveSpans(hasNulls ? withoutNulls(spans) : spans, -offset).sort(byPos);\n for (var i = 0; i < locals.length; i++) { if (!locals[i].type.valid(node, locals[i])) {\n if (options.onRemove) { options.onRemove(locals[i].spec); }\n locals.splice(i--, 1);\n } }\n return locals.length || children.length ? new DecorationSet(locals, children) : empty\n}\n\n// : (Decoration, Decoration) → number\n// Used to sort decorations so that ones with a low start position\n// come first, and within a set with the same start position, those\n// with an smaller end position come first.\nfunction byPos(a, b) {\n return a.from - b.from || a.to - b.to\n}\n\n// : ([Decoration]) → [Decoration]\n// Scan a sorted array of decorations for partially overlapping spans,\n// and split those so that only fully overlapping spans are left (to\n// make subsequent rendering easier). Will return the input array if\n// no partially overlapping spans are found (the common case).\nfunction removeOverlap(spans) {\n var working = spans;\n for (var i = 0; i < working.length - 1; i++) {\n var span = working[i];\n if (span.from != span.to) { for (var j = i + 1; j < working.length; j++) {\n var next = working[j];\n if (next.from == span.from) {\n if (next.to != span.to) {\n if (working == spans) { working = spans.slice(); }\n // Followed by a partially overlapping larger span. Split that\n // span.\n working[j] = next.copy(next.from, span.to);\n insertAhead(working, j + 1, next.copy(span.to, next.to));\n }\n continue\n } else {\n if (next.from < span.to) {\n if (working == spans) { working = spans.slice(); }\n // The end of this one overlaps with a subsequent span. Split\n // this one.\n working[i] = span.copy(span.from, next.from);\n insertAhead(working, j, span.copy(next.from, span.to));\n }\n break\n }\n } }\n }\n return working\n}\n\nfunction insertAhead(array, i, deco) {\n while (i < array.length && byPos(deco, array[i]) > 0) { i++; }\n array.splice(i, 0, deco);\n}\n\n// : (EditorView) → union\n// Get the decorations associated with the current props of a view.\nfunction viewDecorations(view) {\n var found = [];\n view.someProp(\"decorations\", function (f) {\n var result = f(view.state);\n if (result && result != empty) { found.push(result); }\n });\n if (view.cursorWrapper)\n { found.push(DecorationSet.create(view.state.doc, [view.cursorWrapper.deco])); }\n return DecorationGroup.from(found)\n}\n\n// ::- An editor view manages the DOM structure that represents an\n// editable document. Its state and behavior are determined by its\n// [props](#view.DirectEditorProps).\nvar EditorView = function EditorView(place, props) {\n this._props = props;\n // :: EditorState\n // The view's current [state](#state.EditorState).\n this.state = props.state;\n\n this.directPlugins = props.plugins || [];\n this.directPlugins.forEach(checkStateComponent);\n\n this.dispatch = this.dispatch.bind(this);\n\n this._root = null;\n this.focused = false;\n // Kludge used to work around a Chrome bug\n this.trackWrites = null;\n\n // :: dom.Element\n // An editable DOM node containing the document. (You probably\n // should not directly interfere with its content.)\n this.dom = (place && place.mount) || document.createElement(\"div\");\n if (place) {\n if (place.appendChild) { place.appendChild(this.dom); }\n else if (place.apply) { place(this.dom); }\n else if (place.mount) { this.mounted = true; }\n }\n\n // :: bool\n // Indicates whether the editor is currently [editable](#view.EditorProps.editable).\n this.editable = getEditable(this);\n this.markCursor = null;\n this.cursorWrapper = null;\n updateCursorWrapper(this);\n this.nodeViews = buildNodeViews(this);\n this.docView = docViewDesc(this.state.doc, computeDocDeco(this), viewDecorations(this), this.dom, this);\n\n this.lastSelectedViewDesc = null;\n // :: ?{slice: Slice, move: bool}\n // When editor content is being dragged, this object contains\n // information about the dragged slice and whether it is being\n // copied or moved. At any other time, it is null.\n this.dragging = null;\n\n initInput(this);\n\n this.prevDirectPlugins = [];\n this.pluginViews = [];\n this.updatePluginViews();\n};\n\nvar prototypeAccessors$2 = { props: { configurable: true },root: { configurable: true },isDestroyed: { configurable: true } };\n\n// composing:: boolean\n// Holds `true` when a\n// [composition](https://developer.mozilla.org/en-US/docs/Mozilla/IME_handling_guide)\n// is active.\n\n// :: DirectEditorProps\n// The view's current [props](#view.EditorProps).\nprototypeAccessors$2.props.get = function () {\n if (this._props.state != this.state) {\n var prev = this._props;\n this._props = {};\n for (var name in prev) { this._props[name] = prev[name]; }\n this._props.state = this.state;\n }\n return this._props\n};\n\n// :: (DirectEditorProps)\n// Update the view's props. Will immediately cause an update to\n// the DOM.\nEditorView.prototype.update = function update (props) {\n if (props.handleDOMEvents != this._props.handleDOMEvents) { ensureListeners(this); }\n this._props = props;\n if (props.plugins) {\n props.plugins.forEach(checkStateComponent);\n this.directPlugins = props.plugins;\n }\n this.updateStateInner(props.state, true);\n};\n\n// :: (DirectEditorProps)\n// Update the view by updating existing props object with the object\n// given as argument. Equivalent to `view.update(Object.assign({},\n// view.props, props))`.\nEditorView.prototype.setProps = function setProps (props) {\n var updated = {};\n for (var name in this._props) { updated[name] = this._props[name]; }\n updated.state = this.state;\n for (var name$1 in props) { updated[name$1] = props[name$1]; }\n this.update(updated);\n};\n\n// :: (EditorState)\n// Update the editor's `state` prop, without touching any of the\n// other props.\nEditorView.prototype.updateState = function updateState (state) {\n this.updateStateInner(state, this.state.plugins != state.plugins);\n};\n\nEditorView.prototype.updateStateInner = function updateStateInner (state, reconfigured) {\n var this$1 = this;\n\n var prev = this.state, redraw = false, updateSel = false;\n // When stored marks are added, stop composition, so that they can\n // be displayed.\n if (state.storedMarks && this.composing) {\n clearComposition(this);\n updateSel = true;\n }\n this.state = state;\n if (reconfigured) {\n var nodeViews = buildNodeViews(this);\n if (changedNodeViews(nodeViews, this.nodeViews)) {\n this.nodeViews = nodeViews;\n redraw = true;\n }\n ensureListeners(this);\n }\n\n this.editable = getEditable(this);\n updateCursorWrapper(this);\n var innerDeco = viewDecorations(this), outerDeco = computeDocDeco(this);\n\n var scroll = reconfigured ? \"reset\"\n : state.scrollToSelection > prev.scrollToSelection ? \"to selection\" : \"preserve\";\n var updateDoc = redraw || !this.docView.matchesNode(state.doc, outerDeco, innerDeco);\n if (updateDoc || !state.selection.eq(prev.selection)) { updateSel = true; }\n var oldScrollPos = scroll == \"preserve\" && updateSel && this.dom.style.overflowAnchor == null && storeScrollPos(this);\n\n if (updateSel) {\n this.domObserver.stop();\n // Work around an issue in Chrome, IE, and Edge where changing\n // the DOM around an active selection puts it into a broken\n // state where the thing the user sees differs from the\n // selection reported by the Selection object (#710, #973,\n // #1011, #1013, #1035).\n var forceSelUpdate = updateDoc && (result.ie || result.chrome) && !this.composing &&\n !prev.selection.empty && !state.selection.empty && selectionContextChanged(prev.selection, state.selection);\n if (updateDoc) {\n // If the node that the selection points into is written to,\n // Chrome sometimes starts misreporting the selection, so this\n // tracks that and forces a selection reset when our update\n // did write to the node.\n var chromeKludge = result.chrome ? (this.trackWrites = this.root.getSelection().focusNode) : null;\n if (redraw || !this.docView.update(state.doc, outerDeco, innerDeco, this)) {\n this.docView.updateOuterDeco([]);\n this.docView.destroy();\n this.docView = docViewDesc(state.doc, outerDeco, innerDeco, this.dom, this);\n }\n if (chromeKludge && !this.trackWrites) { forceSelUpdate = true; }\n }\n // Work around for an issue where an update arriving right between\n // a DOM selection change and the \"selectionchange\" event for it\n // can cause a spurious DOM selection update, disrupting mouse\n // drag selection.\n if (forceSelUpdate ||\n !(this.mouseDown && this.domObserver.currentSelection.eq(this.root.getSelection()) && anchorInRightPlace(this))) {\n selectionToDOM(this, forceSelUpdate);\n } else {\n syncNodeSelection(this, state.selection);\n this.domObserver.setCurSelection();\n }\n this.domObserver.start();\n }\n\n this.updatePluginViews(prev);\n\n if (scroll == \"reset\") {\n this.dom.scrollTop = 0;\n } else if (scroll == \"to selection\") {\n var startDOM = this.root.getSelection().focusNode;\n if (this.someProp(\"handleScrollToSelection\", function (f) { return f(this$1); }))\n ; // Handled\n else if (state.selection instanceof NodeSelection)\n { scrollRectIntoView(this, this.docView.domAfterPos(state.selection.from).getBoundingClientRect(), startDOM); }\n else\n { scrollRectIntoView(this, this.coordsAtPos(state.selection.head, 1), startDOM); }\n } else if (oldScrollPos) {\n resetScrollPos(oldScrollPos);\n }\n};\n\nEditorView.prototype.destroyPluginViews = function destroyPluginViews () {\n var view;\n while (view = this.pluginViews.pop()) { if (view.destroy) { view.destroy(); } }\n};\n\nEditorView.prototype.updatePluginViews = function updatePluginViews (prevState) {\n if (!prevState || prevState.plugins != this.state.plugins || this.directPlugins != this.prevDirectPlugins) {\n this.prevDirectPlugins = this.directPlugins;\n this.destroyPluginViews();\n for (var i = 0; i < this.directPlugins.length; i++) {\n var plugin = this.directPlugins[i];\n if (plugin.spec.view) { this.pluginViews.push(plugin.spec.view(this)); }\n }\n for (var i$1 = 0; i$1 < this.state.plugins.length; i$1++) {\n var plugin$1 = this.state.plugins[i$1];\n if (plugin$1.spec.view) { this.pluginViews.push(plugin$1.spec.view(this)); }\n }\n } else {\n for (var i$2 = 0; i$2 < this.pluginViews.length; i$2++) {\n var pluginView = this.pluginViews[i$2];\n if (pluginView.update) { pluginView.update(this, prevState); }\n }\n }\n};\n\n// :: (string, ?(prop: *) → *) → *\n// Goes over the values of a prop, first those provided directly,\n// then those from plugins given to the view, then from plugins in\n// the state (in order), and calls `f` every time a non-undefined\n// value is found. When `f` returns a truthy value, that is\n// immediately returned. When `f` isn't provided, it is treated as\n// the identity function (the prop value is returned directly).\nEditorView.prototype.someProp = function someProp (propName, f) {\n var prop = this._props && this._props[propName], value;\n if (prop != null && (value = f ? f(prop) : prop)) { return value }\n for (var i = 0; i < this.directPlugins.length; i++) {\n var prop$1 = this.directPlugins[i].props[propName];\n if (prop$1 != null && (value = f ? f(prop$1) : prop$1)) { return value }\n }\n var plugins = this.state.plugins;\n if (plugins) { for (var i$1 = 0; i$1 < plugins.length; i$1++) {\n var prop$2 = plugins[i$1].props[propName];\n if (prop$2 != null && (value = f ? f(prop$2) : prop$2)) { return value }\n } }\n};\n\n// :: () → bool\n// Query whether the view has focus.\nEditorView.prototype.hasFocus = function hasFocus () {\n return this.root.activeElement == this.dom\n};\n\n// :: ()\n// Focus the editor.\nEditorView.prototype.focus = function focus () {\n this.domObserver.stop();\n if (this.editable) { focusPreventScroll(this.dom); }\n selectionToDOM(this);\n this.domObserver.start();\n};\n\n// :: union\n// Get the document root in which the editor exists. This will\n// usually be the top-level `document`, but might be a [shadow\n// DOM](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Shadow_DOM)\n// root if the editor is inside one.\nprototypeAccessors$2.root.get = function () {\n var cached = this._root;\n if (cached == null) { for (var search = this.dom.parentNode; search; search = search.parentNode) {\n if (search.nodeType == 9 || (search.nodeType == 11 && search.host)) {\n if (!search.getSelection) { Object.getPrototypeOf(search).getSelection = function () { return document.getSelection(); }; }\n return this._root = search\n }\n } }\n return cached || document\n};\n\n// :: ({left: number, top: number}) → ?{pos: number, inside: number}\n// Given a pair of viewport coordinates, return the document\n// position that corresponds to them. May return null if the given\n// coordinates aren't inside of the editor. When an object is\n// returned, its `pos` property is the position nearest to the\n// coordinates, and its `inside` property holds the position of the\n// inner node that the position falls inside of, or -1 if it is at\n// the top level, not in any node.\nEditorView.prototype.posAtCoords = function posAtCoords$1 (coords) {\n return posAtCoords(this, coords)\n};\n\n// :: (number, number) → {left: number, right: number, top: number, bottom: number}\n// Returns the viewport rectangle at a given document position.\n// `left` and `right` will be the same number, as this returns a\n// flat cursor-ish rectangle. If the position is between two things\n// that aren't directly adjacent, `side` determines which element is\n// used. When < 0, the element before the position is used,\n// otherwise the element after.\nEditorView.prototype.coordsAtPos = function coordsAtPos$1 (pos, side) {\n if ( side === void 0 ) side = 1;\n\n return coordsAtPos(this, pos, side)\n};\n\n// :: (number, number) → {node: dom.Node, offset: number}\n// Find the DOM position that corresponds to the given document\n// position. When `side` is negative, find the position as close as\n// possible to the content before the position. When positive,\n// prefer positions close to the content after the position. When\n// zero, prefer as shallow a position as possible.\n//\n// Note that you should **not** mutate the editor's internal DOM,\n// only inspect it (and even that is usually not necessary).\nEditorView.prototype.domAtPos = function domAtPos (pos, side) {\n if ( side === void 0 ) side = 0;\n\n return this.docView.domFromPos(pos, side)\n};\n\n// :: (number) → ?dom.Node\n// Find the DOM node that represents the document node after the\n// given position. May return `null` when the position doesn't point\n// in front of a node or if the node is inside an opaque node view.\n//\n// This is intended to be able to call things like\n// `getBoundingClientRect` on that DOM node. Do **not** mutate the\n// editor DOM directly, or add styling this way, since that will be\n// immediately overriden by the editor as it redraws the node.\nEditorView.prototype.nodeDOM = function nodeDOM (pos) {\n var desc = this.docView.descAt(pos);\n return desc ? desc.nodeDOM : null\n};\n\n// :: (dom.Node, number, ?number) → number\n// Find the document position that corresponds to a given DOM\n// position. (Whenever possible, it is preferable to inspect the\n// document structure directly, rather than poking around in the\n// DOM, but sometimes—for example when interpreting an event\n// target—you don't have a choice.)\n//\n// The `bias` parameter can be used to influence which side of a DOM\n// node to use when the position is inside a leaf node.\nEditorView.prototype.posAtDOM = function posAtDOM (node, offset, bias) {\n if ( bias === void 0 ) bias = -1;\n\n var pos = this.docView.posFromDOM(node, offset, bias);\n if (pos == null) { throw new RangeError(\"DOM position not inside the editor\") }\n return pos\n};\n\n// :: (union<\"up\", \"down\", \"left\", \"right\", \"forward\", \"backward\">, ?EditorState) → bool\n// Find out whether the selection is at the end of a textblock when\n// moving in a given direction. When, for example, given `\"left\"`,\n// it will return true if moving left from the current cursor\n// position would leave that position's parent textblock. Will apply\n// to the view's current state by default, but it is possible to\n// pass a different state.\nEditorView.prototype.endOfTextblock = function endOfTextblock$1 (dir, state) {\n return endOfTextblock(this, state || this.state, dir)\n};\n\n// :: ()\n// Removes the editor from the DOM and destroys all [node\n// views](#view.NodeView).\nEditorView.prototype.destroy = function destroy () {\n if (!this.docView) { return }\n destroyInput(this);\n this.destroyPluginViews();\n if (this.mounted) {\n this.docView.update(this.state.doc, [], viewDecorations(this), this);\n this.dom.textContent = \"\";\n } else if (this.dom.parentNode) {\n this.dom.parentNode.removeChild(this.dom);\n }\n this.docView.destroy();\n this.docView = null;\n};\n\n// :: boolean\n// This is true when the view has been\n// [destroyed](#view.EditorView.destroy) (and thus should not be\n// used anymore).\nprototypeAccessors$2.isDestroyed.get = function () {\n return this.docView == null\n};\n\n// Used for testing.\nEditorView.prototype.dispatchEvent = function dispatchEvent$1 (event) {\n return dispatchEvent(this, event)\n};\n\n// :: (Transaction)\n// Dispatch a transaction. Will call\n// [`dispatchTransaction`](#view.DirectEditorProps.dispatchTransaction)\n// when given, and otherwise defaults to applying the transaction to\n// the current state and calling\n// [`updateState`](#view.EditorView.updateState) with the result.\n// This method is bound to the view instance, so that it can be\n// easily passed around.\nEditorView.prototype.dispatch = function dispatch (tr) {\n var dispatchTransaction = this._props.dispatchTransaction;\n if (dispatchTransaction) { dispatchTransaction.call(this, tr); }\n else { this.updateState(this.state.apply(tr)); }\n};\n\nObject.defineProperties( EditorView.prototype, prototypeAccessors$2 );\n\nfunction computeDocDeco(view) {\n var attrs = Object.create(null);\n attrs.class = \"ProseMirror\";\n attrs.contenteditable = String(view.editable);\n attrs.translate = \"no\";\n\n view.someProp(\"attributes\", function (value) {\n if (typeof value == \"function\") { value = value(view.state); }\n if (value) { for (var attr in value) {\n if (attr == \"class\")\n { attrs.class += \" \" + value[attr]; }\n if (attr == \"style\") {\n attrs.style = (attrs.style ? attrs.style + \";\" : \"\") + value[attr];\n }\n else if (!attrs[attr] && attr != \"contenteditable\" && attr != \"nodeName\")\n { attrs[attr] = String(value[attr]); }\n } }\n });\n\n return [Decoration.node(0, view.state.doc.content.size, attrs)]\n}\n\nfunction updateCursorWrapper(view) {\n if (view.markCursor) {\n var dom = document.createElement(\"img\");\n dom.className = \"ProseMirror-separator\";\n dom.setAttribute(\"mark-placeholder\", \"true\");\n view.cursorWrapper = {dom: dom, deco: Decoration.widget(view.state.selection.head, dom, {raw: true, marks: view.markCursor})};\n } else {\n view.cursorWrapper = null;\n }\n}\n\nfunction getEditable(view) {\n return !view.someProp(\"editable\", function (value) { return value(view.state) === false; })\n}\n\nfunction selectionContextChanged(sel1, sel2) {\n var depth = Math.min(sel1.$anchor.sharedDepth(sel1.head), sel2.$anchor.sharedDepth(sel2.head));\n return sel1.$anchor.start(depth) != sel2.$anchor.start(depth)\n}\n\nfunction buildNodeViews(view) {\n var result = {};\n view.someProp(\"nodeViews\", function (obj) {\n for (var prop in obj) { if (!Object.prototype.hasOwnProperty.call(result, prop))\n { result[prop] = obj[prop]; } }\n });\n return result\n}\n\nfunction changedNodeViews(a, b) {\n var nA = 0, nB = 0;\n for (var prop in a) {\n if (a[prop] != b[prop]) { return true }\n nA++;\n }\n for (var _ in b) { nB++; }\n return nA != nB\n}\n\nfunction checkStateComponent(plugin) {\n if (plugin.spec.state || plugin.spec.filterTransaction || plugin.spec.appendTransaction)\n { throw new RangeError(\"Plugins passed directly to the view must not have a state component\") }\n}\n\n// EditorProps:: interface\n//\n// Props are configuration values that can be passed to an editor view\n// or included in a plugin. This interface lists the supported props.\n//\n// The various event-handling functions may all return `true` to\n// indicate that they handled the given event. The view will then take\n// care to call `preventDefault` on the event, except with\n// `handleDOMEvents`, where the handler itself is responsible for that.\n//\n// How a prop is resolved depends on the prop. Handler functions are\n// called one at a time, starting with the base props and then\n// searching through the plugins (in order of appearance) until one of\n// them returns true. For some props, the first plugin that yields a\n// value gets precedence.\n//\n// handleDOMEvents:: ?Object<(view: EditorView, event: dom.Event) → bool>\n// Can be an object mapping DOM event type names to functions that\n// handle them. Such functions will be called before any handling\n// ProseMirror does of events fired on the editable DOM element.\n// Contrary to the other event handling props, when returning true\n// from such a function, you are responsible for calling\n// `preventDefault` yourself (or not, if you want to allow the\n// default behavior).\n//\n// handleKeyDown:: ?(view: EditorView, event: dom.KeyboardEvent) → bool\n// Called when the editor receives a `keydown` event.\n//\n// handleKeyPress:: ?(view: EditorView, event: dom.KeyboardEvent) → bool\n// Handler for `keypress` events.\n//\n// handleTextInput:: ?(view: EditorView, from: number, to: number, text: string) → bool\n// Whenever the user directly input text, this handler is called\n// before the input is applied. If it returns `true`, the default\n// behavior of actually inserting the text is suppressed.\n//\n// handleClickOn:: ?(view: EditorView, pos: number, node: Node, nodePos: number, event: dom.MouseEvent, direct: bool) → bool\n// Called for each node around a click, from the inside out. The\n// `direct` flag will be true for the inner node.\n//\n// handleClick:: ?(view: EditorView, pos: number, event: dom.MouseEvent) → bool\n// Called when the editor is clicked, after `handleClickOn` handlers\n// have been called.\n//\n// handleDoubleClickOn:: ?(view: EditorView, pos: number, node: Node, nodePos: number, event: dom.MouseEvent, direct: bool) → bool\n// Called for each node around a double click.\n//\n// handleDoubleClick:: ?(view: EditorView, pos: number, event: dom.MouseEvent) → bool\n// Called when the editor is double-clicked, after `handleDoubleClickOn`.\n//\n// handleTripleClickOn:: ?(view: EditorView, pos: number, node: Node, nodePos: number, event: dom.MouseEvent, direct: bool) → bool\n// Called for each node around a triple click.\n//\n// handleTripleClick:: ?(view: EditorView, pos: number, event: dom.MouseEvent) → bool\n// Called when the editor is triple-clicked, after `handleTripleClickOn`.\n//\n// handlePaste:: ?(view: EditorView, event: dom.ClipboardEvent, slice: Slice) → bool\n// Can be used to override the behavior of pasting. `slice` is the\n// pasted content parsed by the editor, but you can directly access\n// the event to get at the raw content.\n//\n// handleDrop:: ?(view: EditorView, event: dom.Event, slice: Slice, moved: bool) → bool\n// Called when something is dropped on the editor. `moved` will be\n// true if this drop moves from the current selection (which should\n// thus be deleted).\n//\n// handleScrollToSelection:: ?(view: EditorView) → bool\n// Called when the view, after updating its state, tries to scroll\n// the selection into view. A handler function may return false to\n// indicate that it did not handle the scrolling and further\n// handlers or the default behavior should be tried.\n//\n// createSelectionBetween:: ?(view: EditorView, anchor: ResolvedPos, head: ResolvedPos) → ?Selection\n// Can be used to override the way a selection is created when\n// reading a DOM selection between the given anchor and head.\n//\n// domParser:: ?DOMParser\n// The [parser](#model.DOMParser) to use when reading editor changes\n// from the DOM. Defaults to calling\n// [`DOMParser.fromSchema`](#model.DOMParser^fromSchema) on the\n// editor's schema.\n//\n// transformPastedHTML:: ?(html: string) → string\n// Can be used to transform pasted HTML text, _before_ it is parsed,\n// for example to clean it up.\n//\n// clipboardParser:: ?DOMParser\n// The [parser](#model.DOMParser) to use when reading content from\n// the clipboard. When not given, the value of the\n// [`domParser`](#view.EditorProps.domParser) prop is used.\n//\n// transformPastedText:: ?(text: string, plain: bool) → string\n// Transform pasted plain text. The `plain` flag will be true when\n// the text is pasted as plain text.\n//\n// clipboardTextParser:: ?(text: string, $context: ResolvedPos, plain: bool) → Slice\n// A function to parse text from the clipboard into a document\n// slice. Called after\n// [`transformPastedText`](#view.EditorProps.transformPastedText).\n// The default behavior is to split the text into lines, wrap them\n// in `

    ` tags, and call\n// [`clipboardParser`](#view.EditorProps.clipboardParser) on it.\n// The `plain` flag will be true when the text is pasted as plain text.\n//\n// transformPasted:: ?(Slice) → Slice\n// Can be used to transform pasted content before it is applied to\n// the document.\n//\n// nodeViews:: ?Object<(node: Node, view: EditorView, getPos: () → number, decorations: [Decoration], innerDecorations: DecorationSource) → NodeView>\n// Allows you to pass custom rendering and behavior logic for nodes\n// and marks. Should map node and mark names to constructor\n// functions that produce a [`NodeView`](#view.NodeView) object\n// implementing the node's display behavior. For nodes, the third\n// argument `getPos` is a function that can be called to get the\n// node's current position, which can be useful when creating\n// transactions to update it. For marks, the third argument is a\n// boolean that indicates whether the mark's content is inline.\n//\n// `decorations` is an array of node or inline decorations that are\n// active around the node. They are automatically drawn in the\n// normal way, and you will usually just want to ignore this, but\n// they can also be used as a way to provide context information to\n// the node view without adding it to the document itself.\n//\n// `innerDecorations` holds the decorations for the node's content.\n// You can safely ignore this if your view has no content or a\n// `contentDOM` property, since the editor will draw the decorations\n// on the content. But if you, for example, want to create a nested\n// editor with the content, it may make sense to provide it with the\n// inner decorations.\n//\n// clipboardSerializer:: ?DOMSerializer\n// The DOM serializer to use when putting content onto the\n// clipboard. If not given, the result of\n// [`DOMSerializer.fromSchema`](#model.DOMSerializer^fromSchema)\n// will be used.\n//\n// clipboardTextSerializer:: ?(Slice) → string\n// A function that will be called to get the text for the current\n// selection when copying text to the clipboard. By default, the\n// editor will use [`textBetween`](#model.Node.textBetween) on the\n// selected range.\n//\n// decorations:: ?(state: EditorState) → ?DecorationSource\n// A set of [document decorations](#view.Decoration) to show in the\n// view.\n//\n// editable:: ?(state: EditorState) → bool\n// When this returns false, the content of the view is not directly\n// editable.\n//\n// attributes:: ?union, (EditorState) → ?Object>\n// Control the DOM attributes of the editable element. May be either\n// an object or a function going from an editor state to an object.\n// By default, the element will get a class `\"ProseMirror\"`, and\n// will have its `contentEditable` attribute determined by the\n// [`editable` prop](#view.EditorProps.editable). Additional classes\n// provided here will be added to the class. For other attributes,\n// the value provided first (as in\n// [`someProp`](#view.EditorView.someProp)) will be used.\n//\n// scrollThreshold:: ?union\n// Determines the distance (in pixels) between the cursor and the\n// end of the visible viewport at which point, when scrolling the\n// cursor into view, scrolling takes place. Defaults to 0.\n//\n// scrollMargin:: ?union\n// Determines the extra space (in pixels) that is left above or\n// below the cursor when it is scrolled into view. Defaults to 5.\n\n// DirectEditorProps:: interface extends EditorProps\n//\n// The props object given directly to the editor view supports two\n// fields that can't be used in plugins:\n//\n// state:: EditorState\n// The current state of the editor.\n//\n// plugins:: [Plugin]\n// A set of plugins to use in the view, applying their [plugin\n// view](#state.PluginSpec.view) and\n// [props](#state.PluginSpec.props). Passing plugins with a state\n// component (a [state field](#state.PluginSpec.state) field or a\n// [transaction](#state.PluginSpec.filterTransaction) filter or\n// appender) will result in an error, since such plugins must be\n// present in the state to work.\n//\n// dispatchTransaction:: ?(tr: Transaction)\n// The callback over which to send transactions (state updates)\n// produced by the view. If you specify this, you probably want to\n// make sure this ends up calling the view's\n// [`updateState`](#view.EditorView.updateState) method with a new\n// state that has the transaction\n// [applied](#state.EditorState.apply). The callback will be bound to have\n// the view instance as its `this` binding.\n\nexport { Decoration, DecorationSet, EditorView, endComposition as __endComposition, parseFromClipboard as __parseFromClipboard, serializeForClipboard as __serializeForClipboard };\n","var GOOD_LEAF_SIZE = 200;\n\n// :: class A rope sequence is a persistent sequence data structure\n// that supports appending, prepending, and slicing without doing a\n// full copy. It is represented as a mostly-balanced tree.\nvar RopeSequence = function RopeSequence () {};\n\nRopeSequence.prototype.append = function append (other) {\n if (!other.length) { return this }\n other = RopeSequence.from(other);\n\n return (!this.length && other) ||\n (other.length < GOOD_LEAF_SIZE && this.leafAppend(other)) ||\n (this.length < GOOD_LEAF_SIZE && other.leafPrepend(this)) ||\n this.appendInner(other)\n};\n\n// :: (union<[T], RopeSequence>) → RopeSequence\n// Prepend an array or other rope to this one, returning a new rope.\nRopeSequence.prototype.prepend = function prepend (other) {\n if (!other.length) { return this }\n return RopeSequence.from(other).append(this)\n};\n\nRopeSequence.prototype.appendInner = function appendInner (other) {\n return new Append(this, other)\n};\n\n// :: (?number, ?number) → RopeSequence\n// Create a rope repesenting a sub-sequence of this rope.\nRopeSequence.prototype.slice = function slice (from, to) {\n if ( from === void 0 ) from = 0;\n if ( to === void 0 ) to = this.length;\n\n if (from >= to) { return RopeSequence.empty }\n return this.sliceInner(Math.max(0, from), Math.min(this.length, to))\n};\n\n// :: (number) → T\n// Retrieve the element at the given position from this rope.\nRopeSequence.prototype.get = function get (i) {\n if (i < 0 || i >= this.length) { return undefined }\n return this.getInner(i)\n};\n\n// :: ((element: T, index: number) → ?bool, ?number, ?number)\n// Call the given function for each element between the given\n// indices. This tends to be more efficient than looping over the\n// indices and calling `get`, because it doesn't have to descend the\n// tree for every element.\nRopeSequence.prototype.forEach = function forEach (f, from, to) {\n if ( from === void 0 ) from = 0;\n if ( to === void 0 ) to = this.length;\n\n if (from <= to)\n { this.forEachInner(f, from, to, 0); }\n else\n { this.forEachInvertedInner(f, from, to, 0); }\n};\n\n// :: ((element: T, index: number) → U, ?number, ?number) → [U]\n// Map the given functions over the elements of the rope, producing\n// a flat array.\nRopeSequence.prototype.map = function map (f, from, to) {\n if ( from === void 0 ) from = 0;\n if ( to === void 0 ) to = this.length;\n\n var result = [];\n this.forEach(function (elt, i) { return result.push(f(elt, i)); }, from, to);\n return result\n};\n\n// :: (?union<[T], RopeSequence>) → RopeSequence\n// Create a rope representing the given array, or return the rope\n// itself if a rope was given.\nRopeSequence.from = function from (values) {\n if (values instanceof RopeSequence) { return values }\n return values && values.length ? new Leaf(values) : RopeSequence.empty\n};\n\nvar Leaf = /*@__PURE__*/(function (RopeSequence) {\n function Leaf(values) {\n RopeSequence.call(this);\n this.values = values;\n }\n\n if ( RopeSequence ) Leaf.__proto__ = RopeSequence;\n Leaf.prototype = Object.create( RopeSequence && RopeSequence.prototype );\n Leaf.prototype.constructor = Leaf;\n\n var prototypeAccessors = { length: { configurable: true },depth: { configurable: true } };\n\n Leaf.prototype.flatten = function flatten () {\n return this.values\n };\n\n Leaf.prototype.sliceInner = function sliceInner (from, to) {\n if (from == 0 && to == this.length) { return this }\n return new Leaf(this.values.slice(from, to))\n };\n\n Leaf.prototype.getInner = function getInner (i) {\n return this.values[i]\n };\n\n Leaf.prototype.forEachInner = function forEachInner (f, from, to, start) {\n for (var i = from; i < to; i++)\n { if (f(this.values[i], start + i) === false) { return false } }\n };\n\n Leaf.prototype.forEachInvertedInner = function forEachInvertedInner (f, from, to, start) {\n for (var i = from - 1; i >= to; i--)\n { if (f(this.values[i], start + i) === false) { return false } }\n };\n\n Leaf.prototype.leafAppend = function leafAppend (other) {\n if (this.length + other.length <= GOOD_LEAF_SIZE)\n { return new Leaf(this.values.concat(other.flatten())) }\n };\n\n Leaf.prototype.leafPrepend = function leafPrepend (other) {\n if (this.length + other.length <= GOOD_LEAF_SIZE)\n { return new Leaf(other.flatten().concat(this.values)) }\n };\n\n prototypeAccessors.length.get = function () { return this.values.length };\n\n prototypeAccessors.depth.get = function () { return 0 };\n\n Object.defineProperties( Leaf.prototype, prototypeAccessors );\n\n return Leaf;\n}(RopeSequence));\n\n// :: RopeSequence\n// The empty rope sequence.\nRopeSequence.empty = new Leaf([]);\n\nvar Append = /*@__PURE__*/(function (RopeSequence) {\n function Append(left, right) {\n RopeSequence.call(this);\n this.left = left;\n this.right = right;\n this.length = left.length + right.length;\n this.depth = Math.max(left.depth, right.depth) + 1;\n }\n\n if ( RopeSequence ) Append.__proto__ = RopeSequence;\n Append.prototype = Object.create( RopeSequence && RopeSequence.prototype );\n Append.prototype.constructor = Append;\n\n Append.prototype.flatten = function flatten () {\n return this.left.flatten().concat(this.right.flatten())\n };\n\n Append.prototype.getInner = function getInner (i) {\n return i < this.left.length ? this.left.get(i) : this.right.get(i - this.left.length)\n };\n\n Append.prototype.forEachInner = function forEachInner (f, from, to, start) {\n var leftLen = this.left.length;\n if (from < leftLen &&\n this.left.forEachInner(f, from, Math.min(to, leftLen), start) === false)\n { return false }\n if (to > leftLen &&\n this.right.forEachInner(f, Math.max(from - leftLen, 0), Math.min(this.length, to) - leftLen, start + leftLen) === false)\n { return false }\n };\n\n Append.prototype.forEachInvertedInner = function forEachInvertedInner (f, from, to, start) {\n var leftLen = this.left.length;\n if (from > leftLen &&\n this.right.forEachInvertedInner(f, from - leftLen, Math.max(to, leftLen) - leftLen, start + leftLen) === false)\n { return false }\n if (to < leftLen &&\n this.left.forEachInvertedInner(f, Math.min(from, leftLen), to, start) === false)\n { return false }\n };\n\n Append.prototype.sliceInner = function sliceInner (from, to) {\n if (from == 0 && to == this.length) { return this }\n var leftLen = this.left.length;\n if (to <= leftLen) { return this.left.slice(from, to) }\n if (from >= leftLen) { return this.right.slice(from - leftLen, to - leftLen) }\n return this.left.slice(from, leftLen).append(this.right.slice(0, to - leftLen))\n };\n\n Append.prototype.leafAppend = function leafAppend (other) {\n var inner = this.right.leafAppend(other);\n if (inner) { return new Append(this.left, inner) }\n };\n\n Append.prototype.leafPrepend = function leafPrepend (other) {\n var inner = this.left.leafPrepend(other);\n if (inner) { return new Append(inner, this.right) }\n };\n\n Append.prototype.appendInner = function appendInner (other) {\n if (this.left.depth >= Math.max(this.right.depth, other.depth) + 1)\n { return new Append(this.left, new Append(this.right, other)) }\n return new Append(this, other)\n };\n\n return Append;\n}(RopeSequence));\n\nvar ropeSequence = RopeSequence;\n\nexport default ropeSequence;\n","import { Subject } from './Subject';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nexport class BehaviorSubject extends Subject {\n constructor(_value) {\n super();\n this._value = _value;\n }\n get value() {\n return this.getValue();\n }\n _subscribe(subscriber) {\n const subscription = super._subscribe(subscriber);\n if (subscription && !subscription.closed) {\n subscriber.next(this._value);\n }\n return subscription;\n }\n getValue() {\n if (this.hasError) {\n throw this.thrownError;\n }\n else if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return this._value;\n }\n }\n next(value) {\n super.next(this._value = value);\n }\n}\n","import { Subscriber } from './Subscriber';\nexport class InnerSubscriber extends Subscriber {\n constructor(parent, outerValue, outerIndex) {\n super();\n this.parent = parent;\n this.outerValue = outerValue;\n this.outerIndex = outerIndex;\n this.index = 0;\n }\n _next(value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n }\n _error(error) {\n this.parent.notifyError(error, this);\n this.unsubscribe();\n }\n _complete() {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n }\n}\n","import { empty } from './observable/empty';\nimport { of } from './observable/of';\nimport { throwError } from './observable/throwError';\nexport var NotificationKind;\n(function (NotificationKind) {\n NotificationKind[\"NEXT\"] = \"N\";\n NotificationKind[\"ERROR\"] = \"E\";\n NotificationKind[\"COMPLETE\"] = \"C\";\n})(NotificationKind || (NotificationKind = {}));\nexport class Notification {\n constructor(kind, value, error) {\n this.kind = kind;\n this.value = value;\n this.error = error;\n this.hasValue = kind === 'N';\n }\n observe(observer) {\n switch (this.kind) {\n case 'N':\n return observer.next && observer.next(this.value);\n case 'E':\n return observer.error && observer.error(this.error);\n case 'C':\n return observer.complete && observer.complete();\n }\n }\n do(next, error, complete) {\n const kind = this.kind;\n switch (kind) {\n case 'N':\n return next && next(this.value);\n case 'E':\n return error && error(this.error);\n case 'C':\n return complete && complete();\n }\n }\n accept(nextOrObserver, error, complete) {\n if (nextOrObserver && typeof nextOrObserver.next === 'function') {\n return this.observe(nextOrObserver);\n }\n else {\n return this.do(nextOrObserver, error, complete);\n }\n }\n toObservable() {\n const kind = this.kind;\n switch (kind) {\n case 'N':\n return of(this.value);\n case 'E':\n return throwError(this.error);\n case 'C':\n return empty();\n }\n throw new Error('unexpected notification kind value');\n }\n static createNext(value) {\n if (typeof value !== 'undefined') {\n return new Notification('N', value);\n }\n return Notification.undefinedValueNotification;\n }\n static createError(err) {\n return new Notification('E', undefined, err);\n }\n static createComplete() {\n return Notification.completeNotification;\n }\n}\nNotification.completeNotification = new Notification('C');\nNotification.undefinedValueNotification = new Notification('N', undefined);\n","import { canReportError } from './util/canReportError';\nimport { toSubscriber } from './util/toSubscriber';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nexport class Observable {\n constructor(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n lift(operator) {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n subscribe(observerOrNext, error, complete) {\n const { operator } = this;\n const sink = toSubscriber(observerOrNext, error, complete);\n if (operator) {\n sink.add(operator.call(sink, this.source));\n }\n else {\n sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink));\n }\n if (config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n return sink;\n }\n _trySubscribe(sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n if (canReportError(sink)) {\n sink.error(err);\n }\n else {\n console.warn(err);\n }\n }\n }\n forEach(next, promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let subscription;\n subscription = this.subscribe((value) => {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n });\n }\n _subscribe(subscriber) {\n const { source } = this;\n return source && source.subscribe(subscriber);\n }\n [Symbol_observable]() {\n return this;\n }\n pipe(...operations) {\n if (operations.length === 0) {\n return this;\n }\n return pipeFromArray(operations)(this);\n }\n toPromise(promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let value;\n this.subscribe((x) => value = x, (err) => reject(err), () => resolve(value));\n });\n }\n}\nObservable.create = (subscribe) => {\n return new Observable(subscribe);\n};\nfunction getPromiseCtor(promiseCtor) {\n if (!promiseCtor) {\n promiseCtor = config.Promise || Promise;\n }\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n return promiseCtor;\n}\n","import { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport const empty = {\n closed: true,\n next(value) { },\n error(err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n },\n complete() { }\n};\n","import { Subscriber } from './Subscriber';\nexport class OuterSubscriber extends Subscriber {\n notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n }\n notifyError(error, innerSub) {\n this.destination.error(error);\n }\n notifyComplete(innerSub) {\n this.destination.complete();\n }\n}\n","import { Subject } from './Subject';\nimport { queue } from './scheduler/queue';\nimport { Subscription } from './Subscription';\nimport { ObserveOnSubscriber } from './operators/observeOn';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nexport class ReplaySubject extends Subject {\n constructor(bufferSize = Number.POSITIVE_INFINITY, windowTime = Number.POSITIVE_INFINITY, scheduler) {\n super();\n this.scheduler = scheduler;\n this._events = [];\n this._infiniteTimeWindow = false;\n this._bufferSize = bufferSize < 1 ? 1 : bufferSize;\n this._windowTime = windowTime < 1 ? 1 : windowTime;\n if (windowTime === Number.POSITIVE_INFINITY) {\n this._infiniteTimeWindow = true;\n this.next = this.nextInfiniteTimeWindow;\n }\n else {\n this.next = this.nextTimeWindow;\n }\n }\n nextInfiniteTimeWindow(value) {\n const _events = this._events;\n _events.push(value);\n if (_events.length > this._bufferSize) {\n _events.shift();\n }\n super.next(value);\n }\n nextTimeWindow(value) {\n this._events.push(new ReplayEvent(this._getNow(), value));\n this._trimBufferThenGetEvents();\n super.next(value);\n }\n _subscribe(subscriber) {\n const _infiniteTimeWindow = this._infiniteTimeWindow;\n const _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();\n const scheduler = this.scheduler;\n const len = _events.length;\n let subscription;\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.isStopped || this.hasError) {\n subscription = Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n subscription = new SubjectSubscription(this, subscriber);\n }\n if (scheduler) {\n subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler));\n }\n if (_infiniteTimeWindow) {\n for (let i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i]);\n }\n }\n else {\n for (let i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i].value);\n }\n }\n if (this.hasError) {\n subscriber.error(this.thrownError);\n }\n else if (this.isStopped) {\n subscriber.complete();\n }\n return subscription;\n }\n _getNow() {\n return (this.scheduler || queue).now();\n }\n _trimBufferThenGetEvents() {\n const now = this._getNow();\n const _bufferSize = this._bufferSize;\n const _windowTime = this._windowTime;\n const _events = this._events;\n const eventsCount = _events.length;\n let spliceCount = 0;\n while (spliceCount < eventsCount) {\n if ((now - _events[spliceCount].time) < _windowTime) {\n break;\n }\n spliceCount++;\n }\n if (eventsCount > _bufferSize) {\n spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);\n }\n if (spliceCount > 0) {\n _events.splice(0, spliceCount);\n }\n return _events;\n }\n}\nclass ReplayEvent {\n constructor(time, value) {\n this.time = time;\n this.value = value;\n }\n}\n","export class Scheduler {\n constructor(SchedulerAction, now = Scheduler.now) {\n this.SchedulerAction = SchedulerAction;\n this.now = now;\n }\n schedule(work, delay = 0, state) {\n return new this.SchedulerAction(this, work).schedule(state, delay);\n }\n}\nScheduler.now = () => Date.now();\n","import { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nexport class SubjectSubscriber extends Subscriber {\n constructor(destination) {\n super(destination);\n this.destination = destination;\n }\n}\nexport class Subject extends Observable {\n constructor() {\n super();\n this.observers = [];\n this.closed = false;\n this.isStopped = false;\n this.hasError = false;\n this.thrownError = null;\n }\n [rxSubscriberSymbol]() {\n return new SubjectSubscriber(this);\n }\n lift(operator) {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n }\n next(value) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n }\n error(err) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n }\n complete() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n }\n unsubscribe() {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n }\n _trySubscribe(subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return super._trySubscribe(subscriber);\n }\n }\n _subscribe(subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n }\n else if (this.isStopped) {\n subscriber.complete();\n return Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n return new SubjectSubscription(this, subscriber);\n }\n }\n asObservable() {\n const observable = new Observable();\n observable.source = this;\n return observable;\n }\n}\nSubject.create = (destination, source) => {\n return new AnonymousSubject(destination, source);\n};\nexport class AnonymousSubject extends Subject {\n constructor(destination, source) {\n super();\n this.destination = destination;\n this.source = source;\n }\n next(value) {\n const { destination } = this;\n if (destination && destination.next) {\n destination.next(value);\n }\n }\n error(err) {\n const { destination } = this;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n }\n complete() {\n const { destination } = this;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n }\n _subscribe(subscriber) {\n const { source } = this;\n if (source) {\n return this.source.subscribe(subscriber);\n }\n else {\n return Subscription.EMPTY;\n }\n }\n}\n","import { Subscription } from './Subscription';\nexport class SubjectSubscription extends Subscription {\n constructor(subject, subscriber) {\n super();\n this.subject = subject;\n this.subscriber = subscriber;\n this.closed = false;\n }\n unsubscribe() {\n if (this.closed) {\n return;\n }\n this.closed = true;\n const subject = this.subject;\n const observers = subject.observers;\n this.subject = null;\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n const subscriberIndex = observers.indexOf(this.subscriber);\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n }\n}\n","import { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport class Subscriber extends Subscription {\n constructor(destinationOrNext, error, complete) {\n super();\n this.syncErrorValue = null;\n this.syncErrorThrown = false;\n this.syncErrorThrowable = false;\n this.isStopped = false;\n switch (arguments.length) {\n case 0:\n this.destination = emptyObserver;\n break;\n case 1:\n if (!destinationOrNext) {\n this.destination = emptyObserver;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n this.destination = destinationOrNext;\n destinationOrNext.add(this);\n }\n else {\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, destinationOrNext);\n }\n break;\n }\n default:\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, destinationOrNext, error, complete);\n break;\n }\n }\n [rxSubscriberSymbol]() { return this; }\n static create(next, error, complete) {\n const subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n }\n next(value) {\n if (!this.isStopped) {\n this._next(value);\n }\n }\n error(err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n }\n complete() {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n }\n unsubscribe() {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n super.unsubscribe();\n }\n _next(value) {\n this.destination.next(value);\n }\n _error(err) {\n this.destination.error(err);\n this.unsubscribe();\n }\n _complete() {\n this.destination.complete();\n this.unsubscribe();\n }\n _unsubscribeAndRecycle() {\n const { _parentOrParents } = this;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n }\n}\nexport class SafeSubscriber extends Subscriber {\n constructor(_parentSubscriber, observerOrNext, error, complete) {\n super();\n this._parentSubscriber = _parentSubscriber;\n let next;\n let context = this;\n if (isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n if (isFunction(context.unsubscribe)) {\n this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = this.unsubscribe.bind(this);\n }\n }\n this._context = context;\n this._next = next;\n this._error = error;\n this._complete = complete;\n }\n next(value) {\n if (!this.isStopped && this._next) {\n const { _parentSubscriber } = this;\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n }\n error(err) {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n const { useDeprecatedSynchronousErrorHandling } = config;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n }\n complete() {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n if (this._complete) {\n const wrappedComplete = () => this._complete.call(this._context);\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n }\n __tryOrUnsub(fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n }\n }\n __tryOrSetError(parent, fn, value) {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n hostReportError(err);\n return true;\n }\n }\n return false;\n }\n _unsubscribe() {\n const { _parentSubscriber } = this;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n }\n}\n","import { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nexport class Subscription {\n constructor(unsubscribe) {\n this.closed = false;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._ctorUnsubscribe = true;\n this._unsubscribe = unsubscribe;\n }\n }\n unsubscribe() {\n let errors;\n if (this.closed) {\n return;\n }\n let { _parentOrParents, _ctorUnsubscribe, _unsubscribe, _subscriptions } = this;\n this.closed = true;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n }\n else if (_parentOrParents !== null) {\n for (let index = 0; index < _parentOrParents.length; ++index) {\n const parent = _parentOrParents[index];\n parent.remove(this);\n }\n }\n if (isFunction(_unsubscribe)) {\n if (_ctorUnsubscribe) {\n this._unsubscribe = undefined;\n }\n try {\n _unsubscribe.call(this);\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n if (isArray(_subscriptions)) {\n let index = -1;\n let len = _subscriptions.length;\n while (++index < len) {\n const sub = _subscriptions[index];\n if (isObject(sub)) {\n try {\n sub.unsubscribe();\n }\n catch (e) {\n errors = errors || [];\n if (e instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n }\n else {\n errors.push(e);\n }\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n add(teardown) {\n let subscription = teardown;\n if (!teardown) {\n return Subscription.EMPTY;\n }\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (!(subscription instanceof Subscription)) {\n const tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default: {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n let { _parentOrParents } = subscription;\n if (_parentOrParents === null) {\n subscription._parentOrParents = this;\n }\n else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n return subscription;\n }\n subscription._parentOrParents = [_parentOrParents, this];\n }\n else if (_parentOrParents.indexOf(this) === -1) {\n _parentOrParents.push(this);\n }\n else {\n return subscription;\n }\n const subscriptions = this._subscriptions;\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n }\n else {\n subscriptions.push(subscription);\n }\n return subscription;\n }\n remove(subscription) {\n const subscriptions = this._subscriptions;\n if (subscriptions) {\n const subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n }\n}\nSubscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n}(new Subscription()));\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce((errs, err) => errs.concat((err instanceof UnsubscriptionError) ? err.errors : err), []);\n}\n","let _enable_super_gross_mode_that_will_cause_bad_things = false;\nexport const config = {\n Promise: undefined,\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n const error = new Error();\n console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n","import { Subscriber } from './Subscriber';\nimport { Observable } from './Observable';\nimport { subscribeTo } from './util/subscribeTo';\nexport class SimpleInnerSubscriber extends Subscriber {\n constructor(parent) {\n super();\n this.parent = parent;\n }\n _next(value) {\n this.parent.notifyNext(value);\n }\n _error(error) {\n this.parent.notifyError(error);\n this.unsubscribe();\n }\n _complete() {\n this.parent.notifyComplete();\n this.unsubscribe();\n }\n}\nexport class ComplexInnerSubscriber extends Subscriber {\n constructor(parent, outerValue, outerIndex) {\n super();\n this.parent = parent;\n this.outerValue = outerValue;\n this.outerIndex = outerIndex;\n }\n _next(value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this);\n }\n _error(error) {\n this.parent.notifyError(error);\n this.unsubscribe();\n }\n _complete() {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n }\n}\nexport class SimpleOuterSubscriber extends Subscriber {\n notifyNext(innerValue) {\n this.destination.next(innerValue);\n }\n notifyError(err) {\n this.destination.error(err);\n }\n notifyComplete() {\n this.destination.complete();\n }\n}\nexport class ComplexOuterSubscriber extends Subscriber {\n notifyNext(_outerValue, innerValue, _outerIndex, _innerSub) {\n this.destination.next(innerValue);\n }\n notifyError(error) {\n this.destination.error(error);\n }\n notifyComplete(_innerSub) {\n this.destination.complete();\n }\n}\nexport function innerSubscribe(result, innerSubscriber) {\n if (innerSubscriber.closed) {\n return undefined;\n }\n if (result instanceof Observable) {\n return result.subscribe(innerSubscriber);\n }\n return subscribeTo(result)(innerSubscriber);\n}\n","import { SubjectSubscriber } from '../Subject';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\nexport class ConnectableObservable extends Observable {\n constructor(source, subjectFactory) {\n super();\n this.source = source;\n this.subjectFactory = subjectFactory;\n this._refCount = 0;\n this._isComplete = false;\n }\n _subscribe(subscriber) {\n return this.getSubject().subscribe(subscriber);\n }\n getSubject() {\n const subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n }\n connect() {\n let connection = this._connection;\n if (!connection) {\n this._isComplete = false;\n connection = this._connection = new Subscription();\n connection.add(this.source\n .subscribe(new ConnectableSubscriber(this.getSubject(), this)));\n if (connection.closed) {\n this._connection = null;\n connection = Subscription.EMPTY;\n }\n }\n return connection;\n }\n refCount() {\n return higherOrderRefCount()(this);\n }\n}\nexport const connectableObservableDescriptor = (() => {\n const connectableProto = ConnectableObservable.prototype;\n return {\n operator: { value: null },\n _refCount: { value: 0, writable: true },\n _subject: { value: null, writable: true },\n _connection: { value: null, writable: true },\n _subscribe: { value: connectableProto._subscribe },\n _isComplete: { value: connectableProto._isComplete, writable: true },\n getSubject: { value: connectableProto.getSubject },\n connect: { value: connectableProto.connect },\n refCount: { value: connectableProto.refCount }\n };\n})();\nclass ConnectableSubscriber extends SubjectSubscriber {\n constructor(destination, connectable) {\n super(destination);\n this.connectable = connectable;\n }\n _error(err) {\n this._unsubscribe();\n super._error(err);\n }\n _complete() {\n this.connectable._isComplete = true;\n this._unsubscribe();\n super._complete();\n }\n _unsubscribe() {\n const connectable = this.connectable;\n if (connectable) {\n this.connectable = null;\n const connection = connectable._connection;\n connectable._refCount = 0;\n connectable._subject = null;\n connectable._connection = null;\n if (connection) {\n connection.unsubscribe();\n }\n }\n }\n}\nclass RefCountOperator {\n constructor(connectable) {\n this.connectable = connectable;\n }\n call(subscriber, source) {\n const { connectable } = this;\n connectable._refCount++;\n const refCounter = new RefCountSubscriber(subscriber, connectable);\n const subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n }\n}\nclass RefCountSubscriber extends Subscriber {\n constructor(destination, connectable) {\n super(destination);\n this.connectable = connectable;\n }\n _unsubscribe() {\n const { connectable } = this;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n const refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n const { connection } = this;\n const sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n }\n}\n","import { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { fromArray } from './fromArray';\nconst NONE = {};\nexport function combineLatest(...observables) {\n let resultSelector = undefined;\n let scheduler = undefined;\n if (isScheduler(observables[observables.length - 1])) {\n scheduler = observables.pop();\n }\n if (typeof observables[observables.length - 1] === 'function') {\n resultSelector = observables.pop();\n }\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0];\n }\n return fromArray(observables, scheduler).lift(new CombineLatestOperator(resultSelector));\n}\nexport class CombineLatestOperator {\n constructor(resultSelector) {\n this.resultSelector = resultSelector;\n }\n call(subscriber, source) {\n return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector));\n }\n}\nexport class CombineLatestSubscriber extends OuterSubscriber {\n constructor(destination, resultSelector) {\n super(destination);\n this.resultSelector = resultSelector;\n this.active = 0;\n this.values = [];\n this.observables = [];\n }\n _next(observable) {\n this.values.push(NONE);\n this.observables.push(observable);\n }\n _complete() {\n const observables = this.observables;\n const len = observables.length;\n if (len === 0) {\n this.destination.complete();\n }\n else {\n this.active = len;\n this.toRespond = len;\n for (let i = 0; i < len; i++) {\n const observable = observables[i];\n this.add(subscribeToResult(this, observable, undefined, i));\n }\n }\n }\n notifyComplete(unused) {\n if ((this.active -= 1) === 0) {\n this.destination.complete();\n }\n }\n notifyNext(_outerValue, innerValue, outerIndex) {\n const values = this.values;\n const oldVal = values[outerIndex];\n const toRespond = !this.toRespond\n ? 0\n : oldVal === NONE ? --this.toRespond : this.toRespond;\n values[outerIndex] = innerValue;\n if (toRespond === 0) {\n if (this.resultSelector) {\n this._tryResultSelector(values);\n }\n else {\n this.destination.next(values.slice());\n }\n }\n }\n _tryResultSelector(values) {\n let result;\n try {\n result = this.resultSelector.apply(this, values);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n }\n}\n","import { of } from './of';\nimport { concatAll } from '../operators/concatAll';\nexport function concat(...observables) {\n return concatAll()(of(...observables));\n}\n","import { Observable } from '../Observable';\nimport { from } from './from';\nimport { empty } from './empty';\nexport function defer(observableFactory) {\n return new Observable(subscriber => {\n let input;\n try {\n input = observableFactory();\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n const source = input ? from(input) : empty();\n return source.subscribe(subscriber);\n });\n}\n","import { Observable } from '../Observable';\nexport const EMPTY = new Observable(subscriber => subscriber.complete());\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable(subscriber => scheduler.schedule(() => subscriber.complete()));\n}\n","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { map } from '../operators/map';\nimport { isObject } from '../util/isObject';\nimport { from } from './from';\nexport function forkJoin(...sources) {\n if (sources.length === 1) {\n const first = sources[0];\n if (isArray(first)) {\n return forkJoinInternal(first, null);\n }\n if (isObject(first) && Object.getPrototypeOf(first) === Object.prototype) {\n const keys = Object.keys(first);\n return forkJoinInternal(keys.map(key => first[key]), keys);\n }\n }\n if (typeof sources[sources.length - 1] === 'function') {\n const resultSelector = sources.pop();\n sources = (sources.length === 1 && isArray(sources[0])) ? sources[0] : sources;\n return forkJoinInternal(sources, null).pipe(map((args) => resultSelector(...args)));\n }\n return forkJoinInternal(sources, null);\n}\nfunction forkJoinInternal(sources, keys) {\n return new Observable(subscriber => {\n const len = sources.length;\n if (len === 0) {\n subscriber.complete();\n return;\n }\n const values = new Array(len);\n let completed = 0;\n let emitted = 0;\n for (let i = 0; i < len; i++) {\n const source = from(sources[i]);\n let hasValue = false;\n subscriber.add(source.subscribe({\n next: value => {\n if (!hasValue) {\n hasValue = true;\n emitted++;\n }\n values[i] = value;\n },\n error: err => subscriber.error(err),\n complete: () => {\n completed++;\n if (completed === len || !hasValue) {\n if (emitted === len) {\n subscriber.next(keys ?\n keys.reduce((result, key, i) => (result[key] = values[i], result), {}) :\n values);\n }\n subscriber.complete();\n }\n }\n }));\n }\n });\n}\n","import { Observable } from '../Observable';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { scheduled } from '../scheduled/scheduled';\nexport function from(input, scheduler) {\n if (!scheduler) {\n if (input instanceof Observable) {\n return input;\n }\n return new Observable(subscribeTo(input));\n }\n else {\n return scheduled(input, scheduler);\n }\n}\n","import { Observable } from '../Observable';\nimport { subscribeToArray } from '../util/subscribeToArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function fromArray(input, scheduler) {\n if (!scheduler) {\n return new Observable(subscribeToArray(input));\n }\n else {\n return scheduleArray(input, scheduler);\n }\n}\n","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nconst toString = (() => Object.prototype.toString)();\nexport function fromEvent(target, eventName, options, resultSelector) {\n if (isFunction(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(map(args => isArray(args) ? resultSelector(...args) : resultSelector(args)));\n }\n return new Observable(subscriber => {\n function handler(e) {\n if (arguments.length > 1) {\n subscriber.next(Array.prototype.slice.call(arguments));\n }\n else {\n subscriber.next(e);\n }\n }\n setupSubscription(target, eventName, handler, subscriber, options);\n });\n}\nfunction setupSubscription(sourceObj, eventName, handler, subscriber, options) {\n let unsubscribe;\n if (isEventTarget(sourceObj)) {\n const source = sourceObj;\n sourceObj.addEventListener(eventName, handler, options);\n unsubscribe = () => source.removeEventListener(eventName, handler, options);\n }\n else if (isJQueryStyleEventEmitter(sourceObj)) {\n const source = sourceObj;\n sourceObj.on(eventName, handler);\n unsubscribe = () => source.off(eventName, handler);\n }\n else if (isNodeStyleEventEmitter(sourceObj)) {\n const source = sourceObj;\n sourceObj.addListener(eventName, handler);\n unsubscribe = () => source.removeListener(eventName, handler);\n }\n else if (sourceObj && sourceObj.length) {\n for (let i = 0, len = sourceObj.length; i < len; i++) {\n setupSubscription(sourceObj[i], eventName, handler, subscriber, options);\n }\n }\n else {\n throw new TypeError('Invalid event target');\n }\n subscriber.add(unsubscribe);\n}\nfunction isNodeStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';\n}\nfunction isJQueryStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';\n}\nfunction isEventTarget(sourceObj) {\n return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';\n}\n","import { Observable } from '../Observable';\nimport { async } from '../scheduler/async';\nimport { isNumeric } from '../util/isNumeric';\nexport function interval(period = 0, scheduler = async) {\n if (!isNumeric(period) || period < 0) {\n period = 0;\n }\n if (!scheduler || typeof scheduler.schedule !== 'function') {\n scheduler = async;\n }\n return new Observable(subscriber => {\n subscriber.add(scheduler.schedule(dispatch, period, { subscriber, counter: 0, period }));\n return subscriber;\n });\n}\nfunction dispatch(state) {\n const { subscriber, counter, period } = state;\n subscriber.next(counter);\n this.schedule({ subscriber, counter: counter + 1, period }, period);\n}\n","import { Observable } from '../Observable';\nimport { isScheduler } from '../util/isScheduler';\nimport { mergeAll } from '../operators/mergeAll';\nimport { fromArray } from './fromArray';\nexport function merge(...observables) {\n let concurrent = Number.POSITIVE_INFINITY;\n let scheduler = null;\n let last = observables[observables.length - 1];\n if (isScheduler(last)) {\n scheduler = observables.pop();\n if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {\n concurrent = observables.pop();\n }\n }\n else if (typeof last === 'number') {\n concurrent = observables.pop();\n }\n if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable) {\n return observables[0];\n }\n return mergeAll(concurrent)(fromArray(observables, scheduler));\n}\n","import { isScheduler } from '../util/isScheduler';\nimport { fromArray } from './fromArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function of(...args) {\n let scheduler = args[args.length - 1];\n if (isScheduler(scheduler)) {\n args.pop();\n return scheduleArray(args, scheduler);\n }\n else {\n return fromArray(args);\n }\n}\n","import { Observable } from '../Observable';\nexport function throwError(error, scheduler) {\n if (!scheduler) {\n return new Observable(subscriber => subscriber.error(error));\n }\n else {\n return new Observable(subscriber => scheduler.schedule(dispatch, 0, { error, subscriber }));\n }\n}\nfunction dispatch({ error, subscriber }) {\n subscriber.error(error);\n}\n","import { Observable } from '../Observable';\nimport { async } from '../scheduler/async';\nimport { isNumeric } from '../util/isNumeric';\nimport { isScheduler } from '../util/isScheduler';\nexport function timer(dueTime = 0, periodOrScheduler, scheduler) {\n let period = -1;\n if (isNumeric(periodOrScheduler)) {\n period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler);\n }\n else if (isScheduler(periodOrScheduler)) {\n scheduler = periodOrScheduler;\n }\n if (!isScheduler(scheduler)) {\n scheduler = async;\n }\n return new Observable(subscriber => {\n const due = isNumeric(dueTime)\n ? dueTime\n : (+dueTime - scheduler.now());\n return scheduler.schedule(dispatch, due, {\n index: 0, period, subscriber\n });\n });\n}\nfunction dispatch(state) {\n const { index, period, subscriber } = state;\n subscriber.next(index);\n if (subscriber.closed) {\n return;\n }\n else if (period === -1) {\n return subscriber.complete();\n }\n state.index = index + 1;\n this.schedule(state, period);\n}\n","import { fromArray } from './fromArray';\nimport { isArray } from '../util/isArray';\nimport { Subscriber } from '../Subscriber';\nimport { iterator as Symbol_iterator } from '../../internal/symbol/iterator';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function zip(...observables) {\n const resultSelector = observables[observables.length - 1];\n if (typeof resultSelector === 'function') {\n observables.pop();\n }\n return fromArray(observables, undefined).lift(new ZipOperator(resultSelector));\n}\nexport class ZipOperator {\n constructor(resultSelector) {\n this.resultSelector = resultSelector;\n }\n call(subscriber, source) {\n return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector));\n }\n}\nexport class ZipSubscriber extends Subscriber {\n constructor(destination, resultSelector, values = Object.create(null)) {\n super(destination);\n this.resultSelector = resultSelector;\n this.iterators = [];\n this.active = 0;\n this.resultSelector = (typeof resultSelector === 'function') ? resultSelector : undefined;\n }\n _next(value) {\n const iterators = this.iterators;\n if (isArray(value)) {\n iterators.push(new StaticArrayIterator(value));\n }\n else if (typeof value[Symbol_iterator] === 'function') {\n iterators.push(new StaticIterator(value[Symbol_iterator]()));\n }\n else {\n iterators.push(new ZipBufferIterator(this.destination, this, value));\n }\n }\n _complete() {\n const iterators = this.iterators;\n const len = iterators.length;\n this.unsubscribe();\n if (len === 0) {\n this.destination.complete();\n return;\n }\n this.active = len;\n for (let i = 0; i < len; i++) {\n let iterator = iterators[i];\n if (iterator.stillUnsubscribed) {\n const destination = this.destination;\n destination.add(iterator.subscribe());\n }\n else {\n this.active--;\n }\n }\n }\n notifyInactive() {\n this.active--;\n if (this.active === 0) {\n this.destination.complete();\n }\n }\n checkIterators() {\n const iterators = this.iterators;\n const len = iterators.length;\n const destination = this.destination;\n for (let i = 0; i < len; i++) {\n let iterator = iterators[i];\n if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) {\n return;\n }\n }\n let shouldComplete = false;\n const args = [];\n for (let i = 0; i < len; i++) {\n let iterator = iterators[i];\n let result = iterator.next();\n if (iterator.hasCompleted()) {\n shouldComplete = true;\n }\n if (result.done) {\n destination.complete();\n return;\n }\n args.push(result.value);\n }\n if (this.resultSelector) {\n this._tryresultSelector(args);\n }\n else {\n destination.next(args);\n }\n if (shouldComplete) {\n destination.complete();\n }\n }\n _tryresultSelector(args) {\n let result;\n try {\n result = this.resultSelector.apply(this, args);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n }\n}\nclass StaticIterator {\n constructor(iterator) {\n this.iterator = iterator;\n this.nextResult = iterator.next();\n }\n hasValue() {\n return true;\n }\n next() {\n const result = this.nextResult;\n this.nextResult = this.iterator.next();\n return result;\n }\n hasCompleted() {\n const nextResult = this.nextResult;\n return Boolean(nextResult && nextResult.done);\n }\n}\nclass StaticArrayIterator {\n constructor(array) {\n this.array = array;\n this.index = 0;\n this.length = 0;\n this.length = array.length;\n }\n [Symbol_iterator]() {\n return this;\n }\n next(value) {\n const i = this.index++;\n const array = this.array;\n return i < this.length ? { value: array[i], done: false } : { value: null, done: true };\n }\n hasValue() {\n return this.array.length > this.index;\n }\n hasCompleted() {\n return this.array.length === this.index;\n }\n}\nclass ZipBufferIterator extends SimpleOuterSubscriber {\n constructor(destination, parent, observable) {\n super(destination);\n this.parent = parent;\n this.observable = observable;\n this.stillUnsubscribed = true;\n this.buffer = [];\n this.isComplete = false;\n }\n [Symbol_iterator]() {\n return this;\n }\n next() {\n const buffer = this.buffer;\n if (buffer.length === 0 && this.isComplete) {\n return { value: null, done: true };\n }\n else {\n return { value: buffer.shift(), done: false };\n }\n }\n hasValue() {\n return this.buffer.length > 0;\n }\n hasCompleted() {\n return this.buffer.length === 0 && this.isComplete;\n }\n notifyComplete() {\n if (this.buffer.length > 0) {\n this.isComplete = true;\n this.parent.notifyInactive();\n }\n else {\n this.destination.complete();\n }\n }\n notifyNext(innerValue) {\n this.buffer.push(innerValue);\n this.parent.checkIterators();\n }\n subscribe() {\n return innerSubscribe(this.observable, new SimpleInnerSubscriber(this));\n }\n}\n","import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function audit(durationSelector) {\n return function auditOperatorFunction(source) {\n return source.lift(new AuditOperator(durationSelector));\n };\n}\nclass AuditOperator {\n constructor(durationSelector) {\n this.durationSelector = durationSelector;\n }\n call(subscriber, source) {\n return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector));\n }\n}\nclass AuditSubscriber extends SimpleOuterSubscriber {\n constructor(destination, durationSelector) {\n super(destination);\n this.durationSelector = durationSelector;\n this.hasValue = false;\n }\n _next(value) {\n this.value = value;\n this.hasValue = true;\n if (!this.throttled) {\n let duration;\n try {\n const { durationSelector } = this;\n duration = durationSelector(value);\n }\n catch (err) {\n return this.destination.error(err);\n }\n const innerSubscription = innerSubscribe(duration, new SimpleInnerSubscriber(this));\n if (!innerSubscription || innerSubscription.closed) {\n this.clearThrottle();\n }\n else {\n this.add(this.throttled = innerSubscription);\n }\n }\n }\n clearThrottle() {\n const { value, hasValue, throttled } = this;\n if (throttled) {\n this.remove(throttled);\n this.throttled = undefined;\n throttled.unsubscribe();\n }\n if (hasValue) {\n this.value = undefined;\n this.hasValue = false;\n this.destination.next(value);\n }\n }\n notifyNext() {\n this.clearThrottle();\n }\n notifyComplete() {\n this.clearThrottle();\n }\n}\n","import { async } from '../scheduler/async';\nimport { audit } from './audit';\nimport { timer } from '../observable/timer';\nexport function auditTime(duration, scheduler = async) {\n return audit(() => timer(duration, scheduler));\n}\n","import { Subscriber } from '../Subscriber';\nexport function bufferCount(bufferSize, startBufferEvery = null) {\n return function bufferCountOperatorFunction(source) {\n return source.lift(new BufferCountOperator(bufferSize, startBufferEvery));\n };\n}\nclass BufferCountOperator {\n constructor(bufferSize, startBufferEvery) {\n this.bufferSize = bufferSize;\n this.startBufferEvery = startBufferEvery;\n if (!startBufferEvery || bufferSize === startBufferEvery) {\n this.subscriberClass = BufferCountSubscriber;\n }\n else {\n this.subscriberClass = BufferSkipCountSubscriber;\n }\n }\n call(subscriber, source) {\n return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery));\n }\n}\nclass BufferCountSubscriber extends Subscriber {\n constructor(destination, bufferSize) {\n super(destination);\n this.bufferSize = bufferSize;\n this.buffer = [];\n }\n _next(value) {\n const buffer = this.buffer;\n buffer.push(value);\n if (buffer.length == this.bufferSize) {\n this.destination.next(buffer);\n this.buffer = [];\n }\n }\n _complete() {\n const buffer = this.buffer;\n if (buffer.length > 0) {\n this.destination.next(buffer);\n }\n super._complete();\n }\n}\nclass BufferSkipCountSubscriber extends Subscriber {\n constructor(destination, bufferSize, startBufferEvery) {\n super(destination);\n this.bufferSize = bufferSize;\n this.startBufferEvery = startBufferEvery;\n this.buffers = [];\n this.count = 0;\n }\n _next(value) {\n const { bufferSize, startBufferEvery, buffers, count } = this;\n this.count++;\n if (count % startBufferEvery === 0) {\n buffers.push([]);\n }\n for (let i = buffers.length; i--;) {\n const buffer = buffers[i];\n buffer.push(value);\n if (buffer.length === bufferSize) {\n buffers.splice(i, 1);\n this.destination.next(buffer);\n }\n }\n }\n _complete() {\n const { buffers, destination } = this;\n while (buffers.length > 0) {\n let buffer = buffers.shift();\n if (buffer.length > 0) {\n destination.next(buffer);\n }\n }\n super._complete();\n }\n}\n","import { async } from '../scheduler/async';\nimport { Subscriber } from '../Subscriber';\nimport { isScheduler } from '../util/isScheduler';\nexport function bufferTime(bufferTimeSpan) {\n let length = arguments.length;\n let scheduler = async;\n if (isScheduler(arguments[arguments.length - 1])) {\n scheduler = arguments[arguments.length - 1];\n length--;\n }\n let bufferCreationInterval = null;\n if (length >= 2) {\n bufferCreationInterval = arguments[1];\n }\n let maxBufferSize = Number.POSITIVE_INFINITY;\n if (length >= 3) {\n maxBufferSize = arguments[2];\n }\n return function bufferTimeOperatorFunction(source) {\n return source.lift(new BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler));\n };\n}\nclass BufferTimeOperator {\n constructor(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {\n this.bufferTimeSpan = bufferTimeSpan;\n this.bufferCreationInterval = bufferCreationInterval;\n this.maxBufferSize = maxBufferSize;\n this.scheduler = scheduler;\n }\n call(subscriber, source) {\n return source.subscribe(new BufferTimeSubscriber(subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler));\n }\n}\nclass Context {\n constructor() {\n this.buffer = [];\n }\n}\nclass BufferTimeSubscriber extends Subscriber {\n constructor(destination, bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {\n super(destination);\n this.bufferTimeSpan = bufferTimeSpan;\n this.bufferCreationInterval = bufferCreationInterval;\n this.maxBufferSize = maxBufferSize;\n this.scheduler = scheduler;\n this.contexts = [];\n const context = this.openContext();\n this.timespanOnly = bufferCreationInterval == null || bufferCreationInterval < 0;\n if (this.timespanOnly) {\n const timeSpanOnlyState = { subscriber: this, context, bufferTimeSpan };\n this.add(context.closeAction = scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n }\n else {\n const closeState = { subscriber: this, context };\n const creationState = { bufferTimeSpan, bufferCreationInterval, subscriber: this, scheduler };\n this.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, closeState));\n this.add(scheduler.schedule(dispatchBufferCreation, bufferCreationInterval, creationState));\n }\n }\n _next(value) {\n const contexts = this.contexts;\n const len = contexts.length;\n let filledBufferContext;\n for (let i = 0; i < len; i++) {\n const context = contexts[i];\n const buffer = context.buffer;\n buffer.push(value);\n if (buffer.length == this.maxBufferSize) {\n filledBufferContext = context;\n }\n }\n if (filledBufferContext) {\n this.onBufferFull(filledBufferContext);\n }\n }\n _error(err) {\n this.contexts.length = 0;\n super._error(err);\n }\n _complete() {\n const { contexts, destination } = this;\n while (contexts.length > 0) {\n const context = contexts.shift();\n destination.next(context.buffer);\n }\n super._complete();\n }\n _unsubscribe() {\n this.contexts = null;\n }\n onBufferFull(context) {\n this.closeContext(context);\n const closeAction = context.closeAction;\n closeAction.unsubscribe();\n this.remove(closeAction);\n if (!this.closed && this.timespanOnly) {\n context = this.openContext();\n const bufferTimeSpan = this.bufferTimeSpan;\n const timeSpanOnlyState = { subscriber: this, context, bufferTimeSpan };\n this.add(context.closeAction = this.scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n }\n }\n openContext() {\n const context = new Context();\n this.contexts.push(context);\n return context;\n }\n closeContext(context) {\n this.destination.next(context.buffer);\n const contexts = this.contexts;\n const spliceIndex = contexts ? contexts.indexOf(context) : -1;\n if (spliceIndex >= 0) {\n contexts.splice(contexts.indexOf(context), 1);\n }\n }\n}\nfunction dispatchBufferTimeSpanOnly(state) {\n const subscriber = state.subscriber;\n const prevContext = state.context;\n if (prevContext) {\n subscriber.closeContext(prevContext);\n }\n if (!subscriber.closed) {\n state.context = subscriber.openContext();\n state.context.closeAction = this.schedule(state, state.bufferTimeSpan);\n }\n}\nfunction dispatchBufferCreation(state) {\n const { bufferCreationInterval, bufferTimeSpan, subscriber, scheduler } = state;\n const context = subscriber.openContext();\n const action = this;\n if (!subscriber.closed) {\n subscriber.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, { subscriber, context }));\n action.schedule(state, bufferCreationInterval);\n }\n}\nfunction dispatchBufferClose(arg) {\n const { subscriber, context } = arg;\n subscriber.closeContext(context);\n}\n","import { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function catchError(selector) {\n return function catchErrorOperatorFunction(source) {\n const operator = new CatchOperator(selector);\n const caught = source.lift(operator);\n return (operator.caught = caught);\n };\n}\nclass CatchOperator {\n constructor(selector) {\n this.selector = selector;\n }\n call(subscriber, source) {\n return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught));\n }\n}\nclass CatchSubscriber extends SimpleOuterSubscriber {\n constructor(destination, selector, caught) {\n super(destination);\n this.selector = selector;\n this.caught = caught;\n }\n error(err) {\n if (!this.isStopped) {\n let result;\n try {\n result = this.selector(err, this.caught);\n }\n catch (err2) {\n super.error(err2);\n return;\n }\n this._unsubscribeAndRecycle();\n const innerSubscriber = new SimpleInnerSubscriber(this);\n this.add(innerSubscriber);\n const innerSubscription = innerSubscribe(result, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n this.add(innerSubscription);\n }\n }\n }\n}\n","import { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n","import { mergeMap } from './mergeMap';\nexport function concatMap(project, resultSelector) {\n return mergeMap(project, resultSelector, 1);\n}\n","import { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nexport function debounceTime(dueTime, scheduler = async) {\n return (source) => source.lift(new DebounceTimeOperator(dueTime, scheduler));\n}\nclass DebounceTimeOperator {\n constructor(dueTime, scheduler) {\n this.dueTime = dueTime;\n this.scheduler = scheduler;\n }\n call(subscriber, source) {\n return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler));\n }\n}\nclass DebounceTimeSubscriber extends Subscriber {\n constructor(destination, dueTime, scheduler) {\n super(destination);\n this.dueTime = dueTime;\n this.scheduler = scheduler;\n this.debouncedSubscription = null;\n this.lastValue = null;\n this.hasValue = false;\n }\n _next(value) {\n this.clearDebounce();\n this.lastValue = value;\n this.hasValue = true;\n this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this));\n }\n _complete() {\n this.debouncedNext();\n this.destination.complete();\n }\n debouncedNext() {\n this.clearDebounce();\n if (this.hasValue) {\n const { lastValue } = this;\n this.lastValue = null;\n this.hasValue = false;\n this.destination.next(lastValue);\n }\n }\n clearDebounce() {\n const debouncedSubscription = this.debouncedSubscription;\n if (debouncedSubscription !== null) {\n this.remove(debouncedSubscription);\n debouncedSubscription.unsubscribe();\n this.debouncedSubscription = null;\n }\n }\n}\nfunction dispatchNext(subscriber) {\n subscriber.debouncedNext();\n}\n","import { Subscriber } from '../Subscriber';\nexport function defaultIfEmpty(defaultValue = null) {\n return (source) => source.lift(new DefaultIfEmptyOperator(defaultValue));\n}\nclass DefaultIfEmptyOperator {\n constructor(defaultValue) {\n this.defaultValue = defaultValue;\n }\n call(subscriber, source) {\n return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue));\n }\n}\nclass DefaultIfEmptySubscriber extends Subscriber {\n constructor(destination, defaultValue) {\n super(destination);\n this.defaultValue = defaultValue;\n this.isEmpty = true;\n }\n _next(value) {\n this.isEmpty = false;\n this.destination.next(value);\n }\n _complete() {\n if (this.isEmpty) {\n this.destination.next(this.defaultValue);\n }\n this.destination.complete();\n }\n}\n","import { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function delay(delay, scheduler = async) {\n const absoluteDelay = isDate(delay);\n const delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay);\n return (source) => source.lift(new DelayOperator(delayFor, scheduler));\n}\nclass DelayOperator {\n constructor(delay, scheduler) {\n this.delay = delay;\n this.scheduler = scheduler;\n }\n call(subscriber, source) {\n return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler));\n }\n}\nclass DelaySubscriber extends Subscriber {\n constructor(destination, delay, scheduler) {\n super(destination);\n this.delay = delay;\n this.scheduler = scheduler;\n this.queue = [];\n this.active = false;\n this.errored = false;\n }\n static dispatch(state) {\n const source = state.source;\n const queue = source.queue;\n const scheduler = state.scheduler;\n const destination = state.destination;\n while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) {\n queue.shift().notification.observe(destination);\n }\n if (queue.length > 0) {\n const delay = Math.max(0, queue[0].time - scheduler.now());\n this.schedule(state, delay);\n }\n else {\n this.unsubscribe();\n source.active = false;\n }\n }\n _schedule(scheduler) {\n this.active = true;\n const destination = this.destination;\n destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, {\n source: this, destination: this.destination, scheduler: scheduler\n }));\n }\n scheduleNotification(notification) {\n if (this.errored === true) {\n return;\n }\n const scheduler = this.scheduler;\n const message = new DelayMessage(scheduler.now() + this.delay, notification);\n this.queue.push(message);\n if (this.active === false) {\n this._schedule(scheduler);\n }\n }\n _next(value) {\n this.scheduleNotification(Notification.createNext(value));\n }\n _error(err) {\n this.errored = true;\n this.queue = [];\n this.destination.error(err);\n this.unsubscribe();\n }\n _complete() {\n this.scheduleNotification(Notification.createComplete());\n this.unsubscribe();\n }\n}\nclass DelayMessage {\n constructor(time, notification) {\n this.time = time;\n this.notification = notification;\n }\n}\n","import { Subscriber } from '../Subscriber';\nexport function distinctUntilChanged(compare, keySelector) {\n return (source) => source.lift(new DistinctUntilChangedOperator(compare, keySelector));\n}\nclass DistinctUntilChangedOperator {\n constructor(compare, keySelector) {\n this.compare = compare;\n this.keySelector = keySelector;\n }\n call(subscriber, source) {\n return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector));\n }\n}\nclass DistinctUntilChangedSubscriber extends Subscriber {\n constructor(destination, compare, keySelector) {\n super(destination);\n this.keySelector = keySelector;\n this.hasKey = false;\n if (typeof compare === 'function') {\n this.compare = compare;\n }\n }\n compare(x, y) {\n return x === y;\n }\n _next(value) {\n let key;\n try {\n const { keySelector } = this;\n key = keySelector ? keySelector(value) : value;\n }\n catch (err) {\n return this.destination.error(err);\n }\n let result = false;\n if (this.hasKey) {\n try {\n const { compare } = this;\n result = compare(this.key, key);\n }\n catch (err) {\n return this.destination.error(err);\n }\n }\n else {\n this.hasKey = true;\n }\n if (!result) {\n this.key = key;\n this.destination.next(value);\n }\n }\n}\n","import { Subscriber } from '../Subscriber';\nexport function filter(predicate, thisArg) {\n return function filterOperatorFunction(source) {\n return source.lift(new FilterOperator(predicate, thisArg));\n };\n}\nclass FilterOperator {\n constructor(predicate, thisArg) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n }\n call(subscriber, source) {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n }\n}\nclass FilterSubscriber extends Subscriber {\n constructor(destination, predicate, thisArg) {\n super(destination);\n this.predicate = predicate;\n this.thisArg = thisArg;\n this.count = 0;\n }\n _next(value) {\n let result;\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.destination.next(value);\n }\n }\n}\n","import { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nexport function finalize(callback) {\n return (source) => source.lift(new FinallyOperator(callback));\n}\nclass FinallyOperator {\n constructor(callback) {\n this.callback = callback;\n }\n call(subscriber, source) {\n return source.subscribe(new FinallySubscriber(subscriber, this.callback));\n }\n}\nclass FinallySubscriber extends Subscriber {\n constructor(destination, callback) {\n super(destination);\n this.add(new Subscription(callback));\n }\n}\n","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { take } from './take';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { identity } from '../util/identity';\nexport function first(predicate, defaultValue) {\n const hasDefaultValue = arguments.length >= 2;\n return (source) => source.pipe(predicate ? filter((v, i) => predicate(v, i, source)) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(() => new EmptyError()));\n}\n","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { takeLast } from './takeLast';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { identity } from '../util/identity';\nexport function last(predicate, defaultValue) {\n const hasDefaultValue = arguments.length >= 2;\n return (source) => source.pipe(predicate ? filter((v, i) => predicate(v, i, source)) : identity, takeLast(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(() => new EmptyError()));\n}\n","import { Subscriber } from '../Subscriber';\nexport function map(project, thisArg) {\n return function mapOperation(source) {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\nexport class MapOperator {\n constructor(project, thisArg) {\n this.project = project;\n this.thisArg = thisArg;\n }\n call(subscriber, source) {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n }\n}\nclass MapSubscriber extends Subscriber {\n constructor(destination, project, thisArg) {\n super(destination);\n this.project = project;\n this.count = 0;\n this.thisArg = thisArg || this;\n }\n _next(value) {\n let result;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n }\n}\n","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent = Number.POSITIVE_INFINITY) {\n return mergeMap(identity, concurrent);\n}\n","import { map } from './map';\nimport { from } from '../observable/from';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function mergeMap(project, resultSelector, concurrent = Number.POSITIVE_INFINITY) {\n if (typeof resultSelector === 'function') {\n return (source) => source.pipe(mergeMap((a, i) => from(project(a, i)).pipe(map((b, ii) => resultSelector(a, b, i, ii))), concurrent));\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return (source) => source.lift(new MergeMapOperator(project, concurrent));\n}\nexport class MergeMapOperator {\n constructor(project, concurrent = Number.POSITIVE_INFINITY) {\n this.project = project;\n this.concurrent = concurrent;\n }\n call(observer, source) {\n return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));\n }\n}\nexport class MergeMapSubscriber extends SimpleOuterSubscriber {\n constructor(destination, project, concurrent = Number.POSITIVE_INFINITY) {\n super(destination);\n this.project = project;\n this.concurrent = concurrent;\n this.hasCompleted = false;\n this.buffer = [];\n this.active = 0;\n this.index = 0;\n }\n _next(value) {\n if (this.active < this.concurrent) {\n this._tryNext(value);\n }\n else {\n this.buffer.push(value);\n }\n }\n _tryNext(value) {\n let result;\n const index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.active++;\n this._innerSub(result);\n }\n _innerSub(ish) {\n const innerSubscriber = new SimpleInnerSubscriber(this);\n const destination = this.destination;\n destination.add(innerSubscriber);\n const innerSubscription = innerSubscribe(ish, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n }\n _complete() {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n }\n notifyNext(innerValue) {\n this.destination.next(innerValue);\n }\n notifyComplete() {\n const buffer = this.buffer;\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n this.destination.complete();\n }\n }\n}\nexport const flatMap = mergeMap;\n","import { connectableObservableDescriptor } from '../observable/ConnectableObservable';\nexport function multicast(subjectOrSubjectFactory, selector) {\n return function multicastOperatorFunction(source) {\n let subjectFactory;\n if (typeof subjectOrSubjectFactory === 'function') {\n subjectFactory = subjectOrSubjectFactory;\n }\n else {\n subjectFactory = function subjectFactory() {\n return subjectOrSubjectFactory;\n };\n }\n if (typeof selector === 'function') {\n return source.lift(new MulticastOperator(subjectFactory, selector));\n }\n const connectable = Object.create(source, connectableObservableDescriptor);\n connectable.source = source;\n connectable.subjectFactory = subjectFactory;\n return connectable;\n };\n}\nexport class MulticastOperator {\n constructor(subjectFactory, selector) {\n this.subjectFactory = subjectFactory;\n this.selector = selector;\n }\n call(subscriber, source) {\n const { selector } = this;\n const subject = this.subjectFactory();\n const subscription = selector(subject).subscribe(subscriber);\n subscription.add(source.subscribe(subject));\n return subscription;\n }\n}\n","import { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function observeOn(scheduler, delay = 0) {\n return function observeOnOperatorFunction(source) {\n return source.lift(new ObserveOnOperator(scheduler, delay));\n };\n}\nexport class ObserveOnOperator {\n constructor(scheduler, delay = 0) {\n this.scheduler = scheduler;\n this.delay = delay;\n }\n call(subscriber, source) {\n return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));\n }\n}\nexport class ObserveOnSubscriber extends Subscriber {\n constructor(destination, scheduler, delay = 0) {\n super(destination);\n this.scheduler = scheduler;\n this.delay = delay;\n }\n static dispatch(arg) {\n const { notification, destination } = arg;\n notification.observe(destination);\n this.unsubscribe();\n }\n scheduleMessage(notification) {\n const destination = this.destination;\n destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination)));\n }\n _next(value) {\n this.scheduleMessage(Notification.createNext(value));\n }\n _error(err) {\n this.scheduleMessage(Notification.createError(err));\n this.unsubscribe();\n }\n _complete() {\n this.scheduleMessage(Notification.createComplete());\n this.unsubscribe();\n }\n}\nexport class ObserveOnMessage {\n constructor(notification, destination) {\n this.notification = notification;\n this.destination = destination;\n }\n}\n","import { Subscriber } from '../Subscriber';\nexport function pairwise() {\n return (source) => source.lift(new PairwiseOperator());\n}\nclass PairwiseOperator {\n call(subscriber, source) {\n return source.subscribe(new PairwiseSubscriber(subscriber));\n }\n}\nclass PairwiseSubscriber extends Subscriber {\n constructor(destination) {\n super(destination);\n this.hasPrev = false;\n }\n _next(value) {\n let pair;\n if (this.hasPrev) {\n pair = [this.prev, value];\n }\n else {\n this.hasPrev = true;\n }\n this.prev = value;\n if (pair) {\n this.destination.next(pair);\n }\n }\n}\n","import { not } from '../util/not';\nimport { filter } from './filter';\nexport function partition(predicate, thisArg) {\n return (source) => [\n filter(predicate, thisArg)(source),\n filter(not(predicate, thisArg))(source)\n ];\n}\n","import { Subscriber } from '../Subscriber';\nexport function refCount() {\n return function refCountOperatorFunction(source) {\n return source.lift(new RefCountOperator(source));\n };\n}\nclass RefCountOperator {\n constructor(connectable) {\n this.connectable = connectable;\n }\n call(subscriber, source) {\n const { connectable } = this;\n connectable._refCount++;\n const refCounter = new RefCountSubscriber(subscriber, connectable);\n const subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n }\n}\nclass RefCountSubscriber extends Subscriber {\n constructor(destination, connectable) {\n super(destination);\n this.connectable = connectable;\n }\n _unsubscribe() {\n const { connectable } = this;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n const refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n const { connection } = this;\n const sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n }\n}\n","import { Subscriber } from '../Subscriber';\nexport function retry(count = -1) {\n return (source) => source.lift(new RetryOperator(count, source));\n}\nclass RetryOperator {\n constructor(count, source) {\n this.count = count;\n this.source = source;\n }\n call(subscriber, source) {\n return source.subscribe(new RetrySubscriber(subscriber, this.count, this.source));\n }\n}\nclass RetrySubscriber extends Subscriber {\n constructor(destination, count, source) {\n super(destination);\n this.count = count;\n this.source = source;\n }\n error(err) {\n if (!this.isStopped) {\n const { source, count } = this;\n if (count === 0) {\n return super.error(err);\n }\n else if (count > -1) {\n this.count = count - 1;\n }\n source.subscribe(this._unsubscribeAndRecycle());\n }\n }\n}\n","import { Subscriber } from '../Subscriber';\nexport function scan(accumulator, seed) {\n let hasSeed = false;\n if (arguments.length >= 2) {\n hasSeed = true;\n }\n return function scanOperatorFunction(source) {\n return source.lift(new ScanOperator(accumulator, seed, hasSeed));\n };\n}\nclass ScanOperator {\n constructor(accumulator, seed, hasSeed = false) {\n this.accumulator = accumulator;\n this.seed = seed;\n this.hasSeed = hasSeed;\n }\n call(subscriber, source) {\n return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));\n }\n}\nclass ScanSubscriber extends Subscriber {\n constructor(destination, accumulator, _seed, hasSeed) {\n super(destination);\n this.accumulator = accumulator;\n this._seed = _seed;\n this.hasSeed = hasSeed;\n this.index = 0;\n }\n get seed() {\n return this._seed;\n }\n set seed(value) {\n this.hasSeed = true;\n this._seed = value;\n }\n _next(value) {\n if (!this.hasSeed) {\n this.seed = value;\n this.destination.next(value);\n }\n else {\n return this._tryNext(value);\n }\n }\n _tryNext(value) {\n const index = this.index++;\n let result;\n try {\n result = this.accumulator(this.seed, value, index);\n }\n catch (err) {\n this.destination.error(err);\n }\n this.seed = result;\n this.destination.next(result);\n }\n}\n","import { multicast } from './multicast';\nimport { refCount } from './refCount';\nimport { Subject } from '../Subject';\nfunction shareSubjectFactory() {\n return new Subject();\n}\nexport function share() {\n return (source) => refCount()(multicast(shareSubjectFactory)(source));\n}\n","import { ReplaySubject } from '../ReplaySubject';\nexport function shareReplay(configOrBufferSize, windowTime, scheduler) {\n let config;\n if (configOrBufferSize && typeof configOrBufferSize === 'object') {\n config = configOrBufferSize;\n }\n else {\n config = {\n bufferSize: configOrBufferSize,\n windowTime,\n refCount: false,\n scheduler\n };\n }\n return (source) => source.lift(shareReplayOperator(config));\n}\nfunction shareReplayOperator({ bufferSize = Number.POSITIVE_INFINITY, windowTime = Number.POSITIVE_INFINITY, refCount: useRefCount, scheduler }) {\n let subject;\n let refCount = 0;\n let subscription;\n let hasError = false;\n let isComplete = false;\n return function shareReplayOperation(source) {\n refCount++;\n let innerSub;\n if (!subject || hasError) {\n hasError = false;\n subject = new ReplaySubject(bufferSize, windowTime, scheduler);\n innerSub = subject.subscribe(this);\n subscription = source.subscribe({\n next(value) { subject.next(value); },\n error(err) {\n hasError = true;\n subject.error(err);\n },\n complete() {\n isComplete = true;\n subscription = undefined;\n subject.complete();\n },\n });\n }\n else {\n innerSub = subject.subscribe(this);\n }\n this.add(() => {\n refCount--;\n innerSub.unsubscribe();\n if (subscription && !isComplete && useRefCount && refCount === 0) {\n subscription.unsubscribe();\n subscription = undefined;\n subject = undefined;\n }\n });\n };\n}\n","import { Subscriber } from '../Subscriber';\nexport function skip(count) {\n return (source) => source.lift(new SkipOperator(count));\n}\nclass SkipOperator {\n constructor(total) {\n this.total = total;\n }\n call(subscriber, source) {\n return source.subscribe(new SkipSubscriber(subscriber, this.total));\n }\n}\nclass SkipSubscriber extends Subscriber {\n constructor(destination, total) {\n super(destination);\n this.total = total;\n this.count = 0;\n }\n _next(x) {\n if (++this.count > this.total) {\n this.destination.next(x);\n }\n }\n}\n","import { Subscriber } from '../Subscriber';\nexport function skipWhile(predicate) {\n return (source) => source.lift(new SkipWhileOperator(predicate));\n}\nclass SkipWhileOperator {\n constructor(predicate) {\n this.predicate = predicate;\n }\n call(subscriber, source) {\n return source.subscribe(new SkipWhileSubscriber(subscriber, this.predicate));\n }\n}\nclass SkipWhileSubscriber extends Subscriber {\n constructor(destination, predicate) {\n super(destination);\n this.predicate = predicate;\n this.skipping = true;\n this.index = 0;\n }\n _next(value) {\n const destination = this.destination;\n if (this.skipping) {\n this.tryCallPredicate(value);\n }\n if (!this.skipping) {\n destination.next(value);\n }\n }\n tryCallPredicate(value) {\n try {\n const result = this.predicate(value, this.index++);\n this.skipping = Boolean(result);\n }\n catch (err) {\n this.destination.error(err);\n }\n }\n}\n","import { concat } from '../observable/concat';\nimport { isScheduler } from '../util/isScheduler';\nexport function startWith(...array) {\n const scheduler = array[array.length - 1];\n if (isScheduler(scheduler)) {\n array.pop();\n return (source) => concat(array, source, scheduler);\n }\n else {\n return (source) => concat(array, source);\n }\n}\n","import { map } from './map';\nimport { from } from '../observable/from';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function switchMap(project, resultSelector) {\n if (typeof resultSelector === 'function') {\n return (source) => source.pipe(switchMap((a, i) => from(project(a, i)).pipe(map((b, ii) => resultSelector(a, b, i, ii)))));\n }\n return (source) => source.lift(new SwitchMapOperator(project));\n}\nclass SwitchMapOperator {\n constructor(project) {\n this.project = project;\n }\n call(subscriber, source) {\n return source.subscribe(new SwitchMapSubscriber(subscriber, this.project));\n }\n}\nclass SwitchMapSubscriber extends SimpleOuterSubscriber {\n constructor(destination, project) {\n super(destination);\n this.project = project;\n this.index = 0;\n }\n _next(value) {\n let result;\n const index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (error) {\n this.destination.error(error);\n return;\n }\n this._innerSub(result);\n }\n _innerSub(result) {\n const innerSubscription = this.innerSubscription;\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n const innerSubscriber = new SimpleInnerSubscriber(this);\n const destination = this.destination;\n destination.add(innerSubscriber);\n this.innerSubscription = innerSubscribe(result, innerSubscriber);\n if (this.innerSubscription !== innerSubscriber) {\n destination.add(this.innerSubscription);\n }\n }\n _complete() {\n const { innerSubscription } = this;\n if (!innerSubscription || innerSubscription.closed) {\n super._complete();\n }\n this.unsubscribe();\n }\n _unsubscribe() {\n this.innerSubscription = undefined;\n }\n notifyComplete() {\n this.innerSubscription = undefined;\n if (this.isStopped) {\n super._complete();\n }\n }\n notifyNext(innerValue) {\n this.destination.next(innerValue);\n }\n}\n","import { switchMap } from './switchMap';\nexport function switchMapTo(innerObservable, resultSelector) {\n return resultSelector ? switchMap(() => innerObservable, resultSelector) : switchMap(() => innerObservable);\n}\n","import { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function take(count) {\n return (source) => {\n if (count === 0) {\n return empty();\n }\n else {\n return source.lift(new TakeOperator(count));\n }\n };\n}\nclass TakeOperator {\n constructor(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n call(subscriber, source) {\n return source.subscribe(new TakeSubscriber(subscriber, this.total));\n }\n}\nclass TakeSubscriber extends Subscriber {\n constructor(destination, total) {\n super(destination);\n this.total = total;\n this.count = 0;\n }\n _next(value) {\n const total = this.total;\n const count = ++this.count;\n if (count <= total) {\n this.destination.next(value);\n if (count === total) {\n this.destination.complete();\n this.unsubscribe();\n }\n }\n }\n}\n","import { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function takeLast(count) {\n return function takeLastOperatorFunction(source) {\n if (count === 0) {\n return empty();\n }\n else {\n return source.lift(new TakeLastOperator(count));\n }\n };\n}\nclass TakeLastOperator {\n constructor(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n call(subscriber, source) {\n return source.subscribe(new TakeLastSubscriber(subscriber, this.total));\n }\n}\nclass TakeLastSubscriber extends Subscriber {\n constructor(destination, total) {\n super(destination);\n this.total = total;\n this.ring = new Array();\n this.count = 0;\n }\n _next(value) {\n const ring = this.ring;\n const total = this.total;\n const count = this.count++;\n if (ring.length < total) {\n ring.push(value);\n }\n else {\n const index = count % total;\n ring[index] = value;\n }\n }\n _complete() {\n const destination = this.destination;\n let count = this.count;\n if (count > 0) {\n const total = this.count >= this.total ? this.total : this.count;\n const ring = this.ring;\n for (let i = 0; i < total; i++) {\n const idx = (count++) % total;\n destination.next(ring[idx]);\n }\n }\n destination.complete();\n }\n}\n","import { innerSubscribe, SimpleInnerSubscriber, SimpleOuterSubscriber } from '../innerSubscribe';\nexport function takeUntil(notifier) {\n return (source) => source.lift(new TakeUntilOperator(notifier));\n}\nclass TakeUntilOperator {\n constructor(notifier) {\n this.notifier = notifier;\n }\n call(subscriber, source) {\n const takeUntilSubscriber = new TakeUntilSubscriber(subscriber);\n const notifierSubscription = innerSubscribe(this.notifier, new SimpleInnerSubscriber(takeUntilSubscriber));\n if (notifierSubscription && !takeUntilSubscriber.seenValue) {\n takeUntilSubscriber.add(notifierSubscription);\n return source.subscribe(takeUntilSubscriber);\n }\n return takeUntilSubscriber;\n }\n}\nclass TakeUntilSubscriber extends SimpleOuterSubscriber {\n constructor(destination) {\n super(destination);\n this.seenValue = false;\n }\n notifyNext() {\n this.seenValue = true;\n this.complete();\n }\n notifyComplete() {\n }\n}\n","import { Subscriber } from '../Subscriber';\nexport function takeWhile(predicate, inclusive = false) {\n return (source) => source.lift(new TakeWhileOperator(predicate, inclusive));\n}\nclass TakeWhileOperator {\n constructor(predicate, inclusive) {\n this.predicate = predicate;\n this.inclusive = inclusive;\n }\n call(subscriber, source) {\n return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate, this.inclusive));\n }\n}\nclass TakeWhileSubscriber extends Subscriber {\n constructor(destination, predicate, inclusive) {\n super(destination);\n this.predicate = predicate;\n this.inclusive = inclusive;\n this.index = 0;\n }\n _next(value) {\n const destination = this.destination;\n let result;\n try {\n result = this.predicate(value, this.index++);\n }\n catch (err) {\n destination.error(err);\n return;\n }\n this.nextOrComplete(value, result);\n }\n nextOrComplete(value, predicateResult) {\n const destination = this.destination;\n if (Boolean(predicateResult)) {\n destination.next(value);\n }\n else {\n if (this.inclusive) {\n destination.next(value);\n }\n destination.complete();\n }\n }\n}\n","import { Subscriber } from '../Subscriber';\nimport { noop } from '../util/noop';\nimport { isFunction } from '../util/isFunction';\nexport function tap(nextOrObserver, error, complete) {\n return function tapOperatorFunction(source) {\n return source.lift(new DoOperator(nextOrObserver, error, complete));\n };\n}\nclass DoOperator {\n constructor(nextOrObserver, error, complete) {\n this.nextOrObserver = nextOrObserver;\n this.error = error;\n this.complete = complete;\n }\n call(subscriber, source) {\n return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));\n }\n}\nclass TapSubscriber extends Subscriber {\n constructor(destination, observerOrNext, error, complete) {\n super(destination);\n this._tapNext = noop;\n this._tapError = noop;\n this._tapComplete = noop;\n this._tapError = error || noop;\n this._tapComplete = complete || noop;\n if (isFunction(observerOrNext)) {\n this._context = this;\n this._tapNext = observerOrNext;\n }\n else if (observerOrNext) {\n this._context = observerOrNext;\n this._tapNext = observerOrNext.next || noop;\n this._tapError = observerOrNext.error || noop;\n this._tapComplete = observerOrNext.complete || noop;\n }\n }\n _next(value) {\n try {\n this._tapNext.call(this._context, value);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(value);\n }\n _error(err) {\n try {\n this._tapError.call(this._context, err);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.error(err);\n }\n _complete() {\n try {\n this._tapComplete.call(this._context);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n return this.destination.complete();\n }\n}\n","import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport const defaultThrottleConfig = {\n leading: true,\n trailing: false\n};\nexport function throttle(durationSelector, config = defaultThrottleConfig) {\n return (source) => source.lift(new ThrottleOperator(durationSelector, !!config.leading, !!config.trailing));\n}\nclass ThrottleOperator {\n constructor(durationSelector, leading, trailing) {\n this.durationSelector = durationSelector;\n this.leading = leading;\n this.trailing = trailing;\n }\n call(subscriber, source) {\n return source.subscribe(new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing));\n }\n}\nclass ThrottleSubscriber extends SimpleOuterSubscriber {\n constructor(destination, durationSelector, _leading, _trailing) {\n super(destination);\n this.destination = destination;\n this.durationSelector = durationSelector;\n this._leading = _leading;\n this._trailing = _trailing;\n this._hasValue = false;\n }\n _next(value) {\n this._hasValue = true;\n this._sendValue = value;\n if (!this._throttled) {\n if (this._leading) {\n this.send();\n }\n else {\n this.throttle(value);\n }\n }\n }\n send() {\n const { _hasValue, _sendValue } = this;\n if (_hasValue) {\n this.destination.next(_sendValue);\n this.throttle(_sendValue);\n }\n this._hasValue = false;\n this._sendValue = undefined;\n }\n throttle(value) {\n const duration = this.tryDurationSelector(value);\n if (!!duration) {\n this.add(this._throttled = innerSubscribe(duration, new SimpleInnerSubscriber(this)));\n }\n }\n tryDurationSelector(value) {\n try {\n return this.durationSelector(value);\n }\n catch (err) {\n this.destination.error(err);\n return null;\n }\n }\n throttlingDone() {\n const { _throttled, _trailing } = this;\n if (_throttled) {\n _throttled.unsubscribe();\n }\n this._throttled = undefined;\n if (_trailing) {\n this.send();\n }\n }\n notifyNext() {\n this.throttlingDone();\n }\n notifyComplete() {\n this.throttlingDone();\n }\n}\n","import { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nimport { defaultThrottleConfig } from './throttle';\nexport function throttleTime(duration, scheduler = async, config = defaultThrottleConfig) {\n return (source) => source.lift(new ThrottleTimeOperator(duration, scheduler, config.leading, config.trailing));\n}\nclass ThrottleTimeOperator {\n constructor(duration, scheduler, leading, trailing) {\n this.duration = duration;\n this.scheduler = scheduler;\n this.leading = leading;\n this.trailing = trailing;\n }\n call(subscriber, source) {\n return source.subscribe(new ThrottleTimeSubscriber(subscriber, this.duration, this.scheduler, this.leading, this.trailing));\n }\n}\nclass ThrottleTimeSubscriber extends Subscriber {\n constructor(destination, duration, scheduler, leading, trailing) {\n super(destination);\n this.duration = duration;\n this.scheduler = scheduler;\n this.leading = leading;\n this.trailing = trailing;\n this._hasTrailingValue = false;\n this._trailingValue = null;\n }\n _next(value) {\n if (this.throttled) {\n if (this.trailing) {\n this._trailingValue = value;\n this._hasTrailingValue = true;\n }\n }\n else {\n this.add(this.throttled = this.scheduler.schedule(dispatchNext, this.duration, { subscriber: this }));\n if (this.leading) {\n this.destination.next(value);\n }\n else if (this.trailing) {\n this._trailingValue = value;\n this._hasTrailingValue = true;\n }\n }\n }\n _complete() {\n if (this._hasTrailingValue) {\n this.destination.next(this._trailingValue);\n this.destination.complete();\n }\n else {\n this.destination.complete();\n }\n }\n clearThrottle() {\n const throttled = this.throttled;\n if (throttled) {\n if (this.trailing && this._hasTrailingValue) {\n this.destination.next(this._trailingValue);\n this._trailingValue = null;\n this._hasTrailingValue = false;\n }\n throttled.unsubscribe();\n this.remove(throttled);\n this.throttled = null;\n }\n }\n}\nfunction dispatchNext(arg) {\n const { subscriber } = arg;\n subscriber.clearThrottle();\n}\n","import { EmptyError } from '../util/EmptyError';\nimport { Subscriber } from '../Subscriber';\nexport function throwIfEmpty(errorFactory = defaultErrorFactory) {\n return (source) => {\n return source.lift(new ThrowIfEmptyOperator(errorFactory));\n };\n}\nclass ThrowIfEmptyOperator {\n constructor(errorFactory) {\n this.errorFactory = errorFactory;\n }\n call(subscriber, source) {\n return source.subscribe(new ThrowIfEmptySubscriber(subscriber, this.errorFactory));\n }\n}\nclass ThrowIfEmptySubscriber extends Subscriber {\n constructor(destination, errorFactory) {\n super(destination);\n this.errorFactory = errorFactory;\n this.hasValue = false;\n }\n _next(value) {\n this.hasValue = true;\n this.destination.next(value);\n }\n _complete() {\n if (!this.hasValue) {\n let err;\n try {\n err = this.errorFactory();\n }\n catch (e) {\n err = e;\n }\n this.destination.error(err);\n }\n else {\n return this.destination.complete();\n }\n }\n}\nfunction defaultErrorFactory() {\n return new EmptyError();\n}\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function scheduleArray(input, scheduler) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n let i = 0;\n sub.add(scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n return;\n }\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n sub.add(this.schedule());\n }\n }));\n return sub;\n });\n}\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function scheduleIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable(subscriber => {\n const sub = new Subscription();\n let iterator;\n sub.add(() => {\n if (iterator && typeof iterator.return === 'function') {\n iterator.return();\n }\n });\n sub.add(scheduler.schedule(() => {\n iterator = input[Symbol_iterator]();\n sub.add(scheduler.schedule(function () {\n if (subscriber.closed) {\n return;\n }\n let value;\n let done;\n try {\n const result = iterator.next();\n value = result.value;\n done = result.done;\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n this.schedule();\n }\n }));\n }));\n return sub;\n });\n}\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function scheduleObservable(input, scheduler) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n sub.add(scheduler.schedule(() => {\n const observable = input[Symbol_observable]();\n sub.add(observable.subscribe({\n next(value) { sub.add(scheduler.schedule(() => subscriber.next(value))); },\n error(err) { sub.add(scheduler.schedule(() => subscriber.error(err))); },\n complete() { sub.add(scheduler.schedule(() => subscriber.complete())); },\n }));\n }));\n return sub;\n });\n}\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function schedulePromise(input, scheduler) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n sub.add(scheduler.schedule(() => input.then(value => {\n sub.add(scheduler.schedule(() => {\n subscriber.next(value);\n sub.add(scheduler.schedule(() => subscriber.complete()));\n }));\n }, err => {\n sub.add(scheduler.schedule(() => subscriber.error(err)));\n })));\n return sub;\n });\n}\n","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n else if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n else if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n else if (isIterable(input) || typeof input === 'string') {\n return scheduleIterable(input, scheduler);\n }\n }\n throw new TypeError((input !== null && typeof input || input) + ' is not observable');\n}\n","import { Subscription } from '../Subscription';\nexport class Action extends Subscription {\n constructor(scheduler, work) {\n super();\n }\n schedule(state, delay = 0) {\n return this;\n }\n}\n","import { AsyncAction } from './AsyncAction';\nexport class AnimationFrameAction extends AsyncAction {\n constructor(scheduler, work) {\n super(scheduler, work);\n this.scheduler = scheduler;\n this.work = work;\n }\n requestAsyncId(scheduler, id, delay = 0) {\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(() => scheduler.flush(null)));\n }\n recycleAsyncId(scheduler, id, delay = 0) {\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n if (scheduler.actions.length === 0) {\n cancelAnimationFrame(id);\n scheduler.scheduled = undefined;\n }\n return undefined;\n }\n}\n","import { AsyncScheduler } from './AsyncScheduler';\nexport class AnimationFrameScheduler extends AsyncScheduler {\n flush(action) {\n this.active = true;\n this.scheduled = undefined;\n const { actions } = this;\n let error;\n let index = -1;\n let count = actions.length;\n action = action || actions.shift();\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n this.active = false;\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n","import { Immediate } from '../util/Immediate';\nimport { AsyncAction } from './AsyncAction';\nexport class AsapAction extends AsyncAction {\n constructor(scheduler, work) {\n super(scheduler, work);\n this.scheduler = scheduler;\n this.work = work;\n }\n requestAsyncId(scheduler, id, delay = 0) {\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler.scheduled || (scheduler.scheduled = Immediate.setImmediate(scheduler.flush.bind(scheduler, null)));\n }\n recycleAsyncId(scheduler, id, delay = 0) {\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n if (scheduler.actions.length === 0) {\n Immediate.clearImmediate(id);\n scheduler.scheduled = undefined;\n }\n return undefined;\n }\n}\n","import { AsyncScheduler } from './AsyncScheduler';\nexport class AsapScheduler extends AsyncScheduler {\n flush(action) {\n this.active = true;\n this.scheduled = undefined;\n const { actions } = this;\n let error;\n let index = -1;\n let count = actions.length;\n action = action || actions.shift();\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n this.active = false;\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n","import { Action } from './Action';\nexport class AsyncAction extends Action {\n constructor(scheduler, work) {\n super(scheduler, work);\n this.scheduler = scheduler;\n this.work = work;\n this.pending = false;\n }\n schedule(state, delay = 0) {\n if (this.closed) {\n return this;\n }\n this.state = state;\n const id = this.id;\n const scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n }\n requestAsyncId(scheduler, id, delay = 0) {\n return setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n recycleAsyncId(scheduler, id, delay = 0) {\n if (delay !== null && this.delay === delay && this.pending === false) {\n return id;\n }\n clearInterval(id);\n return undefined;\n }\n execute(state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n const error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n }\n _execute(state, delay) {\n let errored = false;\n let errorValue = undefined;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = !!e && e || new Error(e);\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n _unsubscribe() {\n const id = this.id;\n const scheduler = this.scheduler;\n const actions = scheduler.actions;\n const index = actions.indexOf(this);\n this.work = null;\n this.state = null;\n this.pending = false;\n this.scheduler = null;\n if (index !== -1) {\n actions.splice(index, 1);\n }\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n }\n}\n","import { Scheduler } from '../Scheduler';\nexport class AsyncScheduler extends Scheduler {\n constructor(SchedulerAction, now = Scheduler.now) {\n super(SchedulerAction, () => {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.now();\n }\n else {\n return now();\n }\n });\n this.actions = [];\n this.active = false;\n this.scheduled = undefined;\n }\n schedule(work, delay = 0, state) {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.schedule(work, delay, state);\n }\n else {\n return super.schedule(work, delay, state);\n }\n }\n flush(action) {\n const { actions } = this;\n if (this.active) {\n actions.push(action);\n return;\n }\n let error;\n this.active = true;\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (action = actions.shift());\n this.active = false;\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n","import { AsyncAction } from './AsyncAction';\nexport class QueueAction extends AsyncAction {\n constructor(scheduler, work) {\n super(scheduler, work);\n this.scheduler = scheduler;\n this.work = work;\n }\n schedule(state, delay = 0) {\n if (delay > 0) {\n return super.schedule(state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n }\n execute(state, delay) {\n return (delay > 0 || this.closed) ?\n super.execute(state, delay) :\n this._execute(state, delay);\n }\n requestAsyncId(scheduler, id, delay = 0) {\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n return scheduler.flush(this);\n }\n}\n","import { AsyncScheduler } from './AsyncScheduler';\nexport class QueueScheduler extends AsyncScheduler {\n}\n","import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nexport const animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction);\nexport const animationFrame = animationFrameScheduler;\n","import { AsapAction } from './AsapAction';\nimport { AsapScheduler } from './AsapScheduler';\nexport const asapScheduler = new AsapScheduler(AsapAction);\nexport const asap = asapScheduler;\n","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport const asyncScheduler = new AsyncScheduler(AsyncAction);\nexport const async = asyncScheduler;\n","import { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\nexport const queueScheduler = new QueueScheduler(QueueAction);\nexport const queue = queueScheduler;\n","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport const iterator = getSymbolIterator();\nexport const $$iterator = iterator;\n","export const observable = (() => typeof Symbol === 'function' && Symbol.observable || '@@observable')();\n","export const rxSubscriber = (() => typeof Symbol === 'function'\n ? Symbol('rxSubscriber')\n : '@@rxSubscriber_' + Math.random())();\nexport const $$rxSubscriber = rxSubscriber;\n","const ArgumentOutOfRangeErrorImpl = (() => {\n function ArgumentOutOfRangeErrorImpl() {\n Error.call(this);\n this.message = 'argument out of range';\n this.name = 'ArgumentOutOfRangeError';\n return this;\n }\n ArgumentOutOfRangeErrorImpl.prototype = Object.create(Error.prototype);\n return ArgumentOutOfRangeErrorImpl;\n})();\nexport const ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl;\n","const EmptyErrorImpl = (() => {\n function EmptyErrorImpl() {\n Error.call(this);\n this.message = 'no elements in sequence';\n this.name = 'EmptyError';\n return this;\n }\n EmptyErrorImpl.prototype = Object.create(Error.prototype);\n return EmptyErrorImpl;\n})();\nexport const EmptyError = EmptyErrorImpl;\n","let nextHandle = 1;\nconst RESOLVED = (() => Promise.resolve())();\nconst activeHandles = {};\nfunction findAndClearHandle(handle) {\n if (handle in activeHandles) {\n delete activeHandles[handle];\n return true;\n }\n return false;\n}\nexport const Immediate = {\n setImmediate(cb) {\n const handle = nextHandle++;\n activeHandles[handle] = true;\n RESOLVED.then(() => findAndClearHandle(handle) && cb());\n return handle;\n },\n clearImmediate(handle) {\n findAndClearHandle(handle);\n },\n};\nexport const TestTools = {\n pending() {\n return Object.keys(activeHandles).length;\n }\n};\n","const ObjectUnsubscribedErrorImpl = (() => {\n function ObjectUnsubscribedErrorImpl() {\n Error.call(this);\n this.message = 'object unsubscribed';\n this.name = 'ObjectUnsubscribedError';\n return this;\n }\n ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);\n return ObjectUnsubscribedErrorImpl;\n})();\nexport const ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;\n","const UnsubscriptionErrorImpl = (() => {\n function UnsubscriptionErrorImpl(errors) {\n Error.call(this);\n this.message = errors ?\n `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}` : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n }\n UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);\n return UnsubscriptionErrorImpl;\n})();\nexport const UnsubscriptionError = UnsubscriptionErrorImpl;\n","import { Subscriber } from '../Subscriber';\nexport function canReportError(observer) {\n while (observer) {\n const { closed, destination, isStopped } = observer;\n if (closed || isStopped) {\n return false;\n }\n else if (destination && destination instanceof Subscriber) {\n observer = destination;\n }\n else {\n observer = null;\n }\n }\n return true;\n}\n","export function hostReportError(err) {\n setTimeout(() => { throw err; }, 0);\n}\n","export function identity(x) {\n return x;\n}\n","export const isArray = (() => Array.isArray || ((x) => x && typeof x.length === 'number'))();\n","export const isArrayLike = ((x) => x && typeof x.length === 'number' && typeof x !== 'function');\n","export function isDate(value) {\n return value instanceof Date && !isNaN(+value);\n}\n","export function isFunction(x) {\n return typeof x === 'function';\n}\n","import { observable as Symbol_observable } from '../symbol/observable';\nexport function isInteropObservable(input) {\n return input && typeof input[Symbol_observable] === 'function';\n}\n","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function isIterable(input) {\n return input && typeof input[Symbol_iterator] === 'function';\n}\n","import { isArray } from './isArray';\nexport function isNumeric(val) {\n return !isArray(val) && (val - parseFloat(val) + 1) >= 0;\n}\n","export function isObject(x) {\n return x !== null && typeof x === 'object';\n}\n","import { Observable } from '../Observable';\nexport function isObservable(obj) {\n return !!obj && (obj instanceof Observable || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function'));\n}\n","export function isPromise(value) {\n return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\n","export function isScheduler(value) {\n return value && typeof value.schedule === 'function';\n}\n","export function noop() { }\n","export function not(pred, thisArg) {\n function notPred() {\n return !(notPred.pred.apply(notPred.thisArg, arguments));\n }\n notPred.pred = pred;\n notPred.thisArg = thisArg;\n return notPred;\n}\n","import { identity } from './identity';\nexport function pipe(...fns) {\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce((prev, fn) => fn(prev), input);\n };\n}\n","import { subscribeToArray } from './subscribeToArray';\nimport { subscribeToPromise } from './subscribeToPromise';\nimport { subscribeToIterable } from './subscribeToIterable';\nimport { subscribeToObservable } from './subscribeToObservable';\nimport { isArrayLike } from './isArrayLike';\nimport { isPromise } from './isPromise';\nimport { isObject } from './isObject';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport const subscribeTo = (result) => {\n if (!!result && typeof result[Symbol_observable] === 'function') {\n return subscribeToObservable(result);\n }\n else if (isArrayLike(result)) {\n return subscribeToArray(result);\n }\n else if (isPromise(result)) {\n return subscribeToPromise(result);\n }\n else if (!!result && typeof result[Symbol_iterator] === 'function') {\n return subscribeToIterable(result);\n }\n else {\n const value = isObject(result) ? 'an invalid object' : `'${result}'`;\n const msg = `You provided ${value} where a stream was expected.`\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n throw new TypeError(msg);\n }\n};\n","export const subscribeToArray = (array) => (subscriber) => {\n for (let i = 0, len = array.length; i < len && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n};\n","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport const subscribeToIterable = (iterable) => (subscriber) => {\n const iterator = iterable[Symbol_iterator]();\n do {\n let item;\n try {\n item = iterator.next();\n }\n catch (err) {\n subscriber.error(err);\n return subscriber;\n }\n if (item.done) {\n subscriber.complete();\n break;\n }\n subscriber.next(item.value);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n if (typeof iterator.return === 'function') {\n subscriber.add(() => {\n if (iterator.return) {\n iterator.return();\n }\n });\n }\n return subscriber;\n};\n","import { observable as Symbol_observable } from '../symbol/observable';\nexport const subscribeToObservable = (obj) => (subscriber) => {\n const obs = obj[Symbol_observable]();\n if (typeof obs.subscribe !== 'function') {\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n }\n else {\n return obs.subscribe(subscriber);\n }\n};\n","import { hostReportError } from './hostReportError';\nexport const subscribeToPromise = (promise) => (subscriber) => {\n promise.then((value) => {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, (err) => subscriber.error(err))\n .then(null, hostReportError);\n return subscriber;\n};\n","import { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeTo } from './subscribeTo';\nimport { Observable } from '../Observable';\nexport function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, innerSubscriber = new InnerSubscriber(outerSubscriber, outerValue, outerIndex)) {\n if (innerSubscriber.closed) {\n return undefined;\n }\n if (result instanceof Observable) {\n return result.subscribe(innerSubscriber);\n }\n return subscribeTo(result)(innerSubscriber);\n}\n","import { Subscriber } from '../Subscriber';\nimport { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';\nimport { empty as emptyObserver } from '../Observer';\nexport function toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber) {\n return nextOrObserver;\n }\n if (nextOrObserver[rxSubscriberSymbol]) {\n return nextOrObserver[rxSubscriberSymbol]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber(emptyObserver);\n }\n return new Subscriber(nextOrObserver, error, complete);\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (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 (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 (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 (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 (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 (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 (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 (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 (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 (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","/**\n * @license Angular v13.3.0\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\n/**\n * An injectable service that produces an animation sequence programmatically within an\n * Angular component or directive.\n * Provided by the `BrowserAnimationsModule` or `NoopAnimationsModule`.\n *\n * @usageNotes\n *\n * To use this service, add it to your component or directive as a dependency.\n * The service is instantiated along with your component.\n *\n * Apps do not typically need to create their own animation players, but if you\n * do need to, follow these steps:\n *\n * 1. Use the [AnimationBuilder.build](api/animations/AnimationBuilder#build)() method\n * to create a programmatic animation. The method returns an `AnimationFactory` instance.\n *\n * 2. Use the factory object to create an `AnimationPlayer` and attach it to a DOM element.\n *\n * 3. Use the player object to control the animation programmatically.\n *\n * For example:\n *\n * ```ts\n * // import the service from BrowserAnimationsModule\n * import {AnimationBuilder} from '@angular/animations';\n * // require the service as a dependency\n * class MyCmp {\n * constructor(private _builder: AnimationBuilder) {}\n *\n * makeAnimation(element: any) {\n * // first define a reusable animation\n * const myAnimation = this._builder.build([\n * style({ width: 0 }),\n * animate(1000, style({ width: '100px' }))\n * ]);\n *\n * // use the returned factory object to create a player\n * const player = myAnimation.create(element);\n *\n * player.play();\n * }\n * }\n * ```\n *\n * @publicApi\n */\nclass AnimationBuilder {\n}\n/**\n * A factory object returned from the\n * [AnimationBuilder.build](api/animations/AnimationBuilder#build)()\n * method.\n *\n * @publicApi\n */\nclass AnimationFactory {\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source 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 * Specifies automatic styling.\n *\n * @publicApi\n */\nconst AUTO_STYLE = '*';\n/**\n * Creates a named animation trigger, containing a list of [`state()`](api/animations/state)\n * and `transition()` entries to be evaluated when the expression\n * bound to the trigger changes.\n *\n * @param name An identifying string.\n * @param definitions An animation definition object, containing an array of\n * [`state()`](api/animations/state) and `transition()` declarations.\n *\n * @return An object that encapsulates the trigger data.\n *\n * @usageNotes\n * Define an animation trigger in the `animations` section of `@Component` metadata.\n * In the template, reference the trigger by name and bind it to a trigger expression that\n * evaluates to a defined animation state, using the following format:\n *\n * `[@triggerName]=\"expression\"`\n *\n * Animation trigger bindings convert all values to strings, and then match the\n * previous and current values against any linked transitions.\n * Booleans can be specified as `1` or `true` and `0` or `false`.\n *\n * ### Usage Example\n *\n * The following example creates an animation trigger reference based on the provided\n * name value.\n * The provided animation value is expected to be an array consisting of state and\n * transition declarations.\n *\n * ```typescript\n * @Component({\n * selector: \"my-component\",\n * templateUrl: \"my-component-tpl.html\",\n * animations: [\n * trigger(\"myAnimationTrigger\", [\n * state(...),\n * state(...),\n * transition(...),\n * transition(...)\n * ])\n * ]\n * })\n * class MyComponent {\n * myStatusExp = \"something\";\n * }\n * ```\n *\n * The template associated with this component makes use of the defined trigger\n * by binding to an element within its template code.\n *\n * ```html\n * \n *

    ...
    \n * ```\n *\n * ### Using an inline function\n * The `transition` animation method also supports reading an inline function which can decide\n * if its associated animation should be run.\n *\n * ```typescript\n * // this method is run each time the `myAnimationTrigger` trigger value changes.\n * function myInlineMatcherFn(fromState: string, toState: string, element: any, params: {[key:\n string]: any}): boolean {\n * // notice that `element` and `params` are also available here\n * return toState == 'yes-please-animate';\n * }\n *\n * @Component({\n * selector: 'my-component',\n * templateUrl: 'my-component-tpl.html',\n * animations: [\n * trigger('myAnimationTrigger', [\n * transition(myInlineMatcherFn, [\n * // the animation sequence code\n * ]),\n * ])\n * ]\n * })\n * class MyComponent {\n * myStatusExp = \"yes-please-animate\";\n * }\n * ```\n *\n * ### Disabling Animations\n * When true, the special animation control binding `@.disabled` binding prevents\n * all animations from rendering.\n * Place the `@.disabled` binding on an element to disable\n * animations on the element itself, as well as any inner animation triggers\n * within the element.\n *\n * The following example shows how to use this feature:\n *\n * ```typescript\n * @Component({\n * selector: 'my-component',\n * template: `\n *
    \n *
    \n *
    \n * `,\n * animations: [\n * trigger(\"childAnimation\", [\n * // ...\n * ])\n * ]\n * })\n * class MyComponent {\n * isDisabled = true;\n * exp = '...';\n * }\n * ```\n *\n * When `@.disabled` is true, it prevents the `@childAnimation` trigger from animating,\n * along with any inner animations.\n *\n * ### Disable animations application-wide\n * When an area of the template is set to have animations disabled,\n * **all** inner components have their animations disabled as well.\n * This means that you can disable all animations for an app\n * by placing a host binding set on `@.disabled` on the topmost Angular component.\n *\n * ```typescript\n * import {Component, HostBinding} from '@angular/core';\n *\n * @Component({\n * selector: 'app-component',\n * templateUrl: 'app.component.html',\n * })\n * class AppComponent {\n * @HostBinding('@.disabled')\n * public animationsDisabled = true;\n * }\n * ```\n *\n * ### Overriding disablement of inner animations\n * Despite inner animations being disabled, a parent animation can `query()`\n * for inner elements located in disabled areas of the template and still animate\n * them if needed. This is also the case for when a sub animation is\n * queried by a parent and then later animated using `animateChild()`.\n *\n * ### Detecting when an animation is disabled\n * If a region of the DOM (or the entire application) has its animations disabled, the animation\n * trigger callbacks still fire, but for zero seconds. When the callback fires, it provides\n * an instance of an `AnimationEvent`. If animations are disabled,\n * the `.disabled` flag on the event is true.\n *\n * @publicApi\n */\nfunction trigger(name, definitions) {\n return { type: 7 /* Trigger */, name, definitions, options: {} };\n}\n/**\n * Defines an animation step that combines styling information with timing information.\n *\n * @param timings Sets `AnimateTimings` for the parent animation.\n * A string in the format \"duration [delay] [easing]\".\n * - Duration and delay are expressed as a number and optional time unit,\n * such as \"1s\" or \"10ms\" for one second and 10 milliseconds, respectively.\n * The default unit is milliseconds.\n * - The easing value controls how the animation accelerates and decelerates\n * during its runtime. Value is one of `ease`, `ease-in`, `ease-out`,\n * `ease-in-out`, or a `cubic-bezier()` function call.\n * If not supplied, no easing is applied.\n *\n * For example, the string \"1s 100ms ease-out\" specifies a duration of\n * 1000 milliseconds, and delay of 100 ms, and the \"ease-out\" easing style,\n * which decelerates near the end of the duration.\n * @param styles Sets AnimationStyles for the parent animation.\n * A function call to either `style()` or `keyframes()`\n * that returns a collection of CSS style entries to be applied to the parent animation.\n * When null, uses the styles from the destination state.\n * This is useful when describing an animation step that will complete an animation;\n * see \"Animating to the final state\" in `transitions()`.\n * @returns An object that encapsulates the animation step.\n *\n * @usageNotes\n * Call within an animation `sequence()`, `{@link animations/group group()}`, or\n * `transition()` call to specify an animation step\n * that applies given style data to the parent animation for a given amount of time.\n *\n * ### Syntax Examples\n * **Timing examples**\n *\n * The following examples show various `timings` specifications.\n * - `animate(500)` : Duration is 500 milliseconds.\n * - `animate(\"1s\")` : Duration is 1000 milliseconds.\n * - `animate(\"100ms 0.5s\")` : Duration is 100 milliseconds, delay is 500 milliseconds.\n * - `animate(\"5s ease-in\")` : Duration is 5000 milliseconds, easing in.\n * - `animate(\"5s 10ms cubic-bezier(.17,.67,.88,.1)\")` : Duration is 5000 milliseconds, delay is 10\n * milliseconds, easing according to a bezier curve.\n *\n * **Style examples**\n *\n * The following example calls `style()` to set a single CSS style.\n * ```typescript\n * animate(500, style({ background: \"red\" }))\n * ```\n * The following example calls `keyframes()` to set a CSS style\n * to different values for successive keyframes.\n * ```typescript\n * animate(500, keyframes(\n * [\n * style({ background: \"blue\" }),\n * style({ background: \"red\" })\n * ])\n * ```\n *\n * @publicApi\n */\nfunction animate(timings, styles = null) {\n return { type: 4 /* Animate */, styles, timings };\n}\n/**\n * @description Defines a list of animation steps to be run in parallel.\n *\n * @param steps An array of animation step objects.\n * - When steps are defined by `style()` or `animate()`\n * function calls, each call within the group is executed instantly.\n * - To specify offset styles to be applied at a later time, define steps with\n * `keyframes()`, or use `animate()` calls with a delay value.\n * For example:\n *\n * ```typescript\n * group([\n * animate(\"1s\", style({ background: \"black\" })),\n * animate(\"2s\", style({ color: \"white\" }))\n * ])\n * ```\n *\n * @param options An options object containing a delay and\n * developer-defined parameters that provide styling defaults and\n * can be overridden on invocation.\n *\n * @return An object that encapsulates the group data.\n *\n * @usageNotes\n * Grouped animations are useful when a series of styles must be\n * animated at different starting times and closed off at different ending times.\n *\n * When called within a `sequence()` or a\n * `transition()` call, does not continue to the next\n * instruction until all of the inner animation steps have completed.\n *\n * @publicApi\n */\nfunction group(steps, options = null) {\n return { type: 3 /* Group */, steps, options };\n}\n/**\n * Defines a list of animation steps to be run sequentially, one by one.\n *\n * @param steps An array of animation step objects.\n * - Steps defined by `style()` calls apply the styling data immediately.\n * - Steps defined by `animate()` calls apply the styling data over time\n * as specified by the timing data.\n *\n * ```typescript\n * sequence([\n * style({ opacity: 0 }),\n * animate(\"1s\", style({ opacity: 1 }))\n * ])\n * ```\n *\n * @param options An options object containing a delay and\n * developer-defined parameters that provide styling defaults and\n * can be overridden on invocation.\n *\n * @return An object that encapsulates the sequence data.\n *\n * @usageNotes\n * When you pass an array of steps to a\n * `transition()` call, the steps run sequentially by default.\n * Compare this to the `{@link animations/group group()}` call, which runs animation steps in\n *parallel.\n *\n * When a sequence is used within a `{@link animations/group group()}` or a `transition()` call,\n * execution continues to the next instruction only after each of the inner animation\n * steps have completed.\n *\n * @publicApi\n **/\nfunction sequence(steps, options = null) {\n return { type: 2 /* Sequence */, steps, options };\n}\n/**\n * Declares a key/value object containing CSS properties/styles that\n * can then be used for an animation [`state`](api/animations/state), within an animation\n *`sequence`, or as styling data for calls to `animate()` and `keyframes()`.\n *\n * @param tokens A set of CSS styles or HTML styles associated with an animation state.\n * The value can be any of the following:\n * - A key-value style pair associating a CSS property with a value.\n * - An array of key-value style pairs.\n * - An asterisk (*), to use auto-styling, where styles are derived from the element\n * being animated and applied to the animation when it starts.\n *\n * Auto-styling can be used to define a state that depends on layout or other\n * environmental factors.\n *\n * @return An object that encapsulates the style data.\n *\n * @usageNotes\n * The following examples create animation styles that collect a set of\n * CSS property values:\n *\n * ```typescript\n * // string values for CSS properties\n * style({ background: \"red\", color: \"blue\" })\n *\n * // numerical pixel values\n * style({ width: 100, height: 0 })\n * ```\n *\n * The following example uses auto-styling to allow an element to animate from\n * a height of 0 up to its full height:\n *\n * ```\n * style({ height: 0 }),\n * animate(\"1s\", style({ height: \"*\" }))\n * ```\n *\n * @publicApi\n **/\nfunction style(tokens) {\n return { type: 6 /* Style */, styles: tokens, offset: null };\n}\n/**\n * Declares an animation state within a trigger attached to an element.\n *\n * @param name One or more names for the defined state in a comma-separated string.\n * The following reserved state names can be supplied to define a style for specific use\n * cases:\n *\n * - `void` You can associate styles with this name to be used when\n * the element is detached from the application. For example, when an `ngIf` evaluates\n * to false, the state of the associated element is void.\n * - `*` (asterisk) Indicates the default state. You can associate styles with this name\n * to be used as the fallback when the state that is being animated is not declared\n * within the trigger.\n *\n * @param styles A set of CSS styles associated with this state, created using the\n * `style()` function.\n * This set of styles persists on the element once the state has been reached.\n * @param options Parameters that can be passed to the state when it is invoked.\n * 0 or more key-value pairs.\n * @return An object that encapsulates the new state data.\n *\n * @usageNotes\n * Use the `trigger()` function to register states to an animation trigger.\n * Use the `transition()` function to animate between states.\n * When a state is active within a component, its associated styles persist on the element,\n * even when the animation ends.\n *\n * @publicApi\n **/\nfunction state(name, styles, options) {\n return { type: 0 /* State */, name, styles, options };\n}\n/**\n * Defines a set of animation styles, associating each style with an optional `offset` value.\n *\n * @param steps A set of animation styles with optional offset data.\n * The optional `offset` value for a style specifies a percentage of the total animation\n * time at which that style is applied.\n * @returns An object that encapsulates the keyframes data.\n *\n * @usageNotes\n * Use with the `animate()` call. Instead of applying animations\n * from the current state\n * to the destination state, keyframes describe how each style entry is applied and at what point\n * within the animation arc.\n * Compare [CSS Keyframe Animations](https://www.w3schools.com/css/css3_animations.asp).\n *\n * ### Usage\n *\n * In the following example, the offset values describe\n * when each `backgroundColor` value is applied. The color is red at the start, and changes to\n * blue when 20% of the total time has elapsed.\n *\n * ```typescript\n * // the provided offset values\n * animate(\"5s\", keyframes([\n * style({ backgroundColor: \"red\", offset: 0 }),\n * style({ backgroundColor: \"blue\", offset: 0.2 }),\n * style({ backgroundColor: \"orange\", offset: 0.3 }),\n * style({ backgroundColor: \"black\", offset: 1 })\n * ]))\n * ```\n *\n * If there are no `offset` values specified in the style entries, the offsets\n * are calculated automatically.\n *\n * ```typescript\n * animate(\"5s\", keyframes([\n * style({ backgroundColor: \"red\" }) // offset = 0\n * style({ backgroundColor: \"blue\" }) // offset = 0.33\n * style({ backgroundColor: \"orange\" }) // offset = 0.66\n * style({ backgroundColor: \"black\" }) // offset = 1\n * ]))\n *```\n\n * @publicApi\n */\nfunction keyframes(steps) {\n return { type: 5 /* Keyframes */, steps };\n}\n/**\n * Declares an animation transition which is played when a certain specified condition is met.\n *\n * @param stateChangeExpr A string with a specific format or a function that specifies when the\n * animation transition should occur (see [State Change Expression](#state-change-expression)).\n *\n * @param steps One or more animation objects that represent the animation's instructions.\n *\n * @param options An options object that can be used to specify a delay for the animation or provide\n * custom parameters for it.\n *\n * @returns An object that encapsulates the transition data.\n *\n * @usageNotes\n *\n * ### State Change Expression\n *\n * The State Change Expression instructs Angular when to run the transition's animations, it can\n *either be\n * - a string with a specific syntax\n * - or a function that compares the previous and current state (value of the expression bound to\n * the element's trigger) and returns `true` if the transition should occur or `false` otherwise\n *\n * The string format can be:\n * - `fromState => toState`, which indicates that the transition's animations should occur then the\n * expression bound to the trigger's element goes from `fromState` to `toState`\n *\n * _Example:_\n * ```typescript\n * transition('open => closed', animate('.5s ease-out', style({ height: 0 }) ))\n * ```\n *\n * - `fromState <=> toState`, which indicates that the transition's animations should occur then\n * the expression bound to the trigger's element goes from `fromState` to `toState` or vice versa\n *\n * _Example:_\n * ```typescript\n * transition('enabled <=> disabled', animate('1s cubic-bezier(0.8,0.3,0,1)'))\n * ```\n *\n * - `:enter`/`:leave`, which indicates that the transition's animations should occur when the\n * element enters or exists the DOM\n *\n * _Example:_\n * ```typescript\n * transition(':enter', [\n * style({ opacity: 0 }),\n * animate('500ms', style({ opacity: 1 }))\n * ])\n * ```\n *\n * - `:increment`/`:decrement`, which indicates that the transition's animations should occur when\n * the numerical expression bound to the trigger's element has increased in value or decreased\n *\n * _Example:_\n * ```typescript\n * transition(':increment', query('@counter', animateChild()))\n * ```\n *\n * - a sequence of any of the above divided by commas, which indicates that transition's animations\n * should occur whenever one of the state change expressions matches\n *\n * _Example:_\n * ```typescript\n * transition(':increment, * => enabled, :enter', animate('1s ease', keyframes([\n * style({ transform: 'scale(1)', offset: 0}),\n * style({ transform: 'scale(1.1)', offset: 0.7}),\n * style({ transform: 'scale(1)', offset: 1})\n * ]))),\n * ```\n *\n * Also note that in such context:\n * - `void` can be used to indicate the absence of the element\n * - asterisks can be used as wildcards that match any state\n * - (as a consequence of the above, `void => *` is equivalent to `:enter` and `* => void` is\n * equivalent to `:leave`)\n * - `true` and `false` also match expression values of `1` and `0` respectively (but do not match\n * _truthy_ and _falsy_ values)\n *\n *
    \n *\n * Be careful about entering end leaving elements as their transitions present a common\n * pitfall for developers.\n *\n * Note that when an element with a trigger enters the DOM its `:enter` transition always\n * gets executed, but its `:leave` transition will not be executed if the element is removed\n * alongside its parent (as it will be removed \"without warning\" before its transition has\n * a chance to be executed, the only way that such transition can occur is if the element\n * is exiting the DOM on its own).\n *\n *\n *
    \n *\n * ### Animating to a Final State\n *\n * If the final step in a transition is a call to `animate()` that uses a timing value\n * with no `style` data, that step is automatically considered the final animation arc,\n * for the element to reach the final state, in such case Angular automatically adds or removes\n * CSS styles to ensure that the element is in the correct final state.\n *\n *\n * ### Usage Examples\n *\n * - Transition animations applied based on\n * the trigger's expression value\n *\n * ```HTML\n *
    \n * ...\n *
    \n * ```\n *\n * ```typescript\n * trigger(\"myAnimationTrigger\", [\n * ..., // states\n * transition(\"on => off, open => closed\", animate(500)),\n * transition(\"* <=> error\", query('.indicator', animateChild()))\n * ])\n * ```\n *\n * - Transition animations applied based on custom logic dependent\n * on the trigger's expression value and provided parameters\n *\n * ```HTML\n *
    \n * ...\n *
    \n * ```\n *\n * ```typescript\n * trigger(\"myAnimationTrigger\", [\n * ..., // states\n * transition(\n * (fromState, toState, _element, params) =>\n * ['firststep', 'laststep'].includes(fromState.toLowerCase())\n * && toState === params?.['target'],\n * animate('1s')\n * )\n * ])\n * ```\n *\n * @publicApi\n **/\nfunction transition(stateChangeExpr, steps, options = null) {\n return { type: 1 /* Transition */, expr: stateChangeExpr, animation: steps, options };\n}\n/**\n * Produces a reusable animation that can be invoked in another animation or sequence,\n * by calling the `useAnimation()` function.\n *\n * @param steps One or more animation objects, as returned by the `animate()`\n * or `sequence()` function, that form a transformation from one state to another.\n * A sequence is used by default when you pass an array.\n * @param options An options object that can contain a delay value for the start of the\n * animation, and additional developer-defined parameters.\n * Provided values for additional parameters are used as defaults,\n * and override values can be passed to the caller on invocation.\n * @returns An object that encapsulates the animation data.\n *\n * @usageNotes\n * The following example defines a reusable animation, providing some default parameter\n * values.\n *\n * ```typescript\n * var fadeAnimation = animation([\n * style({ opacity: '{{ start }}' }),\n * animate('{{ time }}',\n * style({ opacity: '{{ end }}'}))\n * ],\n * { params: { time: '1000ms', start: 0, end: 1 }});\n * ```\n *\n * The following invokes the defined animation with a call to `useAnimation()`,\n * passing in override parameter values.\n *\n * ```js\n * useAnimation(fadeAnimation, {\n * params: {\n * time: '2s',\n * start: 1,\n * end: 0\n * }\n * })\n * ```\n *\n * If any of the passed-in parameter values are missing from this call,\n * the default values are used. If one or more parameter values are missing before a step is\n * animated, `useAnimation()` throws an error.\n *\n * @publicApi\n */\nfunction animation(steps, options = null) {\n return { type: 8 /* Reference */, animation: steps, options };\n}\n/**\n * Executes a queried inner animation element within an animation sequence.\n *\n * @param options An options object that can contain a delay value for the start of the\n * animation, and additional override values for developer-defined parameters.\n * @return An object that encapsulates the child animation data.\n *\n * @usageNotes\n * Each time an animation is triggered in Angular, the parent animation\n * has priority and any child animations are blocked. In order\n * for a child animation to run, the parent animation must query each of the elements\n * containing child animations, and run them using this function.\n *\n * Note that this feature is designed to be used with `query()` and it will only work\n * with animations that are assigned using the Angular animation library. CSS keyframes\n * and transitions are not handled by this API.\n *\n * @publicApi\n */\nfunction animateChild(options = null) {\n return { type: 9 /* AnimateChild */, options };\n}\n/**\n * Starts a reusable animation that is created using the `animation()` function.\n *\n * @param animation The reusable animation to start.\n * @param options An options object that can contain a delay value for the start of\n * the animation, and additional override values for developer-defined parameters.\n * @return An object that contains the animation parameters.\n *\n * @publicApi\n */\nfunction useAnimation(animation, options = null) {\n return { type: 10 /* AnimateRef */, animation, options };\n}\n/**\n * Finds one or more inner elements within the current element that is\n * being animated within a sequence. Use with `animate()`.\n *\n * @param selector The element to query, or a set of elements that contain Angular-specific\n * characteristics, specified with one or more of the following tokens.\n * - `query(\":enter\")` or `query(\":leave\")` : Query for newly inserted/removed elements (not\n * all elements can be queried via these tokens, see\n * [Entering and Leaving Elements](#entering-and-leaving-elements))\n * - `query(\":animating\")` : Query all currently animating elements.\n * - `query(\"@triggerName\")` : Query elements that contain an animation trigger.\n * - `query(\"@*\")` : Query all elements that contain an animation triggers.\n * - `query(\":self\")` : Include the current element into the animation sequence.\n *\n * @param animation One or more animation steps to apply to the queried element or elements.\n * An array is treated as an animation sequence.\n * @param options An options object. Use the 'limit' field to limit the total number of\n * items to collect.\n * @return An object that encapsulates the query data.\n *\n * @usageNotes\n *\n * ### Multiple Tokens\n *\n * Tokens can be merged into a combined query selector string. For example:\n *\n * ```typescript\n * query(':self, .record:enter, .record:leave, @subTrigger', [...])\n * ```\n *\n * The `query()` function collects multiple elements and works internally by using\n * `element.querySelectorAll`. Use the `limit` field of an options object to limit\n * the total number of items to be collected. For example:\n *\n * ```js\n * query('div', [\n * animate(...),\n * animate(...)\n * ], { limit: 1 })\n * ```\n *\n * By default, throws an error when zero items are found. Set the\n * `optional` flag to ignore this error. For example:\n *\n * ```js\n * query('.some-element-that-may-not-be-there', [\n * animate(...),\n * animate(...)\n * ], { optional: true })\n * ```\n *\n * ### Entering and Leaving Elements\n *\n * Not all elements can be queried via the `:enter` and `:leave` tokens, the only ones\n * that can are those that Angular assumes can enter/leave based on their own logic\n * (if their insertion/removal is simply a consequence of that of their parent they\n * should be queried via a different token in their parent's `:enter`/`:leave` transitions).\n *\n * The only elements Angular assumes can enter/leave based on their own logic (thus the only\n * ones that can be queried via the `:enter` and `:leave` tokens) are:\n * - Those inserted dynamically (via `ViewContainerRef`)\n * - Those that have a structural directive (which, under the hood, are a subset of the above ones)\n *\n *
    \n *\n * Note that elements will be successfully queried via `:enter`/`:leave` even if their\n * insertion/removal is not done manually via `ViewContainerRef`or caused by their structural\n * directive (e.g. they enter/exit alongside their parent).\n *\n *
    \n *\n *
    \n *\n * There is an exception to what previously mentioned, besides elements entering/leaving based on\n * their own logic, elements with an animation trigger can always be queried via `:leave` when\n * their parent is also leaving.\n *\n *
    \n *\n * ### Usage Example\n *\n * The following example queries for inner elements and animates them\n * individually using `animate()`.\n *\n * ```typescript\n * @Component({\n * selector: 'inner',\n * template: `\n *
    \n *

    Title

    \n *
    \n * Blah blah blah\n *
    \n *
    \n * `,\n * animations: [\n * trigger('queryAnimation', [\n * transition('* => goAnimate', [\n * // hide the inner elements\n * query('h1', style({ opacity: 0 })),\n * query('.content', style({ opacity: 0 })),\n *\n * // animate the inner elements in, one by one\n * query('h1', animate(1000, style({ opacity: 1 }))),\n * query('.content', animate(1000, style({ opacity: 1 }))),\n * ])\n * ])\n * ]\n * })\n * class Cmp {\n * exp = '';\n *\n * goAnimate() {\n * this.exp = 'goAnimate';\n * }\n * }\n * ```\n *\n * @publicApi\n */\nfunction query(selector, animation, options = null) {\n return { type: 11 /* Query */, selector, animation, options };\n}\n/**\n * Use within an animation `query()` call to issue a timing gap after\n * each queried item is animated.\n *\n * @param timings A delay value.\n * @param animation One ore more animation steps.\n * @returns An object that encapsulates the stagger data.\n *\n * @usageNotes\n * In the following example, a container element wraps a list of items stamped out\n * by an `ngFor`. The container element contains an animation trigger that will later be set\n * to query for each of the inner items.\n *\n * Each time items are added, the opacity fade-in animation runs,\n * and each removed item is faded out.\n * When either of these animations occur, the stagger effect is\n * applied after each item's animation is started.\n *\n * ```html\n * \n * \n *
    \n *
    \n *
    \n * {{ item }}\n *
    \n *
    \n * ```\n *\n * Here is the component code:\n *\n * ```typescript\n * import {trigger, transition, style, animate, query, stagger} from '@angular/animations';\n * @Component({\n * templateUrl: 'list.component.html',\n * animations: [\n * trigger('listAnimation', [\n * ...\n * ])\n * ]\n * })\n * class ListComponent {\n * items = [];\n *\n * showItems() {\n * this.items = [0,1,2,3,4];\n * }\n *\n * hideItems() {\n * this.items = [];\n * }\n *\n * toggle() {\n * this.items.length ? this.hideItems() : this.showItems();\n * }\n * }\n * ```\n *\n * Here is the animation trigger code:\n *\n * ```typescript\n * trigger('listAnimation', [\n * transition('* => *', [ // each time the binding value changes\n * query(':leave', [\n * stagger(100, [\n * animate('0.5s', style({ opacity: 0 }))\n * ])\n * ]),\n * query(':enter', [\n * style({ opacity: 0 }),\n * stagger(100, [\n * animate('0.5s', style({ opacity: 1 }))\n * ])\n * ])\n * ])\n * ])\n * ```\n *\n * @publicApi\n */\nfunction stagger(timings, animation) {\n return { type: 12 /* Stagger */, timings, animation };\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction scheduleMicroTask(cb) {\n Promise.resolve(null).then(cb);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * An empty programmatic controller for reusable animations.\n * Used internally when animations are disabled, to avoid\n * checking for the null case when an animation player is expected.\n *\n * @see `animate()`\n * @see `AnimationPlayer`\n * @see `GroupPlayer`\n *\n * @publicApi\n */\nclass NoopAnimationPlayer {\n constructor(duration = 0, delay = 0) {\n this._onDoneFns = [];\n this._onStartFns = [];\n this._onDestroyFns = [];\n this._started = false;\n this._destroyed = false;\n this._finished = false;\n this._position = 0;\n this.parentPlayer = null;\n this.totalTime = duration + delay;\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(fn => fn());\n this._onDoneFns = [];\n }\n }\n onStart(fn) {\n this._onStartFns.push(fn);\n }\n onDone(fn) {\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n hasStarted() {\n return this._started;\n }\n init() { }\n play() {\n if (!this.hasStarted()) {\n this._onStart();\n this.triggerMicrotask();\n }\n this._started = true;\n }\n /** @internal */\n triggerMicrotask() {\n scheduleMicroTask(() => this._onFinish());\n }\n _onStart() {\n this._onStartFns.forEach(fn => fn());\n this._onStartFns = [];\n }\n pause() { }\n restart() { }\n finish() {\n this._onFinish();\n }\n destroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n if (!this.hasStarted()) {\n this._onStart();\n }\n this.finish();\n this._onDestroyFns.forEach(fn => fn());\n this._onDestroyFns = [];\n }\n }\n reset() {\n this._started = false;\n }\n setPosition(position) {\n this._position = this.totalTime ? position * this.totalTime : 1;\n }\n getPosition() {\n return this.totalTime ? this._position / this.totalTime : 1;\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName == 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(fn => fn());\n methods.length = 0;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A programmatic controller for a group of reusable animations.\n * Used internally to control animations.\n *\n * @see `AnimationPlayer`\n * @see `{@link animations/group group()}`\n *\n */\nclass AnimationGroupPlayer {\n constructor(_players) {\n this._onDoneFns = [];\n this._onStartFns = [];\n this._finished = false;\n this._started = false;\n this._destroyed = false;\n this._onDestroyFns = [];\n this.parentPlayer = null;\n this.totalTime = 0;\n this.players = _players;\n let doneCount = 0;\n let destroyCount = 0;\n let startCount = 0;\n const total = this.players.length;\n if (total == 0) {\n scheduleMicroTask(() => this._onFinish());\n }\n else {\n this.players.forEach(player => {\n player.onDone(() => {\n if (++doneCount == total) {\n this._onFinish();\n }\n });\n player.onDestroy(() => {\n if (++destroyCount == total) {\n this._onDestroy();\n }\n });\n player.onStart(() => {\n if (++startCount == total) {\n this._onStart();\n }\n });\n });\n }\n this.totalTime = this.players.reduce((time, player) => Math.max(time, player.totalTime), 0);\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(fn => fn());\n this._onDoneFns = [];\n }\n }\n init() {\n this.players.forEach(player => player.init());\n }\n onStart(fn) {\n this._onStartFns.push(fn);\n }\n _onStart() {\n if (!this.hasStarted()) {\n this._started = true;\n this._onStartFns.forEach(fn => fn());\n this._onStartFns = [];\n }\n }\n onDone(fn) {\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n hasStarted() {\n return this._started;\n }\n play() {\n if (!this.parentPlayer) {\n this.init();\n }\n this._onStart();\n this.players.forEach(player => player.play());\n }\n pause() {\n this.players.forEach(player => player.pause());\n }\n restart() {\n this.players.forEach(player => player.restart());\n }\n finish() {\n this._onFinish();\n this.players.forEach(player => player.finish());\n }\n destroy() {\n this._onDestroy();\n }\n _onDestroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n this._onFinish();\n this.players.forEach(player => player.destroy());\n this._onDestroyFns.forEach(fn => fn());\n this._onDestroyFns = [];\n }\n }\n reset() {\n this.players.forEach(player => player.reset());\n this._destroyed = false;\n this._finished = false;\n this._started = false;\n }\n setPosition(p) {\n const timeAtPosition = p * this.totalTime;\n this.players.forEach(player => {\n const position = player.totalTime ? Math.min(1, timeAtPosition / player.totalTime) : 1;\n player.setPosition(position);\n });\n }\n getPosition() {\n const longestPlayer = this.players.reduce((longestSoFar, player) => {\n const newPlayerIsLongest = longestSoFar === null || player.totalTime > longestSoFar.totalTime;\n return newPlayerIsLongest ? player : longestSoFar;\n }, null);\n return longestPlayer != null ? longestPlayer.getPosition() : 0;\n }\n beforeDestroy() {\n this.players.forEach(player => {\n if (player.beforeDestroy) {\n player.beforeDestroy();\n }\n });\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName == 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(fn => fn());\n methods.length = 0;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst ɵPRE_STYLE = '!';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AUTO_STYLE, AnimationBuilder, AnimationFactory, NoopAnimationPlayer, animate, animateChild, animation, group, keyframes, query, sequence, stagger, state, style, transition, trigger, useAnimation, AnimationGroupPlayer as ɵAnimationGroupPlayer, ɵPRE_STYLE };\n","/**\n * @license Angular v13.3.0\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { ɵAnimationGroupPlayer, NoopAnimationPlayer, AUTO_STYLE, ɵPRE_STYLE, sequence, style } from '@angular/animations';\nimport * as i0 from '@angular/core';\nimport { ɵRuntimeError, Injectable } from '@angular/core';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst NG_DEV_MODE$1 = typeof ngDevMode === 'undefined' || !!ngDevMode;\nconst LINE_START = '\\n - ';\nfunction invalidTimingValue(exp) {\n return new ɵRuntimeError(3000 /* INVALID_TIMING_VALUE */, NG_DEV_MODE$1 && `The provided timing value \"${exp}\" is invalid.`);\n}\nfunction negativeStepValue() {\n return new ɵRuntimeError(3100 /* NEGATIVE_STEP_VALUE */, NG_DEV_MODE$1 && 'Duration values below 0 are not allowed for this animation step.');\n}\nfunction negativeDelayValue() {\n return new ɵRuntimeError(3101 /* NEGATIVE_DELAY_VALUE */, NG_DEV_MODE$1 && 'Delay values below 0 are not allowed for this animation step.');\n}\nfunction invalidStyleParams(varName) {\n return new ɵRuntimeError(3001 /* INVALID_STYLE_PARAMS */, NG_DEV_MODE$1 &&\n `Unable to resolve the local animation param ${varName} in the given list of values`);\n}\nfunction invalidParamValue(varName) {\n return new ɵRuntimeError(3003 /* INVALID_PARAM_VALUE */, NG_DEV_MODE$1 && `Please provide a value for the animation param ${varName}`);\n}\nfunction invalidNodeType(nodeType) {\n return new ɵRuntimeError(3004 /* INVALID_NODE_TYPE */, NG_DEV_MODE$1 && `Unable to resolve animation metadata node #${nodeType}`);\n}\nfunction invalidCssUnitValue(userProvidedProperty, value) {\n return new ɵRuntimeError(3005 /* INVALID_CSS_UNIT_VALUE */, NG_DEV_MODE$1 && `Please provide a CSS unit value for ${userProvidedProperty}:${value}`);\n}\nfunction invalidTrigger() {\n return new ɵRuntimeError(3006 /* INVALID_TRIGGER */, NG_DEV_MODE$1 &&\n 'animation triggers cannot be prefixed with an `@` sign (e.g. trigger(\\'@foo\\', [...]))');\n}\nfunction invalidDefinition() {\n return new ɵRuntimeError(3007 /* INVALID_DEFINITION */, NG_DEV_MODE$1 && 'only state() and transition() definitions can sit inside of a trigger()');\n}\nfunction invalidState(metadataName, missingSubs) {\n return new ɵRuntimeError(3008 /* INVALID_STATE */, NG_DEV_MODE$1 &&\n `state(\"${metadataName}\", ...) must define default values for all the following style substitutions: ${missingSubs.join(', ')}`);\n}\nfunction invalidStyleValue(value) {\n return new ɵRuntimeError(3002 /* INVALID_STYLE_VALUE */, NG_DEV_MODE$1 && `The provided style string value ${value} is not allowed.`);\n}\nfunction invalidProperty(prop) {\n return new ɵRuntimeError(3009 /* INVALID_PROPERTY */, NG_DEV_MODE$1 &&\n `The provided animation property \"${prop}\" is not a supported CSS property for animations`);\n}\nfunction invalidParallelAnimation(prop, firstStart, firstEnd, secondStart, secondEnd) {\n return new ɵRuntimeError(3010 /* INVALID_PARALLEL_ANIMATION */, NG_DEV_MODE$1 &&\n `The CSS property \"${prop}\" that exists between the times of \"${firstStart}ms\" and \"${firstEnd}ms\" is also being animated in a parallel animation between the times of \"${secondStart}ms\" and \"${secondEnd}ms\"`);\n}\nfunction invalidKeyframes() {\n return new ɵRuntimeError(3011 /* INVALID_KEYFRAMES */, NG_DEV_MODE$1 && `keyframes() must be placed inside of a call to animate()`);\n}\nfunction invalidOffset() {\n return new ɵRuntimeError(3012 /* INVALID_OFFSET */, NG_DEV_MODE$1 && `Please ensure that all keyframe offsets are between 0 and 1`);\n}\nfunction keyframeOffsetsOutOfOrder() {\n return new ɵRuntimeError(3200 /* KEYFRAME_OFFSETS_OUT_OF_ORDER */, NG_DEV_MODE$1 && `Please ensure that all keyframe offsets are in order`);\n}\nfunction keyframesMissingOffsets() {\n return new ɵRuntimeError(3202 /* KEYFRAMES_MISSING_OFFSETS */, NG_DEV_MODE$1 && `Not all style() steps within the declared keyframes() contain offsets`);\n}\nfunction invalidStagger() {\n return new ɵRuntimeError(3013 /* INVALID_STAGGER */, NG_DEV_MODE$1 && `stagger() can only be used inside of query()`);\n}\nfunction invalidQuery(selector) {\n return new ɵRuntimeError(3014 /* INVALID_QUERY */, NG_DEV_MODE$1 &&\n `\\`query(\"${selector}\")\\` returned zero elements. (Use \\`query(\"${selector}\", { optional: true })\\` if you wish to allow this.)`);\n}\nfunction invalidExpression(expr) {\n return new ɵRuntimeError(3015 /* INVALID_EXPRESSION */, NG_DEV_MODE$1 && `The provided transition expression \"${expr}\" is not supported`);\n}\nfunction invalidTransitionAlias(alias) {\n return new ɵRuntimeError(3016 /* INVALID_TRANSITION_ALIAS */, NG_DEV_MODE$1 && `The transition alias value \"${alias}\" is not supported`);\n}\nfunction validationFailed(errors) {\n return new ɵRuntimeError(3500 /* VALIDATION_FAILED */, NG_DEV_MODE$1 && `animation validation failed:\\n${errors.map(err => err.message).join('\\n')}`);\n}\nfunction buildingFailed(errors) {\n return new ɵRuntimeError(3501 /* BUILDING_FAILED */, NG_DEV_MODE$1 && `animation building failed:\\n${errors.map(err => err.message).join('\\n')}`);\n}\nfunction triggerBuildFailed(name, errors) {\n return new ɵRuntimeError(3404 /* TRIGGER_BUILD_FAILED */, NG_DEV_MODE$1 &&\n `The animation trigger \"${name}\" has failed to build due to the following errors:\\n - ${errors.map(err => err.message).join('\\n - ')}`);\n}\nfunction animationFailed(errors) {\n return new ɵRuntimeError(3502 /* ANIMATION_FAILED */, NG_DEV_MODE$1 &&\n `Unable to animate due to the following errors:${LINE_START}${errors.map(err => err.message).join(LINE_START)}`);\n}\nfunction registerFailed(errors) {\n return new ɵRuntimeError(3503 /* REGISTRATION_FAILED */, NG_DEV_MODE$1 &&\n `Unable to build the animation due to the following errors: ${errors.map(err => err.message).join('\\n')}`);\n}\nfunction missingOrDestroyedAnimation() {\n return new ɵRuntimeError(3300 /* MISSING_OR_DESTROYED_ANIMATION */, NG_DEV_MODE$1 && 'The requested animation doesn\\'t exist or has already been destroyed');\n}\nfunction createAnimationFailed(errors) {\n return new ɵRuntimeError(3504 /* CREATE_ANIMATION_FAILED */, NG_DEV_MODE$1 &&\n `Unable to create the animation due to the following errors:${errors.map(err => err.message).join('\\n')}`);\n}\nfunction missingPlayer(id) {\n return new ɵRuntimeError(3301 /* MISSING_PLAYER */, NG_DEV_MODE$1 && `Unable to find the timeline player referenced by ${id}`);\n}\nfunction missingTrigger(phase, name) {\n return new ɵRuntimeError(3302 /* MISSING_TRIGGER */, NG_DEV_MODE$1 &&\n `Unable to listen on the animation trigger event \"${phase}\" because the animation trigger \"${name}\" doesn\\'t exist!`);\n}\nfunction missingEvent(name) {\n return new ɵRuntimeError(3303 /* MISSING_EVENT */, NG_DEV_MODE$1 &&\n `Unable to listen on the animation trigger \"${name}\" because the provided event is undefined!`);\n}\nfunction unsupportedTriggerEvent(phase, name) {\n return new ɵRuntimeError(3400 /* UNSUPPORTED_TRIGGER_EVENT */, NG_DEV_MODE$1 &&\n `The provided animation trigger event \"${phase}\" for the animation trigger \"${name}\" is not supported!`);\n}\nfunction unregisteredTrigger(name) {\n return new ɵRuntimeError(3401 /* UNREGISTERED_TRIGGER */, NG_DEV_MODE$1 && `The provided animation trigger \"${name}\" has not been registered!`);\n}\nfunction triggerTransitionsFailed(errors) {\n return new ɵRuntimeError(3402 /* TRIGGER_TRANSITIONS_FAILED */, NG_DEV_MODE$1 &&\n `Unable to process animations due to the following failed trigger transitions\\n ${errors.map(err => err.message).join('\\n')}`);\n}\nfunction triggerParsingFailed(name, errors) {\n return new ɵRuntimeError(3403 /* TRIGGER_PARSING_FAILED */, NG_DEV_MODE$1 &&\n `Animation parsing for the ${name} trigger have failed:${LINE_START}${errors.map(err => err.message).join(LINE_START)}`);\n}\nfunction transitionFailed(name, errors) {\n return new ɵRuntimeError(3505 /* TRANSITION_FAILED */, NG_DEV_MODE$1 &&\n `@${name} has failed due to:\\n ${errors.map(err => err.message).join('\\n- ')}`);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction isBrowser() {\n return (typeof window !== 'undefined' && typeof window.document !== 'undefined');\n}\nfunction isNode() {\n // Checking only for `process` isn't enough to identify whether or not we're in a Node\n // environment, because Webpack by default will polyfill the `process`. While we can discern\n // that Webpack polyfilled it by looking at `process.browser`, it's very Webpack-specific and\n // might not be future-proof. Instead we look at the stringified version of `process` which\n // is `[object process]` in Node and `[object Object]` when polyfilled.\n return typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n}\nfunction optimizeGroupPlayer(players) {\n switch (players.length) {\n case 0:\n return new NoopAnimationPlayer();\n case 1:\n return players[0];\n default:\n return new ɵAnimationGroupPlayer(players);\n }\n}\nfunction normalizeKeyframes(driver, normalizer, element, keyframes, preStyles = {}, postStyles = {}) {\n const errors = [];\n const normalizedKeyframes = [];\n let previousOffset = -1;\n let previousKeyframe = null;\n keyframes.forEach(kf => {\n const offset = kf['offset'];\n const isSameOffset = offset == previousOffset;\n const normalizedKeyframe = (isSameOffset && previousKeyframe) || {};\n Object.keys(kf).forEach(prop => {\n let normalizedProp = prop;\n let normalizedValue = kf[prop];\n if (prop !== 'offset') {\n normalizedProp = normalizer.normalizePropertyName(normalizedProp, errors);\n switch (normalizedValue) {\n case ɵPRE_STYLE:\n normalizedValue = preStyles[prop];\n break;\n case AUTO_STYLE:\n normalizedValue = postStyles[prop];\n break;\n default:\n normalizedValue =\n normalizer.normalizeStyleValue(prop, normalizedProp, normalizedValue, errors);\n break;\n }\n }\n normalizedKeyframe[normalizedProp] = normalizedValue;\n });\n if (!isSameOffset) {\n normalizedKeyframes.push(normalizedKeyframe);\n }\n previousKeyframe = normalizedKeyframe;\n previousOffset = offset;\n });\n if (errors.length) {\n throw animationFailed(errors);\n }\n return normalizedKeyframes;\n}\nfunction listenOnPlayer(player, eventName, event, callback) {\n switch (eventName) {\n case 'start':\n player.onStart(() => callback(event && copyAnimationEvent(event, 'start', player)));\n break;\n case 'done':\n player.onDone(() => callback(event && copyAnimationEvent(event, 'done', player)));\n break;\n case 'destroy':\n player.onDestroy(() => callback(event && copyAnimationEvent(event, 'destroy', player)));\n break;\n }\n}\nfunction copyAnimationEvent(e, phaseName, player) {\n const totalTime = player.totalTime;\n const disabled = player.disabled ? true : false;\n const event = makeAnimationEvent(e.element, e.triggerName, e.fromState, e.toState, phaseName || e.phaseName, totalTime == undefined ? e.totalTime : totalTime, disabled);\n const data = e['_data'];\n if (data != null) {\n event['_data'] = data;\n }\n return event;\n}\nfunction makeAnimationEvent(element, triggerName, fromState, toState, phaseName = '', totalTime = 0, disabled) {\n return { element, triggerName, fromState, toState, phaseName, totalTime, disabled: !!disabled };\n}\nfunction getOrSetAsInMap(map, key, defaultValue) {\n let value;\n if (map instanceof Map) {\n value = map.get(key);\n if (!value) {\n map.set(key, value = defaultValue);\n }\n }\n else {\n value = map[key];\n if (!value) {\n value = map[key] = defaultValue;\n }\n }\n return value;\n}\nfunction parseTimelineCommand(command) {\n const separatorPos = command.indexOf(':');\n const id = command.substring(1, separatorPos);\n const action = command.substr(separatorPos + 1);\n return [id, action];\n}\nlet _contains = (elm1, elm2) => false;\nlet _query = (element, selector, multi) => {\n return [];\n};\nlet _documentElement = null;\nfunction getParentElement(element) {\n const parent = element.parentNode || element.host; // consider host to support shadow DOM\n if (parent === _documentElement) {\n return null;\n }\n return parent;\n}\n// Define utility methods for browsers and platform-server(domino) where Element\n// and utility methods exist.\nconst _isNode = isNode();\nif (_isNode || typeof Element !== 'undefined') {\n if (!isBrowser()) {\n _contains = (elm1, elm2) => elm1.contains(elm2);\n }\n else {\n // Read the document element in an IIFE that's been marked pure to avoid a top-level property\n // read that may prevent tree-shaking.\n _documentElement = /* @__PURE__ */ (() => document.documentElement)();\n _contains = (elm1, elm2) => {\n while (elm2) {\n if (elm2 === elm1) {\n return true;\n }\n elm2 = getParentElement(elm2);\n }\n return false;\n };\n }\n _query = (element, selector, multi) => {\n if (multi) {\n return Array.from(element.querySelectorAll(selector));\n }\n const elem = element.querySelector(selector);\n return elem ? [elem] : [];\n };\n}\nfunction containsVendorPrefix(prop) {\n // Webkit is the only real popular vendor prefix nowadays\n // cc: http://shouldiprefix.com/\n return prop.substring(1, 6) == 'ebkit'; // webkit or Webkit\n}\nlet _CACHED_BODY = null;\nlet _IS_WEBKIT = false;\nfunction validateStyleProperty(prop) {\n if (!_CACHED_BODY) {\n _CACHED_BODY = getBodyNode() || {};\n _IS_WEBKIT = _CACHED_BODY.style ? ('WebkitAppearance' in _CACHED_BODY.style) : false;\n }\n let result = true;\n if (_CACHED_BODY.style && !containsVendorPrefix(prop)) {\n result = prop in _CACHED_BODY.style;\n if (!result && _IS_WEBKIT) {\n const camelProp = 'Webkit' + prop.charAt(0).toUpperCase() + prop.substr(1);\n result = camelProp in _CACHED_BODY.style;\n }\n }\n return result;\n}\nfunction getBodyNode() {\n if (typeof document != 'undefined') {\n return document.body;\n }\n return null;\n}\nconst containsElement = _contains;\nconst invokeQuery = _query;\nfunction hypenatePropsObject(object) {\n const newObj = {};\n Object.keys(object).forEach(prop => {\n const newProp = prop.replace(/([a-z])([A-Z])/g, '$1-$2');\n newObj[newProp] = object[prop];\n });\n return newObj;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @publicApi\n */\nclass NoopAnimationDriver {\n validateStyleProperty(prop) {\n return validateStyleProperty(prop);\n }\n matchesElement(_element, _selector) {\n // This method is deprecated and no longer in use so we return false.\n return false;\n }\n containsElement(elm1, elm2) {\n return containsElement(elm1, elm2);\n }\n getParentElement(element) {\n return getParentElement(element);\n }\n query(element, selector, multi) {\n return invokeQuery(element, selector, multi);\n }\n computeStyle(element, prop, defaultValue) {\n return defaultValue || '';\n }\n animate(element, keyframes, duration, delay, easing, previousPlayers = [], scrubberAccessRequested) {\n return new NoopAnimationPlayer(duration, delay);\n }\n}\nNoopAnimationDriver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NoopAnimationDriver, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNoopAnimationDriver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NoopAnimationDriver });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NoopAnimationDriver, decorators: [{\n type: Injectable\n }] });\n/**\n * @publicApi\n */\nclass AnimationDriver {\n}\nAnimationDriver.NOOP = ( /* @__PURE__ */new NoopAnimationDriver());\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst ONE_SECOND = 1000;\nconst SUBSTITUTION_EXPR_START = '{{';\nconst SUBSTITUTION_EXPR_END = '}}';\nconst ENTER_CLASSNAME = 'ng-enter';\nconst LEAVE_CLASSNAME = 'ng-leave';\nconst NG_TRIGGER_CLASSNAME = 'ng-trigger';\nconst NG_TRIGGER_SELECTOR = '.ng-trigger';\nconst NG_ANIMATING_CLASSNAME = 'ng-animating';\nconst NG_ANIMATING_SELECTOR = '.ng-animating';\nfunction resolveTimingValue(value) {\n if (typeof value == 'number')\n return value;\n const matches = value.match(/^(-?[\\.\\d]+)(m?s)/);\n if (!matches || matches.length < 2)\n return 0;\n return _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n}\nfunction _convertTimeValueToMS(value, unit) {\n switch (unit) {\n case 's':\n return value * ONE_SECOND;\n default: // ms or something else\n return value;\n }\n}\nfunction resolveTiming(timings, errors, allowNegativeValues) {\n return timings.hasOwnProperty('duration') ?\n timings :\n parseTimeExpression(timings, errors, allowNegativeValues);\n}\nfunction parseTimeExpression(exp, errors, allowNegativeValues) {\n const regex = /^(-?[\\.\\d]+)(m?s)(?:\\s+(-?[\\.\\d]+)(m?s))?(?:\\s+([-a-z]+(?:\\(.+?\\))?))?$/i;\n let duration;\n let delay = 0;\n let easing = '';\n if (typeof exp === 'string') {\n const matches = exp.match(regex);\n if (matches === null) {\n errors.push(invalidTimingValue(exp));\n return { duration: 0, delay: 0, easing: '' };\n }\n duration = _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n const delayMatch = matches[3];\n if (delayMatch != null) {\n delay = _convertTimeValueToMS(parseFloat(delayMatch), matches[4]);\n }\n const easingVal = matches[5];\n if (easingVal) {\n easing = easingVal;\n }\n }\n else {\n duration = exp;\n }\n if (!allowNegativeValues) {\n let containsErrors = false;\n let startIndex = errors.length;\n if (duration < 0) {\n errors.push(negativeStepValue());\n containsErrors = true;\n }\n if (delay < 0) {\n errors.push(negativeDelayValue());\n containsErrors = true;\n }\n if (containsErrors) {\n errors.splice(startIndex, 0, invalidTimingValue(exp));\n }\n }\n return { duration, delay, easing };\n}\nfunction copyObj(obj, destination = {}) {\n Object.keys(obj).forEach(prop => {\n destination[prop] = obj[prop];\n });\n return destination;\n}\nfunction normalizeStyles(styles) {\n const normalizedStyles = {};\n if (Array.isArray(styles)) {\n styles.forEach(data => copyStyles(data, false, normalizedStyles));\n }\n else {\n copyStyles(styles, false, normalizedStyles);\n }\n return normalizedStyles;\n}\nfunction copyStyles(styles, readPrototype, destination = {}) {\n if (readPrototype) {\n // we make use of a for-in loop so that the\n // prototypically inherited properties are\n // revealed from the backFill map\n for (let prop in styles) {\n destination[prop] = styles[prop];\n }\n }\n else {\n copyObj(styles, destination);\n }\n return destination;\n}\nfunction getStyleAttributeString(element, key, value) {\n // Return the key-value pair string to be added to the style attribute for the\n // given CSS style key.\n if (value) {\n return key + ':' + value + ';';\n }\n else {\n return '';\n }\n}\nfunction writeStyleAttribute(element) {\n // Read the style property of the element and manually reflect it to the\n // style attribute. This is needed because Domino on platform-server doesn't\n // understand the full set of allowed CSS properties and doesn't reflect some\n // of them automatically.\n let styleAttrValue = '';\n for (let i = 0; i < element.style.length; i++) {\n const key = element.style.item(i);\n styleAttrValue += getStyleAttributeString(element, key, element.style.getPropertyValue(key));\n }\n for (const key in element.style) {\n // Skip internal Domino properties that don't need to be reflected.\n if (!element.style.hasOwnProperty(key) || key.startsWith('_')) {\n continue;\n }\n const dashKey = camelCaseToDashCase(key);\n styleAttrValue += getStyleAttributeString(element, dashKey, element.style[key]);\n }\n element.setAttribute('style', styleAttrValue);\n}\nfunction setStyles(element, styles, formerStyles) {\n if (element['style']) {\n Object.keys(styles).forEach(prop => {\n const camelProp = dashCaseToCamelCase(prop);\n if (formerStyles && !formerStyles.hasOwnProperty(prop)) {\n formerStyles[prop] = element.style[camelProp];\n }\n element.style[camelProp] = styles[prop];\n });\n // On the server set the 'style' attribute since it's not automatically reflected.\n if (isNode()) {\n writeStyleAttribute(element);\n }\n }\n}\nfunction eraseStyles(element, styles) {\n if (element['style']) {\n Object.keys(styles).forEach(prop => {\n const camelProp = dashCaseToCamelCase(prop);\n element.style[camelProp] = '';\n });\n // On the server set the 'style' attribute since it's not automatically reflected.\n if (isNode()) {\n writeStyleAttribute(element);\n }\n }\n}\nfunction normalizeAnimationEntry(steps) {\n if (Array.isArray(steps)) {\n if (steps.length == 1)\n return steps[0];\n return sequence(steps);\n }\n return steps;\n}\nfunction validateStyleParams(value, options, errors) {\n const params = options.params || {};\n const matches = extractStyleParams(value);\n if (matches.length) {\n matches.forEach(varName => {\n if (!params.hasOwnProperty(varName)) {\n errors.push(invalidStyleParams(varName));\n }\n });\n }\n}\nconst PARAM_REGEX = new RegExp(`${SUBSTITUTION_EXPR_START}\\\\s*(.+?)\\\\s*${SUBSTITUTION_EXPR_END}`, 'g');\nfunction extractStyleParams(value) {\n let params = [];\n if (typeof value === 'string') {\n let match;\n while (match = PARAM_REGEX.exec(value)) {\n params.push(match[1]);\n }\n PARAM_REGEX.lastIndex = 0;\n }\n return params;\n}\nfunction interpolateParams(value, params, errors) {\n const original = value.toString();\n const str = original.replace(PARAM_REGEX, (_, varName) => {\n let localVal = params[varName];\n // this means that the value was never overridden by the data passed in by the user\n if (!params.hasOwnProperty(varName)) {\n errors.push(invalidParamValue(varName));\n localVal = '';\n }\n return localVal.toString();\n });\n // we do this to assert that numeric values stay as they are\n return str == original ? value : str;\n}\nfunction iteratorToArray(iterator) {\n const arr = [];\n let item = iterator.next();\n while (!item.done) {\n arr.push(item.value);\n item = iterator.next();\n }\n return arr;\n}\nconst DASH_CASE_REGEXP = /-+([a-z0-9])/g;\nfunction dashCaseToCamelCase(input) {\n return input.replace(DASH_CASE_REGEXP, (...m) => m[1].toUpperCase());\n}\nfunction camelCaseToDashCase(input) {\n return input.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\nfunction allowPreviousPlayerStylesMerge(duration, delay) {\n return duration === 0 || delay === 0;\n}\nfunction balancePreviousStylesIntoKeyframes(element, keyframes, previousStyles) {\n const previousStyleProps = Object.keys(previousStyles);\n if (previousStyleProps.length && keyframes.length) {\n let startingKeyframe = keyframes[0];\n let missingStyleProps = [];\n previousStyleProps.forEach(prop => {\n if (!startingKeyframe.hasOwnProperty(prop)) {\n missingStyleProps.push(prop);\n }\n startingKeyframe[prop] = previousStyles[prop];\n });\n if (missingStyleProps.length) {\n // tslint:disable-next-line\n for (var i = 1; i < keyframes.length; i++) {\n let kf = keyframes[i];\n missingStyleProps.forEach(function (prop) {\n kf[prop] = computeStyle(element, prop);\n });\n }\n }\n }\n return keyframes;\n}\nfunction visitDslNode(visitor, node, context) {\n switch (node.type) {\n case 7 /* Trigger */:\n return visitor.visitTrigger(node, context);\n case 0 /* State */:\n return visitor.visitState(node, context);\n case 1 /* Transition */:\n return visitor.visitTransition(node, context);\n case 2 /* Sequence */:\n return visitor.visitSequence(node, context);\n case 3 /* Group */:\n return visitor.visitGroup(node, context);\n case 4 /* Animate */:\n return visitor.visitAnimate(node, context);\n case 5 /* Keyframes */:\n return visitor.visitKeyframes(node, context);\n case 6 /* Style */:\n return visitor.visitStyle(node, context);\n case 8 /* Reference */:\n return visitor.visitReference(node, context);\n case 9 /* AnimateChild */:\n return visitor.visitAnimateChild(node, context);\n case 10 /* AnimateRef */:\n return visitor.visitAnimateRef(node, context);\n case 11 /* Query */:\n return visitor.visitQuery(node, context);\n case 12 /* Stagger */:\n return visitor.visitStagger(node, context);\n default:\n throw invalidNodeType(node.type);\n }\n}\nfunction computeStyle(element, prop) {\n return window.getComputedStyle(element)[prop];\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || !!ngDevMode;\nfunction createListOfWarnings(warnings) {\n const LINE_START = '\\n - ';\n return `${LINE_START}${warnings.filter(Boolean).map(warning => warning).join(LINE_START)}`;\n}\nfunction warnValidation(warnings) {\n NG_DEV_MODE && console.warn(`animation validation warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnTriggerBuild(name, warnings) {\n NG_DEV_MODE &&\n console.warn(`The animation trigger \"${name}\" has built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnRegister(warnings) {\n NG_DEV_MODE &&\n console.warn(`Animation built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction triggerParsingWarnings(name, warnings) {\n NG_DEV_MODE &&\n console.warn(`Animation parsing for the ${name} trigger presents the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction pushUnrecognizedPropertiesWarning(warnings, props) {\n if (ngDevMode && props.length) {\n warnings.push(`The provided CSS properties are not recognized properties supported for animations: ${props.join(', ')}`);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst ANY_STATE = '*';\nfunction parseTransitionExpr(transitionValue, errors) {\n const expressions = [];\n if (typeof transitionValue == 'string') {\n transitionValue.split(/\\s*,\\s*/).forEach(str => parseInnerTransitionStr(str, expressions, errors));\n }\n else {\n expressions.push(transitionValue);\n }\n return expressions;\n}\nfunction parseInnerTransitionStr(eventStr, expressions, errors) {\n if (eventStr[0] == ':') {\n const result = parseAnimationAlias(eventStr, errors);\n if (typeof result == 'function') {\n expressions.push(result);\n return;\n }\n eventStr = result;\n }\n const match = eventStr.match(/^(\\*|[-\\w]+)\\s*()\\s*(\\*|[-\\w]+)$/);\n if (match == null || match.length < 4) {\n errors.push(invalidExpression(eventStr));\n return expressions;\n }\n const fromState = match[1];\n const separator = match[2];\n const toState = match[3];\n expressions.push(makeLambdaFromStates(fromState, toState));\n const isFullAnyStateExpr = fromState == ANY_STATE && toState == ANY_STATE;\n if (separator[0] == '<' && !isFullAnyStateExpr) {\n expressions.push(makeLambdaFromStates(toState, fromState));\n }\n}\nfunction parseAnimationAlias(alias, errors) {\n switch (alias) {\n case ':enter':\n return 'void => *';\n case ':leave':\n return '* => void';\n case ':increment':\n return (fromState, toState) => parseFloat(toState) > parseFloat(fromState);\n case ':decrement':\n return (fromState, toState) => parseFloat(toState) < parseFloat(fromState);\n default:\n errors.push(invalidTransitionAlias(alias));\n return '* => *';\n }\n}\n// DO NOT REFACTOR ... keep the follow set instantiations\n// with the values intact (closure compiler for some reason\n// removes follow-up lines that add the values outside of\n// the constructor...\nconst TRUE_BOOLEAN_VALUES = new Set(['true', '1']);\nconst FALSE_BOOLEAN_VALUES = new Set(['false', '0']);\nfunction makeLambdaFromStates(lhs, rhs) {\n const LHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(lhs) || FALSE_BOOLEAN_VALUES.has(lhs);\n const RHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(rhs) || FALSE_BOOLEAN_VALUES.has(rhs);\n return (fromState, toState) => {\n let lhsMatch = lhs == ANY_STATE || lhs == fromState;\n let rhsMatch = rhs == ANY_STATE || rhs == toState;\n if (!lhsMatch && LHS_MATCH_BOOLEAN && typeof fromState === 'boolean') {\n lhsMatch = fromState ? TRUE_BOOLEAN_VALUES.has(lhs) : FALSE_BOOLEAN_VALUES.has(lhs);\n }\n if (!rhsMatch && RHS_MATCH_BOOLEAN && typeof toState === 'boolean') {\n rhsMatch = toState ? TRUE_BOOLEAN_VALUES.has(rhs) : FALSE_BOOLEAN_VALUES.has(rhs);\n }\n return lhsMatch && rhsMatch;\n };\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst SELF_TOKEN = ':self';\nconst SELF_TOKEN_REGEX = new RegExp(`\\s*${SELF_TOKEN}\\s*,?`, 'g');\n/*\n * [Validation]\n * The visitor code below will traverse the animation AST generated by the animation verb functions\n * (the output is a tree of objects) and attempt to perform a series of validations on the data. The\n * following corner-cases will be validated:\n *\n * 1. Overlap of animations\n * Given that a CSS property cannot be animated in more than one place at the same time, it's\n * important that this behavior is detected and validated. The way in which this occurs is that\n * each time a style property is examined, a string-map containing the property will be updated with\n * the start and end times for when the property is used within an animation step.\n *\n * If there are two or more parallel animations that are currently running (these are invoked by the\n * group()) on the same element then the validator will throw an error. Since the start/end timing\n * values are collected for each property then if the current animation step is animating the same\n * property and its timing values fall anywhere into the window of time that the property is\n * currently being animated within then this is what causes an error.\n *\n * 2. Timing values\n * The validator will validate to see if a timing value of `duration delay easing` or\n * `durationNumber` is valid or not.\n *\n * (note that upon validation the code below will replace the timing data with an object containing\n * {duration,delay,easing}.\n *\n * 3. Offset Validation\n * Each of the style() calls are allowed to have an offset value when placed inside of keyframes().\n * Offsets within keyframes() are considered valid when:\n *\n * - No offsets are used at all\n * - Each style() entry contains an offset value\n * - Each offset is between 0 and 1\n * - Each offset is greater to or equal than the previous one\n *\n * Otherwise an error will be thrown.\n */\nfunction buildAnimationAst(driver, metadata, errors, warnings) {\n return new AnimationAstBuilderVisitor(driver).build(metadata, errors, warnings);\n}\nconst ROOT_SELECTOR = '';\nclass AnimationAstBuilderVisitor {\n constructor(_driver) {\n this._driver = _driver;\n }\n build(metadata, errors, warnings) {\n const context = new AnimationAstBuilderContext(errors);\n this._resetContextStyleTimingState(context);\n const ast = visitDslNode(this, normalizeAnimationEntry(metadata), context);\n if (context.unsupportedCSSPropertiesFound.size) {\n pushUnrecognizedPropertiesWarning(warnings, [...context.unsupportedCSSPropertiesFound.keys()]);\n }\n return ast;\n }\n _resetContextStyleTimingState(context) {\n context.currentQuerySelector = ROOT_SELECTOR;\n context.collectedStyles = {};\n context.collectedStyles[ROOT_SELECTOR] = {};\n context.currentTime = 0;\n }\n visitTrigger(metadata, context) {\n let queryCount = context.queryCount = 0;\n let depCount = context.depCount = 0;\n const states = [];\n const transitions = [];\n if (metadata.name.charAt(0) == '@') {\n context.errors.push(invalidTrigger());\n }\n metadata.definitions.forEach(def => {\n this._resetContextStyleTimingState(context);\n if (def.type == 0 /* State */) {\n const stateDef = def;\n const name = stateDef.name;\n name.toString().split(/\\s*,\\s*/).forEach(n => {\n stateDef.name = n;\n states.push(this.visitState(stateDef, context));\n });\n stateDef.name = name;\n }\n else if (def.type == 1 /* Transition */) {\n const transition = this.visitTransition(def, context);\n queryCount += transition.queryCount;\n depCount += transition.depCount;\n transitions.push(transition);\n }\n else {\n context.errors.push(invalidDefinition());\n }\n });\n return {\n type: 7 /* Trigger */,\n name: metadata.name,\n states,\n transitions,\n queryCount,\n depCount,\n options: null\n };\n }\n visitState(metadata, context) {\n const styleAst = this.visitStyle(metadata.styles, context);\n const astParams = (metadata.options && metadata.options.params) || null;\n if (styleAst.containsDynamicStyles) {\n const missingSubs = new Set();\n const params = astParams || {};\n styleAst.styles.forEach(value => {\n if (isObject(value)) {\n const stylesObj = value;\n Object.keys(stylesObj).forEach(prop => {\n extractStyleParams(stylesObj[prop]).forEach(sub => {\n if (!params.hasOwnProperty(sub)) {\n missingSubs.add(sub);\n }\n });\n });\n }\n });\n if (missingSubs.size) {\n const missingSubsArr = iteratorToArray(missingSubs.values());\n context.errors.push(invalidState(metadata.name, missingSubsArr));\n }\n }\n return {\n type: 0 /* State */,\n name: metadata.name,\n style: styleAst,\n options: astParams ? { params: astParams } : null\n };\n }\n visitTransition(metadata, context) {\n context.queryCount = 0;\n context.depCount = 0;\n const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n const matchers = parseTransitionExpr(metadata.expr, context.errors);\n return {\n type: 1 /* Transition */,\n matchers,\n animation,\n queryCount: context.queryCount,\n depCount: context.depCount,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitSequence(metadata, context) {\n return {\n type: 2 /* Sequence */,\n steps: metadata.steps.map(s => visitDslNode(this, s, context)),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitGroup(metadata, context) {\n const currentTime = context.currentTime;\n let furthestTime = 0;\n const steps = metadata.steps.map(step => {\n context.currentTime = currentTime;\n const innerAst = visitDslNode(this, step, context);\n furthestTime = Math.max(furthestTime, context.currentTime);\n return innerAst;\n });\n context.currentTime = furthestTime;\n return {\n type: 3 /* Group */,\n steps,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimate(metadata, context) {\n const timingAst = constructTimingAst(metadata.timings, context.errors);\n context.currentAnimateTimings = timingAst;\n let styleAst;\n let styleMetadata = metadata.styles ? metadata.styles : style({});\n if (styleMetadata.type == 5 /* Keyframes */) {\n styleAst = this.visitKeyframes(styleMetadata, context);\n }\n else {\n let styleMetadata = metadata.styles;\n let isEmpty = false;\n if (!styleMetadata) {\n isEmpty = true;\n const newStyleData = {};\n if (timingAst.easing) {\n newStyleData['easing'] = timingAst.easing;\n }\n styleMetadata = style(newStyleData);\n }\n context.currentTime += timingAst.duration + timingAst.delay;\n const _styleAst = this.visitStyle(styleMetadata, context);\n _styleAst.isEmptyStep = isEmpty;\n styleAst = _styleAst;\n }\n context.currentAnimateTimings = null;\n return {\n type: 4 /* Animate */,\n timings: timingAst,\n style: styleAst,\n options: null\n };\n }\n visitStyle(metadata, context) {\n const ast = this._makeStyleAst(metadata, context);\n this._validateStyleAst(ast, context);\n return ast;\n }\n _makeStyleAst(metadata, context) {\n const styles = [];\n if (Array.isArray(metadata.styles)) {\n metadata.styles.forEach(styleTuple => {\n if (typeof styleTuple == 'string') {\n if (styleTuple == AUTO_STYLE) {\n styles.push(styleTuple);\n }\n else {\n context.errors.push(invalidStyleValue(styleTuple));\n }\n }\n else {\n styles.push(styleTuple);\n }\n });\n }\n else {\n styles.push(metadata.styles);\n }\n let containsDynamicStyles = false;\n let collectedEasing = null;\n styles.forEach(styleData => {\n if (isObject(styleData)) {\n const styleMap = styleData;\n const easing = styleMap['easing'];\n if (easing) {\n collectedEasing = easing;\n delete styleMap['easing'];\n }\n if (!containsDynamicStyles) {\n for (let prop in styleMap) {\n const value = styleMap[prop];\n if (value.toString().indexOf(SUBSTITUTION_EXPR_START) >= 0) {\n containsDynamicStyles = true;\n break;\n }\n }\n }\n }\n });\n return {\n type: 6 /* Style */,\n styles,\n easing: collectedEasing,\n offset: metadata.offset,\n containsDynamicStyles,\n options: null\n };\n }\n _validateStyleAst(ast, context) {\n const timings = context.currentAnimateTimings;\n let endTime = context.currentTime;\n let startTime = context.currentTime;\n if (timings && startTime > 0) {\n startTime -= timings.duration + timings.delay;\n }\n ast.styles.forEach(tuple => {\n if (typeof tuple == 'string')\n return;\n Object.keys(tuple).forEach(prop => {\n if (!this._driver.validateStyleProperty(prop)) {\n delete tuple[prop];\n context.unsupportedCSSPropertiesFound.add(prop);\n return;\n }\n const collectedStyles = context.collectedStyles[context.currentQuerySelector];\n const collectedEntry = collectedStyles[prop];\n let updateCollectedStyle = true;\n if (collectedEntry) {\n if (startTime != endTime && startTime >= collectedEntry.startTime &&\n endTime <= collectedEntry.endTime) {\n context.errors.push(invalidParallelAnimation(prop, collectedEntry.startTime, collectedEntry.endTime, startTime, endTime));\n updateCollectedStyle = false;\n }\n // we always choose the smaller start time value since we\n // want to have a record of the entire animation window where\n // the style property is being animated in between\n startTime = collectedEntry.startTime;\n }\n if (updateCollectedStyle) {\n collectedStyles[prop] = { startTime, endTime };\n }\n if (context.options) {\n validateStyleParams(tuple[prop], context.options, context.errors);\n }\n });\n });\n }\n visitKeyframes(metadata, context) {\n const ast = { type: 5 /* Keyframes */, styles: [], options: null };\n if (!context.currentAnimateTimings) {\n context.errors.push(invalidKeyframes());\n return ast;\n }\n const MAX_KEYFRAME_OFFSET = 1;\n let totalKeyframesWithOffsets = 0;\n const offsets = [];\n let offsetsOutOfOrder = false;\n let keyframesOutOfRange = false;\n let previousOffset = 0;\n const keyframes = metadata.steps.map(styles => {\n const style = this._makeStyleAst(styles, context);\n let offsetVal = style.offset != null ? style.offset : consumeOffset(style.styles);\n let offset = 0;\n if (offsetVal != null) {\n totalKeyframesWithOffsets++;\n offset = style.offset = offsetVal;\n }\n keyframesOutOfRange = keyframesOutOfRange || offset < 0 || offset > 1;\n offsetsOutOfOrder = offsetsOutOfOrder || offset < previousOffset;\n previousOffset = offset;\n offsets.push(offset);\n return style;\n });\n if (keyframesOutOfRange) {\n context.errors.push(invalidOffset());\n }\n if (offsetsOutOfOrder) {\n context.errors.push(keyframeOffsetsOutOfOrder());\n }\n const length = metadata.steps.length;\n let generatedOffset = 0;\n if (totalKeyframesWithOffsets > 0 && totalKeyframesWithOffsets < length) {\n context.errors.push(keyframesMissingOffsets());\n }\n else if (totalKeyframesWithOffsets == 0) {\n generatedOffset = MAX_KEYFRAME_OFFSET / (length - 1);\n }\n const limit = length - 1;\n const currentTime = context.currentTime;\n const currentAnimateTimings = context.currentAnimateTimings;\n const animateDuration = currentAnimateTimings.duration;\n keyframes.forEach((kf, i) => {\n const offset = generatedOffset > 0 ? (i == limit ? 1 : (generatedOffset * i)) : offsets[i];\n const durationUpToThisFrame = offset * animateDuration;\n context.currentTime = currentTime + currentAnimateTimings.delay + durationUpToThisFrame;\n currentAnimateTimings.duration = durationUpToThisFrame;\n this._validateStyleAst(kf, context);\n kf.offset = offset;\n ast.styles.push(kf);\n });\n return ast;\n }\n visitReference(metadata, context) {\n return {\n type: 8 /* Reference */,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimateChild(metadata, context) {\n context.depCount++;\n return {\n type: 9 /* AnimateChild */,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimateRef(metadata, context) {\n return {\n type: 10 /* AnimateRef */,\n animation: this.visitReference(metadata.animation, context),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitQuery(metadata, context) {\n const parentSelector = context.currentQuerySelector;\n const options = (metadata.options || {});\n context.queryCount++;\n context.currentQuery = metadata;\n const [selector, includeSelf] = normalizeSelector(metadata.selector);\n context.currentQuerySelector =\n parentSelector.length ? (parentSelector + ' ' + selector) : selector;\n getOrSetAsInMap(context.collectedStyles, context.currentQuerySelector, {});\n const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n context.currentQuery = null;\n context.currentQuerySelector = parentSelector;\n return {\n type: 11 /* Query */,\n selector,\n limit: options.limit || 0,\n optional: !!options.optional,\n includeSelf,\n animation,\n originalSelector: metadata.selector,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitStagger(metadata, context) {\n if (!context.currentQuery) {\n context.errors.push(invalidStagger());\n }\n const timings = metadata.timings === 'full' ?\n { duration: 0, delay: 0, easing: 'full' } :\n resolveTiming(metadata.timings, context.errors, true);\n return {\n type: 12 /* Stagger */,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n timings,\n options: null\n };\n }\n}\nfunction normalizeSelector(selector) {\n const hasAmpersand = selector.split(/\\s*,\\s*/).find(token => token == SELF_TOKEN) ? true : false;\n if (hasAmpersand) {\n selector = selector.replace(SELF_TOKEN_REGEX, '');\n }\n // Note: the :enter and :leave aren't normalized here since those\n // selectors are filled in at runtime during timeline building\n selector = selector.replace(/@\\*/g, NG_TRIGGER_SELECTOR)\n .replace(/@\\w+/g, match => NG_TRIGGER_SELECTOR + '-' + match.substr(1))\n .replace(/:animating/g, NG_ANIMATING_SELECTOR);\n return [selector, hasAmpersand];\n}\nfunction normalizeParams(obj) {\n return obj ? copyObj(obj) : null;\n}\nclass AnimationAstBuilderContext {\n constructor(errors) {\n this.errors = errors;\n this.queryCount = 0;\n this.depCount = 0;\n this.currentTransition = null;\n this.currentQuery = null;\n this.currentQuerySelector = null;\n this.currentAnimateTimings = null;\n this.currentTime = 0;\n this.collectedStyles = {};\n this.options = null;\n this.unsupportedCSSPropertiesFound = new Set();\n }\n}\nfunction consumeOffset(styles) {\n if (typeof styles == 'string')\n return null;\n let offset = null;\n if (Array.isArray(styles)) {\n styles.forEach(styleTuple => {\n if (isObject(styleTuple) && styleTuple.hasOwnProperty('offset')) {\n const obj = styleTuple;\n offset = parseFloat(obj['offset']);\n delete obj['offset'];\n }\n });\n }\n else if (isObject(styles) && styles.hasOwnProperty('offset')) {\n const obj = styles;\n offset = parseFloat(obj['offset']);\n delete obj['offset'];\n }\n return offset;\n}\nfunction isObject(value) {\n return !Array.isArray(value) && typeof value == 'object';\n}\nfunction constructTimingAst(value, errors) {\n let timings = null;\n if (value.hasOwnProperty('duration')) {\n timings = value;\n }\n else if (typeof value == 'number') {\n const duration = resolveTiming(value, errors).duration;\n return makeTimingAst(duration, 0, '');\n }\n const strValue = value;\n const isDynamic = strValue.split(/\\s+/).some(v => v.charAt(0) == '{' && v.charAt(1) == '{');\n if (isDynamic) {\n const ast = makeTimingAst(0, 0, '');\n ast.dynamic = true;\n ast.strValue = strValue;\n return ast;\n }\n timings = timings || resolveTiming(strValue, errors);\n return makeTimingAst(timings.duration, timings.delay, timings.easing);\n}\nfunction normalizeAnimationOptions(options) {\n if (options) {\n options = copyObj(options);\n if (options['params']) {\n options['params'] = normalizeParams(options['params']);\n }\n }\n else {\n options = {};\n }\n return options;\n}\nfunction makeTimingAst(duration, delay, easing) {\n return { duration, delay, easing };\n}\n\nfunction createTimelineInstruction(element, keyframes, preStyleProps, postStyleProps, duration, delay, easing = null, subTimeline = false) {\n return {\n type: 1 /* TimelineAnimation */,\n element,\n keyframes,\n preStyleProps,\n postStyleProps,\n duration,\n delay,\n totalTime: duration + delay,\n easing,\n subTimeline\n };\n}\n\nclass ElementInstructionMap {\n constructor() {\n this._map = new Map();\n }\n get(element) {\n return this._map.get(element) || [];\n }\n append(element, instructions) {\n let existingInstructions = this._map.get(element);\n if (!existingInstructions) {\n this._map.set(element, existingInstructions = []);\n }\n existingInstructions.push(...instructions);\n }\n has(element) {\n return this._map.has(element);\n }\n clear() {\n this._map.clear();\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst ONE_FRAME_IN_MILLISECONDS = 1;\nconst ENTER_TOKEN = ':enter';\nconst ENTER_TOKEN_REGEX = new RegExp(ENTER_TOKEN, 'g');\nconst LEAVE_TOKEN = ':leave';\nconst LEAVE_TOKEN_REGEX = new RegExp(LEAVE_TOKEN, 'g');\n/*\n * The code within this file aims to generate web-animations-compatible keyframes from Angular's\n * animation DSL code.\n *\n * The code below will be converted from:\n *\n * ```\n * sequence([\n * style({ opacity: 0 }),\n * animate(1000, style({ opacity: 0 }))\n * ])\n * ```\n *\n * To:\n * ```\n * keyframes = [{ opacity: 0, offset: 0 }, { opacity: 1, offset: 1 }]\n * duration = 1000\n * delay = 0\n * easing = ''\n * ```\n *\n * For this operation to cover the combination of animation verbs (style, animate, group, etc...) a\n * combination of prototypical inheritance, AST traversal and merge-sort-like algorithms are used.\n *\n * [AST Traversal]\n * Each of the animation verbs, when executed, will return an string-map object representing what\n * type of action it is (style, animate, group, etc...) and the data associated with it. This means\n * that when functional composition mix of these functions is evaluated (like in the example above)\n * then it will end up producing a tree of objects representing the animation itself.\n *\n * When this animation object tree is processed by the visitor code below it will visit each of the\n * verb statements within the visitor. And during each visit it will build the context of the\n * animation keyframes by interacting with the `TimelineBuilder`.\n *\n * [TimelineBuilder]\n * This class is responsible for tracking the styles and building a series of keyframe objects for a\n * timeline between a start and end time. The builder starts off with an initial timeline and each\n * time the AST comes across a `group()`, `keyframes()` or a combination of the two within a\n * `sequence()` then it will generate a sub timeline for each step as well as a new one after\n * they are complete.\n *\n * As the AST is traversed, the timing state on each of the timelines will be incremented. If a sub\n * timeline was created (based on one of the cases above) then the parent timeline will attempt to\n * merge the styles used within the sub timelines into itself (only with group() this will happen).\n * This happens with a merge operation (much like how the merge works in mergeSort) and it will only\n * copy the most recently used styles from the sub timelines into the parent timeline. This ensures\n * that if the styles are used later on in another phase of the animation then they will be the most\n * up-to-date values.\n *\n * [How Missing Styles Are Updated]\n * Each timeline has a `backFill` property which is responsible for filling in new styles into\n * already processed keyframes if a new style shows up later within the animation sequence.\n *\n * ```\n * sequence([\n * style({ width: 0 }),\n * animate(1000, style({ width: 100 })),\n * animate(1000, style({ width: 200 })),\n * animate(1000, style({ width: 300 }))\n * animate(1000, style({ width: 400, height: 400 })) // notice how `height` doesn't exist anywhere\n * else\n * ])\n * ```\n *\n * What is happening here is that the `height` value is added later in the sequence, but is missing\n * from all previous animation steps. Therefore when a keyframe is created it would also be missing\n * from all previous keyframes up until where it is first used. For the timeline keyframe generation\n * to properly fill in the style it will place the previous value (the value from the parent\n * timeline) or a default value of `*` into the backFill object. Given that each of the keyframe\n * styles is an object that prototypically inherits from the backFill object, this means that if a\n * value is added into the backFill then it will automatically propagate any missing values to all\n * keyframes. Therefore the missing `height` value will be properly filled into the already\n * processed keyframes.\n *\n * When a sub-timeline is created it will have its own backFill property. This is done so that\n * styles present within the sub-timeline do not accidentally seep into the previous/future timeline\n * keyframes\n *\n * (For prototypically-inherited contents to be detected a `for(i in obj)` loop must be used.)\n *\n * [Validation]\n * The code in this file is not responsible for validation. That functionality happens with within\n * the `AnimationValidatorVisitor` code.\n */\nfunction buildAnimationTimelines(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles = {}, finalStyles = {}, options, subInstructions, errors = []) {\n return new AnimationTimelineBuilderVisitor().buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors);\n}\nclass AnimationTimelineBuilderVisitor {\n buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors = []) {\n subInstructions = subInstructions || new ElementInstructionMap();\n const context = new AnimationTimelineContext(driver, rootElement, subInstructions, enterClassName, leaveClassName, errors, []);\n context.options = options;\n context.currentTimeline.setStyles([startingStyles], null, context.errors, options);\n visitDslNode(this, ast, context);\n // this checks to see if an actual animation happened\n const timelines = context.timelines.filter(timeline => timeline.containsAnimation());\n if (Object.keys(finalStyles).length) {\n // note: we just want to apply the final styles for the rootElement, so we do not\n // just apply the styles to the last timeline but the last timeline which\n // element is the root one (basically `*`-styles are replaced with the actual\n // state style values only for the root element)\n let lastRootTimeline;\n for (let i = timelines.length - 1; i >= 0; i--) {\n const timeline = timelines[i];\n if (timeline.element === rootElement) {\n lastRootTimeline = timeline;\n break;\n }\n }\n if (lastRootTimeline && !lastRootTimeline.allowOnlyTimelineStyles()) {\n lastRootTimeline.setStyles([finalStyles], null, context.errors, options);\n }\n }\n return timelines.length ? timelines.map(timeline => timeline.buildKeyframes()) :\n [createTimelineInstruction(rootElement, [], [], [], 0, 0, '', false)];\n }\n visitTrigger(ast, context) {\n // these values are not visited in this AST\n }\n visitState(ast, context) {\n // these values are not visited in this AST\n }\n visitTransition(ast, context) {\n // these values are not visited in this AST\n }\n visitAnimateChild(ast, context) {\n const elementInstructions = context.subInstructions.get(context.element);\n if (elementInstructions) {\n const innerContext = context.createSubContext(ast.options);\n const startTime = context.currentTimeline.currentTime;\n const endTime = this._visitSubInstructions(elementInstructions, innerContext, innerContext.options);\n if (startTime != endTime) {\n // we do this on the upper context because we created a sub context for\n // the sub child animations\n context.transformIntoNewTimeline(endTime);\n }\n }\n context.previousNode = ast;\n }\n visitAnimateRef(ast, context) {\n const innerContext = context.createSubContext(ast.options);\n innerContext.transformIntoNewTimeline();\n this.visitReference(ast.animation, innerContext);\n context.transformIntoNewTimeline(innerContext.currentTimeline.currentTime);\n context.previousNode = ast;\n }\n _visitSubInstructions(instructions, context, options) {\n const startTime = context.currentTimeline.currentTime;\n let furthestTime = startTime;\n // this is a special-case for when a user wants to skip a sub\n // animation from being fired entirely.\n const duration = options.duration != null ? resolveTimingValue(options.duration) : null;\n const delay = options.delay != null ? resolveTimingValue(options.delay) : null;\n if (duration !== 0) {\n instructions.forEach(instruction => {\n const instructionTimings = context.appendInstructionToTimeline(instruction, duration, delay);\n furthestTime =\n Math.max(furthestTime, instructionTimings.duration + instructionTimings.delay);\n });\n }\n return furthestTime;\n }\n visitReference(ast, context) {\n context.updateOptions(ast.options, true);\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n }\n visitSequence(ast, context) {\n const subContextCount = context.subContextCount;\n let ctx = context;\n const options = ast.options;\n if (options && (options.params || options.delay)) {\n ctx = context.createSubContext(options);\n ctx.transformIntoNewTimeline();\n if (options.delay != null) {\n if (ctx.previousNode.type == 6 /* Style */) {\n ctx.currentTimeline.snapshotCurrentStyles();\n ctx.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n const delay = resolveTimingValue(options.delay);\n ctx.delayNextStep(delay);\n }\n }\n if (ast.steps.length) {\n ast.steps.forEach(s => visitDslNode(this, s, ctx));\n // this is here just in case the inner steps only contain or end with a style() call\n ctx.currentTimeline.applyStylesToKeyframe();\n // this means that some animation function within the sequence\n // ended up creating a sub timeline (which means the current\n // timeline cannot overlap with the contents of the sequence)\n if (ctx.subContextCount > subContextCount) {\n ctx.transformIntoNewTimeline();\n }\n }\n context.previousNode = ast;\n }\n visitGroup(ast, context) {\n const innerTimelines = [];\n let furthestTime = context.currentTimeline.currentTime;\n const delay = ast.options && ast.options.delay ? resolveTimingValue(ast.options.delay) : 0;\n ast.steps.forEach(s => {\n const innerContext = context.createSubContext(ast.options);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n visitDslNode(this, s, innerContext);\n furthestTime = Math.max(furthestTime, innerContext.currentTimeline.currentTime);\n innerTimelines.push(innerContext.currentTimeline);\n });\n // this operation is run after the AST loop because otherwise\n // if the parent timeline's collected styles were updated then\n // it would pass in invalid data into the new-to-be forked items\n innerTimelines.forEach(timeline => context.currentTimeline.mergeTimelineCollectedStyles(timeline));\n context.transformIntoNewTimeline(furthestTime);\n context.previousNode = ast;\n }\n _visitTiming(ast, context) {\n if (ast.dynamic) {\n const strValue = ast.strValue;\n const timingValue = context.params ? interpolateParams(strValue, context.params, context.errors) : strValue;\n return resolveTiming(timingValue, context.errors);\n }\n else {\n return { duration: ast.duration, delay: ast.delay, easing: ast.easing };\n }\n }\n visitAnimate(ast, context) {\n const timings = context.currentAnimateTimings = this._visitTiming(ast.timings, context);\n const timeline = context.currentTimeline;\n if (timings.delay) {\n context.incrementTime(timings.delay);\n timeline.snapshotCurrentStyles();\n }\n const style = ast.style;\n if (style.type == 5 /* Keyframes */) {\n this.visitKeyframes(style, context);\n }\n else {\n context.incrementTime(timings.duration);\n this.visitStyle(style, context);\n timeline.applyStylesToKeyframe();\n }\n context.currentAnimateTimings = null;\n context.previousNode = ast;\n }\n visitStyle(ast, context) {\n const timeline = context.currentTimeline;\n const timings = context.currentAnimateTimings;\n // this is a special case for when a style() call\n // directly follows an animate() call (but not inside of an animate() call)\n if (!timings && timeline.getCurrentStyleProperties().length) {\n timeline.forwardFrame();\n }\n const easing = (timings && timings.easing) || ast.easing;\n if (ast.isEmptyStep) {\n timeline.applyEmptyStep(easing);\n }\n else {\n timeline.setStyles(ast.styles, easing, context.errors, context.options);\n }\n context.previousNode = ast;\n }\n visitKeyframes(ast, context) {\n const currentAnimateTimings = context.currentAnimateTimings;\n const startTime = (context.currentTimeline).duration;\n const duration = currentAnimateTimings.duration;\n const innerContext = context.createSubContext();\n const innerTimeline = innerContext.currentTimeline;\n innerTimeline.easing = currentAnimateTimings.easing;\n ast.styles.forEach(step => {\n const offset = step.offset || 0;\n innerTimeline.forwardTime(offset * duration);\n innerTimeline.setStyles(step.styles, step.easing, context.errors, context.options);\n innerTimeline.applyStylesToKeyframe();\n });\n // this will ensure that the parent timeline gets all the styles from\n // the child even if the new timeline below is not used\n context.currentTimeline.mergeTimelineCollectedStyles(innerTimeline);\n // we do this because the window between this timeline and the sub timeline\n // should ensure that the styles within are exactly the same as they were before\n context.transformIntoNewTimeline(startTime + duration);\n context.previousNode = ast;\n }\n visitQuery(ast, context) {\n // in the event that the first step before this is a style step we need\n // to ensure the styles are applied before the children are animated\n const startTime = context.currentTimeline.currentTime;\n const options = (ast.options || {});\n const delay = options.delay ? resolveTimingValue(options.delay) : 0;\n if (delay &&\n (context.previousNode.type === 6 /* Style */ ||\n (startTime == 0 && context.currentTimeline.getCurrentStyleProperties().length))) {\n context.currentTimeline.snapshotCurrentStyles();\n context.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n let furthestTime = startTime;\n const elms = context.invokeQuery(ast.selector, ast.originalSelector, ast.limit, ast.includeSelf, options.optional ? true : false, context.errors);\n context.currentQueryTotal = elms.length;\n let sameElementTimeline = null;\n elms.forEach((element, i) => {\n context.currentQueryIndex = i;\n const innerContext = context.createSubContext(ast.options, element);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n if (element === context.element) {\n sameElementTimeline = innerContext.currentTimeline;\n }\n visitDslNode(this, ast.animation, innerContext);\n // this is here just incase the inner steps only contain or end\n // with a style() call (which is here to signal that this is a preparatory\n // call to style an element before it is animated again)\n innerContext.currentTimeline.applyStylesToKeyframe();\n const endTime = innerContext.currentTimeline.currentTime;\n furthestTime = Math.max(furthestTime, endTime);\n });\n context.currentQueryIndex = 0;\n context.currentQueryTotal = 0;\n context.transformIntoNewTimeline(furthestTime);\n if (sameElementTimeline) {\n context.currentTimeline.mergeTimelineCollectedStyles(sameElementTimeline);\n context.currentTimeline.snapshotCurrentStyles();\n }\n context.previousNode = ast;\n }\n visitStagger(ast, context) {\n const parentContext = context.parentContext;\n const tl = context.currentTimeline;\n const timings = ast.timings;\n const duration = Math.abs(timings.duration);\n const maxTime = duration * (context.currentQueryTotal - 1);\n let delay = duration * context.currentQueryIndex;\n let staggerTransformer = timings.duration < 0 ? 'reverse' : timings.easing;\n switch (staggerTransformer) {\n case 'reverse':\n delay = maxTime - delay;\n break;\n case 'full':\n delay = parentContext.currentStaggerTime;\n break;\n }\n const timeline = context.currentTimeline;\n if (delay) {\n timeline.delayNextStep(delay);\n }\n const startingTime = timeline.currentTime;\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n // time = duration + delay\n // the reason why this computation is so complex is because\n // the inner timeline may either have a delay value or a stretched\n // keyframe depending on if a subtimeline is not used or is used.\n parentContext.currentStaggerTime =\n (tl.currentTime - startingTime) + (tl.startTime - parentContext.currentTimeline.startTime);\n }\n}\nconst DEFAULT_NOOP_PREVIOUS_NODE = {};\nclass AnimationTimelineContext {\n constructor(_driver, element, subInstructions, _enterClassName, _leaveClassName, errors, timelines, initialTimeline) {\n this._driver = _driver;\n this.element = element;\n this.subInstructions = subInstructions;\n this._enterClassName = _enterClassName;\n this._leaveClassName = _leaveClassName;\n this.errors = errors;\n this.timelines = timelines;\n this.parentContext = null;\n this.currentAnimateTimings = null;\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.subContextCount = 0;\n this.options = {};\n this.currentQueryIndex = 0;\n this.currentQueryTotal = 0;\n this.currentStaggerTime = 0;\n this.currentTimeline = initialTimeline || new TimelineBuilder(this._driver, element, 0);\n timelines.push(this.currentTimeline);\n }\n get params() {\n return this.options.params;\n }\n updateOptions(options, skipIfExists) {\n if (!options)\n return;\n const newOptions = options;\n let optionsToUpdate = this.options;\n // NOTE: this will get patched up when other animation methods support duration overrides\n if (newOptions.duration != null) {\n optionsToUpdate.duration = resolveTimingValue(newOptions.duration);\n }\n if (newOptions.delay != null) {\n optionsToUpdate.delay = resolveTimingValue(newOptions.delay);\n }\n const newParams = newOptions.params;\n if (newParams) {\n let paramsToUpdate = optionsToUpdate.params;\n if (!paramsToUpdate) {\n paramsToUpdate = this.options.params = {};\n }\n Object.keys(newParams).forEach(name => {\n if (!skipIfExists || !paramsToUpdate.hasOwnProperty(name)) {\n paramsToUpdate[name] = interpolateParams(newParams[name], paramsToUpdate, this.errors);\n }\n });\n }\n }\n _copyOptions() {\n const options = {};\n if (this.options) {\n const oldParams = this.options.params;\n if (oldParams) {\n const params = options['params'] = {};\n Object.keys(oldParams).forEach(name => {\n params[name] = oldParams[name];\n });\n }\n }\n return options;\n }\n createSubContext(options = null, element, newTime) {\n const target = element || this.element;\n const context = new AnimationTimelineContext(this._driver, target, this.subInstructions, this._enterClassName, this._leaveClassName, this.errors, this.timelines, this.currentTimeline.fork(target, newTime || 0));\n context.previousNode = this.previousNode;\n context.currentAnimateTimings = this.currentAnimateTimings;\n context.options = this._copyOptions();\n context.updateOptions(options);\n context.currentQueryIndex = this.currentQueryIndex;\n context.currentQueryTotal = this.currentQueryTotal;\n context.parentContext = this;\n this.subContextCount++;\n return context;\n }\n transformIntoNewTimeline(newTime) {\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.currentTimeline = this.currentTimeline.fork(this.element, newTime);\n this.timelines.push(this.currentTimeline);\n return this.currentTimeline;\n }\n appendInstructionToTimeline(instruction, duration, delay) {\n const updatedTimings = {\n duration: duration != null ? duration : instruction.duration,\n delay: this.currentTimeline.currentTime + (delay != null ? delay : 0) + instruction.delay,\n easing: ''\n };\n const builder = new SubTimelineBuilder(this._driver, instruction.element, instruction.keyframes, instruction.preStyleProps, instruction.postStyleProps, updatedTimings, instruction.stretchStartingKeyframe);\n this.timelines.push(builder);\n return updatedTimings;\n }\n incrementTime(time) {\n this.currentTimeline.forwardTime(this.currentTimeline.duration + time);\n }\n delayNextStep(delay) {\n // negative delays are not yet supported\n if (delay > 0) {\n this.currentTimeline.delayNextStep(delay);\n }\n }\n invokeQuery(selector, originalSelector, limit, includeSelf, optional, errors) {\n let results = [];\n if (includeSelf) {\n results.push(this.element);\n }\n if (selector.length > 0) { // only if :self is used then the selector can be empty\n selector = selector.replace(ENTER_TOKEN_REGEX, '.' + this._enterClassName);\n selector = selector.replace(LEAVE_TOKEN_REGEX, '.' + this._leaveClassName);\n const multi = limit != 1;\n let elements = this._driver.query(this.element, selector, multi);\n if (limit !== 0) {\n elements = limit < 0 ? elements.slice(elements.length + limit, elements.length) :\n elements.slice(0, limit);\n }\n results.push(...elements);\n }\n if (!optional && results.length == 0) {\n errors.push(invalidQuery(originalSelector));\n }\n return results;\n }\n}\nclass TimelineBuilder {\n constructor(_driver, element, startTime, _elementTimelineStylesLookup) {\n this._driver = _driver;\n this.element = element;\n this.startTime = startTime;\n this._elementTimelineStylesLookup = _elementTimelineStylesLookup;\n this.duration = 0;\n this._previousKeyframe = {};\n this._currentKeyframe = {};\n this._keyframes = new Map();\n this._styleSummary = {};\n this._pendingStyles = {};\n this._backFill = {};\n this._currentEmptyStepKeyframe = null;\n if (!this._elementTimelineStylesLookup) {\n this._elementTimelineStylesLookup = new Map();\n }\n this._localTimelineStyles = Object.create(this._backFill, {});\n this._globalTimelineStyles = this._elementTimelineStylesLookup.get(element);\n if (!this._globalTimelineStyles) {\n this._globalTimelineStyles = this._localTimelineStyles;\n this._elementTimelineStylesLookup.set(element, this._localTimelineStyles);\n }\n this._loadKeyframe();\n }\n containsAnimation() {\n switch (this._keyframes.size) {\n case 0:\n return false;\n case 1:\n return this.getCurrentStyleProperties().length > 0;\n default:\n return true;\n }\n }\n getCurrentStyleProperties() {\n return Object.keys(this._currentKeyframe);\n }\n get currentTime() {\n return this.startTime + this.duration;\n }\n delayNextStep(delay) {\n // in the event that a style() step is placed right before a stagger()\n // and that style() step is the very first style() value in the animation\n // then we need to make a copy of the keyframe [0, copy, 1] so that the delay\n // properly applies the style() values to work with the stagger...\n const hasPreStyleStep = this._keyframes.size == 1 && Object.keys(this._pendingStyles).length;\n if (this.duration || hasPreStyleStep) {\n this.forwardTime(this.currentTime + delay);\n if (hasPreStyleStep) {\n this.snapshotCurrentStyles();\n }\n }\n else {\n this.startTime += delay;\n }\n }\n fork(element, currentTime) {\n this.applyStylesToKeyframe();\n return new TimelineBuilder(this._driver, element, currentTime || this.currentTime, this._elementTimelineStylesLookup);\n }\n _loadKeyframe() {\n if (this._currentKeyframe) {\n this._previousKeyframe = this._currentKeyframe;\n }\n this._currentKeyframe = this._keyframes.get(this.duration);\n if (!this._currentKeyframe) {\n this._currentKeyframe = Object.create(this._backFill, {});\n this._keyframes.set(this.duration, this._currentKeyframe);\n }\n }\n forwardFrame() {\n this.duration += ONE_FRAME_IN_MILLISECONDS;\n this._loadKeyframe();\n }\n forwardTime(time) {\n this.applyStylesToKeyframe();\n this.duration = time;\n this._loadKeyframe();\n }\n _updateStyle(prop, value) {\n this._localTimelineStyles[prop] = value;\n this._globalTimelineStyles[prop] = value;\n this._styleSummary[prop] = { time: this.currentTime, value };\n }\n allowOnlyTimelineStyles() {\n return this._currentEmptyStepKeyframe !== this._currentKeyframe;\n }\n applyEmptyStep(easing) {\n if (easing) {\n this._previousKeyframe['easing'] = easing;\n }\n // special case for animate(duration):\n // all missing styles are filled with a `*` value then\n // if any destination styles are filled in later on the same\n // keyframe then they will override the overridden styles\n // We use `_globalTimelineStyles` here because there may be\n // styles in previous keyframes that are not present in this timeline\n Object.keys(this._globalTimelineStyles).forEach(prop => {\n this._backFill[prop] = this._globalTimelineStyles[prop] || AUTO_STYLE;\n this._currentKeyframe[prop] = AUTO_STYLE;\n });\n this._currentEmptyStepKeyframe = this._currentKeyframe;\n }\n setStyles(input, easing, errors, options) {\n if (easing) {\n this._previousKeyframe['easing'] = easing;\n }\n const params = (options && options.params) || {};\n const styles = flattenStyles(input, this._globalTimelineStyles);\n Object.keys(styles).forEach(prop => {\n const val = interpolateParams(styles[prop], params, errors);\n this._pendingStyles[prop] = val;\n if (!this._localTimelineStyles.hasOwnProperty(prop)) {\n this._backFill[prop] = this._globalTimelineStyles.hasOwnProperty(prop) ?\n this._globalTimelineStyles[prop] :\n AUTO_STYLE;\n }\n this._updateStyle(prop, val);\n });\n }\n applyStylesToKeyframe() {\n const styles = this._pendingStyles;\n const props = Object.keys(styles);\n if (props.length == 0)\n return;\n this._pendingStyles = {};\n props.forEach(prop => {\n const val = styles[prop];\n this._currentKeyframe[prop] = val;\n });\n Object.keys(this._localTimelineStyles).forEach(prop => {\n if (!this._currentKeyframe.hasOwnProperty(prop)) {\n this._currentKeyframe[prop] = this._localTimelineStyles[prop];\n }\n });\n }\n snapshotCurrentStyles() {\n Object.keys(this._localTimelineStyles).forEach(prop => {\n const val = this._localTimelineStyles[prop];\n this._pendingStyles[prop] = val;\n this._updateStyle(prop, val);\n });\n }\n getFinalKeyframe() {\n return this._keyframes.get(this.duration);\n }\n get properties() {\n const properties = [];\n for (let prop in this._currentKeyframe) {\n properties.push(prop);\n }\n return properties;\n }\n mergeTimelineCollectedStyles(timeline) {\n Object.keys(timeline._styleSummary).forEach(prop => {\n const details0 = this._styleSummary[prop];\n const details1 = timeline._styleSummary[prop];\n if (!details0 || details1.time > details0.time) {\n this._updateStyle(prop, details1.value);\n }\n });\n }\n buildKeyframes() {\n this.applyStylesToKeyframe();\n const preStyleProps = new Set();\n const postStyleProps = new Set();\n const isEmpty = this._keyframes.size === 1 && this.duration === 0;\n let finalKeyframes = [];\n this._keyframes.forEach((keyframe, time) => {\n const finalKeyframe = copyStyles(keyframe, true);\n Object.keys(finalKeyframe).forEach(prop => {\n const value = finalKeyframe[prop];\n if (value == ɵPRE_STYLE) {\n preStyleProps.add(prop);\n }\n else if (value == AUTO_STYLE) {\n postStyleProps.add(prop);\n }\n });\n if (!isEmpty) {\n finalKeyframe['offset'] = time / this.duration;\n }\n finalKeyframes.push(finalKeyframe);\n });\n const preProps = preStyleProps.size ? iteratorToArray(preStyleProps.values()) : [];\n const postProps = postStyleProps.size ? iteratorToArray(postStyleProps.values()) : [];\n // special case for a 0-second animation (which is designed just to place styles onscreen)\n if (isEmpty) {\n const kf0 = finalKeyframes[0];\n const kf1 = copyObj(kf0);\n kf0['offset'] = 0;\n kf1['offset'] = 1;\n finalKeyframes = [kf0, kf1];\n }\n return createTimelineInstruction(this.element, finalKeyframes, preProps, postProps, this.duration, this.startTime, this.easing, false);\n }\n}\nclass SubTimelineBuilder extends TimelineBuilder {\n constructor(driver, element, keyframes, preStyleProps, postStyleProps, timings, _stretchStartingKeyframe = false) {\n super(driver, element, timings.delay);\n this.keyframes = keyframes;\n this.preStyleProps = preStyleProps;\n this.postStyleProps = postStyleProps;\n this._stretchStartingKeyframe = _stretchStartingKeyframe;\n this.timings = { duration: timings.duration, delay: timings.delay, easing: timings.easing };\n }\n containsAnimation() {\n return this.keyframes.length > 1;\n }\n buildKeyframes() {\n let keyframes = this.keyframes;\n let { delay, duration, easing } = this.timings;\n if (this._stretchStartingKeyframe && delay) {\n const newKeyframes = [];\n const totalTime = duration + delay;\n const startingGap = delay / totalTime;\n // the original starting keyframe now starts once the delay is done\n const newFirstKeyframe = copyStyles(keyframes[0], false);\n newFirstKeyframe['offset'] = 0;\n newKeyframes.push(newFirstKeyframe);\n const oldFirstKeyframe = copyStyles(keyframes[0], false);\n oldFirstKeyframe['offset'] = roundOffset(startingGap);\n newKeyframes.push(oldFirstKeyframe);\n /*\n When the keyframe is stretched then it means that the delay before the animation\n starts is gone. Instead the first keyframe is placed at the start of the animation\n and it is then copied to where it starts when the original delay is over. This basically\n means nothing animates during that delay, but the styles are still rendered. For this\n to work the original offset values that exist in the original keyframes must be \"warped\"\n so that they can take the new keyframe + delay into account.\n \n delay=1000, duration=1000, keyframes = 0 .5 1\n \n turns into\n \n delay=0, duration=2000, keyframes = 0 .33 .66 1\n */\n // offsets between 1 ... n -1 are all warped by the keyframe stretch\n const limit = keyframes.length - 1;\n for (let i = 1; i <= limit; i++) {\n let kf = copyStyles(keyframes[i], false);\n const oldOffset = kf['offset'];\n const timeAtKeyframe = delay + oldOffset * duration;\n kf['offset'] = roundOffset(timeAtKeyframe / totalTime);\n newKeyframes.push(kf);\n }\n // the new starting keyframe should be added at the start\n duration = totalTime;\n delay = 0;\n easing = '';\n keyframes = newKeyframes;\n }\n return createTimelineInstruction(this.element, keyframes, this.preStyleProps, this.postStyleProps, duration, delay, easing, true);\n }\n}\nfunction roundOffset(offset, decimalPoints = 3) {\n const mult = Math.pow(10, decimalPoints - 1);\n return Math.round(offset * mult) / mult;\n}\nfunction flattenStyles(input, allStyles) {\n const styles = {};\n let allProperties;\n input.forEach(token => {\n if (token === '*') {\n allProperties = allProperties || Object.keys(allStyles);\n allProperties.forEach(prop => {\n styles[prop] = AUTO_STYLE;\n });\n }\n else {\n copyStyles(token, false, styles);\n }\n });\n return styles;\n}\n\nclass Animation {\n constructor(_driver, input) {\n this._driver = _driver;\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(_driver, input, errors, warnings);\n if (errors.length) {\n throw validationFailed(errors);\n }\n if (warnings.length) {\n warnValidation(warnings);\n }\n this._animationAst = ast;\n }\n buildTimelines(element, startingStyles, destinationStyles, options, subInstructions) {\n const start = Array.isArray(startingStyles) ? normalizeStyles(startingStyles) :\n startingStyles;\n const dest = Array.isArray(destinationStyles) ? normalizeStyles(destinationStyles) :\n destinationStyles;\n const errors = [];\n subInstructions = subInstructions || new ElementInstructionMap();\n const result = buildAnimationTimelines(this._driver, element, this._animationAst, ENTER_CLASSNAME, LEAVE_CLASSNAME, start, dest, options, subInstructions, errors);\n if (errors.length) {\n throw buildingFailed(errors);\n }\n return result;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @publicApi\n */\nclass AnimationStyleNormalizer {\n}\n/**\n * @publicApi\n */\nclass NoopAnimationStyleNormalizer {\n normalizePropertyName(propertyName, errors) {\n return propertyName;\n }\n normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {\n return value;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass WebAnimationsStyleNormalizer extends AnimationStyleNormalizer {\n normalizePropertyName(propertyName, errors) {\n return dashCaseToCamelCase(propertyName);\n }\n normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {\n let unit = '';\n const strVal = value.toString().trim();\n if (DIMENSIONAL_PROP_MAP[normalizedProperty] && value !== 0 && value !== '0') {\n if (typeof value === 'number') {\n unit = 'px';\n }\n else {\n const valAndSuffixMatch = value.match(/^[+-]?[\\d\\.]+([a-z]*)$/);\n if (valAndSuffixMatch && valAndSuffixMatch[1].length == 0) {\n errors.push(invalidCssUnitValue(userProvidedProperty, value));\n }\n }\n }\n return strVal + unit;\n }\n}\nconst DIMENSIONAL_PROP_MAP = (() => makeBooleanMap('width,height,minWidth,minHeight,maxWidth,maxHeight,left,top,bottom,right,fontSize,outlineWidth,outlineOffset,paddingTop,paddingLeft,paddingBottom,paddingRight,marginTop,marginLeft,marginBottom,marginRight,borderRadius,borderWidth,borderTopWidth,borderLeftWidth,borderRightWidth,borderBottomWidth,textIndent,perspective'\n .split(',')))();\nfunction makeBooleanMap(keys) {\n const map = {};\n keys.forEach(key => map[key] = true);\n return map;\n}\n\nfunction createTransitionInstruction(element, triggerName, fromState, toState, isRemovalTransition, fromStyles, toStyles, timelines, queriedElements, preStyleProps, postStyleProps, totalTime, errors) {\n return {\n type: 0 /* TransitionAnimation */,\n element,\n triggerName,\n isRemovalTransition,\n fromState,\n fromStyles,\n toState,\n toStyles,\n timelines,\n queriedElements,\n preStyleProps,\n postStyleProps,\n totalTime,\n errors\n };\n}\n\nconst EMPTY_OBJECT = {};\nclass AnimationTransitionFactory {\n constructor(_triggerName, ast, _stateStyles) {\n this._triggerName = _triggerName;\n this.ast = ast;\n this._stateStyles = _stateStyles;\n }\n match(currentState, nextState, element, params) {\n return oneOrMoreTransitionsMatch(this.ast.matchers, currentState, nextState, element, params);\n }\n buildStyles(stateName, params, errors) {\n const backupStateStyler = this._stateStyles['*'];\n const stateStyler = this._stateStyles[stateName];\n const backupStyles = backupStateStyler ? backupStateStyler.buildStyles(params, errors) : {};\n return stateStyler ? stateStyler.buildStyles(params, errors) : backupStyles;\n }\n build(driver, element, currentState, nextState, enterClassName, leaveClassName, currentOptions, nextOptions, subInstructions, skipAstBuild) {\n const errors = [];\n const transitionAnimationParams = this.ast.options && this.ast.options.params || EMPTY_OBJECT;\n const currentAnimationParams = currentOptions && currentOptions.params || EMPTY_OBJECT;\n const currentStateStyles = this.buildStyles(currentState, currentAnimationParams, errors);\n const nextAnimationParams = nextOptions && nextOptions.params || EMPTY_OBJECT;\n const nextStateStyles = this.buildStyles(nextState, nextAnimationParams, errors);\n const queriedElements = new Set();\n const preStyleMap = new Map();\n const postStyleMap = new Map();\n const isRemoval = nextState === 'void';\n const animationOptions = { params: Object.assign(Object.assign({}, transitionAnimationParams), nextAnimationParams) };\n const timelines = skipAstBuild ?\n [] :\n buildAnimationTimelines(driver, element, this.ast.animation, enterClassName, leaveClassName, currentStateStyles, nextStateStyles, animationOptions, subInstructions, errors);\n let totalTime = 0;\n timelines.forEach(tl => {\n totalTime = Math.max(tl.duration + tl.delay, totalTime);\n });\n if (errors.length) {\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, [], [], preStyleMap, postStyleMap, totalTime, errors);\n }\n timelines.forEach(tl => {\n const elm = tl.element;\n const preProps = getOrSetAsInMap(preStyleMap, elm, {});\n tl.preStyleProps.forEach(prop => preProps[prop] = true);\n const postProps = getOrSetAsInMap(postStyleMap, elm, {});\n tl.postStyleProps.forEach(prop => postProps[prop] = true);\n if (elm !== element) {\n queriedElements.add(elm);\n }\n });\n const queriedElementsList = iteratorToArray(queriedElements.values());\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, timelines, queriedElementsList, preStyleMap, postStyleMap, totalTime);\n }\n}\nfunction oneOrMoreTransitionsMatch(matchFns, currentState, nextState, element, params) {\n return matchFns.some(fn => fn(currentState, nextState, element, params));\n}\nclass AnimationStateStyles {\n constructor(styles, defaultParams, normalizer) {\n this.styles = styles;\n this.defaultParams = defaultParams;\n this.normalizer = normalizer;\n }\n buildStyles(params, errors) {\n const finalStyles = {};\n const combinedParams = copyObj(this.defaultParams);\n Object.keys(params).forEach(key => {\n const value = params[key];\n if (value != null) {\n combinedParams[key] = value;\n }\n });\n this.styles.styles.forEach(value => {\n if (typeof value !== 'string') {\n const styleObj = value;\n Object.keys(styleObj).forEach(prop => {\n let val = styleObj[prop];\n if (val.length > 1) {\n val = interpolateParams(val, combinedParams, errors);\n }\n const normalizedProp = this.normalizer.normalizePropertyName(prop, errors);\n val = this.normalizer.normalizeStyleValue(prop, normalizedProp, val, errors);\n finalStyles[normalizedProp] = val;\n });\n }\n });\n return finalStyles;\n }\n}\n\nfunction buildTrigger(name, ast, normalizer) {\n return new AnimationTrigger(name, ast, normalizer);\n}\nclass AnimationTrigger {\n constructor(name, ast, _normalizer) {\n this.name = name;\n this.ast = ast;\n this._normalizer = _normalizer;\n this.transitionFactories = [];\n this.states = {};\n ast.states.forEach(ast => {\n const defaultParams = (ast.options && ast.options.params) || {};\n this.states[ast.name] = new AnimationStateStyles(ast.style, defaultParams, _normalizer);\n });\n balanceProperties(this.states, 'true', '1');\n balanceProperties(this.states, 'false', '0');\n ast.transitions.forEach(ast => {\n this.transitionFactories.push(new AnimationTransitionFactory(name, ast, this.states));\n });\n this.fallbackTransition = createFallbackTransition(name, this.states, this._normalizer);\n }\n get containsQueries() {\n return this.ast.queryCount > 0;\n }\n matchTransition(currentState, nextState, element, params) {\n const entry = this.transitionFactories.find(f => f.match(currentState, nextState, element, params));\n return entry || null;\n }\n matchStyles(currentState, params, errors) {\n return this.fallbackTransition.buildStyles(currentState, params, errors);\n }\n}\nfunction createFallbackTransition(triggerName, states, normalizer) {\n const matchers = [(fromState, toState) => true];\n const animation = { type: 2 /* Sequence */, steps: [], options: null };\n const transition = {\n type: 1 /* Transition */,\n animation,\n matchers,\n options: null,\n queryCount: 0,\n depCount: 0\n };\n return new AnimationTransitionFactory(triggerName, transition, states);\n}\nfunction balanceProperties(obj, key1, key2) {\n if (obj.hasOwnProperty(key1)) {\n if (!obj.hasOwnProperty(key2)) {\n obj[key2] = obj[key1];\n }\n }\n else if (obj.hasOwnProperty(key2)) {\n obj[key1] = obj[key2];\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst EMPTY_INSTRUCTION_MAP = new ElementInstructionMap();\nclass TimelineAnimationEngine {\n constructor(bodyNode, _driver, _normalizer) {\n this.bodyNode = bodyNode;\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._animations = {};\n this._playersById = {};\n this.players = [];\n }\n register(id, metadata) {\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(this._driver, metadata, errors, warnings);\n if (errors.length) {\n throw registerFailed(errors);\n }\n else {\n if (warnings.length) {\n warnRegister(warnings);\n }\n this._animations[id] = ast;\n }\n }\n _buildPlayer(i, preStyles, postStyles) {\n const element = i.element;\n const keyframes = normalizeKeyframes(this._driver, this._normalizer, element, i.keyframes, preStyles, postStyles);\n return this._driver.animate(element, keyframes, i.duration, i.delay, i.easing, [], true);\n }\n create(id, element, options = {}) {\n const errors = [];\n const ast = this._animations[id];\n let instructions;\n const autoStylesMap = new Map();\n if (ast) {\n instructions = buildAnimationTimelines(this._driver, element, ast, ENTER_CLASSNAME, LEAVE_CLASSNAME, {}, {}, options, EMPTY_INSTRUCTION_MAP, errors);\n instructions.forEach(inst => {\n const styles = getOrSetAsInMap(autoStylesMap, inst.element, {});\n inst.postStyleProps.forEach(prop => styles[prop] = null);\n });\n }\n else {\n errors.push(missingOrDestroyedAnimation());\n instructions = [];\n }\n if (errors.length) {\n throw createAnimationFailed(errors);\n }\n autoStylesMap.forEach((styles, element) => {\n Object.keys(styles).forEach(prop => {\n styles[prop] = this._driver.computeStyle(element, prop, AUTO_STYLE);\n });\n });\n const players = instructions.map(i => {\n const styles = autoStylesMap.get(i.element);\n return this._buildPlayer(i, {}, styles);\n });\n const player = optimizeGroupPlayer(players);\n this._playersById[id] = player;\n player.onDestroy(() => this.destroy(id));\n this.players.push(player);\n return player;\n }\n destroy(id) {\n const player = this._getPlayer(id);\n player.destroy();\n delete this._playersById[id];\n const index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n }\n _getPlayer(id) {\n const player = this._playersById[id];\n if (!player) {\n throw missingPlayer(id);\n }\n return player;\n }\n listen(id, element, eventName, callback) {\n // triggerName, fromState, toState are all ignored for timeline animations\n const baseEvent = makeAnimationEvent(element, '', '', '');\n listenOnPlayer(this._getPlayer(id), eventName, baseEvent, callback);\n return () => { };\n }\n command(id, element, command, args) {\n if (command == 'register') {\n this.register(id, args[0]);\n return;\n }\n if (command == 'create') {\n const options = (args[0] || {});\n this.create(id, element, options);\n return;\n }\n const player = this._getPlayer(id);\n switch (command) {\n case 'play':\n player.play();\n break;\n case 'pause':\n player.pause();\n break;\n case 'reset':\n player.reset();\n break;\n case 'restart':\n player.restart();\n break;\n case 'finish':\n player.finish();\n break;\n case 'init':\n player.init();\n break;\n case 'setPosition':\n player.setPosition(parseFloat(args[0]));\n break;\n case 'destroy':\n this.destroy(id);\n break;\n }\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst QUEUED_CLASSNAME = 'ng-animate-queued';\nconst QUEUED_SELECTOR = '.ng-animate-queued';\nconst DISABLED_CLASSNAME = 'ng-animate-disabled';\nconst DISABLED_SELECTOR = '.ng-animate-disabled';\nconst STAR_CLASSNAME = 'ng-star-inserted';\nconst STAR_SELECTOR = '.ng-star-inserted';\nconst EMPTY_PLAYER_ARRAY = [];\nconst NULL_REMOVAL_STATE = {\n namespaceId: '',\n setForRemoval: false,\n setForMove: false,\n hasAnimation: false,\n removedBeforeQueried: false\n};\nconst NULL_REMOVED_QUERIED_STATE = {\n namespaceId: '',\n setForMove: false,\n setForRemoval: false,\n hasAnimation: false,\n removedBeforeQueried: true\n};\nconst REMOVAL_FLAG = '__ng_removed';\nclass StateValue {\n constructor(input, namespaceId = '') {\n this.namespaceId = namespaceId;\n const isObj = input && input.hasOwnProperty('value');\n const value = isObj ? input['value'] : input;\n this.value = normalizeTriggerValue(value);\n if (isObj) {\n const options = copyObj(input);\n delete options['value'];\n this.options = options;\n }\n else {\n this.options = {};\n }\n if (!this.options.params) {\n this.options.params = {};\n }\n }\n get params() {\n return this.options.params;\n }\n absorbOptions(options) {\n const newParams = options.params;\n if (newParams) {\n const oldParams = this.options.params;\n Object.keys(newParams).forEach(prop => {\n if (oldParams[prop] == null) {\n oldParams[prop] = newParams[prop];\n }\n });\n }\n }\n}\nconst VOID_VALUE = 'void';\nconst DEFAULT_STATE_VALUE = new StateValue(VOID_VALUE);\nclass AnimationTransitionNamespace {\n constructor(id, hostElement, _engine) {\n this.id = id;\n this.hostElement = hostElement;\n this._engine = _engine;\n this.players = [];\n this._triggers = {};\n this._queue = [];\n this._elementListeners = new Map();\n this._hostClassName = 'ng-tns-' + id;\n addClass(hostElement, this._hostClassName);\n }\n listen(element, name, phase, callback) {\n if (!this._triggers.hasOwnProperty(name)) {\n throw missingTrigger(phase, name);\n }\n if (phase == null || phase.length == 0) {\n throw missingEvent(name);\n }\n if (!isTriggerEventValid(phase)) {\n throw unsupportedTriggerEvent(phase, name);\n }\n const listeners = getOrSetAsInMap(this._elementListeners, element, []);\n const data = { name, phase, callback };\n listeners.push(data);\n const triggersWithStates = getOrSetAsInMap(this._engine.statesByElement, element, {});\n if (!triggersWithStates.hasOwnProperty(name)) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + name);\n triggersWithStates[name] = DEFAULT_STATE_VALUE;\n }\n return () => {\n // the event listener is removed AFTER the flush has occurred such\n // that leave animations callbacks can fire (otherwise if the node\n // is removed in between then the listeners would be deregistered)\n this._engine.afterFlush(() => {\n const index = listeners.indexOf(data);\n if (index >= 0) {\n listeners.splice(index, 1);\n }\n if (!this._triggers[name]) {\n delete triggersWithStates[name];\n }\n });\n };\n }\n register(name, ast) {\n if (this._triggers[name]) {\n // throw\n return false;\n }\n else {\n this._triggers[name] = ast;\n return true;\n }\n }\n _getTrigger(name) {\n const trigger = this._triggers[name];\n if (!trigger) {\n throw unregisteredTrigger(name);\n }\n return trigger;\n }\n trigger(element, triggerName, value, defaultToFallback = true) {\n const trigger = this._getTrigger(triggerName);\n const player = new TransitionAnimationPlayer(this.id, triggerName, element);\n let triggersWithStates = this._engine.statesByElement.get(element);\n if (!triggersWithStates) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + triggerName);\n this._engine.statesByElement.set(element, triggersWithStates = {});\n }\n let fromState = triggersWithStates[triggerName];\n const toState = new StateValue(value, this.id);\n const isObj = value && value.hasOwnProperty('value');\n if (!isObj && fromState) {\n toState.absorbOptions(fromState.options);\n }\n triggersWithStates[triggerName] = toState;\n if (!fromState) {\n fromState = DEFAULT_STATE_VALUE;\n }\n const isRemoval = toState.value === VOID_VALUE;\n // normally this isn't reached by here, however, if an object expression\n // is passed in then it may be a new object each time. Comparing the value\n // is important since that will stay the same despite there being a new object.\n // The removal arc here is special cased because the same element is triggered\n // twice in the event that it contains animations on the outer/inner portions\n // of the host container\n if (!isRemoval && fromState.value === toState.value) {\n // this means that despite the value not changing, some inner params\n // have changed which means that the animation final styles need to be applied\n if (!objEquals(fromState.params, toState.params)) {\n const errors = [];\n const fromStyles = trigger.matchStyles(fromState.value, fromState.params, errors);\n const toStyles = trigger.matchStyles(toState.value, toState.params, errors);\n if (errors.length) {\n this._engine.reportError(errors);\n }\n else {\n this._engine.afterFlush(() => {\n eraseStyles(element, fromStyles);\n setStyles(element, toStyles);\n });\n }\n }\n return;\n }\n const playersOnElement = getOrSetAsInMap(this._engine.playersByElement, element, []);\n playersOnElement.forEach(player => {\n // only remove the player if it is queued on the EXACT same trigger/namespace\n // we only also deal with queued players here because if the animation has\n // started then we want to keep the player alive until the flush happens\n // (which is where the previousPlayers are passed into the new player)\n if (player.namespaceId == this.id && player.triggerName == triggerName && player.queued) {\n player.destroy();\n }\n });\n let transition = trigger.matchTransition(fromState.value, toState.value, element, toState.params);\n let isFallbackTransition = false;\n if (!transition) {\n if (!defaultToFallback)\n return;\n transition = trigger.fallbackTransition;\n isFallbackTransition = true;\n }\n this._engine.totalQueuedPlayers++;\n this._queue.push({ element, triggerName, transition, fromState, toState, player, isFallbackTransition });\n if (!isFallbackTransition) {\n addClass(element, QUEUED_CLASSNAME);\n player.onStart(() => {\n removeClass(element, QUEUED_CLASSNAME);\n });\n }\n player.onDone(() => {\n let index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n const players = this._engine.playersByElement.get(element);\n if (players) {\n let index = players.indexOf(player);\n if (index >= 0) {\n players.splice(index, 1);\n }\n }\n });\n this.players.push(player);\n playersOnElement.push(player);\n return player;\n }\n deregister(name) {\n delete this._triggers[name];\n this._engine.statesByElement.forEach((stateMap, element) => {\n delete stateMap[name];\n });\n this._elementListeners.forEach((listeners, element) => {\n this._elementListeners.set(element, listeners.filter(entry => {\n return entry.name != name;\n }));\n });\n }\n clearElementCache(element) {\n this._engine.statesByElement.delete(element);\n this._elementListeners.delete(element);\n const elementPlayers = this._engine.playersByElement.get(element);\n if (elementPlayers) {\n elementPlayers.forEach(player => player.destroy());\n this._engine.playersByElement.delete(element);\n }\n }\n _signalRemovalForInnerTriggers(rootElement, context) {\n const elements = this._engine.driver.query(rootElement, NG_TRIGGER_SELECTOR, true);\n // emulate a leave animation for all inner nodes within this node.\n // If there are no animations found for any of the nodes then clear the cache\n // for the element.\n elements.forEach(elm => {\n // this means that an inner remove() operation has already kicked off\n // the animation on this element...\n if (elm[REMOVAL_FLAG])\n return;\n const namespaces = this._engine.fetchNamespacesByElement(elm);\n if (namespaces.size) {\n namespaces.forEach(ns => ns.triggerLeaveAnimation(elm, context, false, true));\n }\n else {\n this.clearElementCache(elm);\n }\n });\n // If the child elements were removed along with the parent, their animations might not\n // have completed. Clear all the elements from the cache so we don't end up with a memory leak.\n this._engine.afterFlushAnimationsDone(() => elements.forEach(elm => this.clearElementCache(elm)));\n }\n triggerLeaveAnimation(element, context, destroyAfterComplete, defaultToFallback) {\n const triggerStates = this._engine.statesByElement.get(element);\n const previousTriggersValues = new Map();\n if (triggerStates) {\n const players = [];\n Object.keys(triggerStates).forEach(triggerName => {\n previousTriggersValues.set(triggerName, triggerStates[triggerName].value);\n // this check is here in the event that an element is removed\n // twice (both on the host level and the component level)\n if (this._triggers[triggerName]) {\n const player = this.trigger(element, triggerName, VOID_VALUE, defaultToFallback);\n if (player) {\n players.push(player);\n }\n }\n });\n if (players.length) {\n this._engine.markElementAsRemoved(this.id, element, true, context, previousTriggersValues);\n if (destroyAfterComplete) {\n optimizeGroupPlayer(players).onDone(() => this._engine.processLeaveNode(element));\n }\n return true;\n }\n }\n return false;\n }\n prepareLeaveAnimationListeners(element) {\n const listeners = this._elementListeners.get(element);\n const elementStates = this._engine.statesByElement.get(element);\n // if this statement fails then it means that the element was picked up\n // by an earlier flush (or there are no listeners at all to track the leave).\n if (listeners && elementStates) {\n const visitedTriggers = new Set();\n listeners.forEach(listener => {\n const triggerName = listener.name;\n if (visitedTriggers.has(triggerName))\n return;\n visitedTriggers.add(triggerName);\n const trigger = this._triggers[triggerName];\n const transition = trigger.fallbackTransition;\n const fromState = elementStates[triggerName] || DEFAULT_STATE_VALUE;\n const toState = new StateValue(VOID_VALUE);\n const player = new TransitionAnimationPlayer(this.id, triggerName, element);\n this._engine.totalQueuedPlayers++;\n this._queue.push({\n element,\n triggerName,\n transition,\n fromState,\n toState,\n player,\n isFallbackTransition: true\n });\n });\n }\n }\n removeNode(element, context) {\n const engine = this._engine;\n if (element.childElementCount) {\n this._signalRemovalForInnerTriggers(element, context);\n }\n // this means that a * => VOID animation was detected and kicked off\n if (this.triggerLeaveAnimation(element, context, true))\n return;\n // find the player that is animating and make sure that the\n // removal is delayed until that player has completed\n let containsPotentialParentTransition = false;\n if (engine.totalAnimations) {\n const currentPlayers = engine.players.length ? engine.playersByQueriedElement.get(element) : [];\n // when this `if statement` does not continue forward it means that\n // a previous animation query has selected the current element and\n // is animating it. In this situation want to continue forwards and\n // allow the element to be queued up for animation later.\n if (currentPlayers && currentPlayers.length) {\n containsPotentialParentTransition = true;\n }\n else {\n let parent = element;\n while (parent = parent.parentNode) {\n const triggers = engine.statesByElement.get(parent);\n if (triggers) {\n containsPotentialParentTransition = true;\n break;\n }\n }\n }\n }\n // at this stage we know that the element will either get removed\n // during flush or will be picked up by a parent query. Either way\n // we need to fire the listeners for this element when it DOES get\n // removed (once the query parent animation is done or after flush)\n this.prepareLeaveAnimationListeners(element);\n // whether or not a parent has an animation we need to delay the deferral of the leave\n // operation until we have more information (which we do after flush() has been called)\n if (containsPotentialParentTransition) {\n engine.markElementAsRemoved(this.id, element, false, context);\n }\n else {\n const removalFlag = element[REMOVAL_FLAG];\n if (!removalFlag || removalFlag === NULL_REMOVAL_STATE) {\n // we do this after the flush has occurred such\n // that the callbacks can be fired\n engine.afterFlush(() => this.clearElementCache(element));\n engine.destroyInnerAnimations(element);\n engine._onRemovalComplete(element, context);\n }\n }\n }\n insertNode(element, parent) {\n addClass(element, this._hostClassName);\n }\n drainQueuedTransitions(microtaskId) {\n const instructions = [];\n this._queue.forEach(entry => {\n const player = entry.player;\n if (player.destroyed)\n return;\n const element = entry.element;\n const listeners = this._elementListeners.get(element);\n if (listeners) {\n listeners.forEach((listener) => {\n if (listener.name == entry.triggerName) {\n const baseEvent = makeAnimationEvent(element, entry.triggerName, entry.fromState.value, entry.toState.value);\n baseEvent['_data'] = microtaskId;\n listenOnPlayer(entry.player, listener.phase, baseEvent, listener.callback);\n }\n });\n }\n if (player.markedForDestroy) {\n this._engine.afterFlush(() => {\n // now we can destroy the element properly since the event listeners have\n // been bound to the player\n player.destroy();\n });\n }\n else {\n instructions.push(entry);\n }\n });\n this._queue = [];\n return instructions.sort((a, b) => {\n // if depCount == 0 them move to front\n // otherwise if a contains b then move back\n const d0 = a.transition.ast.depCount;\n const d1 = b.transition.ast.depCount;\n if (d0 == 0 || d1 == 0) {\n return d0 - d1;\n }\n return this._engine.driver.containsElement(a.element, b.element) ? 1 : -1;\n });\n }\n destroy(context) {\n this.players.forEach(p => p.destroy());\n this._signalRemovalForInnerTriggers(this.hostElement, context);\n }\n elementContainsData(element) {\n let containsData = false;\n if (this._elementListeners.has(element))\n containsData = true;\n containsData =\n (this._queue.find(entry => entry.element === element) ? true : false) || containsData;\n return containsData;\n }\n}\nclass TransitionAnimationEngine {\n constructor(bodyNode, driver, _normalizer) {\n this.bodyNode = bodyNode;\n this.driver = driver;\n this._normalizer = _normalizer;\n this.players = [];\n this.newHostElements = new Map();\n this.playersByElement = new Map();\n this.playersByQueriedElement = new Map();\n this.statesByElement = new Map();\n this.disabledNodes = new Set();\n this.totalAnimations = 0;\n this.totalQueuedPlayers = 0;\n this._namespaceLookup = {};\n this._namespaceList = [];\n this._flushFns = [];\n this._whenQuietFns = [];\n this.namespacesByHostElement = new Map();\n this.collectedEnterElements = [];\n this.collectedLeaveElements = [];\n // this method is designed to be overridden by the code that uses this engine\n this.onRemovalComplete = (element, context) => { };\n }\n /** @internal */\n _onRemovalComplete(element, context) {\n this.onRemovalComplete(element, context);\n }\n get queuedPlayers() {\n const players = [];\n this._namespaceList.forEach(ns => {\n ns.players.forEach(player => {\n if (player.queued) {\n players.push(player);\n }\n });\n });\n return players;\n }\n createNamespace(namespaceId, hostElement) {\n const ns = new AnimationTransitionNamespace(namespaceId, hostElement, this);\n if (this.bodyNode && this.driver.containsElement(this.bodyNode, hostElement)) {\n this._balanceNamespaceList(ns, hostElement);\n }\n else {\n // defer this later until flush during when the host element has\n // been inserted so that we know exactly where to place it in\n // the namespace list\n this.newHostElements.set(hostElement, ns);\n // given that this host element is a part of the animation code, it\n // may or may not be inserted by a parent node that is of an\n // animation renderer type. If this happens then we can still have\n // access to this item when we query for :enter nodes. If the parent\n // is a renderer then the set data-structure will normalize the entry\n this.collectEnterElement(hostElement);\n }\n return this._namespaceLookup[namespaceId] = ns;\n }\n _balanceNamespaceList(ns, hostElement) {\n const namespaceList = this._namespaceList;\n const namespacesByHostElement = this.namespacesByHostElement;\n const limit = namespaceList.length - 1;\n if (limit >= 0) {\n let found = false;\n if (this.driver.getParentElement !== undefined) {\n // Fast path for when the driver implements `getParentElement`, which allows us to find the\n // closest ancestor with an existing namespace that we can then insert `ns` after, without\n // having to inspect all existing namespaces.\n let ancestor = this.driver.getParentElement(hostElement);\n while (ancestor) {\n const ancestorNs = namespacesByHostElement.get(ancestor);\n if (ancestorNs) {\n // An animation namespace has been registered for this ancestor, so we insert `ns`\n // right after it to establish top-down ordering of animation namespaces.\n const index = namespaceList.indexOf(ancestorNs);\n namespaceList.splice(index + 1, 0, ns);\n found = true;\n break;\n }\n ancestor = this.driver.getParentElement(ancestor);\n }\n }\n else {\n // Slow path for backwards compatibility if the driver does not implement\n // `getParentElement`, to be removed once `getParentElement` is a required method.\n for (let i = limit; i >= 0; i--) {\n const nextNamespace = namespaceList[i];\n if (this.driver.containsElement(nextNamespace.hostElement, hostElement)) {\n namespaceList.splice(i + 1, 0, ns);\n found = true;\n break;\n }\n }\n }\n if (!found) {\n // No namespace exists that is an ancestor of `ns`, so `ns` is inserted at the front to\n // ensure that any existing descendants are ordered after `ns`, retaining the desired\n // top-down ordering.\n namespaceList.unshift(ns);\n }\n }\n else {\n namespaceList.push(ns);\n }\n namespacesByHostElement.set(hostElement, ns);\n return ns;\n }\n register(namespaceId, hostElement) {\n let ns = this._namespaceLookup[namespaceId];\n if (!ns) {\n ns = this.createNamespace(namespaceId, hostElement);\n }\n return ns;\n }\n registerTrigger(namespaceId, name, trigger) {\n let ns = this._namespaceLookup[namespaceId];\n if (ns && ns.register(name, trigger)) {\n this.totalAnimations++;\n }\n }\n destroy(namespaceId, context) {\n if (!namespaceId)\n return;\n const ns = this._fetchNamespace(namespaceId);\n this.afterFlush(() => {\n this.namespacesByHostElement.delete(ns.hostElement);\n delete this._namespaceLookup[namespaceId];\n const index = this._namespaceList.indexOf(ns);\n if (index >= 0) {\n this._namespaceList.splice(index, 1);\n }\n });\n this.afterFlushAnimationsDone(() => ns.destroy(context));\n }\n _fetchNamespace(id) {\n return this._namespaceLookup[id];\n }\n fetchNamespacesByElement(element) {\n // normally there should only be one namespace per element, however\n // if @triggers are placed on both the component element and then\n // its host element (within the component code) then there will be\n // two namespaces returned. We use a set here to simply deduplicate\n // the namespaces in case (for the reason described above) there are multiple triggers\n const namespaces = new Set();\n const elementStates = this.statesByElement.get(element);\n if (elementStates) {\n const keys = Object.keys(elementStates);\n for (let i = 0; i < keys.length; i++) {\n const nsId = elementStates[keys[i]].namespaceId;\n if (nsId) {\n const ns = this._fetchNamespace(nsId);\n if (ns) {\n namespaces.add(ns);\n }\n }\n }\n }\n return namespaces;\n }\n trigger(namespaceId, element, name, value) {\n if (isElementNode(element)) {\n const ns = this._fetchNamespace(namespaceId);\n if (ns) {\n ns.trigger(element, name, value);\n return true;\n }\n }\n return false;\n }\n insertNode(namespaceId, element, parent, insertBefore) {\n if (!isElementNode(element))\n return;\n // special case for when an element is removed and reinserted (move operation)\n // when this occurs we do not want to use the element for deletion later\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n details.setForRemoval = false;\n details.setForMove = true;\n const index = this.collectedLeaveElements.indexOf(element);\n if (index >= 0) {\n this.collectedLeaveElements.splice(index, 1);\n }\n }\n // in the event that the namespaceId is blank then the caller\n // code does not contain any animation code in it, but it is\n // just being called so that the node is marked as being inserted\n if (namespaceId) {\n const ns = this._fetchNamespace(namespaceId);\n // This if-statement is a workaround for router issue #21947.\n // The router sometimes hits a race condition where while a route\n // is being instantiated a new navigation arrives, triggering leave\n // animation of DOM that has not been fully initialized, until this\n // is resolved, we need to handle the scenario when DOM is not in a\n // consistent state during the animation.\n if (ns) {\n ns.insertNode(element, parent);\n }\n }\n // only *directives and host elements are inserted before\n if (insertBefore) {\n this.collectEnterElement(element);\n }\n }\n collectEnterElement(element) {\n this.collectedEnterElements.push(element);\n }\n markElementAsDisabled(element, value) {\n if (value) {\n if (!this.disabledNodes.has(element)) {\n this.disabledNodes.add(element);\n addClass(element, DISABLED_CLASSNAME);\n }\n }\n else if (this.disabledNodes.has(element)) {\n this.disabledNodes.delete(element);\n removeClass(element, DISABLED_CLASSNAME);\n }\n }\n removeNode(namespaceId, element, isHostElement, context) {\n if (isElementNode(element)) {\n const ns = namespaceId ? this._fetchNamespace(namespaceId) : null;\n if (ns) {\n ns.removeNode(element, context);\n }\n else {\n this.markElementAsRemoved(namespaceId, element, false, context);\n }\n if (isHostElement) {\n const hostNS = this.namespacesByHostElement.get(element);\n if (hostNS && hostNS.id !== namespaceId) {\n hostNS.removeNode(element, context);\n }\n }\n }\n else {\n this._onRemovalComplete(element, context);\n }\n }\n markElementAsRemoved(namespaceId, element, hasAnimation, context, previousTriggersValues) {\n this.collectedLeaveElements.push(element);\n element[REMOVAL_FLAG] = {\n namespaceId,\n setForRemoval: context,\n hasAnimation,\n removedBeforeQueried: false,\n previousTriggersValues\n };\n }\n listen(namespaceId, element, name, phase, callback) {\n if (isElementNode(element)) {\n return this._fetchNamespace(namespaceId).listen(element, name, phase, callback);\n }\n return () => { };\n }\n _buildInstruction(entry, subTimelines, enterClassName, leaveClassName, skipBuildAst) {\n return entry.transition.build(this.driver, entry.element, entry.fromState.value, entry.toState.value, enterClassName, leaveClassName, entry.fromState.options, entry.toState.options, subTimelines, skipBuildAst);\n }\n destroyInnerAnimations(containerElement) {\n let elements = this.driver.query(containerElement, NG_TRIGGER_SELECTOR, true);\n elements.forEach(element => this.destroyActiveAnimationsForElement(element));\n if (this.playersByQueriedElement.size == 0)\n return;\n elements = this.driver.query(containerElement, NG_ANIMATING_SELECTOR, true);\n elements.forEach(element => this.finishActiveQueriedAnimationOnElement(element));\n }\n destroyActiveAnimationsForElement(element) {\n const players = this.playersByElement.get(element);\n if (players) {\n players.forEach(player => {\n // special case for when an element is set for destruction, but hasn't started.\n // in this situation we want to delay the destruction until the flush occurs\n // so that any event listeners attached to the player are triggered.\n if (player.queued) {\n player.markedForDestroy = true;\n }\n else {\n player.destroy();\n }\n });\n }\n }\n finishActiveQueriedAnimationOnElement(element) {\n const players = this.playersByQueriedElement.get(element);\n if (players) {\n players.forEach(player => player.finish());\n }\n }\n whenRenderingDone() {\n return new Promise(resolve => {\n if (this.players.length) {\n return optimizeGroupPlayer(this.players).onDone(() => resolve());\n }\n else {\n resolve();\n }\n });\n }\n processLeaveNode(element) {\n var _a;\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n // this will prevent it from removing it twice\n element[REMOVAL_FLAG] = NULL_REMOVAL_STATE;\n if (details.namespaceId) {\n this.destroyInnerAnimations(element);\n const ns = this._fetchNamespace(details.namespaceId);\n if (ns) {\n ns.clearElementCache(element);\n }\n }\n this._onRemovalComplete(element, details.setForRemoval);\n }\n if ((_a = element.classList) === null || _a === void 0 ? void 0 : _a.contains(DISABLED_CLASSNAME)) {\n this.markElementAsDisabled(element, false);\n }\n this.driver.query(element, DISABLED_SELECTOR, true).forEach(node => {\n this.markElementAsDisabled(node, false);\n });\n }\n flush(microtaskId = -1) {\n let players = [];\n if (this.newHostElements.size) {\n this.newHostElements.forEach((ns, element) => this._balanceNamespaceList(ns, element));\n this.newHostElements.clear();\n }\n if (this.totalAnimations && this.collectedEnterElements.length) {\n for (let i = 0; i < this.collectedEnterElements.length; i++) {\n const elm = this.collectedEnterElements[i];\n addClass(elm, STAR_CLASSNAME);\n }\n }\n if (this._namespaceList.length &&\n (this.totalQueuedPlayers || this.collectedLeaveElements.length)) {\n const cleanupFns = [];\n try {\n players = this._flushAnimations(cleanupFns, microtaskId);\n }\n finally {\n for (let i = 0; i < cleanupFns.length; i++) {\n cleanupFns[i]();\n }\n }\n }\n else {\n for (let i = 0; i < this.collectedLeaveElements.length; i++) {\n const element = this.collectedLeaveElements[i];\n this.processLeaveNode(element);\n }\n }\n this.totalQueuedPlayers = 0;\n this.collectedEnterElements.length = 0;\n this.collectedLeaveElements.length = 0;\n this._flushFns.forEach(fn => fn());\n this._flushFns = [];\n if (this._whenQuietFns.length) {\n // we move these over to a variable so that\n // if any new callbacks are registered in another\n // flush they do not populate the existing set\n const quietFns = this._whenQuietFns;\n this._whenQuietFns = [];\n if (players.length) {\n optimizeGroupPlayer(players).onDone(() => {\n quietFns.forEach(fn => fn());\n });\n }\n else {\n quietFns.forEach(fn => fn());\n }\n }\n }\n reportError(errors) {\n throw triggerTransitionsFailed(errors);\n }\n _flushAnimations(cleanupFns, microtaskId) {\n const subTimelines = new ElementInstructionMap();\n const skippedPlayers = [];\n const skippedPlayersMap = new Map();\n const queuedInstructions = [];\n const queriedElements = new Map();\n const allPreStyleElements = new Map();\n const allPostStyleElements = new Map();\n const disabledElementsSet = new Set();\n this.disabledNodes.forEach(node => {\n disabledElementsSet.add(node);\n const nodesThatAreDisabled = this.driver.query(node, QUEUED_SELECTOR, true);\n for (let i = 0; i < nodesThatAreDisabled.length; i++) {\n disabledElementsSet.add(nodesThatAreDisabled[i]);\n }\n });\n const bodyNode = this.bodyNode;\n const allTriggerElements = Array.from(this.statesByElement.keys());\n const enterNodeMap = buildRootMap(allTriggerElements, this.collectedEnterElements);\n // this must occur before the instructions are built below such that\n // the :enter queries match the elements (since the timeline queries\n // are fired during instruction building).\n const enterNodeMapIds = new Map();\n let i = 0;\n enterNodeMap.forEach((nodes, root) => {\n const className = ENTER_CLASSNAME + i++;\n enterNodeMapIds.set(root, className);\n nodes.forEach(node => addClass(node, className));\n });\n const allLeaveNodes = [];\n const mergedLeaveNodes = new Set();\n const leaveNodesWithoutAnimations = new Set();\n for (let i = 0; i < this.collectedLeaveElements.length; i++) {\n const element = this.collectedLeaveElements[i];\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n allLeaveNodes.push(element);\n mergedLeaveNodes.add(element);\n if (details.hasAnimation) {\n this.driver.query(element, STAR_SELECTOR, true).forEach(elm => mergedLeaveNodes.add(elm));\n }\n else {\n leaveNodesWithoutAnimations.add(element);\n }\n }\n }\n const leaveNodeMapIds = new Map();\n const leaveNodeMap = buildRootMap(allTriggerElements, Array.from(mergedLeaveNodes));\n leaveNodeMap.forEach((nodes, root) => {\n const className = LEAVE_CLASSNAME + i++;\n leaveNodeMapIds.set(root, className);\n nodes.forEach(node => addClass(node, className));\n });\n cleanupFns.push(() => {\n enterNodeMap.forEach((nodes, root) => {\n const className = enterNodeMapIds.get(root);\n nodes.forEach(node => removeClass(node, className));\n });\n leaveNodeMap.forEach((nodes, root) => {\n const className = leaveNodeMapIds.get(root);\n nodes.forEach(node => removeClass(node, className));\n });\n allLeaveNodes.forEach(element => {\n this.processLeaveNode(element);\n });\n });\n const allPlayers = [];\n const erroneousTransitions = [];\n for (let i = this._namespaceList.length - 1; i >= 0; i--) {\n const ns = this._namespaceList[i];\n ns.drainQueuedTransitions(microtaskId).forEach(entry => {\n const player = entry.player;\n const element = entry.element;\n allPlayers.push(player);\n if (this.collectedEnterElements.length) {\n const details = element[REMOVAL_FLAG];\n // animations for move operations (elements being removed and reinserted,\n // e.g. when the order of an *ngFor list changes) are currently not supported\n if (details && details.setForMove) {\n if (details.previousTriggersValues &&\n details.previousTriggersValues.has(entry.triggerName)) {\n const previousValue = details.previousTriggersValues.get(entry.triggerName);\n // we need to restore the previous trigger value since the element has\n // only been moved and hasn't actually left the DOM\n const triggersWithStates = this.statesByElement.get(entry.element);\n if (triggersWithStates && triggersWithStates[entry.triggerName]) {\n triggersWithStates[entry.triggerName].value = previousValue;\n }\n }\n player.destroy();\n return;\n }\n }\n const nodeIsOrphaned = !bodyNode || !this.driver.containsElement(bodyNode, element);\n const leaveClassName = leaveNodeMapIds.get(element);\n const enterClassName = enterNodeMapIds.get(element);\n const instruction = this._buildInstruction(entry, subTimelines, enterClassName, leaveClassName, nodeIsOrphaned);\n if (instruction.errors && instruction.errors.length) {\n erroneousTransitions.push(instruction);\n return;\n }\n // even though the element may not be in the DOM, it may still\n // be added at a later point (due to the mechanics of content\n // projection and/or dynamic component insertion) therefore it's\n // important to still style the element.\n if (nodeIsOrphaned) {\n player.onStart(() => eraseStyles(element, instruction.fromStyles));\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n skippedPlayers.push(player);\n return;\n }\n // if an unmatched transition is queued and ready to go\n // then it SHOULD NOT render an animation and cancel the\n // previously running animations.\n if (entry.isFallbackTransition) {\n player.onStart(() => eraseStyles(element, instruction.fromStyles));\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n skippedPlayers.push(player);\n return;\n }\n // this means that if a parent animation uses this animation as a sub-trigger\n // then it will instruct the timeline builder not to add a player delay, but\n // instead stretch the first keyframe gap until the animation starts. This is\n // important in order to prevent extra initialization styles from being\n // required by the user for the animation.\n const timelines = [];\n instruction.timelines.forEach(tl => {\n tl.stretchStartingKeyframe = true;\n if (!this.disabledNodes.has(tl.element)) {\n timelines.push(tl);\n }\n });\n instruction.timelines = timelines;\n subTimelines.append(element, instruction.timelines);\n const tuple = { instruction, player, element };\n queuedInstructions.push(tuple);\n instruction.queriedElements.forEach(element => getOrSetAsInMap(queriedElements, element, []).push(player));\n instruction.preStyleProps.forEach((stringMap, element) => {\n const props = Object.keys(stringMap);\n if (props.length) {\n let setVal = allPreStyleElements.get(element);\n if (!setVal) {\n allPreStyleElements.set(element, setVal = new Set());\n }\n props.forEach(prop => setVal.add(prop));\n }\n });\n instruction.postStyleProps.forEach((stringMap, element) => {\n const props = Object.keys(stringMap);\n let setVal = allPostStyleElements.get(element);\n if (!setVal) {\n allPostStyleElements.set(element, setVal = new Set());\n }\n props.forEach(prop => setVal.add(prop));\n });\n });\n }\n if (erroneousTransitions.length) {\n const errors = [];\n erroneousTransitions.forEach(instruction => {\n errors.push(transitionFailed(instruction.triggerName, instruction.errors));\n });\n allPlayers.forEach(player => player.destroy());\n this.reportError(errors);\n }\n const allPreviousPlayersMap = new Map();\n // this map tells us which element in the DOM tree is contained by\n // which animation. Further down this map will get populated once\n // the players are built and in doing so we can use it to efficiently\n // figure out if a sub player is skipped due to a parent player having priority.\n const animationElementMap = new Map();\n queuedInstructions.forEach(entry => {\n const element = entry.element;\n if (subTimelines.has(element)) {\n animationElementMap.set(element, element);\n this._beforeAnimationBuild(entry.player.namespaceId, entry.instruction, allPreviousPlayersMap);\n }\n });\n skippedPlayers.forEach(player => {\n const element = player.element;\n const previousPlayers = this._getPreviousPlayers(element, false, player.namespaceId, player.triggerName, null);\n previousPlayers.forEach(prevPlayer => {\n getOrSetAsInMap(allPreviousPlayersMap, element, []).push(prevPlayer);\n prevPlayer.destroy();\n });\n });\n // this is a special case for nodes that will be removed either by\n // having their own leave animations or by being queried in a container\n // that will be removed once a parent animation is complete. The idea\n // here is that * styles must be identical to ! styles because of\n // backwards compatibility (* is also filled in by default in many places).\n // Otherwise * styles will return an empty value or \"auto\" since the element\n // passed to getComputedStyle will not be visible (since * === destination)\n const replaceNodes = allLeaveNodes.filter(node => {\n return replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements);\n });\n // POST STAGE: fill the * styles\n const postStylesMap = new Map();\n const allLeaveQueriedNodes = cloakAndComputeStyles(postStylesMap, this.driver, leaveNodesWithoutAnimations, allPostStyleElements, AUTO_STYLE);\n allLeaveQueriedNodes.forEach(node => {\n if (replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements)) {\n replaceNodes.push(node);\n }\n });\n // PRE STAGE: fill the ! styles\n const preStylesMap = new Map();\n enterNodeMap.forEach((nodes, root) => {\n cloakAndComputeStyles(preStylesMap, this.driver, new Set(nodes), allPreStyleElements, ɵPRE_STYLE);\n });\n replaceNodes.forEach(node => {\n const post = postStylesMap.get(node);\n const pre = preStylesMap.get(node);\n postStylesMap.set(node, Object.assign(Object.assign({}, post), pre));\n });\n const rootPlayers = [];\n const subPlayers = [];\n const NO_PARENT_ANIMATION_ELEMENT_DETECTED = {};\n queuedInstructions.forEach(entry => {\n const { element, player, instruction } = entry;\n // this means that it was never consumed by a parent animation which\n // means that it is independent and therefore should be set for animation\n if (subTimelines.has(element)) {\n if (disabledElementsSet.has(element)) {\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n player.disabled = true;\n player.overrideTotalTime(instruction.totalTime);\n skippedPlayers.push(player);\n return;\n }\n // this will flow up the DOM and query the map to figure out\n // if a parent animation has priority over it. In the situation\n // that a parent is detected then it will cancel the loop. If\n // nothing is detected, or it takes a few hops to find a parent,\n // then it will fill in the missing nodes and signal them as having\n // a detected parent (or a NO_PARENT value via a special constant).\n let parentWithAnimation = NO_PARENT_ANIMATION_ELEMENT_DETECTED;\n if (animationElementMap.size > 1) {\n let elm = element;\n const parentsToAdd = [];\n while (elm = elm.parentNode) {\n const detectedParent = animationElementMap.get(elm);\n if (detectedParent) {\n parentWithAnimation = detectedParent;\n break;\n }\n parentsToAdd.push(elm);\n }\n parentsToAdd.forEach(parent => animationElementMap.set(parent, parentWithAnimation));\n }\n const innerPlayer = this._buildAnimation(player.namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap);\n player.setRealPlayer(innerPlayer);\n if (parentWithAnimation === NO_PARENT_ANIMATION_ELEMENT_DETECTED) {\n rootPlayers.push(player);\n }\n else {\n const parentPlayers = this.playersByElement.get(parentWithAnimation);\n if (parentPlayers && parentPlayers.length) {\n player.parentPlayer = optimizeGroupPlayer(parentPlayers);\n }\n skippedPlayers.push(player);\n }\n }\n else {\n eraseStyles(element, instruction.fromStyles);\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n // there still might be a ancestor player animating this\n // element therefore we will still add it as a sub player\n // even if its animation may be disabled\n subPlayers.push(player);\n if (disabledElementsSet.has(element)) {\n skippedPlayers.push(player);\n }\n }\n });\n // find all of the sub players' corresponding inner animation players\n subPlayers.forEach(player => {\n // even if no players are found for a sub animation it\n // will still complete itself after the next tick since it's Noop\n const playersForElement = skippedPlayersMap.get(player.element);\n if (playersForElement && playersForElement.length) {\n const innerPlayer = optimizeGroupPlayer(playersForElement);\n player.setRealPlayer(innerPlayer);\n }\n });\n // the reason why we don't actually play the animation is\n // because all that a skipped player is designed to do is to\n // fire the start/done transition callback events\n skippedPlayers.forEach(player => {\n if (player.parentPlayer) {\n player.syncPlayerEvents(player.parentPlayer);\n }\n else {\n player.destroy();\n }\n });\n // run through all of the queued removals and see if they\n // were picked up by a query. If not then perform the removal\n // operation right away unless a parent animation is ongoing.\n for (let i = 0; i < allLeaveNodes.length; i++) {\n const element = allLeaveNodes[i];\n const details = element[REMOVAL_FLAG];\n removeClass(element, LEAVE_CLASSNAME);\n // this means the element has a removal animation that is being\n // taken care of and therefore the inner elements will hang around\n // until that animation is over (or the parent queried animation)\n if (details && details.hasAnimation)\n continue;\n let players = [];\n // if this element is queried or if it contains queried children\n // then we want for the element not to be removed from the page\n // until the queried animations have finished\n if (queriedElements.size) {\n let queriedPlayerResults = queriedElements.get(element);\n if (queriedPlayerResults && queriedPlayerResults.length) {\n players.push(...queriedPlayerResults);\n }\n let queriedInnerElements = this.driver.query(element, NG_ANIMATING_SELECTOR, true);\n for (let j = 0; j < queriedInnerElements.length; j++) {\n let queriedPlayers = queriedElements.get(queriedInnerElements[j]);\n if (queriedPlayers && queriedPlayers.length) {\n players.push(...queriedPlayers);\n }\n }\n }\n const activePlayers = players.filter(p => !p.destroyed);\n if (activePlayers.length) {\n removeNodesAfterAnimationDone(this, element, activePlayers);\n }\n else {\n this.processLeaveNode(element);\n }\n }\n // this is required so the cleanup method doesn't remove them\n allLeaveNodes.length = 0;\n rootPlayers.forEach(player => {\n this.players.push(player);\n player.onDone(() => {\n player.destroy();\n const index = this.players.indexOf(player);\n this.players.splice(index, 1);\n });\n player.play();\n });\n return rootPlayers;\n }\n elementContainsData(namespaceId, element) {\n let containsData = false;\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval)\n containsData = true;\n if (this.playersByElement.has(element))\n containsData = true;\n if (this.playersByQueriedElement.has(element))\n containsData = true;\n if (this.statesByElement.has(element))\n containsData = true;\n return this._fetchNamespace(namespaceId).elementContainsData(element) || containsData;\n }\n afterFlush(callback) {\n this._flushFns.push(callback);\n }\n afterFlushAnimationsDone(callback) {\n this._whenQuietFns.push(callback);\n }\n _getPreviousPlayers(element, isQueriedElement, namespaceId, triggerName, toStateValue) {\n let players = [];\n if (isQueriedElement) {\n const queriedElementPlayers = this.playersByQueriedElement.get(element);\n if (queriedElementPlayers) {\n players = queriedElementPlayers;\n }\n }\n else {\n const elementPlayers = this.playersByElement.get(element);\n if (elementPlayers) {\n const isRemovalAnimation = !toStateValue || toStateValue == VOID_VALUE;\n elementPlayers.forEach(player => {\n if (player.queued)\n return;\n if (!isRemovalAnimation && player.triggerName != triggerName)\n return;\n players.push(player);\n });\n }\n }\n if (namespaceId || triggerName) {\n players = players.filter(player => {\n if (namespaceId && namespaceId != player.namespaceId)\n return false;\n if (triggerName && triggerName != player.triggerName)\n return false;\n return true;\n });\n }\n return players;\n }\n _beforeAnimationBuild(namespaceId, instruction, allPreviousPlayersMap) {\n const triggerName = instruction.triggerName;\n const rootElement = instruction.element;\n // when a removal animation occurs, ALL previous players are collected\n // and destroyed (even if they are outside of the current namespace)\n const targetNameSpaceId = instruction.isRemovalTransition ? undefined : namespaceId;\n const targetTriggerName = instruction.isRemovalTransition ? undefined : triggerName;\n for (const timelineInstruction of instruction.timelines) {\n const element = timelineInstruction.element;\n const isQueriedElement = element !== rootElement;\n const players = getOrSetAsInMap(allPreviousPlayersMap, element, []);\n const previousPlayers = this._getPreviousPlayers(element, isQueriedElement, targetNameSpaceId, targetTriggerName, instruction.toState);\n previousPlayers.forEach(player => {\n const realPlayer = player.getRealPlayer();\n if (realPlayer.beforeDestroy) {\n realPlayer.beforeDestroy();\n }\n player.destroy();\n players.push(player);\n });\n }\n // this needs to be done so that the PRE/POST styles can be\n // computed properly without interfering with the previous animation\n eraseStyles(rootElement, instruction.fromStyles);\n }\n _buildAnimation(namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap) {\n const triggerName = instruction.triggerName;\n const rootElement = instruction.element;\n // we first run this so that the previous animation player\n // data can be passed into the successive animation players\n const allQueriedPlayers = [];\n const allConsumedElements = new Set();\n const allSubElements = new Set();\n const allNewPlayers = instruction.timelines.map(timelineInstruction => {\n const element = timelineInstruction.element;\n allConsumedElements.add(element);\n // FIXME (matsko): make sure to-be-removed animations are removed properly\n const details = element[REMOVAL_FLAG];\n if (details && details.removedBeforeQueried)\n return new NoopAnimationPlayer(timelineInstruction.duration, timelineInstruction.delay);\n const isQueriedElement = element !== rootElement;\n const previousPlayers = flattenGroupPlayers((allPreviousPlayersMap.get(element) || EMPTY_PLAYER_ARRAY)\n .map(p => p.getRealPlayer()))\n .filter(p => {\n // the `element` is not apart of the AnimationPlayer definition, but\n // Mock/WebAnimations\n // use the element within their implementation. This will be added in Angular5 to\n // AnimationPlayer\n const pp = p;\n return pp.element ? pp.element === element : false;\n });\n const preStyles = preStylesMap.get(element);\n const postStyles = postStylesMap.get(element);\n const keyframes = normalizeKeyframes(this.driver, this._normalizer, element, timelineInstruction.keyframes, preStyles, postStyles);\n const player = this._buildPlayer(timelineInstruction, keyframes, previousPlayers);\n // this means that this particular player belongs to a sub trigger. It is\n // important that we match this player up with the corresponding (@trigger.listener)\n if (timelineInstruction.subTimeline && skippedPlayersMap) {\n allSubElements.add(element);\n }\n if (isQueriedElement) {\n const wrappedPlayer = new TransitionAnimationPlayer(namespaceId, triggerName, element);\n wrappedPlayer.setRealPlayer(player);\n allQueriedPlayers.push(wrappedPlayer);\n }\n return player;\n });\n allQueriedPlayers.forEach(player => {\n getOrSetAsInMap(this.playersByQueriedElement, player.element, []).push(player);\n player.onDone(() => deleteOrUnsetInMap(this.playersByQueriedElement, player.element, player));\n });\n allConsumedElements.forEach(element => addClass(element, NG_ANIMATING_CLASSNAME));\n const player = optimizeGroupPlayer(allNewPlayers);\n player.onDestroy(() => {\n allConsumedElements.forEach(element => removeClass(element, NG_ANIMATING_CLASSNAME));\n setStyles(rootElement, instruction.toStyles);\n });\n // this basically makes all of the callbacks for sub element animations\n // be dependent on the upper players for when they finish\n allSubElements.forEach(element => {\n getOrSetAsInMap(skippedPlayersMap, element, []).push(player);\n });\n return player;\n }\n _buildPlayer(instruction, keyframes, previousPlayers) {\n if (keyframes.length > 0) {\n return this.driver.animate(instruction.element, keyframes, instruction.duration, instruction.delay, instruction.easing, previousPlayers);\n }\n // special case for when an empty transition|definition is provided\n // ... there is no point in rendering an empty animation\n return new NoopAnimationPlayer(instruction.duration, instruction.delay);\n }\n}\nclass TransitionAnimationPlayer {\n constructor(namespaceId, triggerName, element) {\n this.namespaceId = namespaceId;\n this.triggerName = triggerName;\n this.element = element;\n this._player = new NoopAnimationPlayer();\n this._containsRealPlayer = false;\n this._queuedCallbacks = {};\n this.destroyed = false;\n this.markedForDestroy = false;\n this.disabled = false;\n this.queued = true;\n this.totalTime = 0;\n }\n setRealPlayer(player) {\n if (this._containsRealPlayer)\n return;\n this._player = player;\n Object.keys(this._queuedCallbacks).forEach(phase => {\n this._queuedCallbacks[phase].forEach(callback => listenOnPlayer(player, phase, undefined, callback));\n });\n this._queuedCallbacks = {};\n this._containsRealPlayer = true;\n this.overrideTotalTime(player.totalTime);\n this.queued = false;\n }\n getRealPlayer() {\n return this._player;\n }\n overrideTotalTime(totalTime) {\n this.totalTime = totalTime;\n }\n syncPlayerEvents(player) {\n const p = this._player;\n if (p.triggerCallback) {\n player.onStart(() => p.triggerCallback('start'));\n }\n player.onDone(() => this.finish());\n player.onDestroy(() => this.destroy());\n }\n _queueEvent(name, callback) {\n getOrSetAsInMap(this._queuedCallbacks, name, []).push(callback);\n }\n onDone(fn) {\n if (this.queued) {\n this._queueEvent('done', fn);\n }\n this._player.onDone(fn);\n }\n onStart(fn) {\n if (this.queued) {\n this._queueEvent('start', fn);\n }\n this._player.onStart(fn);\n }\n onDestroy(fn) {\n if (this.queued) {\n this._queueEvent('destroy', fn);\n }\n this._player.onDestroy(fn);\n }\n init() {\n this._player.init();\n }\n hasStarted() {\n return this.queued ? false : this._player.hasStarted();\n }\n play() {\n !this.queued && this._player.play();\n }\n pause() {\n !this.queued && this._player.pause();\n }\n restart() {\n !this.queued && this._player.restart();\n }\n finish() {\n this._player.finish();\n }\n destroy() {\n this.destroyed = true;\n this._player.destroy();\n }\n reset() {\n !this.queued && this._player.reset();\n }\n setPosition(p) {\n if (!this.queued) {\n this._player.setPosition(p);\n }\n }\n getPosition() {\n return this.queued ? 0 : this._player.getPosition();\n }\n /** @internal */\n triggerCallback(phaseName) {\n const p = this._player;\n if (p.triggerCallback) {\n p.triggerCallback(phaseName);\n }\n }\n}\nfunction deleteOrUnsetInMap(map, key, value) {\n let currentValues;\n if (map instanceof Map) {\n currentValues = map.get(key);\n if (currentValues) {\n if (currentValues.length) {\n const index = currentValues.indexOf(value);\n currentValues.splice(index, 1);\n }\n if (currentValues.length == 0) {\n map.delete(key);\n }\n }\n }\n else {\n currentValues = map[key];\n if (currentValues) {\n if (currentValues.length) {\n const index = currentValues.indexOf(value);\n currentValues.splice(index, 1);\n }\n if (currentValues.length == 0) {\n delete map[key];\n }\n }\n }\n return currentValues;\n}\nfunction normalizeTriggerValue(value) {\n // we use `!= null` here because it's the most simple\n // way to test against a \"falsy\" value without mixing\n // in empty strings or a zero value. DO NOT OPTIMIZE.\n return value != null ? value : null;\n}\nfunction isElementNode(node) {\n return node && node['nodeType'] === 1;\n}\nfunction isTriggerEventValid(eventName) {\n return eventName == 'start' || eventName == 'done';\n}\nfunction cloakElement(element, value) {\n const oldValue = element.style.display;\n element.style.display = value != null ? value : 'none';\n return oldValue;\n}\nfunction cloakAndComputeStyles(valuesMap, driver, elements, elementPropsMap, defaultStyle) {\n const cloakVals = [];\n elements.forEach(element => cloakVals.push(cloakElement(element)));\n const failedElements = [];\n elementPropsMap.forEach((props, element) => {\n const styles = {};\n props.forEach(prop => {\n const value = styles[prop] = driver.computeStyle(element, prop, defaultStyle);\n // there is no easy way to detect this because a sub element could be removed\n // by a parent animation element being detached.\n if (!value || value.length == 0) {\n element[REMOVAL_FLAG] = NULL_REMOVED_QUERIED_STATE;\n failedElements.push(element);\n }\n });\n valuesMap.set(element, styles);\n });\n // we use a index variable here since Set.forEach(a, i) does not return\n // an index value for the closure (but instead just the value)\n let i = 0;\n elements.forEach(element => cloakElement(element, cloakVals[i++]));\n return failedElements;\n}\n/*\nSince the Angular renderer code will return a collection of inserted\nnodes in all areas of a DOM tree, it's up to this algorithm to figure\nout which nodes are roots for each animation @trigger.\n\nBy placing each inserted node into a Set and traversing upwards, it\nis possible to find the @trigger elements and well any direct *star\ninsertion nodes, if a @trigger root is found then the enter element\nis placed into the Map[@trigger] spot.\n */\nfunction buildRootMap(roots, nodes) {\n const rootMap = new Map();\n roots.forEach(root => rootMap.set(root, []));\n if (nodes.length == 0)\n return rootMap;\n const NULL_NODE = 1;\n const nodeSet = new Set(nodes);\n const localRootMap = new Map();\n function getRoot(node) {\n if (!node)\n return NULL_NODE;\n let root = localRootMap.get(node);\n if (root)\n return root;\n const parent = node.parentNode;\n if (rootMap.has(parent)) { // ngIf inside @trigger\n root = parent;\n }\n else if (nodeSet.has(parent)) { // ngIf inside ngIf\n root = NULL_NODE;\n }\n else { // recurse upwards\n root = getRoot(parent);\n }\n localRootMap.set(node, root);\n return root;\n }\n nodes.forEach(node => {\n const root = getRoot(node);\n if (root !== NULL_NODE) {\n rootMap.get(root).push(node);\n }\n });\n return rootMap;\n}\nfunction addClass(element, className) {\n var _a;\n (_a = element.classList) === null || _a === void 0 ? void 0 : _a.add(className);\n}\nfunction removeClass(element, className) {\n var _a;\n (_a = element.classList) === null || _a === void 0 ? void 0 : _a.remove(className);\n}\nfunction removeNodesAfterAnimationDone(engine, element, players) {\n optimizeGroupPlayer(players).onDone(() => engine.processLeaveNode(element));\n}\nfunction flattenGroupPlayers(players) {\n const finalPlayers = [];\n _flattenGroupPlayersRecur(players, finalPlayers);\n return finalPlayers;\n}\nfunction _flattenGroupPlayersRecur(players, finalPlayers) {\n for (let i = 0; i < players.length; i++) {\n const player = players[i];\n if (player instanceof ɵAnimationGroupPlayer) {\n _flattenGroupPlayersRecur(player.players, finalPlayers);\n }\n else {\n finalPlayers.push(player);\n }\n }\n}\nfunction objEquals(a, b) {\n const k1 = Object.keys(a);\n const k2 = Object.keys(b);\n if (k1.length != k2.length)\n return false;\n for (let i = 0; i < k1.length; i++) {\n const prop = k1[i];\n if (!b.hasOwnProperty(prop) || a[prop] !== b[prop])\n return false;\n }\n return true;\n}\nfunction replacePostStylesAsPre(element, allPreStyleElements, allPostStyleElements) {\n const postEntry = allPostStyleElements.get(element);\n if (!postEntry)\n return false;\n let preEntry = allPreStyleElements.get(element);\n if (preEntry) {\n postEntry.forEach(data => preEntry.add(data));\n }\n else {\n allPreStyleElements.set(element, postEntry);\n }\n allPostStyleElements.delete(element);\n return true;\n}\n\nclass AnimationEngine {\n constructor(bodyNode, _driver, _normalizer) {\n this.bodyNode = bodyNode;\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._triggerCache = {};\n // this method is designed to be overridden by the code that uses this engine\n this.onRemovalComplete = (element, context) => { };\n this._transitionEngine = new TransitionAnimationEngine(bodyNode, _driver, _normalizer);\n this._timelineEngine = new TimelineAnimationEngine(bodyNode, _driver, _normalizer);\n this._transitionEngine.onRemovalComplete = (element, context) => this.onRemovalComplete(element, context);\n }\n registerTrigger(componentId, namespaceId, hostElement, name, metadata) {\n const cacheKey = componentId + '-' + name;\n let trigger = this._triggerCache[cacheKey];\n if (!trigger) {\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(this._driver, metadata, errors, warnings);\n if (errors.length) {\n throw triggerBuildFailed(name, errors);\n }\n if (warnings.length) {\n warnTriggerBuild(name, warnings);\n }\n trigger = buildTrigger(name, ast, this._normalizer);\n this._triggerCache[cacheKey] = trigger;\n }\n this._transitionEngine.registerTrigger(namespaceId, name, trigger);\n }\n register(namespaceId, hostElement) {\n this._transitionEngine.register(namespaceId, hostElement);\n }\n destroy(namespaceId, context) {\n this._transitionEngine.destroy(namespaceId, context);\n }\n onInsert(namespaceId, element, parent, insertBefore) {\n this._transitionEngine.insertNode(namespaceId, element, parent, insertBefore);\n }\n onRemove(namespaceId, element, context, isHostElement) {\n this._transitionEngine.removeNode(namespaceId, element, isHostElement || false, context);\n }\n disableAnimations(element, disable) {\n this._transitionEngine.markElementAsDisabled(element, disable);\n }\n process(namespaceId, element, property, value) {\n if (property.charAt(0) == '@') {\n const [id, action] = parseTimelineCommand(property);\n const args = value;\n this._timelineEngine.command(id, element, action, args);\n }\n else {\n this._transitionEngine.trigger(namespaceId, element, property, value);\n }\n }\n listen(namespaceId, element, eventName, eventPhase, callback) {\n // @@listen\n if (eventName.charAt(0) == '@') {\n const [id, action] = parseTimelineCommand(eventName);\n return this._timelineEngine.listen(id, element, action, callback);\n }\n return this._transitionEngine.listen(namespaceId, element, eventName, eventPhase, callback);\n }\n flush(microtaskId = -1) {\n this._transitionEngine.flush(microtaskId);\n }\n get players() {\n return this._transitionEngine.players\n .concat(this._timelineEngine.players);\n }\n whenRenderingDone() {\n return this._transitionEngine.whenRenderingDone();\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Returns an instance of `SpecialCasedStyles` if and when any special (non animateable) styles are\n * detected.\n *\n * In CSS there exist properties that cannot be animated within a keyframe animation\n * (whether it be via CSS keyframes or web-animations) and the animation implementation\n * will ignore them. This function is designed to detect those special cased styles and\n * return a container that will be executed at the start and end of the animation.\n *\n * @returns an instance of `SpecialCasedStyles` if any special styles are detected otherwise `null`\n */\nfunction packageNonAnimatableStyles(element, styles) {\n let startStyles = null;\n let endStyles = null;\n if (Array.isArray(styles) && styles.length) {\n startStyles = filterNonAnimatableStyles(styles[0]);\n if (styles.length > 1) {\n endStyles = filterNonAnimatableStyles(styles[styles.length - 1]);\n }\n }\n else if (styles) {\n startStyles = filterNonAnimatableStyles(styles);\n }\n return (startStyles || endStyles) ? new SpecialCasedStyles(element, startStyles, endStyles) :\n null;\n}\n/**\n * Designed to be executed during a keyframe-based animation to apply any special-cased styles.\n *\n * When started (when the `start()` method is run) then the provided `startStyles`\n * will be applied. When finished (when the `finish()` method is called) the\n * `endStyles` will be applied as well any any starting styles. Finally when\n * `destroy()` is called then all styles will be removed.\n */\nclass SpecialCasedStyles {\n constructor(_element, _startStyles, _endStyles) {\n this._element = _element;\n this._startStyles = _startStyles;\n this._endStyles = _endStyles;\n this._state = 0 /* Pending */;\n let initialStyles = SpecialCasedStyles.initialStylesByElement.get(_element);\n if (!initialStyles) {\n SpecialCasedStyles.initialStylesByElement.set(_element, initialStyles = {});\n }\n this._initialStyles = initialStyles;\n }\n start() {\n if (this._state < 1 /* Started */) {\n if (this._startStyles) {\n setStyles(this._element, this._startStyles, this._initialStyles);\n }\n this._state = 1 /* Started */;\n }\n }\n finish() {\n this.start();\n if (this._state < 2 /* Finished */) {\n setStyles(this._element, this._initialStyles);\n if (this._endStyles) {\n setStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n this._state = 1 /* Started */;\n }\n }\n destroy() {\n this.finish();\n if (this._state < 3 /* Destroyed */) {\n SpecialCasedStyles.initialStylesByElement.delete(this._element);\n if (this._startStyles) {\n eraseStyles(this._element, this._startStyles);\n this._endStyles = null;\n }\n if (this._endStyles) {\n eraseStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n setStyles(this._element, this._initialStyles);\n this._state = 3 /* Destroyed */;\n }\n }\n}\nSpecialCasedStyles.initialStylesByElement = ( /* @__PURE__ */new WeakMap());\nfunction filterNonAnimatableStyles(styles) {\n let result = null;\n const props = Object.keys(styles);\n for (let i = 0; i < props.length; i++) {\n const prop = props[i];\n if (isNonAnimatableStyle(prop)) {\n result = result || {};\n result[prop] = styles[prop];\n }\n }\n return result;\n}\nfunction isNonAnimatableStyle(prop) {\n return prop === 'display' || prop === 'position';\n}\n\nclass WebAnimationsPlayer {\n constructor(element, keyframes, options, _specialStyles) {\n this.element = element;\n this.keyframes = keyframes;\n this.options = options;\n this._specialStyles = _specialStyles;\n this._onDoneFns = [];\n this._onStartFns = [];\n this._onDestroyFns = [];\n this._initialized = false;\n this._finished = false;\n this._started = false;\n this._destroyed = false;\n this.time = 0;\n this.parentPlayer = null;\n this.currentSnapshot = {};\n this._duration = options['duration'];\n this._delay = options['delay'] || 0;\n this.time = this._duration + this._delay;\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(fn => fn());\n this._onDoneFns = [];\n }\n }\n init() {\n this._buildPlayer();\n this._preparePlayerBeforeStart();\n }\n _buildPlayer() {\n if (this._initialized)\n return;\n this._initialized = true;\n const keyframes = this.keyframes;\n this.domPlayer =\n this._triggerWebAnimation(this.element, keyframes, this.options);\n this._finalKeyframe = keyframes.length ? keyframes[keyframes.length - 1] : {};\n this.domPlayer.addEventListener('finish', () => this._onFinish());\n }\n _preparePlayerBeforeStart() {\n // this is required so that the player doesn't start to animate right away\n if (this._delay) {\n this._resetDomPlayerState();\n }\n else {\n this.domPlayer.pause();\n }\n }\n /** @internal */\n _triggerWebAnimation(element, keyframes, options) {\n // jscompiler doesn't seem to know animate is a native property because it's not fully\n // supported yet across common browsers (we polyfill it for Edge/Safari) [CL #143630929]\n return element['animate'](keyframes, options);\n }\n onStart(fn) {\n this._onStartFns.push(fn);\n }\n onDone(fn) {\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n play() {\n this._buildPlayer();\n if (!this.hasStarted()) {\n this._onStartFns.forEach(fn => fn());\n this._onStartFns = [];\n this._started = true;\n if (this._specialStyles) {\n this._specialStyles.start();\n }\n }\n this.domPlayer.play();\n }\n pause() {\n this.init();\n this.domPlayer.pause();\n }\n finish() {\n this.init();\n if (this._specialStyles) {\n this._specialStyles.finish();\n }\n this._onFinish();\n this.domPlayer.finish();\n }\n reset() {\n this._resetDomPlayerState();\n this._destroyed = false;\n this._finished = false;\n this._started = false;\n }\n _resetDomPlayerState() {\n if (this.domPlayer) {\n this.domPlayer.cancel();\n }\n }\n restart() {\n this.reset();\n this.play();\n }\n hasStarted() {\n return this._started;\n }\n destroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n this._resetDomPlayerState();\n this._onFinish();\n if (this._specialStyles) {\n this._specialStyles.destroy();\n }\n this._onDestroyFns.forEach(fn => fn());\n this._onDestroyFns = [];\n }\n }\n setPosition(p) {\n if (this.domPlayer === undefined) {\n this.init();\n }\n this.domPlayer.currentTime = p * this.time;\n }\n getPosition() {\n return this.domPlayer.currentTime / this.time;\n }\n get totalTime() {\n return this._delay + this._duration;\n }\n beforeDestroy() {\n const styles = {};\n if (this.hasStarted()) {\n // note: this code is invoked only when the `play` function was called prior to this\n // (thus `hasStarted` returns true), this implies that the code that initializes\n // `_finalKeyframe` has also been executed and the non-null assertion can be safely used here\n const finalKeyframe = this._finalKeyframe;\n Object.keys(finalKeyframe).forEach(prop => {\n if (prop != 'offset') {\n styles[prop] = this._finished ? finalKeyframe[prop] : computeStyle(this.element, prop);\n }\n });\n }\n this.currentSnapshot = styles;\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName == 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(fn => fn());\n methods.length = 0;\n }\n}\n\nclass WebAnimationsDriver {\n validateStyleProperty(prop) {\n return validateStyleProperty(prop);\n }\n matchesElement(_element, _selector) {\n // This method is deprecated and no longer in use so we return false.\n return false;\n }\n containsElement(elm1, elm2) {\n return containsElement(elm1, elm2);\n }\n getParentElement(element) {\n return getParentElement(element);\n }\n query(element, selector, multi) {\n return invokeQuery(element, selector, multi);\n }\n computeStyle(element, prop, defaultValue) {\n return window.getComputedStyle(element)[prop];\n }\n animate(element, keyframes, duration, delay, easing, previousPlayers = []) {\n const fill = delay == 0 ? 'both' : 'forwards';\n const playerOptions = { duration, delay, fill };\n // we check for this to avoid having a null|undefined value be present\n // for the easing (which results in an error for certain browsers #9752)\n if (easing) {\n playerOptions['easing'] = easing;\n }\n const previousStyles = {};\n const previousWebAnimationPlayers = previousPlayers.filter(player => player instanceof WebAnimationsPlayer);\n if (allowPreviousPlayerStylesMerge(duration, delay)) {\n previousWebAnimationPlayers.forEach(player => {\n let styles = player.currentSnapshot;\n Object.keys(styles).forEach(prop => previousStyles[prop] = styles[prop]);\n });\n }\n keyframes = keyframes.map(styles => copyStyles(styles, false));\n keyframes = balancePreviousStylesIntoKeyframes(element, keyframes, previousStyles);\n const specialStyles = packageNonAnimatableStyles(element, keyframes);\n return new WebAnimationsPlayer(element, keyframes, playerOptions, specialStyles);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AnimationDriver, Animation as ɵAnimation, AnimationEngine as ɵAnimationEngine, AnimationStyleNormalizer as ɵAnimationStyleNormalizer, NoopAnimationDriver as ɵNoopAnimationDriver, NoopAnimationStyleNormalizer as ɵNoopAnimationStyleNormalizer, WebAnimationsDriver as ɵWebAnimationsDriver, WebAnimationsPlayer as ɵWebAnimationsPlayer, WebAnimationsStyleNormalizer as ɵWebAnimationsStyleNormalizer, allowPreviousPlayerStylesMerge as ɵallowPreviousPlayerStylesMerge, containsElement as ɵcontainsElement, getParentElement as ɵgetParentElement, invokeQuery as ɵinvokeQuery, validateStyleProperty as ɵvalidateStyleProperty };\n","import { DOCUMENT } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, Inject, QueryList, Directive, Input, InjectionToken, Optional, EventEmitter, Output, NgModule } from '@angular/core';\nimport * as i1 from '@angular/cdk/platform';\nimport { _getFocusedElementPierceShadowDom, normalizePassiveListenerOptions, _getEventTarget, _getShadowRoot } from '@angular/cdk/platform';\nimport { Subject, Subscription, BehaviorSubject, of } from 'rxjs';\nimport { hasModifierKey, A, Z, ZERO, NINE, END, HOME, LEFT_ARROW, RIGHT_ARROW, UP_ARROW, DOWN_ARROW, TAB, ALT, CONTROL, MAC_META, META, SHIFT } from '@angular/cdk/keycodes';\nimport { tap, debounceTime, filter, map, take, skip, distinctUntilChanged, takeUntil } from 'rxjs/operators';\nimport { coerceBooleanProperty, coerceElement } from '@angular/cdk/coercion';\nimport * as i1$1 from '@angular/cdk/observers';\nimport { ObserversModule } from '@angular/cdk/observers';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** IDs are delimited by an empty space, as per the spec. */\nconst ID_DELIMITER = ' ';\n/**\n * Adds the given ID to the specified ARIA attribute on an element.\n * Used for attributes such as aria-labelledby, aria-owns, etc.\n */\nfunction addAriaReferencedId(el, attr, id) {\n const ids = getAriaReferenceIds(el, attr);\n if (ids.some(existingId => existingId.trim() == id.trim())) {\n return;\n }\n ids.push(id.trim());\n el.setAttribute(attr, ids.join(ID_DELIMITER));\n}\n/**\n * Removes the given ID from the specified ARIA attribute on an element.\n * Used for attributes such as aria-labelledby, aria-owns, etc.\n */\nfunction removeAriaReferencedId(el, attr, id) {\n const ids = getAriaReferenceIds(el, attr);\n const filteredIds = ids.filter(val => val != id.trim());\n if (filteredIds.length) {\n el.setAttribute(attr, filteredIds.join(ID_DELIMITER));\n }\n else {\n el.removeAttribute(attr);\n }\n}\n/**\n * Gets the list of IDs referenced by the given ARIA attribute on an element.\n * Used for attributes such as aria-labelledby, aria-owns, etc.\n */\nfunction getAriaReferenceIds(el, attr) {\n // Get string array of all individual ids (whitespace delimited) in the attribute value\n return (el.getAttribute(attr) || '').match(/\\S+/g) || [];\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * ID used for the body container where all messages are appended.\n * @deprecated No longer being used. To be removed.\n * @breaking-change 14.0.0\n */\nconst MESSAGES_CONTAINER_ID = 'cdk-describedby-message-container';\n/**\n * ID prefix used for each created message element.\n * @deprecated To be turned into a private variable.\n * @breaking-change 14.0.0\n */\nconst CDK_DESCRIBEDBY_ID_PREFIX = 'cdk-describedby-message';\n/**\n * Attribute given to each host element that is described by a message element.\n * @deprecated To be turned into a private variable.\n * @breaking-change 14.0.0\n */\nconst CDK_DESCRIBEDBY_HOST_ATTRIBUTE = 'cdk-describedby-host';\n/** Global incremental identifier for each registered message element. */\nlet nextId = 0;\n/**\n * Utility that creates visually hidden elements with a message content. Useful for elements that\n * want to use aria-describedby to further describe themselves without adding additional visual\n * content.\n */\nclass AriaDescriber {\n constructor(_document, \n /**\n * @deprecated To be turned into a required parameter.\n * @breaking-change 14.0.0\n */\n _platform) {\n this._platform = _platform;\n /** Map of all registered message elements that have been placed into the document. */\n this._messageRegistry = new Map();\n /** Container for all registered messages. */\n this._messagesContainer = null;\n /** Unique ID for the service. */\n this._id = `${nextId++}`;\n this._document = _document;\n }\n describe(hostElement, message, role) {\n if (!this._canBeDescribed(hostElement, message)) {\n return;\n }\n const key = getKey(message, role);\n if (typeof message !== 'string') {\n // We need to ensure that the element has an ID.\n setMessageId(message);\n this._messageRegistry.set(key, { messageElement: message, referenceCount: 0 });\n }\n else if (!this._messageRegistry.has(key)) {\n this._createMessageElement(message, role);\n }\n if (!this._isElementDescribedByMessage(hostElement, key)) {\n this._addMessageReference(hostElement, key);\n }\n }\n removeDescription(hostElement, message, role) {\n var _a;\n if (!message || !this._isElementNode(hostElement)) {\n return;\n }\n const key = getKey(message, role);\n if (this._isElementDescribedByMessage(hostElement, key)) {\n this._removeMessageReference(hostElement, key);\n }\n // If the message is a string, it means that it's one that we created for the\n // consumer so we can remove it safely, otherwise we should leave it in place.\n if (typeof message === 'string') {\n const registeredMessage = this._messageRegistry.get(key);\n if (registeredMessage && registeredMessage.referenceCount === 0) {\n this._deleteMessageElement(key);\n }\n }\n if (((_a = this._messagesContainer) === null || _a === void 0 ? void 0 : _a.childNodes.length) === 0) {\n this._messagesContainer.remove();\n this._messagesContainer = null;\n }\n }\n /** Unregisters all created message elements and removes the message container. */\n ngOnDestroy() {\n var _a;\n const describedElements = this._document.querySelectorAll(`[${CDK_DESCRIBEDBY_HOST_ATTRIBUTE}=\"${this._id}\"]`);\n for (let i = 0; i < describedElements.length; i++) {\n this._removeCdkDescribedByReferenceIds(describedElements[i]);\n describedElements[i].removeAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE);\n }\n (_a = this._messagesContainer) === null || _a === void 0 ? void 0 : _a.remove();\n this._messagesContainer = null;\n this._messageRegistry.clear();\n }\n /**\n * Creates a new element in the visually hidden message container element with the message\n * as its content and adds it to the message registry.\n */\n _createMessageElement(message, role) {\n const messageElement = this._document.createElement('div');\n setMessageId(messageElement);\n messageElement.textContent = message;\n if (role) {\n messageElement.setAttribute('role', role);\n }\n this._createMessagesContainer();\n this._messagesContainer.appendChild(messageElement);\n this._messageRegistry.set(getKey(message, role), { messageElement, referenceCount: 0 });\n }\n /** Deletes the message element from the global messages container. */\n _deleteMessageElement(key) {\n var _a, _b;\n (_b = (_a = this._messageRegistry.get(key)) === null || _a === void 0 ? void 0 : _a.messageElement) === null || _b === void 0 ? void 0 : _b.remove();\n this._messageRegistry.delete(key);\n }\n /** Creates the global container for all aria-describedby messages. */\n _createMessagesContainer() {\n if (this._messagesContainer) {\n return;\n }\n const containerClassName = 'cdk-describedby-message-container';\n const serverContainers = this._document.querySelectorAll(`.${containerClassName}[platform=\"server\"]`);\n for (let i = 0; i < serverContainers.length; i++) {\n // When going from the server to the client, we may end up in a situation where there's\n // already a container on the page, but we don't have a reference to it. Clear the\n // old container so we don't get duplicates. Doing this, instead of emptying the previous\n // container, should be slightly faster.\n serverContainers[i].remove();\n }\n const messagesContainer = this._document.createElement('div');\n // We add `visibility: hidden` in order to prevent text in this container from\n // being searchable by the browser's Ctrl + F functionality.\n // Screen-readers will still read the description for elements with aria-describedby even\n // when the description element is not visible.\n messagesContainer.style.visibility = 'hidden';\n // Even though we use `visibility: hidden`, we still apply `cdk-visually-hidden` so that\n // the description element doesn't impact page layout.\n messagesContainer.classList.add(containerClassName);\n messagesContainer.classList.add('cdk-visually-hidden');\n // @breaking-change 14.0.0 Remove null check for `_platform`.\n if (this._platform && !this._platform.isBrowser) {\n messagesContainer.setAttribute('platform', 'server');\n }\n this._document.body.appendChild(messagesContainer);\n this._messagesContainer = messagesContainer;\n }\n /** Removes all cdk-describedby messages that are hosted through the element. */\n _removeCdkDescribedByReferenceIds(element) {\n // Remove all aria-describedby reference IDs that are prefixed by CDK_DESCRIBEDBY_ID_PREFIX\n const originalReferenceIds = getAriaReferenceIds(element, 'aria-describedby').filter(id => id.indexOf(CDK_DESCRIBEDBY_ID_PREFIX) != 0);\n element.setAttribute('aria-describedby', originalReferenceIds.join(' '));\n }\n /**\n * Adds a message reference to the element using aria-describedby and increments the registered\n * message's reference count.\n */\n _addMessageReference(element, key) {\n const registeredMessage = this._messageRegistry.get(key);\n // Add the aria-describedby reference and set the\n // describedby_host attribute to mark the element.\n addAriaReferencedId(element, 'aria-describedby', registeredMessage.messageElement.id);\n element.setAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE, this._id);\n registeredMessage.referenceCount++;\n }\n /**\n * Removes a message reference from the element using aria-describedby\n * and decrements the registered message's reference count.\n */\n _removeMessageReference(element, key) {\n const registeredMessage = this._messageRegistry.get(key);\n registeredMessage.referenceCount--;\n removeAriaReferencedId(element, 'aria-describedby', registeredMessage.messageElement.id);\n element.removeAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE);\n }\n /** Returns true if the element has been described by the provided message ID. */\n _isElementDescribedByMessage(element, key) {\n const referenceIds = getAriaReferenceIds(element, 'aria-describedby');\n const registeredMessage = this._messageRegistry.get(key);\n const messageId = registeredMessage && registeredMessage.messageElement.id;\n return !!messageId && referenceIds.indexOf(messageId) != -1;\n }\n /** Determines whether a message can be described on a particular element. */\n _canBeDescribed(element, message) {\n if (!this._isElementNode(element)) {\n return false;\n }\n if (message && typeof message === 'object') {\n // We'd have to make some assumptions about the description element's text, if the consumer\n // passed in an element. Assume that if an element is passed in, the consumer has verified\n // that it can be used as a description.\n return true;\n }\n const trimmedMessage = message == null ? '' : `${message}`.trim();\n const ariaLabel = element.getAttribute('aria-label');\n // We shouldn't set descriptions if they're exactly the same as the `aria-label` of the\n // element, because screen readers will end up reading out the same text twice in a row.\n return trimmedMessage ? !ariaLabel || ariaLabel.trim() !== trimmedMessage : false;\n }\n /** Checks whether a node is an Element node. */\n _isElementNode(element) {\n return element.nodeType === this._document.ELEMENT_NODE;\n }\n}\nAriaDescriber.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: AriaDescriber, deps: [{ token: DOCUMENT }, { token: i1.Platform }], target: i0.ɵɵFactoryTarget.Injectable });\nAriaDescriber.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: AriaDescriber, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: AriaDescriber, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i1.Platform }];\n } });\n/** Gets a key that can be used to look messages up in the registry. */\nfunction getKey(message, role) {\n return typeof message === 'string' ? `${role || ''}/${message}` : message;\n}\n/** Assigns a unique ID to an element, if it doesn't have one already. */\nfunction setMessageId(element) {\n if (!element.id) {\n element.id = `${CDK_DESCRIBEDBY_ID_PREFIX}-${nextId++}`;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * This class manages keyboard events for selectable lists. If you pass it a query list\n * of items, it will set the active item correctly when arrow events occur.\n */\nclass ListKeyManager {\n constructor(_items) {\n this._items = _items;\n this._activeItemIndex = -1;\n this._activeItem = null;\n this._wrap = false;\n this._letterKeyStream = new Subject();\n this._typeaheadSubscription = Subscription.EMPTY;\n this._vertical = true;\n this._allowedModifierKeys = [];\n this._homeAndEnd = false;\n /**\n * Predicate function that can be used to check whether an item should be skipped\n * by the key manager. By default, disabled items are skipped.\n */\n this._skipPredicateFn = (item) => item.disabled;\n // Buffer for the letters that the user has pressed when the typeahead option is turned on.\n this._pressedLetters = [];\n /**\n * Stream that emits any time the TAB key is pressed, so components can react\n * when focus is shifted off of the list.\n */\n this.tabOut = new Subject();\n /** Stream that emits whenever the active item of the list manager changes. */\n this.change = new Subject();\n // We allow for the items to be an array because, in some cases, the consumer may\n // not have access to a QueryList of the items they want to manage (e.g. when the\n // items aren't being collected via `ViewChildren` or `ContentChildren`).\n if (_items instanceof QueryList) {\n _items.changes.subscribe((newItems) => {\n if (this._activeItem) {\n const itemArray = newItems.toArray();\n const newIndex = itemArray.indexOf(this._activeItem);\n if (newIndex > -1 && newIndex !== this._activeItemIndex) {\n this._activeItemIndex = newIndex;\n }\n }\n });\n }\n }\n /**\n * Sets the predicate function that determines which items should be skipped by the\n * list key manager.\n * @param predicate Function that determines whether the given item should be skipped.\n */\n skipPredicate(predicate) {\n this._skipPredicateFn = predicate;\n return this;\n }\n /**\n * Configures wrapping mode, which determines whether the active item will wrap to\n * the other end of list when there are no more items in the given direction.\n * @param shouldWrap Whether the list should wrap when reaching the end.\n */\n withWrap(shouldWrap = true) {\n this._wrap = shouldWrap;\n return this;\n }\n /**\n * Configures whether the key manager should be able to move the selection vertically.\n * @param enabled Whether vertical selection should be enabled.\n */\n withVerticalOrientation(enabled = true) {\n this._vertical = enabled;\n return this;\n }\n /**\n * Configures the key manager to move the selection horizontally.\n * Passing in `null` will disable horizontal movement.\n * @param direction Direction in which the selection can be moved.\n */\n withHorizontalOrientation(direction) {\n this._horizontal = direction;\n return this;\n }\n /**\n * Modifier keys which are allowed to be held down and whose default actions will be prevented\n * as the user is pressing the arrow keys. Defaults to not allowing any modifier keys.\n */\n withAllowedModifierKeys(keys) {\n this._allowedModifierKeys = keys;\n return this;\n }\n /**\n * Turns on typeahead mode which allows users to set the active item by typing.\n * @param debounceInterval Time to wait after the last keystroke before setting the active item.\n */\n withTypeAhead(debounceInterval = 200) {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) &&\n this._items.length &&\n this._items.some(item => typeof item.getLabel !== 'function')) {\n throw Error('ListKeyManager items in typeahead mode must implement the `getLabel` method.');\n }\n this._typeaheadSubscription.unsubscribe();\n // Debounce the presses of non-navigational keys, collect the ones that correspond to letters\n // and convert those letters back into a string. Afterwards find the first item that starts\n // with that string and select it.\n this._typeaheadSubscription = this._letterKeyStream\n .pipe(tap(letter => this._pressedLetters.push(letter)), debounceTime(debounceInterval), filter(() => this._pressedLetters.length > 0), map(() => this._pressedLetters.join('')))\n .subscribe(inputString => {\n const items = this._getItemsArray();\n // Start at 1 because we want to start searching at the item immediately\n // following the current active item.\n for (let i = 1; i < items.length + 1; i++) {\n const index = (this._activeItemIndex + i) % items.length;\n const item = items[index];\n if (!this._skipPredicateFn(item) &&\n item.getLabel().toUpperCase().trim().indexOf(inputString) === 0) {\n this.setActiveItem(index);\n break;\n }\n }\n this._pressedLetters = [];\n });\n return this;\n }\n /**\n * Configures the key manager to activate the first and last items\n * respectively when the Home or End key is pressed.\n * @param enabled Whether pressing the Home or End key activates the first/last item.\n */\n withHomeAndEnd(enabled = true) {\n this._homeAndEnd = enabled;\n return this;\n }\n setActiveItem(item) {\n const previousActiveItem = this._activeItem;\n this.updateActiveItem(item);\n if (this._activeItem !== previousActiveItem) {\n this.change.next(this._activeItemIndex);\n }\n }\n /**\n * Sets the active item depending on the key event passed in.\n * @param event Keyboard event to be used for determining which element should be active.\n */\n onKeydown(event) {\n const keyCode = event.keyCode;\n const modifiers = ['altKey', 'ctrlKey', 'metaKey', 'shiftKey'];\n const isModifierAllowed = modifiers.every(modifier => {\n return !event[modifier] || this._allowedModifierKeys.indexOf(modifier) > -1;\n });\n switch (keyCode) {\n case TAB:\n this.tabOut.next();\n return;\n case DOWN_ARROW:\n if (this._vertical && isModifierAllowed) {\n this.setNextItemActive();\n break;\n }\n else {\n return;\n }\n case UP_ARROW:\n if (this._vertical && isModifierAllowed) {\n this.setPreviousItemActive();\n break;\n }\n else {\n return;\n }\n case RIGHT_ARROW:\n if (this._horizontal && isModifierAllowed) {\n this._horizontal === 'rtl' ? this.setPreviousItemActive() : this.setNextItemActive();\n break;\n }\n else {\n return;\n }\n case LEFT_ARROW:\n if (this._horizontal && isModifierAllowed) {\n this._horizontal === 'rtl' ? this.setNextItemActive() : this.setPreviousItemActive();\n break;\n }\n else {\n return;\n }\n case HOME:\n if (this._homeAndEnd && isModifierAllowed) {\n this.setFirstItemActive();\n break;\n }\n else {\n return;\n }\n case END:\n if (this._homeAndEnd && isModifierAllowed) {\n this.setLastItemActive();\n break;\n }\n else {\n return;\n }\n default:\n if (isModifierAllowed || hasModifierKey(event, 'shiftKey')) {\n // Attempt to use the `event.key` which also maps it to the user's keyboard language,\n // otherwise fall back to resolving alphanumeric characters via the keyCode.\n if (event.key && event.key.length === 1) {\n this._letterKeyStream.next(event.key.toLocaleUpperCase());\n }\n else if ((keyCode >= A && keyCode <= Z) || (keyCode >= ZERO && keyCode <= NINE)) {\n this._letterKeyStream.next(String.fromCharCode(keyCode));\n }\n }\n // Note that we return here, in order to avoid preventing\n // the default action of non-navigational keys.\n return;\n }\n this._pressedLetters = [];\n event.preventDefault();\n }\n /** Index of the currently active item. */\n get activeItemIndex() {\n return this._activeItemIndex;\n }\n /** The active item. */\n get activeItem() {\n return this._activeItem;\n }\n /** Gets whether the user is currently typing into the manager using the typeahead feature. */\n isTyping() {\n return this._pressedLetters.length > 0;\n }\n /** Sets the active item to the first enabled item in the list. */\n setFirstItemActive() {\n this._setActiveItemByIndex(0, 1);\n }\n /** Sets the active item to the last enabled item in the list. */\n setLastItemActive() {\n this._setActiveItemByIndex(this._items.length - 1, -1);\n }\n /** Sets the active item to the next enabled item in the list. */\n setNextItemActive() {\n this._activeItemIndex < 0 ? this.setFirstItemActive() : this._setActiveItemByDelta(1);\n }\n /** Sets the active item to a previous enabled item in the list. */\n setPreviousItemActive() {\n this._activeItemIndex < 0 && this._wrap\n ? this.setLastItemActive()\n : this._setActiveItemByDelta(-1);\n }\n updateActiveItem(item) {\n const itemArray = this._getItemsArray();\n const index = typeof item === 'number' ? item : itemArray.indexOf(item);\n const activeItem = itemArray[index];\n // Explicitly check for `null` and `undefined` because other falsy values are valid.\n this._activeItem = activeItem == null ? null : activeItem;\n this._activeItemIndex = index;\n }\n /**\n * This method sets the active item, given a list of items and the delta between the\n * currently active item and the new active item. It will calculate differently\n * depending on whether wrap mode is turned on.\n */\n _setActiveItemByDelta(delta) {\n this._wrap ? this._setActiveInWrapMode(delta) : this._setActiveInDefaultMode(delta);\n }\n /**\n * Sets the active item properly given \"wrap\" mode. In other words, it will continue to move\n * down the list until it finds an item that is not disabled, and it will wrap if it\n * encounters either end of the list.\n */\n _setActiveInWrapMode(delta) {\n const items = this._getItemsArray();\n for (let i = 1; i <= items.length; i++) {\n const index = (this._activeItemIndex + delta * i + items.length) % items.length;\n const item = items[index];\n if (!this._skipPredicateFn(item)) {\n this.setActiveItem(index);\n return;\n }\n }\n }\n /**\n * Sets the active item properly given the default mode. In other words, it will\n * continue to move down the list until it finds an item that is not disabled. If\n * it encounters either end of the list, it will stop and not wrap.\n */\n _setActiveInDefaultMode(delta) {\n this._setActiveItemByIndex(this._activeItemIndex + delta, delta);\n }\n /**\n * Sets the active item to the first enabled item starting at the index specified. If the\n * item is disabled, it will move in the fallbackDelta direction until it either\n * finds an enabled item or encounters the end of the list.\n */\n _setActiveItemByIndex(index, fallbackDelta) {\n const items = this._getItemsArray();\n if (!items[index]) {\n return;\n }\n while (this._skipPredicateFn(items[index])) {\n index += fallbackDelta;\n if (!items[index]) {\n return;\n }\n }\n this.setActiveItem(index);\n }\n /** Returns the items as an array. */\n _getItemsArray() {\n return this._items instanceof QueryList ? this._items.toArray() : this._items;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass ActiveDescendantKeyManager extends ListKeyManager {\n setActiveItem(index) {\n if (this.activeItem) {\n this.activeItem.setInactiveStyles();\n }\n super.setActiveItem(index);\n if (this.activeItem) {\n this.activeItem.setActiveStyles();\n }\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass FocusKeyManager extends ListKeyManager {\n constructor() {\n super(...arguments);\n this._origin = 'program';\n }\n /**\n * Sets the focus origin that will be passed in to the items for any subsequent `focus` calls.\n * @param origin Focus origin to be used when focusing items.\n */\n setFocusOrigin(origin) {\n this._origin = origin;\n return this;\n }\n setActiveItem(item) {\n super.setActiveItem(item);\n if (this.activeItem) {\n this.activeItem.focus(this._origin);\n }\n }\n}\n\n/**\n * Configuration for the isFocusable method.\n */\nclass IsFocusableConfig {\n constructor() {\n /**\n * Whether to count an element as focusable even if it is not currently visible.\n */\n this.ignoreVisibility = false;\n }\n}\n// The InteractivityChecker leans heavily on the ally.js accessibility utilities.\n// Methods like `isTabbable` are only covering specific edge-cases for the browsers which are\n// supported.\n/**\n * Utility for checking the interactivity of an element, such as whether is is focusable or\n * tabbable.\n */\nclass InteractivityChecker {\n constructor(_platform) {\n this._platform = _platform;\n }\n /**\n * Gets whether an element is disabled.\n *\n * @param element Element to be checked.\n * @returns Whether the element is disabled.\n */\n isDisabled(element) {\n // This does not capture some cases, such as a non-form control with a disabled attribute or\n // a form control inside of a disabled form, but should capture the most common cases.\n return element.hasAttribute('disabled');\n }\n /**\n * Gets whether an element is visible for the purposes of interactivity.\n *\n * This will capture states like `display: none` and `visibility: hidden`, but not things like\n * being clipped by an `overflow: hidden` parent or being outside the viewport.\n *\n * @returns Whether the element is visible.\n */\n isVisible(element) {\n return hasGeometry(element) && getComputedStyle(element).visibility === 'visible';\n }\n /**\n * Gets whether an element can be reached via Tab key.\n * Assumes that the element has already been checked with isFocusable.\n *\n * @param element Element to be checked.\n * @returns Whether the element is tabbable.\n */\n isTabbable(element) {\n // Nothing is tabbable on the server 😎\n if (!this._platform.isBrowser) {\n return false;\n }\n const frameElement = getFrameElement(getWindow(element));\n if (frameElement) {\n // Frame elements inherit their tabindex onto all child elements.\n if (getTabIndexValue(frameElement) === -1) {\n return false;\n }\n // Browsers disable tabbing to an element inside of an invisible frame.\n if (!this.isVisible(frameElement)) {\n return false;\n }\n }\n let nodeName = element.nodeName.toLowerCase();\n let tabIndexValue = getTabIndexValue(element);\n if (element.hasAttribute('contenteditable')) {\n return tabIndexValue !== -1;\n }\n if (nodeName === 'iframe' || nodeName === 'object') {\n // The frame or object's content may be tabbable depending on the content, but it's\n // not possibly to reliably detect the content of the frames. We always consider such\n // elements as non-tabbable.\n return false;\n }\n // In iOS, the browser only considers some specific elements as tabbable.\n if (this._platform.WEBKIT && this._platform.IOS && !isPotentiallyTabbableIOS(element)) {\n return false;\n }\n if (nodeName === 'audio') {\n // Audio elements without controls enabled are never tabbable, regardless\n // of the tabindex attribute explicitly being set.\n if (!element.hasAttribute('controls')) {\n return false;\n }\n // Audio elements with controls are by default tabbable unless the\n // tabindex attribute is set to `-1` explicitly.\n return tabIndexValue !== -1;\n }\n if (nodeName === 'video') {\n // For all video elements, if the tabindex attribute is set to `-1`, the video\n // is not tabbable. Note: We cannot rely on the default `HTMLElement.tabIndex`\n // property as that one is set to `-1` in Chrome, Edge and Safari v13.1. The\n // tabindex attribute is the source of truth here.\n if (tabIndexValue === -1) {\n return false;\n }\n // If the tabindex is explicitly set, and not `-1` (as per check before), the\n // video element is always tabbable (regardless of whether it has controls or not).\n if (tabIndexValue !== null) {\n return true;\n }\n // Otherwise (when no explicit tabindex is set), a video is only tabbable if it\n // has controls enabled. Firefox is special as videos are always tabbable regardless\n // of whether there are controls or not.\n return this._platform.FIREFOX || element.hasAttribute('controls');\n }\n return element.tabIndex >= 0;\n }\n /**\n * Gets whether an element can be focused by the user.\n *\n * @param element Element to be checked.\n * @param config The config object with options to customize this method's behavior\n * @returns Whether the element is focusable.\n */\n isFocusable(element, config) {\n // Perform checks in order of left to most expensive.\n // Again, naive approach that does not capture many edge cases and browser quirks.\n return (isPotentiallyFocusable(element) &&\n !this.isDisabled(element) &&\n ((config === null || config === void 0 ? void 0 : config.ignoreVisibility) || this.isVisible(element)));\n }\n}\nInteractivityChecker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: InteractivityChecker, deps: [{ token: i1.Platform }], target: i0.ɵɵFactoryTarget.Injectable });\nInteractivityChecker.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: InteractivityChecker, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: InteractivityChecker, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i1.Platform }]; } });\n/**\n * Returns the frame element from a window object. Since browsers like MS Edge throw errors if\n * the frameElement property is being accessed from a different host address, this property\n * should be accessed carefully.\n */\nfunction getFrameElement(window) {\n try {\n return window.frameElement;\n }\n catch (_a) {\n return null;\n }\n}\n/** Checks whether the specified element has any geometry / rectangles. */\nfunction hasGeometry(element) {\n // Use logic from jQuery to check for an invisible element.\n // See https://github.com/jquery/jquery/blob/master/src/css/hiddenVisibleSelectors.js#L12\n return !!(element.offsetWidth ||\n element.offsetHeight ||\n (typeof element.getClientRects === 'function' && element.getClientRects().length));\n}\n/** Gets whether an element's */\nfunction isNativeFormElement(element) {\n let nodeName = element.nodeName.toLowerCase();\n return (nodeName === 'input' ||\n nodeName === 'select' ||\n nodeName === 'button' ||\n nodeName === 'textarea');\n}\n/** Gets whether an element is an ``. */\nfunction isHiddenInput(element) {\n return isInputElement(element) && element.type == 'hidden';\n}\n/** Gets whether an element is an anchor that has an href attribute. */\nfunction isAnchorWithHref(element) {\n return isAnchorElement(element) && element.hasAttribute('href');\n}\n/** Gets whether an element is an input element. */\nfunction isInputElement(element) {\n return element.nodeName.toLowerCase() == 'input';\n}\n/** Gets whether an element is an anchor element. */\nfunction isAnchorElement(element) {\n return element.nodeName.toLowerCase() == 'a';\n}\n/** Gets whether an element has a valid tabindex. */\nfunction hasValidTabIndex(element) {\n if (!element.hasAttribute('tabindex') || element.tabIndex === undefined) {\n return false;\n }\n let tabIndex = element.getAttribute('tabindex');\n return !!(tabIndex && !isNaN(parseInt(tabIndex, 10)));\n}\n/**\n * Returns the parsed tabindex from the element attributes instead of returning the\n * evaluated tabindex from the browsers defaults.\n */\nfunction getTabIndexValue(element) {\n if (!hasValidTabIndex(element)) {\n return null;\n }\n // See browser issue in Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\n const tabIndex = parseInt(element.getAttribute('tabindex') || '', 10);\n return isNaN(tabIndex) ? -1 : tabIndex;\n}\n/** Checks whether the specified element is potentially tabbable on iOS */\nfunction isPotentiallyTabbableIOS(element) {\n let nodeName = element.nodeName.toLowerCase();\n let inputType = nodeName === 'input' && element.type;\n return (inputType === 'text' ||\n inputType === 'password' ||\n nodeName === 'select' ||\n nodeName === 'textarea');\n}\n/**\n * Gets whether an element is potentially focusable without taking current visible/disabled state\n * into account.\n */\nfunction isPotentiallyFocusable(element) {\n // Inputs are potentially focusable *unless* they're type=\"hidden\".\n if (isHiddenInput(element)) {\n return false;\n }\n return (isNativeFormElement(element) ||\n isAnchorWithHref(element) ||\n element.hasAttribute('contenteditable') ||\n hasValidTabIndex(element));\n}\n/** Gets the parent window of a DOM node with regards of being inside of an iframe. */\nfunction getWindow(node) {\n // ownerDocument is null if `node` itself *is* a document.\n return (node.ownerDocument && node.ownerDocument.defaultView) || window;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Class that allows for trapping focus within a DOM element.\n *\n * This class currently uses a relatively simple approach to focus trapping.\n * It assumes that the tab order is the same as DOM order, which is not necessarily true.\n * Things like `tabIndex > 0`, flex `order`, and shadow roots can cause the two to be misaligned.\n *\n * @deprecated Use `ConfigurableFocusTrap` instead.\n * @breaking-change 11.0.0\n */\nclass FocusTrap {\n constructor(_element, _checker, _ngZone, _document, deferAnchors = false) {\n this._element = _element;\n this._checker = _checker;\n this._ngZone = _ngZone;\n this._document = _document;\n this._hasAttached = false;\n // Event listeners for the anchors. Need to be regular functions so that we can unbind them later.\n this.startAnchorListener = () => this.focusLastTabbableElement();\n this.endAnchorListener = () => this.focusFirstTabbableElement();\n this._enabled = true;\n if (!deferAnchors) {\n this.attachAnchors();\n }\n }\n /** Whether the focus trap is active. */\n get enabled() {\n return this._enabled;\n }\n set enabled(value) {\n this._enabled = value;\n if (this._startAnchor && this._endAnchor) {\n this._toggleAnchorTabIndex(value, this._startAnchor);\n this._toggleAnchorTabIndex(value, this._endAnchor);\n }\n }\n /** Destroys the focus trap by cleaning up the anchors. */\n destroy() {\n const startAnchor = this._startAnchor;\n const endAnchor = this._endAnchor;\n if (startAnchor) {\n startAnchor.removeEventListener('focus', this.startAnchorListener);\n startAnchor.remove();\n }\n if (endAnchor) {\n endAnchor.removeEventListener('focus', this.endAnchorListener);\n endAnchor.remove();\n }\n this._startAnchor = this._endAnchor = null;\n this._hasAttached = false;\n }\n /**\n * Inserts the anchors into the DOM. This is usually done automatically\n * in the constructor, but can be deferred for cases like directives with `*ngIf`.\n * @returns Whether the focus trap managed to attach successfully. This may not be the case\n * if the target element isn't currently in the DOM.\n */\n attachAnchors() {\n // If we're not on the browser, there can be no focus to trap.\n if (this._hasAttached) {\n return true;\n }\n this._ngZone.runOutsideAngular(() => {\n if (!this._startAnchor) {\n this._startAnchor = this._createAnchor();\n this._startAnchor.addEventListener('focus', this.startAnchorListener);\n }\n if (!this._endAnchor) {\n this._endAnchor = this._createAnchor();\n this._endAnchor.addEventListener('focus', this.endAnchorListener);\n }\n });\n if (this._element.parentNode) {\n this._element.parentNode.insertBefore(this._startAnchor, this._element);\n this._element.parentNode.insertBefore(this._endAnchor, this._element.nextSibling);\n this._hasAttached = true;\n }\n return this._hasAttached;\n }\n /**\n * Waits for the zone to stabilize, then focuses the first tabbable element.\n * @returns Returns a promise that resolves with a boolean, depending\n * on whether focus was moved successfully.\n */\n focusInitialElementWhenReady(options) {\n return new Promise(resolve => {\n this._executeOnStable(() => resolve(this.focusInitialElement(options)));\n });\n }\n /**\n * Waits for the zone to stabilize, then focuses\n * the first tabbable element within the focus trap region.\n * @returns Returns a promise that resolves with a boolean, depending\n * on whether focus was moved successfully.\n */\n focusFirstTabbableElementWhenReady(options) {\n return new Promise(resolve => {\n this._executeOnStable(() => resolve(this.focusFirstTabbableElement(options)));\n });\n }\n /**\n * Waits for the zone to stabilize, then focuses\n * the last tabbable element within the focus trap region.\n * @returns Returns a promise that resolves with a boolean, depending\n * on whether focus was moved successfully.\n */\n focusLastTabbableElementWhenReady(options) {\n return new Promise(resolve => {\n this._executeOnStable(() => resolve(this.focusLastTabbableElement(options)));\n });\n }\n /**\n * Get the specified boundary element of the trapped region.\n * @param bound The boundary to get (start or end of trapped region).\n * @returns The boundary element.\n */\n _getRegionBoundary(bound) {\n // Contains the deprecated version of selector, for temporary backwards comparability.\n const markers = this._element.querySelectorAll(`[cdk-focus-region-${bound}], ` + `[cdkFocusRegion${bound}], ` + `[cdk-focus-${bound}]`);\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n for (let i = 0; i < markers.length; i++) {\n // @breaking-change 8.0.0\n if (markers[i].hasAttribute(`cdk-focus-${bound}`)) {\n console.warn(`Found use of deprecated attribute 'cdk-focus-${bound}', ` +\n `use 'cdkFocusRegion${bound}' instead. The deprecated ` +\n `attribute will be removed in 8.0.0.`, markers[i]);\n }\n else if (markers[i].hasAttribute(`cdk-focus-region-${bound}`)) {\n console.warn(`Found use of deprecated attribute 'cdk-focus-region-${bound}', ` +\n `use 'cdkFocusRegion${bound}' instead. The deprecated attribute ` +\n `will be removed in 8.0.0.`, markers[i]);\n }\n }\n }\n if (bound == 'start') {\n return markers.length ? markers[0] : this._getFirstTabbableElement(this._element);\n }\n return markers.length\n ? markers[markers.length - 1]\n : this._getLastTabbableElement(this._element);\n }\n /**\n * Focuses the element that should be focused when the focus trap is initialized.\n * @returns Whether focus was moved successfully.\n */\n focusInitialElement(options) {\n // Contains the deprecated version of selector, for temporary backwards comparability.\n const redirectToElement = this._element.querySelector(`[cdk-focus-initial], ` + `[cdkFocusInitial]`);\n if (redirectToElement) {\n // @breaking-change 8.0.0\n if ((typeof ngDevMode === 'undefined' || ngDevMode) &&\n redirectToElement.hasAttribute(`cdk-focus-initial`)) {\n console.warn(`Found use of deprecated attribute 'cdk-focus-initial', ` +\n `use 'cdkFocusInitial' instead. The deprecated attribute ` +\n `will be removed in 8.0.0`, redirectToElement);\n }\n // Warn the consumer if the element they've pointed to\n // isn't focusable, when not in production mode.\n if ((typeof ngDevMode === 'undefined' || ngDevMode) &&\n !this._checker.isFocusable(redirectToElement)) {\n console.warn(`Element matching '[cdkFocusInitial]' is not focusable.`, redirectToElement);\n }\n if (!this._checker.isFocusable(redirectToElement)) {\n const focusableChild = this._getFirstTabbableElement(redirectToElement);\n focusableChild === null || focusableChild === void 0 ? void 0 : focusableChild.focus(options);\n return !!focusableChild;\n }\n redirectToElement.focus(options);\n return true;\n }\n return this.focusFirstTabbableElement(options);\n }\n /**\n * Focuses the first tabbable element within the focus trap region.\n * @returns Whether focus was moved successfully.\n */\n focusFirstTabbableElement(options) {\n const redirectToElement = this._getRegionBoundary('start');\n if (redirectToElement) {\n redirectToElement.focus(options);\n }\n return !!redirectToElement;\n }\n /**\n * Focuses the last tabbable element within the focus trap region.\n * @returns Whether focus was moved successfully.\n */\n focusLastTabbableElement(options) {\n const redirectToElement = this._getRegionBoundary('end');\n if (redirectToElement) {\n redirectToElement.focus(options);\n }\n return !!redirectToElement;\n }\n /**\n * Checks whether the focus trap has successfully been attached.\n */\n hasAttached() {\n return this._hasAttached;\n }\n /** Get the first tabbable element from a DOM subtree (inclusive). */\n _getFirstTabbableElement(root) {\n if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {\n return root;\n }\n const children = root.children;\n for (let i = 0; i < children.length; i++) {\n const tabbableChild = children[i].nodeType === this._document.ELEMENT_NODE\n ? this._getFirstTabbableElement(children[i])\n : null;\n if (tabbableChild) {\n return tabbableChild;\n }\n }\n return null;\n }\n /** Get the last tabbable element from a DOM subtree (inclusive). */\n _getLastTabbableElement(root) {\n if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {\n return root;\n }\n // Iterate in reverse DOM order.\n const children = root.children;\n for (let i = children.length - 1; i >= 0; i--) {\n const tabbableChild = children[i].nodeType === this._document.ELEMENT_NODE\n ? this._getLastTabbableElement(children[i])\n : null;\n if (tabbableChild) {\n return tabbableChild;\n }\n }\n return null;\n }\n /** Creates an anchor element. */\n _createAnchor() {\n const anchor = this._document.createElement('div');\n this._toggleAnchorTabIndex(this._enabled, anchor);\n anchor.classList.add('cdk-visually-hidden');\n anchor.classList.add('cdk-focus-trap-anchor');\n anchor.setAttribute('aria-hidden', 'true');\n return anchor;\n }\n /**\n * Toggles the `tabindex` of an anchor, based on the enabled state of the focus trap.\n * @param isEnabled Whether the focus trap is enabled.\n * @param anchor Anchor on which to toggle the tabindex.\n */\n _toggleAnchorTabIndex(isEnabled, anchor) {\n // Remove the tabindex completely, rather than setting it to -1, because if the\n // element has a tabindex, the user might still hit it when navigating with the arrow keys.\n isEnabled ? anchor.setAttribute('tabindex', '0') : anchor.removeAttribute('tabindex');\n }\n /**\n * Toggles the`tabindex` of both anchors to either trap Tab focus or allow it to escape.\n * @param enabled: Whether the anchors should trap Tab.\n */\n toggleAnchors(enabled) {\n if (this._startAnchor && this._endAnchor) {\n this._toggleAnchorTabIndex(enabled, this._startAnchor);\n this._toggleAnchorTabIndex(enabled, this._endAnchor);\n }\n }\n /** Executes a function when the zone is stable. */\n _executeOnStable(fn) {\n if (this._ngZone.isStable) {\n fn();\n }\n else {\n this._ngZone.onStable.pipe(take(1)).subscribe(fn);\n }\n }\n}\n/**\n * Factory that allows easy instantiation of focus traps.\n * @deprecated Use `ConfigurableFocusTrapFactory` instead.\n * @breaking-change 11.0.0\n */\nclass FocusTrapFactory {\n constructor(_checker, _ngZone, _document) {\n this._checker = _checker;\n this._ngZone = _ngZone;\n this._document = _document;\n }\n /**\n * Creates a focus-trapped region around the given element.\n * @param element The element around which focus will be trapped.\n * @param deferCaptureElements Defers the creation of focus-capturing elements to be done\n * manually by the user.\n * @returns The created focus trap instance.\n */\n create(element, deferCaptureElements = false) {\n return new FocusTrap(element, this._checker, this._ngZone, this._document, deferCaptureElements);\n }\n}\nFocusTrapFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: FocusTrapFactory, deps: [{ token: InteractivityChecker }, { token: i0.NgZone }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nFocusTrapFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: FocusTrapFactory, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: FocusTrapFactory, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () {\n return [{ type: InteractivityChecker }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }];\n } });\n/** Directive for trapping focus within a region. */\nclass CdkTrapFocus {\n constructor(_elementRef, _focusTrapFactory, \n /**\n * @deprecated No longer being used. To be removed.\n * @breaking-change 13.0.0\n */\n _document) {\n this._elementRef = _elementRef;\n this._focusTrapFactory = _focusTrapFactory;\n /** Previously focused element to restore focus to upon destroy when using autoCapture. */\n this._previouslyFocusedElement = null;\n this.focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement, true);\n }\n /** Whether the focus trap is active. */\n get enabled() {\n return this.focusTrap.enabled;\n }\n set enabled(value) {\n this.focusTrap.enabled = coerceBooleanProperty(value);\n }\n /**\n * Whether the directive should automatically move focus into the trapped region upon\n * initialization and return focus to the previous activeElement upon destruction.\n */\n get autoCapture() {\n return this._autoCapture;\n }\n set autoCapture(value) {\n this._autoCapture = coerceBooleanProperty(value);\n }\n ngOnDestroy() {\n this.focusTrap.destroy();\n // If we stored a previously focused element when using autoCapture, return focus to that\n // element now that the trapped region is being destroyed.\n if (this._previouslyFocusedElement) {\n this._previouslyFocusedElement.focus();\n this._previouslyFocusedElement = null;\n }\n }\n ngAfterContentInit() {\n this.focusTrap.attachAnchors();\n if (this.autoCapture) {\n this._captureFocus();\n }\n }\n ngDoCheck() {\n if (!this.focusTrap.hasAttached()) {\n this.focusTrap.attachAnchors();\n }\n }\n ngOnChanges(changes) {\n const autoCaptureChange = changes['autoCapture'];\n if (autoCaptureChange &&\n !autoCaptureChange.firstChange &&\n this.autoCapture &&\n this.focusTrap.hasAttached()) {\n this._captureFocus();\n }\n }\n _captureFocus() {\n this._previouslyFocusedElement = _getFocusedElementPierceShadowDom();\n this.focusTrap.focusInitialElementWhenReady();\n }\n}\nCdkTrapFocus.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CdkTrapFocus, deps: [{ token: i0.ElementRef }, { token: FocusTrapFactory }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });\nCdkTrapFocus.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.0\", type: CdkTrapFocus, selector: \"[cdkTrapFocus]\", inputs: { enabled: [\"cdkTrapFocus\", \"enabled\"], autoCapture: [\"cdkTrapFocusAutoCapture\", \"autoCapture\"] }, exportAs: [\"cdkTrapFocus\"], usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CdkTrapFocus, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkTrapFocus]',\n exportAs: 'cdkTrapFocus',\n }]\n }], ctorParameters: function () {\n return [{ type: i0.ElementRef }, { type: FocusTrapFactory }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }];\n }, propDecorators: { enabled: [{\n type: Input,\n args: ['cdkTrapFocus']\n }], autoCapture: [{\n type: Input,\n args: ['cdkTrapFocusAutoCapture']\n }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Class that allows for trapping focus within a DOM element.\n *\n * This class uses a strategy pattern that determines how it traps focus.\n * See FocusTrapInertStrategy.\n */\nclass ConfigurableFocusTrap extends FocusTrap {\n constructor(_element, _checker, _ngZone, _document, _focusTrapManager, _inertStrategy, config) {\n super(_element, _checker, _ngZone, _document, config.defer);\n this._focusTrapManager = _focusTrapManager;\n this._inertStrategy = _inertStrategy;\n this._focusTrapManager.register(this);\n }\n /** Whether the FocusTrap is enabled. */\n get enabled() {\n return this._enabled;\n }\n set enabled(value) {\n this._enabled = value;\n if (this._enabled) {\n this._focusTrapManager.register(this);\n }\n else {\n this._focusTrapManager.deregister(this);\n }\n }\n /** Notifies the FocusTrapManager that this FocusTrap will be destroyed. */\n destroy() {\n this._focusTrapManager.deregister(this);\n super.destroy();\n }\n /** @docs-private Implemented as part of ManagedFocusTrap. */\n _enable() {\n this._inertStrategy.preventFocus(this);\n this.toggleAnchors(true);\n }\n /** @docs-private Implemented as part of ManagedFocusTrap. */\n _disable() {\n this._inertStrategy.allowFocus(this);\n this.toggleAnchors(false);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** The injection token used to specify the inert strategy. */\nconst FOCUS_TRAP_INERT_STRATEGY = new InjectionToken('FOCUS_TRAP_INERT_STRATEGY');\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source 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 * Lightweight FocusTrapInertStrategy that adds a document focus event\n * listener to redirect focus back inside the FocusTrap.\n */\nclass EventListenerFocusTrapInertStrategy {\n constructor() {\n /** Focus event handler. */\n this._listener = null;\n }\n /** Adds a document event listener that keeps focus inside the FocusTrap. */\n preventFocus(focusTrap) {\n // Ensure there's only one listener per document\n if (this._listener) {\n focusTrap._document.removeEventListener('focus', this._listener, true);\n }\n this._listener = (e) => this._trapFocus(focusTrap, e);\n focusTrap._ngZone.runOutsideAngular(() => {\n focusTrap._document.addEventListener('focus', this._listener, true);\n });\n }\n /** Removes the event listener added in preventFocus. */\n allowFocus(focusTrap) {\n if (!this._listener) {\n return;\n }\n focusTrap._document.removeEventListener('focus', this._listener, true);\n this._listener = null;\n }\n /**\n * Refocuses the first element in the FocusTrap if the focus event target was outside\n * the FocusTrap.\n *\n * This is an event listener callback. The event listener is added in runOutsideAngular,\n * so all this code runs outside Angular as well.\n */\n _trapFocus(focusTrap, event) {\n var _a;\n const target = event.target;\n const focusTrapRoot = focusTrap._element;\n // Don't refocus if target was in an overlay, because the overlay might be associated\n // with an element inside the FocusTrap, ex. mat-select.\n if (target && !focusTrapRoot.contains(target) && !((_a = target.closest) === null || _a === void 0 ? void 0 : _a.call(target, 'div.cdk-overlay-pane'))) {\n // Some legacy FocusTrap usages have logic that focuses some element on the page\n // just before FocusTrap is destroyed. For backwards compatibility, wait\n // to be sure FocusTrap is still enabled before refocusing.\n setTimeout(() => {\n // Check whether focus wasn't put back into the focus trap while the timeout was pending.\n if (focusTrap.enabled && !focusTrapRoot.contains(focusTrap._document.activeElement)) {\n focusTrap.focusFirstTabbableElement();\n }\n });\n }\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Injectable that ensures only the most recently enabled FocusTrap is active. */\nclass FocusTrapManager {\n constructor() {\n // A stack of the FocusTraps on the page. Only the FocusTrap at the\n // top of the stack is active.\n this._focusTrapStack = [];\n }\n /**\n * Disables the FocusTrap at the top of the stack, and then pushes\n * the new FocusTrap onto the stack.\n */\n register(focusTrap) {\n // Dedupe focusTraps that register multiple times.\n this._focusTrapStack = this._focusTrapStack.filter(ft => ft !== focusTrap);\n let stack = this._focusTrapStack;\n if (stack.length) {\n stack[stack.length - 1]._disable();\n }\n stack.push(focusTrap);\n focusTrap._enable();\n }\n /**\n * Removes the FocusTrap from the stack, and activates the\n * FocusTrap that is the new top of the stack.\n */\n deregister(focusTrap) {\n focusTrap._disable();\n const stack = this._focusTrapStack;\n const i = stack.indexOf(focusTrap);\n if (i !== -1) {\n stack.splice(i, 1);\n if (stack.length) {\n stack[stack.length - 1]._enable();\n }\n }\n }\n}\nFocusTrapManager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: FocusTrapManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nFocusTrapManager.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: FocusTrapManager, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: FocusTrapManager, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Factory that allows easy instantiation of configurable focus traps. */\nclass ConfigurableFocusTrapFactory {\n constructor(_checker, _ngZone, _focusTrapManager, _document, _inertStrategy) {\n this._checker = _checker;\n this._ngZone = _ngZone;\n this._focusTrapManager = _focusTrapManager;\n this._document = _document;\n // TODO split up the strategies into different modules, similar to DateAdapter.\n this._inertStrategy = _inertStrategy || new EventListenerFocusTrapInertStrategy();\n }\n create(element, config = { defer: false }) {\n let configObject;\n if (typeof config === 'boolean') {\n configObject = { defer: config };\n }\n else {\n configObject = config;\n }\n return new ConfigurableFocusTrap(element, this._checker, this._ngZone, this._document, this._focusTrapManager, this._inertStrategy, configObject);\n }\n}\nConfigurableFocusTrapFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: ConfigurableFocusTrapFactory, deps: [{ token: InteractivityChecker }, { token: i0.NgZone }, { token: FocusTrapManager }, { token: DOCUMENT }, { token: FOCUS_TRAP_INERT_STRATEGY, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nConfigurableFocusTrapFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: ConfigurableFocusTrapFactory, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: ConfigurableFocusTrapFactory, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () {\n return [{ type: InteractivityChecker }, { type: i0.NgZone }, { type: FocusTrapManager }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [FOCUS_TRAP_INERT_STRATEGY]\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/** Gets whether an event could be a faked `mousedown` event dispatched by a screen reader. */\nfunction isFakeMousedownFromScreenReader(event) {\n // Some screen readers will dispatch a fake `mousedown` event when pressing enter or space on\n // a clickable element. We can distinguish these events when both `offsetX` and `offsetY` are\n // zero or `event.buttons` is zero, depending on the browser:\n // - `event.buttons` works on Firefox, but fails on Chrome.\n // - `offsetX` and `offsetY` work on Chrome, but fail on Firefox.\n // Note that there's an edge case where the user could click the 0x0 spot of the\n // screen themselves, but that is unlikely to contain interactive elements.\n return event.buttons === 0 || (event.offsetX === 0 && event.offsetY === 0);\n}\n/** Gets whether an event could be a faked `touchstart` event dispatched by a screen reader. */\nfunction isFakeTouchstartFromScreenReader(event) {\n const touch = (event.touches && event.touches[0]) || (event.changedTouches && event.changedTouches[0]);\n // A fake `touchstart` can be distinguished from a real one by looking at the `identifier`\n // which is typically >= 0 on a real device versus -1 from a screen reader. Just to be safe,\n // we can also look at `radiusX` and `radiusY`. This behavior was observed against a Windows 10\n // device with a touch screen running NVDA v2020.4 and Firefox 85 or Chrome 88.\n return (!!touch &&\n touch.identifier === -1 &&\n (touch.radiusX == null || touch.radiusX === 1) &&\n (touch.radiusY == null || touch.radiusY === 1));\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Injectable options for the InputModalityDetector. These are shallowly merged with the default\n * options.\n */\nconst INPUT_MODALITY_DETECTOR_OPTIONS = new InjectionToken('cdk-input-modality-detector-options');\n/**\n * Default options for the InputModalityDetector.\n *\n * Modifier keys are ignored by default (i.e. when pressed won't cause the service to detect\n * keyboard input modality) for two reasons:\n *\n * 1. Modifier keys are commonly used with mouse to perform actions such as 'right click' or 'open\n * in new tab', and are thus less representative of actual keyboard interaction.\n * 2. VoiceOver triggers some keyboard events when linearly navigating with Control + Option (but\n * confusingly not with Caps Lock). Thus, to have parity with other screen readers, we ignore\n * these keys so as to not update the input modality.\n *\n * Note that we do not by default ignore the right Meta key on Safari because it has the same key\n * code as the ContextMenu key on other browsers. When we switch to using event.key, we can\n * distinguish between the two.\n */\nconst INPUT_MODALITY_DETECTOR_DEFAULT_OPTIONS = {\n ignoreKeys: [ALT, CONTROL, MAC_META, META, SHIFT],\n};\n/**\n * The amount of time needed to pass after a touchstart event in order for a subsequent mousedown\n * event to be attributed as mouse and not touch.\n *\n * This is the value used by AngularJS Material. Through trial and error (on iPhone 6S) they found\n * that a value of around 650ms seems appropriate.\n */\nconst TOUCH_BUFFER_MS = 650;\n/**\n * Event listener options that enable capturing and also mark the listener as passive if the browser\n * supports it.\n */\nconst modalityEventListenerOptions = normalizePassiveListenerOptions({\n passive: true,\n capture: true,\n});\n/**\n * Service that detects the user's input modality.\n *\n * This service does not update the input modality when a user navigates with a screen reader\n * (e.g. linear navigation with VoiceOver, object navigation / browse mode with NVDA, virtual PC\n * cursor mode with JAWS). This is in part due to technical limitations (i.e. keyboard events do not\n * fire as expected in these modes) but is also arguably the correct behavior. Navigating with a\n * screen reader is akin to visually scanning a page, and should not be interpreted as actual user\n * input interaction.\n *\n * When a user is not navigating but *interacting* with a screen reader, this service attempts to\n * update the input modality to keyboard, but in general this service's behavior is largely\n * undefined.\n */\nclass InputModalityDetector {\n constructor(_platform, ngZone, document, options) {\n this._platform = _platform;\n /**\n * The most recently detected input modality event target. Is null if no input modality has been\n * detected or if the associated event target is null for some unknown reason.\n */\n this._mostRecentTarget = null;\n /** The underlying BehaviorSubject that emits whenever an input modality is detected. */\n this._modality = new BehaviorSubject(null);\n /**\n * The timestamp of the last touch input modality. Used to determine whether mousedown events\n * should be attributed to mouse or touch.\n */\n this._lastTouchMs = 0;\n /**\n * Handles keydown events. Must be an arrow function in order to preserve the context when it gets\n * bound.\n */\n this._onKeydown = (event) => {\n var _a, _b;\n // If this is one of the keys we should ignore, then ignore it and don't update the input\n // modality to keyboard.\n if ((_b = (_a = this._options) === null || _a === void 0 ? void 0 : _a.ignoreKeys) === null || _b === void 0 ? void 0 : _b.some(keyCode => keyCode === event.keyCode)) {\n return;\n }\n this._modality.next('keyboard');\n this._mostRecentTarget = _getEventTarget(event);\n };\n /**\n * Handles mousedown events. Must be an arrow function in order to preserve the context when it\n * gets bound.\n */\n this._onMousedown = (event) => {\n // Touches trigger both touch and mouse events, so we need to distinguish between mouse events\n // that were triggered via mouse vs touch. To do so, check if the mouse event occurs closely\n // after the previous touch event.\n if (Date.now() - this._lastTouchMs < TOUCH_BUFFER_MS) {\n return;\n }\n // Fake mousedown events are fired by some screen readers when controls are activated by the\n // screen reader. Attribute them to keyboard input modality.\n this._modality.next(isFakeMousedownFromScreenReader(event) ? 'keyboard' : 'mouse');\n this._mostRecentTarget = _getEventTarget(event);\n };\n /**\n * Handles touchstart events. Must be an arrow function in order to preserve the context when it\n * gets bound.\n */\n this._onTouchstart = (event) => {\n // Same scenario as mentioned in _onMousedown, but on touch screen devices, fake touchstart\n // events are fired. Again, attribute to keyboard input modality.\n if (isFakeTouchstartFromScreenReader(event)) {\n this._modality.next('keyboard');\n return;\n }\n // Store the timestamp of this touch event, as it's used to distinguish between mouse events\n // triggered via mouse vs touch.\n this._lastTouchMs = Date.now();\n this._modality.next('touch');\n this._mostRecentTarget = _getEventTarget(event);\n };\n this._options = Object.assign(Object.assign({}, INPUT_MODALITY_DETECTOR_DEFAULT_OPTIONS), options);\n // Skip the first emission as it's null.\n this.modalityDetected = this._modality.pipe(skip(1));\n this.modalityChanged = this.modalityDetected.pipe(distinctUntilChanged());\n // If we're not in a browser, this service should do nothing, as there's no relevant input\n // modality to detect.\n if (_platform.isBrowser) {\n ngZone.runOutsideAngular(() => {\n document.addEventListener('keydown', this._onKeydown, modalityEventListenerOptions);\n document.addEventListener('mousedown', this._onMousedown, modalityEventListenerOptions);\n document.addEventListener('touchstart', this._onTouchstart, modalityEventListenerOptions);\n });\n }\n }\n /** The most recently detected input modality. */\n get mostRecentModality() {\n return this._modality.value;\n }\n ngOnDestroy() {\n this._modality.complete();\n if (this._platform.isBrowser) {\n document.removeEventListener('keydown', this._onKeydown, modalityEventListenerOptions);\n document.removeEventListener('mousedown', this._onMousedown, modalityEventListenerOptions);\n document.removeEventListener('touchstart', this._onTouchstart, modalityEventListenerOptions);\n }\n }\n}\nInputModalityDetector.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: InputModalityDetector, deps: [{ token: i1.Platform }, { token: i0.NgZone }, { token: DOCUMENT }, { token: INPUT_MODALITY_DETECTOR_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nInputModalityDetector.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: InputModalityDetector, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: InputModalityDetector, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () {\n return [{ type: i1.Platform }, { type: i0.NgZone }, { type: Document, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [INPUT_MODALITY_DETECTOR_OPTIONS]\n }] }];\n } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst LIVE_ANNOUNCER_ELEMENT_TOKEN = new InjectionToken('liveAnnouncerElement', {\n providedIn: 'root',\n factory: LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY,\n});\n/** @docs-private */\nfunction LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY() {\n return null;\n}\n/** Injection token that can be used to configure the default options for the LiveAnnouncer. */\nconst LIVE_ANNOUNCER_DEFAULT_OPTIONS = new InjectionToken('LIVE_ANNOUNCER_DEFAULT_OPTIONS');\n\nclass LiveAnnouncer {\n constructor(elementToken, _ngZone, _document, _defaultOptions) {\n this._ngZone = _ngZone;\n this._defaultOptions = _defaultOptions;\n // We inject the live element and document as `any` because the constructor signature cannot\n // reference browser globals (HTMLElement, Document) on non-browser environments, since having\n // a class decorator causes TypeScript to preserve the constructor signature types.\n this._document = _document;\n this._liveElement = elementToken || this._createLiveElement();\n }\n announce(message, ...args) {\n const defaultOptions = this._defaultOptions;\n let politeness;\n let duration;\n if (args.length === 1 && typeof args[0] === 'number') {\n duration = args[0];\n }\n else {\n [politeness, duration] = args;\n }\n this.clear();\n clearTimeout(this._previousTimeout);\n if (!politeness) {\n politeness =\n defaultOptions && defaultOptions.politeness ? defaultOptions.politeness : 'polite';\n }\n if (duration == null && defaultOptions) {\n duration = defaultOptions.duration;\n }\n // TODO: ensure changing the politeness works on all environments we support.\n this._liveElement.setAttribute('aria-live', politeness);\n // This 100ms timeout is necessary for some browser + screen-reader combinations:\n // - Both JAWS and NVDA over IE11 will not announce anything without a non-zero timeout.\n // - With Chrome and IE11 with NVDA or JAWS, a repeated (identical) message won't be read a\n // second time without clearing and then using a non-zero delay.\n // (using JAWS 17 at time of this writing).\n return this._ngZone.runOutsideAngular(() => {\n return new Promise(resolve => {\n clearTimeout(this._previousTimeout);\n this._previousTimeout = setTimeout(() => {\n this._liveElement.textContent = message;\n resolve();\n if (typeof duration === 'number') {\n this._previousTimeout = setTimeout(() => this.clear(), duration);\n }\n }, 100);\n });\n });\n }\n /**\n * Clears the current text from the announcer element. Can be used to prevent\n * screen readers from reading the text out again while the user is going\n * through the page landmarks.\n */\n clear() {\n if (this._liveElement) {\n this._liveElement.textContent = '';\n }\n }\n ngOnDestroy() {\n var _a;\n clearTimeout(this._previousTimeout);\n (_a = this._liveElement) === null || _a === void 0 ? void 0 : _a.remove();\n this._liveElement = null;\n }\n _createLiveElement() {\n const elementClass = 'cdk-live-announcer-element';\n const previousElements = this._document.getElementsByClassName(elementClass);\n const liveEl = this._document.createElement('div');\n // Remove any old containers. This can happen when coming in from a server-side-rendered page.\n for (let i = 0; i < previousElements.length; i++) {\n previousElements[i].remove();\n }\n liveEl.classList.add(elementClass);\n liveEl.classList.add('cdk-visually-hidden');\n liveEl.setAttribute('aria-atomic', 'true');\n liveEl.setAttribute('aria-live', 'polite');\n this._document.body.appendChild(liveEl);\n return liveEl;\n }\n}\nLiveAnnouncer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: LiveAnnouncer, deps: [{ token: LIVE_ANNOUNCER_ELEMENT_TOKEN, optional: true }, { token: i0.NgZone }, { token: DOCUMENT }, { token: LIVE_ANNOUNCER_DEFAULT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nLiveAnnouncer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: LiveAnnouncer, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: LiveAnnouncer, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [LIVE_ANNOUNCER_ELEMENT_TOKEN]\n }] }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [LIVE_ANNOUNCER_DEFAULT_OPTIONS]\n }] }];\n } });\n/**\n * A directive that works similarly to aria-live, but uses the LiveAnnouncer to ensure compatibility\n * with a wider range of browsers and screen readers.\n */\nclass CdkAriaLive {\n constructor(_elementRef, _liveAnnouncer, _contentObserver, _ngZone) {\n this._elementRef = _elementRef;\n this._liveAnnouncer = _liveAnnouncer;\n this._contentObserver = _contentObserver;\n this._ngZone = _ngZone;\n this._politeness = 'polite';\n }\n /** The aria-live politeness level to use when announcing messages. */\n get politeness() {\n return this._politeness;\n }\n set politeness(value) {\n this._politeness = value === 'off' || value === 'assertive' ? value : 'polite';\n if (this._politeness === 'off') {\n if (this._subscription) {\n this._subscription.unsubscribe();\n this._subscription = null;\n }\n }\n else if (!this._subscription) {\n this._subscription = this._ngZone.runOutsideAngular(() => {\n return this._contentObserver.observe(this._elementRef).subscribe(() => {\n // Note that we use textContent here, rather than innerText, in order to avoid a reflow.\n const elementText = this._elementRef.nativeElement.textContent;\n // The `MutationObserver` fires also for attribute\n // changes which we don't want to announce.\n if (elementText !== this._previousAnnouncedText) {\n this._liveAnnouncer.announce(elementText, this._politeness);\n this._previousAnnouncedText = elementText;\n }\n });\n });\n }\n }\n ngOnDestroy() {\n if (this._subscription) {\n this._subscription.unsubscribe();\n }\n }\n}\nCdkAriaLive.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CdkAriaLive, deps: [{ token: i0.ElementRef }, { token: LiveAnnouncer }, { token: i1$1.ContentObserver }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });\nCdkAriaLive.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.0\", type: CdkAriaLive, selector: \"[cdkAriaLive]\", inputs: { politeness: [\"cdkAriaLive\", \"politeness\"] }, exportAs: [\"cdkAriaLive\"], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CdkAriaLive, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkAriaLive]',\n exportAs: 'cdkAriaLive',\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: LiveAnnouncer }, { type: i1$1.ContentObserver }, { type: i0.NgZone }]; }, propDecorators: { politeness: [{\n type: Input,\n args: ['cdkAriaLive']\n }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** InjectionToken for FocusMonitorOptions. */\nconst FOCUS_MONITOR_DEFAULT_OPTIONS = new InjectionToken('cdk-focus-monitor-default-options');\n/**\n * Event listener options that enable capturing and also\n * mark the listener as passive if the browser supports it.\n */\nconst captureEventListenerOptions = normalizePassiveListenerOptions({\n passive: true,\n capture: true,\n});\n/** Monitors mouse and keyboard events to determine the cause of focus events. */\nclass FocusMonitor {\n constructor(_ngZone, _platform, _inputModalityDetector, \n /** @breaking-change 11.0.0 make document required */\n document, options) {\n this._ngZone = _ngZone;\n this._platform = _platform;\n this._inputModalityDetector = _inputModalityDetector;\n /** The focus origin that the next focus event is a result of. */\n this._origin = null;\n /** Whether the window has just been focused. */\n this._windowFocused = false;\n /**\n * Whether the origin was determined via a touch interaction. Necessary as properly attributing\n * focus events to touch interactions requires special logic.\n */\n this._originFromTouchInteraction = false;\n /** Map of elements being monitored to their info. */\n this._elementInfo = new Map();\n /** The number of elements currently being monitored. */\n this._monitoredElementCount = 0;\n /**\n * Keeps track of the root nodes to which we've currently bound a focus/blur handler,\n * as well as the number of monitored elements that they contain. We have to treat focus/blur\n * handlers differently from the rest of the events, because the browser won't emit events\n * to the document when focus moves inside of a shadow root.\n */\n this._rootNodeFocusListenerCount = new Map();\n /**\n * Event listener for `focus` events on the window.\n * Needs to be an arrow function in order to preserve the context when it gets bound.\n */\n this._windowFocusListener = () => {\n // Make a note of when the window regains focus, so we can\n // restore the origin info for the focused element.\n this._windowFocused = true;\n this._windowFocusTimeoutId = window.setTimeout(() => (this._windowFocused = false));\n };\n /** Subject for stopping our InputModalityDetector subscription. */\n this._stopInputModalityDetector = new Subject();\n /**\n * Event listener for `focus` and 'blur' events on the document.\n * Needs to be an arrow function in order to preserve the context when it gets bound.\n */\n this._rootNodeFocusAndBlurListener = (event) => {\n const target = _getEventTarget(event);\n const handler = event.type === 'focus' ? this._onFocus : this._onBlur;\n // We need to walk up the ancestor chain in order to support `checkChildren`.\n for (let element = target; element; element = element.parentElement) {\n handler.call(this, event, element);\n }\n };\n this._document = document;\n this._detectionMode = (options === null || options === void 0 ? void 0 : options.detectionMode) || 0 /* IMMEDIATE */;\n }\n monitor(element, checkChildren = false) {\n const nativeElement = coerceElement(element);\n // Do nothing if we're not on the browser platform or the passed in node isn't an element.\n if (!this._platform.isBrowser || nativeElement.nodeType !== 1) {\n return of(null);\n }\n // If the element is inside the shadow DOM, we need to bind our focus/blur listeners to\n // the shadow root, rather than the `document`, because the browser won't emit focus events\n // to the `document`, if focus is moving within the same shadow root.\n const rootNode = _getShadowRoot(nativeElement) || this._getDocument();\n const cachedInfo = this._elementInfo.get(nativeElement);\n // Check if we're already monitoring this element.\n if (cachedInfo) {\n if (checkChildren) {\n // TODO(COMP-318): this can be problematic, because it'll turn all non-checkChildren\n // observers into ones that behave as if `checkChildren` was turned on. We need a more\n // robust solution.\n cachedInfo.checkChildren = true;\n }\n return cachedInfo.subject;\n }\n // Create monitored element info.\n const info = {\n checkChildren: checkChildren,\n subject: new Subject(),\n rootNode,\n };\n this._elementInfo.set(nativeElement, info);\n this._registerGlobalListeners(info);\n return info.subject;\n }\n stopMonitoring(element) {\n const nativeElement = coerceElement(element);\n const elementInfo = this._elementInfo.get(nativeElement);\n if (elementInfo) {\n elementInfo.subject.complete();\n this._setClasses(nativeElement);\n this._elementInfo.delete(nativeElement);\n this._removeGlobalListeners(elementInfo);\n }\n }\n focusVia(element, origin, options) {\n const nativeElement = coerceElement(element);\n const focusedElement = this._getDocument().activeElement;\n // If the element is focused already, calling `focus` again won't trigger the event listener\n // which means that the focus classes won't be updated. If that's the case, update the classes\n // directly without waiting for an event.\n if (nativeElement === focusedElement) {\n this._getClosestElementsInfo(nativeElement).forEach(([currentElement, info]) => this._originChanged(currentElement, origin, info));\n }\n else {\n this._setOrigin(origin);\n // `focus` isn't available on the server\n if (typeof nativeElement.focus === 'function') {\n nativeElement.focus(options);\n }\n }\n }\n ngOnDestroy() {\n this._elementInfo.forEach((_info, element) => this.stopMonitoring(element));\n }\n /** Access injected document if available or fallback to global document reference */\n _getDocument() {\n return this._document || document;\n }\n /** Use defaultView of injected document if available or fallback to global window reference */\n _getWindow() {\n const doc = this._getDocument();\n return doc.defaultView || window;\n }\n _getFocusOrigin(focusEventTarget) {\n if (this._origin) {\n // If the origin was realized via a touch interaction, we need to perform additional checks\n // to determine whether the focus origin should be attributed to touch or program.\n if (this._originFromTouchInteraction) {\n return this._shouldBeAttributedToTouch(focusEventTarget) ? 'touch' : 'program';\n }\n else {\n return this._origin;\n }\n }\n // If the window has just regained focus, we can restore the most recent origin from before the\n // window blurred. Otherwise, we've reached the point where we can't identify the source of the\n // focus. This typically means one of two things happened:\n //\n // 1) The element was programmatically focused, or\n // 2) The element was focused via screen reader navigation (which generally doesn't fire\n // events).\n //\n // Because we can't distinguish between these two cases, we default to setting `program`.\n return this._windowFocused && this._lastFocusOrigin ? this._lastFocusOrigin : 'program';\n }\n /**\n * Returns whether the focus event should be attributed to touch. Recall that in IMMEDIATE mode, a\n * touch origin isn't immediately reset at the next tick (see _setOrigin). This means that when we\n * handle a focus event following a touch interaction, we need to determine whether (1) the focus\n * event was directly caused by the touch interaction or (2) the focus event was caused by a\n * subsequent programmatic focus call triggered by the touch interaction.\n * @param focusEventTarget The target of the focus event under examination.\n */\n _shouldBeAttributedToTouch(focusEventTarget) {\n // Please note that this check is not perfect. Consider the following edge case:\n //\n //
    \n //
    \n //
    \n //\n // Suppose there is a FocusMonitor in IMMEDIATE mode attached to #parent. When the user touches\n // #child, #parent is programmatically focused. This code will attribute the focus to touch\n // instead of program. This is a relatively minor edge-case that can be worked around by using\n // focusVia(parent, 'program') to focus #parent.\n return (this._detectionMode === 1 /* EVENTUAL */ ||\n !!(focusEventTarget === null || focusEventTarget === void 0 ? void 0 : focusEventTarget.contains(this._inputModalityDetector._mostRecentTarget)));\n }\n /**\n * Sets the focus classes on the element based on the given focus origin.\n * @param element The element to update the classes on.\n * @param origin The focus origin.\n */\n _setClasses(element, origin) {\n element.classList.toggle('cdk-focused', !!origin);\n element.classList.toggle('cdk-touch-focused', origin === 'touch');\n element.classList.toggle('cdk-keyboard-focused', origin === 'keyboard');\n element.classList.toggle('cdk-mouse-focused', origin === 'mouse');\n element.classList.toggle('cdk-program-focused', origin === 'program');\n }\n /**\n * Updates the focus origin. If we're using immediate detection mode, we schedule an async\n * function to clear the origin at the end of a timeout. The duration of the timeout depends on\n * the origin being set.\n * @param origin The origin to set.\n * @param isFromInteraction Whether we are setting the origin from an interaction event.\n */\n _setOrigin(origin, isFromInteraction = false) {\n this._ngZone.runOutsideAngular(() => {\n this._origin = origin;\n this._originFromTouchInteraction = origin === 'touch' && isFromInteraction;\n // If we're in IMMEDIATE mode, reset the origin at the next tick (or in `TOUCH_BUFFER_MS` ms\n // for a touch event). We reset the origin at the next tick because Firefox focuses one tick\n // after the interaction event. We wait `TOUCH_BUFFER_MS` ms before resetting the origin for\n // a touch event because when a touch event is fired, the associated focus event isn't yet in\n // the event queue. Before doing so, clear any pending timeouts.\n if (this._detectionMode === 0 /* IMMEDIATE */) {\n clearTimeout(this._originTimeoutId);\n const ms = this._originFromTouchInteraction ? TOUCH_BUFFER_MS : 1;\n this._originTimeoutId = setTimeout(() => (this._origin = null), ms);\n }\n });\n }\n /**\n * Handles focus events on a registered element.\n * @param event The focus event.\n * @param element The monitored element.\n */\n _onFocus(event, element) {\n // NOTE(mmalerba): We currently set the classes based on the focus origin of the most recent\n // focus event affecting the monitored element. If we want to use the origin of the first event\n // instead we should check for the cdk-focused class here and return if the element already has\n // it. (This only matters for elements that have includesChildren = true).\n // If we are not counting child-element-focus as focused, make sure that the event target is the\n // monitored element itself.\n const elementInfo = this._elementInfo.get(element);\n const focusEventTarget = _getEventTarget(event);\n if (!elementInfo || (!elementInfo.checkChildren && element !== focusEventTarget)) {\n return;\n }\n this._originChanged(element, this._getFocusOrigin(focusEventTarget), elementInfo);\n }\n /**\n * Handles blur events on a registered element.\n * @param event The blur event.\n * @param element The monitored element.\n */\n _onBlur(event, element) {\n // If we are counting child-element-focus as focused, make sure that we aren't just blurring in\n // order to focus another child of the monitored element.\n const elementInfo = this._elementInfo.get(element);\n if (!elementInfo ||\n (elementInfo.checkChildren &&\n event.relatedTarget instanceof Node &&\n element.contains(event.relatedTarget))) {\n return;\n }\n this._setClasses(element);\n this._emitOrigin(elementInfo.subject, null);\n }\n _emitOrigin(subject, origin) {\n this._ngZone.run(() => subject.next(origin));\n }\n _registerGlobalListeners(elementInfo) {\n if (!this._platform.isBrowser) {\n return;\n }\n const rootNode = elementInfo.rootNode;\n const rootNodeFocusListeners = this._rootNodeFocusListenerCount.get(rootNode) || 0;\n if (!rootNodeFocusListeners) {\n this._ngZone.runOutsideAngular(() => {\n rootNode.addEventListener('focus', this._rootNodeFocusAndBlurListener, captureEventListenerOptions);\n rootNode.addEventListener('blur', this._rootNodeFocusAndBlurListener, captureEventListenerOptions);\n });\n }\n this._rootNodeFocusListenerCount.set(rootNode, rootNodeFocusListeners + 1);\n // Register global listeners when first element is monitored.\n if (++this._monitoredElementCount === 1) {\n // Note: we listen to events in the capture phase so we\n // can detect them even if the user stops propagation.\n this._ngZone.runOutsideAngular(() => {\n const window = this._getWindow();\n window.addEventListener('focus', this._windowFocusListener);\n });\n // The InputModalityDetector is also just a collection of global listeners.\n this._inputModalityDetector.modalityDetected\n .pipe(takeUntil(this._stopInputModalityDetector))\n .subscribe(modality => {\n this._setOrigin(modality, true /* isFromInteraction */);\n });\n }\n }\n _removeGlobalListeners(elementInfo) {\n const rootNode = elementInfo.rootNode;\n if (this._rootNodeFocusListenerCount.has(rootNode)) {\n const rootNodeFocusListeners = this._rootNodeFocusListenerCount.get(rootNode);\n if (rootNodeFocusListeners > 1) {\n this._rootNodeFocusListenerCount.set(rootNode, rootNodeFocusListeners - 1);\n }\n else {\n rootNode.removeEventListener('focus', this._rootNodeFocusAndBlurListener, captureEventListenerOptions);\n rootNode.removeEventListener('blur', this._rootNodeFocusAndBlurListener, captureEventListenerOptions);\n this._rootNodeFocusListenerCount.delete(rootNode);\n }\n }\n // Unregister global listeners when last element is unmonitored.\n if (!--this._monitoredElementCount) {\n const window = this._getWindow();\n window.removeEventListener('focus', this._windowFocusListener);\n // Equivalently, stop our InputModalityDetector subscription.\n this._stopInputModalityDetector.next();\n // Clear timeouts for all potentially pending timeouts to prevent the leaks.\n clearTimeout(this._windowFocusTimeoutId);\n clearTimeout(this._originTimeoutId);\n }\n }\n /** Updates all the state on an element once its focus origin has changed. */\n _originChanged(element, origin, elementInfo) {\n this._setClasses(element, origin);\n this._emitOrigin(elementInfo.subject, origin);\n this._lastFocusOrigin = origin;\n }\n /**\n * Collects the `MonitoredElementInfo` of a particular element and\n * all of its ancestors that have enabled `checkChildren`.\n * @param element Element from which to start the search.\n */\n _getClosestElementsInfo(element) {\n const results = [];\n this._elementInfo.forEach((info, currentElement) => {\n if (currentElement === element || (info.checkChildren && currentElement.contains(element))) {\n results.push([currentElement, info]);\n }\n });\n return results;\n }\n}\nFocusMonitor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: FocusMonitor, deps: [{ token: i0.NgZone }, { token: i1.Platform }, { token: InputModalityDetector }, { token: DOCUMENT, optional: true }, { token: FOCUS_MONITOR_DEFAULT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nFocusMonitor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: FocusMonitor, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: FocusMonitor, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () {\n return [{ type: i0.NgZone }, { type: i1.Platform }, { type: InputModalityDetector }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [FOCUS_MONITOR_DEFAULT_OPTIONS]\n }] }];\n } });\n/**\n * Directive that determines how a particular element was focused (via keyboard, mouse, touch, or\n * programmatically) and adds corresponding classes to the element.\n *\n * There are two variants of this directive:\n * 1) cdkMonitorElementFocus: does not consider an element to be focused if one of its children is\n * focused.\n * 2) cdkMonitorSubtreeFocus: considers an element focused if it or any of its children are focused.\n */\nclass CdkMonitorFocus {\n constructor(_elementRef, _focusMonitor) {\n this._elementRef = _elementRef;\n this._focusMonitor = _focusMonitor;\n this.cdkFocusChange = new EventEmitter();\n }\n ngAfterViewInit() {\n const element = this._elementRef.nativeElement;\n this._monitorSubscription = this._focusMonitor\n .monitor(element, element.nodeType === 1 && element.hasAttribute('cdkMonitorSubtreeFocus'))\n .subscribe(origin => this.cdkFocusChange.emit(origin));\n }\n ngOnDestroy() {\n this._focusMonitor.stopMonitoring(this._elementRef);\n if (this._monitorSubscription) {\n this._monitorSubscription.unsubscribe();\n }\n }\n}\nCdkMonitorFocus.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CdkMonitorFocus, deps: [{ token: i0.ElementRef }, { token: FocusMonitor }], target: i0.ɵɵFactoryTarget.Directive });\nCdkMonitorFocus.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.0\", type: CdkMonitorFocus, selector: \"[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]\", outputs: { cdkFocusChange: \"cdkFocusChange\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CdkMonitorFocus, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]',\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: FocusMonitor }]; }, propDecorators: { cdkFocusChange: [{\n type: Output\n }] } });\n\n/** CSS class applied to the document body when in black-on-white high-contrast mode. */\nconst BLACK_ON_WHITE_CSS_CLASS = 'cdk-high-contrast-black-on-white';\n/** CSS class applied to the document body when in white-on-black high-contrast mode. */\nconst WHITE_ON_BLACK_CSS_CLASS = 'cdk-high-contrast-white-on-black';\n/** CSS class applied to the document body when in high-contrast mode. */\nconst HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS = 'cdk-high-contrast-active';\n/**\n * Service to determine whether the browser is currently in a high-contrast-mode environment.\n *\n * Microsoft Windows supports an accessibility feature called \"High Contrast Mode\". This mode\n * changes the appearance of all applications, including web applications, to dramatically increase\n * contrast.\n *\n * IE, Edge, and Firefox currently support this mode. Chrome does not support Windows High Contrast\n * Mode. This service does not detect high-contrast mode as added by the Chrome \"High Contrast\"\n * browser extension.\n */\nclass HighContrastModeDetector {\n constructor(_platform, document) {\n this._platform = _platform;\n this._document = document;\n }\n /** Gets the current high-contrast-mode for the page. */\n getHighContrastMode() {\n if (!this._platform.isBrowser) {\n return 0 /* NONE */;\n }\n // Create a test element with an arbitrary background-color that is neither black nor\n // white; high-contrast mode will coerce the color to either black or white. Also ensure that\n // appending the test element to the DOM does not affect layout by absolutely positioning it\n const testElement = this._document.createElement('div');\n testElement.style.backgroundColor = 'rgb(1,2,3)';\n testElement.style.position = 'absolute';\n this._document.body.appendChild(testElement);\n // Get the computed style for the background color, collapsing spaces to normalize between\n // browsers. Once we get this color, we no longer need the test element. Access the `window`\n // via the document so we can fake it in tests. Note that we have extra null checks, because\n // this logic will likely run during app bootstrap and throwing can break the entire app.\n const documentWindow = this._document.defaultView || window;\n const computedStyle = documentWindow && documentWindow.getComputedStyle\n ? documentWindow.getComputedStyle(testElement)\n : null;\n const computedColor = ((computedStyle && computedStyle.backgroundColor) || '').replace(/ /g, '');\n testElement.remove();\n switch (computedColor) {\n case 'rgb(0,0,0)':\n return 2 /* WHITE_ON_BLACK */;\n case 'rgb(255,255,255)':\n return 1 /* BLACK_ON_WHITE */;\n }\n return 0 /* NONE */;\n }\n /** Applies CSS classes indicating high-contrast mode to document body (browser-only). */\n _applyBodyHighContrastModeCssClasses() {\n if (!this._hasCheckedHighContrastMode && this._platform.isBrowser && this._document.body) {\n const bodyClasses = this._document.body.classList;\n // IE11 doesn't support `classList` operations with multiple arguments\n bodyClasses.remove(HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS);\n bodyClasses.remove(BLACK_ON_WHITE_CSS_CLASS);\n bodyClasses.remove(WHITE_ON_BLACK_CSS_CLASS);\n this._hasCheckedHighContrastMode = true;\n const mode = this.getHighContrastMode();\n if (mode === 1 /* BLACK_ON_WHITE */) {\n bodyClasses.add(HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS);\n bodyClasses.add(BLACK_ON_WHITE_CSS_CLASS);\n }\n else if (mode === 2 /* WHITE_ON_BLACK */) {\n bodyClasses.add(HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS);\n bodyClasses.add(WHITE_ON_BLACK_CSS_CLASS);\n }\n }\n }\n}\nHighContrastModeDetector.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: HighContrastModeDetector, deps: [{ token: i1.Platform }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nHighContrastModeDetector.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: HighContrastModeDetector, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: HighContrastModeDetector, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () {\n return [{ type: i1.Platform }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }];\n } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass A11yModule {\n constructor(highContrastModeDetector) {\n highContrastModeDetector._applyBodyHighContrastModeCssClasses();\n }\n}\nA11yModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: A11yModule, deps: [{ token: HighContrastModeDetector }], target: i0.ɵɵFactoryTarget.NgModule });\nA11yModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: A11yModule, declarations: [CdkAriaLive, CdkTrapFocus, CdkMonitorFocus], imports: [ObserversModule], exports: [CdkAriaLive, CdkTrapFocus, CdkMonitorFocus] });\nA11yModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: A11yModule, imports: [[ObserversModule]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: A11yModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [ObserversModule],\n declarations: [CdkAriaLive, CdkTrapFocus, CdkMonitorFocus],\n exports: [CdkAriaLive, CdkTrapFocus, CdkMonitorFocus],\n }]\n }], ctorParameters: function () { return [{ type: HighContrastModeDetector }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { A11yModule, ActiveDescendantKeyManager, AriaDescriber, CDK_DESCRIBEDBY_HOST_ATTRIBUTE, CDK_DESCRIBEDBY_ID_PREFIX, CdkAriaLive, CdkMonitorFocus, CdkTrapFocus, ConfigurableFocusTrap, ConfigurableFocusTrapFactory, EventListenerFocusTrapInertStrategy, FOCUS_MONITOR_DEFAULT_OPTIONS, FOCUS_TRAP_INERT_STRATEGY, FocusKeyManager, FocusMonitor, FocusTrap, FocusTrapFactory, HighContrastModeDetector, INPUT_MODALITY_DETECTOR_DEFAULT_OPTIONS, INPUT_MODALITY_DETECTOR_OPTIONS, InputModalityDetector, InteractivityChecker, IsFocusableConfig, LIVE_ANNOUNCER_DEFAULT_OPTIONS, LIVE_ANNOUNCER_ELEMENT_TOKEN, LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY, ListKeyManager, LiveAnnouncer, MESSAGES_CONTAINER_ID, isFakeMousedownFromScreenReader, isFakeTouchstartFromScreenReader };\n","import * as i0 from '@angular/core';\nimport { InjectionToken, inject, EventEmitter, Injectable, Optional, Inject, Directive, Output, Input, NgModule } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Injection token used to inject the document into Directionality.\n * This is used so that the value can be faked in tests.\n *\n * We can't use the real document in tests because changing the real `dir` causes geometry-based\n * tests in Safari to fail.\n *\n * We also can't re-provide the DOCUMENT token from platform-brower because the unit tests\n * themselves use things like `querySelector` in test code.\n *\n * This token is defined in a separate file from Directionality as a workaround for\n * https://github.com/angular/angular/issues/22559\n *\n * @docs-private\n */\nconst DIR_DOCUMENT = new InjectionToken('cdk-dir-doc', {\n providedIn: 'root',\n factory: DIR_DOCUMENT_FACTORY,\n});\n/** @docs-private */\nfunction DIR_DOCUMENT_FACTORY() {\n return inject(DOCUMENT);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Regex that matches locales with an RTL script. Taken from `goog.i18n.bidi.isRtlLanguage`. */\nconst RTL_LOCALE_PATTERN = /^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;\n/** Resolves a string value to a specific direction. */\nfunction _resolveDirectionality(rawValue) {\n const value = (rawValue === null || rawValue === void 0 ? void 0 : rawValue.toLowerCase()) || '';\n if (value === 'auto' && typeof navigator !== 'undefined' && (navigator === null || navigator === void 0 ? void 0 : navigator.language)) {\n return RTL_LOCALE_PATTERN.test(navigator.language) ? 'rtl' : 'ltr';\n }\n return value === 'rtl' ? 'rtl' : 'ltr';\n}\n/**\n * The directionality (LTR / RTL) context for the application (or a subtree of it).\n * Exposes the current direction and a stream of direction changes.\n */\nclass Directionality {\n constructor(_document) {\n /** The current 'ltr' or 'rtl' value. */\n this.value = 'ltr';\n /** Stream that emits whenever the 'ltr' / 'rtl' state changes. */\n this.change = new EventEmitter();\n if (_document) {\n const bodyDir = _document.body ? _document.body.dir : null;\n const htmlDir = _document.documentElement ? _document.documentElement.dir : null;\n this.value = _resolveDirectionality(bodyDir || htmlDir || 'ltr');\n }\n }\n ngOnDestroy() {\n this.change.complete();\n }\n}\nDirectionality.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: Directionality, deps: [{ token: DIR_DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nDirectionality.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: Directionality, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: Directionality, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DIR_DOCUMENT]\n }] }];\n } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Directive to listen for changes of direction of part of the DOM.\n *\n * Provides itself as Directionality such that descendant directives only need to ever inject\n * Directionality to get the closest direction.\n */\nclass Dir {\n constructor() {\n /** Normalized direction that accounts for invalid/unsupported values. */\n this._dir = 'ltr';\n /** Whether the `value` has been set to its initial value. */\n this._isInitialized = false;\n /** Event emitted when the direction changes. */\n this.change = new EventEmitter();\n }\n /** @docs-private */\n get dir() {\n return this._dir;\n }\n set dir(value) {\n const previousValue = this._dir;\n // Note: `_resolveDirectionality` resolves the language based on the browser's language,\n // whereas the browser does it based on the content of the element. Since doing so based\n // on the content can be expensive, for now we're doing the simpler matching.\n this._dir = _resolveDirectionality(value);\n this._rawDir = value;\n if (previousValue !== this._dir && this._isInitialized) {\n this.change.emit(this._dir);\n }\n }\n /** Current layout direction of the element. */\n get value() {\n return this.dir;\n }\n /** Initialize once default value has been set. */\n ngAfterContentInit() {\n this._isInitialized = true;\n }\n ngOnDestroy() {\n this.change.complete();\n }\n}\nDir.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: Dir, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nDir.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.0\", type: Dir, selector: \"[dir]\", inputs: { dir: \"dir\" }, outputs: { change: \"dirChange\" }, host: { properties: { \"attr.dir\": \"_rawDir\" } }, providers: [{ provide: Directionality, useExisting: Dir }], exportAs: [\"dir\"], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: Dir, decorators: [{\n type: Directive,\n args: [{\n selector: '[dir]',\n providers: [{ provide: Directionality, useExisting: Dir }],\n host: { '[attr.dir]': '_rawDir' },\n exportAs: 'dir',\n }]\n }], propDecorators: { change: [{\n type: Output,\n args: ['dirChange']\n }], dir: [{\n type: Input\n }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass BidiModule {\n}\nBidiModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: BidiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nBidiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: BidiModule, declarations: [Dir], exports: [Dir] });\nBidiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: BidiModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: BidiModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [Dir],\n declarations: [Dir],\n }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BidiModule, DIR_DOCUMENT, Dir, Directionality };\n","import { Version } from '@angular/core';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Current version of the Angular Component Development Kit. */\nconst VERSION = new Version('13.3.1');\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport { VERSION };\n","import { ElementRef } from '@angular/core';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Coerces a data-bound value (typically a string) to a boolean. */\nfunction coerceBooleanProperty(value) {\n return value != null && `${value}` !== 'false';\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction coerceNumberProperty(value, fallbackValue = 0) {\n return _isNumberValue(value) ? Number(value) : fallbackValue;\n}\n/**\n * Whether the provided value is considered a number.\n * @docs-private\n */\nfunction _isNumberValue(value) {\n // parseFloat(value) handles most of the cases we're interested in (it treats null, empty string,\n // and other non-number values as NaN, where Number just uses 0) but it considers the string\n // '123hello' to be a valid number. Therefore we also check if Number(value) is NaN.\n return !isNaN(parseFloat(value)) && !isNaN(Number(value));\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction coerceArray(value) {\n return Array.isArray(value) ? value : [value];\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Coerces a value to a CSS pixel value. */\nfunction coerceCssPixelValue(value) {\n if (value == null) {\n return '';\n }\n return typeof value === 'string' ? value : `${value}px`;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source 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 * Coerces an ElementRef or an Element into an element.\n * Useful for APIs that can accept either a ref or the native element itself.\n */\nfunction coerceElement(elementOrRef) {\n return elementOrRef instanceof ElementRef ? elementOrRef.nativeElement : elementOrRef;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source 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 * Coerces a value to an array of trimmed non-empty strings.\n * Any input that is not an array, `null` or `undefined` will be turned into a string\n * via `toString()` and subsequently split with the given separator.\n * `null` and `undefined` will result in an empty array.\n * This results in the following outcomes:\n * - `null` -> `[]`\n * - `[null]` -> `[\"null\"]`\n * - `[\"a\", \"b \", \" \"]` -> `[\"a\", \"b\"]`\n * - `[1, [2, 3]]` -> `[\"1\", \"2,3\"]`\n * - `[{ a: 0 }]` -> `[\"[object Object]\"]`\n * - `{ a: 0 }` -> `[\"[object\", \"Object]\"]`\n *\n * Useful for defining CSS classes or table columns.\n * @param value the value to coerce into an array of strings\n * @param separator split-separator if value isn't an array\n */\nfunction coerceStringArray(value, separator = /\\s+/) {\n const result = [];\n if (value != null) {\n const sourceValues = Array.isArray(value) ? value : `${value}`.split(separator);\n for (const sourceValue of sourceValues) {\n const trimmedString = `${sourceValue}`.trim();\n if (trimmedString) {\n result.push(trimmedString);\n }\n }\n }\n return result;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport { _isNumberValue, coerceArray, coerceBooleanProperty, coerceCssPixelValue, coerceElement, coerceNumberProperty, coerceStringArray };\n","import { isObservable, of, Subject } from 'rxjs';\nimport * as i0 from '@angular/core';\nimport { Injectable, InjectionToken } from '@angular/core';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass DataSource {\n}\n/** Checks whether an object is a data source. */\nfunction isDataSource(value) {\n // Check if the value is a DataSource by observing if it has a connect function. Cannot\n // be checked as an `instanceof DataSource` since people could create their own sources\n // that match the interface, but don't extend DataSource.\n return value && typeof value.connect === 'function';\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** DataSource wrapper for a native array. */\nclass ArrayDataSource extends DataSource {\n constructor(_data) {\n super();\n this._data = _data;\n }\n connect() {\n return isObservable(this._data) ? this._data : of(this._data);\n }\n disconnect() { }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A repeater that destroys views when they are removed from a\n * {@link ViewContainerRef}. When new items are inserted into the container,\n * the repeater will always construct a new embedded view for each item.\n *\n * @template T The type for the embedded view's $implicit property.\n * @template R The type for the item in each IterableDiffer change record.\n * @template C The type for the context passed to each embedded view.\n */\nclass _DisposeViewRepeaterStrategy {\n applyChanges(changes, viewContainerRef, itemContextFactory, itemValueResolver, itemViewChanged) {\n changes.forEachOperation((record, adjustedPreviousIndex, currentIndex) => {\n let view;\n let operation;\n if (record.previousIndex == null) {\n const insertContext = itemContextFactory(record, adjustedPreviousIndex, currentIndex);\n view = viewContainerRef.createEmbeddedView(insertContext.templateRef, insertContext.context, insertContext.index);\n operation = 1 /* INSERTED */;\n }\n else if (currentIndex == null) {\n viewContainerRef.remove(adjustedPreviousIndex);\n operation = 3 /* REMOVED */;\n }\n else {\n view = viewContainerRef.get(adjustedPreviousIndex);\n viewContainerRef.move(view, currentIndex);\n operation = 2 /* MOVED */;\n }\n if (itemViewChanged) {\n itemViewChanged({\n context: view === null || view === void 0 ? void 0 : view.context,\n operation,\n record,\n });\n }\n });\n }\n detach() { }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A repeater that caches views when they are removed from a\n * {@link ViewContainerRef}. When new items are inserted into the container,\n * the repeater will reuse one of the cached views instead of creating a new\n * embedded view. Recycling cached views reduces the quantity of expensive DOM\n * inserts.\n *\n * @template T The type for the embedded view's $implicit property.\n * @template R The type for the item in each IterableDiffer change record.\n * @template C The type for the context passed to each embedded view.\n */\nclass _RecycleViewRepeaterStrategy {\n constructor() {\n /**\n * The size of the cache used to store unused views.\n * Setting the cache size to `0` will disable caching. Defaults to 20 views.\n */\n this.viewCacheSize = 20;\n /**\n * View cache that stores embedded view instances that have been previously stamped out,\n * but don't are not currently rendered. The view repeater will reuse these views rather than\n * creating brand new ones.\n *\n * TODO(michaeljamesparsons) Investigate whether using a linked list would improve performance.\n */\n this._viewCache = [];\n }\n /** Apply changes to the DOM. */\n applyChanges(changes, viewContainerRef, itemContextFactory, itemValueResolver, itemViewChanged) {\n // Rearrange the views to put them in the right location.\n changes.forEachOperation((record, adjustedPreviousIndex, currentIndex) => {\n let view;\n let operation;\n if (record.previousIndex == null) {\n // Item added.\n const viewArgsFactory = () => itemContextFactory(record, adjustedPreviousIndex, currentIndex);\n view = this._insertView(viewArgsFactory, currentIndex, viewContainerRef, itemValueResolver(record));\n operation = view ? 1 /* INSERTED */ : 0 /* REPLACED */;\n }\n else if (currentIndex == null) {\n // Item removed.\n this._detachAndCacheView(adjustedPreviousIndex, viewContainerRef);\n operation = 3 /* REMOVED */;\n }\n else {\n // Item moved.\n view = this._moveView(adjustedPreviousIndex, currentIndex, viewContainerRef, itemValueResolver(record));\n operation = 2 /* MOVED */;\n }\n if (itemViewChanged) {\n itemViewChanged({\n context: view === null || view === void 0 ? void 0 : view.context,\n operation,\n record,\n });\n }\n });\n }\n detach() {\n for (const view of this._viewCache) {\n view.destroy();\n }\n this._viewCache = [];\n }\n /**\n * Inserts a view for a new item, either from the cache or by creating a new\n * one. Returns `undefined` if the item was inserted into a cached view.\n */\n _insertView(viewArgsFactory, currentIndex, viewContainerRef, value) {\n const cachedView = this._insertViewFromCache(currentIndex, viewContainerRef);\n if (cachedView) {\n cachedView.context.$implicit = value;\n return undefined;\n }\n const viewArgs = viewArgsFactory();\n return viewContainerRef.createEmbeddedView(viewArgs.templateRef, viewArgs.context, viewArgs.index);\n }\n /** Detaches the view at the given index and inserts into the view cache. */\n _detachAndCacheView(index, viewContainerRef) {\n const detachedView = viewContainerRef.detach(index);\n this._maybeCacheView(detachedView, viewContainerRef);\n }\n /** Moves view at the previous index to the current index. */\n _moveView(adjustedPreviousIndex, currentIndex, viewContainerRef, value) {\n const view = viewContainerRef.get(adjustedPreviousIndex);\n viewContainerRef.move(view, currentIndex);\n view.context.$implicit = value;\n return view;\n }\n /**\n * Cache the given detached view. If the cache is full, the view will be\n * destroyed.\n */\n _maybeCacheView(view, viewContainerRef) {\n if (this._viewCache.length < this.viewCacheSize) {\n this._viewCache.push(view);\n }\n else {\n const index = viewContainerRef.indexOf(view);\n // The host component could remove views from the container outside of\n // the view repeater. It's unlikely this will occur, but just in case,\n // destroy the view on its own, otherwise destroy it through the\n // container to ensure that all the references are removed.\n if (index === -1) {\n view.destroy();\n }\n else {\n viewContainerRef.remove(index);\n }\n }\n }\n /** Inserts a recycled view from the cache at the given index. */\n _insertViewFromCache(index, viewContainerRef) {\n const cachedView = this._viewCache.pop();\n if (cachedView) {\n viewContainerRef.insert(cachedView, index);\n }\n return cachedView || null;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Class to be used to power selecting one or more options from a list.\n */\nclass SelectionModel {\n constructor(_multiple = false, initiallySelectedValues, _emitChanges = true) {\n this._multiple = _multiple;\n this._emitChanges = _emitChanges;\n /** Currently-selected values. */\n this._selection = new Set();\n /** Keeps track of the deselected options that haven't been emitted by the change event. */\n this._deselectedToEmit = [];\n /** Keeps track of the selected options that haven't been emitted by the change event. */\n this._selectedToEmit = [];\n /** Event emitted when the value has changed. */\n this.changed = new Subject();\n if (initiallySelectedValues && initiallySelectedValues.length) {\n if (_multiple) {\n initiallySelectedValues.forEach(value => this._markSelected(value));\n }\n else {\n this._markSelected(initiallySelectedValues[0]);\n }\n // Clear the array in order to avoid firing the change event for preselected values.\n this._selectedToEmit.length = 0;\n }\n }\n /** Selected values. */\n get selected() {\n if (!this._selected) {\n this._selected = Array.from(this._selection.values());\n }\n return this._selected;\n }\n /**\n * Selects a value or an array of values.\n */\n select(...values) {\n this._verifyValueAssignment(values);\n values.forEach(value => this._markSelected(value));\n this._emitChangeEvent();\n }\n /**\n * Deselects a value or an array of values.\n */\n deselect(...values) {\n this._verifyValueAssignment(values);\n values.forEach(value => this._unmarkSelected(value));\n this._emitChangeEvent();\n }\n /**\n * Toggles a value between selected and deselected.\n */\n toggle(value) {\n this.isSelected(value) ? this.deselect(value) : this.select(value);\n }\n /**\n * Clears all of the selected values.\n */\n clear() {\n this._unmarkAll();\n this._emitChangeEvent();\n }\n /**\n * Determines whether a value is selected.\n */\n isSelected(value) {\n return this._selection.has(value);\n }\n /**\n * Determines whether the model does not have a value.\n */\n isEmpty() {\n return this._selection.size === 0;\n }\n /**\n * Determines whether the model has a value.\n */\n hasValue() {\n return !this.isEmpty();\n }\n /**\n * Sorts the selected values based on a predicate function.\n */\n sort(predicate) {\n if (this._multiple && this.selected) {\n this._selected.sort(predicate);\n }\n }\n /**\n * Gets whether multiple values can be selected.\n */\n isMultipleSelection() {\n return this._multiple;\n }\n /** Emits a change event and clears the records of selected and deselected values. */\n _emitChangeEvent() {\n // Clear the selected values so they can be re-cached.\n this._selected = null;\n if (this._selectedToEmit.length || this._deselectedToEmit.length) {\n this.changed.next({\n source: this,\n added: this._selectedToEmit,\n removed: this._deselectedToEmit,\n });\n this._deselectedToEmit = [];\n this._selectedToEmit = [];\n }\n }\n /** Selects a value. */\n _markSelected(value) {\n if (!this.isSelected(value)) {\n if (!this._multiple) {\n this._unmarkAll();\n }\n this._selection.add(value);\n if (this._emitChanges) {\n this._selectedToEmit.push(value);\n }\n }\n }\n /** Deselects a value. */\n _unmarkSelected(value) {\n if (this.isSelected(value)) {\n this._selection.delete(value);\n if (this._emitChanges) {\n this._deselectedToEmit.push(value);\n }\n }\n }\n /** Clears out the selected values. */\n _unmarkAll() {\n if (!this.isEmpty()) {\n this._selection.forEach(value => this._unmarkSelected(value));\n }\n }\n /**\n * Verifies the value assignment and throws an error if the specified value array is\n * including multiple values while the selection model is not supporting multiple values.\n */\n _verifyValueAssignment(values) {\n if (values.length > 1 && !this._multiple && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMultipleValuesInSingleSelectionError();\n }\n }\n}\n/**\n * Returns an error that reports that multiple values are passed into a selection model\n * with a single value.\n * @docs-private\n */\nfunction getMultipleValuesInSingleSelectionError() {\n return Error('Cannot pass multiple values into SelectionModel with single-value mode.');\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Class to coordinate unique selection based on name.\n * Intended to be consumed as an Angular service.\n * This service is needed because native radio change events are only fired on the item currently\n * being selected, and we still need to uncheck the previous selection.\n *\n * This service does not *store* any IDs and names because they may change at any time, so it is\n * less error-prone if they are simply passed through when the events occur.\n */\nclass UniqueSelectionDispatcher {\n constructor() {\n this._listeners = [];\n }\n /**\n * Notify other items that selection for the given name has been set.\n * @param id ID of the item.\n * @param name Name of the item.\n */\n notify(id, name) {\n for (let listener of this._listeners) {\n listener(id, name);\n }\n }\n /**\n * Listen for future changes to item selection.\n * @return Function used to deregister listener\n */\n listen(listener) {\n this._listeners.push(listener);\n return () => {\n this._listeners = this._listeners.filter((registered) => {\n return listener !== registered;\n });\n };\n }\n ngOnDestroy() {\n this._listeners = [];\n }\n}\nUniqueSelectionDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: UniqueSelectionDispatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nUniqueSelectionDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: UniqueSelectionDispatcher, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: UniqueSelectionDispatcher, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Injection token for {@link _ViewRepeater}. This token is for use by Angular Material only.\n * @docs-private\n */\nconst _VIEW_REPEATER_STRATEGY = new InjectionToken('_ViewRepeater');\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ArrayDataSource, DataSource, SelectionModel, UniqueSelectionDispatcher, _DisposeViewRepeaterStrategy, _RecycleViewRepeaterStrategy, _VIEW_REPEATER_STRATEGY, getMultipleValuesInSingleSelectionError, isDataSource };\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst MAC_ENTER = 3;\nconst BACKSPACE = 8;\nconst TAB = 9;\nconst NUM_CENTER = 12;\nconst ENTER = 13;\nconst SHIFT = 16;\nconst CONTROL = 17;\nconst ALT = 18;\nconst PAUSE = 19;\nconst CAPS_LOCK = 20;\nconst ESCAPE = 27;\nconst SPACE = 32;\nconst PAGE_UP = 33;\nconst PAGE_DOWN = 34;\nconst END = 35;\nconst HOME = 36;\nconst LEFT_ARROW = 37;\nconst UP_ARROW = 38;\nconst RIGHT_ARROW = 39;\nconst DOWN_ARROW = 40;\nconst PLUS_SIGN = 43;\nconst PRINT_SCREEN = 44;\nconst INSERT = 45;\nconst DELETE = 46;\nconst ZERO = 48;\nconst ONE = 49;\nconst TWO = 50;\nconst THREE = 51;\nconst FOUR = 52;\nconst FIVE = 53;\nconst SIX = 54;\nconst SEVEN = 55;\nconst EIGHT = 56;\nconst NINE = 57;\nconst FF_SEMICOLON = 59; // Firefox (Gecko) fires this for semicolon instead of 186\nconst FF_EQUALS = 61; // Firefox (Gecko) fires this for equals instead of 187\nconst QUESTION_MARK = 63;\nconst AT_SIGN = 64;\nconst A = 65;\nconst B = 66;\nconst C = 67;\nconst D = 68;\nconst E = 69;\nconst F = 70;\nconst G = 71;\nconst H = 72;\nconst I = 73;\nconst J = 74;\nconst K = 75;\nconst L = 76;\nconst M = 77;\nconst N = 78;\nconst O = 79;\nconst P = 80;\nconst Q = 81;\nconst R = 82;\nconst S = 83;\nconst T = 84;\nconst U = 85;\nconst V = 86;\nconst W = 87;\nconst X = 88;\nconst Y = 89;\nconst Z = 90;\nconst META = 91; // WIN_KEY_LEFT\nconst MAC_WK_CMD_LEFT = 91;\nconst MAC_WK_CMD_RIGHT = 93;\nconst CONTEXT_MENU = 93;\nconst NUMPAD_ZERO = 96;\nconst NUMPAD_ONE = 97;\nconst NUMPAD_TWO = 98;\nconst NUMPAD_THREE = 99;\nconst NUMPAD_FOUR = 100;\nconst NUMPAD_FIVE = 101;\nconst NUMPAD_SIX = 102;\nconst NUMPAD_SEVEN = 103;\nconst NUMPAD_EIGHT = 104;\nconst NUMPAD_NINE = 105;\nconst NUMPAD_MULTIPLY = 106;\nconst NUMPAD_PLUS = 107;\nconst NUMPAD_MINUS = 109;\nconst NUMPAD_PERIOD = 110;\nconst NUMPAD_DIVIDE = 111;\nconst F1 = 112;\nconst F2 = 113;\nconst F3 = 114;\nconst F4 = 115;\nconst F5 = 116;\nconst F6 = 117;\nconst F7 = 118;\nconst F8 = 119;\nconst F9 = 120;\nconst F10 = 121;\nconst F11 = 122;\nconst F12 = 123;\nconst NUM_LOCK = 144;\nconst SCROLL_LOCK = 145;\nconst FIRST_MEDIA = 166;\nconst FF_MINUS = 173;\nconst MUTE = 173; // Firefox (Gecko) fires 181 for MUTE\nconst VOLUME_DOWN = 174; // Firefox (Gecko) fires 182 for VOLUME_DOWN\nconst VOLUME_UP = 175; // Firefox (Gecko) fires 183 for VOLUME_UP\nconst FF_MUTE = 181;\nconst FF_VOLUME_DOWN = 182;\nconst LAST_MEDIA = 183;\nconst FF_VOLUME_UP = 183;\nconst SEMICOLON = 186; // Firefox (Gecko) fires 59 for SEMICOLON\nconst EQUALS = 187; // Firefox (Gecko) fires 61 for EQUALS\nconst COMMA = 188;\nconst DASH = 189; // Firefox (Gecko) fires 173 for DASH/MINUS\nconst PERIOD = 190;\nconst SLASH = 191;\nconst APOSTROPHE = 192;\nconst TILDE = 192;\nconst OPEN_SQUARE_BRACKET = 219;\nconst BACKSLASH = 220;\nconst CLOSE_SQUARE_BRACKET = 221;\nconst SINGLE_QUOTE = 222;\nconst MAC_META = 224;\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Checks whether a modifier key is pressed.\n * @param event Event to be checked.\n */\nfunction hasModifierKey(event, ...modifiers) {\n if (modifiers.length) {\n return modifiers.some(modifier => event[modifier]);\n }\n return event.altKey || event.shiftKey || event.ctrlKey || event.metaKey;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { A, ALT, APOSTROPHE, AT_SIGN, B, BACKSLASH, BACKSPACE, C, CAPS_LOCK, CLOSE_SQUARE_BRACKET, COMMA, CONTEXT_MENU, CONTROL, D, DASH, DELETE, DOWN_ARROW, E, EIGHT, END, ENTER, EQUALS, ESCAPE, F, F1, F10, F11, F12, F2, F3, F4, F5, F6, F7, F8, F9, FF_EQUALS, FF_MINUS, FF_MUTE, FF_SEMICOLON, FF_VOLUME_DOWN, FF_VOLUME_UP, FIRST_MEDIA, FIVE, FOUR, G, H, HOME, I, INSERT, J, K, L, LAST_MEDIA, LEFT_ARROW, M, MAC_ENTER, MAC_META, MAC_WK_CMD_LEFT, MAC_WK_CMD_RIGHT, META, MUTE, N, NINE, NUMPAD_DIVIDE, NUMPAD_EIGHT, NUMPAD_FIVE, NUMPAD_FOUR, NUMPAD_MINUS, NUMPAD_MULTIPLY, NUMPAD_NINE, NUMPAD_ONE, NUMPAD_PERIOD, NUMPAD_PLUS, NUMPAD_SEVEN, NUMPAD_SIX, NUMPAD_THREE, NUMPAD_TWO, NUMPAD_ZERO, NUM_CENTER, NUM_LOCK, O, ONE, OPEN_SQUARE_BRACKET, P, PAGE_DOWN, PAGE_UP, PAUSE, PERIOD, PLUS_SIGN, PRINT_SCREEN, Q, QUESTION_MARK, R, RIGHT_ARROW, S, SCROLL_LOCK, SEMICOLON, SEVEN, SHIFT, SINGLE_QUOTE, SIX, SLASH, SPACE, T, TAB, THREE, TILDE, TWO, U, UP_ARROW, V, VOLUME_DOWN, VOLUME_UP, W, X, Y, Z, ZERO, hasModifierKey };\n","import { coerceElement, coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\nimport * as i0 from '@angular/core';\nimport { Injectable, EventEmitter, Directive, Output, Input, NgModule } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Factory that creates a new MutationObserver and allows us to stub it out in unit tests.\n * @docs-private\n */\nclass MutationObserverFactory {\n create(callback) {\n return typeof MutationObserver === 'undefined' ? null : new MutationObserver(callback);\n }\n}\nMutationObserverFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: MutationObserverFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nMutationObserverFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: MutationObserverFactory, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: MutationObserverFactory, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n/** An injectable service that allows watching elements for changes to their content. */\nclass ContentObserver {\n constructor(_mutationObserverFactory) {\n this._mutationObserverFactory = _mutationObserverFactory;\n /** Keeps track of the existing MutationObservers so they can be reused. */\n this._observedElements = new Map();\n }\n ngOnDestroy() {\n this._observedElements.forEach((_, element) => this._cleanupObserver(element));\n }\n observe(elementOrRef) {\n const element = coerceElement(elementOrRef);\n return new Observable((observer) => {\n const stream = this._observeElement(element);\n const subscription = stream.subscribe(observer);\n return () => {\n subscription.unsubscribe();\n this._unobserveElement(element);\n };\n });\n }\n /**\n * Observes the given element by using the existing MutationObserver if available, or creating a\n * new one if not.\n */\n _observeElement(element) {\n if (!this._observedElements.has(element)) {\n const stream = new Subject();\n const observer = this._mutationObserverFactory.create(mutations => stream.next(mutations));\n if (observer) {\n observer.observe(element, {\n characterData: true,\n childList: true,\n subtree: true,\n });\n }\n this._observedElements.set(element, { observer, stream, count: 1 });\n }\n else {\n this._observedElements.get(element).count++;\n }\n return this._observedElements.get(element).stream;\n }\n /**\n * Un-observes the given element and cleans up the underlying MutationObserver if nobody else is\n * observing this element.\n */\n _unobserveElement(element) {\n if (this._observedElements.has(element)) {\n this._observedElements.get(element).count--;\n if (!this._observedElements.get(element).count) {\n this._cleanupObserver(element);\n }\n }\n }\n /** Clean up the underlying MutationObserver for the specified element. */\n _cleanupObserver(element) {\n if (this._observedElements.has(element)) {\n const { observer, stream } = this._observedElements.get(element);\n if (observer) {\n observer.disconnect();\n }\n stream.complete();\n this._observedElements.delete(element);\n }\n }\n}\nContentObserver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: ContentObserver, deps: [{ token: MutationObserverFactory }], target: i0.ɵɵFactoryTarget.Injectable });\nContentObserver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: ContentObserver, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: ContentObserver, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: MutationObserverFactory }]; } });\n/**\n * Directive that triggers a callback whenever the content of\n * its associated element has changed.\n */\nclass CdkObserveContent {\n constructor(_contentObserver, _elementRef, _ngZone) {\n this._contentObserver = _contentObserver;\n this._elementRef = _elementRef;\n this._ngZone = _ngZone;\n /** Event emitted for each change in the element's content. */\n this.event = new EventEmitter();\n this._disabled = false;\n this._currentSubscription = null;\n }\n /**\n * Whether observing content is disabled. This option can be used\n * to disconnect the underlying MutationObserver until it is needed.\n */\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n this._disabled ? this._unsubscribe() : this._subscribe();\n }\n /** Debounce interval for emitting the changes. */\n get debounce() {\n return this._debounce;\n }\n set debounce(value) {\n this._debounce = coerceNumberProperty(value);\n this._subscribe();\n }\n ngAfterContentInit() {\n if (!this._currentSubscription && !this.disabled) {\n this._subscribe();\n }\n }\n ngOnDestroy() {\n this._unsubscribe();\n }\n _subscribe() {\n this._unsubscribe();\n const stream = this._contentObserver.observe(this._elementRef);\n // TODO(mmalerba): We shouldn't be emitting on this @Output() outside the zone.\n // Consider brining it back inside the zone next time we're making breaking changes.\n // Bringing it back inside can cause things like infinite change detection loops and changed\n // after checked errors if people's code isn't handling it properly.\n this._ngZone.runOutsideAngular(() => {\n this._currentSubscription = (this.debounce ? stream.pipe(debounceTime(this.debounce)) : stream).subscribe(this.event);\n });\n }\n _unsubscribe() {\n var _a;\n (_a = this._currentSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();\n }\n}\nCdkObserveContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CdkObserveContent, deps: [{ token: ContentObserver }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });\nCdkObserveContent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.0\", type: CdkObserveContent, selector: \"[cdkObserveContent]\", inputs: { disabled: [\"cdkObserveContentDisabled\", \"disabled\"], debounce: \"debounce\" }, outputs: { event: \"cdkObserveContent\" }, exportAs: [\"cdkObserveContent\"], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CdkObserveContent, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkObserveContent]',\n exportAs: 'cdkObserveContent',\n }]\n }], ctorParameters: function () { return [{ type: ContentObserver }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { event: [{\n type: Output,\n args: ['cdkObserveContent']\n }], disabled: [{\n type: Input,\n args: ['cdkObserveContentDisabled']\n }], debounce: [{\n type: Input\n }] } });\nclass ObserversModule {\n}\nObserversModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: ObserversModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nObserversModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: ObserversModule, declarations: [CdkObserveContent], exports: [CdkObserveContent] });\nObserversModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: ObserversModule, providers: [MutationObserverFactory] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: ObserversModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [CdkObserveContent],\n declarations: [CdkObserveContent],\n providers: [MutationObserverFactory],\n }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CdkObserveContent, ContentObserver, MutationObserverFactory, ObserversModule };\n","import * as i1 from '@angular/cdk/scrolling';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nexport { CdkScrollable, ScrollDispatcher, ViewportRuler } from '@angular/cdk/scrolling';\nimport * as i6 from '@angular/common';\nimport { DOCUMENT } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, Inject, ElementRef, Optional, ApplicationRef, InjectionToken, Directive, EventEmitter, Input, Output, NgModule } from '@angular/core';\nimport { coerceCssPixelValue, coerceArray, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport * as i1$1 from '@angular/cdk/platform';\nimport { supportsScrollBehavior, _isTestEnvironment, _getEventTarget } from '@angular/cdk/platform';\nimport * as i5 from '@angular/cdk/bidi';\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { DomPortalOutlet, TemplatePortal, PortalModule } from '@angular/cdk/portal';\nimport { Subject, Subscription, merge } from 'rxjs';\nimport { take, takeUntil, takeWhile } from 'rxjs/operators';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst scrollBehaviorSupported = supportsScrollBehavior();\n/**\n * Strategy that will prevent the user from scrolling while the overlay is visible.\n */\nclass BlockScrollStrategy {\n constructor(_viewportRuler, document) {\n this._viewportRuler = _viewportRuler;\n this._previousHTMLStyles = { top: '', left: '' };\n this._isEnabled = false;\n this._document = document;\n }\n /** Attaches this scroll strategy to an overlay. */\n attach() { }\n /** Blocks page-level scroll while the attached overlay is open. */\n enable() {\n if (this._canBeEnabled()) {\n const root = this._document.documentElement;\n this._previousScrollPosition = this._viewportRuler.getViewportScrollPosition();\n // Cache the previous inline styles in case the user had set them.\n this._previousHTMLStyles.left = root.style.left || '';\n this._previousHTMLStyles.top = root.style.top || '';\n // Note: we're using the `html` node, instead of the `body`, because the `body` may\n // have the user agent margin, whereas the `html` is guaranteed not to have one.\n root.style.left = coerceCssPixelValue(-this._previousScrollPosition.left);\n root.style.top = coerceCssPixelValue(-this._previousScrollPosition.top);\n root.classList.add('cdk-global-scrollblock');\n this._isEnabled = true;\n }\n }\n /** Unblocks page-level scroll while the attached overlay is open. */\n disable() {\n if (this._isEnabled) {\n const html = this._document.documentElement;\n const body = this._document.body;\n const htmlStyle = html.style;\n const bodyStyle = body.style;\n const previousHtmlScrollBehavior = htmlStyle.scrollBehavior || '';\n const previousBodyScrollBehavior = bodyStyle.scrollBehavior || '';\n this._isEnabled = false;\n htmlStyle.left = this._previousHTMLStyles.left;\n htmlStyle.top = this._previousHTMLStyles.top;\n html.classList.remove('cdk-global-scrollblock');\n // Disable user-defined smooth scrolling temporarily while we restore the scroll position.\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-behavior\n // Note that we don't mutate the property if the browser doesn't support `scroll-behavior`,\n // because it can throw off feature detections in `supportsScrollBehavior` which\n // checks for `'scrollBehavior' in documentElement.style`.\n if (scrollBehaviorSupported) {\n htmlStyle.scrollBehavior = bodyStyle.scrollBehavior = 'auto';\n }\n window.scroll(this._previousScrollPosition.left, this._previousScrollPosition.top);\n if (scrollBehaviorSupported) {\n htmlStyle.scrollBehavior = previousHtmlScrollBehavior;\n bodyStyle.scrollBehavior = previousBodyScrollBehavior;\n }\n }\n }\n _canBeEnabled() {\n // Since the scroll strategies can't be singletons, we have to use a global CSS class\n // (`cdk-global-scrollblock`) to make sure that we don't try to disable global\n // scrolling multiple times.\n const html = this._document.documentElement;\n if (html.classList.contains('cdk-global-scrollblock') || this._isEnabled) {\n return false;\n }\n const body = this._document.body;\n const viewport = this._viewportRuler.getViewportSize();\n return body.scrollHeight > viewport.height || body.scrollWidth > viewport.width;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Returns an error to be thrown when attempting to attach an already-attached scroll strategy.\n */\nfunction getMatScrollStrategyAlreadyAttachedError() {\n return Error(`Scroll strategy has already been attached.`);\n}\n\n/**\n * Strategy that will close the overlay as soon as the user starts scrolling.\n */\nclass CloseScrollStrategy {\n constructor(_scrollDispatcher, _ngZone, _viewportRuler, _config) {\n this._scrollDispatcher = _scrollDispatcher;\n this._ngZone = _ngZone;\n this._viewportRuler = _viewportRuler;\n this._config = _config;\n this._scrollSubscription = null;\n /** Detaches the overlay ref and disables the scroll strategy. */\n this._detach = () => {\n this.disable();\n if (this._overlayRef.hasAttached()) {\n this._ngZone.run(() => this._overlayRef.detach());\n }\n };\n }\n /** Attaches this scroll strategy to an overlay. */\n attach(overlayRef) {\n if (this._overlayRef && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatScrollStrategyAlreadyAttachedError();\n }\n this._overlayRef = overlayRef;\n }\n /** Enables the closing of the attached overlay on scroll. */\n enable() {\n if (this._scrollSubscription) {\n return;\n }\n const stream = this._scrollDispatcher.scrolled(0);\n if (this._config && this._config.threshold && this._config.threshold > 1) {\n this._initialScrollPosition = this._viewportRuler.getViewportScrollPosition().top;\n this._scrollSubscription = stream.subscribe(() => {\n const scrollPosition = this._viewportRuler.getViewportScrollPosition().top;\n if (Math.abs(scrollPosition - this._initialScrollPosition) > this._config.threshold) {\n this._detach();\n }\n else {\n this._overlayRef.updatePosition();\n }\n });\n }\n else {\n this._scrollSubscription = stream.subscribe(this._detach);\n }\n }\n /** Disables the closing the attached overlay on scroll. */\n disable() {\n if (this._scrollSubscription) {\n this._scrollSubscription.unsubscribe();\n this._scrollSubscription = null;\n }\n }\n detach() {\n this.disable();\n this._overlayRef = null;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Scroll strategy that doesn't do anything. */\nclass NoopScrollStrategy {\n /** Does nothing, as this scroll strategy is a no-op. */\n enable() { }\n /** Does nothing, as this scroll strategy is a no-op. */\n disable() { }\n /** Does nothing, as this scroll strategy is a no-op. */\n attach() { }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Gets whether an element is scrolled outside of view by any of its parent scrolling containers.\n * @param element Dimensions of the element (from getBoundingClientRect)\n * @param scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)\n * @returns Whether the element is scrolled out of view\n * @docs-private\n */\nfunction isElementScrolledOutsideView(element, scrollContainers) {\n return scrollContainers.some(containerBounds => {\n const outsideAbove = element.bottom < containerBounds.top;\n const outsideBelow = element.top > containerBounds.bottom;\n const outsideLeft = element.right < containerBounds.left;\n const outsideRight = element.left > containerBounds.right;\n return outsideAbove || outsideBelow || outsideLeft || outsideRight;\n });\n}\n/**\n * Gets whether an element is clipped by any of its scrolling containers.\n * @param element Dimensions of the element (from getBoundingClientRect)\n * @param scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)\n * @returns Whether the element is clipped\n * @docs-private\n */\nfunction isElementClippedByScrolling(element, scrollContainers) {\n return scrollContainers.some(scrollContainerRect => {\n const clippedAbove = element.top < scrollContainerRect.top;\n const clippedBelow = element.bottom > scrollContainerRect.bottom;\n const clippedLeft = element.left < scrollContainerRect.left;\n const clippedRight = element.right > scrollContainerRect.right;\n return clippedAbove || clippedBelow || clippedLeft || clippedRight;\n });\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Strategy that will update the element position as the user is scrolling.\n */\nclass RepositionScrollStrategy {\n constructor(_scrollDispatcher, _viewportRuler, _ngZone, _config) {\n this._scrollDispatcher = _scrollDispatcher;\n this._viewportRuler = _viewportRuler;\n this._ngZone = _ngZone;\n this._config = _config;\n this._scrollSubscription = null;\n }\n /** Attaches this scroll strategy to an overlay. */\n attach(overlayRef) {\n if (this._overlayRef && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatScrollStrategyAlreadyAttachedError();\n }\n this._overlayRef = overlayRef;\n }\n /** Enables repositioning of the attached overlay on scroll. */\n enable() {\n if (!this._scrollSubscription) {\n const throttle = this._config ? this._config.scrollThrottle : 0;\n this._scrollSubscription = this._scrollDispatcher.scrolled(throttle).subscribe(() => {\n this._overlayRef.updatePosition();\n // TODO(crisbeto): make `close` on by default once all components can handle it.\n if (this._config && this._config.autoClose) {\n const overlayRect = this._overlayRef.overlayElement.getBoundingClientRect();\n const { width, height } = this._viewportRuler.getViewportSize();\n // TODO(crisbeto): include all ancestor scroll containers here once\n // we have a way of exposing the trigger element to the scroll strategy.\n const parentRects = [{ width, height, bottom: height, right: width, top: 0, left: 0 }];\n if (isElementScrolledOutsideView(overlayRect, parentRects)) {\n this.disable();\n this._ngZone.run(() => this._overlayRef.detach());\n }\n }\n });\n }\n }\n /** Disables repositioning of the attached overlay on scroll. */\n disable() {\n if (this._scrollSubscription) {\n this._scrollSubscription.unsubscribe();\n this._scrollSubscription = null;\n }\n }\n detach() {\n this.disable();\n this._overlayRef = null;\n }\n}\n\n/**\n * Options for how an overlay will handle scrolling.\n *\n * Users can provide a custom value for `ScrollStrategyOptions` to replace the default\n * behaviors. This class primarily acts as a factory for ScrollStrategy instances.\n */\nclass ScrollStrategyOptions {\n constructor(_scrollDispatcher, _viewportRuler, _ngZone, document) {\n this._scrollDispatcher = _scrollDispatcher;\n this._viewportRuler = _viewportRuler;\n this._ngZone = _ngZone;\n /** Do nothing on scroll. */\n this.noop = () => new NoopScrollStrategy();\n /**\n * Close the overlay as soon as the user scrolls.\n * @param config Configuration to be used inside the scroll strategy.\n */\n this.close = (config) => new CloseScrollStrategy(this._scrollDispatcher, this._ngZone, this._viewportRuler, config);\n /** Block scrolling. */\n this.block = () => new BlockScrollStrategy(this._viewportRuler, this._document);\n /**\n * Update the overlay's position on scroll.\n * @param config Configuration to be used inside the scroll strategy.\n * Allows debouncing the reposition calls.\n */\n this.reposition = (config) => new RepositionScrollStrategy(this._scrollDispatcher, this._viewportRuler, this._ngZone, config);\n this._document = document;\n }\n}\nScrollStrategyOptions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: ScrollStrategyOptions, deps: [{ token: i1.ScrollDispatcher }, { token: i1.ViewportRuler }, { token: i0.NgZone }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nScrollStrategyOptions.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: ScrollStrategyOptions, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: ScrollStrategyOptions, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () {\n return [{ type: i1.ScrollDispatcher }, { type: i1.ViewportRuler }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }];\n } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Initial configuration used when creating an overlay. */\nclass OverlayConfig {\n constructor(config) {\n /** Strategy to be used when handling scroll events while the overlay is open. */\n this.scrollStrategy = new NoopScrollStrategy();\n /** Custom class to add to the overlay pane. */\n this.panelClass = '';\n /** Whether the overlay has a backdrop. */\n this.hasBackdrop = false;\n /** Custom class to add to the backdrop */\n this.backdropClass = 'cdk-overlay-dark-backdrop';\n /**\n * Whether the overlay should be disposed of when the user goes backwards/forwards in history.\n * Note that this usually doesn't include clicking on links (unless the user is using\n * the `HashLocationStrategy`).\n */\n this.disposeOnNavigation = false;\n if (config) {\n // Use `Iterable` instead of `Array` because TypeScript, as of 3.6.3,\n // loses the array generic type in the `for of`. But we *also* have to use `Array` because\n // typescript won't iterate over an `Iterable` unless you compile with `--downlevelIteration`\n const configKeys = Object.keys(config);\n for (const key of configKeys) {\n if (config[key] !== undefined) {\n // TypeScript, as of version 3.5, sees the left-hand-side of this expression\n // as \"I don't know *which* key this is, so the only valid value is the intersection\n // of all the posible values.\" In this case, that happens to be `undefined`. TypeScript\n // is not smart enough to see that the right-hand-side is actually an access of the same\n // exact type with the same exact key, meaning that the value type must be identical.\n // So we use `any` to work around this.\n this[key] = config[key];\n }\n }\n }\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** The points of the origin element and the overlay element to connect. */\nclass ConnectionPositionPair {\n constructor(origin, overlay, \n /** Offset along the X axis. */\n offsetX, \n /** Offset along the Y axis. */\n offsetY, \n /** Class(es) to be applied to the panel while this position is active. */\n panelClass) {\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n this.panelClass = panelClass;\n this.originX = origin.originX;\n this.originY = origin.originY;\n this.overlayX = overlay.overlayX;\n this.overlayY = overlay.overlayY;\n }\n}\n/**\n * Set of properties regarding the position of the origin and overlay relative to the viewport\n * with respect to the containing Scrollable elements.\n *\n * The overlay and origin are clipped if any part of their bounding client rectangle exceeds the\n * bounds of any one of the strategy's Scrollable's bounding client rectangle.\n *\n * The overlay and origin are outside view if there is no overlap between their bounding client\n * rectangle and any one of the strategy's Scrollable's bounding client rectangle.\n *\n * ----------- -----------\n * | outside | | clipped |\n * | view | --------------------------\n * | | | | | |\n * ---------- | ----------- |\n * -------------------------- | |\n * | | | Scrollable |\n * | | | |\n * | | --------------------------\n * | Scrollable |\n * | |\n * --------------------------\n *\n * @docs-private\n */\nclass ScrollingVisibility {\n}\n/** The change event emitted by the strategy when a fallback position is used. */\nclass ConnectedOverlayPositionChange {\n constructor(\n /** The position used as a result of this change. */\n connectionPair, \n /** @docs-private */\n scrollableViewProperties) {\n this.connectionPair = connectionPair;\n this.scrollableViewProperties = scrollableViewProperties;\n }\n}\n/**\n * Validates whether a vertical position property matches the expected values.\n * @param property Name of the property being validated.\n * @param value Value of the property being validated.\n * @docs-private\n */\nfunction validateVerticalPosition(property, value) {\n if (value !== 'top' && value !== 'bottom' && value !== 'center') {\n throw Error(`ConnectedPosition: Invalid ${property} \"${value}\". ` +\n `Expected \"top\", \"bottom\" or \"center\".`);\n }\n}\n/**\n * Validates whether a horizontal position property matches the expected values.\n * @param property Name of the property being validated.\n * @param value Value of the property being validated.\n * @docs-private\n */\nfunction validateHorizontalPosition(property, value) {\n if (value !== 'start' && value !== 'end' && value !== 'center') {\n throw Error(`ConnectedPosition: Invalid ${property} \"${value}\". ` +\n `Expected \"start\", \"end\" or \"center\".`);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Reference to an overlay that has been created with the Overlay service.\n * Used to manipulate or dispose of said overlay.\n */\nclass OverlayRef {\n constructor(_portalOutlet, _host, _pane, _config, _ngZone, _keyboardDispatcher, _document, _location, _outsideClickDispatcher) {\n this._portalOutlet = _portalOutlet;\n this._host = _host;\n this._pane = _pane;\n this._config = _config;\n this._ngZone = _ngZone;\n this._keyboardDispatcher = _keyboardDispatcher;\n this._document = _document;\n this._location = _location;\n this._outsideClickDispatcher = _outsideClickDispatcher;\n this._backdropElement = null;\n this._backdropClick = new Subject();\n this._attachments = new Subject();\n this._detachments = new Subject();\n this._locationChanges = Subscription.EMPTY;\n this._backdropClickHandler = (event) => this._backdropClick.next(event);\n this._backdropTransitionendHandler = (event) => {\n this._disposeBackdrop(event.target);\n };\n /** Stream of keydown events dispatched to this overlay. */\n this._keydownEvents = new Subject();\n /** Stream of mouse outside events dispatched to this overlay. */\n this._outsidePointerEvents = new Subject();\n if (_config.scrollStrategy) {\n this._scrollStrategy = _config.scrollStrategy;\n this._scrollStrategy.attach(this);\n }\n this._positionStrategy = _config.positionStrategy;\n }\n /** The overlay's HTML element */\n get overlayElement() {\n return this._pane;\n }\n /** The overlay's backdrop HTML element. */\n get backdropElement() {\n return this._backdropElement;\n }\n /**\n * Wrapper around the panel element. Can be used for advanced\n * positioning where a wrapper with specific styling is\n * required around the overlay pane.\n */\n get hostElement() {\n return this._host;\n }\n /**\n * Attaches content, given via a Portal, to the overlay.\n * If the overlay is configured to have a backdrop, it will be created.\n *\n * @param portal Portal instance to which to attach the overlay.\n * @returns The portal attachment result.\n */\n attach(portal) {\n let attachResult = this._portalOutlet.attach(portal);\n // Update the pane element with the given configuration.\n if (!this._host.parentElement && this._previousHostParent) {\n this._previousHostParent.appendChild(this._host);\n }\n if (this._positionStrategy) {\n this._positionStrategy.attach(this);\n }\n this._updateStackingOrder();\n this._updateElementSize();\n this._updateElementDirection();\n if (this._scrollStrategy) {\n this._scrollStrategy.enable();\n }\n // Update the position once the zone is stable so that the overlay will be fully rendered\n // before attempting to position it, as the position may depend on the size of the rendered\n // content.\n this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n // The overlay could've been detached before the zone has stabilized.\n if (this.hasAttached()) {\n this.updatePosition();\n }\n });\n // Enable pointer events for the overlay pane element.\n this._togglePointerEvents(true);\n if (this._config.hasBackdrop) {\n this._attachBackdrop();\n }\n if (this._config.panelClass) {\n this._toggleClasses(this._pane, this._config.panelClass, true);\n }\n // Only emit the `attachments` event once all other setup is done.\n this._attachments.next();\n // Track this overlay by the keyboard dispatcher\n this._keyboardDispatcher.add(this);\n if (this._config.disposeOnNavigation) {\n this._locationChanges = this._location.subscribe(() => this.dispose());\n }\n this._outsideClickDispatcher.add(this);\n return attachResult;\n }\n /**\n * Detaches an overlay from a portal.\n * @returns The portal detachment result.\n */\n detach() {\n if (!this.hasAttached()) {\n return;\n }\n this.detachBackdrop();\n // When the overlay is detached, the pane element should disable pointer events.\n // This is necessary because otherwise the pane element will cover the page and disable\n // pointer events therefore. Depends on the position strategy and the applied pane boundaries.\n this._togglePointerEvents(false);\n if (this._positionStrategy && this._positionStrategy.detach) {\n this._positionStrategy.detach();\n }\n if (this._scrollStrategy) {\n this._scrollStrategy.disable();\n }\n const detachmentResult = this._portalOutlet.detach();\n // Only emit after everything is detached.\n this._detachments.next();\n // Remove this overlay from keyboard dispatcher tracking.\n this._keyboardDispatcher.remove(this);\n // Keeping the host element in the DOM can cause scroll jank, because it still gets\n // rendered, even though it's transparent and unclickable which is why we remove it.\n this._detachContentWhenStable();\n this._locationChanges.unsubscribe();\n this._outsideClickDispatcher.remove(this);\n return detachmentResult;\n }\n /** Cleans up the overlay from the DOM. */\n dispose() {\n var _a;\n const isAttached = this.hasAttached();\n if (this._positionStrategy) {\n this._positionStrategy.dispose();\n }\n this._disposeScrollStrategy();\n this._disposeBackdrop(this._backdropElement);\n this._locationChanges.unsubscribe();\n this._keyboardDispatcher.remove(this);\n this._portalOutlet.dispose();\n this._attachments.complete();\n this._backdropClick.complete();\n this._keydownEvents.complete();\n this._outsidePointerEvents.complete();\n this._outsideClickDispatcher.remove(this);\n (_a = this._host) === null || _a === void 0 ? void 0 : _a.remove();\n this._previousHostParent = this._pane = this._host = null;\n if (isAttached) {\n this._detachments.next();\n }\n this._detachments.complete();\n }\n /** Whether the overlay has attached content. */\n hasAttached() {\n return this._portalOutlet.hasAttached();\n }\n /** Gets an observable that emits when the backdrop has been clicked. */\n backdropClick() {\n return this._backdropClick;\n }\n /** Gets an observable that emits when the overlay has been attached. */\n attachments() {\n return this._attachments;\n }\n /** Gets an observable that emits when the overlay has been detached. */\n detachments() {\n return this._detachments;\n }\n /** Gets an observable of keydown events targeted to this overlay. */\n keydownEvents() {\n return this._keydownEvents;\n }\n /** Gets an observable of pointer events targeted outside this overlay. */\n outsidePointerEvents() {\n return this._outsidePointerEvents;\n }\n /** Gets the current overlay configuration, which is immutable. */\n getConfig() {\n return this._config;\n }\n /** Updates the position of the overlay based on the position strategy. */\n updatePosition() {\n if (this._positionStrategy) {\n this._positionStrategy.apply();\n }\n }\n /** Switches to a new position strategy and updates the overlay position. */\n updatePositionStrategy(strategy) {\n if (strategy === this._positionStrategy) {\n return;\n }\n if (this._positionStrategy) {\n this._positionStrategy.dispose();\n }\n this._positionStrategy = strategy;\n if (this.hasAttached()) {\n strategy.attach(this);\n this.updatePosition();\n }\n }\n /** Update the size properties of the overlay. */\n updateSize(sizeConfig) {\n this._config = Object.assign(Object.assign({}, this._config), sizeConfig);\n this._updateElementSize();\n }\n /** Sets the LTR/RTL direction for the overlay. */\n setDirection(dir) {\n this._config = Object.assign(Object.assign({}, this._config), { direction: dir });\n this._updateElementDirection();\n }\n /** Add a CSS class or an array of classes to the overlay pane. */\n addPanelClass(classes) {\n if (this._pane) {\n this._toggleClasses(this._pane, classes, true);\n }\n }\n /** Remove a CSS class or an array of classes from the overlay pane. */\n removePanelClass(classes) {\n if (this._pane) {\n this._toggleClasses(this._pane, classes, false);\n }\n }\n /**\n * Returns the layout direction of the overlay panel.\n */\n getDirection() {\n const direction = this._config.direction;\n if (!direction) {\n return 'ltr';\n }\n return typeof direction === 'string' ? direction : direction.value;\n }\n /** Switches to a new scroll strategy. */\n updateScrollStrategy(strategy) {\n if (strategy === this._scrollStrategy) {\n return;\n }\n this._disposeScrollStrategy();\n this._scrollStrategy = strategy;\n if (this.hasAttached()) {\n strategy.attach(this);\n strategy.enable();\n }\n }\n /** Updates the text direction of the overlay panel. */\n _updateElementDirection() {\n this._host.setAttribute('dir', this.getDirection());\n }\n /** Updates the size of the overlay element based on the overlay config. */\n _updateElementSize() {\n if (!this._pane) {\n return;\n }\n const style = this._pane.style;\n style.width = coerceCssPixelValue(this._config.width);\n style.height = coerceCssPixelValue(this._config.height);\n style.minWidth = coerceCssPixelValue(this._config.minWidth);\n style.minHeight = coerceCssPixelValue(this._config.minHeight);\n style.maxWidth = coerceCssPixelValue(this._config.maxWidth);\n style.maxHeight = coerceCssPixelValue(this._config.maxHeight);\n }\n /** Toggles the pointer events for the overlay pane element. */\n _togglePointerEvents(enablePointer) {\n this._pane.style.pointerEvents = enablePointer ? '' : 'none';\n }\n /** Attaches a backdrop for this overlay. */\n _attachBackdrop() {\n const showingClass = 'cdk-overlay-backdrop-showing';\n this._backdropElement = this._document.createElement('div');\n this._backdropElement.classList.add('cdk-overlay-backdrop');\n if (this._config.backdropClass) {\n this._toggleClasses(this._backdropElement, this._config.backdropClass, true);\n }\n // Insert the backdrop before the pane in the DOM order,\n // in order to handle stacked overlays properly.\n this._host.parentElement.insertBefore(this._backdropElement, this._host);\n // Forward backdrop clicks such that the consumer of the overlay can perform whatever\n // action desired when such a click occurs (usually closing the overlay).\n this._backdropElement.addEventListener('click', this._backdropClickHandler);\n // Add class to fade-in the backdrop after one frame.\n if (typeof requestAnimationFrame !== 'undefined') {\n this._ngZone.runOutsideAngular(() => {\n requestAnimationFrame(() => {\n if (this._backdropElement) {\n this._backdropElement.classList.add(showingClass);\n }\n });\n });\n }\n else {\n this._backdropElement.classList.add(showingClass);\n }\n }\n /**\n * Updates the stacking order of the element, moving it to the top if necessary.\n * This is required in cases where one overlay was detached, while another one,\n * that should be behind it, was destroyed. The next time both of them are opened,\n * the stacking will be wrong, because the detached element's pane will still be\n * in its original DOM position.\n */\n _updateStackingOrder() {\n if (this._host.nextSibling) {\n this._host.parentNode.appendChild(this._host);\n }\n }\n /** Detaches the backdrop (if any) associated with the overlay. */\n detachBackdrop() {\n const backdropToDetach = this._backdropElement;\n if (!backdropToDetach) {\n return;\n }\n backdropToDetach.classList.remove('cdk-overlay-backdrop-showing');\n this._ngZone.runOutsideAngular(() => {\n backdropToDetach.addEventListener('transitionend', this._backdropTransitionendHandler);\n });\n // If the backdrop doesn't have a transition, the `transitionend` event won't fire.\n // In this case we make it unclickable and we try to remove it after a delay.\n backdropToDetach.style.pointerEvents = 'none';\n // Run this outside the Angular zone because there's nothing that Angular cares about.\n // If it were to run inside the Angular zone, every test that used Overlay would have to be\n // either async or fakeAsync.\n this._backdropTimeout = this._ngZone.runOutsideAngular(() => setTimeout(() => {\n this._disposeBackdrop(backdropToDetach);\n }, 500));\n }\n /** Toggles a single CSS class or an array of classes on an element. */\n _toggleClasses(element, cssClasses, isAdd) {\n const classes = coerceArray(cssClasses || []).filter(c => !!c);\n if (classes.length) {\n isAdd ? element.classList.add(...classes) : element.classList.remove(...classes);\n }\n }\n /** Detaches the overlay content next time the zone stabilizes. */\n _detachContentWhenStable() {\n // Normally we wouldn't have to explicitly run this outside the `NgZone`, however\n // if the consumer is using `zone-patch-rxjs`, the `Subscription.unsubscribe` call will\n // be patched to run inside the zone, which will throw us into an infinite loop.\n this._ngZone.runOutsideAngular(() => {\n // We can't remove the host here immediately, because the overlay pane's content\n // might still be animating. This stream helps us avoid interrupting the animation\n // by waiting for the pane to become empty.\n const subscription = this._ngZone.onStable\n .pipe(takeUntil(merge(this._attachments, this._detachments)))\n .subscribe(() => {\n // Needs a couple of checks for the pane and host, because\n // they may have been removed by the time the zone stabilizes.\n if (!this._pane || !this._host || this._pane.children.length === 0) {\n if (this._pane && this._config.panelClass) {\n this._toggleClasses(this._pane, this._config.panelClass, false);\n }\n if (this._host && this._host.parentElement) {\n this._previousHostParent = this._host.parentElement;\n this._host.remove();\n }\n subscription.unsubscribe();\n }\n });\n });\n }\n /** Disposes of a scroll strategy. */\n _disposeScrollStrategy() {\n const scrollStrategy = this._scrollStrategy;\n if (scrollStrategy) {\n scrollStrategy.disable();\n if (scrollStrategy.detach) {\n scrollStrategy.detach();\n }\n }\n }\n /** Removes a backdrop element from the DOM. */\n _disposeBackdrop(backdrop) {\n if (backdrop) {\n backdrop.removeEventListener('click', this._backdropClickHandler);\n backdrop.removeEventListener('transitionend', this._backdropTransitionendHandler);\n backdrop.remove();\n // It is possible that a new portal has been attached to this overlay since we started\n // removing the backdrop. If that is the case, only clear the backdrop reference if it\n // is still the same instance that we started to remove.\n if (this._backdropElement === backdrop) {\n this._backdropElement = null;\n }\n }\n if (this._backdropTimeout) {\n clearTimeout(this._backdropTimeout);\n this._backdropTimeout = undefined;\n }\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Container inside which all overlays will render. */\nclass OverlayContainer {\n constructor(document, _platform) {\n this._platform = _platform;\n this._document = document;\n }\n ngOnDestroy() {\n var _a;\n (_a = this._containerElement) === null || _a === void 0 ? void 0 : _a.remove();\n }\n /**\n * This method returns the overlay container element. It will lazily\n * create the element the first time it is called to facilitate using\n * the container in non-browser environments.\n * @returns the container element\n */\n getContainerElement() {\n if (!this._containerElement) {\n this._createContainer();\n }\n return this._containerElement;\n }\n /**\n * Create the overlay container element, which is simply a div\n * with the 'cdk-overlay-container' class on the document body.\n */\n _createContainer() {\n const containerClass = 'cdk-overlay-container';\n // TODO(crisbeto): remove the testing check once we have an overlay testing\n // module or Angular starts tearing down the testing `NgModule`. See:\n // https://github.com/angular/angular/issues/18831\n if (this._platform.isBrowser || _isTestEnvironment()) {\n const oppositePlatformContainers = this._document.querySelectorAll(`.${containerClass}[platform=\"server\"], ` + `.${containerClass}[platform=\"test\"]`);\n // Remove any old containers from the opposite platform.\n // This can happen when transitioning from the server to the client.\n for (let i = 0; i < oppositePlatformContainers.length; i++) {\n oppositePlatformContainers[i].remove();\n }\n }\n const container = this._document.createElement('div');\n container.classList.add(containerClass);\n // A long time ago we kept adding new overlay containers whenever a new app was instantiated,\n // but at some point we added logic which clears the duplicate ones in order to avoid leaks.\n // The new logic was a little too aggressive since it was breaking some legitimate use cases.\n // To mitigate the problem we made it so that only containers from a different platform are\n // cleared, but the side-effect was that people started depending on the overly-aggressive\n // logic to clean up their tests for them. Until we can introduce an overlay-specific testing\n // module which does the cleanup, we try to detect that we're in a test environment and we\n // always clear the container. See #17006.\n // TODO(crisbeto): remove the test environment check once we have an overlay testing module.\n if (_isTestEnvironment()) {\n container.setAttribute('platform', 'test');\n }\n else if (!this._platform.isBrowser) {\n container.setAttribute('platform', 'server');\n }\n this._document.body.appendChild(container);\n this._containerElement = container;\n }\n}\nOverlayContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: OverlayContainer, deps: [{ token: DOCUMENT }, { token: i1$1.Platform }], target: i0.ɵɵFactoryTarget.Injectable });\nOverlayContainer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: OverlayContainer, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: OverlayContainer, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i1$1.Platform }];\n } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// TODO: refactor clipping detection into a separate thing (part of scrolling module)\n// TODO: doesn't handle both flexible width and height when it has to scroll along both axis.\n/** Class to be added to the overlay bounding box. */\nconst boundingBoxClass = 'cdk-overlay-connected-position-bounding-box';\n/** Regex used to split a string on its CSS units. */\nconst cssUnitPattern = /([A-Za-z%]+)$/;\n/**\n * A strategy for positioning overlays. Using this strategy, an overlay is given an\n * implicit position relative some origin element. The relative position is defined in terms of\n * a point on the origin element that is connected to a point on the overlay element. For example,\n * a basic dropdown is connecting the bottom-left corner of the origin to the top-left corner\n * of the overlay.\n */\nclass FlexibleConnectedPositionStrategy {\n constructor(connectedTo, _viewportRuler, _document, _platform, _overlayContainer) {\n this._viewportRuler = _viewportRuler;\n this._document = _document;\n this._platform = _platform;\n this._overlayContainer = _overlayContainer;\n /** Last size used for the bounding box. Used to avoid resizing the overlay after open. */\n this._lastBoundingBoxSize = { width: 0, height: 0 };\n /** Whether the overlay was pushed in a previous positioning. */\n this._isPushed = false;\n /** Whether the overlay can be pushed on-screen on the initial open. */\n this._canPush = true;\n /** Whether the overlay can grow via flexible width/height after the initial open. */\n this._growAfterOpen = false;\n /** Whether the overlay's width and height can be constrained to fit within the viewport. */\n this._hasFlexibleDimensions = true;\n /** Whether the overlay position is locked. */\n this._positionLocked = false;\n /** Amount of space that must be maintained between the overlay and the edge of the viewport. */\n this._viewportMargin = 0;\n /** The Scrollable containers used to check scrollable view properties on position change. */\n this._scrollables = [];\n /** Ordered list of preferred positions, from most to least desirable. */\n this._preferredPositions = [];\n /** Subject that emits whenever the position changes. */\n this._positionChanges = new Subject();\n /** Subscription to viewport size changes. */\n this._resizeSubscription = Subscription.EMPTY;\n /** Default offset for the overlay along the x axis. */\n this._offsetX = 0;\n /** Default offset for the overlay along the y axis. */\n this._offsetY = 0;\n /** Keeps track of the CSS classes that the position strategy has applied on the overlay panel. */\n this._appliedPanelClasses = [];\n /** Observable sequence of position changes. */\n this.positionChanges = this._positionChanges;\n this.setOrigin(connectedTo);\n }\n /** Ordered list of preferred positions, from most to least desirable. */\n get positions() {\n return this._preferredPositions;\n }\n /** Attaches this position strategy to an overlay. */\n attach(overlayRef) {\n if (this._overlayRef &&\n overlayRef !== this._overlayRef &&\n (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('This position strategy is already attached to an overlay');\n }\n this._validatePositions();\n overlayRef.hostElement.classList.add(boundingBoxClass);\n this._overlayRef = overlayRef;\n this._boundingBox = overlayRef.hostElement;\n this._pane = overlayRef.overlayElement;\n this._isDisposed = false;\n this._isInitialRender = true;\n this._lastPosition = null;\n this._resizeSubscription.unsubscribe();\n this._resizeSubscription = this._viewportRuler.change().subscribe(() => {\n // When the window is resized, we want to trigger the next reposition as if it\n // was an initial render, in order for the strategy to pick a new optimal position,\n // otherwise position locking will cause it to stay at the old one.\n this._isInitialRender = true;\n this.apply();\n });\n }\n /**\n * Updates the position of the overlay element, using whichever preferred position relative\n * to the origin best fits on-screen.\n *\n * The selection of a position goes as follows:\n * - If any positions fit completely within the viewport as-is,\n * choose the first position that does so.\n * - If flexible dimensions are enabled and at least one satifies the given minimum width/height,\n * choose the position with the greatest available size modified by the positions' weight.\n * - If pushing is enabled, take the position that went off-screen the least and push it\n * on-screen.\n * - If none of the previous criteria were met, use the position that goes off-screen the least.\n * @docs-private\n */\n apply() {\n // We shouldn't do anything if the strategy was disposed or we're on the server.\n if (this._isDisposed || !this._platform.isBrowser) {\n return;\n }\n // If the position has been applied already (e.g. when the overlay was opened) and the\n // consumer opted into locking in the position, re-use the old position, in order to\n // prevent the overlay from jumping around.\n if (!this._isInitialRender && this._positionLocked && this._lastPosition) {\n this.reapplyLastPosition();\n return;\n }\n this._clearPanelClasses();\n this._resetOverlayElementStyles();\n this._resetBoundingBoxStyles();\n // We need the bounding rects for the origin, the overlay and the container to determine how to position\n // the overlay relative to the origin.\n // We use the viewport rect to determine whether a position would go off-screen.\n this._viewportRect = this._getNarrowedViewportRect();\n this._originRect = this._getOriginRect();\n this._overlayRect = this._pane.getBoundingClientRect();\n this._containerRect = this._overlayContainer.getContainerElement().getBoundingClientRect();\n const originRect = this._originRect;\n const overlayRect = this._overlayRect;\n const viewportRect = this._viewportRect;\n const containerRect = this._containerRect;\n // Positions where the overlay will fit with flexible dimensions.\n const flexibleFits = [];\n // Fallback if none of the preferred positions fit within the viewport.\n let fallback;\n // Go through each of the preferred positions looking for a good fit.\n // If a good fit is found, it will be applied immediately.\n for (let pos of this._preferredPositions) {\n // Get the exact (x, y) coordinate for the point-of-origin on the origin element.\n let originPoint = this._getOriginPoint(originRect, containerRect, pos);\n // From that point-of-origin, get the exact (x, y) coordinate for the top-left corner of the\n // overlay in this position. We use the top-left corner for calculations and later translate\n // this into an appropriate (top, left, bottom, right) style.\n let overlayPoint = this._getOverlayPoint(originPoint, overlayRect, pos);\n // Calculate how well the overlay would fit into the viewport with this point.\n let overlayFit = this._getOverlayFit(overlayPoint, overlayRect, viewportRect, pos);\n // If the overlay, without any further work, fits into the viewport, use this position.\n if (overlayFit.isCompletelyWithinViewport) {\n this._isPushed = false;\n this._applyPosition(pos, originPoint);\n return;\n }\n // If the overlay has flexible dimensions, we can use this position\n // so long as there's enough space for the minimum dimensions.\n if (this._canFitWithFlexibleDimensions(overlayFit, overlayPoint, viewportRect)) {\n // Save positions where the overlay will fit with flexible dimensions. We will use these\n // if none of the positions fit *without* flexible dimensions.\n flexibleFits.push({\n position: pos,\n origin: originPoint,\n overlayRect,\n boundingBoxRect: this._calculateBoundingBoxRect(originPoint, pos),\n });\n continue;\n }\n // If the current preferred position does not fit on the screen, remember the position\n // if it has more visible area on-screen than we've seen and move onto the next preferred\n // position.\n if (!fallback || fallback.overlayFit.visibleArea < overlayFit.visibleArea) {\n fallback = { overlayFit, overlayPoint, originPoint, position: pos, overlayRect };\n }\n }\n // If there are any positions where the overlay would fit with flexible dimensions, choose the\n // one that has the greatest area available modified by the position's weight\n if (flexibleFits.length) {\n let bestFit = null;\n let bestScore = -1;\n for (const fit of flexibleFits) {\n const score = fit.boundingBoxRect.width * fit.boundingBoxRect.height * (fit.position.weight || 1);\n if (score > bestScore) {\n bestScore = score;\n bestFit = fit;\n }\n }\n this._isPushed = false;\n this._applyPosition(bestFit.position, bestFit.origin);\n return;\n }\n // When none of the preferred positions fit within the viewport, take the position\n // that went off-screen the least and attempt to push it on-screen.\n if (this._canPush) {\n // TODO(jelbourn): after pushing, the opening \"direction\" of the overlay might not make sense.\n this._isPushed = true;\n this._applyPosition(fallback.position, fallback.originPoint);\n return;\n }\n // All options for getting the overlay within the viewport have been exhausted, so go with the\n // position that went off-screen the least.\n this._applyPosition(fallback.position, fallback.originPoint);\n }\n detach() {\n this._clearPanelClasses();\n this._lastPosition = null;\n this._previousPushAmount = null;\n this._resizeSubscription.unsubscribe();\n }\n /** Cleanup after the element gets destroyed. */\n dispose() {\n if (this._isDisposed) {\n return;\n }\n // We can't use `_resetBoundingBoxStyles` here, because it resets\n // some properties to zero, rather than removing them.\n if (this._boundingBox) {\n extendStyles(this._boundingBox.style, {\n top: '',\n left: '',\n right: '',\n bottom: '',\n height: '',\n width: '',\n alignItems: '',\n justifyContent: '',\n });\n }\n if (this._pane) {\n this._resetOverlayElementStyles();\n }\n if (this._overlayRef) {\n this._overlayRef.hostElement.classList.remove(boundingBoxClass);\n }\n this.detach();\n this._positionChanges.complete();\n this._overlayRef = this._boundingBox = null;\n this._isDisposed = true;\n }\n /**\n * This re-aligns the overlay element with the trigger in its last calculated position,\n * even if a position higher in the \"preferred positions\" list would now fit. This\n * allows one to re-align the panel without changing the orientation of the panel.\n */\n reapplyLastPosition() {\n if (this._isDisposed || !this._platform.isBrowser) {\n return;\n }\n const lastPosition = this._lastPosition;\n if (lastPosition) {\n this._originRect = this._getOriginRect();\n this._overlayRect = this._pane.getBoundingClientRect();\n this._viewportRect = this._getNarrowedViewportRect();\n this._containerRect = this._overlayContainer.getContainerElement().getBoundingClientRect();\n const originPoint = this._getOriginPoint(this._originRect, this._containerRect, lastPosition);\n this._applyPosition(lastPosition, originPoint);\n }\n else {\n this.apply();\n }\n }\n /**\n * Sets the list of Scrollable containers that host the origin element so that\n * on reposition we can evaluate if it or the overlay has been clipped or outside view. Every\n * Scrollable must be an ancestor element of the strategy's origin element.\n */\n withScrollableContainers(scrollables) {\n this._scrollables = scrollables;\n return this;\n }\n /**\n * Adds new preferred positions.\n * @param positions List of positions options for this overlay.\n */\n withPositions(positions) {\n this._preferredPositions = positions;\n // If the last calculated position object isn't part of the positions anymore, clear\n // it in order to avoid it being picked up if the consumer tries to re-apply.\n if (positions.indexOf(this._lastPosition) === -1) {\n this._lastPosition = null;\n }\n this._validatePositions();\n return this;\n }\n /**\n * Sets a minimum distance the overlay may be positioned to the edge of the viewport.\n * @param margin Required margin between the overlay and the viewport edge in pixels.\n */\n withViewportMargin(margin) {\n this._viewportMargin = margin;\n return this;\n }\n /** Sets whether the overlay's width and height can be constrained to fit within the viewport. */\n withFlexibleDimensions(flexibleDimensions = true) {\n this._hasFlexibleDimensions = flexibleDimensions;\n return this;\n }\n /** Sets whether the overlay can grow after the initial open via flexible width/height. */\n withGrowAfterOpen(growAfterOpen = true) {\n this._growAfterOpen = growAfterOpen;\n return this;\n }\n /** Sets whether the overlay can be pushed on-screen if none of the provided positions fit. */\n withPush(canPush = true) {\n this._canPush = canPush;\n return this;\n }\n /**\n * Sets whether the overlay's position should be locked in after it is positioned\n * initially. When an overlay is locked in, it won't attempt to reposition itself\n * when the position is re-applied (e.g. when the user scrolls away).\n * @param isLocked Whether the overlay should locked in.\n */\n withLockedPosition(isLocked = true) {\n this._positionLocked = isLocked;\n return this;\n }\n /**\n * Sets the origin, relative to which to position the overlay.\n * Using an element origin is useful for building components that need to be positioned\n * relatively to a trigger (e.g. dropdown menus or tooltips), whereas using a point can be\n * used for cases like contextual menus which open relative to the user's pointer.\n * @param origin Reference to the new origin.\n */\n setOrigin(origin) {\n this._origin = origin;\n return this;\n }\n /**\n * Sets the default offset for the overlay's connection point on the x-axis.\n * @param offset New offset in the X axis.\n */\n withDefaultOffsetX(offset) {\n this._offsetX = offset;\n return this;\n }\n /**\n * Sets the default offset for the overlay's connection point on the y-axis.\n * @param offset New offset in the Y axis.\n */\n withDefaultOffsetY(offset) {\n this._offsetY = offset;\n return this;\n }\n /**\n * Configures that the position strategy should set a `transform-origin` on some elements\n * inside the overlay, depending on the current position that is being applied. This is\n * useful for the cases where the origin of an animation can change depending on the\n * alignment of the overlay.\n * @param selector CSS selector that will be used to find the target\n * elements onto which to set the transform origin.\n */\n withTransformOriginOn(selector) {\n this._transformOriginSelector = selector;\n return this;\n }\n /**\n * Gets the (x, y) coordinate of a connection point on the origin based on a relative position.\n */\n _getOriginPoint(originRect, containerRect, pos) {\n let x;\n if (pos.originX == 'center') {\n // Note: when centering we should always use the `left`\n // offset, otherwise the position will be wrong in RTL.\n x = originRect.left + originRect.width / 2;\n }\n else {\n const startX = this._isRtl() ? originRect.right : originRect.left;\n const endX = this._isRtl() ? originRect.left : originRect.right;\n x = pos.originX == 'start' ? startX : endX;\n }\n // When zooming in Safari the container rectangle contains negative values for the position\n // and we need to re-add them to the calculated coordinates.\n if (containerRect.left < 0) {\n x -= containerRect.left;\n }\n let y;\n if (pos.originY == 'center') {\n y = originRect.top + originRect.height / 2;\n }\n else {\n y = pos.originY == 'top' ? originRect.top : originRect.bottom;\n }\n // Normally the containerRect's top value would be zero, however when the overlay is attached to an input\n // (e.g. in an autocomplete), mobile browsers will shift everything in order to put the input in the middle\n // of the screen and to make space for the virtual keyboard. We need to account for this offset,\n // otherwise our positioning will be thrown off.\n // Additionally, when zooming in Safari this fixes the vertical position.\n if (containerRect.top < 0) {\n y -= containerRect.top;\n }\n return { x, y };\n }\n /**\n * Gets the (x, y) coordinate of the top-left corner of the overlay given a given position and\n * origin point to which the overlay should be connected.\n */\n _getOverlayPoint(originPoint, overlayRect, pos) {\n // Calculate the (overlayStartX, overlayStartY), the start of the\n // potential overlay position relative to the origin point.\n let overlayStartX;\n if (pos.overlayX == 'center') {\n overlayStartX = -overlayRect.width / 2;\n }\n else if (pos.overlayX === 'start') {\n overlayStartX = this._isRtl() ? -overlayRect.width : 0;\n }\n else {\n overlayStartX = this._isRtl() ? 0 : -overlayRect.width;\n }\n let overlayStartY;\n if (pos.overlayY == 'center') {\n overlayStartY = -overlayRect.height / 2;\n }\n else {\n overlayStartY = pos.overlayY == 'top' ? 0 : -overlayRect.height;\n }\n // The (x, y) coordinates of the overlay.\n return {\n x: originPoint.x + overlayStartX,\n y: originPoint.y + overlayStartY,\n };\n }\n /** Gets how well an overlay at the given point will fit within the viewport. */\n _getOverlayFit(point, rawOverlayRect, viewport, position) {\n // Round the overlay rect when comparing against the\n // viewport, because the viewport is always rounded.\n const overlay = getRoundedBoundingClientRect(rawOverlayRect);\n let { x, y } = point;\n let offsetX = this._getOffset(position, 'x');\n let offsetY = this._getOffset(position, 'y');\n // Account for the offsets since they could push the overlay out of the viewport.\n if (offsetX) {\n x += offsetX;\n }\n if (offsetY) {\n y += offsetY;\n }\n // How much the overlay would overflow at this position, on each side.\n let leftOverflow = 0 - x;\n let rightOverflow = x + overlay.width - viewport.width;\n let topOverflow = 0 - y;\n let bottomOverflow = y + overlay.height - viewport.height;\n // Visible parts of the element on each axis.\n let visibleWidth = this._subtractOverflows(overlay.width, leftOverflow, rightOverflow);\n let visibleHeight = this._subtractOverflows(overlay.height, topOverflow, bottomOverflow);\n let visibleArea = visibleWidth * visibleHeight;\n return {\n visibleArea,\n isCompletelyWithinViewport: overlay.width * overlay.height === visibleArea,\n fitsInViewportVertically: visibleHeight === overlay.height,\n fitsInViewportHorizontally: visibleWidth == overlay.width,\n };\n }\n /**\n * Whether the overlay can fit within the viewport when it may resize either its width or height.\n * @param fit How well the overlay fits in the viewport at some position.\n * @param point The (x, y) coordinates of the overlay at some position.\n * @param viewport The geometry of the viewport.\n */\n _canFitWithFlexibleDimensions(fit, point, viewport) {\n if (this._hasFlexibleDimensions) {\n const availableHeight = viewport.bottom - point.y;\n const availableWidth = viewport.right - point.x;\n const minHeight = getPixelValue(this._overlayRef.getConfig().minHeight);\n const minWidth = getPixelValue(this._overlayRef.getConfig().minWidth);\n const verticalFit = fit.fitsInViewportVertically || (minHeight != null && minHeight <= availableHeight);\n const horizontalFit = fit.fitsInViewportHorizontally || (minWidth != null && minWidth <= availableWidth);\n return verticalFit && horizontalFit;\n }\n return false;\n }\n /**\n * Gets the point at which the overlay can be \"pushed\" on-screen. If the overlay is larger than\n * the viewport, the top-left corner will be pushed on-screen (with overflow occuring on the\n * right and bottom).\n *\n * @param start Starting point from which the overlay is pushed.\n * @param rawOverlayRect Dimensions of the overlay.\n * @param scrollPosition Current viewport scroll position.\n * @returns The point at which to position the overlay after pushing. This is effectively a new\n * originPoint.\n */\n _pushOverlayOnScreen(start, rawOverlayRect, scrollPosition) {\n // If the position is locked and we've pushed the overlay already, reuse the previous push\n // amount, rather than pushing it again. If we were to continue pushing, the element would\n // remain in the viewport, which goes against the expectations when position locking is enabled.\n if (this._previousPushAmount && this._positionLocked) {\n return {\n x: start.x + this._previousPushAmount.x,\n y: start.y + this._previousPushAmount.y,\n };\n }\n // Round the overlay rect when comparing against the\n // viewport, because the viewport is always rounded.\n const overlay = getRoundedBoundingClientRect(rawOverlayRect);\n const viewport = this._viewportRect;\n // Determine how much the overlay goes outside the viewport on each\n // side, which we'll use to decide which direction to push it.\n const overflowRight = Math.max(start.x + overlay.width - viewport.width, 0);\n const overflowBottom = Math.max(start.y + overlay.height - viewport.height, 0);\n const overflowTop = Math.max(viewport.top - scrollPosition.top - start.y, 0);\n const overflowLeft = Math.max(viewport.left - scrollPosition.left - start.x, 0);\n // Amount by which to push the overlay in each axis such that it remains on-screen.\n let pushX = 0;\n let pushY = 0;\n // If the overlay fits completely within the bounds of the viewport, push it from whichever\n // direction is goes off-screen. Otherwise, push the top-left corner such that its in the\n // viewport and allow for the trailing end of the overlay to go out of bounds.\n if (overlay.width <= viewport.width) {\n pushX = overflowLeft || -overflowRight;\n }\n else {\n pushX = start.x < this._viewportMargin ? viewport.left - scrollPosition.left - start.x : 0;\n }\n if (overlay.height <= viewport.height) {\n pushY = overflowTop || -overflowBottom;\n }\n else {\n pushY = start.y < this._viewportMargin ? viewport.top - scrollPosition.top - start.y : 0;\n }\n this._previousPushAmount = { x: pushX, y: pushY };\n return {\n x: start.x + pushX,\n y: start.y + pushY,\n };\n }\n /**\n * Applies a computed position to the overlay and emits a position change.\n * @param position The position preference\n * @param originPoint The point on the origin element where the overlay is connected.\n */\n _applyPosition(position, originPoint) {\n this._setTransformOrigin(position);\n this._setOverlayElementStyles(originPoint, position);\n this._setBoundingBoxStyles(originPoint, position);\n if (position.panelClass) {\n this._addPanelClasses(position.panelClass);\n }\n // Save the last connected position in case the position needs to be re-calculated.\n this._lastPosition = position;\n // Notify that the position has been changed along with its change properties.\n // We only emit if we've got any subscriptions, because the scroll visibility\n // calculcations can be somewhat expensive.\n if (this._positionChanges.observers.length) {\n const scrollableViewProperties = this._getScrollVisibility();\n const changeEvent = new ConnectedOverlayPositionChange(position, scrollableViewProperties);\n this._positionChanges.next(changeEvent);\n }\n this._isInitialRender = false;\n }\n /** Sets the transform origin based on the configured selector and the passed-in position. */\n _setTransformOrigin(position) {\n if (!this._transformOriginSelector) {\n return;\n }\n const elements = this._boundingBox.querySelectorAll(this._transformOriginSelector);\n let xOrigin;\n let yOrigin = position.overlayY;\n if (position.overlayX === 'center') {\n xOrigin = 'center';\n }\n else if (this._isRtl()) {\n xOrigin = position.overlayX === 'start' ? 'right' : 'left';\n }\n else {\n xOrigin = position.overlayX === 'start' ? 'left' : 'right';\n }\n for (let i = 0; i < elements.length; i++) {\n elements[i].style.transformOrigin = `${xOrigin} ${yOrigin}`;\n }\n }\n /**\n * Gets the position and size of the overlay's sizing container.\n *\n * This method does no measuring and applies no styles so that we can cheaply compute the\n * bounds for all positions and choose the best fit based on these results.\n */\n _calculateBoundingBoxRect(origin, position) {\n const viewport = this._viewportRect;\n const isRtl = this._isRtl();\n let height, top, bottom;\n if (position.overlayY === 'top') {\n // Overlay is opening \"downward\" and thus is bound by the bottom viewport edge.\n top = origin.y;\n height = viewport.height - top + this._viewportMargin;\n }\n else if (position.overlayY === 'bottom') {\n // Overlay is opening \"upward\" and thus is bound by the top viewport edge. We need to add\n // the viewport margin back in, because the viewport rect is narrowed down to remove the\n // margin, whereas the `origin` position is calculated based on its `ClientRect`.\n bottom = viewport.height - origin.y + this._viewportMargin * 2;\n height = viewport.height - bottom + this._viewportMargin;\n }\n else {\n // If neither top nor bottom, it means that the overlay is vertically centered on the\n // origin point. Note that we want the position relative to the viewport, rather than\n // the page, which is why we don't use something like `viewport.bottom - origin.y` and\n // `origin.y - viewport.top`.\n const smallestDistanceToViewportEdge = Math.min(viewport.bottom - origin.y + viewport.top, origin.y);\n const previousHeight = this._lastBoundingBoxSize.height;\n height = smallestDistanceToViewportEdge * 2;\n top = origin.y - smallestDistanceToViewportEdge;\n if (height > previousHeight && !this._isInitialRender && !this._growAfterOpen) {\n top = origin.y - previousHeight / 2;\n }\n }\n // The overlay is opening 'right-ward' (the content flows to the right).\n const isBoundedByRightViewportEdge = (position.overlayX === 'start' && !isRtl) || (position.overlayX === 'end' && isRtl);\n // The overlay is opening 'left-ward' (the content flows to the left).\n const isBoundedByLeftViewportEdge = (position.overlayX === 'end' && !isRtl) || (position.overlayX === 'start' && isRtl);\n let width, left, right;\n if (isBoundedByLeftViewportEdge) {\n right = viewport.width - origin.x + this._viewportMargin;\n width = origin.x - this._viewportMargin;\n }\n else if (isBoundedByRightViewportEdge) {\n left = origin.x;\n width = viewport.right - origin.x;\n }\n else {\n // If neither start nor end, it means that the overlay is horizontally centered on the\n // origin point. Note that we want the position relative to the viewport, rather than\n // the page, which is why we don't use something like `viewport.right - origin.x` and\n // `origin.x - viewport.left`.\n const smallestDistanceToViewportEdge = Math.min(viewport.right - origin.x + viewport.left, origin.x);\n const previousWidth = this._lastBoundingBoxSize.width;\n width = smallestDistanceToViewportEdge * 2;\n left = origin.x - smallestDistanceToViewportEdge;\n if (width > previousWidth && !this._isInitialRender && !this._growAfterOpen) {\n left = origin.x - previousWidth / 2;\n }\n }\n return { top: top, left: left, bottom: bottom, right: right, width, height };\n }\n /**\n * Sets the position and size of the overlay's sizing wrapper. The wrapper is positioned on the\n * origin's connection point and stetches to the bounds of the viewport.\n *\n * @param origin The point on the origin element where the overlay is connected.\n * @param position The position preference\n */\n _setBoundingBoxStyles(origin, position) {\n const boundingBoxRect = this._calculateBoundingBoxRect(origin, position);\n // It's weird if the overlay *grows* while scrolling, so we take the last size into account\n // when applying a new size.\n if (!this._isInitialRender && !this._growAfterOpen) {\n boundingBoxRect.height = Math.min(boundingBoxRect.height, this._lastBoundingBoxSize.height);\n boundingBoxRect.width = Math.min(boundingBoxRect.width, this._lastBoundingBoxSize.width);\n }\n const styles = {};\n if (this._hasExactPosition()) {\n styles.top = styles.left = '0';\n styles.bottom = styles.right = styles.maxHeight = styles.maxWidth = '';\n styles.width = styles.height = '100%';\n }\n else {\n const maxHeight = this._overlayRef.getConfig().maxHeight;\n const maxWidth = this._overlayRef.getConfig().maxWidth;\n styles.height = coerceCssPixelValue(boundingBoxRect.height);\n styles.top = coerceCssPixelValue(boundingBoxRect.top);\n styles.bottom = coerceCssPixelValue(boundingBoxRect.bottom);\n styles.width = coerceCssPixelValue(boundingBoxRect.width);\n styles.left = coerceCssPixelValue(boundingBoxRect.left);\n styles.right = coerceCssPixelValue(boundingBoxRect.right);\n // Push the pane content towards the proper direction.\n if (position.overlayX === 'center') {\n styles.alignItems = 'center';\n }\n else {\n styles.alignItems = position.overlayX === 'end' ? 'flex-end' : 'flex-start';\n }\n if (position.overlayY === 'center') {\n styles.justifyContent = 'center';\n }\n else {\n styles.justifyContent = position.overlayY === 'bottom' ? 'flex-end' : 'flex-start';\n }\n if (maxHeight) {\n styles.maxHeight = coerceCssPixelValue(maxHeight);\n }\n if (maxWidth) {\n styles.maxWidth = coerceCssPixelValue(maxWidth);\n }\n }\n this._lastBoundingBoxSize = boundingBoxRect;\n extendStyles(this._boundingBox.style, styles);\n }\n /** Resets the styles for the bounding box so that a new positioning can be computed. */\n _resetBoundingBoxStyles() {\n extendStyles(this._boundingBox.style, {\n top: '0',\n left: '0',\n right: '0',\n bottom: '0',\n height: '',\n width: '',\n alignItems: '',\n justifyContent: '',\n });\n }\n /** Resets the styles for the overlay pane so that a new positioning can be computed. */\n _resetOverlayElementStyles() {\n extendStyles(this._pane.style, {\n top: '',\n left: '',\n bottom: '',\n right: '',\n position: '',\n transform: '',\n });\n }\n /** Sets positioning styles to the overlay element. */\n _setOverlayElementStyles(originPoint, position) {\n const styles = {};\n const hasExactPosition = this._hasExactPosition();\n const hasFlexibleDimensions = this._hasFlexibleDimensions;\n const config = this._overlayRef.getConfig();\n if (hasExactPosition) {\n const scrollPosition = this._viewportRuler.getViewportScrollPosition();\n extendStyles(styles, this._getExactOverlayY(position, originPoint, scrollPosition));\n extendStyles(styles, this._getExactOverlayX(position, originPoint, scrollPosition));\n }\n else {\n styles.position = 'static';\n }\n // Use a transform to apply the offsets. We do this because the `center` positions rely on\n // being in the normal flex flow and setting a `top` / `left` at all will completely throw\n // off the position. We also can't use margins, because they won't have an effect in some\n // cases where the element doesn't have anything to \"push off of\". Finally, this works\n // better both with flexible and non-flexible positioning.\n let transformString = '';\n let offsetX = this._getOffset(position, 'x');\n let offsetY = this._getOffset(position, 'y');\n if (offsetX) {\n transformString += `translateX(${offsetX}px) `;\n }\n if (offsetY) {\n transformString += `translateY(${offsetY}px)`;\n }\n styles.transform = transformString.trim();\n // If a maxWidth or maxHeight is specified on the overlay, we remove them. We do this because\n // we need these values to both be set to \"100%\" for the automatic flexible sizing to work.\n // The maxHeight and maxWidth are set on the boundingBox in order to enforce the constraint.\n // Note that this doesn't apply when we have an exact position, in which case we do want to\n // apply them because they'll be cleared from the bounding box.\n if (config.maxHeight) {\n if (hasExactPosition) {\n styles.maxHeight = coerceCssPixelValue(config.maxHeight);\n }\n else if (hasFlexibleDimensions) {\n styles.maxHeight = '';\n }\n }\n if (config.maxWidth) {\n if (hasExactPosition) {\n styles.maxWidth = coerceCssPixelValue(config.maxWidth);\n }\n else if (hasFlexibleDimensions) {\n styles.maxWidth = '';\n }\n }\n extendStyles(this._pane.style, styles);\n }\n /** Gets the exact top/bottom for the overlay when not using flexible sizing or when pushing. */\n _getExactOverlayY(position, originPoint, scrollPosition) {\n // Reset any existing styles. This is necessary in case the\n // preferred position has changed since the last `apply`.\n let styles = { top: '', bottom: '' };\n let overlayPoint = this._getOverlayPoint(originPoint, this._overlayRect, position);\n if (this._isPushed) {\n overlayPoint = this._pushOverlayOnScreen(overlayPoint, this._overlayRect, scrollPosition);\n }\n // We want to set either `top` or `bottom` based on whether the overlay wants to appear\n // above or below the origin and the direction in which the element will expand.\n if (position.overlayY === 'bottom') {\n // When using `bottom`, we adjust the y position such that it is the distance\n // from the bottom of the viewport rather than the top.\n const documentHeight = this._document.documentElement.clientHeight;\n styles.bottom = `${documentHeight - (overlayPoint.y + this._overlayRect.height)}px`;\n }\n else {\n styles.top = coerceCssPixelValue(overlayPoint.y);\n }\n return styles;\n }\n /** Gets the exact left/right for the overlay when not using flexible sizing or when pushing. */\n _getExactOverlayX(position, originPoint, scrollPosition) {\n // Reset any existing styles. This is necessary in case the preferred position has\n // changed since the last `apply`.\n let styles = { left: '', right: '' };\n let overlayPoint = this._getOverlayPoint(originPoint, this._overlayRect, position);\n if (this._isPushed) {\n overlayPoint = this._pushOverlayOnScreen(overlayPoint, this._overlayRect, scrollPosition);\n }\n // We want to set either `left` or `right` based on whether the overlay wants to appear \"before\"\n // or \"after\" the origin, which determines the direction in which the element will expand.\n // For the horizontal axis, the meaning of \"before\" and \"after\" change based on whether the\n // page is in RTL or LTR.\n let horizontalStyleProperty;\n if (this._isRtl()) {\n horizontalStyleProperty = position.overlayX === 'end' ? 'left' : 'right';\n }\n else {\n horizontalStyleProperty = position.overlayX === 'end' ? 'right' : 'left';\n }\n // When we're setting `right`, we adjust the x position such that it is the distance\n // from the right edge of the viewport rather than the left edge.\n if (horizontalStyleProperty === 'right') {\n const documentWidth = this._document.documentElement.clientWidth;\n styles.right = `${documentWidth - (overlayPoint.x + this._overlayRect.width)}px`;\n }\n else {\n styles.left = coerceCssPixelValue(overlayPoint.x);\n }\n return styles;\n }\n /**\n * Gets the view properties of the trigger and overlay, including whether they are clipped\n * or completely outside the view of any of the strategy's scrollables.\n */\n _getScrollVisibility() {\n // Note: needs fresh rects since the position could've changed.\n const originBounds = this._getOriginRect();\n const overlayBounds = this._pane.getBoundingClientRect();\n // TODO(jelbourn): instead of needing all of the client rects for these scrolling containers\n // every time, we should be able to use the scrollTop of the containers if the size of those\n // containers hasn't changed.\n const scrollContainerBounds = this._scrollables.map(scrollable => {\n return scrollable.getElementRef().nativeElement.getBoundingClientRect();\n });\n return {\n isOriginClipped: isElementClippedByScrolling(originBounds, scrollContainerBounds),\n isOriginOutsideView: isElementScrolledOutsideView(originBounds, scrollContainerBounds),\n isOverlayClipped: isElementClippedByScrolling(overlayBounds, scrollContainerBounds),\n isOverlayOutsideView: isElementScrolledOutsideView(overlayBounds, scrollContainerBounds),\n };\n }\n /** Subtracts the amount that an element is overflowing on an axis from its length. */\n _subtractOverflows(length, ...overflows) {\n return overflows.reduce((currentValue, currentOverflow) => {\n return currentValue - Math.max(currentOverflow, 0);\n }, length);\n }\n /** Narrows the given viewport rect by the current _viewportMargin. */\n _getNarrowedViewportRect() {\n // We recalculate the viewport rect here ourselves, rather than using the ViewportRuler,\n // because we want to use the `clientWidth` and `clientHeight` as the base. The difference\n // being that the client properties don't include the scrollbar, as opposed to `innerWidth`\n // and `innerHeight` that do. This is necessary, because the overlay container uses\n // 100% `width` and `height` which don't include the scrollbar either.\n const width = this._document.documentElement.clientWidth;\n const height = this._document.documentElement.clientHeight;\n const scrollPosition = this._viewportRuler.getViewportScrollPosition();\n return {\n top: scrollPosition.top + this._viewportMargin,\n left: scrollPosition.left + this._viewportMargin,\n right: scrollPosition.left + width - this._viewportMargin,\n bottom: scrollPosition.top + height - this._viewportMargin,\n width: width - 2 * this._viewportMargin,\n height: height - 2 * this._viewportMargin,\n };\n }\n /** Whether the we're dealing with an RTL context */\n _isRtl() {\n return this._overlayRef.getDirection() === 'rtl';\n }\n /** Determines whether the overlay uses exact or flexible positioning. */\n _hasExactPosition() {\n return !this._hasFlexibleDimensions || this._isPushed;\n }\n /** Retrieves the offset of a position along the x or y axis. */\n _getOffset(position, axis) {\n if (axis === 'x') {\n // We don't do something like `position['offset' + axis]` in\n // order to avoid breking minifiers that rename properties.\n return position.offsetX == null ? this._offsetX : position.offsetX;\n }\n return position.offsetY == null ? this._offsetY : position.offsetY;\n }\n /** Validates that the current position match the expected values. */\n _validatePositions() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._preferredPositions.length) {\n throw Error('FlexibleConnectedPositionStrategy: At least one position is required.');\n }\n // TODO(crisbeto): remove these once Angular's template type\n // checking is advanced enough to catch these cases.\n this._preferredPositions.forEach(pair => {\n validateHorizontalPosition('originX', pair.originX);\n validateVerticalPosition('originY', pair.originY);\n validateHorizontalPosition('overlayX', pair.overlayX);\n validateVerticalPosition('overlayY', pair.overlayY);\n });\n }\n }\n /** Adds a single CSS class or an array of classes on the overlay panel. */\n _addPanelClasses(cssClasses) {\n if (this._pane) {\n coerceArray(cssClasses).forEach(cssClass => {\n if (cssClass !== '' && this._appliedPanelClasses.indexOf(cssClass) === -1) {\n this._appliedPanelClasses.push(cssClass);\n this._pane.classList.add(cssClass);\n }\n });\n }\n }\n /** Clears the classes that the position strategy has applied from the overlay panel. */\n _clearPanelClasses() {\n if (this._pane) {\n this._appliedPanelClasses.forEach(cssClass => {\n this._pane.classList.remove(cssClass);\n });\n this._appliedPanelClasses = [];\n }\n }\n /** Returns the ClientRect of the current origin. */\n _getOriginRect() {\n const origin = this._origin;\n if (origin instanceof ElementRef) {\n return origin.nativeElement.getBoundingClientRect();\n }\n // Check for Element so SVG elements are also supported.\n if (origin instanceof Element) {\n return origin.getBoundingClientRect();\n }\n const width = origin.width || 0;\n const height = origin.height || 0;\n // If the origin is a point, return a client rect as if it was a 0x0 element at the point.\n return {\n top: origin.y,\n bottom: origin.y + height,\n left: origin.x,\n right: origin.x + width,\n height,\n width,\n };\n }\n}\n/** Shallow-extends a stylesheet object with another stylesheet object. */\nfunction extendStyles(destination, source) {\n for (let key in source) {\n if (source.hasOwnProperty(key)) {\n destination[key] = source[key];\n }\n }\n return destination;\n}\n/**\n * Extracts the pixel value as a number from a value, if it's a number\n * or a CSS pixel string (e.g. `1337px`). Otherwise returns null.\n */\nfunction getPixelValue(input) {\n if (typeof input !== 'number' && input != null) {\n const [value, units] = input.split(cssUnitPattern);\n return !units || units === 'px' ? parseFloat(value) : null;\n }\n return input || null;\n}\n/**\n * Gets a version of an element's bounding `ClientRect` where all the values are rounded down to\n * the nearest pixel. This allows us to account for the cases where there may be sub-pixel\n * deviations in the `ClientRect` returned by the browser (e.g. when zoomed in with a percentage\n * size, see #21350).\n */\nfunction getRoundedBoundingClientRect(clientRect) {\n return {\n top: Math.floor(clientRect.top),\n right: Math.floor(clientRect.right),\n bottom: Math.floor(clientRect.bottom),\n left: Math.floor(clientRect.left),\n width: Math.floor(clientRect.width),\n height: Math.floor(clientRect.height),\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/** Class to be added to the overlay pane wrapper. */\nconst wrapperClass = 'cdk-global-overlay-wrapper';\n/**\n * A strategy for positioning overlays. Using this strategy, an overlay is given an\n * explicit position relative to the browser's viewport. We use flexbox, instead of\n * transforms, in order to avoid issues with subpixel rendering which can cause the\n * element to become blurry.\n */\nclass GlobalPositionStrategy {\n constructor() {\n this._cssPosition = 'static';\n this._topOffset = '';\n this._bottomOffset = '';\n this._leftOffset = '';\n this._rightOffset = '';\n this._alignItems = '';\n this._justifyContent = '';\n this._width = '';\n this._height = '';\n }\n attach(overlayRef) {\n const config = overlayRef.getConfig();\n this._overlayRef = overlayRef;\n if (this._width && !config.width) {\n overlayRef.updateSize({ width: this._width });\n }\n if (this._height && !config.height) {\n overlayRef.updateSize({ height: this._height });\n }\n overlayRef.hostElement.classList.add(wrapperClass);\n this._isDisposed = false;\n }\n /**\n * Sets the top position of the overlay. Clears any previously set vertical position.\n * @param value New top offset.\n */\n top(value = '') {\n this._bottomOffset = '';\n this._topOffset = value;\n this._alignItems = 'flex-start';\n return this;\n }\n /**\n * Sets the left position of the overlay. Clears any previously set horizontal position.\n * @param value New left offset.\n */\n left(value = '') {\n this._rightOffset = '';\n this._leftOffset = value;\n this._justifyContent = 'flex-start';\n return this;\n }\n /**\n * Sets the bottom position of the overlay. Clears any previously set vertical position.\n * @param value New bottom offset.\n */\n bottom(value = '') {\n this._topOffset = '';\n this._bottomOffset = value;\n this._alignItems = 'flex-end';\n return this;\n }\n /**\n * Sets the right position of the overlay. Clears any previously set horizontal position.\n * @param value New right offset.\n */\n right(value = '') {\n this._leftOffset = '';\n this._rightOffset = value;\n this._justifyContent = 'flex-end';\n return this;\n }\n /**\n * Sets the overlay width and clears any previously set width.\n * @param value New width for the overlay\n * @deprecated Pass the `width` through the `OverlayConfig`.\n * @breaking-change 8.0.0\n */\n width(value = '') {\n if (this._overlayRef) {\n this._overlayRef.updateSize({ width: value });\n }\n else {\n this._width = value;\n }\n return this;\n }\n /**\n * Sets the overlay height and clears any previously set height.\n * @param value New height for the overlay\n * @deprecated Pass the `height` through the `OverlayConfig`.\n * @breaking-change 8.0.0\n */\n height(value = '') {\n if (this._overlayRef) {\n this._overlayRef.updateSize({ height: value });\n }\n else {\n this._height = value;\n }\n return this;\n }\n /**\n * Centers the overlay horizontally with an optional offset.\n * Clears any previously set horizontal position.\n *\n * @param offset Overlay offset from the horizontal center.\n */\n centerHorizontally(offset = '') {\n this.left(offset);\n this._justifyContent = 'center';\n return this;\n }\n /**\n * Centers the overlay vertically with an optional offset.\n * Clears any previously set vertical position.\n *\n * @param offset Overlay offset from the vertical center.\n */\n centerVertically(offset = '') {\n this.top(offset);\n this._alignItems = 'center';\n return this;\n }\n /**\n * Apply the position to the element.\n * @docs-private\n */\n apply() {\n // Since the overlay ref applies the strategy asynchronously, it could\n // have been disposed before it ends up being applied. If that is the\n // case, we shouldn't do anything.\n if (!this._overlayRef || !this._overlayRef.hasAttached()) {\n return;\n }\n const styles = this._overlayRef.overlayElement.style;\n const parentStyles = this._overlayRef.hostElement.style;\n const config = this._overlayRef.getConfig();\n const { width, height, maxWidth, maxHeight } = config;\n const shouldBeFlushHorizontally = (width === '100%' || width === '100vw') &&\n (!maxWidth || maxWidth === '100%' || maxWidth === '100vw');\n const shouldBeFlushVertically = (height === '100%' || height === '100vh') &&\n (!maxHeight || maxHeight === '100%' || maxHeight === '100vh');\n styles.position = this._cssPosition;\n styles.marginLeft = shouldBeFlushHorizontally ? '0' : this._leftOffset;\n styles.marginTop = shouldBeFlushVertically ? '0' : this._topOffset;\n styles.marginBottom = this._bottomOffset;\n styles.marginRight = this._rightOffset;\n if (shouldBeFlushHorizontally) {\n parentStyles.justifyContent = 'flex-start';\n }\n else if (this._justifyContent === 'center') {\n parentStyles.justifyContent = 'center';\n }\n else if (this._overlayRef.getConfig().direction === 'rtl') {\n // In RTL the browser will invert `flex-start` and `flex-end` automatically, but we\n // don't want that because our positioning is explicitly `left` and `right`, hence\n // why we do another inversion to ensure that the overlay stays in the same position.\n // TODO: reconsider this if we add `start` and `end` methods.\n if (this._justifyContent === 'flex-start') {\n parentStyles.justifyContent = 'flex-end';\n }\n else if (this._justifyContent === 'flex-end') {\n parentStyles.justifyContent = 'flex-start';\n }\n }\n else {\n parentStyles.justifyContent = this._justifyContent;\n }\n parentStyles.alignItems = shouldBeFlushVertically ? 'flex-start' : this._alignItems;\n }\n /**\n * Cleans up the DOM changes from the position strategy.\n * @docs-private\n */\n dispose() {\n if (this._isDisposed || !this._overlayRef) {\n return;\n }\n const styles = this._overlayRef.overlayElement.style;\n const parent = this._overlayRef.hostElement;\n const parentStyles = parent.style;\n parent.classList.remove(wrapperClass);\n parentStyles.justifyContent =\n parentStyles.alignItems =\n styles.marginTop =\n styles.marginBottom =\n styles.marginLeft =\n styles.marginRight =\n styles.position =\n '';\n this._overlayRef = null;\n this._isDisposed = true;\n }\n}\n\n/** Builder for overlay position strategy. */\nclass OverlayPositionBuilder {\n constructor(_viewportRuler, _document, _platform, _overlayContainer) {\n this._viewportRuler = _viewportRuler;\n this._document = _document;\n this._platform = _platform;\n this._overlayContainer = _overlayContainer;\n }\n /**\n * Creates a global position strategy.\n */\n global() {\n return new GlobalPositionStrategy();\n }\n /**\n * Creates a flexible position strategy.\n * @param origin Origin relative to which to position the overlay.\n */\n flexibleConnectedTo(origin) {\n return new FlexibleConnectedPositionStrategy(origin, this._viewportRuler, this._document, this._platform, this._overlayContainer);\n }\n}\nOverlayPositionBuilder.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: OverlayPositionBuilder, deps: [{ token: i1.ViewportRuler }, { token: DOCUMENT }, { token: i1$1.Platform }, { token: OverlayContainer }], target: i0.ɵɵFactoryTarget.Injectable });\nOverlayPositionBuilder.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: OverlayPositionBuilder, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: OverlayPositionBuilder, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () {\n return [{ type: i1.ViewportRuler }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i1$1.Platform }, { type: OverlayContainer }];\n } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source 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 * Service for dispatching events that land on the body to appropriate overlay ref,\n * if any. It maintains a list of attached overlays to determine best suited overlay based\n * on event target and order of overlay opens.\n */\nclass BaseOverlayDispatcher {\n constructor(document) {\n /** Currently attached overlays in the order they were attached. */\n this._attachedOverlays = [];\n this._document = document;\n }\n ngOnDestroy() {\n this.detach();\n }\n /** Add a new overlay to the list of attached overlay refs. */\n add(overlayRef) {\n // Ensure that we don't get the same overlay multiple times.\n this.remove(overlayRef);\n this._attachedOverlays.push(overlayRef);\n }\n /** Remove an overlay from the list of attached overlay refs. */\n remove(overlayRef) {\n const index = this._attachedOverlays.indexOf(overlayRef);\n if (index > -1) {\n this._attachedOverlays.splice(index, 1);\n }\n // Remove the global listener once there are no more overlays.\n if (this._attachedOverlays.length === 0) {\n this.detach();\n }\n }\n}\nBaseOverlayDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: BaseOverlayDispatcher, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nBaseOverlayDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: BaseOverlayDispatcher, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: BaseOverlayDispatcher, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }];\n } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Service for dispatching keyboard events that land on the body to appropriate overlay ref,\n * if any. It maintains a list of attached overlays to determine best suited overlay based\n * on event target and order of overlay opens.\n */\nclass OverlayKeyboardDispatcher extends BaseOverlayDispatcher {\n constructor(document, \n /** @breaking-change 14.0.0 _ngZone will be required. */\n _ngZone) {\n super(document);\n this._ngZone = _ngZone;\n /** Keyboard event listener that will be attached to the body. */\n this._keydownListener = (event) => {\n const overlays = this._attachedOverlays;\n for (let i = overlays.length - 1; i > -1; i--) {\n // Dispatch the keydown event to the top overlay which has subscribers to its keydown events.\n // We want to target the most recent overlay, rather than trying to match where the event came\n // from, because some components might open an overlay, but keep focus on a trigger element\n // (e.g. for select and autocomplete). We skip overlays without keydown event subscriptions,\n // because we don't want overlays that don't handle keyboard events to block the ones below\n // them that do.\n if (overlays[i]._keydownEvents.observers.length > 0) {\n const keydownEvents = overlays[i]._keydownEvents;\n /** @breaking-change 14.0.0 _ngZone will be required. */\n if (this._ngZone) {\n this._ngZone.run(() => keydownEvents.next(event));\n }\n else {\n keydownEvents.next(event);\n }\n break;\n }\n }\n };\n }\n /** Add a new overlay to the list of attached overlay refs. */\n add(overlayRef) {\n super.add(overlayRef);\n // Lazily start dispatcher once first overlay is added\n if (!this._isAttached) {\n /** @breaking-change 14.0.0 _ngZone will be required. */\n if (this._ngZone) {\n this._ngZone.runOutsideAngular(() => this._document.body.addEventListener('keydown', this._keydownListener));\n }\n else {\n this._document.body.addEventListener('keydown', this._keydownListener);\n }\n this._isAttached = true;\n }\n }\n /** Detaches the global keyboard event listener. */\n detach() {\n if (this._isAttached) {\n this._document.body.removeEventListener('keydown', this._keydownListener);\n this._isAttached = false;\n }\n }\n}\nOverlayKeyboardDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: OverlayKeyboardDispatcher, deps: [{ token: DOCUMENT }, { token: i0.NgZone, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nOverlayKeyboardDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: OverlayKeyboardDispatcher, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: OverlayKeyboardDispatcher, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i0.NgZone, decorators: [{\n type: Optional\n }] }];\n } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Service for dispatching mouse click events that land on the body to appropriate overlay ref,\n * if any. It maintains a list of attached overlays to determine best suited overlay based\n * on event target and order of overlay opens.\n */\nclass OverlayOutsideClickDispatcher extends BaseOverlayDispatcher {\n constructor(document, _platform, \n /** @breaking-change 14.0.0 _ngZone will be required. */\n _ngZone) {\n super(document);\n this._platform = _platform;\n this._ngZone = _ngZone;\n this._cursorStyleIsSet = false;\n /** Store pointerdown event target to track origin of click. */\n this._pointerDownListener = (event) => {\n this._pointerDownEventTarget = _getEventTarget(event);\n };\n /** Click event listener that will be attached to the body propagate phase. */\n this._clickListener = (event) => {\n const target = _getEventTarget(event);\n // In case of a click event, we want to check the origin of the click\n // (e.g. in case where a user starts a click inside the overlay and\n // releases the click outside of it).\n // This is done by using the event target of the preceding pointerdown event.\n // Every click event caused by a pointer device has a preceding pointerdown\n // event, unless the click was programmatically triggered (e.g. in a unit test).\n const origin = event.type === 'click' && this._pointerDownEventTarget\n ? this._pointerDownEventTarget\n : target;\n // Reset the stored pointerdown event target, to avoid having it interfere\n // in subsequent events.\n this._pointerDownEventTarget = null;\n // We copy the array because the original may be modified asynchronously if the\n // outsidePointerEvents listener decides to detach overlays resulting in index errors inside\n // the for loop.\n const overlays = this._attachedOverlays.slice();\n // Dispatch the mouse event to the top overlay which has subscribers to its mouse events.\n // We want to target all overlays for which the click could be considered as outside click.\n // As soon as we reach an overlay for which the click is not outside click we break off\n // the loop.\n for (let i = overlays.length - 1; i > -1; i--) {\n const overlayRef = overlays[i];\n if (overlayRef._outsidePointerEvents.observers.length < 1 || !overlayRef.hasAttached()) {\n continue;\n }\n // If it's a click inside the overlay, just break - we should do nothing\n // If it's an outside click (both origin and target of the click) dispatch the mouse event,\n // and proceed with the next overlay\n if (overlayRef.overlayElement.contains(target) ||\n overlayRef.overlayElement.contains(origin)) {\n break;\n }\n const outsidePointerEvents = overlayRef._outsidePointerEvents;\n /** @breaking-change 14.0.0 _ngZone will be required. */\n if (this._ngZone) {\n this._ngZone.run(() => outsidePointerEvents.next(event));\n }\n else {\n outsidePointerEvents.next(event);\n }\n }\n };\n }\n /** Add a new overlay to the list of attached overlay refs. */\n add(overlayRef) {\n super.add(overlayRef);\n // Safari on iOS does not generate click events for non-interactive\n // elements. However, we want to receive a click for any element outside\n // the overlay. We can force a \"clickable\" state by setting\n // `cursor: pointer` on the document body. See:\n // https://developer.mozilla.org/en-US/docs/Web/API/Element/click_event#Safari_Mobile\n // https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html\n if (!this._isAttached) {\n const body = this._document.body;\n /** @breaking-change 14.0.0 _ngZone will be required. */\n if (this._ngZone) {\n this._ngZone.runOutsideAngular(() => this._addEventListeners(body));\n }\n else {\n this._addEventListeners(body);\n }\n // click event is not fired on iOS. To make element \"clickable\" we are\n // setting the cursor to pointer\n if (this._platform.IOS && !this._cursorStyleIsSet) {\n this._cursorOriginalValue = body.style.cursor;\n body.style.cursor = 'pointer';\n this._cursorStyleIsSet = true;\n }\n this._isAttached = true;\n }\n }\n /** Detaches the global keyboard event listener. */\n detach() {\n if (this._isAttached) {\n const body = this._document.body;\n body.removeEventListener('pointerdown', this._pointerDownListener, true);\n body.removeEventListener('click', this._clickListener, true);\n body.removeEventListener('auxclick', this._clickListener, true);\n body.removeEventListener('contextmenu', this._clickListener, true);\n if (this._platform.IOS && this._cursorStyleIsSet) {\n body.style.cursor = this._cursorOriginalValue;\n this._cursorStyleIsSet = false;\n }\n this._isAttached = false;\n }\n }\n _addEventListeners(body) {\n body.addEventListener('pointerdown', this._pointerDownListener, true);\n body.addEventListener('click', this._clickListener, true);\n body.addEventListener('auxclick', this._clickListener, true);\n body.addEventListener('contextmenu', this._clickListener, true);\n }\n}\nOverlayOutsideClickDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: OverlayOutsideClickDispatcher, deps: [{ token: DOCUMENT }, { token: i1$1.Platform }, { token: i0.NgZone, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nOverlayOutsideClickDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: OverlayOutsideClickDispatcher, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: OverlayOutsideClickDispatcher, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i1$1.Platform }, { type: i0.NgZone, decorators: [{\n type: Optional\n }] }];\n } });\n\n/** Next overlay unique ID. */\nlet nextUniqueId = 0;\n// Note that Overlay is *not* scoped to the app root because of the ComponentFactoryResolver\n// which needs to be different depending on where OverlayModule is imported.\n/**\n * Service to create Overlays. Overlays are dynamically added pieces of floating UI, meant to be\n * used as a low-level building block for other components. Dialogs, tooltips, menus,\n * selects, etc. can all be built using overlays. The service should primarily be used by authors\n * of re-usable components rather than developers building end-user applications.\n *\n * An overlay *is* a PortalOutlet, so any kind of Portal can be loaded into one.\n */\nclass Overlay {\n constructor(\n /** Scrolling strategies that can be used when creating an overlay. */\n scrollStrategies, _overlayContainer, _componentFactoryResolver, _positionBuilder, _keyboardDispatcher, _injector, _ngZone, _document, _directionality, _location, _outsideClickDispatcher) {\n this.scrollStrategies = scrollStrategies;\n this._overlayContainer = _overlayContainer;\n this._componentFactoryResolver = _componentFactoryResolver;\n this._positionBuilder = _positionBuilder;\n this._keyboardDispatcher = _keyboardDispatcher;\n this._injector = _injector;\n this._ngZone = _ngZone;\n this._document = _document;\n this._directionality = _directionality;\n this._location = _location;\n this._outsideClickDispatcher = _outsideClickDispatcher;\n }\n /**\n * Creates an overlay.\n * @param config Configuration applied to the overlay.\n * @returns Reference to the created overlay.\n */\n create(config) {\n const host = this._createHostElement();\n const pane = this._createPaneElement(host);\n const portalOutlet = this._createPortalOutlet(pane);\n const overlayConfig = new OverlayConfig(config);\n overlayConfig.direction = overlayConfig.direction || this._directionality.value;\n return new OverlayRef(portalOutlet, host, pane, overlayConfig, this._ngZone, this._keyboardDispatcher, this._document, this._location, this._outsideClickDispatcher);\n }\n /**\n * Gets a position builder that can be used, via fluent API,\n * to construct and configure a position strategy.\n * @returns An overlay position builder.\n */\n position() {\n return this._positionBuilder;\n }\n /**\n * Creates the DOM element for an overlay and appends it to the overlay container.\n * @returns Newly-created pane element\n */\n _createPaneElement(host) {\n const pane = this._document.createElement('div');\n pane.id = `cdk-overlay-${nextUniqueId++}`;\n pane.classList.add('cdk-overlay-pane');\n host.appendChild(pane);\n return pane;\n }\n /**\n * Creates the host element that wraps around an overlay\n * and can be used for advanced positioning.\n * @returns Newly-create host element.\n */\n _createHostElement() {\n const host = this._document.createElement('div');\n this._overlayContainer.getContainerElement().appendChild(host);\n return host;\n }\n /**\n * Create a DomPortalOutlet into which the overlay content can be loaded.\n * @param pane The DOM element to turn into a portal outlet.\n * @returns A portal outlet for the given DOM element.\n */\n _createPortalOutlet(pane) {\n // We have to resolve the ApplicationRef later in order to allow people\n // to use overlay-based providers during app initialization.\n if (!this._appRef) {\n this._appRef = this._injector.get(ApplicationRef);\n }\n return new DomPortalOutlet(pane, this._componentFactoryResolver, this._appRef, this._injector, this._document);\n }\n}\nOverlay.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: Overlay, deps: [{ token: ScrollStrategyOptions }, { token: OverlayContainer }, { token: i0.ComponentFactoryResolver }, { token: OverlayPositionBuilder }, { token: OverlayKeyboardDispatcher }, { token: i0.Injector }, { token: i0.NgZone }, { token: DOCUMENT }, { token: i5.Directionality }, { token: i6.Location }, { token: OverlayOutsideClickDispatcher }], target: i0.ɵɵFactoryTarget.Injectable });\nOverlay.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: Overlay });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: Overlay, decorators: [{\n type: Injectable\n }], ctorParameters: function () {\n return [{ type: ScrollStrategyOptions }, { type: OverlayContainer }, { type: i0.ComponentFactoryResolver }, { type: OverlayPositionBuilder }, { type: OverlayKeyboardDispatcher }, { type: i0.Injector }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i5.Directionality }, { type: i6.Location }, { type: OverlayOutsideClickDispatcher }];\n } });\n\n/** Default set of positions for the overlay. Follows the behavior of a dropdown. */\nconst defaultPositionList = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n];\n/** Injection token that determines the scroll handling while the connected overlay is open. */\nconst CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY = new InjectionToken('cdk-connected-overlay-scroll-strategy');\n/**\n * Directive applied to an element to make it usable as an origin for an Overlay using a\n * ConnectedPositionStrategy.\n */\nclass CdkOverlayOrigin {\n constructor(\n /** Reference to the element on which the directive is applied. */\n elementRef) {\n this.elementRef = elementRef;\n }\n}\nCdkOverlayOrigin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CdkOverlayOrigin, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\nCdkOverlayOrigin.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.0\", type: CdkOverlayOrigin, selector: \"[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]\", exportAs: [\"cdkOverlayOrigin\"], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CdkOverlayOrigin, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]',\n exportAs: 'cdkOverlayOrigin',\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });\n/**\n * Directive to facilitate declarative creation of an\n * Overlay using a FlexibleConnectedPositionStrategy.\n */\nclass CdkConnectedOverlay {\n // TODO(jelbourn): inputs for size, scroll behavior, animation, etc.\n constructor(_overlay, templateRef, viewContainerRef, scrollStrategyFactory, _dir) {\n this._overlay = _overlay;\n this._dir = _dir;\n this._hasBackdrop = false;\n this._lockPosition = false;\n this._growAfterOpen = false;\n this._flexibleDimensions = false;\n this._push = false;\n this._backdropSubscription = Subscription.EMPTY;\n this._attachSubscription = Subscription.EMPTY;\n this._detachSubscription = Subscription.EMPTY;\n this._positionSubscription = Subscription.EMPTY;\n /** Margin between the overlay and the viewport edges. */\n this.viewportMargin = 0;\n /** Whether the overlay is open. */\n this.open = false;\n /** Whether the overlay can be closed by user interaction. */\n this.disableClose = false;\n /** Event emitted when the backdrop is clicked. */\n this.backdropClick = new EventEmitter();\n /** Event emitted when the position has changed. */\n this.positionChange = new EventEmitter();\n /** Event emitted when the overlay has been attached. */\n this.attach = new EventEmitter();\n /** Event emitted when the overlay has been detached. */\n this.detach = new EventEmitter();\n /** Emits when there are keyboard events that are targeted at the overlay. */\n this.overlayKeydown = new EventEmitter();\n /** Emits when there are mouse outside click events that are targeted at the overlay. */\n this.overlayOutsideClick = new EventEmitter();\n this._templatePortal = new TemplatePortal(templateRef, viewContainerRef);\n this._scrollStrategyFactory = scrollStrategyFactory;\n this.scrollStrategy = this._scrollStrategyFactory();\n }\n /** The offset in pixels for the overlay connection point on the x-axis */\n get offsetX() {\n return this._offsetX;\n }\n set offsetX(offsetX) {\n this._offsetX = offsetX;\n if (this._position) {\n this._updatePositionStrategy(this._position);\n }\n }\n /** The offset in pixels for the overlay connection point on the y-axis */\n get offsetY() {\n return this._offsetY;\n }\n set offsetY(offsetY) {\n this._offsetY = offsetY;\n if (this._position) {\n this._updatePositionStrategy(this._position);\n }\n }\n /** Whether or not the overlay should attach a backdrop. */\n get hasBackdrop() {\n return this._hasBackdrop;\n }\n set hasBackdrop(value) {\n this._hasBackdrop = coerceBooleanProperty(value);\n }\n /** Whether or not the overlay should be locked when scrolling. */\n get lockPosition() {\n return this._lockPosition;\n }\n set lockPosition(value) {\n this._lockPosition = coerceBooleanProperty(value);\n }\n /** Whether the overlay's width and height can be constrained to fit within the viewport. */\n get flexibleDimensions() {\n return this._flexibleDimensions;\n }\n set flexibleDimensions(value) {\n this._flexibleDimensions = coerceBooleanProperty(value);\n }\n /** Whether the overlay can grow after the initial open when flexible positioning is turned on. */\n get growAfterOpen() {\n return this._growAfterOpen;\n }\n set growAfterOpen(value) {\n this._growAfterOpen = coerceBooleanProperty(value);\n }\n /** Whether the overlay can be pushed on-screen if none of the provided positions fit. */\n get push() {\n return this._push;\n }\n set push(value) {\n this._push = coerceBooleanProperty(value);\n }\n /** The associated overlay reference. */\n get overlayRef() {\n return this._overlayRef;\n }\n /** The element's layout direction. */\n get dir() {\n return this._dir ? this._dir.value : 'ltr';\n }\n ngOnDestroy() {\n this._attachSubscription.unsubscribe();\n this._detachSubscription.unsubscribe();\n this._backdropSubscription.unsubscribe();\n this._positionSubscription.unsubscribe();\n if (this._overlayRef) {\n this._overlayRef.dispose();\n }\n }\n ngOnChanges(changes) {\n if (this._position) {\n this._updatePositionStrategy(this._position);\n this._overlayRef.updateSize({\n width: this.width,\n minWidth: this.minWidth,\n height: this.height,\n minHeight: this.minHeight,\n });\n if (changes['origin'] && this.open) {\n this._position.apply();\n }\n }\n if (changes['open']) {\n this.open ? this._attachOverlay() : this._detachOverlay();\n }\n }\n /** Creates an overlay */\n _createOverlay() {\n if (!this.positions || !this.positions.length) {\n this.positions = defaultPositionList;\n }\n const overlayRef = (this._overlayRef = this._overlay.create(this._buildConfig()));\n this._attachSubscription = overlayRef.attachments().subscribe(() => this.attach.emit());\n this._detachSubscription = overlayRef.detachments().subscribe(() => this.detach.emit());\n overlayRef.keydownEvents().subscribe((event) => {\n this.overlayKeydown.next(event);\n if (event.keyCode === ESCAPE && !this.disableClose && !hasModifierKey(event)) {\n event.preventDefault();\n this._detachOverlay();\n }\n });\n this._overlayRef.outsidePointerEvents().subscribe((event) => {\n this.overlayOutsideClick.next(event);\n });\n }\n /** Builds the overlay config based on the directive's inputs */\n _buildConfig() {\n const positionStrategy = (this._position =\n this.positionStrategy || this._createPositionStrategy());\n const overlayConfig = new OverlayConfig({\n direction: this._dir,\n positionStrategy,\n scrollStrategy: this.scrollStrategy,\n hasBackdrop: this.hasBackdrop,\n });\n if (this.width || this.width === 0) {\n overlayConfig.width = this.width;\n }\n if (this.height || this.height === 0) {\n overlayConfig.height = this.height;\n }\n if (this.minWidth || this.minWidth === 0) {\n overlayConfig.minWidth = this.minWidth;\n }\n if (this.minHeight || this.minHeight === 0) {\n overlayConfig.minHeight = this.minHeight;\n }\n if (this.backdropClass) {\n overlayConfig.backdropClass = this.backdropClass;\n }\n if (this.panelClass) {\n overlayConfig.panelClass = this.panelClass;\n }\n return overlayConfig;\n }\n /** Updates the state of a position strategy, based on the values of the directive inputs. */\n _updatePositionStrategy(positionStrategy) {\n const positions = this.positions.map(currentPosition => ({\n originX: currentPosition.originX,\n originY: currentPosition.originY,\n overlayX: currentPosition.overlayX,\n overlayY: currentPosition.overlayY,\n offsetX: currentPosition.offsetX || this.offsetX,\n offsetY: currentPosition.offsetY || this.offsetY,\n panelClass: currentPosition.panelClass || undefined,\n }));\n return positionStrategy\n .setOrigin(this._getFlexibleConnectedPositionStrategyOrigin())\n .withPositions(positions)\n .withFlexibleDimensions(this.flexibleDimensions)\n .withPush(this.push)\n .withGrowAfterOpen(this.growAfterOpen)\n .withViewportMargin(this.viewportMargin)\n .withLockedPosition(this.lockPosition)\n .withTransformOriginOn(this.transformOriginSelector);\n }\n /** Returns the position strategy of the overlay to be set on the overlay config */\n _createPositionStrategy() {\n const strategy = this._overlay\n .position()\n .flexibleConnectedTo(this._getFlexibleConnectedPositionStrategyOrigin());\n this._updatePositionStrategy(strategy);\n return strategy;\n }\n _getFlexibleConnectedPositionStrategyOrigin() {\n if (this.origin instanceof CdkOverlayOrigin) {\n return this.origin.elementRef;\n }\n else {\n return this.origin;\n }\n }\n /** Attaches the overlay and subscribes to backdrop clicks if backdrop exists */\n _attachOverlay() {\n if (!this._overlayRef) {\n this._createOverlay();\n }\n else {\n // Update the overlay size, in case the directive's inputs have changed\n this._overlayRef.getConfig().hasBackdrop = this.hasBackdrop;\n }\n if (!this._overlayRef.hasAttached()) {\n this._overlayRef.attach(this._templatePortal);\n }\n if (this.hasBackdrop) {\n this._backdropSubscription = this._overlayRef.backdropClick().subscribe(event => {\n this.backdropClick.emit(event);\n });\n }\n else {\n this._backdropSubscription.unsubscribe();\n }\n this._positionSubscription.unsubscribe();\n // Only subscribe to `positionChanges` if requested, because putting\n // together all the information for it can be expensive.\n if (this.positionChange.observers.length > 0) {\n this._positionSubscription = this._position.positionChanges\n .pipe(takeWhile(() => this.positionChange.observers.length > 0))\n .subscribe(position => {\n this.positionChange.emit(position);\n if (this.positionChange.observers.length === 0) {\n this._positionSubscription.unsubscribe();\n }\n });\n }\n }\n /** Detaches the overlay and unsubscribes to backdrop clicks if backdrop exists */\n _detachOverlay() {\n if (this._overlayRef) {\n this._overlayRef.detach();\n }\n this._backdropSubscription.unsubscribe();\n this._positionSubscription.unsubscribe();\n }\n}\nCdkConnectedOverlay.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CdkConnectedOverlay, deps: [{ token: Overlay }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY }, { token: i5.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nCdkConnectedOverlay.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.0\", type: CdkConnectedOverlay, selector: \"[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]\", inputs: { origin: [\"cdkConnectedOverlayOrigin\", \"origin\"], positions: [\"cdkConnectedOverlayPositions\", \"positions\"], positionStrategy: [\"cdkConnectedOverlayPositionStrategy\", \"positionStrategy\"], offsetX: [\"cdkConnectedOverlayOffsetX\", \"offsetX\"], offsetY: [\"cdkConnectedOverlayOffsetY\", \"offsetY\"], width: [\"cdkConnectedOverlayWidth\", \"width\"], height: [\"cdkConnectedOverlayHeight\", \"height\"], minWidth: [\"cdkConnectedOverlayMinWidth\", \"minWidth\"], minHeight: [\"cdkConnectedOverlayMinHeight\", \"minHeight\"], backdropClass: [\"cdkConnectedOverlayBackdropClass\", \"backdropClass\"], panelClass: [\"cdkConnectedOverlayPanelClass\", \"panelClass\"], viewportMargin: [\"cdkConnectedOverlayViewportMargin\", \"viewportMargin\"], scrollStrategy: [\"cdkConnectedOverlayScrollStrategy\", \"scrollStrategy\"], open: [\"cdkConnectedOverlayOpen\", \"open\"], disableClose: [\"cdkConnectedOverlayDisableClose\", \"disableClose\"], transformOriginSelector: [\"cdkConnectedOverlayTransformOriginOn\", \"transformOriginSelector\"], hasBackdrop: [\"cdkConnectedOverlayHasBackdrop\", \"hasBackdrop\"], lockPosition: [\"cdkConnectedOverlayLockPosition\", \"lockPosition\"], flexibleDimensions: [\"cdkConnectedOverlayFlexibleDimensions\", \"flexibleDimensions\"], growAfterOpen: [\"cdkConnectedOverlayGrowAfterOpen\", \"growAfterOpen\"], push: [\"cdkConnectedOverlayPush\", \"push\"] }, outputs: { backdropClick: \"backdropClick\", positionChange: \"positionChange\", attach: \"attach\", detach: \"detach\", overlayKeydown: \"overlayKeydown\", overlayOutsideClick: \"overlayOutsideClick\" }, exportAs: [\"cdkConnectedOverlay\"], usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CdkConnectedOverlay, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]',\n exportAs: 'cdkConnectedOverlay',\n }]\n }], ctorParameters: function () {\n return [{ type: Overlay }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY]\n }] }, { type: i5.Directionality, decorators: [{\n type: Optional\n }] }];\n }, propDecorators: { origin: [{\n type: Input,\n args: ['cdkConnectedOverlayOrigin']\n }], positions: [{\n type: Input,\n args: ['cdkConnectedOverlayPositions']\n }], positionStrategy: [{\n type: Input,\n args: ['cdkConnectedOverlayPositionStrategy']\n }], offsetX: [{\n type: Input,\n args: ['cdkConnectedOverlayOffsetX']\n }], offsetY: [{\n type: Input,\n args: ['cdkConnectedOverlayOffsetY']\n }], width: [{\n type: Input,\n args: ['cdkConnectedOverlayWidth']\n }], height: [{\n type: Input,\n args: ['cdkConnectedOverlayHeight']\n }], minWidth: [{\n type: Input,\n args: ['cdkConnectedOverlayMinWidth']\n }], minHeight: [{\n type: Input,\n args: ['cdkConnectedOverlayMinHeight']\n }], backdropClass: [{\n type: Input,\n args: ['cdkConnectedOverlayBackdropClass']\n }], panelClass: [{\n type: Input,\n args: ['cdkConnectedOverlayPanelClass']\n }], viewportMargin: [{\n type: Input,\n args: ['cdkConnectedOverlayViewportMargin']\n }], scrollStrategy: [{\n type: Input,\n args: ['cdkConnectedOverlayScrollStrategy']\n }], open: [{\n type: Input,\n args: ['cdkConnectedOverlayOpen']\n }], disableClose: [{\n type: Input,\n args: ['cdkConnectedOverlayDisableClose']\n }], transformOriginSelector: [{\n type: Input,\n args: ['cdkConnectedOverlayTransformOriginOn']\n }], hasBackdrop: [{\n type: Input,\n args: ['cdkConnectedOverlayHasBackdrop']\n }], lockPosition: [{\n type: Input,\n args: ['cdkConnectedOverlayLockPosition']\n }], flexibleDimensions: [{\n type: Input,\n args: ['cdkConnectedOverlayFlexibleDimensions']\n }], growAfterOpen: [{\n type: Input,\n args: ['cdkConnectedOverlayGrowAfterOpen']\n }], push: [{\n type: Input,\n args: ['cdkConnectedOverlayPush']\n }], backdropClick: [{\n type: Output\n }], positionChange: [{\n type: Output\n }], attach: [{\n type: Output\n }], detach: [{\n type: Output\n }], overlayKeydown: [{\n type: Output\n }], overlayOutsideClick: [{\n type: Output\n }] } });\n/** @docs-private */\nfunction CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay) {\n return () => overlay.scrollStrategies.reposition();\n}\n/** @docs-private */\nconst CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER = {\n provide: CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY,\n};\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass OverlayModule {\n}\nOverlayModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: OverlayModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nOverlayModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: OverlayModule, declarations: [CdkConnectedOverlay, CdkOverlayOrigin], imports: [BidiModule, PortalModule, ScrollingModule], exports: [CdkConnectedOverlay, CdkOverlayOrigin, ScrollingModule] });\nOverlayModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: OverlayModule, providers: [Overlay, CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER], imports: [[BidiModule, PortalModule, ScrollingModule], ScrollingModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: OverlayModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [BidiModule, PortalModule, ScrollingModule],\n exports: [CdkConnectedOverlay, CdkOverlayOrigin, ScrollingModule],\n declarations: [CdkConnectedOverlay, CdkOverlayOrigin],\n providers: [Overlay, CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER],\n }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Alternative to OverlayContainer that supports correct displaying of overlay elements in\n * Fullscreen mode\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullScreen\n *\n * Should be provided in the root component.\n */\nclass FullscreenOverlayContainer extends OverlayContainer {\n constructor(_document, platform) {\n super(_document, platform);\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n if (this._fullScreenEventName && this._fullScreenListener) {\n this._document.removeEventListener(this._fullScreenEventName, this._fullScreenListener);\n }\n }\n _createContainer() {\n super._createContainer();\n this._adjustParentForFullscreenChange();\n this._addFullscreenChangeListener(() => this._adjustParentForFullscreenChange());\n }\n _adjustParentForFullscreenChange() {\n if (!this._containerElement) {\n return;\n }\n const fullscreenElement = this.getFullscreenElement();\n const parent = fullscreenElement || this._document.body;\n parent.appendChild(this._containerElement);\n }\n _addFullscreenChangeListener(fn) {\n const eventName = this._getEventName();\n if (eventName) {\n if (this._fullScreenListener) {\n this._document.removeEventListener(eventName, this._fullScreenListener);\n }\n this._document.addEventListener(eventName, fn);\n this._fullScreenListener = fn;\n }\n }\n _getEventName() {\n if (!this._fullScreenEventName) {\n const _document = this._document;\n if (_document.fullscreenEnabled) {\n this._fullScreenEventName = 'fullscreenchange';\n }\n else if (_document.webkitFullscreenEnabled) {\n this._fullScreenEventName = 'webkitfullscreenchange';\n }\n else if (_document.mozFullScreenEnabled) {\n this._fullScreenEventName = 'mozfullscreenchange';\n }\n else if (_document.msFullscreenEnabled) {\n this._fullScreenEventName = 'MSFullscreenChange';\n }\n }\n return this._fullScreenEventName;\n }\n /**\n * When the page is put into fullscreen mode, a specific element is specified.\n * Only that element and its children are visible when in fullscreen mode.\n */\n getFullscreenElement() {\n const _document = this._document;\n return (_document.fullscreenElement ||\n _document.webkitFullscreenElement ||\n _document.mozFullScreenElement ||\n _document.msFullscreenElement ||\n null);\n }\n}\nFullscreenOverlayContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: FullscreenOverlayContainer, deps: [{ token: DOCUMENT }, { token: i1$1.Platform }], target: i0.ɵɵFactoryTarget.Injectable });\nFullscreenOverlayContainer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: FullscreenOverlayContainer, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: FullscreenOverlayContainer, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i1$1.Platform }];\n } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BlockScrollStrategy, CdkConnectedOverlay, CdkOverlayOrigin, CloseScrollStrategy, ConnectedOverlayPositionChange, ConnectionPositionPair, FlexibleConnectedPositionStrategy, FullscreenOverlayContainer, GlobalPositionStrategy, NoopScrollStrategy, Overlay, OverlayConfig, OverlayContainer, OverlayKeyboardDispatcher, OverlayModule, OverlayOutsideClickDispatcher, OverlayPositionBuilder, OverlayRef, RepositionScrollStrategy, ScrollStrategyOptions, ScrollingVisibility, validateHorizontalPosition, validateVerticalPosition };\n","import * as i0 from '@angular/core';\nimport { PLATFORM_ID, Injectable, Inject, NgModule } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Whether the current platform supports the V8 Break Iterator. The V8 check\n// is necessary to detect all Blink based browsers.\nlet hasV8BreakIterator;\n// We need a try/catch around the reference to `Intl`, because accessing it in some cases can\n// cause IE to throw. These cases are tied to particular versions of Windows and can happen if\n// the consumer is providing a polyfilled `Map`. See:\n// https://github.com/Microsoft/ChakraCore/issues/3189\n// https://github.com/angular/components/issues/15687\ntry {\n hasV8BreakIterator = typeof Intl !== 'undefined' && Intl.v8BreakIterator;\n}\ncatch (_a) {\n hasV8BreakIterator = false;\n}\n/**\n * Service to detect the current platform by comparing the userAgent strings and\n * checking browser-specific global properties.\n */\nclass Platform {\n constructor(_platformId) {\n this._platformId = _platformId;\n // We want to use the Angular platform check because if the Document is shimmed\n // without the navigator, the following checks will fail. This is preferred because\n // sometimes the Document may be shimmed without the user's knowledge or intention\n /** Whether the Angular application is being rendered in the browser. */\n this.isBrowser = this._platformId\n ? isPlatformBrowser(this._platformId)\n : typeof document === 'object' && !!document;\n /** Whether the current browser is Microsoft Edge. */\n this.EDGE = this.isBrowser && /(edge)/i.test(navigator.userAgent);\n /** Whether the current rendering engine is Microsoft Trident. */\n this.TRIDENT = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent);\n // EdgeHTML and Trident mock Blink specific things and need to be excluded from this check.\n /** Whether the current rendering engine is Blink. */\n this.BLINK = this.isBrowser &&\n !!(window.chrome || hasV8BreakIterator) &&\n typeof CSS !== 'undefined' &&\n !this.EDGE &&\n !this.TRIDENT;\n // Webkit is part of the userAgent in EdgeHTML, Blink and Trident. Therefore we need to\n // ensure that Webkit runs standalone and is not used as another engine's base.\n /** Whether the current rendering engine is WebKit. */\n this.WEBKIT = this.isBrowser &&\n /AppleWebKit/i.test(navigator.userAgent) &&\n !this.BLINK &&\n !this.EDGE &&\n !this.TRIDENT;\n /** Whether the current platform is Apple iOS. */\n this.IOS = this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) && !('MSStream' in window);\n // It's difficult to detect the plain Gecko engine, because most of the browsers identify\n // them self as Gecko-like browsers and modify the userAgent's according to that.\n // Since we only cover one explicit Firefox case, we can simply check for Firefox\n // instead of having an unstable check for Gecko.\n /** Whether the current browser is Firefox. */\n this.FIREFOX = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent);\n /** Whether the current platform is Android. */\n // Trident on mobile adds the android platform to the userAgent to trick detections.\n this.ANDROID = this.isBrowser && /android/i.test(navigator.userAgent) && !this.TRIDENT;\n // Safari browsers will include the Safari keyword in their userAgent. Some browsers may fake\n // this and just place the Safari keyword in the userAgent. To be more safe about Safari every\n // Safari browser should also use Webkit as its layout engine.\n /** Whether the current browser is Safari. */\n this.SAFARI = this.isBrowser && /safari/i.test(navigator.userAgent) && this.WEBKIT;\n }\n}\nPlatform.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: Platform, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });\nPlatform.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: Platform, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: Platform, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () {\n return [{ type: Object, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }];\n } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass PlatformModule {\n}\nPlatformModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: PlatformModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nPlatformModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: PlatformModule });\nPlatformModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: PlatformModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: PlatformModule, decorators: [{\n type: NgModule,\n args: [{}]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Cached result Set of input types support by the current browser. */\nlet supportedInputTypes;\n/** Types of `` that *might* be supported. */\nconst candidateInputTypes = [\n // `color` must come first. Chrome 56 shows a warning if we change the type to `color` after\n // first changing it to something else:\n // The specified value \"\" does not conform to the required format.\n // The format is \"#rrggbb\" where rr, gg, bb are two-digit hexadecimal numbers.\n 'color',\n 'button',\n 'checkbox',\n 'date',\n 'datetime-local',\n 'email',\n 'file',\n 'hidden',\n 'image',\n 'month',\n 'number',\n 'password',\n 'radio',\n 'range',\n 'reset',\n 'search',\n 'submit',\n 'tel',\n 'text',\n 'time',\n 'url',\n 'week',\n];\n/** @returns The input types supported by this browser. */\nfunction getSupportedInputTypes() {\n // Result is cached.\n if (supportedInputTypes) {\n return supportedInputTypes;\n }\n // We can't check if an input type is not supported until we're on the browser, so say that\n // everything is supported when not on the browser. We don't use `Platform` here since it's\n // just a helper function and can't inject it.\n if (typeof document !== 'object' || !document) {\n supportedInputTypes = new Set(candidateInputTypes);\n return supportedInputTypes;\n }\n let featureTestInput = document.createElement('input');\n supportedInputTypes = new Set(candidateInputTypes.filter(value => {\n featureTestInput.setAttribute('type', value);\n return featureTestInput.type === value;\n }));\n return supportedInputTypes;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Cached result of whether the user's browser supports passive event listeners. */\nlet supportsPassiveEvents;\n/**\n * Checks whether the user's browser supports passive event listeners.\n * See: https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\n */\nfunction supportsPassiveEventListeners() {\n if (supportsPassiveEvents == null && typeof window !== 'undefined') {\n try {\n window.addEventListener('test', null, Object.defineProperty({}, 'passive', {\n get: () => (supportsPassiveEvents = true),\n }));\n }\n finally {\n supportsPassiveEvents = supportsPassiveEvents || false;\n }\n }\n return supportsPassiveEvents;\n}\n/**\n * Normalizes an `AddEventListener` object to something that can be passed\n * to `addEventListener` on any browser, no matter whether it supports the\n * `options` parameter.\n * @param options Object to be normalized.\n */\nfunction normalizePassiveListenerOptions(options) {\n return supportsPassiveEventListeners() ? options : !!options.capture;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Cached result of the way the browser handles the horizontal scroll axis in RTL mode. */\nlet rtlScrollAxisType;\n/** Cached result of the check that indicates whether the browser supports scroll behaviors. */\nlet scrollBehaviorSupported;\n/** Check whether the browser supports scroll behaviors. */\nfunction supportsScrollBehavior() {\n if (scrollBehaviorSupported == null) {\n // If we're not in the browser, it can't be supported. Also check for `Element`, because\n // some projects stub out the global `document` during SSR which can throw us off.\n if (typeof document !== 'object' || !document || typeof Element !== 'function' || !Element) {\n scrollBehaviorSupported = false;\n return scrollBehaviorSupported;\n }\n // If the element can have a `scrollBehavior` style, we can be sure that it's supported.\n if ('scrollBehavior' in document.documentElement.style) {\n scrollBehaviorSupported = true;\n }\n else {\n // At this point we have 3 possibilities: `scrollTo` isn't supported at all, it's\n // supported but it doesn't handle scroll behavior, or it has been polyfilled.\n const scrollToFunction = Element.prototype.scrollTo;\n if (scrollToFunction) {\n // We can detect if the function has been polyfilled by calling `toString` on it. Native\n // functions are obfuscated using `[native code]`, whereas if it was overwritten we'd get\n // the actual function source. Via https://davidwalsh.name/detect-native-function. Consider\n // polyfilled functions as supporting scroll behavior.\n scrollBehaviorSupported = !/\\{\\s*\\[native code\\]\\s*\\}/.test(scrollToFunction.toString());\n }\n else {\n scrollBehaviorSupported = false;\n }\n }\n }\n return scrollBehaviorSupported;\n}\n/**\n * Checks the type of RTL scroll axis used by this browser. As of time of writing, Chrome is NORMAL,\n * Firefox & Safari are NEGATED, and IE & Edge are INVERTED.\n */\nfunction getRtlScrollAxisType() {\n // We can't check unless we're on the browser. Just assume 'normal' if we're not.\n if (typeof document !== 'object' || !document) {\n return 0 /* NORMAL */;\n }\n if (rtlScrollAxisType == null) {\n // Create a 1px wide scrolling container and a 2px wide content element.\n const scrollContainer = document.createElement('div');\n const containerStyle = scrollContainer.style;\n scrollContainer.dir = 'rtl';\n containerStyle.width = '1px';\n containerStyle.overflow = 'auto';\n containerStyle.visibility = 'hidden';\n containerStyle.pointerEvents = 'none';\n containerStyle.position = 'absolute';\n const content = document.createElement('div');\n const contentStyle = content.style;\n contentStyle.width = '2px';\n contentStyle.height = '1px';\n scrollContainer.appendChild(content);\n document.body.appendChild(scrollContainer);\n rtlScrollAxisType = 0 /* NORMAL */;\n // The viewport starts scrolled all the way to the right in RTL mode. If we are in a NORMAL\n // browser this would mean that the scrollLeft should be 1. If it's zero instead we know we're\n // dealing with one of the other two types of browsers.\n if (scrollContainer.scrollLeft === 0) {\n // In a NEGATED browser the scrollLeft is always somewhere in [-maxScrollAmount, 0]. For an\n // INVERTED browser it is always somewhere in [0, maxScrollAmount]. We can determine which by\n // setting to the scrollLeft to 1. This is past the max for a NEGATED browser, so it will\n // return 0 when we read it again.\n scrollContainer.scrollLeft = 1;\n rtlScrollAxisType =\n scrollContainer.scrollLeft === 0 ? 1 /* NEGATED */ : 2 /* INVERTED */;\n }\n scrollContainer.remove();\n }\n return rtlScrollAxisType;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet shadowDomIsSupported;\n/** Checks whether the user's browser support Shadow DOM. */\nfunction _supportsShadowDom() {\n if (shadowDomIsSupported == null) {\n const head = typeof document !== 'undefined' ? document.head : null;\n shadowDomIsSupported = !!(head && (head.createShadowRoot || head.attachShadow));\n }\n return shadowDomIsSupported;\n}\n/** Gets the shadow root of an element, if supported and the element is inside the Shadow DOM. */\nfunction _getShadowRoot(element) {\n if (_supportsShadowDom()) {\n const rootNode = element.getRootNode ? element.getRootNode() : null;\n // Note that this should be caught by `_supportsShadowDom`, but some\n // teams have been able to hit this code path on unsupported browsers.\n if (typeof ShadowRoot !== 'undefined' && ShadowRoot && rootNode instanceof ShadowRoot) {\n return rootNode;\n }\n }\n return null;\n}\n/**\n * Gets the currently-focused element on the page while\n * also piercing through Shadow DOM boundaries.\n */\nfunction _getFocusedElementPierceShadowDom() {\n let activeElement = typeof document !== 'undefined' && document\n ? document.activeElement\n : null;\n while (activeElement && activeElement.shadowRoot) {\n const newActiveElement = activeElement.shadowRoot.activeElement;\n if (newActiveElement === activeElement) {\n break;\n }\n else {\n activeElement = newActiveElement;\n }\n }\n return activeElement;\n}\n/** Gets the target of an event while accounting for Shadow DOM. */\nfunction _getEventTarget(event) {\n // If an event is bound outside the Shadow DOM, the `event.target` will\n // point to the shadow root so we have to use `composedPath` instead.\n return (event.composedPath ? event.composedPath()[0] : event.target);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Gets whether the code is currently running in a test environment. */\nfunction _isTestEnvironment() {\n // We can't use `declare const` because it causes conflicts inside Google with the real typings\n // for these symbols and we can't read them off the global object, because they don't appear to\n // be attached there for some runners like Jest.\n // (see: https://github.com/angular/components/issues/23365#issuecomment-938146643)\n return (\n // @ts-ignore\n (typeof __karma__ !== 'undefined' && !!__karma__) ||\n // @ts-ignore\n (typeof jasmine !== 'undefined' && !!jasmine) ||\n // @ts-ignore\n (typeof jest !== 'undefined' && !!jest) ||\n // @ts-ignore\n (typeof Mocha !== 'undefined' && !!Mocha));\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Platform, PlatformModule, _getEventTarget, _getFocusedElementPierceShadowDom, _getShadowRoot, _isTestEnvironment, _supportsShadowDom, getRtlScrollAxisType, getSupportedInputTypes, normalizePassiveListenerOptions, supportsPassiveEventListeners, supportsScrollBehavior };\n","import * as i0 from '@angular/core';\nimport { ElementRef, Directive, EventEmitter, Inject, Output, NgModule } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Throws an exception when attempting to attach a null portal to a host.\n * @docs-private\n */\nfunction throwNullPortalError() {\n throw Error('Must provide a portal to attach');\n}\n/**\n * Throws an exception when attempting to attach a portal to a host that is already attached.\n * @docs-private\n */\nfunction throwPortalAlreadyAttachedError() {\n throw Error('Host already has a portal attached');\n}\n/**\n * Throws an exception when attempting to attach a portal to an already-disposed host.\n * @docs-private\n */\nfunction throwPortalOutletAlreadyDisposedError() {\n throw Error('This PortalOutlet has already been disposed');\n}\n/**\n * Throws an exception when attempting to attach an unknown portal type.\n * @docs-private\n */\nfunction throwUnknownPortalTypeError() {\n throw Error('Attempting to attach an unknown Portal type. BasePortalOutlet accepts either ' +\n 'a ComponentPortal or a TemplatePortal.');\n}\n/**\n * Throws an exception when attempting to attach a portal to a null host.\n * @docs-private\n */\nfunction throwNullPortalOutletError() {\n throw Error('Attempting to attach a portal to a null PortalOutlet');\n}\n/**\n * Throws an exception when attempting to detach a portal that is not attached.\n * @docs-private\n */\nfunction throwNoPortalAttachedError() {\n throw Error('Attempting to detach a portal that is not attached to a host');\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A `Portal` is something that you want to render somewhere else.\n * It can be attach to / detached from a `PortalOutlet`.\n */\nclass Portal {\n /** Attach this portal to a host. */\n attach(host) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (host == null) {\n throwNullPortalOutletError();\n }\n if (host.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n }\n this._attachedHost = host;\n return host.attach(this);\n }\n /** Detach this portal from its host */\n detach() {\n let host = this._attachedHost;\n if (host != null) {\n this._attachedHost = null;\n host.detach();\n }\n else if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throwNoPortalAttachedError();\n }\n }\n /** Whether this portal is attached to a host. */\n get isAttached() {\n return this._attachedHost != null;\n }\n /**\n * Sets the PortalOutlet reference without performing `attach()`. This is used directly by\n * the PortalOutlet when it is performing an `attach()` or `detach()`.\n */\n setAttachedHost(host) {\n this._attachedHost = host;\n }\n}\n/**\n * A `ComponentPortal` is a portal that instantiates some Component upon attachment.\n */\nclass ComponentPortal extends Portal {\n constructor(component, viewContainerRef, injector, componentFactoryResolver) {\n super();\n this.component = component;\n this.viewContainerRef = viewContainerRef;\n this.injector = injector;\n this.componentFactoryResolver = componentFactoryResolver;\n }\n}\n/**\n * A `TemplatePortal` is a portal that represents some embedded template (TemplateRef).\n */\nclass TemplatePortal extends Portal {\n constructor(template, viewContainerRef, context) {\n super();\n this.templateRef = template;\n this.viewContainerRef = viewContainerRef;\n this.context = context;\n }\n get origin() {\n return this.templateRef.elementRef;\n }\n /**\n * Attach the portal to the provided `PortalOutlet`.\n * When a context is provided it will override the `context` property of the `TemplatePortal`\n * instance.\n */\n attach(host, context = this.context) {\n this.context = context;\n return super.attach(host);\n }\n detach() {\n this.context = undefined;\n return super.detach();\n }\n}\n/**\n * A `DomPortal` is a portal whose DOM element will be taken from its current position\n * in the DOM and moved into a portal outlet, when it is attached. On detach, the content\n * will be restored to its original position.\n */\nclass DomPortal extends Portal {\n constructor(element) {\n super();\n this.element = element instanceof ElementRef ? element.nativeElement : element;\n }\n}\n/**\n * Partial implementation of PortalOutlet that handles attaching\n * ComponentPortal and TemplatePortal.\n */\nclass BasePortalOutlet {\n constructor() {\n /** Whether this host has already been permanently disposed. */\n this._isDisposed = false;\n // @breaking-change 10.0.0 `attachDomPortal` to become a required abstract method.\n this.attachDomPortal = null;\n }\n /** Whether this host has an attached portal. */\n hasAttached() {\n return !!this._attachedPortal;\n }\n /** Attaches a portal. */\n attach(portal) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!portal) {\n throwNullPortalError();\n }\n if (this.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n if (this._isDisposed) {\n throwPortalOutletAlreadyDisposedError();\n }\n }\n if (portal instanceof ComponentPortal) {\n this._attachedPortal = portal;\n return this.attachComponentPortal(portal);\n }\n else if (portal instanceof TemplatePortal) {\n this._attachedPortal = portal;\n return this.attachTemplatePortal(portal);\n // @breaking-change 10.0.0 remove null check for `this.attachDomPortal`.\n }\n else if (this.attachDomPortal && portal instanceof DomPortal) {\n this._attachedPortal = portal;\n return this.attachDomPortal(portal);\n }\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throwUnknownPortalTypeError();\n }\n }\n /** Detaches a previously attached portal. */\n detach() {\n if (this._attachedPortal) {\n this._attachedPortal.setAttachedHost(null);\n this._attachedPortal = null;\n }\n this._invokeDisposeFn();\n }\n /** Permanently dispose of this portal host. */\n dispose() {\n if (this.hasAttached()) {\n this.detach();\n }\n this._invokeDisposeFn();\n this._isDisposed = true;\n }\n /** @docs-private */\n setDisposeFn(fn) {\n this._disposeFn = fn;\n }\n _invokeDisposeFn() {\n if (this._disposeFn) {\n this._disposeFn();\n this._disposeFn = null;\n }\n }\n}\n/**\n * @deprecated Use `BasePortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nclass BasePortalHost extends BasePortalOutlet {\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A PortalOutlet for attaching portals to an arbitrary DOM element outside of the Angular\n * application context.\n */\nclass DomPortalOutlet extends BasePortalOutlet {\n constructor(\n /** Element into which the content is projected. */\n outletElement, _componentFactoryResolver, _appRef, _defaultInjector, \n /**\n * @deprecated `_document` Parameter to be made required.\n * @breaking-change 10.0.0\n */\n _document) {\n super();\n this.outletElement = outletElement;\n this._componentFactoryResolver = _componentFactoryResolver;\n this._appRef = _appRef;\n this._defaultInjector = _defaultInjector;\n /**\n * Attaches a DOM portal by transferring its content into the outlet.\n * @param portal Portal to be attached.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n this.attachDomPortal = (portal) => {\n // @breaking-change 10.0.0 Remove check and error once the\n // `_document` constructor parameter is required.\n if (!this._document && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Cannot attach DOM portal without _document constructor parameter');\n }\n const element = portal.element;\n if (!element.parentNode && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('DOM portal content must be attached to a parent node.');\n }\n // Anchor used to save the element's previous position so\n // that we can restore it when the portal is detached.\n const anchorNode = this._document.createComment('dom-portal');\n element.parentNode.insertBefore(anchorNode, element);\n this.outletElement.appendChild(element);\n this._attachedPortal = portal;\n super.setDisposeFn(() => {\n // We can't use `replaceWith` here because IE doesn't support it.\n if (anchorNode.parentNode) {\n anchorNode.parentNode.replaceChild(element, anchorNode);\n }\n });\n };\n this._document = _document;\n }\n /**\n * Attach the given ComponentPortal to DOM element using the ComponentFactoryResolver.\n * @param portal Portal to be attached\n * @returns Reference to the created component.\n */\n attachComponentPortal(portal) {\n const resolver = portal.componentFactoryResolver || this._componentFactoryResolver;\n const componentFactory = resolver.resolveComponentFactory(portal.component);\n let componentRef;\n // If the portal specifies a ViewContainerRef, we will use that as the attachment point\n // for the component (in terms of Angular's component tree, not rendering).\n // When the ViewContainerRef is missing, we use the factory to create the component directly\n // and then manually attach the view to the application.\n if (portal.viewContainerRef) {\n componentRef = portal.viewContainerRef.createComponent(componentFactory, portal.viewContainerRef.length, portal.injector || portal.viewContainerRef.injector);\n this.setDisposeFn(() => componentRef.destroy());\n }\n else {\n componentRef = componentFactory.create(portal.injector || this._defaultInjector);\n this._appRef.attachView(componentRef.hostView);\n this.setDisposeFn(() => {\n this._appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n });\n }\n // At this point the component has been instantiated, so we move it to the location in the DOM\n // where we want it to be rendered.\n this.outletElement.appendChild(this._getComponentRootNode(componentRef));\n this._attachedPortal = portal;\n return componentRef;\n }\n /**\n * Attaches a template portal to the DOM as an embedded view.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal(portal) {\n let viewContainer = portal.viewContainerRef;\n let viewRef = viewContainer.createEmbeddedView(portal.templateRef, portal.context);\n // The method `createEmbeddedView` will add the view as a child of the viewContainer.\n // But for the DomPortalOutlet the view can be added everywhere in the DOM\n // (e.g Overlay Container) To move the view to the specified host element. We just\n // re-append the existing root nodes.\n viewRef.rootNodes.forEach(rootNode => this.outletElement.appendChild(rootNode));\n // Note that we want to detect changes after the nodes have been moved so that\n // any directives inside the portal that are looking at the DOM inside a lifecycle\n // hook won't be invoked too early.\n viewRef.detectChanges();\n this.setDisposeFn(() => {\n let index = viewContainer.indexOf(viewRef);\n if (index !== -1) {\n viewContainer.remove(index);\n }\n });\n this._attachedPortal = portal;\n // TODO(jelbourn): Return locals from view.\n return viewRef;\n }\n /**\n * Clears out a portal from the DOM.\n */\n dispose() {\n super.dispose();\n this.outletElement.remove();\n }\n /** Gets the root HTMLElement for an instantiated component. */\n _getComponentRootNode(componentRef) {\n return componentRef.hostView.rootNodes[0];\n }\n}\n/**\n * @deprecated Use `DomPortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nclass DomPortalHost extends DomPortalOutlet {\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source 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 * Directive version of a `TemplatePortal`. Because the directive *is* a TemplatePortal,\n * the directive instance itself can be attached to a host, enabling declarative use of portals.\n */\nclass CdkPortal extends TemplatePortal {\n constructor(templateRef, viewContainerRef) {\n super(templateRef, viewContainerRef);\n }\n}\nCdkPortal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CdkPortal, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });\nCdkPortal.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.0\", type: CdkPortal, selector: \"[cdkPortal]\", exportAs: [\"cdkPortal\"], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CdkPortal, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkPortal]',\n exportAs: 'cdkPortal',\n }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });\n/**\n * @deprecated Use `CdkPortal` instead.\n * @breaking-change 9.0.0\n */\nclass TemplatePortalDirective extends CdkPortal {\n}\nTemplatePortalDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: TemplatePortalDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });\nTemplatePortalDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.0\", type: TemplatePortalDirective, selector: \"[cdk-portal], [portal]\", providers: [\n {\n provide: CdkPortal,\n useExisting: TemplatePortalDirective,\n },\n ], exportAs: [\"cdkPortal\"], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: TemplatePortalDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdk-portal], [portal]',\n exportAs: 'cdkPortal',\n providers: [\n {\n provide: CdkPortal,\n useExisting: TemplatePortalDirective,\n },\n ],\n }]\n }] });\n/**\n * Directive version of a PortalOutlet. Because the directive *is* a PortalOutlet, portals can be\n * directly attached to it, enabling declarative use.\n *\n * Usage:\n * ``\n */\nclass CdkPortalOutlet extends BasePortalOutlet {\n constructor(_componentFactoryResolver, _viewContainerRef, \n /**\n * @deprecated `_document` parameter to be made required.\n * @breaking-change 9.0.0\n */\n _document) {\n super();\n this._componentFactoryResolver = _componentFactoryResolver;\n this._viewContainerRef = _viewContainerRef;\n /** Whether the portal component is initialized. */\n this._isInitialized = false;\n /** Emits when a portal is attached to the outlet. */\n this.attached = new EventEmitter();\n /**\n * Attaches the given DomPortal to this PortalHost by moving all of the portal content into it.\n * @param portal Portal to be attached.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n this.attachDomPortal = (portal) => {\n // @breaking-change 9.0.0 Remove check and error once the\n // `_document` constructor parameter is required.\n if (!this._document && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Cannot attach DOM portal without _document constructor parameter');\n }\n const element = portal.element;\n if (!element.parentNode && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('DOM portal content must be attached to a parent node.');\n }\n // Anchor used to save the element's previous position so\n // that we can restore it when the portal is detached.\n const anchorNode = this._document.createComment('dom-portal');\n portal.setAttachedHost(this);\n element.parentNode.insertBefore(anchorNode, element);\n this._getRootNode().appendChild(element);\n this._attachedPortal = portal;\n super.setDisposeFn(() => {\n if (anchorNode.parentNode) {\n anchorNode.parentNode.replaceChild(element, anchorNode);\n }\n });\n };\n this._document = _document;\n }\n /** Portal associated with the Portal outlet. */\n get portal() {\n return this._attachedPortal;\n }\n set portal(portal) {\n // Ignore the cases where the `portal` is set to a falsy value before the lifecycle hooks have\n // run. This handles the cases where the user might do something like `
    `\n // and attach a portal programmatically in the parent component. When Angular does the first CD\n // round, it will fire the setter with empty string, causing the user's content to be cleared.\n if (this.hasAttached() && !portal && !this._isInitialized) {\n return;\n }\n if (this.hasAttached()) {\n super.detach();\n }\n if (portal) {\n super.attach(portal);\n }\n this._attachedPortal = portal || null;\n }\n /** Component or view reference that is attached to the portal. */\n get attachedRef() {\n return this._attachedRef;\n }\n ngOnInit() {\n this._isInitialized = true;\n }\n ngOnDestroy() {\n super.dispose();\n this._attachedPortal = null;\n this._attachedRef = null;\n }\n /**\n * Attach the given ComponentPortal to this PortalOutlet using the ComponentFactoryResolver.\n *\n * @param portal Portal to be attached to the portal outlet.\n * @returns Reference to the created component.\n */\n attachComponentPortal(portal) {\n portal.setAttachedHost(this);\n // If the portal specifies an origin, use that as the logical location of the component\n // in the application tree. Otherwise use the location of this PortalOutlet.\n const viewContainerRef = portal.viewContainerRef != null ? portal.viewContainerRef : this._viewContainerRef;\n const resolver = portal.componentFactoryResolver || this._componentFactoryResolver;\n const componentFactory = resolver.resolveComponentFactory(portal.component);\n const ref = viewContainerRef.createComponent(componentFactory, viewContainerRef.length, portal.injector || viewContainerRef.injector);\n // If we're using a view container that's different from the injected one (e.g. when the portal\n // specifies its own) we need to move the component into the outlet, otherwise it'll be rendered\n // inside of the alternate view container.\n if (viewContainerRef !== this._viewContainerRef) {\n this._getRootNode().appendChild(ref.hostView.rootNodes[0]);\n }\n super.setDisposeFn(() => ref.destroy());\n this._attachedPortal = portal;\n this._attachedRef = ref;\n this.attached.emit(ref);\n return ref;\n }\n /**\n * Attach the given TemplatePortal to this PortalHost as an embedded View.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal(portal) {\n portal.setAttachedHost(this);\n const viewRef = this._viewContainerRef.createEmbeddedView(portal.templateRef, portal.context);\n super.setDisposeFn(() => this._viewContainerRef.clear());\n this._attachedPortal = portal;\n this._attachedRef = viewRef;\n this.attached.emit(viewRef);\n return viewRef;\n }\n /** Gets the root node of the portal outlet. */\n _getRootNode() {\n const nativeElement = this._viewContainerRef.element.nativeElement;\n // The directive could be set on a template which will result in a comment\n // node being the root. Use the comment's parent node if that is the case.\n return (nativeElement.nodeType === nativeElement.ELEMENT_NODE\n ? nativeElement\n : nativeElement.parentNode);\n }\n}\nCdkPortalOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CdkPortalOutlet, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ViewContainerRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });\nCdkPortalOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.0\", type: CdkPortalOutlet, selector: \"[cdkPortalOutlet]\", inputs: { portal: [\"cdkPortalOutlet\", \"portal\"] }, outputs: { attached: \"attached\" }, exportAs: [\"cdkPortalOutlet\"], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CdkPortalOutlet, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkPortalOutlet]',\n exportAs: 'cdkPortalOutlet',\n inputs: ['portal: cdkPortalOutlet'],\n }]\n }], ctorParameters: function () {\n return [{ type: i0.ComponentFactoryResolver }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }];\n }, propDecorators: { attached: [{\n type: Output\n }] } });\n/**\n * @deprecated Use `CdkPortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nclass PortalHostDirective extends CdkPortalOutlet {\n}\nPortalHostDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: PortalHostDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });\nPortalHostDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.0\", type: PortalHostDirective, selector: \"[cdkPortalHost], [portalHost]\", inputs: { portal: [\"cdkPortalHost\", \"portal\"] }, providers: [\n {\n provide: CdkPortalOutlet,\n useExisting: PortalHostDirective,\n },\n ], exportAs: [\"cdkPortalHost\"], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: PortalHostDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkPortalHost], [portalHost]',\n exportAs: 'cdkPortalHost',\n inputs: ['portal: cdkPortalHost'],\n providers: [\n {\n provide: CdkPortalOutlet,\n useExisting: PortalHostDirective,\n },\n ],\n }]\n }] });\nclass PortalModule {\n}\nPortalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: PortalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nPortalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: PortalModule, declarations: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective], exports: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective] });\nPortalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: PortalModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: PortalModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective],\n declarations: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective],\n }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Custom injector to be used when providing custom\n * injection tokens to components inside a portal.\n * @docs-private\n * @deprecated Use `Injector.create` instead.\n * @breaking-change 11.0.0\n */\nclass PortalInjector {\n constructor(_parentInjector, _customTokens) {\n this._parentInjector = _parentInjector;\n this._customTokens = _customTokens;\n }\n get(token, notFoundValue) {\n const value = this._customTokens.get(token);\n if (typeof value !== 'undefined') {\n return value;\n }\n return this._parentInjector.get(token, notFoundValue);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BasePortalHost, BasePortalOutlet, CdkPortal, CdkPortalOutlet, ComponentPortal, DomPortal, DomPortalHost, DomPortalOutlet, Portal, PortalHostDirective, PortalInjector, PortalModule, TemplatePortal, TemplatePortalDirective };\n","import { coerceNumberProperty, coerceElement, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, forwardRef, Directive, Input, Injectable, Optional, Inject, Component, ViewEncapsulation, ChangeDetectionStrategy, Output, ViewChild, SkipSelf, NgModule } from '@angular/core';\nimport { Subject, of, Observable, fromEvent, animationFrameScheduler, asapScheduler, Subscription, isObservable } from 'rxjs';\nimport { distinctUntilChanged, auditTime, filter, takeUntil, startWith, pairwise, switchMap, shareReplay } from 'rxjs/operators';\nimport { DOCUMENT } from '@angular/common';\nimport * as i1 from '@angular/cdk/platform';\nimport { getRtlScrollAxisType, supportsScrollBehavior } from '@angular/cdk/platform';\nimport * as i2 from '@angular/cdk/bidi';\nimport { BidiModule } from '@angular/cdk/bidi';\nimport * as i2$1 from '@angular/cdk/collections';\nimport { isDataSource, ArrayDataSource, _VIEW_REPEATER_STRATEGY, _RecycleViewRepeaterStrategy } from '@angular/cdk/collections';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** The injection token used to specify the virtual scrolling strategy. */\nconst VIRTUAL_SCROLL_STRATEGY = new InjectionToken('VIRTUAL_SCROLL_STRATEGY');\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Virtual scrolling strategy for lists with items of known fixed size. */\nclass FixedSizeVirtualScrollStrategy {\n /**\n * @param itemSize The size of the items in the virtually scrolling list.\n * @param minBufferPx The minimum amount of buffer (in pixels) before needing to render more\n * @param maxBufferPx The amount of buffer (in pixels) to render when rendering more.\n */\n constructor(itemSize, minBufferPx, maxBufferPx) {\n this._scrolledIndexChange = new Subject();\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n this.scrolledIndexChange = this._scrolledIndexChange.pipe(distinctUntilChanged());\n /** The attached viewport. */\n this._viewport = null;\n this._itemSize = itemSize;\n this._minBufferPx = minBufferPx;\n this._maxBufferPx = maxBufferPx;\n }\n /**\n * Attaches this scroll strategy to a viewport.\n * @param viewport The viewport to attach this strategy to.\n */\n attach(viewport) {\n this._viewport = viewport;\n this._updateTotalContentSize();\n this._updateRenderedRange();\n }\n /** Detaches this scroll strategy from the currently attached viewport. */\n detach() {\n this._scrolledIndexChange.complete();\n this._viewport = null;\n }\n /**\n * Update the item size and buffer size.\n * @param itemSize The size of the items in the virtually scrolling list.\n * @param minBufferPx The minimum amount of buffer (in pixels) before needing to render more\n * @param maxBufferPx The amount of buffer (in pixels) to render when rendering more.\n */\n updateItemAndBufferSize(itemSize, minBufferPx, maxBufferPx) {\n if (maxBufferPx < minBufferPx && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('CDK virtual scroll: maxBufferPx must be greater than or equal to minBufferPx');\n }\n this._itemSize = itemSize;\n this._minBufferPx = minBufferPx;\n this._maxBufferPx = maxBufferPx;\n this._updateTotalContentSize();\n this._updateRenderedRange();\n }\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onContentScrolled() {\n this._updateRenderedRange();\n }\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onDataLengthChanged() {\n this._updateTotalContentSize();\n this._updateRenderedRange();\n }\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onContentRendered() {\n /* no-op */\n }\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onRenderedOffsetChanged() {\n /* no-op */\n }\n /**\n * Scroll to the offset for the given index.\n * @param index The index of the element to scroll to.\n * @param behavior The ScrollBehavior to use when scrolling.\n */\n scrollToIndex(index, behavior) {\n if (this._viewport) {\n this._viewport.scrollToOffset(index * this._itemSize, behavior);\n }\n }\n /** Update the viewport's total content size. */\n _updateTotalContentSize() {\n if (!this._viewport) {\n return;\n }\n this._viewport.setTotalContentSize(this._viewport.getDataLength() * this._itemSize);\n }\n /** Update the viewport's rendered range. */\n _updateRenderedRange() {\n if (!this._viewport) {\n return;\n }\n const renderedRange = this._viewport.getRenderedRange();\n const newRange = { start: renderedRange.start, end: renderedRange.end };\n const viewportSize = this._viewport.getViewportSize();\n const dataLength = this._viewport.getDataLength();\n let scrollOffset = this._viewport.measureScrollOffset();\n // Prevent NaN as result when dividing by zero.\n let firstVisibleIndex = this._itemSize > 0 ? scrollOffset / this._itemSize : 0;\n // If user scrolls to the bottom of the list and data changes to a smaller list\n if (newRange.end > dataLength) {\n // We have to recalculate the first visible index based on new data length and viewport size.\n const maxVisibleItems = Math.ceil(viewportSize / this._itemSize);\n const newVisibleIndex = Math.max(0, Math.min(firstVisibleIndex, dataLength - maxVisibleItems));\n // If first visible index changed we must update scroll offset to handle start/end buffers\n // Current range must also be adjusted to cover the new position (bottom of new list).\n if (firstVisibleIndex != newVisibleIndex) {\n firstVisibleIndex = newVisibleIndex;\n scrollOffset = newVisibleIndex * this._itemSize;\n newRange.start = Math.floor(firstVisibleIndex);\n }\n newRange.end = Math.max(0, Math.min(dataLength, newRange.start + maxVisibleItems));\n }\n const startBuffer = scrollOffset - newRange.start * this._itemSize;\n if (startBuffer < this._minBufferPx && newRange.start != 0) {\n const expandStart = Math.ceil((this._maxBufferPx - startBuffer) / this._itemSize);\n newRange.start = Math.max(0, newRange.start - expandStart);\n newRange.end = Math.min(dataLength, Math.ceil(firstVisibleIndex + (viewportSize + this._minBufferPx) / this._itemSize));\n }\n else {\n const endBuffer = newRange.end * this._itemSize - (scrollOffset + viewportSize);\n if (endBuffer < this._minBufferPx && newRange.end != dataLength) {\n const expandEnd = Math.ceil((this._maxBufferPx - endBuffer) / this._itemSize);\n if (expandEnd > 0) {\n newRange.end = Math.min(dataLength, newRange.end + expandEnd);\n newRange.start = Math.max(0, Math.floor(firstVisibleIndex - this._minBufferPx / this._itemSize));\n }\n }\n }\n this._viewport.setRenderedRange(newRange);\n this._viewport.setRenderedContentOffset(this._itemSize * newRange.start);\n this._scrolledIndexChange.next(Math.floor(firstVisibleIndex));\n }\n}\n/**\n * Provider factory for `FixedSizeVirtualScrollStrategy` that simply extracts the already created\n * `FixedSizeVirtualScrollStrategy` from the given directive.\n * @param fixedSizeDir The instance of `CdkFixedSizeVirtualScroll` to extract the\n * `FixedSizeVirtualScrollStrategy` from.\n */\nfunction _fixedSizeVirtualScrollStrategyFactory(fixedSizeDir) {\n return fixedSizeDir._scrollStrategy;\n}\n/** A virtual scroll strategy that supports fixed-size items. */\nclass CdkFixedSizeVirtualScroll {\n constructor() {\n this._itemSize = 20;\n this._minBufferPx = 100;\n this._maxBufferPx = 200;\n /** The scroll strategy used by this directive. */\n this._scrollStrategy = new FixedSizeVirtualScrollStrategy(this.itemSize, this.minBufferPx, this.maxBufferPx);\n }\n /** The size of the items in the list (in pixels). */\n get itemSize() {\n return this._itemSize;\n }\n set itemSize(value) {\n this._itemSize = coerceNumberProperty(value);\n }\n /**\n * The minimum amount of buffer rendered beyond the viewport (in pixels).\n * If the amount of buffer dips below this number, more items will be rendered. Defaults to 100px.\n */\n get minBufferPx() {\n return this._minBufferPx;\n }\n set minBufferPx(value) {\n this._minBufferPx = coerceNumberProperty(value);\n }\n /**\n * The number of pixels worth of buffer to render for when rendering new items. Defaults to 200px.\n */\n get maxBufferPx() {\n return this._maxBufferPx;\n }\n set maxBufferPx(value) {\n this._maxBufferPx = coerceNumberProperty(value);\n }\n ngOnChanges() {\n this._scrollStrategy.updateItemAndBufferSize(this.itemSize, this.minBufferPx, this.maxBufferPx);\n }\n}\nCdkFixedSizeVirtualScroll.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CdkFixedSizeVirtualScroll, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nCdkFixedSizeVirtualScroll.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.0\", type: CdkFixedSizeVirtualScroll, selector: \"cdk-virtual-scroll-viewport[itemSize]\", inputs: { itemSize: \"itemSize\", minBufferPx: \"minBufferPx\", maxBufferPx: \"maxBufferPx\" }, providers: [\n {\n provide: VIRTUAL_SCROLL_STRATEGY,\n useFactory: _fixedSizeVirtualScrollStrategyFactory,\n deps: [forwardRef(() => CdkFixedSizeVirtualScroll)],\n },\n ], usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CdkFixedSizeVirtualScroll, decorators: [{\n type: Directive,\n args: [{\n selector: 'cdk-virtual-scroll-viewport[itemSize]',\n providers: [\n {\n provide: VIRTUAL_SCROLL_STRATEGY,\n useFactory: _fixedSizeVirtualScrollStrategyFactory,\n deps: [forwardRef(() => CdkFixedSizeVirtualScroll)],\n },\n ],\n }]\n }], propDecorators: { itemSize: [{\n type: Input\n }], minBufferPx: [{\n type: Input\n }], maxBufferPx: [{\n type: Input\n }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Time in ms to throttle the scrolling events by default. */\nconst DEFAULT_SCROLL_TIME = 20;\n/**\n * Service contained all registered Scrollable references and emits an event when any one of the\n * Scrollable references emit a scrolled event.\n */\nclass ScrollDispatcher {\n constructor(_ngZone, _platform, document) {\n this._ngZone = _ngZone;\n this._platform = _platform;\n /** Subject for notifying that a registered scrollable reference element has been scrolled. */\n this._scrolled = new Subject();\n /** Keeps track of the global `scroll` and `resize` subscriptions. */\n this._globalSubscription = null;\n /** Keeps track of the amount of subscriptions to `scrolled`. Used for cleaning up afterwards. */\n this._scrolledCount = 0;\n /**\n * Map of all the scrollable references that are registered with the service and their\n * scroll event subscriptions.\n */\n this.scrollContainers = new Map();\n this._document = document;\n }\n /**\n * Registers a scrollable instance with the service and listens for its scrolled events. When the\n * scrollable is scrolled, the service emits the event to its scrolled observable.\n * @param scrollable Scrollable instance to be registered.\n */\n register(scrollable) {\n if (!this.scrollContainers.has(scrollable)) {\n this.scrollContainers.set(scrollable, scrollable.elementScrolled().subscribe(() => this._scrolled.next(scrollable)));\n }\n }\n /**\n * Deregisters a Scrollable reference and unsubscribes from its scroll event observable.\n * @param scrollable Scrollable instance to be deregistered.\n */\n deregister(scrollable) {\n const scrollableReference = this.scrollContainers.get(scrollable);\n if (scrollableReference) {\n scrollableReference.unsubscribe();\n this.scrollContainers.delete(scrollable);\n }\n }\n /**\n * Returns an observable that emits an event whenever any of the registered Scrollable\n * references (or window, document, or body) fire a scrolled event. Can provide a time in ms\n * to override the default \"throttle\" time.\n *\n * **Note:** in order to avoid hitting change detection for every scroll event,\n * all of the events emitted from this stream will be run outside the Angular zone.\n * If you need to update any data bindings as a result of a scroll event, you have\n * to run the callback using `NgZone.run`.\n */\n scrolled(auditTimeInMs = DEFAULT_SCROLL_TIME) {\n if (!this._platform.isBrowser) {\n return of();\n }\n return new Observable((observer) => {\n if (!this._globalSubscription) {\n this._addGlobalListener();\n }\n // In the case of a 0ms delay, use an observable without auditTime\n // since it does add a perceptible delay in processing overhead.\n const subscription = auditTimeInMs > 0\n ? this._scrolled.pipe(auditTime(auditTimeInMs)).subscribe(observer)\n : this._scrolled.subscribe(observer);\n this._scrolledCount++;\n return () => {\n subscription.unsubscribe();\n this._scrolledCount--;\n if (!this._scrolledCount) {\n this._removeGlobalListener();\n }\n };\n });\n }\n ngOnDestroy() {\n this._removeGlobalListener();\n this.scrollContainers.forEach((_, container) => this.deregister(container));\n this._scrolled.complete();\n }\n /**\n * Returns an observable that emits whenever any of the\n * scrollable ancestors of an element are scrolled.\n * @param elementOrElementRef Element whose ancestors to listen for.\n * @param auditTimeInMs Time to throttle the scroll events.\n */\n ancestorScrolled(elementOrElementRef, auditTimeInMs) {\n const ancestors = this.getAncestorScrollContainers(elementOrElementRef);\n return this.scrolled(auditTimeInMs).pipe(filter(target => {\n return !target || ancestors.indexOf(target) > -1;\n }));\n }\n /** Returns all registered Scrollables that contain the provided element. */\n getAncestorScrollContainers(elementOrElementRef) {\n const scrollingContainers = [];\n this.scrollContainers.forEach((_subscription, scrollable) => {\n if (this._scrollableContainsElement(scrollable, elementOrElementRef)) {\n scrollingContainers.push(scrollable);\n }\n });\n return scrollingContainers;\n }\n /** Use defaultView of injected document if available or fallback to global window reference */\n _getWindow() {\n return this._document.defaultView || window;\n }\n /** Returns true if the element is contained within the provided Scrollable. */\n _scrollableContainsElement(scrollable, elementOrElementRef) {\n let element = coerceElement(elementOrElementRef);\n let scrollableElement = scrollable.getElementRef().nativeElement;\n // Traverse through the element parents until we reach null, checking if any of the elements\n // are the scrollable's element.\n do {\n if (element == scrollableElement) {\n return true;\n }\n } while ((element = element.parentElement));\n return false;\n }\n /** Sets up the global scroll listeners. */\n _addGlobalListener() {\n this._globalSubscription = this._ngZone.runOutsideAngular(() => {\n const window = this._getWindow();\n return fromEvent(window.document, 'scroll').subscribe(() => this._scrolled.next());\n });\n }\n /** Cleans up the global scroll listener. */\n _removeGlobalListener() {\n if (this._globalSubscription) {\n this._globalSubscription.unsubscribe();\n this._globalSubscription = null;\n }\n }\n}\nScrollDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: ScrollDispatcher, deps: [{ token: i0.NgZone }, { token: i1.Platform }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nScrollDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: ScrollDispatcher, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: ScrollDispatcher, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () {\n return [{ type: i0.NgZone }, { type: i1.Platform }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }] }];\n } });\n\n/**\n * Sends an event when the directive's element is scrolled. Registers itself with the\n * ScrollDispatcher service to include itself as part of its collection of scrolling events that it\n * can be listened to through the service.\n */\nclass CdkScrollable {\n constructor(elementRef, scrollDispatcher, ngZone, dir) {\n this.elementRef = elementRef;\n this.scrollDispatcher = scrollDispatcher;\n this.ngZone = ngZone;\n this.dir = dir;\n this._destroyed = new Subject();\n this._elementScrolled = new Observable((observer) => this.ngZone.runOutsideAngular(() => fromEvent(this.elementRef.nativeElement, 'scroll')\n .pipe(takeUntil(this._destroyed))\n .subscribe(observer)));\n }\n ngOnInit() {\n this.scrollDispatcher.register(this);\n }\n ngOnDestroy() {\n this.scrollDispatcher.deregister(this);\n this._destroyed.next();\n this._destroyed.complete();\n }\n /** Returns observable that emits when a scroll event is fired on the host element. */\n elementScrolled() {\n return this._elementScrolled;\n }\n /** Gets the ElementRef for the viewport. */\n getElementRef() {\n return this.elementRef;\n }\n /**\n * Scrolls to the specified offsets. This is a normalized version of the browser's native scrollTo\n * method, since browsers are not consistent about what scrollLeft means in RTL. For this method\n * left and right always refer to the left and right side of the scrolling container irrespective\n * of the layout direction. start and end refer to left and right in an LTR context and vice-versa\n * in an RTL context.\n * @param options specified the offsets to scroll to.\n */\n scrollTo(options) {\n const el = this.elementRef.nativeElement;\n const isRtl = this.dir && this.dir.value == 'rtl';\n // Rewrite start & end offsets as right or left offsets.\n if (options.left == null) {\n options.left = isRtl ? options.end : options.start;\n }\n if (options.right == null) {\n options.right = isRtl ? options.start : options.end;\n }\n // Rewrite the bottom offset as a top offset.\n if (options.bottom != null) {\n options.top =\n el.scrollHeight - el.clientHeight - options.bottom;\n }\n // Rewrite the right offset as a left offset.\n if (isRtl && getRtlScrollAxisType() != 0 /* NORMAL */) {\n if (options.left != null) {\n options.right =\n el.scrollWidth - el.clientWidth - options.left;\n }\n if (getRtlScrollAxisType() == 2 /* INVERTED */) {\n options.left = options.right;\n }\n else if (getRtlScrollAxisType() == 1 /* NEGATED */) {\n options.left = options.right ? -options.right : options.right;\n }\n }\n else {\n if (options.right != null) {\n options.left =\n el.scrollWidth - el.clientWidth - options.right;\n }\n }\n this._applyScrollToOptions(options);\n }\n _applyScrollToOptions(options) {\n const el = this.elementRef.nativeElement;\n if (supportsScrollBehavior()) {\n el.scrollTo(options);\n }\n else {\n if (options.top != null) {\n el.scrollTop = options.top;\n }\n if (options.left != null) {\n el.scrollLeft = options.left;\n }\n }\n }\n /**\n * Measures the scroll offset relative to the specified edge of the viewport. This method can be\n * used instead of directly checking scrollLeft or scrollTop, since browsers are not consistent\n * about what scrollLeft means in RTL. The values returned by this method are normalized such that\n * left and right always refer to the left and right side of the scrolling container irrespective\n * of the layout direction. start and end refer to left and right in an LTR context and vice-versa\n * in an RTL context.\n * @param from The edge to measure from.\n */\n measureScrollOffset(from) {\n const LEFT = 'left';\n const RIGHT = 'right';\n const el = this.elementRef.nativeElement;\n if (from == 'top') {\n return el.scrollTop;\n }\n if (from == 'bottom') {\n return el.scrollHeight - el.clientHeight - el.scrollTop;\n }\n // Rewrite start & end as left or right offsets.\n const isRtl = this.dir && this.dir.value == 'rtl';\n if (from == 'start') {\n from = isRtl ? RIGHT : LEFT;\n }\n else if (from == 'end') {\n from = isRtl ? LEFT : RIGHT;\n }\n if (isRtl && getRtlScrollAxisType() == 2 /* INVERTED */) {\n // For INVERTED, scrollLeft is (scrollWidth - clientWidth) when scrolled all the way left and\n // 0 when scrolled all the way right.\n if (from == LEFT) {\n return el.scrollWidth - el.clientWidth - el.scrollLeft;\n }\n else {\n return el.scrollLeft;\n }\n }\n else if (isRtl && getRtlScrollAxisType() == 1 /* NEGATED */) {\n // For NEGATED, scrollLeft is -(scrollWidth - clientWidth) when scrolled all the way left and\n // 0 when scrolled all the way right.\n if (from == LEFT) {\n return el.scrollLeft + el.scrollWidth - el.clientWidth;\n }\n else {\n return -el.scrollLeft;\n }\n }\n else {\n // For NORMAL, as well as non-RTL contexts, scrollLeft is 0 when scrolled all the way left and\n // (scrollWidth - clientWidth) when scrolled all the way right.\n if (from == LEFT) {\n return el.scrollLeft;\n }\n else {\n return el.scrollWidth - el.clientWidth - el.scrollLeft;\n }\n }\n }\n}\nCdkScrollable.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CdkScrollable, deps: [{ token: i0.ElementRef }, { token: ScrollDispatcher }, { token: i0.NgZone }, { token: i2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nCdkScrollable.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.0\", type: CdkScrollable, selector: \"[cdk-scrollable], [cdkScrollable]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CdkScrollable, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdk-scrollable], [cdkScrollable]',\n }]\n }], ctorParameters: function () {\n return [{ type: i0.ElementRef }, { type: ScrollDispatcher }, { type: i0.NgZone }, { type: i2.Directionality, decorators: [{\n type: Optional\n }] }];\n } });\n\n/** Time in ms to throttle the resize events by default. */\nconst DEFAULT_RESIZE_TIME = 20;\n/**\n * Simple utility for getting the bounds of the browser viewport.\n * @docs-private\n */\nclass ViewportRuler {\n constructor(_platform, ngZone, document) {\n this._platform = _platform;\n /** Stream of viewport change events. */\n this._change = new Subject();\n /** Event listener that will be used to handle the viewport change events. */\n this._changeListener = (event) => {\n this._change.next(event);\n };\n this._document = document;\n ngZone.runOutsideAngular(() => {\n if (_platform.isBrowser) {\n const window = this._getWindow();\n // Note that bind the events ourselves, rather than going through something like RxJS's\n // `fromEvent` so that we can ensure that they're bound outside of the NgZone.\n window.addEventListener('resize', this._changeListener);\n window.addEventListener('orientationchange', this._changeListener);\n }\n // Clear the cached position so that the viewport is re-measured next time it is required.\n // We don't need to keep track of the subscription, because it is completed on destroy.\n this.change().subscribe(() => (this._viewportSize = null));\n });\n }\n ngOnDestroy() {\n if (this._platform.isBrowser) {\n const window = this._getWindow();\n window.removeEventListener('resize', this._changeListener);\n window.removeEventListener('orientationchange', this._changeListener);\n }\n this._change.complete();\n }\n /** Returns the viewport's width and height. */\n getViewportSize() {\n if (!this._viewportSize) {\n this._updateViewportSize();\n }\n const output = { width: this._viewportSize.width, height: this._viewportSize.height };\n // If we're not on a browser, don't cache the size since it'll be mocked out anyway.\n if (!this._platform.isBrowser) {\n this._viewportSize = null;\n }\n return output;\n }\n /** Gets a ClientRect for the viewport's bounds. */\n getViewportRect() {\n // Use the document element's bounding rect rather than the window scroll properties\n // (e.g. pageYOffset, scrollY) due to in issue in Chrome and IE where window scroll\n // properties and client coordinates (boundingClientRect, clientX/Y, etc.) are in different\n // conceptual viewports. Under most circumstances these viewports are equivalent, but they\n // can disagree when the page is pinch-zoomed (on devices that support touch).\n // See https://bugs.chromium.org/p/chromium/issues/detail?id=489206#c4\n // We use the documentElement instead of the body because, by default (without a css reset)\n // browsers typically give the document body an 8px margin, which is not included in\n // getBoundingClientRect().\n const scrollPosition = this.getViewportScrollPosition();\n const { width, height } = this.getViewportSize();\n return {\n top: scrollPosition.top,\n left: scrollPosition.left,\n bottom: scrollPosition.top + height,\n right: scrollPosition.left + width,\n height,\n width,\n };\n }\n /** Gets the (top, left) scroll position of the viewport. */\n getViewportScrollPosition() {\n // While we can get a reference to the fake document\n // during SSR, it doesn't have getBoundingClientRect.\n if (!this._platform.isBrowser) {\n return { top: 0, left: 0 };\n }\n // The top-left-corner of the viewport is determined by the scroll position of the document\n // body, normally just (scrollLeft, scrollTop). However, Chrome and Firefox disagree about\n // whether `document.body` or `document.documentElement` is the scrolled element, so reading\n // `scrollTop` and `scrollLeft` is inconsistent. However, using the bounding rect of\n // `document.documentElement` works consistently, where the `top` and `left` values will\n // equal negative the scroll position.\n const document = this._document;\n const window = this._getWindow();\n const documentElement = document.documentElement;\n const documentRect = documentElement.getBoundingClientRect();\n const top = -documentRect.top ||\n document.body.scrollTop ||\n window.scrollY ||\n documentElement.scrollTop ||\n 0;\n const left = -documentRect.left ||\n document.body.scrollLeft ||\n window.scrollX ||\n documentElement.scrollLeft ||\n 0;\n return { top, left };\n }\n /**\n * Returns a stream that emits whenever the size of the viewport changes.\n * This stream emits outside of the Angular zone.\n * @param throttleTime Time in milliseconds to throttle the stream.\n */\n change(throttleTime = DEFAULT_RESIZE_TIME) {\n return throttleTime > 0 ? this._change.pipe(auditTime(throttleTime)) : this._change;\n }\n /** Use defaultView of injected document if available or fallback to global window reference */\n _getWindow() {\n return this._document.defaultView || window;\n }\n /** Updates the cached viewport size. */\n _updateViewportSize() {\n const window = this._getWindow();\n this._viewportSize = this._platform.isBrowser\n ? { width: window.innerWidth, height: window.innerHeight }\n : { width: 0, height: 0 };\n }\n}\nViewportRuler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: ViewportRuler, deps: [{ token: i1.Platform }, { token: i0.NgZone }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nViewportRuler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: ViewportRuler, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: ViewportRuler, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () {\n return [{ type: i1.Platform }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }] }];\n } });\n\n/** Checks if the given ranges are equal. */\nfunction rangesEqual(r1, r2) {\n return r1.start == r2.start && r1.end == r2.end;\n}\n/**\n * Scheduler to be used for scroll events. Needs to fall back to\n * something that doesn't rely on requestAnimationFrame on environments\n * that don't support it (e.g. server-side rendering).\n */\nconst SCROLL_SCHEDULER = typeof requestAnimationFrame !== 'undefined' ? animationFrameScheduler : asapScheduler;\n/** A viewport that virtualizes its scrolling with the help of `CdkVirtualForOf`. */\nclass CdkVirtualScrollViewport extends CdkScrollable {\n constructor(elementRef, _changeDetectorRef, ngZone, _scrollStrategy, dir, scrollDispatcher, viewportRuler) {\n super(elementRef, scrollDispatcher, ngZone, dir);\n this.elementRef = elementRef;\n this._changeDetectorRef = _changeDetectorRef;\n this._scrollStrategy = _scrollStrategy;\n /** Emits when the viewport is detached from a CdkVirtualForOf. */\n this._detachedSubject = new Subject();\n /** Emits when the rendered range changes. */\n this._renderedRangeSubject = new Subject();\n this._orientation = 'vertical';\n this._appendOnly = false;\n // Note: we don't use the typical EventEmitter here because we need to subscribe to the scroll\n // strategy lazily (i.e. only if the user is actually listening to the events). We do this because\n // depending on how the strategy calculates the scrolled index, it may come at a cost to\n // performance.\n /** Emits when the index of the first element visible in the viewport changes. */\n this.scrolledIndexChange = new Observable((observer) => this._scrollStrategy.scrolledIndexChange.subscribe(index => Promise.resolve().then(() => this.ngZone.run(() => observer.next(index)))));\n /** A stream that emits whenever the rendered range changes. */\n this.renderedRangeStream = this._renderedRangeSubject;\n /**\n * The total size of all content (in pixels), including content that is not currently rendered.\n */\n this._totalContentSize = 0;\n /** A string representing the `style.width` property value to be used for the spacer element. */\n this._totalContentWidth = '';\n /** A string representing the `style.height` property value to be used for the spacer element. */\n this._totalContentHeight = '';\n /** The currently rendered range of indices. */\n this._renderedRange = { start: 0, end: 0 };\n /** The length of the data bound to this viewport (in number of items). */\n this._dataLength = 0;\n /** The size of the viewport (in pixels). */\n this._viewportSize = 0;\n /** The last rendered content offset that was set. */\n this._renderedContentOffset = 0;\n /**\n * Whether the last rendered content offset was to the end of the content (and therefore needs to\n * be rewritten as an offset to the start of the content).\n */\n this._renderedContentOffsetNeedsRewrite = false;\n /** Whether there is a pending change detection cycle. */\n this._isChangeDetectionPending = false;\n /** A list of functions to run after the next change detection cycle. */\n this._runAfterChangeDetection = [];\n /** Subscription to changes in the viewport size. */\n this._viewportChanges = Subscription.EMPTY;\n if (!_scrollStrategy && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Error: cdk-virtual-scroll-viewport requires the \"itemSize\" property to be set.');\n }\n this._viewportChanges = viewportRuler.change().subscribe(() => {\n this.checkViewportSize();\n });\n }\n /** The direction the viewport scrolls. */\n get orientation() {\n return this._orientation;\n }\n set orientation(orientation) {\n if (this._orientation !== orientation) {\n this._orientation = orientation;\n this._calculateSpacerSize();\n }\n }\n /**\n * Whether rendered items should persist in the DOM after scrolling out of view. By default, items\n * will be removed.\n */\n get appendOnly() {\n return this._appendOnly;\n }\n set appendOnly(value) {\n this._appendOnly = coerceBooleanProperty(value);\n }\n ngOnInit() {\n super.ngOnInit();\n // It's still too early to measure the viewport at this point. Deferring with a promise allows\n // the Viewport to be rendered with the correct size before we measure. We run this outside the\n // zone to avoid causing more change detection cycles. We handle the change detection loop\n // ourselves instead.\n this.ngZone.runOutsideAngular(() => Promise.resolve().then(() => {\n this._measureViewportSize();\n this._scrollStrategy.attach(this);\n this.elementScrolled()\n .pipe(\n // Start off with a fake scroll event so we properly detect our initial position.\n startWith(null), \n // Collect multiple events into one until the next animation frame. This way if\n // there are multiple scroll events in the same frame we only need to recheck\n // our layout once.\n auditTime(0, SCROLL_SCHEDULER))\n .subscribe(() => this._scrollStrategy.onContentScrolled());\n this._markChangeDetectionNeeded();\n }));\n }\n ngOnDestroy() {\n this.detach();\n this._scrollStrategy.detach();\n // Complete all subjects\n this._renderedRangeSubject.complete();\n this._detachedSubject.complete();\n this._viewportChanges.unsubscribe();\n super.ngOnDestroy();\n }\n /** Attaches a `CdkVirtualScrollRepeater` to this viewport. */\n attach(forOf) {\n if (this._forOf && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('CdkVirtualScrollViewport is already attached.');\n }\n // Subscribe to the data stream of the CdkVirtualForOf to keep track of when the data length\n // changes. Run outside the zone to avoid triggering change detection, since we're managing the\n // change detection loop ourselves.\n this.ngZone.runOutsideAngular(() => {\n this._forOf = forOf;\n this._forOf.dataStream.pipe(takeUntil(this._detachedSubject)).subscribe(data => {\n const newLength = data.length;\n if (newLength !== this._dataLength) {\n this._dataLength = newLength;\n this._scrollStrategy.onDataLengthChanged();\n }\n this._doChangeDetection();\n });\n });\n }\n /** Detaches the current `CdkVirtualForOf`. */\n detach() {\n this._forOf = null;\n this._detachedSubject.next();\n }\n /** Gets the length of the data bound to this viewport (in number of items). */\n getDataLength() {\n return this._dataLength;\n }\n /** Gets the size of the viewport (in pixels). */\n getViewportSize() {\n return this._viewportSize;\n }\n // TODO(mmalerba): This is technically out of sync with what's really rendered until a render\n // cycle happens. I'm being careful to only call it after the render cycle is complete and before\n // setting it to something else, but its error prone and should probably be split into\n // `pendingRange` and `renderedRange`, the latter reflecting whats actually in the DOM.\n /** Get the current rendered range of items. */\n getRenderedRange() {\n return this._renderedRange;\n }\n /**\n * Sets the total size of all content (in pixels), including content that is not currently\n * rendered.\n */\n setTotalContentSize(size) {\n if (this._totalContentSize !== size) {\n this._totalContentSize = size;\n this._calculateSpacerSize();\n this._markChangeDetectionNeeded();\n }\n }\n /** Sets the currently rendered range of indices. */\n setRenderedRange(range) {\n if (!rangesEqual(this._renderedRange, range)) {\n if (this.appendOnly) {\n range = { start: 0, end: Math.max(this._renderedRange.end, range.end) };\n }\n this._renderedRangeSubject.next((this._renderedRange = range));\n this._markChangeDetectionNeeded(() => this._scrollStrategy.onContentRendered());\n }\n }\n /**\n * Gets the offset from the start of the viewport to the start of the rendered data (in pixels).\n */\n getOffsetToRenderedContentStart() {\n return this._renderedContentOffsetNeedsRewrite ? null : this._renderedContentOffset;\n }\n /**\n * Sets the offset from the start of the viewport to either the start or end of the rendered data\n * (in pixels).\n */\n setRenderedContentOffset(offset, to = 'to-start') {\n // For a horizontal viewport in a right-to-left language we need to translate along the x-axis\n // in the negative direction.\n const isRtl = this.dir && this.dir.value == 'rtl';\n const isHorizontal = this.orientation == 'horizontal';\n const axis = isHorizontal ? 'X' : 'Y';\n const axisDirection = isHorizontal && isRtl ? -1 : 1;\n let transform = `translate${axis}(${Number(axisDirection * offset)}px)`;\n // in appendOnly, we always start from the top\n offset = this.appendOnly && to === 'to-start' ? 0 : offset;\n this._renderedContentOffset = offset;\n if (to === 'to-end') {\n transform += ` translate${axis}(-100%)`;\n // The viewport should rewrite this as a `to-start` offset on the next render cycle. Otherwise\n // elements will appear to expand in the wrong direction (e.g. `mat-expansion-panel` would\n // expand upward).\n this._renderedContentOffsetNeedsRewrite = true;\n }\n if (this._renderedContentTransform != transform) {\n // We know this value is safe because we parse `offset` with `Number()` before passing it\n // into the string.\n this._renderedContentTransform = transform;\n this._markChangeDetectionNeeded(() => {\n if (this._renderedContentOffsetNeedsRewrite) {\n this._renderedContentOffset -= this.measureRenderedContentSize();\n this._renderedContentOffsetNeedsRewrite = false;\n this.setRenderedContentOffset(this._renderedContentOffset);\n }\n else {\n this._scrollStrategy.onRenderedOffsetChanged();\n }\n });\n }\n }\n /**\n * Scrolls to the given offset from the start of the viewport. Please note that this is not always\n * the same as setting `scrollTop` or `scrollLeft`. In a horizontal viewport with right-to-left\n * direction, this would be the equivalent of setting a fictional `scrollRight` property.\n * @param offset The offset to scroll to.\n * @param behavior The ScrollBehavior to use when scrolling. Default is behavior is `auto`.\n */\n scrollToOffset(offset, behavior = 'auto') {\n const options = { behavior };\n if (this.orientation === 'horizontal') {\n options.start = offset;\n }\n else {\n options.top = offset;\n }\n this.scrollTo(options);\n }\n /**\n * Scrolls to the offset for the given index.\n * @param index The index of the element to scroll to.\n * @param behavior The ScrollBehavior to use when scrolling. Default is behavior is `auto`.\n */\n scrollToIndex(index, behavior = 'auto') {\n this._scrollStrategy.scrollToIndex(index, behavior);\n }\n /**\n * Gets the current scroll offset from the start of the viewport (in pixels).\n * @param from The edge to measure the offset from. Defaults to 'top' in vertical mode and 'start'\n * in horizontal mode.\n */\n measureScrollOffset(from) {\n return from\n ? super.measureScrollOffset(from)\n : super.measureScrollOffset(this.orientation === 'horizontal' ? 'start' : 'top');\n }\n /** Measure the combined size of all of the rendered items. */\n measureRenderedContentSize() {\n const contentEl = this._contentWrapper.nativeElement;\n return this.orientation === 'horizontal' ? contentEl.offsetWidth : contentEl.offsetHeight;\n }\n /**\n * Measure the total combined size of the given range. Throws if the range includes items that are\n * not rendered.\n */\n measureRangeSize(range) {\n if (!this._forOf) {\n return 0;\n }\n return this._forOf.measureRangeSize(range, this.orientation);\n }\n /** Update the viewport dimensions and re-render. */\n checkViewportSize() {\n // TODO: Cleanup later when add logic for handling content resize\n this._measureViewportSize();\n this._scrollStrategy.onDataLengthChanged();\n }\n /** Measure the viewport size. */\n _measureViewportSize() {\n const viewportEl = this.elementRef.nativeElement;\n this._viewportSize =\n this.orientation === 'horizontal' ? viewportEl.clientWidth : viewportEl.clientHeight;\n }\n /** Queue up change detection to run. */\n _markChangeDetectionNeeded(runAfter) {\n if (runAfter) {\n this._runAfterChangeDetection.push(runAfter);\n }\n // Use a Promise to batch together calls to `_doChangeDetection`. This way if we set a bunch of\n // properties sequentially we only have to run `_doChangeDetection` once at the end.\n if (!this._isChangeDetectionPending) {\n this._isChangeDetectionPending = true;\n this.ngZone.runOutsideAngular(() => Promise.resolve().then(() => {\n this._doChangeDetection();\n }));\n }\n }\n /** Run change detection. */\n _doChangeDetection() {\n this._isChangeDetectionPending = false;\n // Apply the content transform. The transform can't be set via an Angular binding because\n // bypassSecurityTrustStyle is banned in Google. However the value is safe, it's composed of\n // string literals, a variable that can only be 'X' or 'Y', and user input that is run through\n // the `Number` function first to coerce it to a numeric value.\n this._contentWrapper.nativeElement.style.transform = this._renderedContentTransform;\n // Apply changes to Angular bindings. Note: We must call `markForCheck` to run change detection\n // from the root, since the repeated items are content projected in. Calling `detectChanges`\n // instead does not properly check the projected content.\n this.ngZone.run(() => this._changeDetectorRef.markForCheck());\n const runAfterChangeDetection = this._runAfterChangeDetection;\n this._runAfterChangeDetection = [];\n for (const fn of runAfterChangeDetection) {\n fn();\n }\n }\n /** Calculates the `style.width` and `style.height` for the spacer element. */\n _calculateSpacerSize() {\n this._totalContentHeight =\n this.orientation === 'horizontal' ? '' : `${this._totalContentSize}px`;\n this._totalContentWidth =\n this.orientation === 'horizontal' ? `${this._totalContentSize}px` : '';\n }\n}\nCdkVirtualScrollViewport.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CdkVirtualScrollViewport, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: VIRTUAL_SCROLL_STRATEGY, optional: true }, { token: i2.Directionality, optional: true }, { token: ScrollDispatcher }, { token: ViewportRuler }], target: i0.ɵɵFactoryTarget.Component });\nCdkVirtualScrollViewport.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.3.0\", type: CdkVirtualScrollViewport, selector: \"cdk-virtual-scroll-viewport\", inputs: { orientation: \"orientation\", appendOnly: \"appendOnly\" }, outputs: { scrolledIndexChange: \"scrolledIndexChange\" }, host: { properties: { \"class.cdk-virtual-scroll-orientation-horizontal\": \"orientation === \\\"horizontal\\\"\", \"class.cdk-virtual-scroll-orientation-vertical\": \"orientation !== \\\"horizontal\\\"\" }, classAttribute: \"cdk-virtual-scroll-viewport\" }, providers: [\n {\n provide: CdkScrollable,\n useExisting: CdkVirtualScrollViewport,\n },\n ], viewQueries: [{ propertyName: \"_contentWrapper\", first: true, predicate: [\"contentWrapper\"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: \"\\n
    \\n \\n
    \\n\\n
    \\n\", styles: [\"cdk-virtual-scroll-viewport{display:block;position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0}[dir=rtl] .cdk-virtual-scroll-spacer{right:0;left:auto;transform-origin:100% 0}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CdkVirtualScrollViewport, decorators: [{\n type: Component,\n args: [{ selector: 'cdk-virtual-scroll-viewport', host: {\n 'class': 'cdk-virtual-scroll-viewport',\n '[class.cdk-virtual-scroll-orientation-horizontal]': 'orientation === \"horizontal\"',\n '[class.cdk-virtual-scroll-orientation-vertical]': 'orientation !== \"horizontal\"',\n }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [\n {\n provide: CdkScrollable,\n useExisting: CdkVirtualScrollViewport,\n },\n ], template: \"\\n
    \\n \\n
    \\n\\n
    \\n\", styles: [\"cdk-virtual-scroll-viewport{display:block;position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0}[dir=rtl] .cdk-virtual-scroll-spacer{right:0;left:auto;transform-origin:100% 0}\\n\"] }]\n }], ctorParameters: function () {\n return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [VIRTUAL_SCROLL_STRATEGY]\n }] }, { type: i2.Directionality, decorators: [{\n type: Optional\n }] }, { type: ScrollDispatcher }, { type: ViewportRuler }];\n }, propDecorators: { orientation: [{\n type: Input\n }], appendOnly: [{\n type: Input\n }], scrolledIndexChange: [{\n type: Output\n }], _contentWrapper: [{\n type: ViewChild,\n args: ['contentWrapper', { static: true }]\n }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Helper to extract the offset of a DOM Node in a certain direction. */\nfunction getOffset(orientation, direction, node) {\n const el = node;\n if (!el.getBoundingClientRect) {\n return 0;\n }\n const rect = el.getBoundingClientRect();\n if (orientation === 'horizontal') {\n return direction === 'start' ? rect.left : rect.right;\n }\n return direction === 'start' ? rect.top : rect.bottom;\n}\n/**\n * A directive similar to `ngForOf` to be used for rendering data inside a virtual scrolling\n * container.\n */\nclass CdkVirtualForOf {\n constructor(\n /** The view container to add items to. */\n _viewContainerRef, \n /** The template to use when stamping out new items. */\n _template, \n /** The set of available differs. */\n _differs, \n /** The strategy used to render items in the virtual scroll viewport. */\n _viewRepeater, \n /** The virtual scrolling viewport that these items are being rendered in. */\n _viewport, ngZone) {\n this._viewContainerRef = _viewContainerRef;\n this._template = _template;\n this._differs = _differs;\n this._viewRepeater = _viewRepeater;\n this._viewport = _viewport;\n /** Emits when the rendered view of the data changes. */\n this.viewChange = new Subject();\n /** Subject that emits when a new DataSource instance is given. */\n this._dataSourceChanges = new Subject();\n /** Emits whenever the data in the current DataSource changes. */\n this.dataStream = this._dataSourceChanges.pipe(\n // Start off with null `DataSource`.\n startWith(null), \n // Bundle up the previous and current data sources so we can work with both.\n pairwise(), \n // Use `_changeDataSource` to disconnect from the previous data source and connect to the\n // new one, passing back a stream of data changes which we run through `switchMap` to give\n // us a data stream that emits the latest data from whatever the current `DataSource` is.\n switchMap(([prev, cur]) => this._changeDataSource(prev, cur)), \n // Replay the last emitted data when someone subscribes.\n shareReplay(1));\n /** The differ used to calculate changes to the data. */\n this._differ = null;\n /** Whether the rendered data should be updated during the next ngDoCheck cycle. */\n this._needsUpdate = false;\n this._destroyed = new Subject();\n this.dataStream.subscribe(data => {\n this._data = data;\n this._onRenderedDataChange();\n });\n this._viewport.renderedRangeStream.pipe(takeUntil(this._destroyed)).subscribe(range => {\n this._renderedRange = range;\n ngZone.run(() => this.viewChange.next(this._renderedRange));\n this._onRenderedDataChange();\n });\n this._viewport.attach(this);\n }\n /** The DataSource to display. */\n get cdkVirtualForOf() {\n return this._cdkVirtualForOf;\n }\n set cdkVirtualForOf(value) {\n this._cdkVirtualForOf = value;\n if (isDataSource(value)) {\n this._dataSourceChanges.next(value);\n }\n else {\n // If value is an an NgIterable, convert it to an array.\n this._dataSourceChanges.next(new ArrayDataSource(isObservable(value) ? value : Array.from(value || [])));\n }\n }\n /**\n * The `TrackByFunction` to use for tracking changes. The `TrackByFunction` takes the index and\n * the item and produces a value to be used as the item's identity when tracking changes.\n */\n get cdkVirtualForTrackBy() {\n return this._cdkVirtualForTrackBy;\n }\n set cdkVirtualForTrackBy(fn) {\n this._needsUpdate = true;\n this._cdkVirtualForTrackBy = fn\n ? (index, item) => fn(index + (this._renderedRange ? this._renderedRange.start : 0), item)\n : undefined;\n }\n /** The template used to stamp out new elements. */\n set cdkVirtualForTemplate(value) {\n if (value) {\n this._needsUpdate = true;\n this._template = value;\n }\n }\n /**\n * The size of the cache used to store templates that are not being used for re-use later.\n * Setting the cache size to `0` will disable caching. Defaults to 20 templates.\n */\n get cdkVirtualForTemplateCacheSize() {\n return this._viewRepeater.viewCacheSize;\n }\n set cdkVirtualForTemplateCacheSize(size) {\n this._viewRepeater.viewCacheSize = coerceNumberProperty(size);\n }\n /**\n * Measures the combined size (width for horizontal orientation, height for vertical) of all items\n * in the specified range. Throws an error if the range includes items that are not currently\n * rendered.\n */\n measureRangeSize(range, orientation) {\n if (range.start >= range.end) {\n return 0;\n }\n if ((range.start < this._renderedRange.start || range.end > this._renderedRange.end) &&\n (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error(`Error: attempted to measure an item that isn't rendered.`);\n }\n // The index into the list of rendered views for the first item in the range.\n const renderedStartIndex = range.start - this._renderedRange.start;\n // The length of the range we're measuring.\n const rangeLen = range.end - range.start;\n // Loop over all the views, find the first and land node and compute the size by subtracting\n // the top of the first node from the bottom of the last one.\n let firstNode;\n let lastNode;\n // Find the first node by starting from the beginning and going forwards.\n for (let i = 0; i < rangeLen; i++) {\n const view = this._viewContainerRef.get(i + renderedStartIndex);\n if (view && view.rootNodes.length) {\n firstNode = lastNode = view.rootNodes[0];\n break;\n }\n }\n // Find the last node by starting from the end and going backwards.\n for (let i = rangeLen - 1; i > -1; i--) {\n const view = this._viewContainerRef.get(i + renderedStartIndex);\n if (view && view.rootNodes.length) {\n lastNode = view.rootNodes[view.rootNodes.length - 1];\n break;\n }\n }\n return firstNode && lastNode\n ? getOffset(orientation, 'end', lastNode) - getOffset(orientation, 'start', firstNode)\n : 0;\n }\n ngDoCheck() {\n if (this._differ && this._needsUpdate) {\n // TODO(mmalerba): We should differentiate needs update due to scrolling and a new portion of\n // this list being rendered (can use simpler algorithm) vs needs update due to data actually\n // changing (need to do this diff).\n const changes = this._differ.diff(this._renderedItems);\n if (!changes) {\n this._updateContext();\n }\n else {\n this._applyChanges(changes);\n }\n this._needsUpdate = false;\n }\n }\n ngOnDestroy() {\n this._viewport.detach();\n this._dataSourceChanges.next(undefined);\n this._dataSourceChanges.complete();\n this.viewChange.complete();\n this._destroyed.next();\n this._destroyed.complete();\n this._viewRepeater.detach();\n }\n /** React to scroll state changes in the viewport. */\n _onRenderedDataChange() {\n if (!this._renderedRange) {\n return;\n }\n this._renderedItems = this._data.slice(this._renderedRange.start, this._renderedRange.end);\n if (!this._differ) {\n // Use a wrapper function for the `trackBy` so any new values are\n // picked up automatically without having to recreate the differ.\n this._differ = this._differs.find(this._renderedItems).create((index, item) => {\n return this.cdkVirtualForTrackBy ? this.cdkVirtualForTrackBy(index, item) : item;\n });\n }\n this._needsUpdate = true;\n }\n /** Swap out one `DataSource` for another. */\n _changeDataSource(oldDs, newDs) {\n if (oldDs) {\n oldDs.disconnect(this);\n }\n this._needsUpdate = true;\n return newDs ? newDs.connect(this) : of();\n }\n /** Update the `CdkVirtualForOfContext` for all views. */\n _updateContext() {\n const count = this._data.length;\n let i = this._viewContainerRef.length;\n while (i--) {\n const view = this._viewContainerRef.get(i);\n view.context.index = this._renderedRange.start + i;\n view.context.count = count;\n this._updateComputedContextProperties(view.context);\n view.detectChanges();\n }\n }\n /** Apply changes to the DOM. */\n _applyChanges(changes) {\n this._viewRepeater.applyChanges(changes, this._viewContainerRef, (record, _adjustedPreviousIndex, currentIndex) => this._getEmbeddedViewArgs(record, currentIndex), record => record.item);\n // Update $implicit for any items that had an identity change.\n changes.forEachIdentityChange((record) => {\n const view = this._viewContainerRef.get(record.currentIndex);\n view.context.$implicit = record.item;\n });\n // Update the context variables on all items.\n const count = this._data.length;\n let i = this._viewContainerRef.length;\n while (i--) {\n const view = this._viewContainerRef.get(i);\n view.context.index = this._renderedRange.start + i;\n view.context.count = count;\n this._updateComputedContextProperties(view.context);\n }\n }\n /** Update the computed properties on the `CdkVirtualForOfContext`. */\n _updateComputedContextProperties(context) {\n context.first = context.index === 0;\n context.last = context.index === context.count - 1;\n context.even = context.index % 2 === 0;\n context.odd = !context.even;\n }\n _getEmbeddedViewArgs(record, index) {\n // Note that it's important that we insert the item directly at the proper index,\n // rather than inserting it and the moving it in place, because if there's a directive\n // on the same node that injects the `ViewContainerRef`, Angular will insert another\n // comment node which can throw off the move when it's being repeated for all items.\n return {\n templateRef: this._template,\n context: {\n $implicit: record.item,\n // It's guaranteed that the iterable is not \"undefined\" or \"null\" because we only\n // generate views for elements if the \"cdkVirtualForOf\" iterable has elements.\n cdkVirtualForOf: this._cdkVirtualForOf,\n index: -1,\n count: -1,\n first: false,\n last: false,\n odd: false,\n even: false,\n },\n index,\n };\n }\n}\nCdkVirtualForOf.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CdkVirtualForOf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i0.IterableDiffers }, { token: _VIEW_REPEATER_STRATEGY }, { token: CdkVirtualScrollViewport, skipSelf: true }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });\nCdkVirtualForOf.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.0\", type: CdkVirtualForOf, selector: \"[cdkVirtualFor][cdkVirtualForOf]\", inputs: { cdkVirtualForOf: \"cdkVirtualForOf\", cdkVirtualForTrackBy: \"cdkVirtualForTrackBy\", cdkVirtualForTemplate: \"cdkVirtualForTemplate\", cdkVirtualForTemplateCacheSize: \"cdkVirtualForTemplateCacheSize\" }, providers: [{ provide: _VIEW_REPEATER_STRATEGY, useClass: _RecycleViewRepeaterStrategy }], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CdkVirtualForOf, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdkVirtualFor][cdkVirtualForOf]',\n providers: [{ provide: _VIEW_REPEATER_STRATEGY, useClass: _RecycleViewRepeaterStrategy }],\n }]\n }], ctorParameters: function () {\n return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: i0.IterableDiffers }, { type: i2$1._RecycleViewRepeaterStrategy, decorators: [{\n type: Inject,\n args: [_VIEW_REPEATER_STRATEGY]\n }] }, { type: CdkVirtualScrollViewport, decorators: [{\n type: SkipSelf\n }] }, { type: i0.NgZone }];\n }, propDecorators: { cdkVirtualForOf: [{\n type: Input\n }], cdkVirtualForTrackBy: [{\n type: Input\n }], cdkVirtualForTemplate: [{\n type: Input\n }], cdkVirtualForTemplateCacheSize: [{\n type: Input\n }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass CdkScrollableModule {\n}\nCdkScrollableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CdkScrollableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nCdkScrollableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CdkScrollableModule, declarations: [CdkScrollable], exports: [CdkScrollable] });\nCdkScrollableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CdkScrollableModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CdkScrollableModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [CdkScrollable],\n declarations: [CdkScrollable],\n }]\n }] });\n/**\n * @docs-primary-export\n */\nclass ScrollingModule {\n}\nScrollingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: ScrollingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nScrollingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: ScrollingModule, declarations: [CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualScrollViewport], imports: [BidiModule, CdkScrollableModule], exports: [BidiModule, CdkScrollableModule, CdkFixedSizeVirtualScroll,\n CdkVirtualForOf,\n CdkVirtualScrollViewport] });\nScrollingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: ScrollingModule, imports: [[BidiModule, CdkScrollableModule], BidiModule, CdkScrollableModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: ScrollingModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [BidiModule, CdkScrollableModule],\n exports: [\n BidiModule,\n CdkScrollableModule,\n CdkFixedSizeVirtualScroll,\n CdkVirtualForOf,\n CdkVirtualScrollViewport,\n ],\n declarations: [CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualScrollViewport],\n }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CdkFixedSizeVirtualScroll, CdkScrollable, CdkScrollableModule, CdkVirtualForOf, CdkVirtualScrollViewport, DEFAULT_RESIZE_TIME, DEFAULT_SCROLL_TIME, FixedSizeVirtualScrollStrategy, ScrollDispatcher, ScrollingModule, VIRTUAL_SCROLL_STRATEGY, ViewportRuler, _fixedSizeVirtualScrollStrategyFactory };\n","/**\n * @license Angular v13.3.0\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i0 from '@angular/core';\nimport { InjectionToken, Injectable, ɵɵinject, Inject, Optional, EventEmitter, ɵfindLocaleData, ɵLocaleDataIndex, ɵgetLocaleCurrencyCode, ɵgetLocalePluralCase, LOCALE_ID, ɵregisterLocaleData, ɵisListLikeIterable, ɵstringify, Directive, Input, NgModuleRef, ComponentFactoryResolver, Host, ɵRuntimeError, Attribute, ɵisPromise, ɵisSubscribable, Pipe, DEFAULT_CURRENCY_CODE, NgModule, Version, ɵɵdefineInjectable } from '@angular/core';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet _DOM = null;\nfunction getDOM() {\n return _DOM;\n}\nfunction setDOM(adapter) {\n _DOM = adapter;\n}\nfunction setRootDomAdapter(adapter) {\n if (!_DOM) {\n _DOM = adapter;\n }\n}\n/* tslint:disable:requireParameterType */\n/**\n * Provides DOM operations in an environment-agnostic way.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nclass DomAdapter {\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A DI Token representing the main rendering context. In a browser this is the DOM Document.\n *\n * Note: Document might not be available in the Application Context when Application and Rendering\n * Contexts are not the same (e.g. when running the application in a Web Worker).\n *\n * @publicApi\n */\nconst DOCUMENT = new InjectionToken('DocumentToken');\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * This class should not be used directly by an application developer. Instead, use\n * {@link Location}.\n *\n * `PlatformLocation` encapsulates all calls to DOM APIs, which allows the Router to be\n * platform-agnostic.\n * This means that we can have different implementation of `PlatformLocation` for the different\n * platforms that Angular supports. For example, `@angular/platform-browser` provides an\n * implementation specific to the browser environment, while `@angular/platform-server` provides\n * one suitable for use with server-side rendering.\n *\n * The `PlatformLocation` class is used directly by all implementations of {@link LocationStrategy}\n * when they need to interact with the DOM APIs like pushState, popState, etc.\n *\n * {@link LocationStrategy} in turn is used by the {@link Location} service which is used directly\n * by the {@link Router} in order to navigate between routes. Since all interactions between {@link\n * Router} /\n * {@link Location} / {@link LocationStrategy} and DOM APIs flow through the `PlatformLocation`\n * class, they are all platform-agnostic.\n *\n * @publicApi\n */\nclass PlatformLocation {\n historyGo(relativePosition) {\n throw new Error('Not implemented');\n }\n}\nPlatformLocation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: PlatformLocation, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nPlatformLocation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: PlatformLocation, providedIn: 'platform', useFactory: useBrowserPlatformLocation });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: PlatformLocation, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'platform',\n // See #23917\n useFactory: useBrowserPlatformLocation\n }]\n }] });\nfunction useBrowserPlatformLocation() {\n return ɵɵinject(BrowserPlatformLocation);\n}\n/**\n * @description\n * Indicates when a location is initialized.\n *\n * @publicApi\n */\nconst LOCATION_INITIALIZED = new InjectionToken('Location Initialized');\n/**\n * `PlatformLocation` encapsulates all of the direct calls to platform APIs.\n * This class should not be used directly by an application developer. Instead, use\n * {@link Location}.\n */\nclass BrowserPlatformLocation extends PlatformLocation {\n constructor(_doc) {\n super();\n this._doc = _doc;\n this._init();\n }\n // This is moved to its own method so that `MockPlatformLocationStrategy` can overwrite it\n /** @internal */\n _init() {\n this.location = window.location;\n this._history = window.history;\n }\n getBaseHrefFromDOM() {\n return getDOM().getBaseHref(this._doc);\n }\n onPopState(fn) {\n const window = getDOM().getGlobalEventTarget(this._doc, 'window');\n window.addEventListener('popstate', fn, false);\n return () => window.removeEventListener('popstate', fn);\n }\n onHashChange(fn) {\n const window = getDOM().getGlobalEventTarget(this._doc, 'window');\n window.addEventListener('hashchange', fn, false);\n return () => window.removeEventListener('hashchange', fn);\n }\n get href() {\n return this.location.href;\n }\n get protocol() {\n return this.location.protocol;\n }\n get hostname() {\n return this.location.hostname;\n }\n get port() {\n return this.location.port;\n }\n get pathname() {\n return this.location.pathname;\n }\n get search() {\n return this.location.search;\n }\n get hash() {\n return this.location.hash;\n }\n set pathname(newPath) {\n this.location.pathname = newPath;\n }\n pushState(state, title, url) {\n if (supportsState()) {\n this._history.pushState(state, title, url);\n }\n else {\n this.location.hash = url;\n }\n }\n replaceState(state, title, url) {\n if (supportsState()) {\n this._history.replaceState(state, title, url);\n }\n else {\n this.location.hash = url;\n }\n }\n forward() {\n this._history.forward();\n }\n back() {\n this._history.back();\n }\n historyGo(relativePosition = 0) {\n this._history.go(relativePosition);\n }\n getState() {\n return this._history.state;\n }\n}\nBrowserPlatformLocation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: BrowserPlatformLocation, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nBrowserPlatformLocation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: BrowserPlatformLocation, providedIn: 'platform', useFactory: createBrowserPlatformLocation });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: BrowserPlatformLocation, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'platform',\n // See #23917\n useFactory: createBrowserPlatformLocation,\n }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }];\n } });\nfunction supportsState() {\n return !!window.history.pushState;\n}\nfunction createBrowserPlatformLocation() {\n return new BrowserPlatformLocation(ɵɵinject(DOCUMENT));\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Joins two parts of a URL with a slash if needed.\n *\n * @param start URL string\n * @param end URL string\n *\n *\n * @returns The joined URL string.\n */\nfunction joinWithSlash(start, end) {\n if (start.length == 0) {\n return end;\n }\n if (end.length == 0) {\n return start;\n }\n let slashes = 0;\n if (start.endsWith('/')) {\n slashes++;\n }\n if (end.startsWith('/')) {\n slashes++;\n }\n if (slashes == 2) {\n return start + end.substring(1);\n }\n if (slashes == 1) {\n return start + end;\n }\n return start + '/' + end;\n}\n/**\n * Removes a trailing slash from a URL string if needed.\n * Looks for the first occurrence of either `#`, `?`, or the end of the\n * line as `/` characters and removes the trailing slash if one exists.\n *\n * @param url URL string.\n *\n * @returns The URL string, modified if needed.\n */\nfunction stripTrailingSlash(url) {\n const match = url.match(/#|\\?|$/);\n const pathEndIdx = match && match.index || url.length;\n const droppedSlashIdx = pathEndIdx - (url[pathEndIdx - 1] === '/' ? 1 : 0);\n return url.slice(0, droppedSlashIdx) + url.slice(pathEndIdx);\n}\n/**\n * Normalizes URL parameters by prepending with `?` if needed.\n *\n * @param params String of URL parameters.\n *\n * @returns The normalized URL parameters string.\n */\nfunction normalizeQueryParams(params) {\n return params && params[0] !== '?' ? '?' + params : params;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Enables the `Location` service to read route state from the browser's URL.\n * Angular provides two strategies:\n * `HashLocationStrategy` and `PathLocationStrategy`.\n *\n * Applications should use the `Router` or `Location` services to\n * interact with application route state.\n *\n * For instance, `HashLocationStrategy` produces URLs like\n * http://example.com#/foo,\n * and `PathLocationStrategy` produces\n * http://example.com/foo as an equivalent URL.\n *\n * See these two classes for more.\n *\n * @publicApi\n */\nclass LocationStrategy {\n historyGo(relativePosition) {\n throw new Error('Not implemented');\n }\n}\nLocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: LocationStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nLocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: LocationStrategy, providedIn: 'root', useFactory: provideLocationStrategy });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: LocationStrategy, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: provideLocationStrategy }]\n }] });\nfunction provideLocationStrategy(platformLocation) {\n // See #23917\n const location = ɵɵinject(DOCUMENT).location;\n return new PathLocationStrategy(ɵɵinject(PlatformLocation), location && location.origin || '');\n}\n/**\n * A predefined [DI token](guide/glossary#di-token) for the base href\n * to be used with the `PathLocationStrategy`.\n * The base href is the URL prefix that should be preserved when generating\n * and recognizing URLs.\n *\n * @usageNotes\n *\n * The following example shows how to use this token to configure the root app injector\n * with a base href value, so that the DI framework can supply the dependency anywhere in the app.\n *\n * ```typescript\n * import {Component, NgModule} from '@angular/core';\n * import {APP_BASE_HREF} from '@angular/common';\n *\n * @NgModule({\n * providers: [{provide: APP_BASE_HREF, useValue: '/my/app'}]\n * })\n * class AppModule {}\n * ```\n *\n * @publicApi\n */\nconst APP_BASE_HREF = new InjectionToken('appBaseHref');\n/**\n * @description\n * A {@link LocationStrategy} used to configure the {@link Location} service to\n * represent its state in the\n * [path](https://en.wikipedia.org/wiki/Uniform_Resource_Locator#Syntax) of the\n * browser's URL.\n *\n * If you're using `PathLocationStrategy`, you must provide a {@link APP_BASE_HREF}\n * or add a `` element to the document.\n *\n * For instance, if you provide an `APP_BASE_HREF` of `'/my/app/'` and call\n * `location.go('/foo')`, the browser's URL will become\n * `example.com/my/app/foo`. To ensure all relative URIs resolve correctly,\n * the `` and/or `APP_BASE_HREF` should end with a `/`.\n *\n * Similarly, if you add `` to the document and call\n * `location.go('/foo')`, the browser's URL will become\n * `example.com/my/app/foo`.\n *\n * Note that when using `PathLocationStrategy`, neither the query nor\n * the fragment in the `` will be preserved, as outlined\n * by the [RFC](https://tools.ietf.org/html/rfc3986#section-5.2.2).\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/location/ts/path_location_component.ts region='LocationComponent'}\n *\n * @publicApi\n */\nclass PathLocationStrategy extends LocationStrategy {\n constructor(_platformLocation, href) {\n super();\n this._platformLocation = _platformLocation;\n this._removeListenerFns = [];\n if (href == null) {\n href = this._platformLocation.getBaseHrefFromDOM();\n }\n if (href == null) {\n throw new Error(`No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document.`);\n }\n this._baseHref = href;\n }\n /** @nodoc */\n ngOnDestroy() {\n while (this._removeListenerFns.length) {\n this._removeListenerFns.pop()();\n }\n }\n onPopState(fn) {\n this._removeListenerFns.push(this._platformLocation.onPopState(fn), this._platformLocation.onHashChange(fn));\n }\n getBaseHref() {\n return this._baseHref;\n }\n prepareExternalUrl(internal) {\n return joinWithSlash(this._baseHref, internal);\n }\n path(includeHash = false) {\n const pathname = this._platformLocation.pathname + normalizeQueryParams(this._platformLocation.search);\n const hash = this._platformLocation.hash;\n return hash && includeHash ? `${pathname}${hash}` : pathname;\n }\n pushState(state, title, url, queryParams) {\n const externalUrl = this.prepareExternalUrl(url + normalizeQueryParams(queryParams));\n this._platformLocation.pushState(state, title, externalUrl);\n }\n replaceState(state, title, url, queryParams) {\n const externalUrl = this.prepareExternalUrl(url + normalizeQueryParams(queryParams));\n this._platformLocation.replaceState(state, title, externalUrl);\n }\n forward() {\n this._platformLocation.forward();\n }\n back() {\n this._platformLocation.back();\n }\n historyGo(relativePosition = 0) {\n var _a, _b;\n (_b = (_a = this._platformLocation).historyGo) === null || _b === void 0 ? void 0 : _b.call(_a, relativePosition);\n }\n}\nPathLocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: PathLocationStrategy, deps: [{ token: PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nPathLocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: PathLocationStrategy });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: PathLocationStrategy, decorators: [{\n type: Injectable\n }], ctorParameters: function () {\n return [{ type: PlatformLocation }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [APP_BASE_HREF]\n }] }];\n } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @description\n * A {@link LocationStrategy} used to configure the {@link Location} service to\n * represent its state in the\n * [hash fragment](https://en.wikipedia.org/wiki/Uniform_Resource_Locator#Syntax)\n * of the browser's URL.\n *\n * For instance, if you call `location.go('/foo')`, the browser's URL will become\n * `example.com#/foo`.\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/location/ts/hash_location_component.ts region='LocationComponent'}\n *\n * @publicApi\n */\nclass HashLocationStrategy extends LocationStrategy {\n constructor(_platformLocation, _baseHref) {\n super();\n this._platformLocation = _platformLocation;\n this._baseHref = '';\n this._removeListenerFns = [];\n if (_baseHref != null) {\n this._baseHref = _baseHref;\n }\n }\n /** @nodoc */\n ngOnDestroy() {\n while (this._removeListenerFns.length) {\n this._removeListenerFns.pop()();\n }\n }\n onPopState(fn) {\n this._removeListenerFns.push(this._platformLocation.onPopState(fn), this._platformLocation.onHashChange(fn));\n }\n getBaseHref() {\n return this._baseHref;\n }\n path(includeHash = false) {\n // the hash value is always prefixed with a `#`\n // and if it is empty then it will stay empty\n let path = this._platformLocation.hash;\n if (path == null)\n path = '#';\n return path.length > 0 ? path.substring(1) : path;\n }\n prepareExternalUrl(internal) {\n const url = joinWithSlash(this._baseHref, internal);\n return url.length > 0 ? ('#' + url) : url;\n }\n pushState(state, title, path, queryParams) {\n let url = this.prepareExternalUrl(path + normalizeQueryParams(queryParams));\n if (url.length == 0) {\n url = this._platformLocation.pathname;\n }\n this._platformLocation.pushState(state, title, url);\n }\n replaceState(state, title, path, queryParams) {\n let url = this.prepareExternalUrl(path + normalizeQueryParams(queryParams));\n if (url.length == 0) {\n url = this._platformLocation.pathname;\n }\n this._platformLocation.replaceState(state, title, url);\n }\n forward() {\n this._platformLocation.forward();\n }\n back() {\n this._platformLocation.back();\n }\n historyGo(relativePosition = 0) {\n var _a, _b;\n (_b = (_a = this._platformLocation).historyGo) === null || _b === void 0 ? void 0 : _b.call(_a, relativePosition);\n }\n}\nHashLocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: HashLocationStrategy, deps: [{ token: PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nHashLocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: HashLocationStrategy });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: HashLocationStrategy, decorators: [{\n type: Injectable\n }], ctorParameters: function () {\n return [{ type: PlatformLocation }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [APP_BASE_HREF]\n }] }];\n } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @description\n *\n * A service that applications can use to interact with a browser's URL.\n *\n * Depending on the `LocationStrategy` used, `Location` persists\n * to the URL's path or the URL's hash segment.\n *\n * @usageNotes\n *\n * It's better to use the `Router.navigate()` service to trigger route changes. Use\n * `Location` only if you need to interact with or create normalized URLs outside of\n * routing.\n *\n * `Location` is responsible for normalizing the URL against the application's base href.\n * A normalized URL is absolute from the URL host, includes the application's base href, and has no\n * trailing slash:\n * - `/my/app/user/123` is normalized\n * - `my/app/user/123` **is not** normalized\n * - `/my/app/user/123/` **is not** normalized\n *\n * ### Example\n *\n * \n *\n * @publicApi\n */\nclass Location {\n constructor(platformStrategy, platformLocation) {\n /** @internal */\n this._subject = new EventEmitter();\n /** @internal */\n this._urlChangeListeners = [];\n this._platformStrategy = platformStrategy;\n const browserBaseHref = this._platformStrategy.getBaseHref();\n this._platformLocation = platformLocation;\n this._baseHref = stripTrailingSlash(_stripIndexHtml(browserBaseHref));\n this._platformStrategy.onPopState((ev) => {\n this._subject.emit({\n 'url': this.path(true),\n 'pop': true,\n 'state': ev.state,\n 'type': ev.type,\n });\n });\n }\n /**\n * Normalizes the URL path for this location.\n *\n * @param includeHash True to include an anchor fragment in the path.\n *\n * @returns The normalized URL path.\n */\n // TODO: vsavkin. Remove the boolean flag and always include hash once the deprecated router is\n // removed.\n path(includeHash = false) {\n return this.normalize(this._platformStrategy.path(includeHash));\n }\n /**\n * Reports the current state of the location history.\n * @returns The current value of the `history.state` object.\n */\n getState() {\n return this._platformLocation.getState();\n }\n /**\n * Normalizes the given path and compares to the current normalized path.\n *\n * @param path The given URL path.\n * @param query Query parameters.\n *\n * @returns True if the given URL path is equal to the current normalized path, false\n * otherwise.\n */\n isCurrentPathEqualTo(path, query = '') {\n return this.path() == this.normalize(path + normalizeQueryParams(query));\n }\n /**\n * Normalizes a URL path by stripping any trailing slashes.\n *\n * @param url String representing a URL.\n *\n * @returns The normalized URL string.\n */\n normalize(url) {\n return Location.stripTrailingSlash(_stripBaseHref(this._baseHref, _stripIndexHtml(url)));\n }\n /**\n * Normalizes an external URL path.\n * If the given URL doesn't begin with a leading slash (`'/'`), adds one\n * before normalizing. Adds a hash if `HashLocationStrategy` is\n * in use, or the `APP_BASE_HREF` if the `PathLocationStrategy` is in use.\n *\n * @param url String representing a URL.\n *\n * @returns A normalized platform-specific URL.\n */\n prepareExternalUrl(url) {\n if (url && url[0] !== '/') {\n url = '/' + url;\n }\n return this._platformStrategy.prepareExternalUrl(url);\n }\n // TODO: rename this method to pushState\n /**\n * Changes the browser's URL to a normalized version of a given URL, and pushes a\n * new item onto the platform's history.\n *\n * @param path URL path to normalize.\n * @param query Query parameters.\n * @param state Location history state.\n *\n */\n go(path, query = '', state = null) {\n this._platformStrategy.pushState(state, '', path, query);\n this._notifyUrlChangeListeners(this.prepareExternalUrl(path + normalizeQueryParams(query)), state);\n }\n /**\n * Changes the browser's URL to a normalized version of the given URL, and replaces\n * the top item on the platform's history stack.\n *\n * @param path URL path to normalize.\n * @param query Query parameters.\n * @param state Location history state.\n */\n replaceState(path, query = '', state = null) {\n this._platformStrategy.replaceState(state, '', path, query);\n this._notifyUrlChangeListeners(this.prepareExternalUrl(path + normalizeQueryParams(query)), state);\n }\n /**\n * Navigates forward in the platform's history.\n */\n forward() {\n this._platformStrategy.forward();\n }\n /**\n * Navigates back in the platform's history.\n */\n back() {\n this._platformStrategy.back();\n }\n /**\n * Navigate to a specific page from session history, identified by its relative position to the\n * current page.\n *\n * @param relativePosition Position of the target page in the history relative to the current\n * page.\n * A negative value moves backwards, a positive value moves forwards, e.g. `location.historyGo(2)`\n * moves forward two pages and `location.historyGo(-2)` moves back two pages. When we try to go\n * beyond what's stored in the history session, we stay in the current page. Same behaviour occurs\n * when `relativePosition` equals 0.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/History_API#Moving_to_a_specific_point_in_history\n */\n historyGo(relativePosition = 0) {\n var _a, _b;\n (_b = (_a = this._platformStrategy).historyGo) === null || _b === void 0 ? void 0 : _b.call(_a, relativePosition);\n }\n /**\n * Registers a URL change listener. Use to catch updates performed by the Angular\n * framework that are not detectible through \"popstate\" or \"hashchange\" events.\n *\n * @param fn The change handler function, which take a URL and a location history state.\n */\n onUrlChange(fn) {\n this._urlChangeListeners.push(fn);\n if (!this._urlChangeSubscription) {\n this._urlChangeSubscription = this.subscribe(v => {\n this._notifyUrlChangeListeners(v.url, v.state);\n });\n }\n }\n /** @internal */\n _notifyUrlChangeListeners(url = '', state) {\n this._urlChangeListeners.forEach(fn => fn(url, state));\n }\n /**\n * Subscribes to the platform's `popState` events.\n *\n * Note: `Location.go()` does not trigger the `popState` event in the browser. Use\n * `Location.onUrlChange()` to subscribe to URL changes instead.\n *\n * @param value Event that is triggered when the state history changes.\n * @param exception The exception to throw.\n *\n * @see [onpopstate](https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate)\n *\n * @returns Subscribed events.\n */\n subscribe(onNext, onThrow, onReturn) {\n return this._subject.subscribe({ next: onNext, error: onThrow, complete: onReturn });\n }\n}\n/**\n * Normalizes URL parameters by prepending with `?` if needed.\n *\n * @param params String of URL parameters.\n *\n * @returns The normalized URL parameters string.\n */\nLocation.normalizeQueryParams = normalizeQueryParams;\n/**\n * Joins two parts of a URL with a slash if needed.\n *\n * @param start URL string\n * @param end URL string\n *\n *\n * @returns The joined URL string.\n */\nLocation.joinWithSlash = joinWithSlash;\n/**\n * Removes a trailing slash from a URL string if needed.\n * Looks for the first occurrence of either `#`, `?`, or the end of the\n * line as `/` characters and removes the trailing slash if one exists.\n *\n * @param url URL string.\n *\n * @returns The URL string, modified if needed.\n */\nLocation.stripTrailingSlash = stripTrailingSlash;\nLocation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: Location, deps: [{ token: LocationStrategy }, { token: PlatformLocation }], target: i0.ɵɵFactoryTarget.Injectable });\nLocation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: Location, providedIn: 'root', useFactory: createLocation });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: Location, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n // See #23917\n useFactory: createLocation,\n }]\n }], ctorParameters: function () { return [{ type: LocationStrategy }, { type: PlatformLocation }]; } });\nfunction createLocation() {\n return new Location(ɵɵinject(LocationStrategy), ɵɵinject(PlatformLocation));\n}\nfunction _stripBaseHref(baseHref, url) {\n return baseHref && url.startsWith(baseHref) ? url.substring(baseHref.length) : url;\n}\nfunction _stripIndexHtml(url) {\n return url.replace(/\\/index.html$/, '');\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** @internal */\nconst CURRENCIES_EN = { \"ADP\": [undefined, undefined, 0], \"AFN\": [undefined, \"؋\", 0], \"ALL\": [undefined, undefined, 0], \"AMD\": [undefined, \"֏\", 2], \"AOA\": [undefined, \"Kz\"], \"ARS\": [undefined, \"$\"], \"AUD\": [\"A$\", \"$\"], \"AZN\": [undefined, \"₼\"], \"BAM\": [undefined, \"KM\"], \"BBD\": [undefined, \"$\"], \"BDT\": [undefined, \"৳\"], \"BHD\": [undefined, undefined, 3], \"BIF\": [undefined, undefined, 0], \"BMD\": [undefined, \"$\"], \"BND\": [undefined, \"$\"], \"BOB\": [undefined, \"Bs\"], \"BRL\": [\"R$\"], \"BSD\": [undefined, \"$\"], \"BWP\": [undefined, \"P\"], \"BYN\": [undefined, \"р.\", 2], \"BYR\": [undefined, undefined, 0], \"BZD\": [undefined, \"$\"], \"CAD\": [\"CA$\", \"$\", 2], \"CHF\": [undefined, undefined, 2], \"CLF\": [undefined, undefined, 4], \"CLP\": [undefined, \"$\", 0], \"CNY\": [\"CN¥\", \"¥\"], \"COP\": [undefined, \"$\", 2], \"CRC\": [undefined, \"₡\", 2], \"CUC\": [undefined, \"$\"], \"CUP\": [undefined, \"$\"], \"CZK\": [undefined, \"Kč\", 2], \"DJF\": [undefined, undefined, 0], \"DKK\": [undefined, \"kr\", 2], \"DOP\": [undefined, \"$\"], \"EGP\": [undefined, \"E£\"], \"ESP\": [undefined, \"₧\", 0], \"EUR\": [\"€\"], \"FJD\": [undefined, \"$\"], \"FKP\": [undefined, \"£\"], \"GBP\": [\"£\"], \"GEL\": [undefined, \"₾\"], \"GHS\": [undefined, \"GH₵\"], \"GIP\": [undefined, \"£\"], \"GNF\": [undefined, \"FG\", 0], \"GTQ\": [undefined, \"Q\"], \"GYD\": [undefined, \"$\", 2], \"HKD\": [\"HK$\", \"$\"], \"HNL\": [undefined, \"L\"], \"HRK\": [undefined, \"kn\"], \"HUF\": [undefined, \"Ft\", 2], \"IDR\": [undefined, \"Rp\", 2], \"ILS\": [\"₪\"], \"INR\": [\"₹\"], \"IQD\": [undefined, undefined, 0], \"IRR\": [undefined, undefined, 0], \"ISK\": [undefined, \"kr\", 0], \"ITL\": [undefined, undefined, 0], \"JMD\": [undefined, \"$\"], \"JOD\": [undefined, undefined, 3], \"JPY\": [\"¥\", undefined, 0], \"KHR\": [undefined, \"៛\"], \"KMF\": [undefined, \"CF\", 0], \"KPW\": [undefined, \"₩\", 0], \"KRW\": [\"₩\", undefined, 0], \"KWD\": [undefined, undefined, 3], \"KYD\": [undefined, \"$\"], \"KZT\": [undefined, \"₸\"], \"LAK\": [undefined, \"₭\", 0], \"LBP\": [undefined, \"L£\", 0], \"LKR\": [undefined, \"Rs\"], \"LRD\": [undefined, \"$\"], \"LTL\": [undefined, \"Lt\"], \"LUF\": [undefined, undefined, 0], \"LVL\": [undefined, \"Ls\"], \"LYD\": [undefined, undefined, 3], \"MGA\": [undefined, \"Ar\", 0], \"MGF\": [undefined, undefined, 0], \"MMK\": [undefined, \"K\", 0], \"MNT\": [undefined, \"₮\", 2], \"MRO\": [undefined, undefined, 0], \"MUR\": [undefined, \"Rs\", 2], \"MXN\": [\"MX$\", \"$\"], \"MYR\": [undefined, \"RM\"], \"NAD\": [undefined, \"$\"], \"NGN\": [undefined, \"₦\"], \"NIO\": [undefined, \"C$\"], \"NOK\": [undefined, \"kr\", 2], \"NPR\": [undefined, \"Rs\"], \"NZD\": [\"NZ$\", \"$\"], \"OMR\": [undefined, undefined, 3], \"PHP\": [\"₱\"], \"PKR\": [undefined, \"Rs\", 2], \"PLN\": [undefined, \"zł\"], \"PYG\": [undefined, \"₲\", 0], \"RON\": [undefined, \"lei\"], \"RSD\": [undefined, undefined, 0], \"RUB\": [undefined, \"₽\"], \"RUR\": [undefined, \"р.\"], \"RWF\": [undefined, \"RF\", 0], \"SBD\": [undefined, \"$\"], \"SEK\": [undefined, \"kr\", 2], \"SGD\": [undefined, \"$\"], \"SHP\": [undefined, \"£\"], \"SLL\": [undefined, undefined, 0], \"SOS\": [undefined, undefined, 0], \"SRD\": [undefined, \"$\"], \"SSP\": [undefined, \"£\"], \"STD\": [undefined, undefined, 0], \"STN\": [undefined, \"Db\"], \"SYP\": [undefined, \"£\", 0], \"THB\": [undefined, \"฿\"], \"TMM\": [undefined, undefined, 0], \"TND\": [undefined, undefined, 3], \"TOP\": [undefined, \"T$\"], \"TRL\": [undefined, undefined, 0], \"TRY\": [undefined, \"₺\"], \"TTD\": [undefined, \"$\"], \"TWD\": [\"NT$\", \"$\", 2], \"TZS\": [undefined, undefined, 2], \"UAH\": [undefined, \"₴\"], \"UGX\": [undefined, undefined, 0], \"USD\": [\"$\"], \"UYI\": [undefined, undefined, 0], \"UYU\": [undefined, \"$\"], \"UYW\": [undefined, undefined, 4], \"UZS\": [undefined, undefined, 2], \"VEF\": [undefined, \"Bs\", 2], \"VND\": [\"₫\", undefined, 0], \"VUV\": [undefined, undefined, 0], \"XAF\": [\"FCFA\", undefined, 0], \"XCD\": [\"EC$\", \"$\"], \"XOF\": [\"F CFA\", undefined, 0], \"XPF\": [\"CFPF\", undefined, 0], \"XXX\": [\"¤\"], \"YER\": [undefined, undefined, 0], \"ZAR\": [undefined, \"R\"], \"ZMK\": [undefined, undefined, 0], \"ZMW\": [undefined, \"ZK\"], \"ZWD\": [undefined, undefined, 0] };\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Format styles that can be used to represent numbers.\n * @see `getLocaleNumberFormat()`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nvar NumberFormatStyle;\n(function (NumberFormatStyle) {\n NumberFormatStyle[NumberFormatStyle[\"Decimal\"] = 0] = \"Decimal\";\n NumberFormatStyle[NumberFormatStyle[\"Percent\"] = 1] = \"Percent\";\n NumberFormatStyle[NumberFormatStyle[\"Currency\"] = 2] = \"Currency\";\n NumberFormatStyle[NumberFormatStyle[\"Scientific\"] = 3] = \"Scientific\";\n})(NumberFormatStyle || (NumberFormatStyle = {}));\n/**\n * Plurality cases used for translating plurals to different languages.\n *\n * @see `NgPlural`\n * @see `NgPluralCase`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nvar Plural;\n(function (Plural) {\n Plural[Plural[\"Zero\"] = 0] = \"Zero\";\n Plural[Plural[\"One\"] = 1] = \"One\";\n Plural[Plural[\"Two\"] = 2] = \"Two\";\n Plural[Plural[\"Few\"] = 3] = \"Few\";\n Plural[Plural[\"Many\"] = 4] = \"Many\";\n Plural[Plural[\"Other\"] = 5] = \"Other\";\n})(Plural || (Plural = {}));\n/**\n * Context-dependant translation forms for strings.\n * Typically the standalone version is for the nominative form of the word,\n * and the format version is used for the genitive case.\n * @see [CLDR website](http://cldr.unicode.org/translation/date-time-1/date-time#TOC-Standalone-vs.-Format-Styles)\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nvar FormStyle;\n(function (FormStyle) {\n FormStyle[FormStyle[\"Format\"] = 0] = \"Format\";\n FormStyle[FormStyle[\"Standalone\"] = 1] = \"Standalone\";\n})(FormStyle || (FormStyle = {}));\n/**\n * String widths available for translations.\n * The specific character widths are locale-specific.\n * Examples are given for the word \"Sunday\" in English.\n *\n * @publicApi\n */\nvar TranslationWidth;\n(function (TranslationWidth) {\n /** 1 character for `en-US`. For example: 'S' */\n TranslationWidth[TranslationWidth[\"Narrow\"] = 0] = \"Narrow\";\n /** 3 characters for `en-US`. For example: 'Sun' */\n TranslationWidth[TranslationWidth[\"Abbreviated\"] = 1] = \"Abbreviated\";\n /** Full length for `en-US`. For example: \"Sunday\" */\n TranslationWidth[TranslationWidth[\"Wide\"] = 2] = \"Wide\";\n /** 2 characters for `en-US`, For example: \"Su\" */\n TranslationWidth[TranslationWidth[\"Short\"] = 3] = \"Short\";\n})(TranslationWidth || (TranslationWidth = {}));\n/**\n * String widths available for date-time formats.\n * The specific character widths are locale-specific.\n * Examples are given for `en-US`.\n *\n * @see `getLocaleDateFormat()`\n * @see `getLocaleTimeFormat()`\n * @see `getLocaleDateTimeFormat()`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n * @publicApi\n */\nvar FormatWidth;\n(function (FormatWidth) {\n /**\n * For `en-US`, 'M/d/yy, h:mm a'`\n * (Example: `6/15/15, 9:03 AM`)\n */\n FormatWidth[FormatWidth[\"Short\"] = 0] = \"Short\";\n /**\n * For `en-US`, `'MMM d, y, h:mm:ss a'`\n * (Example: `Jun 15, 2015, 9:03:01 AM`)\n */\n FormatWidth[FormatWidth[\"Medium\"] = 1] = \"Medium\";\n /**\n * For `en-US`, `'MMMM d, y, h:mm:ss a z'`\n * (Example: `June 15, 2015 at 9:03:01 AM GMT+1`)\n */\n FormatWidth[FormatWidth[\"Long\"] = 2] = \"Long\";\n /**\n * For `en-US`, `'EEEE, MMMM d, y, h:mm:ss a zzzz'`\n * (Example: `Monday, June 15, 2015 at 9:03:01 AM GMT+01:00`)\n */\n FormatWidth[FormatWidth[\"Full\"] = 3] = \"Full\";\n})(FormatWidth || (FormatWidth = {}));\n/**\n * Symbols that can be used to replace placeholders in number patterns.\n * Examples are based on `en-US` values.\n *\n * @see `getLocaleNumberSymbol()`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nvar NumberSymbol;\n(function (NumberSymbol) {\n /**\n * Decimal separator.\n * For `en-US`, the dot character.\n * Example: 2,345`.`67\n */\n NumberSymbol[NumberSymbol[\"Decimal\"] = 0] = \"Decimal\";\n /**\n * Grouping separator, typically for thousands.\n * For `en-US`, the comma character.\n * Example: 2`,`345.67\n */\n NumberSymbol[NumberSymbol[\"Group\"] = 1] = \"Group\";\n /**\n * List-item separator.\n * Example: \"one, two, and three\"\n */\n NumberSymbol[NumberSymbol[\"List\"] = 2] = \"List\";\n /**\n * Sign for percentage (out of 100).\n * Example: 23.4%\n */\n NumberSymbol[NumberSymbol[\"PercentSign\"] = 3] = \"PercentSign\";\n /**\n * Sign for positive numbers.\n * Example: +23\n */\n NumberSymbol[NumberSymbol[\"PlusSign\"] = 4] = \"PlusSign\";\n /**\n * Sign for negative numbers.\n * Example: -23\n */\n NumberSymbol[NumberSymbol[\"MinusSign\"] = 5] = \"MinusSign\";\n /**\n * Computer notation for exponential value (n times a power of 10).\n * Example: 1.2E3\n */\n NumberSymbol[NumberSymbol[\"Exponential\"] = 6] = \"Exponential\";\n /**\n * Human-readable format of exponential.\n * Example: 1.2x103\n */\n NumberSymbol[NumberSymbol[\"SuperscriptingExponent\"] = 7] = \"SuperscriptingExponent\";\n /**\n * Sign for permille (out of 1000).\n * Example: 23.4‰\n */\n NumberSymbol[NumberSymbol[\"PerMille\"] = 8] = \"PerMille\";\n /**\n * Infinity, can be used with plus and minus.\n * Example: ∞, +∞, -∞\n */\n NumberSymbol[NumberSymbol[\"Infinity\"] = 9] = \"Infinity\";\n /**\n * Not a number.\n * Example: NaN\n */\n NumberSymbol[NumberSymbol[\"NaN\"] = 10] = \"NaN\";\n /**\n * Symbol used between time units.\n * Example: 10:52\n */\n NumberSymbol[NumberSymbol[\"TimeSeparator\"] = 11] = \"TimeSeparator\";\n /**\n * Decimal separator for currency values (fallback to `Decimal`).\n * Example: $2,345.67\n */\n NumberSymbol[NumberSymbol[\"CurrencyDecimal\"] = 12] = \"CurrencyDecimal\";\n /**\n * Group separator for currency values (fallback to `Group`).\n * Example: $2,345.67\n */\n NumberSymbol[NumberSymbol[\"CurrencyGroup\"] = 13] = \"CurrencyGroup\";\n})(NumberSymbol || (NumberSymbol = {}));\n/**\n * The value for each day of the week, based on the `en-US` locale\n *\n * @publicApi\n */\nvar WeekDay;\n(function (WeekDay) {\n WeekDay[WeekDay[\"Sunday\"] = 0] = \"Sunday\";\n WeekDay[WeekDay[\"Monday\"] = 1] = \"Monday\";\n WeekDay[WeekDay[\"Tuesday\"] = 2] = \"Tuesday\";\n WeekDay[WeekDay[\"Wednesday\"] = 3] = \"Wednesday\";\n WeekDay[WeekDay[\"Thursday\"] = 4] = \"Thursday\";\n WeekDay[WeekDay[\"Friday\"] = 5] = \"Friday\";\n WeekDay[WeekDay[\"Saturday\"] = 6] = \"Saturday\";\n})(WeekDay || (WeekDay = {}));\n/**\n * Retrieves the locale ID from the currently loaded locale.\n * The loaded locale could be, for example, a global one rather than a regional one.\n * @param locale A locale code, such as `fr-FR`.\n * @returns The locale code. For example, `fr`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleId(locale) {\n return ɵfindLocaleData(locale)[ɵLocaleDataIndex.LocaleId];\n}\n/**\n * Retrieves day period strings for the given locale.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns An array of localized period strings. For example, `[AM, PM]` for `en-US`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDayPeriods(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n const amPmData = [\n data[ɵLocaleDataIndex.DayPeriodsFormat], data[ɵLocaleDataIndex.DayPeriodsStandalone]\n ];\n const amPm = getLastDefinedValue(amPmData, formStyle);\n return getLastDefinedValue(amPm, width);\n}\n/**\n * Retrieves days of the week for the given locale, using the Gregorian calendar.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns An array of localized name strings.\n * For example,`[Sunday, Monday, ... Saturday]` for `en-US`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDayNames(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n const daysData = [data[ɵLocaleDataIndex.DaysFormat], data[ɵLocaleDataIndex.DaysStandalone]];\n const days = getLastDefinedValue(daysData, formStyle);\n return getLastDefinedValue(days, width);\n}\n/**\n * Retrieves months of the year for the given locale, using the Gregorian calendar.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns An array of localized name strings.\n * For example, `[January, February, ...]` for `en-US`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleMonthNames(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n const monthsData = [data[ɵLocaleDataIndex.MonthsFormat], data[ɵLocaleDataIndex.MonthsStandalone]];\n const months = getLastDefinedValue(monthsData, formStyle);\n return getLastDefinedValue(months, width);\n}\n/**\n * Retrieves Gregorian-calendar eras for the given locale.\n * @param locale A locale code for the locale format rules to use.\n * @param width The required character width.\n\n * @returns An array of localized era strings.\n * For example, `[AD, BC]` for `en-US`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleEraNames(locale, width) {\n const data = ɵfindLocaleData(locale);\n const erasData = data[ɵLocaleDataIndex.Eras];\n return getLastDefinedValue(erasData, width);\n}\n/**\n * Retrieves the first day of the week for the given locale.\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns A day index number, using the 0-based week-day index for `en-US`\n * (Sunday = 0, Monday = 1, ...).\n * For example, for `fr-FR`, returns 1 to indicate that the first day is Monday.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleFirstDayOfWeek(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.FirstDayOfWeek];\n}\n/**\n * Range of week days that are considered the week-end for the given locale.\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns The range of day values, `[startDay, endDay]`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleWeekEndRange(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.WeekendRange];\n}\n/**\n * Retrieves a localized date-value formating string.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param width The format type.\n * @returns The localized formating string.\n * @see `FormatWidth`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDateFormat(locale, width) {\n const data = ɵfindLocaleData(locale);\n return getLastDefinedValue(data[ɵLocaleDataIndex.DateFormat], width);\n}\n/**\n * Retrieves a localized time-value formatting string.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param width The format type.\n * @returns The localized formatting string.\n * @see `FormatWidth`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n\n * @publicApi\n */\nfunction getLocaleTimeFormat(locale, width) {\n const data = ɵfindLocaleData(locale);\n return getLastDefinedValue(data[ɵLocaleDataIndex.TimeFormat], width);\n}\n/**\n * Retrieves a localized date-time formatting string.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param width The format type.\n * @returns The localized formatting string.\n * @see `FormatWidth`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDateTimeFormat(locale, width) {\n const data = ɵfindLocaleData(locale);\n const dateTimeFormatData = data[ɵLocaleDataIndex.DateTimeFormat];\n return getLastDefinedValue(dateTimeFormatData, width);\n}\n/**\n * Retrieves a localized number symbol that can be used to replace placeholders in number formats.\n * @param locale The locale code.\n * @param symbol The symbol to localize.\n * @returns The character for the localized symbol.\n * @see `NumberSymbol`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleNumberSymbol(locale, symbol) {\n const data = ɵfindLocaleData(locale);\n const res = data[ɵLocaleDataIndex.NumberSymbols][symbol];\n if (typeof res === 'undefined') {\n if (symbol === NumberSymbol.CurrencyDecimal) {\n return data[ɵLocaleDataIndex.NumberSymbols][NumberSymbol.Decimal];\n }\n else if (symbol === NumberSymbol.CurrencyGroup) {\n return data[ɵLocaleDataIndex.NumberSymbols][NumberSymbol.Group];\n }\n }\n return res;\n}\n/**\n * Retrieves a number format for a given locale.\n *\n * Numbers are formatted using patterns, like `#,###.00`. For example, the pattern `#,###.00`\n * when used to format the number 12345.678 could result in \"12'345,678\". That would happen if the\n * grouping separator for your language is an apostrophe, and the decimal separator is a comma.\n *\n * Important: The characters `.` `,` `0` `#` (and others below) are special placeholders\n * that stand for the decimal separator, and so on, and are NOT real characters.\n * You must NOT \"translate\" the placeholders. For example, don't change `.` to `,` even though in\n * your language the decimal point is written with a comma. The symbols should be replaced by the\n * local equivalents, using the appropriate `NumberSymbol` for your language.\n *\n * Here are the special characters used in number patterns:\n *\n * | Symbol | Meaning |\n * |--------|---------|\n * | . | Replaced automatically by the character used for the decimal point. |\n * | , | Replaced by the \"grouping\" (thousands) separator. |\n * | 0 | Replaced by a digit (or zero if there aren't enough digits). |\n * | # | Replaced by a digit (or nothing if there aren't enough). |\n * | ¤ | Replaced by a currency symbol, such as $ or USD. |\n * | % | Marks a percent format. The % symbol may change position, but must be retained. |\n * | E | Marks a scientific format. The E symbol may change position, but must be retained. |\n * | ' | Special characters used as literal characters are quoted with ASCII single quotes. |\n *\n * @param locale A locale code for the locale format rules to use.\n * @param type The type of numeric value to be formatted (such as `Decimal` or `Currency`.)\n * @returns The localized format string.\n * @see `NumberFormatStyle`\n * @see [CLDR website](http://cldr.unicode.org/translation/number-patterns)\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleNumberFormat(locale, type) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.NumberFormats][type];\n}\n/**\n * Retrieves the symbol used to represent the currency for the main country\n * corresponding to a given locale. For example, '$' for `en-US`.\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns The localized symbol character,\n * or `null` if the main country cannot be determined.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleCurrencySymbol(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.CurrencySymbol] || null;\n}\n/**\n * Retrieves the name of the currency for the main country corresponding\n * to a given locale. For example, 'US Dollar' for `en-US`.\n * @param locale A locale code for the locale format rules to use.\n * @returns The currency name,\n * or `null` if the main country cannot be determined.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleCurrencyName(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.CurrencyName] || null;\n}\n/**\n * Retrieves the default currency code for the given locale.\n *\n * The default is defined as the first currency which is still in use.\n *\n * @param locale The code of the locale whose currency code we want.\n * @returns The code of the default currency for the given locale.\n *\n * @publicApi\n */\nfunction getLocaleCurrencyCode(locale) {\n return ɵgetLocaleCurrencyCode(locale);\n}\n/**\n * Retrieves the currency values for a given locale.\n * @param locale A locale code for the locale format rules to use.\n * @returns The currency values.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n */\nfunction getLocaleCurrencies(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.Currencies];\n}\n/**\n * @alias core/ɵgetLocalePluralCase\n * @publicApi\n */\nconst getLocalePluralCase = ɵgetLocalePluralCase;\nfunction checkFullData(data) {\n if (!data[ɵLocaleDataIndex.ExtraData]) {\n throw new Error(`Missing extra locale data for the locale \"${data[ɵLocaleDataIndex\n .LocaleId]}\". Use \"registerLocaleData\" to load new data. See the \"I18n guide\" on angular.io to know more.`);\n }\n}\n/**\n * Retrieves locale-specific rules used to determine which day period to use\n * when more than one period is defined for a locale.\n *\n * There is a rule for each defined day period. The\n * first rule is applied to the first day period and so on.\n * Fall back to AM/PM when no rules are available.\n *\n * A rule can specify a period as time range, or as a single time value.\n *\n * This functionality is only available when you have loaded the full locale data.\n * See the [\"I18n guide\"](guide/i18n-common-format-data-locale).\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns The rules for the locale, a single time value or array of *from-time, to-time*,\n * or null if no periods are available.\n *\n * @see `getLocaleExtraDayPeriods()`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleExtraDayPeriodRules(locale) {\n const data = ɵfindLocaleData(locale);\n checkFullData(data);\n const rules = data[ɵLocaleDataIndex.ExtraData][2 /* ExtraDayPeriodsRules */] || [];\n return rules.map((rule) => {\n if (typeof rule === 'string') {\n return extractTime(rule);\n }\n return [extractTime(rule[0]), extractTime(rule[1])];\n });\n}\n/**\n * Retrieves locale-specific day periods, which indicate roughly how a day is broken up\n * in different languages.\n * For example, for `en-US`, periods are morning, noon, afternoon, evening, and midnight.\n *\n * This functionality is only available when you have loaded the full locale data.\n * See the [\"I18n guide\"](guide/i18n-common-format-data-locale).\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns The translated day-period strings.\n * @see `getLocaleExtraDayPeriodRules()`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleExtraDayPeriods(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n checkFullData(data);\n const dayPeriodsData = [\n data[ɵLocaleDataIndex.ExtraData][0 /* ExtraDayPeriodFormats */],\n data[ɵLocaleDataIndex.ExtraData][1 /* ExtraDayPeriodStandalone */]\n ];\n const dayPeriods = getLastDefinedValue(dayPeriodsData, formStyle) || [];\n return getLastDefinedValue(dayPeriods, width) || [];\n}\n/**\n * Retrieves the writing direction of a specified locale\n * @param locale A locale code for the locale format rules to use.\n * @publicApi\n * @returns 'rtl' or 'ltr'\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n */\nfunction getLocaleDirection(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.Directionality];\n}\n/**\n * Retrieves the first value that is defined in an array, going backwards from an index position.\n *\n * To avoid repeating the same data (as when the \"format\" and \"standalone\" forms are the same)\n * add the first value to the locale data arrays, and add other values only if they are different.\n *\n * @param data The data array to retrieve from.\n * @param index A 0-based index into the array to start from.\n * @returns The value immediately before the given index position.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLastDefinedValue(data, index) {\n for (let i = index; i > -1; i--) {\n if (typeof data[i] !== 'undefined') {\n return data[i];\n }\n }\n throw new Error('Locale data API: locale data undefined');\n}\n/**\n * Extracts the hours and minutes from a string like \"15:45\"\n */\nfunction extractTime(time) {\n const [h, m] = time.split(':');\n return { hours: +h, minutes: +m };\n}\n/**\n * Retrieves the currency symbol for a given currency code.\n *\n * For example, for the default `en-US` locale, the code `USD` can\n * be represented by the narrow symbol `$` or the wide symbol `US$`.\n *\n * @param code The currency code.\n * @param format The format, `wide` or `narrow`.\n * @param locale A locale code for the locale format rules to use.\n *\n * @returns The symbol, or the currency code if no symbol is available.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getCurrencySymbol(code, format, locale = 'en') {\n const currency = getLocaleCurrencies(locale)[code] || CURRENCIES_EN[code] || [];\n const symbolNarrow = currency[1 /* SymbolNarrow */];\n if (format === 'narrow' && typeof symbolNarrow === 'string') {\n return symbolNarrow;\n }\n return currency[0 /* Symbol */] || code;\n}\n// Most currencies have cents, that's why the default is 2\nconst DEFAULT_NB_OF_CURRENCY_DIGITS = 2;\n/**\n * Reports the number of decimal digits for a given currency.\n * The value depends upon the presence of cents in that particular currency.\n *\n * @param code The currency code.\n * @returns The number of decimal digits, typically 0 or 2.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getNumberOfCurrencyDigits(code) {\n let digits;\n const currency = CURRENCIES_EN[code];\n if (currency) {\n digits = currency[2 /* NbOfDigits */];\n }\n return typeof digits === 'number' ? digits : DEFAULT_NB_OF_CURRENCY_DIGITS;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst ISO8601_DATE_REGEX = /^(\\d{4})-?(\\d\\d)-?(\\d\\d)(?:T(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:\\.(\\d+))?)?)?(Z|([+-])(\\d\\d):?(\\d\\d))?)?$/;\n// 1 2 3 4 5 6 7 8 9 10 11\nconst NAMED_FORMATS = {};\nconst DATE_FORMATS_SPLIT = /((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\\s\\S]*)/;\nvar ZoneWidth;\n(function (ZoneWidth) {\n ZoneWidth[ZoneWidth[\"Short\"] = 0] = \"Short\";\n ZoneWidth[ZoneWidth[\"ShortGMT\"] = 1] = \"ShortGMT\";\n ZoneWidth[ZoneWidth[\"Long\"] = 2] = \"Long\";\n ZoneWidth[ZoneWidth[\"Extended\"] = 3] = \"Extended\";\n})(ZoneWidth || (ZoneWidth = {}));\nvar DateType;\n(function (DateType) {\n DateType[DateType[\"FullYear\"] = 0] = \"FullYear\";\n DateType[DateType[\"Month\"] = 1] = \"Month\";\n DateType[DateType[\"Date\"] = 2] = \"Date\";\n DateType[DateType[\"Hours\"] = 3] = \"Hours\";\n DateType[DateType[\"Minutes\"] = 4] = \"Minutes\";\n DateType[DateType[\"Seconds\"] = 5] = \"Seconds\";\n DateType[DateType[\"FractionalSeconds\"] = 6] = \"FractionalSeconds\";\n DateType[DateType[\"Day\"] = 7] = \"Day\";\n})(DateType || (DateType = {}));\nvar TranslationType;\n(function (TranslationType) {\n TranslationType[TranslationType[\"DayPeriods\"] = 0] = \"DayPeriods\";\n TranslationType[TranslationType[\"Days\"] = 1] = \"Days\";\n TranslationType[TranslationType[\"Months\"] = 2] = \"Months\";\n TranslationType[TranslationType[\"Eras\"] = 3] = \"Eras\";\n})(TranslationType || (TranslationType = {}));\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a date according to locale rules.\n *\n * @param value The date to format, as a Date, or a number (milliseconds since UTC epoch)\n * or an [ISO date-time string](https://www.w3.org/TR/NOTE-datetime).\n * @param format The date-time components to include. See `DatePipe` for details.\n * @param locale A locale code for the locale format rules to use.\n * @param timezone The time zone. A time zone offset from GMT (such as `'+0430'`),\n * or a standard UTC/GMT or continental US time zone abbreviation.\n * If not specified, uses host system settings.\n *\n * @returns The formatted date string.\n *\n * @see `DatePipe`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction formatDate(value, format, locale, timezone) {\n let date = toDate(value);\n const namedFormat = getNamedFormat(locale, format);\n format = namedFormat || format;\n let parts = [];\n let match;\n while (format) {\n match = DATE_FORMATS_SPLIT.exec(format);\n if (match) {\n parts = parts.concat(match.slice(1));\n const part = parts.pop();\n if (!part) {\n break;\n }\n format = part;\n }\n else {\n parts.push(format);\n break;\n }\n }\n let dateTimezoneOffset = date.getTimezoneOffset();\n if (timezone) {\n dateTimezoneOffset = timezoneToOffset(timezone, dateTimezoneOffset);\n date = convertTimezoneToLocal(date, timezone, true);\n }\n let text = '';\n parts.forEach(value => {\n const dateFormatter = getDateFormatter(value);\n text += dateFormatter ?\n dateFormatter(date, locale, dateTimezoneOffset) :\n value === '\\'\\'' ? '\\'' : value.replace(/(^'|'$)/g, '').replace(/''/g, '\\'');\n });\n return text;\n}\n/**\n * Create a new Date object with the given date value, and the time set to midnight.\n *\n * We cannot use `new Date(year, month, date)` because it maps years between 0 and 99 to 1900-1999.\n * See: https://github.com/angular/angular/issues/40377\n *\n * Note that this function returns a Date object whose time is midnight in the current locale's\n * timezone. In the future we might want to change this to be midnight in UTC, but this would be a\n * considerable breaking change.\n */\nfunction createDate(year, month, date) {\n // The `newDate` is set to midnight (UTC) on January 1st 1970.\n // - In PST this will be December 31st 1969 at 4pm.\n // - In GMT this will be January 1st 1970 at 1am.\n // Note that they even have different years, dates and months!\n const newDate = new Date(0);\n // `setFullYear()` allows years like 0001 to be set correctly. This function does not\n // change the internal time of the date.\n // Consider calling `setFullYear(2019, 8, 20)` (September 20, 2019).\n // - In PST this will now be September 20, 2019 at 4pm\n // - In GMT this will now be September 20, 2019 at 1am\n newDate.setFullYear(year, month, date);\n // We want the final date to be at local midnight, so we reset the time.\n // - In PST this will now be September 20, 2019 at 12am\n // - In GMT this will now be September 20, 2019 at 12am\n newDate.setHours(0, 0, 0);\n return newDate;\n}\nfunction getNamedFormat(locale, format) {\n const localeId = getLocaleId(locale);\n NAMED_FORMATS[localeId] = NAMED_FORMATS[localeId] || {};\n if (NAMED_FORMATS[localeId][format]) {\n return NAMED_FORMATS[localeId][format];\n }\n let formatValue = '';\n switch (format) {\n case 'shortDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Short);\n break;\n case 'mediumDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Medium);\n break;\n case 'longDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Long);\n break;\n case 'fullDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Full);\n break;\n case 'shortTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Short);\n break;\n case 'mediumTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Medium);\n break;\n case 'longTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Long);\n break;\n case 'fullTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Full);\n break;\n case 'short':\n const shortTime = getNamedFormat(locale, 'shortTime');\n const shortDate = getNamedFormat(locale, 'shortDate');\n formatValue = formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Short), [shortTime, shortDate]);\n break;\n case 'medium':\n const mediumTime = getNamedFormat(locale, 'mediumTime');\n const mediumDate = getNamedFormat(locale, 'mediumDate');\n formatValue = formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Medium), [mediumTime, mediumDate]);\n break;\n case 'long':\n const longTime = getNamedFormat(locale, 'longTime');\n const longDate = getNamedFormat(locale, 'longDate');\n formatValue =\n formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Long), [longTime, longDate]);\n break;\n case 'full':\n const fullTime = getNamedFormat(locale, 'fullTime');\n const fullDate = getNamedFormat(locale, 'fullDate');\n formatValue =\n formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Full), [fullTime, fullDate]);\n break;\n }\n if (formatValue) {\n NAMED_FORMATS[localeId][format] = formatValue;\n }\n return formatValue;\n}\nfunction formatDateTime(str, opt_values) {\n if (opt_values) {\n str = str.replace(/\\{([^}]+)}/g, function (match, key) {\n return (opt_values != null && key in opt_values) ? opt_values[key] : match;\n });\n }\n return str;\n}\nfunction padNumber(num, digits, minusSign = '-', trim, negWrap) {\n let neg = '';\n if (num < 0 || (negWrap && num <= 0)) {\n if (negWrap) {\n num = -num + 1;\n }\n else {\n num = -num;\n neg = minusSign;\n }\n }\n let strNum = String(num);\n while (strNum.length < digits) {\n strNum = '0' + strNum;\n }\n if (trim) {\n strNum = strNum.substr(strNum.length - digits);\n }\n return neg + strNum;\n}\nfunction formatFractionalSeconds(milliseconds, digits) {\n const strMs = padNumber(milliseconds, 3);\n return strMs.substr(0, digits);\n}\n/**\n * Returns a date formatter that transforms a date into its locale digit representation\n */\nfunction dateGetter(name, size, offset = 0, trim = false, negWrap = false) {\n return function (date, locale) {\n let part = getDatePart(name, date);\n if (offset > 0 || part > -offset) {\n part += offset;\n }\n if (name === DateType.Hours) {\n if (part === 0 && offset === -12) {\n part = 12;\n }\n }\n else if (name === DateType.FractionalSeconds) {\n return formatFractionalSeconds(part, size);\n }\n const localeMinus = getLocaleNumberSymbol(locale, NumberSymbol.MinusSign);\n return padNumber(part, size, localeMinus, trim, negWrap);\n };\n}\nfunction getDatePart(part, date) {\n switch (part) {\n case DateType.FullYear:\n return date.getFullYear();\n case DateType.Month:\n return date.getMonth();\n case DateType.Date:\n return date.getDate();\n case DateType.Hours:\n return date.getHours();\n case DateType.Minutes:\n return date.getMinutes();\n case DateType.Seconds:\n return date.getSeconds();\n case DateType.FractionalSeconds:\n return date.getMilliseconds();\n case DateType.Day:\n return date.getDay();\n default:\n throw new Error(`Unknown DateType value \"${part}\".`);\n }\n}\n/**\n * Returns a date formatter that transforms a date into its locale string representation\n */\nfunction dateStrGetter(name, width, form = FormStyle.Format, extended = false) {\n return function (date, locale) {\n return getDateTranslation(date, locale, name, width, form, extended);\n };\n}\n/**\n * Returns the locale translation of a date for a given form, type and width\n */\nfunction getDateTranslation(date, locale, name, width, form, extended) {\n switch (name) {\n case TranslationType.Months:\n return getLocaleMonthNames(locale, form, width)[date.getMonth()];\n case TranslationType.Days:\n return getLocaleDayNames(locale, form, width)[date.getDay()];\n case TranslationType.DayPeriods:\n const currentHours = date.getHours();\n const currentMinutes = date.getMinutes();\n if (extended) {\n const rules = getLocaleExtraDayPeriodRules(locale);\n const dayPeriods = getLocaleExtraDayPeriods(locale, form, width);\n const index = rules.findIndex(rule => {\n if (Array.isArray(rule)) {\n // morning, afternoon, evening, night\n const [from, to] = rule;\n const afterFrom = currentHours >= from.hours && currentMinutes >= from.minutes;\n const beforeTo = (currentHours < to.hours ||\n (currentHours === to.hours && currentMinutes < to.minutes));\n // We must account for normal rules that span a period during the day (e.g. 6am-9am)\n // where `from` is less (earlier) than `to`. But also rules that span midnight (e.g.\n // 10pm - 5am) where `from` is greater (later!) than `to`.\n //\n // In the first case the current time must be BOTH after `from` AND before `to`\n // (e.g. 8am is after 6am AND before 10am).\n //\n // In the second case the current time must be EITHER after `from` OR before `to`\n // (e.g. 4am is before 5am but not after 10pm; and 11pm is not before 5am but it is\n // after 10pm).\n if (from.hours < to.hours) {\n if (afterFrom && beforeTo) {\n return true;\n }\n }\n else if (afterFrom || beforeTo) {\n return true;\n }\n }\n else { // noon or midnight\n if (rule.hours === currentHours && rule.minutes === currentMinutes) {\n return true;\n }\n }\n return false;\n });\n if (index !== -1) {\n return dayPeriods[index];\n }\n }\n // if no rules for the day periods, we use am/pm by default\n return getLocaleDayPeriods(locale, form, width)[currentHours < 12 ? 0 : 1];\n case TranslationType.Eras:\n return getLocaleEraNames(locale, width)[date.getFullYear() <= 0 ? 0 : 1];\n default:\n // This default case is not needed by TypeScript compiler, as the switch is exhaustive.\n // However Closure Compiler does not understand that and reports an error in typed mode.\n // The `throw new Error` below works around the problem, and the unexpected: never variable\n // makes sure tsc still checks this code is unreachable.\n const unexpected = name;\n throw new Error(`unexpected translation type ${unexpected}`);\n }\n}\n/**\n * Returns a date formatter that transforms a date and an offset into a timezone with ISO8601 or\n * GMT format depending on the width (eg: short = +0430, short:GMT = GMT+4, long = GMT+04:30,\n * extended = +04:30)\n */\nfunction timeZoneGetter(width) {\n return function (date, locale, offset) {\n const zone = -1 * offset;\n const minusSign = getLocaleNumberSymbol(locale, NumberSymbol.MinusSign);\n const hours = zone > 0 ? Math.floor(zone / 60) : Math.ceil(zone / 60);\n switch (width) {\n case ZoneWidth.Short:\n return ((zone >= 0) ? '+' : '') + padNumber(hours, 2, minusSign) +\n padNumber(Math.abs(zone % 60), 2, minusSign);\n case ZoneWidth.ShortGMT:\n return 'GMT' + ((zone >= 0) ? '+' : '') + padNumber(hours, 1, minusSign);\n case ZoneWidth.Long:\n return 'GMT' + ((zone >= 0) ? '+' : '') + padNumber(hours, 2, minusSign) + ':' +\n padNumber(Math.abs(zone % 60), 2, minusSign);\n case ZoneWidth.Extended:\n if (offset === 0) {\n return 'Z';\n }\n else {\n return ((zone >= 0) ? '+' : '') + padNumber(hours, 2, minusSign) + ':' +\n padNumber(Math.abs(zone % 60), 2, minusSign);\n }\n default:\n throw new Error(`Unknown zone width \"${width}\"`);\n }\n };\n}\nconst JANUARY = 0;\nconst THURSDAY = 4;\nfunction getFirstThursdayOfYear(year) {\n const firstDayOfYear = createDate(year, JANUARY, 1).getDay();\n return createDate(year, 0, 1 + ((firstDayOfYear <= THURSDAY) ? THURSDAY : THURSDAY + 7) - firstDayOfYear);\n}\nfunction getThursdayThisWeek(datetime) {\n return createDate(datetime.getFullYear(), datetime.getMonth(), datetime.getDate() + (THURSDAY - datetime.getDay()));\n}\nfunction weekGetter(size, monthBased = false) {\n return function (date, locale) {\n let result;\n if (monthBased) {\n const nbDaysBefore1stDayOfMonth = new Date(date.getFullYear(), date.getMonth(), 1).getDay() - 1;\n const today = date.getDate();\n result = 1 + Math.floor((today + nbDaysBefore1stDayOfMonth) / 7);\n }\n else {\n const thisThurs = getThursdayThisWeek(date);\n // Some days of a year are part of next year according to ISO 8601.\n // Compute the firstThurs from the year of this week's Thursday\n const firstThurs = getFirstThursdayOfYear(thisThurs.getFullYear());\n const diff = thisThurs.getTime() - firstThurs.getTime();\n result = 1 + Math.round(diff / 6.048e8); // 6.048e8 ms per week\n }\n return padNumber(result, size, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n };\n}\n/**\n * Returns a date formatter that provides the week-numbering year for the input date.\n */\nfunction weekNumberingYearGetter(size, trim = false) {\n return function (date, locale) {\n const thisThurs = getThursdayThisWeek(date);\n const weekNumberingYear = thisThurs.getFullYear();\n return padNumber(weekNumberingYear, size, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign), trim);\n };\n}\nconst DATE_FORMATS = {};\n// Based on CLDR formats:\n// See complete list: http://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n// See also explanations: http://cldr.unicode.org/translation/date-time\n// TODO(ocombe): support all missing cldr formats: U, Q, D, F, e, j, J, C, A, v, V, X, x\nfunction getDateFormatter(format) {\n if (DATE_FORMATS[format]) {\n return DATE_FORMATS[format];\n }\n let formatter;\n switch (format) {\n // Era name (AD/BC)\n case 'G':\n case 'GG':\n case 'GGG':\n formatter = dateStrGetter(TranslationType.Eras, TranslationWidth.Abbreviated);\n break;\n case 'GGGG':\n formatter = dateStrGetter(TranslationType.Eras, TranslationWidth.Wide);\n break;\n case 'GGGGG':\n formatter = dateStrGetter(TranslationType.Eras, TranslationWidth.Narrow);\n break;\n // 1 digit representation of the year, e.g. (AD 1 => 1, AD 199 => 199)\n case 'y':\n formatter = dateGetter(DateType.FullYear, 1, 0, false, true);\n break;\n // 2 digit representation of the year, padded (00-99). (e.g. AD 2001 => 01, AD 2010 => 10)\n case 'yy':\n formatter = dateGetter(DateType.FullYear, 2, 0, true, true);\n break;\n // 3 digit representation of the year, padded (000-999). (e.g. AD 2001 => 01, AD 2010 => 10)\n case 'yyy':\n formatter = dateGetter(DateType.FullYear, 3, 0, false, true);\n break;\n // 4 digit representation of the year (e.g. AD 1 => 0001, AD 2010 => 2010)\n case 'yyyy':\n formatter = dateGetter(DateType.FullYear, 4, 0, false, true);\n break;\n // 1 digit representation of the week-numbering year, e.g. (AD 1 => 1, AD 199 => 199)\n case 'Y':\n formatter = weekNumberingYearGetter(1);\n break;\n // 2 digit representation of the week-numbering year, padded (00-99). (e.g. AD 2001 => 01, AD\n // 2010 => 10)\n case 'YY':\n formatter = weekNumberingYearGetter(2, true);\n break;\n // 3 digit representation of the week-numbering year, padded (000-999). (e.g. AD 1 => 001, AD\n // 2010 => 2010)\n case 'YYY':\n formatter = weekNumberingYearGetter(3);\n break;\n // 4 digit representation of the week-numbering year (e.g. AD 1 => 0001, AD 2010 => 2010)\n case 'YYYY':\n formatter = weekNumberingYearGetter(4);\n break;\n // Month of the year (1-12), numeric\n case 'M':\n case 'L':\n formatter = dateGetter(DateType.Month, 1, 1);\n break;\n case 'MM':\n case 'LL':\n formatter = dateGetter(DateType.Month, 2, 1);\n break;\n // Month of the year (January, ...), string, format\n case 'MMM':\n formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Abbreviated);\n break;\n case 'MMMM':\n formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Wide);\n break;\n case 'MMMMM':\n formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Narrow);\n break;\n // Month of the year (January, ...), string, standalone\n case 'LLL':\n formatter =\n dateStrGetter(TranslationType.Months, TranslationWidth.Abbreviated, FormStyle.Standalone);\n break;\n case 'LLLL':\n formatter =\n dateStrGetter(TranslationType.Months, TranslationWidth.Wide, FormStyle.Standalone);\n break;\n case 'LLLLL':\n formatter =\n dateStrGetter(TranslationType.Months, TranslationWidth.Narrow, FormStyle.Standalone);\n break;\n // Week of the year (1, ... 52)\n case 'w':\n formatter = weekGetter(1);\n break;\n case 'ww':\n formatter = weekGetter(2);\n break;\n // Week of the month (1, ...)\n case 'W':\n formatter = weekGetter(1, true);\n break;\n // Day of the month (1-31)\n case 'd':\n formatter = dateGetter(DateType.Date, 1);\n break;\n case 'dd':\n formatter = dateGetter(DateType.Date, 2);\n break;\n // Day of the Week StandAlone (1, 1, Mon, Monday, M, Mo)\n case 'c':\n case 'cc':\n formatter = dateGetter(DateType.Day, 1);\n break;\n case 'ccc':\n formatter =\n dateStrGetter(TranslationType.Days, TranslationWidth.Abbreviated, FormStyle.Standalone);\n break;\n case 'cccc':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Wide, FormStyle.Standalone);\n break;\n case 'ccccc':\n formatter =\n dateStrGetter(TranslationType.Days, TranslationWidth.Narrow, FormStyle.Standalone);\n break;\n case 'cccccc':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Short, FormStyle.Standalone);\n break;\n // Day of the Week\n case 'E':\n case 'EE':\n case 'EEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Abbreviated);\n break;\n case 'EEEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Wide);\n break;\n case 'EEEEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Narrow);\n break;\n case 'EEEEEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Short);\n break;\n // Generic period of the day (am-pm)\n case 'a':\n case 'aa':\n case 'aaa':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Abbreviated);\n break;\n case 'aaaa':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Wide);\n break;\n case 'aaaaa':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Narrow);\n break;\n // Extended period of the day (midnight, at night, ...), standalone\n case 'b':\n case 'bb':\n case 'bbb':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Abbreviated, FormStyle.Standalone, true);\n break;\n case 'bbbb':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Wide, FormStyle.Standalone, true);\n break;\n case 'bbbbb':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Narrow, FormStyle.Standalone, true);\n break;\n // Extended period of the day (midnight, night, ...), standalone\n case 'B':\n case 'BB':\n case 'BBB':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Abbreviated, FormStyle.Format, true);\n break;\n case 'BBBB':\n formatter =\n dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Wide, FormStyle.Format, true);\n break;\n case 'BBBBB':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Narrow, FormStyle.Format, true);\n break;\n // Hour in AM/PM, (1-12)\n case 'h':\n formatter = dateGetter(DateType.Hours, 1, -12);\n break;\n case 'hh':\n formatter = dateGetter(DateType.Hours, 2, -12);\n break;\n // Hour of the day (0-23)\n case 'H':\n formatter = dateGetter(DateType.Hours, 1);\n break;\n // Hour in day, padded (00-23)\n case 'HH':\n formatter = dateGetter(DateType.Hours, 2);\n break;\n // Minute of the hour (0-59)\n case 'm':\n formatter = dateGetter(DateType.Minutes, 1);\n break;\n case 'mm':\n formatter = dateGetter(DateType.Minutes, 2);\n break;\n // Second of the minute (0-59)\n case 's':\n formatter = dateGetter(DateType.Seconds, 1);\n break;\n case 'ss':\n formatter = dateGetter(DateType.Seconds, 2);\n break;\n // Fractional second\n case 'S':\n formatter = dateGetter(DateType.FractionalSeconds, 1);\n break;\n case 'SS':\n formatter = dateGetter(DateType.FractionalSeconds, 2);\n break;\n case 'SSS':\n formatter = dateGetter(DateType.FractionalSeconds, 3);\n break;\n // Timezone ISO8601 short format (-0430)\n case 'Z':\n case 'ZZ':\n case 'ZZZ':\n formatter = timeZoneGetter(ZoneWidth.Short);\n break;\n // Timezone ISO8601 extended format (-04:30)\n case 'ZZZZZ':\n formatter = timeZoneGetter(ZoneWidth.Extended);\n break;\n // Timezone GMT short format (GMT+4)\n case 'O':\n case 'OO':\n case 'OOO':\n // Should be location, but fallback to format O instead because we don't have the data yet\n case 'z':\n case 'zz':\n case 'zzz':\n formatter = timeZoneGetter(ZoneWidth.ShortGMT);\n break;\n // Timezone GMT long format (GMT+0430)\n case 'OOOO':\n case 'ZZZZ':\n // Should be location, but fallback to format O instead because we don't have the data yet\n case 'zzzz':\n formatter = timeZoneGetter(ZoneWidth.Long);\n break;\n default:\n return null;\n }\n DATE_FORMATS[format] = formatter;\n return formatter;\n}\nfunction timezoneToOffset(timezone, fallback) {\n // Support: IE 11 only, Edge 13-15+\n // IE/Edge do not \"understand\" colon (`:`) in timezone\n timezone = timezone.replace(/:/g, '');\n const requestedTimezoneOffset = Date.parse('Jan 01, 1970 00:00:00 ' + timezone) / 60000;\n return isNaN(requestedTimezoneOffset) ? fallback : requestedTimezoneOffset;\n}\nfunction addDateMinutes(date, minutes) {\n date = new Date(date.getTime());\n date.setMinutes(date.getMinutes() + minutes);\n return date;\n}\nfunction convertTimezoneToLocal(date, timezone, reverse) {\n const reverseValue = reverse ? -1 : 1;\n const dateTimezoneOffset = date.getTimezoneOffset();\n const timezoneOffset = timezoneToOffset(timezone, dateTimezoneOffset);\n return addDateMinutes(date, reverseValue * (timezoneOffset - dateTimezoneOffset));\n}\n/**\n * Converts a value to date.\n *\n * Supported input formats:\n * - `Date`\n * - number: timestamp\n * - string: numeric (e.g. \"1234\"), ISO and date strings in a format supported by\n * [Date.parse()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse).\n * Note: ISO strings without time return a date without timeoffset.\n *\n * Throws if unable to convert to a date.\n */\nfunction toDate(value) {\n if (isDate(value)) {\n return value;\n }\n if (typeof value === 'number' && !isNaN(value)) {\n return new Date(value);\n }\n if (typeof value === 'string') {\n value = value.trim();\n if (/^(\\d{4}(-\\d{1,2}(-\\d{1,2})?)?)$/.test(value)) {\n /* For ISO Strings without time the day, month and year must be extracted from the ISO String\n before Date creation to avoid time offset and errors in the new Date.\n If we only replace '-' with ',' in the ISO String (\"2015,01,01\"), and try to create a new\n date, some browsers (e.g. IE 9) will throw an invalid Date error.\n If we leave the '-' (\"2015-01-01\") and try to create a new Date(\"2015-01-01\") the timeoffset\n is applied.\n Note: ISO months are 0 for January, 1 for February, ... */\n const [y, m = 1, d = 1] = value.split('-').map((val) => +val);\n return createDate(y, m - 1, d);\n }\n const parsedNb = parseFloat(value);\n // any string that only contains numbers, like \"1234\" but not like \"1234hello\"\n if (!isNaN(value - parsedNb)) {\n return new Date(parsedNb);\n }\n let match;\n if (match = value.match(ISO8601_DATE_REGEX)) {\n return isoStringToDate(match);\n }\n }\n const date = new Date(value);\n if (!isDate(date)) {\n throw new Error(`Unable to convert \"${value}\" into a date`);\n }\n return date;\n}\n/**\n * Converts a date in ISO8601 to a Date.\n * Used instead of `Date.parse` because of browser discrepancies.\n */\nfunction isoStringToDate(match) {\n const date = new Date(0);\n let tzHour = 0;\n let tzMin = 0;\n // match[8] means that the string contains \"Z\" (UTC) or a timezone like \"+01:00\" or \"+0100\"\n const dateSetter = match[8] ? date.setUTCFullYear : date.setFullYear;\n const timeSetter = match[8] ? date.setUTCHours : date.setHours;\n // if there is a timezone defined like \"+01:00\" or \"+0100\"\n if (match[9]) {\n tzHour = Number(match[9] + match[10]);\n tzMin = Number(match[9] + match[11]);\n }\n dateSetter.call(date, Number(match[1]), Number(match[2]) - 1, Number(match[3]));\n const h = Number(match[4] || 0) - tzHour;\n const m = Number(match[5] || 0) - tzMin;\n const s = Number(match[6] || 0);\n // The ECMAScript specification (https://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.11)\n // defines that `DateTime` milliseconds should always be rounded down, so that `999.9ms`\n // becomes `999ms`.\n const ms = Math.floor(parseFloat('0.' + (match[7] || 0)) * 1000);\n timeSetter.call(date, h, m, s, ms);\n return date;\n}\nfunction isDate(value) {\n return value instanceof Date && !isNaN(value.valueOf());\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst NUMBER_FORMAT_REGEXP = /^(\\d+)?\\.((\\d+)(-(\\d+))?)?$/;\nconst MAX_DIGITS = 22;\nconst DECIMAL_SEP = '.';\nconst ZERO_CHAR = '0';\nconst PATTERN_SEP = ';';\nconst GROUP_SEP = ',';\nconst DIGIT_CHAR = '#';\nconst CURRENCY_CHAR = '¤';\nconst PERCENT_CHAR = '%';\n/**\n * Transforms a number to a locale string based on a style and a format.\n */\nfunction formatNumberToLocaleString(value, pattern, locale, groupSymbol, decimalSymbol, digitsInfo, isPercent = false) {\n let formattedText = '';\n let isZero = false;\n if (!isFinite(value)) {\n formattedText = getLocaleNumberSymbol(locale, NumberSymbol.Infinity);\n }\n else {\n let parsedNumber = parseNumber(value);\n if (isPercent) {\n parsedNumber = toPercent(parsedNumber);\n }\n let minInt = pattern.minInt;\n let minFraction = pattern.minFrac;\n let maxFraction = pattern.maxFrac;\n if (digitsInfo) {\n const parts = digitsInfo.match(NUMBER_FORMAT_REGEXP);\n if (parts === null) {\n throw new Error(`${digitsInfo} is not a valid digit info`);\n }\n const minIntPart = parts[1];\n const minFractionPart = parts[3];\n const maxFractionPart = parts[5];\n if (minIntPart != null) {\n minInt = parseIntAutoRadix(minIntPart);\n }\n if (minFractionPart != null) {\n minFraction = parseIntAutoRadix(minFractionPart);\n }\n if (maxFractionPart != null) {\n maxFraction = parseIntAutoRadix(maxFractionPart);\n }\n else if (minFractionPart != null && minFraction > maxFraction) {\n maxFraction = minFraction;\n }\n }\n roundNumber(parsedNumber, minFraction, maxFraction);\n let digits = parsedNumber.digits;\n let integerLen = parsedNumber.integerLen;\n const exponent = parsedNumber.exponent;\n let decimals = [];\n isZero = digits.every(d => !d);\n // pad zeros for small numbers\n for (; integerLen < minInt; integerLen++) {\n digits.unshift(0);\n }\n // pad zeros for small numbers\n for (; integerLen < 0; integerLen++) {\n digits.unshift(0);\n }\n // extract decimals digits\n if (integerLen > 0) {\n decimals = digits.splice(integerLen, digits.length);\n }\n else {\n decimals = digits;\n digits = [0];\n }\n // format the integer digits with grouping separators\n const groups = [];\n if (digits.length >= pattern.lgSize) {\n groups.unshift(digits.splice(-pattern.lgSize, digits.length).join(''));\n }\n while (digits.length > pattern.gSize) {\n groups.unshift(digits.splice(-pattern.gSize, digits.length).join(''));\n }\n if (digits.length) {\n groups.unshift(digits.join(''));\n }\n formattedText = groups.join(getLocaleNumberSymbol(locale, groupSymbol));\n // append the decimal digits\n if (decimals.length) {\n formattedText += getLocaleNumberSymbol(locale, decimalSymbol) + decimals.join('');\n }\n if (exponent) {\n formattedText += getLocaleNumberSymbol(locale, NumberSymbol.Exponential) + '+' + exponent;\n }\n }\n if (value < 0 && !isZero) {\n formattedText = pattern.negPre + formattedText + pattern.negSuf;\n }\n else {\n formattedText = pattern.posPre + formattedText + pattern.posSuf;\n }\n return formattedText;\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a number as currency using locale rules.\n *\n * @param value The number to format.\n * @param locale A locale code for the locale format rules to use.\n * @param currency A string containing the currency symbol or its name,\n * such as \"$\" or \"Canadian Dollar\". Used in output string, but does not affect the operation\n * of the function.\n * @param currencyCode The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)\n * currency code, such as `USD` for the US dollar and `EUR` for the euro.\n * Used to determine the number of digits in the decimal part.\n * @param digitsInfo Decimal representation options, specified by a string in the following format:\n * `{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}`. See `DecimalPipe` for more details.\n *\n * @returns The formatted currency value.\n *\n * @see `formatNumber()`\n * @see `DecimalPipe`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction formatCurrency(value, locale, currency, currencyCode, digitsInfo) {\n const format = getLocaleNumberFormat(locale, NumberFormatStyle.Currency);\n const pattern = parseNumberFormat(format, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n pattern.minFrac = getNumberOfCurrencyDigits(currencyCode);\n pattern.maxFrac = pattern.minFrac;\n const res = formatNumberToLocaleString(value, pattern, locale, NumberSymbol.CurrencyGroup, NumberSymbol.CurrencyDecimal, digitsInfo);\n return res\n .replace(CURRENCY_CHAR, currency)\n // if we have 2 time the currency character, the second one is ignored\n .replace(CURRENCY_CHAR, '')\n // If there is a spacing between currency character and the value and\n // the currency character is supressed by passing an empty string, the\n // spacing character would remain as part of the string. Then we\n // should remove it.\n .trim();\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a number as a percentage according to locale rules.\n *\n * @param value The number to format.\n * @param locale A locale code for the locale format rules to use.\n * @param digitsInfo Decimal representation options, specified by a string in the following format:\n * `{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}`. See `DecimalPipe` for more details.\n *\n * @returns The formatted percentage value.\n *\n * @see `formatNumber()`\n * @see `DecimalPipe`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n * @publicApi\n *\n */\nfunction formatPercent(value, locale, digitsInfo) {\n const format = getLocaleNumberFormat(locale, NumberFormatStyle.Percent);\n const pattern = parseNumberFormat(format, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n const res = formatNumberToLocaleString(value, pattern, locale, NumberSymbol.Group, NumberSymbol.Decimal, digitsInfo, true);\n return res.replace(new RegExp(PERCENT_CHAR, 'g'), getLocaleNumberSymbol(locale, NumberSymbol.PercentSign));\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a number as text, with group sizing, separator, and other\n * parameters based on the locale.\n *\n * @param value The number to format.\n * @param locale A locale code for the locale format rules to use.\n * @param digitsInfo Decimal representation options, specified by a string in the following format:\n * `{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}`. See `DecimalPipe` for more details.\n *\n * @returns The formatted text string.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction formatNumber(value, locale, digitsInfo) {\n const format = getLocaleNumberFormat(locale, NumberFormatStyle.Decimal);\n const pattern = parseNumberFormat(format, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n return formatNumberToLocaleString(value, pattern, locale, NumberSymbol.Group, NumberSymbol.Decimal, digitsInfo);\n}\nfunction parseNumberFormat(format, minusSign = '-') {\n const p = {\n minInt: 1,\n minFrac: 0,\n maxFrac: 0,\n posPre: '',\n posSuf: '',\n negPre: '',\n negSuf: '',\n gSize: 0,\n lgSize: 0\n };\n const patternParts = format.split(PATTERN_SEP);\n const positive = patternParts[0];\n const negative = patternParts[1];\n const positiveParts = positive.indexOf(DECIMAL_SEP) !== -1 ?\n positive.split(DECIMAL_SEP) :\n [\n positive.substring(0, positive.lastIndexOf(ZERO_CHAR) + 1),\n positive.substring(positive.lastIndexOf(ZERO_CHAR) + 1)\n ], integer = positiveParts[0], fraction = positiveParts[1] || '';\n p.posPre = integer.substr(0, integer.indexOf(DIGIT_CHAR));\n for (let i = 0; i < fraction.length; i++) {\n const ch = fraction.charAt(i);\n if (ch === ZERO_CHAR) {\n p.minFrac = p.maxFrac = i + 1;\n }\n else if (ch === DIGIT_CHAR) {\n p.maxFrac = i + 1;\n }\n else {\n p.posSuf += ch;\n }\n }\n const groups = integer.split(GROUP_SEP);\n p.gSize = groups[1] ? groups[1].length : 0;\n p.lgSize = (groups[2] || groups[1]) ? (groups[2] || groups[1]).length : 0;\n if (negative) {\n const trunkLen = positive.length - p.posPre.length - p.posSuf.length, pos = negative.indexOf(DIGIT_CHAR);\n p.negPre = negative.substr(0, pos).replace(/'/g, '');\n p.negSuf = negative.substr(pos + trunkLen).replace(/'/g, '');\n }\n else {\n p.negPre = minusSign + p.posPre;\n p.negSuf = p.posSuf;\n }\n return p;\n}\n// Transforms a parsed number into a percentage by multiplying it by 100\nfunction toPercent(parsedNumber) {\n // if the number is 0, don't do anything\n if (parsedNumber.digits[0] === 0) {\n return parsedNumber;\n }\n // Getting the current number of decimals\n const fractionLen = parsedNumber.digits.length - parsedNumber.integerLen;\n if (parsedNumber.exponent) {\n parsedNumber.exponent += 2;\n }\n else {\n if (fractionLen === 0) {\n parsedNumber.digits.push(0, 0);\n }\n else if (fractionLen === 1) {\n parsedNumber.digits.push(0);\n }\n parsedNumber.integerLen += 2;\n }\n return parsedNumber;\n}\n/**\n * Parses a number.\n * Significant bits of this parse algorithm came from https://github.com/MikeMcl/big.js/\n */\nfunction parseNumber(num) {\n let numStr = Math.abs(num) + '';\n let exponent = 0, digits, integerLen;\n let i, j, zeros;\n // Decimal point?\n if ((integerLen = numStr.indexOf(DECIMAL_SEP)) > -1) {\n numStr = numStr.replace(DECIMAL_SEP, '');\n }\n // Exponential form?\n if ((i = numStr.search(/e/i)) > 0) {\n // Work out the exponent.\n if (integerLen < 0)\n integerLen = i;\n integerLen += +numStr.slice(i + 1);\n numStr = numStr.substring(0, i);\n }\n else if (integerLen < 0) {\n // There was no decimal point or exponent so it is an integer.\n integerLen = numStr.length;\n }\n // Count the number of leading zeros.\n for (i = 0; numStr.charAt(i) === ZERO_CHAR; i++) { /* empty */\n }\n if (i === (zeros = numStr.length)) {\n // The digits are all zero.\n digits = [0];\n integerLen = 1;\n }\n else {\n // Count the number of trailing zeros\n zeros--;\n while (numStr.charAt(zeros) === ZERO_CHAR)\n zeros--;\n // Trailing zeros are insignificant so ignore them\n integerLen -= i;\n digits = [];\n // Convert string to array of digits without leading/trailing zeros.\n for (j = 0; i <= zeros; i++, j++) {\n digits[j] = Number(numStr.charAt(i));\n }\n }\n // If the number overflows the maximum allowed digits then use an exponent.\n if (integerLen > MAX_DIGITS) {\n digits = digits.splice(0, MAX_DIGITS - 1);\n exponent = integerLen - 1;\n integerLen = 1;\n }\n return { digits, exponent, integerLen };\n}\n/**\n * Round the parsed number to the specified number of decimal places\n * This function changes the parsedNumber in-place\n */\nfunction roundNumber(parsedNumber, minFrac, maxFrac) {\n if (minFrac > maxFrac) {\n throw new Error(`The minimum number of digits after fraction (${minFrac}) is higher than the maximum (${maxFrac}).`);\n }\n let digits = parsedNumber.digits;\n let fractionLen = digits.length - parsedNumber.integerLen;\n const fractionSize = Math.min(Math.max(minFrac, fractionLen), maxFrac);\n // The index of the digit to where rounding is to occur\n let roundAt = fractionSize + parsedNumber.integerLen;\n let digit = digits[roundAt];\n if (roundAt > 0) {\n // Drop fractional digits beyond `roundAt`\n digits.splice(Math.max(parsedNumber.integerLen, roundAt));\n // Set non-fractional digits beyond `roundAt` to 0\n for (let j = roundAt; j < digits.length; j++) {\n digits[j] = 0;\n }\n }\n else {\n // We rounded to zero so reset the parsedNumber\n fractionLen = Math.max(0, fractionLen);\n parsedNumber.integerLen = 1;\n digits.length = Math.max(1, roundAt = fractionSize + 1);\n digits[0] = 0;\n for (let i = 1; i < roundAt; i++)\n digits[i] = 0;\n }\n if (digit >= 5) {\n if (roundAt - 1 < 0) {\n for (let k = 0; k > roundAt; k--) {\n digits.unshift(0);\n parsedNumber.integerLen++;\n }\n digits.unshift(1);\n parsedNumber.integerLen++;\n }\n else {\n digits[roundAt - 1]++;\n }\n }\n // Pad out with zeros to get the required fraction length\n for (; fractionLen < Math.max(0, fractionSize); fractionLen++)\n digits.push(0);\n let dropTrailingZeros = fractionSize !== 0;\n // Minimal length = nb of decimals required + current nb of integers\n // Any number besides that is optional and can be removed if it's a trailing 0\n const minLen = minFrac + parsedNumber.integerLen;\n // Do any carrying, e.g. a digit was rounded up to 10\n const carry = digits.reduceRight(function (carry, d, i, digits) {\n d = d + carry;\n digits[i] = d < 10 ? d : d - 10; // d % 10\n if (dropTrailingZeros) {\n // Do not keep meaningless fractional trailing zeros (e.g. 15.52000 --> 15.52)\n if (digits[i] === 0 && i >= minLen) {\n digits.pop();\n }\n else {\n dropTrailingZeros = false;\n }\n }\n return d >= 10 ? 1 : 0; // Math.floor(d / 10);\n }, 0);\n if (carry) {\n digits.unshift(carry);\n parsedNumber.integerLen++;\n }\n}\nfunction parseIntAutoRadix(text) {\n const result = parseInt(text);\n if (isNaN(result)) {\n throw new Error('Invalid integer literal when parsing ' + text);\n }\n return result;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @publicApi\n */\nclass NgLocalization {\n}\nNgLocalization.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NgLocalization, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNgLocalization.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NgLocalization, providedIn: 'root', useFactory: (locale) => new NgLocaleLocalization(locale), deps: [{ token: LOCALE_ID }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NgLocalization, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useFactory: (locale) => new NgLocaleLocalization(locale),\n deps: [LOCALE_ID],\n }]\n }] });\n/**\n * Returns the plural category for a given value.\n * - \"=value\" when the case exists,\n * - the plural category otherwise\n */\nfunction getPluralCategory(value, cases, ngLocalization, locale) {\n let key = `=${value}`;\n if (cases.indexOf(key) > -1) {\n return key;\n }\n key = ngLocalization.getPluralCategory(value, locale);\n if (cases.indexOf(key) > -1) {\n return key;\n }\n if (cases.indexOf('other') > -1) {\n return 'other';\n }\n throw new Error(`No plural message found for value \"${value}\"`);\n}\n/**\n * Returns the plural case based on the locale\n *\n * @publicApi\n */\nclass NgLocaleLocalization extends NgLocalization {\n constructor(locale) {\n super();\n this.locale = locale;\n }\n getPluralCategory(value, locale) {\n const plural = getLocalePluralCase(locale || this.locale)(value);\n switch (plural) {\n case Plural.Zero:\n return 'zero';\n case Plural.One:\n return 'one';\n case Plural.Two:\n return 'two';\n case Plural.Few:\n return 'few';\n case Plural.Many:\n return 'many';\n default:\n return 'other';\n }\n }\n}\nNgLocaleLocalization.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NgLocaleLocalization, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });\nNgLocaleLocalization.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NgLocaleLocalization });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NgLocaleLocalization, decorators: [{\n type: Injectable\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }];\n } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Register global data to be used internally by Angular. See the\n * [\"I18n guide\"](guide/i18n-common-format-data-locale) to know how to import additional locale\n * data.\n *\n * The signature registerLocaleData(data: any, extraData?: any) is deprecated since v5.1\n *\n * @publicApi\n */\nfunction registerLocaleData(data, localeId, extraData) {\n return ɵregisterLocaleData(data, localeId, extraData);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction parseCookieValue(cookieStr, name) {\n name = encodeURIComponent(name);\n for (const cookie of cookieStr.split(';')) {\n const eqIndex = cookie.indexOf('=');\n const [cookieName, cookieValue] = eqIndex == -1 ? [cookie, ''] : [cookie.slice(0, eqIndex), cookie.slice(eqIndex + 1)];\n if (cookieName.trim() === name) {\n return decodeURIComponent(cookieValue);\n }\n }\n return null;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @ngModule CommonModule\n *\n * @usageNotes\n * ```\n * ...\n *\n * ...\n *\n * ...\n *\n * ...\n *\n * ...\n * ```\n *\n * @description\n *\n * Adds and removes CSS classes on an HTML element.\n *\n * The CSS classes are updated as follows, depending on the type of the expression evaluation:\n * - `string` - the CSS classes listed in the string (space delimited) are added,\n * - `Array` - the CSS classes declared as Array elements are added,\n * - `Object` - keys are CSS classes that get added when the expression given in the value\n * evaluates to a truthy value, otherwise they are removed.\n *\n * @publicApi\n */\nclass NgClass {\n constructor(_iterableDiffers, _keyValueDiffers, _ngEl, _renderer) {\n this._iterableDiffers = _iterableDiffers;\n this._keyValueDiffers = _keyValueDiffers;\n this._ngEl = _ngEl;\n this._renderer = _renderer;\n this._iterableDiffer = null;\n this._keyValueDiffer = null;\n this._initialClasses = [];\n this._rawClass = null;\n }\n set klass(value) {\n this._removeClasses(this._initialClasses);\n this._initialClasses = typeof value === 'string' ? value.split(/\\s+/) : [];\n this._applyClasses(this._initialClasses);\n this._applyClasses(this._rawClass);\n }\n set ngClass(value) {\n this._removeClasses(this._rawClass);\n this._applyClasses(this._initialClasses);\n this._iterableDiffer = null;\n this._keyValueDiffer = null;\n this._rawClass = typeof value === 'string' ? value.split(/\\s+/) : value;\n if (this._rawClass) {\n if (ɵisListLikeIterable(this._rawClass)) {\n this._iterableDiffer = this._iterableDiffers.find(this._rawClass).create();\n }\n else {\n this._keyValueDiffer = this._keyValueDiffers.find(this._rawClass).create();\n }\n }\n }\n ngDoCheck() {\n if (this._iterableDiffer) {\n const iterableChanges = this._iterableDiffer.diff(this._rawClass);\n if (iterableChanges) {\n this._applyIterableChanges(iterableChanges);\n }\n }\n else if (this._keyValueDiffer) {\n const keyValueChanges = this._keyValueDiffer.diff(this._rawClass);\n if (keyValueChanges) {\n this._applyKeyValueChanges(keyValueChanges);\n }\n }\n }\n _applyKeyValueChanges(changes) {\n changes.forEachAddedItem((record) => this._toggleClass(record.key, record.currentValue));\n changes.forEachChangedItem((record) => this._toggleClass(record.key, record.currentValue));\n changes.forEachRemovedItem((record) => {\n if (record.previousValue) {\n this._toggleClass(record.key, false);\n }\n });\n }\n _applyIterableChanges(changes) {\n changes.forEachAddedItem((record) => {\n if (typeof record.item === 'string') {\n this._toggleClass(record.item, true);\n }\n else {\n throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${ɵstringify(record.item)}`);\n }\n });\n changes.forEachRemovedItem((record) => this._toggleClass(record.item, false));\n }\n /**\n * Applies a collection of CSS classes to the DOM element.\n *\n * For argument of type Set and Array CSS class names contained in those collections are always\n * added.\n * For argument of type Map CSS class name in the map's key is toggled based on the value (added\n * for truthy and removed for falsy).\n */\n _applyClasses(rawClassVal) {\n if (rawClassVal) {\n if (Array.isArray(rawClassVal) || rawClassVal instanceof Set) {\n rawClassVal.forEach((klass) => this._toggleClass(klass, true));\n }\n else {\n Object.keys(rawClassVal).forEach(klass => this._toggleClass(klass, !!rawClassVal[klass]));\n }\n }\n }\n /**\n * Removes a collection of CSS classes from the DOM element. This is mostly useful for cleanup\n * purposes.\n */\n _removeClasses(rawClassVal) {\n if (rawClassVal) {\n if (Array.isArray(rawClassVal) || rawClassVal instanceof Set) {\n rawClassVal.forEach((klass) => this._toggleClass(klass, false));\n }\n else {\n Object.keys(rawClassVal).forEach(klass => this._toggleClass(klass, false));\n }\n }\n }\n _toggleClass(klass, enabled) {\n klass = klass.trim();\n if (klass) {\n klass.split(/\\s+/g).forEach(klass => {\n if (enabled) {\n this._renderer.addClass(this._ngEl.nativeElement, klass);\n }\n else {\n this._renderer.removeClass(this._ngEl.nativeElement, klass);\n }\n });\n }\n }\n}\nNgClass.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NgClass, deps: [{ token: i0.IterableDiffers }, { token: i0.KeyValueDiffers }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });\nNgClass.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.0\", type: NgClass, selector: \"[ngClass]\", inputs: { klass: [\"class\", \"klass\"], ngClass: \"ngClass\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NgClass, decorators: [{\n type: Directive,\n args: [{ selector: '[ngClass]' }]\n }], ctorParameters: function () { return [{ type: i0.IterableDiffers }, { type: i0.KeyValueDiffers }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { klass: [{\n type: Input,\n args: ['class']\n }], ngClass: [{\n type: Input,\n args: ['ngClass']\n }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Instantiates a {@link Component} type and inserts its Host View into the current View.\n * `NgComponentOutlet` provides a declarative approach for dynamic component creation.\n *\n * `NgComponentOutlet` requires a component type, if a falsy value is set the view will clear and\n * any existing component will be destroyed.\n *\n * @usageNotes\n *\n * ### Fine tune control\n *\n * You can control the component creation process by using the following optional attributes:\n *\n * * `ngComponentOutletInjector`: Optional custom {@link Injector} that will be used as parent for\n * the Component. Defaults to the injector of the current view container.\n *\n * * `ngComponentOutletContent`: Optional list of projectable nodes to insert into the content\n * section of the component, if it exists.\n *\n * * `ngComponentOutletNgModuleFactory`: Optional module factory to allow loading another\n * module dynamically, then loading a component from that module.\n *\n * ### Syntax\n *\n * Simple\n * ```\n * \n * ```\n *\n * Customized injector/content\n * ```\n * \n * \n * ```\n *\n * Customized ngModuleFactory\n * ```\n * \n * \n * ```\n *\n * ### A simple example\n *\n * {@example common/ngComponentOutlet/ts/module.ts region='SimpleExample'}\n *\n * A more complete example with additional options:\n *\n * {@example common/ngComponentOutlet/ts/module.ts region='CompleteExample'}\n *\n * @publicApi\n * @ngModule CommonModule\n */\nclass NgComponentOutlet {\n constructor(_viewContainerRef) {\n this._viewContainerRef = _viewContainerRef;\n this._componentRef = null;\n this._moduleRef = null;\n }\n /** @nodoc */\n ngOnChanges(changes) {\n this._viewContainerRef.clear();\n this._componentRef = null;\n if (this.ngComponentOutlet) {\n const elInjector = this.ngComponentOutletInjector || this._viewContainerRef.parentInjector;\n if (changes['ngComponentOutletNgModuleFactory']) {\n if (this._moduleRef)\n this._moduleRef.destroy();\n if (this.ngComponentOutletNgModuleFactory) {\n const parentModule = elInjector.get(NgModuleRef);\n this._moduleRef = this.ngComponentOutletNgModuleFactory.create(parentModule.injector);\n }\n else {\n this._moduleRef = null;\n }\n }\n const componentFactoryResolver = this._moduleRef ? this._moduleRef.componentFactoryResolver :\n elInjector.get(ComponentFactoryResolver);\n const componentFactory = componentFactoryResolver.resolveComponentFactory(this.ngComponentOutlet);\n this._componentRef = this._viewContainerRef.createComponent(componentFactory, this._viewContainerRef.length, elInjector, this.ngComponentOutletContent);\n }\n }\n /** @nodoc */\n ngOnDestroy() {\n if (this._moduleRef)\n this._moduleRef.destroy();\n }\n}\nNgComponentOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NgComponentOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgComponentOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.0\", type: NgComponentOutlet, selector: \"[ngComponentOutlet]\", inputs: { ngComponentOutlet: \"ngComponentOutlet\", ngComponentOutletInjector: \"ngComponentOutletInjector\", ngComponentOutletContent: \"ngComponentOutletContent\", ngComponentOutletNgModuleFactory: \"ngComponentOutletNgModuleFactory\" }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NgComponentOutlet, decorators: [{\n type: Directive,\n args: [{ selector: '[ngComponentOutlet]' }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { ngComponentOutlet: [{\n type: Input\n }], ngComponentOutletInjector: [{\n type: Input\n }], ngComponentOutletContent: [{\n type: Input\n }], ngComponentOutletNgModuleFactory: [{\n type: Input\n }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @publicApi\n */\nclass NgForOfContext {\n constructor($implicit, ngForOf, index, count) {\n this.$implicit = $implicit;\n this.ngForOf = ngForOf;\n this.index = index;\n this.count = count;\n }\n get first() {\n return this.index === 0;\n }\n get last() {\n return this.index === this.count - 1;\n }\n get even() {\n return this.index % 2 === 0;\n }\n get odd() {\n return !this.even;\n }\n}\n/**\n * A [structural directive](guide/structural-directives) that renders\n * a template for each item in a collection.\n * The directive is placed on an element, which becomes the parent\n * of the cloned templates.\n *\n * The `ngForOf` directive is generally used in the\n * [shorthand form](guide/structural-directives#asterisk) `*ngFor`.\n * In this form, the template to be rendered for each iteration is the content\n * of an anchor element containing the directive.\n *\n * The following example shows the shorthand syntax with some options,\n * contained in an `
  • ` element.\n *\n * ```\n *
  • ...
  • \n * ```\n *\n * The shorthand form expands into a long form that uses the `ngForOf` selector\n * on an `` element.\n * The content of the `` element is the `
  • ` element that held the\n * short-form directive.\n *\n * Here is the expanded version of the short-form example.\n *\n * ```\n * \n *
  • ...
  • \n *
    \n * ```\n *\n * Angular automatically expands the shorthand syntax as it compiles the template.\n * The context for each embedded view is logically merged to the current component\n * context according to its lexical position.\n *\n * When using the shorthand syntax, Angular allows only [one structural directive\n * on an element](guide/built-in-directives#one-per-element).\n * If you want to iterate conditionally, for example,\n * put the `*ngIf` on a container element that wraps the `*ngFor` element.\n * For futher discussion, see\n * [Structural Directives](guide/built-in-directives#one-per-element).\n *\n * @usageNotes\n *\n * ### Local variables\n *\n * `NgForOf` provides exported values that can be aliased to local variables.\n * For example:\n *\n * ```\n *
  • \n * {{i}}/{{users.length}}. {{user}} default\n *
  • \n * ```\n *\n * The following exported values can be aliased to local variables:\n *\n * - `$implicit: T`: The value of the individual items in the iterable (`ngForOf`).\n * - `ngForOf: NgIterable`: The value of the iterable expression. Useful when the expression is\n * more complex then a property access, for example when using the async pipe (`userStreams |\n * async`).\n * - `index: number`: The index of the current item in the iterable.\n * - `count: number`: The length of the iterable.\n * - `first: boolean`: True when the item is the first item in the iterable.\n * - `last: boolean`: True when the item is the last item in the iterable.\n * - `even: boolean`: True when the item has an even index in the iterable.\n * - `odd: boolean`: True when the item has an odd index in the iterable.\n *\n * ### Change propagation\n *\n * When the contents of the iterator changes, `NgForOf` makes the corresponding changes to the DOM:\n *\n * * When an item is added, a new instance of the template is added to the DOM.\n * * When an item is removed, its template instance is removed from the DOM.\n * * When items are reordered, their respective templates are reordered in the DOM.\n *\n * Angular uses object identity to track insertions and deletions within the iterator and reproduce\n * those changes in the DOM. This has important implications for animations and any stateful\n * controls that are present, such as `` elements that accept user input. Inserted rows can\n * be animated in, deleted rows can be animated out, and unchanged rows retain any unsaved state\n * such as user input.\n * For more on animations, see [Transitions and Triggers](guide/transition-and-triggers).\n *\n * The identities of elements in the iterator can change while the data does not.\n * This can happen, for example, if the iterator is produced from an RPC to the server, and that\n * RPC is re-run. Even if the data hasn't changed, the second response produces objects with\n * different identities, and Angular must tear down the entire DOM and rebuild it (as if all old\n * elements were deleted and all new elements inserted).\n *\n * To avoid this expensive operation, you can customize the default tracking algorithm.\n * by supplying the `trackBy` option to `NgForOf`.\n * `trackBy` takes a function that has two arguments: `index` and `item`.\n * If `trackBy` is given, Angular tracks changes by the return value of the function.\n *\n * @see [Structural Directives](guide/structural-directives)\n * @ngModule CommonModule\n * @publicApi\n */\nclass NgForOf {\n constructor(_viewContainer, _template, _differs) {\n this._viewContainer = _viewContainer;\n this._template = _template;\n this._differs = _differs;\n this._ngForOf = null;\n this._ngForOfDirty = true;\n this._differ = null;\n }\n /**\n * The value of the iterable expression, which can be used as a\n * [template input variable](guide/structural-directives#shorthand).\n */\n set ngForOf(ngForOf) {\n this._ngForOf = ngForOf;\n this._ngForOfDirty = true;\n }\n /**\n * Specifies a custom `TrackByFunction` to compute the identity of items in an iterable.\n *\n * If a custom `TrackByFunction` is not provided, `NgForOf` will use the item's [object\n * identity](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is)\n * as the key.\n *\n * `NgForOf` uses the computed key to associate items in an iterable with DOM elements\n * it produces for these items.\n *\n * A custom `TrackByFunction` is useful to provide good user experience in cases when items in an\n * iterable rendered using `NgForOf` have a natural identifier (for example, custom ID or a\n * primary key), and this iterable could be updated with new object instances that still\n * represent the same underlying entity (for example, when data is re-fetched from the server,\n * and the iterable is recreated and re-rendered, but most of the data is still the same).\n *\n * @see `TrackByFunction`\n */\n set ngForTrackBy(fn) {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && fn != null && typeof fn !== 'function') {\n // TODO(vicb): use a log service once there is a public one available\n if (console && console.warn) {\n console.warn(`trackBy must be a function, but received ${JSON.stringify(fn)}. ` +\n `See https://angular.io/api/common/NgForOf#change-propagation for more information.`);\n }\n }\n this._trackByFn = fn;\n }\n get ngForTrackBy() {\n return this._trackByFn;\n }\n /**\n * A reference to the template that is stamped out for each item in the iterable.\n * @see [template reference variable](guide/template-reference-variables)\n */\n set ngForTemplate(value) {\n // TODO(TS2.1): make TemplateRef>> once we move to TS v2.1\n // The current type is too restrictive; a template that just uses index, for example,\n // should be acceptable.\n if (value) {\n this._template = value;\n }\n }\n /**\n * Applies the changes when needed.\n * @nodoc\n */\n ngDoCheck() {\n if (this._ngForOfDirty) {\n this._ngForOfDirty = false;\n // React on ngForOf changes only once all inputs have been initialized\n const value = this._ngForOf;\n if (!this._differ && value) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n try {\n // CAUTION: this logic is duplicated for production mode below, as the try-catch\n // is only present in development builds.\n this._differ = this._differs.find(value).create(this.ngForTrackBy);\n }\n catch (_a) {\n throw new Error(`Cannot find a differ supporting object '${value}' of type '${getTypeName(value)}'. NgFor only supports binding to Iterables such as Arrays.`);\n }\n }\n else {\n // CAUTION: this logic is duplicated for development mode above, as the try-catch\n // is only present in development builds.\n this._differ = this._differs.find(value).create(this.ngForTrackBy);\n }\n }\n }\n if (this._differ) {\n const changes = this._differ.diff(this._ngForOf);\n if (changes)\n this._applyChanges(changes);\n }\n }\n _applyChanges(changes) {\n const viewContainer = this._viewContainer;\n changes.forEachOperation((item, adjustedPreviousIndex, currentIndex) => {\n if (item.previousIndex == null) {\n // NgForOf is never \"null\" or \"undefined\" here because the differ detected\n // that a new item needs to be inserted from the iterable. This implies that\n // there is an iterable value for \"_ngForOf\".\n viewContainer.createEmbeddedView(this._template, new NgForOfContext(item.item, this._ngForOf, -1, -1), currentIndex === null ? undefined : currentIndex);\n }\n else if (currentIndex == null) {\n viewContainer.remove(adjustedPreviousIndex === null ? undefined : adjustedPreviousIndex);\n }\n else if (adjustedPreviousIndex !== null) {\n const view = viewContainer.get(adjustedPreviousIndex);\n viewContainer.move(view, currentIndex);\n applyViewChange(view, item);\n }\n });\n for (let i = 0, ilen = viewContainer.length; i < ilen; i++) {\n const viewRef = viewContainer.get(i);\n const context = viewRef.context;\n context.index = i;\n context.count = ilen;\n context.ngForOf = this._ngForOf;\n }\n changes.forEachIdentityChange((record) => {\n const viewRef = viewContainer.get(record.currentIndex);\n applyViewChange(viewRef, record);\n });\n }\n /**\n * Asserts the correct type of the context for the template that `NgForOf` will render.\n *\n * The presence of this method is a signal to the Ivy template type-check compiler that the\n * `NgForOf` structural directive renders its template with a specific context type.\n */\n static ngTemplateContextGuard(dir, ctx) {\n return true;\n }\n}\nNgForOf.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NgForOf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive });\nNgForOf.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.0\", type: NgForOf, selector: \"[ngFor][ngForOf]\", inputs: { ngForOf: \"ngForOf\", ngForTrackBy: \"ngForTrackBy\", ngForTemplate: \"ngForTemplate\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NgForOf, decorators: [{\n type: Directive,\n args: [{ selector: '[ngFor][ngForOf]' }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: i0.IterableDiffers }]; }, propDecorators: { ngForOf: [{\n type: Input\n }], ngForTrackBy: [{\n type: Input\n }], ngForTemplate: [{\n type: Input\n }] } });\nfunction applyViewChange(view, record) {\n view.context.$implicit = record.item;\n}\nfunction getTypeName(type) {\n return type['name'] || typeof type;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A structural directive that conditionally includes a template based on the value of\n * an expression coerced to Boolean.\n * When the expression evaluates to true, Angular renders the template\n * provided in a `then` clause, and when false or null,\n * Angular renders the template provided in an optional `else` clause. The default\n * template for the `else` clause is blank.\n *\n * A [shorthand form](guide/structural-directives#asterisk) of the directive,\n * `*ngIf=\"condition\"`, is generally used, provided\n * as an attribute of the anchor element for the inserted template.\n * Angular expands this into a more explicit version, in which the anchor element\n * is contained in an `` element.\n *\n * Simple form with shorthand syntax:\n *\n * ```\n *
    Content to render when condition is true.
    \n * ```\n *\n * Simple form with expanded syntax:\n *\n * ```\n *
    Content to render when condition is\n * true.
    \n * ```\n *\n * Form with an \"else\" block:\n *\n * ```\n *
    Content to render when condition is true.
    \n * Content to render when condition is false.\n * ```\n *\n * Shorthand form with \"then\" and \"else\" blocks:\n *\n * ```\n *
    \n * Content to render when condition is true.\n * Content to render when condition is false.\n * ```\n *\n * Form with storing the value locally:\n *\n * ```\n *
    {{value}}
    \n * Content to render when value is null.\n * ```\n *\n * @usageNotes\n *\n * The `*ngIf` directive is most commonly used to conditionally show an inline template,\n * as seen in the following example.\n * The default `else` template is blank.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfSimple'}\n *\n * ### Showing an alternative template using `else`\n *\n * To display a template when `expression` evaluates to false, use an `else` template\n * binding as shown in the following example.\n * The `else` binding points to an `` element labeled `#elseBlock`.\n * The template can be defined anywhere in the component view, but is typically placed right after\n * `ngIf` for readability.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfElse'}\n *\n * ### Using an external `then` template\n *\n * In the previous example, the then-clause template is specified inline, as the content of the\n * tag that contains the `ngIf` directive. You can also specify a template that is defined\n * externally, by referencing a labeled `` element. When you do this, you can\n * change which template to use at runtime, as shown in the following example.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfThenElse'}\n *\n * ### Storing a conditional result in a variable\n *\n * You might want to show a set of properties from the same object. If you are waiting\n * for asynchronous data, the object can be undefined.\n * In this case, you can use `ngIf` and store the result of the condition in a local\n * variable as shown in the following example.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfAs'}\n *\n * This code uses only one `AsyncPipe`, so only one subscription is created.\n * The conditional statement stores the result of `userStream|async` in the local variable `user`.\n * You can then bind the local `user` repeatedly.\n *\n * The conditional displays the data only if `userStream` returns a value,\n * so you don't need to use the\n * safe-navigation-operator (`?.`)\n * to guard against null values when accessing properties.\n * You can display an alternative template while waiting for the data.\n *\n * ### Shorthand syntax\n *\n * The shorthand syntax `*ngIf` expands into two separate template specifications\n * for the \"then\" and \"else\" clauses. For example, consider the following shorthand statement,\n * that is meant to show a loading page while waiting for data to be loaded.\n *\n * ```\n *
    \n * ...\n *
    \n *\n * \n *
    Loading...
    \n *
    \n * ```\n *\n * You can see that the \"else\" clause references the ``\n * with the `#loading` label, and the template for the \"then\" clause\n * is provided as the content of the anchor element.\n *\n * However, when Angular expands the shorthand syntax, it creates\n * another `` tag, with `ngIf` and `ngIfElse` directives.\n * The anchor element containing the template for the \"then\" clause becomes\n * the content of this unlabeled `` tag.\n *\n * ```\n * \n *
    \n * ...\n *
    \n *
    \n *\n * \n *
    Loading...
    \n *
    \n * ```\n *\n * The presence of the implicit template object has implications for the nesting of\n * structural directives. For more on this subject, see\n * [Structural Directives](https://angular.io/guide/built-in-directives#one-per-element).\n *\n * @ngModule CommonModule\n * @publicApi\n */\nclass NgIf {\n constructor(_viewContainer, templateRef) {\n this._viewContainer = _viewContainer;\n this._context = new NgIfContext();\n this._thenTemplateRef = null;\n this._elseTemplateRef = null;\n this._thenViewRef = null;\n this._elseViewRef = null;\n this._thenTemplateRef = templateRef;\n }\n /**\n * The Boolean expression to evaluate as the condition for showing a template.\n */\n set ngIf(condition) {\n this._context.$implicit = this._context.ngIf = condition;\n this._updateView();\n }\n /**\n * A template to show if the condition expression evaluates to true.\n */\n set ngIfThen(templateRef) {\n assertTemplate('ngIfThen', templateRef);\n this._thenTemplateRef = templateRef;\n this._thenViewRef = null; // clear previous view if any.\n this._updateView();\n }\n /**\n * A template to show if the condition expression evaluates to false.\n */\n set ngIfElse(templateRef) {\n assertTemplate('ngIfElse', templateRef);\n this._elseTemplateRef = templateRef;\n this._elseViewRef = null; // clear previous view if any.\n this._updateView();\n }\n _updateView() {\n if (this._context.$implicit) {\n if (!this._thenViewRef) {\n this._viewContainer.clear();\n this._elseViewRef = null;\n if (this._thenTemplateRef) {\n this._thenViewRef =\n this._viewContainer.createEmbeddedView(this._thenTemplateRef, this._context);\n }\n }\n }\n else {\n if (!this._elseViewRef) {\n this._viewContainer.clear();\n this._thenViewRef = null;\n if (this._elseTemplateRef) {\n this._elseViewRef =\n this._viewContainer.createEmbeddedView(this._elseTemplateRef, this._context);\n }\n }\n }\n }\n /**\n * Asserts the correct type of the context for the template that `NgIf` will render.\n *\n * The presence of this method is a signal to the Ivy template type-check compiler that the\n * `NgIf` structural directive renders its template with a specific context type.\n */\n static ngTemplateContextGuard(dir, ctx) {\n return true;\n }\n}\nNgIf.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NgIf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgIf.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.0\", type: NgIf, selector: \"[ngIf]\", inputs: { ngIf: \"ngIf\", ngIfThen: \"ngIfThen\", ngIfElse: \"ngIfElse\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NgIf, decorators: [{\n type: Directive,\n args: [{ selector: '[ngIf]' }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }]; }, propDecorators: { ngIf: [{\n type: Input\n }], ngIfThen: [{\n type: Input\n }], ngIfElse: [{\n type: Input\n }] } });\n/**\n * @publicApi\n */\nclass NgIfContext {\n constructor() {\n this.$implicit = null;\n this.ngIf = null;\n }\n}\nfunction assertTemplate(property, templateRef) {\n const isTemplateRefOrNull = !!(!templateRef || templateRef.createEmbeddedView);\n if (!isTemplateRefOrNull) {\n throw new Error(`${property} must be a TemplateRef, but received '${ɵstringify(templateRef)}'.`);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass SwitchView {\n constructor(_viewContainerRef, _templateRef) {\n this._viewContainerRef = _viewContainerRef;\n this._templateRef = _templateRef;\n this._created = false;\n }\n create() {\n this._created = true;\n this._viewContainerRef.createEmbeddedView(this._templateRef);\n }\n destroy() {\n this._created = false;\n this._viewContainerRef.clear();\n }\n enforceState(created) {\n if (created && !this._created) {\n this.create();\n }\n else if (!created && this._created) {\n this.destroy();\n }\n }\n}\n/**\n * @ngModule CommonModule\n *\n * @description\n * The `[ngSwitch]` directive on a container specifies an expression to match against.\n * The expressions to match are provided by `ngSwitchCase` directives on views within the container.\n * - Every view that matches is rendered.\n * - If there are no matches, a view with the `ngSwitchDefault` directive is rendered.\n * - Elements within the `[NgSwitch]` statement but outside of any `NgSwitchCase`\n * or `ngSwitchDefault` directive are preserved at the location.\n *\n * @usageNotes\n * Define a container element for the directive, and specify the switch expression\n * to match against as an attribute:\n *\n * ```\n * \n * ```\n *\n * Within the container, `*ngSwitchCase` statements specify the match expressions\n * as attributes. Include `*ngSwitchDefault` as the final case.\n *\n * ```\n * \n * ...\n * ...\n * ...\n * \n * ```\n *\n * ### Usage Examples\n *\n * The following example shows how to use more than one case to display the same view:\n *\n * ```\n * \n * \n * ...\n * ...\n * ...\n * \n * ...\n * \n * ```\n *\n * The following example shows how cases can be nested:\n * ```\n * \n * ...\n * ...\n * ...\n * \n * \n * \n * \n * \n * ...\n * \n * ```\n *\n * @publicApi\n * @see `NgSwitchCase`\n * @see `NgSwitchDefault`\n * @see [Structural Directives](guide/structural-directives)\n *\n */\nclass NgSwitch {\n constructor() {\n this._defaultUsed = false;\n this._caseCount = 0;\n this._lastCaseCheckIndex = 0;\n this._lastCasesMatched = false;\n }\n set ngSwitch(newValue) {\n this._ngSwitch = newValue;\n if (this._caseCount === 0) {\n this._updateDefaultCases(true);\n }\n }\n /** @internal */\n _addCase() {\n return this._caseCount++;\n }\n /** @internal */\n _addDefault(view) {\n if (!this._defaultViews) {\n this._defaultViews = [];\n }\n this._defaultViews.push(view);\n }\n /** @internal */\n _matchCase(value) {\n const matched = value == this._ngSwitch;\n this._lastCasesMatched = this._lastCasesMatched || matched;\n this._lastCaseCheckIndex++;\n if (this._lastCaseCheckIndex === this._caseCount) {\n this._updateDefaultCases(!this._lastCasesMatched);\n this._lastCaseCheckIndex = 0;\n this._lastCasesMatched = false;\n }\n return matched;\n }\n _updateDefaultCases(useDefault) {\n if (this._defaultViews && useDefault !== this._defaultUsed) {\n this._defaultUsed = useDefault;\n for (let i = 0; i < this._defaultViews.length; i++) {\n const defaultView = this._defaultViews[i];\n defaultView.enforceState(useDefault);\n }\n }\n }\n}\nNgSwitch.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NgSwitch, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nNgSwitch.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.0\", type: NgSwitch, selector: \"[ngSwitch]\", inputs: { ngSwitch: \"ngSwitch\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NgSwitch, decorators: [{\n type: Directive,\n args: [{ selector: '[ngSwitch]' }]\n }], propDecorators: { ngSwitch: [{\n type: Input\n }] } });\n/**\n * @ngModule CommonModule\n *\n * @description\n * Provides a switch case expression to match against an enclosing `ngSwitch` expression.\n * When the expressions match, the given `NgSwitchCase` template is rendered.\n * If multiple match expressions match the switch expression value, all of them are displayed.\n *\n * @usageNotes\n *\n * Within a switch container, `*ngSwitchCase` statements specify the match expressions\n * as attributes. Include `*ngSwitchDefault` as the final case.\n *\n * ```\n * \n * ...\n * ...\n * ...\n * \n * ```\n *\n * Each switch-case statement contains an in-line HTML template or template reference\n * that defines the subtree to be selected if the value of the match expression\n * matches the value of the switch expression.\n *\n * Unlike JavaScript, which uses strict equality, Angular uses loose equality.\n * This means that the empty string, `\"\"` matches 0.\n *\n * @publicApi\n * @see `NgSwitch`\n * @see `NgSwitchDefault`\n *\n */\nclass NgSwitchCase {\n constructor(viewContainer, templateRef, ngSwitch) {\n this.ngSwitch = ngSwitch;\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !ngSwitch) {\n throwNgSwitchProviderNotFoundError('ngSwitchCase', 'NgSwitchCase');\n }\n ngSwitch._addCase();\n this._view = new SwitchView(viewContainer, templateRef);\n }\n /**\n * Performs case matching. For internal use only.\n * @nodoc\n */\n ngDoCheck() {\n this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase));\n }\n}\nNgSwitchCase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NgSwitchCase, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nNgSwitchCase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.0\", type: NgSwitchCase, selector: \"[ngSwitchCase]\", inputs: { ngSwitchCase: \"ngSwitchCase\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NgSwitchCase, decorators: [{\n type: Directive,\n args: [{ selector: '[ngSwitchCase]' }]\n }], ctorParameters: function () {\n return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: NgSwitch, decorators: [{\n type: Optional\n }, {\n type: Host\n }] }];\n }, propDecorators: { ngSwitchCase: [{\n type: Input\n }] } });\n/**\n * @ngModule CommonModule\n *\n * @description\n *\n * Creates a view that is rendered when no `NgSwitchCase` expressions\n * match the `NgSwitch` expression.\n * This statement should be the final case in an `NgSwitch`.\n *\n * @publicApi\n * @see `NgSwitch`\n * @see `NgSwitchCase`\n *\n */\nclass NgSwitchDefault {\n constructor(viewContainer, templateRef, ngSwitch) {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !ngSwitch) {\n throwNgSwitchProviderNotFoundError('ngSwitchDefault', 'NgSwitchDefault');\n }\n ngSwitch._addDefault(new SwitchView(viewContainer, templateRef));\n }\n}\nNgSwitchDefault.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NgSwitchDefault, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nNgSwitchDefault.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.0\", type: NgSwitchDefault, selector: \"[ngSwitchDefault]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NgSwitchDefault, decorators: [{\n type: Directive,\n args: [{ selector: '[ngSwitchDefault]' }]\n }], ctorParameters: function () {\n return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: NgSwitch, decorators: [{\n type: Optional\n }, {\n type: Host\n }] }];\n } });\nfunction throwNgSwitchProviderNotFoundError(attrName, directiveName) {\n throw new ɵRuntimeError(2000 /* PARENT_NG_SWITCH_NOT_FOUND */, `An element with the \"${attrName}\" attribute ` +\n `(matching the \"${directiveName}\" directive) must be located inside an element with the \"ngSwitch\" attribute ` +\n `(matching \"NgSwitch\" directive)`);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @ngModule CommonModule\n *\n * @usageNotes\n * ```\n * \n * there is nothing\n * there is one\n * there are a few\n * \n * ```\n *\n * @description\n *\n * Adds / removes DOM sub-trees based on a numeric value. Tailored for pluralization.\n *\n * Displays DOM sub-trees that match the switch expression value, or failing that, DOM sub-trees\n * that match the switch expression's pluralization category.\n *\n * To use this directive you must provide a container element that sets the `[ngPlural]` attribute\n * to a switch expression. Inner elements with a `[ngPluralCase]` will display based on their\n * expression:\n * - if `[ngPluralCase]` is set to a value starting with `=`, it will only display if the value\n * matches the switch expression exactly,\n * - otherwise, the view will be treated as a \"category match\", and will only display if exact\n * value matches aren't found and the value maps to its category for the defined locale.\n *\n * See http://cldr.unicode.org/index/cldr-spec/plural-rules\n *\n * @publicApi\n */\nclass NgPlural {\n constructor(_localization) {\n this._localization = _localization;\n this._caseViews = {};\n }\n set ngPlural(value) {\n this._switchValue = value;\n this._updateView();\n }\n addCase(value, switchView) {\n this._caseViews[value] = switchView;\n }\n _updateView() {\n this._clearViews();\n const cases = Object.keys(this._caseViews);\n const key = getPluralCategory(this._switchValue, cases, this._localization);\n this._activateView(this._caseViews[key]);\n }\n _clearViews() {\n if (this._activeView)\n this._activeView.destroy();\n }\n _activateView(view) {\n if (view) {\n this._activeView = view;\n this._activeView.create();\n }\n }\n}\nNgPlural.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NgPlural, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Directive });\nNgPlural.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.0\", type: NgPlural, selector: \"[ngPlural]\", inputs: { ngPlural: \"ngPlural\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NgPlural, decorators: [{\n type: Directive,\n args: [{ selector: '[ngPlural]' }]\n }], ctorParameters: function () { return [{ type: NgLocalization }]; }, propDecorators: { ngPlural: [{\n type: Input\n }] } });\n/**\n * @ngModule CommonModule\n *\n * @description\n *\n * Creates a view that will be added/removed from the parent {@link NgPlural} when the\n * given expression matches the plural expression according to CLDR rules.\n *\n * @usageNotes\n * ```\n * \n * ...\n * ...\n * \n *```\n *\n * See {@link NgPlural} for more details and example.\n *\n * @publicApi\n */\nclass NgPluralCase {\n constructor(value, template, viewContainer, ngPlural) {\n this.value = value;\n const isANumber = !isNaN(Number(value));\n ngPlural.addCase(isANumber ? `=${value}` : value, new SwitchView(viewContainer, template));\n }\n}\nNgPluralCase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NgPluralCase, deps: [{ token: 'ngPluralCase', attribute: true }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: NgPlural, host: true }], target: i0.ɵɵFactoryTarget.Directive });\nNgPluralCase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.0\", type: NgPluralCase, selector: \"[ngPluralCase]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NgPluralCase, decorators: [{\n type: Directive,\n args: [{ selector: '[ngPluralCase]' }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Attribute,\n args: ['ngPluralCase']\n }] }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: NgPlural, decorators: [{\n type: Host\n }] }];\n } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @ngModule CommonModule\n *\n * @usageNotes\n *\n * Set the font of the containing element to the result of an expression.\n *\n * ```\n * ...\n * ```\n *\n * Set the width of the containing element to a pixel value returned by an expression.\n *\n * ```\n * ...\n * ```\n *\n * Set a collection of style values using an expression that returns key-value pairs.\n *\n * ```\n * ...\n * ```\n *\n * @description\n *\n * An attribute directive that updates styles for the containing HTML element.\n * Sets one or more style properties, specified as colon-separated key-value pairs.\n * The key is a style name, with an optional `.` suffix\n * (such as 'top.px', 'font-style.em').\n * The value is an expression to be evaluated.\n * The resulting non-null value, expressed in the given unit,\n * is assigned to the given style property.\n * If the result of evaluation is null, the corresponding style is removed.\n *\n * @publicApi\n */\nclass NgStyle {\n constructor(_ngEl, _differs, _renderer) {\n this._ngEl = _ngEl;\n this._differs = _differs;\n this._renderer = _renderer;\n this._ngStyle = null;\n this._differ = null;\n }\n set ngStyle(values) {\n this._ngStyle = values;\n if (!this._differ && values) {\n this._differ = this._differs.find(values).create();\n }\n }\n ngDoCheck() {\n if (this._differ) {\n const changes = this._differ.diff(this._ngStyle);\n if (changes) {\n this._applyChanges(changes);\n }\n }\n }\n _setStyle(nameAndUnit, value) {\n const [name, unit] = nameAndUnit.split('.');\n value = value != null && unit ? `${value}${unit}` : value;\n if (value != null) {\n this._renderer.setStyle(this._ngEl.nativeElement, name, value);\n }\n else {\n this._renderer.removeStyle(this._ngEl.nativeElement, name);\n }\n }\n _applyChanges(changes) {\n changes.forEachRemovedItem((record) => this._setStyle(record.key, null));\n changes.forEachAddedItem((record) => this._setStyle(record.key, record.currentValue));\n changes.forEachChangedItem((record) => this._setStyle(record.key, record.currentValue));\n }\n}\nNgStyle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NgStyle, deps: [{ token: i0.ElementRef }, { token: i0.KeyValueDiffers }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });\nNgStyle.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.0\", type: NgStyle, selector: \"[ngStyle]\", inputs: { ngStyle: \"ngStyle\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NgStyle, decorators: [{\n type: Directive,\n args: [{ selector: '[ngStyle]' }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.KeyValueDiffers }, { type: i0.Renderer2 }]; }, propDecorators: { ngStyle: [{\n type: Input,\n args: ['ngStyle']\n }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @ngModule CommonModule\n *\n * @description\n *\n * Inserts an embedded view from a prepared `TemplateRef`.\n *\n * You can attach a context object to the `EmbeddedViewRef` by setting `[ngTemplateOutletContext]`.\n * `[ngTemplateOutletContext]` should be an object, the object's keys will be available for binding\n * by the local template `let` declarations.\n *\n * @usageNotes\n * ```\n * \n * ```\n *\n * Using the key `$implicit` in the context object will set its value as default.\n *\n * ### Example\n *\n * {@example common/ngTemplateOutlet/ts/module.ts region='NgTemplateOutlet'}\n *\n * @publicApi\n */\nclass NgTemplateOutlet {\n constructor(_viewContainerRef) {\n this._viewContainerRef = _viewContainerRef;\n this._viewRef = null;\n /**\n * A context object to attach to the {@link EmbeddedViewRef}. This should be an\n * object, the object's keys will be available for binding by the local template `let`\n * declarations.\n * Using the key `$implicit` in the context object will set its value as default.\n */\n this.ngTemplateOutletContext = null;\n /**\n * A string defining the template reference and optionally the context object for the template.\n */\n this.ngTemplateOutlet = null;\n }\n /** @nodoc */\n ngOnChanges(changes) {\n if (changes['ngTemplateOutlet']) {\n const viewContainerRef = this._viewContainerRef;\n if (this._viewRef) {\n viewContainerRef.remove(viewContainerRef.indexOf(this._viewRef));\n }\n this._viewRef = this.ngTemplateOutlet ?\n viewContainerRef.createEmbeddedView(this.ngTemplateOutlet, this.ngTemplateOutletContext) :\n null;\n }\n else if (this._viewRef && changes['ngTemplateOutletContext'] && this.ngTemplateOutletContext) {\n this._viewRef.context = this.ngTemplateOutletContext;\n }\n }\n}\nNgTemplateOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NgTemplateOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgTemplateOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.0\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: { ngTemplateOutletContext: \"ngTemplateOutletContext\", ngTemplateOutlet: \"ngTemplateOutlet\" }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NgTemplateOutlet, decorators: [{\n type: Directive,\n args: [{ selector: '[ngTemplateOutlet]' }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { ngTemplateOutletContext: [{\n type: Input\n }], ngTemplateOutlet: [{\n type: Input\n }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A collection of Angular directives that are likely to be used in each and every Angular\n * application.\n */\nconst COMMON_DIRECTIVES = [\n NgClass,\n NgComponentOutlet,\n NgForOf,\n NgIf,\n NgTemplateOutlet,\n NgStyle,\n NgSwitch,\n NgSwitchCase,\n NgSwitchDefault,\n NgPlural,\n NgPluralCase,\n];\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction invalidPipeArgumentError(type, value) {\n const errorMessage = (typeof ngDevMode === 'undefined' || ngDevMode) ?\n `InvalidPipeArgument: '${value}' for pipe '${ɵstringify(type)}'` :\n '';\n return new ɵRuntimeError(2100 /* INVALID_PIPE_ARGUMENT */, errorMessage);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass SubscribableStrategy {\n createSubscription(async, updateLatestValue) {\n return async.subscribe({\n next: updateLatestValue,\n error: (e) => {\n throw e;\n }\n });\n }\n dispose(subscription) {\n subscription.unsubscribe();\n }\n onDestroy(subscription) {\n subscription.unsubscribe();\n }\n}\nclass PromiseStrategy {\n createSubscription(async, updateLatestValue) {\n return async.then(updateLatestValue, e => {\n throw e;\n });\n }\n dispose(subscription) { }\n onDestroy(subscription) { }\n}\nconst _promiseStrategy = new PromiseStrategy();\nconst _subscribableStrategy = new SubscribableStrategy();\n/**\n * @ngModule CommonModule\n * @description\n *\n * Unwraps a value from an asynchronous primitive.\n *\n * The `async` pipe subscribes to an `Observable` or `Promise` and returns the latest value it has\n * emitted. When a new value is emitted, the `async` pipe marks the component to be checked for\n * changes. When the component gets destroyed, the `async` pipe unsubscribes automatically to avoid\n * potential memory leaks. When the reference of the expression changes, the `async` pipe\n * automatically unsubscribes from the old `Observable` or `Promise` and subscribes to the new one.\n *\n * @usageNotes\n *\n * ### Examples\n *\n * This example binds a `Promise` to the view. Clicking the `Resolve` button resolves the\n * promise.\n *\n * {@example common/pipes/ts/async_pipe.ts region='AsyncPipePromise'}\n *\n * It's also possible to use `async` with Observables. The example below binds the `time` Observable\n * to the view. The Observable continuously updates the view with the current time.\n *\n * {@example common/pipes/ts/async_pipe.ts region='AsyncPipeObservable'}\n *\n * @publicApi\n */\nclass AsyncPipe {\n constructor(_ref) {\n this._ref = _ref;\n this._latestValue = null;\n this._subscription = null;\n this._obj = null;\n this._strategy = null;\n }\n ngOnDestroy() {\n if (this._subscription) {\n this._dispose();\n }\n }\n transform(obj) {\n if (!this._obj) {\n if (obj) {\n this._subscribe(obj);\n }\n return this._latestValue;\n }\n if (obj !== this._obj) {\n this._dispose();\n return this.transform(obj);\n }\n return this._latestValue;\n }\n _subscribe(obj) {\n this._obj = obj;\n this._strategy = this._selectStrategy(obj);\n this._subscription = this._strategy.createSubscription(obj, (value) => this._updateLatestValue(obj, value));\n }\n _selectStrategy(obj) {\n if (ɵisPromise(obj)) {\n return _promiseStrategy;\n }\n if (ɵisSubscribable(obj)) {\n return _subscribableStrategy;\n }\n throw invalidPipeArgumentError(AsyncPipe, obj);\n }\n _dispose() {\n this._strategy.dispose(this._subscription);\n this._latestValue = null;\n this._subscription = null;\n this._obj = null;\n }\n _updateLatestValue(async, value) {\n if (async === this._obj) {\n this._latestValue = value;\n this._ref.markForCheck();\n }\n }\n}\nAsyncPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: AsyncPipe, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });\nAsyncPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: AsyncPipe, name: \"async\", pure: false });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: AsyncPipe, decorators: [{\n type: Pipe,\n args: [{ name: 'async', pure: false }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Transforms text to all lower case.\n *\n * @see `UpperCasePipe`\n * @see `TitleCasePipe`\n * @usageNotes\n *\n * The following example defines a view that allows the user to enter\n * text, and then uses the pipe to convert the input text to all lower case.\n *\n * \n *\n * @ngModule CommonModule\n * @publicApi\n */\nclass LowerCasePipe {\n transform(value) {\n if (value == null)\n return null;\n if (typeof value !== 'string') {\n throw invalidPipeArgumentError(LowerCasePipe, value);\n }\n return value.toLowerCase();\n }\n}\nLowerCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: LowerCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nLowerCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: LowerCasePipe, name: \"lowercase\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: LowerCasePipe, decorators: [{\n type: Pipe,\n args: [{ name: 'lowercase' }]\n }] });\n//\n// Regex below matches any Unicode word and number compatible with ES5. In ES2018 the same result\n// can be achieved by using /[0-9\\p{L}]\\S*/gu and also known as Unicode Property Escapes\n// (https://2ality.com/2017/07/regexp-unicode-property-escapes.html). Since there is no\n// transpilation of this functionality down to ES5 without external tool, the only solution is\n// to use already transpiled form. Example can be found here -\n// https://mothereff.in/regexpu#input=var+regex+%3D+%2F%5B0-9%5Cp%7BL%7D%5D%5CS*%2Fgu%3B%0A%0A&unicodePropertyEscape=1\n//\nconst unicodeWordMatch = /(?:[0-9A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF40\\uDF42-\\uDF49\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDD00-\\uDD23\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF1C\\uDF27\\uDF30-\\uDF45\\uDF70-\\uDF81\\uDFB0-\\uDFC4\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDEB8\\uDF00-\\uDF1A\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCDF\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDEE0-\\uDEF2\\uDFB0]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE70-\\uDEBE\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE7F\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD50-\\uDD52\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD837[\\uDF00-\\uDF1E]|\\uD838[\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB]|\\uD839[\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43\\uDD4B]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF38\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A])\\S*/g;\n/**\n * Transforms text to title case.\n * Capitalizes the first letter of each word and transforms the\n * rest of the word to lower case.\n * Words are delimited by any whitespace character, such as a space, tab, or line-feed character.\n *\n * @see `LowerCasePipe`\n * @see `UpperCasePipe`\n *\n * @usageNotes\n * The following example shows the result of transforming various strings into title case.\n *\n * \n *\n * @ngModule CommonModule\n * @publicApi\n */\nclass TitleCasePipe {\n transform(value) {\n if (value == null)\n return null;\n if (typeof value !== 'string') {\n throw invalidPipeArgumentError(TitleCasePipe, value);\n }\n return value.replace(unicodeWordMatch, (txt => txt[0].toUpperCase() + txt.substr(1).toLowerCase()));\n }\n}\nTitleCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: TitleCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nTitleCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: TitleCasePipe, name: \"titlecase\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: TitleCasePipe, decorators: [{\n type: Pipe,\n args: [{ name: 'titlecase' }]\n }] });\n/**\n * Transforms text to all upper case.\n * @see `LowerCasePipe`\n * @see `TitleCasePipe`\n *\n * @ngModule CommonModule\n * @publicApi\n */\nclass UpperCasePipe {\n transform(value) {\n if (value == null)\n return null;\n if (typeof value !== 'string') {\n throw invalidPipeArgumentError(UpperCasePipe, value);\n }\n return value.toUpperCase();\n }\n}\nUpperCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: UpperCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nUpperCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: UpperCasePipe, name: \"uppercase\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: UpperCasePipe, decorators: [{\n type: Pipe,\n args: [{ name: 'uppercase' }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Optionally-provided default timezone to use for all instances of `DatePipe` (such as `'+0430'`).\n * If the value isn't provided, the `DatePipe` will use the end-user's local system timezone.\n */\nconst DATE_PIPE_DEFAULT_TIMEZONE = new InjectionToken('DATE_PIPE_DEFAULT_TIMEZONE');\n// clang-format off\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a date value according to locale rules.\n *\n * `DatePipe` is executed only when it detects a pure change to the input value.\n * A pure change is either a change to a primitive input value\n * (such as `String`, `Number`, `Boolean`, or `Symbol`),\n * or a changed object reference (such as `Date`, `Array`, `Function`, or `Object`).\n *\n * Note that mutating a `Date` object does not cause the pipe to be rendered again.\n * To ensure that the pipe is executed, you must create a new `Date` object.\n *\n * Only the `en-US` locale data comes with Angular. To localize dates\n * in another language, you must import the corresponding locale data.\n * See the [I18n guide](guide/i18n-common-format-data-locale) for more information.\n *\n * The time zone of the formatted value can be specified either by passing it in as the second\n * parameter of the pipe, or by setting the default through the `DATE_PIPE_DEFAULT_TIMEZONE`\n * injection token. The value that is passed in as the second parameter takes precedence over\n * the one defined using the injection token.\n *\n * @see `formatDate()`\n *\n *\n * @usageNotes\n *\n * The result of this pipe is not reevaluated when the input is mutated. To avoid the need to\n * reformat the date on every change-detection cycle, treat the date as an immutable object\n * and change the reference when the pipe needs to run again.\n *\n * ### Pre-defined format options\n *\n * | Option | Equivalent to | Examples (given in `en-US` locale) |\n * |---------------|-------------------------------------|-------------------------------------------------|\n * | `'short'` | `'M/d/yy, h:mm a'` | `6/15/15, 9:03 AM` |\n * | `'medium'` | `'MMM d, y, h:mm:ss a'` | `Jun 15, 2015, 9:03:01 AM` |\n * | `'long'` | `'MMMM d, y, h:mm:ss a z'` | `June 15, 2015 at 9:03:01 AM GMT+1` |\n * | `'full'` | `'EEEE, MMMM d, y, h:mm:ss a zzzz'` | `Monday, June 15, 2015 at 9:03:01 AM GMT+01:00` |\n * | `'shortDate'` | `'M/d/yy'` | `6/15/15` |\n * | `'mediumDate'`| `'MMM d, y'` | `Jun 15, 2015` |\n * | `'longDate'` | `'MMMM d, y'` | `June 15, 2015` |\n * | `'fullDate'` | `'EEEE, MMMM d, y'` | `Monday, June 15, 2015` |\n * | `'shortTime'` | `'h:mm a'` | `9:03 AM` |\n * | `'mediumTime'`| `'h:mm:ss a'` | `9:03:01 AM` |\n * | `'longTime'` | `'h:mm:ss a z'` | `9:03:01 AM GMT+1` |\n * | `'fullTime'` | `'h:mm:ss a zzzz'` | `9:03:01 AM GMT+01:00` |\n *\n * ### Custom format options\n *\n * You can construct a format string using symbols to specify the components\n * of a date-time value, as described in the following table.\n * Format details depend on the locale.\n * Fields marked with (*) are only available in the extra data set for the given locale.\n *\n * | Field type | Format | Description | Example Value |\n * |-------------------- |-------------|---------------------------------------------------------------|------------------------------------------------------------|\n * | Era | G, GG & GGG | Abbreviated | AD |\n * | | GGGG | Wide | Anno Domini |\n * | | GGGGG | Narrow | A |\n * | Year | y | Numeric: minimum digits | 2, 20, 201, 2017, 20173 |\n * | | yy | Numeric: 2 digits + zero padded | 02, 20, 01, 17, 73 |\n * | | yyy | Numeric: 3 digits + zero padded | 002, 020, 201, 2017, 20173 |\n * | | yyyy | Numeric: 4 digits or more + zero padded | 0002, 0020, 0201, 2017, 20173 |\n * | Week-numbering year | Y | Numeric: minimum digits | 2, 20, 201, 2017, 20173 |\n * | | YY | Numeric: 2 digits + zero padded | 02, 20, 01, 17, 73 |\n * | | YYY | Numeric: 3 digits + zero padded | 002, 020, 201, 2017, 20173 |\n * | | YYYY | Numeric: 4 digits or more + zero padded | 0002, 0020, 0201, 2017, 20173 |\n * | Month | M | Numeric: 1 digit | 9, 12 |\n * | | MM | Numeric: 2 digits + zero padded | 09, 12 |\n * | | MMM | Abbreviated | Sep |\n * | | MMMM | Wide | September |\n * | | MMMMM | Narrow | S |\n * | Month standalone | L | Numeric: 1 digit | 9, 12 |\n * | | LL | Numeric: 2 digits + zero padded | 09, 12 |\n * | | LLL | Abbreviated | Sep |\n * | | LLLL | Wide | September |\n * | | LLLLL | Narrow | S |\n * | Week of year | w | Numeric: minimum digits | 1... 53 |\n * | | ww | Numeric: 2 digits + zero padded | 01... 53 |\n * | Week of month | W | Numeric: 1 digit | 1... 5 |\n * | Day of month | d | Numeric: minimum digits | 1 |\n * | | dd | Numeric: 2 digits + zero padded | 01 |\n * | Week day | E, EE & EEE | Abbreviated | Tue |\n * | | EEEE | Wide | Tuesday |\n * | | EEEEE | Narrow | T |\n * | | EEEEEE | Short | Tu |\n * | Week day standalone | c, cc | Numeric: 1 digit | 2 |\n * | | ccc | Abbreviated | Tue |\n * | | cccc | Wide | Tuesday |\n * | | ccccc | Narrow | T |\n * | | cccccc | Short | Tu |\n * | Period | a, aa & aaa | Abbreviated | am/pm or AM/PM |\n * | | aaaa | Wide (fallback to `a` when missing) | ante meridiem/post meridiem |\n * | | aaaaa | Narrow | a/p |\n * | Period* | B, BB & BBB | Abbreviated | mid. |\n * | | BBBB | Wide | am, pm, midnight, noon, morning, afternoon, evening, night |\n * | | BBBBB | Narrow | md |\n * | Period standalone* | b, bb & bbb | Abbreviated | mid. |\n * | | bbbb | Wide | am, pm, midnight, noon, morning, afternoon, evening, night |\n * | | bbbbb | Narrow | md |\n * | Hour 1-12 | h | Numeric: minimum digits | 1, 12 |\n * | | hh | Numeric: 2 digits + zero padded | 01, 12 |\n * | Hour 0-23 | H | Numeric: minimum digits | 0, 23 |\n * | | HH | Numeric: 2 digits + zero padded | 00, 23 |\n * | Minute | m | Numeric: minimum digits | 8, 59 |\n * | | mm | Numeric: 2 digits + zero padded | 08, 59 |\n * | Second | s | Numeric: minimum digits | 0... 59 |\n * | | ss | Numeric: 2 digits + zero padded | 00... 59 |\n * | Fractional seconds | S | Numeric: 1 digit | 0... 9 |\n * | | SS | Numeric: 2 digits + zero padded | 00... 99 |\n * | | SSS | Numeric: 3 digits + zero padded (= milliseconds) | 000... 999 |\n * | Zone | z, zz & zzz | Short specific non location format (fallback to O) | GMT-8 |\n * | | zzzz | Long specific non location format (fallback to OOOO) | GMT-08:00 |\n * | | Z, ZZ & ZZZ | ISO8601 basic format | -0800 |\n * | | ZZZZ | Long localized GMT format | GMT-8:00 |\n * | | ZZZZZ | ISO8601 extended format + Z indicator for offset 0 (= XXXXX) | -08:00 |\n * | | O, OO & OOO | Short localized GMT format | GMT-8 |\n * | | OOOO | Long localized GMT format | GMT-08:00 |\n *\n *\n * ### Format examples\n *\n * These examples transform a date into various formats,\n * assuming that `dateObj` is a JavaScript `Date` object for\n * year: 2015, month: 6, day: 15, hour: 21, minute: 43, second: 11,\n * given in the local time for the `en-US` locale.\n *\n * ```\n * {{ dateObj | date }} // output is 'Jun 15, 2015'\n * {{ dateObj | date:'medium' }} // output is 'Jun 15, 2015, 9:43:11 PM'\n * {{ dateObj | date:'shortTime' }} // output is '9:43 PM'\n * {{ dateObj | date:'mm:ss' }} // output is '43:11'\n * ```\n *\n * ### Usage example\n *\n * The following component uses a date pipe to display the current date in different formats.\n *\n * ```\n * @Component({\n * selector: 'date-pipe',\n * template: `
    \n *

    Today is {{today | date}}

    \n *

    Or if you prefer, {{today | date:'fullDate'}}

    \n *

    The time is {{today | date:'h:mm a z'}}

    \n *
    `\n * })\n * // Get the current date and time as a date-time value.\n * export class DatePipeComponent {\n * today: number = Date.now();\n * }\n * ```\n *\n * @publicApi\n */\n// clang-format on\nclass DatePipe {\n constructor(locale, defaultTimezone) {\n this.locale = locale;\n this.defaultTimezone = defaultTimezone;\n }\n transform(value, format = 'mediumDate', timezone, locale) {\n var _a;\n if (value == null || value === '' || value !== value)\n return null;\n try {\n return formatDate(value, format, locale || this.locale, (_a = timezone !== null && timezone !== void 0 ? timezone : this.defaultTimezone) !== null && _a !== void 0 ? _a : undefined);\n }\n catch (error) {\n throw invalidPipeArgumentError(DatePipe, error.message);\n }\n }\n}\nDatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: DatePipe, deps: [{ token: LOCALE_ID }, { token: DATE_PIPE_DEFAULT_TIMEZONE, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });\nDatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: DatePipe, name: \"date\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: DatePipe, decorators: [{\n type: Pipe,\n args: [{ name: 'date', pure: true }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [DATE_PIPE_DEFAULT_TIMEZONE]\n }, {\n type: Optional\n }] }];\n } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst _INTERPOLATION_REGEXP = /#/g;\n/**\n * @ngModule CommonModule\n * @description\n *\n * Maps a value to a string that pluralizes the value according to locale rules.\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/pipes/ts/i18n_pipe.ts region='I18nPluralPipeComponent'}\n *\n * @publicApi\n */\nclass I18nPluralPipe {\n constructor(_localization) {\n this._localization = _localization;\n }\n /**\n * @param value the number to be formatted\n * @param pluralMap an object that mimics the ICU format, see\n * http://userguide.icu-project.org/formatparse/messages.\n * @param locale a `string` defining the locale to use (uses the current {@link LOCALE_ID} by\n * default).\n */\n transform(value, pluralMap, locale) {\n if (value == null)\n return '';\n if (typeof pluralMap !== 'object' || pluralMap === null) {\n throw invalidPipeArgumentError(I18nPluralPipe, pluralMap);\n }\n const key = getPluralCategory(value, Object.keys(pluralMap), this._localization, locale);\n return pluralMap[key].replace(_INTERPOLATION_REGEXP, value.toString());\n }\n}\nI18nPluralPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: I18nPluralPipe, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Pipe });\nI18nPluralPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: I18nPluralPipe, name: \"i18nPlural\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: I18nPluralPipe, decorators: [{\n type: Pipe,\n args: [{ name: 'i18nPlural', pure: true }]\n }], ctorParameters: function () { return [{ type: NgLocalization }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @ngModule CommonModule\n * @description\n *\n * Generic selector that displays the string that matches the current value.\n *\n * If none of the keys of the `mapping` match the `value`, then the content\n * of the `other` key is returned when present, otherwise an empty string is returned.\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/pipes/ts/i18n_pipe.ts region='I18nSelectPipeComponent'}\n *\n * @publicApi\n */\nclass I18nSelectPipe {\n /**\n * @param value a string to be internationalized.\n * @param mapping an object that indicates the text that should be displayed\n * for different values of the provided `value`.\n */\n transform(value, mapping) {\n if (value == null)\n return '';\n if (typeof mapping !== 'object' || typeof value !== 'string') {\n throw invalidPipeArgumentError(I18nSelectPipe, mapping);\n }\n if (mapping.hasOwnProperty(value)) {\n return mapping[value];\n }\n if (mapping.hasOwnProperty('other')) {\n return mapping['other'];\n }\n return '';\n }\n}\nI18nSelectPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: I18nSelectPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nI18nSelectPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: I18nSelectPipe, name: \"i18nSelect\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: I18nSelectPipe, decorators: [{\n type: Pipe,\n args: [{ name: 'i18nSelect', pure: true }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @ngModule CommonModule\n * @description\n *\n * Converts a value into its JSON-format representation. Useful for debugging.\n *\n * @usageNotes\n *\n * The following component uses a JSON pipe to convert an object\n * to JSON format, and displays the string in both formats for comparison.\n *\n * {@example common/pipes/ts/json_pipe.ts region='JsonPipe'}\n *\n * @publicApi\n */\nclass JsonPipe {\n /**\n * @param value A value of any type to convert into a JSON-format string.\n */\n transform(value) {\n return JSON.stringify(value, null, 2);\n }\n}\nJsonPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: JsonPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nJsonPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: JsonPipe, name: \"json\", pure: false });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: JsonPipe, decorators: [{\n type: Pipe,\n args: [{ name: 'json', pure: false }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction makeKeyValuePair(key, value) {\n return { key: key, value: value };\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Transforms Object or Map into an array of key value pairs.\n *\n * The output array will be ordered by keys.\n * By default the comparator will be by Unicode point value.\n * You can optionally pass a compareFn if your keys are complex types.\n *\n * @usageNotes\n * ### Examples\n *\n * This examples show how an Object or a Map can be iterated by ngFor with the use of this\n * keyvalue pipe.\n *\n * {@example common/pipes/ts/keyvalue_pipe.ts region='KeyValuePipe'}\n *\n * @publicApi\n */\nclass KeyValuePipe {\n constructor(differs) {\n this.differs = differs;\n this.keyValues = [];\n this.compareFn = defaultComparator;\n }\n transform(input, compareFn = defaultComparator) {\n if (!input || (!(input instanceof Map) && typeof input !== 'object')) {\n return null;\n }\n if (!this.differ) {\n // make a differ for whatever type we've been passed in\n this.differ = this.differs.find(input).create();\n }\n const differChanges = this.differ.diff(input);\n const compareFnChanged = compareFn !== this.compareFn;\n if (differChanges) {\n this.keyValues = [];\n differChanges.forEachItem((r) => {\n this.keyValues.push(makeKeyValuePair(r.key, r.currentValue));\n });\n }\n if (differChanges || compareFnChanged) {\n this.keyValues.sort(compareFn);\n this.compareFn = compareFn;\n }\n return this.keyValues;\n }\n}\nKeyValuePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: KeyValuePipe, deps: [{ token: i0.KeyValueDiffers }], target: i0.ɵɵFactoryTarget.Pipe });\nKeyValuePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: KeyValuePipe, name: \"keyvalue\", pure: false });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: KeyValuePipe, decorators: [{\n type: Pipe,\n args: [{ name: 'keyvalue', pure: false }]\n }], ctorParameters: function () { return [{ type: i0.KeyValueDiffers }]; } });\nfunction defaultComparator(keyValueA, keyValueB) {\n const a = keyValueA.key;\n const b = keyValueB.key;\n // if same exit with 0;\n if (a === b)\n return 0;\n // make sure that undefined are at the end of the sort.\n if (a === undefined)\n return 1;\n if (b === undefined)\n return -1;\n // make sure that nulls are at the end of the sort.\n if (a === null)\n return 1;\n if (b === null)\n return -1;\n if (typeof a == 'string' && typeof b == 'string') {\n return a < b ? -1 : 1;\n }\n if (typeof a == 'number' && typeof b == 'number') {\n return a - b;\n }\n if (typeof a == 'boolean' && typeof b == 'boolean') {\n return a < b ? -1 : 1;\n }\n // `a` and `b` are of different types. Compare their string values.\n const aString = String(a);\n const bString = String(b);\n return aString == bString ? 0 : aString < bString ? -1 : 1;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a value according to digit options and locale rules.\n * Locale determines group sizing and separator,\n * decimal point character, and other locale-specific configurations.\n *\n * @see `formatNumber()`\n *\n * @usageNotes\n *\n * ### digitsInfo\n *\n * The value's decimal representation is specified by the `digitsInfo`\n * parameter, written in the following format:
    \n *\n * ```\n * {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}\n * ```\n *\n * - `minIntegerDigits`:\n * The minimum number of integer digits before the decimal point.\n * Default is 1.\n *\n * - `minFractionDigits`:\n * The minimum number of digits after the decimal point.\n * Default is 0.\n *\n * - `maxFractionDigits`:\n * The maximum number of digits after the decimal point.\n * Default is 3.\n *\n * If the formatted value is truncated it will be rounded using the \"to-nearest\" method:\n *\n * ```\n * {{3.6 | number: '1.0-0'}}\n * \n *\n * {{-3.6 | number:'1.0-0'}}\n * \n * ```\n *\n * ### locale\n *\n * `locale` will format a value according to locale rules.\n * Locale determines group sizing and separator,\n * decimal point character, and other locale-specific configurations.\n *\n * When not supplied, uses the value of `LOCALE_ID`, which is `en-US` by default.\n *\n * See [Setting your app locale](guide/i18n-common-locale-id).\n *\n * ### Example\n *\n * The following code shows how the pipe transforms values\n * according to various format specifications,\n * where the caller's default locale is `en-US`.\n *\n * \n *\n * @publicApi\n */\nclass DecimalPipe {\n constructor(_locale) {\n this._locale = _locale;\n }\n /**\n * @param value The value to be formatted.\n * @param digitsInfo Sets digit and decimal representation.\n * [See more](#digitsinfo).\n * @param locale Specifies what locale format rules to use.\n * [See more](#locale).\n */\n transform(value, digitsInfo, locale) {\n if (!isValue(value))\n return null;\n locale = locale || this._locale;\n try {\n const num = strToNumber(value);\n return formatNumber(num, locale, digitsInfo);\n }\n catch (error) {\n throw invalidPipeArgumentError(DecimalPipe, error.message);\n }\n }\n}\nDecimalPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: DecimalPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });\nDecimalPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: DecimalPipe, name: \"number\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: DecimalPipe, decorators: [{\n type: Pipe,\n args: [{ name: 'number' }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }];\n } });\n/**\n * @ngModule CommonModule\n * @description\n *\n * Transforms a number to a percentage\n * string, formatted according to locale rules that determine group sizing and\n * separator, decimal-point character, and other locale-specific\n * configurations.\n *\n * @see `formatPercent()`\n *\n * @usageNotes\n * The following code shows how the pipe transforms numbers\n * into text strings, according to various format specifications,\n * where the caller's default locale is `en-US`.\n *\n * \n *\n * @publicApi\n */\nclass PercentPipe {\n constructor(_locale) {\n this._locale = _locale;\n }\n /**\n *\n * @param value The number to be formatted as a percentage.\n * @param digitsInfo Decimal representation options, specified by a string\n * in the following format:
    \n * {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}.\n * - `minIntegerDigits`: The minimum number of integer digits before the decimal point.\n * Default is `1`.\n * - `minFractionDigits`: The minimum number of digits after the decimal point.\n * Default is `0`.\n * - `maxFractionDigits`: The maximum number of digits after the decimal point.\n * Default is `0`.\n * @param locale A locale code for the locale format rules to use.\n * When not supplied, uses the value of `LOCALE_ID`, which is `en-US` by default.\n * See [Setting your app locale](guide/i18n-common-locale-id).\n */\n transform(value, digitsInfo, locale) {\n if (!isValue(value))\n return null;\n locale = locale || this._locale;\n try {\n const num = strToNumber(value);\n return formatPercent(num, locale, digitsInfo);\n }\n catch (error) {\n throw invalidPipeArgumentError(PercentPipe, error.message);\n }\n }\n}\nPercentPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: PercentPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });\nPercentPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: PercentPipe, name: \"percent\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: PercentPipe, decorators: [{\n type: Pipe,\n args: [{ name: 'percent' }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }];\n } });\n/**\n * @ngModule CommonModule\n * @description\n *\n * Transforms a number to a currency string, formatted according to locale rules\n * that determine group sizing and separator, decimal-point character,\n * and other locale-specific configurations.\n *\n * {@a currency-code-deprecation}\n *
    \n *\n * **Deprecation notice:**\n *\n * The default currency code is currently always `USD` but this is deprecated from v9.\n *\n * **In v11 the default currency code will be taken from the current locale identified by\n * the `LOCALE_ID` token. See the [i18n guide](guide/i18n-common-locale-id) for\n * more information.**\n *\n * If you need the previous behavior then set it by creating a `DEFAULT_CURRENCY_CODE` provider in\n * your application `NgModule`:\n *\n * ```ts\n * {provide: DEFAULT_CURRENCY_CODE, useValue: 'USD'}\n * ```\n *\n *
    \n *\n * @see `getCurrencySymbol()`\n * @see `formatCurrency()`\n *\n * @usageNotes\n * The following code shows how the pipe transforms numbers\n * into text strings, according to various format specifications,\n * where the caller's default locale is `en-US`.\n *\n * \n *\n * @publicApi\n */\nclass CurrencyPipe {\n constructor(_locale, _defaultCurrencyCode = 'USD') {\n this._locale = _locale;\n this._defaultCurrencyCode = _defaultCurrencyCode;\n }\n /**\n *\n * @param value The number to be formatted as currency.\n * @param currencyCode The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code,\n * such as `USD` for the US dollar and `EUR` for the euro. The default currency code can be\n * configured using the `DEFAULT_CURRENCY_CODE` injection token.\n * @param display The format for the currency indicator. One of the following:\n * - `code`: Show the code (such as `USD`).\n * - `symbol`(default): Show the symbol (such as `$`).\n * - `symbol-narrow`: Use the narrow symbol for locales that have two symbols for their\n * currency.\n * For example, the Canadian dollar CAD has the symbol `CA$` and the symbol-narrow `$`. If the\n * locale has no narrow symbol, uses the standard symbol for the locale.\n * - String: Use the given string value instead of a code or a symbol.\n * For example, an empty string will suppress the currency & symbol.\n * - Boolean (marked deprecated in v5): `true` for symbol and false for `code`.\n *\n * @param digitsInfo Decimal representation options, specified by a string\n * in the following format:
    \n * {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}.\n * - `minIntegerDigits`: The minimum number of integer digits before the decimal point.\n * Default is `1`.\n * - `minFractionDigits`: The minimum number of digits after the decimal point.\n * Default is `2`.\n * - `maxFractionDigits`: The maximum number of digits after the decimal point.\n * Default is `2`.\n * If not provided, the number will be formatted with the proper amount of digits,\n * depending on what the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) specifies.\n * For example, the Canadian dollar has 2 digits, whereas the Chilean peso has none.\n * @param locale A locale code for the locale format rules to use.\n * When not supplied, uses the value of `LOCALE_ID`, which is `en-US` by default.\n * See [Setting your app locale](guide/i18n-common-locale-id).\n */\n transform(value, currencyCode = this._defaultCurrencyCode, display = 'symbol', digitsInfo, locale) {\n if (!isValue(value))\n return null;\n locale = locale || this._locale;\n if (typeof display === 'boolean') {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && console && console.warn) {\n console.warn(`Warning: the currency pipe has been changed in Angular v5. The symbolDisplay option (third parameter) is now a string instead of a boolean. The accepted values are \"code\", \"symbol\" or \"symbol-narrow\".`);\n }\n display = display ? 'symbol' : 'code';\n }\n let currency = currencyCode || this._defaultCurrencyCode;\n if (display !== 'code') {\n if (display === 'symbol' || display === 'symbol-narrow') {\n currency = getCurrencySymbol(currency, display === 'symbol' ? 'wide' : 'narrow', locale);\n }\n else {\n currency = display;\n }\n }\n try {\n const num = strToNumber(value);\n return formatCurrency(num, locale, currency, currencyCode, digitsInfo);\n }\n catch (error) {\n throw invalidPipeArgumentError(CurrencyPipe, error.message);\n }\n }\n}\nCurrencyPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CurrencyPipe, deps: [{ token: LOCALE_ID }, { token: DEFAULT_CURRENCY_CODE }], target: i0.ɵɵFactoryTarget.Pipe });\nCurrencyPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CurrencyPipe, name: \"currency\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CurrencyPipe, decorators: [{\n type: Pipe,\n args: [{ name: 'currency' }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [DEFAULT_CURRENCY_CODE]\n }] }];\n } });\nfunction isValue(value) {\n return !(value == null || value === '' || value !== value);\n}\n/**\n * Transforms a string into a number (if needed).\n */\nfunction strToNumber(value) {\n // Convert strings to numbers\n if (typeof value === 'string' && !isNaN(Number(value) - parseFloat(value))) {\n return Number(value);\n }\n if (typeof value !== 'number') {\n throw new Error(`${value} is not a number`);\n }\n return value;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @ngModule CommonModule\n * @description\n *\n * Creates a new `Array` or `String` containing a subset (slice) of the elements.\n *\n * @usageNotes\n *\n * All behavior is based on the expected behavior of the JavaScript API `Array.prototype.slice()`\n * and `String.prototype.slice()`.\n *\n * When operating on an `Array`, the returned `Array` is always a copy even when all\n * the elements are being returned.\n *\n * When operating on a blank value, the pipe returns the blank value.\n *\n * ### List Example\n *\n * This `ngFor` example:\n *\n * {@example common/pipes/ts/slice_pipe.ts region='SlicePipe_list'}\n *\n * produces the following:\n *\n * ```html\n *
  • b
  • \n *
  • c
  • \n * ```\n *\n * ### String Examples\n *\n * {@example common/pipes/ts/slice_pipe.ts region='SlicePipe_string'}\n *\n * @publicApi\n */\nclass SlicePipe {\n transform(value, start, end) {\n if (value == null)\n return null;\n if (!this.supports(value)) {\n throw invalidPipeArgumentError(SlicePipe, value);\n }\n return value.slice(start, end);\n }\n supports(obj) {\n return typeof obj === 'string' || Array.isArray(obj);\n }\n}\nSlicePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: SlicePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nSlicePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: SlicePipe, name: \"slice\", pure: false });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: SlicePipe, decorators: [{\n type: Pipe,\n args: [{ name: 'slice', pure: false }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A collection of Angular pipes that are likely to be used in each and every application.\n */\nconst COMMON_PIPES = [\n AsyncPipe,\n UpperCasePipe,\n LowerCasePipe,\n JsonPipe,\n SlicePipe,\n DecimalPipe,\n PercentPipe,\n TitleCasePipe,\n CurrencyPipe,\n DatePipe,\n I18nPluralPipe,\n I18nSelectPipe,\n KeyValuePipe,\n];\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Note: This does not contain the location providers,\n// as they need some platform specific implementations to work.\n/**\n * Exports all the basic Angular directives and pipes,\n * such as `NgIf`, `NgForOf`, `DecimalPipe`, and so on.\n * Re-exported by `BrowserModule`, which is included automatically in the root\n * `AppModule` when you create a new app with the CLI `new` command.\n *\n * * The `providers` options configure the NgModule's injector to provide\n * localization dependencies to members.\n * * The `exports` options make the declared directives and pipes available for import\n * by other NgModules.\n *\n * @publicApi\n */\nclass CommonModule {\n}\nCommonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nCommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CommonModule, declarations: [NgClass, NgComponentOutlet, NgForOf, NgIf, NgTemplateOutlet, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgPlural, NgPluralCase, AsyncPipe, UpperCasePipe, LowerCasePipe, JsonPipe, SlicePipe, DecimalPipe, PercentPipe, TitleCasePipe, CurrencyPipe, DatePipe, I18nPluralPipe, I18nSelectPipe, KeyValuePipe], exports: [NgClass, NgComponentOutlet, NgForOf, NgIf, NgTemplateOutlet, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgPlural, NgPluralCase, AsyncPipe, UpperCasePipe, LowerCasePipe, JsonPipe, SlicePipe, DecimalPipe, PercentPipe, TitleCasePipe, CurrencyPipe, DatePipe, I18nPluralPipe, I18nSelectPipe, KeyValuePipe] });\nCommonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CommonModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: CommonModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [COMMON_DIRECTIVES, COMMON_PIPES],\n exports: [COMMON_DIRECTIVES, COMMON_PIPES],\n }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst PLATFORM_BROWSER_ID = 'browser';\nconst PLATFORM_SERVER_ID = 'server';\nconst PLATFORM_WORKER_APP_ID = 'browserWorkerApp';\nconst PLATFORM_WORKER_UI_ID = 'browserWorkerUi';\n/**\n * Returns whether a platform id represents a browser platform.\n * @publicApi\n */\nfunction isPlatformBrowser(platformId) {\n return platformId === PLATFORM_BROWSER_ID;\n}\n/**\n * Returns whether a platform id represents a server platform.\n * @publicApi\n */\nfunction isPlatformServer(platformId) {\n return platformId === PLATFORM_SERVER_ID;\n}\n/**\n * Returns whether a platform id represents a web worker app platform.\n * @publicApi\n */\nfunction isPlatformWorkerApp(platformId) {\n return platformId === PLATFORM_WORKER_APP_ID;\n}\n/**\n * Returns whether a platform id represents a web worker UI platform.\n * @publicApi\n */\nfunction isPlatformWorkerUi(platformId) {\n return platformId === PLATFORM_WORKER_UI_ID;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @publicApi\n */\nconst VERSION = new Version('13.3.0');\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Defines a scroll position manager. Implemented by `BrowserViewportScroller`.\n *\n * @publicApi\n */\nclass ViewportScroller {\n}\n// De-sugared tree-shakable injection\n// See #23917\n/** @nocollapse */\nViewportScroller.ɵprov = ɵɵdefineInjectable({\n token: ViewportScroller,\n providedIn: 'root',\n factory: () => new BrowserViewportScroller(ɵɵinject(DOCUMENT), window)\n});\n/**\n * Manages the scroll position for a browser window.\n */\nclass BrowserViewportScroller {\n constructor(document, window) {\n this.document = document;\n this.window = window;\n this.offset = () => [0, 0];\n }\n /**\n * Configures the top offset used when scrolling to an anchor.\n * @param offset A position in screen coordinates (a tuple with x and y values)\n * or a function that returns the top offset position.\n *\n */\n setOffset(offset) {\n if (Array.isArray(offset)) {\n this.offset = () => offset;\n }\n else {\n this.offset = offset;\n }\n }\n /**\n * Retrieves the current scroll position.\n * @returns The position in screen coordinates.\n */\n getScrollPosition() {\n if (this.supportsScrolling()) {\n return [this.window.pageXOffset, this.window.pageYOffset];\n }\n else {\n return [0, 0];\n }\n }\n /**\n * Sets the scroll position.\n * @param position The new position in screen coordinates.\n */\n scrollToPosition(position) {\n if (this.supportsScrolling()) {\n this.window.scrollTo(position[0], position[1]);\n }\n }\n /**\n * Scrolls to an element and attempts to focus the element.\n *\n * Note that the function name here is misleading in that the target string may be an ID for a\n * non-anchor element.\n *\n * @param target The ID of an element or name of the anchor.\n *\n * @see https://html.spec.whatwg.org/#the-indicated-part-of-the-document\n * @see https://html.spec.whatwg.org/#scroll-to-fragid\n */\n scrollToAnchor(target) {\n if (!this.supportsScrolling()) {\n return;\n }\n const elSelected = findAnchorFromDocument(this.document, target);\n if (elSelected) {\n this.scrollToElement(elSelected);\n // After scrolling to the element, the spec dictates that we follow the focus steps for the\n // target. Rather than following the robust steps, simply attempt focus.\n //\n // @see https://html.spec.whatwg.org/#get-the-focusable-area\n // @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLOrForeignElement/focus\n // @see https://html.spec.whatwg.org/#focusable-area\n elSelected.focus();\n }\n }\n /**\n * Disables automatic scroll restoration provided by the browser.\n */\n setHistoryScrollRestoration(scrollRestoration) {\n if (this.supportScrollRestoration()) {\n const history = this.window.history;\n if (history && history.scrollRestoration) {\n history.scrollRestoration = scrollRestoration;\n }\n }\n }\n /**\n * Scrolls to an element using the native offset and the specified offset set on this scroller.\n *\n * The offset can be used when we know that there is a floating header and scrolling naively to an\n * element (ex: `scrollIntoView`) leaves the element hidden behind the floating header.\n */\n scrollToElement(el) {\n const rect = el.getBoundingClientRect();\n const left = rect.left + this.window.pageXOffset;\n const top = rect.top + this.window.pageYOffset;\n const offset = this.offset();\n this.window.scrollTo(left - offset[0], top - offset[1]);\n }\n /**\n * We only support scroll restoration when we can get a hold of window.\n * This means that we do not support this behavior when running in a web worker.\n *\n * Lifting this restriction right now would require more changes in the dom adapter.\n * Since webworkers aren't widely used, we will lift it once RouterScroller is\n * battle-tested.\n */\n supportScrollRestoration() {\n try {\n if (!this.supportsScrolling()) {\n return false;\n }\n // The `scrollRestoration` property could be on the `history` instance or its prototype.\n const scrollRestorationDescriptor = getScrollRestorationProperty(this.window.history) ||\n getScrollRestorationProperty(Object.getPrototypeOf(this.window.history));\n // We can write to the `scrollRestoration` property if it is a writable data field or it has a\n // setter function.\n return !!scrollRestorationDescriptor &&\n !!(scrollRestorationDescriptor.writable || scrollRestorationDescriptor.set);\n }\n catch (_a) {\n return false;\n }\n }\n supportsScrolling() {\n try {\n return !!this.window && !!this.window.scrollTo && 'pageXOffset' in this.window;\n }\n catch (_a) {\n return false;\n }\n }\n}\nfunction getScrollRestorationProperty(obj) {\n return Object.getOwnPropertyDescriptor(obj, 'scrollRestoration');\n}\nfunction findAnchorFromDocument(document, target) {\n const documentResult = document.getElementById(target) || document.getElementsByName(target)[0];\n if (documentResult) {\n return documentResult;\n }\n // `getElementById` and `getElementsByName` won't pierce through the shadow DOM so we\n // have to traverse the DOM manually and do the lookup through the shadow roots.\n if (typeof document.createTreeWalker === 'function' && document.body &&\n (document.body.createShadowRoot || document.body.attachShadow)) {\n const treeWalker = document.createTreeWalker(document.body, NodeFilter.SHOW_ELEMENT);\n let currentNode = treeWalker.currentNode;\n while (currentNode) {\n const shadowRoot = currentNode.shadowRoot;\n if (shadowRoot) {\n // Note that `ShadowRoot` doesn't support `getElementsByName`\n // so we have to fall back to `querySelector`.\n const result = shadowRoot.getElementById(target) || shadowRoot.querySelector(`[name=\"${target}\"]`);\n if (result) {\n return result;\n }\n }\n currentNode = treeWalker.nextNode();\n }\n }\n return null;\n}\n/**\n * Provides an empty implementation of the viewport scroller.\n */\nclass NullViewportScroller {\n /**\n * Empty implementation\n */\n setOffset(offset) { }\n /**\n * Empty implementation\n */\n getScrollPosition() {\n return [0, 0];\n }\n /**\n * Empty implementation\n */\n scrollToPosition(position) { }\n /**\n * Empty implementation\n */\n scrollToAnchor(anchor) { }\n /**\n * Empty implementation\n */\n setHistoryScrollRestoration(scrollRestoration) { }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A wrapper around the `XMLHttpRequest` constructor.\n *\n * @publicApi\n */\nclass XhrFactory {\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// This file only reexports content of the `src` folder. Keep it that way.\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { APP_BASE_HREF, AsyncPipe, CommonModule, CurrencyPipe, DATE_PIPE_DEFAULT_TIMEZONE, DOCUMENT, DatePipe, DecimalPipe, FormStyle, FormatWidth, HashLocationStrategy, I18nPluralPipe, I18nSelectPipe, JsonPipe, KeyValuePipe, LOCATION_INITIALIZED, Location, LocationStrategy, LowerCasePipe, NgClass, NgComponentOutlet, NgForOf, NgForOfContext, NgIf, NgIfContext, NgLocaleLocalization, NgLocalization, NgPlural, NgPluralCase, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgTemplateOutlet, NumberFormatStyle, NumberSymbol, PathLocationStrategy, PercentPipe, PlatformLocation, Plural, SlicePipe, TitleCasePipe, TranslationWidth, UpperCasePipe, VERSION, ViewportScroller, WeekDay, XhrFactory, formatCurrency, formatDate, formatNumber, formatPercent, getCurrencySymbol, getLocaleCurrencyCode, getLocaleCurrencyName, getLocaleCurrencySymbol, getLocaleDateFormat, getLocaleDateTimeFormat, getLocaleDayNames, getLocaleDayPeriods, getLocaleDirection, getLocaleEraNames, getLocaleExtraDayPeriodRules, getLocaleExtraDayPeriods, getLocaleFirstDayOfWeek, getLocaleId, getLocaleMonthNames, getLocaleNumberFormat, getLocaleNumberSymbol, getLocalePluralCase, getLocaleTimeFormat, getLocaleWeekEndRange, getNumberOfCurrencyDigits, isPlatformBrowser, isPlatformServer, isPlatformWorkerApp, isPlatformWorkerUi, registerLocaleData, BrowserPlatformLocation as ɵBrowserPlatformLocation, DomAdapter as ɵDomAdapter, NullViewportScroller as ɵNullViewportScroller, PLATFORM_BROWSER_ID as ɵPLATFORM_BROWSER_ID, PLATFORM_SERVER_ID as ɵPLATFORM_SERVER_ID, PLATFORM_WORKER_APP_ID as ɵPLATFORM_WORKER_APP_ID, PLATFORM_WORKER_UI_ID as ɵPLATFORM_WORKER_UI_ID, getDOM as ɵgetDOM, parseCookieValue as ɵparseCookieValue, setRootDomAdapter as ɵsetRootDomAdapter };\n","/**\n * @license Angular v13.3.0\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i1 from '@angular/common';\nimport { DOCUMENT, ɵparseCookieValue, XhrFactory as XhrFactory$1 } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, InjectionToken, Inject, PLATFORM_ID, NgModule } from '@angular/core';\nimport { of, Observable } from 'rxjs';\nimport { concatMap, filter, map } from 'rxjs/operators';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Transforms an `HttpRequest` into a stream of `HttpEvent`s, one of which will likely be a\n * `HttpResponse`.\n *\n * `HttpHandler` is injectable. When injected, the handler instance dispatches requests to the\n * first interceptor in the chain, which dispatches to the second, etc, eventually reaching the\n * `HttpBackend`.\n *\n * In an `HttpInterceptor`, the `HttpHandler` parameter is the next interceptor in the chain.\n *\n * @publicApi\n */\nclass HttpHandler {\n}\n/**\n * A final `HttpHandler` which will dispatch the request via browser HTTP APIs to a backend.\n *\n * Interceptors sit between the `HttpClient` interface and the `HttpBackend`.\n *\n * When injected, `HttpBackend` dispatches requests directly to the backend, without going\n * through the interceptor chain.\n *\n * @publicApi\n */\nclass HttpBackend {\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Represents the header configuration options for an HTTP request.\n * Instances are immutable. Modifying methods return a cloned\n * instance with the change. The original object is never changed.\n *\n * @publicApi\n */\nclass HttpHeaders {\n /** Constructs a new HTTP header object with the given values.*/\n constructor(headers) {\n /**\n * Internal map of lowercased header names to the normalized\n * form of the name (the form seen first).\n */\n this.normalizedNames = new Map();\n /**\n * Queued updates to be materialized the next initialization.\n */\n this.lazyUpdate = null;\n if (!headers) {\n this.headers = new Map();\n }\n else if (typeof headers === 'string') {\n this.lazyInit = () => {\n this.headers = new Map();\n headers.split('\\n').forEach(line => {\n const index = line.indexOf(':');\n if (index > 0) {\n const name = line.slice(0, index);\n const key = name.toLowerCase();\n const value = line.slice(index + 1).trim();\n this.maybeSetNormalizedName(name, key);\n if (this.headers.has(key)) {\n this.headers.get(key).push(value);\n }\n else {\n this.headers.set(key, [value]);\n }\n }\n });\n };\n }\n else {\n this.lazyInit = () => {\n this.headers = new Map();\n Object.keys(headers).forEach(name => {\n let values = headers[name];\n const key = name.toLowerCase();\n if (typeof values === 'string') {\n values = [values];\n }\n if (values.length > 0) {\n this.headers.set(key, values);\n this.maybeSetNormalizedName(name, key);\n }\n });\n };\n }\n }\n /**\n * Checks for existence of a given header.\n *\n * @param name The header name to check for existence.\n *\n * @returns True if the header exists, false otherwise.\n */\n has(name) {\n this.init();\n return this.headers.has(name.toLowerCase());\n }\n /**\n * Retrieves the first value of a given header.\n *\n * @param name The header name.\n *\n * @returns The value string if the header exists, null otherwise\n */\n get(name) {\n this.init();\n const values = this.headers.get(name.toLowerCase());\n return values && values.length > 0 ? values[0] : null;\n }\n /**\n * Retrieves the names of the headers.\n *\n * @returns A list of header names.\n */\n keys() {\n this.init();\n return Array.from(this.normalizedNames.values());\n }\n /**\n * Retrieves a list of values for a given header.\n *\n * @param name The header name from which to retrieve values.\n *\n * @returns A string of values if the header exists, null otherwise.\n */\n getAll(name) {\n this.init();\n return this.headers.get(name.toLowerCase()) || null;\n }\n /**\n * Appends a new value to the existing set of values for a header\n * and returns them in a clone of the original instance.\n *\n * @param name The header name for which to append the values.\n * @param value The value to append.\n *\n * @returns A clone of the HTTP headers object with the value appended to the given header.\n */\n append(name, value) {\n return this.clone({ name, value, op: 'a' });\n }\n /**\n * Sets or modifies a value for a given header in a clone of the original instance.\n * If the header already exists, its value is replaced with the given value\n * in the returned object.\n *\n * @param name The header name.\n * @param value The value or values to set or overide for the given header.\n *\n * @returns A clone of the HTTP headers object with the newly set header value.\n */\n set(name, value) {\n return this.clone({ name, value, op: 's' });\n }\n /**\n * Deletes values for a given header in a clone of the original instance.\n *\n * @param name The header name.\n * @param value The value or values to delete for the given header.\n *\n * @returns A clone of the HTTP headers object with the given value deleted.\n */\n delete(name, value) {\n return this.clone({ name, value, op: 'd' });\n }\n maybeSetNormalizedName(name, lcName) {\n if (!this.normalizedNames.has(lcName)) {\n this.normalizedNames.set(lcName, name);\n }\n }\n init() {\n if (!!this.lazyInit) {\n if (this.lazyInit instanceof HttpHeaders) {\n this.copyFrom(this.lazyInit);\n }\n else {\n this.lazyInit();\n }\n this.lazyInit = null;\n if (!!this.lazyUpdate) {\n this.lazyUpdate.forEach(update => this.applyUpdate(update));\n this.lazyUpdate = null;\n }\n }\n }\n copyFrom(other) {\n other.init();\n Array.from(other.headers.keys()).forEach(key => {\n this.headers.set(key, other.headers.get(key));\n this.normalizedNames.set(key, other.normalizedNames.get(key));\n });\n }\n clone(update) {\n const clone = new HttpHeaders();\n clone.lazyInit =\n (!!this.lazyInit && this.lazyInit instanceof HttpHeaders) ? this.lazyInit : this;\n clone.lazyUpdate = (this.lazyUpdate || []).concat([update]);\n return clone;\n }\n applyUpdate(update) {\n const key = update.name.toLowerCase();\n switch (update.op) {\n case 'a':\n case 's':\n let value = update.value;\n if (typeof value === 'string') {\n value = [value];\n }\n if (value.length === 0) {\n return;\n }\n this.maybeSetNormalizedName(update.name, key);\n const base = (update.op === 'a' ? this.headers.get(key) : undefined) || [];\n base.push(...value);\n this.headers.set(key, base);\n break;\n case 'd':\n const toDelete = update.value;\n if (!toDelete) {\n this.headers.delete(key);\n this.normalizedNames.delete(key);\n }\n else {\n let existing = this.headers.get(key);\n if (!existing) {\n return;\n }\n existing = existing.filter(value => toDelete.indexOf(value) === -1);\n if (existing.length === 0) {\n this.headers.delete(key);\n this.normalizedNames.delete(key);\n }\n else {\n this.headers.set(key, existing);\n }\n }\n break;\n }\n }\n /**\n * @internal\n */\n forEach(fn) {\n this.init();\n Array.from(this.normalizedNames.keys())\n .forEach(key => fn(this.normalizedNames.get(key), this.headers.get(key)));\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Provides encoding and decoding of URL parameter and query-string values.\n *\n * Serializes and parses URL parameter keys and values to encode and decode them.\n * If you pass URL query parameters without encoding,\n * the query parameters can be misinterpreted at the receiving end.\n *\n *\n * @publicApi\n */\nclass HttpUrlEncodingCodec {\n /**\n * Encodes a key name for a URL parameter or query-string.\n * @param key The key name.\n * @returns The encoded key name.\n */\n encodeKey(key) {\n return standardEncoding(key);\n }\n /**\n * Encodes the value of a URL parameter or query-string.\n * @param value The value.\n * @returns The encoded value.\n */\n encodeValue(value) {\n return standardEncoding(value);\n }\n /**\n * Decodes an encoded URL parameter or query-string key.\n * @param key The encoded key name.\n * @returns The decoded key name.\n */\n decodeKey(key) {\n return decodeURIComponent(key);\n }\n /**\n * Decodes an encoded URL parameter or query-string value.\n * @param value The encoded value.\n * @returns The decoded value.\n */\n decodeValue(value) {\n return decodeURIComponent(value);\n }\n}\nfunction paramParser(rawParams, codec) {\n const map = new Map();\n if (rawParams.length > 0) {\n // The `window.location.search` can be used while creating an instance of the `HttpParams` class\n // (e.g. `new HttpParams({ fromString: window.location.search })`). The `window.location.search`\n // may start with the `?` char, so we strip it if it's present.\n const params = rawParams.replace(/^\\?/, '').split('&');\n params.forEach((param) => {\n const eqIdx = param.indexOf('=');\n const [key, val] = eqIdx == -1 ?\n [codec.decodeKey(param), ''] :\n [codec.decodeKey(param.slice(0, eqIdx)), codec.decodeValue(param.slice(eqIdx + 1))];\n const list = map.get(key) || [];\n list.push(val);\n map.set(key, list);\n });\n }\n return map;\n}\n/**\n * Encode input string with standard encodeURIComponent and then un-encode specific characters.\n */\nconst STANDARD_ENCODING_REGEX = /%(\\d[a-f0-9])/gi;\nconst STANDARD_ENCODING_REPLACEMENTS = {\n '40': '@',\n '3A': ':',\n '24': '$',\n '2C': ',',\n '3B': ';',\n '2B': '+',\n '3D': '=',\n '3F': '?',\n '2F': '/',\n};\nfunction standardEncoding(v) {\n return encodeURIComponent(v).replace(STANDARD_ENCODING_REGEX, (s, t) => { var _a; return (_a = STANDARD_ENCODING_REPLACEMENTS[t]) !== null && _a !== void 0 ? _a : s; });\n}\nfunction valueToString(value) {\n return `${value}`;\n}\n/**\n * An HTTP request/response body that represents serialized parameters,\n * per the MIME type `application/x-www-form-urlencoded`.\n *\n * This class is immutable; all mutation operations return a new instance.\n *\n * @publicApi\n */\nclass HttpParams {\n constructor(options = {}) {\n this.updates = null;\n this.cloneFrom = null;\n this.encoder = options.encoder || new HttpUrlEncodingCodec();\n if (!!options.fromString) {\n if (!!options.fromObject) {\n throw new Error(`Cannot specify both fromString and fromObject.`);\n }\n this.map = paramParser(options.fromString, this.encoder);\n }\n else if (!!options.fromObject) {\n this.map = new Map();\n Object.keys(options.fromObject).forEach(key => {\n const value = options.fromObject[key];\n this.map.set(key, Array.isArray(value) ? value : [value]);\n });\n }\n else {\n this.map = null;\n }\n }\n /**\n * Reports whether the body includes one or more values for a given parameter.\n * @param param The parameter name.\n * @returns True if the parameter has one or more values,\n * false if it has no value or is not present.\n */\n has(param) {\n this.init();\n return this.map.has(param);\n }\n /**\n * Retrieves the first value for a parameter.\n * @param param The parameter name.\n * @returns The first value of the given parameter,\n * or `null` if the parameter is not present.\n */\n get(param) {\n this.init();\n const res = this.map.get(param);\n return !!res ? res[0] : null;\n }\n /**\n * Retrieves all values for a parameter.\n * @param param The parameter name.\n * @returns All values in a string array,\n * or `null` if the parameter not present.\n */\n getAll(param) {\n this.init();\n return this.map.get(param) || null;\n }\n /**\n * Retrieves all the parameters for this body.\n * @returns The parameter names in a string array.\n */\n keys() {\n this.init();\n return Array.from(this.map.keys());\n }\n /**\n * Appends a new value to existing values for a parameter.\n * @param param The parameter name.\n * @param value The new value to add.\n * @return A new body with the appended value.\n */\n append(param, value) {\n return this.clone({ param, value, op: 'a' });\n }\n /**\n * Constructs a new body with appended values for the given parameter name.\n * @param params parameters and values\n * @return A new body with the new value.\n */\n appendAll(params) {\n const updates = [];\n Object.keys(params).forEach(param => {\n const value = params[param];\n if (Array.isArray(value)) {\n value.forEach(_value => {\n updates.push({ param, value: _value, op: 'a' });\n });\n }\n else {\n updates.push({ param, value: value, op: 'a' });\n }\n });\n return this.clone(updates);\n }\n /**\n * Replaces the value for a parameter.\n * @param param The parameter name.\n * @param value The new value.\n * @return A new body with the new value.\n */\n set(param, value) {\n return this.clone({ param, value, op: 's' });\n }\n /**\n * Removes a given value or all values from a parameter.\n * @param param The parameter name.\n * @param value The value to remove, if provided.\n * @return A new body with the given value removed, or with all values\n * removed if no value is specified.\n */\n delete(param, value) {\n return this.clone({ param, value, op: 'd' });\n }\n /**\n * Serializes the body to an encoded string, where key-value pairs (separated by `=`) are\n * separated by `&`s.\n */\n toString() {\n this.init();\n return this.keys()\n .map(key => {\n const eKey = this.encoder.encodeKey(key);\n // `a: ['1']` produces `'a=1'`\n // `b: []` produces `''`\n // `c: ['1', '2']` produces `'c=1&c=2'`\n return this.map.get(key).map(value => eKey + '=' + this.encoder.encodeValue(value))\n .join('&');\n })\n // filter out empty values because `b: []` produces `''`\n // which results in `a=1&&c=1&c=2` instead of `a=1&c=1&c=2` if we don't\n .filter(param => param !== '')\n .join('&');\n }\n clone(update) {\n const clone = new HttpParams({ encoder: this.encoder });\n clone.cloneFrom = this.cloneFrom || this;\n clone.updates = (this.updates || []).concat(update);\n return clone;\n }\n init() {\n if (this.map === null) {\n this.map = new Map();\n }\n if (this.cloneFrom !== null) {\n this.cloneFrom.init();\n this.cloneFrom.keys().forEach(key => this.map.set(key, this.cloneFrom.map.get(key)));\n this.updates.forEach(update => {\n switch (update.op) {\n case 'a':\n case 's':\n const base = (update.op === 'a' ? this.map.get(update.param) : undefined) || [];\n base.push(valueToString(update.value));\n this.map.set(update.param, base);\n break;\n case 'd':\n if (update.value !== undefined) {\n let base = this.map.get(update.param) || [];\n const idx = base.indexOf(valueToString(update.value));\n if (idx !== -1) {\n base.splice(idx, 1);\n }\n if (base.length > 0) {\n this.map.set(update.param, base);\n }\n else {\n this.map.delete(update.param);\n }\n }\n else {\n this.map.delete(update.param);\n break;\n }\n }\n });\n this.cloneFrom = this.updates = null;\n }\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A token used to manipulate and access values stored in `HttpContext`.\n *\n * @publicApi\n */\nclass HttpContextToken {\n constructor(defaultValue) {\n this.defaultValue = defaultValue;\n }\n}\n/**\n * Http context stores arbitrary user defined values and ensures type safety without\n * actually knowing the types. It is backed by a `Map` and guarantees that keys do not clash.\n *\n * This context is mutable and is shared between cloned requests unless explicitly specified.\n *\n * @usageNotes\n *\n * ### Usage Example\n *\n * ```typescript\n * // inside cache.interceptors.ts\n * export const IS_CACHE_ENABLED = new HttpContextToken(() => false);\n *\n * export class CacheInterceptor implements HttpInterceptor {\n *\n * intercept(req: HttpRequest, delegate: HttpHandler): Observable> {\n * if (req.context.get(IS_CACHE_ENABLED) === true) {\n * return ...;\n * }\n * return delegate.handle(req);\n * }\n * }\n *\n * // inside a service\n *\n * this.httpClient.get('/api/weather', {\n * context: new HttpContext().set(IS_CACHE_ENABLED, true)\n * }).subscribe(...);\n * ```\n *\n * @publicApi\n */\nclass HttpContext {\n constructor() {\n this.map = new Map();\n }\n /**\n * Store a value in the context. If a value is already present it will be overwritten.\n *\n * @param token The reference to an instance of `HttpContextToken`.\n * @param value The value to store.\n *\n * @returns A reference to itself for easy chaining.\n */\n set(token, value) {\n this.map.set(token, value);\n return this;\n }\n /**\n * Retrieve the value associated with the given token.\n *\n * @param token The reference to an instance of `HttpContextToken`.\n *\n * @returns The stored value or default if one is defined.\n */\n get(token) {\n if (!this.map.has(token)) {\n this.map.set(token, token.defaultValue());\n }\n return this.map.get(token);\n }\n /**\n * Delete the value associated with the given token.\n *\n * @param token The reference to an instance of `HttpContextToken`.\n *\n * @returns A reference to itself for easy chaining.\n */\n delete(token) {\n this.map.delete(token);\n return this;\n }\n /**\n * Checks for existence of a given token.\n *\n * @param token The reference to an instance of `HttpContextToken`.\n *\n * @returns True if the token exists, false otherwise.\n */\n has(token) {\n return this.map.has(token);\n }\n /**\n * @returns a list of tokens currently stored in the context.\n */\n keys() {\n return this.map.keys();\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Determine whether the given HTTP method may include a body.\n */\nfunction mightHaveBody(method) {\n switch (method) {\n case 'DELETE':\n case 'GET':\n case 'HEAD':\n case 'OPTIONS':\n case 'JSONP':\n return false;\n default:\n return true;\n }\n}\n/**\n * Safely assert whether the given value is an ArrayBuffer.\n *\n * In some execution environments ArrayBuffer is not defined.\n */\nfunction isArrayBuffer(value) {\n return typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer;\n}\n/**\n * Safely assert whether the given value is a Blob.\n *\n * In some execution environments Blob is not defined.\n */\nfunction isBlob(value) {\n return typeof Blob !== 'undefined' && value instanceof Blob;\n}\n/**\n * Safely assert whether the given value is a FormData instance.\n *\n * In some execution environments FormData is not defined.\n */\nfunction isFormData(value) {\n return typeof FormData !== 'undefined' && value instanceof FormData;\n}\n/**\n * Safely assert whether the given value is a URLSearchParams instance.\n *\n * In some execution environments URLSearchParams is not defined.\n */\nfunction isUrlSearchParams(value) {\n return typeof URLSearchParams !== 'undefined' && value instanceof URLSearchParams;\n}\n/**\n * An outgoing HTTP request with an optional typed body.\n *\n * `HttpRequest` represents an outgoing request, including URL, method,\n * headers, body, and other request configuration options. Instances should be\n * assumed to be immutable. To modify a `HttpRequest`, the `clone`\n * method should be used.\n *\n * @publicApi\n */\nclass HttpRequest {\n constructor(method, url, third, fourth) {\n this.url = url;\n /**\n * The request body, or `null` if one isn't set.\n *\n * Bodies are not enforced to be immutable, as they can include a reference to any\n * user-defined data type. However, interceptors should take care to preserve\n * idempotence by treating them as such.\n */\n this.body = null;\n /**\n * Whether this request should be made in a way that exposes progress events.\n *\n * Progress events are expensive (change detection runs on each event) and so\n * they should only be requested if the consumer intends to monitor them.\n */\n this.reportProgress = false;\n /**\n * Whether this request should be sent with outgoing credentials (cookies).\n */\n this.withCredentials = false;\n /**\n * The expected response type of the server.\n *\n * This is used to parse the response appropriately before returning it to\n * the requestee.\n */\n this.responseType = 'json';\n this.method = method.toUpperCase();\n // Next, need to figure out which argument holds the HttpRequestInit\n // options, if any.\n let options;\n // Check whether a body argument is expected. The only valid way to omit\n // the body argument is to use a known no-body method like GET.\n if (mightHaveBody(this.method) || !!fourth) {\n // Body is the third argument, options are the fourth.\n this.body = (third !== undefined) ? third : null;\n options = fourth;\n }\n else {\n // No body required, options are the third argument. The body stays null.\n options = third;\n }\n // If options have been passed, interpret them.\n if (options) {\n // Normalize reportProgress and withCredentials.\n this.reportProgress = !!options.reportProgress;\n this.withCredentials = !!options.withCredentials;\n // Override default response type of 'json' if one is provided.\n if (!!options.responseType) {\n this.responseType = options.responseType;\n }\n // Override headers if they're provided.\n if (!!options.headers) {\n this.headers = options.headers;\n }\n if (!!options.context) {\n this.context = options.context;\n }\n if (!!options.params) {\n this.params = options.params;\n }\n }\n // If no headers have been passed in, construct a new HttpHeaders instance.\n if (!this.headers) {\n this.headers = new HttpHeaders();\n }\n // If no context have been passed in, construct a new HttpContext instance.\n if (!this.context) {\n this.context = new HttpContext();\n }\n // If no parameters have been passed in, construct a new HttpUrlEncodedParams instance.\n if (!this.params) {\n this.params = new HttpParams();\n this.urlWithParams = url;\n }\n else {\n // Encode the parameters to a string in preparation for inclusion in the URL.\n const params = this.params.toString();\n if (params.length === 0) {\n // No parameters, the visible URL is just the URL given at creation time.\n this.urlWithParams = url;\n }\n else {\n // Does the URL already have query parameters? Look for '?'.\n const qIdx = url.indexOf('?');\n // There are 3 cases to handle:\n // 1) No existing parameters -> append '?' followed by params.\n // 2) '?' exists and is followed by existing query string ->\n // append '&' followed by params.\n // 3) '?' exists at the end of the url -> append params directly.\n // This basically amounts to determining the character, if any, with\n // which to join the URL and parameters.\n const sep = qIdx === -1 ? '?' : (qIdx < url.length - 1 ? '&' : '');\n this.urlWithParams = url + sep + params;\n }\n }\n }\n /**\n * Transform the free-form body into a serialized format suitable for\n * transmission to the server.\n */\n serializeBody() {\n // If no body is present, no need to serialize it.\n if (this.body === null) {\n return null;\n }\n // Check whether the body is already in a serialized form. If so,\n // it can just be returned directly.\n if (isArrayBuffer(this.body) || isBlob(this.body) || isFormData(this.body) ||\n isUrlSearchParams(this.body) || typeof this.body === 'string') {\n return this.body;\n }\n // Check whether the body is an instance of HttpUrlEncodedParams.\n if (this.body instanceof HttpParams) {\n return this.body.toString();\n }\n // Check whether the body is an object or array, and serialize with JSON if so.\n if (typeof this.body === 'object' || typeof this.body === 'boolean' ||\n Array.isArray(this.body)) {\n return JSON.stringify(this.body);\n }\n // Fall back on toString() for everything else.\n return this.body.toString();\n }\n /**\n * Examine the body and attempt to infer an appropriate MIME type\n * for it.\n *\n * If no such type can be inferred, this method will return `null`.\n */\n detectContentTypeHeader() {\n // An empty body has no content type.\n if (this.body === null) {\n return null;\n }\n // FormData bodies rely on the browser's content type assignment.\n if (isFormData(this.body)) {\n return null;\n }\n // Blobs usually have their own content type. If it doesn't, then\n // no type can be inferred.\n if (isBlob(this.body)) {\n return this.body.type || null;\n }\n // Array buffers have unknown contents and thus no type can be inferred.\n if (isArrayBuffer(this.body)) {\n return null;\n }\n // Technically, strings could be a form of JSON data, but it's safe enough\n // to assume they're plain strings.\n if (typeof this.body === 'string') {\n return 'text/plain';\n }\n // `HttpUrlEncodedParams` has its own content-type.\n if (this.body instanceof HttpParams) {\n return 'application/x-www-form-urlencoded;charset=UTF-8';\n }\n // Arrays, objects, boolean and numbers will be encoded as JSON.\n if (typeof this.body === 'object' || typeof this.body === 'number' ||\n typeof this.body === 'boolean') {\n return 'application/json';\n }\n // No type could be inferred.\n return null;\n }\n clone(update = {}) {\n var _a;\n // For method, url, and responseType, take the current value unless\n // it is overridden in the update hash.\n const method = update.method || this.method;\n const url = update.url || this.url;\n const responseType = update.responseType || this.responseType;\n // The body is somewhat special - a `null` value in update.body means\n // whatever current body is present is being overridden with an empty\n // body, whereas an `undefined` value in update.body implies no\n // override.\n const body = (update.body !== undefined) ? update.body : this.body;\n // Carefully handle the boolean options to differentiate between\n // `false` and `undefined` in the update args.\n const withCredentials = (update.withCredentials !== undefined) ? update.withCredentials : this.withCredentials;\n const reportProgress = (update.reportProgress !== undefined) ? update.reportProgress : this.reportProgress;\n // Headers and params may be appended to if `setHeaders` or\n // `setParams` are used.\n let headers = update.headers || this.headers;\n let params = update.params || this.params;\n // Pass on context if needed\n const context = (_a = update.context) !== null && _a !== void 0 ? _a : this.context;\n // Check whether the caller has asked to add headers.\n if (update.setHeaders !== undefined) {\n // Set every requested header.\n headers =\n Object.keys(update.setHeaders)\n .reduce((headers, name) => headers.set(name, update.setHeaders[name]), headers);\n }\n // Check whether the caller has asked to set params.\n if (update.setParams) {\n // Set every requested param.\n params = Object.keys(update.setParams)\n .reduce((params, param) => params.set(param, update.setParams[param]), params);\n }\n // Finally, construct the new HttpRequest using the pieces from above.\n return new HttpRequest(method, url, body, {\n params,\n headers,\n context,\n reportProgress,\n responseType,\n withCredentials,\n });\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Type enumeration for the different kinds of `HttpEvent`.\n *\n * @publicApi\n */\nvar HttpEventType;\n(function (HttpEventType) {\n /**\n * The request was sent out over the wire.\n */\n HttpEventType[HttpEventType[\"Sent\"] = 0] = \"Sent\";\n /**\n * An upload progress event was received.\n */\n HttpEventType[HttpEventType[\"UploadProgress\"] = 1] = \"UploadProgress\";\n /**\n * The response status code and headers were received.\n */\n HttpEventType[HttpEventType[\"ResponseHeader\"] = 2] = \"ResponseHeader\";\n /**\n * A download progress event was received.\n */\n HttpEventType[HttpEventType[\"DownloadProgress\"] = 3] = \"DownloadProgress\";\n /**\n * The full response including the body was received.\n */\n HttpEventType[HttpEventType[\"Response\"] = 4] = \"Response\";\n /**\n * A custom event from an interceptor or a backend.\n */\n HttpEventType[HttpEventType[\"User\"] = 5] = \"User\";\n})(HttpEventType || (HttpEventType = {}));\n/**\n * Base class for both `HttpResponse` and `HttpHeaderResponse`.\n *\n * @publicApi\n */\nclass HttpResponseBase {\n /**\n * Super-constructor for all responses.\n *\n * The single parameter accepted is an initialization hash. Any properties\n * of the response passed there will override the default values.\n */\n constructor(init, defaultStatus = 200 /* Ok */, defaultStatusText = 'OK') {\n // If the hash has values passed, use them to initialize the response.\n // Otherwise use the default values.\n this.headers = init.headers || new HttpHeaders();\n this.status = init.status !== undefined ? init.status : defaultStatus;\n this.statusText = init.statusText || defaultStatusText;\n this.url = init.url || null;\n // Cache the ok value to avoid defining a getter.\n this.ok = this.status >= 200 && this.status < 300;\n }\n}\n/**\n * A partial HTTP response which only includes the status and header data,\n * but no response body.\n *\n * `HttpHeaderResponse` is a `HttpEvent` available on the response\n * event stream, only when progress events are requested.\n *\n * @publicApi\n */\nclass HttpHeaderResponse extends HttpResponseBase {\n /**\n * Create a new `HttpHeaderResponse` with the given parameters.\n */\n constructor(init = {}) {\n super(init);\n this.type = HttpEventType.ResponseHeader;\n }\n /**\n * Copy this `HttpHeaderResponse`, overriding its contents with the\n * given parameter hash.\n */\n clone(update = {}) {\n // Perform a straightforward initialization of the new HttpHeaderResponse,\n // overriding the current parameters with new ones if given.\n return new HttpHeaderResponse({\n headers: update.headers || this.headers,\n status: update.status !== undefined ? update.status : this.status,\n statusText: update.statusText || this.statusText,\n url: update.url || this.url || undefined,\n });\n }\n}\n/**\n * A full HTTP response, including a typed response body (which may be `null`\n * if one was not returned).\n *\n * `HttpResponse` is a `HttpEvent` available on the response event\n * stream.\n *\n * @publicApi\n */\nclass HttpResponse extends HttpResponseBase {\n /**\n * Construct a new `HttpResponse`.\n */\n constructor(init = {}) {\n super(init);\n this.type = HttpEventType.Response;\n this.body = init.body !== undefined ? init.body : null;\n }\n clone(update = {}) {\n return new HttpResponse({\n body: (update.body !== undefined) ? update.body : this.body,\n headers: update.headers || this.headers,\n status: (update.status !== undefined) ? update.status : this.status,\n statusText: update.statusText || this.statusText,\n url: update.url || this.url || undefined,\n });\n }\n}\n/**\n * A response that represents an error or failure, either from a\n * non-successful HTTP status, an error while executing the request,\n * or some other failure which occurred during the parsing of the response.\n *\n * Any error returned on the `Observable` response stream will be\n * wrapped in an `HttpErrorResponse` to provide additional context about\n * the state of the HTTP layer when the error occurred. The error property\n * will contain either a wrapped Error object or the error response returned\n * from the server.\n *\n * @publicApi\n */\nclass HttpErrorResponse extends HttpResponseBase {\n constructor(init) {\n // Initialize with a default status of 0 / Unknown Error.\n super(init, 0, 'Unknown Error');\n this.name = 'HttpErrorResponse';\n /**\n * Errors are never okay, even when the status code is in the 2xx success range.\n */\n this.ok = false;\n // If the response was successful, then this was a parse error. Otherwise, it was\n // a protocol-level failure of some sort. Either the request failed in transit\n // or the server returned an unsuccessful status code.\n if (this.status >= 200 && this.status < 300) {\n this.message = `Http failure during parsing for ${init.url || '(unknown url)'}`;\n }\n else {\n this.message = `Http failure response for ${init.url || '(unknown url)'}: ${init.status} ${init.statusText}`;\n }\n this.error = init.error || null;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Constructs an instance of `HttpRequestOptions` from a source `HttpMethodOptions` and\n * the given `body`. This function clones the object and adds the body.\n *\n * Note that the `responseType` *options* value is a String that identifies the\n * single data type of the response.\n * A single overload version of the method handles each response type.\n * The value of `responseType` cannot be a union, as the combined signature could imply.\n *\n */\nfunction addBody(options, body) {\n return {\n body,\n headers: options.headers,\n context: options.context,\n observe: options.observe,\n params: options.params,\n reportProgress: options.reportProgress,\n responseType: options.responseType,\n withCredentials: options.withCredentials,\n };\n}\n/**\n * Performs HTTP requests.\n * This service is available as an injectable class, with methods to perform HTTP requests.\n * Each request method has multiple signatures, and the return type varies based on\n * the signature that is called (mainly the values of `observe` and `responseType`).\n *\n * Note that the `responseType` *options* value is a String that identifies the\n * single data type of the response.\n * A single overload version of the method handles each response type.\n * The value of `responseType` cannot be a union, as the combined signature could imply.\n\n *\n * @usageNotes\n * Sample HTTP requests for the [Tour of Heroes](/tutorial/toh-pt0) application.\n *\n * ### HTTP Request Example\n *\n * ```\n * // GET heroes whose name contains search term\n * searchHeroes(term: string): observable{\n *\n * const params = new HttpParams({fromString: 'name=term'});\n * return this.httpClient.request('GET', this.heroesUrl, {responseType:'json', params});\n * }\n * ```\n *\n * Alternatively, the parameter string can be used without invoking HttpParams\n * by directly joining to the URL.\n * ```\n * this.httpClient.request('GET', this.heroesUrl + '?' + 'name=term', {responseType:'json'});\n * ```\n *\n *\n * ### JSONP Example\n * ```\n * requestJsonp(url, callback = 'callback') {\n * return this.httpClient.jsonp(this.heroesURL, callback);\n * }\n * ```\n *\n * ### PATCH Example\n * ```\n * // PATCH one of the heroes' name\n * patchHero (id: number, heroName: string): Observable<{}> {\n * const url = `${this.heroesUrl}/${id}`; // PATCH api/heroes/42\n * return this.httpClient.patch(url, {name: heroName}, httpOptions)\n * .pipe(catchError(this.handleError('patchHero')));\n * }\n * ```\n *\n * @see [HTTP Guide](guide/http)\n * @see [HTTP Request](api/common/http/HttpRequest)\n *\n * @publicApi\n */\nclass HttpClient {\n constructor(handler) {\n this.handler = handler;\n }\n /**\n * Constructs an observable for a generic HTTP request that, when subscribed,\n * fires the request through the chain of registered interceptors and on to the\n * server.\n *\n * You can pass an `HttpRequest` directly as the only parameter. In this case,\n * the call returns an observable of the raw `HttpEvent` stream.\n *\n * Alternatively you can pass an HTTP method as the first parameter,\n * a URL string as the second, and an options hash containing the request body as the third.\n * See `addBody()`. In this case, the specified `responseType` and `observe` options determine the\n * type of returned observable.\n * * The `responseType` value determines how a successful response body is parsed.\n * * If `responseType` is the default `json`, you can pass a type interface for the resulting\n * object as a type parameter to the call.\n *\n * The `observe` value determines the return type, according to what you are interested in\n * observing.\n * * An `observe` value of events returns an observable of the raw `HttpEvent` stream, including\n * progress events by default.\n * * An `observe` value of response returns an observable of `HttpResponse`,\n * where the `T` parameter depends on the `responseType` and any optionally provided type\n * parameter.\n * * An `observe` value of body returns an observable of `` with the same `T` body type.\n *\n */\n request(first, url, options = {}) {\n let req;\n // First, check whether the primary argument is an instance of `HttpRequest`.\n if (first instanceof HttpRequest) {\n // It is. The other arguments must be undefined (per the signatures) and can be\n // ignored.\n req = first;\n }\n else {\n // It's a string, so it represents a URL. Construct a request based on it,\n // and incorporate the remaining arguments (assuming `GET` unless a method is\n // provided.\n // Figure out the headers.\n let headers = undefined;\n if (options.headers instanceof HttpHeaders) {\n headers = options.headers;\n }\n else {\n headers = new HttpHeaders(options.headers);\n }\n // Sort out parameters.\n let params = undefined;\n if (!!options.params) {\n if (options.params instanceof HttpParams) {\n params = options.params;\n }\n else {\n params = new HttpParams({ fromObject: options.params });\n }\n }\n // Construct the request.\n req = new HttpRequest(first, url, (options.body !== undefined ? options.body : null), {\n headers,\n context: options.context,\n params,\n reportProgress: options.reportProgress,\n // By default, JSON is assumed to be returned for all calls.\n responseType: options.responseType || 'json',\n withCredentials: options.withCredentials,\n });\n }\n // Start with an Observable.of() the initial request, and run the handler (which\n // includes all interceptors) inside a concatMap(). This way, the handler runs\n // inside an Observable chain, which causes interceptors to be re-run on every\n // subscription (this also makes retries re-run the handler, including interceptors).\n const events$ = of(req).pipe(concatMap((req) => this.handler.handle(req)));\n // If coming via the API signature which accepts a previously constructed HttpRequest,\n // the only option is to get the event stream. Otherwise, return the event stream if\n // that is what was requested.\n if (first instanceof HttpRequest || options.observe === 'events') {\n return events$;\n }\n // The requested stream contains either the full response or the body. In either\n // case, the first step is to filter the event stream to extract a stream of\n // responses(s).\n const res$ = events$.pipe(filter((event) => event instanceof HttpResponse));\n // Decide which stream to return.\n switch (options.observe || 'body') {\n case 'body':\n // The requested stream is the body. Map the response stream to the response\n // body. This could be done more simply, but a misbehaving interceptor might\n // transform the response body into a different format and ignore the requested\n // responseType. Guard against this by validating that the response is of the\n // requested type.\n switch (req.responseType) {\n case 'arraybuffer':\n return res$.pipe(map((res) => {\n // Validate that the body is an ArrayBuffer.\n if (res.body !== null && !(res.body instanceof ArrayBuffer)) {\n throw new Error('Response is not an ArrayBuffer.');\n }\n return res.body;\n }));\n case 'blob':\n return res$.pipe(map((res) => {\n // Validate that the body is a Blob.\n if (res.body !== null && !(res.body instanceof Blob)) {\n throw new Error('Response is not a Blob.');\n }\n return res.body;\n }));\n case 'text':\n return res$.pipe(map((res) => {\n // Validate that the body is a string.\n if (res.body !== null && typeof res.body !== 'string') {\n throw new Error('Response is not a string.');\n }\n return res.body;\n }));\n case 'json':\n default:\n // No validation needed for JSON responses, as they can be of any type.\n return res$.pipe(map((res) => res.body));\n }\n case 'response':\n // The response stream was requested directly, so return it.\n return res$;\n default:\n // Guard against new future observe types being added.\n throw new Error(`Unreachable: unhandled observe type ${options.observe}}`);\n }\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `DELETE` request to execute on the server. See the individual overloads for\n * details on the return type.\n *\n * @param url The endpoint URL.\n * @param options The HTTP options to send with the request.\n *\n */\n delete(url, options = {}) {\n return this.request('DELETE', url, options);\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `GET` request to execute on the server. See the individual overloads for\n * details on the return type.\n */\n get(url, options = {}) {\n return this.request('GET', url, options);\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `HEAD` request to execute on the server. The `HEAD` method returns\n * meta information about the resource without transferring the\n * resource itself. See the individual overloads for\n * details on the return type.\n */\n head(url, options = {}) {\n return this.request('HEAD', url, options);\n }\n /**\n * Constructs an `Observable` that, when subscribed, causes a request with the special method\n * `JSONP` to be dispatched via the interceptor pipeline.\n * The [JSONP pattern](https://en.wikipedia.org/wiki/JSONP) works around limitations of certain\n * API endpoints that don't support newer,\n * and preferable [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) protocol.\n * JSONP treats the endpoint API as a JavaScript file and tricks the browser to process the\n * requests even if the API endpoint is not located on the same domain (origin) as the client-side\n * application making the request.\n * The endpoint API must support JSONP callback for JSONP requests to work.\n * The resource API returns the JSON response wrapped in a callback function.\n * You can pass the callback function name as one of the query parameters.\n * Note that JSONP requests can only be used with `GET` requests.\n *\n * @param url The resource URL.\n * @param callbackParam The callback function name.\n *\n */\n jsonp(url, callbackParam) {\n return this.request('JSONP', url, {\n params: new HttpParams().append(callbackParam, 'JSONP_CALLBACK'),\n observe: 'body',\n responseType: 'json',\n });\n }\n /**\n * Constructs an `Observable` that, when subscribed, causes the configured\n * `OPTIONS` request to execute on the server. This method allows the client\n * to determine the supported HTTP methods and other capabilities of an endpoint,\n * without implying a resource action. See the individual overloads for\n * details on the return type.\n */\n options(url, options = {}) {\n return this.request('OPTIONS', url, options);\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `PATCH` request to execute on the server. See the individual overloads for\n * details on the return type.\n */\n patch(url, body, options = {}) {\n return this.request('PATCH', url, addBody(options, body));\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `POST` request to execute on the server. The server responds with the location of\n * the replaced resource. See the individual overloads for\n * details on the return type.\n */\n post(url, body, options = {}) {\n return this.request('POST', url, addBody(options, body));\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `PUT` request to execute on the server. The `PUT` method replaces an existing resource\n * with a new set of values.\n * See the individual overloads for details on the return type.\n */\n put(url, body, options = {}) {\n return this.request('PUT', url, addBody(options, body));\n }\n}\nHttpClient.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: HttpClient, deps: [{ token: HttpHandler }], target: i0.ɵɵFactoryTarget.Injectable });\nHttpClient.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: HttpClient });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: HttpClient, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: HttpHandler }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * `HttpHandler` which applies an `HttpInterceptor` to an `HttpRequest`.\n *\n *\n */\nclass HttpInterceptorHandler {\n constructor(next, interceptor) {\n this.next = next;\n this.interceptor = interceptor;\n }\n handle(req) {\n return this.interceptor.intercept(req, this.next);\n }\n}\n/**\n * A multi-provider token that represents the array of registered\n * `HttpInterceptor` objects.\n *\n * @publicApi\n */\nconst HTTP_INTERCEPTORS = new InjectionToken('HTTP_INTERCEPTORS');\nclass NoopInterceptor {\n intercept(req, next) {\n return next.handle(req);\n }\n}\nNoopInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NoopInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNoopInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NoopInterceptor });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.0\", ngImport: i0, type: NoopInterceptor, decorators: [{\n type: Injectable\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Every request made through JSONP needs a callback name that's unique across the\n// whole page. Each request is assigned an id and the callback name is constructed\n// from that. The next id to be assigned is tracked in a global variable here that\n// is shared among all applications on the page.\nlet nextRequestId = 0;\n/**\n * When a pending
    ..